Exemple #1
0
        protected override void OnRegistration(string commentary, uint quantity, uint amount,
                                               byte section)
        {
            ExecuteDriverCommand(delegate()
            {
                _errorCode = (short)GeneralError.Success;

                POSCommand cmd = new POSCommand(209);
                cmd.AddChar(OPERATOR_PASSWD, 4);  // пароль
                cmd.AddNumeric(section, 3);       // номер отдела
                cmd.AddBChar("");                 // штрих-код
                cmd.AddBChar("");                 // внутренний учетный код
                cmd.AddBChar(commentary);         // название
                cmd.AddNumeric((int)amount, 10);  // цена
                cmd.AddNumeric((int)quantity, 8); // количество
                cmd.AddNumeric(0, 10);            // стоимость тары
                cmd.AddBChar("");                 // размерность

                byte[] nRsp = new byte[5];

                _errorCode = cmd.Execute(Port, nRsp);
                if (_errorCode != (short)GeneralError.Success)
                {
                    CancelDocument();
                }
            });
        }
Exemple #2
0
        protected override void OnOpenDocument(DocumentType docType, string cashierName, string cashierInn, string customerPhoneOrEmail)
        {
            ExecuteDriverCommand(delegate()
            {
                _errorCode = (short)GeneralError.Success;

                if (PrinterStatus.OpenedDocument)
                {
                    _errorCode = CancelDocument();
                }

                m_CurrentDocType = docType;
                POSCommand cmd   = new POSCommand(205);
                cmd.AddChar(OPERATOR_PASSWD, 4);
                switch (docType)
                {
                case DocumentType.Sale:
                    cmd.AddNumeric(0, 2);
                    break;

                case DocumentType.Refund:
                    cmd.AddNumeric(1, 2);
                    break;

                case DocumentType.PayingIn:
                    cmd.AddNumeric(2, 2);
                    break;

                case DocumentType.PayingOut:
                    cmd.AddNumeric(3, 2);
                    break;

                case DocumentType.Other:
                    cmd.AddNumeric(4, 2);
                    break;

                case DocumentType.XReport:
                case DocumentType.ZReport:
                case DocumentType.SectionsReport:
                    //                        m_nErrorCode = PrintReport(docType);
                    return;
                }

                cmd.AddBChar(cashierName);  // имя оператора
                cmd.AddNumeric(13, 2);      // код оператора
                cmd.AddBChar("");           // отдел
                cmd.AddBChar("");           // подотдел

                byte[] nRsp = new byte[5];
                _errorCode  = cmd.Execute(Port, nRsp);
            });
        }
Exemple #3
0
        protected override void OnPrintString(string source, FontStyle style)
        {
            ExecuteDriverCommand(delegate()
            {
                _errorCode = (short)GeneralError.Success;

                if (m_CurrentDocType == DocumentType.XReport ||
                    m_CurrentDocType == DocumentType.ZReport ||
                    m_CurrentDocType == DocumentType.SectionsReport)
                {
                    return;
                }

                POSCommand cmd = new POSCommand(206);
                cmd.AddChar(OPERATOR_PASSWD, 4); // пароль
                cmd.AddNumeric(0, 1);            // устройство
                cmd.AddBChar(source);            // текст

                _errorCode = cmd.Execute(Port);

                if (_errorCode != (short)GeneralError.Success)
                {
                    CancelDocument();
                }
            });
        }
Exemple #4
0
        protected override void OnPrintBarcode(string barcode, AlignOptions align,
                                               bool readable)
        {
            ExecuteDriverCommand(delegate()
            {
                _errorCode = (short)GeneralError.Success;

                byte[] nPrintBuffer = new byte[256];
                int BufSize         = 0;

                // позиционирование по центру
                nPrintBuffer[BufSize++] = 0x1B;
                nPrintBuffer[BufSize++] = Convert.ToByte('a');
                nPrintBuffer[BufSize++] = 1;

                // высота штрих-кода
                nPrintBuffer[BufSize++] = 0x1D;
                nPrintBuffer[BufSize++] = Convert.ToByte('h');
                nPrintBuffer[BufSize++] = 70;

                // ширина кода
                nPrintBuffer[BufSize++] = 0x1D;
                nPrintBuffer[BufSize++] = Convert.ToByte('w');
                nPrintBuffer[BufSize++] = 2;

                // цифры
                nPrintBuffer[BufSize++] = 0x1D;
                nPrintBuffer[BufSize++] = Convert.ToByte('H');
                if (readable)
                {
                    nPrintBuffer[BufSize++] = 2;
                }
                else
                {
                    nPrintBuffer[BufSize++] = 0;
                }

                // штрих-код
                nPrintBuffer[BufSize++] = 0x1D;
                nPrintBuffer[BufSize++] = Convert.ToByte('k');
                nPrintBuffer[BufSize++] = 0x43;
                nPrintBuffer[BufSize++] = 0x0C;

                POSCommand cmd = new POSCommand(237);
                cmd.AddChar(OPERATOR_PASSWD, 4);                                            // пароль
                cmd.AddNumeric(0, 1);                                                       // устройство
                cmd.AddBChar(Encoding.ASCII.GetString(nPrintBuffer, 0, BufSize) + barcode); // данные

                _errorCode = cmd.Execute(Port);

                if (_errorCode != (short)GeneralError.Success)
                {
                    CancelDocument();
                }
            });
        }
Exemple #5
0
        // установка сообщений
        private bool SetConst()
        {
            POSCommand Cmd = new POSCommand(231);

            Cmd.AddChar(OPERATOR_PASSWD, 4);
            Cmd.AddNumeric(5, 2);
            Cmd.AddBChar("НЕФИСКАЛЬНЫЙ ДОКУМЕНТ");
            _errorCode = Cmd.Execute(Port);
            return(_errorCode == (short)GeneralError.Success);
        }
Exemple #6
0
        // установка подвала документа
        private bool SetDocumentFooter()
        {
            if (DocumentFooter == null)
            {
                return(true);
            }

            POSCommand Cmd = null;

            // очистка подвала
            Cmd = new POSCommand(233);
            Cmd.AddChar(OPERATOR_PASSWD, 4);
            _errorCode = Cmd.Execute(Port);
            if (_errorCode != (short)GeneralError.Success)
            {
                return(false);
            }

            // установка строк подвала
            for (int i = 0; i < DocumentFooter.Length; i++)
            {
                Cmd = new POSCommand(234);   // установить строку подвала
                Cmd.AddChar(OPERATOR_PASSWD, 4);
                Cmd.AddNumeric(i + 1, 2);
                Cmd.AddNumeric(1, 2);
                if (DocumentFooter[i].Length > MAX_STRING_LEN)
                {
                    Cmd.AddBChar(DocumentFooter[i].Substring(0, MAX_STRING_LEN));
                }
                else
                {
                    Cmd.AddBChar(DocumentFooter[i]);
                }
                _errorCode = Cmd.Execute(Port);

                if (_errorCode != (short)GeneralError.Success)
                {
                    break;
                }
            }

            return(_errorCode == (short)GeneralError.Success);
        }