private bool SaveRecord() { bool boRetValue = false; if (txtRewardCardNo.Text.Trim() == string.Empty) { MessageBox.Show("Sorry please enter a valid reward card no.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return(boRetValue); } DateTime dteExpiryDate = DateTime.MinValue; try { dteExpiryDate = DateTime.Parse(txtRewardCardExpiryDate.Text); } catch { MessageBox.Show("Please enter a valid expiry date in the ff format: YYYY-MM-dd ", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return(boRetValue); } DateTime dteBirthDate = DateTime.MinValue; try { dteBirthDate = DateTime.Parse(txtDOB.Text); } catch { MessageBox.Show("Please enter a valid date of birth in the ff format: YYYY-MM-dd ", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return(boRetValue); } if (mRewardCardStatus == RewardCardStatus.New) { if (MessageBox.Show("Are you sure you want to issue card no: " + txtRewardCardNo.Text + " to " + mContactDetails.ContactName + "?", "RetailPlus", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return(boRetValue); } } else if (mRewardCardStatus == RewardCardStatus.Lost || mRewardCardStatus == RewardCardStatus.Expired) { if (MessageBox.Show("Are you sure you want to declare card no: " + txtRewardCardNo.Text + " as " + mRewardCardStatus.ToString("G") + "?", "RetailPlus", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return(boRetValue); } } else if (mRewardCardStatus == RewardCardStatus.Replaced_Lost || mRewardCardStatus == RewardCardStatus.Replaced_Expired) { if (MessageBox.Show("Are you sure you want to replace existing reward card w/ new card no: " + txtRewardCardNo.Text + "?", "RetailPlus", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return(boRetValue); } } else if (mRewardCardStatus == RewardCardStatus.Reactivated_Lost) { if (MessageBox.Show("Are you sure you want to reactivate reward card no: " + txtRewardCardNo.Text + "?", "RetailPlus", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return(boRetValue); } } else if (mRewardCardStatus == RewardCardStatus.ReNew) { if (MessageBox.Show("Are you sure you want to renew card no: " + txtRewardCardNo.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.ContactRewardDetails clsDetails = new Data.ContactRewardDetails(); clsDetails.ContactID = mContactDetails.ContactID; clsDetails.RewardCardNo = txtRewardCardNo.Text; clsDetails.RewardPoints = 0; clsDetails.RewardAwardDate = DateTime.Now; clsDetails.ExpiryDate = dteExpiryDate; clsDetails.BirthDate = dteBirthDate; Data.ContactReward clsContactReward = new Data.ContactReward(); Data.ContactRewardDetails clsContactRewardDetails = clsContactReward.Details(txtRewardCardNo.Text); if (clsContactRewardDetails.ContactID != Constants.ZERO) { if (mRewardCardStatus == RewardCardStatus.New || (mRewardCardStatus != RewardCardStatus.New && clsContactRewardDetails.ContactID != mContactDetails.ContactID)) { clsContactReward.CommitAndDispose(); MessageBox.Show("Reward Card No: " + clsContactRewardDetails.RewardCardNo + " was already issued on " + clsContactRewardDetails.RewardAwardDate.ToString("MMM dd, yyyy") + " to another customer." + Environment.NewLine + "Please enter another Reward Card No.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtRewardCardNo.Focus(); txtRewardCardNo.SelectAll(); return(boRetValue); } } if (mRewardCardStatus == RewardCardStatus.New) { clsDetails.RewardActive = true; } else if (mRewardCardStatus == RewardCardStatus.Lost || mRewardCardStatus == RewardCardStatus.Expired) { clsDetails.RewardActive = false; } else if (mRewardCardStatus == RewardCardStatus.Replaced_Lost || mRewardCardStatus == RewardCardStatus.Replaced_Expired || mRewardCardStatus == RewardCardStatus.Reactivated_Lost || mRewardCardStatus == RewardCardStatus.ReNew) { clsDetails.RewardActive = true; } clsDetails.RewardCardStatus = mRewardCardStatus; boRetValue = clsContactReward.Update(clsDetails); mContactDetails.RewardDetails = clsDetails; clsContactReward.CommitAndDispose(); boRetValue = true; return(boRetValue); }
private void RewardCardReplacement(RewardCardStatus pvtRewardCardStatus) { if (mboIsInTransaction) { MessageBox.Show("Sorry you cannot replace 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 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 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 + "] Replacing reward card #: " + clsContactDetails.RewardDetails.RewardCardNo + " of " + clsContactDetails.ContactName + " as " + pvtRewardCardStatus.ToString("G")); string strOldRewardCardNo = clsContactDetails.RewardDetails.RewardCardNo; ContactRewardWnd clsContactRewardWnd = new ContactRewardWnd(); clsContactRewardWnd.TerminalDetails = mclsTerminalDetails; if (pvtRewardCardStatus == RewardCardStatus.Replaced_Lost) clsContactRewardWnd.Caption = "Reward Card Replacement of LOST CARD "; else if (pvtRewardCardStatus == RewardCardStatus.Replaced_Expired) clsContactRewardWnd.Caption = "Reward Card Replacement of EXPIRED CARD "; clsContactRewardWnd.ContactDetails = clsContactDetails; clsContactRewardWnd.RewardCardStatus = pvtRewardCardStatus; 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_REPLACEMENT_FEE_BARCODE).ProductID == 0) { clsProducts.CREATE_ADVANTAGE_CARD_REPLACEMENT_FEE_BARCODE_PRODUCT(); Methods.InsertAuditLog(mclsTerminalDetails, "System Administrator", AccessTypes.RewardCardChange, "ADVANTAGE_CARD_REPLACEMENT_FEE_BARCODE product has been created coz it's not configured"); } clsProducts.CommitAndDispose(); MessageBox.Show("Reward Card No: " + strOldRewardCardNo + " has been replaced with new card #: " + clsContactDetails.RewardDetails.RewardCardNo + ".", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); clsEvent.AddEventLn("Done!", true); clsEvent.AddEventLn("Reward Card No: " + strOldRewardCardNo + " has been replaced with new card #: " + clsContactDetails.RewardDetails.RewardCardNo + ".", true); LocalDB clsLocalDB = new LocalDB(mConnection, mTransaction); mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction; clsEvent.AddEvent("[" + lblCashier.Text + "] Creating " + Data.Products.DEFAULT_ADVANTAGE_CARD_REPLACEMENT_FEE_BARCODE + "transaction for customer: "); LoadContact(AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER, clsContactDetails); if (!this.CreateTransaction()) return; txtBarCode.Text = Data.Products.DEFAULT_ADVANTAGE_CARD_REPLACEMENT_FEE_BARCODE; ReadBarCode(); int iRow = dgItems.CurrentRowIndex; txtBarCode.Text = ""; CloseTransaction(); clsLocalDB.CommitAndDispose(); } else { clsEvent.AddEventLn("Cancelled!"); } } catch (Exception ex) { InsertErrorLogToFile(ex, "ERROR!!! Replacing reward card."); } Cursor.Current = Cursors.Default; } }