Пример #1
0
        internal static void CloseCheck(int EmployeeId, int QueueId, int TableId, int CheckId)
        {
            try
            {
                Utils.ToLog("Закрытие чека. Читаю настройки PDiscount.ini", 2);
                if (iniFile.CloseCheck)
                {
                    Utils.ToLog("(iniFile.Read(Options, CloseCheck) == TRUE) . Читаю параметры чека № " + CheckId, 5);
                    Check Ch = AlohaTSClass.GetCheckById(CheckId);
                    if (Ch == null)
                    {
                        Utils.ToLog("Ch == null. Выхожу");
                        return;
                    }
                    if (Ch.Dishez.Count == 0)
                    {
                        Utils.ToLog("Ch.Dishez.Count == 0. Выхожу");
                        return;
                    }

                    Ch.SystemDate = DateTime.Now;

                    PDiscountCard.CloseCheck.mCloseCheck(Ch);
                    Utils.ToLog("Чек закрыл. Выхожу", 2);
                }
            }
            catch (Exception e)
            {
                Utils.ToLog(e.Message);
            }
        }
Пример #2
0
        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);
        }
        public static void CloseAlohaTableLocalCurentUser(int ChkId, int PaymentId, decimal Summ)
        {
            int TermNum = AlohaTSClass.GetTermNum();

            try
            {
                Check Chk = AlohaTSClass.GetCheckById(ChkId);
                Utils.ToCardLog("[CloseAlohaTableLocalCurentUser] Пытаюсь закрть чек локально" + Chk.AlohaCheckNum + " Терминал " + TermNum);
                AlohaTSClass.ApplyPayment(TermNum, Chk.AlohaCheckNum, (double)Summ / 100, PaymentId);
                AlohaTSClass.CloseCheck(TermNum, Chk.AlohaCheckNum);
                if (!AlohaTSClass.CheckIsClosed(Chk.AlohaCheckNum))
                {
                    //Сообщение
                }
                else
                {
                    Utils.ToCardLog("[CloseAlohaTableLocalCurentUser] Чек закрыл" + Chk.AlohaCheckNum);
                    if (AlohaTSClass.IsAlohaTS())
                    {
                        AlohaTSClass.CloseTable(TermNum, Chk.TableId);
                        Utils.ToCardLog("[CloseAlohaTableLocalCurentUser] Стол закрыл" + Chk.AlohaCheckNum);

                        //AlohaTSClass.LogOut();
                        //AlohaTSClass.LogIn(AlohaTSClass.GetTermNum(), 1354);
                        AlohaTSClass.RefreshCheckDisplay();
                    }
                }
            }
            catch (Exception e)
            {
                Utils.ToCardLog("Error CloseAlohaTableLocalCurentUser" + e.Message);
            }
        }
