Ejemplo n.º 1
0
        // Build a document for printing
        public void ExecuteSale(ref PrintForm pf)
        {
            int deviceMode = GetDeviceStatus();

            if (deviceMode != 4)
            {
                try
                {
                    driver.OpenCheck();
                    for (int k = 0; k < pf.Positions.Count; k++)
                    {
                        driver.Password          = 30;
                        driver.Price             = pf.Positions[k].AmountPerUnit;
                        driver.Quantity          = Convert.ToDouble(Math.Round(pf.Positions[k].Quantity, 3));
                        driver.Department        = 1;
                        driver.Tax1              = 1;
                        driver.Tax2              = 0;
                        driver.Tax3              = 0;
                        driver.Tax4              = 0;
                        driver.StringForPrinting = pf.Positions[k].MaterialName;
                        driver.Sale();
                    }
                } finally
                {
                    driver.CloseCheck();
                    driver.OutputReceipt();
                }
            }
        }
Ejemplo n.º 2
0
        public static void CloseCheck(DrvFR driver, decimal summ1, string name)
        {
            driver.Password          = 30;
            driver.Summ1             = summ1;//сколько дал клиент
            driver.Summ2             = 0;
            driver.Summ3             = 0;
            driver.Summ4             = 0;
            driver.Tax1              = TaxType;
            driver.Tax2              = TaxType;
            driver.Tax3              = TaxType;
            driver.Tax4              = TaxType;
            driver.DiscountOnCheck   = CommonDiscount;
            driver.StringForPrinting = name;
            driver.CloseCheck();

            if (IsSuccess(driver) == 0)
            {
                Console.WriteLine($"Чек закрыт, сдача: { driver.Change }");
                WaitUntillPrint(driver);
            }
        }
Ejemplo n.º 3
0
        private bool CloseCheck(TLVReader.PayType payType, decimal summ, string name)
        {
            if (_driver == null)
            {
                return(false);
            }
            _driver.Summ1 = 0;//сколько дал клиент
            _driver.Summ2 = 0;
            _driver.Summ3 = 0;
            _driver.Summ4 = 0;
            _driver.Tax1  = 0;
            _driver.Tax2  = 0;
            _driver.Tax3  = 0;
            _driver.Tax4  = 0;
            var taxStr = "TaxType";
            int tax    = TaxType;

            switch (payType)
            {
            case TLVReader.PayType.Cash:
                _driver.Summ1 = summ;
                _driver.Tax1  = tax;
                break;

            case TLVReader.PayType.PayCard:
                _driver.Summ2 = summ;
                _driver.Tax2  = tax;
                break;

            case TLVReader.PayType.CreditCard:
                _driver.Summ3 = summ;
                _driver.Tax3  = tax;
                break;
            }
            //Driver.DiscountOnCheck = CommonDiscount;
            _driver.StringForPrinting = name;
            return(testResult(_driver.CloseCheck()));
        }
Ejemplo n.º 4
0
        public string PrintDocPack(DocPack doc, int MoneyType = -1,
                                   bool returnSale            = false, decimal?MoneySumm = null, string sendingAddress = "")
        {
            currentDrvPassword = doc.CashierPass;
            currentDocPack     = doc.AgrNumber;

            if (MoneyType != -1)
            {
                doc.MoneyType = MoneyType;
            }

            if (doc.Services.Count > 0 && doc.Services[0].ReturnShipping == 1)
            {
                returnSale = true;
            }

            PrepareDriver(currentDrvPassword);
            Driver.CheckType = (returnSale ? 2 : 0);

            Driver.OpenCheck();

            string sendingCheck = String.Empty;

            if (!String.IsNullOrEmpty(sendingAddress))
            {
                sendingCheck = sendingAddress;
            }
            else if (!String.IsNullOrEmpty(doc.Mobile))
            {
                sendingCheck = doc.Mobile;
            }
            else if (!String.IsNullOrEmpty(doc.Email))
            {
                sendingCheck = doc.Email;
            }

            if (!String.IsNullOrEmpty(sendingCheck))
            {
                Driver.CustomerEmail = sendingCheck;
                Driver.FNSendCustomerEmail();
            }

            PrintLine("Кассир: " + CRM.cashier, line: true);

            if (doc.Region)
            {
                PrintLine("Договор: " + doc.AgrNumber);
                PrintLine("BankID : " + doc.BankID, line: true);
            }


            foreach (Service service in doc.Services)
            {
                Driver.Password = currentDrvPassword;
                Driver.Timeout  = timeout;

                Driver.Quantity          = service.Quantity;
                Driver.Price             = service.Price;
                Driver.StringForPrinting = service.Name;

                Driver.Department = service.Department;

                Driver.Tax1 = service.VAT;
                Driver.Tax2 = 0;
                Driver.Tax3 = 0;
                Driver.Tax4 = 0;

                if (returnSale)
                {
                    Driver.ReturnSale();
                }
                else
                {
                    Driver.Sale();
                }

                PrintLine(line: true);
            }

            PrepareDriver(currentDrvPassword);

            Driver.StringForPrinting = String.Empty;

            if (doc.MoneyType == 1)
            {
                Log.Add("тип оплаты: наличными");

                Driver.Summ1 = MoneySumm ?? doc.Money;
                Driver.Summ2 = 0;
            }
            else
            {
                Log.Add("тип оплаты: безнал (реальный: " + doc.MoneyType.ToString() + ")");

                Driver.Summ2 = MoneySumm ?? doc.Money;
                Driver.Summ1 = 0;
            }

            Driver.CloseCheck();

            int    checkClosingResult    = Driver.ResultCode;
            string checkClosingErrorText = Driver.ResultCodeDescription;

            Log.AddWithCode("распечатка чека");

            if (checkClosingResult != 0)
            {
                PrepareDriver(currentDrvPassword);

                Driver.CancelCheck();

                Log.AddWithCode("отмена чека");
            }
            else if (!MainWindow.TEST_VERSION && !doc.Region)
            {
                repeatPrintingTimer.Enabled = true;
                repeatPrintingTimer.Start();
            }

            if (checkClosingResult == 0)
            {
                return("OK:" + Driver.Change);
            }
            else
            {
                CRM.SendError(checkClosingErrorText, doc.AgrNumber);

                return("ERR2:" + checkClosingErrorText);
            }
        }