Example #1
0
		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;
			}
		}
Example #2
0
        public DataTable Guarantors(ContactColumns clsContactColumns, string LastNameFrom = "", string LastNameTo = "", string CustomerCode_CreditCardNo = "", DateTime? CreditCardExpiryDateFrom = null, DateTime? CreditCardExpiryDateTo = null, CreditCardStatus CreditCardStatus = CreditCardStatus.All, Int32 CreditCardTypeID = 0, string SortField = "ContactCode", System.Data.SqlClient.SortOrder SortOrder = System.Data.SqlClient.SortOrder.Ascending, Int32 limit = 0)
        {
            try
            {
                MySqlCommand cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

                // enable this to include joining to table tblContactGroup
                clsContactColumns.ContactGroupName = true;
                clsContactColumns.CreditDetails = true;

                string SQL = SQLSelect(clsContactColumns);

                if (CreditCardTypeID == 0)
                {
                    SQL += "WHERE tblContacts.ContactID = tblContactCreditCardInfo.GuarantorID ";
                }
                else
                {
                    SQL += "WHERE tblContacts.ContactID = tblContactCreditCardInfo.GuarantorID AND tblContactCreditCardInfo.CreditCardTypeID = @CreditCardTypeID ";
                    cmd.Parameters.AddWithValue("CreditCardTypeID", CreditCardTypeID);
                }
                if (!string.IsNullOrEmpty(CustomerCode_CreditCardNo))
                {
                    SQL += "AND (CreditCardNo LIKE @CustomerCode_CreditCardNo OR ContactCode LIKE @CustomerCode_CreditCardNo OR ContactName LIKE @CustomerCode_CreditCardNo) ";
                    cmd.Parameters.AddWithValue("@CustomerCode_CreditCardNo", CustomerCode_CreditCardNo + '%');
                }

                if (CreditCardExpiryDateFrom.GetValueOrDefault(DateTime.MinValue) != DateTime.MinValue)
                {
                    SQL += "AND ExpiryDate >= @CreditCardExpiryDateFrom ";
                    cmd.Parameters.AddWithValue("@CreditCardExpiryDateFrom", CreditCardExpiryDateFrom.GetValueOrDefault(DateTime.MinValue).ToString("yyyy-MM-dd"));
                }
                if (CreditCardExpiryDateFrom.GetValueOrDefault(DateTime.MinValue) != DateTime.MinValue)
                {
                    SQL += "AND ExpiryDate <= @CreditCardExpiryDateTo ";
                    cmd.Parameters.AddWithValue("@CreditCardExpiryDateTo", CreditCardExpiryDateTo.GetValueOrDefault(DateTime.MinValue).ToString("yyyy-MM-dd"));
                }
                if (CreditCardStatus != RetailPlus.CreditCardStatus.All)
                {
                    SQL += "AND CreditCardStatus = @CreditCardStatus ";
                    cmd.Parameters.AddWithValue("@CreditCardStatus", CreditCardStatus.ToString("d"));
                }

                if (!string.IsNullOrEmpty(LastNameFrom) && !string.IsNullOrEmpty(LastNameTo))
                {
                    SQL += "AND ContactID IN (SELECT ContactID FROM tblContactAddOn WHERE LastName >= @LastNameFrom AND LastName <= @LastNameTo) ";
                    cmd.Parameters.AddWithValue("LastNameFrom", LastNameFrom);
                    cmd.Parameters.AddWithValue("LastNameTo", LastNameTo);
                }
                else if (!string.IsNullOrEmpty(LastNameFrom))
                {
                    SQL += "AND ContactID IN (SELECT ContactID FROM tblContactAddOn WHERE LastName LIKE @LastNameFrom) ";
                    cmd.Parameters.AddWithValue("LastNameFrom", LastNameFrom + '%');
                }
                else if (!string.IsNullOrEmpty(LastNameTo))
                {
                    SQL += "AND ContactID IN (SELECT ContactID FROM tblContactAddOn WHERE LastName LIKE @LastNameTo) ";
                    cmd.Parameters.AddWithValue("LastNameTo", LastNameTo + '%');
                }

                SQL += "ORDER BY " + (!string.IsNullOrEmpty(SortField) ? SortField : "ContactCode") + " ";
                SQL += SortOrder == System.Data.SqlClient.SortOrder.Ascending ? "ASC " : "DESC ";
                SQL += limit == 0 ? "" : "LIMIT " + limit.ToString() + " ";

                cmd.CommandText = SQL;
                string strDataTableName = "tbl" + this.GetType().FullName.Split(new Char[] { '.' })[this.GetType().FullName.Split(new Char[] { '.' }).Length - 1]; System.Data.DataTable dt = new System.Data.DataTable(strDataTableName);
                base.MySqlDataAdapterFill(cmd, dt);

                return dt;
            }
            catch (Exception ex)
            {
                throw base.ThrowException(ex);
            }
        }
