public static void CloseCheck() { Utils.ToCardLog("CloseCheckFromActiv"); AlohaTSClass.CheckWindow(); Check Chk = AlohaTSClass.GetCheckById((int)AlohaTSClass.AlohaCurentState.CheckId); /* * if (!AlcCheck(Chk)) * { * return; * } */ if (Chk.HasUnorderedItems) { if (iniFile.AutoOrderBeforeWaiterClose) { AlohaTSClass.OrderAllDishez(AlohaTSClass.AlohaCurentState.TerminalId, (int)AlohaTSClass.AlohaCurentState.CheckId, (int)AlohaTSClass.AlohaCurentState.TableId); } else { frmAllertMessage Mf = new frmAllertMessage("В чеке есть незаказаные блюда. "); Utils.ToLog("В чеке есть незаказаные блюда. Выхожу"); Mf.ShowDialog(); return; } } AlohaTSClass.CloseCheck(AlohaTSClass.GetTermNum(), Chk.AlohaCheckNum); }
internal static void ApplyPayment(double summ) { if (AlohaTSClass.CheckWindow()) { AlohaTSClass.ApplyPayment(AlohaTSClass.AlohaCurentState.TerminalId, (int)AlohaTSClass.AlohaCurentState.CheckId, (int)AlohaTSClass.AlohaCurentState.TableId, summ, 1); } }
public static void mShowPagerDialog() { //Уезжаем в другой поток, чтобы не глючило AlohaTSClass.CheckWindow(); int EmpNum = AlohaTSClass.AlohaCurentState.EmployeeNumberCode; Pager((IntPtr)EmpNum, Utils.GetFileServerName()); }
public static void Sale() { AlohaTSClass.CheckWindow(); Check Chk = AlohaTSClass.GetCheckById((int)AlohaTSClass.AlohaCurentState.CheckId); bool AllCheck = false; if (Chk.ChecksOnTable.Count > 1) { MessageForm ManyChecksMsg = new MessageForm("Закрыть все чеки на столе?"); ManyChecksMsg.button1.Text = "Да"; ManyChecksMsg.button2.Text = "Только текущий"; // ManyChecksMsg.button2.Visible = false; ManyChecksMsg.ShowDialog(); if (ManyChecksMsg.Result == 1) { //Utils.ToLog("Отправляю на оплату все чеки на столе." + GetFCCCheckfromAloha(Chk, AllCheck).Ammount); AllCheck = true; } } InpasChk inpasChk = new InpasChk(Chk, AllCheck, AlohaTSClass.AlohaCurentState.EmployeeNumberCode); if (AllCheck) { Utils.ToLog("Отправляю на пластиковую оплату все чеки на столе." + inpasChk.Ammount); } AlohaTSClass.LogOut(AlohaTSClass.GetTermNum()); AlohaTSClass.RefreshCheckDisplay(); if (!inpasChk.isVoid) { Utils.ToCardLog("Старт пластиковой оплаты Чек " + inpasChk.Num); RunOper(1, 0, 0, TermNum, inpasChk, 0); } else { //RunOper(1, 0, 0, TermNum, AlohaTSClass.GetCheckById((int)AlohaTSClass.AlohaCurentState.CheckId), 0); frmInpasVoid fv = new frmInpasVoid(); fv.ShowDialog(); if (fv.Res == 1) { Utils.ToCardLog("Старт возврата пластиковой оплаты Чек " + Chk.AlohaCheckNum); DualConnector.DualConnectorMain.Void(inpasChk, fv.RRN); } else if (fv.Res == 2) { Utils.ToCardLog("Старт отмены пластиковой оплаты Чек " + Chk.AlohaCheckNum); DualConnector.DualConnectorMain.Cancel(inpasChk, fv.RRN); } } }
internal static bool RunOper(Check Chk) { if (CreditCardConnector.OperInProcess) { ShowMsg("На терминале пластиковых карт выполняется операция. Если вы уверены, что это не так, перезагрузите алоху."); return(false); } if ((iniFile.Arcus2PlasticLocalClose) || ((iniFile.PlasticLocalClose))) { ShowLockScreen(); } AlohaTSClass.CheckWindow(); bool AllCheck = false; if (Chk.ChecksOnTable.Count > 1) { MessageForm ManyChecksMsg = new MessageForm("Закрыть все чеки на столе?"); ManyChecksMsg.button1.Text = "Да"; ManyChecksMsg.button2.Text = "Только текущий"; // ManyChecksMsg.button2.Visible = false; ManyChecksMsg.ShowDialog(); if (ManyChecksMsg.Result == 1) { //Utils.ToLog("Отправляю на оплату все чеки на столе." + GetFCCCheckfromAloha(Chk, AllCheck).Ammount); AllCheck = true; } } InpasChk inpasChk = new InpasChk(Chk, AllCheck, AlohaTSClass.AlohaCurentState.EmployeeNumberCode); currentCheck = inpasChk; string inStr = ""; Sum = inpasChk.Ammount; Utils.ToCardLog("Кредитный терминал транзакция старт Sum" + Sum); if (!inpasChk.isVoid) { CreditCardConnector.RunPaymentAsinc(Sum, Chk); } else { CreditCardConnector.RunVozvrAsinc(Sum); } if ((!iniFile.Arcus2PlasticLocalClose) && ((!iniFile.PlasticLocalClose))) { AlohaTSClass.LogOut(AlohaTSClass.GetTermNum()); AlohaTSClass.RefreshCheckDisplay(); } return(true); }
/* * public static void CloseByWaiter(int TenderType=0) * { * Utils.ToCardLog("CloseByWaiter TenderType = " + TenderType.ToString()); * * * * AlohaTSClass.CheckWindow(); * Check Chk = AlohaTSClass.GetCheckById((int)AlohaTSClass.AlohaCurentState.CheckId); * * * //Это запрет на алкочеки * if (!iniFile.FRModeDisabled) * { * if (!AlcCheck(Chk)) * { * return; * } * * } * * if (Chk.HasUnorderedItems) * { * if (iniFile.AutoOrderBeforeWaiterClose) * { * * bool OrderRes = AlohaTSClass.OrderAllDishez(AlohaTSClass.AlohaCurentState.TerminalId, (int)AlohaTSClass.AlohaCurentState.CheckId, (int)AlohaTSClass.AlohaCurentState.TableId); * if (!OrderRes) * { * frmAllertMessage Mf = new frmAllertMessage("Не могу заказать блюда. Попробуйте еще раз. Либо закажите самостоятельно. Если ошибка будет повторяться свяжитесь со службой техподдержки для перезагрузки Алохи."); * Utils.ToLog("Не могу заказать блюда. Выхожу"); * Mf.ShowDialog(); * return; * } * } * else * { * frmAllertMessage Mf = new frmAllertMessage("В чеке есть незаказаные блюда. "); * Utils.ToLog("В чеке есть незаказаные блюда. Выхожу"); * Mf.ShowDialog(); * return; * } * } * int PaymentsCount = 0; * if (TenderType == 0) * { * PaymentsCount = * Convert.ToByte(iniFile.FCCEnable) + * Convert.ToByte((iniFile.InPasEnabled) || (CreditCardAlohaIntegration.CreditCardConnectorEnabled)) * 2 + * Convert.ToByte(iniFile.CreditCloseByWiterEnabled && (Chk.TableNumber > 190)) * 4; * * Utils.ToCardLog("PaymentsCount= " + PaymentsCount.ToString()); * //BitArray Ba = new BitArray(new byte[] { PaymentsCount }); * * * if (PaymentsCount == 0) * { * frmAllertMessage Mf = new frmAllertMessage("Нет подключенных модулей оплаты"); * Mf.ShowDialog(); * return; * } * * if (GetTrueBitCount(PaymentsCount) > 1) * { * Utils.ToCardLog("GetTrueBitCount(PaymentsCount) > 1"); * PDiscountCard.AlohaI.WndPaymentSelect WndSelect = new AlohaI.WndPaymentSelect(); * WndSelect.SetBtnsVis(PaymentsCount); * WndSelect.WaiterName = AlohaTSClass.GetCurentWaterName(); * Utils.ToCardLog("Before WndSelect.ShowDialog();"); * WndSelect.ShowDialog(); * Utils.ToCardLog("After WndSelect.ShowDialog();"); * PaymentsCount = WndSelect.Result; * * } * } * else * { * PaymentsCount = TenderType; * } * * Utils.ToCardLog("PaymentsCount after select = " + PaymentsCount.ToString()); * if (PaymentsCount == 1) * { * FCC.SetBill(); * } * else if (PaymentsCount == 2) * { * if (iniFile.InPasEnabled) * { * DualConnector.DualConnectorMain.Sale(); * } * // else if (iniFile.Arcus2Enabled) * else if (CreditCardAlohaIntegration.CreditCardConnectorEnabled) * { * string err = ""; * * CreditCardAlohaIntegration.RunOper(Chk); * //DualConnector.DualConnectorMain.Sale(); * } * } * else if (PaymentsCount == 4) * { * AlohaTSClass.LogOut(); * RemoteCloseCheck.AddRemoteChkToQuere(Chk.AlohaCheckNum, 30, Chk.Waiter, Chk.Summ); * } * * Utils.ToCardLog("Exit from CloseByWaiter TenderType = " + TenderType.ToString()); * } */ /* * static Thread CloseByWaiterThread; * public static void CloseByWaiter(int TenderType = 0) * { * try * { * Utils.ToCardLog("CloseByWaiter TenderType = " + TenderType.ToString()); * CloseByWaiterThread = new Thread(new ParameterizedThreadStart(CloseByWaiterAsinc)); * CloseByWaiterThread.Start(TenderType); * Utils.ToCardLog("CloseByWaiter end TenderType = " + TenderType.ToString()); * GC.Collect(); * } * catch (Exception e) * { * Utils.ToCardLog("Error CloseByWaiter " +e.Message); * } * * } */ //private static void CloseByWaiter(object obTenderType) public static void CloseByWaiter(int obTenderType = 0) { int TenderType = Convert.ToInt32(obTenderType); Utils.ToCardLog("CloseByWaiterAsinc TenderType = " + TenderType.ToString()); AlohaTSClass.CheckWindow(); Check Chk = AlohaTSClass.GetCheckById((int)AlohaTSClass.AlohaCurentState.CheckId); //Это запрет на алкочеки if (!iniFile.FRModeDisabled) { if (!AlcCheck(Chk)) { return; } } if (Chk.HasUnorderedItems) { if (iniFile.AutoOrderBeforeWaiterClose) { bool OrderRes = AlohaTSClass.OrderAllDishez(AlohaTSClass.AlohaCurentState.TerminalId, (int)AlohaTSClass.AlohaCurentState.CheckId, (int)AlohaTSClass.AlohaCurentState.TableId); if (!OrderRes) { frmAllertMessage Mf = new frmAllertMessage("Не могу заказать блюда. Попробуйте еще раз. Либо закажите самостоятельно. Если ошибка будет повторяться свяжитесь со службой техподдержки для перезагрузки Алохи."); Utils.ToLog("Не могу заказать блюда. Выхожу"); Mf.ShowDialog(); return; } } else { frmAllertMessage Mf = new frmAllertMessage("В чеке есть незаказаные блюда. "); Utils.ToLog("В чеке есть незаказаные блюда. Выхожу"); Mf.ShowDialog(); return; } } Utils.ToCardLog("Before AskPaymentsCount "); AskPaymentsCount(Chk, TenderType, DoPaymentsOper); }
internal static void ShowTotalSumm() { string Name = ""; int Id = 0; string str = "Итого: " + AlohaTSClass.GetCurentCheckSumm().ToString("0.00") + " руб." + Environment.NewLine; if (AlohaTSClass.CheckWindow()) { if (AlohaTSClass.AlohaCurentState.CompIsAppled) { str += AlohaTSClass.GetCompName(AlohaTSClass.AlohaCurentState.CompId) + Environment.NewLine; str += "Скидка: " + AlohaTSClass.AlohaCurentState.CompSumm.ToString("0.00") + " руб." + Environment.NewLine; if ((AlohaTSClass.AlohaCurentState.CompId > 10) && (AlohaTSClass.AlohaCurentState.CompId < 25)) { if (AlohaTSClass.GetManagerDiscountAttr((int)AlohaTSClass.AlohaCurentState.CheckId, out Name, out Id)) { if (Id > 0) { str += Id.ToString() + " "; } str += Name; } } } int P = 0; int V = 0; string PreCard = AlohaTSClass.GetDiscountAttr((int)AlohaTSClass.AlohaCurentState.CheckId, out P, out V); if (PreCard.Length > 4) { if (PreCard.Substring(0, 3).ToUpper() == "PRE") { str += "Проведена карта друга " + PreCard + Environment.NewLine; str += "Отсталось посещений " + V.ToString() + " Осталось дней: " + P.ToString(); } } } AlohaTSClass.ShowMessage(str); }
internal static void Degustations() { AlohaTSClass.CheckWindow(); /* * bool OrderRes = AlohaTSClass.OrderAllDishez(AlohaTSClass.AlohaCurentState.TerminalId, (int)AlohaTSClass.AlohaCurentState.CheckId, (int)AlohaTSClass.AlohaCurentState.TableId); * if (!OrderRes) * { * frmAllertMessage Mf = new frmAllertMessage("Не могу заказать блюда. Попробуйте еще раз. Либо закажите самостоятельно. Если ошибка будет повторяться свяжитесь со службой техподдержки для перезагрузки Алохи."); * Utils.ToLog("Не могу заказать блюда. Выхожу"); * Mf.ShowDialog(); * return; * } */ if (AlohaTSClass.AlohaCurentState.CompIsAppled) { AlohaTSClass.ShowMessage("На данный чек уже наложена скидка." + Environment.NewLine + "Для наложения дегустации удалите текущую скидку"); } else { FDegustations mFrm = new FDegustations(); mFrm.ShowDialog(); } }
internal static void SetBill() { Utils.ToLog("SetBill"); if (!IsInited) { frmAllertMessage fa = new frmAllertMessage("К данному термналу не подключено устройство приема денежных средств."); fa.ShowDialog(); return; } AlohaTSClass.CheckWindow(); Utils.ToLog("SetBill Curent Check = " + AlohaTSClass.AlohaCurentState.CheckId); if (iniFile.FCCSync) { // FCCIntegration.MainClass2.CancelChangeMoney(); //Utils.ToLog("SetBill"); //FCCIntegration.MainClass2.ShowCassirFrm(); } else { if (FCCIntegration.MainClass2.ChangeProcess) { if (FCCIntegration.MainClass2.CurrentCheck.AlohId != (int)AlohaTSClass.AlohaCurentState.CheckId) { MessageForm Mf = new MessageForm("Устройство приема наличных средств находится в состоянии ожидания оплаты. " + Environment.NewLine + "Завершите или отмените текущую операцию и затем приступайте к новой." ); Mf.button1.Visible = false; Mf.button3.Visible = false; Mf.button2.Text = "Ок"; Mf.ShowDialog(); return; } else { FCCIntegration.MainClass2.ShowCassirFrm(); return; } } } if (!InpectSmallChange(false)) { Utils.ToLog("Мало сдачи. Выхожу"); return; } Check Chk = AlohaTSClass.GetCheckById((int)AlohaTSClass.AlohaCurentState.CheckId); if (iniFile.FCCSync) { if (Chk.HasUnorderedItems) { frmAllertMessage Mf = new frmAllertMessage("В чеке есть незаказаные блюда. "); Utils.ToLog("В чеке есть незаказаные блюда. Выхожу"); Mf.ShowDialog(); return; } } if (Chk.Summ == 0) { frmAllertMessage Mf = new frmAllertMessage("Чек нулевой"); Mf.ShowDialog(); return; } else if (Chk.Oplata >= Chk.Summ) { frmAllertMessage Mf = new frmAllertMessage("Чек уже оплачен"); Mf.ShowDialog(); return; } else if (Chk.Vozvr) { frmAllertMessage Mf = new frmAllertMessage("Нельзя оплачивать возвратные чеки"); Mf.ShowDialog(); return; } else { bool AllCheck = false; if (Chk.ChecksOnTable.Count > 1) { MessageForm ManyChecksMsg = new MessageForm("Закрыть все чеки на столе?"); ManyChecksMsg.button1.Text = "Да"; ManyChecksMsg.button2.Text = "Только текущий"; // ManyChecksMsg.button2.Visible = false; ManyChecksMsg.ShowDialog(); if (ManyChecksMsg.Result == 1) { // Summ = Chk.ChecksOnTable.Sum(a => a.Summ); AllCheck = true; Utils.ToLog("Отправляю на оплату все чеки на столе." + GetFCCCheckfromAloha(Chk, AllCheck).Ammount); } } string Status; Utils.ToLog("Отправляю на оплату. Сумма" + GetFCCCheckfromAloha(Chk, AllCheck).Ammount); if (FCCIntegration.MainClass2.StartChangeMoney(GetFCCCheckfromAloha(Chk, AllCheck), out Status)) { string str = ""; CurrentEmpl = AlohaTSClass.AlohaCurentState.EmployeeNumberCode; AlohaTSClass.OrderAllItems(Chk.AlohaCheckNum, Chk.TableId, out str); if (!iniFile.FCCSync) { AlohaTSClass.OpenEmptyCheck(); AlohaTSClass.LogIn(iniFile.FCCTerminal, iniFile.FCCEmployee); AlohaTSClass.LockTable(iniFile.FCCLockDish, iniFile.FCCTerminal, Chk.AlohaCheckNum); } CCustomerDisplay.SetCheck(Chk); } else { MessageForm Mf = new MessageForm("Устройство приема наличных средств занято другой транзакцией."); Mf.button1.Visible = false; Mf.button3.Visible = false; Mf.button2.Text = "Ок"; Mf.ShowDialog(); } } }
public static string PrintCheckByMe(string xmlIn) { double AllSumm = 0; XmlDocument Xd = new XmlDocument(); Xd.LoadXml(xmlIn); XmlNodeList Xn = Xd.GetElementsByTagName("CHECKID"); string Num = Xn[0].FirstChild.Value; XmlNodeList Xp = Xd.GetElementsByTagName("PRINTER"); string PrNum = Xp[0].FirstChild.Value; int CheckId = Convert.ToInt32(Num); string innerString = GetInnerString(xmlIn); bool Closed = xmlIn.Contains("Check Closed") || xmlIn.Contains("Чек закрыт"); if (!PrintedChecks.Contains(CheckId)) { if ((!Closed)) { GuestCount.GuestCount.SetGuestCount(CheckId); } PrintedChecks.Clear(); List <int> AlreadyPrintedCheck = new List <int>(); AlohaTSClass.CheckWindow(); List <int> Chks = AlohaTSClass.GetChecksIdInThisTable(CheckId, out AlreadyPrintedCheck); if (Chks.Count > 1) { MessageForm ManyChecksMsg = new MessageForm("Печатать все чеки на столе?"); ManyChecksMsg.button1.Text = "Да"; ManyChecksMsg.button2.Text = "Нет"; // ManyChecksMsg.button2.Visible = false; ManyChecksMsg.ShowDialog(); if (ManyChecksMsg.Result == 1) { if (AlreadyPrintedCheck.Count > 0) { string Mess = ""; foreach (int nn in AlreadyPrintedCheck) { Mess += "Предчек #" + AlohaTSClass.GetCheckById(nn).CheckShortNum + " уже напечатан. " + Environment.NewLine; } AlohaTSClass.ShowMessage(Mess); } foreach (int ChId in Chks) { PrintedChecks.Add(ChId); AlohaTSClass.PrintPredCheckByXml(ChId, Convert.ToInt32(PrNum)); try { AlohaTSClass.PrintPredCheck(ChId, true); //Это чтобы чек считался распечатанным в алохе. } catch { } } AlohaTSClass.PrintAllPredchecksById(CheckId, Convert.ToInt32(PrNum), Chks); return(""); } } else { PrintedChecks.Remove(CheckId); } } else { PrintedChecks.Remove(CheckId); return(""); } return(AlohaTSClass.GetPrintPredcheckById(CheckId, Convert.ToInt32(PrNum), false, null, innerString, Closed)); }
private void EndApplyComp() { AlohaTSClass.CheckWindow(); string outMess = ""; //int OrderMode = ((DType==20)?10:1); bool OrderRes = AlohaTSClass.OrderAllDishez(AlohaTSClass.AlohaCurentState.TerminalId, (int)AlohaTSClass.AlohaCurentState.CheckId, (int)AlohaTSClass.AlohaCurentState.TableId); if (!OrderRes) { frmAllertMessage Mf = new frmAllertMessage("Не могу заказать блюда. Попробуйте еще раз. Либо закажите самостоятельно. Если ошибка будет повторяться свяжитесь со службой техподдержки для перезагрузки Алохи."); Utils.ToLog("Не могу заказать блюда. Выхожу"); Mf.ShowDialog(); return; } int CompId = AlohaTSClass.ApplyComp(DType, "", out outMess); if (AlohaTSClass.GetCurentCheckSumm() != 0) { AlohaTSClass.ShowMessage("Не смог наложить 100% компенсацию. Проверьте, что все блюда чека входят в группу соответствующую скидки " + DType.ToString()); AlohaTSClass.DeleteComp(CompId); return; } if (outMess != "") { AlohaTSClass.ShowMessage(outMess); } else { if (CurrentEmp == null) { if (CurrentComment != "") { AlohaTSClass.SetManagerDiscountAttr((int)AlohaTSClass.AlohaCurentState.CheckId, CurrentComment, AlohaTSClass.AlohaCurentState.EmployeeNumberCode); } } else { if (CurrentComment != "") { AlohaTSClass.SetManagerDiscountAttr((int)AlohaTSClass.AlohaCurentState.CheckId, CurrentComment, CurrentEmp.Id); } else { AlohaTSClass.SetManagerDiscountAttr((int)AlohaTSClass.AlohaCurentState.CheckId, CurrentEmp.Name, CurrentEmp.Id); } } if (DType == 20) { for (int i = 0; i < ctrlHotelBreakfastCount1.GuestCount; i++) { double price = ctrlHotelBreakfastCount1.Price; if (ctrlHotelBreakfastCount1.IsSmall) { AlohaTSClass.AddDishToCurentChk(iniFile.HotelBreakfastBarCodeSmall, price); } else { AlohaTSClass.AddDishToCurentChk(iniFile.HotelBreakfastBarCode, price); } } // AlohaTSClass.ApplyFullPaymentToCurentChk(iniFile.HotelBreakfastPaymentId); } if (DType != 20) { AlohaTSClass.CloseCurentCheckAndTableByCurentUser(); } AlohaTSClass.ShowMessage("Компенсация успешно применена"); } this.Close(); }