Example #1
0
 private void ShowCassetaStruct()
 {
     FCCSrv2.CashUnitsType[] Cash   = FCCApi.UpdateInventory();
     FCCSrv2.CashUnitsType   MyCash = Cash.Where(a => a.devid == "1").FirstOrDefault();
     if (MyCash != null)
     {
         FCCSrv2.CashUnitType DtCas = MyCash.CashUnit.Where(a => a.unitno == "4059").FirstOrDefault();
         string res = "";
         foreach (FCCSrv2.DenominationType Den in DtCas.Denomination)
         {
             res += (int.Parse(Den.fv) / 100).ToString() + "р. х " + int.Parse(Den.Piece) + "шт" + Environment.NewLine;
         }
         ShowProcessMessage(res);
     }
 }
        static public void WriteMins(FCCSrv2.CashUnitsType[] Cash, int ResultId, string ResSt)
        {
            SettingInfo Set = Setting;

            List <int>        res  = new List <int>();
            List <BarabanMin> res2 = new List <BarabanMin>();

            FCCSrv2.CashUnitsType MyCash = Cash.Where(a => a.devid == "1").FirstOrDefault();
            if (MyCash != null)
            {
                foreach (FCCSrv2.CashUnitType Dt in MyCash.CashUnit.Where(a => a.unitno == "4043" || a.unitno == "4044" || a.unitno == "4045"))
                {
                    int fv = int.Parse(Dt.Denomination[0].fv);
                    if (!res.Contains(fv))
                    {
                        res.Add(fv);
                        res2.Add(new BarabanMin {
                            fv = fv, MinCount = 0
                        });
                    }
                }
            }
            MyCash = Cash.Where(a => a.devid == "2").FirstOrDefault();
            if (MyCash != null)
            {
                foreach (FCCSrv2.CashUnitType Dt in MyCash.CashUnit.Where(a => int.Parse(a.unitno) > 4042 && int.Parse(a.unitno) < 4056))
                {
                    int fv = int.Parse(Dt.Denomination[0].fv);
                    if (!res.Contains(fv))
                    {
                        res.Add(fv);
                        res2.Add(new BarabanMin {
                            fv = fv, MinCount = 0
                        });
                    }
                }
            }
            Set.BarabanMins = res2;
            WriteSettings(Set);
        }
Example #3
0
        internal int GetKassetaSumm()
        {
            // if (ResultId != FCCApi.FCC_SUCCESS)
            //{

            FCCSrv2.CashUnitsType[] Cash = UpdateInventory();
            if (Cash != null)
            {
                int BillCassetSumm = 0;
                //Банкноты
                FCCSrv2.CashUnitsType MyCash = Cash.Where(a => a.devid == "1").FirstOrDefault();
                if (MyCash != null)
                {
                    FCCSrv2.CashUnitType DtCas = MyCash.CashUnit.Where(a => a.unitno == "4059").FirstOrDefault();
                    foreach (FCCSrv2.DenominationType Den in DtCas.Denomination)
                    {
                        BillCassetSumm += int.Parse(Den.fv) * int.Parse(Den.Piece);
                    }
                }

                return(BillCassetSumm);
            }
            return(-1);
        }
