コード例 #1
0
        protected void cmdContactSearch_Click(object sender, System.Web.UI.ImageClickEventArgs e)
        {
            try
            {
                Data.Contacts clsContact = new Data.Contacts();

                cboContact.DataTextField  = "ContactName";
                cboContact.DataValueField = "ContactID";
                cboContact.DataSource     = clsContact.Guarantors(new ContactColumns()
                {
                    ContactName = true
                }, CustomerCode_CreditCardNo: txtSearch.Text, SortField: "ContactName").DefaultView;
                cboContact.DataBind();
                clsContact.CommitAndDispose();

                if (cboContact.Items.Count == 0)
                {
                    cboContact.Items.Insert(0, new ListItem(Constants.PLEASE_SELECT, Constants.ZERO_STRING));
                }
                cboContact.SelectedIndex = 0;

                cboContact_SelectedIndexChanged(null, null);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #2
0
        private bool SaveRecord()
        {
            Data.ContactDetails clsDetails = new Data.ContactDetails();
            clsDetails = mContactDetails;

            clsDetails.ContactCode  = txtCustomerName.Text;
            clsDetails.ContactName  = txtCustomerName.Text;
            clsDetails.Address      = txtAddress.Text;
            clsDetails.BusinessName = txtBusinessName.Text;
            clsDetails.TelephoneNo  = txtTelNo.Text;

            // Jul 22, 2014
            clsDetails.Debit           = mContactDetails.Debit;
            clsDetails.Credit          = mContactDetails.Credit;
            clsDetails.IsCreditAllowed = chkIsCreditAllowed.Checked;
            clsDetails.CreditLimit     = decimal.Parse(txtCreditLimit.Text);
            clsDetails.Terms           = int.Parse(txtTerms.Text);
            clsDetails.ModeOfTerms     = (ModeOfTerms)Enum.Parse(typeof(ModeOfTerms), cboTerms.SelectedItem.ToString());

            Data.Contacts clsContact = new Data.Contacts();
            if (mContactDetails.ContactID == 0)
            {
                if (mstCaption == "Please enter customer name for deposit.")
                {
                    clsDetails.Remarks = Data.Contacts.DEFAULT_REMARKS_FOR_ADDED_FROM_DEPOSIT;
                }
                else if (mstCaption == "Quickly add new customer")
                {
                    clsDetails.Remarks = Data.Contacts.DEFAULT_REMARKS_FOR_QUICKLY_ADDED_FROM_FE;
                }
                else if (mContactDetails.ContactID == 0) // means not edit
                {
                    clsDetails.Remarks = Data.Contacts.DEFAULT_REMARKS_FOR_ADDED_FROM_CLIENT;
                }

                clsDetails.ContactGroupID = Constants.CONTACT_GROUP_CUSTOMER;
                clsDetails.PositionID     = Constants.C_RETAILPLUS_AGENT_POSITIONID;
                clsDetails.DepartmentID   = Constants.C_RETAILPLUS_AGENT_DEPARTMENTID;
                clsDetails.ContactID      = clsContact.Insert(clsDetails);
            }
            else
            {
                clsDetails.ContactCode      = mContactDetails.ContactCode;
                clsDetails.ContactGroupID   = mContactDetails.ContactGroupID;
                clsDetails.ContactGroupName = mContactDetails.ContactGroupName;
                clsContact.Update(clsDetails);
            }
            clsContact.CommitAndDispose();

            mContactDetails = clsDetails;

            return(true);
        }
コード例 #3
0
ファイル: _Update.ascx.cs プロジェクト: marioricci/erp-luma
		protected void cboSupplier_SelectedIndexChanged(object sender, System.EventArgs e)
		{
			Data.Contacts clsContact = new Data.Contacts();
			Data.ContactDetails clsDetails = clsContact.Details(Convert.ToInt64(cboSupplier.SelectedItem.Value));
			clsContact.CommitAndDispose();
			
			txtSupplierContact.Text = clsDetails.ContactName;
			txtSupplierTelephoneNo.Text = clsDetails.TelephoneNo;
			lblTerms.Text = clsDetails.Terms.ToString("##0");
            lblModeOfterms.Text = clsDetails.ModeOfTerms.ToString("G");
			txtSupplierAddress.Text = clsDetails.Address;
		}
コード例 #4
0
        protected void cboSupplier_SelectedIndexChanged(object sender, System.EventArgs e)
        {
            Data.Contacts       clsContact = new Data.Contacts();
            Data.ContactDetails clsDetails = clsContact.Details(Convert.ToInt64(cboSupplier.SelectedItem.Value));
            clsContact.CommitAndDispose();

            txtSupplierContact.Text     = clsDetails.ContactName;
            txtSupplierTelephoneNo.Text = clsDetails.TelephoneNo;
            lblTerms.Text           = clsDetails.Terms.ToString("##0");
            lblModeOfterms.Text     = clsDetails.ModeOfTerms.ToString("G");
            txtSupplierAddress.Text = clsDetails.Address;
        }
コード例 #5
0
        private void LoadOptions()
        {
            Data.Contacts clsContact = new Data.Contacts();

            cboContact.DataTextField  = "ContactName";
            cboContact.DataValueField = "ContactID";
            cboContact.DataSource     = clsContact.Guarantors(new ContactColumns()
            {
                ContactName = true
            }, SortField: "ContactName").DefaultView;
            cboContact.DataBind();
            cboContact.Items.Insert(0, new ListItem(Constants.PLEASE_SELECT, Constants.ZERO_STRING));
            cboContact.SelectedIndex = 0;

            Data.CardType clsCardType = new CardType(clsContact.Connection, clsContact.Transaction);
            cboCardType.DataTextField  = "CardTypeCode";
            cboCardType.DataValueField = "CardTypeID";
            cboCardType.DataSource     = clsCardType.ListAsDataTable(new CardTypeDetails()
            {
                CreditCardType = CreditCardTypes.Internal, CheckGuarantor = true, WithGuarantor = true
            }).DefaultView;
            cboCardType.DataBind();
            cboCardType.Items.Insert(0, new ListItem(Constants.PLEASE_SELECT, Constants.ZERO_STRING));
            cboCardType.SelectedIndex = 0;

            clsContact.CommitAndDispose();

            Int64 iGuarantorID = 0;

            if (Request.QueryString["id"] != null)
            {
                try { iGuarantorID = Int64.TryParse(Common.Decrypt(Request.QueryString["id"].ToString(), Session.SessionID), out iGuarantorID) ? iGuarantorID : 0; }
                catch { }
            }

            cboContact.ToolTip = iGuarantorID.ToString();
            if (iGuarantorID == 0)
            {
                divGuarantorInfo.Visible = false;
            }
            else
            {
                cboContact.SelectedIndex = cboContact.Items.IndexOf(cboContact.Items.FindByValue(iGuarantorID.ToString()));
                cboContact_SelectedIndexChanged(null, null);
            }
        }
コード例 #6
0
        private void LoadOptions()
        {
            Data.Contacts clsContact = new Data.Contacts();

            cboContact.DataTextField  = "ContactName";
            cboContact.DataValueField = "ContactID";
            cboContact.DataSource     = clsContact.CustomersWithCredits(new ContactColumns()
            {
                ContactName = true
            }, CheckCustomersGuarantor: true, WithGuarantorOnly: true, SortField: "ContactName").DefaultView;
            cboContact.DataBind();
            cboContact.Items.Insert(0, new ListItem(Constants.PLEASE_SELECT, Constants.ZERO_STRING));
            cboContact.SelectedIndex = 0;

            cboGuarantor.DataTextField  = "ContactName";
            cboGuarantor.DataValueField = "ContactID";
            cboGuarantor.DataSource     = clsContact.Guarantors(new ContactColumns()
            {
                ContactName = true
            }, SortField: "ContactName").DefaultView;
            cboGuarantor.DataBind();
            cboGuarantor.Items.Insert(0, new ListItem(Constants.PLEASE_SELECT, Constants.ZERO_STRING));
            cboGuarantor.SelectedIndex = 0;

            clsContact.CommitAndDispose();

            Int64 iContactID = 0;

            if (Request.QueryString["id"] != null)
            {
                try { iContactID = Int64.TryParse(Common.Decrypt(Request.QueryString["id"].ToString(), Session.SessionID), out iContactID) ? iContactID : 0; }
                catch { }
            }

            cboContact.ToolTip = iContactID.ToString();
            if (iContactID == 0)
            {
                divContactInfo.Visible = false;
            }
            else
            {
                cboContact.SelectedIndex = cboContact.Items.IndexOf(cboContact.Items.FindByValue(iContactID.ToString()));
                cboContact_SelectedIndexChanged(null, null);
            }
        }
コード例 #7
0
        private void LoadContact()
        {
            Data.ContactColumns clsContactColumns = new Data.ContactColumns();
            clsContactColumns.ContactName = true;

            Data.ContactColumns clsSearchColumns = new Data.ContactColumns();
            clsContactColumns.ContactName = true;
            clsContactColumns.ContactCode = true;

            Data.Contacts clsContact = new Data.Contacts();
            cboSupplier.DataTextField = Data.ContactColumnNames.ContactName;
            cboSupplier.DataValueField = Data.ContactColumnNames.ContactID;
            cboSupplier.DataSource = clsContact.Suppliers(clsContactColumns, 0, System.Data.SqlClient.SortOrder.Ascending, clsSearchColumns, txtSupplier.Text, 100, false, Data.ContactColumnNames.ContactName, System.Data.SqlClient.SortOrder.Ascending).DefaultView;
            cboSupplier.DataBind();
            clsContact.CommitAndDispose();

            cboSupplier.Items.Add(new ListItem("All Suppliers", "0"));
            cboSupplier.SelectedIndex = cboSupplier.Items.Count - 1;
        }
コード例 #8
0
        private void LoadContact()
        {
            Data.ContactColumns clsContactColumns = new Data.ContactColumns();
            clsContactColumns.ContactName = true;

            Data.ContactColumns clsSearchColumns = new Data.ContactColumns();
            clsContactColumns.ContactName = true;
            clsContactColumns.ContactCode = true;

            Data.Contacts clsContact = new Data.Contacts();
            cboSupplier.DataTextField  = Data.ContactColumnNames.ContactName;
            cboSupplier.DataValueField = Data.ContactColumnNames.ContactID;
            cboSupplier.DataSource     = clsContact.Suppliers(clsContactColumns, 0, System.Data.SqlClient.SortOrder.Ascending, clsSearchColumns, txtSupplier.Text, 100, false, Data.ContactColumnNames.ContactName, System.Data.SqlClient.SortOrder.Ascending).DefaultView;
            cboSupplier.DataBind();
            clsContact.CommitAndDispose();

            cboSupplier.Items.Add(new ListItem("All Suppliers", "0"));
            cboSupplier.SelectedIndex = cboSupplier.Items.Count - 1;
        }
コード例 #9
0
        protected void cboPayee_SelectedIndexChanged(object sender, System.EventArgs e)
        {
            long payeeid = Convert.ToInt64(cboPayee.SelectedItem.Value);

            Data.Contacts       clsContact = new Data.Contacts();
            Data.ContactDetails clsDetails = clsContact.Details(payeeid);
            clsContact.CommitAndDispose();

            txtPayeeName.Text = clsDetails.ContactName;

            DataClass clsDataClass = new DataClass();

            PO clsPO = new PO();

            lstPO.DataSource = clsDataClass.DataReaderToDataTable(clsPO.ListForPayment(payeeid, "POID", SortOption.Ascending)).DefaultView;
            lstPO.DataBind();
            clsPO.CommitAndDispose();

            Label lblAmount;
            Label lblPaidAmount;
            Label lblUnpaidAmount;

            decimal decAmount       = 0;
            decimal decPaidAmount   = 0;
            decimal decUnpaidAmount = 0;

            foreach (DataListItem item in lstPO.Items)
            {
                lblAmount       = (Label)item.FindControl("lblAmount");
                lblPaidAmount   = (Label)item.FindControl("lblPaidAmount");
                lblUnpaidAmount = (Label)item.FindControl("lblUnpaidAmount");

                decAmount       += Convert.ToDecimal(lblAmount.Text);
                decPaidAmount   += Convert.ToDecimal(lblPaidAmount.Text);
                decUnpaidAmount += Convert.ToDecimal(lblUnpaidAmount.Text);
            }

            lblPOTotalAmount.Text       = decAmount.ToString("#,##0.#0");
            lblPOTotalPaidAmount.Text   = decPaidAmount.ToString("#,##0.#0");
            lblPOTotalUnpaidAmount.Text = decUnpaidAmount.ToString("#,##0.#0");
        }
コード例 #10
0
        protected void cmdContactSearch_Click(object sender, System.Web.UI.ImageClickEventArgs e)
        {
            try
            {
                Data.Contacts clsContact = new Data.Contacts();

                cboContact.DataTextField = "ContactName";
                cboContact.DataValueField = "ContactID";
                cboContact.DataSource = clsContact.CustomersWithCredits(new ContactColumns() { ContactName = true }, CustomerCode_CreditCardNo: txtSearch.Text, CheckCustomersGuarantor: true, WithGuarantorOnly: true, SortField: "ContactName").DefaultView;
                cboContact.DataBind();
                clsContact.CommitAndDispose();

                if (cboContact.Items.Count == 0) cboContact.Items.Insert(0, new ListItem(Constants.PLEASE_SELECT, Constants.ZERO_STRING));
                cboContact.SelectedIndex = 0;

                cboContact_SelectedIndexChanged(null, null);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #11
0
        private bool SaveRecord()
        {
            Data.ContactDetails clsDetails = new Data.ContactDetails();
            clsDetails.ContactCode    = txtCustomerName.Text;
            clsDetails.ContactName    = txtCustomerName.Text;
            clsDetails.ContactGroupID = Constants.CONTACT_GROUP_CUSTOMER;
            clsDetails.ModeOfTerms    = 0;
            clsDetails.Terms          = 0;
            clsDetails.Address        = txtAddress.Text;
            clsDetails.BusinessName   = txtBusinessName.Text;
            clsDetails.TelephoneNo    = txtTelNo.Text;
            if (mstCaption == "Please enter customer name for deposit.")
            {
                clsDetails.Remarks = Data.Contacts.DEFAULT_REMARKS_FOR_ADDED_FROM_DEPOSIT;
            }
            else if (mstCaption == "Quickly add new customer")
            {
                clsDetails.Remarks = Data.Contacts.DEFAULT_REMARKS_FOR_QUICKLY_ADDED_FROM_FE;
            }
            else
            {
                clsDetails.Remarks = Data.Contacts.DEFAULT_REMARKS_FOR_ADDED_FROM_CLIENT;
            }
            clsDetails.Debit           = 0;
            clsDetails.Credit          = 0;
            clsDetails.IsCreditAllowed = true;
            clsDetails.CreditLimit     = 0;
            clsDetails.PositionID      = Constants.C_RETAILPLUS_AGENT_POSITIONID;
            clsDetails.DepartmentID    = Constants.C_RETAILPLUS_AGENT_DEPARTMENTID;

            Data.Contacts clsContact = new Data.Contacts();
            clsDetails.ContactID = clsContact.Insert(clsDetails);
            clsContact.CommitAndDispose();

            mContactDetails = clsDetails;

            return(true);
        }
コード例 #12
0
		private void LoadData()
		{	
			try
			{
                DateTime dteRetValue = DateTime.MinValue;
                Data.CreditPaymentCashDetails clsSearchKeys = new Data.CreditPaymentCashDetails();
                clsSearchKeys.BranchDetails = new Data.BranchDetails();
                clsSearchKeys.TerminalNo = "";
                clsSearchKeys.PaymentDateFrom = DateTime.TryParse(txtTrxStartDate.Text + " 00:00:00", out dteRetValue) ? dteRetValue : DateTime.Now.AddDays(-60);
                clsSearchKeys.PaymentDateTo = DateTime.TryParse(txtTrxEndDate.Text + " 23:59:59", out dteRetValue) ? dteRetValue : DateTime.Now;
                clsSearchKeys.CreditType = CreditType.Both;
                clsSearchKeys.CreditCardTypeID = 0;
                clsSearchKeys.ContactID = mclsCustomerDetails.ContactID;

                Data.Contacts clsContacts = new Data.Contacts();
                System.Data.DataTable dt = clsContacts.CreditPaymentCashAsDataTable(clsSearchKeys, "trx.CreatedOn");
				clsContacts.CommitAndDispose();

                System.Data.DataView dv = dt.DefaultView;
                dv.Sort = "TransactionDate";
                dt = dv.ToTable();

                dgvItems.MultiSelect = false;
                dgvItems.AutoGenerateColumns = true;
                dgvItems.AutoSize = false;
                dgvItems.DataSource = dt.TableName;
                dgvItems.DataSource = dt;

                foreach (DataGridViewTextBoxColumn dc in dgvItems.Columns)
                {
                    dc.Visible = false;
                }
                dgvItems.Columns["TransactionNo"].Visible = true;
                dgvItems.Columns["TransactionDate"].Visible = true;
                dgvItems.Columns["CreditReason"].Visible = true;
                dgvItems.Columns["Amount"].Visible = true;

                dgvItems.Columns["TransactionNo"].Width = 150;
                dgvItems.Columns["TransactionDate"].Width = 150;
                if (dt.Rows.Count < 16) dgvItems.Columns["CreditReason"].Width = 350; else dgvItems.Columns["CreditReason"].Width = 320;
                int iWidth = (dgvItems.Width - dgvItems.Columns["TransactionNo"].Width - dgvItems.Columns["TransactionDate"].Width - dgvItems.Columns["CreditReason"].Width) / 1;
                if (dt.Rows.Count >= 16) iWidth = iWidth - 20;
                dgvItems.Columns["Amount"].Width = iWidth;

                dgvItems.Columns["TransactionNo"].HeaderText = "Transaction No";
                dgvItems.Columns["TransactionDate"].HeaderText = "Transaction Date";
                dgvItems.Columns["CreditReason"].HeaderText = "Description";
                dgvItems.Columns["Amount"].HeaderText = "Amt. Paid";

                dgvItems.Columns["Amount"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
                dgvItems.Columns["Amount"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;

                dgvItems.Columns["TransactionDate"].DefaultCellStyle.Format = "yyyy-MM-dd hh:mm tt";
                dgvItems.Columns["Amount"].DefaultCellStyle.Format = "#,##0.#0";

                dgvItems.ReadOnly = true;
                dgvItems.Select();

                decimal decTotalPayable = 0;
                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    decimal decTemp = decimal.TryParse(dr["Amount"].ToString(), out decTemp) ? decTemp : 0;
                    decTotalPayable += decTemp;
                }
                lblTotal.Text = decTotalPayable.ToString("#,##0.#0");

                grpBox1.Text = "Payments from: " + clsSearchKeys.PaymentDateFrom.ToString("MMM dd, yyyy") + " to " + clsSearchKeys.PaymentDateTo.ToString("MMM dd, yyyy");

                txtTrxStartDate.SelectAll();
                txtTrxStartDate.Select();
			}
			catch (Exception ex)
			{
				MessageBox.Show(ex.Message,"RetailPlus",MessageBoxButtons.OK,MessageBoxIcon.Error); 
			}
		}
コード例 #13
0
ファイル: MainWnd.cs プロジェクト: marioricci/erp-luma
		private void RewardCardReactivate()
		{
			if (mboIsInTransaction)
			{
				MessageBox.Show("Sorry you cannot reactivate a Reward Card while there is an ongoing transaction. Please finish the transaction first.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
				return;
			}

			DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.RewardCardChange, "LOST Reward Card Reactivation");

            if (loginresult == DialogResult.OK)
			{
				try
				{
					DialogResult result; Data.ContactDetails clsContactDetails;
					ContactSelectWnd clsContactWnd = new ContactSelectWnd();
                    clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK;
                    clsContactWnd.SysConfigDetails = mclsSysConfigDetails;
                    clsContactWnd.TerminalDetails = mclsTerminalDetails;
					clsContactWnd.ContactGroupCategory = AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER;
                    clsContactWnd.Header = "Please select customer for reward card re-activation.";
					clsContactWnd.ShowDialog(this);
					clsContactDetails = clsContactWnd.Details;
					result = clsContactWnd.Result;
					clsContactWnd.Close();
					clsContactWnd.Dispose();

					if (result != DialogResult.OK)
					{ return; }

					if (clsContactDetails.ContactID == Constants.ZERO || clsContactDetails.ContactID == Constants.C_RETAILPLUS_CUSTOMERID)
					{ return; }

					clsEvent.AddEvent("[" + lblCashier.Text + "] Reactivating lost reward card...");

					Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction);
                    mConnection = clsContact.Connection; mTransaction = clsContact.Transaction;

					clsContactDetails = clsContact.Details(clsContactDetails.ContactID);
					clsContact.CommitAndDispose();

					if (clsContactDetails.RewardDetails.RewardCardNo == string.Empty || clsContactDetails.RewardDetails.RewardCardNo == null)
					{
						clsEvent.AddEventLn("Cancelled!");
						clsEvent.AddEventLn(clsContactDetails.ContactName + " has no valid Reward Card yet. ");
						MessageBox.Show(clsContactDetails.ContactName + " has no valid Reward Card yet. Please select another customer.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
						return;
					}
					clsEvent.AddEvent("[" + lblCashier.Text + "] Reactivating reward card #: " + clsContactDetails.RewardDetails.RewardCardNo + " of " + clsContactDetails.ContactName + ".");

					string strOldRewardCardNo = clsContactDetails.RewardDetails.RewardCardNo;
					ContactRewardWnd clsContactRewardWnd = new ContactRewardWnd();
                    clsContactRewardWnd.TerminalDetails = mclsTerminalDetails;
					clsContactRewardWnd.Caption = "OVERRIDE: Reward Card Reactivation / Change Expiry";
					clsContactRewardWnd.ContactDetails = clsContactDetails;
					clsContactRewardWnd.RewardCardStatus = RewardCardStatus.Reactivated_Lost;
					clsContactRewardWnd.ShowDialog(this);
					result = clsContactRewardWnd.Result;
					clsContactDetails = clsContactRewardWnd.ContactDetails;
					clsContactRewardWnd.Close();
					clsContactRewardWnd.Dispose();

					if (result == DialogResult.OK)
					{
						MessageBox.Show("Reward Card No: " + clsContactDetails.RewardDetails.RewardCardNo + " has been reactivated / changed expiry date / changed card no...", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);

						clsEvent.AddEventLn("Done!", true);
						clsEvent.AddEventLn("Reward Card No: " + clsContactDetails.RewardDetails.RewardCardNo + " has been reactivated / changed expiry date / changed card no...", true);
						this.LoadOptions();
					}
					else { clsEvent.AddEventLn("Cancelled!"); }
				}
				catch (Exception ex)
				{ 
                    InsertErrorLogToFile(ex, "ERROR!!! Activating reward card."); 
                }
				Cursor.Current = Cursors.Default;
			}
		}
コード例 #14
0
        private void SetDataSource(ReportDocument Report)
        {
            DateTime      dteRetValue = Constants.C_DATE_MIN_VALUE;
            ReportDataset rptds       = new ReportDataset();

            Data.Contacts         clsContacts;
            System.Data.DataTable dt;

            switch (cboReportType.SelectedItem.Value)
            {
            case ReportTypes.CREDITS_Purchases:
                #region purchases

                CreditPaymentDetails clsCreditPaymentDetails = new CreditPaymentDetails();
                clsCreditPaymentDetails.BranchDetails = new BranchDetails()
                {
                    BranchID = Int32.Parse(cboBranch.SelectedItem.Value)
                };
                clsCreditPaymentDetails.TerminalNo           = txtTerminalNo.Text.Trim();
                clsCreditPaymentDetails.PurchaseDateFrom     = DateTime.TryParse(txtTrxStartDate.Text + " 00:00:00", out dteRetValue) ? dteRetValue : Constants.C_DATE_MIN_VALUE;
                clsCreditPaymentDetails.PurchaseDateTo       = DateTime.TryParse(txtTrxEndDate.Text + " 23:59:59", out dteRetValue) ? dteRetValue : Constants.C_DATE_MIN_VALUE;
                clsCreditPaymentDetails.CreditType           = CreditType.Individual;
                clsCreditPaymentDetails.CreditCardTypeID     = Int16.Parse(cboCreditType.SelectedItem.Value);
                clsCreditPaymentDetails.CreditorLastnameFrom = txtLastNameFrom.Text;
                clsCreditPaymentDetails.CreditorLastnameTo   = txtLastNameTo.Text;

                clsContacts = new Data.Contacts();
                dt          = clsContacts.CreditPurchasesAsDataTable(clsCreditPaymentDetails, "cci.CreditCardNo");
                clsContacts.CommitAndDispose();

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    DataRow drNew = rptds.ContactCreditPurchases.NewRow();

                    foreach (DataColumn dc in rptds.ContactCreditPurchases.Columns)
                    {
                        drNew[dc] = "" + dr[dc.ColumnName];
                    }

                    rptds.ContactCreditPurchases.Rows.Add(drNew);
                }
                #endregion
                break;

            case ReportTypes.CREDITS_Payments:
                #region payments

                CreditPaymentCashDetails clsCreditPaymentCashDetails = new CreditPaymentCashDetails();
                clsCreditPaymentCashDetails.BranchDetails = new BranchDetails()
                {
                    BranchID = Int32.Parse(cboBranch.SelectedItem.Value)
                };
                clsCreditPaymentCashDetails.TerminalNo           = txtTerminalNo.Text.Trim();
                clsCreditPaymentCashDetails.PaymentDateFrom      = DateTime.TryParse(txtTrxStartDate.Text + " 00:00:00", out dteRetValue) ? dteRetValue : Constants.C_DATE_MIN_VALUE;
                clsCreditPaymentCashDetails.PaymentDateTo        = DateTime.TryParse(txtTrxEndDate.Text + " 23:59:59", out dteRetValue) ? dteRetValue : Constants.C_DATE_MIN_VALUE;
                clsCreditPaymentCashDetails.CreditType           = CreditType.Individual;
                clsCreditPaymentCashDetails.CreditCardTypeID     = Int16.Parse(cboCreditType.SelectedItem.Value);
                clsCreditPaymentCashDetails.CreditorLastnameFrom = txtLastNameFrom.Text;
                clsCreditPaymentCashDetails.CreditorLastnameTo   = txtLastNameTo.Text;

                clsContacts = new Data.Contacts();
                dt          = clsContacts.CreditPaymentCashDetailedAsDataTable(clsCreditPaymentCashDetails, "cci.CreditCardNo");
                clsContacts.CommitAndDispose();

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    DataRow drNew = rptds.ContactCreditPaymentCash.NewRow();

                    foreach (DataColumn dc in rptds.ContactCreditPaymentCash.Columns)
                    {
                        drNew[dc] = "" + dr[dc.ColumnName];
                    }

                    rptds.ContactCreditPaymentCash.Rows.Add(drNew);
                }
                #endregion
                break;

            case ReportTypes.CREDITS_CreditorsLedgerSummary:
                #region ledger summary
                Data.Billing clsBilling = new Data.Billing();
                dt = clsBilling.ListAsDataTable(GuarantorID: 0, CreditCardTypeID: Int16.Parse(cboCreditType.SelectedItem.Value), CreditType: CreditType.Individual, BillingDate: DateTime.Parse(cboBillingDate.SelectedItem.Value), CheckIsBillPrinted: false, SortField: "GUA.ContactName, CUS.ContactName", SortOrder: System.Data.SqlClient.SortOrder.Descending);
                clsBilling.CommitAndDispose();

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    System.Data.DataRow drNew = rptds.CreditBillHeader.NewRow();

                    foreach (System.Data.DataColumn dc in rptds.CreditBillHeader.Columns)
                    {
                        drNew[dc] = dr[dc.ColumnName];
                    }

                    rptds.CreditBillHeader.Rows.Add(drNew);
                }
                #endregion
                break;

            case ReportTypes.CustomerCreditSummarizedStatistics:
                #region  CustomerCreditSummarizedStatistics

                Data.ContactCreditCardInfos clsContactCreditCardInfos = new Data.ContactCreditCardInfos();
                dt = clsContactCreditCardInfos.IHCreditCardSummarizedStatistics(false);
                clsContactCreditCardInfos.CommitAndDispose();

                foreach (DataRow dr in dt.Rows)
                {
                    DataRow drNew = rptds.CCISummary.NewRow();

                    foreach (DataColumn dc in rptds.CCISummary.Columns)
                    {
                        drNew[dc] = dr[dc.ColumnName];
                    }

                    rptds.CCISummary.Rows.Add(drNew);
                }

                break;
                #endregion

            default:
                break;
            }


            Report.SetDataSource(rptds);
            SetParameters(Report);
        }
コード例 #15
0
        private bool SaveRecord()
        {
            if (MessageBox.Show("Please validate the customer information details before proceeding. Are you sure you want to continue?", "RetailPlus ™", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.No)
            {
                return false;
            }
            else
            {
                Data.ContactDetails clsDetails = new Data.ContactDetails();
                clsDetails = mContactDetails;

                clsDetails.ContactCode = txtContactCode.Text;
                clsDetails.ContactName = txtLastName.Text + ", " + txtFirstName.Text + (string.IsNullOrEmpty(txtMiddleName.Text) ? "" : "," + txtMiddleName.Text);
                clsDetails.ContactGroupID = Convert.ToInt32(Constants.CONTACT_GROUP_CUSTOMER);
                clsDetails.ModeOfTerms = (ModeOfTerms)Enum.Parse(typeof(ModeOfTerms), cboTerms.SelectedItem.ToString());
                clsDetails.Terms = int.Parse(txtTerms.Text);
                clsDetails.TINNo = txtTelephoneNo.Tag == null ? "" : txtTelephoneNo.Tag.ToString();
                clsDetails.LTONo = txtRemarks.Tag == null ? "" : txtRemarks.Tag.ToString();
                clsDetails.Address = txtAddress.Text;
                clsDetails.BusinessName = "";
                clsDetails.TelephoneNo = txtTelephoneNo.Text;
                clsDetails.Remarks = txtRemarks.Text;
                clsDetails.Debit = Convert.ToDecimal("0");
                clsDetails.Credit = Convert.ToDecimal(txtCredit.Text);
                clsDetails.IsCreditAllowed = chkIsCreditAllowed.Checked;
                clsDetails.CreditLimit = Convert.ToDecimal(txtCreditLimit.Text);

                Data.ContactAddOnDetails clsAddOnDetails = new Data.ContactAddOnDetails();
                clsAddOnDetails.ContactID = clsDetails.ContactID;
                clsAddOnDetails.Salutation = cboSalutation.SelectedValue.ToString();
                clsAddOnDetails.FirstName = txtFirstName.Text;
                clsAddOnDetails.MiddleName = txtMiddleName.Text;
                clsAddOnDetails.LastName = txtLastName.Text;
                clsAddOnDetails.SpouseName = "";
                DateTime dteBirthDate = Constants.C_DATE_MIN_VALUE;
                dteBirthDate = DateTime.TryParse(txtBirthDate.Text, out dteBirthDate) ? dteBirthDate : Constants.C_DATE_MIN_VALUE;
                clsAddOnDetails.BirthDate = dteBirthDate;
                clsAddOnDetails.SpouseBirthDate = Constants.C_DATE_MIN_VALUE;
                clsAddOnDetails.AnniversaryDate = Constants.C_DATE_MIN_VALUE;
                clsAddOnDetails.Address1 = txtAddress.Text;
                clsAddOnDetails.Address2 = string.Empty;
                clsAddOnDetails.City = string.Empty;
                clsAddOnDetails.State = string.Empty;
                clsAddOnDetails.ZipCode = string.Empty;
                clsAddOnDetails.CountryID = Constants.C_DEF_COUNTRY_ID;
                clsAddOnDetails.CountryCode = Constants.C_DEF_COUNTRY_CODE;
                clsAddOnDetails.BusinessPhoneNo = txtTelephoneNo.Text;
                clsAddOnDetails.HomePhoneNo = string.Empty;
                clsAddOnDetails.MobileNo = txtMobileNo.Text;
                clsAddOnDetails.FaxNo = string.Empty;
                clsAddOnDetails.EmailAddress = string.Empty;
                clsAddOnDetails.Sex = (Sex) Enum.Parse(typeof(Sex), cboSex.SelectedValue.ToString());
                clsAddOnDetails.AttendingPhysician = txtAttendingPhysician.Text;

                clsDetails.AdditionalDetails = clsAddOnDetails;

                Data.Contacts clsContact = new Data.Contacts();
                if (mContactDetails.ContactID == 0)
                {
                    clsDetails.ContactGroupID = Constants.CONTACT_GROUP_CUSTOMER;
                    clsDetails.PositionID = Constants.C_RETAILPLUS_AGENT_POSITIONID;
                    clsDetails.DepartmentID = Constants.C_RETAILPLUS_AGENT_DEPARTMENTID;
                    clsDetails.ContactID = clsContact.Insert(clsDetails);
                }
                else
                {
                    clsDetails.PositionID = mContactDetails.PositionID;
                    clsDetails.DepartmentID = mContactDetails.DepartmentID;
                    clsDetails.ContactGroupID = mContactDetails.ContactGroupID;
                    clsDetails.ContactGroupName = mContactDetails.ContactGroupName;
                    clsContact.Update(clsDetails);
                }
                clsContact.CommitAndDispose();

                mContactDetails = clsDetails;

                return true;
            }
        }
コード例 #16
0
		private void LoadOptions()
		{
            Data.Contacts clsContact = new Data.Contacts();

            cboContact.DataTextField = "ContactName";
            cboContact.DataValueField = "ContactID";
            cboContact.DataSource = clsContact.CustomersWithCredits(new ContactColumns() { ContactName = true }, CheckCustomersGuarantor: true, WithGuarantorOnly: true, SortField: "ContactName").DefaultView;
            cboContact.DataBind();
            cboContact.Items.Insert(0, new ListItem(Constants.PLEASE_SELECT, Constants.ZERO_STRING));
            cboContact.SelectedIndex = 0;

            cboGuarantor.DataTextField = "ContactName";
            cboGuarantor.DataValueField = "ContactID";
            cboGuarantor.DataSource = clsContact.Guarantors(new ContactColumns() { ContactName = true }, SortField: "ContactName").DefaultView;
            cboGuarantor.DataBind();
            cboGuarantor.Items.Insert(0, new ListItem(Constants.PLEASE_SELECT, Constants.ZERO_STRING));
            cboGuarantor.SelectedIndex = 0;

            clsContact.CommitAndDispose();

            Int64 iContactID = 0;
            if (Request.QueryString["id"] != null)
            {
                try { iContactID = Int64.TryParse(Common.Decrypt(Request.QueryString["id"].ToString(), Session.SessionID), out iContactID) ? iContactID : 0; }
                catch { }
            }

            cboContact.ToolTip = iContactID.ToString();
            if (iContactID == 0)
            {
                divContactInfo.Visible = false;
            }
            else
            {
                cboContact.SelectedIndex = cboContact.Items.IndexOf(cboContact.Items.FindByValue(iContactID.ToString()));
                cboContact_SelectedIndexChanged(null, null);
            }
		}
コード例 #17
0
ファイル: ContactAddWnd.cs プロジェクト: marioricci/erp-luma
        private bool SaveRecord()
        {
            if (MessageBox.Show("Please validate the customer information details before proceeding. Are you sure you want to continue?", "RetailPlus ™", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.No)
            {
                return false;
            }
            else
            {
                Data.ContactDetails clsDetails = new Data.ContactDetails();
                clsDetails = mContactDetails;

                clsDetails.ContactCode = txtContactCode.Text;
                clsDetails.ContactName = txtCustomerName.Text;
                clsDetails.TINNo = txtTINNo.Text;
                clsDetails.LTONo = txtLTONo.Text;
                clsDetails.Address = txtAddress.Text;
                clsDetails.BusinessName = txtBusinessName.Text;
                clsDetails.TelephoneNo = txtTelNo.Text;

                // Jul 22, 2014
                clsDetails.Debit = mContactDetails.Debit;
                clsDetails.Credit = mContactDetails.Credit;
                clsDetails.IsCreditAllowed = chkIsCreditAllowed.Checked;
                clsDetails.CreditLimit = decimal.Parse(txtCreditLimit.Text);
                clsDetails.Terms = int.Parse(txtTerms.Text);
                clsDetails.ModeOfTerms = (ModeOfTerms)Enum.Parse(typeof(ModeOfTerms), cboTerms.SelectedItem.ToString());


                Data.Contacts clsContact = new Data.Contacts();
                Data.ContactGroups clsContactGroups = new Data.ContactGroups(clsContact.Connection, clsContact.Transaction);
                clsDetails.ContactGroupID = clsContactGroups.DetailsByName(cboGroup.SelectedItem.ToString()).ContactGroupID;
                
                if (mContactDetails.ContactID == 0)
                {
                    //if (mstCaption == "Please enter customer name for deposit.")
                    //{ clsDetails.Remarks = Data.Contacts.DEFAULT_REMARKS_FOR_ADDED_FROM_DEPOSIT; }
                    //else if (mstCaption == "Quickly add new customer")
                    //{ clsDetails.Remarks = Data.Contacts.DEFAULT_REMARKS_FOR_QUICKLY_ADDED_FROM_FE; }
                    //else if (mContactDetails.ContactID == 0) // means not edit
                    //{ clsDetails.Remarks = Data.Contacts.DEFAULT_REMARKS_FOR_ADDED_FROM_CLIENT; }
                    clsDetails.Remarks = txtRemarks.Text;

                    clsDetails.PositionID = Constants.C_RETAILPLUS_AGENT_POSITIONID;
                    clsDetails.DepartmentID = Constants.C_RETAILPLUS_AGENT_DEPARTMENTID;
                    clsDetails.ContactID = clsContact.Insert(clsDetails);
                }
                else
                {
                    clsDetails.PositionID = mContactDetails.PositionID;
                    clsDetails.DepartmentID = mContactDetails.DepartmentID;
                    clsDetails.ContactGroupID = mContactDetails.ContactGroupID;
                    clsDetails.ContactGroupName = mContactDetails.ContactGroupName;
                    clsContact.Update(clsDetails);
                }
                clsContact.CommitAndDispose();

                mContactDetails = clsDetails;

                return true;
            }
        }
コード例 #18
0
ファイル: MainWnd.cs プロジェクト: marioricci/erp-luma
		private void LoadContact(AceSoft.RetailPlus.Data.ContactGroupCategory enumContactGroupCategory, Data.ContactDetails pContactDetails, bool isFromCreditPayment = false)
		{
			try
			{
                if ((mclsTerminalDetails.ShowCustomerSelection || pContactDetails.ContactID != 0) && 
                    (enumContactGroupCategory == Data.ContactGroupCategory.CUSTOMER || enumContactGroupCategory == Data.ContactGroupCategory.AGENT))
					mclsContactDetails = pContactDetails;
				else
				{
					string strContactCardNo = txtBarCode.Text.Replace(Constants.SWIPE_REWARD_CARD, "").Trim();

					Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction);
                    mConnection = clsContact.Connection; mTransaction = clsContact.Transaction;

					// check using reward card info
					mclsContactDetails = clsContact.DetailsByRewardCardNo(strContactCardNo);
					if (mclsContactDetails.ContactID != 0)
						mboRewardCardSwiped = true;
					else if (mclsContactDetails.ContactID == 0) 
					{
						// check using credit card info
						mclsContactDetails = clsContact.DetailsByCreditCardNo(strContactCardNo);
                        if (mclsContactDetails.ContactID == 0 && strContactCardNo.Length == 7) mclsContactDetails = clsContact.DetailsByCreditCardNo("888880" + strContactCardNo);
                        if (mclsContactDetails.ContactID == 0 && strContactCardNo.Length == 7) mclsContactDetails = clsContact.DetailsByCreditCardNo("800000" + strContactCardNo);
                        if (mclsContactDetails.ContactID == 0 && strContactCardNo.Length == 9) mclsContactDetails = clsContact.DetailsByCreditCardNo(BarcodeHelper.GroupCreditCard_Country_Code + BarcodeHelper.GroupCreditCard_ManufacturerCode + strContactCardNo);
                        if (mclsContactDetails.ContactID == 0 && strContactCardNo.Length == 9) mclsContactDetails = clsContact.DetailsByCreditCardNo(BarcodeHelper.CustomerCode_Country_Code + BarcodeHelper.CustomerCode_ManufacturerCode + strContactCardNo);
                        if (mclsContactDetails.ContactID == 0 && strContactCardNo.Length == 9) mclsContactDetails = clsContact.DetailsByCreditCardNo(BarcodeHelper.GroupCreditCard_Country_Code + BarcodeHelper.GroupCreditCard_ManufacturerCode_Manual + strContactCardNo);
                        if (mclsContactDetails.ContactID == 0 && strContactCardNo.Length == 9) mclsContactDetails = clsContact.DetailsByCreditCardNo(BarcodeHelper.CreditCard_Country_Code + BarcodeHelper.CreditCard_ManufacturerCode + strContactCardNo);

						if (mclsContactDetails.ContactID != 0)
							mboCreditCardSwiped = true;
						else if (mclsContactDetails.ContactID == 0) 
						{
							strContactCardNo = strContactCardNo.Remove(strContactCardNo.Length - 1);
							// check using reward card info
							mclsContactDetails = clsContact.DetailsByRewardCardNo(strContactCardNo);
							if (mclsContactDetails.ContactID != 0)
								mboRewardCardSwiped = true;
							else if (mclsContactDetails.ContactID == 0)
							{
								// check using credit card info
								mclsContactDetails = clsContact.DetailsByCreditCardNo(strContactCardNo);
								if (mclsContactDetails.ContactID != 0)
									mboCreditCardSwiped = true;
								else if (mclsContactDetails.ContactID == 0)
								{ clsContact.CommitAndDispose(); SelectContact(AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER); return;}
							}
						}

					}
					clsContact.CommitAndDispose();
				}

				// Sep 24, 2011      Lemuel E. Aceron
				// Added order slip wherein all punch items will not change sales and inventory
				// a customer named ORDER SLIP should be defined in contacts
				if (mclsContactDetails.ContactName.Trim().ToUpper() == Constants.C_RETAILPLUS_ORDER_SLIP_CUSTOMER && mboIsInTransaction && enumContactGroupCategory == AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER)
				{
					MessageBox.Show("Sorry you cannot select ORDER SLIP customer when an item is already purchased.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
					clsEvent.AddEventLn("Cancelled!"); return;
				}

				switch (enumContactGroupCategory)
				{
					case AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER:

                        // if not from CreditPayment-F3, do not overwrite 
                        if (!isFromCreditPayment)
                        {
                            lblCustomer.Tag = mclsContactDetails.ContactID;
                            lblCustomer.Text = mclsContactDetails.ContactName;
                        }

						if (!mclsTerminalDetails.ShowCustomerSelection) { txtBarCode.Text = string.Empty; txtBarCode.Focus(); }
						clsEvent.AddEventLn("Done! Selected customer: " + lblCustomer.Text);

						if (mboIsInTransaction)
						{
                            Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction);
                            mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction;

                            if (mboRewardCardSwiped)
                            {
                                mclsSalesTransactionDetails.RewardsCustomerID = mclsContactDetails.ContactID;
                                mclsSalesTransactionDetails.RewardsCustomerName = mclsContactDetails.ContactName;
                                clsSalesTransactions.UpdateRewardsContactUpdate(mclsTerminalDetails.BranchDetails.BranchID, mclsTerminalDetails.TerminalNo, mclsSalesTransactionDetails.TransactionID, mclsContactDetails.ContactID, mclsContactDetails.ContactName);
                            }

							clsSalesTransactions.UpdateContact(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.TransactionDate, mclsContactDetails);
                            clsSalesTransactions.CommitAndDispose();
						}
                        if (mboRewardCardSwiped)
                        {
                            mclsSalesTransactionDetails.RewardsCustomerID = mclsContactDetails.ContactID;
                            mclsSalesTransactionDetails.RewardsCustomerName = mclsContactDetails.ContactName;
                            mclsSalesTransactionDetails.RewardCardActive = mclsContactDetails.RewardDetails.RewardActive;
                            mclsSalesTransactionDetails.RewardCardNo = mclsContactDetails.RewardDetails.RewardCardNo;
                            mclsSalesTransactionDetails.RewardPreviousPoints = mclsContactDetails.RewardDetails.RewardPoints;
                            mclsSalesTransactionDetails.RewardCurrentPoints = mclsSalesTransactionDetails.RewardPreviousPoints;

                            // no need to check if the current customer for the transaction is the default customer
                            //if (mclsSalesTransactionDetails.CustomerID == Constants.C_RETAILPLUS_CUSTOMERID)
                            //{
                            mclsSalesTransactionDetails.CustomerID = mclsContactDetails.ContactID;
                            mclsSalesTransactionDetails.CustomerName = mclsContactDetails.ContactName;
                            mclsSalesTransactionDetails.CustomerDetails = mclsContactDetails;
                            //}
                        }
                        else
                        {
                            mclsSalesTransactionDetails.CustomerID = mclsContactDetails.ContactID;
                            mclsSalesTransactionDetails.CustomerName = mclsContactDetails.ContactName;
                            mclsSalesTransactionDetails.CustomerDetails = mclsContactDetails;
                        }

						break;
					case AceSoft.RetailPlus.Data.ContactGroupCategory.AGENT:
                        lblAgent.Tag = pContactDetails.ContactID;
                        lblAgent.Text = pContactDetails.ContactName;
                        lblAgentPositionDepartment.Text = pContactDetails.PositionName;
                        lblAgentPositionDepartment.Tag = pContactDetails.DepartmentName;
						clsEvent.AddEventLn("Done! Selected agent: " + lblAgent.Text);

						if (mboIsInTransaction)
						{
                            Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction);
                            mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction;

                            clsSalesTransactions.UpdateAgent(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.TransactionDate, pContactDetails);
							clsSalesTransactions.CommitAndDispose();
						}
                        mclsSalesTransactionDetails.AgentID = pContactDetails.ContactID;
                        mclsSalesTransactionDetails.AgentName = pContactDetails.ContactName;
						break;
				}
			}
			catch (Exception ex)
			{ 
                InsertErrorLogToFile(ex, "ERROR!!! Loading contact."); 
            }
		}
コード例 #19
0
ファイル: MainWnd.cs プロジェクト: marioricci/erp-luma
		private void CreditCardDeclareAsSuspended()
		{
			if (mboIsInTransaction)
			{
				MessageBox.Show("Sorry you cannot deaclare a Credit Card as lost while there is an ongoing transaction. Please finish the transaction first.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
				return;
			}

			DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.CreditCardChange, "Credit Card Declaration as Lost");

            if (loginresult == DialogResult.OK)
			{
				try
				{
					DialogResult result; Data.ContactDetails clsContactDetails;
					ContactSelectWnd clsContactWnd = new ContactSelectWnd();
                    clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK;
                    clsContactWnd.SysConfigDetails = mclsSysConfigDetails;
                    clsContactWnd.TerminalDetails = mclsTerminalDetails;
					clsContactWnd.ContactGroupCategory = AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER;
                    clsContactWnd.Header = "Please select customer for credit card suspension.";
					clsContactWnd.ShowDialog(this);
					clsContactDetails = clsContactWnd.Details;
					result = clsContactWnd.Result;
					clsContactWnd.Close();
					clsContactWnd.Dispose();

					if (result != DialogResult.OK)
					{ return; }

					if (clsContactDetails.ContactID == Constants.ZERO || clsContactDetails.ContactID == Constants.C_RETAILPLUS_CUSTOMERID)
					{ return; }

					clsEvent.AddEvent("[" + lblCashier.Text + "] Declaring credit card as suspended.");

                    Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction);
                    mConnection = clsContact.Connection; mTransaction = clsContact.Transaction;

					clsContactDetails = clsContact.Details(clsContactDetails.ContactID);
                    Data.ContactDetails clsGuarantor = clsContact.Details(clsContactDetails.CreditDetails.GuarantorID);

					clsContact.CommitAndDispose();

					if (clsContactDetails.CreditDetails.CreditCardNo == string.Empty || clsContactDetails.CreditDetails.CreditCardNo == null)
					{
						clsEvent.AddEventLn("Cancelled!");
						clsEvent.AddEventLn(clsContactDetails.ContactName + " has no valid Credit Card yet. ");
						MessageBox.Show(clsContactDetails.ContactName + " has no valid Credit Card yet. Please select another customer.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error);
						return;
					}

					ContactCreditWnd clsContactCreditWnd = new ContactCreditWnd();
					clsContactCreditWnd.Header = "Credit Card Suspension";
                    clsContactCreditWnd.CardTypeDetails = clsContactDetails.CreditDetails.CardTypeDetails;
					clsContactCreditWnd.Guarantor = clsGuarantor;
					clsContactCreditWnd.ContactDetails = clsContactDetails;
					clsContactCreditWnd.CreditCardStatus = CreditCardStatus.Suspended;
                    clsContactCreditWnd.TerminalDetails = mclsTerminalDetails;
					clsContactCreditWnd.ShowDialog(this);
					result = clsContactCreditWnd.Result;
					clsContactDetails = clsContactCreditWnd.ContactDetails;
					clsContactCreditWnd.Close();
					clsContactCreditWnd.Dispose();

					if (result == DialogResult.OK)
					{
                        MessageBox.Show("Credit Card No: " + clsContactDetails.CreditDetails.CreditCardNo + " has been SUSPENDED.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information);

						clsEvent.AddEventLn("Done!", true);
                        clsEvent.AddEventLn("Credit Card No: " + clsContactDetails.CreditDetails.CreditCardNo + " has been SUSPENDED.", true);
						this.LoadOptions();
					}
					else { clsEvent.AddEventLn("Cancelled!"); }
				}
				catch (Exception ex)
				{ 
                    InsertErrorLogToFile(ex, "ERROR!!! Declaring internal credit card as lost."); 
                }
				Cursor.Current = Cursors.Default;
			}
		}
コード例 #20
0
        private void PrintSOA()
        {
            Cursor.Current = Cursors.WaitCursor;

            try
            {
                CRSReports.SOA rpt = new CRSReports.SOA();

                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 { }

                /****************************datatable*****************************/

                Data.Contacts clsContacts = new Data.Contacts();
                System.Data.DataTable dt = clsContacts.ListAsDataTable(ContactID: mclsCustomerDetails.ContactID);
                clsContacts.CommitAndDispose();
                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    drNew = rptds.Customer.NewRow();

                    foreach (System.Data.DataColumn dc in rptds.Customer.Columns)
                        drNew[dc] = dr[dc.ColumnName];

                    rptds.Customer.Rows.Add(drNew);
                }

                dt = (System.Data.DataTable) dgvItems.DataSource;
                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    drNew = rptds.CustomerCredit.NewRow();

                    foreach (System.Data.DataColumn dc in rptds.CustomerCredit.Columns)
                        drNew[dc] = dr[dc.ColumnName];

                    rptds.CustomerCredit.Rows.Add(drNew);
                }

                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 = CashierName;
                currentValues = new CrystalDecisions.Shared.ParameterValues();
                currentValues.Add(discreteParam);
                paramField.ApplyCurrentValues(currentValues);

                paramField = rpt.DataDefinition.ParameterFields["PackedBy"];
                discreteParam = new CrystalDecisions.Shared.ParameterDiscreteValue();
                discreteParam.Value = CashierName;
                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 = "";
                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") + "/SOA_" + logdate.ToString("yyyyMMddhhmmss") + ".doc";

                    rpt.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.WordForWindows, logFile);
                }
                catch { }

                if (isPrinterOnline(TerminalDetails.SalesInvoicePrinterName))
                {
                    rpt.PrintOptions.PrinterName = TerminalDetails.SalesInvoicePrinterName;
                    rpt.PrintToPrinter(1, false, 0, 0);

                    rpt.Close();
                    rpt.Dispose();

                    Cursor.Current = Cursors.Default;
                    MessageBox.Show("Statement Of Account for " + mclsCustomerDetails.ContactName + " has been printed.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    rpt.Close();
                    rpt.Dispose();

                    Cursor.Current = Cursors.Default;
                    MessageBox.Show("Sorry, will not print sales invoice. printer is offline.", "RetailPlus");
                }
            }
            catch (Exception ex)
            {
                Cursor.Current = Cursors.Default;
                MessageBox.Show("Sorry an error was encountered during printing, please reprint again." + Environment.NewLine + "Details: " + ex.Message, "RetailPlus");
            }
        }
