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; }
/// <summary> /// Returns true : all have purchases /// Returns false : some doesnt have purchases /// </summary> /// <param name="clsContactDetails"></param> /// <param name="decCredit"></param> /// <returns></returns> public bool AutoAdjustCredit(Data.ContactDetails clsContactDetails, decimal decCredit) { bool boRetValue = false; try { MySqlCommand cmd = new MySqlCommand(); cmd.CommandType = System.Data.CommandType.Text; System.Data.DataTable dtT = new System.Data.DataTable("tblTemp"); Int64 intContactID = clsContactDetails.ContactID; // pay all the purchases, we will do the reverse to arrive at equal credit in IC_ICC string SQL = "UPDATE tblCreditPayment SET AmountPaid = Amount WHERE ContactID=@ContactID;"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@ContactID", intContactID); cmd.CommandText = SQL; base.ExecuteNonQuery(cmd); // do not return, finish all the necessary adjustments //if (decCredit == 0) return true; // return true SQL = "UPDATE tblContacts SET Credit = @Credit WHERE ContactID=@ContactID;"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@ContactID", intContactID); cmd.Parameters.AddWithValue("@Credit", decCredit); cmd.CommandText = SQL; base.ExecuteNonQuery(cmd); Data.Contacts clsContacts = new Data.Contacts(base.Connection, base.Transaction); Data.ProductDetails clsProductDetails = new Data.Products(base.Connection, base.Transaction).DetailsByCode(1, "IC IMPORTED TRX"); Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(base.Connection, base.Transaction); Data.CreditCardPayments clsCreditCardPayments = new Data.CreditCardPayments(base.Connection, base.Transaction); Data.SalesTransactionDetails clsSalesTransactionDetails; string strTerminalNo = "9995"; Int32 intBranchID = 1; string TransactionNo = DateTime.Now.ToString("yyyyMmddHHmmss").PadLeft(14, '0'); DateTime CreatedOn = new DateTime(2014, 01, 01); DateTime TransactionDate = new DateTime(2014, 01, 01); DateTime DateClosed = new DateTime(2014, 01, 01); SQL = "SELECT * FROM tblCreditPayment WHERE ContactID=@ContactID AND CreditReasonID <> 8 ORDER BY CreditDate DESC;"; //8=deposits cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@ContactID", intContactID); cmd.CommandText = SQL; dtT = new System.Data.DataTable("tblTemp"); base.MySqlDataAdapterFill(cmd, dtT); Int32 dtTRowsCount = dtT.Rows.Count; //use this when reinsert is called below ReInsert: if (dtTRowsCount == 0) { // no purchases but with credit decimal SubTotal = decCredit; TransactionNo = DateTime.Now.ToString("yyyyMmddHHmmss").PadLeft(14, '0'); //#region Insert to tblTransactions SQL = "INSERT INTO tblTransactions(TransactionNo, CustomerID, CustomerName, CashierID, CashierName, TerminalNo, BranchID, BranchCode, TransactionDate, " + "DateSuspended, DateResumed, TransactionStatus, SubTotal, " + "AmountPaid, CashPayment, ChequePayment, " + "CreditCardPayment, CreditPayment, DateClosed, PaymentType, " + "WaiterID, WaiterName, AgentID, AgentName, CreatedByID, CreatedByName, " + "AgentDepartmentName, AgentPositionName, ReleasedDate, RewardPointsPayment, " + "RewardConvertedPayment, PaxNo, CreditChargeAmount, TransactionType, isConsignment, " + "DataSource, CustomerGroupName, CreatedOn, ORNo, " + "NetSales, ChargeType, ItemSold, QuantitySold, " + "ContactCheckInDate, GrossSales)VALUES("; SQL += "@TransactionNo, @CustomerID, @CustomerName, @CashierID, @CashierName, @TerminalNo, @BranchID, @BranchCode, @TransactionDate, " + "@DateSuspended, @DateResumed, @TransactionStatus, @SubTotal, " + "@AmountPaid, @CashPayment, @ChequePayment, " + "@CreditCardPayment, @CreditPayment, @DateClosed, @PaymentType, " + "@WaiterID, @WaiterName, @AgentID, @AgentName, @CreatedByID, @CreatedByName, " + "@AgentDepartmentName, @AgentPositionName, @ReleasedDate, @RewardPointsPayment, " + "@RewardConvertedPayment, @PaxNo, @CreditChargeAmount, @TransactionType, @isConsignment, " + "@DataSource, @CustomerGroupName, @CreatedOn, @ORNo, " + "@NetSales, @ChargeType, @ItemSold, @QuantitySold, " + "@ContactCheckInDate, @GrossSales)"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@TransactionNo", TransactionNo); cmd.Parameters.AddWithValue("@CustomerID", clsContactDetails.ContactID); cmd.Parameters.AddWithValue("@CustomerName", clsContactDetails.ContactName); cmd.Parameters.AddWithValue("@CashierID", 1); cmd.Parameters.AddWithValue("@CashierName", "Auto AdjUser"); cmd.Parameters.AddWithValue("@TerminalNo", strTerminalNo); cmd.Parameters.AddWithValue("@BranchID", intBranchID); cmd.Parameters.AddWithValue("@BranchCode", "Main"); cmd.Parameters.AddWithValue("@TransactionDate", TransactionDate); cmd.Parameters.AddWithValue("@DateSuspended", Constants.C_DATE_MIN_VALUE); cmd.Parameters.AddWithValue("@DateResumed", Constants.C_DATE_MIN_VALUE); cmd.Parameters.AddWithValue("@TransactionStatus", 1); cmd.Parameters.AddWithValue("@SubTotal", SubTotal); cmd.Parameters.AddWithValue("@AmountPaid", SubTotal); cmd.Parameters.AddWithValue("@CashPayment", 0); cmd.Parameters.AddWithValue("@ChequePayment", 0); cmd.Parameters.AddWithValue("@CreditCardPayment", SubTotal); cmd.Parameters.AddWithValue("@CreditPayment", 0); cmd.Parameters.AddWithValue("@DateClosed", DateClosed); cmd.Parameters.AddWithValue("@PaymentType", 2); cmd.Parameters.AddWithValue("@WaiterID", 2); cmd.Parameters.AddWithValue("@WaiterName", "RetailPlus Default"); cmd.Parameters.AddWithValue("@AgentID", 1); cmd.Parameters.AddWithValue("@AgentName", "RetailPlus Agent ™"); cmd.Parameters.AddWithValue("@CreatedByID", 1); cmd.Parameters.AddWithValue("@CreatedByName", "Auto AdjUser"); cmd.Parameters.AddWithValue("@AgentDepartmentName", "System Default Department"); cmd.Parameters.AddWithValue("@AgentPositionName", "System Default Position"); cmd.Parameters.AddWithValue("@ReleasedDate", Constants.C_DATE_MIN_VALUE); cmd.Parameters.AddWithValue("@RewardPointsPayment", 0); cmd.Parameters.AddWithValue("@RewardConvertedPayment", 0); cmd.Parameters.AddWithValue("@PaxNo", 1); cmd.Parameters.AddWithValue("@CreditChargeAmount", 0); cmd.Parameters.AddWithValue("@TransactionType", 0); cmd.Parameters.AddWithValue("@isConsignment", 0); cmd.Parameters.AddWithValue("@DataSource", "IC_NO_ITN"); cmd.Parameters.AddWithValue("@CustomerGroupName", clsContactDetails.ContactGroupName); cmd.Parameters.AddWithValue("@CreatedOn", CreatedOn); cmd.Parameters.AddWithValue("@ORNo", TransactionNo); cmd.Parameters.AddWithValue("@NetSales", SubTotal); cmd.Parameters.AddWithValue("@ChargeType", 0); cmd.Parameters.AddWithValue("@ItemSold", 1); cmd.Parameters.AddWithValue("@QuantitySold", 1); cmd.Parameters.AddWithValue("@ContactCheckInDate", CreatedOn); cmd.Parameters.AddWithValue("@GrossSales", SubTotal); cmd.CommandText = SQL; base.ExecuteNonQuery(cmd); //#endregion clsSalesTransactionDetails = clsSalesTransactions.Details(TransactionNo, strTerminalNo, intBranchID); //#region Insert to tblTransactionItems SQL = "SELECT * FROM tblTransactionItems WHERE TransactionID=@TransactionID LIMIT 1;"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@TransactionID", clsSalesTransactionDetails.TransactionID); cmd.CommandText = SQL; dtT = new System.Data.DataTable("tblTemp"); base.MySqlDataAdapterFill(cmd, dtT); if (dtT.Rows.Count == 0) { SQL = "INSERT INTO tblTransactionItems(TransactionID, ProductID, ProductCode, BarCode, Description, ProductUnitID, ProductUnitCode, " + "Quantity, Price, SellingPrice, Discount, ItemDiscount, ItemDiscountType, Amount, " + "ProductGroup, ProductSubGroup, TransactionItemStatus, DiscountCode, DiscountRemarks, ProductPackageID, " + "PackageQuantity, DataSource, CreatedOn, GrossSales)VALUES("; SQL += "@TransactionID, @ProductID, @ProductCode, @BarCode, @Description, @ProductUnitID, @ProductUnitCode, " + "@Quantity, @Price, @SellingPrice, @Discount, @ItemDiscount, @ItemDiscountType, @Amount, " + "@ProductGroup, @ProductSubGroup, @TransactionItemStatus, @DiscountCode, @DiscountRemarks, @ProductPackageID, " + "@PackageQuantity, @DataSource, @CreatedOn, @GrossSales)"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@TransactionID", clsSalesTransactionDetails.TransactionID); cmd.Parameters.AddWithValue("@ProductID", clsProductDetails.ProductID); cmd.Parameters.AddWithValue("@ProductCode", clsProductDetails.ProductCode); cmd.Parameters.AddWithValue("@BarCode", clsProductDetails.BarCode); cmd.Parameters.AddWithValue("@Description", clsProductDetails.ProductDesc); cmd.Parameters.AddWithValue("@ProductUnitID", clsProductDetails.BaseUnitID); cmd.Parameters.AddWithValue("@ProductUnitCode", clsProductDetails.BaseUnitCode); cmd.Parameters.AddWithValue("@Quantity", 1); cmd.Parameters.AddWithValue("@Price", SubTotal); cmd.Parameters.AddWithValue("@SellingPrice", SubTotal); cmd.Parameters.AddWithValue("@Discount", 0); cmd.Parameters.AddWithValue("@ItemDiscount", 0); cmd.Parameters.AddWithValue("@ItemDiscountType", 0); cmd.Parameters.AddWithValue("@Amount", SubTotal); cmd.Parameters.AddWithValue("@ProductGroup", clsProductDetails.ProductGroupName); cmd.Parameters.AddWithValue("@ProductSubGroup", clsProductDetails.ProductSubGroupCode); cmd.Parameters.AddWithValue("@TransactionItemStatus", 0); cmd.Parameters.AddWithValue("@DiscountCode", ""); cmd.Parameters.AddWithValue("@DiscountRemarks", ""); cmd.Parameters.AddWithValue("@ProductPackageID", clsProductDetails.PackageID); cmd.Parameters.AddWithValue("@PackageQuantity", 1); cmd.Parameters.AddWithValue("@DataSource", "AutoAdjust"); cmd.Parameters.AddWithValue("@CreatedOn", CreatedOn); cmd.Parameters.AddWithValue("@GrossSales", SubTotal); cmd.CommandText = SQL; base.ExecuteNonQuery(cmd); } //#endregion //#region Insert to tblCreditCardPayment SQL = "SELECT * FROM tblCreditCardPayment WHERE BranchID=@BranchID AND TransactionNo=@TransactionNo AND TerminalNo=@TerminalNo LIMIT 1;"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@TransactionNo", clsSalesTransactionDetails.TransactionNo); cmd.Parameters.AddWithValue("@TerminalNo", clsSalesTransactionDetails.TerminalNo); cmd.Parameters.AddWithValue("@BranchID", clsSalesTransactionDetails.BranchID); cmd.CommandText = SQL; dtT = new System.Data.DataTable("tblTemp"); base.MySqlDataAdapterFill(cmd, dtT); if (dtT.Rows.Count == 0) { SQL = "INSERT INTO tblCreditCardPayment(TransactionID, Amount, CardTypeID, CardTypeCode, CardTypeName, CardNo, CardHolder, ValidityDates, " + "Remarks, TransactionNo, CreatedOn, TerminalNo, BranchID, AdditionalCharge, " + "ContactID, GuarantorID, TransactionDate, CashierName)VALUES("; SQL += "@TransactionID, @Amount, @CardTypeID, @CardTypeCode, @CardTypeName, @CardNo, @CardHolder, @ValidityDates, " + "@Remarks, @TransactionNo, @CreatedOn, @TerminalNo, @BranchID, @AdditionalCharge, " + "@ContactID, @GuarantorID, @TransactionDate, @CashierName)"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@TransactionID", clsSalesTransactionDetails.TransactionID); cmd.Parameters.AddWithValue("@Amount", SubTotal); cmd.Parameters.AddWithValue("@CardTypeID", clsContactDetails.CreditDetails.CardTypeDetails.CardTypeID); cmd.Parameters.AddWithValue("@CardTypeCode", clsContactDetails.CreditDetails.CardTypeDetails.CardTypeCode); cmd.Parameters.AddWithValue("@CardTypeName", clsContactDetails.CreditDetails.CardTypeDetails.CardTypeName); cmd.Parameters.AddWithValue("@CardNo", clsContactDetails.CreditDetails.CreditCardNo); cmd.Parameters.AddWithValue("@CardHolder", clsContactDetails.ContactName); cmd.Parameters.AddWithValue("@ValidityDates", clsContactDetails.CreditDetails.ExpiryDate.ToString("MMddyy")); cmd.Parameters.AddWithValue("@Remarks", ""); cmd.Parameters.AddWithValue("@TransactionNo", TransactionNo); cmd.Parameters.AddWithValue("@CreatedOn", CreatedOn); cmd.Parameters.AddWithValue("@TerminalNo", strTerminalNo); cmd.Parameters.AddWithValue("@BranchID", intBranchID); cmd.Parameters.AddWithValue("@AdditionalCharge", 0); cmd.Parameters.AddWithValue("@ContactID", clsContactDetails.ContactID); cmd.Parameters.AddWithValue("@GuarantorID", clsContactDetails.CreditDetails.GuarantorID); cmd.Parameters.AddWithValue("@TransactionDate", TransactionDate); cmd.Parameters.AddWithValue("@CashierName", clsSalesTransactionDetails.CashierName); cmd.CommandText = SQL; base.ExecuteNonQuery(cmd); } //#endregion //#region Insert to tblCreditPayment SQL = "SELECT * FROM tblCreditPayment WHERE BranchID=@BranchID AND TransactionNo=@TransactionNo AND TerminalNo = @TerminalNo LIMIT 1;"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@TransactionNo", clsSalesTransactionDetails.TransactionNo); cmd.Parameters.AddWithValue("@TerminalNo", clsSalesTransactionDetails.TerminalNo); cmd.Parameters.AddWithValue("@BranchID", clsSalesTransactionDetails.BranchID); cmd.CommandText = SQL; dtT = new System.Data.DataTable("tblTemp"); base.MySqlDataAdapterFill(cmd, dtT); if (dtT.Rows.Count == 0) { CreditCardPaymentDetails[] clsCreditCardPaymentDetails = clsCreditCardPayments.Details(1, strTerminalNo, clsSalesTransactionDetails.TransactionID); SQL = "INSERT INTO tblCreditPayment(TransactionID, Amount, ContactID, Remarks, AmountPaid, " + "TransactionNo, CreditDate, CreditBefore, CreditAfter, " + "CreditReason, TerminalNo, CashierName, AmountPaidCuttOffMonth, " + "CreatedOn, BranchID, CreditCardPaymentID, CreditCardTypeID, CreditReasonID)VALUES("; SQL += "@TransactionID, @Amount, @ContactID, @Remarks, @AmountPaid, " + "@TransactionNo, @CreditDate, @CreditBefore, @CreditAfter, " + "@CreditReason, @TerminalNo, @CashierName, @AmountPaidCuttOffMonth, " + "@CreatedOn, @BranchID, @CreditCardPaymentID, @CreditCardTypeID, @CreditReasonID)"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@TransactionID", clsSalesTransactionDetails.TransactionID); cmd.Parameters.AddWithValue("@Amount", SubTotal); cmd.Parameters.AddWithValue("@ContactID", clsContactDetails.ContactID); cmd.Parameters.AddWithValue("@Remarks", "Deliquent purchases before 2014May "); cmd.Parameters.AddWithValue("@AmountPaid", 0); cmd.Parameters.AddWithValue("@TransactionNo", TransactionNo); cmd.Parameters.AddWithValue("@CreditDate", CreatedOn); cmd.Parameters.AddWithValue("@CreditBefore", 0); cmd.Parameters.AddWithValue("@CreditAfter", SubTotal); cmd.Parameters.AddWithValue("@CreditReason", "Deliquent purchases before 2014May "); cmd.Parameters.AddWithValue("@TerminalNo", strTerminalNo); cmd.Parameters.AddWithValue("@CashierName", clsSalesTransactionDetails.CashierName); cmd.Parameters.AddWithValue("@AmountPaidCuttOffMonth", 0); cmd.Parameters.AddWithValue("@CreatedOn", CreatedOn); cmd.Parameters.AddWithValue("@BranchID", intBranchID); cmd.Parameters.AddWithValue("@CreditCardPaymentID", clsCreditCardPaymentDetails[0].CreditCardPaymentID); cmd.Parameters.AddWithValue("@CreditCardTypeID", clsContactDetails.CreditDetails.CardTypeDetails.CardTypeID); cmd.Parameters.AddWithValue("@CreditReasonID", 0); cmd.CommandText = SQL; base.ExecuteNonQuery(cmd); boRetValue = false; } } else { foreach (System.Data.DataRow drCredit in dtT.Rows) { decimal decTrxCredit = decimal.Parse(drCredit["Amount"].ToString()); Int64 CreditPaymentID = Int64.Parse(drCredit["CreditPaymentID"].ToString()); if (decCredit > decTrxCredit) { SQL = "UPDATE tblCreditPayment SET AmountPaid=(AmountPaid - @AmountPaid) WHERE ContactID=@ContactID AND CreditPaymentID=@CreditPaymentID;"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@AmountPaid", decTrxCredit); cmd.Parameters.AddWithValue("@ContactID", intContactID); cmd.Parameters.AddWithValue("@CreditPaymentID", CreditPaymentID); cmd.CommandText = SQL; base.ExecuteNonQuery(cmd); decCredit -= decTrxCredit; } else { SQL = "UPDATE tblCreditPayment SET AmountPaid= (AmountPaid - @AmountPaid) WHERE ContactID=@ContactID AND CreditPaymentID=@CreditPaymentID;"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@AmountPaid", decCredit); cmd.Parameters.AddWithValue("@ContactID", intContactID); cmd.Parameters.AddWithValue("@CreditPaymentID", CreditPaymentID); cmd.CommandText = SQL; base.ExecuteNonQuery(cmd); boRetValue = true; decCredit = 0; break; } } // meaning there is still credit but no purchases if (decCredit > 0) { dtTRowsCount = 0; goto ReInsert; //#endregion } } } catch (Exception ex) { throw base.ThrowException(ex); } return boRetValue; }