Example #1
0
        public void RegisterProduct(string name, string barcode, double quantity, double price, int numPos = 1)
        {
            if (!driverExists)
            {
                return;
            }

            if (cmd.GetStatus() < 0)
            {
                MessageBox.Show("Ошибка ККМ: " + cmd.GetStatus().ToString());
                return;
            }
            cmd.TaxTypeNumber = Properties.Settings.Default.taxType;
            cmd.SummTax();

            cmd.Name       = name;
            cmd.Price      = price;
            cmd.Quantity   = quantity;
            cmd.Department = numPos;

            cmd.Registration();
        }
Example #2
0
        public static void Registration(string Name, double Price, double Quantity, int TaxTypeNumber,
                                        int Department = 1, int DiscountType = 0, double DiscountValue = 0)
        {
            ECR.Name     = Name;
            ECR.Price    = Price;
            ECR.Quantity = Quantity;
            //ECR

            ECR.Destination   = 1;
            ECR.TaxTypeNumber = TaxTypeNumber;
            //ECR.Summ = (400 * 18) / 100;
            //ECR.SummTax();

            ECR.Department    = Department;
            ECR.DiscountType  = DiscountType;
            ECR.DiscountValue = DiscountValue;

            if (ECR.Registration() != 0)
            {
                return;
            }
        }
Example #3
0
        public override bool Buy(Buy buy)
        {
            try
            {
                /*if (buy == null)
                 *  throw new Exception("Покупка не может быть null");*/
                Log("Формирование покупки");

                //if(buy.Name.Trim().Length == 0 || buy.Amount == 0 || buy.Quanity.Trim().Length==0)
                //    throw new Exception("Невозможно зарегистрировать нулевую покупку.");



                if (!KKM.DeviceEnabled)
                {
                    KKM.DeviceEnabled = true;
                }

                if (KKM.ResultCode != 0)
                {
                    Log("Результирующий код != 0, выход из покупки");
                    return(false);
                }

                if (FiscalMode)
                {
                    Log("Установлен фискальный режим");

                    /* if (!OpenPayment())
                     * {
                     *
                     *   return false;
                     * }*/

                    // Если регистрация производится в фискальном режиме.
                    // Пароль кассира
                    KKM.Password = _pkass;
                    // входим в режим регистрации
                    KKM.Mode = 1;
                    int i = KKM.SetMode();
                    Log("Вход в режим регистрации");
                    if (!Execute(i))
                    {
                        if (_errorNumber == "0" && (i == -3802 || i == -3822))
                        {
                            Log("Смена превысила 24 часа, или незакрыта покупка. Попытка войти в режим");
                            int jj = KKM.SetMode();
                            if (jj != 0)
                            {
                                return(false);
                            }
                        }
                        else
                        {
                            Log("Ошибка №" + _errorNumber + " отменяем покупку");
                            return(false);
                        }
                    }

                    KKM.Name       = buy.Name;
                    KKM.Price      = System.Convert.ToDouble(buy.Amount);
                    KKM.Quantity   = System.Convert.ToDouble(buy.Quanity);
                    KKM.Department = 1;
                    Log("Регистрация покупки");
                    if (!Execute(KKM.Registration()))
                    {
                        //KKM.ResultCode;
                        //KKM.ResultDescription;
                        Log("Покупка не прошла. Выход");
                        return(false);
                    }
                    Log("Перенос по словам, доп текст:" + buy.AdditionalText + "");

                    KKM.TextWrap = 1; // Перенос по словам.
                    KKM.Caption  = buy.AdditionalText;
                    Log("Печать строки");
                    if (!Execute(KKM.PrintString()))
                    {
                        return(false);
                    }
                    Log("Закрываем покупку");
                    return(ClosePayment());
                }
                else
                {
                    Log("Нефискальный режим, просто печать текста:" + buy.AdditionalText);
                    //Не фискальный режим. Просто печатаем текст.
                    KKM.TextWrap = 1; // Перенос по словам.
                    KKM.Caption  = buy.AdditionalText;
                    Log("Печать строки");
                    if (!Execute(KKM.PrintString()))
                    {
                        Log("Печать не прошла. не обрезаем");
                        return(false);
                    }
                    Log("Полная обрезка");
                    return(Execute(KKM.FullCut()));
                }
            }
            catch //(Exception ex)
            {
                //ex = ex;
                return(false);
            }
        }
Example #4
0
        private bool PayAtol(double cash, double card, string cashier = "Кассир", int numCheck = -1, int numSession = 0, bool vozvrat = false)
        {
            if (!SetDevice())
            {
                return(false);
            }

            ECR.Mode = 1;
            if (ECR.SetMode() != 0)
            {
                MessageBox.Show(ECR.ResultDescription);
                return(false);
            }

            ECR.AttrNumber = 1021;
            ECR.AttrValue  = cashier;
            if (ECR.WriteAttribute() != 0)
            {
                MessageBox.Show(ECR.ResultDescription);
                return(false);
            }

            numCheck   = ECR.CheckNumber;
            numSession = ECR.Session;

            int num = 1;

            foreach (DataGridViewRow item in dataGridViewChecks.Rows)
            {
                ECR.Name     = num.ToString() + ". " + item.Cells["ColumnProduct"].Value.ToString();
                ECR.Quantity = double.Parse(item.Cells["ColumnQty"].Value.ToString());
                //ECR.Department = Отдел;
                ECR.TaxTypeNumber = int.Parse(item.Cells["ColumnNDSValue"].Value.ToString());
                ECR.Price         = double.Parse(item.Cells["ColumnPrice"].Value.ToString());

                ECR.Percents           = double.Parse(item.Cells["ColumnDiscountValue"].Value.ToString());
                ECR.DiscountValue      = double.Parse(item.Cells["ColumnDiscountValue"].Value.ToString());
                ECR.DiscountType       = 1;
                ECR.DiscountTypeNumber = 1;

                if (!vozvrat)
                {
                    if (ECR.Registration() != 0)
                    {
                        MessageBox.Show(ECR.ResultDescription);
                        return(false);
                    }
                }
                else
                {
                    if (ECR.Return() != 0)
                    {
                        MessageBox.Show(ECR.ResultDescription);
                        return(false);
                    }
                }

                num++;
            }

            if (cash > 0)
            {
                ECR.Summ      = cash;
                ECR.TypeClose = 0;
                ECR.Payment();
            }

            if (card > 0)
            {
                ECR.Summ      = card;
                ECR.TypeClose = 3;
                ECR.Payment();
            }

            if (ECR.CloseCheck() != 0)
            {
                MessageBox.Show(ECR.ResultDescription);
                return(false);
            }


            if (ECR.ResetMode() != 0)
            {
                MessageBox.Show(ECR.ResultDescription);
                return(false);
            }

            ECR.DeviceEnabled = false;
            if (ECR.ResultCode != 0)
            {
                MessageBox.Show(ECR.ResultDescription);
                return(false);
            }

            return(true);
        }