private void BindData(int classfiy) { PM_Promotor p = new PM_PromotorBLL((int)ViewState["PromotorID"]).Model; #region 获取当前导购标准薪资、保底薪资、导购管理费 if ((int)ViewState["PromotorID"] > 0) { decimal basepay = 0, minumumwage = 0, rtmanagecost = 0; new PM_PromotorBLL((int)ViewState["PromotorID"]).GetStdPay(out basepay, out minumumwage, out rtmanagecost); ViewState["BasePay"] = basepay; ViewState["MinumumWage"] = minumumwage; ViewState["RTManageCost"] = rtmanagecost; } #endregion PM_PromotorSalary m = new PM_PromotorSalary(); m.Promotor = (int)ViewState["PromotorID"]; m.State = 1; m.InsertStaff = (int)Session["UserID"]; m.RTManageCost = (decimal)ViewState["RTManageCost"]; ddl_BasePayMode.Enabled = false; if (classfiy == 1 || classfiy == 2) { m.BasePayMode = 3; } else { m.SeniorityPayMode = 1; ddl_BankType.Items[3].Enabled = false; #region 抓取固定底薪标准 decimal basepay = (decimal)ViewState["BasePay"]; m.BasePay = basepay; #endregion Addr_OrganizeCityBLL _bll = new Addr_OrganizeCityBLL(p.OrganizeCity); if (_bll.IsChildOrganizeCity(7))//判断是否为华南区 { ddl_BasePayMode.Items.Remove(new ListItem("浮动底薪(非华南)", "4")); ddl_BasePayMode.Items.Remove(new ListItem("兼职底薪", "3")); ddl_BasePayMode.Enabled = true; ddl_SalesType.Enabled = true; txt_BaseFeeRate.Enabled = true; } else { m.BasePayMode = 1; } } UC_DetailView1.BindData(m); if (m.RTManageCost > 0 && (decimal)ViewState["RTManageCost"] == m.RTManageCost) { TextBox tbx = (TextBox)UC_DetailView1.FindControl("PM_PromotorSalary_RTManageCost"); if (tbx != null) { tbx.Enabled = false; } } if (m.State < 3) { #region 兼职导购的限定 try { if (classfiy != 1 && classfiy != 2) //非专职、非流导,认为是兼职导购 { DateTime Birthday; if (DateTime.TryParse(p["Birthday"], out Birthday) && Birthday.AddYears(49) < DateTime.Now) { foreach (ListItem item in ddl_InsuranceMode.Items) { if (item.Value != "5" && item.Value != "8" && item.Value != "0") { item.Enabled = false; } } } SetControlsEnable(true); } else { SetControlsEnable(false); } } catch { } #endregion ddl_BasePaySubsidyMode_SelectedIndexChanged(null, null); ddl_InsuranceMode_SelectedIndexChanged(null, null); ddl_MinimumWageMode_SelectedIndexChanged(null, null); ddl_BankType_SelectedIndexChanged(null, null); } }
private void BindData(PM_PromotorSalary m) { if (m != null) { ViewState["PromotorID"] = m.Promotor; ViewState["PromotorSalaryID"] = m.ID; } #region 获取当前导购标准薪资、保底薪资、导购管理费 if ((int)ViewState["PromotorID"] > 0) { decimal basepay = 0, minumumwage = 0, rtmanagecost = 0; new PM_PromotorBLL((int)ViewState["PromotorID"]).GetStdPay(out basepay, out minumumwage, out rtmanagecost); ViewState["BasePay"] = basepay; ViewState["MinumumWage"] = minumumwage; ViewState["RTManageCost"] = rtmanagecost; } #endregion PM_Promotor p = new PM_PromotorBLL((int)ViewState["PromotorID"]).Model; if (p == null) { Response.Redirect("PM_PromotorDetail.aspx"); } if (m == null) { m = new PM_PromotorSalary(); m.Promotor = (int)ViewState["PromotorID"]; m.State = 1; m.InsertStaff = (int)Session["UserID"]; m.RTManageCost = (decimal)ViewState["RTManageCost"]; if (p["Classfiy"] == "1" || p["Classfiy"] == "2") { m.SeniorityPayMode = 1; } } if (p["State"] == "2") { bt_Add.Visible = false; } UC_DetailView1.BindData(m); chk_arrivetarget.Checked = m["ISArriveTarget"] == "1"; UC_DetailView1.SetControlsEnable(m.State == 1); bt_OK.Enabled = m.State == 1; if (m.ID != 0) { bt_Delete.Enabled = m.State == 1; bt_Submit.Enabled = m.State == 1; bt_Approve.Enabled = m.State == 1; } else { bt_Submit.Enabled = false; bt_Approve.Enabled = false; bt_Delete.Enabled = false; } if (m.BasePayMode != 4 && m.BasePayMode != 5) { setdisabledfloatingcontorl(false); } //导购为新入职、或离职状态 if (p.ApproveFlag == 2) { bt_Submit.Visible = false; } //if (p.Dimission == 2) bt_Add.Visible = false; if (m.RTManageCost > 0 && (decimal)ViewState["RTManageCost"] == m.RTManageCost) { TextBox tbx = (TextBox)UC_DetailView1.FindControl("PM_PromotorSalary_RTManageCost"); if (tbx != null) { tbx.Enabled = false; } } if (m.State < 2) { #region 兼职导购的限定 try { if (ddl_BasePayMode != null) { if (p["Classfiy"] != "1" && p["Classfiy"] != "2") //非专职、非流导,认为是兼职导购 { //兼职 //ddl_BasePayMode.Items[0].Enabled = false; //ddl_BasePayMode.Items[1].Enabled = false; //ddl_BasePayMode.Items[2].Enabled = false; SetControlsEnable(false); ddl_BasePayMode.SelectedValue = "3"; ddl_BasePayMode.Enabled = false; } else { Addr_OrganizeCityBLL _bll = new Addr_OrganizeCityBLL(p.OrganizeCity); string[] city3s = Addr_OrganizeCityParamBLL.GetValueByType(1, 19).Split(new char[] { ',', ',', ';', ';' }); int city3ID = TreeTableBLL.GetSuperIDByLevel("MCS_SYS.dbo.Addr_OrganizeCity", p.OrganizeCity, ConfigHelper.GetConfigInt("OrganizePartCity-CityLevel")); if (city3s.Contains(city3ID.ToString())) { ddl_BasePayMode.Items.Remove(new ListItem("浮动底薪(非华南)", "4")); } else { decimal AvgSales = 0, BaseFeeRate = 0; int SalaryDelayDays = ConfigHelper.GetConfigInt("SalaryDelayDays"); ddl_SalesType.Enabled = false; new PM_PromotorSalaryBLL().GetFloatingInfo(p.ID, AC_AccountMonthBLL.GetMonthByDate(DateTime.Now.AddDays(-SalaryDelayDays)) - 1, out AvgSales, out BaseFeeRate); if (AvgSales == 0 && BaseFeeRate == 0)//首两月不是固定底薪,不能选择浮动底薪 { ddl_BasePayMode.Items.Remove(new ListItem("浮动底薪(非华南)", "4")); } else { ViewState["AvgSales"] = AvgSales; ViewState["BaseFeeRate"] = BaseFeeRate; } ddl_BasePayMode.Items.Remove(new ListItem("浮动底薪(华南)", "5")); } ddl_BasePayMode.Items.Remove(new ListItem("兼职底薪", "3")); //50岁只能选择商保(5)或自购(8) DateTime Birthday; if (DateTime.TryParse(p["Birthday"], out Birthday) && Birthday.AddYears(50) < DateTime.Now) { foreach (ListItem item in ddl_InsuranceMode.Items) { if (item.Value != "5" && item.Value != "8" && item.Value != "0") { item.Enabled = false; } } } //专职或流导 //ddl_BasePayMode.Items[3].Enabled = false; } } } catch { } #endregion ddl_BasePayMode_SelectedIndexChanged(null, null); ddl_BasePaySubsidyMode_SelectedIndexChanged(null, null); ddl_InsuranceMode_SelectedIndexChanged(null, null); ddl_MinimumWageMode_SelectedIndexChanged(null, null); } BindGrid(); }
protected void bt_Submit_Click(object sender, EventArgs e) { if ((int)ViewState["PromotorSalaryID"] == 0) { MessageBox.Show(this, "对不起,请您先保存后在发起申请"); return; } PM_PromotorSalaryBLL bll = new PM_PromotorSalaryBLL((int)ViewState["PromotorSalaryID"]); PM_Promotor p = new PM_PromotorBLL((int)ViewState["PromotorID"]).Model; #region 判断是否KA店导购 bool IsKAChannel = false; //是否KA店导购 if (p["Classify"] != "2") //非流导 { IList <PM_PromotorInRetailer> retailers = PM_PromotorInRetailerBLL.GetModelList(" Promotor=" + ViewState["PromotorID"].ToString()); //判断导购是否在KA店工作 foreach (PM_PromotorInRetailer item in retailers) { CM_Client client = new CM_ClientBLL(item.Client).Model; if (client["RTChannel"] == "1" || client["RTChannel"] == "2") { IsKAChannel = true; } } } #endregion #region 判断是否超薪酬超准 bool bSalaryFlag = false; PM_PromotorSalary salary = bll.Model; if (salary.BasePaySubsidy >= 1) { bSalaryFlag = true; //有底薪补贴 } if (salary.MinimumWageMode == 2) { bSalaryFlag = true; //特殊保底 } if (salary.InsuranceMode == 1 && salary.InsuranceSubsidy > 100) { bSalaryFlag = true; //社保补贴大于100元的 } #endregion NameValueCollection dataobjects = new NameValueCollection(); dataobjects.Add("ID", p.ID.ToString()); dataobjects.Add("PromotorSalaryID", ViewState["PromotorSalaryID"].ToString()); dataobjects.Add("OrganizeCity", p.OrganizeCity.ToString()); dataobjects.Add("SalaryFlag", bSalaryFlag ? "2" : "1"); //薪酬标志 1:薪酬标准内 2:薪酬标准外 dataobjects.Add("StaffName", p.Name.ToString()); dataobjects.Add("IsKAChannel", IsKAChannel ? "1" : "2"); //是否KA卖场的导购 int TaskID = EWF_TaskBLL.NewTask("Apply_PromotorSalary", (int)Session["UserID"], "调整导购员薪酬福利申请,姓名:" + p.Name, "~/SubModule/PM/PM_PromotorSalaryDetail.aspx?ID=" + bll.Model.ID.ToString(), dataobjects); if (TaskID > 0) { bll.Model.ApproveTask = TaskID; bll.Model.State = 2; bll.Update(); // new EWF_TaskBLL(TaskID).Start(); //直接启动流程 } Response.Redirect("~/SubModule/EWF/Apply.aspx?TaskID=" + TaskID.ToString()); }
protected void bt_AddApply_Click(object sender, EventArgs e) { if ((int)ViewState["PromotorID"] == 0) { MessageBox.Show(this, "对不起,请您先保存后在发起申请"); return; } bt_OK_Click(null, null); PM_PromotorBLL bll = new PM_PromotorBLL((int)ViewState["PromotorID"]); DateTime birthday; if (DateTime.TryParse(bll.Model["Birthday"], out birthday)) { if (DateTime.Now < birthday.AddYears(16) || DateTime.Now > birthday.AddYears(50)) { int year = DateTime.Now.Year - birthday.Year; if (birthday.AddYears(year) > DateTime.Now) { year++; } MessageBox.Show(this, "对不起,该导购年龄不符合规则(16~49岁),该人员年龄:" + year); return; } } if (PM_PromotorNumberLimitBLL.CheckAllowAdd(bll.Model.OrganizeCity, int.Parse(bll.Model["Classfiy"])) < 0) { MessageBox.Show(this, "对不起当前城市导购员人数满额,要想继续新增请与人事经理联系"); return; } if (bll.Model.BeginWorkDate.AddDays(40) < DateTime.Now) { MessageBox.Show(this, "对不起,入职时间必须在发起日期前40天之内!"); return; } if (bll.Model["IDCode"] == "") { MessageBox.Show(this, "请录入身份证号!"); return; } if (bll.Model["InfoSource"] == "" || bll.Model["InfoSource"] == "0") { MessageBox.Show(this, "请正确选择导购来源!"); return; } if (bll.Model["OldClassify"] == "" || bll.Model["OldClassify"] == "0") { MessageBox.Show(this, "请正确选择原属品牌!"); return; } if (bll.Model["BankType"] == "" || bll.Model["BankType"] == "0") { MessageBox.Show(this, "请正确选择银行信息"); return; } string[] allowday = Addr_OrganizeCityParamBLL.GetValueByType(1, 3).Split(new char[] { ',', ',', ';', ';' }); AC_AccountMonth lastmonth = GetMaxSalaryDate((int)ViewState["PromotorID"], AC_AccountMonthBLL.GetCurrentMonth() - 1); if (lastmonth != null && allowday.Contains(DateTime.Now.Day.ToString()) && bll.Model.BeginWorkDate > lastmonth.EndDate) { MessageBox.Show(this, "该导购在" + lastmonth.Name + "生成过工资,入职日期不能大于" + lastmonth.EndDate.ToString("yyyy-MM-dd")); return; } #region 判断是否KA店导购 bool IsKAChannel = false; //是否KA店导购 if (bll.Model["Classify"] != "2") //非流导 { IList <PM_PromotorInRetailer> retailers = PM_PromotorInRetailerBLL.GetModelList(" Promotor=" + ViewState["PromotorID"].ToString()); if (retailers.Count == 0) { MessageBox.Show(this, "对不起,请关联该导购所在的工作门店!"); return; } //判断导购是否在KA店工作 foreach (PM_PromotorInRetailer item in retailers) { CM_Client client = new CM_ClientBLL(item.Client).Model; if (client["RTChannel"] == "1" || client["RTChannel"] == "2") { IsKAChannel = true; } } } #endregion #region 判断是否超薪酬超准 bool bSalaryFlag = false; //false : 薪酬标准内 true:超标准 IList <PM_PromotorSalary> salarylists = PM_PromotorSalaryBLL.GetModelList("Promotor=" + bll.Model.ID.ToString() + " AND State IN(1,3) Order BY State"); if (salarylists.Count == 0 || salarylists.Count > 0 && (bll.Model["Classfiy"] == "6" && salarylists[0].BasePayMode != 3 || bll.Model["Classfiy"] != "6" && salarylists[0].BasePayMode == 3)) { MessageBox.Show(this, "对不起,尚未为该导购设定薪酬信息,请设定完薪酬信息后,再提交入职申请!"); return; } else { PM_PromotorSalary salary = salarylists[0]; if (salary.BasePaySubsidy > 0) { bSalaryFlag = true; //有底薪补贴 } if (salary.MinimumWageMode == 2) { bSalaryFlag = true; //特殊保底 } if (salary.InsuranceMode == 1 && salary.InsuranceSubsidy > 100) { bSalaryFlag = true; //社保补贴大于100元的 } } #endregion int budget = PM_PromotorNumberLimitBLL.CheckOverBudget(bll.Model.OrganizeCity, int.Parse(bll.Model["Classfiy"])); NameValueCollection dataobjects = new NameValueCollection(); dataobjects.Add("ID", ViewState["PromotorID"].ToString()); dataobjects.Add("OrganizeCity", bll.Model.OrganizeCity.ToString()); dataobjects.Add("SalaryFlag", !bSalaryFlag ? "1" : "2"); //薪酬标志 1:薪酬标准内 2:薪酬标准外 dataobjects.Add("StaffName", bll.Model.Name.ToString()); dataobjects.Add("IsKAChannel", IsKAChannel ? "1" : "2"); //是否KA卖场的导购 dataobjects.Add("IsOverBudget", budget < 0 ? "1" : "2"); //是否超人数预算 1:超 2:未超 int TaskID = EWF_TaskBLL.NewTask("Add_Promotor", (int)Session["UserID"], "新增导购员流程,姓名:" + bll.Model.Name + "【" + ddl_Classify.SelectedItem.Text.ToString() + "】", "~/SubModule/PM/PM_PromotorDetail.aspx?PromotorID=" + ViewState["PromotorID"].ToString(), dataobjects); if (TaskID > 0) { bll.Submit(TaskID, (int)Session["UserID"]); } Response.Redirect("~/SubModule/EWF/Apply.aspx?TaskID=" + TaskID.ToString()); }