public void CaicMoney(DateTime date) { DataTable dt = dal.GetIDList(date).Tables[0]; if (dt.Rows.Count > 0) { Hownet.BLL.OtherType bllOT = new OtherType(); List <Hownet.Model.OtherType> list = bllOT.DataTableToList(bllOT.GetTypeList("伙食扣费").Tables[0]); decimal ZhaoCan, WuCan, WanCan, NotEat, NotOrder; bool IsCaic = false; bool IsCaicDay = false; bool IsDay = false; ZhaoCan = WuCan = WanCan = NotEat = NotOrder = 0; for (int i = 0; i < list.Count; i++) { if (list[i].Name == "早餐") { ZhaoCan = Convert.ToDecimal(list[i].Value); } else if (list[i].Name == "午餐") { WuCan = Convert.ToDecimal(list[i].Value); } else if (list[i].Name == "晚餐") { WanCan = Convert.ToDecimal(list[i].Value); } else if (list[i].Name == "订餐后未吃") { NotEat = Convert.ToDecimal(list[i].Value); } else if (list[i].Name == "未订餐吃饭") { NotOrder = Convert.ToDecimal(list[i].Value); } else if (list[i].Name == "以下要扣费") { IsCaic = (list[i].Value == "1"); } else if (list[i].Name == "计时不扣正常餐费") { IsCaicDay = (list[i].Value == "1"); } } if (NotEat > 0 || NotOrder > 0) { Hownet.BLL.MiniEmp bllME = new MiniEmp(); DataTable dtt = bllME.GetDayList().Tables[0]; for (int i = 0; i < dt.Rows.Count; i++) { IsDay = false; if (IsCaicDay)//当有设置了计时不扣正常餐费,并且当前员工为计时工时,IsDay为真 { if (dtt.Select("(ID=" + dt.Rows[i]["EmployeeID"] + ")").Length > 0) { IsDay = true; } } UpMoney(Convert.ToInt32(dt.Rows[i]["ID"]), ZhaoCan, WuCan, WanCan, NotEat, NotOrder, IsCaic, IsDay); } } else { dal.CaicMoneyNotEat(ZhaoCan, WuCan, WanCan, IsCaicDay, date); } } }
public DataSet GetTemPayByPW(DateTime BeginDate, DateTime EndDate, int EmployeeID) { try { Hownet.BLL.OtherType bllOT = new OtherType(); List <Hownet.Model.OtherType> list = bllOT.DataTableToList(bllOT.GetTypeList("伙食扣费").Tables[0]); DataTable dtPaySet = bllOT.GetNumValue().Tables[0]; decimal ZhaoCan, WuCan, WanCan, Month; ZhaoCan = WuCan = WanCan = Month = 0; for (int i = 0; i < list.Count; i++) { if (list[i].Name == "早餐") { ZhaoCan = Convert.ToDecimal(list[i].Value); } else if (list[i].Name == "午餐") { WuCan = Convert.ToDecimal(list[i].Value); } else if (list[i].Name == "晚餐") { WanCan = Convert.ToDecimal(list[i].Value); } } DataSet ds = dal.GetTemPayByPW(BeginDate, EndDate, EmployeeID); Hownet.BLL.MiniEmp bllME = new MiniEmp(); DataTable dtEMP = bllME.GetWorkList().Tables[0]; Hownet.Model.Pay modP = new Hownet.Model.Pay(); Hownet.BLL.PayCosts bllPC = new PayCosts(); Hownet.BLL.SysTem bllST = new SysTem(); Hownet.BLL.OrderingList bllOL = new OrderingList(); Hownet.Model.SysTem modST = bllST.GetModel(bllST.GetMaxId() - 1); DataTable dtPC = bllPC.GetListByDay(BeginDate, EndDate, EmployeeID).Tables[0]; ds.Tables[0].Columns.Add("OneDate", typeof(string)); ds.Tables[0].Columns.Add("TwoDate", typeof(string)); ds.Tables[0].Columns.Add("NowMoney", typeof(decimal)); ds.Tables[0].Columns.Add("FullAttendance", typeof(decimal)); ds.Tables[0].Columns.Add("Fine", typeof(decimal)); ds.Tables[0].Columns.Add("Deposit", typeof(decimal)); ds.Tables[0].Columns.Add("Add1", typeof(decimal)); ds.Tables[0].Columns.Add("Add2", typeof(decimal)); ds.Tables[0].Columns.Add("Add3", typeof(decimal)); ds.Tables[0].Columns.Add("Add4", typeof(decimal)); ds.Tables[0].Columns.Add("Add5", typeof(decimal)); ds.Tables[0].Columns.Add("Jian1", typeof(decimal)); ds.Tables[0].Columns.Add("Jian2", typeof(decimal)); ds.Tables[0].Columns.Add("Jian3", typeof(decimal)); ds.Tables[0].Columns.Add("Jian4", typeof(decimal)); ds.Tables[0].Columns.Add("Jian5", typeof(decimal)); ds.Tables[0].Columns.Add("ActualMonth", typeof(decimal)); ds.Tables[0].Columns.Add("NotFact", typeof(bool)); ds.Tables["Info"].Columns.Add("Money", typeof(decimal)); decimal price = 0; decimal amount = 0; for (int i = 0; i < ds.Tables["Info"].Rows.Count; i++) { price = 0; amount = 0; if (ds.Tables["Info"].Rows[i]["Amount"].ToString() != "") { amount = decimal.Parse(ds.Tables["Info"].Rows[i]["Amount"].ToString()); } if (ds.Tables["Info"].Rows[i]["Price"].ToString() != "") { price = decimal.Parse(ds.Tables["Info"].Rows[i]["Price"].ToString()); } ds.Tables["Info"].Rows[i]["Money"] = (price * amount).ToString("N4"); } ds.Tables["NoDefault"].Columns.Add("Money", typeof(decimal)); if ((modST.DoubleNotDefaultWTNum > 0)) { for (int i = 0; i < ds.Tables["NoDefault"].Rows.Count; i++) { price = 0; amount = 0; if (ds.Tables["NoDefault"].Rows[i]["Amount"].ToString() != "") { amount = decimal.Parse(ds.Tables["NoDefault"].Rows[i]["Amount"].ToString()); } if (ds.Tables["NoDefault"].Rows[i]["Price"].ToString() != "") { price = decimal.Parse(ds.Tables["NoDefault"].Rows[i]["Price"].ToString()); } ds.Tables["NoDefault"].Rows[i]["Money"] = (price * amount).ToString("N4"); } } else { ds.Tables["NoDefault"].Rows.Clear(); } int AllowedCount = 0; decimal ErrorMoney = 0; if (modST.AutoCaicBoardWages) { // bllOL.CaicMoney(EndDate.AddDays(1)); AllowedCount = Convert.ToInt32(bllOT.GetList("(Name='允许违规次数')").Tables[0].Rows[0]["Value"]); ErrorMoney = Convert.ToDecimal(bllOT.GetList("(Name='订餐后未吃')").Tables[0].Rows[0]["Value"]); } DataRow[] drs; DataRow[] ddrs; DataRow[] drMEs; try { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { ds.Tables[0].Rows[i]["OneDate"] = BeginDate.ToString("yyyy年MM月dd日"); ds.Tables[0].Rows[i]["TwoDate"] = EndDate.ToString("yyyy年MM月dd日"); if (ds.Tables[0].Rows[i]["Month"].ToString() != "") { modP.Month = decimal.Parse(ds.Tables[0].Rows[i]["Month"].ToString()); } else { modP.Month = 0; } drs = dtPC.Select("(EmployeeID=" + ds.Tables[0].Rows[i]["EmployeeID"].ToString() + ") and (TypeID=62) "); drMEs = dtEMP.Select("(ID=" + ds.Tables[0].Rows[i]["EmployeeID"] + ")"); if (drs.Length > 0) { ds.Tables[0].Rows[i]["Payment"] = drs[0]["Money"]; modP.Payment = decimal.Parse(drs[0]["Money"].ToString()); } else { modP.Payment = 0; } if (modST.AutoCaicBoardWages) { modP.BoardWages = bllOL.GetMoney(Convert.ToInt32(ds.Tables[0].Rows[i]["EmployeeID"]), BeginDate, EndDate.AddDays(1), AllowedCount, ErrorMoney, ZhaoCan, WuCan, WanCan); ds.Tables[0].Rows[i]["BoardWages"] = modP.BoardWages; } else { if (drMEs.Length > 0) { modP.BoardWages = Convert.ToDecimal(drMEs[0]["BoardWages"]);// bllME.GetModel(Convert.ToInt32(ds.Tables[0].Rows[i]["EmployeeID"])).BoardWages; ds.Tables[0].Rows[i]["BoardWages"] = modP.BoardWages; } if (modP.BoardWages == 0) { drs = dtPC.Select("(EmployeeID=" + ds.Tables[0].Rows[i]["EmployeeID"].ToString() + ") and (TypeID=61)"); if (drs.Length > 0) { ds.Tables[0].Rows[i]["BoardWages"] = drs[0]["Money"]; modP.BoardWages = decimal.Parse(drs[0]["Money"].ToString()); } else { modP.BoardWages = 0; } } } drs = dtPC.Select("(EmployeeID=" + ds.Tables[0].Rows[i]["EmployeeID"].ToString() + ") and (TypeID=60)");//计算补贴 if (drs.Length > 0) { ds.Tables[0].Rows[i]["Repair"] = drs[0]["Money"]; modP.Repair = decimal.Parse(drs[0]["Money"].ToString()); } else { modP.Repair = 0; } if (modST.DoubleNotDefaultWTNum > 0) { ddrs = ds.Tables["NoDefault"].Select("(EmployeeID=" + ds.Tables[0].Rows[i]["EmployeeID"] + ")");//计算非默认工种的补贴 if (ddrs.Length > 0) { for (int m = 0; m < ddrs.Length; m++) { modP.Repair += Convert.ToDecimal(ddrs[m]["Money"]) * modST.DoubleNotDefaultWTNum; } ds.Tables[0].Rows[i]["Repair"] = modP.Repair; } } if (dtPaySet.Rows.Count > 0)//有工资提成设置 { if (drMEs.Length > 0) { if (Convert.ToBoolean(drMEs[0]["IsCaicTiCheng"])) { Month = Convert.ToDecimal(ds.Tables[0].Rows[i]["Month"]); if (Month > Convert.ToInt32(dtPaySet.Rows[0][0]))//超过最高提成,直接添加 { modP.Repair += Month * Convert.ToDecimal(dtPaySet.Rows[0][1]); ds.Tables[0].Rows[i]["Repair"] = modP.Repair; } else if (Month > Convert.ToInt32(dtPaySet.Rows[dtPaySet.Rows.Count - 1][0]))//小于最高提成额度但又大于最低提成额度,然后从大向小比较, { for (int j = 0; j < dtPaySet.Rows.Count; j++) { if (Month > Convert.ToDecimal(dtPaySet.Rows[j][0])) { modP.Repair += Month * Convert.ToDecimal(dtPaySet.Rows[j][1]); ds.Tables[0].Rows[i]["Repair"] = modP.Repair; break; } } } } } } drs = dtPC.Select("(EmployeeID=" + ds.Tables[0].Rows[i]["EmployeeID"].ToString() + ") and (TypeID=91)"); if (drs.Length > 0) { ds.Tables[0].Rows[i]["FullAttendance"] = drs[0]["Money"]; modP.FullAttendance = decimal.Parse(drs[0]["Money"].ToString()); } else { modP.FullAttendance = 0; } drs = dtPC.Select("(EmployeeID=" + ds.Tables[0].Rows[i]["EmployeeID"].ToString() + ") and (TypeID=92)"); if (drs.Length > 0) { ds.Tables[0].Rows[i]["Fine"] = drs[0]["Money"]; modP.Fine = decimal.Parse(drs[0]["Money"].ToString()); } else { modP.Fine = 0; } //drs = dtPC.Select("(EmployeeID=" + ds.Tables[0].Rows[i]["EmployeeID"].ToString() + ") and (TypeID=92)"); //if (drs.Length > 0) //{ // ds.Tables[0].Rows[i]["Fine"] = drs[0]["Money"]; // modP.Deposit = decimal.Parse(drs[0]["Money"].ToString()); //} //else drs = dtPC.Select("(EmployeeID=" + ds.Tables[0].Rows[i]["EmployeeID"].ToString() + ") and (TypeID=109)"); if (drs.Length > 0) { ds.Tables[0].Rows[i]["Deposit"] = drs[0]["Money"]; modP.Deposit = decimal.Parse(drs[0]["Money"].ToString()); } else { modP.Deposit = 0; } drs = dtPC.Select("(EmployeeID=" + ds.Tables[0].Rows[i]["EmployeeID"].ToString() + ") and (TypeID=7)"); if (drs.Length > 0) { ds.Tables[0].Rows[i]["Add1"] = drs[0]["Money"]; modP.Add1 = decimal.Parse(drs[0]["Money"].ToString()); } else { modP.Add1 = 0; } drs = dtPC.Select("(EmployeeID=" + ds.Tables[0].Rows[i]["EmployeeID"].ToString() + ") and (TypeID=8)"); if (drs.Length > 0) { ds.Tables[0].Rows[i]["Add2"] = drs[0]["Money"]; modP.Add2 = decimal.Parse(drs[0]["Money"].ToString()); } else { modP.Add2 = 0; } drs = dtPC.Select("(EmployeeID=" + ds.Tables[0].Rows[i]["EmployeeID"].ToString() + ") and (TypeID=9)"); if (drs.Length > 0) { ds.Tables[0].Rows[i]["Add3"] = drs[0]["Money"]; modP.Add3 = decimal.Parse(drs[0]["Money"].ToString()); } else { modP.Add3 = 0; } drs = dtPC.Select("(EmployeeID=" + ds.Tables[0].Rows[i]["EmployeeID"].ToString() + ") and (TypeID=10)"); if (drs.Length > 0) { ds.Tables[0].Rows[i]["Add4"] = drs[0]["Money"]; modP.Add4 = decimal.Parse(drs[0]["Money"].ToString()); } else { modP.Add4 = 0; } drs = dtPC.Select("(EmployeeID=" + ds.Tables[0].Rows[i]["EmployeeID"].ToString() + ") and (TypeID=11)"); if (drs.Length > 0) { ds.Tables[0].Rows[i]["Add5"] = drs[0]["Money"]; modP.Add5 = decimal.Parse(drs[0]["Money"].ToString()); } else { modP.Add5 = 0; } drs = dtPC.Select("(EmployeeID=" + ds.Tables[0].Rows[i]["EmployeeID"].ToString() + ") and (TypeID=12)"); if (drs.Length > 0) { ds.Tables[0].Rows[i]["Jian1"] = drs[0]["Money"]; modP.Jian1 = decimal.Parse(drs[0]["Money"].ToString()); } else { modP.Jian1 = 0; } drs = dtPC.Select("(EmployeeID=" + ds.Tables[0].Rows[i]["EmployeeID"].ToString() + ") and (TypeID=13)"); if (drs.Length > 0) { ds.Tables[0].Rows[i]["Jian2"] = drs[0]["Money"]; modP.Jian2 = decimal.Parse(drs[0]["Money"].ToString()); } else { modP.Jian2 = 0; } drs = dtPC.Select("(EmployeeID=" + ds.Tables[0].Rows[i]["EmployeeID"].ToString() + ") and (TypeID=14)"); if (drs.Length > 0) { ds.Tables[0].Rows[i]["Jian3"] = drs[0]["Money"]; modP.Jian3 = decimal.Parse(drs[0]["Money"].ToString()); } else { modP.Jian3 = 0; } drs = dtPC.Select("(EmployeeID=" + ds.Tables[0].Rows[i]["EmployeeID"].ToString() + ") and (TypeID=15)"); if (drs.Length > 0) { ds.Tables[0].Rows[i]["Jian4"] = drs[0]["Money"]; modP.Jian4 = decimal.Parse(drs[0]["Money"].ToString()); } else { modP.Jian4 = 0; } drs = dtPC.Select("(EmployeeID=" + ds.Tables[0].Rows[i]["EmployeeID"].ToString() + ") and (TypeID=16)"); if (drs.Length > 0) { ds.Tables[0].Rows[i]["Jian5"] = drs[0]["Money"]; modP.Jian5 = decimal.Parse(drs[0]["Money"].ToString()); } else { modP.Jian5 = 0; } ds.Tables[0].Rows[i]["ActualMonth"] = ds.Tables[0].Rows[i]["Month"]; ds.Tables[0].Rows[i]["NotFact"] = false; // ds.Tables[0].Rows[i]["NowMoney"] = modP.Month + modP.Repair - modP.BoardWages - modP.Payment + modP.FullAttendance - modP.Fine - modP.Deposit; } } catch (Exception ex) { } return(ds); } catch (Exception ex) { return(new DataSet()); } }