static private void AskPaymentsCount(Check Chk, int TenderType, Action <int, Check> callback) { Utils.ToCardLog("AskPaymentsCount TenderType= " + TenderType.ToString()); int PaymentsCount = 0; if (TenderType == 0) { PaymentsCount = Convert.ToByte(iniFile.FCCEnable) + Convert.ToByte((iniFile.InPasEnabled) || (CreditCardAlohaIntegration.CreditCardConnectorEnabled)) * 2 + Convert.ToByte(iniFile.CreditCloseByWiterEnabled && (Chk.TableNumber >= 163)) * 4; Utils.ToCardLog("AskPaymentsCount PaymentsCount= " + PaymentsCount.ToString()); //BitArray Ba = new BitArray(new byte[] { PaymentsCount }); if (PaymentsCount == 0) { frmAllertMessage Mf = new frmAllertMessage("Нет подключенных модулей оплаты"); Mf.ShowDialog(); return; } if ((GetTrueBitCount(PaymentsCount) > 1) || (PaymentsCount == 4)) { Utils.ToCardLog("GetTrueBitCount(PaymentsCount) > 1"); PDiscountCard.AlohaI.WndPaymentSelect WndSelect = new AlohaI.WndPaymentSelect(); WndSelect.Chk = Chk; WndSelect.Callback = callback; WndSelect.Closed += new EventHandler(WndSelect_Closed); WndSelect.SetBtnsVis(PaymentsCount); WndSelect.WaiterName = AlohaTSClass.GetCurentWaterName(); Utils.ToCardLog("Before WndSelect.Show();"); WndSelect.Show(); PaymentsCount = WndSelect.Result; } else { callback(PaymentsCount, Chk); } } else { PaymentsCount = TenderType; callback(PaymentsCount, Chk); } }
public static void CloseCheck2(Check Ch) { Utils.ToCardLog("CloseCheck2 Start" + Ch.CheckShortNum); ShtrihCommandBlock CloseCheckCommandBlock = new ShtrihCommandBlock(); CloseCheckCommandBlock.ChkOwner = Ch; string cassirName = AlohaTSClass.GetCurentWaterName(); if (cassirName == "") { cassirName = "Администратор"; } CloseCheckCommandBlock.WriteTableStr(2, 30, 2, AlohaTSClass.GetCurentWaterName(), new List <int>());//Пишем имя кассира if (!iniFile.FRModeDisabled) { SetCurentTime(CloseCheckCommandBlock); ChangePos(Ch.OpenTimem == 1, CloseCheckCommandBlock); ChangePrint(true, CloseCheckCommandBlock); ChangeCut(true, CloseCheckCommandBlock); } int FChType = 0; if (Ch.Vozvr) { FChType = 2; } CloseCheckCommandBlock.OpenCheck(FChType); decimal Summ = 0; foreach (string s in Ch.FrStringsBefore) { if (s.Length > 36) { CloseCheckCommandBlock.PrintString(s.Substring(0, 35)); } else { CloseCheckCommandBlock.PrintString(s); } } /* * if (AlohaTSClass.GetVip(Ch.AlohaCheckNum)) * { * CloseCheckCommandBlock.PrintString("ЧЕК " + Ch.CheckShortNum + " (" + AlohainiFile.DepNum.ToString() + ")" + " Стол" + Ch.TableNumber); * } * else * { * CloseCheckCommandBlock.PrintString("ЧЕК " + Ch.CheckShortNum + " (" + AlohainiFile.DepNum.ToString() + ")" + " Стол " + Ch.TableNumber); * } */ List <Dish> Tmp = new List <Dish>(); if (iniFile.DishConsolidate) { Tmp = Ch.ConSolidateDishez; } else { Tmp = Ch.Dishez; } foreach (Dish D in Tmp) { Summ += D.OPrice * D.Count; if (!Ch.Vozvr) { // CloseCheckCommandBlock.Sale((double)(D.QUANTITY * D.Count), Math.Abs((decimal)D.OPrice), D.Name + " " + D.CardPrefix + D.CardNumber, 1, 0); // int Tax = 1; if (iniFile.FRNoTax) { Tax = 0; } decimal Price = Math.Abs((decimal)D.OPrice) + Math.Abs((decimal)D.ServiceChargeSumm) / ((decimal)(D.QUANTITY * D.Count)); if (iniFile.FRPriceFromDisplay) { Price = Math.Abs((decimal)D.DISP_PRICE) + Math.Abs((decimal)D.ServiceChargeSumm) / ((decimal)(D.QUANTITY * D.Count)); } if (iniFile.FRDiscountMode) { Price = Math.Abs((decimal)D.Price) + Math.Abs((decimal)D.ServiceChargeSumm) / ((decimal)(D.QUANTITY * D.Count)); } CloseCheckCommandBlock.Sale((double)(D.QUANTITY * D.Count), Price, D.CHITNAME + " " + D.CardPrefix + D.CardNumber, Tax, 0); } else { if (D.OPrice > 0) { CloseCheckCommandBlock.Discount(Math.Abs(D.OPrice), "Комплексная"); } else { int Tax = 1; if (iniFile.FRNoTax) { Tax = 0; } decimal Price = Math.Abs((decimal)D.OPrice) + Math.Abs((decimal)D.ServiceChargeSumm) / ((decimal)(D.QUANTITY * D.Count)); if (iniFile.FRPriceFromDisplay) { Price = Math.Abs((decimal)D.DISP_PRICE) + Math.Abs((decimal)D.ServiceChargeSumm) / ((decimal)(D.QUANTITY * D.Count));; } if (iniFile.FRDiscountMode) { Price = Math.Abs((decimal)D.Price) + Math.Abs((decimal)D.ServiceChargeSumm) / ((decimal)(D.QUANTITY * D.Count)); } //CloseCheckCommandBlock.ReturnSale((double)(D.QUANTITY * D.Count), Math.Abs((decimal)D.OPrice), D.Name, 1, 0); CloseCheckCommandBlock.ReturnSale((double)(D.QUANTITY * D.Count), Price, D.CHITNAME, Tax, 0); } } } if (Math.Abs(Ch.Comp) > 0) { string DiscCaption = "Комплексная"; if (Ch.CompId == AlohaTSClass.BonusCompId) { DiscCaption = "Оплата баллами"; } if (iniFile.FRDiscountMode) { CloseCheckCommandBlock.PrintString(DiscCaption + " скидка =" + Math.Abs(Ch.Comp).ToString("0.00")); } else { CloseCheckCommandBlock.Discount(Math.Abs(Ch.Comp), DiscCaption); } } if (Ch.Comps.Count > 1) { foreach (AlohaComp Cmp in Ch.Comps) { if (Cmp != Ch.Comps.First()) { if (iniFile.FRDiscountMode) { CloseCheckCommandBlock.PrintString(Cmp.Name + " =-" + Math.Abs(Cmp.Amount).ToString("0.00")); } } } } foreach (string s in Ch.FrStringsAfter) { if (s.Length > 36) { CloseCheckCommandBlock.PrintString(s.Substring(0, 35)); } else { CloseCheckCommandBlock.PrintString(s); } } /* * if (Ch.LoyaltyCard != "") * { * * CloseCheckCommandBlock.PrintString(" "); * CloseCheckCommandBlock.PrintString(" Программа лояльности КОФЕМАНИЯ АЭРО"); * CloseCheckCommandBlock.PrintString(" Начисление баллов"); * CloseCheckCommandBlock.PrintString(" Карта " + Ch.LoyaltyCard); * CloseCheckCommandBlock.PrintString(" Начислено " + Ch.LoyaltyBonus.ToString("0.00") + " баллов"); * } * * * * foreach (AlohaTender AT in Ch.CreditPayments()) * { * * CloseCheckCommandBlock.PrintString(" "); * CloseCheckCommandBlock.PrintString(" Списание средств"); * CloseCheckCommandBlock.PrintString(" Карта " + AT.Ident); * CloseCheckCommandBlock.PrintString(" Списано " + AT.Summ.ToString("0.00")); * * * DateTime dt = DateTime.Now; * string Err = ""; * decimal Bal = Loyalty.LoyaltyBasik.GetASVCardBalance(AT.Ident, out dt, out Err); * if (Bal != -1) * { * CloseCheckCommandBlock.PrintString(" Текущий баланс " + Bal.ToString("0.00")); * CloseCheckCommandBlock.PrintString(" Срок действия карты " + dt.ToString("dd.MM.yyyy")); * } * CloseCheckCommandBlock.PrintString(" "); * //CloseCheckCommandBlock.PrintString("Доступных баллов: " + Ch.ASVCardBalance.ToString("0.00")); * } */ /* * if (Ch.IsNal) * { * CloseCheckCommandBlock.CloseCheck(Math.Abs(Ch.Oplata), 0, 0, 0, 0, 1, 0, 0, 0, "", 0); * * } * else if (Ch.Tender == TenderType.GloryCash) * { * CloseCheckCommandBlock.CloseCheck(0, Math.Abs(Ch.Summ), 0, 0, 0, 1, 0, 0, 0, "", 0); * * } * else if (Ch.Tender == TenderType.Credit) * { * CloseCheckCommandBlock.CloseCheck(0, Math.Abs(Ch.Summ), 0, 0, 0, 1, 0, 0, 0, "", 0); * } * else * { * CloseCheckCommandBlock.CloseCheck(0, 0, 0, Math.Abs(Ch.Oplata), 0, 1, 0, 0, 0, "", 0); * } */ CloseCheckCommandBlock.CloseCheck(Math.Abs(Ch.CashSummWithOverpayment2), Math.Abs(Ch.CreditSumm2), 0, Math.Abs(Ch.CardSumm2), 1, 0, 0, 0, "", Ch); CloseCheckCommandBlock.CommandBlockToQwery(); Utils.ToCardLog("CloseCheck2 End" + Ch.CheckShortNum); }