Esempio n. 1
0
        private bool SlipReady()
        {
            IPrinterResponse response = Send(SlipRequest.CheckStatus(Part.SlipPaper));

            if (response.Detail == null)
            {
                throw new PrinterOfflineException();
            }
            if (response.Detail[6] == '1')//Slip is not detected by TOF sensor
            {
                response.Data = "Slip is not detected by TOF sensor";
                return(false);
            }

            if (response.Detail[5] == '1')//Slip is not detected by BOF sensor
            {
                response.Data = "Slip is not detected by BOF sensor";
                return(false);
            }

            if (response.Detail[3] == '1')//Waits for slip insertion
            {
                response.Data = "Waits for slip insertion";
                return(false);
            }
            return(true);
        }
Esempio n. 2
0
        public static IState PrintEJDocumentByTime(DateTime documentDate, bool hardcopy)
        {
            cr.State = WaitingState.Instance();
            DisplayAdapter.Cashier.Show(PosMessage.WRITING_EJ_DOCUMENT_REPORT);
            IPrinterResponse response = cr.Printer.PrintEJDocument(documentDate, hardcopy);

            cr.DataConnector.SaveReport(String.Format("EKURAPORU{0:ddMMyyyyHHmm}", documentDate), response.Detail);
            return(Continue());
        }
Esempio n. 3
0
        public static IState PrintEJDocumentById(int zno, int docId, bool hardcopy)
        {
            cr.State = WaitingState.Instance();
            DisplayAdapter.Cashier.Show(PosMessage.WRITING_EJ_DOCUMENT_REPORT);
            IPrinterResponse response = cr.Printer.PrintEJDocument(zno, docId, hardcopy);

            cr.DataConnector.SaveReport(String.Format("EKURAPORU{0:D4}{1:D4}", zno, docId), response.Detail);
            return(Continue());
        }
Esempio n. 4
0
        public static IState GetEJDaily(DateTime day, bool hardcopy)
        {
            cr.State = States.WaitingState.Instance();
            DisplayAdapter.Cashier.Show(PosMessage.WRITING_EJ_PERIODIC_REPORT);
            IPrinterResponse response = cr.Printer.PrintEJPeriodic(day, hardcopy);

            cr.DataConnector.SaveReport(String.Format("EKURAPORU{0:ddMMyyyy}", day), response.Detail);
            return(Continue());
        }
Esempio n. 5
0
        public static IState PrintEJPeriodicByDate(DateTime firstDate, DateTime lastDate, bool hardcopy)
        {
            cr.State = States.WaitingState.Instance();
            DisplayAdapter.Cashier.Show(PosMessage.WRITING_EJ_PERIODIC_REPORT);
            IPrinterResponse response = cr.Printer.PrintEJPeriodic(firstDate, lastDate, hardcopy);

            cr.DataConnector.SaveReport(String.Format("EKURAPORU{0:ddMMyyyyHHmm}{1:ddMMyyyyHHmm}", firstDate, lastDate), response.Detail);
            return(Continue());
        }
Esempio n. 6
0
 public static IState ReportFinished(IPrinterResponse response)
 {
     if (CashRegister.CurrentCashier == null && !ejOnly)
     {
         return(cr.State);
     }
     onReporting = false;
     return(Continue());
 }
Esempio n. 7
0
        public static IState PrintEJPeriodicByZNumber(int firstZNumber, int firstDocId, int lastZNumber, int lastDocId, bool hardcopy)
        {
            cr.State = WaitingState.Instance();
            DisplayAdapter.Cashier.Show(PosMessage.WRITING_EJ_PERIODIC_REPORT_BETWEEN_ZNO);
            IPrinterResponse response = cr.Printer.PrintEJPeriodic(firstZNumber, firstDocId, lastZNumber, lastDocId, hardcopy);

            cr.DataConnector.SaveReport(String.Format("EKURAPORU{0:D4}{1:D4}{2:D4}{3:D4}", firstZNumber, firstDocId, lastZNumber, lastDocId), response.Detail);
            return(Continue());
        }
