Exemplo n.º 1
0
 public override bool Buy(string what, int quanity, Decimal amount, string text)
 {
     FR.Buy b = new Buy();
     b.Name           = what;
     b.Quanity        = quanity.ToString();
     b.Amount         = amount;
     b.AdditionalText = text;
     return(Buy(b));
 }
Exemplo n.º 2
0
 public virtual bool Buy(Buy buy)
 {
     return(false);
 }
Exemplo n.º 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);
            }
        }