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