Example #4
0
        public bool SmallChange(out List <int> NewMinfvs, out List <int> NEfvs)
        {
            Dictionary <int, int> fvsCount = new Dictionary <int, int>();
            //Utils.ToLog("SmallChange");
            List <int> Minfvs = new List <int>();

            NEfvs     = new List <int>();
            NewMinfvs = new List <int>();

            try
            {
                FCCSrv2.CashUnitsType[] Cash   = UpdateInventory();
                FCCSrv2.CashUnitsType   MyCash = Cash.Where(a => a.devid == "1").FirstOrDefault();
                if (MyCash != null)
                {
                    foreach (FCCSrv2.CashUnitType Dt in MyCash.CashUnit.Where(a => a.unitno == "4043" || a.unitno == "4044" || a.unitno == "4045"))
                    {
                        int  fv    = int.Parse(Dt.Denomination[0].fv);
                        int  Count = MyCash.CashUnit.Where(a => ((a.unitno == "4043" || a.unitno == "4044" || a.unitno == "4045") && (a.Denomination[0].fv == fv.ToString()))).Sum(b => int.Parse(b.Denomination[0].Piece));
                        bool NotNe = MyCash.CashUnit.Where(a => ((a.unitno == "4043" || a.unitno == "4044" || a.unitno == "4045") && (a.Denomination[0].fv == fv.ToString()) && (int.Parse(a.ne) < int.Parse(a.Denomination[0].Piece)))).Count() > 0;
                        if (!NotNe)
                        {
                            if (!NEfvs.Contains(fv))
                            {
                                NEfvs.Add(fv);
                            }
                        }
                        int MCount = 0;
                        if (!fvsCount.TryGetValue(fv, out MCount))
                        {
                            fvsCount.Add(fv, Count);
                        }
                        else
                        {
                            fvsCount[fv] += Count;
                        }

                        int NeedCount = 0;
                        if (MainClass2.Setting.BarabanMins.Where(a => a.fv == fv).Count() > 0)
                        {
                            NeedCount = MainClass2.Setting.BarabanMins.Where(a => a.fv == fv).First().MinCount;
                        }
                        if (NeedCount > Count)
                        {
                            if (!Minfvs.Contains(fv))
                            {
                                Minfvs.Add(fv);
                            }
                            //return true;
                        }
                    }
                }
                MyCash = Cash.Where(a => a.devid == "2").FirstOrDefault();
                if (MyCash != null)
                {
                    foreach (FCCSrv2.CashUnitType Dt in MyCash.CashUnit.Where(a => int.Parse(a.unitno) > 4042 && int.Parse(a.unitno) < 4056))
                    {
                        int  fv    = int.Parse(Dt.Denomination[0].fv);
                        int  Count = MyCash.CashUnit.Where(a => ((int.Parse(a.unitno) > 4042 && int.Parse(a.unitno) < 4056) && (a.Denomination[0].fv == fv.ToString()))).Sum(b => int.Parse(b.Denomination[0].Piece));
                        bool NotNe = MyCash.CashUnit.Where(a => ((int.Parse(a.unitno) > 4042 && int.Parse(a.unitno) < 4056) && (a.Denomination[0].fv == fv.ToString()) && (int.Parse(a.ne) < int.Parse(a.Denomination[0].Piece)))).Count() > 0;
                        if (!NotNe)
                        {
                            if (!NEfvs.Contains(fv))
                            {
                                NEfvs.Add(fv);
                            }
                        }
                        int MCount = 0;
                        if (!fvsCount.TryGetValue(fv, out MCount))
                        {
                            fvsCount.Add(fv, Count);
                        }
                        else
                        {
                            fvsCount[fv] += Count;
                        }
                        int NeedCount = 0;
                        if (MainClass2.Setting.BarabanMins.Where(a => a.fv == fv).Count() > 0)
                        {
                            NeedCount = MainClass2.Setting.BarabanMins.Where(a => a.fv == fv).First().MinCount;
                        }
                        if (NeedCount > Count)
                        {
                            if (!Minfvs.Contains(fv))
                            {
                                Minfvs.Add(fv);
                            }
                        }
                    }
                }


                foreach (int fv in Minfvs)
                {
                    int BeforeFvCount       = 0;
                    int BeforeBeforeFvCount = 0;
                    int NeedCount           = 0;
                    int BeforeFv            = fvsCount.Keys.Where(a => a < fv).DefaultIfEmpty().Max();
                    if (BeforeFv != 0)
                    {
                        BeforeFvCount = fvsCount[BeforeFv];
                    }
                    int BeforeBeforeFv = fvsCount.Keys.Where(a => a < BeforeFv).DefaultIfEmpty().Max();
                    if (BeforeBeforeFv != 0)
                    {
                        BeforeBeforeFvCount = fvsCount[BeforeBeforeFv];
                    }

                    if (MainClass2.Setting.BarabanMins.Where(a => a.fv == fv).Count() > 0)
                    {
                        //if (MainClass2.Setting.BarabanMins.Where(a => a.fv == fv).Count() > 0)
                        //{
                        NeedCount = MainClass2.Setting.BarabanMins.Where(a => a.fv == fv).First().MinCount;
                        //}
                    }
                    if (fvsCount[fv] + BeforeFvCount * ((double)BeforeFv / (double)fv) + BeforeBeforeFvCount * ((double)BeforeBeforeFv / (double)fv) < NeedCount)
                    {
                        NewMinfvs.Add(fv);
                    }
                }

                return(NewMinfvs.Count > 0);
            }
            catch (Exception e)
            {
                Utils.ToLog("Error SmallChange " + e.Message);
                return(false);
            }
        }
