Example #1
0
 public void Print(ClientHelper clientHelper, DocumentType documentType)
 {
     if (documentType == DocumentType.Service)
         PrintServiceDocumentString(clientHelper);
     else
         PrintFiscalDocumentString(clientHelper);
 }
Example #2
0
        private void PrintServiceDocumentString(ClientHelper clientHelper)
        {
            var request = new Request(0x40)
                .Append(value, exactLength, justification)
                .Append(textAttributes);

            clientHelper.Client.GetResponse(request);
        }
Example #3
0
        public void Print(ClientHelper clientHelper, DocumentType documentType)
        {
            var request = new Request(0x41)
                .Append(printText ? 2 : 0)
                .Append(2)
                .Append(80)
                .Append(2)
                .Append(data);

            clientHelper.Client.GetResponse(request);
        }
Example #4
0
        private EcrStatusFlags StartOrWork(ClientHelper clientHelper)
        {
            var ecrFlags = GetEcrFlags(clientHelper.Client);

            if (ecrFlags.CurrentStatus.StartOfWorkHasNotBeenCalled)
            {
                var request = new Request(0x10)
                    .Append(DateTime.Now, false)
                    .Append(DateTime.Now, true);

                try
                {
                    clientHelper.Client.GetResponse(request);
                }
                catch (ProtocolException e)
                {
                    if (e.ErrorCode != 0x0B)
                        throw;
                }
            }

            return ecrFlags;
        }
Example #5
0
        private void SetTableString(ClientHelper clientHelper, Int32 tableNumber, Int32 tableRow,
            String value, out Int32 errorCode)
        {
            if (value == null)
                value = String.Empty;

            try
            {
                var request = new Request(0x12)
                    .Append(tableNumber)
                    .Append(tableRow)
                    .Append(value, 40);

                clientHelper.Client.GetResponse(request);

                errorCode = Constants.E_SUCCESS;
            }
            catch (KeyNotFoundException)
            {
                errorCode = Constants.E_NOT_FOUND;
            }
            catch (TimeoutException)
            {
                errorCode = Constants.E_TIMEOUT;
            }
            catch (ProtocolException e)
            {
                errorCode = e.ErrorCode == 0x0F ? Constants.E_SUCCESS : e.ErrorCode;
            }
        }
Example #6
0
        private void AddPayment(ClientHelper clientHelper, Int32 paymentType, Int32 amount)
        {
            var request = new Request(0x47)
                .Append(paymentType)
                .Append((Decimal)amount / 100)
                .Append(String.Empty);

            clientHelper.Client.GetResponse(request);
        }
Example #7
0
        private void SetDateTime(ClientHelper clientHelper, Boolean repeatOnError)
        {
            try
            {
                var request = new Request(0x14)
                    .Append(DateTime.Today, false)
                    .Append(DateTime.Now, true);

                clientHelper.Client.GetResponse(request);
            }
            catch (ProtocolException e)
            {
                if (e.ErrorCode == 0x0A && repeatOnError)
                {
                    SetDateTime(clientHelper, false);
                    return;
                }

                throw;
            }
        }
Example #8
0
 private void PrintOrMakeBuffering(ClientHelper clientHelper, IBufferedItem item)
 {
     var documentType = GetEcrFlags(clientHelper.Client).DocumentStatus.Type;
     if (documentType == DocumentType.None)
     {
         clientHelper.BufferedItems.Add(item);
     }
     else
     {
         item.Print(clientHelper, documentType);
     }
 }
Example #9
0
 private void PrintBufferedItems(DocumentType documentType, ClientHelper clientHelper)
 {
     try
     {
         foreach (var item in clientHelper.BufferedItems)
         {
             item.Print(clientHelper, documentType);
         }
     }
     finally
     {
         clientHelper.BufferedItems.Clear();
     }
 }
Example #10
0
 private void CloseDocument(ClientHelper clientHelper)
 {
     clientHelper.Client.GetResponse(new Request(0x31).Append(0));
 }
Example #11
0
        private void OpenDocument(ClientHelper clientHelper, DocumentType documentType, Int32 deptNo)
        {
            var ecrFlags = StartOrWork(clientHelper);

            if (ecrFlags.DocumentStatus.Type == DocumentType.None)
            {
                var request = new Request(0x30)
                    .Append((Int32)documentType)
                    .Append(deptNo)
                    .Append(clientHelper.CashierName, Cashier_Name_Len)
                    .Append(0);

                clientHelper.Client.GetResponse(request);

                PrintBufferedItems(documentType, clientHelper);
            }
        }