Beispiel #1
0
        /// <summary>
        /// Initializes a new instance of the Micajah.Common.Bll.Instance class.
        /// </summary>
        public Instance()
        {
            m_PseudoId    = string.Empty;
            m_Name        = string.Empty;
            m_Description = string.Empty;
            m_InstanceId  = Guid.Empty;

            m_ExternalId       = string.Empty;
            m_WorkingDays      = InstanceProvider.DefaultWorkingDays;
            m_Active           = true;
            this.TimeZoneId    = InstanceProvider.DefaultTimeZoneId;
            m_BillingPlan      = BillingPlan.Free;
            m_CreditCardStatus = CreditCardStatus.NotRegistered;
        }
Beispiel #2
0
        public static bool checkCreditActive(CreditCardStatus CreditCardStatus)
        {
            bool boRetValue = false;

            switch (CreditCardStatus)
            {
                case CreditCardStatus.New:
                case CreditCardStatus.Replaced_Lost:
                case CreditCardStatus.Replaced_Expired:
                case CreditCardStatus.ReNew:
                case CreditCardStatus.Reactivated_Lost:
                case CreditCardStatus.ManualActivated:
                case CreditCardStatus.SystemActivated:
                    boRetValue = true;
                    break;
                case CreditCardStatus.Lost:
                case CreditCardStatus.Expired:
                case CreditCardStatus.ManualDeactivated:
                case CreditCardStatus.SystemDeactivated:
                case CreditCardStatus.Suspended:
                case CreditCardStatus.All:
                    boRetValue = false;
                    break;
                default:
                    boRetValue = false;
                    break;
            }
            return boRetValue;
        }
Beispiel #3
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);
            }
        }
Beispiel #4
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;
			}
		}
Beispiel #5
0
        private void LoadList()
        {
            Contacts       clsContact        = new Contacts();
            DataClass      clsDataClass      = new DataClass();
            ContactColumns clsContactColumns = new ContactColumns();

            clsContactColumns.ContactID     = true;
            clsContactColumns.ContactCode   = true;
            clsContactColumns.ContactName   = true;
            clsContactColumns.CreditDetails = true;

            ContactColumns clsSearchColumns = new ContactColumns();

            clsSearchColumns.ContactCode   = true;
            clsSearchColumns.ContactName   = true;
            clsSearchColumns.CreditDetails = true;

            string SortField = "ContactID";

            if (Request.QueryString["sortfield"] != null)
            {
                SortField = Common.Decrypt(Request.QueryString["sortfield"].ToString(), Session.SessionID);
            }

            System.Data.SqlClient.SortOrder sortoption = System.Data.SqlClient.SortOrder.Ascending;
            if (Request.QueryString["sortoption"] != null)
            {
                sortoption = (System.Data.SqlClient.SortOrder)Enum.Parse(typeof(System.Data.SqlClient.SortOrder), Common.Decrypt(Request.QueryString["sortoption"], Session.SessionID), true);
            }

            string SearchKey = string.Empty;

            if (Request.QueryString["Search"] != null)
            {
                SearchKey      = Common.Decrypt((string)Request.QueryString["search"], Session.SessionID);
                txtSearch.Text = SearchKey;
            }

            string strSearch = txtSearch.Text.Trim();

            DateTime         dteExpiryDateFrom    = DateTime.TryParse(txtExpiryDateFrom.Text, out dteExpiryDateFrom) ? dteExpiryDateFrom : DateTime.MinValue;
            DateTime         dteExpiryDateTo      = DateTime.TryParse(txtExpiryDateTo.Text, out dteExpiryDateTo) ? dteExpiryDateTo : DateTime.MinValue;
            CreditCardStatus enumCreditCardStatus = (CreditCardStatus)Enum.Parse(typeof(CreditCardStatus), cboCreditCardStatus.SelectedItem.Value);

            PageData.DataSource = clsContact.CustomersWithCredits(clsContactColumns, LastNameFrom: txtLastNameFrom.Text, LastNameTo: txtLastNameTo.Text, CustomerCode_CreditCardNo: strSearch, CreditCardExpiryDateFrom: dteExpiryDateFrom, CreditCardExpiryDateTo: dteExpiryDateTo, CreditCardStatus: enumCreditCardStatus, CreditCardTypeID: Int32.Parse(cboCreditType.SelectedItem.Value), CheckCustomersGuarantor: true, SortField: SortField, SortOrder: sortoption).DefaultView;

            clsContact.CommitAndDispose();

            int iPageSize = Convert.ToInt16(Session["PageSize"]);

            PageData.AllowPaging = true;
            PageData.PageSize    = iPageSize;
            try
            {
                PageData.CurrentPageIndex = Convert.ToInt16(cboCurrentPage.SelectedItem.Value) - 1;
                lstItem.DataSource        = PageData;
                lstItem.DataBind();
            }
            catch
            {
                PageData.CurrentPageIndex = 1;
                lstItem.DataSource        = PageData;
                lstItem.DataBind();
            }

            cboCurrentPage.Items.Clear();
            for (int i = 0; i < PageData.PageCount; i++)
            {
                int iValue = i + 1;
                cboCurrentPage.Items.Add(new ListItem(iValue.ToString(), iValue.ToString()));
                if (PageData.CurrentPageIndex == i)
                {
                    cboCurrentPage.Items[i].Selected = true;
                }
                else
                {
                    cboCurrentPage.Items[i].Selected = false;
                }
            }
            lblDataCount.Text = " of " + " " + PageData.PageCount;
        }