Example #3
0
        private bool SaveRecord()
        {
            bool boRetValue = false;

            if (string.IsNullOrEmpty(txtCreditCardNo.Text.Trim()))
            {
                MessageBox.Show("Sorry please enter a valid credit card no.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(boRetValue);
            }
            DateTime dteExpiryDate = DateTime.MinValue;

            try { dteExpiryDate = DateTime.Parse(txtCreditCardExpiryDate.Text); }
            catch
            {
                MessageBox.Show("Please enter a valid expiry date in the ff format: YYYY-MM-dd ", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(boRetValue);
            }
            decimal decCreditLimit = 0;

            try { decCreditLimit = decimal.Parse(txtCreditLimit.Text); }
            catch
            {
                MessageBox.Show("Please enter a valid credit limit amount.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(boRetValue);
            }

            if (mCreditCardStatus == CreditCardStatus.New)
            {
                if (MessageBox.Show("Are you sure you want to issue a new credit card to " + mContactDetails.ContactName + "?", "RetailPlus", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                {
                    return(boRetValue);
                }
            }
            else if (mCreditCardStatus == CreditCardStatus.Lost || mCreditCardStatus == CreditCardStatus.Expired)
            {
                if (MessageBox.Show("Are you sure you want to declare card no: " + txtCreditCardNo.Text + " as " + mCreditCardStatus.ToString("G") + "?", "RetailPlus", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                {
                    return(boRetValue);
                }
            }
            else if (mCreditCardStatus == CreditCardStatus.Replaced_Lost || mCreditCardStatus == CreditCardStatus.Replaced_Expired)
            {
                if (MessageBox.Show("Are you sure you want to replace existing credit card w/ new card no?", "RetailPlus", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                {
                    return(boRetValue);
                }
            }
            else if (mCreditCardStatus == CreditCardStatus.Reactivated_Lost)
            {
                if (MessageBox.Show("Are you sure you want to reactivate existing credit card no: " + txtCreditCardNo.Text + "?", "RetailPlus", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                {
                    return(boRetValue);
                }
            }
            else if (mCreditCardStatus == CreditCardStatus.ReNew)
            {
                if (MessageBox.Show("Are you sure you want to renew card no: " + txtCreditCardNo.Text + "?", "RetailPlus", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                {
                    return(boRetValue);
                }

                if (dteExpiryDate < DateTime.Now)
                {
                    MessageBox.Show("Expiry date must not be less than date today. Please enter a valid expiry date. ", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return(boRetValue);
                }
            }

            Data.ContactCreditCardInfos       clsContactCreditCardInfos       = new Data.ContactCreditCardInfos();
            Data.ContactCreditCardInfoDetails clsContactCreditCardInfoDetails = clsContactCreditCardInfos.Details(mContactDetails.ContactID);
            if (clsContactCreditCardInfoDetails.CustomerID != Constants.ZERO)
            {
                txtCreditCardNo.Text         = clsContactCreditCardInfoDetails.CreditCardNo;
                txtCreditCardExpiryDate.Text = clsContactCreditCardInfoDetails.ExpiryDate.ToString("yyyy-MM-dd");
            }
            if (((mCreditCardStatus == CreditCardStatus.New && clsContactCreditCardInfoDetails.CustomerID == Constants.ZERO) ||
                 mCreditCardStatus == CreditCardStatus.Replaced_Lost) && (CardTypeDetails.WithGuarantor))
            {
                Data.ERPConfig clsERPConfig = new Data.ERPConfig(clsContactCreditCardInfos.Connection, clsContactCreditCardInfos.Transaction);
                txtCreditCardNo.Text = clsERPConfig.get_LastGroupCreditCardNo();
            }
            else if ((mCreditCardStatus == CreditCardStatus.New && clsContactCreditCardInfoDetails.CustomerID == Constants.ZERO) ||
                     mCreditCardStatus == CreditCardStatus.Replaced_Lost)
            {
                Data.ERPConfig clsERPConfig = new Data.ERPConfig(clsContactCreditCardInfos.Connection, clsContactCreditCardInfos.Transaction);
                txtCreditCardNo.Text = clsERPConfig.get_LastCreditCardNo();
            }
            clsContactCreditCardInfos.CommitAndDispose();

            Data.ContactCreditCardInfoDetails clsDetails = new Data.ContactCreditCardInfoDetails();
            clsDetails.CustomerID      = mContactDetails.ContactID;
            clsDetails.CardTypeDetails = CardTypeDetails;
            clsDetails.CreditCardNo    = txtCreditCardNo.Text;
            clsDetails.CreditAwardDate = DateTime.Now;
            clsDetails.ExpiryDate      = dteExpiryDate;
            clsDetails.CreditLimit     = decCreditLimit;

            clsContactCreditCardInfos       = new Data.ContactCreditCardInfos();
            clsContactCreditCardInfoDetails = clsContactCreditCardInfos.Details(txtCreditCardNo.Text);

            if (clsContactCreditCardInfoDetails.CustomerID != Constants.ZERO)
            {
                if (mCreditCardStatus == CreditCardStatus.New || (mCreditCardStatus != CreditCardStatus.New && clsContactCreditCardInfoDetails.CustomerID != mContactDetails.ContactID))
                {
                    clsContactCreditCardInfos.CommitAndDispose();

                    MessageBox.Show("Credit Card No: " + clsContactCreditCardInfoDetails.CreditCardNo + " was already issued on " + clsContactCreditCardInfoDetails.CreditAwardDate.ToString("MMM dd, yyyy") + " to another customer." +
                                    Environment.NewLine + "Please enter another Credit Card No.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error);

                    txtCreditCardNo.Focus();
                    txtCreditCardNo.SelectAll();
                    return(boRetValue);
                }
            }

            clsDetails.GuarantorID     = clsContactCreditCardInfoDetails.GuarantorID;
            clsDetails.CardTypeDetails = clsContactCreditCardInfoDetails.CardTypeDetails;
            if (mCreditCardStatus == CreditCardStatus.New)
            {
                clsDetails.CreditActive = true;
                // override if new
                clsDetails.GuarantorID     = Guarantor.ContactID;
                clsDetails.CardTypeDetails = CardTypeDetails;
            }
            else if (mCreditCardStatus == CreditCardStatus.Lost || mCreditCardStatus == CreditCardStatus.Expired)
            {
                clsDetails.CreditActive = false;
            }
            else if (mCreditCardStatus == CreditCardStatus.Replaced_Lost ||
                     mCreditCardStatus == CreditCardStatus.Replaced_Expired ||
                     mCreditCardStatus == CreditCardStatus.Reactivated_Lost ||
                     mCreditCardStatus == CreditCardStatus.ReNew)
            {
                clsDetails.CreditActive = true;
            }
            clsDetails.CreditCardStatus = mCreditCardStatus;

            boRetValue = clsContactCreditCardInfos.Update(clsDetails);
            mContactDetails.CreditDetails = clsDetails;

            clsContactCreditCardInfos.CommitAndDispose();

            boRetValue = true;

            return(boRetValue);
        }