private bool CreateDetails(int iRow) { try { bool boRetValue = false; mDetails = new Data.SalesTransactionDetails(); mDetails.TransactionID = Convert.ToInt64(dgItems[iRow, 0]); mDetails.TransactionNo = dgItems[iRow, 1].ToString(); Data.SalesTransactions clsTransactions = new Data.SalesTransactions(); mDetails = clsTransactions.Details(mDetails.TransactionNo, TerminalDetails.TerminalNo, TerminalDetails.BranchID); // 14Jun2015 : Update to Status Resume only if the Status is not Closed. if (TransactionStatusToList != RetailPlus.TransactionStatus.Closed) { clsTransactions.Resume(mDetails.TransactionID); } Data.SalesTransactionItems clsItems = new Data.SalesTransactionItems(clsTransactions.Connection, clsTransactions.Transaction); mDetails.TransactionItems = clsItems.Details(mDetails.TransactionID, mDetails.TransactionDate); clsTransactions.CommitAndDispose(); boRetValue = true; return(boRetValue); } catch (Exception ex) { MessageBox.Show(ex.Message, "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } }
private DialogResult ShowPayment() { DialogResult paymentResult = DialogResult.Cancel; if (Convert.ToDecimal(lblBalance.Text) > 0) { PaymentsWnd payment = new PaymentsWnd(); Data.SalesTransactionDetails clsSalesTransactionDetails = new Data.SalesTransactionDetails(); clsSalesTransactionDetails.SubTotal = mclsCustomerDetails.Credit; payment.SalesTransactionDetails = clsSalesTransactionDetails; //payment.TransactionNo = string.Empty; //will get from the transction nos. payment.CustomerDetails = mclsCustomerDetails; //payment.Discount = Convert.ToDecimal(0); //payment.SubTotal = mclsCustomerDetails.Credit; payment.IsRefund = false; payment.ShowDialog(this); paymentResult = payment.Result; mdecAmountPaid = payment.AmountPaid; mdecCashPayment = payment.CashPayment; mdecChequePayment = payment.ChequePayment; mdecCreditCardPayment = payment.CreditCardPayment; mdecDebitPayment = payment.DebitPayment; mdecBalanceAmount = payment.BalanceAmount; mdecChangeAmount = payment.ChangeAmount; PaymentTypes mPaymentType = payment.PaymentType; marrCashPaymentDetails = payment.CashPaymentDetails; marrChequePaymentDetails = payment.ChequePaymentDetails; marrCreditCardPaymentDetails = payment.CreditCardPaymentDetails; marrDebitPaymentDetails = payment.DebitPaymentDetails; payment.Close(); payment.Dispose(); if (paymentResult == DialogResult.OK) { SavePayments(mdecAmountPaid, mdecCashPayment, mdecChequePayment, mdecCreditCardPayment, mdecDebitPayment, marrCashPaymentDetails, marrChequePaymentDetails, marrCreditCardPaymentDetails, marrDebitPaymentDetails); } } return(paymentResult); }
/// <summary> /// Load the transaction using the transaction no. scanned in the txtScan. /// </summary> private void LoadTransaction() { try { LoadOptions(); string strTransactionNo = txtScan.Text.Trim().PadLeft(14, '0'); Data.SalesTransactions clsTransactions = new Data.SalesTransactions(); mclsSalesTransactionDetails = clsTransactions.Details(strTransactionNo, mclsTerminalDetails.TerminalNo, mclsTerminalDetails.BranchID); if (!string.IsNullOrEmpty(mclsSalesTransactionDetails.TransactionNo)) { if (mclsSalesTransactionDetails.TransactionStatus == TransactionStatus.Closed) { Data.SalesTransactionItems clsItems = new Data.SalesTransactionItems(clsTransactions.Connection, clsTransactions.Transaction); mclsSalesTransactionDetails.TransactionItems = clsItems.Details(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.TransactionDate); clsTransactions.CommitAndDispose(); lblTransactionNo.Text = "Transaction #: " + mclsSalesTransactionDetails.TransactionNo; lblTransactionNo.Tag = mclsSalesTransactionDetails.TransactionID.ToString(); lblCommand.Tag = mclsSalesTransactionDetails.TransactionDate.ToString("MM/dd/yyyy hh:mm"); LoadResumedItems(mclsSalesTransactionDetails.TransactionItems); getTotal(); lblCommand.Text = "Scan item:"; txtScan.Text = string.Empty; txtScan.Focus(); } else { clsTransactions.CommitAndDispose(); txtScan.Text = string.Empty; txtScan.Focus(); MessageBox.Show("Sorry, you cannot release transaction with status: " + mclsSalesTransactionDetails.TransactionStatus.ToString("G") + ".", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } else { clsTransactions.CommitAndDispose(); } } catch { } }
private void LoadItemData() { try { System.Data.DataTable dt = new System.Data.DataTable("tblproducts"); dt.Columns.Add("TransactionItemsID"); dt.Columns.Add("ProductID"); dt.Columns.Add("ProductCode"); dt.Columns.Add("BarCode"); dt.Columns.Add("ProductDesc"); dt.Columns.Add("ProductUnitID"); dt.Columns.Add("ProductUnitCode"); dt.Columns.Add("Quantity"); dt.Columns.Add("Price"); dt.Columns.Add("Discount"); dt.Columns.Add("ItemDiscount"); dt.Columns.Add("ItemDiscountType"); dt.Columns.Add("Amount"); dt.Columns.Add("VAT"); dt.Columns.Add("EVAT"); dt.Columns.Add("LocalTax"); dt.Columns.Add("VariationsMatrixID"); dt.Columns.Add("MatrixDescription"); dt.Columns.Add("ProductGroup"); dt.Columns.Add("ProductSubGroup"); dt.Columns.Add("TransactionItemStatus"); dt.Columns.Add("DiscountCode"); dt.Columns.Add("DiscountRemarks"); dt.Columns.Add("ProductPackageID"); dt.Columns.Add("MatrixPackageID"); dt.Columns.Add("PackageQuantity"); dt.Columns.Add("PromoQuantity"); dt.Columns.Add("PromoValue"); dt.Columns.Add("PromoInPercent"); dt.Columns.Add("PromoType"); dt.Columns.Add("PromoApplied"); dt.Columns.Add("PurchasePrice"); dt.Columns.Add("PurchaseAmount"); Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(); Data.SalesTransactionDetails det = clsSalesTransactions.Details(mstTransactionNo, mclsTerminalDetails.TerminalNo, mclsTerminalDetails.BranchID); clsSalesTransactions.CommitAndDispose(); Data.SalesTransactionItems clsItems = new Data.SalesTransactionItems(); Data.SalesTransactionItemDetails[] TransactionItems = clsItems.Details(det.TransactionID, det.TransactionDate); clsItems.CommitAndDispose(); foreach (Data.SalesTransactionItemDetails item in TransactionItems) { if (item.TransactionItemStatus == AceSoft.RetailPlus.TransactionItemStatus.Valid) { System.Data.DataRow dr = dt.NewRow(); dr["TransactionItemsID"] = item.TransactionItemsID; dr["ProductID"] = item.ProductID; dr["ProductCode"] = item.ProductCode; dr["BarCode"] = item.BarCode; dr["ProductDesc"] = item.Description; dr["ProductUnitID"] = item.ProductUnitID; dr["ProductUnitCode"] = item.ProductUnitCode; dr["Quantity"] = item.Quantity; dr["Price"] = item.Price; dr["Discount"] = item.Discount; dr["ItemDiscount"] = item.ItemDiscount; dr["ItemDiscountType"] = item.ItemDiscountType; dr["Amount"] = item.Amount; dr["VAT"] = item.VAT; dr["EVAT"] = item.EVAT; dr["LocalTax"] = item.LocalTax; dr["VariationsMatrixID"] = item.VariationsMatrixID; dr["MatrixDescription"] = item.MatrixDescription; dr["ProductGroup"] = item.ProductGroup; dr["ProductSubGroup"] = item.ProductSubGroup; dr["TransactionItemStatus"] = item.TransactionItemStatus; dr["DiscountCode"] = item.DiscountCode; dr["DiscountRemarks"] = item.DiscountRemarks; dr["ProductPackageID"] = item.ProductPackageID; dr["MatrixPackageID"] = item.MatrixPackageID; dr["PackageQuantity"] = item.PackageQuantity; dr["PromoQuantity"] = item.PromoQuantity; dr["PromoValue"] = item.PromoValue; dr["PromoInPercent"] = item.PromoInPercent; dr["PromoType"] = item.PromoType; dr["PromoApplied"] = item.PromoApplied; dr["PurchasePrice"] = item.PurchasePrice; dr["PurchaseAmount"] = item.PurchaseAmount; dt.Rows.Add(dr); } } this.dgStyle.MappingName = dt.TableName; dgItems.DataSource = dt; if (dgItems.VisibleRowCount > 0) { dgItems.Select(0); } dgItems.CurrentRowIndex = 0; } catch (Exception ex) { MessageBox.Show(ex.Message, "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
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; }
private void LoadItemData() { try { System.Data.DataTable dt = new System.Data.DataTable("tblproducts"); dt.Columns.Add("ProductID"); dt.Columns.Add("ProductCode"); dt.Columns.Add("BarCode"); dt.Columns.Add("ProductDesc"); dt.Columns.Add("ProductGroup"); dt.Columns.Add("ProductSubGroup"); dt.Columns.Add("ProductUnitID"); dt.Columns.Add("ProductUnitCode"); dt.Columns.Add("Quantity"); dt.Columns.Add("Price"); dt.Columns.Add("SpecialDiscount"); dt.Columns.Add("VAT"); dt.Columns.Add("EVAT"); dt.Columns.Add("LocalTax"); Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(); Data.SalesTransactionDetails det = clsSalesTransactions.Details(mstTransactionNo, mstTerminalNo, Constants.TerminalBranchID); clsSalesTransactions.CommitAndDispose(); Data.SalesTransactionItems clsItems = new Data.SalesTransactionItems(); Data.SalesTransactionItemDetails[] TransactionItems = clsItems.Details(det.TransactionID, det.TransactionDate); clsItems.CommitAndDispose(); foreach (Data.SalesTransactionItemDetails item in TransactionItems) { System.Data.DataRow dr = dt.NewRow(); dr["ProductID"] = item.ProductID; dr["ProductCode"] = item.ProductCode; dr["BarCode"] = item.BarCode; dr["ProductDesc"] = item.Description; dr["ProductGroup"] = item.ProductGroup; dr["ProductSubGroup"] = item.ProductSubGroup; dr["ProductUnitID"] = item.ProductUnitID; dr["ProductUnitCode"] = item.ProductUnitCode; dr["Quantity"] = item.Quantity; dr["Price"] = item.Price; dr["SpecialDiscount"] = item.Discount; dr["VAT"] = item.VAT; dr["EVAT"] = item.EVAT; dr["LocalTax"] = item.LocalTax; dt.Rows.Add(dr); } this.dgStyle.MappingName = dt.TableName; dgItems.DataSource = dt; if (dgItems.VisibleRowCount > 0) { dgItems.Select(0); } dgItems.CurrentRowIndex = 0; } catch (Exception ex) { MessageBox.Show(ex.Message, "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private bool CreateTransaction() { Boolean boRetValue = true; try { Data.TerminalReport clsTerminalReport = new Data.TerminalReport(mConnection, mTransaction); mConnection = clsTerminalReport.Connection; mTransaction = clsTerminalReport.Transaction; DateTime dteTransactionDate = Convert.ToDateTime(lblTransDate.Text); boRetValue = CheckIfOKToSell(false); if (!boRetValue) return boRetValue; clsEvent.AddEventLn("[" + lblCashier.Text + "] Creating new transaction.", true); mclsSalesTransactionDetails = new Data.SalesTransactionDetails(); mclsSalesTransactionDetails.TransactionItemsList = new System.Collections.Generic.List<Data.SalesTransactionItemDetails>(); try { mclsSalesTransactionDetails.CashierID = Convert.ToInt64(lblCashier.Tag); } catch { } //mclsSalesTransactionDetails.CustomerID = Convert.ToInt64(lblCustomer.Tag); //mclsSalesTransactionDetails.CustomerName = lblCustomer.Text; if (mclsContactDetails.ContactID == 0) { mclsContactDetails = mclsContactDetailsDEFCustomer; } if (mboRewardCardSwiped) { mclsSalesTransactionDetails.RewardsCustomerID = mclsContactDetails.ContactID; mclsSalesTransactionDetails.RewardsCustomerName = mclsContactDetails.ContactName; mclsSalesTransactionDetails.RewardCardActive = mclsContactDetails.RewardDetails.RewardActive; mclsSalesTransactionDetails.RewardCardNo = mclsContactDetails.RewardDetails.RewardCardNo; mclsSalesTransactionDetails.RewardCardExpiry = mclsContactDetails.RewardDetails.ExpiryDate; mclsSalesTransactionDetails.RewardPreviousPoints = mclsContactDetails.RewardDetails.RewardPoints; } else { mclsSalesTransactionDetails.RewardsCustomerID = Constants.C_RETAILPLUS_CUSTOMERID; mclsSalesTransactionDetails.RewardsCustomerName = Constants.C_RETAILPLUS_CUSTOMER; mclsSalesTransactionDetails.RewardCardActive = mclsContactDetailsDEFCustomer.RewardDetails.RewardActive; mclsSalesTransactionDetails.RewardCardNo = mclsContactDetailsDEFCustomer.RewardDetails.RewardCardNo; mclsSalesTransactionDetails.RewardCardExpiry = mclsContactDetailsDEFCustomer.RewardDetails.ExpiryDate; mclsSalesTransactionDetails.RewardPreviousPoints = mclsContactDetailsDEFCustomer.RewardDetails.RewardPoints; } mclsSalesTransactionDetails.CustomerDetails = mclsContactDetails; mclsSalesTransactionDetails.CustomerID = mclsContactDetails.ContactID; mclsSalesTransactionDetails.CustomerName = mclsContactDetails.ContactName; if (mclsSalesTransactionDetails.CustomerDetails.LastCheckInDate == Constants.C_DATE_MIN_VALUE) mclsSalesTransactionDetails.CustomerDetails.LastCheckInDate = dteTransactionDate; mclsSalesTransactionDetails.AgentID = Convert.ToInt64(lblAgent.Tag); mclsSalesTransactionDetails.AgentName = lblAgent.Text; mclsSalesTransactionDetails.AgentPositionName = lblAgentPositionDepartment.Text; mclsSalesTransactionDetails.AgentDepartmentName = lblAgentPositionDepartment.Tag.ToString(); mclsSalesTransactionDetails.WaiterID = Convert.ToInt64(grpItems.Tag); mclsSalesTransactionDetails.WaiterName = grpItems.Text.Remove(0, 11); mclsSalesTransactionDetails.CreatedByID = Convert.ToInt64(lblCashier.Tag); mclsSalesTransactionDetails.CreatedByName = lblCashier.Text; mclsSalesTransactionDetails.CashierID = Convert.ToInt64(lblCashier.Tag); mclsSalesTransactionDetails.CashierName = lblCashier.Text; mclsSalesTransactionDetails.TransactionDate = dteTransactionDate; mclsSalesTransactionDetails.DateSuspended = DateTime.MinValue; mclsSalesTransactionDetails.TerminalNo = mclsTerminalDetails.TerminalNo; mclsSalesTransactionDetails.BranchID = mclsTerminalDetails.BranchID; mclsSalesTransactionDetails.BranchCode = mclsTerminalDetails.BranchDetails.BranchCode; mclsSalesTransactionDetails.TransactionStatus = TransactionStatus.Open; mclsSalesTransactionDetails.TransactionType = mboIsRefund ? TransactionTypes.POSRefund : TransactionTypes.POSNormal; Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction); mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction; mclsSalesTransactionDetails.TransactionNo = clsSalesTransactions.CreateTransactionNo(mclsTerminalDetails.BranchDetails.BranchID, mclsTerminalDetails.TerminalNo); lblTransNo.Text = mclsSalesTransactionDetails.TransactionNo; //insert to transaction table mclsSalesTransactionDetails.TransactionID = clsSalesTransactions.Insert(mclsSalesTransactionDetails); lblTransNo.Tag = mclsSalesTransactionDetails.TransactionID.ToString(); // 24Sep2014 : update back the LastCheckInDate to transaction date Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); mConnection = clsContact.Connection; mTransaction = clsContact.Transaction; clsContact.UpdateLastCheckInDate(mclsSalesTransactionDetails.CustomerID, dteTransactionDate); // 31Jan2015 : Lemu // put back to SuspendedOpen so that it won't be open somewhere else clsEvent.AddEventLn("Putting transaction SuspendedOpen: " + mclsSalesTransactionDetails.TransactionNo, true); clsSalesTransactions.UpdateTransactionToSuspendedOpen(mclsSalesTransactionDetails.TransactionID); mboIsInTransaction = true; clsTerminalReport.CommitAndDispose(); InsertAuditLog(AccessTypes.CreateTransaction, "Create transaction #".PadRight(15) + ":" + lblTransNo.Text + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode); clsEvent.AddEventLn("Done! Trans #: " + lblTransNo.Text + " has been created.", true); } catch (Exception ex) { InsertErrorLogToFile(ex); boRetValue = false; } return boRetValue; }
private void EnterCreditItemizePayment() { if (!SuspendTransactionAndContinue()) return; DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.EnterCreditPayment); if (loginresult == DialogResult.OK) { LoadOptions(); if (!CheckIfOKToSell(true)) return; ContactSelectWnd clsContactWnd = new ContactSelectWnd(); clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK; clsContactWnd.SysConfigDetails = mclsSysConfigDetails; clsContactWnd.TerminalDetails = mclsTerminalDetails; clsContactWnd.HasCreditOnly = true; clsContactWnd.ShowDialog(this); DialogResult result = clsContactWnd.Result; mclsContactDetails = clsContactWnd.Details; clsContactWnd.Close(); clsContactWnd.Dispose(); if (result == DialogResult.OK) { CreditsItemizeWnd creditWnd = new CreditsItemizeWnd(); creditWnd.TerminalDetails = mclsTerminalDetails; creditWnd.SysConfigDetails = mclsSysConfigDetails; creditWnd.CashierID = mclsSalesTransactionDetails.CashierID; creditWnd.CashierName = mclsSalesTransactionDetails.CashierName; creditWnd.CustomerDetails = mclsContactDetails; creditWnd.ShowDialog(this); Keys keyData = creditWnd.KeyData; string strTransactionNoToReprint = creditWnd.TransactionNoToReprint; string strTerminalNoToReprint = creditWnd.TerminalNoToReprint; decimal AmountPaid = creditWnd.AmountPayment; decimal CashPayment = creditWnd.CashPayment; decimal ChequePayment = creditWnd.ChequePayment; decimal CreditCardPayment = creditWnd.CreditCardPayment; decimal DebitPayment = creditWnd.DebitPayment; decimal BalanceAmount = creditWnd.BalanceAmount; decimal ChangeAmount = creditWnd.ChangeAmount; DataGridViewSelectedRowCollection dgvItemsSelectedRows = creditWnd.dgvItemsSelectedRows; PaymentTypes PaymentType = creditWnd.PaymentType; ArrayList arrCashPaymentDetails = creditWnd.CashPaymentDetails; ArrayList arrChequePaymentDetails = creditWnd.ChequePaymentDetails; ArrayList arrCreditCardPaymentDetails = creditWnd.CreditCardPaymentDetails; ArrayList arrDebitPaymentDetails = creditWnd.DebitPaymentDetails; result = creditWnd.Result; // do not dispose here coz the dgvItemsSelectedRows is also disposed //creditWnd.Close(); //creditWnd.Dispose(); if (result == DialogResult.OK) { if (keyData == Keys.F12) { ReprintTransaction(strTransactionNoToReprint, strTerminalNoToReprint); return; } bool boActivateSuspendedAccount = true; if (!mclsContactDetails.CreditDetails.CreditActive) { if (MessageBox.Show("Account is InActive, would you like to re-activate? Remarks: " + Environment.NewLine + mclsContactDetails.Remarks + Environment.NewLine + Environment.NewLine + "Press [yes] to automatically activate or [no] to disregard activation.", "RetailPlus", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.No) boActivateSuspendedAccount = false; } Int64 iCollectionReceiptNo = 0; if (mclsSysConfigDetails.CreditPaymentType == CreditPaymentType.MPC) { decimal decRetValue = 0; if (ShowNoControl(this, out decRetValue, decimal.Parse(iCollectionReceiptNo.ToString()), "Enter Collection Receipt (CR) No.") != System.Windows.Forms.DialogResult.OK) { MessageBox.Show("Sorry you cannot issue a Credit Payment without the collection receipt no. Please enter CR No first.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } else { iCollectionReceiptNo = Int64.Parse(decRetValue.ToString()); } } Cursor.Current = Cursors.WaitCursor; try { LocalDB clsLocalDB = new LocalDB(mConnection, mTransaction); mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction; mclsSalesTransactionDetails = new Data.SalesTransactionDetails(); mclsSalesTransactionDetails.TransactionItemsList = new System.Collections.Generic.List<Data.SalesTransactionItemDetails>(); mclsSalesTransactionDetails.CustomerDetails = mclsContactDetails; mclsSalesTransactionDetails.TransactionStatus = TransactionStatus.CreditPayment; mclsSalesTransactionDetails.CRNo = iCollectionReceiptNo; Data.Products clsProducts = new Data.Products(mConnection, mTransaction); mConnection = clsProducts.Connection; mTransaction = clsProducts.Transaction; if (clsProducts.Details(Data.Products.DEFAULT_CREDIT_PAYMENT_BARCODE).ProductID == 0) { clsProducts.CREATE_CREDITPAYMENT_PRODUCT(); Methods.InsertAuditLog(mclsTerminalDetails, "System Administrator", AccessTypes.EnterCreditPayment, "CREDIT PAYMENT product has been created coz it's not configured"); } /************** April 21, 2006: added transaction no. ***************/ lblCustomer.Tag = mclsContactDetails.ContactID; lblCustomer.Text = mclsContactDetails.ContactName; clsEvent.AddEvent("[" + lblCashier.Text + "] Creating " + Data.Products.DEFAULT_CREDIT_PAYMENT_BARCODE + " transaction for customer: "); LoadContact(AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER, mclsContactDetails); if (!this.CreateTransaction()) return; txtBarCode.Text = Data.Products.DEFAULT_CREDIT_PAYMENT_BARCODE; ReadBarCode(); int iRow = dgItems.CurrentRowIndex; Data.SalesTransactionItemDetails clsItemDetails = getCurrentRowItemDetails(); clsItemDetails.Price = AmountPaid; clsItemDetails.Amount = AmountPaid; clsItemDetails = ComputeItemTotal(clsItemDetails); // set the grossales, vat, discounts, etc.(Details); Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction); mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction; ApplyChangeQuantityPriceAmountDetails(iRow, clsItemDetails, "Change Quantity, Price, Amount for Credit Payment"); // re-instantiate the status mclsSalesTransactionDetails.TransactionStatus = TransactionStatus.CreditPayment; mclsSalesTransactionDetails.AmountDue = AmountPaid; mclsSalesTransactionDetails.AmountPaid = AmountPaid; mclsSalesTransactionDetails.ChangeAmount = ChangeAmount; mclsSalesTransactionDetails.CashPayment = CashPayment; mclsSalesTransactionDetails.ChequePayment = ChequePayment; mclsSalesTransactionDetails.PaymentType = PaymentType; mclsSalesTransactionDetails.CRNo = iCollectionReceiptNo; // for assignment of payments mclsSalesTransactionDetails.PaymentDetails = AssignArrayListPayments(arrCashPaymentDetails, arrChequePaymentDetails, arrCreditCardPaymentDetails, null, arrDebitPaymentDetails); SavePayments(arrCashPaymentDetails, arrChequePaymentDetails, arrCreditCardPaymentDetails, null, arrDebitPaymentDetails); // save the details of credit payments SaveCreditPayments(dgvItemsSelectedRows, arrCashPaymentDetails, arrChequePaymentDetails, arrCreditCardPaymentDetails, null, arrDebitPaymentDetails, boActivateSuspendedAccount); //OpenDrawerDelegate opendrawerDel = new OpenDrawerDelegate(OpenDrawer); //Invoke(opendrawerDel); OpenDrawer(); //update the transaction table Int64 iTransactionID = Convert.ToInt64(lblTransNo.Tag); string strORNo = ""; // no need to put an OR no for credit payment coz it's already declared before clsSalesTransactions.Close(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.TerminalNo, strORNo, 0, 0, AmountPaid, AmountPaid, AmountPaid, 0, 0, 0, 0, 0, 0, 0, 0, 0, DiscountTypes.NotApplicable, 0, 0, 0, 0, 0, 0, 0, 0, 0, AmountPaid, CashPayment, ChequePayment, CreditCardPayment, 0, DebitPayment, 0, 0, 0, 0, PaymentType, null, null, 0, 0, null, null, mclsSalesTransactionDetails.CashierID, lblCashier.Text, TransactionStatus.CreditPayment); // 05Mar2015 : MPC - Update the CRNo as per Ms. Norma clsSalesTransactions.UpdateCRNo(mclsSalesTransactionDetails.BranchID, mclsSalesTransactionDetails.TerminalNo, mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.CRNo); //UpdateTerminalReportDelegate updateterminalDel = new UpdateTerminalReportDelegate(UpdateTerminalReport); UpdateTerminalReport(TransactionStatus.CreditPayment, 0, 0, AmountPaid, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CashPayment, ChequePayment, CreditCardPayment, 0, DebitPayment, 0, 0, PaymentType); //UpdateCashierReportDelegate updatecashierDel = new UpdateCashierReportDelegate(UpdateCashierReport); UpdateCashierReport(TransactionStatus.CreditPayment, 0, 0, AmountPaid, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CashPayment, ChequePayment, CreditCardPayment, 0, DebitPayment, 0, 0, PaymentType); // Sep 24, 2014 : update back the LastCheckInDate to min date Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); mConnection = clsContact.Connection; mTransaction = clsContact.Transaction; clsContact.UpdateLastCheckInDate(mclsSalesTransactionDetails.CustomerID, Constants.C_DATE_MIN_VALUE); //enable IsCreditAllowed //already done when paying creditpayment //// 3Nov2014 : automatically deposit the change if credit payment //#region Auto deposit for creditpayment //if (mclsSysConfigDetails.WillDepositChangeOfCreditPayment) //{ // InsertAuditLog(AccessTypes.Deposit, "Auto depositing change of trx #: " + mclsSalesTransactionDetails.TransactionNo + "."); // clsEvent.AddEventLn("Auto depositing change of trx #: " + mclsSalesTransactionDetails.TransactionNo + "."); // Data.Deposits clsDeposit = new Data.Deposits(mConnection, mTransaction); // mConnection = clsDeposit.Connection; mTransaction = clsDeposit.Transaction; // Data.DepositDetails clsDepositDetails = new Data.DepositDetails() // { // BranchDetails = mclsTerminalDetails.BranchDetails, // TerminalNo = mclsTerminalDetails.TerminalNo, // Amount = mclsSalesTransactionDetails.ChangeAmount, // PaymentType = mclsSalesTransactionDetails.PaymentType, // DateCreated = DateTime.Now, // CashierID = mclsSalesTransactionDetails.CashierID, // CashierName = mclsSalesTransactionDetails.CashierName, // ContactID = mclsSalesTransactionDetails.CustomerDetails.ContactID, // ContactName = mclsSalesTransactionDetails.CustomerDetails.ContactName, // Remarks = "Auto deposit from trx #: " + mclsSalesTransactionDetails.TransactionNo + ".", // CreatedOn = DateTime.Now, // LastModified = DateTime.Now // }; // clsDeposit.Insert(clsDepositDetails); // Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); // mConnection = clsContact.Connection; mTransaction = clsContact.Transaction; // clsContact.AddDebit(clsDepositDetails.ContactID, clsDepositDetails.Amount); // clsDeposit.CommitAndDispose(); // InsertAuditLog(AccessTypes.Deposit, "Deposit: type='" + clsDepositDetails.PaymentType.ToString("G") + "' amount='" + clsDepositDetails.Amount.ToString(",##0.#0") + "'" + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode); // clsEvent.AddEventLn("Done! type=" + clsDepositDetails.PaymentType.ToString("G") + " amount=" + clsDepositDetails.Amount.ToString("#,###.#0")); //} //#endregion clsSalesTransactions.CommitAndDispose(); clsLocalDB.CommitAndDispose(); InsertAuditLog(AccessTypes.CreditPayment, "Pay credit for " + mclsContactDetails.ContactName + "." + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode); if (mclsTerminalDetails.AutoPrint == PrintingPreference.AskFirst) if (MessageBox.Show("Would you like to print this transaction?", "RetailPlus", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, (mclsSysConfigDetails.isDefaultButtonYesInPrintTransaction ? MessageBoxDefaultButton.Button1 : MessageBoxDefaultButton.Button2)) == DialogResult.Yes) mclsTerminalDetails.AutoPrint = PrintingPreference.Normal; // print credit payment as normal transaction if not HP if (mclsSalesTransactionDetails.isConsignment) { // 18Feb2015 : Print DR only if the transaction is consignment clsEvent.AddEventLn(" printing delivery receipt as consginment...", true, mclsSysConfigDetails.WillWriteSystemLog); PrintDeliveryReceipt(); } else if (mclsSalesTransactionDetails.CustomerDetails.ContactCode == mclsSysConfigDetails.OutOfStockCustomerCode && (mclsTerminalDetails.ReceiptType == TerminalReceiptType.SalesInvoice || mclsTerminalDetails.ReceiptType == TerminalReceiptType.DeliveryReceipt || mclsTerminalDetails.ReceiptType == TerminalReceiptType.SalesInvoiceAndDR)) { clsEvent.AddEventLn(" printing out of stock orders...", true, mclsSysConfigDetails.WillWriteSystemLog); PrintOSReceipt(); } else if (mclsSalesTransactionDetails.CustomerDetails.ContactCode == mclsSysConfigDetails.WalkInCustomerCode && (mclsTerminalDetails.ReceiptType == TerminalReceiptType.SalesInvoice || mclsTerminalDetails.ReceiptType == TerminalReceiptType.DeliveryReceipt || mclsTerminalDetails.ReceiptType == TerminalReceiptType.SalesInvoiceAndDR)) { clsEvent.AddEventLn(" printing walk-in customer quote form...", true, mclsSysConfigDetails.WillWriteSystemLog); PrintWalkInReceipt(); } else if (mclsSysConfigDetails.CreditPaymentType == CreditPaymentType.Houseware) { // do another report for credit payment if HP PrintCreditPayment(); // do this twice as per request of CN trader's and CS PrintCreditPayment(); } else if (mclsTerminalDetails.ReceiptType == TerminalReceiptType.SalesInvoice || mclsTerminalDetails.ReceiptType == TerminalReceiptType.DeliveryReceipt || mclsTerminalDetails.ReceiptType == TerminalReceiptType.SalesInvoiceAndDR) { clsEvent.AddEventLn(" printing sales invoice...", true, mclsSysConfigDetails.WillWriteSystemLog); PrintCollectionReceipt(); } else { // Sep 14, 2014 Control printing in mclsFilePrinter.Write //if (mclsTerminalDetails.AutoPrint == PrintingPreference.Normal) //print items if not yet printed //{ foreach (System.Data.DataRow dr in ItemDataTable.Rows) { if (dr["Quantity"].ToString() != "VOID") { string stItemNo = "" + dr["ItemNo"].ToString(); string stProductCode = "" + dr["ProductCode"].ToString(); if (dr["MatrixDescription"].ToString() != string.Empty && dr["MatrixDescription"].ToString() != null) stProductCode += "-" + dr["MatrixDescription"].ToString(); string stProductUnitCode = "" + dr["ProductUnitCode"].ToString(); decimal decQuantity = Convert.ToDecimal(dr["Quantity"]); decimal decPrice = Convert.ToDecimal(dr["Price"]); decimal decDiscount = Convert.ToDecimal(dr["Discount"]); decimal decAmount = Convert.ToDecimal(dr["Amount"]); decimal decVAT = Convert.ToDecimal(dr["VAT"]); decimal decEVAT = Convert.ToDecimal(dr["EVAT"]); decimal decPromoApplied = Convert.ToDecimal(dr["PromoApplied"]); string stDiscountCode = "" + dr["DiscountCode"].ToString(); DiscountTypes ItemDiscountType = (DiscountTypes)Enum.Parse(typeof(DiscountTypes), dr["ItemDiscountType"].ToString()); PrintItem(stItemNo, stProductCode, stProductUnitCode, decQuantity, decPrice, decDiscount, decPromoApplied, decAmount, decVAT, decEVAT, stDiscountCode, ItemDiscountType); } } //} // Sep 14, 2014 Control printing in mclsFilePrinter.Write PrintReportFooterSection(true, TransactionStatus.CreditPayment, 0, 0, AmountPaid, 0, 0, AmountPaid, CashPayment, ChequePayment, CreditCardPayment, 0, DebitPayment, 0, 0, ChangeAmount, arrChequePaymentDetails, arrCreditCardPaymentDetails, null, arrDebitPaymentDetails); } this.LoadOptions(); } catch (Exception ex) { InsertErrorLogToFile(ex, "ERROR!!! Credit payment procedure. Err Description: "); } Cursor.Current = Cursors.Default; } creditWnd.Close(); creditWnd.Dispose(); } } }
private void LoadOptions() { try { clsEvent.AddEvent("Loading transaction defaults..."); Cursor.Current = Cursors.WaitCursor; this.KeyPreview = true; lblCurrency.Text = CompanyDetails.Currency; lblTransNo.Text = "READY..."; lblCustomer.Text = Constants.C_RETAILPLUS_CUSTOMER; lblCustomer.Tag = Constants.C_RETAILPLUS_CUSTOMERID.ToString(); lblAgent.Text = Constants.C_RETAILPLUS_AGENT; lblAgent.Tag = Constants.C_RETAILPLUS_AGENTID.ToString(); lblAgentPositionDepartment.Text = Constants.C_RETAILPLUS_AGENT_POSITIONNAME; lblAgentPositionDepartment.Tag = Constants.C_RETAILPLUS_AGENT_DEPARTMENT_NAME; grpItems.Text = "Served by: " + Constants.C_RETAILPLUS_WAITER; grpItems.Tag = Constants.C_RETAILPLUS_WAITERID.ToString(); lblDescription.Text = "Description"; lblCategory.Text = "Category"; lblProperties.Text = "Property"; lblTransDate.Text = DateTime.Now.ToString("MMM. dd, yyyy hh:mm:ss tt"); lblSubTotal.Text = "0.00"; lblTransDiscount.Text = "Less 0% / 0.00"; lblTransDiscount.Tag = DiscountTypes.NotApplicable.ToString("d"); if (mclsTerminalDetails.WithRestaurantFeatures) { lblSubtotalName.Text = "SUBTOTAL:"; lblOrderType.Visible = true; lblOrderType.Text = OrderTypes.DineIn.ToString("G").ToUpper();} else { lblSubtotalName.Text = "SUBTOTAL"; lblOrderType.Visible = false; lblOrderType.Text = OrderTypes.DineIn.ToString("G").ToUpper(); } lblMessage.Text = " Your suggestive selling message and/or description"; lblTransCharge.Text = lblTransCharge.Text = "Plus 0% / 0.00"; txtBarCode.Text = ""; lblConsignment.Visible = false; mboIsRefund = false; mboDoNotPrintTransactionDate = false; //mboIsDiscountAuthorized = false; mclsSalesTransactionDetails = new Data.SalesTransactionDetails(); mclsSalesTransactionDetails.TransactionItemsList = new System.Collections.Generic.List<Data.SalesTransactionItemDetails>(); try { mclsSalesTransactionDetails.CashierID = Convert.ToInt64(lblCashier.Tag); } catch { } mclsSalesTransactionDetails.CashierName = lblCashier.Text; Data.Terminal clsTerminal = new Data.Terminal(mConnection, mTransaction); mConnection = clsTerminal.Connection; mTransaction = clsTerminal.Transaction; mclsTerminalDetails = clsTerminal.Details(Constants.TerminalBranchID, CompanyDetails.TerminalNo); lblTerminalNoName.Text = mclsTerminalDetails.BranchDetails.BranchName; Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); mConnection = clsContact.Connection; mTransaction = clsContact.Transaction; //reload the default customer if necessary if (mclsContactDetailsDEFCustomer.ContactID != Constants.C_RETAILPLUS_CUSTOMERID) mclsContactDetailsDEFCustomer = clsContact.Details(Constants.C_RETAILPLUS_CUSTOMERID); if (mclsContactDetails.ContactID != Constants.C_RETAILPLUS_CUSTOMERID) mclsContactDetails = mclsContactDetailsDEFCustomer; // Sep 24, 2011 Lemuel E. Aceron // Added order slip wherein all punch items will not change sales and inventory // Override the reserved and commit if order slip // a customer named ORDER SLIP should be defined in contacts //if (lblCustomer.Text.Trim().ToUpper() == Constants.C_RETAILPLUS_ORDER_SLIP_CUSTOMER) //{ mclsTerminalDetails.ReservedAndCommit = false; } // Dec 01, 2008 Lemuel E. Aceron // added the IsCashCountInitialized for 1 time // Cash count every printing of report. if (mclsTerminalDetails.CashCountBeforeReport) mboIsCashCountInitialized = clsTerminal.IsCashCountInitialized(mclsTerminalDetails.BranchDetails.BranchID, mclsTerminalDetails.TerminalNo, mclsSalesTransactionDetails.CashierID); clsTerminal.CommitAndDispose(); SetGridItems(); SetGridItemsWidth(); mboIsInTransaction = false; mboIsItemHeaderPrinted = false; mboCreditCardSwiped = false; mboRewardCardSwiped = false; mdteOverRidingPrintDate = DateTime.MinValue; StartMarqueeThread(); Cursor.Current = Cursors.Default; msbToPrint.Clear(); msbToPrint = new StringBuilder(); msbEJournalToPrint = new StringBuilder(); clsEvent.AddEventLn("Done!", true); } catch (Exception ex) { InsertErrorLogToFile(ex, "ERROR!!! Loading options."); } }
private void LoadContactData(System.Data.SqlClient.SortOrder SequenceSortOrder) { try { tblLayout.Controls.Clear(); Int64 intSequenceNoStart = 0; if (SequenceSortOrder == System.Data.SqlClient.SortOrder.Descending) { try { intSequenceNoStart = long.Parse(cmdTableLeft.Tag.ToString()); } catch { } } else { try { intSequenceNoStart = long.Parse(cmdTableRight.Tag.ToString()); } catch { } } // Sep 24, 2014 put an override if cmdSubGroupLeft.Tag = 0 // always do an asceding coz its already the end. if (intSequenceNoStart < Constants.C_RESTOPLUS_MAX_TABLES) { intSequenceNoStart = 0; //reset to 0 if it's 1 } if (intSequenceNoStart == 0) { SequenceSortOrder = System.Data.SqlClient.SortOrder.Ascending; } ContactColumns clsContactColumns = new ContactColumns(); clsContactColumns.ContactCode = true; clsContactColumns.LastCheckInDate = true; ContactColumns clsSearchColumns = new ContactColumns(); Contacts clsContact = new Contacts(); System.Data.DataTable dtContact; if (ContactGroupCategory == Data.ContactGroupCategory.TABLES) { dtContact = clsContact.Tables(clsContactColumns, intSequenceNoStart, SequenceSortOrder, clsSearchColumns, string.Empty, SequenceSortOrder == System.Data.SqlClient.SortOrder.Descending ? Constants.C_RESTOPLUS_MAX_TABLES : Constants.C_RESTOPLUS_MAX_TABLES + 1, false, "SequenceNo", SequenceSortOrder); } else { dtContact = clsContact.Customers(clsContactColumns, intSequenceNoStart, SequenceSortOrder, clsSearchColumns, string.Empty, SequenceSortOrder == System.Data.SqlClient.SortOrder.Descending ? Constants.C_RESTOPLUS_MAX_TABLES : Constants.C_RESTOPLUS_MAX_TABLES + 1, false, "SequenceNo", SequenceSortOrder); } // re-order the products by sequence no if (dtContact.Rows.Count > 0) { System.Data.DataView dv = dtContact.DefaultView; dv.Sort = "SequenceNo"; dtContact = dv.ToTable(); } int iRow = 0; int iCol = 0; int iCtr = 1; Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(clsContact.Connection, clsContact.Transaction); Data.SalesTransactionDetails clsSalesTransactionDetails = new Data.SalesTransactionDetails(); Data.MergeTable clsMergeTable = new Data.MergeTable(clsContact.Connection, clsContact.Transaction); Data.MergeTableDetails clsMergeTableDetails = new Data.MergeTableDetails(); if (dtContact.Rows.Count == 0) { cmdTableLeft.Tag = "0".ToString(); // reset the sequenceno to 0 if no record cmdTableRight.Tag = "0".ToString(); // reset the sequenceno to 0 if no record } foreach (System.Data.DataRow dr in dtContact.Rows) { //if (iCol == 5) { iCol = 0; iRow++; } #region Sequence # Counter if (iCtr > Constants.C_RESTOPLUS_MAX_TABLES) { break; } if (iCtr == 1) { cmdTableLeft.Tag = dr[Data.ContactColumnNames.SequenceNo].ToString(); } if (iCtr >= 1 && dtContact.Rows.Count > Constants.C_RESTOPLUS_MAX_TABLES) { cmdTableRight.Tag = dr[Data.ContactColumnNames.SequenceNo].ToString(); } #endregion ProductButton cmdTable = new ProductButton(); cmdTable.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; cmdTable.BackColor = System.Drawing.Color.Red; cmdTable.Dock = System.Windows.Forms.DockStyle.Fill; cmdTable.FlatAppearance.BorderColor = System.Drawing.Color.Gold; cmdTable.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); cmdTable.ForeColor = System.Drawing.SystemColors.ControlText; cmdTable.GradientBottom = System.Drawing.Color.DarkRed; cmdTable.GradientTop = System.Drawing.Color.Red; cmdTable.ImageAlign = System.Drawing.ContentAlignment.TopCenter; cmdTable.Location = new System.Drawing.Point(3, 3); cmdTable.Size = new System.Drawing.Size(245, 90); cmdTable.TabIndex = 118; cmdTable.TextAlign = System.Drawing.ContentAlignment.BottomCenter; cmdTable.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText; cmdTable.UseVisualStyleBackColor = false; cmdTable.Name = "cmdTable" + iCtr.ToString(); cmdTable.Text = dr[Data.ContactColumnNames.ContactCode].ToString(); cmdTable.Tag = dr[Data.ContactColumnNames.ContactID].ToString(); cmdTable.Click += new System.EventHandler(cmdTable_Click); if (DateTime.Parse(dr[Data.ContactColumnNames.LastCheckInDate].ToString()) != Constants.C_DATE_MIN_VALUE) { TimeSpan iLapse = DateTime.Now - DateTime.Parse(dr[Data.ContactColumnNames.LastCheckInDate].ToString()); Label lblLastCheckInDate = new System.Windows.Forms.Label(); lblLastCheckInDate.AutoSize = true; lblLastCheckInDate.BackColor = System.Drawing.Color.Transparent; lblLastCheckInDate.Font = new System.Drawing.Font("Tahoma", 7.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); lblLastCheckInDate.ForeColor = System.Drawing.Color.Blue; lblLastCheckInDate.Location = new System.Drawing.Point(5, 5); lblLastCheckInDate.Name = "lblLastCheckInDate" + iCtr.ToString(); lblLastCheckInDate.TabIndex = 1; lblLastCheckInDate.Text = ""; lblLastCheckInDate.Text = "CheckIn: " + DateTime.Parse(dr[Data.ContactColumnNames.LastCheckInDate].ToString()).ToString("dd-MMM hh:mm tt") + " [" + iLapse.Hours.ToString("0#") + "hrs " + iLapse.Minutes.ToString("0#") + "mins]"; cmdTable.Controls.Add(lblLastCheckInDate); } string stTransactionNo = clsSalesTransactions.getSuspendedTransactionNo(long.Parse(dr[Data.ContactColumnNames.ContactID].ToString()), mclsTerminalDetails.TerminalNo, mclsTerminalDetails.BranchID); if (stTransactionNo != string.Empty) { clsSalesTransactionDetails = clsSalesTransactions.Details(stTransactionNo, mclsTerminalDetails.TerminalNo, mclsTerminalDetails.BranchID); cmdTable.Text = dr[Data.ContactColumnNames.ContactCode].ToString(); decimal decAmountDue = Convert.ToDecimal(clsSalesTransactionDetails.SubTotal + clsSalesTransactionDetails.Charge - clsSalesTransactionDetails.Discount); cmdTable.Text += Environment.NewLine + Environment.NewLine + "Amount Due:" + decAmountDue.ToString("#,###.#0"); Label lblNoOfPax = new System.Windows.Forms.Label(); lblNoOfPax.AutoSize = true; lblNoOfPax.BackColor = System.Drawing.Color.Transparent; lblNoOfPax.Font = new System.Drawing.Font("Tahoma", 7.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); lblNoOfPax.ForeColor = System.Drawing.Color.White; lblNoOfPax.Location = new System.Drawing.Point(210, 75); lblNoOfPax.Name = "lblNoOfPax" + iCtr.ToString(); lblNoOfPax.TabIndex = 1; lblNoOfPax.Text = ""; lblNoOfPax.Text = clsSalesTransactionDetails.PaxNo.ToString() + "Pax"; cmdTable.Controls.Add(lblNoOfPax); // Jan 31, 2015 : Lemu // Added disabling of Suspended Transactions. // Put the SuspendedOpen Status to in LoadTransaction if (mboShowAvailableTableOnly || clsSalesTransactionDetails.TransactionStatus == TransactionStatus.SuspendedOpen) { cmdTable.BackColor = System.Drawing.Color.DarkGray; cmdTable.GradientBottom = System.Drawing.Color.DarkGray; cmdTable.GradientTop = System.Drawing.Color.DarkGray; cmdTable.Enabled = false; if (clsSalesTransactionDetails.TransactionStatus == TransactionStatus.SuspendedOpen) { cmdTable.BackColor = System.Drawing.Color.Gray; cmdTable.GradientBottom = System.Drawing.Color.Gray; cmdTable.GradientTop = System.Drawing.Color.Gray; cmdTable.Enabled = true; cmdTable.Text += Environment.NewLine + "(open in other terminal)"; } } else { cmdTable.BackColor = System.Drawing.Color.DarkBlue; cmdTable.GradientBottom = System.Drawing.Color.DarkBlue; cmdTable.GradientTop = System.Drawing.Color.LightBlue; } } Label lblMerge = new System.Windows.Forms.Label(); lblMerge.AutoSize = true; lblMerge.BackColor = System.Drawing.Color.Transparent; lblMerge.Font = new System.Drawing.Font("Tahoma", 7.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); lblMerge.ForeColor = System.Drawing.Color.White; lblMerge.Location = new System.Drawing.Point(5, 75); lblMerge.Name = "lblMerge" + iCtr.ToString(); lblMerge.TabIndex = 1; lblMerge.Text = "Merged"; lblMerge.Visible = false; cmdTable.Controls.Add(lblMerge); clsMergeTableDetails = clsMergeTable.Details(dr[Data.ContactColumnNames.ContactCode].ToString()); if (clsMergeTableDetails.ChildTableCode == dr[Data.ContactColumnNames.ContactCode].ToString() && clsMergeTableDetails.MainTableCode != dr[Data.ContactColumnNames.ContactCode].ToString()) { cmdTable.BackColor = System.Drawing.Color.DarkGray; cmdTable.GradientBottom = System.Drawing.Color.DarkGray; cmdTable.GradientTop = System.Drawing.Color.LightGray; cmdTable.Enabled = false; cmdTable.Controls["lblMerge" + cmdTable.Name.Replace("cmdTable", "")].Visible = true; cmdTable.Controls["lblMerge" + cmdTable.Name.Replace("cmdTable", "")].Text = "Merged to " + clsMergeTableDetails.MainTableCode; } tblLayout.Controls.Add(cmdTable, iCol, iRow); iCol++; iCtr++; } clsContact.CommitAndDispose(); } catch (IndexOutOfRangeException) {} catch (Exception ex) { MessageBox.Show(ex.Message, "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private DialogResult ShowPayment() { DialogResult paymentResult = DialogResult.Cancel; if (Convert.ToDecimal(lblBalanceSelected.Text) > 0) { Data.SalesTransactionDetails clsSalesTransactionDetails = new Data.SalesTransactionDetails(); switch (mclsSysConfigDetails.CreditPaymentType) { case CreditPaymentType.Houseware: clsSalesTransactionDetails.SubTotal = Convert.ToDecimal(lblAmountDue.Text); break; case CreditPaymentType.Normal: case CreditPaymentType.MPC: default: clsSalesTransactionDetails.SubTotal = Convert.ToDecimal(lblBalanceSelected.Text); break; } clsSalesTransactionDetails.TransactionStatus = TransactionStatus.CreditPayment; PaymentsWnd payment = new PaymentsWnd(); payment.TerminalDetails = TerminalDetails; payment.SysConfigDetails = mclsSysConfigDetails; payment.CustomerDetails = mclsCustomerDetails; payment.SalesTransactionDetails = clsSalesTransactionDetails; payment.CreditCardSwiped = false; payment.IsRefund = false; payment.isFromCreditPayment = true; payment.ShowDialog(this); paymentResult = payment.Result; mdecAmountPaid = payment.AmountPaid; mdecCashPayment = payment.CashPayment; mdecChequePayment = payment.ChequePayment; mdecCreditCardPayment = payment.CreditCardPayment; mdecDebitPayment = payment.DebitPayment; mdecBalanceAmount = payment.BalanceAmount; mdecChangeAmount = payment.ChangeAmount; mPaymentType = payment.PaymentType; marrCashPaymentDetails = payment.CashPaymentDetails; marrChequePaymentDetails = payment.ChequePaymentDetails; marrCreditCardPaymentDetails = payment.CreditCardPaymentDetails; marrDebitPaymentDetails = payment.DebitPaymentDetails; payment.Close(); payment.Dispose(); if (paymentResult == DialogResult.OK) { // Nov 2, 2014 do not save do the saving in MainWnd // get the selected Transactions to be paid instead //SavePayments(mdecAmountPaid, mdecCashPayment, mdecChequePayment, mdecCreditCardPayment, mdecDebitPayment, // marrCashPaymentDetails, marrChequePaymentDetails, marrCreditCardPaymentDetails, marrDebitPaymentDetails); mdgvItemsSelectedRows = dgvItems.SelectedRows; } } return paymentResult; }
/// <summary> /// Load the transaction using the transaction no. scanned in the txtScan. /// </summary> private void LoadTransaction() { try { LoadOptions(); string strTransactionNo = txtScan.Text.Trim().PadLeft(14, '0'); Data.SalesTransactions clsTransactions = new Data.SalesTransactions(); mclsSalesTransactionDetails = clsTransactions.Details(strTransactionNo, mclsTerminalDetails.TerminalNo, mclsTerminalDetails.BranchID); if (mclsSalesTransactionDetails.TransactionNo != string.Empty && mclsSalesTransactionDetails.TransactionNo != null) { if (mclsSalesTransactionDetails.TransactionStatus == TransactionStatus.Closed) { Data.SalesTransactionItems clsItems = new Data.SalesTransactionItems(clsTransactions.Connection, clsTransactions.Transaction); mclsSalesTransactionDetails.TransactionItems = clsItems.Details(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.TransactionDate); clsTransactions.CommitAndDispose(); lblTransactionNo.Text = "Transaction #: " + mclsSalesTransactionDetails.TransactionNo; lblTransactionNo.Tag = mclsSalesTransactionDetails.TransactionID.ToString(); lblCommand.Tag = mclsSalesTransactionDetails.TransactionDate.ToString("MM/dd/yyyy hh:mm"); LoadResumedItems(mclsSalesTransactionDetails.TransactionItems); getTotal(); lblCommand.Text = "Scan item:"; txtScan.Text = string.Empty; txtScan.Focus(); } else { clsTransactions.CommitAndDispose(); txtScan.Text = string.Empty; txtScan.Focus(); MessageBox.Show("Sorry, you cannot release transaction with status: " + mclsSalesTransactionDetails.TransactionStatus.ToString("G") + ".", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } else { clsTransactions.CommitAndDispose(); } } catch { } }
private DialogResult ShowPayment() { DialogResult paymentResult = DialogResult.Cancel; if (Convert.ToDecimal(lblBalance.Text) > 0) { PaymentsWnd payment = new PaymentsWnd(); Data.SalesTransactionDetails clsSalesTransactionDetails = new Data.SalesTransactionDetails(); clsSalesTransactionDetails.SubTotal = mclsCustomerDetails.Credit; payment.SalesTransactionDetails = clsSalesTransactionDetails; //payment.TransactionNo = string.Empty; //will get from the transction nos. payment.CustomerDetails = mclsCustomerDetails; //payment.Discount = Convert.ToDecimal(0); //payment.SubTotal = mclsCustomerDetails.Credit; payment.IsRefund = false; payment.ShowDialog(this); paymentResult = payment.Result; mdecAmountPaid = payment.AmountPaid; mdecCashPayment = payment.CashPayment; mdecChequePayment = payment.ChequePayment; mdecCreditCardPayment = payment.CreditCardPayment; mdecDebitPayment = payment.DebitPayment; mdecBalanceAmount = payment.BalanceAmount; mdecChangeAmount = payment.ChangeAmount; PaymentTypes mPaymentType = payment.PaymentType; marrCashPaymentDetails = payment.CashPaymentDetails; marrChequePaymentDetails = payment.ChequePaymentDetails; marrCreditCardPaymentDetails = payment.CreditCardPaymentDetails; marrDebitPaymentDetails = payment.DebitPaymentDetails; payment.Close(); payment.Dispose(); if (paymentResult == DialogResult.OK) { SavePayments(mdecAmountPaid, mdecCashPayment, mdecChequePayment, mdecCreditCardPayment, mdecDebitPayment, marrCashPaymentDetails, marrChequePaymentDetails, marrCreditCardPaymentDetails, marrDebitPaymentDetails); } } return paymentResult; }
private bool CreateDetails(int iRow) { try { bool boRetValue = false; mDetails = new Data.SalesTransactionDetails(); mDetails.TransactionID = Convert.ToInt64(dgItems[iRow, 0]); mDetails.TransactionNo = dgItems[iRow, 1].ToString(); Data.SalesTransactions clsTransactions = new Data.SalesTransactions(); mDetails = clsTransactions.Details(mDetails.TransactionNo, TerminalDetails.TerminalNo, TerminalDetails.BranchID); clsTransactions.Resume(mDetails.TransactionID); Data.SalesTransactionItems clsItems = new Data.SalesTransactionItems(clsTransactions.Connection, clsTransactions.Transaction); mDetails.TransactionItems = clsItems.Details(mDetails.TransactionID, mDetails.TransactionDate); clsTransactions.CommitAndDispose(); boRetValue = true; return boRetValue; } catch (Exception ex) { MessageBox.Show(ex.Message, "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } }
private void LoadContactData(System.Data.SqlClient.SortOrder SequenceSortOrder) { try { tblLayout.Controls.Clear(); Int64 intSequenceNoStart = 0; if (SequenceSortOrder == System.Data.SqlClient.SortOrder.Descending) try { intSequenceNoStart = long.Parse(cmdTableLeft.Tag.ToString()); } catch { } else try { intSequenceNoStart = long.Parse(cmdTableRight.Tag.ToString()); } catch { } // Sep 24, 2014 put an override if cmdSubGroupLeft.Tag = 0 // always do an asceding coz its already the end. if (intSequenceNoStart < Constants.C_RESTOPLUS_MAX_TABLES) intSequenceNoStart = 0; //reset to 0 if it's 1 if (intSequenceNoStart == 0) SequenceSortOrder = System.Data.SqlClient.SortOrder.Ascending; ContactColumns clsContactColumns = new ContactColumns(); clsContactColumns.ContactCode = true; clsContactColumns.LastCheckInDate = true; ContactColumns clsSearchColumns = new ContactColumns(); Contacts clsContact = new Contacts(); System.Data.DataTable dtContact; if (ContactGroupCategory == Data.ContactGroupCategory.TABLES) dtContact = clsContact.Tables(clsContactColumns, intSequenceNoStart, SequenceSortOrder, clsSearchColumns, string.Empty, SequenceSortOrder == System.Data.SqlClient.SortOrder.Descending ? Constants.C_RESTOPLUS_MAX_TABLES : Constants.C_RESTOPLUS_MAX_TABLES + 1, false, "SequenceNo", SequenceSortOrder); else dtContact = clsContact.Customers(clsContactColumns, intSequenceNoStart, SequenceSortOrder, clsSearchColumns, string.Empty, SequenceSortOrder == System.Data.SqlClient.SortOrder.Descending ? Constants.C_RESTOPLUS_MAX_TABLES : Constants.C_RESTOPLUS_MAX_TABLES + 1, false, "SequenceNo", SequenceSortOrder); // re-order the products by sequence no if (dtContact.Rows.Count > 0) { System.Data.DataView dv = dtContact.DefaultView; dv.Sort = "ContactCode"; dtContact = dv.ToTable(); } int iRow = 0; int iCol = 0; int iCtr = 1; Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(clsContact.Connection, clsContact.Transaction); Data.SalesTransactionDetails clsSalesTransactionDetails = new Data.SalesTransactionDetails(); Data.MergeTable clsMergeTable = new Data.MergeTable(clsContact.Connection, clsContact.Transaction); Data.MergeTableDetails clsMergeTableDetails = new Data.MergeTableDetails(); if (dtContact.Rows.Count == 0) { cmdTableLeft.Tag = "0".ToString(); // reset the sequenceno to 0 if no record cmdTableRight.Tag = "0".ToString(); // reset the sequenceno to 0 if no record } foreach (System.Data.DataRow dr in dtContact.Rows) { //if (iCol == 5) { iCol = 0; iRow++; } if (iCtr > Constants.C_RESTOPLUS_MAX_TABLES) break; if (iCtr == 1) cmdTableLeft.Tag = dr[Data.ContactColumnNames.SequenceNo].ToString(); if (iCtr >= 1 && dtContact.Rows.Count > Constants.C_RESTOPLUS_MAX_TABLES) cmdTableRight.Tag = dr[Data.ContactColumnNames.SequenceNo].ToString(); ProductButton cmdTable = new ProductButton(); cmdTable.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; cmdTable.BackColor = System.Drawing.Color.Red; cmdTable.Dock = System.Windows.Forms.DockStyle.Fill; cmdTable.FlatAppearance.BorderColor = System.Drawing.Color.Gold; cmdTable.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); cmdTable.ForeColor = System.Drawing.SystemColors.ControlText; cmdTable.GradientBottom = System.Drawing.Color.DarkRed; cmdTable.GradientTop = System.Drawing.Color.Red; cmdTable.ImageAlign = System.Drawing.ContentAlignment.TopCenter; cmdTable.Location = new System.Drawing.Point(3, 3); cmdTable.Size = new System.Drawing.Size(245, 90); cmdTable.TabIndex = 118; cmdTable.TextAlign = System.Drawing.ContentAlignment.BottomCenter; cmdTable.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText; cmdTable.UseVisualStyleBackColor = false; cmdTable.Name = "cmdTable" + iCtr.ToString(); cmdTable.Text = dr[Data.ContactColumnNames.ContactCode].ToString(); cmdTable.Tag = dr[Data.ContactColumnNames.ContactID].ToString(); cmdTable.Click += new System.EventHandler(cmdTable_Click); if (DateTime.Parse(dr[Data.ContactColumnNames.LastCheckInDate].ToString()) != Constants.C_DATE_MIN_VALUE) { TimeSpan iLapse = DateTime.Now - DateTime.Parse(dr[Data.ContactColumnNames.LastCheckInDate].ToString()); Label lblLastCheckInDate = new System.Windows.Forms.Label(); lblLastCheckInDate.AutoSize = true; lblLastCheckInDate.BackColor = System.Drawing.Color.Transparent; lblLastCheckInDate.Font = new System.Drawing.Font("Tahoma", 7.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); lblLastCheckInDate.ForeColor = System.Drawing.Color.Blue; lblLastCheckInDate.Location = new System.Drawing.Point(5, 5); lblLastCheckInDate.Name = "lblLastCheckInDate" + iCtr.ToString(); lblLastCheckInDate.TabIndex = 1; lblLastCheckInDate.Text = "CheckIn: " + DateTime.Parse(dr[Data.ContactColumnNames.LastCheckInDate].ToString()).ToString("dd-MMM hh:mm tt") + " [" + iLapse.Hours.ToString("0#") + "hrs " + iLapse.Minutes.ToString("0#") + "mins]"; cmdTable.Controls.Add(lblLastCheckInDate); } string stTransactionNo = clsSalesTransactions.getSuspendedTransactionNo(long.Parse(dr[Data.ContactColumnNames.ContactID].ToString()), TerminalDetails.TerminalNo, TerminalDetails.BranchID); if (stTransactionNo != string.Empty) { clsSalesTransactionDetails = clsSalesTransactions.Details(stTransactionNo, TerminalDetails.TerminalNo, TerminalDetails.BranchID); cmdTable.Text = dr[Data.ContactColumnNames.ContactCode].ToString(); decimal decAmountDue = Convert.ToDecimal(clsSalesTransactionDetails.SubTotal + clsSalesTransactionDetails.Charge - clsSalesTransactionDetails.Discount); cmdTable.Text += Environment.NewLine + Environment.NewLine + "Amount Due:" + decAmountDue.ToString("#,###.#0"); Label lblNoOfPax = new System.Windows.Forms.Label(); lblNoOfPax.AutoSize = true; lblNoOfPax.BackColor = System.Drawing.Color.Transparent; lblNoOfPax.Font = new System.Drawing.Font("Tahoma", 7.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); lblNoOfPax.ForeColor = System.Drawing.Color.White; lblNoOfPax.Location = new System.Drawing.Point(210, 75); lblNoOfPax.Name = "lblNoOfPax" + iCtr.ToString(); lblNoOfPax.TabIndex = 1; lblNoOfPax.Text = clsSalesTransactionDetails.PaxNo.ToString() + "Pax"; cmdTable.Controls.Add(lblNoOfPax); if (mboShowAvailableTableOnly) { cmdTable.BackColor = System.Drawing.Color.DarkGray; cmdTable.GradientBottom = System.Drawing.Color.DarkGray; cmdTable.GradientTop = System.Drawing.Color.LightGray; cmdTable.Enabled = false; } else { cmdTable.BackColor = System.Drawing.Color.DarkBlue; cmdTable.GradientBottom = System.Drawing.Color.DarkBlue; cmdTable.GradientTop = System.Drawing.Color.LightBlue; } } Label lblMerge = new System.Windows.Forms.Label(); lblMerge.AutoSize = true; lblMerge.BackColor = System.Drawing.Color.Transparent; lblMerge.Font = new System.Drawing.Font("Tahoma", 7.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); lblMerge.ForeColor = System.Drawing.Color.White; lblMerge.Location = new System.Drawing.Point(5, 75); lblMerge.Name = "lblMerge" + iCtr.ToString(); lblMerge.TabIndex = 1; lblMerge.Text = "Merged"; lblMerge.Visible = false; cmdTable.Controls.Add(lblMerge); clsMergeTableDetails = clsMergeTable.Details(dr[Data.ContactColumnNames.ContactCode].ToString()); if (MainTableToMerge.ContactCode == dr[Data.ContactColumnNames.ContactCode].ToString()) { cmdTable.BackColor = System.Drawing.Color.LightGreen; cmdTable.GradientBottom = System.Drawing.Color.LightGreen; cmdTable.GradientTop = System.Drawing.Color.DarkGreen; cmdTable.Enabled = false; cmdTable.Controls["lblMerge" + cmdTable.Name.Replace("cmdTable", "")].Visible = true; cmdTable.Controls["lblMerge" + cmdTable.Name.Replace("cmdTable", "")].Text = "Merged to this table"; } else if (clsMergeTableDetails.MainTableCode == dr[Data.ContactColumnNames.ContactCode].ToString()) { cmdTable.BackColor = System.Drawing.Color.DarkGray; cmdTable.GradientBottom = System.Drawing.Color.DarkGray; cmdTable.GradientTop = System.Drawing.Color.LightGray; cmdTable.Enabled = false; cmdTable.Controls["lblMerge" + cmdTable.Name.Replace("cmdTable", "")].Visible = true; cmdTable.Controls["lblMerge" + cmdTable.Name.Replace("cmdTable", "")].Text = "Merged - Main Table"; } else if (clsMergeTableDetails.ChildTableCode == dr[Data.ContactColumnNames.ContactCode].ToString() && MainTableToMerge.ContactCode != clsMergeTableDetails.MainTableCode) { cmdTable.BackColor = System.Drawing.Color.DarkGray; cmdTable.GradientBottom = System.Drawing.Color.DarkGray; cmdTable.GradientTop = System.Drawing.Color.LightGray; cmdTable.Enabled = false; cmdTable.Controls["lblMerge" + cmdTable.Name.Replace("cmdTable", "")].Visible = true; cmdTable.Controls["lblMerge" + cmdTable.Name.Replace("cmdTable", "")].Text = "Merged to " + clsMergeTableDetails.MainTableCode; } else if (clsMergeTableDetails.ChildTableCode == dr[Data.ContactColumnNames.ContactCode].ToString() && MainTableToMerge.ContactCode == clsMergeTableDetails.MainTableCode) { Data.ContactDetails clsContactDetails = clsContact.Details(long.Parse(cmdTable.Tag.ToString())); mlstTables.Add(clsContactDetails); cmdTable.Controls["lblMerge" + cmdTable.Name.Replace("cmdTable", "")].Visible = true; cmdTable.Controls["lblMerge" + cmdTable.Name.Replace("cmdTable", "")].Text = "Merged to " + clsMergeTableDetails.MainTableCode; cmdTable.GradientTop = System.Drawing.Color.Orange; } tblLayout.Controls.Add(cmdTable, iCol, iRow); iCol++; iCtr++; } clsContact.CommitAndDispose(); } catch (IndexOutOfRangeException){} catch (Exception ex) { MessageBox.Show(ex.Message,"RetailPlus",MessageBoxButtons.OK,MessageBoxIcon.Error); } }
private bool CreateTransaction() { Boolean boRetValue = true; try { Data.TerminalReport clsTerminalReport = new Data.TerminalReport(mConnection, mTransaction); mConnection = clsTerminalReport.Connection; mTransaction = clsTerminalReport.Transaction; DateTime dteTransactionDate = Convert.ToDateTime(lblTransDate.Text); boRetValue = CheckIfOKToSell(false); if (!boRetValue) return boRetValue; // Feb 16, 2015 if (mclsTerminalDetails.WithRestaurantFeatures) { if (mclsContactDetails.ContactID == Constants.ZERO || mclsContactDetails.ContactID == Constants.C_RETAILPLUS_CUSTOMERID) { MessageBox.Show("Sorry you must select a table / customer to order before punching an item.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information); return false; } } clsEvent.AddEventLn("[" + lblCashier.Text + "] Creating new transaction.", true); mclsSalesTransactionDetails = new Data.SalesTransactionDetails(); mclsSalesTransactionDetails.TransactionItemsList = new System.Collections.Generic.List<Data.SalesTransactionItemDetails>(); try { mclsSalesTransactionDetails.CashierID = Convert.ToInt64(lblCashier.Tag); } catch { } //mclsSalesTransactionDetails.CustomerID = Convert.ToInt64(lblCustomer.Tag); //mclsSalesTransactionDetails.CustomerName = lblCustomer.Text; if (mboRewardCardSwiped) { mclsSalesTransactionDetails.RewardsCustomerID = mclsContactDetails.ContactID; mclsSalesTransactionDetails.RewardsCustomerName = mclsContactDetails.ContactName; mclsSalesTransactionDetails.RewardCardActive = mclsContactDetails.RewardDetails.RewardActive; mclsSalesTransactionDetails.RewardCardNo = mclsContactDetails.RewardDetails.RewardCardNo; mclsSalesTransactionDetails.RewardCardExpiry = mclsContactDetails.RewardDetails.ExpiryDate; mclsSalesTransactionDetails.RewardPreviousPoints = mclsContactDetails.RewardDetails.RewardPoints; } else { mclsSalesTransactionDetails.RewardsCustomerID = Constants.C_RETAILPLUS_CUSTOMERID; mclsSalesTransactionDetails.RewardsCustomerName = Constants.C_RETAILPLUS_CUSTOMER; mclsSalesTransactionDetails.RewardCardActive = mclsContactDetailsDEFCustomer.RewardDetails.RewardActive; mclsSalesTransactionDetails.RewardCardNo = mclsContactDetailsDEFCustomer.RewardDetails.RewardCardNo; mclsSalesTransactionDetails.RewardCardExpiry = mclsContactDetailsDEFCustomer.RewardDetails.ExpiryDate; mclsSalesTransactionDetails.RewardPreviousPoints = mclsContactDetailsDEFCustomer.RewardDetails.RewardPoints; } mclsSalesTransactionDetails.CustomerDetails = mclsContactDetails; mclsSalesTransactionDetails.CustomerID = mclsContactDetails.ContactID; mclsSalesTransactionDetails.CustomerName = mclsContactDetails.ContactName; if (mclsSalesTransactionDetails.CustomerDetails.LastCheckInDate == Constants.C_DATE_MIN_VALUE) mclsSalesTransactionDetails.CustomerDetails.LastCheckInDate = dteTransactionDate; mclsSalesTransactionDetails.AgentID = Convert.ToInt64(lblAgent.Tag); mclsSalesTransactionDetails.AgentName = lblAgent.Text; mclsSalesTransactionDetails.AgentPositionName = lblAgentPositionDepartment.Text; mclsSalesTransactionDetails.AgentDepartmentName = lblAgentPositionDepartment.Tag.ToString(); mclsSalesTransactionDetails.WaiterID = Convert.ToInt64(lblServedBy.Tag); mclsSalesTransactionDetails.WaiterName = lblServedBy.Text.Remove(0, 11); mclsSalesTransactionDetails.CreatedByID = Convert.ToInt64(lblCashier.Tag); mclsSalesTransactionDetails.CreatedByName = lblCashier.Text; mclsSalesTransactionDetails.CashierID = Convert.ToInt64(lblCashier.Tag); mclsSalesTransactionDetails.CashierName = lblCashier.Text; mclsSalesTransactionDetails.TransactionDate = dteTransactionDate; mclsSalesTransactionDetails.DateSuspended = DateTime.MinValue; mclsSalesTransactionDetails.TerminalNo = mclsTerminalDetails.TerminalNo; mclsSalesTransactionDetails.BranchID = mclsTerminalDetails.BranchID; mclsSalesTransactionDetails.BranchCode = mclsTerminalDetails.BranchDetails.BranchCode; mclsSalesTransactionDetails.TransactionStatus = TransactionStatus.Open; mclsSalesTransactionDetails.TransactionType = mboIsRefund ? TransactionTypes.POSRefund : TransactionTypes.POSNormal; Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction); mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction; mclsSalesTransactionDetails.TransactionNo = clsSalesTransactions.CreateTransactionNo(mclsTerminalDetails.BranchDetails.BranchID, mclsTerminalDetails.TerminalNo); // mclsTransactionStream.Create(mclsSalesTransactionDetails); lblTransNo.Text = mclsSalesTransactionDetails.TransactionNo; //insert to transaction table mclsSalesTransactionDetails.TransactionID = clsSalesTransactions.Insert(mclsSalesTransactionDetails); lblTransNo.Tag = mclsSalesTransactionDetails.TransactionID.ToString(); // Sep 24, 2014 : update back the LastCheckInDate to transaction date Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); mConnection = clsContact.Connection; mTransaction = clsContact.Transaction; clsContact.UpdateLastCheckInDate(mclsSalesTransactionDetails.CustomerID, dteTransactionDate); // Jan 31, 2015 : Lemu // put back to SuspendedOpen so that it won't be open somewhere else clsEvent.AddEventLn("Putting transaction SuspendedOpen: " + mclsSalesTransactionDetails.TransactionNo, true); clsSalesTransactions.UpdateTransactionToSuspendedOpen(mclsSalesTransactionDetails.TransactionID); mboIsInTransaction = true; clsTerminalReport.CommitAndDispose(); InsertAuditLog(AccessTypes.CreateTransaction, "Create transaction #:" + lblTransNo.Text + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode); clsEvent.AddEventLn("Done! Trans #: " + lblTransNo.Text + " has been created.", true); // Added to put the default transaction charge during creation of transaction // this is set during the system setup ApplyTransDefaultCharge(); } catch (Exception ex) { clsEvent.AddErrorEventLn(ex); boRetValue = false; } return boRetValue; }