protected void cboSupplier_SelectedIndexChanged(object sender, System.EventArgs e) { Data.Contacts clsContact = new Data.Contacts(); Data.ContactDetails clsDetails = clsContact.Details(Convert.ToInt64(cboSupplier.SelectedItem.Value)); clsContact.CommitAndDispose(); txtSupplierContact.Text = clsDetails.ContactName; txtSupplierTelephoneNo.Text = clsDetails.TelephoneNo; lblTerms.Text = clsDetails.Terms.ToString("##0"); lblModeOfterms.Text = clsDetails.ModeOfTerms.ToString("G"); txtSupplierAddress.Text = clsDetails.Address; }
protected void cboPayee_SelectedIndexChanged(object sender, System.EventArgs e) { long payeeid = Convert.ToInt64(cboPayee.SelectedItem.Value); Data.Contacts clsContact = new Data.Contacts(); Data.ContactDetails clsDetails = clsContact.Details(payeeid); clsContact.CommitAndDispose(); txtPayeeName.Text = clsDetails.ContactName; DataClass clsDataClass = new DataClass(); PO clsPO = new PO(); lstPO.DataSource = clsDataClass.DataReaderToDataTable(clsPO.ListForPayment(payeeid, "POID", SortOption.Ascending)).DefaultView; lstPO.DataBind(); clsPO.CommitAndDispose(); Label lblAmount; Label lblPaidAmount; Label lblUnpaidAmount; decimal decAmount = 0; decimal decPaidAmount = 0; decimal decUnpaidAmount = 0; foreach (DataListItem item in lstPO.Items) { lblAmount = (Label)item.FindControl("lblAmount"); lblPaidAmount = (Label)item.FindControl("lblPaidAmount"); lblUnpaidAmount = (Label)item.FindControl("lblUnpaidAmount"); decAmount += Convert.ToDecimal(lblAmount.Text); decPaidAmount += Convert.ToDecimal(lblPaidAmount.Text); decUnpaidAmount += Convert.ToDecimal(lblUnpaidAmount.Text); } lblPOTotalAmount.Text = decAmount.ToString("#,##0.#0"); lblPOTotalPaidAmount.Text = decPaidAmount.ToString("#,##0.#0"); lblPOTotalUnpaidAmount.Text = decUnpaidAmount.ToString("#,##0.#0"); }
private void IssueCreditCard() { if (mboIsInTransaction) { MessageBox.Show("Sorry you cannot issue a Credit Card while there is an ongoing transaction. Please finish the transaction first.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.CreditCardIssuance); if (loginresult == DialogResult.OK) { try { DialogResult result; Data.CardTypeDetails clsCardTypeDetails = new Data.CardTypeDetails(); Data.ContactDetails clsGuarantorDetails = new AceSoft.RetailPlus.Data.ContactDetails(); ContactCreditTypeSelectWnd clsContactCreditTypeSelectWnd = new ContactCreditTypeSelectWnd(); clsContactCreditTypeSelectWnd.TerminalDetails = mclsTerminalDetails; clsContactCreditTypeSelectWnd.ShowDialog(this); clsCardTypeDetails = clsContactCreditTypeSelectWnd.CardTypeDetails; result = clsContactCreditTypeSelectWnd.Result; clsContactCreditTypeSelectWnd.Close(); clsContactCreditTypeSelectWnd.Dispose(); if (result != DialogResult.OK) { return; } Data.ContactDetails clsContactDetails; ContactSelectWnd clsContactWnd = new ContactSelectWnd(); clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK; clsContactWnd.SysConfigDetails = mclsSysConfigDetails; clsContactWnd.TerminalDetails = mclsTerminalDetails; if (clsCardTypeDetails.WithGuarantor) { MessageBox.Show("Please select a GUARANTOR to issue Credit Card.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information); clsContactWnd.ContactGroupCategory = AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER; clsContactWnd.Header = "Select GUARANTOR to issue Credit Card."; clsContactWnd.ShowDialog(this); clsGuarantorDetails = clsContactWnd.Details; result = clsContactWnd.Result; clsContactWnd.Close(); clsContactWnd.Dispose(); if (result != DialogResult.OK) { return; } MessageBox.Show(clsGuarantorDetails.ContactName + " has been selected as guarantor." + Environment.NewLine + "Please select the CUSTOMER to issue Credit Card.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information); } clsContactWnd = new ContactSelectWnd(); clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK; clsContactWnd.SysConfigDetails = mclsSysConfigDetails; clsContactWnd.TerminalDetails = mclsTerminalDetails; clsContactWnd.ContactGroupCategory = AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER; clsContactWnd.Header = "Select CUSTOMER to issue Credit Card."; clsContactWnd.ShowDialog(this); clsContactDetails = clsContactWnd.Details; result = clsContactWnd.Result; clsContactWnd.Close(); clsContactWnd.Dispose(); if (result != DialogResult.OK) { return; } if (clsContactDetails.ContactID == Constants.ZERO || clsContactDetails.ContactID == Constants.C_RETAILPLUS_CUSTOMERID) { return; } // if no guarantor if (!clsCardTypeDetails.WithGuarantor) clsGuarantorDetails = new Data.ContactDetails(); clsEvent.AddEvent("[" + lblCashier.Text + "] Issuing credit card no to " + clsContactDetails.ContactName); Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); mConnection = clsContact.Connection; mTransaction = clsContact.Transaction; clsContactDetails = clsContact.Details(clsContactDetails.ContactID); clsContact.CommitAndDispose(); if (clsContactDetails.CreditDetails.CreditCardNo != string.Empty && clsContactDetails.CreditDetails.CreditCardNo != null) { clsEvent.AddEventLn("Cancelled!"); clsEvent.AddEventLn("Credit Card No: " + clsContactDetails.CreditDetails.CreditCardNo + " was already issued to " + clsContactDetails.ContactName + " on " + clsContactDetails.CreditDetails.CreditAwardDate.ToString("MMM dd, yyyy hh:mm tt")); MessageBox.Show("Credit Card No: " + clsContactDetails.CreditDetails.CreditCardNo + " was already issued to " + clsContactDetails.ContactName + " on " + clsContactDetails.CreditDetails.CreditAwardDate.ToString("MMM dd, yyyy hh:mm tt") + "." + Environment.NewLine + " Please select another customer to issue Credit Card.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } clsEvent.AddEvent("[" + lblCashier.Text + "] Issuing credit card no to " + clsContactDetails.ContactName); ContactCreditWnd clsContactCreditWnd = new ContactCreditWnd(); clsContactCreditWnd.Header = "Credit Card Issuance"; clsContactCreditWnd.CardTypeDetails = clsCardTypeDetails; clsContactCreditWnd.Guarantor = clsGuarantorDetails; clsContactCreditWnd.ContactDetails = clsContactDetails; clsContactCreditWnd.CreditCardStatus = CreditCardStatus.New; clsContactCreditWnd.TerminalDetails = mclsTerminalDetails; clsContactCreditWnd.ShowDialog(this); result = clsContactCreditWnd.Result; clsContactDetails = clsContactCreditWnd.ContactDetails; clsContactCreditWnd.Close(); clsContactCreditWnd.Dispose(); if (result == DialogResult.OK) { Data.Products clsProducts = new Data.Products(mConnection, mTransaction); mConnection = clsProducts.Connection; mTransaction = clsProducts.Transaction; string strProductBarcode = Data.Products.DEFAULT_CREDIT_CARD_MEMBERSHIP_FEE_BARCODE; //override if with Guarantor if (clsCardTypeDetails.WithGuarantor) strProductBarcode = Data.Products.DEFAULT_SUPER_CARD_MEMBERSHIP_FEE_BARCODE; if (clsProducts.Details(strProductBarcode).ProductID == 0) { if (!clsCardTypeDetails.WithGuarantor) clsProducts.CREATE_CREDIT_CARD_MEMBERSHIP_FEE_BARCODE_PRODUCT(); else clsProducts.CREATE_SUPER_CARD_MEMBERSHIP_FEE_BARCODE_PRODUCT(); Methods.InsertAuditLog(mclsTerminalDetails, "System Administrator", AccessTypes.RewardCardChange, strProductBarcode + " product has been created coz it's not configured"); } clsProducts.CommitAndDispose(); MessageBox.Show("Credit Card No: " + clsContactDetails.CreditDetails.CreditCardNo + " was issued to " + clsContactDetails.ContactName + "." + Environment.NewLine + "Please collect the payment then close the transaction.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information); clsEvent.AddEventLn("Done!", true); clsEvent.AddEventLn("Credit Card No: " + clsContactDetails.CreditDetails.CreditCardNo + " was issued to " + clsContactDetails.ContactName + ".", true); LocalDB clsLocalDB = new LocalDB(mConnection, mTransaction); mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction; clsEvent.AddEvent("[" + lblCashier.Text + "] Creating " + strProductBarcode + "transaction for customer: "); LoadContact(AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER, clsContactDetails); if (!this.CreateTransaction()) return; txtBarCode.Text = strProductBarcode; ReadBarCode(); int iRow = dgItems.CurrentRowIndex; txtBarCode.Text = ""; CloseTransaction(); clsLocalDB.CommitAndDispose(); } else { clsEvent.AddEventLn("Cancelled!"); } } catch (Exception ex) { InsertErrorLogToFile(ex, "ERROR!!! Issuing internal credit-card."); } Cursor.Current = Cursors.Default; } }
private void RewardCardReactivate() { if (mboIsInTransaction) { MessageBox.Show("Sorry you cannot reactivate a Reward Card while there is an ongoing transaction. Please finish the transaction first.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.RewardCardChange, "LOST Reward Card Reactivation"); if (loginresult == DialogResult.OK) { try { DialogResult result; Data.ContactDetails clsContactDetails; ContactSelectWnd clsContactWnd = new ContactSelectWnd(); clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK; clsContactWnd.SysConfigDetails = mclsSysConfigDetails; clsContactWnd.TerminalDetails = mclsTerminalDetails; clsContactWnd.ContactGroupCategory = AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER; clsContactWnd.Header = "Please select customer for reward card re-activation."; clsContactWnd.ShowDialog(this); clsContactDetails = clsContactWnd.Details; result = clsContactWnd.Result; clsContactWnd.Close(); clsContactWnd.Dispose(); if (result != DialogResult.OK) { return; } if (clsContactDetails.ContactID == Constants.ZERO || clsContactDetails.ContactID == Constants.C_RETAILPLUS_CUSTOMERID) { return; } clsEvent.AddEvent("[" + lblCashier.Text + "] Reactivating lost reward card..."); Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); mConnection = clsContact.Connection; mTransaction = clsContact.Transaction; clsContactDetails = clsContact.Details(clsContactDetails.ContactID); clsContact.CommitAndDispose(); if (clsContactDetails.RewardDetails.RewardCardNo == string.Empty || clsContactDetails.RewardDetails.RewardCardNo == null) { clsEvent.AddEventLn("Cancelled!"); clsEvent.AddEventLn(clsContactDetails.ContactName + " has no valid Reward Card yet. "); MessageBox.Show(clsContactDetails.ContactName + " has no valid Reward Card yet. Please select another customer.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } clsEvent.AddEvent("[" + lblCashier.Text + "] Reactivating reward card #: " + clsContactDetails.RewardDetails.RewardCardNo + " of " + clsContactDetails.ContactName + "."); string strOldRewardCardNo = clsContactDetails.RewardDetails.RewardCardNo; ContactRewardWnd clsContactRewardWnd = new ContactRewardWnd(); clsContactRewardWnd.TerminalDetails = mclsTerminalDetails; clsContactRewardWnd.Caption = "OVERRIDE: Reward Card Reactivation / Change Expiry"; clsContactRewardWnd.ContactDetails = clsContactDetails; clsContactRewardWnd.RewardCardStatus = RewardCardStatus.Reactivated_Lost; clsContactRewardWnd.ShowDialog(this); result = clsContactRewardWnd.Result; clsContactDetails = clsContactRewardWnd.ContactDetails; clsContactRewardWnd.Close(); clsContactRewardWnd.Dispose(); if (result == DialogResult.OK) { MessageBox.Show("Reward Card No: " + clsContactDetails.RewardDetails.RewardCardNo + " has been reactivated / changed expiry date / changed card no...", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); clsEvent.AddEventLn("Done!", true); clsEvent.AddEventLn("Reward Card No: " + clsContactDetails.RewardDetails.RewardCardNo + " has been reactivated / changed expiry date / changed card no...", true); this.LoadOptions(); } else { clsEvent.AddEventLn("Cancelled!"); } } catch (Exception ex) { InsertErrorLogToFile(ex, "ERROR!!! Activating reward card."); } Cursor.Current = Cursors.Default; } }
private void RenewRewardCard() { if (mboIsInTransaction) { MessageBox.Show("Sorry you cannot renew a Reward Card while there is an ongoing transaction. Please finish the transaction first.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.RewardCardChange); if (loginresult == DialogResult.OK) { try { DialogResult result; Data.ContactDetails clsContactDetails; ContactSelectWnd clsContactWnd = new ContactSelectWnd(); clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK; clsContactWnd.SysConfigDetails = mclsSysConfigDetails; clsContactWnd.TerminalDetails = mclsTerminalDetails; clsContactWnd.ContactGroupCategory = AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER; clsContactWnd.Header = "Please select customer for reward card renewal."; clsContactWnd.ShowDialog(this); clsContactDetails = clsContactWnd.Details; result = clsContactWnd.Result; clsContactWnd.Close(); clsContactWnd.Dispose(); if (result != DialogResult.OK) { return; } if (clsContactDetails.ContactID == Constants.ZERO || clsContactDetails.ContactID == Constants.C_RETAILPLUS_CUSTOMERID) { return; } clsEvent.AddEvent("[" + lblCashier.Text + "] Renewing reward card."); Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); mConnection = clsContact.Connection; mTransaction = clsContact.Transaction; clsContactDetails = clsContact.Details(clsContactDetails.ContactID); clsContact.CommitAndDispose(); if (clsContactDetails.RewardDetails.RewardCardNo == string.Empty || clsContactDetails.RewardDetails.RewardCardNo == null) { clsEvent.AddEventLn("Cancelled!"); clsEvent.AddEventLn(clsContactDetails.ContactName + " has no valid Reward Card yet. "); MessageBox.Show(clsContactDetails.ContactName + " has no valid Reward Card yet. Please select another customer.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } clsEvent.AddEvent("[" + lblCashier.Text + "] Renewing reward card #: " + clsContactDetails.RewardDetails.RewardCardNo + " of " + clsContactDetails.ContactName + "."); ContactRewardWnd clsContactRewardWnd = new ContactRewardWnd(); clsContactRewardWnd.TerminalDetails = mclsTerminalDetails; clsContactRewardWnd.Caption = "Reward Card Renewal"; clsContactRewardWnd.ContactDetails = clsContactDetails; clsContactRewardWnd.RewardCardStatus = RewardCardStatus.ReNew; clsContactRewardWnd.ShowDialog(this); result = clsContactRewardWnd.Result; clsContactDetails = clsContactRewardWnd.ContactDetails; clsContactRewardWnd.Close(); clsContactRewardWnd.Dispose(); if (result == DialogResult.OK) { Data.Products clsProducts = new Data.Products(mConnection, mTransaction); mConnection = clsProducts.Connection; mTransaction = clsProducts.Transaction; if (clsProducts.Details(Data.Products.DEFAULT_ADVANTAGE_CARD_RENEWAL_FEE_BARCODE).ProductID == 0) { clsProducts.CREATE_ADVANTAGE_CARD_RENEWAL_FEE_BARCODE_PRODUCT(); Methods.InsertAuditLog(mclsTerminalDetails, "System Administrator", AccessTypes.RewardCardChange, "ADVANTAGE_CARD_RENEWAL_FEE_BARCODE product has been created coz it's not configured"); } clsProducts.CommitAndDispose(); MessageBox.Show("Reward Card No: " + clsContactDetails.RewardDetails.RewardCardNo + " has been renewed with new expiry date " + clsContactDetails.RewardDetails.ExpiryDate.ToString("yyyy-MM-dd") + ".", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); clsEvent.AddEventLn("Done!", true); clsEvent.AddEventLn("Reward Card No: " + clsContactDetails.RewardDetails.RewardCardNo + " has been renewed with new expiry date " + clsContactDetails.RewardDetails.ExpiryDate.ToString("yyyy-MM-dd") + ".", true); LocalDB clsLocalDB = new LocalDB(mConnection, mTransaction); mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction; clsEvent.AddEvent("[" + lblCashier.Text + "] Creating " + Data.Products.DEFAULT_ADVANTAGE_CARD_RENEWAL_FEE_BARCODE + "transaction for customer: "); LoadContact(AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER, clsContactDetails); if (!this.CreateTransaction()) return; txtBarCode.Text = Data.Products.DEFAULT_ADVANTAGE_CARD_RENEWAL_FEE_BARCODE; ReadBarCode(); int iRow = dgItems.CurrentRowIndex; txtBarCode.Text = ""; CloseTransaction(); clsLocalDB.CommitAndDispose(); } else { clsEvent.AddEventLn("Cancelled!"); } } catch (Exception ex) { InsertErrorLogToFile(ex, "ERROR!!! Renewing reward card."); } Cursor.Current = Cursors.Default; } }
public void PrintCollectionReceipt() { try { if (mclsTerminalDetails.AutoPrint == PrintingPreference.Auto) { MessageBox.Show("Sorry this option is not applicable for Auto-Print receipt.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2); return; } if (!mboIsInTransaction) { MessageBox.Show("No active transaction is found! Please transact first.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2); return; } DialogResult loginresult = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.CloseTransaction); if (loginresult == DialogResult.None) { LogInWnd login = new LogInWnd(); login.AccessType = AccessTypes.CloseTransaction; login.Header = "Print Collection Receipt"; login.TerminalDetails = mclsTerminalDetails; login.ShowDialog(this); loginresult = login.Result; login.Close(); login.Dispose(); } if (loginresult == DialogResult.OK) { CRSReports.CR rpt = new CRSReports.CR(); AceSoft.RetailPlus.Client.ReportDataset rptds = new AceSoft.RetailPlus.Client.ReportDataset(); System.Data.DataRow drNew; /****************************sales transaction *****************************/ Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction); mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction; Data.SalesTransactionDetails clsSalesTransactionDetails = clsSalesTransactions.Details(mclsSalesTransactionDetails.TransactionNo, mclsTerminalDetails.TerminalNo, mclsTerminalDetails.BranchID); Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); Data.ContactDetails clsContactDetails = clsContact.Details(clsSalesTransactionDetails.CustomerID); if (clsSalesTransactionDetails.isExist) { drNew = rptds.Transactions.NewRow(); drNew["TransactionID"] = clsSalesTransactionDetails.TransactionID; drNew["TransactionNo"] = clsSalesTransactionDetails.TransactionNo; drNew["ORNo"] = clsSalesTransactionDetails.ORNo; drNew["CustomerName"] = clsSalesTransactionDetails.CustomerName; drNew["CustomerAddress"] = clsContactDetails.Address; drNew["CustomerTerms"] = clsSalesTransactionDetails.Terms; drNew["CustomerModeOfterms"] = clsSalesTransactionDetails.ModeOfTerms; drNew["CustomerBusinessName"] = clsContactDetails.BusinessName; drNew["CustomerTelNo"] = clsContactDetails.TelephoneNo; drNew["CashierName"] = clsSalesTransactionDetails.CashierName; drNew["CreatedByName"] = clsSalesTransactionDetails.CreatedByName; drNew["AgentName"] = clsSalesTransactionDetails.AgentName; drNew["TerminalNo"] = clsSalesTransactionDetails.TerminalNo; drNew["TransactionDate"] = clsSalesTransactionDetails.TransactionDate; drNew["DateSuspended"] = clsSalesTransactionDetails.DateSuspended.ToString(); drNew["DateResumed"] = clsSalesTransactionDetails.DateResumed; drNew["TransactionStatus"] = clsSalesTransactionDetails.TransactionStatus; drNew["SubTotal"] = clsSalesTransactionDetails.SubTotal; drNew["ItemsDiscount"] = clsSalesTransactionDetails.ItemsDiscount; //drNew["SNRItemsDiscount"] = clsSalesTransactionDetails.SNRItemsDiscount; //drNew["PWDItemsDiscount"] = clsSalesTransactionDetails.PWDItemsDiscount; //drNew["OtherItemsDiscount"] = clsSalesTransactionDetails.OtherItemsDiscount; drNew["Discount"] = clsSalesTransactionDetails.Discount; drNew["VAT"] = clsSalesTransactionDetails.VAT; drNew["VATableAmount"] = clsSalesTransactionDetails.VATableAmount; //drNew["ZeroRatedSales"] = clsSalesTransactionDetails.ZeroRatedSales; drNew["LocalTax"] = clsSalesTransactionDetails.LocalTax; drNew["AmountPaid"] = clsSalesTransactionDetails.AmountPaid; drNew["CashPayment"] = clsSalesTransactionDetails.CashPayment; drNew["ChequePayment"] = clsSalesTransactionDetails.ChequePayment; drNew["CreditCardPayment"] = clsSalesTransactionDetails.CreditCardPayment; drNew["CreditPayment"] = clsSalesTransactionDetails.CreditPayment; drNew["DebitPayment"] = clsSalesTransactionDetails.DebitPayment; drNew["BalanceAmount"] = clsSalesTransactionDetails.BalanceAmount; drNew["ChangeAmount"] = clsSalesTransactionDetails.ChangeAmount; drNew["DateClosed"] = clsSalesTransactionDetails.DateClosed; drNew["PaymentType"] = clsSalesTransactionDetails.PaymentType.ToString("d"); drNew["Charge"] = clsSalesTransactionDetails.Charge; drNew["isConsignment"] = clsSalesTransactionDetails.isConsignment; drNew["CRNo"] = clsSalesTransactionDetails.CRNo.ToString().PadLeft(15, '0'); rptds.Transactions.Rows.Add(drNew); /****************************sales transaction items*****************************/ Data.SalesTransactionItems clsSalesTransactionItems = new Data.SalesTransactionItems(mConnection, mTransaction); mConnection = clsSalesTransactionItems.Connection; mTransaction = clsSalesTransactionItems.Transaction; System.Data.DataTable dt = clsSalesTransactionItems.List(clsSalesTransactionDetails.TransactionID, clsSalesTransactionDetails.TransactionDate, "TransactionItemsID", SortOption.Ascending); foreach (System.Data.DataRow dr in dt.Rows) { drNew = rptds.SalesTransactionItems.NewRow(); foreach (System.Data.DataColumn dc in rptds.SalesTransactionItems.Columns) drNew[dc] = dr[dc.ColumnName]; rptds.SalesTransactionItems.Rows.Add(drNew); } } clsSalesTransactions.CommitAndDispose(); rpt.SetDataSource(rptds); CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinition paramField; CrystalDecisions.Shared.ParameterValues currentValues; CrystalDecisions.Shared.ParameterDiscreteValue discreteParam; paramField = rpt.DataDefinition.ParameterFields["CompanyName"]; discreteParam = new CrystalDecisions.Shared.ParameterDiscreteValue(); discreteParam.Value = CompanyDetails.CompanyName; currentValues = new CrystalDecisions.Shared.ParameterValues(); currentValues.Add(discreteParam); paramField.ApplyCurrentValues(currentValues); paramField = rpt.DataDefinition.ParameterFields["PrintedBy"]; discreteParam = new CrystalDecisions.Shared.ParameterDiscreteValue(); discreteParam.Value = mclsSalesTransactionDetails.CashierName; currentValues = new CrystalDecisions.Shared.ParameterValues(); currentValues.Add(discreteParam); paramField.ApplyCurrentValues(currentValues); paramField = rpt.DataDefinition.ParameterFields["PackedBy"]; discreteParam = new CrystalDecisions.Shared.ParameterDiscreteValue(); discreteParam.Value = mclsSalesTransactionDetails.WaiterName; // grpItems.Text.Remove(0, 11); currentValues = new CrystalDecisions.Shared.ParameterValues(); currentValues.Add(discreteParam); paramField.ApplyCurrentValues(currentValues); paramField = rpt.DataDefinition.ParameterFields["CompanyAddress"]; discreteParam = new CrystalDecisions.Shared.ParameterDiscreteValue(); discreteParam.Value = CompanyDetails.Address1 + ((!string.IsNullOrEmpty(CompanyDetails.Address2) ? Environment.NewLine + CompanyDetails.Address2 + ", " : " ")) + CompanyDetails.City + " " + CompanyDetails.Country + ((!string.IsNullOrEmpty(CompanyDetails.OfficePhone) ? Environment.NewLine + "Tel #: " + CompanyDetails.OfficePhone + " " : " ")) + ((!string.IsNullOrEmpty(CompanyDetails.OfficePhone) ? Environment.NewLine + "FaxPhone #: " + CompanyDetails.FaxPhone + " " : " ")); currentValues = new CrystalDecisions.Shared.ParameterValues(); currentValues.Add(discreteParam); paramField.ApplyCurrentValues(currentValues); paramField = rpt.DataDefinition.ParameterFields["BIRInfo"]; discreteParam = new CrystalDecisions.Shared.ParameterDiscreteValue(); discreteParam.Value = "TIN : " + CompanyDetails.TIN + " VAT Reg." + Environment.NewLine + "BIR Acc #: " + CONFIG.AccreditationNo + " SN#: " + CONFIG.MachineSerialNo + Environment.NewLine + "Permit No: FP102014-064-0015149-00000"; currentValues = new CrystalDecisions.Shared.ParameterValues(); currentValues.Add(discreteParam); paramField.ApplyCurrentValues(currentValues); paramField = rpt.DataDefinition.ParameterFields["TINNo"]; discreteParam = new CrystalDecisions.Shared.ParameterDiscreteValue(); discreteParam.Value = mclsSalesTransactionDetails.CustomerDetails.TINNo; currentValues = new CrystalDecisions.Shared.ParameterValues(); currentValues.Add(discreteParam); paramField.ApplyCurrentValues(currentValues); paramField = rpt.DataDefinition.ParameterFields["LTONo"]; discreteParam = new CrystalDecisions.Shared.ParameterDiscreteValue(); discreteParam.Value = mclsSalesTransactionDetails.CustomerDetails.LTONo; currentValues = new CrystalDecisions.Shared.ParameterValues(); currentValues.Add(discreteParam); paramField.ApplyCurrentValues(currentValues); //foreach (CrystalDecisions.CrystalReports.Engine.ReportObject objPic in rpt.Section1.ReportObjects) //{ // if (objPic.Name.ToUpper() == "PICLOGO1") // { // objPic = new Bitmap(Application.StartupPath + "/images/ReportLogo.jpg"); // } //} //CRViewer.Visible = true; //CRViewer.ReportSource = rpt; //CRViewer.Show(); try { DateTime logdate = DateTime.Now; string logsdir = System.Configuration.ConfigurationManager.AppSettings["logsdir"].ToString(); if (!Directory.Exists(logsdir + logdate.ToString("MMM"))) { Directory.CreateDirectory(logsdir + logdate.ToString("MMM")); } string logFile = logsdir + logdate.ToString("MMM") + "/CR_" + clsSalesTransactionDetails.TransactionNo + logdate.ToString("yyyyMMddhhmmss") + ".doc"; rpt.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.WordForWindows, logFile); } catch { } if (isPrinterOnline(mclsTerminalDetails.SalesInvoicePrinterName)) { rpt.PrintOptions.PrinterName = mclsTerminalDetails.SalesInvoicePrinterName; rpt.PrintToPrinter(1, false, 0, 0); } else { clsEvent.AddEventLn("will not print delivery receipt. printer is offline.", true, mclsSysConfigDetails.WillWriteSystemLog); } rpt.Close(); rpt.Dispose(); } } catch (Exception ex) { InsertErrorLogToFile(ex); } }
public void PrintCreditPayment() { try { PrintReportHeadersSection(false, true); msbToPrint.Append("-".PadRight(mclsTerminalDetails.MaxReceiptWidth, '-') + Environment.NewLine); msbToPrint.Append(CenterString("CREDIT PAYMENT SLIP", mclsTerminalDetails.MaxReceiptWidth) + Environment.NewLine); if (mclsContactDetails.CreditDetails.CardTypeDetails.WithGuarantor) { Data.Contacts clsContacts = new Data.Contacts(mConnection, mTransaction); mConnection = clsContacts.Connection; mTransaction = clsContacts.Transaction; Data.ContactDetails GuarantorDetails = clsContacts.Details(mclsContactDetails.CreditDetails.GuarantorID); clsContacts.CommitAndDispose(); msbToPrint.Append(CenterString("(Gua:" + (GuarantorDetails.ContactCode + ":" + GuarantorDetails.ContactName) + ")", mclsTerminalDetails.MaxReceiptWidth) + Environment.NewLine); } msbToPrint.Append("-".PadRight(mclsTerminalDetails.MaxReceiptWidth, '-') + Environment.NewLine); msbToPrint.Append("Amount Paid".PadRight(15) + ":" + mclsSalesTransactionDetails.AmountPaid.ToString("#,##0.#0") + Environment.NewLine); msbToPrint.Append("Payment Type".PadRight(15) + ":" + mclsSalesTransactionDetails.PaymentType.ToString("G") + Environment.NewLine); if (mclsSalesTransactionDetails.PaymentDetails.arrChequePaymentDetails != null) { foreach (Data.ChequePaymentDetails chequepaymentdet in mclsSalesTransactionDetails.PaymentDetails.arrChequePaymentDetails) { //print cheque details msbToPrint.Append("Cheque No.".PadRight(11) + ":" + chequepaymentdet.ChequeNo.Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 12) + Environment.NewLine); } } msbToPrint.Append("Payment Ref No.".PadRight(15) + ":" + Int32.Parse(mclsSalesTransactionDetails.TransactionNo).ToString().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); msbToPrint.Append("Payee".PadRight(7) + ":" + mclsSalesTransactionDetails.CustomerDetails.ContactName.PadLeft(mclsTerminalDetails.MaxReceiptWidth - 8) + Environment.NewLine); msbToPrint.Append("Card No".PadRight(7) + ":" + mclsSalesTransactionDetails.CustomerDetails.CreditDetails.CreditCardNo.PadLeft(mclsTerminalDetails.MaxReceiptWidth - 8) + Environment.NewLine); msbToPrint.Append("-".PadRight(mclsTerminalDetails.MaxReceiptWidth, '-') + Environment.NewLine); msbToPrint.Append(Environment.NewLine); msbToPrint.Append(Environment.NewLine); msbToPrint.Append(Environment.NewLine); msbToPrint.Append("Authorized Signature: ".PadRight(mclsTerminalDetails.MaxReceiptWidth, '_') + Environment.NewLine); msbToPrint.Append(Environment.NewLine); PrintPageAndReportFooterSection(false, DateTime.MinValue); } catch (Exception ex) { InsertErrorLogToFile(ex); MessageBox.Show("Sorry an error was encountered during printing, please reprint again." + Environment.NewLine + "Details: " + ex.Message, "RetailPlus"); } }
private void LoadTransaction(string stTransactionNo, string pstrTerminalNo) { Cursor.Current = Cursors.WaitCursor; try { clsEvent.AddEvent("Loading transaction : " + stTransactionNo); Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction); mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction; mclsSalesTransactionDetails = clsSalesTransactions.Details(stTransactionNo, pstrTerminalNo, mclsTerminalDetails.BranchID); if (mclsSalesTransactionDetails.TransactionStatus == TransactionStatus.Open || mclsSalesTransactionDetails.TransactionStatus == TransactionStatus.Suspended) { // Aug 6, 2011 : Lemu // overwrite to change cashierid and name try { mclsSalesTransactionDetails.CashierID = Convert.ToInt64(lblCashier.Tag); } catch { } mclsSalesTransactionDetails.CashierName = lblCashier.Text; // Jan 31, 2015 : Lemu // put to SuspendedOpen so that it won't be open somewhere else if (mclsSalesTransactionDetails.TransactionStatus == TransactionStatus.Suspended) { clsEvent.AddEvent("Putting transaction SuspendedOpen: " + stTransactionNo, true); clsSalesTransactions.UpdateTransactionToSuspendedOpen(mclsSalesTransactionDetails.TransactionID); } } Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); Data.ContactDetails clsContactDetails = clsContact.Details(mclsSalesTransactionDetails.CustomerID); LoadContact(AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER, clsContactDetails); //mclsSalesTransactionDetails.RewardCardNo = clsContactDetails.RewardDetails.RewardCardNo; //mclsSalesTransactionDetails.RewardCardExpiry = clsContactDetails.RewardDetails.ExpiryDate; //mclsSalesTransactionDetails.RewardPreviousPoints = clsContactDetails.RewardDetails.RewardPoints; if (mclsSalesTransactionDetails.TransactionStatus == TransactionStatus.Refund || mclsSalesTransactionDetails.TransactionType == TransactionTypes.POSRefund) { mboIsRefund = true; lblSubtotalName.Text = "SUBTOTAL: REFUND"; lblOrderType.Visible = false; } lblTransNo.Text = mclsSalesTransactionDetails.TransactionNo; lblTransNo.Tag = mclsSalesTransactionDetails.TransactionID.ToString(); lblCustomer.Text = mclsSalesTransactionDetails.CustomerName; lblCustomer.Tag = mclsSalesTransactionDetails.CustomerID.ToString(); lblAgent.Text = mclsSalesTransactionDetails.AgentName; lblAgent.Tag = mclsSalesTransactionDetails.AgentID.ToString(); lblAgentPositionDepartment.Text = mclsSalesTransactionDetails.AgentPositionName; lblAgentPositionDepartment.Tag = mclsSalesTransactionDetails.AgentDepartmentName; grpItems.Text = "Served by: " + mclsSalesTransactionDetails.WaiterName; grpItems.Tag = mclsSalesTransactionDetails.WaiterID; lblTransDate.Text = mclsSalesTransactionDetails.TransactionDate.ToString("MMM. dd, yyyy hh:mm:ss tt"); mdteOverRidingPrintDate = mclsSalesTransactionDetails.TransactionDate; lblTransDiscount.Tag = mclsSalesTransactionDetails.TransDiscountType.ToString("d"); lblConsignment.Visible = mclsSalesTransactionDetails.isConsignment; //mclsSalesTransactionDetails.ChargeAmount = mclsSalesTransactionDetails.ChargeAmount; if (mclsSalesTransactionDetails.ChargeAmount == 0) lblTransCharge.Tag = ChargeTypes.NotApplicable.ToString("d"); //details.TransDiscountType.ToString("d"); else { //lblTransCharge.Tag = ChargeTypes.Percentage.ToString("d"); //details.TransDiscountType.ToString("d"); Data.ChargeType clsChargeType = new Data.ChargeType(mConnection, mTransaction); bool bolInPercent = clsChargeType.Details(mclsSalesTransactionDetails.ChargeCode).InPercent; clsChargeType.CommitAndDispose(); if (bolInPercent) lblTransCharge.Tag = ChargeTypes.Percentage.ToString("d"); else lblTransCharge.Tag = ChargeTypes.FixedValue.ToString("d"); } Data.SalesTransactionItems clsItems = new Data.SalesTransactionItems(mConnection, mTransaction); mConnection = clsItems.Connection; mTransaction = clsItems.Transaction; Data.SalesTransactionItemDetails[] TransactionItems = clsItems.Details(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.TransactionDate); clsEvent.AddEventLn("Done loading transaction : " + stTransactionNo, true); if (mclsTerminalDetails.AutoPrint == PrintingPreference.Auto) LoadResumedItems(TransactionItems, true); else LoadResumedItems(TransactionItems, false); mboIsInTransaction = true; clsSalesTransactions.CommitAndDispose(); } catch (Exception ex) { InsertErrorLogToFile(ex, "ERROR!!! Loading transaction. TRACE: "); } Cursor.Current = Cursors.Default; }
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 static void PrintORsWG(System.Data.DataTable dtGuarantors, Data.CardTypeDetails clsCreditCardTypeInfo) { Data.Billing clsBilling = new Data.Billing(mConnection, mTransaction); mConnection = clsBilling.Connection; mTransaction = clsBilling.Transaction; Data.Contacts clsContacts = new Data.Contacts(mConnection, mTransaction); mConnection = clsContacts.Connection; mTransaction = clsContacts.Transaction; Data.ContactDetails clsGuarantorDetails; System.Data.DataTable dtCreditors; try { foreach (System.Data.DataRow dr in dtGuarantors.Rows) { clsGuarantorDetails = clsContacts.Details(Int64.Parse(dr["ContactID"].ToString())); dtCreditors = clsBilling.ListAsDataTable(GuarantorID: clsGuarantorDetails.ContactID, CreditCardTypeID: clsCreditCardTypeInfo.CardTypeID, CreditType: CreditType.Group, BillingDate: clsCreditCardTypeInfo.BillingDate, CheckIsBillPrinted: true, IsBillPrinted: false, SortField: "CUS.ContactName", SortOrder: System.Data.SqlClient.SortOrder.Descending); if (dtCreditors.Rows.Count > 0) { WriteProcessToMonitor("Printing SOA of Guarantor: " + clsGuarantorDetails.ContactName + "..."); if (!bool.Parse(dtCreditors.Rows[0]["isBillPrinted"].ToString())) { WriteProcessToMonitor("[" + clsGuarantorDetails.ContactName + "] CurrentDueAmount : " + clsGuarantorDetails.ContactGroupName); WriteProcessToMonitor("[" + clsGuarantorDetails.ContactName + "] NoOfCreditors : " + dtCreditors.Rows.Count.ToString("#,##0")); WriteProcessToMonitor("[" + clsGuarantorDetails.ContactName + "] Credit Status : " + clsGuarantorDetails.CreditDetails.CreditCardStatus.ToString("G") + " (" + (clsGuarantorDetails.CreditDetails.CreditActive ? "Active" : "InActive") + ")"); string strOR = ""; string CreditBillerPrinter = "Normal"; if (System.Configuration.ConfigurationManager.AppSettings["CreditBillerPrinter"] != null) CreditBillerPrinter = System.Configuration.ConfigurationManager.AppSettings["CreditBillerPrinter"].ToString(); if (CreditBillerPrinter.ToUpper() != "LX") strOR = PrintCreditBillWG(clsGuarantorDetails, dtCreditors, clsCreditCardTypeInfo); else strOR = PrintCreditBillWGLX(clsGuarantorDetails, dtCreditors, clsCreditCardTypeInfo); if (strOR != "") { WriteProcessToMonitor("[" + clsGuarantorDetails.ContactName + "] Bill createad @ " + strOR); clsBilling.SetBillingAsPrinted(CreditType.Group, clsGuarantorDetails.ContactID, clsCreditCardTypeInfo.BillingDate, strOR); } WriteProcessToMonitor("[" + clsGuarantorDetails.ContactName + "] Done."); } else { WriteProcessToMonitor("[" + clsGuarantorDetails.ContactName + "] Done. did not print SOA, already printed @ " + dtCreditors.Rows[0]["BillingFile"].ToString()); } } } } catch (Exception ex) { WriteProcessToMonitor("PLEASE CALL RETAILPLUS IMMEDIATELY... PRINTING-CreditBillWithGuarantor error:" + Environment.NewLine + ex.ToString()); clsBilling.ThrowException(ex); } finally { clsBilling.CommitAndDispose(); } }
private bool isValuesAssigned() { decimal mdecAmount = 0; try { mdecAmount = Convert.ToDecimal(txtAmount.Text); } catch { txtAmount.Focus(); MessageBox.Show("Sorry you have entered an invalid amount for credit card payment. Please type a valid credit amount.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } if (string.IsNullOrEmpty(cboCardType.Text)) { cboCardType.Focus(); MessageBox.Show("Please select a valid Card Type.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } if (txtCardNo.Text == null || txtCardNo.Text == "") { txtCardNo.Focus(); MessageBox.Show("Please type a valid Card No.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } if (txtCardHolder.Text == null || txtCardHolder.Text == "") { txtCardHolder.Focus(); MessageBox.Show("Please type a valid Card Holder.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } DateTime ValidityDate = DateTime.MinValue; if (string.IsNullOrEmpty(txtValidityDates.Text)) { txtValidityDates.Focus(); MessageBox.Show("Please type a valid Validity Date.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } else if (!string.IsNullOrEmpty(txtValidityDates.Text)) { try { string Month = txtValidityDates.Text.Substring(0, 2); string Year = "20" + txtValidityDates.Text.Substring(2, 2); string Day = DateTime.DaysInMonth(Convert.ToInt32(Year), Convert.ToInt32(Month)).ToString(); ValidityDate = new DateTime(int.Parse(Year), int.Parse(Month), int.Parse(Day)); } catch { txtValidityDates.Focus(); MessageBox.Show("Please type a valid Validity Date. Format must be mmyy", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } if (!IsRefund) // check only if it's not refund { if (!mboIsCreditChargeExcluded) // check only if it's not chargeexcluded or offline trx { if (ValidityDate < DateTime.Now) { txtValidityDates.Focus(); MessageBox.Show("Card has been expired, please ask for a valid credit card.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } } } } // make sure that only 1 INTERNAL CREDIT CARD can be use per transaction if (mclsCardTypeDetails.CreditCardType == CreditCardTypes.Internal) { foreach (Data.CreditCardPaymentDetails clsCreditCardPaymentDetails in marrCreditCardPaymentDetails) { if (clsCreditCardPaymentDetails.CardTypeDetails.CreditCardType == CreditCardTypes.Internal) { MessageBox.Show("Sorry an INTERNAL CREDIT CARD has only been use to pay. Please use another credit card or another mode of payment (e.g. cash).", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } } } decimal decAdditionalCreditCharge = 0; if (mclsCreditorDetails.ContactID != 0) { // add only the charge if the credit is chargeable if (panCharge.Visible) mdecAmount += decimal.Parse(txtCreditCardCharge.Text); decimal mdecAllowedCredit = mclsCreditorDetails.CreditLimit - mclsCreditorDetails.Credit; if (!IsRefund) // check only if it's not refund { if (!mboIsCreditChargeExcluded) // check only if it's not chargeexcluded or offline trx { if (mdecAmount > mdecAllowedCredit) { MessageBox.Show("Amount must be less than the credit limit (" + mdecAllowedCredit.ToString("#,##0.#0") + "). Please enter a lower amount for credit payment.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtAmount.Focus(); return false; } if (mdecAmount <= 0) { MessageBox.Show("Amount must be greater than zero. Please enter a higher amount for credit payment.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtAmount.Focus(); return false; } if (!mclsCreditorDetails.CreditDetails.CreditActive) { MessageBox.Show("Sorry the credit card status is " + mclsCreditorDetails.CreditDetails.CreditCardStatus.ToString("G") + ". Please enter an active credit card no.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtScan.Focus(); return false; } if (mclsCardTypeDetails.WithGuarantor) { Data.Contacts clsContacts = new Data.Contacts(); mclsGuarantorDetails = clsContacts.Details(mclsCreditorDetails.CreditDetails.GuarantorID); clsContacts.CommitAndDispose(); if (!mclsGuarantorDetails.CreditDetails.CreditActive) { MessageBox.Show("Sorry the Guarantor's credit card status is " + mclsGuarantorDetails.CreditDetails.CreditCardStatus.ToString("G") + ". Please enter an active credit card no.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtScan.Focus(); return false; } } } } if (mboIsCreditChargeExcluded) // exclude if it's an special item { decAdditionalCreditCharge = 0; } else if (mclsCardTypeDetails.ExemptInTerminalCharge) // exclude if it's an exemption { decAdditionalCreditCharge = 0; } else if (mclsCardTypeDetails.WithGuarantor && TerminalDetails.GroupChargeType.ChargeTypeID != 0) { if (panCharge.Visible) decAdditionalCreditCharge = decimal.Parse(txtCreditCardCharge.Text); //if (TerminalDetails.GroupChargeType.InPercent) // decAdditionalCreditCharge = mdecBalanceAmount * (TerminalDetails.GroupChargeType.ChargeAmount / 100); //else // decAdditionalCreditCharge = mdecBalanceAmount + TerminalDetails.GroupChargeType.ChargeAmount; } else if (!mclsCardTypeDetails.WithGuarantor && TerminalDetails.PersonalChargeType.ChargeTypeID != 0) { if (panCharge.Visible) decAdditionalCreditCharge = decimal.Parse(txtCreditCardCharge.Text); //if (TerminalDetails.PersonalChargeType.InPercent) // decAdditionalCreditCharge = mdecBalanceAmount * (TerminalDetails.PersonalChargeType.ChargeAmount / 100); //else // decAdditionalCreditCharge = mdecBalanceAmount + TerminalDetails.PersonalChargeType.ChargeAmount; } if (!IsRefund) // check only if it's not refund { if (!mboIsCreditChargeExcluded) // check only if it's not chargeexcluded or offline trx { if (decAdditionalCreditCharge == 0) { if (mdecAmount > mdecBalanceAmount + decAdditionalCreditCharge) { txtAmount.Focus(); MessageBox.Show("Amount must be less than the balance amount (" + mdecBalanceAmount.ToString("#,##0.#0") + "). Please enter a lower or equal amount for credit payment.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } } } } } if (mclsCreditorDetails.ContactID == 0 && mclsCardTypeDetails.CreditCardType == CreditCardTypes.Internal) { MessageBox.Show("Please enter a valid card no for " + cboCardType.Text + ".", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } mDetails.BranchDetails = TerminalDetails.BranchDetails; mDetails.TerminalNo = TerminalDetails.TerminalNo; mDetails.TransactionID = mclsSalesTransactionDetails.TransactionID; mDetails.TransactionNo = mclsSalesTransactionDetails.TransactionNo; mDetails.TransactionDate = mclsSalesTransactionDetails.TransactionDate; mDetails.CashierName = mclsSalesTransactionDetails.CashierName; mDetails.Amount = mdecAmount; mDetails.AdditionalCharge = decAdditionalCreditCharge; mDetails.CardTypeID = mclsCardTypeDetails.CardTypeID; mDetails.CardTypeCode = mclsCardTypeDetails.CardTypeCode; mDetails.CardTypeName = mclsCardTypeDetails.CardTypeName; mDetails.CardNo = txtCardNo.Text; mDetails.CardHolder = txtCardHolder.Text; mDetails.ValidityDates = ValidityDate.ToString("MMddyy"); mDetails.Remarks = (OfflineProduct + " " + txtRemarks.Text).Trim(); mDetails.CardTypeDetails = mclsCardTypeDetails; mDetails.CreditorDetails = mclsCreditorDetails; mDetails.IsRefund = IsRefund; mDetails.CreatedOn = mclsSalesTransactionDetails.TransactionDate; return true; }
private void ContactUpdate() { try { if (!EnableContactAddUpdate) { return; } Int64 iContactID = Convert.ToInt64(dgContacts[dgContacts.CurrentRowIndex, 0].ToString()); if (iContactID != 0 && iContactID != Constants.C_RETAILPLUS_CUSTOMERID) { Data.Contacts clsContact = new Data.Contacts(); Data.ContactDetails details = clsContact.Details(iContactID); clsContact.CommitAndDispose(); DialogResult addresult = System.Windows.Forms.DialogResult.Cancel; switch (SysConfigDetails.ContactAddWndType) { case ContactAddWndType.ContactAddWnd: case ContactAddWndType.ContactAddNoLTOWnd: ContactAddWnd clsContactAddWnd = new ContactAddWnd(); clsContactAddWnd.Caption = "Update Customer [" + details.ContactName + "]"; clsContactAddWnd.ContactDetails = details; clsContactAddWnd.TerminalDetails = TerminalDetails; clsContactAddWnd.SysConfigDetails = SysConfigDetails; clsContactAddWnd.ShowDialog(this); addresult = clsContactAddWnd.Result; details = clsContactAddWnd.ContactDetails; clsContactAddWnd.Close(); clsContactAddWnd.Dispose(); break; case ContactAddWndType.ContactAddHCareWnd: ContactAddHCareWnd clsContactAddHCareWnd = new ContactAddHCareWnd(); clsContactAddHCareWnd.Caption = "Update Customer [" + details.ContactName + "]"; clsContactAddHCareWnd.ContactDetails = details; clsContactAddHCareWnd.TerminalDetails = TerminalDetails; clsContactAddHCareWnd.ShowDialog(this); addresult = clsContactAddHCareWnd.Result; details = clsContactAddHCareWnd.ContactDetails; clsContactAddHCareWnd.Close(); clsContactAddHCareWnd.Dispose(); break; default: ContactAddDetWnd clsContactAddDetWnd = new ContactAddDetWnd(); clsContactAddDetWnd.Caption = "Update Customer [" + details.ContactName + "]"; clsContactAddDetWnd.ContactDetails = details; clsContactAddDetWnd.TerminalDetails = TerminalDetails; clsContactAddDetWnd.ShowDialog(this); addresult = clsContactAddDetWnd.Result; details = clsContactAddDetWnd.ContactDetails; clsContactAddDetWnd.Close(); clsContactAddDetWnd.Dispose(); break; } if (addresult == DialogResult.OK) { txtSearch.Text = details.ContactCode; LoadContactData(); } } } catch { } }
private void ContactUpdate() { try { if (!EnableContactAddUpdate) return; Int64 iContactID = Convert.ToInt64(dgContacts[dgContacts.CurrentRowIndex, 0].ToString()); if (iContactID != 0 && iContactID != Constants.C_RETAILPLUS_CUSTOMERID) { Data.Contacts clsContact = new Data.Contacts(); Data.ContactDetails details = clsContact.Details(iContactID); clsContact.CommitAndDispose(); DialogResult addresult = System.Windows.Forms.DialogResult.Cancel; switch (SysConfigDetails.ContactAddWndType) { case ContactAddWndType.ContactAddWnd: case ContactAddWndType.ContactAddNoLTOWnd: ContactAddWnd clsContactAddWnd = new ContactAddWnd(); clsContactAddWnd.Caption = "Update Customer [" + details.ContactName + "]"; clsContactAddWnd.ContactDetails = details; clsContactAddWnd.TerminalDetails = TerminalDetails; clsContactAddWnd.SysConfigDetails = SysConfigDetails; clsContactAddWnd.ShowDialog(this); addresult = clsContactAddWnd.Result; details = clsContactAddWnd.ContactDetails; clsContactAddWnd.Close(); clsContactAddWnd.Dispose(); break; case ContactAddWndType.ContactAddHCareWnd: ContactAddHCareWnd clsContactAddHCareWnd = new ContactAddHCareWnd(); clsContactAddHCareWnd.Caption = "Update Customer [" + details.ContactName + "]"; clsContactAddHCareWnd.ContactDetails = details; clsContactAddHCareWnd.TerminalDetails = TerminalDetails; clsContactAddHCareWnd.ShowDialog(this); addresult = clsContactAddHCareWnd.Result; details = clsContactAddHCareWnd.ContactDetails; clsContactAddHCareWnd.Close(); clsContactAddHCareWnd.Dispose(); break; default: ContactAddDetWnd clsContactAddDetWnd = new ContactAddDetWnd(); clsContactAddDetWnd.Caption = "Update Customer [" + details.ContactName + "]"; clsContactAddDetWnd.ContactDetails = details; clsContactAddDetWnd.TerminalDetails = TerminalDetails; clsContactAddDetWnd.ShowDialog(this); addresult = clsContactAddDetWnd.Result; details = clsContactAddDetWnd.ContactDetails; clsContactAddDetWnd.Close(); clsContactAddDetWnd.Dispose(); break; } if (addresult == DialogResult.OK) { txtSearch.Text = details.ContactCode; LoadContactData(); } } } catch { } }
private void CreditCardReplacement(CreditCardStatus pvtCreditCardStatus) { if (mboIsInTransaction) { MessageBox.Show("Sorry you cannot replace a Credit Card while there is an ongoing transaction. Please finish the transaction first.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.CreditCardChange); if (loginresult == DialogResult.OK) { try { DialogResult result; Data.ContactDetails clsContactDetails; ContactSelectWnd clsContactWnd = new ContactSelectWnd(); clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK; clsContactWnd.SysConfigDetails = mclsSysConfigDetails; clsContactWnd.TerminalDetails = mclsTerminalDetails; clsContactWnd.ContactGroupCategory = AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER; clsContactWnd.Header = "Please select customer for credit card replacement."; clsContactWnd.ShowDialog(this); clsContactDetails = clsContactWnd.Details; result = clsContactWnd.Result; clsContactWnd.Close(); clsContactWnd.Dispose(); if (result != DialogResult.OK) { return; } if (clsContactDetails.ContactID == Constants.ZERO || clsContactDetails.ContactID == Constants.C_RETAILPLUS_CUSTOMERID) { return; } clsEvent.AddEvent("[" + lblCashier.Text + "] Replacing credit card..."); Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); mConnection = clsContact.Connection; mTransaction = clsContact.Transaction; clsContactDetails = clsContact.Details(clsContactDetails.ContactID); Data.ContactDetails clsGuarantor = clsContact.Details(clsContactDetails.CreditDetails.GuarantorID); clsContact.CommitAndDispose(); if (clsContactDetails.CreditDetails.CreditCardNo == string.Empty || clsContactDetails.CreditDetails.CreditCardNo == null) { clsEvent.AddEventLn("Cancelled!"); clsEvent.AddEventLn(clsContactDetails.ContactName + " has no valid Credit Card yet. "); MessageBox.Show(clsContactDetails.ContactName + " has no valid Credit Card yet. Please select another customer.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } clsEvent.AddEvent("[" + lblCashier.Text + "] Replacing credit card #: " + clsContactDetails.CreditDetails.CreditCardNo + " of " + clsContactDetails.ContactName + " as " + pvtCreditCardStatus.ToString("G")); string strOldCreditCardNo = clsContactDetails.CreditDetails.CreditCardNo; ContactCreditWnd clsContactCreditWnd = new ContactCreditWnd(); if (pvtCreditCardStatus == CreditCardStatus.Replaced_Lost) clsContactCreditWnd.Header = "Credit Card Replacement of LOST CARD "; else if (pvtCreditCardStatus == CreditCardStatus.Replaced_Expired) clsContactCreditWnd.Header = "Credit Card Replacement of EXPIRED CARD "; clsContactCreditWnd.CardTypeDetails = clsContactDetails.CreditDetails.CardTypeDetails; clsContactCreditWnd.Guarantor = clsGuarantor; clsContactCreditWnd.ContactDetails = clsContactDetails; clsContactCreditWnd.CreditCardStatus = pvtCreditCardStatus; clsContactCreditWnd.TerminalDetails = mclsTerminalDetails; clsContactCreditWnd.ShowDialog(this); result = clsContactCreditWnd.Result; clsContactDetails = clsContactCreditWnd.ContactDetails; clsContactCreditWnd.Close(); clsContactCreditWnd.Dispose(); if (result == DialogResult.OK) { Data.Products clsProducts = new Data.Products(mConnection, mTransaction); mConnection = clsProducts.Connection; mTransaction = clsProducts.Transaction; string strProductBarcode = Data.Products.DEFAULT_CREDIT_CARD_REPLACEMENT_FEE_BARCODE; //override if with Guarantor if (clsContactDetails.CreditDetails.CardTypeDetails.WithGuarantor) strProductBarcode = Data.Products.DEFAULT_SUPER_CARD_REPLACEMENT_FEE_BARCODE; if (clsProducts.Details(strProductBarcode).ProductID == 0) { if (!clsContactDetails.CreditDetails.CardTypeDetails.WithGuarantor) clsProducts.CREATE_CREDIT_CARD_REPLACEMENT_FEE_BARCODE_PRODUCT(); else clsProducts.CREATE_SUPER_CARD_REPLACEMENT_FEE_BARCODE_PRODUCT(); Methods.InsertAuditLog(mclsTerminalDetails, "System Administrator", AccessTypes.CreditCardChange, strProductBarcode + " product has been created coz it's not configured"); } clsProducts.CommitAndDispose(); MessageBox.Show("Credit Card No: " + strOldCreditCardNo + " has been replaced with new card #: " + clsContactDetails.CreditDetails.CreditCardNo + ".", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information); clsEvent.AddEventLn("Done!", true); clsEvent.AddEventLn("Credit Card No: " + strOldCreditCardNo + " has been replaced with new card #: " + clsContactDetails.CreditDetails.CreditCardNo + ".", true); LocalDB clsLocalDB = new LocalDB(mConnection, mTransaction); mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction; clsEvent.AddEvent("[" + lblCashier.Text + "] Creating " + strProductBarcode + "transaction for customer: "); LoadContact(AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER, clsContactDetails); if (!this.CreateTransaction()) return; txtBarCode.Text = strProductBarcode; ReadBarCode(); int iRow = dgItems.CurrentRowIndex; txtBarCode.Text = ""; CloseTransaction(); clsLocalDB.CommitAndDispose(); } else { clsEvent.AddEventLn("Cancelled!"); } } catch (Exception ex) { InsertErrorLogToFile(ex, "ERROR!!! Replacing internal credit card."); } Cursor.Current = Cursors.Default; } }
private void CreditCardDeclareAsSuspended() { if (mboIsInTransaction) { MessageBox.Show("Sorry you cannot deaclare a Credit Card as lost while there is an ongoing transaction. Please finish the transaction first.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.CreditCardChange, "Credit Card Declaration as Lost"); if (loginresult == DialogResult.OK) { try { DialogResult result; Data.ContactDetails clsContactDetails; ContactSelectWnd clsContactWnd = new ContactSelectWnd(); clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK; clsContactWnd.SysConfigDetails = mclsSysConfigDetails; clsContactWnd.TerminalDetails = mclsTerminalDetails; clsContactWnd.ContactGroupCategory = AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER; clsContactWnd.Header = "Please select customer for credit card suspension."; clsContactWnd.ShowDialog(this); clsContactDetails = clsContactWnd.Details; result = clsContactWnd.Result; clsContactWnd.Close(); clsContactWnd.Dispose(); if (result != DialogResult.OK) { return; } if (clsContactDetails.ContactID == Constants.ZERO || clsContactDetails.ContactID == Constants.C_RETAILPLUS_CUSTOMERID) { return; } clsEvent.AddEvent("[" + lblCashier.Text + "] Declaring credit card as suspended."); Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); mConnection = clsContact.Connection; mTransaction = clsContact.Transaction; clsContactDetails = clsContact.Details(clsContactDetails.ContactID); Data.ContactDetails clsGuarantor = clsContact.Details(clsContactDetails.CreditDetails.GuarantorID); clsContact.CommitAndDispose(); if (clsContactDetails.CreditDetails.CreditCardNo == string.Empty || clsContactDetails.CreditDetails.CreditCardNo == null) { clsEvent.AddEventLn("Cancelled!"); clsEvent.AddEventLn(clsContactDetails.ContactName + " has no valid Credit Card yet. "); MessageBox.Show(clsContactDetails.ContactName + " has no valid Credit Card yet. Please select another customer.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } ContactCreditWnd clsContactCreditWnd = new ContactCreditWnd(); clsContactCreditWnd.Header = "Credit Card Suspension"; clsContactCreditWnd.CardTypeDetails = clsContactDetails.CreditDetails.CardTypeDetails; clsContactCreditWnd.Guarantor = clsGuarantor; clsContactCreditWnd.ContactDetails = clsContactDetails; clsContactCreditWnd.CreditCardStatus = CreditCardStatus.Suspended; clsContactCreditWnd.TerminalDetails = mclsTerminalDetails; clsContactCreditWnd.ShowDialog(this); result = clsContactCreditWnd.Result; clsContactDetails = clsContactCreditWnd.ContactDetails; clsContactCreditWnd.Close(); clsContactCreditWnd.Dispose(); if (result == DialogResult.OK) { MessageBox.Show("Credit Card No: " + clsContactDetails.CreditDetails.CreditCardNo + " has been SUSPENDED.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information); clsEvent.AddEventLn("Done!", true); clsEvent.AddEventLn("Credit Card No: " + clsContactDetails.CreditDetails.CreditCardNo + " has been SUSPENDED.", true); this.LoadOptions(); } else { clsEvent.AddEventLn("Cancelled!"); } } catch (Exception ex) { InsertErrorLogToFile(ex, "ERROR!!! Declaring internal credit card as lost."); } Cursor.Current = Cursors.Default; } }
private void UpdateContact() { try { DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts); if (loginresult == DialogResult.OK) { loginresult = System.Windows.Forms.DialogResult.Cancel; Data.ContactDetails clsContactDetails = new Data.ContactDetails(); if (mclsSalesTransactionDetails.CustomerID != 0 && mclsSalesTransactionDetails.CustomerID != Constants.C_RETAILPLUS_CUSTOMERID) { Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); mConnection = clsContact.Connection; mTransaction = clsContact.Transaction; clsContactDetails = clsContact.Details(mclsSalesTransactionDetails.CustomerID); clsContact.CommitAndDispose(); loginresult = System.Windows.Forms.DialogResult.OK; } else { ContactSelectWnd clsContactWnd = new ContactSelectWnd(); clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK; clsContactWnd.SysConfigDetails = mclsSysConfigDetails; clsContactWnd.TerminalDetails = mclsTerminalDetails; clsContactWnd.ContactGroupCategory = Data.ContactGroupCategory.CUSTOMER; clsContactWnd.ShowDialog(this); clsContactDetails = clsContactWnd.Details; loginresult = clsContactWnd.Result; clsContactWnd.Close(); clsContactWnd.Dispose(); } if (loginresult == System.Windows.Forms.DialogResult.OK) { DialogResult addresult = System.Windows.Forms.DialogResult.Cancel; switch (mclsSysConfigDetails.ContactAddWndType) { case ContactAddWndType.ContactAddWnd: case ContactAddWndType.ContactAddNoLTOWnd: ContactAddWnd clsContactAddWnd = new ContactAddWnd(); clsContactAddWnd.Caption = "Update Customer [" + mclsContactDetails.ContactName + "]"; clsContactAddWnd.ContactDetails = clsContactDetails; clsContactAddWnd.TerminalDetails = mclsTerminalDetails; clsContactAddWnd.SysConfigDetails = mclsSysConfigDetails; clsContactAddWnd.ShowDialog(this); addresult = clsContactAddWnd.Result; clsContactDetails = clsContactAddWnd.ContactDetails; clsContactAddWnd.Close(); clsContactAddWnd.Dispose(); break; case ContactAddWndType.ContactAddHCareWnd: ContactAddHCareWnd clsContactAddHCareWnd = new ContactAddHCareWnd(); clsContactAddHCareWnd.Caption = "Update Customer [" + mclsContactDetails.ContactName + "]"; clsContactAddHCareWnd.ContactDetails = clsContactDetails; clsContactAddHCareWnd.TerminalDetails = mclsTerminalDetails; clsContactAddHCareWnd.ShowDialog(this); addresult = clsContactAddHCareWnd.Result; clsContactDetails = clsContactAddHCareWnd.ContactDetails; clsContactAddHCareWnd.Close(); clsContactAddHCareWnd.Dispose(); break; default: ContactAddDetWnd clsContactAddDetWnd = new ContactAddDetWnd(); clsContactAddDetWnd.Caption = "Update Customer [" + mclsContactDetails.ContactName + "]"; clsContactAddDetWnd.ContactDetails = clsContactDetails; clsContactAddDetWnd.TerminalDetails = mclsTerminalDetails; clsContactAddDetWnd.ShowDialog(this); addresult = clsContactAddDetWnd.Result; clsContactDetails = clsContactAddDetWnd.ContactDetails; clsContactAddDetWnd.Close(); clsContactAddDetWnd.Dispose(); break; } if (addresult == DialogResult.OK) { if (mboIsInTransaction) { LoadContact(Data.ContactGroupCategory.CUSTOMER, clsContactDetails); } MessageBox.Show("Customer has been updated and the details has been reloaded for this transaction.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } } catch { } }
public void PrintCheckOutBillFooter() { if (mclsSalesTransactionDetails.OrderType == OrderTypes.Delivery) { Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); mConnection = clsContact.Connection; mTransaction = clsContact.Transaction; Data.ContactDetails clsContactDetails = clsContact.Details(mclsSalesTransactionDetails.CustomerID); clsContact.CommitAndDispose(); if (clsContactDetails.BusinessName != string.Empty) msbToPrint.Append("Delivered to".PadRight(15) + ":" + clsContactDetails.BusinessName.PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); if (clsContactDetails.TelephoneNo != string.Empty) msbToPrint.Append("Tel #".PadRight(15) + ":" + clsContactDetails.TelephoneNo.PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); if (clsContactDetails.Address != string.Empty) msbToPrint.Append("Address".PadRight(15) + ":" + clsContactDetails.Address.PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine); } }
private void ResumeTransaction() { if (!SuspendTransactionAndContinue()) return; // ShowOneTerminalSuspendedTransactions // Only same cashier in same terminal can be resume. // if terminalno and cashier is not the same to not allow if (mclsTerminalDetails.ShowOneTerminalSuspendedTransactions) { Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction); mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction; int count = clsSalesTransactions.CountSuspended(mclsTerminalDetails.TerminalNo, mclsSalesTransactionDetails.CashierID, mclsTerminalDetails.BranchID); clsSalesTransactions.CommitAndDispose(); if (count == 0) { MessageBox.Show("No suspended transaction found for this day.", "RetailPlus", MessageBoxButtons.OK); return; } } DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.ResumeTransaction); if (loginresult == DialogResult.OK) { try { ResumeTransactionWnd ResumeWnd = new ResumeTransactionWnd(); ResumeWnd.TerminalDetails = mclsTerminalDetails; ResumeWnd.CashierID = mclsSalesTransactionDetails.CashierID; ResumeWnd.TransactionStatusToList = AceSoft.RetailPlus.TransactionStatus.Suspended; ResumeWnd.ShowDialog(this); DialogResult result = ResumeWnd.Result; Data.SalesTransactionDetails details = ResumeWnd.Details; ResumeWnd.Close(); ResumeWnd.Dispose(); if (result == DialogResult.OK) { if (details.TransactionStatus == TransactionStatus.SuspendedOpen) { if (MessageBox.Show("This transaction is already open in another terminal. Please suspend in the other terminal first before opening." + Environment.NewLine + "Would you like to force open this transaction?", "RetailPlus", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No) { return; } else { DialogResult resResumeSuspendedOpenTransaction = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.ResumeSuspendedOpenTransaction); if (resResumeSuspendedOpenTransaction != System.Windows.Forms.DialogResult.OK) { clsEvent.AddEvent("[" + lblCashier.Text + "] Resuming transaction no. " + details.TransactionNo + " cancelled. SuspendedOpen"); return; } } } clsEvent.AddEvent("[" + lblCashier.Text + "] Resuming transaction no. " + details.TransactionNo); mclsSalesTransactionDetails = details; if (mclsSalesTransactionDetails.TransactionStatus == TransactionStatus.Refund || mclsSalesTransactionDetails.TransactionType == TransactionTypes.POSRefund) { mboIsRefund = true; lblSubtotalName.Text = "SUBTOTAL: REFUND"; lblOrderType.Visible = false; } lblOrderType.Text = mclsSalesTransactionDetails.OrderType.ToString("G").ToUpper(); lblTransNo.Text = mclsSalesTransactionDetails.TransactionNo; lblTransNo.Tag = mclsSalesTransactionDetails.TransactionID.ToString(); lblCustomer.Text = mclsSalesTransactionDetails.CustomerName; lblCustomer.Tag = mclsSalesTransactionDetails.CustomerID.ToString(); lblAgent.Text = mclsSalesTransactionDetails.AgentName; lblAgent.Tag = mclsSalesTransactionDetails.AgentID.ToString(); lblAgentPositionDepartment.Text = mclsSalesTransactionDetails.AgentPositionName; lblAgentPositionDepartment.Tag = mclsSalesTransactionDetails.AgentDepartmentName; grpItems.Text = "Served by: " + details.WaiterName; grpItems.Tag = mclsSalesTransactionDetails.WaiterID.ToString(); lblTransDate.Text = mclsSalesTransactionDetails.TransactionDate.ToString("MMM. dd, yyyy hh:mm:ss tt"); mdteOverRidingPrintDate = mclsSalesTransactionDetails.TransactionDate; lblTransDiscount.Tag = mclsSalesTransactionDetails.TransDiscountType.ToString("d"); lblConsignment.Visible = mclsSalesTransactionDetails.isConsignment; if (mclsSalesTransactionDetails.ChargeAmount == 0) lblTransCharge.Tag = ChargeTypes.NotApplicable.ToString("d"); else { Data.ChargeType clsChargeType = new Data.ChargeType(mConnection, mTransaction); bool bolInPercent = clsChargeType.Details(mclsSalesTransactionDetails.ChargeCode).InPercent; clsChargeType.CommitAndDispose(); if (bolInPercent) lblTransCharge.Tag = ChargeTypes.Percentage.ToString("d"); else lblTransCharge.Tag = ChargeTypes.FixedValue.ToString("d"); } // Aug 6, 2011 : Lemu // Put here from CloseTransaction try { mclsSalesTransactionDetails.CashierID = Convert.ToInt64(lblCashier.Tag); } catch { } mclsSalesTransactionDetails.CashierName = lblCashier.Text; LoadResumedItems(details.TransactionItems, false); // Jan 31, 2015 : Lemu // put back to SuspendedOpen so that it won't be open somewhere else if (mclsSalesTransactionDetails.TransactionStatus == TransactionStatus.Suspended) { Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction); mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction; clsEvent.AddEvent("Putting transaction SuspendedOpen: " + mclsSalesTransactionDetails.TransactionNo, true); clsSalesTransactions.UpdateTransactionToSuspendedOpen(mclsSalesTransactionDetails.TransactionID); clsSalesTransactions.CommitAndDispose(); } // 06Mar2015 : reload this, to use for price level Data.Contacts clsContacts = new Data.Contacts(mConnection, mTransaction); mConnection = clsContacts.Connection; mTransaction = clsContacts.Transaction; mclsContactDetails = clsContacts.Details(mclsSalesTransactionDetails.CustomerID); clsContacts.CommitAndDispose(); mboIsInTransaction = true; InsertAuditLog(AccessTypes.ResumeTransaction, "Resume transaction #: " + lblTransNo.Text + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode); clsEvent.AddEventLn("[" + lblCashier.Text + "] Resuming transaction no. " + details.TransactionNo + " Done.", true); } else { clsEvent.AddEventLn("Cancelled!"); } } catch (Exception ex) { InsertErrorLogToFile(ex, "ERROR!!! Resuming transaction."); } } }
public void PrintOfficialReceipt() { try { CRSReports.OR rpt = new CRSReports.OR(); AceSoft.RetailPlus.Client.ReportDataset rptds = new AceSoft.RetailPlus.Client.ReportDataset(); System.Data.DataRow drNew; /****************************report logo *****************************/ try { System.IO.FileStream fs = new System.IO.FileStream(Application.StartupPath + "/images/ReportLogo.jpg", System.IO.FileMode.Open, System.IO.FileAccess.Read); System.IO.FileInfo fi = new System.IO.FileInfo(Application.StartupPath + "/images/ReportLogo.jpg"); byte[] propimg = new byte[fi.Length]; fs.Read(propimg, 0, Convert.ToInt32(fs.Length)); fs.Close(); drNew = rptds.CompanyLogo.NewRow(); drNew["Picture"] = propimg; rptds.CompanyLogo.Rows.Add(drNew); } catch { } /****************************sales transaction *****************************/ Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction); mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction; Data.SalesTransactionDetails clsSalesTransactionDetails = clsSalesTransactions.Details(mclsSalesTransactionDetails.TransactionNo, mclsTerminalDetails.TerminalNo, mclsTerminalDetails.BranchID); Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); mConnection = clsContact.Connection; mTransaction = clsContact.Transaction; Data.ContactDetails clsContactDetails = clsContact.Details(clsSalesTransactionDetails.CustomerID); if (clsSalesTransactionDetails.isExist) { /****************************sales transaction details*****************************/ drNew = rptds.Transactions.NewRow(); drNew["TransactionID"] = clsSalesTransactionDetails.TransactionID; drNew["TransactionNo"] = clsSalesTransactionDetails.TransactionNo; drNew["ORNo"] = clsSalesTransactionDetails.ORNo; drNew["CustomerName"] = clsSalesTransactionDetails.CustomerName; drNew["CustomerAddress"] = clsContactDetails.Address; drNew["CustomerTerms"] = clsSalesTransactionDetails.Terms; drNew["CustomerModeOfterms"] = clsSalesTransactionDetails.ModeOfTerms; drNew["CustomerBusinessName"] = clsContactDetails.BusinessName; drNew["CustomerTelNo"] = clsContactDetails.TelephoneNo; drNew["CashierName"] = clsSalesTransactionDetails.CashierName; drNew["CreatedByName"] = clsSalesTransactionDetails.CreatedByName; drNew["AgentName"] = clsSalesTransactionDetails.AgentName; drNew["TerminalNo"] = clsSalesTransactionDetails.TerminalNo; drNew["TransactionDate"] = clsSalesTransactionDetails.TransactionDate; drNew["DateSuspended"] = clsSalesTransactionDetails.DateSuspended.ToString(); drNew["DateResumed"] = clsSalesTransactionDetails.DateResumed; drNew["TransactionStatus"] = clsSalesTransactionDetails.TransactionStatus; drNew["SubTotal"] = clsSalesTransactionDetails.SubTotal; drNew["ItemsDiscount"] = clsSalesTransactionDetails.ItemsDiscount; //drNew["SNRItemsDiscount"] = clsSalesTransactionDetails.SNRItemsDiscount; //drNew["PWDItemsDiscount"] = clsSalesTransactionDetails.PWDItemsDiscount; //drNew["OtherItemsDiscount"] = clsSalesTransactionDetails.OtherItemsDiscount; drNew["Discount"] = clsSalesTransactionDetails.Discount; drNew["VAT"] = clsSalesTransactionDetails.VAT; drNew["VATableAmount"] = clsSalesTransactionDetails.VATableAmount; //drNew["ZeroRatedSales"] = clsSalesTransactionDetails.ZeroRatedSales; drNew["LocalTax"] = clsSalesTransactionDetails.LocalTax; drNew["AmountPaid"] = clsSalesTransactionDetails.AmountPaid; drNew["CashPayment"] = clsSalesTransactionDetails.CashPayment; drNew["ChequePayment"] = clsSalesTransactionDetails.ChequePayment; drNew["CreditCardPayment"] = clsSalesTransactionDetails.CreditCardPayment; drNew["CreditPayment"] = clsSalesTransactionDetails.CreditPayment; drNew["DebitPayment"] = clsSalesTransactionDetails.DebitPayment; drNew["BalanceAmount"] = clsSalesTransactionDetails.BalanceAmount; drNew["ChangeAmount"] = clsSalesTransactionDetails.ChangeAmount; drNew["DateClosed"] = clsSalesTransactionDetails.DateClosed; drNew["PaymentType"] = clsSalesTransactionDetails.PaymentType.ToString("d"); drNew["Charge"] = clsSalesTransactionDetails.Charge; drNew["isConsignment"] = clsSalesTransactionDetails.isConsignment; drNew["CRNo"] = clsSalesTransactionDetails.CRNo; rptds.Transactions.Rows.Add(drNew); /****************************sales transaction items*****************************/ Data.SalesTransactionItems clsSalesTransactionItems = new Data.SalesTransactionItems(mConnection, mTransaction); mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction; System.Data.DataTable dt = clsSalesTransactionItems.List(clsSalesTransactionDetails.TransactionID, clsSalesTransactionDetails.TransactionDate, "TransactionItemsID", SortOption.Ascending); foreach (System.Data.DataRow dr in dt.Rows) { drNew = rptds.SalesTransactionItems.NewRow(); foreach (System.Data.DataColumn dc in rptds.SalesTransactionItems.Columns) drNew[dc] = dr[dc.ColumnName]; rptds.SalesTransactionItems.Rows.Add(drNew); } } clsSalesTransactions.CommitAndDispose(); rpt.SetDataSource(rptds); CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinition paramField; CrystalDecisions.Shared.ParameterValues currentValues; CrystalDecisions.Shared.ParameterDiscreteValue discreteParam; paramField = rpt.DataDefinition.ParameterFields["CompanyName"]; discreteParam = new CrystalDecisions.Shared.ParameterDiscreteValue(); discreteParam.Value = CompanyDetails.CompanyName; currentValues = new CrystalDecisions.Shared.ParameterValues(); currentValues.Add(discreteParam); paramField.ApplyCurrentValues(currentValues); paramField = rpt.DataDefinition.ParameterFields["PrintedBy"]; discreteParam = new CrystalDecisions.Shared.ParameterDiscreteValue(); discreteParam.Value = mclsSalesTransactionDetails.CashierName; currentValues = new CrystalDecisions.Shared.ParameterValues(); currentValues.Add(discreteParam); paramField.ApplyCurrentValues(currentValues); paramField = rpt.DataDefinition.ParameterFields["PackedBy"]; discreteParam = new CrystalDecisions.Shared.ParameterDiscreteValue(); discreteParam.Value = mclsSalesTransactionDetails.WaiterName; // grpItems.Text.Remove(0, 11); currentValues = new CrystalDecisions.Shared.ParameterValues(); currentValues.Add(discreteParam); paramField.ApplyCurrentValues(currentValues); paramField = rpt.DataDefinition.ParameterFields["CompanyAddress"]; discreteParam = new CrystalDecisions.Shared.ParameterDiscreteValue(); discreteParam.Value = CompanyDetails.Address1 + ((!string.IsNullOrEmpty(CompanyDetails.Address2) ? Environment.NewLine + CompanyDetails.Address2 + ", " : " ")) + CompanyDetails.City + " " + CompanyDetails.Country + ((!string.IsNullOrEmpty(CompanyDetails.OfficePhone) ? Environment.NewLine + "Tel #: " + CompanyDetails.OfficePhone + " " : " ")) + ((!string.IsNullOrEmpty(CompanyDetails.OfficePhone) ? Environment.NewLine + "FaxPhone #: " + CompanyDetails.FaxPhone + " " : " ")); currentValues = new CrystalDecisions.Shared.ParameterValues(); currentValues.Add(discreteParam); paramField.ApplyCurrentValues(currentValues); paramField = rpt.DataDefinition.ParameterFields["BIRInfo"]; discreteParam = new CrystalDecisions.Shared.ParameterDiscreteValue(); discreteParam.Value = "TIN : " + CompanyDetails.TIN + " VAT Reg." + Environment.NewLine + "BIR Acc #: " + CONFIG.AccreditationNo + " SN#: " + CONFIG.MachineSerialNo + Environment.NewLine + "Permit No: FP102014-064-0015149-00000"; currentValues = new CrystalDecisions.Shared.ParameterValues(); currentValues.Add(discreteParam); paramField.ApplyCurrentValues(currentValues); //foreach (CrystalDecisions.CrystalReports.Engine.ReportObject objPic in rpt.Section1.ReportObjects) //{ // if (objPic.Name.ToUpper() == "PICLOGO1") // { // objPic = new Bitmap(Application.StartupPath + "/images/ReportLogo.jpg"); // } //} //CRViewer.Visible = true; //CRViewer.ReportSource = rpt; //CRViewer.Show(); try { DateTime logdate = DateTime.Now; string logsdir = System.Configuration.ConfigurationManager.AppSettings["logsdir"].ToString(); if (!Directory.Exists(logsdir + logdate.ToString("MMM"))) { Directory.CreateDirectory(logsdir + logdate.ToString("MMM")); } string logFile = logsdir + logdate.ToString("MMM") + "/OR_" + clsSalesTransactionDetails.TransactionNo + logdate.ToString("yyyyMMddhhmmss") + ".doc"; rpt.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.WordForWindows, logFile); } catch { } if (isPrinterOnline(mclsTerminalDetails.SalesInvoicePrinterName)) { rpt.PrintOptions.PrinterName = mclsTerminalDetails.SalesInvoicePrinterName; rpt.PrintToPrinter(1, false, 0, 0); } else { clsEvent.AddEventLn("will not print sales invoice. printer is offline.", true, mclsSysConfigDetails.WillWriteSystemLog); } rpt.Close(); rpt.Dispose(); } catch (Exception ex) { InsertErrorLogToFile(ex); MessageBox.Show("Sorry an error was encountered during printing, please reprint again." + Environment.NewLine + "Details: " + ex.Message, "RetailPlus"); } }
private void ResumeClosedTransaction() { if (!SuspendTransactionAndContinue()) return; DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.ResumeClosedTransaction); if (loginresult == DialogResult.OK) { try { ResumeTransactionWnd ResumeWnd = new ResumeTransactionWnd(); ResumeWnd.TerminalDetails = mclsTerminalDetails; ResumeWnd.CashierID = mclsSalesTransactionDetails.CashierID; ResumeWnd.TransactionStatusToList = AceSoft.RetailPlus.TransactionStatus.Closed; ResumeWnd.ShowDialog(this); DialogResult result = ResumeWnd.Result; Data.SalesTransactionDetails details = ResumeWnd.Details; ResumeWnd.Close(); ResumeWnd.Dispose(); if (result == DialogResult.OK) { if (details.TransactionStatus != TransactionStatus.Closed) { MessageBox.Show("This transaction is not yet Closed, please select another transaction. {Current Status: " + details.TransactionStatus.ToString("G") + "}", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } clsEvent.AddEvent("[" + lblCashier.Text + "] Resuming closed transaction no. " + details.TransactionNo); mclsSalesTransactionDetails = details; if (mclsSalesTransactionDetails.TransactionStatus == TransactionStatus.Refund || mclsSalesTransactionDetails.TransactionType == TransactionTypes.POSRefund) { mboIsRefund = true; lblSubtotalName.Text = "SUBTOTAL: REFUND"; lblOrderType.Visible = false; } lblOrderType.Text = mclsSalesTransactionDetails.OrderType.ToString("G").ToUpper(); lblTransNo.Text = mclsSalesTransactionDetails.TransactionNo; lblTransNo.Tag = mclsSalesTransactionDetails.TransactionID.ToString(); lblCustomer.Text = mclsSalesTransactionDetails.CustomerName; lblCustomer.Tag = mclsSalesTransactionDetails.CustomerID.ToString(); lblAgent.Text = mclsSalesTransactionDetails.AgentName; lblAgent.Tag = mclsSalesTransactionDetails.AgentID.ToString(); lblAgentPositionDepartment.Text = mclsSalesTransactionDetails.AgentPositionName; lblAgentPositionDepartment.Tag = mclsSalesTransactionDetails.AgentDepartmentName; grpItems.Text = "Served by: " + details.WaiterName; grpItems.Tag = mclsSalesTransactionDetails.WaiterID.ToString(); lblTransDate.Text = mclsSalesTransactionDetails.TransactionDate.ToString("MMM. dd, yyyy hh:mm:ss tt"); mdteOverRidingPrintDate = mclsSalesTransactionDetails.TransactionDate; lblTransDiscount.Tag = mclsSalesTransactionDetails.TransDiscountType.ToString("d"); lblConsignment.Visible = mclsSalesTransactionDetails.isConsignment; if (mclsSalesTransactionDetails.ChargeAmount == 0) lblTransCharge.Tag = ChargeTypes.NotApplicable.ToString("d"); else { Data.ChargeType clsChargeType = new Data.ChargeType(mConnection, mTransaction); bool bolInPercent = clsChargeType.Details(mclsSalesTransactionDetails.ChargeCode).InPercent; clsChargeType.CommitAndDispose(); if (bolInPercent) lblTransCharge.Tag = ChargeTypes.Percentage.ToString("d"); else lblTransCharge.Tag = ChargeTypes.FixedValue.ToString("d"); } // Aug 6, 2011 : Lemu // Put here from CloseTransaction try { mclsSalesTransactionDetails.CashierID = Convert.ToInt64(lblCashier.Tag); } catch { } mclsSalesTransactionDetails.CashierName = lblCashier.Text; LoadResumedItems(details.TransactionItems, false); // 06Mar2015 : reload this, to use for price level Data.Contacts clsContacts = new Data.Contacts(mConnection, mTransaction); mConnection = clsContacts.Connection; mTransaction = clsContacts.Transaction; mclsContactDetails = clsContacts.Details(mclsSalesTransactionDetails.CustomerID); clsContacts.CommitAndDispose(); mboIsInTransaction = true; InsertAuditLog(AccessTypes.ResumeClosedTransaction, "Resume closed transaction #: " + lblTransNo.Text + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode); clsEvent.AddEventLn("[" + lblCashier.Text + "] Resuming closed transaction no. " + details.TransactionNo + " Done.", true); } else { clsEvent.AddEventLn("Cancelled!"); } } catch (Exception ex) { InsertErrorLogToFile(ex, "ERROR!!! Resuming closed transaction."); } } }
private void CloseTransaction() { if (!mboIsInTransaction) { MessageBox.Show("No active transaction found.", "RetailPlus", MessageBoxButtons.OK); return; } if ((mclsSalesTransactionDetails.SubTotal - mclsSalesTransactionDetails.Discount) < 0) { MessageBox.Show("Sorry you cannot close a less than ZERO transaction.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } // Feb 13, 2009 // overwrite cashierid and cashiername that will close the transaction // Aug 6, 2011 : Lemu // Remove this and put in ResumeTransaction //try { mclsSalesTransactionDetails.CashierID = Convert.ToInt64(lblCashier.Tag); } //catch { } //mclsSalesTransactionDetails.CashierName = lblCashier.Text; DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.CloseTransaction); if (loginresult == DialogResult.OK) { // 02Nov2014 : do not let close the CreditPayment coz the selected transactions to be paid are not identified anymore. // : this should not come to this if no error has encountered if (mclsSalesTransactionDetails.TransactionStatus == TransactionStatus.CreditPayment) { MessageBox.Show("Sorry there was an error when paying this CREDIT transaction." + Environment.NewLine + "You should VOID this transaction and re-issue the payment.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (mclsSalesTransactionDetails.SubTotal == 0) { if (!mclsSysConfigDetails.AllowZeroAmountTransaction) { MessageBox.Show("Sorry you cannot close this ZERO amount transaction." + Environment.NewLine + "You can VOID this transaction instead.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } else if (MessageBox.Show("Are you sure you want to close this ZERO amount transaction?", "RetailPlus", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No) return; } try { clsEvent.AddEventLn("Closing transaction no. " + lblTransNo.Text, true); clsEvent.AddEventLn(" showing payment screen", true); Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); mConnection = clsContact.Connection; mTransaction = clsContact.Transaction; // for checking - why do i need to reconnect in database if the customer is always updated? mclsContactDetails = clsContact.Details(mclsSalesTransactionDetails.CustomerID); LoadContact(Data.ContactGroupCategory.CUSTOMER, mclsContactDetails); clsContact.CommitAndDispose(); Data.SalesTransactionItemDetails mTopItemDetails = getCurrentRowItemDetails(); //insert payment details PaymentsWnd payment = new PaymentsWnd(); payment.TerminalDetails = mclsTerminalDetails; payment.SysConfigDetails = mclsSysConfigDetails; payment.CustomerDetails = mclsContactDetails; payment.SalesTransactionDetails = mclsSalesTransactionDetails; payment.CreditCardSwiped = mboCreditCardSwiped; payment.IsRefund = mboIsRefund; payment.IsCreditChargeExcluded = mTopItemDetails.IsCreditChargeExcluded; payment.OfflineProductDesc = (mTopItemDetails.IsCreditChargeExcluded && ItemDataTable.Rows.Count == 1 && mTopItemDetails.BarCode.Length <= 10) ? mTopItemDetails.ProductCode : ""; payment.ShowDialog(this); DialogResult paymentResult = payment.Result; decimal AmountPaid = payment.AmountPaid; decimal CashPayment = payment.CashPayment; decimal ChequePayment = payment.ChequePayment; decimal CreditCardPayment = payment.CreditCardPayment; decimal CreditPayment = payment.CreditPayment; decimal DebitPayment = payment.DebitPayment; decimal CreditChargeAmount = payment.SalesTransactionDetails.CreditChargeAmount; decimal BalanceAmount = payment.BalanceAmount; decimal ChangeAmount = payment.ChangeAmount; PaymentTypes PaymentType = payment.PaymentType; ArrayList arrCashPaymentDetails = payment.CashPaymentDetails; ArrayList arrChequePaymentDetails = payment.ChequePaymentDetails; ArrayList arrCreditCardPaymentDetails = payment.CreditCardPaymentDetails; ArrayList arrCreditPaymentDetails = payment.CreditPaymentDetails; ArrayList arrDebitPaymentDetails = payment.DebitPaymentDetails; decimal RewardPointsPayment = payment.RewardPointsPayment; decimal RewardConvertedPayment = payment.RewardConvertedPayment; Data.ContactDetails clsCreditorDetails = payment.CreditorDetails; payment.Close(); payment.Dispose(); this.KeyPreview = false; clsEvent.AddEventLn(" payment screen closed.", true); if (paymentResult != DialogResult.OK) { clsEvent.AddEventLn(" cancelled.", true); } else { // override the customerinformation if it's paid with in-house creditcard if (clsCreditorDetails.ContactID !=0 && clsCreditorDetails.ContactID != mclsSalesTransactionDetails.CustomerID) { mboRewardCardSwiped = false; //reset this to false so that the existing rewards will not be overwritten LoadContact(Data.ContactGroupCategory.CUSTOMER, clsCreditorDetails, true); } CloseTransaction(mTopItemDetails, AmountPaid, ChangeAmount, BalanceAmount, CashPayment, ChequePayment, CreditCardPayment, CreditPayment, CreditChargeAmount, DebitPayment, RewardConvertedPayment, RewardPointsPayment, PaymentType, arrCashPaymentDetails, arrChequePaymentDetails, arrCreditCardPaymentDetails, arrCreditPaymentDetails, arrDebitPaymentDetails); clsEvent.AddEventLn(" Loading Options...", true, mclsSysConfigDetails.WillWriteSystemLog); this.LoadOptions(); } } catch (Exception ex) { InsertErrorLogToFile(ex, "ERROR!!! Closing transaction."); } this.KeyPreview = true; } Cursor.Current = Cursors.Default; }
private void LoadData() { mContactDetails = new Data.ContactDetails(); mGuarantorDetails = new Data.ContactDetails(); Data.Contacts clsContacts = new Data.Contacts(); switch (SysConfigDetails.CreditPaymentType) { case CreditPaymentType.Houseware: mContactDetails = clsContacts.DetailsByCreditCardNo(txtScan.Text); break; case CreditPaymentType.Normal: case CreditPaymentType.MPC: default: mContactDetails = clsContacts.Details(txtScan.Text); break; } if (mContactDetails.ContactID == 0) { //mContactDetails = clsContacts.DetailsByCreditCardNo(txtScan.Text.Remove(txtScan.Text.Length - 1)); if (mContactDetails.ContactID == 0 && txtScan.Text.Length == 7) mContactDetails = clsContacts.DetailsByCreditCardNo("888880" + txtScan.Text); if (mContactDetails.ContactID == 0 && txtScan.Text.Length == 7) mContactDetails = clsContacts.DetailsByCreditCardNo("800000" + txtScan.Text); if (mContactDetails.ContactID == 0 && txtScan.Text.Length == 9) mContactDetails = clsContacts.DetailsByCreditCardNo(BarcodeHelper.GroupCreditCard_Country_Code + BarcodeHelper.GroupCreditCard_ManufacturerCode + txtScan.Text); if (mContactDetails.ContactID == 0 && txtScan.Text.Length == 9) mContactDetails = clsContacts.DetailsByCreditCardNo(BarcodeHelper.CreditCard_Country_Code + BarcodeHelper.CreditCard_ManufacturerCode + txtScan.Text); } //get the guarantor details if with details if (mContactDetails.ContactID != 0) if (mContactDetails.ContactID == mContactDetails.CreditDetails.GuarantorID) mGuarantorDetails = mContactDetails; else if (mGuarantorDetails.ContactID != mContactDetails.CreditDetails.GuarantorID) mGuarantorDetails = clsContacts.Details(mContactDetails.CreditDetails.GuarantorID); clsContacts.CommitAndDispose(); if (mContactDetails.ContactID == 0) { grpContactDetails.Visible = false; grpPurchases.Visible = false; labelGuarantor.Visible = false; txtGuarantor.Visible = false; } else { grpContactDetails.Visible = true; grpPurchases.Visible = true; txtScan.Text = mContactDetails.CreditDetails.CreditCardNo; txtCustomerName.Text = mContactDetails.ContactName; txtMobileNo.Text = mContactDetails.AdditionalDetails.MobileNo; txtTelNo.Text = mContactDetails.TelephoneNo; txtAddress.Text = mContactDetails.Address; txtRemarks.Text = mContactDetails.Remarks; txtCreditCardStatus.Text = mContactDetails.CreditDetails.CreditActive ? "Active" : "InActive"; txtCreditCardStatus.Text += "(" + mContactDetails.CreditDetails.CreditCardStatus.ToString("G") + ")"; txtCreditLimit.Text = mContactDetails.CreditLimit.ToString("#,##0.#0"); txtCredit.Text = mContactDetails.Credit.ToString("#,##0.#0"); txtAvailableCredit.Text = (mContactDetails.CreditLimit - mContactDetails.Credit).ToString("#,##0.#0"); if (!mContactDetails.CreditDetails.CardTypeDetails.WithGuarantor) //no guarantor { labelCreditStatus.Location = new Point(71, 133); txtCreditCardStatus.Location = new Point(174, 133); txtCreditCardStatus.Size = new Size(439, 30); labelGuarantor.Visible = false; txtGuarantor.Visible = false; } else if (mContactDetails.CreditDetails.CardTypeDetails.WithGuarantor) //with guarantor { labelCreditStatus.Location = new Point(627, 133); txtCreditCardStatus.Location = new Point(731, 133); txtCreditCardStatus.Size = new Size(269, 30); labelGuarantor.Visible = true; txtGuarantor.Visible = true; txtGuarantor.Text = "[" + (mGuarantorDetails.CreditDetails.CreditActive ? "Active" : "InActive") + "] " + mGuarantorDetails.ContactCode + ":" + mGuarantorDetails.ContactName; } LoadPurchases(); lblBalance.Text = mContactDetails.Credit.ToString("#,##0.#0"); } }