コード例 #21
0
ファイル: ContactAddWnd.cs プロジェクト: marioricci/erp-luma
        private bool SaveRecord()
        {
            Data.ContactDetails clsDetails = new Data.ContactDetails();
            clsDetails = mContactDetails;

            clsDetails.ContactCode = txtCustomerName.Text;
            clsDetails.ContactName = txtCustomerName.Text;
            clsDetails.Address = txtAddress.Text;
            clsDetails.BusinessName = txtBusinessName.Text;
            clsDetails.TelephoneNo = txtTelNo.Text;

            // Jul 22, 2014
            clsDetails.Debit = mContactDetails.Debit;
            clsDetails.Credit = mContactDetails.Credit;
            clsDetails.IsCreditAllowed = chkIsCreditAllowed.Checked;
            clsDetails.CreditLimit = decimal.Parse(txtCreditLimit.Text);
            clsDetails.Terms = int.Parse(txtTerms.Text);
            clsDetails.ModeOfTerms = (ModeOfTerms)Enum.Parse(typeof(ModeOfTerms), cboTerms.SelectedItem.ToString());

            Data.Contacts clsContact = new Data.Contacts();
            if (mContactDetails.ContactID == 0)
            {
                if (mstCaption == "Please enter customer name for deposit.")
                { clsDetails.Remarks = Data.Contacts.DEFAULT_REMARKS_FOR_ADDED_FROM_DEPOSIT; }
                else if (mstCaption == "Quickly add new customer")
                { clsDetails.Remarks = Data.Contacts.DEFAULT_REMARKS_FOR_QUICKLY_ADDED_FROM_FE; }
                else if (mContactDetails.ContactID == 0) // means not edit
                { clsDetails.Remarks = Data.Contacts.DEFAULT_REMARKS_FOR_ADDED_FROM_CLIENT; }

                clsDetails.ContactGroupID = Constants.CONTACT_GROUP_CUSTOMER;
                clsDetails.PositionID = Constants.C_RETAILPLUS_AGENT_POSITIONID;
                clsDetails.DepartmentID = Constants.C_RETAILPLUS_AGENT_DEPARTMENTID;
                clsDetails.ContactID = clsContact.Insert(clsDetails);
            }
            else
            {
                clsDetails.ContactCode = mContactDetails.ContactCode;
                clsDetails.ContactGroupID = mContactDetails.ContactGroupID;
                clsDetails.ContactGroupName = mContactDetails.ContactGroupName;
                clsContact.Update(clsDetails);
            }
            clsContact.CommitAndDispose();

            mContactDetails = clsDetails;

            return true;
        }
