protected void btnSearch_Click(object sender, EventArgs e)
 {
     try
     {
         EmployeeAccount empAcct = empAcctBll.GetModelList(" employeeID = '" + ddlEmployeeName.SelectedValue + "'").FirstOrDefault();
         txtCanPayoff.Text = empAcct?.AMOUNT.ToString();
     }
     catch (Exception ex)
     {
         LogHelper.WriteLine(ex.Message);
         ClientScript.RegisterClientScriptBlock(this.GetType(), Guid.NewGuid().ToString(), "alert('程序异常!');", true);
     }
 }
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack)
     {
         string employeeID = Request.QueryString["employeeID"];
         hidEmployeeID.Value = employeeID;
         EmployeeAccount empAcct = eaBll.GetModelList(" employeeID = '" + employeeID + "'").FirstOrDefault();
         if (empAcct != null)
         {
             // 员工已经申请但尚未通过审核的金额
             decimal withdrawAmount = wdBll.GetModelList(" employeeID = '" + employeeID + "' and isconfirmed = 0").Sum(item => item.WITHDRAWAMOUNT) ?? 0m;
             // 可提现金额,为员工账户剩余金额 减去 上面获取到的金额
             lblCanWithdrawAmount.Text = (empAcct.AMOUNT - withdrawAmount).ToString();
         }
         else
         {
             lblCanWithdrawAmount.Text      = "数据异常,请联系管理员!";
             lblCanWithdrawAmount.ForeColor = System.Drawing.Color.Red;
         }
     }
 }
 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);
         }
     }
 }
        private string GetEmployeeAccount(HttpContext context)
        {
            StringBuilder         sbJsonResult          = new StringBuilder();
            string                employeeID            = context.Request.Params["employeeID"];
            EmployeeAccount       empAcct               = empAcctBll.GetModelList(" employeeID = '" + employeeID + "'").FirstOrDefault();
            TransactionDetailsBLL transactionDetailsBll = new TransactionDetailsBLL();

            //账户余额
            decimal amount = 0m;
            //decimal surplus = 0m;
            // 已发
            decimal paid = 0m;
            // 奖罚,获取交易记录中奖励和处罚之和
            decimal rewardAndAmercement = transactionDetailsBll.GetRewardAndAmercementAmount(employeeID);
            decimal others = transactionDetailsBll.GetOtherAmount(employeeID);

            if (empAcct != null)
            {
                amount = empAcct.AMOUNT ?? 0m;
                //surplus = empAcct.SURPLUSAMOUNT ?? 0m;
                // 已发,取员工账户表中已发的值
                paid = empAcct.PAIDAMOUNT ?? 0m;
                //rewardAndAmercement = empAcct.REWARDANDAMERCEMENTAMOUNT ?? 0m;
                // 其他
                //others = empAcct.OTHERSAMOUNT ?? 0m;
            }
            StringBuilder sbEmpAcct = new StringBuilder();

            sbEmpAcct.Append("[");
            sbEmpAcct.Append("{\"value\":" + amount + ",\"name\":\"剩余\"},");
            sbEmpAcct.Append("{\"value\":" + paid + ",\"name\":\"已发\"},");
            sbEmpAcct.Append("{\"value\":" + Math.Abs(rewardAndAmercement) + ",\"name\":\"奖罚\"},");
            sbEmpAcct.Append("{\"value\":" + Math.Abs(others) + ",\"name\":\"其他\"}");
            sbEmpAcct.Append("]");
            sbJsonResult.Append(sbEmpAcct);
            return(sbJsonResult.ToString());
        }