Example #5
0
        private void UpdateInventory(FCCSrv2.CashUnitsType[] Cash, int ResultId, string ResSt)
        {
            // if (ResultId != FCCApi.FCC_SUCCESS)
            //{

            if (Cash != null)
            {
                int BillSumm            = 0;
                int BillCassetSumm      = 0;
                int BillCassetCountSumm = 0;
                int CoinSumm            = 0;

                int CoinCassetSumm      = 0;
                int CoinCassetCountSumm = 0;
                //Банкноты
                FCCSrv2.CashUnitsType MyCash = Cash.Where(a => a.devid == "1").FirstOrDefault();
                if (MyCash != null)
                {
                    foreach (FCCSrv2.CashUnitType Dt in MyCash.CashUnit.Where(a => a.unitno == "4043" || a.unitno == "4044" || a.unitno == "4045"))
                    {
                        FCCSrv2.DenominationType Den = Dt.Denomination[0];
                        Barabans.SetBillValue(int.Parse(Den.fv), int.Parse(Den.Piece), int.Parse(Den.Status), int.Parse(Dt.max), int.Parse(Dt.unitno), Den);
                        BillSumm += int.Parse(Den.fv) * int.Parse(Den.Piece);
                    }
                    FCCSrv2.CashUnitType DtCas = MyCash.CashUnit.Where(a => a.unitno == "4059").FirstOrDefault();

                    foreach (FCCSrv2.DenominationType Den in DtCas.Denomination)
                    {
                        BillCassetSumm      += int.Parse(Den.fv) * int.Parse(Den.Piece);
                        BillCassetCountSumm += int.Parse(Den.Piece);
                    }
                    Barabans.SetBillValue(BillCassetCountSumm, BillCassetSumm, 0, int.Parse(DtCas.max), int.Parse(DtCas.unitno), null);
                    BillSumm += BillCassetSumm;
                }

                CurrentCassetaSumm        = BillCassetSumm;
                FCCApi.CurrentCassetaSumm = BillCassetSumm;
                //Монеты
                MyCash = Cash.Where(a => a.devid == "2").FirstOrDefault();
                if (MyCash != null)
                {
                    foreach (FCCSrv2.CashUnitType Dt in MyCash.CashUnit.Where(a => int.Parse(a.unitno) > 4042 && int.Parse(a.unitno) < 4056))
                    {
                        FCCSrv2.DenominationType Den = Dt.Denomination[0];
                        Barabans.SetCoinValue(int.Parse(Den.fv), int.Parse(Den.Piece), int.Parse(Den.Status), int.Parse(Dt.max), int.Parse(Dt.unitno), Den);
                        CoinSumm += int.Parse(Den.fv) * int.Parse(Den.Piece);
                    }
                    FCCSrv2.CashUnitType DtCas = MyCash.CashUnit.Where(a => a.unitno == "4084").FirstOrDefault();

                    foreach (FCCSrv2.DenominationType Den in DtCas.Denomination)
                    {
                        CoinCassetSumm      += int.Parse(Den.fv) * int.Parse(Den.Piece);
                        CoinCassetCountSumm += int.Parse(Den.Piece);
                    }
                    Barabans.SetCoinValue(CoinCassetCountSumm, CoinCassetSumm, 0, int.Parse(DtCas.max), int.Parse(DtCas.unitno), null);
                    CoinSumm += CoinCassetSumm;
                }
                CurrentCoinCassetaSumm        = CoinCassetSumm;
                FCCApi.CurrentCoinCassetaSumm = CoinCassetSumm;
                SetSumm(BillSumm + CoinSumm);
            }
            else
            {
                GhangeConnectionState(ConnectonState_UpdateInventoryError, String.Format("Ошибка запроса состояния. Код ошибки  {0}. Сообщение {1} ", ResultId, ResSt), Colors.Red);
            }

            AllDoButtonsEnable();
            HideProcessMessage();


            /*
             * if (CurrentConnectonState == ConnectonState_CassetIneserted)
             * {
             *  if (CurrentCassetaSumm > 0)
             *  {
             *      MainClass2.NonEmptyCasset = true;
             *  }
             * }
             */
        }