Пример #4
0
        private static void OrderDishTimeQuereRun()
        {
            while (!mExitOrderDishTimeThread)
            {
                try
                {
                    TimerSyncPoint = 0;

                    //OrderDishTimeQuereWH.WaitOne(10000);


                    Thread.Sleep(5000);



                    int Count = 0;
                    while ((Interlocked.CompareExchange(ref TimerSyncPoint, 1, 0) != 0) && (Count < 5000))
                    {
                        Thread.CurrentThread.Join(50);
                        // Utils.ToCardLog("GetCashReg lock" + Count);
                        Count += 50;
                    }

                    if (OrderDishTimeQuere.Where(a => a.OrderDt.AddSeconds(7) < DateTime.Now).Count() > 0)
                    {
                        foreach (OrderedChk OCh in OrderDishTimeQuere.Where(a => a.OrderDt.AddSeconds(7) < DateTime.Now))
                        {
                            Check NewChk = AlohaTSClass.GetCheckById(OCh.CheckId);

                            foreach (Dish d in NewChk.Dishez.Where(a => a.IsOrdered))
                            {
                                if (OCh.NonOrderedDishes.Where(a => a.EntryId == d.AlohaNum).Count() > 0)
                                {
                                    OCh.OrderedDishes.Add(OCh.NonOrderedDishes.Where(a => a.EntryId == d.AlohaNum).First());
                                }
                            }
                            if (OCh.OrderedDishes.Count > 0)
                            {
                                //SQL.ToSql.UpdateOrderTime(OCh);
                            }
                            OCh.NeedDelete = true;
                        }

                        OrderDishTimeQuere.RemoveAll(a => a.NeedDelete);
                    }



                    Interlocked.CompareExchange(ref TimerSyncPoint, 0, 1);
                }
                catch
                {
                    Interlocked.CompareExchange(ref TimerSyncPoint, 0, 1);
                }
            }
            OrderDishTimeQuereWH.Close();
        }
        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);
                }
            }
        }
        private static void CloseAlohaTable(CRemoteCloseChk RemChk)
        {
            int TermNum = iniFile.RemoteCloseTerminal;

            try
            {
                Utils.ToCardLog("Отправляю чек из очереди на закрытие" + RemChk.Id);

                AlohaTSClass.LogOut(TermNum);
                AlohaTSClass.LogIn(TermNum, iniFile.RemoteCloseEmployee);



                Check Chk = AlohaTSClass.GetCheckById(RemChk.Id);
                if (Chk == null)
                {
                    RemChk.ErrorCount++;
                    return;
                }

                /*
                 * if ((Chk.Oplata != 0) && (Chk.Oplata != Chk.Summ))
                 * {
                 *  AlohaTSClass.DeletePayments(Chk, TermNum);
                 * }
                 * */
                //if ((Chk.Oplata == 0))
                // {
                //  if (RemChk.PaymentSumm == 0)
                //{
                //  RemChk.PaymentSumm = Chk.Summ;
                //}
                AlohaTSClass.ApplyPayment(TermNum, RemChk.Id, (double)RemChk.PaymentSumm, RemChk.PaymentId);
                //}
                AlohaTSClass.CloseCheck(TermNum, RemChk.Id);
                if (!AlohaTSClass.CheckIsClosed(RemChk.Id))
                {
                    RemChk.ErrorCount++;
                }
                else
                {
                    RemChk.ErrorCount = 0;
                    AlohaTSClass.LogOut(TermNum);
                    AlohaTSClass.LogIn(TermNum, RemChk.Empl);
                    AlohaTSClass.CloseTable(TermNum, Chk.TableId);
                }
                AlohaTSClass.LogOut(TermNum);
            }
            catch
            {
                AlohaTSClass.LogOut(TermNum);
                RemChk.ErrorCount++;
            }
        }
Пример #7
0
 public void RenameTab(int TermId, int CheckId, string tabName)
 {
     if (iniFile.TakeOutEnabled)
     {
         if (tabName != "")
         {
             Utils.ToCardLog("RenameTab " + tabName);
             Check Ch = AlohaTSClass.GetCheckById(CheckId);
             TakeOut.TOLoaltyConnect.ApplyDisc(Ch.TableId, tabName);
         }
     }
 }
Пример #8
0
        internal static void WriteTimeOfSend(int TableId, int CheckId, int QueueId, int EmployeeId, int ModeId)
        {
            if (!iniFile.SQLDisabled)
            {
                Check       Chk          = AlohaTSClass.GetCheckById(CheckId);
                List <int>  CurentItms   = AlohaTSClass.GetCurrentItems(TableId); // Заказанные сейчас без Entity. Это делаем в потоке события т.к. здесь запрос текущего состояния
                List <Dish> OrderredItms = Chk.Dishez.Where(a => a.IsOrdered).ToList();

                //Уезжаем в другой поток, чтобы не тормозила из за SQL
                System.Threading.Thread MyThread =
                    new System.Threading.Thread(delegate() { WriteTimeOfSendInThread(TableId, CheckId, QueueId, EmployeeId, ModeId, CurentItms, OrderredItms, Chk.Waiter); });
                MyThread.Start();
            }
        }
