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); }
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); }
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); } }
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; * } * } */ }