Esempio n. 8
0
        public static IState PrintProgramReport(bool hardcopy)
        {
            cr.State = States.WaitingState.Instance();
            DisplayAdapter.Cashier.Show(PosMessage.WRITING_PROGRAM_REPORT);
            IPrinterResponse response = cr.Printer.PrintProgramReport(hardcopy);

            if (!response.HasError || !hardcopy)
            {
                cr.DataConnector.SaveReport("PRAPORU", response.Detail);
            }
            return(States.Start.Instance());
        }
Esempio n. 9
0
        public static IState PrintXPluReport(int firstPLU, int lastPLU, bool hardcopy)
        {
            cr.State = States.WaitingState.Instance();
            DisplayAdapter.Cashier.Show(PosMessage.WRITING_XPLU_REPORT_PLEASE_WAIT);
            IPrinterResponse response = cr.Printer.PrintXPluReport(firstPLU, lastPLU, hardcopy);

            if (!response.HasError || !hardcopy)
            {
                cr.DataConnector.SaveReport("XPLURAPORU", response.Detail);
            }
            return(States.Start.Instance());
        }
Esempio n. 10
0
        private IPrinterResponse PrintFiscalId()
        {
            IPrinterResponse response = null;
            string           fiscalNo = String.Format("{0}{1} {2}", " ".PadRight((InvoicePage.MaxCharsInLine - FiscalPrinter.FiscalRegisterNo.Length) / 2, ' '), FiscalPrinter.FiscalRegisterNo.Substring(0, 2),
                                                      FiscalPrinter.FiscalRegisterNo.Substring(2));

            response = Send(SlipRequest.WriteLine("      "));
            System.Threading.Thread.Sleep(100);
            response = Send(SlipRequest.WriteLine(fiscalNo));
            System.Threading.Thread.Sleep(100);
            return(response);
        }
Esempio n. 11
0
        private IPrinterResponse PrintFiscalId()
        {
            IPrinterResponse response = null;
            string           fiscalNo = String.Format("              {0} {1}", FiscalPrinter.FiscalRegisterNo.Substring(0, 2),
                                                      FiscalPrinter.FiscalRegisterNo.Substring(2));

            response = Send(SlipRequest.WriteLine("      "));
            System.Threading.Thread.Sleep(100);
            response = Send(SlipRequest.WriteLine(fiscalNo));
            System.Threading.Thread.Sleep(100);
            return(response);
        }
Esempio n. 12
0
 internal static IState PrintRegisterReportSummary(ICashier cashier, DateTime startZDate, DateTime endZDate, bool hardcopy)
 {
     if (cr.Printer is IPeriodicCashierReport)
     {
         cr.State = States.WaitingState.Instance();
         DisplayAdapter.Cashier.Show(PosMessage.WRITING_PROGRAM_REPORT);
         IPrinterResponse response = ((IPeriodicCashierReport)cr.Printer).PrintRegisterReportSummary(cashier, startZDate, endZDate, hardcopy);
         if (!response.HasError || !hardcopy)
         {
             cr.DataConnector.SaveReport("ORAPORU", response.Detail);
         }
     }
     return(States.Start.Instance());
 }
Esempio n. 13
0
        private static IState PrintZReport()
        {
            DisplayAdapter.Cashier.Show(PosMessage.WRITING_Z_REPORT);
            BackgroundWorker.IsfterZreport = true;
            IPrinterResponse response = cr.Printer.PrintZReport();

            if (!response.HasError)
            {
                cr.DataConnector.SaveReport("ZRAPORU", response.Detail);
            }

            manager = null;

            return(Instance());
        }
Esempio n. 14
0
        private IPrinterResponse Print(Decimal amount, String label)
        {
            List <String>    paymentItems = SlipPrinter.Invoicepage.FormatPayment(amount, label);
            IPrinterResponse response     = null;

            foreach (String row in paymentItems)
            {
                response = Send(SlipRequest.WriteLine(row));
            }

            //ReceiptPrinter prn = receiptPrinter as ReceiptPrinter;
            //prn.ShowPayment(amount);

            return(response);
        }
Esempio n. 15
0
        internal bool CheckConnection()
        {
            if (sp == null)
            {
                return(true);
            }
            //asking slip is not for slip request,
            //it is only for to reach printer
            IPrinterResponse response = Send(SlipRequest.CheckStatus(Part.SlipPaper));

            if (response.Detail == null)
            {
                return(false);
            }
            return(true);
        }
