Exemplo n.º 1
0
        internal static void ShowMsg(string Mess)
        {
            Utils.ToCardLog("Показал сообщение " + Mess);
            frmAllertMessage Mf = new frmAllertMessage(Mess);

            Mf.ShowDialog();
        }
Exemplo n.º 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);
        }
Exemplo n.º 3
0
 public static void ShowCassirFrm()
 {
     if (!IsInited)
     {
         frmAllertMessage fa = new frmAllertMessage("К данному термналу не подключено устройство приема денежных средств.");
         fa.ShowDialog();
         return;
     }
     FCCIntegration.MainClass2.ShowCassirFrm();
 }
Exemplo n.º 4
0
        public static void ShowFrmCashIn()
        {
            if (!iniFile.CloseCheck)
            {
                frmAllertMessage fa = new frmAllertMessage("К данному термналу не подключен фискальный регистратор.");
                fa.ShowDialog();
                return;
            }
            FrmCashIn frmCashIn = new FrmCashIn();

            frmCashIn.ShowDialog();
        }
Exemplo n.º 5
0
 public static void ShowRazmen()
 {
     if (IsInited)
     {
         FCCIntegration.MainClass2.ShowRazmenWnd();
     }
     else
     {
         frmAllertMessage fa = new frmAllertMessage("К данному термналу не подключено устройство приема денежных средств.");
         fa.ShowDialog();
     }
 }
Exemplo n.º 6
0
        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);
            }
        }
Exemplo n.º 7
0
 public static void ShowAdmin()
 {
     if (IsInited)
     {
         /*
          * AlohaTSClass.CheckWindow();
          * CurrentEmpl = AlohaTSClass.AlohaCurentState.EmployeeNumberCode;
          * Utils.ToLog("CurrentEmpl = " + CurrentEmpl.ToString());
          * */
         FCCIntegration.MainClass2.ShowAdminfrm();
     }
     else
     {
         frmAllertMessage fa = new frmAllertMessage("К данному термналу не подключено устройство приема денежных средств.");
         fa.ShowDialog();
     }
 }
Exemplo n.º 8
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);
        }
Exemplo n.º 9
0
        /*
         * internal static void SetBillWithHands()
         * {
         *
         *  Utils.ToLog("SetBillWithHands ");
         *  AlohaTSClass.CheckWindow();
         *  string str = "";
         *  Check Chk = AlohaTSClass.GetCheckById((int)AlohaTSClass.AlohaCurentState.CheckId);
         *  AlohaTSClass.OrderAllItems(Chk.AlohaCheckNum, Chk.TableId, out str);
         *  AlohaTSClass.ApplyPaymentAndClose(Chk.AlohaCheckNum, Chk.Summ, iniFile.FCCCash);
         *
         *
         *  //FCCIntegration.MainClass.ShowWithHandsFrm(GetFCCCheckfromAloha(Chk));
         * }
         */
        public static bool InpectSmallChange(bool ShowSuccess)
        {
            Utils.ToLog("InpectSmallChange");
            if (!IsInited)
            {
                frmAllertMessage fa = new frmAllertMessage("К данному термналу не подключено устройство приема денежных средств.");
                fa.ShowDialog();
                return(false);
            }
            List <int> Minfvs      = new List <int>();
            List <int> NEfvs       = new List <int>();
            bool       SmallChange = FCCIntegration.MainClass2.SmallChange(out Minfvs, out NEfvs);

            if (SmallChange)
            {
                string SmallChangeMess = "В устройстве отсутствует необходимое для сдачи количество банкнот (монет) номиналом " + Environment.NewLine;
                foreach (int fv in Minfvs)
                {
                    SmallChangeMess += (fv / 100).ToString() + "р " + Environment.NewLine;
                }
                frmAllertMessage Mf = new frmAllertMessage(SmallChangeMess);
                Mf.ShowDialog();
                return(false);
            }
            if (NEfvs.Count > 0)
            {
                string SmallChangeMess = "Количество банкнот (монет) номиналом: " + Environment.NewLine;
                foreach (int fv in NEfvs)
                {
                    SmallChangeMess += (fv / 100).ToString() + "р " + Environment.NewLine;
                }
                frmAllertMessage Mf = new frmAllertMessage(SmallChangeMess + " близко к завершению");
                Mf.ShowDialog();
            }
            else
            {
                if (ShowSuccess)
                {
                    frmAllertMessage Mf = new frmAllertMessage("В устройстве достаточно сдачи");
                    Mf.ShowDialog();
                }
            }
            return(true);
        }
Exemplo n.º 10
0
        static internal bool CheckUnClosedChecks()
        {
            DirectoryInfo Di = new DirectoryInfo(ChecksPath);

            if (!Di.Exists)
            {
                Di.Create();
            }
            if (Di.GetFiles("*.1").Count() == 0)
            {
                return(true);
            }

            Utils.ToCardLog("CheckUnClosedChecks");
            frmAllertMessage Mf = new frmAllertMessage("Существуют незакрытые чеки. Будет произведена попытка закрытия чеков. После этого снова запустите отчет.");

            Mf.ShowDialog();


            if (!Shtrih2.QuereIsEmpty())
            {
                frmAllertMessage Mf2 = new frmAllertMessage("Очередь чеков содержит незакрытые чеки. Это говорит о неполадках ФР. Убедитесь в исправности ФР и перезапустите отчет.");
                Mf2.ShowDialog();
                return(false);
            }

            foreach (FileInfo fi in Di.GetFiles("*.1"))
            {
                Utils.ToCardLog("CheckUnClosedChecks " + fi.Name);
                try
                {
                    Check Ch = ReadCheckFromTmp(fi.FullName);
                    Ch.FiskalFileName = fi.FullName;
                    ToShtrih.CloseCheck2(Ch);
                }
                catch (Exception e)
                {
                    Utils.ToCardLog("[Error] CheckUnClosedChecks " + e.Message);
                }
            }
            return(false);
        }
Exemplo n.º 11
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();
                }
            }
        }
Exemplo n.º 12
0
        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();
        }