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); }
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()); }
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()); }
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()); }
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()); }
public static IState ReportFinished(IPrinterResponse response) { if (CashRegister.CurrentCashier == null && !ejOnly) { return(cr.State); } onReporting = false; return(Continue()); }
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()); }
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()); }
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()); }
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); }
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); }
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()); }
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()); }
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); }
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); }
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); }
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); }
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))); }
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); }
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); }
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); }
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); }
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()); }
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()); }
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()); }
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); }
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); }
public IPrinterResponse SendCurrencyInfo(ICurrency[] currencies) { IPrinterResponse response = null; return(response); }
public IPrinterResponse SendCreditInfo(ICredit[] credits) { IPrinterResponse response = null; return(response); }
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()); }