protected void bt_Delete_Click(object sender, EventArgs e)
    {
        PM_PromotorSalaryBLL bll = new PM_PromotorSalaryBLL((int)ViewState["PromotorSalaryID"]);
        if (bll.Model.State == 1) bll.Delete();

        Response.Redirect("PM_PromotorSalaryDetail.aspx?PromotorID=" + ViewState["PromotorID"].ToString());
    }
    protected void gv_list_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
    {
        int id = (int)gv_list.DataKeys[e.NewSelectedIndex][0];
        PM_PromotorSalary m = new PM_PromotorSalaryBLL(id).Model;

        BindData(m);
    }
 protected bool GetIsFloatingEnable(int promotor)
 {
     bool enableflag = false;
     if (PM_PromotorSalaryBLL.GetModelList("Promotor=" + promotor.ToString() + " AND State=3 AND BasePayMode>3").Count > 0)
     {
         enableflag = true;
     }
     return enableflag;
 }
    protected void bt_Delete_Click(object sender, EventArgs e)
    {
        PM_PromotorSalaryBLL bll = new PM_PromotorSalaryBLL((int)ViewState["PromotorSalaryID"]);

        if (bll.Model.State == 1)
        {
            bll.Delete();
        }

        Response.Redirect("PM_PromotorSalaryDetail.aspx?PromotorID=" + ViewState["PromotorID"].ToString());
    }
 protected bool GetInsureEnable(int promotor, int approveflag)
 {
     bool enableflag = true;
     try
     {
         int SalaryState = PM_SalaryBLL.PM_Salary_GetStateByPromotor(promotor, int.Parse(ddl_AccountMonth.SelectedValue));
         if (SalaryState>0&& SalaryState <= 3 || approveflag == 1)//已提交或审核通过的工资表不可修改底量与奖惩
         {
             enableflag = false;
         }
         //社保模式为【自购保险】才可填写社保报销额
         IList<PM_PromotorSalary> PM_SalaryList = PM_PromotorSalaryBLL.GetModelList("Promotor=" + promotor.ToString() + " AND State=3 AND ApproveFlag=1");
         if (PM_SalaryList.Count > 0 && PM_SalaryList[0].InsuranceMode != 8)
         {
             enableflag = false;
         }
     }
     catch (Exception e)
     {
         throw e;
     }
     return enableflag;
 }
    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_OK_Click(object sender, EventArgs e)
    {
        PM_PromotorSalaryBLL bll;

        if ((int)ViewState["PromotorSalaryID"] == 0)
        {
            bll = new PM_PromotorSalaryBLL();
        }
        else
        {
            bll = new PM_PromotorSalaryBLL((int)ViewState["PromotorSalaryID"]);
        }

        UC_DetailView1.GetData(bll.Model);

        #region 数据录入判断
        if (bll.Model.BasePayMode == 0)
        {
            MessageBox.Show(this, "请选择正确的底薪模式!");
            return;
        }
        if (bll.Model.BasePayMode == 1)
        {
            if (bll.Model.SeniorityPayMode == 0)
            {
                MessageBox.Show(this, "当底薪模式为固定底薪时,必须选择工龄工资模式!");
                return;
            }
            if (bll.Model.InsuranceMode == 0)
            {
                MessageBox.Show(this, "当底薪模式为固定底薪时,必须选择社保!");
                return;
            }
        }
        if (bll.Model.BasePaySubsidyMode != 0 && bll.Model.BasePaySubsidy == 0)
        {
            MessageBox.Show(this, "当选择了底薪补贴类型时,请设定补贴金额!");
            return;
        }

        if (bll.Model.BasePaySubsidyMode != 0 && bll.Model.BasePaySubsidyBeginDate.Year == 1900)
        {
            MessageBox.Show(this, "当选择了底薪补贴类型时,请设定底薪补贴起始日期!");
            return;
        }
        if (bll.Model.BasePaySubsidyMode == 1 && bll.Model.BasePaySubsidyEndDate.Year == 1900)
        {
            MessageBox.Show(this, "当选择了底薪补贴类型为临时补贴时,请设定底薪补贴截止日期!");
            return;
        }

        decimal BasePaySubsidylimt = 0;
        decimal.TryParse(Addr_OrganizeCityParamBLL.GetValueByType(1, 22), out BasePaySubsidylimt);
        if (BasePaySubsidylimt > 0 && BasePaySubsidylimt < bll.Model.BasePaySubsidy)
        {
            MessageBox.Show(this, "底薪补贴不得超过上限" + BasePaySubsidylimt.ToString() + "元");
            return;
        }

        if (bll.Model.MinimumWageMode == 2 && bll.Model.MinimumWage == 0)
        {
            MessageBox.Show(this, "当选择了特殊保底时,请设定保底金额!");
            return;
        }
        decimal MinimumWagelimit = 0;
        decimal.TryParse(Addr_OrganizeCityParamBLL.GetValueByType(1, 23), out MinimumWagelimit);
        if (bll.Model.MinimumWageMode == 2 && MinimumWagelimit > 0 && MinimumWagelimit < bll.Model.MinimumWage)
        {
            MessageBox.Show(this, "当选择了特殊保底时,保底工资不能超过上限" + MinimumWagelimit.ToString() + "元!");
            return;
        }
        if (bll.Model.MinimumWageMode != 0 && bll.Model.MinimumWageBeginDate.Year == 1900)
        {
            MessageBox.Show(this, "当选择了薪资保底时,请设定保底的起始日期!");
            return;
        }
        if (bll.Model.MinimumWageMode != 0 && bll.Model.MinimumWageEndDate.Year == 1900)
        {
            MessageBox.Show(this, "当选择了薪资保底时,请设定保底的截止日期!");
            return;
        }
        if (bll.Model.InsuranceMode == 0 && bll.Model.BasePayMode != 3)
        {
            MessageBox.Show(this, "非兼职,请选择正确的社保模式!");
            return;
        }
        if (bll.Model.InsuranceMode == 1 && bll.Model.InsuranceSubsidy <= 0)
        {
            MessageBox.Show(this, "请正确输入保险补贴金额!");
            return;
        }
        if (bll.Model.BasePayMode == 4 && bll.Model["FloatingTarget"] == "0")
        {
            MessageBox.Show(this, "当底薪模式为浮动底薪(非华南)时,请设定浮动底薪上限任务量!");
            return;
        }
        if (bll.Model.BasePayMode == 4 && bll.Model["AvgSales"] == "0")
        {
            MessageBox.Show(this, "当底薪模式为浮动底薪(非华南)时,请设定前两月平均销量!");
            return;
        }
        //if (bll.Model.BasePayMode == 4 && bll.Model["BaseFeeRate"] == "0")
        //{
        //    MessageBox.Show(this, "当底薪模式为浮动底薪(非华南)时,请设定底薪费率!");
        //    return;
        //}
        if (bll.Model.BasePayMode == 5 && bll.Model["SalesType"] == "0")
        {
            MessageBox.Show(this, "当底薪模式为浮动底薪(华南)时,请设定实销类别!");
            return;
        }
        if (bll.Model.BasePayMode == 5 && bll.Model["BaseFeeRate"] == "0")
        {
            MessageBox.Show(this, "当底薪模式为浮动底薪(华南)时,请设定底薪费率!");
            return;
        }
        #endregion
        bll.Model["ISArriveTarget"] = chk_arrivetarget.Checked ? "1" : "2";
        if ((int)ViewState["PromotorSalaryID"] == 0)
        {
            bll.Model.Promotor    = (int)ViewState["PromotorID"];
            bll.Model.State       = 1;
            bll.Model.ApproveFlag = 2;
            bll.Model.InsertStaff = (int)Session["UserID"];

            ViewState["PromotorSalaryID"] = bll.Add();
        }
        else
        {
            bll.Update();
        }

        BindGrid();
        MessageBox.ShowAndRedirect(this, "保存成功!", "PM_PromotorSalaryDetail.aspx?ID=" + ViewState["PromotorSalaryID"].ToString());
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        #region 获取界面控件
        ddl_BasePayMode        = (DropDownList)UC_DetailView1.FindControl("PM_PromotorSalary_BasePayMode");
        ddl_BasePaySubsidyMode = (DropDownList)UC_DetailView1.FindControl("PM_PromotorSalary_BasePaySubsidyMode");
        ddl_MinimumWageMode    = (DropDownList)UC_DetailView1.FindControl("PM_PromotorSalary_MinimumWageMode");
        ddl_InsuranceMode      = (DropDownList)UC_DetailView1.FindControl("PM_PromotorSalary_InsuranceMode");
        ddl_SeniorityPayMode   = (DropDownList)UC_DetailView1.FindControl("PM_PromotorSalary_SeniorityPayMode");
        ddl_SalesType          = (DropDownList)UC_DetailView1.FindControl("PM_PromotorSalary_SalesType");

        ddl_BasePayMode.AutoPostBack          = true;
        ddl_BasePayMode.SelectedIndexChanged += new EventHandler(ddl_BasePayMode_SelectedIndexChanged);

        ddl_BasePaySubsidyMode.AutoPostBack          = true;
        ddl_BasePaySubsidyMode.SelectedIndexChanged += new EventHandler(ddl_BasePaySubsidyMode_SelectedIndexChanged);

        ddl_MinimumWageMode.AutoPostBack          = true;
        ddl_MinimumWageMode.SelectedIndexChanged += new EventHandler(ddl_MinimumWageMode_SelectedIndexChanged);

        ddl_InsuranceMode.AutoPostBack          = true;
        ddl_InsuranceMode.SelectedIndexChanged += new EventHandler(ddl_InsuranceMode_SelectedIndexChanged);

        txt_AvgSales       = (TextBox)UC_DetailView1.FindControl("PM_PromotorSalary_AvgSales");
        txt_BaseFeeRate    = (TextBox)UC_DetailView1.FindControl("PM_PromotorSalary_BaseFeeRate");
        txt_FloatingTarget = (TextBox)UC_DetailView1.FindControl("PM_PromotorSalary_FloatingTarget");

        chk_arrivetarget.Text    = "是否达到过上限";
        chk_arrivetarget.Enabled = false;
        txt_FloatingTarget.Parent.Controls.Add(chk_arrivetarget);
        #endregion
        if (!IsPostBack)
        {
            ViewState["PromotorSalaryID"] = Request.QueryString["ID"] == null ? 0 : int.Parse(Request.QueryString["ID"]);
            ViewState["PromotorID"]       = Request.QueryString["PromotorID"] == null ? 0 : int.Parse(Request.QueryString["PromotorID"]);
            ViewState["AvgSales"]         = 0m; ViewState["BaseFeeRate"] = 0m;
            if ((int)ViewState["PromotorSalaryID"] > 0)
            {
                PM_PromotorSalary m = new PM_PromotorSalaryBLL((int)ViewState["PromotorSalaryID"]).Model;
                if (m != null)
                {
                    BindData(m);
                    bt_Add.Visible = false;
                }
                else
                {
                    Response.Redirect("PM_PromotorDetail.aspx");
                }
            }
            else if ((int)ViewState["PromotorID"] > 0)
            {
                IList <PM_PromotorSalary> lists = PM_PromotorSalaryBLL.GetModelList("Promotor=" + ViewState["PromotorID"].ToString() +
                                                                                    " AND State <= 3  ORDER BY State DESC,ID DESC");
                if (lists.Count == 0)
                {
                    //新增薪资标准
                    #region 判断当前导购是否有所在工作的门店
                    if (PM_PromotorInRetailerBLL.GetModelList("Promotor=" + ViewState["PromotorID"].ToString()).Count == 0)
                    {
                        MessageBox.ShowAndRedirect(this, "请设置该导购员所在的门店!", "PM_PromotorDetail.aspx?PromotorID=" + ViewState["PromotorID"].ToString());
                        return;
                    }
                    #endregion

                    BindData(null);
                    bt_Add.Visible = false;
                }
                else
                {
                    BindData(lists[0]);
                    if (lists.FirstOrDefault(p => p.State < 3) != null)
                    {
                        bt_Add.Visible = false;
                    }
                }
            }
            else
            {
                Response.Redirect("PM_PromotorDetail.aspx");
            }
        }
    }
    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());
    }
    protected void bt_OK_Click(object sender, EventArgs e)
    {
        PM_PromotorSalaryBLL bll;
        if ((int)ViewState["PromotorSalaryID"] == 0)
            bll = new PM_PromotorSalaryBLL();
        else
            bll = new PM_PromotorSalaryBLL((int)ViewState["PromotorSalaryID"]);

        UC_DetailView1.GetData(bll.Model);

        #region 数据录入判断
        if (bll.Model.BasePayMode == 0)
        {
            MessageBox.Show(this, "请选择正确的底薪模式!");
            return;
        }
        if (bll.Model.BasePayMode == 1)
        {
            if (bll.Model.SeniorityPayMode == 0)
            {
                MessageBox.Show(this, "当底薪模式为固定底薪时,必须选择工龄工资模式!");
                return;
            }
            if (bll.Model.InsuranceMode == 0)
            {
                MessageBox.Show(this, "当底薪模式为固定底薪时,必须选择社保!");
                return;
            }
        }
        if (bll.Model.BasePaySubsidyMode != 0 && bll.Model.BasePaySubsidy == 0)
        {
            MessageBox.Show(this, "当选择了底薪补贴类型时,请设定补贴金额!");
            return;
        }

        if (bll.Model.BasePaySubsidyMode != 0 && bll.Model.BasePaySubsidyBeginDate.Year == 1900)
        {
            MessageBox.Show(this, "当选择了底薪补贴类型时,请设定底薪补贴起始日期!");
            return;
        }
        if (bll.Model.BasePaySubsidyMode == 1 && bll.Model.BasePaySubsidyEndDate.Year == 1900)
        {
            MessageBox.Show(this, "当选择了底薪补贴类型为临时补贴时,请设定底薪补贴截止日期!");
            return;
        }

        decimal BasePaySubsidylimt = 0;
        decimal.TryParse(Addr_OrganizeCityParamBLL.GetValueByType(1, 22), out BasePaySubsidylimt);
        if (BasePaySubsidylimt > 0 && BasePaySubsidylimt < bll.Model.BasePaySubsidy)
        {
            MessageBox.Show(this, "底薪补贴不得超过上限" + BasePaySubsidylimt.ToString() + "元");
            return;
        }

        if (bll.Model.MinimumWageMode == 2 && bll.Model.MinimumWage == 0)
        {
            MessageBox.Show(this, "当选择了特殊保底时,请设定保底金额!");
            return;
        }
        decimal MinimumWagelimit = 0;
        decimal.TryParse(Addr_OrganizeCityParamBLL.GetValueByType(1, 23), out MinimumWagelimit);
        if (bll.Model.MinimumWageMode == 2&&MinimumWagelimit > 0 && MinimumWagelimit < bll.Model.MinimumWage)
        {
            MessageBox.Show(this, "当选择了特殊保底时,保底工资不能超过上限" + MinimumWagelimit .ToString()+ "元!");
            return;
        }
        if (bll.Model.MinimumWageMode != 0 && bll.Model.MinimumWageBeginDate.Year == 1900)
        {
            MessageBox.Show(this, "当选择了薪资保底时,请设定保底的起始日期!");
            return;
        }
        if (bll.Model.MinimumWageMode != 0 && bll.Model.MinimumWageEndDate.Year == 1900)
        {
            MessageBox.Show(this, "当选择了薪资保底时,请设定保底的截止日期!");
            return;
        }
        if (bll.Model.InsuranceMode == 0 && bll.Model.BasePayMode != 3)
        {
            MessageBox.Show(this, "非兼职,请选择正确的社保模式!");
            return;
        }
        if (bll.Model.InsuranceMode == 1 && bll.Model.InsuranceSubsidy <= 0)
        {
            MessageBox.Show(this, "请正确输入保险补贴金额!");
            return;
        }
        if (bll.Model.BasePayMode == 4 && bll.Model["FloatingTarget"] == "0")
        {
            MessageBox.Show(this, "当底薪模式为浮动底薪(非华南)时,请设定浮动底薪上限任务量!");
            return;
        }
        if (bll.Model.BasePayMode == 4 && bll.Model["AvgSales"] == "0")
        {
            MessageBox.Show(this, "当底薪模式为浮动底薪(非华南)时,请设定前两月平均销量!");
            return;
        }
        //if (bll.Model.BasePayMode == 4 && bll.Model["BaseFeeRate"] == "0")
        //{
        //    MessageBox.Show(this, "当底薪模式为浮动底薪(非华南)时,请设定底薪费率!");
        //    return;
        //}
        if (bll.Model.BasePayMode == 5 && bll.Model["SalesType"] == "0")
        {
            MessageBox.Show(this, "当底薪模式为浮动底薪(华南)时,请设定实销类别!");
            return;
        }
        if (bll.Model.BasePayMode == 5 && bll.Model["BaseFeeRate"] == "0")
        {
            MessageBox.Show(this, "当底薪模式为浮动底薪(华南)时,请设定底薪费率!");
            return;
        }
        #endregion
        bll.Model["ISArriveTarget"] = chk_arrivetarget.Checked ? "1" : "2";
        if ((int)ViewState["PromotorSalaryID"] == 0)
        {
            bll.Model.Promotor = (int)ViewState["PromotorID"];
            bll.Model.State = 1;
            bll.Model.ApproveFlag = 2;
            bll.Model.InsertStaff = (int)Session["UserID"];

            ViewState["PromotorSalaryID"] = bll.Add();
        }
        else
        {
            bll.Update();
        }

        BindGrid();
        MessageBox.ShowAndRedirect(this, "保存成功!", "PM_PromotorSalaryDetail.aspx?ID=" + ViewState["PromotorSalaryID"].ToString());
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        #region 获取界面控件
        ddl_BasePayMode = (DropDownList)UC_DetailView1.FindControl("PM_PromotorSalary_BasePayMode");
        ddl_BasePaySubsidyMode = (DropDownList)UC_DetailView1.FindControl("PM_PromotorSalary_BasePaySubsidyMode");
        ddl_MinimumWageMode = (DropDownList)UC_DetailView1.FindControl("PM_PromotorSalary_MinimumWageMode");
        ddl_InsuranceMode = (DropDownList)UC_DetailView1.FindControl("PM_PromotorSalary_InsuranceMode");
        ddl_SeniorityPayMode = (DropDownList)UC_DetailView1.FindControl("PM_PromotorSalary_SeniorityPayMode");
        ddl_SalesType = (DropDownList)UC_DetailView1.FindControl("PM_PromotorSalary_SalesType");

        ddl_BasePayMode.AutoPostBack = true;
        ddl_BasePayMode.SelectedIndexChanged += new EventHandler(ddl_BasePayMode_SelectedIndexChanged);

        ddl_BasePaySubsidyMode.AutoPostBack = true;
        ddl_BasePaySubsidyMode.SelectedIndexChanged += new EventHandler(ddl_BasePaySubsidyMode_SelectedIndexChanged);

        ddl_MinimumWageMode.AutoPostBack = true;
        ddl_MinimumWageMode.SelectedIndexChanged += new EventHandler(ddl_MinimumWageMode_SelectedIndexChanged);

        ddl_InsuranceMode.AutoPostBack = true;
        ddl_InsuranceMode.SelectedIndexChanged += new EventHandler(ddl_InsuranceMode_SelectedIndexChanged);

        txt_AvgSales = (TextBox)UC_DetailView1.FindControl("PM_PromotorSalary_AvgSales");
        txt_BaseFeeRate = (TextBox)UC_DetailView1.FindControl("PM_PromotorSalary_BaseFeeRate");
        txt_FloatingTarget = (TextBox)UC_DetailView1.FindControl("PM_PromotorSalary_FloatingTarget");

        chk_arrivetarget.Text = "是否达到过上限";
        chk_arrivetarget.Enabled = false;
        txt_FloatingTarget.Parent.Controls.Add(chk_arrivetarget);
        #endregion
        if (!IsPostBack)
        {
            ViewState["PromotorSalaryID"] = Request.QueryString["ID"] == null ? 0 : int.Parse(Request.QueryString["ID"]);
            ViewState["PromotorID"] = Request.QueryString["PromotorID"] == null ? 0 : int.Parse(Request.QueryString["PromotorID"]);
            ViewState["AvgSales"] = 0m; ViewState["BaseFeeRate"] = 0m;
            if ((int)ViewState["PromotorSalaryID"] > 0)
            {
                PM_PromotorSalary m = new PM_PromotorSalaryBLL((int)ViewState["PromotorSalaryID"]).Model;
                if (m != null)
                {
                    BindData(m);
                    bt_Add.Visible = false;
                }
                else
                    Response.Redirect("PM_PromotorDetail.aspx");
            }
            else if ((int)ViewState["PromotorID"] > 0)
            {
                IList<PM_PromotorSalary> lists = PM_PromotorSalaryBLL.GetModelList("Promotor=" + ViewState["PromotorID"].ToString() +
                    " AND State <= 3  ORDER BY State DESC,ID DESC");
                if (lists.Count == 0)
                {
                    //新增薪资标准
                    #region 判断当前导购是否有所在工作的门店
                    if (PM_PromotorInRetailerBLL.GetModelList("Promotor=" + ViewState["PromotorID"].ToString()).Count == 0)
                    {
                        MessageBox.ShowAndRedirect(this, "请设置该导购员所在的门店!", "PM_PromotorDetail.aspx?PromotorID=" + ViewState["PromotorID"].ToString());
                        return;
                    }
                    #endregion

                    BindData(null);
                    bt_Add.Visible = false;
                }
                else
                {
                    BindData(lists[0]);
                    if (lists.FirstOrDefault(p => p.State < 3) != null) bt_Add.Visible = false;
                }
            }
            else
            {
                Response.Redirect("PM_PromotorDetail.aspx");
            }
        }
    }
 protected void gv_list_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
 {
     int id = (int)gv_list.DataKeys[e.NewSelectedIndex][0];
     PM_PromotorSalary m = new PM_PromotorSalaryBLL(id).Model;
     BindData(m);
 }
    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 BtnSave_Click(object sender, EventArgs e)
    {
        foreach (GridViewRow row in gv_List.Rows)
        {
            int id = (int)gv_List.DataKeys[row.RowIndex]["PM_SalaryDataObject_ID"];
            PM_SalaryDataObjectBLL bll = new PM_SalaryDataObjectBLL(id);
            bll.Model.ActWorkDays = int.Parse(((TextBox)row.FindControl("tbx_ActWorkDays")).Text);
            if (bll.Model.ActWorkDays > Convert.ToDecimal(ViewState["monthdays"]))
            {
                MessageBox.Show(this, "实际工作天数不能大于会计月天数!错误行:" + (row.RowIndex + 1).ToString() + ";导购员姓名:" + row.Cells[2].Text);
                BindGrid();
                return;

            }

            bll.Model["Remark1"] = ((TextBox)row.FindControl("tbx_Remark1")).Text;
            bll.Model["Remark2"] = ((TextBox)row.FindControl("tbx_Remark2")).Text;
            bll.Model["Remark3"] = ((TextBox)row.FindControl("tbx_Remark3")).Text;
            bll.Model["Remark4"] = ((TextBox)row.FindControl("tbx_Remark4")).Text;

            //判断是否使用浮动底薪
            DropDownList ddl_IsFloating = row.FindControl("ddl_ISFloating") == null ? null : (DropDownList)row.FindControl("ddl_ISFloating");
            if (ddl_IsFloating != null)
                bll.Model["ISFloating"] = ddl_IsFloating.SelectedValue;

            //奖惩Data01~Data09; Data10为小计;社保报销额 Data17;提成调整 Data18;经销商补贴调整金额 Data19
            //卖场导购其他管理费用 Data20~Data29;Data20 为管理费调整金额,Data30 为小计(21~29)         
            bll.Model.Data10 = 0; bll.Model.Data30 = 0;
            for (int i = 1; i < 30; i++)
            {
                TextBox txt = row.FindControl("tbx_Data" + (i < 10 ? "0" : "") + i.ToString()) == null ? null : (TextBox)row.FindControl("tbx_Data" + (i < 10 ? "0" : "") + i.ToString());
                if (txt != null)
                {
                    bll.Model["Data" + (i < 10 ? "0" : "") + i.ToString()] = txt.Text == "" ? "0" : txt.Text;
                    if (i < 10) bll.Model.Data10 += decimal.Parse(bll.Model["Data0" + i.ToString()]);//奖惩小计

                    if (i > 20) bll.Model.Data30 += decimal.Parse(bll.Model["Data" + i.ToString()]);//为管理费调整金额小计
                }
            }
            if (bll.Model.Data11+bll.Model.Data18 < 0)
            {
                MessageBox.Show(this, "错误行:" + (row.RowIndex + 1).ToString() + ";导购员:" + row.Cells[2].Text + " 提成总金额和调整金额之和不可小于0!");
                return;
            }
            if (bll.Model.Data30 < 0)
            {
                MessageBox.Show(this, "错误行:" + (row.RowIndex + 1).ToString() + ";导购员:" + row.Cells[2].Text + " 卖场导购管理费小计不可小于0!");
                return;
            }
            if (decimal.Parse((row.FindControl("PM_PromotorSalary_RTManageCost") as Label).Text) + bll.Model.Data20 < 0)
            {
                MessageBox.Show(this, "错误行:" + (row.RowIndex + 1).ToString() + ";导购员:" + row.Cells[2].Text + " 导购管理费和调整金额之和不可小于0!");
                return;
            }
            if (bll.Model.Data11 == 0)
            {
                if (bll.Model.Data01 < 0)
                {
                    MessageBox.Show(this, "错误行:" + (row.RowIndex + 1).ToString() + ";导购员:" + row.Cells[2].Text + " 提成总金额为0时,销售奖罚不可小于0!");
                    return;
                }
                if (bll.Model.Data02 < 0)
                {
                    MessageBox.Show(this, "错误行:" + (row.RowIndex + 1).ToString() + ";导购员:" + row.Cells[2].Text + " 提成总金额为0时,VIP奖罚不可小于0!");
                    return;
                }
                if (bll.Model.Data09 < 0)
                {
                    MessageBox.Show(this, "错误行:" + (row.RowIndex + 1).ToString() + ";导购员:" + row.Cells[2].Text + " 提成总金额为0时,奖惩项其他不可小于0!");
                    return;
                }
                if (bll.Model.Data19 < 0)
                {
                    MessageBox.Show(this, "错误行:" + (row.RowIndex + 1).ToString() + ";导购员:" + row.Cells[2].Text + " 提成总金额为0时,经销商承担调整金额不可小于0!");
                    return;
                }
            }
            //社保模式为【自购保险】,社保报销额必填
            IList<PM_PromotorSalary> PM_SalaryList = PM_PromotorSalaryBLL.GetModelList("Promotor=" + bll.Model.Promotor + " AND State=3 AND ApproveFlag=1");
            if (PM_SalaryList.Count > 0 && PM_SalaryList[0].InsuranceMode == 8 && bll.Model.Data17 == 0)
            {
                MessageBox.Show(this, "错误行:" + (row.RowIndex + 1).ToString() + ";导购员:" + row.Cells[2].Text + " 社保为自购,社保报销额必填!");
                BindGrid();
                return;
            }
            bll.Update();
        }
        if (sender != null)
        {
            BindGrid();
            MessageBox.Show(this, "保存成功");
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        PM_PromotorBLL _promotor = new PM_PromotorBLL((int)ViewState["PromotorID"]);

        if (_promotor.Model["State"] == "2")
        {
            MessageBox.Show(this, "该导购有未完成的流程,请待流程完成后,再做调整!");
            return;
        }
        DropDownList ddl_Classfiy      = DV_pm.FindControl("PM_Promotor_Classfiy") as DropDownList;
        TextBox      tbx_BeginWorkDate = DV_pm.FindControl("PM_Promotor_BeginWorkDate") as TextBox;
        TextBox      tbx_Remark        = DV_pm.FindControl("PM_Promotor_Education") as TextBox;
        TextBox      tbx_AccountNO     = (TextBox)DV_pm.FindControl("PM_Promotor_AccountCode");

        if (ddl_BankType.SelectedValue == "0" || txt_BankName.Text.Trim() == "")
        {
            MessageBox.Show(this, "请选择开户行!");
            return;
        }

        if (ddl_Classfiy.SelectedValue != "0" && tbx_BeginWorkDate.Text.Trim() != "")
        {
            int budget = PM_PromotorNumberLimitBLL.CheckOverBudget(_promotor.Model.OrganizeCity, int.Parse(_promotor.Model["Classfiy"]));
            NameValueCollection dataobjects = new NameValueCollection();
            dataobjects.Add("ID", ViewState["PromotorID"].ToString());
            dataobjects.Add("OrganizeCity", _promotor.Model.OrganizeCity.ToString());
            dataobjects.Add("BeginWorkDate", tbx_BeginWorkDate.Text.ToString());
            dataobjects.Add("Classify", ddl_Classfiy.SelectedValue);
            dataobjects.Add("Remark", tbx_Remark.Text);
            dataobjects.Add("PM_Name", _promotor.Model.Name.ToString());
            dataobjects.Add("BankType", ddl_BankType.SelectedValue);
            dataobjects.Add("BankName", txt_BankName.Text.Trim());
            dataobjects.Add("AccountNO", tbx_AccountNO.Text.Trim());
            PM_PromotorSalaryBLL bll = new PM_PromotorSalaryBLL();
            UC_DetailView1.GetData(bll.Model);
            #region 数据录入判断
            if (bll.Model.BasePayMode == 0)
            {
                MessageBox.Show(this, "请选择正确的底薪模式!");
                return;
            }
            if (bll.Model.BasePayMode == 1)
            {
                if (bll.Model.SeniorityPayMode == 0)
                {
                    MessageBox.Show(this, "当底薪模式为固定底薪时,必须选择工龄工资模式!");
                    return;
                }
                if (bll.Model.InsuranceMode == 0)
                {
                    MessageBox.Show(this, "当底薪模式为固定底薪时,必须选择社保!");
                    return;
                }
            }
            if (bll.Model.BasePaySubsidyMode != 0 && bll.Model.BasePaySubsidy == 0)
            {
                MessageBox.Show(this, "当选择了底薪补贴类型时,请设定补贴金额!");
                return;
            }

            if (bll.Model.BasePaySubsidyMode != 0 && bll.Model.BasePaySubsidyBeginDate.Year == 1900)
            {
                MessageBox.Show(this, "当选择了底薪补贴类型时,请设定底薪补贴起始日期!");
                return;
            }
            if (bll.Model.BasePaySubsidyMode == 1 && bll.Model.BasePaySubsidyEndDate.Year == 1900)
            {
                MessageBox.Show(this, "当选择了底薪补贴类型为临时补贴时,请设定底薪补贴截止日期!");
                return;
            }

            if (bll.Model.MinimumWageMode == 2 && bll.Model.MinimumWage == 0)
            {
                MessageBox.Show(this, "当选择了特殊保底时,请设定保底金额!");
                return;
            }

            if (bll.Model.MinimumWageMode != 0 && bll.Model.MinimumWageBeginDate.Year == 1900)
            {
                MessageBox.Show(this, "当选择了薪资保底时,请设定保底的起始日期!");
                return;
            }
            if (bll.Model.MinimumWageMode != 0 && bll.Model.MinimumWageEndDate.Year == 1900)
            {
                MessageBox.Show(this, "当选择了薪资保底时,请设定保底的截止日期!");
                return;
            }
            if (bll.Model.InsuranceMode == 0 && bll.Model.BasePayMode != 3)
            {
                MessageBox.Show(this, "非兼职,请选择正确的社保模式!");
                return;
            }
            if (bll.Model.InsuranceMode == 1 && bll.Model.InsuranceSubsidy <= 0)
            {
                MessageBox.Show(this, "请正确输入保险补贴金额!");
                return;
            }
            if (bll.Model.BasePayMode == 4 && bll.Model["FloatingTarget"] == "0")
            {
                MessageBox.Show(this, "当底薪模式为浮动底薪(非华南)时,请设定浮动底薪上限任务量!");
                return;
            }
            if (bll.Model.BasePayMode == 4 && bll.Model["AvgSales"] == "0")
            {
                MessageBox.Show(this, "当底薪模式为浮动底薪(非华南)时,请设定前两月平均销量!");
                return;
            }
            if (bll.Model.BasePayMode == 5 && bll.Model["SalesType"] == "0")
            {
                MessageBox.Show(this, "当底薪模式为浮动底薪(华南)时,请设定实销类别!");
                return;
            }
            if (bll.Model.BasePayMode == 5 && bll.Model["BaseFeeRate"] == "0")
            {
                MessageBox.Show(this, "当底薪模式为浮动底薪(华南)时,请设定底薪费率!");
                return;
            }
            #endregion
            int TaskID = EWF_TaskBLL.NewTask("PMClassify_Change", (int)Session["UserID"], "导购员类型变更流程,姓名:" + _promotor.Model.Name, "~/SubModule/PM/PM_PromotorDetail.aspx?PromotorID=" + ViewState["PromotorID"].ToString(), dataobjects);
            if (TaskID > 0)
            {
                bll.Model.Promotor    = (int)ViewState["PromotorID"];
                bll.Model.State       = 2;
                bll.Model.ApproveTask = TaskID;
                bll.Model.ApproveFlag = 2;
                bll.Model.InsertStaff = (int)Session["UserID"];
                bll.Add();
                _promotor.Submit(TaskID, (int)Session["UserID"]);
                new EWF_TaskBLL(TaskID).Start();
                MessageBox.ShowAndClose(this, "流程发起成功!");
            }
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        PM_PromotorBLL _promotor = new PM_PromotorBLL((int)ViewState["PromotorID"]);
        if (_promotor.Model["State"] == "2")
        {
            MessageBox.Show(this, "该导购有未完成的流程,请待流程完成后,再做调整!");
            return;
        }
        DropDownList ddl_Classfiy = DV_pm.FindControl("PM_Promotor_Classfiy") as DropDownList;
        TextBox tbx_BeginWorkDate = DV_pm.FindControl("PM_Promotor_BeginWorkDate") as TextBox;
        TextBox tbx_Remark = DV_pm.FindControl("PM_Promotor_Education") as TextBox;
        TextBox tbx_AccountNO = (TextBox)DV_pm.FindControl("PM_Promotor_AccountCode");
        if (ddl_BankType.SelectedValue == "0" || txt_BankName.Text.Trim() == "")
        {
           MessageBox.Show(this,"请选择开户行!");
           return;
        }

        if (ddl_Classfiy.SelectedValue != "0" && tbx_BeginWorkDate.Text.Trim() != "")
        {

            int budget = PM_PromotorNumberLimitBLL.CheckOverBudget(_promotor.Model.OrganizeCity, int.Parse(_promotor.Model["Classfiy"]));
            NameValueCollection dataobjects = new NameValueCollection();
            dataobjects.Add("ID", ViewState["PromotorID"].ToString());
            dataobjects.Add("OrganizeCity", _promotor.Model.OrganizeCity.ToString());
            dataobjects.Add("BeginWorkDate", tbx_BeginWorkDate.Text.ToString());
            dataobjects.Add("Classify", ddl_Classfiy.SelectedValue);
            dataobjects.Add("Remark", tbx_Remark.Text);
            dataobjects.Add("PM_Name", _promotor.Model.Name.ToString());
            dataobjects.Add("BankType", ddl_BankType.SelectedValue);
            dataobjects.Add("BankName", txt_BankName.Text.Trim());
            dataobjects.Add("AccountNO", tbx_AccountNO.Text.Trim());
            PM_PromotorSalaryBLL bll = new PM_PromotorSalaryBLL();
            UC_DetailView1.GetData(bll.Model);
            #region 数据录入判断
            if (bll.Model.BasePayMode == 0)
            {
                MessageBox.Show(this, "请选择正确的底薪模式!");
                return;
            }
            if (bll.Model.BasePayMode == 1)
            {
                if (bll.Model.SeniorityPayMode == 0)
                {
                    MessageBox.Show(this, "当底薪模式为固定底薪时,必须选择工龄工资模式!");
                    return;
                }
                if (bll.Model.InsuranceMode == 0)
                {
                    MessageBox.Show(this, "当底薪模式为固定底薪时,必须选择社保!");
                    return;
                }
            }
            if (bll.Model.BasePaySubsidyMode != 0 && bll.Model.BasePaySubsidy == 0)
            {
                MessageBox.Show(this, "当选择了底薪补贴类型时,请设定补贴金额!");
                return;
            }

            if (bll.Model.BasePaySubsidyMode != 0 && bll.Model.BasePaySubsidyBeginDate.Year == 1900)
            {
                MessageBox.Show(this, "当选择了底薪补贴类型时,请设定底薪补贴起始日期!");
                return;
            }
            if (bll.Model.BasePaySubsidyMode == 1 && bll.Model.BasePaySubsidyEndDate.Year == 1900)
            {
                MessageBox.Show(this, "当选择了底薪补贴类型为临时补贴时,请设定底薪补贴截止日期!");
                return;
            }

            if (bll.Model.MinimumWageMode == 2 && bll.Model.MinimumWage == 0)
            {
                MessageBox.Show(this, "当选择了特殊保底时,请设定保底金额!");
                return;
            }

            if (bll.Model.MinimumWageMode != 0 && bll.Model.MinimumWageBeginDate.Year == 1900)
            {
                MessageBox.Show(this, "当选择了薪资保底时,请设定保底的起始日期!");
                return;
            }
            if (bll.Model.MinimumWageMode != 0 && bll.Model.MinimumWageEndDate.Year == 1900)
            {
                MessageBox.Show(this, "当选择了薪资保底时,请设定保底的截止日期!");
                return;
            }
            if (bll.Model.InsuranceMode == 0 && bll.Model.BasePayMode != 3)
            {
                MessageBox.Show(this, "非兼职,请选择正确的社保模式!");
                return;
            }
            if (bll.Model.InsuranceMode == 1 && bll.Model.InsuranceSubsidy <= 0)
            {
                MessageBox.Show(this, "请正确输入保险补贴金额!");
                return;
            }
            if (bll.Model.BasePayMode == 4 && bll.Model["FloatingTarget"] == "0")
            {
                MessageBox.Show(this, "当底薪模式为浮动底薪(非华南)时,请设定浮动底薪上限任务量!");
                return;
            }
            if (bll.Model.BasePayMode == 4 && bll.Model["AvgSales"] == "0")
            {
                MessageBox.Show(this, "当底薪模式为浮动底薪(非华南)时,请设定前两月平均销量!");
                return;
            }
            if (bll.Model.BasePayMode == 5 && bll.Model["SalesType"] == "0")
            {
                MessageBox.Show(this, "当底薪模式为浮动底薪(华南)时,请设定实销类别!");
                return;
            }
            if (bll.Model.BasePayMode == 5 && bll.Model["BaseFeeRate"] == "0")
            {
                MessageBox.Show(this, "当底薪模式为浮动底薪(华南)时,请设定底薪费率!");
                return;
            }
            #endregion
            int TaskID = EWF_TaskBLL.NewTask("PMClassify_Change", (int)Session["UserID"], "导购员类型变更流程,姓名:" + _promotor.Model.Name, "~/SubModule/PM/PM_PromotorDetail.aspx?PromotorID=" + ViewState["PromotorID"].ToString(), dataobjects);
            if (TaskID > 0)
            {
                bll.Model.Promotor = (int)ViewState["PromotorID"];
                bll.Model.State = 2;
                bll.Model.ApproveTask = TaskID;
                bll.Model.ApproveFlag = 2;
                bll.Model.InsertStaff = (int)Session["UserID"];
                bll.Add();
                _promotor.Submit(TaskID, (int)Session["UserID"]);
                new EWF_TaskBLL(TaskID).Start();
                MessageBox.ShowAndClose(this, "流程发起成功!");
            }
        }
    }
    protected void bt_OK_Click(object sender, EventArgs e)
    {
        decimal subsidy = 0;
        decimal.TryParse(TextBox1.Text, out subsidy);
        int subsidyCount = 0, nosubsidyCount = 0, errcount = 0;
        string[] SubsidyID = Regex.Split(txt_SubsidyID.Text.Trim().Replace("\r\n","\n").Replace(" ","\n"), "\n", RegexOptions.IgnoreCase);
        string[] NoSubsidyID = Regex.Split(txt_NOsubsidyID.Text.Trim().Replace("\r\n", "\n").Replace(" ", "\n"), "\n", RegexOptions.IgnoreCase);
        string[] mixed;

        if (!CheckID(SubsidyID, NoSubsidyID, out mixed))
        {
            MessageBox.Show(this, "ID为【" + mixed[0] + "】的导购ID同时出现在了【有通讯补贴】与【无通讯补贴】编辑框中!");
            return;
        }

        if (SubsidyID.Length > 0)
        {
            PM_PromotorSalaryBLL _bll;
            StringBuilder approvebuild = new StringBuilder("");

            for (int i = 0; i < SubsidyID.Length; i++)
            {
                int PromotorID;
                if (!SubsidyID[i].Trim().Equals("") && int.TryParse(SubsidyID[i].Trim(), out PromotorID))
                {
                    IList<PM_PromotorSalary> _list = PM_PromotorSalaryBLL.GetModelList("Promotor=" + PromotorID.ToString() + " AND State IN (1,2,3)");
                    if (_list.Count == 0)
                    {
                        approvebuild.Append("<span style='color: Red'>ID为【" + PromotorID.ToString() + "】的导购未能在系统中找到有效的薪酬定义  </span> ");
                        if (i % 5 == 0 && i != 0) approvebuild.Append("<br/>");
                        errcount++;
                        continue;
                    }
                    foreach (PM_PromotorSalary m in _list)
                    {
                        _bll = new PM_PromotorSalaryBLL(m.ID);
                        _bll.Model.DIFeeSubsidy = subsidy;
                        _bll.Update();
                        approvebuild.Append("   ID为【" + PromotorID.ToString() + "】的导购我司通讯补贴已设置为" + subsidy.ToString());
                    }
                    subsidyCount++;

                }
                else if (!SubsidyID[i].Trim().Equals("") && !int.TryParse(SubsidyID[i].Trim(), out PromotorID))
                {
                    approvebuild.Append("<span style='color: Red'>【" + SubsidyID[i].Trim() + "】不是一个有效的导购ID  </span> ");
                    errcount++;
                }
                if (i % 5 == 0 && i != 0) approvebuild.Append("<br/>");
            }
            lb_SubsidyErrorInfo.Text = approvebuild.ToString();
        }
        if (NoSubsidyID.Length > 0)
        {

            PM_PromotorSalaryBLL _bll;
            StringBuilder unapprovebuild = new StringBuilder("");
            for (int i = 0; i < NoSubsidyID.Length; i++)
            {
                int PromotorID;

                if (!NoSubsidyID[i].Trim().Equals("") && int.TryParse(NoSubsidyID[i].Trim(), out PromotorID))
                {
                    IList<PM_PromotorSalary> _list = PM_PromotorSalaryBLL.GetModelList("Promotor=" + PromotorID.ToString() + " AND State IN (1,2,3)");
                    if (_list.Count == 0)
                    {
                        unapprovebuild.Append("<span style='color: Red'>ID为【" + PromotorID.ToString() + "】的导购未能在系统中找到有效的薪酬定义</span> ");
                        errcount++;
                        if (i % 5 == 0 && i != 0) unapprovebuild.Append("<br/>");
                        continue;
                    }
                    foreach (PM_PromotorSalary m in _list)
                    {
                        _bll = new PM_PromotorSalaryBLL(m.ID);

                        _bll.Model.DIFeeSubsidy = 0;
                        _bll.Update();
                        unapprovebuild.Append("   ID为【" + PromotorID.ToString() + "】的导购我司通讯补贴已设置为0");
                    }
                    nosubsidyCount++;
                }
                else if (!NoSubsidyID[i].Trim().Equals("") && !int.TryParse(NoSubsidyID[i].Trim(), out PromotorID))
                {
                    unapprovebuild.Append("<span style='color: Red'>【" + NoSubsidyID[i].Trim() + "】不是一个有效的导购ID  </span> ");
                    errcount++;
                }
                if (i % 5 == 0 && i != 0) unapprovebuild.Append("<br/>");

            }
            lb_NOsubsidyErrorInfo.Text = unapprovebuild.ToString();
        }

        MessageBox.Show(this, "有通讯补贴导购数:" + subsidyCount.ToString() + @"\n无通讯补贴导购数:" + nosubsidyCount.ToString() +
           @"\n未能设置导购个数:" + errcount.ToString());
    }
Ejemplo n.º 18
0
    protected void bt_OK_Click(object sender, EventArgs e)
    {
        decimal subsidy = 0;

        decimal.TryParse(TextBox1.Text, out subsidy);
        int subsidyCount = 0, nosubsidyCount = 0, errcount = 0;

        string[] SubsidyID   = Regex.Split(txt_SubsidyID.Text.Trim().Replace("\r\n", "\n").Replace(" ", "\n"), "\n", RegexOptions.IgnoreCase);
        string[] NoSubsidyID = Regex.Split(txt_NOsubsidyID.Text.Trim().Replace("\r\n", "\n").Replace(" ", "\n"), "\n", RegexOptions.IgnoreCase);
        string[] mixed;


        if (!CheckID(SubsidyID, NoSubsidyID, out mixed))
        {
            MessageBox.Show(this, "ID为【" + mixed[0] + "】的导购ID同时出现在了【有通讯补贴】与【无通讯补贴】编辑框中!");
            return;
        }

        if (SubsidyID.Length > 0)
        {
            PM_PromotorSalaryBLL _bll;
            StringBuilder        approvebuild = new StringBuilder("");

            for (int i = 0; i < SubsidyID.Length; i++)
            {
                int PromotorID;
                if (!SubsidyID[i].Trim().Equals("") && int.TryParse(SubsidyID[i].Trim(), out PromotorID))
                {
                    IList <PM_PromotorSalary> _list = PM_PromotorSalaryBLL.GetModelList("Promotor=" + PromotorID.ToString() + " AND State IN (1,2,3)");
                    if (_list.Count == 0)
                    {
                        approvebuild.Append("<span style='color: Red'>ID为【" + PromotorID.ToString() + "】的导购未能在系统中找到有效的薪酬定义  </span> ");
                        if (i % 5 == 0 && i != 0)
                        {
                            approvebuild.Append("<br/>");
                        }
                        errcount++;
                        continue;
                    }
                    foreach (PM_PromotorSalary m in _list)
                    {
                        _bll = new PM_PromotorSalaryBLL(m.ID);
                        _bll.Model.DIFeeSubsidy = subsidy;
                        _bll.Update();
                        approvebuild.Append("   ID为【" + PromotorID.ToString() + "】的导购我司通讯补贴已设置为" + subsidy.ToString());
                    }
                    subsidyCount++;
                }
                else if (!SubsidyID[i].Trim().Equals("") && !int.TryParse(SubsidyID[i].Trim(), out PromotorID))
                {
                    approvebuild.Append("<span style='color: Red'>【" + SubsidyID[i].Trim() + "】不是一个有效的导购ID  </span> ");
                    errcount++;
                }
                if (i % 5 == 0 && i != 0)
                {
                    approvebuild.Append("<br/>");
                }
            }
            lb_SubsidyErrorInfo.Text = approvebuild.ToString();
        }
        if (NoSubsidyID.Length > 0)
        {
            PM_PromotorSalaryBLL _bll;
            StringBuilder        unapprovebuild = new StringBuilder("");
            for (int i = 0; i < NoSubsidyID.Length; i++)
            {
                int PromotorID;

                if (!NoSubsidyID[i].Trim().Equals("") && int.TryParse(NoSubsidyID[i].Trim(), out PromotorID))
                {
                    IList <PM_PromotorSalary> _list = PM_PromotorSalaryBLL.GetModelList("Promotor=" + PromotorID.ToString() + " AND State IN (1,2,3)");
                    if (_list.Count == 0)
                    {
                        unapprovebuild.Append("<span style='color: Red'>ID为【" + PromotorID.ToString() + "】的导购未能在系统中找到有效的薪酬定义</span> ");
                        errcount++;
                        if (i % 5 == 0 && i != 0)
                        {
                            unapprovebuild.Append("<br/>");
                        }
                        continue;
                    }
                    foreach (PM_PromotorSalary m in _list)
                    {
                        _bll = new PM_PromotorSalaryBLL(m.ID);

                        _bll.Model.DIFeeSubsidy = 0;
                        _bll.Update();
                        unapprovebuild.Append("   ID为【" + PromotorID.ToString() + "】的导购我司通讯补贴已设置为0");
                    }
                    nosubsidyCount++;
                }
                else if (!NoSubsidyID[i].Trim().Equals("") && !int.TryParse(NoSubsidyID[i].Trim(), out PromotorID))
                {
                    unapprovebuild.Append("<span style='color: Red'>【" + NoSubsidyID[i].Trim() + "】不是一个有效的导购ID  </span> ");
                    errcount++;
                }
                if (i % 5 == 0 && i != 0)
                {
                    unapprovebuild.Append("<br/>");
                }
            }
            lb_NOsubsidyErrorInfo.Text = unapprovebuild.ToString();
        }

        MessageBox.Show(this, "有通讯补贴导购数:" + subsidyCount.ToString() + @"\n无通讯补贴导购数:" + nosubsidyCount.ToString() +
                        @"\n未能设置导购个数:" + errcount.ToString());
    }