public void PrintEJournalReport(Data.SalesTransactionDetails[] salesDetails) { Cursor.Current = Cursors.WaitCursor; try { PrintingPreference oldCONFIG_AutoPrint = mclsTerminalDetails.AutoPrint; mclsTerminalDetails.AutoPrint = PrintingPreference.Normal; mboIsItemHeaderPrinted = true; PrintReportHeaderSection(false, DateTime.MinValue); msbToPrint.Append("-".PadRight(mclsTerminalDetails.MaxReceiptWidth, '-') + Environment.NewLine); msbToPrint.Append(CenterString("ELECTRONIC JOURNAL REPORT", mclsTerminalDetails.MaxReceiptWidth) + Environment.NewLine); msbToPrint.Append("-".PadRight(mclsTerminalDetails.MaxReceiptWidth, '-') + Environment.NewLine); Data.ChequePaymentDetails[] arrChequePaymentDetails; Data.CreditCardPaymentDetails[] arrCreditCardPaymentDetails; Data.CreditPaymentDetails[] arrCreditPaymentDetails; Data.DebitPaymentDetails[] arrDebitPaymentDetails; Data.Payment clspayment = new Data.Payment(mConnection, mTransaction); mConnection = clspayment.Connection; mTransaction = clspayment.Transaction; foreach (Data.SalesTransactionDetails trandetails in salesDetails) { // set the details mclsSalesTransactionDetails = trandetails; /*** * Print the Headers * OFFICIAL RECEIPT #: * Transaction Date * Item Header ***/ PrintReportPageHeaderSection(true); /*** * Print the Items ***/ int itemno = 0; decimal TotalItemSold = 0; decimal iTotalQuantitySold = 0; foreach (Data.SalesTransactionItemDetails item in trandetails.TransactionItems) { itemno++; TotalItemSold++; iTotalQuantitySold += item.Quantity; string stProductCode = item.Description; if (!string.IsNullOrEmpty(item.MatrixDescription)) stProductCode += "-" + item.MatrixDescription; PrintItem(itemno.ToString(), stProductCode, item.ProductUnitCode, item.Quantity, item.Price, item.Discount, item.PromoApplied, item.Amount, item.VAT, item.EVAT, item.DiscountCode, item.ItemDiscountType); } /*** * Print the Footer ***/ /*********************************************************************************/ PrintPageFooterASection(); if (trandetails.TransactionStatus == TransactionStatus.Refund) { if (trandetails.CashPayment != 0) msbToPrint.Append("Cash Refund".PadRight(15) + ":" + trandetails.CashPayment.ToString("###,##0.#0").Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); if (trandetails.ChequePayment != 0) { msbToPrint.Append("Cheque Refund".PadRight(15) + ":" + trandetails.ChequePayment.ToString("###,##0.#0").Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); arrChequePaymentDetails = new Data.ChequePayments(clspayment.Connection, clspayment.Transaction).Details(trandetails.BranchID, trandetails.TerminalNo, trandetails.TransactionID); if (arrChequePaymentDetails != null) { foreach (Data.ChequePaymentDetails chequepaymentdet in arrChequePaymentDetails) { //print cheque details msbToPrint.Append("Cheque No.".PadRight(15) + ":" + chequepaymentdet.ChequeNo.Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); msbToPrint.Append("Amount".PadRight(15) + ":" + chequepaymentdet.Amount.ToString("#,##0.#0").Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); msbToPrint.Append("Validity Date".PadRight(15) + ":" + chequepaymentdet.ValidityDate.ToString("yyyy-MM-dd").PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); msbToPrint.Append(Environment.NewLine); } } } if (trandetails.CreditCardPayment != 0) { msbToPrint.Append("Credit Card Refund".PadRight(15) + ":" + trandetails.CreditCardPayment.ToString("###,##0.#0").Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); arrCreditCardPaymentDetails = new Data.CreditCardPayments(clspayment.Connection, clspayment.Transaction).Details(trandetails.BranchID, trandetails.TerminalNo, trandetails.TransactionID); if (arrCreditCardPaymentDetails != null) { foreach (Data.CreditCardPaymentDetails cardpaymentdet in arrCreditCardPaymentDetails) { //print credit card details //print credit card details msbToPrint.Append("Card Type".PadRight(15) + ":" + cardpaymentdet.CardTypeCode.Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); msbToPrint.Append("Card No.".PadRight(15) + ":" + cardpaymentdet.CardNo.Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); if (cardpaymentdet.CardHolder.Trim() != mclsSalesTransactionDetails.CustomerDetails.ContactName.Trim()) msbToPrint.Append("Member Name".PadRight(15) + ":" + cardpaymentdet.CardHolder.Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); if (cardpaymentdet.Amount != mclsSalesTransactionDetails.AmountPaid) msbToPrint.Append("Amount".PadRight(15) + ":" + cardpaymentdet.Amount.ToString("#,##0.#0").Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); if (cardpaymentdet.CardHolder != mclsSalesTransactionDetails.CustomerDetails.ContactName && !string.IsNullOrEmpty(cardpaymentdet.ValidityDates)) msbToPrint.Append("Validity Date".PadRight(15) + ":" + cardpaymentdet.ValidityDates.Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); msbToPrint.Append(Environment.NewLine); } } } } else if (trandetails.TransactionStatus == TransactionStatus.Closed || trandetails.TransactionStatus == TransactionStatus.Reprinted || trandetails.TransactionStatus == TransactionStatus.Open || trandetails.TransactionStatus == TransactionStatus.CreditPayment) { msbToPrint.Append("-".PadRight(mclsTerminalDetails.MaxReceiptWidth, '-') + Environment.NewLine); if (trandetails.CashPayment != 0) msbToPrint.Append("Cash Payment".PadRight(15) + ":" + trandetails.CashPayment.ToString("###,##0.#0").Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); if (trandetails.ChequePayment != 0) { msbToPrint.Append("Cheque Payment".PadRight(15) + ":" + trandetails.ChequePayment.ToString("###,##0.#0").Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); arrChequePaymentDetails = new Data.ChequePayments(clspayment.Connection, clspayment.Transaction).Details(trandetails.BranchID, trandetails.TerminalNo, trandetails.TransactionID); if (arrChequePaymentDetails != null) { foreach (Data.ChequePaymentDetails chequepaymentdet in arrChequePaymentDetails) { //print checque details msbToPrint.Append("Cheque No.".PadRight(15) + ":" + chequepaymentdet.ChequeNo.Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); msbToPrint.Append("Amount".PadRight(15) + ":" + chequepaymentdet.Amount.ToString("#,##0.#0").Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); msbToPrint.Append("Validity Date".PadRight(15) + ":" + chequepaymentdet.ValidityDate.ToString("yyyy-MM-dd").PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); msbToPrint.Append(Environment.NewLine); } } } if (trandetails.CreditCardPayment != 0) { msbToPrint.Append("Credit Card Payment".PadRight(15) + ":" + trandetails.CreditCardPayment.ToString("###,##0.#0").Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); arrCreditCardPaymentDetails = new Data.CreditCardPayments(clspayment.Connection, clspayment.Transaction).Details(trandetails.BranchID, trandetails.TerminalNo, trandetails.TransactionID); if (arrCreditCardPaymentDetails != null) { foreach (Data.CreditCardPaymentDetails cardpaymentdet in arrCreditCardPaymentDetails) { //print credit card details //print credit card details msbToPrint.Append("Card Type".PadRight(15) + ":" + cardpaymentdet.CardTypeCode.Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); msbToPrint.Append("Card No.".PadRight(15) + ":" + cardpaymentdet.CardNo.Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); if (cardpaymentdet.CardHolder.Trim() != mclsSalesTransactionDetails.CustomerDetails.ContactName.Trim()) msbToPrint.Append("Member Name".PadRight(15) + ":" + cardpaymentdet.CardHolder.Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); if (cardpaymentdet.Amount != mclsSalesTransactionDetails.AmountPaid) msbToPrint.Append("Amount".PadRight(15) + ":" + cardpaymentdet.Amount.ToString("#,##0.#0").Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); if (cardpaymentdet.CardHolder != mclsSalesTransactionDetails.CustomerDetails.ContactName && !string.IsNullOrEmpty(cardpaymentdet.ValidityDates)) msbToPrint.Append("Validity Date".PadRight(15) + ":" + cardpaymentdet.ValidityDates.Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); msbToPrint.Append(Environment.NewLine); } } } if (trandetails.CreditPayment != 0) { msbToPrint.Append("Credit Payment".PadRight(15) + ":" + trandetails.CreditPayment.ToString("###,##0.#0").Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 15) + Environment.NewLine); arrCreditPaymentDetails = new Data.CreditPayments(clspayment.Connection, clspayment.Transaction).Details(trandetails.BranchID, trandetails.TerminalNo, trandetails.TransactionID); if (arrCreditPaymentDetails != null) { foreach (Data.CreditPaymentDetails creditpaymentdet in arrCreditPaymentDetails) { //print credit details msbToPrint.Append("Amount".PadRight(15) + ":" + creditpaymentdet.Amount.ToString("#,##0.#0").Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); if (!string.IsNullOrEmpty(creditpaymentdet.Remarks)) msbToPrint.Append("Remarks".PadRight(15) + ":" + creditpaymentdet.Remarks + Environment.NewLine); msbToPrint.Append(Environment.NewLine); } } } if (trandetails.DebitPayment != 0) { msbToPrint.Append("Debit Payment".PadRight(15) + ":" + trandetails.DebitPayment.ToString("###,##0.#0").Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 15) + Environment.NewLine); arrDebitPaymentDetails = new Data.DebitPayments(clspayment.Connection, clspayment.Transaction).Details(trandetails.BranchID, trandetails.TerminalNo, trandetails.TransactionID); if (arrDebitPaymentDetails != null) { foreach (Data.DebitPaymentDetails debitpaymentdet in arrDebitPaymentDetails) { //print debit details msbToPrint.Append("Amount".PadRight(15) + ":" + debitpaymentdet.Amount.ToString("#,##0.#0").Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); msbToPrint.Append(Environment.NewLine); } } } if (trandetails.RewardConvertedPayment != 0) { msbToPrint.Append("Reward Paymnt".PadRight(15) + ":" + trandetails.RewardConvertedPayment.ToString("###,##0.#0").Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); } } if (trandetails.TransactionStatus == TransactionStatus.Suspended) { msbToPrint.Append(CenterString("This transaction is suspended", mclsTerminalDetails.MaxReceiptWidth) + Environment.NewLine); } else if (trandetails.TransactionStatus == TransactionStatus.Void) { msbToPrint.Append(CenterString("This transaction is VOID", mclsTerminalDetails.MaxReceiptWidth) + Environment.NewLine); } else if (trandetails.TransactionStatus == TransactionStatus.Reprinted) { msbToPrint.Append(CenterString("This transaction is reprinted as of ", mclsTerminalDetails.MaxReceiptWidth) + Environment.NewLine); msbToPrint.Append(CenterString(DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss tt"), mclsTerminalDetails.MaxReceiptWidth) + Environment.NewLine); } else if (trandetails.TransactionStatus == TransactionStatus.Refund) { msbToPrint.Append(CenterString("This transaction is a REFUND", mclsTerminalDetails.MaxReceiptWidth) + Environment.NewLine); } else if (trandetails.TransactionStatus == TransactionStatus.CreditPayment) { if (mclsSysConfigDetails.WillPrintCreditPaymentHeader) msbToPrint.Append(CenterString("------CREDIT PAYMENT--------", mclsTerminalDetails.MaxReceiptWidth) + Environment.NewLine); } PrintPageFooterBSection(); /*********************************************************************************/ msbToPrint.Append(Environment.NewLine + "=".PadRight(mclsTerminalDetails.MaxReceiptWidth, '=') + Environment.NewLine); } clspayment.CommitAndDispose(); PrintPageAndReportFooterSection(false, DateTime.MinValue); mclsTerminalDetails.AutoPrint = oldCONFIG_AutoPrint; InsertAuditLog(AccessTypes.PrintElectronicJournal, "Print Electronic Journal report: TerminalNo=" + mclsTerminalDetails.TerminalNo + " Cashier".PadRight(15) + ":" + mCashierName + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode); } catch (Exception ex) { InsertErrorLogToFile(ex, "ERROR!!! Printing Electronic Journal report. Err Description: "); } Cursor.Current = Cursors.Default; }
public void SaveCreditPayments(DataGridViewSelectedRowCollection dgvItemsSelectedRows, ArrayList arrCashPaymentDetails, ArrayList arrChequePaymentDetails, ArrayList arrCreditCardPaymentDetails, ArrayList arrCreditPaymentDetails, ArrayList arrDebitPaymentDetails, bool ActivateSuspendedAccount) { // save the cashpayments foreach (Data.CashPaymentDetails det in mclsSalesTransactionDetails.PaymentDetails.arrCashPaymentDetails) { //string strRemarks = "PAID BY:" + mclsSalesTransactionDetails.CustomerDetails.ContactName + " PAYMENTTYPE:Cash DATE:" + mclsSalesTransactionDetails.TransactionDate.ToString("MM-dd-yyyy hh:mm:ss tt"); //if (!string.IsNullOrEmpty(det.Remarks)) strRemarks += Environment.NewLine + det.Remarks; string strRemarks = string.Empty; decimal decRemainingAmountPaid = det.Amount; foreach (DataGridViewRow dr in dgvItemsSelectedRows) { Int64 intCreditPaymentID = Convert.ToInt64(dr.Cells["CreditPaymentID"].Value.ToString()); Int32 intCPRefBranchID = Convert.ToInt32(dr.Cells["BranchID"].Value.ToString()); string strCPRefTerminalNo = dr.Cells["TerminalNo"].Value.ToString(); decimal decBalance = Convert.ToDecimal(dr.Cells["Balance"].Value.ToString()); if (decRemainingAmountPaid >= decBalance) { InsertCreditPaymentCash(intCreditPaymentID, intCPRefBranchID, strCPRefTerminalNo, decBalance, strRemarks, ActivateSuspendedAccount); dr.Cells["CreditPaid"].Value = decBalance; dr.Cells["Balance"].Value = 0; decRemainingAmountPaid -= decBalance; } else if (decRemainingAmountPaid > 0 && decRemainingAmountPaid < decBalance) { InsertCreditPaymentCash(intCreditPaymentID, intCPRefBranchID, strCPRefTerminalNo, decRemainingAmountPaid, strRemarks, ActivateSuspendedAccount); //dgItems.Select(itemIndex); dr.Cells["CreditPaid"].Value = decRemainingAmountPaid; dr.Cells["Balance"].Value = decBalance - decRemainingAmountPaid; decRemainingAmountPaid = 0; break; } } if (decRemainingAmountPaid > 0) { //insert a dummy purchase dated Jan 1, 2014 as a reference for paying Data.CreditPaymentDetails clsCreditPaymentDetails = new Data.CreditPaymentDetails(); clsCreditPaymentDetails.BranchDetails = mclsTerminalDetails.BranchDetails; clsCreditPaymentDetails.TerminalNo = mclsSalesTransactionDetails.TerminalNo; clsCreditPaymentDetails.TransactionID = mclsSalesTransactionDetails.TransactionID; clsCreditPaymentDetails.TransactionNo = mclsSalesTransactionDetails.TransactionNo; clsCreditPaymentDetails.IsRefund = false; clsCreditPaymentDetails.TransactionDate = new DateTime(2014, 12, 1); //this should be Dec1,2014 so that it wont include in Billing clsCreditPaymentDetails.CashierName = "SysUser"; clsCreditPaymentDetails.Amount = decRemainingAmountPaid; clsCreditPaymentDetails.CustomerDetails = mclsSalesTransactionDetails.CustomerDetails; clsCreditPaymentDetails.Remarks = "pay-no purchase: deposit " + mclsSalesTransactionDetails.TransactionDate.ToString("yyyy-MM-dd HH:mm:ss"); clsCreditPaymentDetails.CreditReason = "Deposit @ Ter#:" + mclsSalesTransactionDetails.TerminalNo + " Br#:1 trx: " + mclsSalesTransactionDetails.TransactionNo + " date:" + mclsSalesTransactionDetails.TransactionDate.ToString("yyyy-MM-dd HH:mm"); clsCreditPaymentDetails.CreditCardTypeID = mclsContactDetails.CreditDetails.CardTypeDetails.CardTypeID; Data.CreditPayments clsCreditPayments = new Data.CreditPayments(mConnection, mTransaction); mConnection = clsCreditPayments.Connection; mTransaction = clsCreditPayments.Transaction; clsCreditPaymentDetails.CreditPaymentID = clsCreditPayments.Insert(clsCreditPaymentDetails); clsCreditPayments.CommitAndDispose(); //insert the payment InsertCreditPaymentCash(clsCreditPaymentDetails.CreditPaymentID, mclsTerminalDetails.BranchDetails.BranchID, mclsSalesTransactionDetails.TerminalNo, decRemainingAmountPaid, "pay-no purchase: deposit", ActivateSuspendedAccount); } } foreach (Data.ChequePaymentDetails det in mclsSalesTransactionDetails.PaymentDetails.arrChequePaymentDetails) { //string strRemarks = "PAID BY:" + mclsSalesTransactionDetails.CustomerDetails.ContactName + " PAYMENTTYPE:Cheque DATE:" + mclsSalesTransactionDetails.TransactionDate.ToString("MM-dd-yyyy hh:mm:ss tt"); //if (det.Remarks != null) strRemarks += Environment.NewLine + det.Remarks; string strRemarks = string.Empty; decimal decRemainingAmountPaid = det.Amount; foreach (DataGridViewRow dr in dgvItemsSelectedRows) { Int64 intCreditPaymentID = Convert.ToInt64(dr.Cells["CreditPaymentID"].Value.ToString()); Int32 intCPRefBranchID = Convert.ToInt32(dr.Cells["BranchID"].Value.ToString()); string strCPRefTerminalNo = dr.Cells["TerminalNo"].Value.ToString(); decimal decBalance = Convert.ToDecimal(dr.Cells["Balance"].Value.ToString()); if (decRemainingAmountPaid >= decBalance) { InsertCreditPaymentCheque(intCreditPaymentID, intCPRefBranchID, strCPRefTerminalNo, det.ChequeNo, decBalance, det.ValidityDate, strRemarks); dr.Cells["CreditPaid"].Value = decBalance; dr.Cells["Balance"].Value = 0; decRemainingAmountPaid -= decBalance; } else if (decRemainingAmountPaid > 0 && decRemainingAmountPaid < decBalance) { InsertCreditPaymentCheque(intCreditPaymentID, intCPRefBranchID, strCPRefTerminalNo, det.ChequeNo, decRemainingAmountPaid, det.ValidityDate, strRemarks); //dgItems.Select(itemIndex); dr.Cells["CreditPaid"].Value = decRemainingAmountPaid; dr.Cells["Balance"].Value = decBalance - decRemainingAmountPaid; decRemainingAmountPaid = 0; break; } } if (decRemainingAmountPaid > 0) { //insert a dummy purchase dated Jan 1, 2014 as a reference for paying Data.CreditPaymentDetails clsCreditPaymentDetails = new Data.CreditPaymentDetails(); clsCreditPaymentDetails.BranchDetails = mclsTerminalDetails.BranchDetails; clsCreditPaymentDetails.TerminalNo = mclsSalesTransactionDetails.TerminalNo; clsCreditPaymentDetails.TransactionID = mclsSalesTransactionDetails.TransactionID; clsCreditPaymentDetails.TransactionNo = mclsSalesTransactionDetails.TransactionNo; clsCreditPaymentDetails.IsRefund = false; clsCreditPaymentDetails.TransactionDate = new DateTime(2014, 12, 1); //this should be Dec1,2014 so that it wont include in Billing clsCreditPaymentDetails.CashierName = "SysUser"; clsCreditPaymentDetails.Amount = decRemainingAmountPaid; clsCreditPaymentDetails.CustomerDetails = mclsSalesTransactionDetails.CustomerDetails; clsCreditPaymentDetails.Remarks = "pay-no purchase: deposit " + mclsSalesTransactionDetails.TransactionDate.ToString("yyyy-MM-dd HH:mm:ss"); clsCreditPaymentDetails.CreditReason = "Deposit @ Ter#:" + mclsSalesTransactionDetails.TerminalNo + " Br#:1 trx: " + mclsSalesTransactionDetails.TransactionNo + " date:" + mclsSalesTransactionDetails.TransactionDate.ToString("yyyy-MM-dd HH:mm"); clsCreditPaymentDetails.CreditCardTypeID = mclsContactDetails.CreditDetails.CardTypeDetails.CardTypeID; Data.CreditPayments clsCreditPayments = new Data.CreditPayments(mConnection, mTransaction); mConnection = clsCreditPayments.Connection; mTransaction = clsCreditPayments.Transaction; clsCreditPaymentDetails.CreditPaymentID = clsCreditPayments.Insert(clsCreditPaymentDetails); clsCreditPayments.CommitAndDispose(); //insert the payment InsertCreditPaymentCheque(clsCreditPaymentDetails.CreditPaymentID, mclsTerminalDetails.BranchDetails.BranchID, mclsSalesTransactionDetails.TerminalNo, det.ChequeNo, decRemainingAmountPaid, det.ValidityDate, "pay-no purchase: deposit"); } } }