Esempio n. 16
0
        private IPrinterResponse PrintSubTotal(ISalesDocument document, bool hardcopy)
        {
            IPrinterResponse response = null;

            FiscalPrinter.Document = document;

            List <String> subtotalItems = Invoicepage.FormatSubTotal(document);

            if (hardcopy)
            {
                foreach (String s in subtotalItems)
                {
                    response = Send(SlipRequest.WriteLine(s));
                }
            }
            return(response);
        }
Esempio n. 17
0
        private IPrinterResponse Print(IAdjustment[] ai)
        {
            if ((ai == null || ai.Length == 0))
            {
                return(new SlipResponse());
            }
            List <String>    adjustmentItems = SlipPrinter.Invoicepage.Format(ai);
            IPrinterResponse response        = null;

            foreach (String row in adjustmentItems)
            {
                response = Send(SlipRequest.WriteLine(row));
            }
            foreach (IAdjustment adj in ai)
            {
                SlipPrinter.Invoicepage.SubTotal += adj.NetAmount;
            }
            return(response);
        }
Esempio n. 18
0
        private IPrinterResponse WriteLine(string line)
        {
            IPrinterResponse responseOffline = Send(SlipRequest.CheckStatus(Part.Offline));

            if (sp == null)
            {
                return(responseOffline);
            }

            if (responseOffline.Data == null && responseOffline.Detail == null)
            {
                throw new PowerFailureException();
            }
            if (!SlipReady())
            {
                DocumentRequested(new RequestSlipException(), new EventArgs());
                WaitForSlip();
            }
            return(Send(SlipRequest.WriteLine(line)));
        }
Esempio n. 19
0
        private IPrinterResponse PrintTotals(ISalesDocument document, bool hardcopy)
        {
            SlipPrinter.Document = document;
            if (totalLines == null)
            {
                totalLines = SlipPrinter.Invoicepage.FormatTotals(document);
                line_index_of_totals_to_print = 0;
            }
            IPrinterResponse response = null;

            int start = line_index_of_totals_to_print;

            for (int i = start; i < totalLines.Count; i++)
            {
                response = Send(SlipRequest.WriteLine(totalLines[i]));
                line_index_of_totals_to_print++;
            }

            return(response);
        }
Esempio n. 20
0
        private new IPrinterResponse Print(IFiscalItem fi)
        {
            if (SlipPrinter.Document.Id == 0)
            {
                SlipPrinter.Document.Id = FiscalPrinter.Printer.CurrentDocumentId;
                throw new DocumentIdNotSetException();
            }
            List <String>    fiscalItems = SlipPrinter.Invoicepage.Format(fi);
            IPrinterResponse response    = null;

            foreach (String row in fiscalItems)
            {
                if (!SlipReady())
                {
                    DocumentRequested(new RequestSlipException(), new EventArgs());
                    WaitForSlip();
                }

                response = Send(SlipRequest.WriteLine(row));
            }
            SlipPrinter.Invoicepage.SubTotal += fi.TotalAmount;

            // adjustment on item
            Adjustment adj = new Adjustment();

            decimal totalAdjAmount = 0;

            foreach (string adjOnItem in fi.GetAdjustments())
            {
                string[] values = adjOnItem.Split('|');
                totalAdjAmount += decimal.Parse(values[0]);
            }

            if (totalAdjAmount != 0)
            {
                adj = ParseAdjLine(fi.GetAdjustments()[0]);
                Print(adj);
            }

            return(response);
        }
Esempio n. 21
0
        private IPrinterResponse Print(Adjustment ai)
        {
            List <String>    adjustmentItems = SlipPrinter.Invoicepage.Format(ai);
            IPrinterResponse response        = null;

            foreach (String row in adjustmentItems)
            {
                response = Send(SlipRequest.WriteLine(row));
            }
            SlipPrinter.Invoicepage.SubTotal += ai.Amount;

            //ReceiptPrinter prn = receiptPrinter as ReceiptPrinter;
            //if (ai.NetAmount < 0)
            //{
            //    prn.ShowDiscount(Math.Abs(ai.NetAmount));
            //}
            //else
            //{
            //    prn.ShowFee(Math.Abs(ai.NetAmount));
            //}
            return(response);
        }