コード例 #22
0
        private bool isValuesAssigned()
        {
            decimal mdecAmount = 0;
            try
            {
                mdecAmount = Convert.ToDecimal(txtAmount.Text);
            }
            catch
            {
                txtAmount.Focus();
                MessageBox.Show("Sorry you have entered an invalid amount for credit card payment. Please type a valid credit amount.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            if (string.IsNullOrEmpty(cboCardType.Text))
            {
                cboCardType.Focus();
                MessageBox.Show("Please select a valid Card Type.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            if (txtCardNo.Text == null || txtCardNo.Text == "")
            {
                txtCardNo.Focus();
                MessageBox.Show("Please type a valid Card No.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            if (txtCardHolder.Text == null || txtCardHolder.Text == "")
            {
                txtCardHolder.Focus();
                MessageBox.Show("Please type a valid Card Holder.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            DateTime ValidityDate = DateTime.MinValue;
            if (string.IsNullOrEmpty(txtValidityDates.Text))
            {
                txtValidityDates.Focus();
                MessageBox.Show("Please type a valid Validity Date.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            else if (!string.IsNullOrEmpty(txtValidityDates.Text))
            {
                try
                {
                    string Month = txtValidityDates.Text.Substring(0, 2);
                    string Year = "20" + txtValidityDates.Text.Substring(2, 2);
                    string Day = DateTime.DaysInMonth(Convert.ToInt32(Year), Convert.ToInt32(Month)).ToString();
                    ValidityDate = new DateTime(int.Parse(Year), int.Parse(Month), int.Parse(Day));
                }
                catch
                {
                    txtValidityDates.Focus();
                    MessageBox.Show("Please type a valid Validity Date. Format must be mmyy", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return false;
                }

                if (!IsRefund) // check only if it's not refund
                {
                    if (!mboIsCreditChargeExcluded) // check only if it's not chargeexcluded or offline trx
                    {
                        if (ValidityDate < DateTime.Now)
                        {
                            txtValidityDates.Focus();
                            MessageBox.Show("Card has been expired, please ask for a valid credit card.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            return false;
                        }
                    }
                }
            }
            // make sure that only 1 INTERNAL CREDIT CARD can be use per transaction
            if (mclsCardTypeDetails.CreditCardType == CreditCardTypes.Internal)
            {
                foreach (Data.CreditCardPaymentDetails clsCreditCardPaymentDetails in marrCreditCardPaymentDetails)
                {
                    if (clsCreditCardPaymentDetails.CardTypeDetails.CreditCardType == CreditCardTypes.Internal)
                    {
                        MessageBox.Show("Sorry an INTERNAL CREDIT CARD has only been use to pay. Please use another credit card or another mode of payment (e.g. cash).", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return false;
                    }
                }
            }

            decimal decAdditionalCreditCharge = 0;
            if (mclsCreditorDetails.ContactID != 0)
            {
                // add only the charge if the credit is chargeable
                if (panCharge.Visible) mdecAmount += decimal.Parse(txtCreditCardCharge.Text);

                decimal mdecAllowedCredit = mclsCreditorDetails.CreditLimit - mclsCreditorDetails.Credit;
                
                if (!IsRefund) // check only if it's not refund
                {
                    if (!mboIsCreditChargeExcluded) // check only if it's not chargeexcluded or offline trx
                    {
                        if (mdecAmount > mdecAllowedCredit)
                        {
                            MessageBox.Show("Amount must be less than the credit limit (" + mdecAllowedCredit.ToString("#,##0.#0") + "). Please enter a lower amount for credit payment.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            txtAmount.Focus();
                            return false;
                        }
                        if (mdecAmount <= 0)
                        {
                            MessageBox.Show("Amount must be greater than zero. Please enter a higher amount for credit payment.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            txtAmount.Focus();
                            return false;
                        }
                        if (!mclsCreditorDetails.CreditDetails.CreditActive)
                        {
                            MessageBox.Show("Sorry the credit card status is " + mclsCreditorDetails.CreditDetails.CreditCardStatus.ToString("G") + ". Please enter an active credit card no.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            txtScan.Focus();
                            return false;
                        }
                        if (mclsCardTypeDetails.WithGuarantor)
                        {
                            Data.Contacts clsContacts = new Data.Contacts();
                            mclsGuarantorDetails = clsContacts.Details(mclsCreditorDetails.CreditDetails.GuarantorID);
                            clsContacts.CommitAndDispose();

                            if (!mclsGuarantorDetails.CreditDetails.CreditActive)
                            {
                                MessageBox.Show("Sorry the Guarantor's credit card status is " + mclsGuarantorDetails.CreditDetails.CreditCardStatus.ToString("G") + ". Please enter an active credit card no.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                txtScan.Focus();
                                return false;
                            }
                        }
                    }
                }

                if (mboIsCreditChargeExcluded) // exclude if it's an special item
                { decAdditionalCreditCharge = 0; }
                else if (mclsCardTypeDetails.ExemptInTerminalCharge) // exclude if it's an exemption
                { decAdditionalCreditCharge = 0; }
                else if (mclsCardTypeDetails.WithGuarantor && TerminalDetails.GroupChargeType.ChargeTypeID != 0)
                {
                    if (panCharge.Visible) decAdditionalCreditCharge = decimal.Parse(txtCreditCardCharge.Text);

                    //if (TerminalDetails.GroupChargeType.InPercent)
                    //    decAdditionalCreditCharge = mdecBalanceAmount * (TerminalDetails.GroupChargeType.ChargeAmount / 100);
                    //else
                    //    decAdditionalCreditCharge = mdecBalanceAmount + TerminalDetails.GroupChargeType.ChargeAmount;
                }
                else if (!mclsCardTypeDetails.WithGuarantor && TerminalDetails.PersonalChargeType.ChargeTypeID != 0)
                {
                    if (panCharge.Visible) decAdditionalCreditCharge = decimal.Parse(txtCreditCardCharge.Text);

                    //if (TerminalDetails.PersonalChargeType.InPercent)
                    //    decAdditionalCreditCharge = mdecBalanceAmount * (TerminalDetails.PersonalChargeType.ChargeAmount / 100);
                    //else
                    //    decAdditionalCreditCharge = mdecBalanceAmount + TerminalDetails.PersonalChargeType.ChargeAmount;
                }

                if (!IsRefund) // check only if it's not refund
                {
                    if (!mboIsCreditChargeExcluded) // check only if it's not chargeexcluded or offline trx
                    {
                        if (decAdditionalCreditCharge == 0)
                        {
                            if (mdecAmount > mdecBalanceAmount + decAdditionalCreditCharge)
                            {
                                txtAmount.Focus();
                                MessageBox.Show("Amount must be less than the balance amount (" + mdecBalanceAmount.ToString("#,##0.#0") + "). Please enter a lower or equal amount for credit payment.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                return false;
                            }
                        }
                    }
                }
            }
            if (mclsCreditorDetails.ContactID == 0 && mclsCardTypeDetails.CreditCardType == CreditCardTypes.Internal)
            {
                MessageBox.Show("Please enter a valid card no for " + cboCardType.Text + ".", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }

            mDetails.BranchDetails = TerminalDetails.BranchDetails;
            mDetails.TerminalNo = TerminalDetails.TerminalNo;
            mDetails.TransactionID = mclsSalesTransactionDetails.TransactionID;
            mDetails.TransactionNo = mclsSalesTransactionDetails.TransactionNo;
            mDetails.TransactionDate = mclsSalesTransactionDetails.TransactionDate;
            mDetails.CashierName = mclsSalesTransactionDetails.CashierName;

            mDetails.Amount = mdecAmount;
            mDetails.AdditionalCharge = decAdditionalCreditCharge;

            mDetails.CardTypeID = mclsCardTypeDetails.CardTypeID;
            mDetails.CardTypeCode = mclsCardTypeDetails.CardTypeCode;
            mDetails.CardTypeName = mclsCardTypeDetails.CardTypeName;
            mDetails.CardNo = txtCardNo.Text;
            mDetails.CardHolder = txtCardHolder.Text;
            
            mDetails.ValidityDates = ValidityDate.ToString("MMddyy");
            mDetails.Remarks = (OfflineProduct + " " + txtRemarks.Text).Trim();
            mDetails.CardTypeDetails = mclsCardTypeDetails;
            mDetails.CreditorDetails = mclsCreditorDetails;
            mDetails.IsRefund = IsRefund;
            mDetails.CreatedOn = mclsSalesTransactionDetails.TransactionDate;

            return true;
        }
コード例 #23
0
        private bool setCreditor()
        {
            if (string.IsNullOrEmpty(txtCardNo.Text))
            {
                mclsCreditorDetails = new Data.ContactDetails();
            }
            if (!string.IsNullOrEmpty(txtCardNo.Text))
            {
                string strContactCardNo = txtCardNo.Text;

                Data.Contacts clsContacts = new Data.Contacts();
                mclsCreditorDetails = clsContacts.DetailsByCreditCardNo(strContactCardNo);

                if (mclsCreditorDetails.ContactID == 0)
                {
                    strContactCardNo = strContactCardNo.Remove(strContactCardNo.Length - 1);
                    mclsCreditorDetails = clsContacts.DetailsByCreditCardNo(strContactCardNo);
                }
                clsContacts.CommitAndDispose();

                if(mclsCreditorDetails.ContactID != 0)
                {
                    cboCardType.SelectedText = mclsCreditorDetails.CreditDetails.CardTypeDetails.CardTypeName;
                    cboCardType.Text = mclsCreditorDetails.CreditDetails.CardTypeDetails.CardTypeName;

                    cboCardType_SelectedIndexChanged(null, null);

                    txtCardHolder.Text = mclsCreditorDetails.ContactName;
                    if (mclsCreditorDetails.CreditDetails.ExpiryDate == Constants.C_DATE_MIN_VALUE)
                        txtValidityDates.Text = "";
                    else
                        txtValidityDates.Text = mclsCreditorDetails.CreditDetails.ExpiryDate.ToString("MMyy");
                }
            }
            return true;
        }
コード例 #24
0
        private void txtCardNo_TextChanged(object sender, EventArgs e)
        {
            mclsCreditorDetails = new Data.ContactDetails();
            if (!string.IsNullOrEmpty(txtCardNo.Text)
                && txtScan.Text.Length >= 12
                && txtScan.Text != mclsCreditorDetails.CreditDetails.CreditCardNo)
            {
                Data.Contacts clsContacts = new Data.Contacts();
                mclsCreditorDetails = clsContacts.DetailsByCreditCardNo(txtCardNo.Text);

                //if (mclsCreditorDetails.ContactID == 0)
                //{
                //    //mContactDetails = clsContacts.DetailsByCreditCardNo(txtScan.Text.Remove(txtScan.Text.Length - 1));

                //    if (mclsCreditorDetails.ContactID == 0 && txtScan.Text.Length == 7) mclsCreditorDetails = clsContacts.DetailsByCreditCardNo("888880" + txtScan.Text);
                //    if (mclsCreditorDetails.ContactID == 0 && txtScan.Text.Length == 7) mclsCreditorDetails = clsContacts.DetailsByCreditCardNo("800000" + txtScan.Text);
                //    if (mclsCreditorDetails.ContactID == 0 && txtScan.Text.Length == 9) mclsCreditorDetails = clsContacts.DetailsByCreditCardNo(BarcodeHelper.GroupCreditCard_Country_Code + BarcodeHelper.GroupCreditCard_ManufacturerCode + txtScan.Text);
                //    if (mclsCreditorDetails.ContactID == 0 && txtScan.Text.Length == 9) mclsCreditorDetails = clsContacts.DetailsByCreditCardNo(BarcodeHelper.CreditCard_Country_Code + BarcodeHelper.CreditCard_ManufacturerCode + txtScan.Text);
                //}
                clsContacts.CommitAndDispose();
            }

            //this means that this uses an internal credit card
            setCreditor();

            if (mclsCreditorDetails.ContactID != 0)
                setCreditCardChargeAmount(); 
            else
                unsetCreditCardCharge();
        }
コード例 #25
0
ファイル: MainWnd.cs プロジェクト: marioricci/erp-luma
		private void IssueCreditCard()
		{
			if (mboIsInTransaction)
			{
				MessageBox.Show("Sorry you cannot issue a Credit Card while there is an ongoing transaction. Please finish the transaction first.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
				return;
			}

			DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.CreditCardIssuance);

			if (loginresult == DialogResult.OK)
			{
				try
				{
					DialogResult result;
                    Data.CardTypeDetails clsCardTypeDetails = new Data.CardTypeDetails();
                    Data.ContactDetails clsGuarantorDetails = new AceSoft.RetailPlus.Data.ContactDetails();
                    ContactCreditTypeSelectWnd clsContactCreditTypeSelectWnd = new ContactCreditTypeSelectWnd();
                    clsContactCreditTypeSelectWnd.TerminalDetails = mclsTerminalDetails;
                    clsContactCreditTypeSelectWnd.ShowDialog(this);
                    clsCardTypeDetails = clsContactCreditTypeSelectWnd.CardTypeDetails;
                    result = clsContactCreditTypeSelectWnd.Result;
                    clsContactCreditTypeSelectWnd.Close();
                    clsContactCreditTypeSelectWnd.Dispose();

                    if (result != DialogResult.OK)
                    { return; }

					Data.ContactDetails clsContactDetails;
					ContactSelectWnd clsContactWnd = new ContactSelectWnd();
                    clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK;
                    clsContactWnd.SysConfigDetails = mclsSysConfigDetails;
                    clsContactWnd.TerminalDetails = mclsTerminalDetails;

                    if (clsCardTypeDetails.WithGuarantor)
					{
                        MessageBox.Show("Please select a GUARANTOR to issue Credit Card.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information);

						clsContactWnd.ContactGroupCategory = AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER;
                        clsContactWnd.Header = "Select GUARANTOR to issue Credit Card.";
						clsContactWnd.ShowDialog(this);
						clsGuarantorDetails = clsContactWnd.Details;
						result = clsContactWnd.Result;
						clsContactWnd.Close();
						clsContactWnd.Dispose();
						
						if (result != DialogResult.OK)
						{ return; }

						MessageBox.Show(clsGuarantorDetails.ContactName + " has been selected as guarantor." + Environment.NewLine + "Please select the CUSTOMER to issue Credit Card.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information);
					}
					clsContactWnd = new ContactSelectWnd();
                    clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK;
                    clsContactWnd.SysConfigDetails = mclsSysConfigDetails;
                    clsContactWnd.TerminalDetails = mclsTerminalDetails;
					clsContactWnd.ContactGroupCategory = AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER;
                    clsContactWnd.Header = "Select CUSTOMER to issue Credit Card.";
					clsContactWnd.ShowDialog(this);
					clsContactDetails = clsContactWnd.Details;
					result = clsContactWnd.Result;
					clsContactWnd.Close();
					clsContactWnd.Dispose();

					if (result != DialogResult.OK)
					{ return; }

					if (clsContactDetails.ContactID == Constants.ZERO || clsContactDetails.ContactID == Constants.C_RETAILPLUS_CUSTOMERID)
					{ return; }

                    // if no guarantor
                    if (!clsCardTypeDetails.WithGuarantor) clsGuarantorDetails = new Data.ContactDetails();

					clsEvent.AddEvent("[" + lblCashier.Text + "] Issuing credit card no to " + clsContactDetails.ContactName);

					Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction);
                    mConnection = clsContact.Connection; mTransaction = clsContact.Transaction;

					clsContactDetails = clsContact.Details(clsContactDetails.ContactID);
					clsContact.CommitAndDispose();

					if (clsContactDetails.CreditDetails.CreditCardNo != string.Empty && clsContactDetails.CreditDetails.CreditCardNo != null)
					{
						clsEvent.AddEventLn("Cancelled!");
						clsEvent.AddEventLn("Credit Card No: " + clsContactDetails.CreditDetails.CreditCardNo + " was already issued to " + clsContactDetails.ContactName + " on " + clsContactDetails.CreditDetails.CreditAwardDate.ToString("MMM dd, yyyy hh:mm tt"));
						MessageBox.Show("Credit Card No: " + clsContactDetails.CreditDetails.CreditCardNo + " was already issued to " + clsContactDetails.ContactName + " on " + clsContactDetails.CreditDetails.CreditAwardDate.ToString("MMM dd, yyyy hh:mm tt") + "." +
                                        Environment.NewLine + " Please select another customer to issue Credit Card.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error);
						return;
					}

					clsEvent.AddEvent("[" + lblCashier.Text + "] Issuing credit card no to " + clsContactDetails.ContactName);

					ContactCreditWnd clsContactCreditWnd = new ContactCreditWnd();
					clsContactCreditWnd.Header = "Credit Card Issuance";
                    clsContactCreditWnd.CardTypeDetails = clsCardTypeDetails;
					clsContactCreditWnd.Guarantor = clsGuarantorDetails;
					clsContactCreditWnd.ContactDetails = clsContactDetails;
					clsContactCreditWnd.CreditCardStatus = CreditCardStatus.New;
                    clsContactCreditWnd.TerminalDetails = mclsTerminalDetails;
					clsContactCreditWnd.ShowDialog(this);
					result = clsContactCreditWnd.Result;
					clsContactDetails = clsContactCreditWnd.ContactDetails;
					clsContactCreditWnd.Close();
					clsContactCreditWnd.Dispose();

					if (result == DialogResult.OK)
					{
                        Data.Products clsProducts = new Data.Products(mConnection, mTransaction);
                        mConnection = clsProducts.Connection; mTransaction = clsProducts.Transaction;

                        string strProductBarcode = Data.Products.DEFAULT_CREDIT_CARD_MEMBERSHIP_FEE_BARCODE;
                        //override if with Guarantor
                        if (clsCardTypeDetails.WithGuarantor)
                            strProductBarcode = Data.Products.DEFAULT_SUPER_CARD_MEMBERSHIP_FEE_BARCODE;

                        if (clsProducts.Details(strProductBarcode).ProductID == 0)
                        {
                            if (!clsCardTypeDetails.WithGuarantor)
                                clsProducts.CREATE_CREDIT_CARD_MEMBERSHIP_FEE_BARCODE_PRODUCT();
                            else
                                clsProducts.CREATE_SUPER_CARD_MEMBERSHIP_FEE_BARCODE_PRODUCT();

                            Methods.InsertAuditLog(mclsTerminalDetails, "System Administrator", AccessTypes.RewardCardChange, strProductBarcode + " product has been created coz it's not configured");
                        }
                        clsProducts.CommitAndDispose();

						MessageBox.Show("Credit Card No: " + clsContactDetails.CreditDetails.CreditCardNo + " was issued to " + clsContactDetails.ContactName + "." +
										Environment.NewLine + "Please collect the payment then close the transaction.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information);

						clsEvent.AddEventLn("Done!", true);
						clsEvent.AddEventLn("Credit Card No: " + clsContactDetails.CreditDetails.CreditCardNo + " was issued to " + clsContactDetails.ContactName + ".", true);

                        LocalDB clsLocalDB = new LocalDB(mConnection, mTransaction);
                        mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction;

                        clsEvent.AddEvent("[" + lblCashier.Text + "] Creating " + strProductBarcode + "transaction for customer: ");
						LoadContact(AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER, clsContactDetails);
						if (!this.CreateTransaction()) return;

                        txtBarCode.Text = strProductBarcode;
						ReadBarCode();
						int iRow = dgItems.CurrentRowIndex;

						txtBarCode.Text = "";
						CloseTransaction();

                        clsLocalDB.CommitAndDispose();
					}
					else { clsEvent.AddEventLn("Cancelled!"); }
				}
				catch (Exception ex)
				{ 
                    InsertErrorLogToFile(ex, "ERROR!!! Issuing internal credit-card."); 
                }
				Cursor.Current = Cursors.Default;
			}

		}
コード例 #26
0
ファイル: MainRestoWnd.cs プロジェクト: marioricci/erp-luma
		private void SelectTable()
		{
			// Sep 24, 2011      Lemuel E. Aceron
			// Added order slip wherein all punch items will not change sales and inventory
			// a customer named ORDER SLIP should be defined in contacts
			if (lblCustomer.Text.Trim().ToUpper() == Constants.C_RETAILPLUS_ORDER_SLIP_CUSTOMER && mboIsInTransaction)
			{
				MessageBox.Show("Sorry you cannot select ORDER SLIP customer when an item is already purchased.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
				return;
			}

			try
			{
				clsEvent.AddEvent("[" + lblCashier.Text + "] Selecting customer.");

                DialogResult result; Data.ContactDetails details; bool isMergeTable = false;
				TableSelectWnd clsTableSelectWnd = new TableSelectWnd();
				clsTableSelectWnd.TerminalDetails = mclsTerminalDetails;
                clsTableSelectWnd.ContactGroupCategory = ContactGroupCategory.TABLES;
				clsTableSelectWnd.ShowAvailableTableOnly = mboIsInTransaction;
				clsTableSelectWnd.ShowDialog(this);
				details = clsTableSelectWnd.Details;
				result = clsTableSelectWnd.Result;
                isMergeTable = clsTableSelectWnd.isMergeTable;
				clsTableSelectWnd.Close();
				clsTableSelectWnd.Dispose();

				if (result == DialogResult.OK)
				{
                    if (isMergeTable)
                    {
                        List<Data.ContactDetails> lstDetails;
                        TableMergeWnd clsTableMergeWnd = new TableMergeWnd();
                        clsTableMergeWnd.TerminalDetails = mclsTerminalDetails;
                        clsTableMergeWnd.ContactGroupCategory = ContactGroupCategory.TABLES;
                        clsTableMergeWnd.ShowAvailableTableOnly = true; // inde pwede imerge and table na may laman na
                        clsTableMergeWnd.MainTableToMerge = details;
                        clsTableMergeWnd.ShowDialog(this);
                        //details = clsTableMergeWnd.Details;
                        result = clsTableMergeWnd.Result;
                        lstDetails = clsTableMergeWnd.MergeTables;
                        clsTableMergeWnd.Close();
                        clsTableMergeWnd.Dispose();

                        if (result == DialogResult.OK)
                        {
                            // 22Nov2014 : remove the merge tables when closed or void or create a new list
                            RemoveFromMergeTable(details.ContactCode);

                            if (lstDetails.Count > 0)
                            {
                                Data.MergeTable clsMergeTable = new Data.MergeTable();
                                Data.MergeTableDetails clsMergeTableDetails;

                                // insert the main table
                                clsMergeTableDetails = new Data.MergeTableDetails()
                                {
                                    MainTableCode = details.ContactCode,
                                    ChildTableCode = details.ContactCode
                                };
                                clsMergeTable.Insert(clsMergeTableDetails);

                                // insert the child tables
                                for (int x = 0; x < lstDetails.Count; x++)
                                {
                                    clsMergeTableDetails = new Data.MergeTableDetails()
                                    {
                                        MainTableCode = details.ContactCode,
                                        ChildTableCode = lstDetails[x].ContactCode
                                    };
                                    clsMergeTable.Insert(clsMergeTableDetails);

                                }
                                clsMergeTable.CommitAndDispose();
                            }
                        }
                        return;
                    }
					// Nov 18, 2011 : Lemu - auto suspend if already doing a transaction
					if (mboIsInTransaction)
					{
						if (mclsSalesTransactionDetails.CustomerID == Constants.C_RETAILPLUS_CUSTOMERID && mclsSalesTransactionDetails.CustomerID != details.ContactID)
						{
                            Data.Contacts clsContacts = new Data.Contacts(mConnection, mTransaction);
                            mConnection = clsContacts.Connection; mTransaction = clsContacts.Transaction;

                            clsContacts.UpdateLastCheckInDate(mclsSalesTransactionDetails.CustomerID, Constants.C_DATE_MIN_VALUE);
                            clsContacts.UpdateLastCheckInDate(details.ContactID, mclsSalesTransactionDetails.TransactionDate);

                            // Jan 31, 2015 : Lemu
                            // put back to SuspendedOpen so that it won't be open somewhere else
                            Data.SalesTransactions clsSalesTransactions1 = new Data.SalesTransactions(mConnection, mTransaction);
                            mConnection = clsSalesTransactions1.Connection; mTransaction = clsSalesTransactions1.Transaction;
                            clsEvent.AddEventLn("Putting transaction SuspendedOpen: " + mclsSalesTransactionDetails.TransactionNo, true);
                            clsSalesTransactions1.UpdateTransactionToSuspendedOpen(mclsSalesTransactionDetails.TransactionID);

                            clsContacts.CommitAndDispose();

							LoadContact(ContactGroupCategory.CUSTOMER, details);
							return;
						}
						else if (mclsSalesTransactionDetails.CustomerID == details.ContactID)
						{ return; }
						else if (mclsSalesTransactionDetails.CustomerID != details.ContactID)
						{
                            if (MessageBox.Show("Would you like to move from table: " + mclsSalesTransactionDetails.CustomerDetails.ContactCode + " to table: " + details.ContactCode + "." + Environment.NewLine + "Please click [Yes] to move, [Cancel] to create new transaction in the selected table.", "RetailPlus", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.OK)
                            {
                                Data.Contacts clsContacts = new Data.Contacts(mConnection, mTransaction);
                                mConnection = clsContacts.Connection; mTransaction = clsContacts.Transaction;

                                clsContacts.UpdateLastCheckInDate(mclsSalesTransactionDetails.CustomerID, Constants.C_DATE_MIN_VALUE);
                                clsContacts.UpdateLastCheckInDate(details.ContactID, mclsSalesTransactionDetails.TransactionDate);

                                // Jan 31, 2015 : Lemu
                                // put back to SuspendedOpen so that it won't be open somewhere else
                                Data.SalesTransactions clsSalesTransactions1 = new Data.SalesTransactions(mConnection, mTransaction);
                                mConnection = clsSalesTransactions1.Connection; mTransaction = clsSalesTransactions1.Transaction;
                                clsEvent.AddEventLn("Putting transaction SuspendedOpen: " + mclsSalesTransactionDetails.TransactionNo, true);
                                clsSalesTransactions1.UpdateTransactionToSuspendedOpen(mclsSalesTransactionDetails.TransactionID);

                                clsContacts.CommitAndDispose();

                                LoadContact(ContactGroupCategory.CUSTOMER, details);
                                return;
                            }
                            else
                            {
                                this.SuspendTransaction(false); 
                            }
                        }
					}
                    else
                    {
                        Data.Contacts clsContacts = new Data.Contacts(mConnection, mTransaction);
                        mConnection = clsContacts.Connection; mTransaction = clsContacts.Transaction;

                        clsContacts.UpdateLastCheckInDate(mclsSalesTransactionDetails.CustomerID, Constants.C_DATE_MIN_VALUE);
                        clsContacts.UpdateLastCheckInDate(details.ContactID, mclsSalesTransactionDetails.TransactionDate);
                        clsContacts.CommitAndDispose();
                    }

					Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction);
                    mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction;

					string stTransactionNo = clsSalesTransactions.getSuspendedTransactionNo(details.ContactID, mclsTerminalDetails.TerminalNo, mclsTerminalDetails.BranchID);

					if (stTransactionNo != string.Empty)
					{
						LoadTransaction(stTransactionNo, mclsTerminalDetails.TerminalNo);
					}
					else
					{
						this.LoadOptions();
						LoadContact(ContactGroupCategory.CUSTOMER, details);
					}
                    clsSalesTransactions.CommitAndDispose();
				}
				else { 
					clsEvent.AddEventLn("Cancelled!"); 
				}
			}
			catch (Exception ex)
			{ clsEvent.AddErrorEventLn(ex); }
		}
コード例 #27
0
ファイル: MainWnd.cs プロジェクト: marioricci/erp-luma
		private void CreditCardReplacement(CreditCardStatus pvtCreditCardStatus)
		{
			if (mboIsInTransaction)
			{
				MessageBox.Show("Sorry you cannot replace a Credit Card while there is an ongoing transaction. Please finish the transaction first.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
				return;
			}

			DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.CreditCardChange);

            if (loginresult == DialogResult.OK)
			{
				try
				{
					DialogResult result; Data.ContactDetails clsContactDetails;
					ContactSelectWnd clsContactWnd = new ContactSelectWnd();
                    clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK;
                    clsContactWnd.SysConfigDetails = mclsSysConfigDetails;
                    clsContactWnd.TerminalDetails = mclsTerminalDetails;
					clsContactWnd.ContactGroupCategory = AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER;
                    clsContactWnd.Header = "Please select customer for credit card replacement.";
					clsContactWnd.ShowDialog(this);
					clsContactDetails = clsContactWnd.Details;
					result = clsContactWnd.Result;
					clsContactWnd.Close();
					clsContactWnd.Dispose();

					if (result != DialogResult.OK)
					{ return; }

					if (clsContactDetails.ContactID == Constants.ZERO || clsContactDetails.ContactID == Constants.C_RETAILPLUS_CUSTOMERID)
					{ return; }

					clsEvent.AddEvent("[" + lblCashier.Text + "] Replacing credit card...");

                    Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction);
                    mConnection = clsContact.Connection; mTransaction = clsContact.Transaction;

					clsContactDetails = clsContact.Details(clsContactDetails.ContactID);
                    Data.ContactDetails clsGuarantor = clsContact.Details(clsContactDetails.CreditDetails.GuarantorID);
					clsContact.CommitAndDispose();

					if (clsContactDetails.CreditDetails.CreditCardNo == string.Empty || clsContactDetails.CreditDetails.CreditCardNo == null)
					{
						clsEvent.AddEventLn("Cancelled!");
						clsEvent.AddEventLn(clsContactDetails.ContactName + " has no valid Credit Card yet. ");
						MessageBox.Show(clsContactDetails.ContactName + " has no valid Credit Card yet. Please select another customer.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error);
						return;
					}
					clsEvent.AddEvent("[" + lblCashier.Text + "] Replacing credit card #: " + clsContactDetails.CreditDetails.CreditCardNo + " of " + clsContactDetails.ContactName + " as " + pvtCreditCardStatus.ToString("G"));

					string strOldCreditCardNo = clsContactDetails.CreditDetails.CreditCardNo;
					ContactCreditWnd clsContactCreditWnd = new ContactCreditWnd();
					if (pvtCreditCardStatus == CreditCardStatus.Replaced_Lost)
						clsContactCreditWnd.Header = "Credit Card Replacement of LOST CARD ";
					else if (pvtCreditCardStatus == CreditCardStatus.Replaced_Expired)
						clsContactCreditWnd.Header = "Credit Card Replacement of EXPIRED CARD ";
                    clsContactCreditWnd.CardTypeDetails = clsContactDetails.CreditDetails.CardTypeDetails;
					clsContactCreditWnd.Guarantor = clsGuarantor;
					clsContactCreditWnd.ContactDetails = clsContactDetails;
					clsContactCreditWnd.CreditCardStatus = pvtCreditCardStatus;
                    clsContactCreditWnd.TerminalDetails = mclsTerminalDetails;
					clsContactCreditWnd.ShowDialog(this);
					result = clsContactCreditWnd.Result;
					clsContactDetails = clsContactCreditWnd.ContactDetails;
					clsContactCreditWnd.Close();
					clsContactCreditWnd.Dispose();

					if (result == DialogResult.OK)
					{
                        Data.Products clsProducts = new Data.Products(mConnection, mTransaction);
                        mConnection = clsProducts.Connection; mTransaction = clsProducts.Transaction;

                        string strProductBarcode = Data.Products.DEFAULT_CREDIT_CARD_REPLACEMENT_FEE_BARCODE;
                        //override if with Guarantor
                        if (clsContactDetails.CreditDetails.CardTypeDetails.WithGuarantor)
                            strProductBarcode = Data.Products.DEFAULT_SUPER_CARD_REPLACEMENT_FEE_BARCODE;

                        if (clsProducts.Details(strProductBarcode).ProductID == 0)
                        {
                            if (!clsContactDetails.CreditDetails.CardTypeDetails.WithGuarantor)
                                clsProducts.CREATE_CREDIT_CARD_REPLACEMENT_FEE_BARCODE_PRODUCT();
                            else
                                clsProducts.CREATE_SUPER_CARD_REPLACEMENT_FEE_BARCODE_PRODUCT();

                            Methods.InsertAuditLog(mclsTerminalDetails, "System Administrator", AccessTypes.CreditCardChange, strProductBarcode + " product has been created coz it's not configured");
                        }
                        clsProducts.CommitAndDispose();

                        MessageBox.Show("Credit Card No: " + strOldCreditCardNo + " has been replaced with new card #: " + clsContactDetails.CreditDetails.CreditCardNo + ".", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information);

						clsEvent.AddEventLn("Done!", true);
						clsEvent.AddEventLn("Credit Card No: " + strOldCreditCardNo + " has been replaced with new card #: " + clsContactDetails.CreditDetails.CreditCardNo + ".", true);

                        LocalDB clsLocalDB = new LocalDB(mConnection, mTransaction);
                        mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction;

						clsEvent.AddEvent("[" + lblCashier.Text + "] Creating " + strProductBarcode + "transaction for customer: ");
						LoadContact(AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER, clsContactDetails);
						if (!this.CreateTransaction()) return;

                        txtBarCode.Text = strProductBarcode;
						ReadBarCode();
						int iRow = dgItems.CurrentRowIndex;

						txtBarCode.Text = "";
						CloseTransaction();

                        clsLocalDB.CommitAndDispose();
					}
					else { clsEvent.AddEventLn("Cancelled!"); }
				}
				catch (Exception ex)
				{ 
                    InsertErrorLogToFile(ex, "ERROR!!! Replacing internal credit card."); 
                }
				Cursor.Current = Cursors.Default;
			}
		}
コード例 #28
0
ファイル: MainRestoWnd.cs プロジェクト: marioricci/erp-luma
		private void SelectContact(AceSoft.RetailPlus.Data.ContactGroupCategory enumContactGroupCategory)
		{
			// Sep 24, 2011      Lemuel E. Aceron
			// Added order slip wherein all punch items will not change sales and inventory
			// a customer named ORDER SLIP should be defined in contacts
			if (lblCustomer.Text.Trim().ToUpper() == Constants.C_RETAILPLUS_ORDER_SLIP_CUSTOMER && mboIsInTransaction && enumContactGroupCategory == AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER)
			{
				MessageBox.Show("Sorry you cannot select ORDER SLIP customer when an item is already purchased.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
				return;
			}

			if (mclsTerminalDetails.AutoPrint == PrintingPreference.Auto && mboIsInTransaction)
			{
				switch (enumContactGroupCategory)
				{ 
					case AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER:
						MessageBox.Show("Sorry you cannot select a customer when an item is already purchased.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
						break;
					case AceSoft.RetailPlus.Data.ContactGroupCategory.AGENT:
						MessageBox.Show("Sorry you cannot select an agent when an item is already purchased.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
						break;
				}

				return;
			}

			try
			{
				switch (enumContactGroupCategory)
				{
					case AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER:
						clsEvent.AddEvent("[" + lblCashier.Text + "] Selecting customer.");
						if (mclsTerminalDetails.ShowCustomerSelection == false)
						{
							clsEvent.AddEventLn("Cancelled! ShowCustomerSelection is OFF, reward is ON.");
							txtBarCode.Text = Constants.SWIPE_REWARD_CARD;
							txtBarCode.Focus(); txtBarCode.SelectionStart = txtBarCode.Text.Length + 1;
							return;
						}
						break;
					case AceSoft.RetailPlus.Data.ContactGroupCategory.AGENT:
						clsEvent.AddEvent("[" + lblCashier.Text + "] Selecting agent.");
						break;
				}

				DialogResult result; Data.ContactDetails details;
				TableSelectWnd clsTableSelectWnd = new TableSelectWnd();
				clsTableSelectWnd.TerminalDetails = mclsTerminalDetails;
                clsTableSelectWnd.ContactGroupCategory = enumContactGroupCategory;
				clsTableSelectWnd.ShowAvailableTableOnly = mboIsInTransaction;
				clsTableSelectWnd.ShowDialog(this);
				details = clsTableSelectWnd.Details;
				result = clsTableSelectWnd.Result;
				clsTableSelectWnd.Close();
				clsTableSelectWnd.Dispose();

				if (result == DialogResult.OK)
				{
					// Nov 18, 2011 : Lemu - auto suspend if already doing a transaction
                    if (mboIsInTransaction)
                    {
                        if (mclsSalesTransactionDetails.CustomerID == Constants.C_RETAILPLUS_CUSTOMERID && mclsSalesTransactionDetails.CustomerID != details.ContactID)
                        {
                            Data.Contacts clsContacts = new Data.Contacts(mConnection, mTransaction);
                            mConnection = clsContacts.Connection; mTransaction = clsContacts.Transaction;

                            clsContacts.UpdateLastCheckInDate(mclsSalesTransactionDetails.CustomerID, Constants.C_DATE_MIN_VALUE);
                            clsContacts.UpdateLastCheckInDate(details.ContactID, mclsSalesTransactionDetails.TransactionDate);
                            clsContacts.CommitAndDispose();

                            LoadContact(ContactGroupCategory.CUSTOMER, details);
                            return;
                        }
                        else if (mclsSalesTransactionDetails.CustomerID == details.ContactID)
                        { return; }
                        else if (mclsSalesTransactionDetails.CustomerID != details.ContactID)
                        {
                            if (MessageBox.Show("Would you like to move from table: " + mclsSalesTransactionDetails.CustomerDetails.ContactCode + " to table: " + details.ContactCode + "." + Environment.NewLine + "Please click [Yes] to move, [Cancel] to create new transaction in the selected table.", "RetailPlus", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.OK)
                            {
                                Data.Contacts clsContacts = new Data.Contacts(mConnection, mTransaction);
                                mConnection = clsContacts.Connection; mTransaction = clsContacts.Transaction;

                                clsContacts.UpdateLastCheckInDate(mclsSalesTransactionDetails.CustomerID, Constants.C_DATE_MIN_VALUE);
                                clsContacts.UpdateLastCheckInDate(details.ContactID, mclsSalesTransactionDetails.TransactionDate);
                                clsContacts.CommitAndDispose();

                                LoadContact(ContactGroupCategory.CUSTOMER, details);
                                return;
                            }
                            else
                            {
                                this.SuspendTransaction(false);
                            }
                        }
                    }
                    else
                    {
                        Data.Contacts clsContacts = new Data.Contacts(mConnection, mTransaction);
                        mConnection = clsContacts.Connection; mTransaction = clsContacts.Transaction;

                        clsContacts.UpdateLastCheckInDate(mclsSalesTransactionDetails.CustomerID, Constants.C_DATE_MIN_VALUE);
                        clsContacts.UpdateLastCheckInDate(details.ContactID, mclsSalesTransactionDetails.TransactionDate);
                        clsContacts.CommitAndDispose();
                    }

                    Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction);
                    mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction;

                    string stTransactionNo = clsSalesTransactions.getSuspendedTransactionNo(details.ContactID, mclsTerminalDetails.TerminalNo, mclsTerminalDetails.BranchID);

                    if (stTransactionNo != string.Empty)
                    {
                        LoadTransaction(stTransactionNo, mclsTerminalDetails.TerminalNo);
                    }
                    else
                    {
                        this.LoadOptions();
                        LoadContact(ContactGroupCategory.CUSTOMER, details);

                        // 13Mar2015 : MPC, override the price using the PriceLevel
                        //             For PriceLevel1...5
                        if (mclsSysConfigDetails.EnablePriceLevel)
                        {
                            Cursor.Current = Cursors.WaitCursor;

                            Int32 iOldRow = dgItems.CurrentRowIndex;
                            Data.SalesTransactionItemDetails Details = new Data.SalesTransactionItemDetails();

                            Data.ProductPackage clsProductPackage = new Data.ProductPackage(mConnection, mTransaction);
                            mConnection = clsProductPackage.Connection; mTransaction = clsProductPackage.Transaction;

                            Data.ProductPackageDetails clsProductPackageDetails = new Data.ProductPackageDetails();

                            System.Data.DataTable dt = (System.Data.DataTable)dgItems.DataSource;
                            for (int x = 0; x < dt.Rows.Count; x++)
                            {
                                dgItems.CurrentRowIndex = x;
                                Details = getCurrentRowItemDetails();

                                dgItems.UnSelect(x);
                                if (Details.TransactionItemStatus == TransactionItemStatus.Valid)
                                {
                                    clsProductPackageDetails = clsProductPackage.Details(Details.ProductPackageID);

                                    switch (mclsContactDetails.PriceLevel)
                                    {
                                        case PriceLevel.SRP: Details.Price = clsProductPackageDetails.Price; break;
                                        case PriceLevel.One: Details.Price = clsProductPackageDetails.Price1 == 0 ? clsProductPackageDetails.Price : clsProductPackageDetails.Price1; break;
                                        case PriceLevel.Two: Details.Price = clsProductPackageDetails.Price2 == 0 ? clsProductPackageDetails.Price : clsProductPackageDetails.Price2; break;
                                        case PriceLevel.Three: Details.Price = clsProductPackageDetails.Price3 == 0 ? clsProductPackageDetails.Price : clsProductPackageDetails.Price3; break;
                                        case PriceLevel.Four: Details.Price = clsProductPackageDetails.Price4 == 0 ? clsProductPackageDetails.Price : clsProductPackageDetails.Price4; break;
                                        case PriceLevel.Five: Details.Price = clsProductPackageDetails.Price5 == 0 ? clsProductPackageDetails.Price : clsProductPackageDetails.Price5; break;
                                        case PriceLevel.WSPrice: Details.Price = clsProductPackageDetails.WSPrice == 0 ? clsProductPackageDetails.Price : clsProductPackageDetails.WSPrice; break;
                                        default: Details.Price = clsProductPackageDetails.Price; break;
                                    }
                                    Details = ApplyPromo(Details);

                                    ApplyChangeQuantityPriceAmountDetails(x, Details, "Change Price: Change Contact");
                                }
                            }

                            clsProductPackage.CommitAndDispose();

                            if (iOldRow >= 0)
                            {
                                dgItems.CurrentRowIndex = iOldRow;
                                dgItems.Select(iOldRow);

                                Details = getCurrentRowItemDetails();
                                DisplayItemToTurretDelegate DisplayItemToTurretDel = new DisplayItemToTurretDelegate(DisplayItemToTurret);
                                DisplayItemToTurretDel.BeginInvoke(Details.Description, Details.ProductUnitCode, Details.Quantity, Details.Price, Details.Discount, Details.PromoApplied, Details.Amount, Details.VAT, Details.EVAT, null, null);
                                InsertAuditLog(AccessTypes.ChangePrice, "Change price: change contact : for item " + Details.ProductCode + " to " + Details.Price.ToString("#,##0.#0") + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode);
                                mbodgItemRowClick = false;
                            }
                            
                            Cursor.Current = Cursors.Default;
                        }
                    }
                    clsSalesTransactions.CommitAndDispose();
				}
				else { clsEvent.AddEventLn("Cancelled!"); }
			}
			catch (Exception ex)
			{ clsEvent.AddErrorEventLn(ex); }
		}
コード例 #29
0
        private bool SaveRecord()
        {
            if (MessageBox.Show("Please validate the customer information details before proceeding. Are you sure you want to continue?", "RetailPlus ™", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.No)
            {
                return(false);
            }
            else
            {
                Data.ContactDetails clsDetails = new Data.ContactDetails();
                clsDetails = mContactDetails;

                clsDetails.ContactCode    = txtContactCode.Text;
                clsDetails.ContactName    = txtContactName.Text;
                clsDetails.ContactGroupID = Convert.ToInt32(Constants.CONTACT_GROUP_CUSTOMER);
                clsDetails.ModeOfTerms    = ModeOfTerms.Days;
                clsDetails.Terms          = Convert.ToInt32("0");
                clsDetails.TINNo          = txtTelephoneNo.Tag == null ? "" : txtTelephoneNo.Tag.ToString();
                clsDetails.LTONo          = txtRemarks.Tag == null ? "" : txtRemarks.Tag.ToString();
                clsDetails.Address        = txtAddress.Text;
                clsDetails.BusinessName   = txtBusinessName.Text;
                clsDetails.TelephoneNo    = txtTelephoneNo.Text;
                clsDetails.Remarks        = txtRemarks.Text;
                //clsDetails.Debit = Convert.ToDecimal("0");
                //clsDetails.Credit = Convert.ToDecimal(txtCredit.Text);
                //clsDetails.IsCreditAllowed = chkIsCreditAllowed.Checked;
                //clsDetails.CreditLimit = Convert.ToDecimal(txtCreditLimit.Text);
                //clsDetails.DepartmentID = Convert.ToInt16(cboDepartment.SelectedItem.Value);
                //clsDetails.PositionID = Convert.ToInt16(cboPosition.SelectedItem.Value);

                Data.ContactAddOnDetails clsAddOnDetails = new Data.ContactAddOnDetails();
                clsAddOnDetails.ContactID  = clsDetails.ContactID;
                clsAddOnDetails.Salutation = cboSalutation.SelectedValue.ToString();
                clsAddOnDetails.FirstName  = txtFirstName.Text;
                clsAddOnDetails.MiddleName = txtMiddleName.Text;
                clsAddOnDetails.LastName   = txtLastName.Text;
                clsAddOnDetails.SpouseName = "";
                DateTime dteBirthDate = Constants.C_DATE_MIN_VALUE;
                dteBirthDate = DateTime.TryParse(txtBirthDate.Text, out dteBirthDate) ? dteBirthDate : Constants.C_DATE_MIN_VALUE;
                clsAddOnDetails.BirthDate       = dteBirthDate;
                clsAddOnDetails.SpouseBirthDate = Constants.C_DATE_MIN_VALUE;
                clsAddOnDetails.AnniversaryDate = Constants.C_DATE_MIN_VALUE;
                clsAddOnDetails.Address1        = txtAddress.Text;
                clsAddOnDetails.Address2        = string.Empty;
                clsAddOnDetails.City            = string.Empty;
                clsAddOnDetails.State           = string.Empty;
                clsAddOnDetails.ZipCode         = string.Empty;
                clsAddOnDetails.CountryID       = Constants.C_DEF_COUNTRY_ID;
                clsAddOnDetails.CountryCode     = Constants.C_DEF_COUNTRY_CODE;
                clsAddOnDetails.BusinessPhoneNo = txtTelephoneNo.Text;
                clsAddOnDetails.HomePhoneNo     = string.Empty;
                clsAddOnDetails.MobileNo        = txtMobileNo.Text;
                clsAddOnDetails.FaxNo           = string.Empty;
                clsAddOnDetails.EmailAddress    = string.Empty;

                clsDetails.AdditionalDetails = clsAddOnDetails;

                Data.Contacts clsContact = new Data.Contacts();
                if (mContactDetails.ContactID == 0)
                {
                    clsDetails.ContactGroupID = Constants.CONTACT_GROUP_CUSTOMER;
                    clsDetails.PositionID     = Constants.C_RETAILPLUS_AGENT_POSITIONID;
                    clsDetails.DepartmentID   = Constants.C_RETAILPLUS_AGENT_DEPARTMENTID;
                    clsDetails.ContactID      = clsContact.Insert(clsDetails);
                }
                else
                {
                    clsDetails.PositionID       = mContactDetails.PositionID;
                    clsDetails.DepartmentID     = mContactDetails.DepartmentID;
                    clsDetails.ContactGroupID   = mContactDetails.ContactGroupID;
                    clsDetails.ContactGroupName = mContactDetails.ContactGroupName;
                    clsContact.Update(clsDetails);
                }
                clsContact.CommitAndDispose();

                mContactDetails = clsDetails;

                return(true);
            }
        }
コード例 #30
0
        public void PrintCreditPayment()
        {
            try
            {
                PrintReportHeadersSection(false, true);

                msbToPrint.Append("-".PadRight(mclsTerminalDetails.MaxReceiptWidth, '-') + Environment.NewLine);
                msbToPrint.Append(CenterString("CREDIT PAYMENT SLIP", mclsTerminalDetails.MaxReceiptWidth) + Environment.NewLine);
                if (mclsContactDetails.CreditDetails.CardTypeDetails.WithGuarantor)
                {
                    Data.Contacts clsContacts = new Data.Contacts(mConnection, mTransaction);
                    mConnection = clsContacts.Connection; mTransaction = clsContacts.Transaction;

                    Data.ContactDetails GuarantorDetails = clsContacts.Details(mclsContactDetails.CreditDetails.GuarantorID);
                    clsContacts.CommitAndDispose();
                    msbToPrint.Append(CenterString("(Gua:" + (GuarantorDetails.ContactCode + ":" + GuarantorDetails.ContactName) + ")", mclsTerminalDetails.MaxReceiptWidth) + Environment.NewLine);
                }
                msbToPrint.Append("-".PadRight(mclsTerminalDetails.MaxReceiptWidth, '-') + Environment.NewLine);
                msbToPrint.Append("Amount Paid".PadRight(15) + ":" + mclsSalesTransactionDetails.AmountPaid.ToString("#,##0.#0") + Environment.NewLine);
                msbToPrint.Append("Payment Type".PadRight(15) + ":" + mclsSalesTransactionDetails.PaymentType.ToString("G") + Environment.NewLine);
                if (mclsSalesTransactionDetails.PaymentDetails.arrChequePaymentDetails != null)
                {
                    foreach (Data.ChequePaymentDetails chequepaymentdet in mclsSalesTransactionDetails.PaymentDetails.arrChequePaymentDetails)
                    {
                        //print cheque details
                        msbToPrint.Append("Cheque No.".PadRight(11) + ":" + chequepaymentdet.ChequeNo.Trim().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 12) + Environment.NewLine);
                    }
                }
                msbToPrint.Append("Payment Ref No.".PadRight(15) + ":" + Int32.Parse(mclsSalesTransactionDetails.TransactionNo).ToString().PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine);
                msbToPrint.Append("Payee".PadRight(7) + ":" + mclsSalesTransactionDetails.CustomerDetails.ContactName.PadLeft(mclsTerminalDetails.MaxReceiptWidth - 8) + Environment.NewLine);
                msbToPrint.Append("Card No".PadRight(7) + ":" + mclsSalesTransactionDetails.CustomerDetails.CreditDetails.CreditCardNo.PadLeft(mclsTerminalDetails.MaxReceiptWidth - 8) + Environment.NewLine);
                msbToPrint.Append("-".PadRight(mclsTerminalDetails.MaxReceiptWidth, '-') + Environment.NewLine);
                msbToPrint.Append(Environment.NewLine);
                msbToPrint.Append(Environment.NewLine);
                msbToPrint.Append(Environment.NewLine);
                msbToPrint.Append("Authorized Signature: ".PadRight(mclsTerminalDetails.MaxReceiptWidth, '_') + Environment.NewLine);
                msbToPrint.Append(Environment.NewLine);

                PrintPageAndReportFooterSection(false, DateTime.MinValue);
            }
            catch (Exception ex)
            {
                InsertErrorLogToFile(ex);
                MessageBox.Show("Sorry an error was encountered during printing, please reprint again." + Environment.NewLine + "Details: " + ex.Message, "RetailPlus");
            }
        }
コード例 #31
0
ファイル: MainWnd.cs プロジェクト: marioricci/erp-luma
        private void UpdateContact()
        {
            try {
                
                DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts);
                if (loginresult == DialogResult.OK)
                {
                    loginresult = System.Windows.Forms.DialogResult.Cancel;
                    Data.ContactDetails clsContactDetails = new Data.ContactDetails(); 
                    if (mclsSalesTransactionDetails.CustomerID != 0 && mclsSalesTransactionDetails.CustomerID != Constants.C_RETAILPLUS_CUSTOMERID)
                    {
                        Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction);
                        mConnection = clsContact.Connection; mTransaction = clsContact.Transaction;
                        clsContactDetails = clsContact.Details(mclsSalesTransactionDetails.CustomerID);
                        clsContact.CommitAndDispose();
                        loginresult = System.Windows.Forms.DialogResult.OK;
                    }
                    else
                    {
                        ContactSelectWnd clsContactWnd = new ContactSelectWnd();
                        clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK;
                        clsContactWnd.SysConfigDetails = mclsSysConfigDetails;
                        clsContactWnd.TerminalDetails = mclsTerminalDetails;
                        clsContactWnd.ContactGroupCategory = Data.ContactGroupCategory.CUSTOMER;
                        clsContactWnd.ShowDialog(this);
                        clsContactDetails = clsContactWnd.Details;
                        loginresult = clsContactWnd.Result;
                        clsContactWnd.Close();
                        clsContactWnd.Dispose();
                    }

                    if (loginresult == System.Windows.Forms.DialogResult.OK)
                    {
                        DialogResult addresult = System.Windows.Forms.DialogResult.Cancel;

                        switch (mclsSysConfigDetails.ContactAddWndType)
                        {
                            case ContactAddWndType.ContactAddWnd:
                            case ContactAddWndType.ContactAddNoLTOWnd:
                                ContactAddWnd clsContactAddWnd = new ContactAddWnd();
                                clsContactAddWnd.Caption = "Update Customer [" + mclsContactDetails.ContactName + "]";
                                clsContactAddWnd.ContactDetails = clsContactDetails;
                                clsContactAddWnd.TerminalDetails = mclsTerminalDetails;
                                clsContactAddWnd.SysConfigDetails = mclsSysConfigDetails;
                                clsContactAddWnd.ShowDialog(this);
                                addresult = clsContactAddWnd.Result;
                                clsContactDetails = clsContactAddWnd.ContactDetails;
                                clsContactAddWnd.Close();
                                clsContactAddWnd.Dispose();
                                break;
                            case ContactAddWndType.ContactAddHCareWnd:
                                ContactAddHCareWnd clsContactAddHCareWnd = new ContactAddHCareWnd();
                                clsContactAddHCareWnd.Caption = "Update Customer [" + mclsContactDetails.ContactName + "]";
                                clsContactAddHCareWnd.ContactDetails = clsContactDetails;
                                clsContactAddHCareWnd.TerminalDetails = mclsTerminalDetails;
                                clsContactAddHCareWnd.ShowDialog(this);
                                addresult = clsContactAddHCareWnd.Result;
                                clsContactDetails = clsContactAddHCareWnd.ContactDetails;
                                clsContactAddHCareWnd.Close();
                                clsContactAddHCareWnd.Dispose();
                                break;
                            default:
                                ContactAddDetWnd clsContactAddDetWnd = new ContactAddDetWnd();
                                clsContactAddDetWnd.Caption = "Update Customer [" + mclsContactDetails.ContactName + "]";
                                clsContactAddDetWnd.ContactDetails = clsContactDetails;
                                clsContactAddDetWnd.TerminalDetails = mclsTerminalDetails;
                                clsContactAddDetWnd.ShowDialog(this);
                                addresult = clsContactAddDetWnd.Result;
                                clsContactDetails = clsContactAddDetWnd.ContactDetails;
                                clsContactAddDetWnd.Close();
                                clsContactAddDetWnd.Dispose();
                                break;
                        }
                        if (addresult == DialogResult.OK)
                        {
                            if (mboIsInTransaction)
                            {
                                LoadContact(Data.ContactGroupCategory.CUSTOMER, clsContactDetails);
                            }
                            MessageBox.Show("Customer has been updated and the details has been reloaded for this transaction.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                    }
                }
                
            }
            catch { }
        }
コード例 #32
0
        private void ContactUpdate()
        {
            try
            {
                if (!EnableContactAddUpdate)
                {
                    return;
                }

                Int64 iContactID = Convert.ToInt64(dgContacts[dgContacts.CurrentRowIndex, 0].ToString());

                if (iContactID != 0 && iContactID != Constants.C_RETAILPLUS_CUSTOMERID)
                {
                    Data.Contacts       clsContact = new Data.Contacts();
                    Data.ContactDetails details    = clsContact.Details(iContactID);
                    clsContact.CommitAndDispose();

                    DialogResult addresult = System.Windows.Forms.DialogResult.Cancel;

                    switch (SysConfigDetails.ContactAddWndType)
                    {
                    case ContactAddWndType.ContactAddWnd:
                    case ContactAddWndType.ContactAddNoLTOWnd:
                        ContactAddWnd clsContactAddWnd = new ContactAddWnd();
                        clsContactAddWnd.Caption          = "Update Customer [" + details.ContactName + "]";
                        clsContactAddWnd.ContactDetails   = details;
                        clsContactAddWnd.TerminalDetails  = TerminalDetails;
                        clsContactAddWnd.SysConfigDetails = SysConfigDetails;
                        clsContactAddWnd.ShowDialog(this);
                        addresult = clsContactAddWnd.Result;
                        details   = clsContactAddWnd.ContactDetails;
                        clsContactAddWnd.Close();
                        clsContactAddWnd.Dispose();
                        break;

                    case ContactAddWndType.ContactAddHCareWnd:
                        ContactAddHCareWnd clsContactAddHCareWnd = new ContactAddHCareWnd();
                        clsContactAddHCareWnd.Caption         = "Update Customer [" + details.ContactName + "]";
                        clsContactAddHCareWnd.ContactDetails  = details;
                        clsContactAddHCareWnd.TerminalDetails = TerminalDetails;
                        clsContactAddHCareWnd.ShowDialog(this);
                        addresult = clsContactAddHCareWnd.Result;
                        details   = clsContactAddHCareWnd.ContactDetails;
                        clsContactAddHCareWnd.Close();
                        clsContactAddHCareWnd.Dispose();
                        break;

                    default:
                        ContactAddDetWnd clsContactAddDetWnd = new ContactAddDetWnd();
                        clsContactAddDetWnd.Caption         = "Update Customer [" + details.ContactName + "]";
                        clsContactAddDetWnd.ContactDetails  = details;
                        clsContactAddDetWnd.TerminalDetails = TerminalDetails;
                        clsContactAddDetWnd.ShowDialog(this);
                        addresult = clsContactAddDetWnd.Result;
                        details   = clsContactAddDetWnd.ContactDetails;
                        clsContactAddDetWnd.Close();
                        clsContactAddDetWnd.Dispose();
                        break;
                    }
                    if (addresult == DialogResult.OK)
                    {
                        txtSearch.Text = details.ContactCode;
                        LoadContactData();
                    }
                }
            }
            catch { }
        }
コード例 #33
0
        private void ContactUpdate()
        {
            try
            {
                if (!EnableContactAddUpdate) return;

                Int64 iContactID = Convert.ToInt64(dgContacts[dgContacts.CurrentRowIndex, 0].ToString());

                if (iContactID != 0 && iContactID != Constants.C_RETAILPLUS_CUSTOMERID)
                {
                    Data.Contacts clsContact = new Data.Contacts();
                    Data.ContactDetails details = clsContact.Details(iContactID);
                    clsContact.CommitAndDispose();

                    DialogResult addresult = System.Windows.Forms.DialogResult.Cancel;

                    switch (SysConfigDetails.ContactAddWndType)
                    {
                        case ContactAddWndType.ContactAddWnd:
                        case ContactAddWndType.ContactAddNoLTOWnd:
                            ContactAddWnd clsContactAddWnd = new ContactAddWnd();
                            clsContactAddWnd.Caption = "Update Customer [" + details.ContactName + "]";
                            clsContactAddWnd.ContactDetails = details;
                            clsContactAddWnd.TerminalDetails = TerminalDetails;
                            clsContactAddWnd.SysConfigDetails = SysConfigDetails;
                            clsContactAddWnd.ShowDialog(this);
                            addresult = clsContactAddWnd.Result;
                            details = clsContactAddWnd.ContactDetails;
                            clsContactAddWnd.Close();
                            clsContactAddWnd.Dispose();
                            break;
                        case ContactAddWndType.ContactAddHCareWnd:
                            ContactAddHCareWnd clsContactAddHCareWnd = new ContactAddHCareWnd();
                            clsContactAddHCareWnd.Caption = "Update Customer [" + details.ContactName + "]";
                            clsContactAddHCareWnd.ContactDetails = details;
                            clsContactAddHCareWnd.TerminalDetails = TerminalDetails;
                            clsContactAddHCareWnd.ShowDialog(this);
                            addresult = clsContactAddHCareWnd.Result;
                            details = clsContactAddHCareWnd.ContactDetails;
                            clsContactAddHCareWnd.Close();
                            clsContactAddHCareWnd.Dispose();
                            break;
                        default:
                            ContactAddDetWnd clsContactAddDetWnd = new ContactAddDetWnd();
                            clsContactAddDetWnd.Caption = "Update Customer [" + details.ContactName + "]";
                            clsContactAddDetWnd.ContactDetails = details;
                            clsContactAddDetWnd.TerminalDetails = TerminalDetails;
                            clsContactAddDetWnd.ShowDialog(this);
                            addresult = clsContactAddDetWnd.Result;
                            details = clsContactAddDetWnd.ContactDetails;
                            clsContactAddDetWnd.Close();
                            clsContactAddDetWnd.Dispose();
                            break;
                    }
                    if (addresult == DialogResult.OK)
                    {
                        txtSearch.Text = details.ContactCode;
                        LoadContactData();
                    }
                }
            }
            catch { }
        }
コード例 #34
0
ファイル: MainWnd.cs プロジェクト: marioricci/erp-luma
		private void ResumeTransaction()
		{
            if (!SuspendTransactionAndContinue()) return;

            // ShowOneTerminalSuspendedTransactions 
            // Only same cashier in same terminal can be resume.
            // if terminalno and cashier is not the same to not allow   
			if (mclsTerminalDetails.ShowOneTerminalSuspendedTransactions)
			{
                Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction);
                mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction;

                int count = clsSalesTransactions.CountSuspended(mclsTerminalDetails.TerminalNo, mclsSalesTransactionDetails.CashierID, mclsTerminalDetails.BranchID);
                clsSalesTransactions.CommitAndDispose();

				if (count == 0)
				{
					MessageBox.Show("No suspended transaction found for this day.", "RetailPlus", MessageBoxButtons.OK);
					return;
				}
			}

			DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.ResumeTransaction);

			if (loginresult == DialogResult.OK)
			{
				try
				{
					ResumeTransactionWnd ResumeWnd = new ResumeTransactionWnd();
                    ResumeWnd.TerminalDetails = mclsTerminalDetails;
					ResumeWnd.CashierID = mclsSalesTransactionDetails.CashierID;
                    ResumeWnd.TransactionStatusToList = AceSoft.RetailPlus.TransactionStatus.Suspended;
					ResumeWnd.ShowDialog(this);
					DialogResult result = ResumeWnd.Result;
					Data.SalesTransactionDetails details = ResumeWnd.Details;
					ResumeWnd.Close();
					ResumeWnd.Dispose();

					if (result == DialogResult.OK)
					{
                        if (details.TransactionStatus == TransactionStatus.SuspendedOpen)
                        {
                            if (MessageBox.Show("This transaction is already open in another terminal. Please suspend in the other terminal first before opening." + Environment.NewLine + "Would you like to force open this transaction?", "RetailPlus", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No)
                            {
                                return;
                            }
                            else
                            {
                                DialogResult resResumeSuspendedOpenTransaction = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.ResumeSuspendedOpenTransaction);

                                if (resResumeSuspendedOpenTransaction != System.Windows.Forms.DialogResult.OK)
                                {
                                    clsEvent.AddEvent("[" + lblCashier.Text + "] Resuming transaction no. " + details.TransactionNo + " cancelled. SuspendedOpen");
                                    return;
                                }
                            }
                        }

						clsEvent.AddEvent("[" + lblCashier.Text + "] Resuming transaction no. " + details.TransactionNo);

						mclsSalesTransactionDetails = details;

						if (mclsSalesTransactionDetails.TransactionStatus == TransactionStatus.Refund || mclsSalesTransactionDetails.TransactionType == TransactionTypes.POSRefund)
						{
							mboIsRefund = true;
							lblSubtotalName.Text = "SUBTOTAL: REFUND";
							lblOrderType.Visible = false;
						}
						lblOrderType.Text = mclsSalesTransactionDetails.OrderType.ToString("G").ToUpper();
						lblTransNo.Text = mclsSalesTransactionDetails.TransactionNo;
						lblTransNo.Tag = mclsSalesTransactionDetails.TransactionID.ToString();
						lblCustomer.Text = mclsSalesTransactionDetails.CustomerName;
						lblCustomer.Tag = mclsSalesTransactionDetails.CustomerID.ToString();
						lblAgent.Text = mclsSalesTransactionDetails.AgentName;
						lblAgent.Tag = mclsSalesTransactionDetails.AgentID.ToString();
						lblAgentPositionDepartment.Text = mclsSalesTransactionDetails.AgentPositionName;
						lblAgentPositionDepartment.Tag = mclsSalesTransactionDetails.AgentDepartmentName;
						grpItems.Text = "Served by: " + details.WaiterName;
						grpItems.Tag = mclsSalesTransactionDetails.WaiterID.ToString();

						lblTransDate.Text = mclsSalesTransactionDetails.TransactionDate.ToString("MMM. dd, yyyy hh:mm:ss tt");
                        mdteOverRidingPrintDate = mclsSalesTransactionDetails.TransactionDate;

						lblTransDiscount.Tag = mclsSalesTransactionDetails.TransDiscountType.ToString("d");
                        lblConsignment.Visible = mclsSalesTransactionDetails.isConsignment;

                        if (mclsSalesTransactionDetails.ChargeAmount == 0)
                            lblTransCharge.Tag = ChargeTypes.NotApplicable.ToString("d");
                        else
                        {
                            Data.ChargeType clsChargeType = new Data.ChargeType(mConnection, mTransaction);
                            bool bolInPercent = clsChargeType.Details(mclsSalesTransactionDetails.ChargeCode).InPercent;
                            clsChargeType.CommitAndDispose();

                            if (bolInPercent)
                                lblTransCharge.Tag = ChargeTypes.Percentage.ToString("d");
                            else
                                lblTransCharge.Tag = ChargeTypes.FixedValue.ToString("d");
                        }

						// Aug 6, 2011 : Lemu
						// Put here from CloseTransaction
						try { mclsSalesTransactionDetails.CashierID = Convert.ToInt64(lblCashier.Tag); }
						catch { }
						mclsSalesTransactionDetails.CashierName = lblCashier.Text;

						LoadResumedItems(details.TransactionItems, false);

                        // Jan 31, 2015 : Lemu
                        // put back to SuspendedOpen so that it won't be open somewhere else
                        if (mclsSalesTransactionDetails.TransactionStatus == TransactionStatus.Suspended)
                        {
                            Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction);
                            mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction;
                            clsEvent.AddEvent("Putting transaction SuspendedOpen: " + mclsSalesTransactionDetails.TransactionNo, true);
                            clsSalesTransactions.UpdateTransactionToSuspendedOpen(mclsSalesTransactionDetails.TransactionID);
                            clsSalesTransactions.CommitAndDispose();
                        }

                        // 06Mar2015 : reload this, to use for price level
                        Data.Contacts clsContacts = new Data.Contacts(mConnection, mTransaction);
                        mConnection = clsContacts.Connection; mTransaction = clsContacts.Transaction;
                        mclsContactDetails = clsContacts.Details(mclsSalesTransactionDetails.CustomerID);
                        clsContacts.CommitAndDispose();

						mboIsInTransaction = true;

						InsertAuditLog(AccessTypes.ResumeTransaction, "Resume transaction #: " + lblTransNo.Text + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode);
						clsEvent.AddEventLn("[" + lblCashier.Text + "] Resuming transaction no. " + details.TransactionNo + " Done.", true);
					}
					else { clsEvent.AddEventLn("Cancelled!"); }


				}
				catch (Exception ex)
				{ 
                    InsertErrorLogToFile(ex, "ERROR!!! Resuming transaction."); 
                }
			}
		}
コード例 #35
0
        public void PrintCheckOutBillFooter()
        {
            if (mclsSalesTransactionDetails.OrderType == OrderTypes.Delivery)
            {
                Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction);
                mConnection = clsContact.Connection; mTransaction = clsContact.Transaction;

                Data.ContactDetails clsContactDetails = clsContact.Details(mclsSalesTransactionDetails.CustomerID);
                clsContact.CommitAndDispose();

                if (clsContactDetails.BusinessName != string.Empty)
                    msbToPrint.Append("Delivered to".PadRight(15) + ":" + clsContactDetails.BusinessName.PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine);
                if (clsContactDetails.TelephoneNo != string.Empty)
                    msbToPrint.Append("Tel #".PadRight(15) + ":" + clsContactDetails.TelephoneNo.PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine);
                if (clsContactDetails.Address != string.Empty)
                    msbToPrint.Append("Address".PadRight(15) + ":" + clsContactDetails.Address.PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine);

            }

        }
コード例 #36
0
ファイル: MainWnd.cs プロジェクト: marioricci/erp-luma
		private void CloseTransaction()
		{
			if (!mboIsInTransaction)
			{
				MessageBox.Show("No active transaction found.", "RetailPlus", MessageBoxButtons.OK);
				return;
			}
			if ((mclsSalesTransactionDetails.SubTotal - mclsSalesTransactionDetails.Discount) < 0)
			{
				MessageBox.Show("Sorry you cannot close a less than ZERO transaction.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
				return;
			}

			// Feb 13, 2009
			// overwrite cashierid and cashiername that will close the transaction
			// Aug 6, 2011 : Lemu
			// Remove this and put in ResumeTransaction 
			//try { mclsSalesTransactionDetails.CashierID = Convert.ToInt64(lblCashier.Tag); }
			//catch { }
			//mclsSalesTransactionDetails.CashierName = lblCashier.Text;
			DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.CloseTransaction);

			if (loginresult == DialogResult.OK)
			{
                // 02Nov2014 : do not let close the CreditPayment coz the selected transactions to be paid are not identified anymore.
                //           : this should not come to this if no error has encountered
                if (mclsSalesTransactionDetails.TransactionStatus == TransactionStatus.CreditPayment)
                {
                    MessageBox.Show("Sorry there was an error when paying this CREDIT transaction." + Environment.NewLine + "You should VOID this transaction and re-issue the payment.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

				if (mclsSalesTransactionDetails.SubTotal == 0)
				{
                    if (!mclsSysConfigDetails.AllowZeroAmountTransaction)
                    {
                        MessageBox.Show("Sorry you cannot close this ZERO amount transaction." + Environment.NewLine + "You can VOID this transaction instead.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                    else if (MessageBox.Show("Are you sure you want to close this  ZERO amount transaction?", "RetailPlus", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No)
                        return;
				}

				try
				{
                    clsEvent.AddEventLn("Closing transaction no. " + lblTransNo.Text, true);

                    clsEvent.AddEventLn("      showing payment screen", true);

                    Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction);
                    mConnection = clsContact.Connection; mTransaction = clsContact.Transaction;

                    // for checking - why do i need to reconnect in database if the customer is always updated?
                    mclsContactDetails = clsContact.Details(mclsSalesTransactionDetails.CustomerID);
                    LoadContact(Data.ContactGroupCategory.CUSTOMER, mclsContactDetails);
                    clsContact.CommitAndDispose();

                    Data.SalesTransactionItemDetails mTopItemDetails = getCurrentRowItemDetails();

					//insert payment details
					PaymentsWnd payment = new PaymentsWnd();
					payment.TerminalDetails = mclsTerminalDetails;
                    payment.SysConfigDetails = mclsSysConfigDetails;
					payment.CustomerDetails = mclsContactDetails;
					payment.SalesTransactionDetails = mclsSalesTransactionDetails;
					payment.CreditCardSwiped = mboCreditCardSwiped;
					payment.IsRefund = mboIsRefund;
                    payment.IsCreditChargeExcluded = mTopItemDetails.IsCreditChargeExcluded;
                    payment.OfflineProductDesc = (mTopItemDetails.IsCreditChargeExcluded && ItemDataTable.Rows.Count == 1 && mTopItemDetails.BarCode.Length <= 10) ? mTopItemDetails.ProductCode : "";
					payment.ShowDialog(this);

					DialogResult paymentResult = payment.Result;

					decimal AmountPaid = payment.AmountPaid;
					decimal CashPayment = payment.CashPayment;
					decimal ChequePayment = payment.ChequePayment;
					decimal CreditCardPayment = payment.CreditCardPayment;
					decimal CreditPayment = payment.CreditPayment;
					decimal DebitPayment = payment.DebitPayment;
					decimal CreditChargeAmount = payment.SalesTransactionDetails.CreditChargeAmount;

					decimal BalanceAmount = payment.BalanceAmount;
					decimal ChangeAmount = payment.ChangeAmount;
					PaymentTypes PaymentType = payment.PaymentType;
					ArrayList arrCashPaymentDetails = payment.CashPaymentDetails;
					ArrayList arrChequePaymentDetails = payment.ChequePaymentDetails;
					ArrayList arrCreditCardPaymentDetails = payment.CreditCardPaymentDetails;
					ArrayList arrCreditPaymentDetails = payment.CreditPaymentDetails;
					ArrayList arrDebitPaymentDetails = payment.DebitPaymentDetails;
					decimal RewardPointsPayment = payment.RewardPointsPayment;
					decimal RewardConvertedPayment = payment.RewardConvertedPayment;
                    Data.ContactDetails clsCreditorDetails = payment.CreditorDetails;
					payment.Close();
					payment.Dispose();

                    this.KeyPreview = false;
                    clsEvent.AddEventLn("      payment screen closed.", true);

                    if (paymentResult != DialogResult.OK)
                    {
                        clsEvent.AddEventLn(" cancelled.", true);
                    }
                    else
					{
                        // override the customerinformation if it's paid with in-house creditcard
                        if (clsCreditorDetails.ContactID !=0 && clsCreditorDetails.ContactID != mclsSalesTransactionDetails.CustomerID)
                        {
                            mboRewardCardSwiped = false; //reset this to false so that the existing rewards will not be overwritten
                            LoadContact(Data.ContactGroupCategory.CUSTOMER, clsCreditorDetails, true);
                        }

                        CloseTransaction(mTopItemDetails,
                                        AmountPaid, ChangeAmount, BalanceAmount, CashPayment, ChequePayment,
                                        CreditCardPayment, CreditPayment, CreditChargeAmount, DebitPayment,
                                        RewardConvertedPayment, RewardPointsPayment, PaymentType,
                                        arrCashPaymentDetails, arrChequePaymentDetails, arrCreditCardPaymentDetails,
                                        arrCreditPaymentDetails, arrDebitPaymentDetails);

                        clsEvent.AddEventLn(" Loading Options...", true, mclsSysConfigDetails.WillWriteSystemLog);
                        this.LoadOptions();
					}
				}
				catch (Exception ex)
				{
					InsertErrorLogToFile(ex, "ERROR!!! Closing transaction.");
				}
                this.KeyPreview = true;
			}
			Cursor.Current = Cursors.Default;
		}
コード例 #37
0
        /// <summary>
        /// This is to print the Internal Credit Card used for payment
        /// </summary>
        /// <param name="clsChargeSlipType"></param>
        public void PrintChargeSlip(ChargeSlipType clsChargeSlipType)
        {
            try
            {
                decimal decInternalCreditCardPayment = 0;
                Data.ContactDetails clsCreditorDetails = new Data.ContactDetails();
                Data.ContactDetails clsGuarantorDetails = new Data.ContactDetails();
                Data.CardTypeDetails clsCreditCardTypeDetails = new Data.CardTypeDetails();

                foreach (Data.CreditCardPaymentDetails clsCreditCardPaymentDetails in mclsSalesTransactionDetails.PaymentDetails.arrCreditCardPaymentDetails)
                {
                    if (clsCreditCardPaymentDetails.CardTypeDetails.CreditCardType == CreditCardTypes.Internal)
                    {
                        decInternalCreditCardPayment += clsCreditCardPaymentDetails.Amount;
                        clsCreditCardTypeDetails = clsCreditCardPaymentDetails.CardTypeDetails;
                        clsCreditorDetails = clsCreditCardPaymentDetails.CreditorDetails;

                        Data.Contacts clsContacts = new Data.Contacts(mConnection, mTransaction);
                        mConnection = clsContacts.Connection; mTransaction = clsContacts.Transaction;

                        if (clsCreditCardTypeDetails.WithGuarantor)
                        {
                            clsGuarantorDetails = new Data.Contacts(mConnection, mTransaction).Details(clsCreditorDetails.CreditDetails.GuarantorID);
                        }
                        clsContacts.CommitAndDispose();
                    }
                }

                if (decInternalCreditCardPayment != 0)
                {
                    PrintingPreference oldCONFIG_AutoPrint = mclsTerminalDetails.AutoPrint;
                    mclsTerminalDetails.AutoPrint = PrintingPreference.Normal;

                    PrintReportHeaderSection(false, DateTime.MinValue);

                    if (!string.IsNullOrEmpty(mclsSysConfigDetails.ChargeSlipHeaderLabel))
                    {
                        msbToPrint.Append(CenterString(mclsSysConfigDetails.ChargeSlipHeaderLabel, mclsTerminalDetails.MaxReceiptWidth) + Environment.NewLine);
                        msbToPrint.Append(CenterString(Constants.C_FE_NOT_VALID_AS_RECEIPT, mclsTerminalDetails.MaxReceiptWidth) + Environment.NewLine);
                    }

                    msbToPrint.Append(Environment.NewLine);
                    msbToPrint.Append(Environment.NewLine);
                    msbToPrint.Append("Trans. Date".PadRight(15) + ":" + mclsSalesTransactionDetails.TransactionDate.ToString("yyyy-MM-dd").PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine);
                    msbToPrint.Append("OR #".PadRight(15) + ":" + mclsSalesTransactionDetails.ORNo.PadLeft(mclsTerminalDetails.MaxReceiptWidth - 16) + Environment.NewLine);
                    
                    // print the guarantor if with guarantor
                    if (clsCreditCardTypeDetails.WithGuarantor)
                    {
                        msbToPrint.Append(CenterString(clsGuarantorDetails.ContactCode, mclsTerminalDetails.MaxReceiptWidth) + Environment.NewLine);
                        msbToPrint.Append("-".PadLeft(mclsTerminalDetails.MaxReceiptWidth, '-') + Environment.NewLine);
                        msbToPrint.Append(CenterString("Guarantor", mclsTerminalDetails.MaxReceiptWidth) + Environment.NewLine);
                    }
                    msbToPrint.Append(Environment.NewLine);

                    // print the charge slip header
                    if (string.IsNullOrEmpty(clsCreditCardTypeDetails.CardTypeName))
                    { msbToPrint.Append(CenterString("CHARGE SLIP", mclsTerminalDetails.MaxReceiptWidth) + Environment.NewLine); }
                    else { msbToPrint.Append(CenterString(clsCreditCardTypeDetails.CardTypeName + " CHARGE SLIP", mclsTerminalDetails.MaxReceiptWidth) + Environment.NewLine); }

                    
                    // print the amount and agreement
                    msbToPrint.Append(Environment.NewLine);
                    msbToPrint.Append("Amount of Purchase".PadRight(18) + ":" + decInternalCreditCardPayment.ToString("#,##0.#0").PadLeft(mclsTerminalDetails.MaxReceiptWidth - 19) + Environment.NewLine);
                    msbToPrint.Append(Environment.NewLine);
                    if (mclsTerminalDetails.IncludeCreditChargeAgreement)
                    {
                        msbToPrint.Append("I hereby agree  to pay the total  amount" + Environment.NewLine);
                        msbToPrint.Append("stated herein including any charges  due" + Environment.NewLine);
                        msbToPrint.Append("thereon  subject   to    the   pertinent" + Environment.NewLine);
                        msbToPrint.Append("contract   governing  the use of    this" + Environment.NewLine);
                        msbToPrint.Append("Credit Card." + Environment.NewLine);
                        msbToPrint.Append(Environment.NewLine);
                        msbToPrint.Append(Environment.NewLine);
                    }
                    msbToPrint.Append("-".PadLeft(mclsTerminalDetails.MaxReceiptWidth, '-') + Environment.NewLine);
                    msbToPrint.Append(CenterString(mclsSalesTransactionDetails.CustomerName, mclsTerminalDetails.MaxReceiptWidth) + Environment.NewLine);
                    msbToPrint.Append(Environment.NewLine);
                    msbToPrint.Append(Environment.NewLine);
                    msbToPrint.Append("-".PadLeft(mclsTerminalDetails.MaxReceiptWidth, '-') + Environment.NewLine);
                    msbToPrint.Append(CenterString(mclsSalesTransactionDetails.CashierName, mclsTerminalDetails.MaxReceiptWidth) + Environment.NewLine);
                    msbToPrint.Append(CenterString("Cashier", mclsTerminalDetails.MaxReceiptWidth) + Environment.NewLine);
                    msbToPrint.Append(Environment.NewLine);
                    switch (clsChargeSlipType)
                    {
                        case ChargeSlipType.Customer:
                            msbToPrint.Append(CenterString("Customer's Copy", mclsTerminalDetails.MaxReceiptWidth) + Environment.NewLine);
                            break;
                        case ChargeSlipType.Original:
                            msbToPrint.Append(CenterString("Original Copy", mclsTerminalDetails.MaxReceiptWidth) + Environment.NewLine);
                            break;
                        case ChargeSlipType.Guarantor:
                            msbToPrint.Append(CenterString("Guarantor's Copy", mclsTerminalDetails.MaxReceiptWidth) + Environment.NewLine);
                            break;
                    }

                    msbToPrint.Append(CenterString("Check Ctr:" + Int64.Parse(mclsSalesTransactionDetails.TransactionNo).ToString(), mclsTerminalDetails.MaxReceiptWidth) + Environment.NewLine);
                    PrintPageAndReportFooterSection(false, DateTime.MinValue);

                    mclsTerminalDetails.AutoPrint = oldCONFIG_AutoPrint;

                    InsertAuditLog(AccessTypes.PrintTransactionHeader, "Print Charge Slip: " + clsChargeSlipType.ToString("G") + " TerminalNo=" + mclsTerminalDetails.TerminalNo + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode);
                }
            }
            catch (Exception ex)
            {
                InsertErrorLogToFile(ex, "ERROR!!! Printing Charge Slip: " + clsChargeSlipType.ToString("G"));
            }
            Cursor.Current = Cursors.Default;
        }
コード例 #38
0
ファイル: MainWnd.cs プロジェクト: marioricci/erp-luma
		private void ChangeOrderType()
		{
			if (mclsTerminalDetails.AutoPrint == PrintingPreference.Auto && mboIsInTransaction)
			{
				MessageBox.Show("Sorry you cannot change Order Type if Auto-print is ON an item is already purchased.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
				return;
			}
			DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.CloseTransaction, "Change Order Type");

            if (loginresult == DialogResult.OK)
			{
				try
				{
					clsEvent.AddEvent("[" + lblCashier.Text + "] Changing order type of trans. no. " + lblTransNo.Text);

                    OrderTypeWnd clsOrderTypeWnd = new OrderTypeWnd();
                    clsOrderTypeWnd.TerminalDetails = mclsTerminalDetails;
                    clsOrderTypeWnd.ShowDialog(this);
                    DialogResult result = clsOrderTypeWnd.Result;
                    OrderTypes clsOrderType = clsOrderTypeWnd.orderType;
                    clsOrderTypeWnd.Close();
                    clsOrderTypeWnd.Dispose();

					if (result == DialogResult.OK)
					{
						Cursor.Current = Cursors.WaitCursor;
						if (!mboIsInTransaction)
						{
							this.LoadOptions();
							if (!this.CreateTransaction()) return;
						}

                        mclsSalesTransactionDetails.OrderType = clsOrderType;

                        Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction);
                        mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction;

                        clsSalesTransactions.UpdateOrderType(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.TransactionDate, mclsSalesTransactionDetails.OrderType);
                        InsertAuditLog(AccessTypes.ChargeType, "Change order type to " + mclsSalesTransactionDetails.OrderType.ToString("G") + ". Tran. #".PadRight(15) + ":" + lblTransNo.Text + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode);
                        clsEvent.AddEventLn("Done!", true);

                        if (clsOrderType != OrderTypes.DineIn && mclsSalesTransactionDetails.CustomerID == Constants.C_RETAILPLUS_CUSTOMERID)
                        {
                            Int64 iOldContactID = mclsSalesTransactionDetails.CustomerID;

                            SelectContact(AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER);

                            if (iOldContactID != mclsSalesTransactionDetails.CustomerID)
                            {
                                Data.Contacts clsContacts = new Data.Contacts(mConnection, mTransaction);
                                mConnection = clsContacts.Connection; mTransaction = clsContacts.Transaction;
                                clsContacts.UpdateLastCheckInDate(iOldContactID, Constants.C_DATE_MIN_VALUE);
                                clsContacts.UpdateLastCheckInDate(mclsSalesTransactionDetails.CustomerID, mclsSalesTransactionDetails.TransactionDate);
                                clsContacts.CommitAndDispose();
                            }
                        }
                        if (mclsSalesTransactionDetails.CustomerID == Constants.C_RETAILPLUS_CUSTOMERID)
                        {
                            mclsSalesTransactionDetails.OrderType = OrderTypes.DineIn;

                            clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction);
                            mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction;

                            clsSalesTransactions.UpdateOrderType(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.TransactionDate, mclsSalesTransactionDetails.OrderType);
                            InsertAuditLog(AccessTypes.ChargeType, "System override order type to " + mclsSalesTransactionDetails.OrderType.ToString("G") + ". Tran. #".PadRight(15) + ":" + lblTransNo.Text + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode);

                        }

                        clsSalesTransactions.CommitAndDispose();

                        lblOrderType.Text = mclsSalesTransactionDetails.OrderType.ToString("G").ToUpper();

                        // [09/24/2014] apply the default charge if changed to dine in

                        Data.ChargeType clsChargeType = new Data.ChargeType(mConnection, mTransaction);
                        mConnection = clsChargeType.Connection; mTransaction = clsChargeType.Transaction;

                        Data.ChargeTypeDetails clsChargeTypeDetails = new Data.ChargeTypeDetails();
                        if (mclsSalesTransactionDetails.OrderType == OrderTypes.DineIn && !string.IsNullOrEmpty(mclsTerminalDetails.DineInChargeCode))
                        {
                            clsChargeTypeDetails = clsChargeType.Details(mclsTerminalDetails.DineInChargeCode);
                            setTransCharge(clsChargeTypeDetails, "Change Order Type to Dine-In. Charge Code:" + mclsTerminalDetails.DineInChargeCode);
                        }
                        else if (mclsSalesTransactionDetails.OrderType == OrderTypes.TakeOut && !string.IsNullOrEmpty(mclsTerminalDetails.TakeOutChargeCode))
                        {
                            clsChargeTypeDetails = clsChargeType.Details(mclsTerminalDetails.TakeOutChargeCode);
                            setTransCharge(clsChargeTypeDetails, "Change Order Type to Take-Out. Charge Code:" + mclsTerminalDetails.TakeOutChargeCode);
                        }
                        else if (mclsSalesTransactionDetails.OrderType == OrderTypes.Delivery && !string.IsNullOrEmpty(mclsTerminalDetails.DeliveryChargeCode))
                        {
                            clsChargeTypeDetails = clsChargeType.Details(mclsTerminalDetails.DeliveryChargeCode);
                            setTransCharge(clsChargeTypeDetails, "Change Order Type to Delivery. Charge Code:" + mclsTerminalDetails.DeliveryChargeCode);
                        }
                        else
                        {
                            ApplyTransZeroCharge();
                        }

                        clsChargeType.CommitAndDispose();
                    }
                    else { clsEvent.AddEventLn("Cancelled!"); }
				}
				catch (Exception ex)
				{ 
                    InsertErrorLogToFile(ex, "ERROR!!! Changing order type."); 
                }
				Cursor.Current = Cursors.Default;
			}
		}
コード例 #39
0
        private void LoadData()
        {
            try
            {
                DateTime dteRetValue = DateTime.MinValue;
                Data.CreditPaymentCashDetails clsSearchKeys = new Data.CreditPaymentCashDetails();
                clsSearchKeys.BranchDetails    = new Data.BranchDetails();
                clsSearchKeys.TerminalNo       = "";
                clsSearchKeys.PaymentDateFrom  = DateTime.TryParse(txtTrxStartDate.Text + " 00:00:00", out dteRetValue) ? dteRetValue : DateTime.Now.AddDays(-60);
                clsSearchKeys.PaymentDateTo    = DateTime.TryParse(txtTrxEndDate.Text + " 23:59:59", out dteRetValue) ? dteRetValue : DateTime.Now;
                clsSearchKeys.CreditType       = CreditType.Both;
                clsSearchKeys.CreditCardTypeID = 0;
                clsSearchKeys.ContactID        = mclsCustomerDetails.ContactID;

                Data.Contacts         clsContacts = new Data.Contacts();
                System.Data.DataTable dt          = clsContacts.CreditPaymentCashAsDataTable(clsSearchKeys, "trx.CreatedOn");
                clsContacts.CommitAndDispose();

                System.Data.DataView dv = dt.DefaultView;
                dv.Sort = "TransactionDate";
                dt      = dv.ToTable();

                dgvItems.MultiSelect         = false;
                dgvItems.AutoGenerateColumns = true;
                dgvItems.AutoSize            = false;
                dgvItems.DataSource          = dt.TableName;
                dgvItems.DataSource          = dt;

                foreach (DataGridViewTextBoxColumn dc in dgvItems.Columns)
                {
                    dc.Visible = false;
                }
                dgvItems.Columns["TransactionNo"].Visible   = true;
                dgvItems.Columns["TransactionDate"].Visible = true;
                dgvItems.Columns["CreditReason"].Visible    = true;
                dgvItems.Columns["Amount"].Visible          = true;

                dgvItems.Columns["TransactionNo"].Width   = 150;
                dgvItems.Columns["TransactionDate"].Width = 150;
                if (dt.Rows.Count < 16)
                {
                    dgvItems.Columns["CreditReason"].Width = 350;
                }
                else
                {
                    dgvItems.Columns["CreditReason"].Width = 320;
                }
                int iWidth = (dgvItems.Width - dgvItems.Columns["TransactionNo"].Width - dgvItems.Columns["TransactionDate"].Width - dgvItems.Columns["CreditReason"].Width) / 1;
                if (dt.Rows.Count >= 16)
                {
                    iWidth = iWidth - 20;
                }
                dgvItems.Columns["Amount"].Width = iWidth;

                dgvItems.Columns["TransactionNo"].HeaderText   = "Transaction No";
                dgvItems.Columns["TransactionDate"].HeaderText = "Transaction Date";
                dgvItems.Columns["CreditReason"].HeaderText    = "Description";
                dgvItems.Columns["Amount"].HeaderText          = "Amt. Paid";

                dgvItems.Columns["Amount"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
                dgvItems.Columns["Amount"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;

                dgvItems.Columns["TransactionDate"].DefaultCellStyle.Format = "yyyy-MM-dd hh:mm tt";
                dgvItems.Columns["Amount"].DefaultCellStyle.Format          = "#,##0.#0";

                dgvItems.ReadOnly = true;
                dgvItems.Select();

                decimal decTotalPayable = 0;
                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    decimal decTemp = decimal.TryParse(dr["Amount"].ToString(), out decTemp) ? decTemp : 0;
                    decTotalPayable += decTemp;
                }
                lblTotal.Text = decTotalPayable.ToString("#,##0.#0");

                grpBox1.Text = "Payments from: " + clsSearchKeys.PaymentDateFrom.ToString("MMM dd, yyyy") + " to " + clsSearchKeys.PaymentDateTo.ToString("MMM dd, yyyy");

                txtTrxStartDate.SelectAll();
                txtTrxStartDate.Select();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
コード例 #40
0
ファイル: MainWnd.cs プロジェクト: marioricci/erp-luma
		private void RenewRewardCard()
		{
			if (mboIsInTransaction)
			{
				MessageBox.Show("Sorry you cannot renew a Reward Card while there is an ongoing transaction. Please finish the transaction first.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
				return;
			}

			DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.RewardCardChange);

			if (loginresult == DialogResult.OK)
			{
				try
				{
					DialogResult result; Data.ContactDetails clsContactDetails;
					ContactSelectWnd clsContactWnd = new ContactSelectWnd();
                    clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK;
                    clsContactWnd.SysConfigDetails = mclsSysConfigDetails;
                    clsContactWnd.TerminalDetails = mclsTerminalDetails;
					clsContactWnd.ContactGroupCategory = AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER;
                    clsContactWnd.Header = "Please select customer for reward card renewal.";
					clsContactWnd.ShowDialog(this);
					clsContactDetails = clsContactWnd.Details;
					result = clsContactWnd.Result;
					clsContactWnd.Close();
					clsContactWnd.Dispose();

					if (result != DialogResult.OK)
					{ return; }

					if (clsContactDetails.ContactID == Constants.ZERO || clsContactDetails.ContactID == Constants.C_RETAILPLUS_CUSTOMERID)
					{ return; }

					clsEvent.AddEvent("[" + lblCashier.Text + "] Renewing reward card.");

					Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction);
                    mConnection = clsContact.Connection; mTransaction = clsContact.Transaction;

					clsContactDetails = clsContact.Details(clsContactDetails.ContactID);
					clsContact.CommitAndDispose();

					if (clsContactDetails.RewardDetails.RewardCardNo == string.Empty || clsContactDetails.RewardDetails.RewardCardNo == null)
					{
						clsEvent.AddEventLn("Cancelled!");
						clsEvent.AddEventLn(clsContactDetails.ContactName + " has no valid Reward Card yet. ");
						MessageBox.Show(clsContactDetails.ContactName + " has no valid Reward Card yet. Please select another customer.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
						return;
					}
					clsEvent.AddEvent("[" + lblCashier.Text + "] Renewing reward card #: " + clsContactDetails.RewardDetails.RewardCardNo + " of " + clsContactDetails.ContactName + ".");

					ContactRewardWnd clsContactRewardWnd = new ContactRewardWnd();
                    clsContactRewardWnd.TerminalDetails = mclsTerminalDetails;
					clsContactRewardWnd.Caption = "Reward Card Renewal";
					clsContactRewardWnd.ContactDetails = clsContactDetails;
					clsContactRewardWnd.RewardCardStatus = RewardCardStatus.ReNew;
					clsContactRewardWnd.ShowDialog(this);
					result = clsContactRewardWnd.Result;
					clsContactDetails = clsContactRewardWnd.ContactDetails;
					clsContactRewardWnd.Close();
					clsContactRewardWnd.Dispose();

					if (result == DialogResult.OK)
					{
                        Data.Products clsProducts = new Data.Products(mConnection, mTransaction);
                        mConnection = clsProducts.Connection; mTransaction = clsProducts.Transaction;

                        if (clsProducts.Details(Data.Products.DEFAULT_ADVANTAGE_CARD_RENEWAL_FEE_BARCODE).ProductID == 0)
                        {
                            clsProducts.CREATE_ADVANTAGE_CARD_RENEWAL_FEE_BARCODE_PRODUCT();
                            Methods.InsertAuditLog(mclsTerminalDetails, "System Administrator", AccessTypes.RewardCardChange, "ADVANTAGE_CARD_RENEWAL_FEE_BARCODE product has been created coz it's not configured");
                        }
                        clsProducts.CommitAndDispose();

						MessageBox.Show("Reward Card No: " + clsContactDetails.RewardDetails.RewardCardNo + " has been renewed with new expiry date " + clsContactDetails.RewardDetails.ExpiryDate.ToString("yyyy-MM-dd") + ".", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);

						clsEvent.AddEventLn("Done!", true);
						clsEvent.AddEventLn("Reward Card No: " + clsContactDetails.RewardDetails.RewardCardNo + " has been renewed with new expiry date " + clsContactDetails.RewardDetails.ExpiryDate.ToString("yyyy-MM-dd") + ".", true);

                        LocalDB clsLocalDB = new LocalDB(mConnection, mTransaction);
                        mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction;

						clsEvent.AddEvent("[" + lblCashier.Text + "] Creating " + Data.Products.DEFAULT_ADVANTAGE_CARD_RENEWAL_FEE_BARCODE + "transaction for customer: ");
						LoadContact(AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER, clsContactDetails);
						if (!this.CreateTransaction()) return;

						txtBarCode.Text = Data.Products.DEFAULT_ADVANTAGE_CARD_RENEWAL_FEE_BARCODE;
						ReadBarCode();
						int iRow = dgItems.CurrentRowIndex;

						txtBarCode.Text = "";
						CloseTransaction();

                        clsLocalDB.CommitAndDispose();
					}
					else { clsEvent.AddEventLn("Cancelled!"); }
				}
				catch (Exception ex)
                { 
                    InsertErrorLogToFile(ex, "ERROR!!! Renewing reward card."); 
                }
				Cursor.Current = Cursors.Default;
			}
		}
コード例 #41
0
ファイル: MainWnd.cs プロジェクト: marioricci/erp-luma
        private void ResumeClosedTransaction()
        {
            if (!SuspendTransactionAndContinue()) return;

            DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.ResumeClosedTransaction);

            if (loginresult == DialogResult.OK)
            {
                try
                {
                    ResumeTransactionWnd ResumeWnd = new ResumeTransactionWnd();
                    ResumeWnd.TerminalDetails = mclsTerminalDetails;
                    ResumeWnd.CashierID = mclsSalesTransactionDetails.CashierID;
                    ResumeWnd.TransactionStatusToList = AceSoft.RetailPlus.TransactionStatus.Closed;
                    ResumeWnd.ShowDialog(this);
                    DialogResult result = ResumeWnd.Result;
                    Data.SalesTransactionDetails details = ResumeWnd.Details;
                    ResumeWnd.Close();
                    ResumeWnd.Dispose();

                    if (result == DialogResult.OK)
                    {
                        if (details.TransactionStatus != TransactionStatus.Closed)
                        {
                            MessageBox.Show("This transaction is not yet Closed, please select another transaction. {Current Status: " + details.TransactionStatus.ToString("G") + "}", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            return;
                        }

                        clsEvent.AddEvent("[" + lblCashier.Text + "] Resuming closed transaction no. " + details.TransactionNo);

                        mclsSalesTransactionDetails = details;

                        if (mclsSalesTransactionDetails.TransactionStatus == TransactionStatus.Refund || mclsSalesTransactionDetails.TransactionType == TransactionTypes.POSRefund)
                        {
                            mboIsRefund = true;
                            lblSubtotalName.Text = "SUBTOTAL: REFUND";
                            lblOrderType.Visible = false;
                        }
                        lblOrderType.Text = mclsSalesTransactionDetails.OrderType.ToString("G").ToUpper();
                        lblTransNo.Text = mclsSalesTransactionDetails.TransactionNo;
                        lblTransNo.Tag = mclsSalesTransactionDetails.TransactionID.ToString();
                        lblCustomer.Text = mclsSalesTransactionDetails.CustomerName;
                        lblCustomer.Tag = mclsSalesTransactionDetails.CustomerID.ToString();
                        lblAgent.Text = mclsSalesTransactionDetails.AgentName;
                        lblAgent.Tag = mclsSalesTransactionDetails.AgentID.ToString();
                        lblAgentPositionDepartment.Text = mclsSalesTransactionDetails.AgentPositionName;
                        lblAgentPositionDepartment.Tag = mclsSalesTransactionDetails.AgentDepartmentName;
                        grpItems.Text = "Served by: " + details.WaiterName;
                        grpItems.Tag = mclsSalesTransactionDetails.WaiterID.ToString();

                        lblTransDate.Text = mclsSalesTransactionDetails.TransactionDate.ToString("MMM. dd, yyyy hh:mm:ss tt");
                        mdteOverRidingPrintDate = mclsSalesTransactionDetails.TransactionDate;

                        lblTransDiscount.Tag = mclsSalesTransactionDetails.TransDiscountType.ToString("d");
                        lblConsignment.Visible = mclsSalesTransactionDetails.isConsignment;

                        if (mclsSalesTransactionDetails.ChargeAmount == 0)
                            lblTransCharge.Tag = ChargeTypes.NotApplicable.ToString("d");
                        else
                        {
                            Data.ChargeType clsChargeType = new Data.ChargeType(mConnection, mTransaction);
                            bool bolInPercent = clsChargeType.Details(mclsSalesTransactionDetails.ChargeCode).InPercent;
                            clsChargeType.CommitAndDispose();

                            if (bolInPercent)
                                lblTransCharge.Tag = ChargeTypes.Percentage.ToString("d");
                            else
                                lblTransCharge.Tag = ChargeTypes.FixedValue.ToString("d");
                        }

                        // Aug 6, 2011 : Lemu
                        // Put here from CloseTransaction
                        try { mclsSalesTransactionDetails.CashierID = Convert.ToInt64(lblCashier.Tag); }
                        catch { }
                        mclsSalesTransactionDetails.CashierName = lblCashier.Text;

                        LoadResumedItems(details.TransactionItems, false);

                        // 06Mar2015 : reload this, to use for price level
                        Data.Contacts clsContacts = new Data.Contacts(mConnection, mTransaction);
                        mConnection = clsContacts.Connection; mTransaction = clsContacts.Transaction;
                        mclsContactDetails = clsContacts.Details(mclsSalesTransactionDetails.CustomerID);
                        clsContacts.CommitAndDispose();

                        mboIsInTransaction = true;

                        InsertAuditLog(AccessTypes.ResumeClosedTransaction, "Resume closed transaction #: " + lblTransNo.Text + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode);
                        clsEvent.AddEventLn("[" + lblCashier.Text + "] Resuming closed transaction no. " + details.TransactionNo + " Done.", true);
                    }
                    else { clsEvent.AddEventLn("Cancelled!"); }
                }
                catch (Exception ex)
                {
                    InsertErrorLogToFile(ex, "ERROR!!! Resuming closed transaction.");
                }
            }
        }
コード例 #42
0
ファイル: MainRestoWnd.cs プロジェクト: marioricci/erp-luma
        private void CheckInTable()
        {
            // Added Sep 24, 2014 as required by Bellevue to check how long the customer is already in
            if (!SuspendTransactionAndContinue()) return;

            try
            {
                clsEvent.AddEvent("[" + lblCashier.Text + "] Checkin table.");

                DialogResult result; Data.ContactDetails details;
                TableSelectWnd clsTableSelectWnd = new TableSelectWnd();
                clsTableSelectWnd.TerminalDetails = mclsTerminalDetails;
                clsTableSelectWnd.ContactGroupCategory = ContactGroupCategory.TABLES;
                clsTableSelectWnd.ShowAvailableTableOnly = true; //mboIsInTransaction
                clsTableSelectWnd.ShowDialog(this);
                details = clsTableSelectWnd.Details;
                result = clsTableSelectWnd.Result;
                clsTableSelectWnd.Close();
                clsTableSelectWnd.Dispose();

                if (result == DialogResult.OK)
                {
                    DateTime dteCheckIn = DateTime.Now;

                    Data.Contacts clsContacts = new Data.Contacts(mConnection, mTransaction);
                    mConnection = clsContacts.Connection; mTransaction = clsContacts.Transaction;
                    clsContacts.UpdateLastCheckInDate(details.ContactID, dteCheckIn);
                    clsContacts.CommitAndDispose();
                    clsEvent.AddEventLn("Done!", true);

                    MessageBox.Show(details.ContactName + " has been successfully checkin @ " + dteCheckIn.ToString("yyyy-MM-dd hh:mm"), "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    clsEvent.AddEventLn("Cancelled!");
                }
            }
            catch (Exception ex)
            { clsEvent.AddErrorEventLn(ex); }
        }