protected void btnPayoff_Click(object sender, EventArgs e) { try { decimal payOffAmount = Convert.ToDecimal(txtAmount.Text.Trim()); // 员工账户表修改 EmployeeAccount empAcct = empAcctBll.GetModelList(" employeeID = '" + ddlEmployeeName.SelectedValue + "'").FirstOrDefault(); empAcct.AMOUNT += payOffAmount; // 账户金额(即余额),因为实际操作中,用户会输入负号,因此这里是加上 empAcct.PAIDAMOUNT += Math.Abs(payOffAmount); // 已发金额,这里取绝对值后累加就可以了 if (!empAcctBll.Update(empAcct)) { LogHelper.WriteLine(ddlEmployeeName.SelectedItem.Text + "账户修改失败"); } // 交易记录表对应记录也需要修改 TransactionDetails transac = new TransactionDetails(); transac.ID = Guid.NewGuid().ToString(); transac.TRANSACTIONAMOUNT = payOffAmount; transac.TRANSACTIONDATE = Convert.ToDateTime(txtTransacDate.Text); transac.PLANDATE = DateTimeHelper.GetFirstDateOfCurrentMonth(); transac.TRANSACTIONTYPE = Convert.ToInt32(ddlTransacType.SelectedValue); transac.EMPLOYEEID = ddlEmployeeName.SelectedValue; transac.CREATEDATE = DateTime.Now; if (!tdBll.Add(transac)) { LogHelper.WriteLine(ddlEmployeeName.SelectedItem.Text + "交易记录添加失败"); } } catch (Exception ex) { LogHelper.WriteLine(ex.Message); ClientScript.RegisterClientScriptBlock(this.GetType(), Guid.NewGuid().ToString(), "alert('程序异常!" + ex.Message + "');", true); } }
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); } } }
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 { } }