Esempio n. 22
0
        internal void RequestSlip()
        {
            List <String> postedPage = new List <string>();

            //Format sub totals, page number
            if (line_index_of_totals_to_print == 0)
            {
                postedPage = SlipPrinter.Invoicepage.FormatPageDeposit(SlipPrinter.Invoicepage.SubTotal);
            }

            postedPage.AddRange(SlipPrinter.Invoicepage.FormatPageNo(line_index_of_totals_to_print == 0));

            IPrinterResponse response = null;

            foreach (String row in postedPage)
            {
                response = Send(SlipRequest.WriteLine(row));
                System.Threading.Thread.Sleep(100);
            }
            try
            {
                response = PrintFiscalId();
                System.Threading.Thread.Sleep(500);
                ReleaseSheet();
                System.Threading.Thread.Sleep(1000);
                while (SlipReady())
                {
                }
            }
            catch { }

            DocumentRequested(new RequestSlipException(), new EventArgs());

            WaitForSlip();

            PrintHeader(FiscalPrinter.Document, false);

            System.Threading.Thread.Sleep(5000);
        }
Esempio n. 23
0
        public static IState PrintPeriodicReportByZNumber(int firstZNumber, int lastZNumber, bool hardcopy)
        {
            IPrinterResponse response = null;

            try
            {
                cr.State = States.WaitingState.Instance();
                DisplayAdapter.Cashier.Show(PosMessage.WRITING_FINANCIAL_Z_REPORT);
                response     = cr.Printer.PrintPeriodicReport(firstZNumber, lastZNumber, hardcopy);
                firstZNumber = lastZNumber = 0;
                //if (!response.StatusCode || !hardcopy)
                //    cr.DataConnector.SaveReport("MBRAPORU", response.Detail);
            }
            catch (WrongZCountException ex)
            {
                throw ex;
            }
            if (hardcopy)
            {
                return(cr.State);
            }
            return(cr.State = States.Start.Instance());
        }
Esempio n. 24
0
        public static IState FormatJournal()
        {
            try
            {
                IPrinterResponse response = cr.Printer.InitEJ();
                cr.Printer.SetZLimit(-1);
            }
            catch (EJChangedException ejce)
            {
                cr.Printer.SetZLimit(-1);
                throw ejce;
            }
            catch (Exception)
            {
            }
            state.Escape();//cr.State.Escape();

            /*
             * if (cr.CurrentCashier != null)
             *  cr.Printer.SignInCashier(cr.CurrentCashier);
             */
            return(States.Start.Instance());
        }
Esempio n. 25
0
        public static IState PrintPeriodicReportByDate(DateTime firstZDate, DateTime lastZDate, bool hardcopy)
        {
            IPrinterResponse response = null;

            try
            {
                if (firstZDate > lastZDate)
                {
                    throw new ParameterException("SON TARiH, iLK\n TARiHTEN KÜÇÜK");
                }
                cr.State = States.WaitingState.Instance();
                DisplayAdapter.Cashier.Show(PosMessage.WRITING_FINANCIAL_Z_REPORT);
                response = cr.Printer.PrintPeriodicReport(firstZDate, lastZDate, hardcopy);
                if (!response.HasError || !hardcopy)
                {
                    cr.DataConnector.SaveReport("MBRAPORU", response.Detail);
                }
            }
            catch (WrongZCountException ex)
            {
                throw ex;
            }
            catch (ParameterException pe)
            {
                if (!hardcopy)
                {
                    AlertCashier.Instance(new Error(pe));
                }
                throw pe;
            }
            if (hardcopy)
            {
                return(cr.State);
            }
            return(cr.State = States.Start.Instance());
        }
