コード例 #1
0
        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;
        }
コード例 #2
0
        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;
        }
コード例 #3
0
        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;
        }