Пример #5
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(ddlCanTransferEmp.SelectedValue))
            {
                ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), "alert('请选择需要转移到的员工!');", true);
                return;
            }
            try
            {
                if (Convert.ToDecimal(txtProportion.Text.Trim()) > 100)
                {
                    ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), "alert('比例不能超过100%!');", true);
                    return;
                }
                if (Convert.ToDecimal(txtAmount.Text.Trim()) > Convert.ToDecimal(hidAmount.Value))
                {
                    ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), "alert('不能超过原始金额!');", true);
                    return;
                }
            }
            catch (Exception ex0)
            {
                ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), "alert('数值不正确!');", true);
                return;
            }
            // 声明变量
            EmployeeAccountBLL eaBll = new EmployeeAccountBLL();
            // 任务ID
            string prjID = Request.QueryString["prjID"].ToString();
            // 当前分部领导 empId
            string parentEmployeeID = Convert.ToString(Request.QueryString["parentEmployeeID"]);
            // 需要转移对象的 empId
            string employeeID = ddlCanTransferEmp.SelectedValue;

            // 移动目录
            Employee empParent       = empBll.GetModel(parentEmployeeID);
            string   parentEmpNo     = empParent.EMPLOYEENO;
            Employee empToTransfer   = empBll.GetModel(employeeID);
            string   transferToEmpNo = empToTransfer.EMPLOYEENO;

            FileCategoryBLL fcBll                  = new FileCategoryBLL();
            int             errCode                = 0;
            string          returnFolderName       = string.Empty;
            string          taskRootFolder         = string.Empty;
            string          taskFolderWithoutEmpNo = string.Empty;

            fcBll.GetFilePathByProjectId(prjID, string.Empty, string.Empty, false, out returnFolderName, out taskRootFolder, out taskFolderWithoutEmpNo, out errCode);
            string sourceDirectory   = string.Format(taskFolderWithoutEmpNo, parentEmpNo);
            string destinctDirectory = string.Format(taskFolderWithoutEmpNo, transferToEmpNo);

            try
            {
                Directory.Move(sourceDirectory, destinctDirectory);
            }
            catch (Exception ex)
            {
                LogHelper.WriteLine("|" + sourceDirectory + "|" + destinctDirectory);
                LogHelper.WriteLine(ex.Message + ex.StackTrace);
                ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), "alert('目录移动失败!');", true);
                return;
            }

            // 更新部门领导账户,按照配置比例计算出金额后累加到分部领导账户
            decimal           proportion        = 0;
            ProjectProportion projectProportion = new ProjectProportionBLL().GetModelList(" projectId = '" + prjID + "'").FirstOrDefault();

            if (projectProportion != null)
            {
                proportion = projectProportion.PROPORTION ?? 0m;
            }
            else
            {
                EmployeeProportion empProportion = new EmployeeProportionBLL().GetModelList(" AND employeeId = '" + parentEmployeeID + "'").FirstOrDefault();
                proportion = empProportion.PROPORTION ?? 0m;
            }
            decimal         amountToLeader = Convert.ToDecimal(Request.QueryString["amount"]);
            EmployeeAccount empAcctParent  = new EmployeeAccount();

            empAcctParent                = eaBll.GetModelList(" employeeId = '" + parentEmployeeID + "'").FirstOrDefault();
            empAcctParent.AMOUNT        += (amountToLeader * proportion);
            empAcctParent.LASTUPDATEDATE = DateTime.Now;
            eaBll.Update(empAcctParent);

            // 添加一条交易记录
            TransactionDetails transactionDetails = new TransactionDetails();

            transactionDetails.ID = Guid.NewGuid().ToString();
            transactionDetails.TRANSACTIONAMOUNT      = amountToLeader * proportion;
            transactionDetails.TRANSACTIONDESCRIPTION = "分部领导提成";
            transactionDetails.TRANSACTIONPROPORTION  = proportion;
            transactionDetails.TRANSACTIONTYPE        = 6;
            transactionDetails.TRANSACTIONDATE        = DateTime.Now;
            transactionDetails.PLANDATE   = DateTimeHelper.GetFirstDateOfCurrentMonth();
            transactionDetails.EMPLOYEEID = parentEmployeeID;
            transactionDetails.PROJECTID  = prjID;
            transactionDetails.ISDELETED  = false;
            tdBll.Add(transactionDetails);

            //// 转移到的员工  先计入一条状态为已删除的数据,后续待任务完成时再调整:需要待任务完成后,再计入账户
            transactionDetails    = new TransactionDetails();
            transactionDetails.ID = Guid.NewGuid().ToString();
            transactionDetails.TRANSACTIONAMOUNT      = Convert.ToDecimal(txtAmount.Text.Trim());
            transactionDetails.TRANSACTIONDESCRIPTION = "项目提成(暂存)";
            transactionDetails.TRANSACTIONTYPE        = 7;
            transactionDetails.TRANSACTIONDATE        = DateTime.Now;
            transactionDetails.PLANDATE   = DateTimeHelper.GetFirstDateOfCurrentMonth();
            transactionDetails.EMPLOYEEID = employeeID;
            transactionDetails.PROJECTID  = prjID;
            transactionDetails.ISDELETED  = true;
            tdBll.Add(transactionDetails);

            //EmployeeAccount empAcctTransferTo = new EmployeeAccount();
            //empAcctTransferTo = eaBll.GetModelList(" employeeID = '" + employeeID + "'").FirstOrDefault();
            //empAcctTransferTo.AMOUNT += Convert.ToDecimal(txtAmount.Text.Trim());
            //empAcctTransferTo.LASTUPDATEDATE = DateTime.Now;
            //eaBll.Update(empAcctTransferTo);

            // 更新任务完成人
            ProjectSharing ps = new ProjectSharing();

            ps = psBll.GetModelList(" projectId = '" + prjID + "' AND FInishedperson = '" + parentEmployeeID + "'").FirstOrDefault();
            ps.FINISHEDPERSON = employeeID;
            if (psBll.Update(ps))
            {
                ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), "alert('转移成功!');window.top.location.href='/employeeHome.aspx';", true);
                return;
            }

            ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), "alert('更新完成人失败!');window.top.location.href='/employeeHome.aspx';", true);
            return;
        }
        /// <summary>
        /// 添加一条交易记录
        /// </summary>
        private void AddTransaction()
        {
            string employeeID = ddlEmployeeName.SelectedValue;

            // 首先添加交易记录
            TransactionDetails transac = new TransactionDetails();

            transac.ID = Guid.NewGuid().ToString();
            transac.TRANSACTIONAMOUNT      = Convert.ToDecimal(txtAmount.Text.Trim());
            transac.TRANSACTIONTYPE        = Convert.ToInt32(ddlTransacType.SelectedValue);
            transac.TRANSACTIONDESCRIPTION = txtDescription.Text.Trim();
            string taskNoForSearch = txtTaskNoSearch.Text.Trim();
            string taskNoForAdd    = txtTaskNo.Text.Trim();
            string taskNo          = string.Empty;

            if (string.IsNullOrEmpty(taskNoForAdd))
            {
                taskNo = taskNoForSearch;
            }
            transac.PROJECTID = new ProjectBLL().GetPrjIDByTaskNo(taskNoForSearch);
            if (string.IsNullOrEmpty(transac.PROJECTID))
            {
                ClientScript.RegisterClientScriptBlock(this.GetType(), Guid.NewGuid().ToString(), "alert('任务编号有误!');", true);
                return;
            }
            transac.EMPLOYEEID = employeeID;
            DateTime dtTransacDate  = DateTime.Now;
            string   strTransacDate = txtTransacDate.Text.Trim();

            if (!string.IsNullOrEmpty(strTransacDate))
            {
                dtTransacDate = Convert.ToDateTime(strTransacDate);
            }
            transac.TRANSACTIONDATE = dtTransacDate;
            transac.PLANDATE        = Convert.ToDateTime(string.Format("{0}-01 00:00:00", txtPlanDate.Text.Trim()));
            transac.CREATEDATE      = DateTime.Now;
            if (tdBll.Add(transac))
            {
                // 操作相应的员工账户
                EmployeeAccount empAcct = empAcctBll.GetModelList(" employeeID = '" + employeeID + "'").FirstOrDefault();
                if (empAcct != null)
                {
                    // 账户余额加上
                    empAcct.AMOUNT += transac.TRANSACTIONAMOUNT;
                    // 如果是3(即工资发放),则需要在已发项目上加上金额
                    if (ddlTransacType.SelectedValue == "3")
                    {
                        empAcct.PAIDAMOUNT += Math.Abs(transac.TRANSACTIONAMOUNT ?? 0m); // 员工账户中的已发金额加上此次发放的金额
                    }
                    if (empAcctBll.Update(empAcct))
                    {
                        txtAmount.Text = txtTransacDate.Text = string.Empty;
                        ClientScript.RegisterClientScriptBlock(this.GetType(), Guid.NewGuid().ToString(), "alert('添加成功!');", true);
                    }
                }
                else
                {
                    ClientScript.RegisterClientScriptBlock(this.GetType(), Guid.NewGuid().ToString(), "alert('添加失败!');", true);
                }
            }
            else
            {
            }
        }