public bool PrintOrderSlipCountCompositionHeader(long ProductID, int iRetailPlusOSPrinter1Ctr, int iRetailPlusOSPrinter2Ctr, int iRetailPlusOSPrinter3Ctr, int iRetailPlusOSPrinter4Ctr, int iRetailPlusOSPrinter5Ctr, out int RetailPlusOSPrinter1Ctr, out int RetailPlusOSPrinter2Ctr, out int RetailPlusOSPrinter3Ctr, out int RetailPlusOSPrinter4Ctr, out int RetailPlusOSPrinter5Ctr) { // returns // false if no product composition // true if with product composition bool boRetValue = false; Data.ProductComposition clsProductComposition = new Data.ProductComposition(mConnection, mTransaction); mConnection = clsProductComposition.Connection; mTransaction = clsProductComposition.Transaction; System.Data.DataTable dt = clsProductComposition.ListAsDataTable(ProductID); foreach (System.Data.DataRow dr in dt.Rows) { bool orderSlipPrinter1 = bool.Parse(dr["OrderSlipPrinter1"].ToString()); bool orderSlipPrinter2 = bool.Parse(dr["OrderSlipPrinter2"].ToString()); bool orderSlipPrinter3 = bool.Parse(dr["OrderSlipPrinter3"].ToString()); bool orderSlipPrinter4 = bool.Parse(dr["OrderSlipPrinter4"].ToString()); bool orderSlipPrinter5 = bool.Parse(dr["OrderSlipPrinter5"].ToString()); if (orderSlipPrinter1) { iRetailPlusOSPrinter1Ctr++; } if (orderSlipPrinter2) { iRetailPlusOSPrinter2Ctr++; } if (orderSlipPrinter3) { iRetailPlusOSPrinter3Ctr++; } if (orderSlipPrinter4) { iRetailPlusOSPrinter4Ctr++; } if (orderSlipPrinter5) { iRetailPlusOSPrinter5Ctr++; } long lProductID = Convert.ToInt64(dr["ProductID"]); PrintOrderSlipCountCompositionHeader(lProductID, iRetailPlusOSPrinter1Ctr, iRetailPlusOSPrinter2Ctr, iRetailPlusOSPrinter3Ctr, iRetailPlusOSPrinter4Ctr, iRetailPlusOSPrinter5Ctr, out RetailPlusOSPrinter1Ctr, out RetailPlusOSPrinter2Ctr, out RetailPlusOSPrinter3Ctr, out RetailPlusOSPrinter4Ctr, out RetailPlusOSPrinter5Ctr); boRetValue = true; } RetailPlusOSPrinter1Ctr = iRetailPlusOSPrinter1Ctr; RetailPlusOSPrinter2Ctr = iRetailPlusOSPrinter2Ctr; RetailPlusOSPrinter3Ctr = iRetailPlusOSPrinter3Ctr; RetailPlusOSPrinter4Ctr = iRetailPlusOSPrinter4Ctr; RetailPlusOSPrinter5Ctr = iRetailPlusOSPrinter5Ctr; return boRetValue; }
public bool PrintOrderSlipComposition(long ProductID, string ProductCode, string ProductUnitCode, decimal Quantity, bool bolWillPrintProductComposition) { bool boRetValue = false; bool bolRetailPlusOSPrinter1ItemHeaderPrinted = false; bool bolRetailPlusOSPrinter2ItemHeaderPrinted = false; bool bolRetailPlusOSPrinter3ItemHeaderPrinted = false; bool bolRetailPlusOSPrinter4ItemHeaderPrinted = false; bool bolRetailPlusOSPrinter5ItemHeaderPrinted = false; Data.ProductComposition clsProductComposition = new Data.ProductComposition(mConnection, mTransaction); mConnection = clsProductComposition.Connection; mTransaction = clsProductComposition.Transaction; System.Data.DataTable dt = clsProductComposition.ListAsDataTable(ProductID); clsProductComposition.CommitAndDispose(); foreach (System.Data.DataRow dr in dt.Rows) { bool orderSlipPrinter1 = bool.Parse(dr["OrderSlipPrinter1"].ToString()); bool orderSlipPrinter2 = bool.Parse(dr["OrderSlipPrinter2"].ToString()); bool orderSlipPrinter3 = bool.Parse(dr["OrderSlipPrinter3"].ToString()); bool orderSlipPrinter4 = bool.Parse(dr["OrderSlipPrinter4"].ToString()); bool orderSlipPrinter5 = bool.Parse(dr["OrderSlipPrinter5"].ToString()); long lProductID = Convert.ToInt64(dr["ProductID"]); string stProductCode = "" + dr["ProductCode"].ToString(); string stProductUnitCode = "" + dr["UnitCode"].ToString(); decimal decQuantity = Convert.ToDecimal(dr["Quantity"]); string strItemRemarks = "" + dr["ItemRemarks"].ToString(); if (orderSlipPrinter1 && !bolRetailPlusOSPrinter1ItemHeaderPrinted) { bolRetailPlusOSPrinter1ItemHeaderPrinted = true; PrintItemToOSPrinter(ProductCode, ProductUnitCode, Quantity, AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter1, bolWillPrintProductComposition, strItemRemarks); } if (orderSlipPrinter2 && !bolRetailPlusOSPrinter2ItemHeaderPrinted) { bolRetailPlusOSPrinter2ItemHeaderPrinted = true; PrintItemToOSPrinter(ProductCode, ProductUnitCode, Quantity, AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter2, bolWillPrintProductComposition, strItemRemarks); } if (orderSlipPrinter3 && !bolRetailPlusOSPrinter3ItemHeaderPrinted) { bolRetailPlusOSPrinter3ItemHeaderPrinted = true; PrintItemToOSPrinter(ProductCode, ProductUnitCode, Quantity, AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter3, bolWillPrintProductComposition, strItemRemarks); } if (orderSlipPrinter4 && !bolRetailPlusOSPrinter4ItemHeaderPrinted) { bolRetailPlusOSPrinter4ItemHeaderPrinted = true; PrintItemToOSPrinter(ProductCode, ProductUnitCode, Quantity, AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter4, bolWillPrintProductComposition, strItemRemarks); } if (orderSlipPrinter5 && !bolRetailPlusOSPrinter5ItemHeaderPrinted) { bolRetailPlusOSPrinter5ItemHeaderPrinted = true; PrintItemToOSPrinter(ProductCode, ProductUnitCode, Quantity, AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter5, bolWillPrintProductComposition, strItemRemarks); } if (!PrintOrderSlipComposition(lProductID, stProductCode, stProductUnitCode, decQuantity, bolWillPrintProductComposition)) { // if there are no product composition // print the product only if (orderSlipPrinter1) { PrintItemCompositionToOSPrinter(" " + stProductCode, stProductUnitCode, decQuantity, OrderSlipPrinter.RetailPlusOSPrinter1); } if (orderSlipPrinter2) { PrintItemCompositionToOSPrinter(" " + stProductCode, stProductUnitCode, decQuantity, OrderSlipPrinter.RetailPlusOSPrinter2); } if (orderSlipPrinter3) { PrintItemCompositionToOSPrinter(" " + stProductCode, stProductUnitCode, decQuantity, OrderSlipPrinter.RetailPlusOSPrinter3); } if (orderSlipPrinter4) { PrintItemCompositionToOSPrinter(" " + stProductCode, stProductUnitCode, decQuantity, OrderSlipPrinter.RetailPlusOSPrinter4); } if (orderSlipPrinter5) { PrintItemCompositionToOSPrinter(" " + stProductCode, stProductUnitCode, decQuantity, OrderSlipPrinter.RetailPlusOSPrinter5); } } boRetValue = true; } return boRetValue; }
public bool PrintOrderSlip(bool WillReprintAll, bool isFromSuspendTransaction = false) { bool boRetValue = true; if (mclsTerminalDetails.AutoPrint == PrintingPreference.Auto) { MessageBox.Show("Sorry this option is not applicable for Auto-Print receipt.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2); return false; } if (!mboIsInTransaction) { MessageBox.Show("No active transaction is found! Please transact first.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2); return false; } DialogResult loginresult = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.SuspendTransaction); if (loginresult == DialogResult.None) { LogInWnd login = new LogInWnd(); login.AccessType = AccessTypes.SuspendTransaction; login.Header = "Print Order Slip Validation"; login.TerminalDetails = mclsTerminalDetails; login.ShowDialog(this); loginresult = login.Result; login.Close(); login.Dispose(); } if (loginresult != DialogResult.OK) { boRetValue = false; } else { if (mclsTerminalDetails.ReceiptType == TerminalReceiptType.SalesInvoice) { PrintSalesInvoice(); } else if (mclsTerminalDetails.ReceiptType == TerminalReceiptType.DeliveryReceipt) { PrintDeliveryReceipt(); } else if (mclsTerminalDetails.ReceiptType == TerminalReceiptType.SalesInvoiceAndDR) { PrintSalesInvoice(); PrintDeliveryReceipt(); } else if (mclsTerminalDetails.ReceiptType == TerminalReceiptType.SalesInvoiceForLX300Printer) { PrintSalesInvoiceToLX(TerminalReceiptType.SalesInvoiceForLX300Printer); } //Added May 11, 2010 else if (mclsTerminalDetails.ReceiptType == TerminalReceiptType.SalesInvoiceOrDR) { PrintDeliveryReceipt(); } //Added January 17, 2011 else if (mclsTerminalDetails.ReceiptType == TerminalReceiptType.SalesInvoiceForLX300PlusPrinter) { PrintSalesInvoiceToLX(TerminalReceiptType.SalesInvoiceForLX300PlusPrinter); } //Added February 22, 2011 else if (mclsTerminalDetails.ReceiptType == TerminalReceiptType.SalesInvoiceForLX300PlusAmazon) { PrintSalesInvoiceToLX(TerminalReceiptType.SalesInvoiceForLX300PlusAmazon); //8.5inc x 7inch } else { Cursor.Show(); Cursor.Current = Cursors.WaitCursor; /************************* * Check if will reprint all items for ALT + S * December 18, 2008 * **********************/ bool bolRetailPlusOSPrinter1HeaderPrinted = false; bool bolRetailPlusOSPrinter2HeaderPrinted = false; bool bolRetailPlusOSPrinter3HeaderPrinted = false; bool bolRetailPlusOSPrinter4HeaderPrinted = false; bool bolRetailPlusOSPrinter5HeaderPrinted = false; Data.ProductComposition clsProductComposition = new Data.ProductComposition(mConnection, mTransaction); mConnection = clsProductComposition.Connection; mTransaction = clsProductComposition.Transaction; Data.Products clsProduct = new Data.Products(mConnection, mTransaction); mConnection = clsProduct.Connection; mTransaction = clsProduct.Transaction; // print order slip items in each printer foreach (System.Data.DataRow dr in ItemDataTable.Rows) { bool OrderSlipPrinted = Convert.ToBoolean(dr["OrderSlipPrinted"]); /**** * 05Dec2014 remove the WillReprintAll * it's only tagged as printed if success print * ***/ if (!OrderSlipPrinted || WillReprintAll) //if (!OrderSlipPrinted) { /**************************************** * Update items that are already printed * December 18, 2008 * * 05Dec2014 Remove this, should only set to true if success printing ****************************************/ //Int64 iTransactionItemsID = Convert.ToInt64(dr["TransactionItemsID"]); //clsSalesTransactionItems.UpdateOrderSlipPrinted(true, iTransactionItemsID, mclsSalesTransactionDetails.TransactionDate); if (dr["Quantity"].ToString() != "VOID" && dr["Quantity"].ToString().IndexOf("RETURN") == -1) { //string stItemNo = "" + dr["ItemNo"].ToString(); long lProductID = Convert.ToInt64(dr["ProductID"]); bool bolWillPrintProductComposition = clsProduct.WillPrintProductComposition(lProductID); string stProductCode = "" + dr["ProductCode"].ToString(); string stProductUnitCode = "" + dr["ProductUnitCode"].ToString(); decimal decQuantity = Convert.ToDecimal(dr["Quantity"]); string strItemRemarks = "" + dr["ItemRemarks"].ToString(); bool orderSlipPrinter1 = bool.Parse(dr["OrderSlipPrinter1"].ToString()); bool orderSlipPrinter2 = bool.Parse(dr["OrderSlipPrinter2"].ToString()); bool orderSlipPrinter3 = bool.Parse(dr["OrderSlipPrinter3"].ToString()); bool orderSlipPrinter4 = bool.Parse(dr["OrderSlipPrinter4"].ToString()); bool orderSlipPrinter5 = bool.Parse(dr["OrderSlipPrinter5"].ToString()); // print the headers if (orderSlipPrinter1 && !bolRetailPlusOSPrinter1HeaderPrinted) { bolRetailPlusOSPrinter1HeaderPrinted = true; PrintOrderSlipHeader(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter1, WillReprintAll); } if (orderSlipPrinter2 && !bolRetailPlusOSPrinter2HeaderPrinted) { bolRetailPlusOSPrinter2HeaderPrinted = true; PrintOrderSlipHeader(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter2, WillReprintAll); } if (orderSlipPrinter3 && !bolRetailPlusOSPrinter3HeaderPrinted) { bolRetailPlusOSPrinter3HeaderPrinted = true; PrintOrderSlipHeader(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter3, WillReprintAll); } if (orderSlipPrinter4 && !bolRetailPlusOSPrinter4HeaderPrinted) { bolRetailPlusOSPrinter4HeaderPrinted = true; PrintOrderSlipHeader(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter4, WillReprintAll); } if (orderSlipPrinter5 && !bolRetailPlusOSPrinter5HeaderPrinted) { bolRetailPlusOSPrinter5HeaderPrinted = true; PrintOrderSlipHeader(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter5, WillReprintAll); } // print product composition first: // if there are product compositions no need to print product if (bolWillPrintProductComposition) { if (!PrintOrderSlipComposition(lProductID, stProductCode, stProductUnitCode, decQuantity, bolWillPrintProductComposition)) { // if there are no product composition // print the product only if (orderSlipPrinter1) { PrintItemToOSPrinter(stProductCode, stProductUnitCode, decQuantity, OrderSlipPrinter.RetailPlusOSPrinter1, true, strItemRemarks); } if (orderSlipPrinter2) { PrintItemToOSPrinter(stProductCode, stProductUnitCode, decQuantity, OrderSlipPrinter.RetailPlusOSPrinter2, true, strItemRemarks); } if (orderSlipPrinter3) { PrintItemToOSPrinter(stProductCode, stProductUnitCode, decQuantity, OrderSlipPrinter.RetailPlusOSPrinter3, true, strItemRemarks); } if (orderSlipPrinter4) { PrintItemToOSPrinter(stProductCode, stProductUnitCode, decQuantity, OrderSlipPrinter.RetailPlusOSPrinter4, true, strItemRemarks); } if (orderSlipPrinter5) { PrintItemToOSPrinter(stProductCode, stProductUnitCode, decQuantity, OrderSlipPrinter.RetailPlusOSPrinter5, true, strItemRemarks); } } } else { // if there are no product composition // print the product only if (orderSlipPrinter1) { PrintItemToOSPrinter(stProductCode, stProductUnitCode, decQuantity, OrderSlipPrinter.RetailPlusOSPrinter1, true, strItemRemarks); } if (orderSlipPrinter2) { PrintItemToOSPrinter(stProductCode, stProductUnitCode, decQuantity, OrderSlipPrinter.RetailPlusOSPrinter2, true, strItemRemarks); } if (orderSlipPrinter3) { PrintItemToOSPrinter(stProductCode, stProductUnitCode, decQuantity, OrderSlipPrinter.RetailPlusOSPrinter3, true, strItemRemarks); } if (orderSlipPrinter4) { PrintItemToOSPrinter(stProductCode, stProductUnitCode, decQuantity, OrderSlipPrinter.RetailPlusOSPrinter4, true, strItemRemarks); } if (orderSlipPrinter5) { PrintItemToOSPrinter(stProductCode, stProductUnitCode, decQuantity, OrderSlipPrinter.RetailPlusOSPrinter5, true, strItemRemarks); } } } /**************************************** * Update items that are already printed * December 18, 2008 * * 05Dec2014 Remove this, should only set to true if success printing ****************************************/ // dr["OrderSlipPrinted"] = true.ToString(); } } clsProductComposition.CommitAndDispose(); // print order slip footer in each printer if (bolRetailPlusOSPrinter1HeaderPrinted) { if (isPrinterOnline(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter1.ToString("G"))) { if (!PrintOrderSlipFooter(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter1)) { ShowOrderSlipPrinterError(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter1, isFromSuspendTransaction); boRetValue = false; } else UpdateOrderSlipAsPrinted(OrderSlipPrinter.RetailPlusOSPrinter1); //boRetValue = boRetValue; } else { ShowOrderSlipPrinterError(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter1, isFromSuspendTransaction, true); boRetValue = false; } } if (bolRetailPlusOSPrinter2HeaderPrinted) { if (isPrinterOnline(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter2.ToString("G"))) { if (!PrintOrderSlipFooter(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter2)) { ShowOrderSlipPrinterError(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter2, isFromSuspendTransaction); boRetValue = false; } else UpdateOrderSlipAsPrinted(OrderSlipPrinter.RetailPlusOSPrinter2); //boRetValue = boRetValue; } else { ShowOrderSlipPrinterError(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter2, isFromSuspendTransaction, true); boRetValue = false; } } if (bolRetailPlusOSPrinter3HeaderPrinted) { if (isPrinterOnline(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter3.ToString("G"))) { if (!PrintOrderSlipFooter(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter3)) { ShowOrderSlipPrinterError(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter3, isFromSuspendTransaction); boRetValue = false; } else UpdateOrderSlipAsPrinted(OrderSlipPrinter.RetailPlusOSPrinter3); //boRetValue = boRetValue } else { ShowOrderSlipPrinterError(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter3, isFromSuspendTransaction, true); boRetValue = false; } } if (bolRetailPlusOSPrinter4HeaderPrinted) { if (isPrinterOnline(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter4.ToString("G"))) { if (!PrintOrderSlipFooter(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter4)) { ShowOrderSlipPrinterError(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter4, isFromSuspendTransaction); boRetValue = false; } else UpdateOrderSlipAsPrinted(OrderSlipPrinter.RetailPlusOSPrinter4); //boRetValue = boRetValue; } else { ShowOrderSlipPrinterError(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter4, isFromSuspendTransaction, true); boRetValue = false; } } if (bolRetailPlusOSPrinter5HeaderPrinted) { if (isPrinterOnline(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter5.ToString("G"))) { if (!PrintOrderSlipFooter(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter5)) { ShowOrderSlipPrinterError(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter5, isFromSuspendTransaction); boRetValue = false; } else UpdateOrderSlipAsPrinted(OrderSlipPrinter.RetailPlusOSPrinter5); } else { ShowOrderSlipPrinterError(AceSoft.RetailPlus.OrderSlipPrinter.RetailPlusOSPrinter5, isFromSuspendTransaction, true); boRetValue = false; } } Cursor.Current = Cursors.Default; Cursor.Hide(); // show message only if boRetValue=true // no need to message if boRetValue=false, coz it has already shown error message if (boRetValue && !isFromSuspendTransaction) { if (WillReprintAll) MessageBox.Show("Order's has been re-send to Kitchen/Bar printer's.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); else MessageBox.Show("Order's has been sent to Kitchen/Bar printer's.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); } } } return boRetValue; }