public void TotalEx(string text, int payMode, double sum) { char payName = MHelper.GetPayNameFromNumber(payMode); _datecsPort.SendCommand(Commands.PaymentAndCloseRecipt, text + '\t' + (payMode == 1 ? payName + sum : payName)); string tmpString = MHelper.GetStringFromByteArray(_datecsPort.DataToHost); PropertiesUpdate(new List <string> { tmpString.Substring(0, 1), tmpString.Substring(1) }); MHelper.WriteLog("TotalEx(string text, int payMode, double sum). Sum " + sum + ". Payment type - " + payName + ". Text - " + text); switch (s1) { case "F": ErrorPropertiesUpdate("Ошибка операции всего", 29); break; case "E": ErrorPropertiesUpdate("Ошибка операции всего. Вычисленная сумма орицательна", 30); break; case "D": ErrorPropertiesUpdate("Ошибка операции всего. Внесенной сумы недостаточно.", 31); break; case "R": ErrorPropertiesUpdate("Ошибка операции всего. Внесенная сумма больше чем сумма по чеку", 32); break; case "I": ErrorPropertiesUpdate("Ошибка операции всего. Сумма по некторым налоговым группам отрицательна", 33); break; } }
public void OpenPort(int portNum, int baudRate) { MHelper.WriteLog("Библиотека для РРО КБМ Групп" + "(Версия 1.0.0.3). 27 февраля 2017 года."); if (baudRate == 9600 || baudRate == 19200 || baudRate == 57600 || baudRate == 115200) { _datecsPort = Datecs.GetDatecsPrinterPort(portNum, baudRate); } else { ErrorPropertiesUpdate("Неверная скорость СОМ порта, будет установлена 115200", 1); _datecsPort = Datecs.GetDatecsPrinterPort(portNum, 115200); } _datecsPort.EventHandlersAddRemove(UpdateDataEventHandler, ErrorPropertiesEventHandler, ErrorPropertiesEventHandler); _datecsPort.EventHandlersAddRemove(MHelper.DataUpdateHandler, MHelper.ErrorHandler, MHelper.StatusUpdateHandler); if (_datecsPort.PortOpen()) { MHelper.WriteLog("Port COM" + portNum + " is opened"); _datecsPort.SendCommand(Commands.DiagnosticInfo); if (s6.Length == 10) { if (!s6.StartsWith("КБ") && !s6.StartsWith("БМ")) { ErrorPropertiesUpdate("Ошибка лицензии. Заводской номер должен начинаться с КБ или БМ.", 8); ClosePort(); } } } }
public void RegistrAndDisplayItemEx(int artNum, double quantity, double price, double percDisc, double sumDisc) { if (percDisc == 0.00 && sumDisc == 0.00) { _datecsPort.SendCommand(Commands.SalesRegister, "+" + artNum + "*" + quantity + "#" + price); MHelper.WriteLog("RegistrAndDisplayItemEx(int artNum, double quantity, double price, double percDisc, double sumDisc). PLU - " + artNum + ". Quantity - " + quantity); } else if (percDisc != 0.00 && sumDisc == 0.00) { _datecsPort.SendCommand(Commands.SalesRegister, "+" + artNum + "*" + quantity + "#" + price, percDisc.ToString()); MHelper.WriteLog("RegistrAndDisplayItemEx(int artNum, double quantity, double price, double percDisc, double sumDisc). PLU - " + artNum + ". Quantity - " + quantity + ". Perc discount - " + percDisc); } else if (percDisc == 0.00 && sumDisc != 0.00) { _datecsPort.SendCommand(Commands.SalesRegister, "+" + artNum + "*" + quantity + "#" + price + ";" + sumDisc); MHelper.WriteLog("RegistrAndDisplayItemEx(int artNum, double quantity, double price, double percDisc, double sumDisc). PLU - " + artNum + ". Quantity - " + quantity + ". Sum discount - " + sumDisc); } else { ErrorPropertiesUpdate("Не правильные параметры функции", -1); } }
public void SetTaxName(int tax, string name) { string paymentType = string.Empty; switch (tax) { case 1: paymentType = "I"; break; case 2: paymentType = "J"; break; case 3: paymentType = "K"; break; case 4: paymentType = "L"; break; } _datecsPort.SendCommand(Commands.AdditionalPaymentType, paymentType, name); MHelper.WriteLog("SetTaxName(int tax, string name). Payment type = " + tax + ". Payment name = " + name); }
public void OpenNonfiscalReceipt() { _datecsPort.SendCommand(Commands.OpenNonFiscalReceipt); switch (s1) { case "1": ErrorPropertiesUpdate("Ошибка открытия нефискального чека. Фискальная память не форматирована", 25); break; case "2": ErrorPropertiesUpdate("Ошибка открытия нефискального чека. Открыт фискальный чек", 26); break; case "3": ErrorPropertiesUpdate("Ошибка открытия нефискального чека. Нефискальный чек уже открыт", 27); break; case "4": ErrorPropertiesUpdate("Ошибка открытия нефискального чека. Не установлены дата/время", 28); break; default: MHelper.WriteLog("OpenNonfiscalReceipt()"); ErrorPropertiesUpdate(string.Empty, 0); break; } }
public void SetMulDecCurRF(string passwd, int dec, string enableTax, double taxA, double taxB, double taxC, double taxD) { _datecsPort.SendCommand(Commands.TaxSet, passwd, dec.ToString(), enableTax, taxA.ToString(), taxB.ToString(), taxC.ToString(), taxD.ToString()); MHelper.WriteLog("SetMulDecCurRF(string " + passwd + "," + "int " + dec + ",string" + enableTax + ", double" + taxA + ", double" + taxB + ", double" + taxC + ", double" + taxD); }
private byte[] CommandFormation(string command, string data) { DataToPrinter = MHelper.GetByteArrayFromString(data); _seq++; if (_seq == MaxSeq) { _seq = MinSeq; } List <byte> commToPrinter = new List <byte>(); byte leng = (byte)(0x04 + 0x20 + data.Length); commToPrinter.Add(Preamb); commToPrinter.Add(leng); commToPrinter.Add(_seq); commToPrinter.Add(MHelper.StringToByte(command)); byte[] tempByte = MHelper.GetByteArrayFromString(data); commToPrinter.AddRange(tempByte); commToPrinter.Add(Enquiry); tempByte = CsCount(MHelper.ByteListToArray(commToPrinter)); commToPrinter.AddRange(tempByte); commToPrinter.Add(Postamb); CommandToPrinter = MHelper.ByteListToArray(commToPrinter); return(CommandToPrinter); }
public void PerDiscTax(int taxGrp, double disc) { char taxName = MHelper.GetTaxNameFromNumber(taxGrp); _datecsPort.SendCommand(Commands.GroupTaxDiscount, "T" + taxName, "11", (-disc).ToString()); MHelper.WriteLog("PerDiscTax(int group, double disc). By tax group - " + taxName + ". Value - " + disc); }
public void PrintNullCheck() { OpenFiscalReceipt(1, "0000", 1); PrintFiscalText("НУЛЕВОЙ ЧЕК"); Total(string.Empty, 1, 0.00); CloseFiscalReceipt(); MHelper.WriteLog("PrintNullCheck()"); }
public void LastFiscalClosure(int param) { _datecsPort.SendCommand(Commands.LastFiscalClosureInfo, param > 1 || param < 0 ? "0" : param.ToString()); List <string> tmpList = MHelper.GetStringListFromByteArray(_datecsPort.DataToHost); tmpList[0] = tmpList[0].Substring(1); PropertiesUpdate(tmpList); MHelper.WriteLog("LastFiscalClosure(int param). Param - " + param); }
private void ErrorPropertiesUpdate(string errorMes, int errorCode) { LastErrorText = errorMes; LastError = errorCode; if (errorCode != 0) { MHelper.WriteLog(errorMes + " " + errorCode, LogType.Error); } }
public void ChangeArticlePrice(string passwd, int artNum, double price) { _datecsPort.SendCommand(Commands.ProgramArticles, "C" + artNum, price.ToString(), passwd); if (s1 == "F") { ErrorPropertiesUpdate("Ошибка чтения/программирования артикула", 34); return; } MHelper.WriteLog("ChangeArticlePrice(string passwd, int artNum, double price) is " + artNum + " . Price is " + price); }
public void DelArticle(string passwd, int artNum) { _datecsPort.SendCommand(Commands.ProgramArticles, "D" + (artNum == 0 ? "A," + passwd : artNum + "," + passwd)); if (s1 == "F") { ErrorPropertiesUpdate("Ошибка чтения/программирования артикула", 34); return; } MHelper.WriteLog("DelArticle(string passwd, int artNum) " + artNum); }
// 내부 함수 ------------------------------------ private void RenderGrid() { float step = 10.0f; int cnt = 50; uint color = 4094967295; MHelper.DrawGrid(new Vector3(0, 0, 0), step, step, cnt, cnt, color); MHelper.DrawGrid(new Vector3(0, 0, 0), -step, step, cnt, cnt, color); MHelper.DrawGrid(new Vector3(0, 0, 0), step, -step, cnt, cnt, color); MHelper.DrawGrid(new Vector3(0, 0, 0), -step, -step, cnt, cnt, color); }
public void SubTotal(double percDisc, double sumDisc) { if (percDisc != 0.00 && sumDisc != 0) { ErrorPropertiesUpdate("Не правильные параметры функции", -1); return; } _datecsPort.SendCommand(Commands.SubTotalDiscAllow, "11" + (percDisc != 0 ? "," + percDisc : "") + (sumDisc != 0 ? ";" + sumDisc : "")); MHelper.WriteLog("SubTotal(double percDisc, double sumDisc). Percent - " + percDisc + ". Sum - " + sumDisc); }
public void SetArticle(int artNum, int taxGrp, int grp, double price, string passwd, string name) { char taxName = MHelper.GetTaxNameFromNumber(taxGrp); _datecsPort.SendCommand(Commands.ProgramArticles, "P" + taxName + artNum, grp.ToString(), price.ToString(), passwd, name); if (s1 == "F") { ErrorPropertiesUpdate("Ошибка чтения/программирования артикула", 34); return; } MHelper.WriteLog("SetArticle(int artNum, int taxGrp, int grp, double price, string passwd, string name) " + artNum); }
public void SetFiscalNumber(string fNumber) { _datecsPort.SendCommand(Commands.FiscalNumberSet, fNumber); if (s1 == "F") { ErrorPropertiesUpdate("Ошибка установки фискального номера", 23); } else { MHelper.WriteLog("SetFiscalNumber(string fNumber) is " + fNumber); } }
public void SetSerialNumber(string serial) { _datecsPort.SendCommand(Commands.SerialNumberSet, "2", serial); if (s1 == "F") { ErrorPropertiesUpdate("Ошибка установки заводского номера", 22); } else { MHelper.WriteLog("SetSerialNumber(string serial) is " + serial); } }
public void SetTaxNumber(string taxNum, int type) { _datecsPort.SendCommand(Commands.PersonalNumberSet, taxNum, type.ToString()); if (s1 == "F") { ErrorPropertiesUpdate("Ошибка установки налогового номера", 24); } else { MHelper.WriteLog("SetTaxNumber(string taxNum, int type) is " + taxNum); } }
public void InOut(double sum) { _datecsPort.SendCommand(Commands.SericeInOut, sum.ToString()); if (s1 == "F") { ErrorPropertiesUpdate("Ошибка служебного внесения/выдачи", 35); } else { MHelper.WriteLog("InOut(double sum) = " + sum); } }
private void RefreshData() { if (PortAnswer != null) { DataToHost = DataFromPrinter(PortAnswer); Status = CurrentStatus(PortAnswer); } else { DataToHost = MHelper.GetByteArrayFromString("F,F,F,F,F,F"); Status = _emptyByteArray; } }
public void SetPrintDensity(int value) { if (value >= 1 && value <= 5) { _datecsPort.SendCommand(Commands.PrintSettings, "D" + value); MHelper.WriteLog("SetPrintDensity(int value) value = " + value); } else { _datecsPort.SendCommand(Commands.PrintSettings, "D3"); MHelper.WriteLog("SetPrintDensity(int value) incorrect value. Set = 3 ", LogType.Error); } }
public void SetBarcodeHeight(int value) { if (value >= 24 && value <= 240) { _datecsPort.SendCommand(Commands.PrintSettings, "B" + value); MHelper.WriteLog("SetBarcodeHeight(int value) value = " + value); } else { _datecsPort.SendCommand(Commands.PrintSettings, "B240"); MHelper.WriteLog("SetBarcodeHeight(int value) incorrect value. Set = 240", LogType.Error); } }
public void GetFirstArticle() { _datecsPort.SendCommand(Commands.ProgramArticles, "F"); List <string> tmpList = MHelper.GetStringListFromByteArray(_datecsPort.DataToHost); if (tmpList[0].StartsWith("P") && tmpList[0].Length > 1) { tmpList[0] = tmpList[0].Replace("P", string.Empty); tmpList.Insert(0, "P"); } PropertiesUpdate(tmpList); MHelper.WriteLog("GetFirstArticle()"); }
public void Fiscalise(string passwd, string serial, string taxnum, int taxNumType) { _datecsPort.SendCommand(Commands.FiscalizationPersonalization, passwd, serial, taxnum, taxNumType.ToString()); switch (s1) { case "1": ErrorPropertiesUpdate("Ошибка фискализации. Команда выполнена 10 раз", 13); break; case "2": ErrorPropertiesUpdate("Ошибка фискализации. Не задан фискальный номер", 14); break; case "3": ErrorPropertiesUpdate("Ошибка фискализации. Не правильный заводской номер или данные рефискализации", 15); break; case "4": ErrorPropertiesUpdate("Ошибка фискализации. Открыт фискальный или не фискальный чек", 16); break; case "5": ErrorPropertiesUpdate("Ошибка фискализации. В текущей смене осуществлялись продажи. Сделайте Z-отчет", 17); break; case "6": ErrorPropertiesUpdate("Ошибка фискализации. Не заданы налоговый ставки", 18); break; case "7": ErrorPropertiesUpdate("Ошибка фискализации. Налоговый номер состоит из нулей или имеет не правильную длину", 19); break; case "8": ErrorPropertiesUpdate("Ошибка фискализации. Отсутствует лента", 20); break; case "9": ErrorPropertiesUpdate("Ошибка фискализации. Не установлены дата/время", 21); break; default: MHelper.WriteLog("Fiscalise(string passwd, string serial, string taxnum, int taxNumType)." + serial + " " + taxnum + " " + taxNumType); ErrorPropertiesUpdate(string.Empty, 0); break; } }
public void GetLastFreeArticle() { _datecsPort.SendCommand(Commands.ProgramArticles, "x"); List <string> tmpList = MHelper.GetStringListFromByteArray(_datecsPort.DataToHost); if (tmpList[0].StartsWith("P") && tmpList[0].Length > 1) { tmpList[0] = tmpList[0].Replace("P", ""); tmpList.Insert(0, "P"); } PropertiesUpdate(tmpList); if (s1 == "F") { ErrorPropertiesUpdate("Ошибка чтения/программирования артикула", 34); return; } MHelper.WriteLog("GetLastFreeArticle()"); }
public void PrintRepByArt(string passwd, int type) { string reportType = string.Empty; switch (type) { case 1: reportType = "S"; break; case 2: reportType = "P"; break; case 3: reportType = "G"; break; } _datecsPort.SendCommand(Commands.ArticlesReport, passwd, reportType); MHelper.WriteLog("PrintRepByArt(string passwd, int type)"); }
private bool ReadPort() { string str = string.Empty; char temp = (char)Syn; if (!ReadAnswerFirstByte(ref temp)) { return(false); } str += temp; str += _port.ReadExisting(); byte[] ans = MHelper.GetByteArrayFromString(str); while (ans[ans.Length - 1] != Terminator) { str += _port.ReadExisting(); ans = MHelper.GetByteArrayFromString(str); } if (!AnswerLenghtCount(ans)) { return(false); } PortAnswer = ans; return(true); }
public PQDocument UpdateExpressions(IEnumerable <NamedExpression> expressions) { return(new PQDocument(MHelper.ReplaceSharedMembers(Code, expressions.ToDictionary(exp => exp.Name, exp => exp.Expression)))); }
internal NamedExpression TransformExpression(Func <string, string> transformer) { string identifier = MHelper.EscapeIdentifier(Guid.NewGuid().ToString()); return(new NamedExpression(Name, $"let {identifier} =\n{Expression} in {transformer(identifier)}")); }