Exemple #1
0
        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);
            }
        }
Exemple #2
0
        /// <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 {  }
        }
Exemple #3
0
        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 { }
        }
Exemple #4
0
        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");
            }
        }
Exemple #7
0
        /// <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;
        }
Exemple #8
0
        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);
            }
        }
Exemple #9
0
        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;
		}
Exemple #10
0
        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);
            }
        }
Exemple #12
0
        /// <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;
            }
        }
Exemple #14
0
		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); 
			}
		}
Exemple #16
0
		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 { }
		}