Ejemplo n.º 1
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);
            }
        }
Ejemplo n.º 2
0
        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);
        }