Beispiel #6
0
        public object PayNotify()
        {
            var TimeStamp = Convert.ToInt32(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds).ToString();
            CreditCardStatus CreditCardModel = new CreditCardStatus();

            CreditCardModel.Amt             = 1800;
            CreditCardModel.CloseType       = 1;
            CreditCardModel.IndexType       = 1;
            CreditCardModel.TimeStamp       = TimeStamp;
            CreditCardModel.TradeNo         = "16112916564939969";
            CreditCardModel.RespondType     = "JSON";
            CreditCardModel.MerchantOrderNo = "2016112996E19CF2";
            CreditCardModel.Post();
            //var str = HttpContext.Current.Request["JSONData"];
            //var model = JsonConvert.DeserializeObject<PayGoRespond>(str);
            //var result = JsonConvert.DeserializeObject<PayResult>(model.Result);
            //string PaymentType = result.PaymentType;
            //DateTime? PayTime = string.IsNullOrEmpty(result.PayTime) ? (DateTime?)null : Convert.ToDateTime(result.PayTime);
            //try
            //{

            //    using (var db = new MyAnythingEntities())
            //    {

            //        var Order = db.OrderMaster.Where(o => o.MerchantOrderNo == result.MerchantOrderNo).FirstOrDefault();
            //        if (Order != null)
            //        {
            //            var PayGo = db.PayGo.Where(o => o.MerchantOrderNo == Order.MerchantOrderNo).FirstOrDefault();

            //            if (PayGo == null)
            //            {
            //                #region ## 新增 ##
            //                db.PayGo.Add(new PayGo
            //                {
            //                    Amt = result.Amt,
            //                    Auth = result.Auth == null ? string.Empty : result.Auth,
            //                    Barcode_1 = result.Barcode1 == null ? string.Empty : result.Barcode1,
            //                    Barcode_2 = result.Barcode2 == null ? string.Empty : result.Barcode2,
            //                    Barcode_3 = result.Barcode3 == null ? string.Empty : result.Barcode3,
            //                    Card4No = result.Card4No == null ? string.Empty : result.Card4No,
            //                    Card6No = result.Card6No == null ? string.Empty : result.Card6No,
            //                    CodeNo = result.CodeNo == null ? string.Empty : result.CodeNo,
            //                    EscrowBank = result.EscrowBank == null ? string.Empty : result.EscrowBank,
            //                    Inst = result.Inst,
            //                    InstEach = result.InstEach,
            //                    InstFirst = result.InstFirst,
            //                    IP = result.IP,
            //                    MerchantID = result.MerchantID,
            //                    MerchantOrderNo = result.MerchantOrderNo,
            //                    Message = model.Message,
            //                    PayAccount5Code = result.PayerAccount5Code == null ? string.Empty : result.PayerAccount5Code,
            //                    PayBankCode = result.BankCode == null ? string.Empty : result.BankCode,
            //                    PayTime = DateTime.Parse(result.PayTime),
            //                    RedAmt = result.RedAmt,
            //                    RespondCode = result.RespondCode == null ? string.Empty : result.RespondCode,
            //                    Status = model.Status == null ? string.Empty : model.Status,
            //                    RespondType = result.RespondType == null ? string.Empty : result.RespondType,
            //                    TokenUseStatus = result.TokenUseStatus,
            //                    TradeNo = result.TradeNo == null ? string.Empty : result.TradeNo
            //                });

            //                db.SaveChanges();
            //              #endregion
            //            }
            //            else
            //            {
            //                #region ## 更新 ##
            //                PayGo.Amt = result.Amt;
            //                PayGo.Auth = result.Auth == null ? string.Empty : result.Auth;
            //                PayGo.Barcode_1 = result.Barcode1 == null ? string.Empty : result.Barcode1;
            //                PayGo.Barcode_2 = result.Barcode2 == null ? string.Empty : result.Barcode2;
            //                PayGo.Barcode_3 = result.Barcode3 == null ? string.Empty : result.Barcode3;
            //                PayGo.Card4No = result.Card4No == null ? string.Empty : result.Card4No;
            //                PayGo.Card6No = result.Card6No == null ? string.Empty : result.Card6No;
            //                PayGo.CodeNo = result.CodeNo == null ? string.Empty : result.CodeNo;
            //                PayGo.EscrowBank = result.EscrowBank == null ? string.Empty : result.EscrowBank;
            //                PayGo.Inst = result.Inst;
            //                PayGo.InstEach = result.InstEach;
            //                PayGo.InstFirst = result.InstFirst;
            //                PayGo.IP = result.IP;
            //                PayGo.MerchantID = result.MerchantID;
            //                PayGo.MerchantOrderNo = result.MerchantOrderNo;
            //                PayGo.Message = model.Message;
            //                PayGo.PayAccount5Code = result.PayerAccount5Code == null ? string.Empty : result.PayerAccount5Code;
            //                PayGo.PayBankCode = result.BankCode == null ? string.Empty : result.BankCode;
            //                PayGo.PayTime = PayTime;
            //                PayGo.RedAmt = result.RedAmt;
            //                PayGo.RespondCode = result.RespondCode == null ? string.Empty : result.RespondCode;
            //                PayGo.Status = model.Status == null ? string.Empty : model.Status;
            //                PayGo.RespondType = result.RespondType == null ? string.Empty : result.RespondType;
            //                PayGo.TokenUseStatus = result.TokenUseStatus;
            //                PayGo.TradeNo = result.TradeNo == null ? string.Empty : result.TradeNo;
            //                //db.SaveChanges();
            //                #endregion
            //            }

            //            //var PayTime = string.IsNullOrEmpty(result.PayTime) ? DateTime.MinValue : DateTime.Parse(result.PayTime);

            //            if (model.Status.Equals("SUCCESS") &&
            //                !string.IsNullOrEmpty(result.PayTime) &&
            //                PayTime > DateTime.MinValue
            //                && !db.MyBouns.Any(o=>o.MerchantOrderNo == Order.MerchantOrderNo))
            //            {
            //                var Bouns = new BonusViewModel();
            //                Bonus.MerchantOrderNo = Order.MerchantOrderNo;
            //                Bonus.OrderID = Order.ID;
            //                Bonus.PayTime = PayTime;
            //                Bonus.Status = model.Status;
            //                Bonus.OrderAmt = Order.Amount;
            //                Bonus.UseMonth = DateTime.Now.Month + 1;
            //                Bonus.UserID = Order.UserId;
            //                Bonus.Create();
            //            }
            //        }


            //    }
            //}
            //catch (Exception ex)
            //{
            //    using (var db = new MyAnythingEntities())
            //    {
            //        db.TEST.Add(new TEST { Message = ex.Message.ToString(), Created = DateTime.Now });
            //        db.SaveChanges();
            //    }
            //}
            return(Json(new { Message = "SUCCESS", Status = true }));
        }