// 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(); } } }
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); } }
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())); }
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); } }