Esempio n. 26
0
        public static IState PrintZReport()
        {
            IPrinterResponse response = null;

            try
            {
                cr.State = States.WaitingState.Instance();
                DisplayAdapter.Cashier.Show(PosMessage.WRITING_Z_REPORT);
                response = cr.Printer.PrintZReport();
                if (!response.HasError)
                {
                    cr.DataConnector.SaveReport("ZRAPORU", response.Detail);
                }
            }
            catch (EJFullException eje) { cr.State = ElectronicJournalError.Instance(eje); }
            finally
            {
                if (cr.CurrentCashier == null && !(cr.State is ElectronicJournalError))
                {
                    cr.State = States.Login.Instance();
                }
            }
            return(cr.State);
        }
Esempio n. 27
0
        private IPrinterResponse Print(IFiscalItem fi)
        {
            if (SlipPrinter.Document.Id == 0)
            {
                SlipPrinter.Document.Id = FiscalPrinter.Printer.CurrentDocumentId;
                throw new DocumentIdNotSetException();
            }
            List <String>    fiscalItems = SlipPrinter.Invoicepage.Format(fi);
            IPrinterResponse response    = null;

            foreach (String row in fiscalItems)
            {
                if (!SlipReady())
                {
                    DocumentRequested(new RequestSlipException(), new EventArgs());
                    WaitForSlip();
                }

                response = Send(SlipRequest.WriteLine(row));
            }
            SlipPrinter.Invoicepage.SubTotal += fi.TotalAmount;

            return(response);
        }
Esempio n. 28
0
        public IPrinterResponse SendCurrencyInfo(ICurrency[] currencies)
        {
            IPrinterResponse response = null;

            return(response);
        }
Esempio n. 29
0
        public IPrinterResponse SendCreditInfo(ICredit[] credits)
        {
            IPrinterResponse response = null;

            return(response);
        }
Esempio n. 30
0
        public IPrinterResponse PrintFooter(ISalesDocument document)
        {
            FiscalPrinter.Document = document;

            //PRINT HEADER
            try
            {
                this.PrintHeader(document, true);
                WaitForSlip();
            }
            catch (PrinterException pe)
            {
                if (OnMessage != null)
                {
                    OnMessage(this, new OnMessageEventArgs(pe));
                }
                ;
            }

            //PRINT FISCAL ITEMS
            foreach (IFiscalItem fi in document.Items)
            {
                this.Print(fi);
            }
            WaitForSlip();

            String[]   docAdjustments = document.GetAdjustments();
            Adjustment adj            = null;

            if (docAdjustments.Length > 0)
            {
                adj = ParseAdjLine(docAdjustments[0]);

                if (adj.Type == AdjustmentType.Fee)
                {
                    document.TotalAmount -= adj.Amount;
                }
                else
                {
                    document.TotalAmount += adj.Amount;
                }
            }

            // PRINT SUBTOTAL
            WriteLine("");
            PrintSubTotal(document, true);
            WaitForSlip();
            if (adj != null)
            {
                Print(adj);

                if (adj.Type == AdjustmentType.Fee)
                {
                    document.TotalAmount += adj.Amount;
                }
                else
                {
                    document.TotalAmount -= adj.Amount;
                }
            }

            // PRINT TOTAL
            PrintTotals(document, true);
            WaitForSlip();

            // PRINT PAYMENT
            PrintPayments();
            WaitForSlip();

            // PRINT FOOTER
            List <String> footerItems = SlipPrinter.Invoicepage.FormatFooter(document);

            SlipPrinter.Invoicepage.ClearInvoice();
            IPrinterResponse response = null;

            foreach (String s in footerItems)
            {
                response = Send(SlipRequest.WriteLine(s));
            }
            WaitForSlip();
            response = PrintFiscalId();
            try
            {
                ReleaseSheet();
            }
            catch (PrinterOfflineException)
            {
                FiscalPrinter.Log.Error("Fatura kagidini printerdan zamaninda aliniz!");
            }
            finally
            {             //sp.ReadTimeout = FPU_TIMEOUT;
            }

            while (true)
            {
                if (!SlipReady())
                {
                    break;
                }
                System.Threading.Thread.Sleep(100);
            }

            if (FiscalPrinter.CanOpenDrawer(document))
            {
                OpenDrawer();
            }

            // SLIP INFO RECEIPT
            try
            {
                response = PrintSlipInfoReceipt(document);
                response = EndSlipInfoReceipt();
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(new SlipResponse());
        }