// GET: Withdrawal
        public ActionResult Index(string username)
        {
            WithdrawDetails details = new WithdrawDetails();

            details.Username = username;
            return(View(details));
        }
 private bool MaximumLimitPerDayAchieved(WithdrawDetails withdrawDetails)
 {
     if (withdrawDetails.MaximumLimitAchieved == false)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
 private bool IsSufficientBalance(WithdrawDetails withdrawDetails, CardDetails user)
 {
     if (user.TotalBalance >= withdrawDetails.Amount)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Beispiel #4
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public WithdrawDetails DataRowToModel(DataRow row)
        {
            WithdrawDetails model = new WithdrawDetails();

            if (row != null)
            {
                if (row["ID"] != null)
                {
                    model.ID = row["ID"].ToString();
                }
                if (row["EMPLOYEEID"] != null)
                {
                    model.EMPLOYEEID = row["EMPLOYEEID"].ToString();
                }
                if (row["WITHDRAWAMOUNT"] != null && row["WITHDRAWAMOUNT"].ToString() != "")
                {
                    model.WITHDRAWAMOUNT = decimal.Parse(row["WITHDRAWAMOUNT"].ToString());
                }
                if (row["CREATEDATE"] != null && row["CREATEDATE"].ToString() != "")
                {
                    model.CREATEDATE = DateTime.Parse(row["CREATEDATE"].ToString());
                }
                if (row["ISCONFIRMED"] != null && row["ISCONFIRMED"].ToString() != "")
                {
                    if ((row["ISCONFIRMED"].ToString() == "1") || (row["ISCONFIRMED"].ToString().ToLower() == "true"))
                    {
                        model.ISCONFIRMED = true;
                    }
                    else
                    {
                        model.ISCONFIRMED = false;
                    }
                }
                if (row["OPERATEPERSON"] != null)
                {
                    model.OPERATEPERSON = row["OPERATEPERSON"].ToString();
                }
                if (row["ISDELETED"] != null && row["ISDELETED"].ToString() != "")
                {
                    if ((row["ISDELETED"].ToString() == "1") || (row["ISDELETED"].ToString().ToLower() == "true"))
                    {
                        model.ISDELETED = true;
                    }
                    else
                    {
                        model.ISDELETED = false;
                    }
                }
            }
            return(model);
        }
        public ActionResult withdraw(WithdrawDetails details)
        {
            #region Declarations

            string      path        = Constants.path;
            string      json        = "";
            IWithdraw   withdraw    = new Withdraw(details);
            CardDetails cardDetails = new CardDetails();
            string      output      = "";

            #endregion

            #region Read Json File

            using (StreamReader r = new StreamReader(path))
            {
                json = r.ReadToEnd();
            }

            #endregion

            #region Money Withdraw and JSON update

            cardDetails = withdraw.WithdrawAmount(json, details);
            if (cardDetails.IsSufficientBalance == true)
            {
                dynamic jsonObj = Newtonsoft.Json.JsonConvert.DeserializeObject(json);
                foreach (var j in jsonObj)
                {
                    if (j["Username"] == cardDetails.Username)
                    {
                        j["TotalBalance"] = cardDetails.TotalBalance;
                    }
                }
                output = Newtonsoft.Json.JsonConvert.SerializeObject(jsonObj, Newtonsoft.Json.Formatting.Indented);
                System.IO.File.WriteAllText(path, output);
                return(View(cardDetails));
            }
            else
            {
                return(RedirectToAction("Withdrawal_Failed", "Withdrawal"));
            }

            #endregion
        }
        public CardDetails WithdrawAmount(string json, WithdrawDetails withdrawDetails)
        {
            CardDetails        user  = new CardDetails();
            List <CardDetails> items = JsonConvert.DeserializeObject <List <CardDetails> >(json);

            user = items.FirstOrDefault(x => x.Username == withdrawDetails.Username);
            if (IsSufficientBalance(withdrawDetails, user))
            {
                user.TotalBalance        = user.TotalBalance - withdrawDetails.Amount;
                user.MaximumLimit        = user.MaximumLimit + withdrawDetails.Amount;
                user.IsSufficientBalance = true;
            }
            else
            {
                user.IsSufficientBalance = false;
            }

            return(user);
        }
Beispiel #7
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(WithdrawDetails model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update withdrawdetails set ");
            strSql.Append("EMPLOYEEID=@EMPLOYEEID,");
            strSql.Append("WITHDRAWAMOUNT=@WITHDRAWAMOUNT,");
            strSql.Append("CREATEDATE=@CREATEDATE,");
            strSql.Append("ISCONFIRMED=@ISCONFIRMED,");
            strSql.Append("OPERATEPERSON=@OPERATEPERSON,");
            strSql.Append("ISDELETED=@ISDELETED");
            strSql.Append(" where ID=@ID ");
            MySqlParameter[] parameters =
            {
                new MySqlParameter("@EMPLOYEEID",     MySqlDbType.VarChar,   36),
                new MySqlParameter("@WITHDRAWAMOUNT", MySqlDbType.Decimal,   12),
                new MySqlParameter("@CREATEDATE",     MySqlDbType.DateTime),
                new MySqlParameter("@ISCONFIRMED",    MySqlDbType.Bit),
                new MySqlParameter("@OPERATEPERSON",  MySqlDbType.VarChar,   36),
                new MySqlParameter("@ISDELETED",      MySqlDbType.Bit),
                new MySqlParameter("@ID",             MySqlDbType.VarChar, 36)
            };
            parameters[0].Value = model.EMPLOYEEID;
            parameters[1].Value = model.WITHDRAWAMOUNT;
            parameters[2].Value = model.CREATEDATE;
            parameters[3].Value = model.ISCONFIRMED;
            parameters[4].Value = model.OPERATEPERSON;
            parameters[5].Value = model.ISDELETED;
            parameters[6].Value = model.ID;

            int rows = DbHelperMySQL.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        private string Withdraw(HttpContext context)
        {
            StringBuilder   sbJsonResult   = new StringBuilder();
            decimal?        withdrawAmount = Convert.ToDecimal(context.Request.Params["withdrawAmount"]);
            string          employeeID     = context.Request.Params["employeeID"];
            WithdrawDetails withdraw       = new WithdrawDetails();

            withdraw.ID             = Guid.NewGuid().ToString();
            withdraw.EMPLOYEEID     = employeeID;
            withdraw.WITHDRAWAMOUNT = withdrawAmount;
            withdraw.CREATEDATE     = DateTime.Now;
            withdraw.ISCONFIRMED    = false;
            if (new WithdrawDetailsBLL().Add(withdraw))
            {
                sbJsonResult.Append("{\"result\":\"1\"}");
            }
            else
            {
                sbJsonResult.Append("{\"result\":\"0\"}");
            }
            return(sbJsonResult.ToString());
        }
 protected void gvWithdrawApprove_RowCommand(object sender, GridViewCommandEventArgs e)
 {
     if (e.CommandName == "Confirm")
     {
         string[]        strArgs         = e.CommandArgument.ToString().Split('|');
         string          withdrawID      = strArgs[0];
         string          employeeID      = strArgs[1];
         WithdrawDetails withdrawDetails = wBll.GetModel(withdrawID);
         withdrawDetails.ISCONFIRMED   = true;
         withdrawDetails.OPERATEPERSON = UserProfile.GetInstance().ID;
         if (wBll.Update(withdrawDetails))
         {
             EmployeeAccount empAcct02 = empAcctBll.GetModelList(" employeeID = '" + employeeID + "'").FirstOrDefault();
             if (empAcct02 != null)
             {
                 if (empAcct02.AMOUNT >= withdrawDetails.WITHDRAWAMOUNT)
                 {
                     // 余额减去
                     empAcct02.AMOUNT -= withdrawDetails.WITHDRAWAMOUNT;
                     // 已发加上
                     empAcct02.PAIDAMOUNT += withdrawDetails.WITHDRAWAMOUNT;
                     if (empAcctBll.Update(empAcct02))
                     {
                         LoadWithdraw();
                         ClientScript.RegisterClientScriptBlock(this.GetType(), Guid.NewGuid().ToString(), "alert('操作成功!');", true);
                     }
                 }
                 else
                 {
                     ClientScript.RegisterClientScriptBlock(this.GetType(), Guid.NewGuid().ToString(), "alert('操作失败!code: 4001');", true);
                 }
             }
         }
         else
         {
             ClientScript.RegisterClientScriptBlock(this.GetType(), Guid.NewGuid().ToString(), "alert('操作失败!');", true);
         }
     }
 }
Beispiel #10
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public bool Add(WithdrawDetails model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into withdrawdetails(");
            strSql.Append("ID,EMPLOYEEID,WITHDRAWAMOUNT,CREATEDATE,ISCONFIRMED,OPERATEPERSON,ISDELETED)");
            strSql.Append(" values (");
            strSql.Append("@ID,@EMPLOYEEID,@WITHDRAWAMOUNT,@CREATEDATE,@ISCONFIRMED,@OPERATEPERSON,@ISDELETED)");
            MySqlParameter[] parameters =
            {
                new MySqlParameter("@ID",             MySqlDbType.VarChar,   36),
                new MySqlParameter("@EMPLOYEEID",     MySqlDbType.VarChar,   36),
                new MySqlParameter("@WITHDRAWAMOUNT", MySqlDbType.Decimal,   12),
                new MySqlParameter("@CREATEDATE",     MySqlDbType.DateTime),
                new MySqlParameter("@ISCONFIRMED",    MySqlDbType.Bit),
                new MySqlParameter("@OPERATEPERSON",  MySqlDbType.VarChar,   36),
                new MySqlParameter("@ISDELETED",      MySqlDbType.Bit)
            };
            parameters[0].Value = model.ID;
            parameters[1].Value = model.EMPLOYEEID;
            parameters[2].Value = model.WITHDRAWAMOUNT;
            parameters[3].Value = model.CREATEDATE;
            parameters[4].Value = model.ISCONFIRMED;
            parameters[5].Value = model.OPERATEPERSON;
            parameters[6].Value = model.ISDELETED;

            int rows = DbHelperMySQL.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Beispiel #11
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public WithdrawDetails GetModel(string ID)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select ID,EMPLOYEEID,WITHDRAWAMOUNT,CREATEDATE,ISCONFIRMED,OPERATEPERSON,ISDELETED from withdrawdetails ");
            strSql.Append(" where ID=@ID ");
            MySqlParameter[] parameters =
            {
                new MySqlParameter("@ID", MySqlDbType.VarChar, 36)
            };
            parameters[0].Value = ID;

            WithdrawDetails model = new WithdrawDetails();
            DataSet         ds    = DbHelperMySQL.Query(strSql.ToString(), parameters);

            if (ds.Tables[0].Rows.Count > 0)
            {
                return(DataRowToModel(ds.Tables[0].Rows[0]));
            }
            else
            {
                return(null);
            }
        }
 /// <summary>
 /// 更新一条数据
 /// </summary>
 public bool Update(WithdrawDetails model)
 {
     return(dal.Update(model));
 }
 /// <summary>
 /// 增加一条数据
 /// </summary>
 public bool Add(WithdrawDetails model)
 {
     return(dal.Add(model));
 }
 public ActionResult Withdrawal_Failed(WithdrawDetails details)
 {
     return(View());
 }
 public Withdraw(WithdrawDetails withdraw)
 {
     //Setting MaximumLimitAchieved false as maximum limit checker functionality is not implemented yet.
     withdraw.MaximumLimitAchieved = false;
 }