Пример #9
0
 public static void ShowWndApplyCardWithCurentCheck()
 {
     try
     {
         Utils.ToCardLog("ShowWndApplyCardWithCurentCheck");
         Check CurChk = AlohaTSClass.GetCheckById((int)AlohaTSClass.GetCurentCheckId());
         FayRetailCheckInfo FRCheckInfo = GetRetailCheckInfobyAlohaChk(CurChk);
         ShowWndApplyCard(FRCheckInfo);
     }
     catch (Exception e)
     {
         Utils.ToCardLog("Error ShowWndApplyCardWithCurentCheck " + e.Message);
     }
 }
Пример #10
0
        /*
         * 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);
        }
Пример #11
0
        internal static void ApplyCardPayment(int ManagerId, int EmployeeId, int QueueId, int TableId, int CheckId, int TenderId, int PaymentId)
        {
            if ((TenderId == 20) && (EmployeeId != iniFile.RemoteCloseEmployee))
            {
                if (MainClass.ComApplyPayment)
                {
                    Utils.ToLog("MainClass.ComApplyPayment return");
                    MainClass.ComApplyPayment = false;
                    return;
                }
                if ((!iniFile.TRPOSXEnables) && (!iniFile.ArcusEnabled))
                {
                    return;
                }


                Utils.ToLog("Создаю форму вопроса безналичной оплаты");

                FTermonalSelect M3 = new FTermonalSelect();
                M3.ShowDialog();
                if (M3.Cancel)
                {
                    M3.Dispose();
                    return;
                }
                M3.Dispose();

                if (MainClass.IsWiFi == 2)
                {
                    return;
                }


                if (MainClass.PlasticTransactionInProcess)
                {
                    MF2 MesFrm = new MF2("Предыдущая транзакция еще не завершена.");
                    MesFrm.button1.Visible = false;
                    MesFrm.button3.Visible = false;
                    MesFrm.button2.Text    = "Ок";
                    MesFrm.ShowDialog();
                }
                else
                {
                    MainClass.PlasticTransactionInProcess = true;
                    // string Resp = "";
                    // string Rcp = "";
                    // string RespMes = "";
                    FiskInfo fi = PDiscountCard.CloseCheck.ReadFiskInfo();
                    bool     AllChecksOnTable = false;

                    {
                        //  ToShtrih.GetPrinterStatus();
                        //Check Ch = AlohaTSClass.GetCheckById(CheckId);

                        Utils.ToLog("Безналичная оплата. Читаю параметры чека № " + CheckId + " Попытка 1", 2);
                        Check Ch = AlohaTSClass.GetCheckById(CheckId);
                        if (Ch == null)
                        {
                            Thread.Sleep(500);
                            Utils.ToLog("Безналичная оплата. Читаю параметры чека № " + CheckId + " Попытка 2", 2);
                            AlohaTSClass.InitAlohaCom();
                            Ch = AlohaTSClass.GetCheckById(CheckId);
                            if (Ch == null)
                            {
                                Thread.Sleep(500);
                                Utils.ToLog("Безналичная оплата. Читаю параметры чека № " + CheckId + " Попытка 3", 2);
                                AlohaTSClass.InitAlohaCom();
                                Ch = AlohaTSClass.GetCheckById(CheckId);
                                if (Ch == null)
                                {
                                    Thread.Sleep(500);
                                    Utils.ToLog("Безналичная оплата. Читаю параметры чека № " + CheckId + " Попытка 4", 2);
                                    AlohaTSClass.InitAlohaCom();
                                    Ch = AlohaTSClass.GetCheckById(CheckId);
                                }
                            }
                        }
                        if (Ch == null)
                        {
                            AlohaTSClass.ShowMessage("Не удалось прочитать параметры чека ");
                            Utils.ToLog("Безналичная оплата. Не удалось прочитать параметры чека № " + CheckId, 2);
                            MainClass.PlasticTransactionInProcess = false;
                            return;
                        }

                        if (Ch.ChecksOnTable.Count > 1)
                        {
                            FTwoChecks FT = new FTwoChecks();
                            FT.Init(Ch.ChecksOnTable);
                            FT.ShowDialog();
                            if (FT.Cancel)
                            {
                                FT.Dispose();
                                MainClass.PlasticTransactionInProcess = false;
                                return;
                            }

                            if (FT.Result == 1)
                            {
                                AllChecksOnTable = true;
                            }
                            FT.Dispose();
                        }


                        int LastTr = fi.CardTransID;


                        try
                        {
                            if (iniFile.ArcusEnabled)
                            {
                                Utils.ToCardLog("Arcus. Инициалазирую оплату ");
                                ArcusAlohaIntegrator.RunOper(Ch, LastTr, AllChecksOnTable, fi, PaymentId);
                            }
                            else
                            {
                                Utils.ToCardLog("TrPosX. Инициалазирую оплату ");
                                TrPosXAlohaIntegrator.RunOper(Ch, LastTr, AllChecksOnTable, fi, PaymentId);
                            }
                        }
                        catch (Exception e)
                        {
                            Utils.ToCardLog("[Error]. Инициалазации оплаты " + e.Message);
                        }
                    }
                }
            }
        }
Пример #12
0
        internal static void TryAddDiscount(int ModeId, int CheckId, int EmployeeId)
        {
            if (iniFile.TakeOutEnabled)
            {
                try
                {
                    if ((iniFile.TakeOutOrderId1 == ModeId) || (iniFile.TakeOutOrderId2 == ModeId))
                    {
                        AlohaTSClass.SetWaterToCurentCheck(EmployeeId, CheckId);
                        Utils.ToLog("Пытаюсь наложить скидку на заказ с собой");

                        Check Ch = AlohaTSClass.GetCheckById(CheckId);
                        //string LoyaltyNum = AlohaTSClass.GetTakeOutAttr(Ch.TableId);

                        string LoyaltyName = Ch.TableName;

                        Utils.ToCardLog("LoyaltyName = " + LoyaltyName);

                        if (LoyaltyName != "")
                        {
                            if (TakeOut.TOLoaltyConnect.ApplyDisc(Ch.TableId, LoyaltyName))
                            {
                                /*
                                 * Utils.ToCardLog("LoyaltyNum = " + LoyaltyNum);
                                 * AlohaTSClass.CheckWindow();
                                 * MainClass.AssignMember(LoyaltyNum, LoyaltyNum);
                                 * */
                                return;
                            }
                        }


                        /*
                         * if (AlohaTSClass.CheckWindow())
                         * {
                         *  if (AlohaTSClass.AlohaCurentState.CompIsAppled)
                         *  {
                         *      Utils.ToLog("Скидка уже применена");
                         *      return;
                         *
                         *
                         *  }
                         * }
                         */
                        if (AlohaTSClass.GetCheckDiscountById(CheckId))
                        {
                            Utils.ToLog("Скидка уже применена");
                            return;
                        }
                        string outmsg = "";
                        int    i      = AlohaTSClass.ApplyCompByCheckId(iniFile.TakeOutDiscountId, EmployeeId, CheckId, out outmsg);
                        if (i > 0)
                        {
                            Utils.ToLog("Cкидка на заказ с собой применена");
                        }
                        AlohaTSClass.RefreshCheckDisplay();
                    }
                }
                catch (Exception e)
                {
                }
            }
        }
Пример #13
0
        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();
                }
            }
        }
Пример #14
0
        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));
        }
Пример #15
0
        public static FayRetailCheckInfo GetCurentFRCheck()
        {
            Check CurChk = AlohaTSClass.GetCheckById((int)AlohaTSClass.GetCurentCheckId());

            return(GetRetailCheckInfobyAlohaChk(CurChk));
        }
Пример #16
0
        internal static bool RunOper()
        {
            Check Chk = AlohaTSClass.GetCheckById((int)AlohaTSClass.AlohaCurentState.CheckId);

            return(RunOper(Chk));
        }