/// <summary> /// 编辑计时工资项信息 /// </summary> /// <param name="lstEdit">计时工资项信息</param> /// <returns></returns> public static bool SavePieceworkSalaryInfo(ArrayList lstEdit) { //定义返回变量 bool isSucc = true; //信息存在时,进行操作 if (lstEdit != null && lstEdit.Count > 0) { //获取登陆用户信息 UserInfoUtil userInfo = (UserInfoUtil)SessionUtil.Session["UserInfo"]; //执行保存操作 try { //执行保存操作 isSucc = PieceworkSalaryDBHelper.SavePieceworkSalaryInfo(lstEdit, userInfo.CompanyCD, userInfo.UserID); } catch (Exception ex) { //输出系统日志 WriteSystemLog(userInfo, ex); } //操作日志 LogInfoModel logModel = InitLogInfo(userInfo.CompanyCD); //设置关键元素 logModel.Element = ConstUtil.LOG_PROCESS_UPDATE; //更新成功时 if (isSucc) { //设置操作成功标识 logModel.Remark = ConstUtil.LOG_PROCESS_SUCCESS; } //更新不成功 else { //设置操作成功标识 logModel.Remark = ConstUtil.LOG_PROCESS_FAILED; } //登陆日志 LogDBHelper.InsertLog(logModel); } return(isSucc); }
/// <summary> /// 查询计时工资项信息 /// </summary> /// <param name="model">查询条件</param> /// <param name="itemNo">计时项目编号</param> /// <returns></returns> public static string GetPieceworkSalaryInfo(EmployeeSearchModel model, string itemNo) { //获取登陆用户信息 UserInfoUtil userInfo = (UserInfoUtil)SessionUtil.Session["UserInfo"]; //设置公司代码 model.CompanyCD = userInfo.CompanyCD; //获取满足条件的人员信息查询 DataTable dtEmplInfo = PieceworkSalaryDBHelper.GetEmplInfo(model, itemNo); //变量定义 StringBuilder sbPieceworkSalaryInfo = new StringBuilder(); //数据存在时,设置数据 if (dtEmplInfo != null && dtEmplInfo.Rows.Count > 0) { //设置记录数 model.RecordCount = dtEmplInfo.Rows.Count.ToString(); //遍历员工获取计时工资信息 for (int i = 0; i < dtEmplInfo.Rows.Count; i++) { //获取人员ID string emplID = GetSafeData.GetStringFromInt(dtEmplInfo.Rows[i], "EmployeeID"); //获取人员计时工资 DataTable dtPeiceItemInfo = PieceworkSalaryDBHelper.GetPeiceItemInfo(model.CompanyCD , emplID, itemNo, model.StartDate, model.EndDate); //变量定义 decimal totalMoney = 0; int pieceworkItemCount = 0; int totalRowCount = 0; StringBuilder sbEmplFirstRow = new StringBuilder(); StringBuilder sbEmplNotFirstRow = new StringBuilder(); //获取工资项目总数 if (dtPeiceItemInfo != null && dtPeiceItemInfo.Rows.Count > 0) { pieceworkItemCount = dtPeiceItemInfo.Rows.Count; } #region 生成每个计时项目的具体信息 //遍历工资项 for (int j = 0; j < pieceworkItemCount; j++) { //变量定义 decimal pieceworkTotalMoney = 0; StringBuilder sbPieceworkFirstRow = new StringBuilder(); StringBuilder sbPieceworkNotFirstRow = new StringBuilder(); //获取工资项编号 string pieceworkItemNo = GetSafeData.ValidateDataRow_String(dtPeiceItemInfo.Rows[j], "ItemNo"); //获取工资内容 DataTable dtPieceworkSalaryInfo = PieceworkSalaryDBHelper.GetPieceworkSalaryInfo(model.CompanyCD , emplID, pieceworkItemNo, model.StartDate, model.EndDate); //获取工资内容总数 int PieceworkSalaryCount = 0; if (dtPieceworkSalaryInfo != null && dtPieceworkSalaryInfo.Rows.Count > 0) { PieceworkSalaryCount = dtPieceworkSalaryInfo.Rows.Count; } //单价 string price = StringUtil.TrimZero(GetSafeData.GetStringFromDecimal(dtPeiceItemInfo.Rows[j], "UnitPrice")); StringBuilder sbItemTemp = new StringBuilder(); // //工资编号 sbItemTemp.AppendLine("<td class='tdColInputCenter' rowspan='" + PieceworkSalaryCount.ToString() + "'>" + "<input type='hidden' id='txtSalaryNo_" + (i + 1).ToString() + "_" + (j + 1).ToString() + "' value='" + pieceworkItemNo + "' />" + "<input type='hidden' id='txtSalaryCount_" + (i + 1).ToString() + "_" + (j + 1).ToString() + "' value='" + PieceworkSalaryCount + "' />" + GetSafeData.ValidateDataRow_String(dtPeiceItemInfo.Rows[j], "ItemName") + "</td>"); //单价 sbItemTemp.AppendLine("<td class='tdColInputCenter' rowspan='" + PieceworkSalaryCount.ToString() + "' id='tdUnitPrice_" + (i + 1).ToString() + "_" + (j + 1).ToString() + "' >" + price + "</td>"); //第一行时 if (j == 0) { sbEmplFirstRow.AppendLine(sbItemTemp.ToString()); } else { //行开始 sbEmplNotFirstRow.AppendLine("<tr>"); sbEmplNotFirstRow.AppendLine(sbItemTemp.ToString()); } //遍历所有项目获取具体 for (int x = 0; x < PieceworkSalaryCount; x++) { StringBuilder sbTemp = new StringBuilder(); //数量 string amount = StringUtil.TrimZero(GetSafeData.GetStringFromDecimal(dtPieceworkSalaryInfo.Rows[x], "Amount")); sbTemp.AppendLine("<td class='tdColInputCenter' >" + "<input type='text' class='tdinput' readonly='readonly' id='txtAmount_" + (i + 1).ToString() + "_" + (j + 1).ToString() + "_" + (x + 1).ToString() + "' value='" + amount + "' style='width=95%;background-color:#FFFFE0;'" + " onblur='CalculateTotalSalary(this, \"" + (i + 1).ToString() + "\", \"" + (j + 1).ToString() + "\", \"" + (x + 1).ToString() + "\");' onchange='Number_round(this,\"2\");' maxlength = '8' />" + "</td>"); //金额 string salaryMoney = StringUtil.TrimZero(GetSafeData.GetStringFromDecimal(dtPieceworkSalaryInfo.Rows[x], "SalaryMoney")); sbTemp.AppendLine("<td class='tdColInputCenter' id='tdAmountMoney_" + (i + 1).ToString() + "_" + (j + 1).ToString() + "_" + (x + 1).ToString() + "' >" + salaryMoney + "</td>"); //日期 sbTemp.AppendLine("<td class='tdColInputCenter' id='tdSalaryDate_" + (i + 1).ToString() + "_" + (j + 1).ToString() + "_" + (x + 1).ToString() + "'>" + GetSafeData.ValidateDataRow_String(dtPieceworkSalaryInfo.Rows[x], "PieceDate") + "</td>"); //来源 //sbTemp.AppendLine("<td class='tdColInputCenter' id='tdSalaryDate_" + (i + 1).ToString() + "_" + (j + 1).ToString() // + "_" + (x + 1).ToString() + "'>" + GetSafeData.ValidateDataRow_String(dtPieceworkSalaryInfo.Rows[x], "PieceDate") + "</td>"); //计算小计金额 pieceworkTotalMoney += decimal.Parse(salaryMoney); if (x == 0) { //人员的第一行信息时 if (j == 0) { sbEmplFirstRow.AppendLine(sbTemp.ToString()); } //不是人员的第一行信息,但是是计时工资项的第一行信息 else { sbPieceworkFirstRow.AppendLine(sbTemp.ToString()); } } else { //行开始 sbPieceworkNotFirstRow.AppendLine("<tr>"); sbPieceworkNotFirstRow.AppendLine(sbTemp.ToString()); //行结束 sbPieceworkNotFirstRow.AppendLine("</tr>"); } } //工资小计 if (j == 0) { sbEmplFirstRow.AppendLine("<td id='tdAmountTotalMoney_" + (i + 1).ToString() + "_" + (j + 1).ToString() + "' class='tdColInputCenter' rowspan='" + PieceworkSalaryCount.ToString() + "'>" + pieceworkTotalMoney.ToString() + "</td>"); } else { sbPieceworkFirstRow.AppendLine("<td id='tdAmountTotalMoney_" + (i + 1).ToString() + "_" + (j + 1).ToString() + "' class='tdColInputCenter' rowspan='" + PieceworkSalaryCount.ToString() + "'>" + pieceworkTotalMoney.ToString() + "</td></tr>"); } //计算合计金额 totalMoney += pieceworkTotalMoney; //行数统计 totalRowCount += PieceworkSalaryCount; //非第一行时,添加到非第一行的信息里 sbEmplNotFirstRow.AppendLine(sbPieceworkFirstRow.ToString() + sbPieceworkNotFirstRow.ToString()); } #endregion //行开始 sbPieceworkSalaryInfo.AppendLine("<tr>"); //选择 sbPieceworkSalaryInfo.AppendLine("<td class='tdColInputCenter' rowspan='" + totalRowCount.ToString() + "'>" + "<input id='chkSelect_" + (i + 1).ToString() + "' name='chkSelect' value='" + GetSafeData.ValidateDataRow_String(dtEmplInfo.Rows[i], "EmployeeNo") + "' type='checkbox' onpropertychange='getChage(this)' />" + "</td>"); //人员编号 sbPieceworkSalaryInfo.AppendLine("<td class='tdColInputCenter' rowspan='" + totalRowCount.ToString() + "'>" + "<input type='hidden' id='txtEmplID_" + (i + 1).ToString() + "' value='" + emplID + "' />" + "<input type='hidden' id='txtItemCount_" + (i + 1).ToString() + "' value='" + pieceworkItemCount + "' />" + GetSafeData.ValidateDataRow_String(dtEmplInfo.Rows[i], "EmployeeNo") + "</td>"); //人员姓名 sbPieceworkSalaryInfo.AppendLine("<td class='tdColInputCenter' rowspan='" + totalRowCount.ToString() + "'>" + GetSafeData.ValidateDataRow_String(dtEmplInfo.Rows[i], "EmployeeName") + "</td>"); //所在部门 sbPieceworkSalaryInfo.AppendLine("<td class='tdColInputCenter' rowspan='" + totalRowCount.ToString() + "'>" + GetSafeData.ValidateDataRow_String(dtEmplInfo.Rows[i], "DeptName") + "</td>"); //岗位名称 sbPieceworkSalaryInfo.AppendLine("<td class='tdColInputCenter' rowspan='" + totalRowCount.ToString() + "'>" + GetSafeData.ValidateDataRow_String(dtEmplInfo.Rows[i], "QuarterName") + "</td>"); //岗位职等 sbPieceworkSalaryInfo.AppendLine("<td class='tdColInputCenter' rowspan='" + totalRowCount.ToString() + "'>" + GetSafeData.ValidateDataRow_String(dtEmplInfo.Rows[i], "AdminLevelName") + "</td>"); //具体的计时项目信息 sbPieceworkSalaryInfo.AppendLine(sbEmplFirstRow.ToString()); //工资合计 sbPieceworkSalaryInfo.AppendLine("<td class='tdColInputCenter' id='tdTotalMoney_" + (i + 1).ToString() + "' rowspan='" + totalRowCount.ToString() + "'>" + totalMoney.ToString() + "</td>"); //行结束 sbPieceworkSalaryInfo.AppendLine("</tr>"); //具体的计时项目信息 sbPieceworkSalaryInfo.AppendLine(sbEmplNotFirstRow.ToString()); } } return(sbPieceworkSalaryInfo.ToString()); }