private bool CreateDetails(int iRow) { try { bool boRetValue = false; mDetails = new Data.SalesTransactionDetails(); mDetails.TransactionID = Convert.ToInt64(dgItems[iRow, 0]); mDetails.TransactionNo = dgItems[iRow, 1].ToString(); Data.SalesTransactions clsTransactions = new Data.SalesTransactions(); mDetails = clsTransactions.Details(mDetails.TransactionNo, TerminalDetails.TerminalNo, TerminalDetails.BranchID); // 14Jun2015 : Update to Status Resume only if the Status is not Closed. if (TransactionStatusToList != RetailPlus.TransactionStatus.Closed) { clsTransactions.Resume(mDetails.TransactionID); } Data.SalesTransactionItems clsItems = new Data.SalesTransactionItems(clsTransactions.Connection, clsTransactions.Transaction); mDetails.TransactionItems = clsItems.Details(mDetails.TransactionID, mDetails.TransactionDate); clsTransactions.CommitAndDispose(); boRetValue = true; return(boRetValue); } catch (Exception ex) { MessageBox.Show(ex.Message, "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } }
/// <summary> /// Load the transaction using the transaction no. scanned in the txtScan. /// </summary> private void LoadTransaction() { try { LoadOptions(); string strTransactionNo = txtScan.Text.Trim().PadLeft(14, '0'); Data.SalesTransactions clsTransactions = new Data.SalesTransactions(); mclsSalesTransactionDetails = clsTransactions.Details(strTransactionNo, mclsTerminalDetails.TerminalNo, mclsTerminalDetails.BranchID); if (!string.IsNullOrEmpty(mclsSalesTransactionDetails.TransactionNo)) { if (mclsSalesTransactionDetails.TransactionStatus == TransactionStatus.Closed) { Data.SalesTransactionItems clsItems = new Data.SalesTransactionItems(clsTransactions.Connection, clsTransactions.Transaction); mclsSalesTransactionDetails.TransactionItems = clsItems.Details(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.TransactionDate); clsTransactions.CommitAndDispose(); lblTransactionNo.Text = "Transaction #: " + mclsSalesTransactionDetails.TransactionNo; lblTransactionNo.Tag = mclsSalesTransactionDetails.TransactionID.ToString(); lblCommand.Tag = mclsSalesTransactionDetails.TransactionDate.ToString("MM/dd/yyyy hh:mm"); LoadResumedItems(mclsSalesTransactionDetails.TransactionItems); getTotal(); lblCommand.Text = "Scan item:"; txtScan.Text = string.Empty; txtScan.Focus(); } else { clsTransactions.CommitAndDispose(); txtScan.Text = string.Empty; txtScan.Focus(); MessageBox.Show("Sorry, you cannot release transaction with status: " + mclsSalesTransactionDetails.TransactionStatus.ToString("G") + ".", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } else { clsTransactions.CommitAndDispose(); } } catch { } }
private void cmdTable_Click(object sender, EventArgs e) { try { ProductButton cmdTable = (ProductButton)sender; Data.Contacts clsContact = new Contacts(); mDetails = clsContact.Details(long.Parse(cmdTable.Tag.ToString())); Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(clsContact.Connection, clsContact.Transaction); string stTransactionNo = clsSalesTransactions.getSuspendedTransactionNo(mDetails.ContactID, mclsTerminalDetails.TerminalNo, mclsTerminalDetails.BranchID); Data.SalesTransactionDetails clsSalesTransactionDetails = new SalesTransactionDetails(); if (!string.IsNullOrEmpty(stTransactionNo)) { clsSalesTransactionDetails = clsSalesTransactions.Details(stTransactionNo, mclsTerminalDetails.TerminalNo, mclsTerminalDetails.BranchID); } clsContact.CommitAndDispose(); if (!string.IsNullOrEmpty(stTransactionNo) && clsSalesTransactionDetails.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) { //LoadContactData(System.Data.SqlClient.SortOrder.Ascending); return; } else { DialogResult resResumeSuspendedOpenTransaction = GetWriteAccessAndLogin(CashierID, AccessTypes.ResumeSuspendedOpenTransaction); if (resResumeSuspendedOpenTransaction != System.Windows.Forms.DialogResult.OK) { //LoadContactData(System.Data.SqlClient.SortOrder.Ascending); return; } } } dialog = DialogResult.OK; this.Hide(); } catch { } }
private void LoadItemData() { try { System.Data.DataTable dt = new System.Data.DataTable("tblproducts"); dt.Columns.Add("TransactionItemsID"); dt.Columns.Add("ProductID"); dt.Columns.Add("ProductCode"); dt.Columns.Add("BarCode"); dt.Columns.Add("ProductDesc"); dt.Columns.Add("ProductUnitID"); dt.Columns.Add("ProductUnitCode"); dt.Columns.Add("Quantity"); dt.Columns.Add("Price"); dt.Columns.Add("Discount"); dt.Columns.Add("ItemDiscount"); dt.Columns.Add("ItemDiscountType"); dt.Columns.Add("Amount"); dt.Columns.Add("VAT"); dt.Columns.Add("EVAT"); dt.Columns.Add("LocalTax"); dt.Columns.Add("VariationsMatrixID"); dt.Columns.Add("MatrixDescription"); dt.Columns.Add("ProductGroup"); dt.Columns.Add("ProductSubGroup"); dt.Columns.Add("TransactionItemStatus"); dt.Columns.Add("DiscountCode"); dt.Columns.Add("DiscountRemarks"); dt.Columns.Add("ProductPackageID"); dt.Columns.Add("MatrixPackageID"); dt.Columns.Add("PackageQuantity"); dt.Columns.Add("PromoQuantity"); dt.Columns.Add("PromoValue"); dt.Columns.Add("PromoInPercent"); dt.Columns.Add("PromoType"); dt.Columns.Add("PromoApplied"); dt.Columns.Add("PurchasePrice"); dt.Columns.Add("PurchaseAmount"); Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(); Data.SalesTransactionDetails det = clsSalesTransactions.Details(mstTransactionNo, mclsTerminalDetails.TerminalNo, mclsTerminalDetails.BranchID); clsSalesTransactions.CommitAndDispose(); Data.SalesTransactionItems clsItems = new Data.SalesTransactionItems(); Data.SalesTransactionItemDetails[] TransactionItems = clsItems.Details(det.TransactionID, det.TransactionDate); clsItems.CommitAndDispose(); foreach (Data.SalesTransactionItemDetails item in TransactionItems) { if (item.TransactionItemStatus == AceSoft.RetailPlus.TransactionItemStatus.Valid) { System.Data.DataRow dr = dt.NewRow(); dr["TransactionItemsID"] = item.TransactionItemsID; dr["ProductID"] = item.ProductID; dr["ProductCode"] = item.ProductCode; dr["BarCode"] = item.BarCode; dr["ProductDesc"] = item.Description; dr["ProductUnitID"] = item.ProductUnitID; dr["ProductUnitCode"] = item.ProductUnitCode; dr["Quantity"] = item.Quantity; dr["Price"] = item.Price; dr["Discount"] = item.Discount; dr["ItemDiscount"] = item.ItemDiscount; dr["ItemDiscountType"] = item.ItemDiscountType; dr["Amount"] = item.Amount; dr["VAT"] = item.VAT; dr["EVAT"] = item.EVAT; dr["LocalTax"] = item.LocalTax; dr["VariationsMatrixID"] = item.VariationsMatrixID; dr["MatrixDescription"] = item.MatrixDescription; dr["ProductGroup"] = item.ProductGroup; dr["ProductSubGroup"] = item.ProductSubGroup; dr["TransactionItemStatus"] = item.TransactionItemStatus; dr["DiscountCode"] = item.DiscountCode; dr["DiscountRemarks"] = item.DiscountRemarks; dr["ProductPackageID"] = item.ProductPackageID; dr["MatrixPackageID"] = item.MatrixPackageID; dr["PackageQuantity"] = item.PackageQuantity; dr["PromoQuantity"] = item.PromoQuantity; dr["PromoValue"] = item.PromoValue; dr["PromoInPercent"] = item.PromoInPercent; dr["PromoType"] = item.PromoType; dr["PromoApplied"] = item.PromoApplied; dr["PurchasePrice"] = item.PurchasePrice; dr["PurchaseAmount"] = item.PurchaseAmount; dt.Rows.Add(dr); } } this.dgStyle.MappingName = dt.TableName; dgItems.DataSource = dt; if (dgItems.VisibleRowCount > 0) { dgItems.Select(0); } dgItems.CurrentRowIndex = 0; } catch (Exception ex) { MessageBox.Show(ex.Message, "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public void 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 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"); } }
/// <summary> /// Returns true : all have purchases /// Returns false : some doesnt have purchases /// </summary> /// <param name="clsContactDetails"></param> /// <param name="decCredit"></param> /// <returns></returns> public bool AutoAdjustCredit(Data.ContactDetails clsContactDetails, decimal decCredit) { bool boRetValue = false; try { MySqlCommand cmd = new MySqlCommand(); cmd.CommandType = System.Data.CommandType.Text; System.Data.DataTable dtT = new System.Data.DataTable("tblTemp"); Int64 intContactID = clsContactDetails.ContactID; // pay all the purchases, we will do the reverse to arrive at equal credit in IC_ICC string SQL = "UPDATE tblCreditPayment SET AmountPaid = Amount WHERE ContactID=@ContactID;"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@ContactID", intContactID); cmd.CommandText = SQL; base.ExecuteNonQuery(cmd); // do not return, finish all the necessary adjustments //if (decCredit == 0) return true; // return true SQL = "UPDATE tblContacts SET Credit = @Credit WHERE ContactID=@ContactID;"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@ContactID", intContactID); cmd.Parameters.AddWithValue("@Credit", decCredit); cmd.CommandText = SQL; base.ExecuteNonQuery(cmd); Data.Contacts clsContacts = new Data.Contacts(base.Connection, base.Transaction); Data.ProductDetails clsProductDetails = new Data.Products(base.Connection, base.Transaction).DetailsByCode(1, "IC IMPORTED TRX"); Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(base.Connection, base.Transaction); Data.CreditCardPayments clsCreditCardPayments = new Data.CreditCardPayments(base.Connection, base.Transaction); Data.SalesTransactionDetails clsSalesTransactionDetails; string strTerminalNo = "9995"; Int32 intBranchID = 1; string TransactionNo = DateTime.Now.ToString("yyyyMmddHHmmss").PadLeft(14, '0'); DateTime CreatedOn = new DateTime(2014, 01, 01); DateTime TransactionDate = new DateTime(2014, 01, 01); DateTime DateClosed = new DateTime(2014, 01, 01); SQL = "SELECT * FROM tblCreditPayment WHERE ContactID=@ContactID AND CreditReasonID <> 8 ORDER BY CreditDate DESC;"; //8=deposits cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@ContactID", intContactID); cmd.CommandText = SQL; dtT = new System.Data.DataTable("tblTemp"); base.MySqlDataAdapterFill(cmd, dtT); Int32 dtTRowsCount = dtT.Rows.Count; //use this when reinsert is called below ReInsert: if (dtTRowsCount == 0) { // no purchases but with credit decimal SubTotal = decCredit; TransactionNo = DateTime.Now.ToString("yyyyMmddHHmmss").PadLeft(14, '0'); //#region Insert to tblTransactions SQL = "INSERT INTO tblTransactions(TransactionNo, CustomerID, CustomerName, CashierID, CashierName, TerminalNo, BranchID, BranchCode, TransactionDate, " + "DateSuspended, DateResumed, TransactionStatus, SubTotal, " + "AmountPaid, CashPayment, ChequePayment, " + "CreditCardPayment, CreditPayment, DateClosed, PaymentType, " + "WaiterID, WaiterName, AgentID, AgentName, CreatedByID, CreatedByName, " + "AgentDepartmentName, AgentPositionName, ReleasedDate, RewardPointsPayment, " + "RewardConvertedPayment, PaxNo, CreditChargeAmount, TransactionType, isConsignment, " + "DataSource, CustomerGroupName, CreatedOn, ORNo, " + "NetSales, ChargeType, ItemSold, QuantitySold, " + "ContactCheckInDate, GrossSales)VALUES("; SQL += "@TransactionNo, @CustomerID, @CustomerName, @CashierID, @CashierName, @TerminalNo, @BranchID, @BranchCode, @TransactionDate, " + "@DateSuspended, @DateResumed, @TransactionStatus, @SubTotal, " + "@AmountPaid, @CashPayment, @ChequePayment, " + "@CreditCardPayment, @CreditPayment, @DateClosed, @PaymentType, " + "@WaiterID, @WaiterName, @AgentID, @AgentName, @CreatedByID, @CreatedByName, " + "@AgentDepartmentName, @AgentPositionName, @ReleasedDate, @RewardPointsPayment, " + "@RewardConvertedPayment, @PaxNo, @CreditChargeAmount, @TransactionType, @isConsignment, " + "@DataSource, @CustomerGroupName, @CreatedOn, @ORNo, " + "@NetSales, @ChargeType, @ItemSold, @QuantitySold, " + "@ContactCheckInDate, @GrossSales)"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@TransactionNo", TransactionNo); cmd.Parameters.AddWithValue("@CustomerID", clsContactDetails.ContactID); cmd.Parameters.AddWithValue("@CustomerName", clsContactDetails.ContactName); cmd.Parameters.AddWithValue("@CashierID", 1); cmd.Parameters.AddWithValue("@CashierName", "Auto AdjUser"); cmd.Parameters.AddWithValue("@TerminalNo", strTerminalNo); cmd.Parameters.AddWithValue("@BranchID", intBranchID); cmd.Parameters.AddWithValue("@BranchCode", "Main"); cmd.Parameters.AddWithValue("@TransactionDate", TransactionDate); cmd.Parameters.AddWithValue("@DateSuspended", Constants.C_DATE_MIN_VALUE); cmd.Parameters.AddWithValue("@DateResumed", Constants.C_DATE_MIN_VALUE); cmd.Parameters.AddWithValue("@TransactionStatus", 1); cmd.Parameters.AddWithValue("@SubTotal", SubTotal); cmd.Parameters.AddWithValue("@AmountPaid", SubTotal); cmd.Parameters.AddWithValue("@CashPayment", 0); cmd.Parameters.AddWithValue("@ChequePayment", 0); cmd.Parameters.AddWithValue("@CreditCardPayment", SubTotal); cmd.Parameters.AddWithValue("@CreditPayment", 0); cmd.Parameters.AddWithValue("@DateClosed", DateClosed); cmd.Parameters.AddWithValue("@PaymentType", 2); cmd.Parameters.AddWithValue("@WaiterID", 2); cmd.Parameters.AddWithValue("@WaiterName", "RetailPlus Default"); cmd.Parameters.AddWithValue("@AgentID", 1); cmd.Parameters.AddWithValue("@AgentName", "RetailPlus Agent ™"); cmd.Parameters.AddWithValue("@CreatedByID", 1); cmd.Parameters.AddWithValue("@CreatedByName", "Auto AdjUser"); cmd.Parameters.AddWithValue("@AgentDepartmentName", "System Default Department"); cmd.Parameters.AddWithValue("@AgentPositionName", "System Default Position"); cmd.Parameters.AddWithValue("@ReleasedDate", Constants.C_DATE_MIN_VALUE); cmd.Parameters.AddWithValue("@RewardPointsPayment", 0); cmd.Parameters.AddWithValue("@RewardConvertedPayment", 0); cmd.Parameters.AddWithValue("@PaxNo", 1); cmd.Parameters.AddWithValue("@CreditChargeAmount", 0); cmd.Parameters.AddWithValue("@TransactionType", 0); cmd.Parameters.AddWithValue("@isConsignment", 0); cmd.Parameters.AddWithValue("@DataSource", "IC_NO_ITN"); cmd.Parameters.AddWithValue("@CustomerGroupName", clsContactDetails.ContactGroupName); cmd.Parameters.AddWithValue("@CreatedOn", CreatedOn); cmd.Parameters.AddWithValue("@ORNo", TransactionNo); cmd.Parameters.AddWithValue("@NetSales", SubTotal); cmd.Parameters.AddWithValue("@ChargeType", 0); cmd.Parameters.AddWithValue("@ItemSold", 1); cmd.Parameters.AddWithValue("@QuantitySold", 1); cmd.Parameters.AddWithValue("@ContactCheckInDate", CreatedOn); cmd.Parameters.AddWithValue("@GrossSales", SubTotal); cmd.CommandText = SQL; base.ExecuteNonQuery(cmd); //#endregion clsSalesTransactionDetails = clsSalesTransactions.Details(TransactionNo, strTerminalNo, intBranchID); //#region Insert to tblTransactionItems SQL = "SELECT * FROM tblTransactionItems WHERE TransactionID=@TransactionID LIMIT 1;"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@TransactionID", clsSalesTransactionDetails.TransactionID); cmd.CommandText = SQL; dtT = new System.Data.DataTable("tblTemp"); base.MySqlDataAdapterFill(cmd, dtT); if (dtT.Rows.Count == 0) { SQL = "INSERT INTO tblTransactionItems(TransactionID, ProductID, ProductCode, BarCode, Description, ProductUnitID, ProductUnitCode, " + "Quantity, Price, SellingPrice, Discount, ItemDiscount, ItemDiscountType, Amount, " + "ProductGroup, ProductSubGroup, TransactionItemStatus, DiscountCode, DiscountRemarks, ProductPackageID, " + "PackageQuantity, DataSource, CreatedOn, GrossSales)VALUES("; SQL += "@TransactionID, @ProductID, @ProductCode, @BarCode, @Description, @ProductUnitID, @ProductUnitCode, " + "@Quantity, @Price, @SellingPrice, @Discount, @ItemDiscount, @ItemDiscountType, @Amount, " + "@ProductGroup, @ProductSubGroup, @TransactionItemStatus, @DiscountCode, @DiscountRemarks, @ProductPackageID, " + "@PackageQuantity, @DataSource, @CreatedOn, @GrossSales)"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@TransactionID", clsSalesTransactionDetails.TransactionID); cmd.Parameters.AddWithValue("@ProductID", clsProductDetails.ProductID); cmd.Parameters.AddWithValue("@ProductCode", clsProductDetails.ProductCode); cmd.Parameters.AddWithValue("@BarCode", clsProductDetails.BarCode); cmd.Parameters.AddWithValue("@Description", clsProductDetails.ProductDesc); cmd.Parameters.AddWithValue("@ProductUnitID", clsProductDetails.BaseUnitID); cmd.Parameters.AddWithValue("@ProductUnitCode", clsProductDetails.BaseUnitCode); cmd.Parameters.AddWithValue("@Quantity", 1); cmd.Parameters.AddWithValue("@Price", SubTotal); cmd.Parameters.AddWithValue("@SellingPrice", SubTotal); cmd.Parameters.AddWithValue("@Discount", 0); cmd.Parameters.AddWithValue("@ItemDiscount", 0); cmd.Parameters.AddWithValue("@ItemDiscountType", 0); cmd.Parameters.AddWithValue("@Amount", SubTotal); cmd.Parameters.AddWithValue("@ProductGroup", clsProductDetails.ProductGroupName); cmd.Parameters.AddWithValue("@ProductSubGroup", clsProductDetails.ProductSubGroupCode); cmd.Parameters.AddWithValue("@TransactionItemStatus", 0); cmd.Parameters.AddWithValue("@DiscountCode", ""); cmd.Parameters.AddWithValue("@DiscountRemarks", ""); cmd.Parameters.AddWithValue("@ProductPackageID", clsProductDetails.PackageID); cmd.Parameters.AddWithValue("@PackageQuantity", 1); cmd.Parameters.AddWithValue("@DataSource", "AutoAdjust"); cmd.Parameters.AddWithValue("@CreatedOn", CreatedOn); cmd.Parameters.AddWithValue("@GrossSales", SubTotal); cmd.CommandText = SQL; base.ExecuteNonQuery(cmd); } //#endregion //#region Insert to tblCreditCardPayment SQL = "SELECT * FROM tblCreditCardPayment WHERE BranchID=@BranchID AND TransactionNo=@TransactionNo AND TerminalNo=@TerminalNo LIMIT 1;"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@TransactionNo", clsSalesTransactionDetails.TransactionNo); cmd.Parameters.AddWithValue("@TerminalNo", clsSalesTransactionDetails.TerminalNo); cmd.Parameters.AddWithValue("@BranchID", clsSalesTransactionDetails.BranchID); cmd.CommandText = SQL; dtT = new System.Data.DataTable("tblTemp"); base.MySqlDataAdapterFill(cmd, dtT); if (dtT.Rows.Count == 0) { SQL = "INSERT INTO tblCreditCardPayment(TransactionID, Amount, CardTypeID, CardTypeCode, CardTypeName, CardNo, CardHolder, ValidityDates, " + "Remarks, TransactionNo, CreatedOn, TerminalNo, BranchID, AdditionalCharge, " + "ContactID, GuarantorID, TransactionDate, CashierName)VALUES("; SQL += "@TransactionID, @Amount, @CardTypeID, @CardTypeCode, @CardTypeName, @CardNo, @CardHolder, @ValidityDates, " + "@Remarks, @TransactionNo, @CreatedOn, @TerminalNo, @BranchID, @AdditionalCharge, " + "@ContactID, @GuarantorID, @TransactionDate, @CashierName)"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@TransactionID", clsSalesTransactionDetails.TransactionID); cmd.Parameters.AddWithValue("@Amount", SubTotal); cmd.Parameters.AddWithValue("@CardTypeID", clsContactDetails.CreditDetails.CardTypeDetails.CardTypeID); cmd.Parameters.AddWithValue("@CardTypeCode", clsContactDetails.CreditDetails.CardTypeDetails.CardTypeCode); cmd.Parameters.AddWithValue("@CardTypeName", clsContactDetails.CreditDetails.CardTypeDetails.CardTypeName); cmd.Parameters.AddWithValue("@CardNo", clsContactDetails.CreditDetails.CreditCardNo); cmd.Parameters.AddWithValue("@CardHolder", clsContactDetails.ContactName); cmd.Parameters.AddWithValue("@ValidityDates", clsContactDetails.CreditDetails.ExpiryDate.ToString("MMddyy")); cmd.Parameters.AddWithValue("@Remarks", ""); cmd.Parameters.AddWithValue("@TransactionNo", TransactionNo); cmd.Parameters.AddWithValue("@CreatedOn", CreatedOn); cmd.Parameters.AddWithValue("@TerminalNo", strTerminalNo); cmd.Parameters.AddWithValue("@BranchID", intBranchID); cmd.Parameters.AddWithValue("@AdditionalCharge", 0); cmd.Parameters.AddWithValue("@ContactID", clsContactDetails.ContactID); cmd.Parameters.AddWithValue("@GuarantorID", clsContactDetails.CreditDetails.GuarantorID); cmd.Parameters.AddWithValue("@TransactionDate", TransactionDate); cmd.Parameters.AddWithValue("@CashierName", clsSalesTransactionDetails.CashierName); cmd.CommandText = SQL; base.ExecuteNonQuery(cmd); } //#endregion //#region Insert to tblCreditPayment SQL = "SELECT * FROM tblCreditPayment WHERE BranchID=@BranchID AND TransactionNo=@TransactionNo AND TerminalNo = @TerminalNo LIMIT 1;"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@TransactionNo", clsSalesTransactionDetails.TransactionNo); cmd.Parameters.AddWithValue("@TerminalNo", clsSalesTransactionDetails.TerminalNo); cmd.Parameters.AddWithValue("@BranchID", clsSalesTransactionDetails.BranchID); cmd.CommandText = SQL; dtT = new System.Data.DataTable("tblTemp"); base.MySqlDataAdapterFill(cmd, dtT); if (dtT.Rows.Count == 0) { CreditCardPaymentDetails[] clsCreditCardPaymentDetails = clsCreditCardPayments.Details(1, strTerminalNo, clsSalesTransactionDetails.TransactionID); SQL = "INSERT INTO tblCreditPayment(TransactionID, Amount, ContactID, Remarks, AmountPaid, " + "TransactionNo, CreditDate, CreditBefore, CreditAfter, " + "CreditReason, TerminalNo, CashierName, AmountPaidCuttOffMonth, " + "CreatedOn, BranchID, CreditCardPaymentID, CreditCardTypeID, CreditReasonID)VALUES("; SQL += "@TransactionID, @Amount, @ContactID, @Remarks, @AmountPaid, " + "@TransactionNo, @CreditDate, @CreditBefore, @CreditAfter, " + "@CreditReason, @TerminalNo, @CashierName, @AmountPaidCuttOffMonth, " + "@CreatedOn, @BranchID, @CreditCardPaymentID, @CreditCardTypeID, @CreditReasonID)"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@TransactionID", clsSalesTransactionDetails.TransactionID); cmd.Parameters.AddWithValue("@Amount", SubTotal); cmd.Parameters.AddWithValue("@ContactID", clsContactDetails.ContactID); cmd.Parameters.AddWithValue("@Remarks", "Deliquent purchases before 2014May "); cmd.Parameters.AddWithValue("@AmountPaid", 0); cmd.Parameters.AddWithValue("@TransactionNo", TransactionNo); cmd.Parameters.AddWithValue("@CreditDate", CreatedOn); cmd.Parameters.AddWithValue("@CreditBefore", 0); cmd.Parameters.AddWithValue("@CreditAfter", SubTotal); cmd.Parameters.AddWithValue("@CreditReason", "Deliquent purchases before 2014May "); cmd.Parameters.AddWithValue("@TerminalNo", strTerminalNo); cmd.Parameters.AddWithValue("@CashierName", clsSalesTransactionDetails.CashierName); cmd.Parameters.AddWithValue("@AmountPaidCuttOffMonth", 0); cmd.Parameters.AddWithValue("@CreatedOn", CreatedOn); cmd.Parameters.AddWithValue("@BranchID", intBranchID); cmd.Parameters.AddWithValue("@CreditCardPaymentID", clsCreditCardPaymentDetails[0].CreditCardPaymentID); cmd.Parameters.AddWithValue("@CreditCardTypeID", clsContactDetails.CreditDetails.CardTypeDetails.CardTypeID); cmd.Parameters.AddWithValue("@CreditReasonID", 0); cmd.CommandText = SQL; base.ExecuteNonQuery(cmd); boRetValue = false; } } else { foreach (System.Data.DataRow drCredit in dtT.Rows) { decimal decTrxCredit = decimal.Parse(drCredit["Amount"].ToString()); Int64 CreditPaymentID = Int64.Parse(drCredit["CreditPaymentID"].ToString()); if (decCredit > decTrxCredit) { SQL = "UPDATE tblCreditPayment SET AmountPaid=(AmountPaid - @AmountPaid) WHERE ContactID=@ContactID AND CreditPaymentID=@CreditPaymentID;"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@AmountPaid", decTrxCredit); cmd.Parameters.AddWithValue("@ContactID", intContactID); cmd.Parameters.AddWithValue("@CreditPaymentID", CreditPaymentID); cmd.CommandText = SQL; base.ExecuteNonQuery(cmd); decCredit -= decTrxCredit; } else { SQL = "UPDATE tblCreditPayment SET AmountPaid= (AmountPaid - @AmountPaid) WHERE ContactID=@ContactID AND CreditPaymentID=@CreditPaymentID;"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@AmountPaid", decCredit); cmd.Parameters.AddWithValue("@ContactID", intContactID); cmd.Parameters.AddWithValue("@CreditPaymentID", CreditPaymentID); cmd.CommandText = SQL; base.ExecuteNonQuery(cmd); boRetValue = true; decCredit = 0; break; } } // meaning there is still credit but no purchases if (decCredit > 0) { dtTRowsCount = 0; goto ReInsert; //#endregion } } } catch (Exception ex) { throw base.ThrowException(ex); } return boRetValue; }
private void LoadItemData() { try { System.Data.DataTable dt = new System.Data.DataTable("tblproducts"); dt.Columns.Add("ProductID"); dt.Columns.Add("ProductCode"); dt.Columns.Add("BarCode"); dt.Columns.Add("ProductDesc"); dt.Columns.Add("ProductGroup"); dt.Columns.Add("ProductSubGroup"); dt.Columns.Add("ProductUnitID"); dt.Columns.Add("ProductUnitCode"); dt.Columns.Add("Quantity"); dt.Columns.Add("Price"); dt.Columns.Add("SpecialDiscount"); dt.Columns.Add("VAT"); dt.Columns.Add("EVAT"); dt.Columns.Add("LocalTax"); Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(); Data.SalesTransactionDetails det = clsSalesTransactions.Details(mstTransactionNo, mstTerminalNo, Constants.TerminalBranchID); clsSalesTransactions.CommitAndDispose(); Data.SalesTransactionItems clsItems = new Data.SalesTransactionItems(); Data.SalesTransactionItemDetails[] TransactionItems = clsItems.Details(det.TransactionID, det.TransactionDate); clsItems.CommitAndDispose(); foreach (Data.SalesTransactionItemDetails item in TransactionItems) { System.Data.DataRow dr = dt.NewRow(); dr["ProductID"] = item.ProductID; dr["ProductCode"] = item.ProductCode; dr["BarCode"] = item.BarCode; dr["ProductDesc"] = item.Description; dr["ProductGroup"] = item.ProductGroup; dr["ProductSubGroup"] = item.ProductSubGroup; dr["ProductUnitID"] = item.ProductUnitID; dr["ProductUnitCode"] = item.ProductUnitCode; dr["Quantity"] = item.Quantity; dr["Price"] = item.Price; dr["SpecialDiscount"] = item.Discount; dr["VAT"] = item.VAT; dr["EVAT"] = item.EVAT; dr["LocalTax"] = item.LocalTax; dt.Rows.Add(dr); } this.dgStyle.MappingName = dt.TableName; dgItems.DataSource = dt; if (dgItems.VisibleRowCount > 0) { dgItems.Select(0); } dgItems.CurrentRowIndex = 0; } catch (Exception ex) { MessageBox.Show(ex.Message, "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private 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 LoadContactData(System.Data.SqlClient.SortOrder SequenceSortOrder) { try { tblLayout.Controls.Clear(); Int64 intSequenceNoStart = 0; if (SequenceSortOrder == System.Data.SqlClient.SortOrder.Descending) { try { intSequenceNoStart = long.Parse(cmdTableLeft.Tag.ToString()); } catch { } } else { try { intSequenceNoStart = long.Parse(cmdTableRight.Tag.ToString()); } catch { } } // Sep 24, 2014 put an override if cmdSubGroupLeft.Tag = 0 // always do an asceding coz its already the end. if (intSequenceNoStart < Constants.C_RESTOPLUS_MAX_TABLES) { intSequenceNoStart = 0; //reset to 0 if it's 1 } if (intSequenceNoStart == 0) { SequenceSortOrder = System.Data.SqlClient.SortOrder.Ascending; } ContactColumns clsContactColumns = new ContactColumns(); clsContactColumns.ContactCode = true; clsContactColumns.LastCheckInDate = true; ContactColumns clsSearchColumns = new ContactColumns(); Contacts clsContact = new Contacts(); System.Data.DataTable dtContact; if (ContactGroupCategory == Data.ContactGroupCategory.TABLES) { dtContact = clsContact.Tables(clsContactColumns, intSequenceNoStart, SequenceSortOrder, clsSearchColumns, string.Empty, SequenceSortOrder == System.Data.SqlClient.SortOrder.Descending ? Constants.C_RESTOPLUS_MAX_TABLES : Constants.C_RESTOPLUS_MAX_TABLES + 1, false, "SequenceNo", SequenceSortOrder); } else { dtContact = clsContact.Customers(clsContactColumns, intSequenceNoStart, SequenceSortOrder, clsSearchColumns, string.Empty, SequenceSortOrder == System.Data.SqlClient.SortOrder.Descending ? Constants.C_RESTOPLUS_MAX_TABLES : Constants.C_RESTOPLUS_MAX_TABLES + 1, false, "SequenceNo", SequenceSortOrder); } // re-order the products by sequence no if (dtContact.Rows.Count > 0) { System.Data.DataView dv = dtContact.DefaultView; dv.Sort = "SequenceNo"; dtContact = dv.ToTable(); } int iRow = 0; int iCol = 0; int iCtr = 1; Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(clsContact.Connection, clsContact.Transaction); Data.SalesTransactionDetails clsSalesTransactionDetails = new Data.SalesTransactionDetails(); Data.MergeTable clsMergeTable = new Data.MergeTable(clsContact.Connection, clsContact.Transaction); Data.MergeTableDetails clsMergeTableDetails = new Data.MergeTableDetails(); if (dtContact.Rows.Count == 0) { cmdTableLeft.Tag = "0".ToString(); // reset the sequenceno to 0 if no record cmdTableRight.Tag = "0".ToString(); // reset the sequenceno to 0 if no record } foreach (System.Data.DataRow dr in dtContact.Rows) { //if (iCol == 5) { iCol = 0; iRow++; } #region Sequence # Counter if (iCtr > Constants.C_RESTOPLUS_MAX_TABLES) { break; } if (iCtr == 1) { cmdTableLeft.Tag = dr[Data.ContactColumnNames.SequenceNo].ToString(); } if (iCtr >= 1 && dtContact.Rows.Count > Constants.C_RESTOPLUS_MAX_TABLES) { cmdTableRight.Tag = dr[Data.ContactColumnNames.SequenceNo].ToString(); } #endregion ProductButton cmdTable = new ProductButton(); cmdTable.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; cmdTable.BackColor = System.Drawing.Color.Red; cmdTable.Dock = System.Windows.Forms.DockStyle.Fill; cmdTable.FlatAppearance.BorderColor = System.Drawing.Color.Gold; cmdTable.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); cmdTable.ForeColor = System.Drawing.SystemColors.ControlText; cmdTable.GradientBottom = System.Drawing.Color.DarkRed; cmdTable.GradientTop = System.Drawing.Color.Red; cmdTable.ImageAlign = System.Drawing.ContentAlignment.TopCenter; cmdTable.Location = new System.Drawing.Point(3, 3); cmdTable.Size = new System.Drawing.Size(245, 90); cmdTable.TabIndex = 118; cmdTable.TextAlign = System.Drawing.ContentAlignment.BottomCenter; cmdTable.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText; cmdTable.UseVisualStyleBackColor = false; cmdTable.Name = "cmdTable" + iCtr.ToString(); cmdTable.Text = dr[Data.ContactColumnNames.ContactCode].ToString(); cmdTable.Tag = dr[Data.ContactColumnNames.ContactID].ToString(); cmdTable.Click += new System.EventHandler(cmdTable_Click); if (DateTime.Parse(dr[Data.ContactColumnNames.LastCheckInDate].ToString()) != Constants.C_DATE_MIN_VALUE) { TimeSpan iLapse = DateTime.Now - DateTime.Parse(dr[Data.ContactColumnNames.LastCheckInDate].ToString()); Label lblLastCheckInDate = new System.Windows.Forms.Label(); lblLastCheckInDate.AutoSize = true; lblLastCheckInDate.BackColor = System.Drawing.Color.Transparent; lblLastCheckInDate.Font = new System.Drawing.Font("Tahoma", 7.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); lblLastCheckInDate.ForeColor = System.Drawing.Color.Blue; lblLastCheckInDate.Location = new System.Drawing.Point(5, 5); lblLastCheckInDate.Name = "lblLastCheckInDate" + iCtr.ToString(); lblLastCheckInDate.TabIndex = 1; lblLastCheckInDate.Text = ""; lblLastCheckInDate.Text = "CheckIn: " + DateTime.Parse(dr[Data.ContactColumnNames.LastCheckInDate].ToString()).ToString("dd-MMM hh:mm tt") + " [" + iLapse.Hours.ToString("0#") + "hrs " + iLapse.Minutes.ToString("0#") + "mins]"; cmdTable.Controls.Add(lblLastCheckInDate); } string stTransactionNo = clsSalesTransactions.getSuspendedTransactionNo(long.Parse(dr[Data.ContactColumnNames.ContactID].ToString()), mclsTerminalDetails.TerminalNo, mclsTerminalDetails.BranchID); if (stTransactionNo != string.Empty) { clsSalesTransactionDetails = clsSalesTransactions.Details(stTransactionNo, mclsTerminalDetails.TerminalNo, mclsTerminalDetails.BranchID); cmdTable.Text = dr[Data.ContactColumnNames.ContactCode].ToString(); decimal decAmountDue = Convert.ToDecimal(clsSalesTransactionDetails.SubTotal + clsSalesTransactionDetails.Charge - clsSalesTransactionDetails.Discount); cmdTable.Text += Environment.NewLine + Environment.NewLine + "Amount Due:" + decAmountDue.ToString("#,###.#0"); Label lblNoOfPax = new System.Windows.Forms.Label(); lblNoOfPax.AutoSize = true; lblNoOfPax.BackColor = System.Drawing.Color.Transparent; lblNoOfPax.Font = new System.Drawing.Font("Tahoma", 7.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); lblNoOfPax.ForeColor = System.Drawing.Color.White; lblNoOfPax.Location = new System.Drawing.Point(210, 75); lblNoOfPax.Name = "lblNoOfPax" + iCtr.ToString(); lblNoOfPax.TabIndex = 1; lblNoOfPax.Text = ""; lblNoOfPax.Text = clsSalesTransactionDetails.PaxNo.ToString() + "Pax"; cmdTable.Controls.Add(lblNoOfPax); // Jan 31, 2015 : Lemu // Added disabling of Suspended Transactions. // Put the SuspendedOpen Status to in LoadTransaction if (mboShowAvailableTableOnly || clsSalesTransactionDetails.TransactionStatus == TransactionStatus.SuspendedOpen) { cmdTable.BackColor = System.Drawing.Color.DarkGray; cmdTable.GradientBottom = System.Drawing.Color.DarkGray; cmdTable.GradientTop = System.Drawing.Color.DarkGray; cmdTable.Enabled = false; if (clsSalesTransactionDetails.TransactionStatus == TransactionStatus.SuspendedOpen) { cmdTable.BackColor = System.Drawing.Color.Gray; cmdTable.GradientBottom = System.Drawing.Color.Gray; cmdTable.GradientTop = System.Drawing.Color.Gray; cmdTable.Enabled = true; cmdTable.Text += Environment.NewLine + "(open in other terminal)"; } } else { cmdTable.BackColor = System.Drawing.Color.DarkBlue; cmdTable.GradientBottom = System.Drawing.Color.DarkBlue; cmdTable.GradientTop = System.Drawing.Color.LightBlue; } } Label lblMerge = new System.Windows.Forms.Label(); lblMerge.AutoSize = true; lblMerge.BackColor = System.Drawing.Color.Transparent; lblMerge.Font = new System.Drawing.Font("Tahoma", 7.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); lblMerge.ForeColor = System.Drawing.Color.White; lblMerge.Location = new System.Drawing.Point(5, 75); lblMerge.Name = "lblMerge" + iCtr.ToString(); lblMerge.TabIndex = 1; lblMerge.Text = "Merged"; lblMerge.Visible = false; cmdTable.Controls.Add(lblMerge); clsMergeTableDetails = clsMergeTable.Details(dr[Data.ContactColumnNames.ContactCode].ToString()); if (clsMergeTableDetails.ChildTableCode == dr[Data.ContactColumnNames.ContactCode].ToString() && clsMergeTableDetails.MainTableCode != dr[Data.ContactColumnNames.ContactCode].ToString()) { cmdTable.BackColor = System.Drawing.Color.DarkGray; cmdTable.GradientBottom = System.Drawing.Color.DarkGray; cmdTable.GradientTop = System.Drawing.Color.LightGray; cmdTable.Enabled = false; cmdTable.Controls["lblMerge" + cmdTable.Name.Replace("cmdTable", "")].Visible = true; cmdTable.Controls["lblMerge" + cmdTable.Name.Replace("cmdTable", "")].Text = "Merged to " + clsMergeTableDetails.MainTableCode; } tblLayout.Controls.Add(cmdTable, iCol, iRow); iCol++; iCtr++; } clsContact.CommitAndDispose(); } catch (IndexOutOfRangeException) {} catch (Exception ex) { MessageBox.Show(ex.Message, "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void LoadItemData() { try { System.Data.DataTable dt = new System.Data.DataTable("tblproducts"); dt.Columns.Add("TransactionItemsID"); dt.Columns.Add("ProductID"); dt.Columns.Add("ProductCode"); dt.Columns.Add("BarCode"); dt.Columns.Add("ProductDesc"); dt.Columns.Add("ProductUnitID"); dt.Columns.Add("ProductUnitCode"); dt.Columns.Add("Quantity"); dt.Columns.Add("Price"); dt.Columns.Add("Discount"); dt.Columns.Add("ItemDiscount"); dt.Columns.Add("ItemDiscountType"); dt.Columns.Add("Amount"); dt.Columns.Add("VAT"); dt.Columns.Add("EVAT"); dt.Columns.Add("LocalTax"); dt.Columns.Add("VariationsMatrixID"); dt.Columns.Add("MatrixDescription"); dt.Columns.Add("ProductGroup"); dt.Columns.Add("ProductSubGroup"); dt.Columns.Add("TransactionItemStatus"); dt.Columns.Add("DiscountCode"); dt.Columns.Add("DiscountRemarks"); dt.Columns.Add("ProductPackageID"); dt.Columns.Add("MatrixPackageID"); dt.Columns.Add("PackageQuantity"); dt.Columns.Add("PromoQuantity"); dt.Columns.Add("PromoValue"); dt.Columns.Add("PromoInPercent"); dt.Columns.Add("PromoType"); dt.Columns.Add("PromoApplied"); dt.Columns.Add("PurchasePrice"); dt.Columns.Add("PurchaseAmount"); dt.Columns.Add("SupplierID"); dt.Columns.Add("SupplierCode"); dt.Columns.Add("SupplierName"); dt.Columns.Add("ItemRemarks"); Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(); Data.SalesTransactionDetails det = clsSalesTransactions.Details(mstTransactionNo, TransactionTerminalNo, TerminalDetails.BranchID); clsSalesTransactions.CommitAndDispose(); Data.SalesTransactionItems clsItems = new Data.SalesTransactionItems(); Data.SalesTransactionItemDetails[] TransactionItems = clsItems.Details(det.TransactionID, det.TransactionDate); clsItems.CommitAndDispose(); foreach (Data.SalesTransactionItemDetails item in TransactionItems) { if ((item.TransactionItemStatus == AceSoft.RetailPlus.TransactionItemStatus.Valid || item.TransactionItemStatus == AceSoft.RetailPlus.TransactionItemStatus.Demo) && item.RefReturnTransactionItemsID == 0) { System.Data.DataRow dr = dt.NewRow(); dr["TransactionItemsID"] = item.TransactionItemsID; dr["ProductID"] = item.ProductID; dr["ProductCode"] = item.ProductCode; dr["BarCode"] = item.BarCode; if (item.TransactionItemStatus == AceSoft.RetailPlus.TransactionItemStatus.Demo) dr["ProductDesc"] = "Demo-" + item.Description; else dr["ProductDesc"] = item.Description; dr["ProductUnitID"] = item.ProductUnitID; dr["ProductUnitCode"] = item.ProductUnitCode; dr["Quantity"] = item.Quantity; dr["Price"] = item.Price; dr["Discount"] = item.Discount; dr["ItemDiscount"] = item.ItemDiscount; dr["ItemDiscountType"] = item.ItemDiscountType; dr["Amount"] = item.Amount; dr["VAT"] = item.VAT; dr["EVAT"] = item.EVAT; dr["LocalTax"] = item.LocalTax; dr["VariationsMatrixID"] = item.VariationsMatrixID; dr["MatrixDescription"] = item.MatrixDescription; dr["ProductGroup"] = item.ProductGroup; dr["ProductSubGroup"] = item.ProductSubGroup; dr["TransactionItemStatus"] = item.TransactionItemStatus; dr["DiscountCode"] = item.DiscountCode; dr["DiscountRemarks"] = item.DiscountRemarks; dr["ProductPackageID"] = item.ProductPackageID; dr["MatrixPackageID"] = item.MatrixPackageID; dr["PackageQuantity"] = item.PackageQuantity; dr["PromoQuantity"] = item.PromoQuantity; dr["PromoValue"] = item.PromoValue; dr["PromoInPercent"] = item.PromoInPercent; dr["PromoType"] = item.PromoType; dr["PromoApplied"] = item.PromoApplied; dr["PurchasePrice"] = item.PurchasePrice; dr["PurchaseAmount"] = item.PurchaseAmount; dr["SupplierID"] = item.SupplierID; dr["SupplierCode"] = item.SupplierCode; dr["SupplierName"] = item.SupplierName; dr["ItemRemarks"] = item.ItemRemarks; dt.Rows.Add(dr); } } this.dgStyle.MappingName = dt.TableName; dgItems.DataSource = dt; if (dgItems.VisibleRowCount > 0) dgItems.Select(0); dgItems.CurrentRowIndex = 0; } catch (Exception ex) { MessageBox.Show(ex.Message, "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Load the transaction using the transaction no. scanned in the txtScan. /// </summary> private void LoadTransaction() { try { LoadOptions(); string strTransactionNo = txtScan.Text.Trim().PadLeft(14, '0'); Data.SalesTransactions clsTransactions = new Data.SalesTransactions(); mclsSalesTransactionDetails = clsTransactions.Details(strTransactionNo, mclsTerminalDetails.TerminalNo, mclsTerminalDetails.BranchID); if (mclsSalesTransactionDetails.TransactionNo != string.Empty && mclsSalesTransactionDetails.TransactionNo != null) { if (mclsSalesTransactionDetails.TransactionStatus == TransactionStatus.Closed) { Data.SalesTransactionItems clsItems = new Data.SalesTransactionItems(clsTransactions.Connection, clsTransactions.Transaction); mclsSalesTransactionDetails.TransactionItems = clsItems.Details(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.TransactionDate); clsTransactions.CommitAndDispose(); lblTransactionNo.Text = "Transaction #: " + mclsSalesTransactionDetails.TransactionNo; lblTransactionNo.Tag = mclsSalesTransactionDetails.TransactionID.ToString(); lblCommand.Tag = mclsSalesTransactionDetails.TransactionDate.ToString("MM/dd/yyyy hh:mm"); LoadResumedItems(mclsSalesTransactionDetails.TransactionItems); getTotal(); lblCommand.Text = "Scan item:"; txtScan.Text = string.Empty; txtScan.Focus(); } else { clsTransactions.CommitAndDispose(); txtScan.Text = string.Empty; txtScan.Focus(); MessageBox.Show("Sorry, you cannot release transaction with status: " + mclsSalesTransactionDetails.TransactionStatus.ToString("G") + ".", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } else { clsTransactions.CommitAndDispose(); } } catch { } }
private bool CreateDetails(int iRow) { try { bool boRetValue = false; mDetails = new Data.SalesTransactionDetails(); mDetails.TransactionID = Convert.ToInt64(dgItems[iRow, 0]); mDetails.TransactionNo = dgItems[iRow, 1].ToString(); Data.SalesTransactions clsTransactions = new Data.SalesTransactions(); mDetails = clsTransactions.Details(mDetails.TransactionNo, TerminalDetails.TerminalNo, TerminalDetails.BranchID); clsTransactions.Resume(mDetails.TransactionID); Data.SalesTransactionItems clsItems = new Data.SalesTransactionItems(clsTransactions.Connection, clsTransactions.Transaction); mDetails.TransactionItems = clsItems.Details(mDetails.TransactionID, mDetails.TransactionDate); clsTransactions.CommitAndDispose(); boRetValue = true; return boRetValue; } catch (Exception ex) { MessageBox.Show(ex.Message, "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } }
private void LoadContactData(System.Data.SqlClient.SortOrder SequenceSortOrder) { try { tblLayout.Controls.Clear(); Int64 intSequenceNoStart = 0; if (SequenceSortOrder == System.Data.SqlClient.SortOrder.Descending) try { intSequenceNoStart = long.Parse(cmdTableLeft.Tag.ToString()); } catch { } else try { intSequenceNoStart = long.Parse(cmdTableRight.Tag.ToString()); } catch { } // Sep 24, 2014 put an override if cmdSubGroupLeft.Tag = 0 // always do an asceding coz its already the end. if (intSequenceNoStart < Constants.C_RESTOPLUS_MAX_TABLES) intSequenceNoStart = 0; //reset to 0 if it's 1 if (intSequenceNoStart == 0) SequenceSortOrder = System.Data.SqlClient.SortOrder.Ascending; ContactColumns clsContactColumns = new ContactColumns(); clsContactColumns.ContactCode = true; clsContactColumns.LastCheckInDate = true; ContactColumns clsSearchColumns = new ContactColumns(); Contacts clsContact = new Contacts(); System.Data.DataTable dtContact; if (ContactGroupCategory == Data.ContactGroupCategory.TABLES) dtContact = clsContact.Tables(clsContactColumns, intSequenceNoStart, SequenceSortOrder, clsSearchColumns, string.Empty, SequenceSortOrder == System.Data.SqlClient.SortOrder.Descending ? Constants.C_RESTOPLUS_MAX_TABLES : Constants.C_RESTOPLUS_MAX_TABLES + 1, false, "SequenceNo", SequenceSortOrder); else dtContact = clsContact.Customers(clsContactColumns, intSequenceNoStart, SequenceSortOrder, clsSearchColumns, string.Empty, SequenceSortOrder == System.Data.SqlClient.SortOrder.Descending ? Constants.C_RESTOPLUS_MAX_TABLES : Constants.C_RESTOPLUS_MAX_TABLES + 1, false, "SequenceNo", SequenceSortOrder); // re-order the products by sequence no if (dtContact.Rows.Count > 0) { System.Data.DataView dv = dtContact.DefaultView; dv.Sort = "ContactCode"; dtContact = dv.ToTable(); } int iRow = 0; int iCol = 0; int iCtr = 1; Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(clsContact.Connection, clsContact.Transaction); Data.SalesTransactionDetails clsSalesTransactionDetails = new Data.SalesTransactionDetails(); Data.MergeTable clsMergeTable = new Data.MergeTable(clsContact.Connection, clsContact.Transaction); Data.MergeTableDetails clsMergeTableDetails = new Data.MergeTableDetails(); if (dtContact.Rows.Count == 0) { cmdTableLeft.Tag = "0".ToString(); // reset the sequenceno to 0 if no record cmdTableRight.Tag = "0".ToString(); // reset the sequenceno to 0 if no record } foreach (System.Data.DataRow dr in dtContact.Rows) { //if (iCol == 5) { iCol = 0; iRow++; } if (iCtr > Constants.C_RESTOPLUS_MAX_TABLES) break; if (iCtr == 1) cmdTableLeft.Tag = dr[Data.ContactColumnNames.SequenceNo].ToString(); if (iCtr >= 1 && dtContact.Rows.Count > Constants.C_RESTOPLUS_MAX_TABLES) cmdTableRight.Tag = dr[Data.ContactColumnNames.SequenceNo].ToString(); ProductButton cmdTable = new ProductButton(); cmdTable.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; cmdTable.BackColor = System.Drawing.Color.Red; cmdTable.Dock = System.Windows.Forms.DockStyle.Fill; cmdTable.FlatAppearance.BorderColor = System.Drawing.Color.Gold; cmdTable.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); cmdTable.ForeColor = System.Drawing.SystemColors.ControlText; cmdTable.GradientBottom = System.Drawing.Color.DarkRed; cmdTable.GradientTop = System.Drawing.Color.Red; cmdTable.ImageAlign = System.Drawing.ContentAlignment.TopCenter; cmdTable.Location = new System.Drawing.Point(3, 3); cmdTable.Size = new System.Drawing.Size(245, 90); cmdTable.TabIndex = 118; cmdTable.TextAlign = System.Drawing.ContentAlignment.BottomCenter; cmdTable.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText; cmdTable.UseVisualStyleBackColor = false; cmdTable.Name = "cmdTable" + iCtr.ToString(); cmdTable.Text = dr[Data.ContactColumnNames.ContactCode].ToString(); cmdTable.Tag = dr[Data.ContactColumnNames.ContactID].ToString(); cmdTable.Click += new System.EventHandler(cmdTable_Click); if (DateTime.Parse(dr[Data.ContactColumnNames.LastCheckInDate].ToString()) != Constants.C_DATE_MIN_VALUE) { TimeSpan iLapse = DateTime.Now - DateTime.Parse(dr[Data.ContactColumnNames.LastCheckInDate].ToString()); Label lblLastCheckInDate = new System.Windows.Forms.Label(); lblLastCheckInDate.AutoSize = true; lblLastCheckInDate.BackColor = System.Drawing.Color.Transparent; lblLastCheckInDate.Font = new System.Drawing.Font("Tahoma", 7.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); lblLastCheckInDate.ForeColor = System.Drawing.Color.Blue; lblLastCheckInDate.Location = new System.Drawing.Point(5, 5); lblLastCheckInDate.Name = "lblLastCheckInDate" + iCtr.ToString(); lblLastCheckInDate.TabIndex = 1; lblLastCheckInDate.Text = "CheckIn: " + DateTime.Parse(dr[Data.ContactColumnNames.LastCheckInDate].ToString()).ToString("dd-MMM hh:mm tt") + " [" + iLapse.Hours.ToString("0#") + "hrs " + iLapse.Minutes.ToString("0#") + "mins]"; cmdTable.Controls.Add(lblLastCheckInDate); } string stTransactionNo = clsSalesTransactions.getSuspendedTransactionNo(long.Parse(dr[Data.ContactColumnNames.ContactID].ToString()), TerminalDetails.TerminalNo, TerminalDetails.BranchID); if (stTransactionNo != string.Empty) { clsSalesTransactionDetails = clsSalesTransactions.Details(stTransactionNo, TerminalDetails.TerminalNo, TerminalDetails.BranchID); cmdTable.Text = dr[Data.ContactColumnNames.ContactCode].ToString(); decimal decAmountDue = Convert.ToDecimal(clsSalesTransactionDetails.SubTotal + clsSalesTransactionDetails.Charge - clsSalesTransactionDetails.Discount); cmdTable.Text += Environment.NewLine + Environment.NewLine + "Amount Due:" + decAmountDue.ToString("#,###.#0"); Label lblNoOfPax = new System.Windows.Forms.Label(); lblNoOfPax.AutoSize = true; lblNoOfPax.BackColor = System.Drawing.Color.Transparent; lblNoOfPax.Font = new System.Drawing.Font("Tahoma", 7.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); lblNoOfPax.ForeColor = System.Drawing.Color.White; lblNoOfPax.Location = new System.Drawing.Point(210, 75); lblNoOfPax.Name = "lblNoOfPax" + iCtr.ToString(); lblNoOfPax.TabIndex = 1; lblNoOfPax.Text = clsSalesTransactionDetails.PaxNo.ToString() + "Pax"; cmdTable.Controls.Add(lblNoOfPax); if (mboShowAvailableTableOnly) { cmdTable.BackColor = System.Drawing.Color.DarkGray; cmdTable.GradientBottom = System.Drawing.Color.DarkGray; cmdTable.GradientTop = System.Drawing.Color.LightGray; cmdTable.Enabled = false; } else { cmdTable.BackColor = System.Drawing.Color.DarkBlue; cmdTable.GradientBottom = System.Drawing.Color.DarkBlue; cmdTable.GradientTop = System.Drawing.Color.LightBlue; } } Label lblMerge = new System.Windows.Forms.Label(); lblMerge.AutoSize = true; lblMerge.BackColor = System.Drawing.Color.Transparent; lblMerge.Font = new System.Drawing.Font("Tahoma", 7.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); lblMerge.ForeColor = System.Drawing.Color.White; lblMerge.Location = new System.Drawing.Point(5, 75); lblMerge.Name = "lblMerge" + iCtr.ToString(); lblMerge.TabIndex = 1; lblMerge.Text = "Merged"; lblMerge.Visible = false; cmdTable.Controls.Add(lblMerge); clsMergeTableDetails = clsMergeTable.Details(dr[Data.ContactColumnNames.ContactCode].ToString()); if (MainTableToMerge.ContactCode == dr[Data.ContactColumnNames.ContactCode].ToString()) { cmdTable.BackColor = System.Drawing.Color.LightGreen; cmdTable.GradientBottom = System.Drawing.Color.LightGreen; cmdTable.GradientTop = System.Drawing.Color.DarkGreen; cmdTable.Enabled = false; cmdTable.Controls["lblMerge" + cmdTable.Name.Replace("cmdTable", "")].Visible = true; cmdTable.Controls["lblMerge" + cmdTable.Name.Replace("cmdTable", "")].Text = "Merged to this table"; } else if (clsMergeTableDetails.MainTableCode == dr[Data.ContactColumnNames.ContactCode].ToString()) { cmdTable.BackColor = System.Drawing.Color.DarkGray; cmdTable.GradientBottom = System.Drawing.Color.DarkGray; cmdTable.GradientTop = System.Drawing.Color.LightGray; cmdTable.Enabled = false; cmdTable.Controls["lblMerge" + cmdTable.Name.Replace("cmdTable", "")].Visible = true; cmdTable.Controls["lblMerge" + cmdTable.Name.Replace("cmdTable", "")].Text = "Merged - Main Table"; } else if (clsMergeTableDetails.ChildTableCode == dr[Data.ContactColumnNames.ContactCode].ToString() && MainTableToMerge.ContactCode != clsMergeTableDetails.MainTableCode) { cmdTable.BackColor = System.Drawing.Color.DarkGray; cmdTable.GradientBottom = System.Drawing.Color.DarkGray; cmdTable.GradientTop = System.Drawing.Color.LightGray; cmdTable.Enabled = false; cmdTable.Controls["lblMerge" + cmdTable.Name.Replace("cmdTable", "")].Visible = true; cmdTable.Controls["lblMerge" + cmdTable.Name.Replace("cmdTable", "")].Text = "Merged to " + clsMergeTableDetails.MainTableCode; } else if (clsMergeTableDetails.ChildTableCode == dr[Data.ContactColumnNames.ContactCode].ToString() && MainTableToMerge.ContactCode == clsMergeTableDetails.MainTableCode) { Data.ContactDetails clsContactDetails = clsContact.Details(long.Parse(cmdTable.Tag.ToString())); mlstTables.Add(clsContactDetails); cmdTable.Controls["lblMerge" + cmdTable.Name.Replace("cmdTable", "")].Visible = true; cmdTable.Controls["lblMerge" + cmdTable.Name.Replace("cmdTable", "")].Text = "Merged to " + clsMergeTableDetails.MainTableCode; cmdTable.GradientTop = System.Drawing.Color.Orange; } tblLayout.Controls.Add(cmdTable, iCol, iRow); iCol++; iCtr++; } clsContact.CommitAndDispose(); } catch (IndexOutOfRangeException){} catch (Exception ex) { MessageBox.Show(ex.Message,"RetailPlus",MessageBoxButtons.OK,MessageBoxIcon.Error); } }
private void LoadItemData() { try { System.Data.DataTable dt = new System.Data.DataTable("tblproducts"); dt.Columns.Add("ProductID"); dt.Columns.Add("ProductCode"); dt.Columns.Add("BarCode"); dt.Columns.Add("ProductDesc"); dt.Columns.Add("ProductGroup"); dt.Columns.Add("ProductSubGroup"); dt.Columns.Add("ProductUnitID"); dt.Columns.Add("ProductUnitCode"); dt.Columns.Add("Quantity"); dt.Columns.Add("Price"); dt.Columns.Add("SpecialDiscount"); dt.Columns.Add("VAT"); dt.Columns.Add("EVAT"); dt.Columns.Add("LocalTax"); Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(); Data.SalesTransactionDetails det = clsSalesTransactions.Details(mstTransactionNo, mstTerminalNo, Constants.TerminalBranchID); clsSalesTransactions.CommitAndDispose(); Data.SalesTransactionItems clsItems = new Data.SalesTransactionItems(); Data.SalesTransactionItemDetails[] TransactionItems = clsItems.Details(det.TransactionID, det.TransactionDate); clsItems.CommitAndDispose(); foreach (Data.SalesTransactionItemDetails item in TransactionItems) { System.Data.DataRow dr = dt.NewRow(); dr["ProductID"] = item.ProductID; dr["ProductCode"] = item.ProductCode; dr["BarCode"] = item.BarCode; dr["ProductDesc"] = item.Description; dr["ProductGroup"] = item.ProductGroup; dr["ProductSubGroup"] = item.ProductSubGroup; dr["ProductUnitID"] = item.ProductUnitID; dr["ProductUnitCode"] = item.ProductUnitCode; dr["Quantity"] = item.Quantity; dr["Price"] = item.Price; dr["SpecialDiscount"] = item.Discount; dr["VAT"] = item.VAT; dr["EVAT"] = item.EVAT; dr["LocalTax"] = item.LocalTax; dt.Rows.Add(dr); } this.dgStyle.MappingName = dt.TableName; dgItems.DataSource = dt; if (dgItems.VisibleRowCount > 0) dgItems.Select(0); dgItems.CurrentRowIndex=0; } catch (Exception ex) { MessageBox.Show(ex.Message,"RetailPlus",MessageBoxButtons.OK,MessageBoxIcon.Error); } }