private void Bind()
    {
        int StaffID = int.Parse(ViewState["StaffID"].ToString());
        if (StaffID <= 0)
            StaffID = int.Parse(Session["UserID"].ToString());
        Org_StaffBLL _staff = new Org_StaffBLL(StaffID);
        int type = 0;
        int.TryParse(ViewState["Type"].ToString(),out type);
        int city=0;
        int.TryParse(ViewState["City"].ToString(),out city);

        switch (type)
        {
            case 1:
                p_headr.InnerText = "陈列费用下游待审批";break;
            case 2:
                p_headr.InnerText = "返利费用下游待审批";break;
            case 3:
                p_headr.InnerText = "导购工资下游待审批";break;
            case 4:
                p_headr.InnerText = "费用核销下游待审批";break;
            case 5:
                p_headr.InnerText = "促销品请购下游待审批";break;
            default:
                p_headr.InnerText = "其他费用下游待审批";break;
        }
        gv_Detail.DataSource = _staff.GetLowerPositionTask(type, city, (int)ViewState["Month"]);
        gv_Detail.DataBind();
        gv_Detail.BindGrid();
    }
    private void Bind()
    {
        int StaffID = int.Parse(ViewState["StaffID"].ToString());

        if (StaffID <= 0)
        {
            StaffID = int.Parse(Session["UserID"].ToString());
        }
        Org_StaffBLL _staff = new Org_StaffBLL(StaffID);
        int          type   = 0;

        int.TryParse(ViewState["Type"].ToString(), out type);
        int city = 0;

        int.TryParse(ViewState["City"].ToString(), out city);

        switch (type)
        {
        case 1:
            p_headr.InnerText = "陈列费用下游待审批"; break;

        case 2:
            p_headr.InnerText = "返利费用下游待审批"; break;

        case 3:
            p_headr.InnerText = "导购工资下游待审批"; break;

        case 4:
            p_headr.InnerText = "费用核销下游待审批"; break;

        case 5:
            p_headr.InnerText = "促销品请购下游待审批"; break;

        default:
            p_headr.InnerText = "其他费用下游待审批"; break;
        }
        gv_Detail.DataSource = _staff.GetLowerPositionTask(type, city, (int)ViewState["Month"]);
        gv_Detail.DataBind();
        gv_Detail.BindGrid();
    }
Exemple #3
0
    private void BindGrid()
    {
        int       month          = int.Parse(ddl_Month.SelectedValue);
        int       organizecity   = int.Parse(tr_OrganizeCity.SelectValue);
        DataTable dtSummary      = new DataTable();
        int       state          = int.Parse(ddl_State.SelectedValue);
        string    accountname    = ddl_Month.SelectedItem.Text;
        string    preaccountname = DateTime.Parse(accountname + "-01").AddMonths(-3).ToString("yyyy-MM");

        switch (MCSTabControl1.SelectedTabItem.Value)
        {
        case "0":
        {
            dtSummary = FNA_FeeApplyBLL.GetDiaplayFeeSummary(month, organizecity, int.Parse(ddl_Level.SelectedValue), state, int.Parse(Session["UserID"].ToString()));
            if (dtSummary.Rows.Count == 0)
            {
                gv_List.DataBind();
                return;
            }

            dtSummary = MatrixTable.Matrix(dtSummary, new string[] { "管理片区名称", "责任人员", "行政属性" },
                                           new string[] { "RTChannel", "DisplayFeeType", "Title" }, "Summary", true, false);
            MatrixTable.TableAddRowSubTotal_Matric(dtSummary, new string[] { "责任人员" }, 3, new string[] { "RTChannel", "DisplayFeeType", "Title" }, false);

            #region 重新计算总计行的费率
            if (dtSummary.Rows.Count > 1)
            {
                foreach (DataRow dr in dtSummary.Rows)
                {
                    if (dr[0].ToString().EndsWith("计") || dr[2].ToString().EndsWith("计"))
                    {
                        foreach (DataColumn dc in dtSummary.Columns)
                        {
                            if (dc.ColumnName.EndsWith("费率%"))
                            {
                                string title = dc.ColumnName;
                                int    pos   = title.IndexOf('→');
                                if (pos > 0)
                                {
                                    title = title.Substring(0, pos);
                                    if (dtSummary.Columns.Contains(title + "→2.陈列费总计(元/月)→A.我司承担") &&
                                        dtSummary.Columns.Contains(title + "→3.销量及费率→C." + accountname + "预计销量(元/月)") &&
                                        (decimal)dr[title + "→3.销量及费率→C." + accountname + "预计销量(元/月)"] != 0)
                                    {
                                        dr[dc.ColumnName] = Math.Round((decimal)dr[title + "→2.陈列费总计(元/月)→A.我司承担"] / (decimal)dr[title + "→3.销量及费率→C." + accountname + "预计销量(元/月)"] * 100, 1, MidpointRounding.AwayFromZero);
                                    }
                                }
                            }
                            if (dc.ColumnName.EndsWith("E.费率(较" + preaccountname + ")%"))
                            {
                                string title = dc.ColumnName;
                                int    pos   = title.IndexOf('→');
                                if (pos > 0)
                                {
                                    title = title.Substring(0, pos);
                                    if (dtSummary.Columns.Contains(title + "→2.陈列费总计(元/月)→A.我司承担") &&
                                        dtSummary.Columns.Contains(title + "→3.销量及费率→A." + preaccountname + "实际销量(元/月)") &&
                                        (decimal)dr[title + "→3.销量及费率→A." + preaccountname + "实际销量(元/月)"] != 0)
                                    {
                                        dr[dc.ColumnName] = Math.Round((decimal)dr[title + "→2.陈列费总计(元/月)→A.我司承担"] / (decimal)dr[title + "→3.销量及费率→A." + preaccountname + "实际销量(元/月)"] * 100, 1, MidpointRounding.AwayFromZero);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            #endregion
        }
        break;

        case "1":
        {
            dtSummary = FNA_FeeApplyBLL.GetDiaplayFeeByDisplay(month, organizecity, int.Parse(ddl_Level.SelectedValue), state, int.Parse(Session["UserID"].ToString()));
            if (dtSummary.Rows.Count == 0)
            {
                gv_List.DataBind();
                return;
            }

            dtSummary = MatrixTable.Matrix(dtSummary, new string[] { "管理片区名称", "责任人员" },
                                           new string[] { "DisplayMode", "Title" }, "Summary", true, false);
            #region 重新计算总计行的费率
            if (dtSummary.Rows.Count > 1)
            {
                foreach (DataRow dr in dtSummary.Rows)
                {
                    if (dr[0].ToString().EndsWith("计"))
                    {
                        foreach (DataColumn dc in dtSummary.Columns)
                        {
                            if (dc.ColumnName.EndsWith("费率%"))
                            {
                                string title = dc.ColumnName;
                                int    pos   = title.IndexOf('→');
                                if (pos > 0)
                                {
                                    title = title.Substring(0, pos);
                                    if (dtSummary.Columns.Contains(title + "→B.我司费用") &&
                                        dtSummary.Columns.Contains(title + "→D." + accountname + "预计销量(元/月)") &&
                                        (decimal)dr[title + "→D." + accountname + "预计销量(元/月)"] != 0)
                                    {
                                        dr[dc.ColumnName] = Math.Round((decimal)dr[title + "→B.我司费用"] / (decimal)dr[title + "→D." + accountname + "预计销量(元/月)"] * 100, 1, MidpointRounding.AwayFromZero);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            #endregion
        }
        break;

        case "2":
        {
            dtSummary = FNA_FeeApplyBLL.GetByPayMode(month, organizecity, int.Parse(ddl_Level.SelectedValue), state, int.Parse(Session["UserID"].ToString()));
            if (dtSummary.Rows.Count == 0)
            {
                gv_List.DataBind();
                return;
            }

            dtSummary = MatrixTable.Matrix(dtSummary, new string[] { "管理片区名称", "责任人员" },
                                           new string[] { "付款周期", "Title" }, "Summary", true, false);
            #region 重新计算总计行的费率
            if (dtSummary.Rows.Count > 1)
            {
                foreach (DataRow dr in dtSummary.Rows)
                {
                    if (dr[0].ToString().EndsWith("计"))
                    {
                        foreach (DataColumn dc in dtSummary.Columns)
                        {
                            if (dc.ColumnName.EndsWith("比"))
                            {
                                string title = dc.ColumnName;
                                int    pos   = title.IndexOf('→');
                                if (pos > 0)
                                {
                                    title = title.Substring(0, pos);
                                    if (dtSummary.Columns.Contains(title + "→我司费用") &&
                                        dtSummary.Columns.Contains("总计→我司费用") &&
                                        (decimal)dr["总计→我司费用"] != 0)
                                    {
                                        dr[dc.ColumnName] = Math.Round((decimal)dr[title + "→我司费用"] / (decimal)dr["总计→我司费用"] * 100, 1, MidpointRounding.AwayFromZero);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            #endregion
        }
        break;
        }


        gv_List.DataSource = dtSummary;
        gv_List.DataBind();

        if (dtSummary.Columns.Count >= 24)
        {
            gv_List.Width = new Unit(dtSummary.Columns.Count * 65);
        }
        else
        {
            gv_List.Width = new Unit(100, UnitType.Percentage);
        }

        MatrixTable.GridViewMatric(gv_List);

        MatrixTable.GridViewMergSampeValueRow(gv_List, 0);

        MatrixTable.GridViewMergSampeValueRow(gv_List, 1);

        #region 是否可以批量审批
        if (Right_Assign_BLL.GetAccessRight(Session["UserName"].ToString(), 1509, "BatApproveFee"))
        {
            bt_Approve.Visible   = (ddl_State.SelectedValue == "1");
            bt_UnApprove.Visible = (ddl_State.SelectedValue == "1");
            bt_Approve.Enabled   = (ddl_State.SelectedValue == "1");
            bt_UnApprove.Enabled = (ddl_State.SelectedValue == "1");
            #region 判断费用申请进度
            if (ddl_State.SelectedValue == "1")
            {
                Org_StaffBLL _staff = new Org_StaffBLL((int)Session["UserID"]);
                DataTable    dt     = _staff.GetLowerPositionTask(1, organizecity, month);

                if (dt.Rows.Count > 0)
                {
                    bt_Approve.Enabled = false;
                    //bt_UnApprove.Enabled = false;
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "message", "<script language='javascript'>var tempid = Math.random() * 10000; \r\n window.showModalDialog('" + Page.ResolveClientUrl("~/SubModule/Pop_ShowLowerPositionTask.aspx") +
                                                            "?Type=1&StaffID=0&Month=" + ddl_Month.SelectedValue + "&City=" + tr_OrganizeCity.SelectValue + "&tempid='+tempid, window, 'dialogWidth:520px;DialogHeight=600px;status:yes;resizable=no');</script>", false);
                }
            }
            #endregion
        }
        else
        {
            bt_Approve.Visible   = false;
            bt_UnApprove.Visible = false;
        }
        #endregion
    }
    private void BindGrid()
    {
        int month = int.Parse(ddl_Month.SelectedValue);
        int organizecity = int.Parse(tr_OrganizeCity.SelectValue);
        int state = int.Parse(ddl_State.SelectedValue);
        int RTChannel = int.Parse(ddl_RTChannel.SelectedValue);
        int RTType = int.Parse(ddl_RTType.SelectedValue);

        string condition = "";

        if (tbx_ApplyCost.Text != "0")
            condition = "TotalApplyCost" + ddl_OP.SelectedValue + tbx_ApplyCost.Text;

        if (txt_FeeRate.Text != "0")
        {
            if (condition != "") condition += " AND ";
            condition += "CONVERT(DECIMAL(10,3),REPLACE(ApplyCostRate,'%',''))" + ddl_FeeRateOP.SelectedValue + txt_FeeRate.Text;
        }
        DataTable dtSummary = FNA_FeeApplyBLL.GetRTChannelFLFee
            (month, organizecity, state, int.Parse(Session["UserID"].ToString()), RTChannel, condition, RTType);
        if (dtSummary.Rows.Count == 0)
        {
            gv_List.DataBind();
            return;
        }

        #region 求行小计
        MatrixTable.TableAddRowSubTotal(dtSummary, new string[] { "区域信息→大区", "区域信息→营业部", "区域信息→办事处", "零售店基本情况→费用代垫客户" },
            new string[] { "卖场销售额→上月", "卖场销售额→本月", "费用情况→总费用", "费用情况→我司费用", "费用情况→经销商费用" }, true);
        //计算小计行费率
        foreach (DataRow dr in dtSummary.Rows)
        {
            if (dr[0].ToString() == "总计" ||
                dr[1].ToString() == "小计" ||
                dr[2].ToString() == "小计" ||
                dr[3].ToString() == "小计" ||
                dr[4].ToString() == "小计")
            {
                dr["费用情况→我司费率"] = (decimal)dr["卖场销售额→本月"] == 0 ? "100%" : ((decimal)dr["费用情况→我司费用"] / (decimal)dr["卖场销售额→本月"]).ToString("0.#%");
                dr["费用情况→经销商费率"] = (decimal)dr["卖场销售额→本月"] == 0 ? "100%" : ((decimal)dr["费用情况→经销商费用"] / (decimal)dr["卖场销售额→本月"]).ToString("0.#%");
            }
        }
        #endregion

        gv_List.DataSource = dtSummary;
        gv_List.DataBind();

        if (dtSummary.Columns.Count >= 24)
            gv_List.Width = new Unit(dtSummary.Columns.Count * 60);
        else
            gv_List.Width = new Unit(100, UnitType.Percentage);

        MatrixTable.GridViewMatric(gv_List);

        for (int i = 0; i < 4; i++)
        {
            MatrixTable.GridViewMergSampeValueRow(gv_List, i);
        }

        if (Right_Assign_BLL.GetAccessRight(Session["UserName"].ToString(), 1510, "BatApproveFee"))
        {
            bt_Approve.Visible = (ddl_State.SelectedValue == "1");
            bt_UnApprove.Visible = (ddl_State.SelectedValue == "1");
            bt_ExcludeApplyDetail.Visible = (ddl_State.SelectedValue == "1");

            if (state == 1 && condition == "" && RTChannel == 0 && RTType == 0)
            {
                bt_Approve.Enabled = true;
                bt_UnApprove.Enabled = true;

                #region 判断能否审批

                if (ddl_State.SelectedValue == "1")
                {
                    Org_StaffBLL _staff = new Org_StaffBLL((int)Session["UserID"]);
                    DataTable dt = _staff.GetLowerPositionTask(2, int.Parse(tr_OrganizeCity.SelectValue), month);

                    if (AC_AccountMonthBLL.GetCurrentMonth() - 1 <= int.Parse(ddl_Month.SelectedValue))
                    {
                        string[] allowdays1 = Addr_OrganizeCityParamBLL.GetValueByType(1, 5).Replace(" ", "").Split(new char[] { ',', ',', ';', ';' });
                        string[] allowdays2 = Addr_OrganizeCityParamBLL.GetValueByType(1, 6).Replace(" ", "").Split(new char[] { ',', ',', ';', ';' });
                        string date = DateTime.Now.Day.ToString();
                        if (allowdays1.Contains(date))
                            bt_Approve.Enabled = false;
                        else if (allowdays2.Contains(date))
                        {

                            DataTable dt2 = new DataTable();
                            if (_staff.Model.Position == 210)
                                dt2 = _staff.GetFillProcessDetail(2);
                            if (dt2.Rows.Count > 0)
                            {
                                bt_Approve.Enabled = false;
                            }
                        }
                        else
                        {
                            bt_UnApprove.Enabled = false;
                        }
                    }
                    else
                        bt_UnApprove.Enabled = false;

                    if (dt.Rows.Count > 0)
                    {
                        ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "message", "<script language='javascript'>var tempid = Math.random() * 10000; \r\n window.showModalDialog('" + Page.ResolveClientUrl("~/SubModule/Pop_ShowLowerPositionTask.aspx") +
                           "?Type=2&StaffID=0&Month=" + ddl_Month.SelectedValue + "&City=" + tr_OrganizeCity.SelectValue + "&tempid='+tempid, window, 'dialogWidth:520px;DialogHeight=600px;status:yes;resizable=no');</script>", false);
                        bt_Approve.Enabled = false;

                    }
                }
                #endregion
            }
            else
            {
                bt_Approve.Enabled = false;
                bt_UnApprove.Enabled = false;
            }

        }
        else
        {
            bt_Approve.Visible = false;
            bt_UnApprove.Visible = false;
            bt_ExcludeApplyDetail.Visible = false;
        }
    }
    private void BindGrid()
    {
        int month = int.Parse(ddl_Month.SelectedValue);
        int organizecity = int.Parse(tr_OrganizeCity.SelectValue);
        int state = int.Parse(ddl_State.SelectedValue);
        if (MCSTabControl1.SelectedTabItem.Value == "0")
        {
        #region 显示汇总数据
            gv_List.Visible = true; gv_DetailList.Visible = false;
            DataTable dtSummary = FNA_FeeApplyBLL.GetFLFeeSummary2(month, organizecity, int.Parse(ddl_Level.SelectedValue), state, int.Parse(Session["UserID"].ToString()));
            if (dtSummary.Rows.Count == 0)
            {
                gv_List.DataBind();
                return;
            }

            //dtSummary = MatrixTable.Matrix(dtSummary, new string[] { "管理片区名称", "行政属性" },
            //             new string[] { "RTChannel", "DisplayFeeType", "Title" }, "Summary", true, false);
            //MatrixTable.TableAddRowSubTotal_Matric(dtSummary, new string[] { "管理片区名称" }, 2, new string[] { "RTChannel", "DisplayFeeType", "Title" }, false);

            #region 重新计算总计行的费率
            //if (dtSummary.Rows.Count > 1)
            //{
            //    foreach (DataRow dr in dtSummary.Rows)
            //    {
            //        if (dr[1].ToString().EndsWith("计") || dr[2].ToString().EndsWith("计"))
            //        {
            //            foreach (DataColumn dc in dtSummary.Columns)
            //            {
            //                if (dc.ColumnName.EndsWith("费率%"))
            //                {
            //                    string title = dc.ColumnName;
            //                    int pos = title.IndexOf('→');
            //                    if (pos > 0)
            //                    {
            //                        title = title.Substring(0, pos);
            //                        if (dtSummary.Columns.Contains(title + "→1.返利费总计(元/月)→A.我司承担") &&
            //                            dtSummary.Columns.Contains(title + "→2.销量及费率→A.实际进货(元/月)") &&
            //                            (decimal)dr[title + "→2.销量及费率→A.实际进货(元/月)"] != 0)
            //                        {
            //                            dr[dc.ColumnName] = Math.Round((decimal)dr[title + "→1.返利费总计(元/月)→A.我司承担"] / (decimal)dr[title + "→2.销量及费率→A.实际进货(元/月)"] * 100, 1, MidpointRounding.AwayFromZero);
            //                        }
            //                    }
            //                }
            //            }
            //        }
            //    }
            //}
            #endregion

            gv_List.DataSource = dtSummary;
            gv_List.DataBind();

            if (dtSummary.Columns.Count >= 24)
                gv_List.Width = new Unit(dtSummary.Columns.Count * 65);
            else
                gv_List.Width = new Unit(100, UnitType.Percentage);

            MatrixTable.GridViewMatric(gv_List);

            MatrixTable.GridViewMergSampeValueRow(gv_List, 0);

        #endregion
        }
        else
        {
            gv_List.Visible = false; gv_DetailList.Visible = true;
            if (ddl_State.SelectedValue=="1" && Right_Assign_BLL.GetAccessRight(Session["UserName"].ToString(), 1510, "BatApproveFee"))
            {
                bt_Approve.Visible = false;
                bt_UnApprove.Visible = true;
                bt_Approve.OnClientClick = "return confirm('是否确认将所选中所有申请单批量设为审批通过?注意该操作可能耗时较长,请耐心等待!')";
                bt_UnApprove.OnClientClick = "return confirm('是否确认将所选中所有申请单批量设为审批不通过?注意该操作可能耗时较长,请耐心等待!')";
            }
            #region 组织明细查询条件
            string condition = "";
            condition += @"FNA_FeeApply.FeeType=7 AND EXISTS(SELECT 1 FROM MCS_FNA.dbo.FNA_FeeApplyDetail WHERE FNA_FeeApplyDetail.AccountTitle=82
                AND FNA_FeeApplyDetail.ApplyID=FNA_FeeApply.ID AND BeginMonth=" + ddl_Month.SelectedValue + ")";
            if (tr_OrganizeCity.SelectValue != "1")
            {
                Addr_OrganizeCityBLL orgcity = new Addr_OrganizeCityBLL(organizecity);
                string orgcitys = orgcity.GetAllChildNodeIDs();
                if (orgcitys != "") orgcitys += ",";
                orgcitys += organizecity;

                condition += " AND FNA_FeeApply.OrganizeCity IN (" + orgcitys + ")";
            }
            if (state == 0)
                condition += " AND FNA_FeeApply.State IN (2,3) ";
            else if (state == 1)
                condition +=
                @" AND	FNA_FeeApply.State = 2 AND
            EXISTS (
                SELECT EWF_Task_Job.Task
                FROM  MCS_EWF.dbo.EWF_Task_JobDecision INNER JOIN
                    MCS_EWF.dbo.EWF_Task_Job ON EWF_Task_JobDecision.Job = EWF_Task_Job.ID
                     INNER JOIN MCS_EWF.dbo.EWF_Task ON	 EWF_Task_Job.Task= EWF_Task.ID AND EWF_Task.App='4eb9e905-3502-4caf-88d0-aadcfec6e4dd'
                WHERE EWF_Task_JobDecision.RecipientStaff=" + Session["UserID"].ToString() + @" AND
                    EWF_Task_JobDecision.DecisionResult=1 and EWF_Task_Job.Status=3 AND FNA_FeeApply.ApproveTask=EWF_Task_Job.Task)";
            else if (state == 2)
                condition += " AND FNA_FeeApply.State = 3 ";
            else if (state == 3)
            {
                AC_AccountMonth m = new AC_AccountMonthBLL(month).Model;
                condition +=
                @" AND FNA_FeeApply.State IN (2,3) AND EXISTS
            (SELECT EWF_Task_Job.Task FROM  MCS_EWF.dbo.EWF_Task_JobDecision INNER JOIN
            MCS_EWF.dbo.EWF_Task_Job ON EWF_Task_JobDecision.Job = EWF_Task_Job.ID
            INNER JOIN MCS_EWF.dbo.EWF_Task ON=EWF_Task_Job.Task=EWF_Task.ID AND EWF_Task.App='4eb9e905-3502-4caf-88d0-aadcfec6e4dd'
            WHERE EWF_Task_JobDecision.RecipientStaff=" + Session["UserID"].ToString() + @" AND
                EWF_Task_JobDecision.DecisionResult IN(2,5,6) AND FNA_FeeApply.ApproveTask=EWF_Task_Job.Task)";
            }
            #endregion
            gv_DetailList.ConditionString = condition;
            gv_DetailList.BindGrid();

        }

        #region 是否可以批量审批
        if (Right_Assign_BLL.GetAccessRight(Session["UserName"].ToString(), 1510, "BatApproveFee"))
        {
            bt_Approve.Visible = (ddl_State.SelectedValue == "1");
            bt_UnApprove.Visible = (ddl_State.SelectedValue == "1");
            bt_Approve.Enabled = (ddl_State.SelectedValue == "1");
            bt_UnApprove.Enabled = (ddl_State.SelectedValue == "1");

            #region 判断费用申请进度
            if (ddl_State.SelectedValue == "1")
            {
                Org_StaffBLL _staff = new Org_StaffBLL((int)Session["UserID"]);
                DataTable dt = _staff.GetLowerPositionTask(2, int.Parse(tr_OrganizeCity.SelectValue), month);
                if (AC_AccountMonthBLL.GetCurrentMonth() - 1 <= int.Parse(ddl_Month.SelectedValue))
                {

                    string[] allowdays1 = Addr_OrganizeCityParamBLL.GetValueByType(1, 5).Replace(" ", "").Split(new char[] { ',', ',', ';', ';' });
                    string[] allowdays2 = Addr_OrganizeCityParamBLL.GetValueByType(1, 6).Replace(" ", "").Split(new char[] { ',', ',', ';', ';' });
                    string date = DateTime.Now.Day.ToString();
                    if (allowdays1.Contains(date))
                        bt_Approve.Enabled = false;
                    else if (allowdays2.Contains(date))
                    {
                        DataTable dt2 = new DataTable();
                        if (_staff.Model.Position == 210)
                            dt2 = _staff.GetFillProcessDetail(2);
                        if (dt.Rows.Count > 0 || dt2.Rows.Count > 0)
                        {
                            bt_Approve.Enabled = false;
                        }
                    }
                    else
                    {
                        bt_UnApprove.Enabled = false;
                    }

                }
                else
                {
                    bt_UnApprove.Enabled = false;
                }
                if (dt.Rows.Count > 0)
                {
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "message", "<script language='javascript'>var tempid = Math.random() * 10000; \r\n window.showModalDialog('" + Page.ResolveClientUrl("~/SubModule/Pop_ShowLowerPositionTask.aspx") +
                       "?Type=2&StaffID=0&Month=" + ddl_Month.SelectedValue + "&City=" + tr_OrganizeCity.SelectValue + "&tempid='+tempid, window, 'dialogWidth:520px;DialogHeight=600px;status:yes;resizable=no');</script>", false);
                    bt_Approve.Enabled = false;

                }
            }
            #endregion
        }
        else
        {
            bt_Approve.Visible = false;
            bt_UnApprove.Visible = false;
        }
        #endregion
    }
Exemple #6
0
    private void BindGrid()
    {
        int month        = int.Parse(ddl_Month.SelectedValue);
        int organizecity = int.Parse(tr_OrganizeCity.SelectValue);
        int state        = int.Parse(ddl_State.SelectedValue);

        if (MCSTabControl1.SelectedTabItem.Value == "0")
        {
            #region 显示汇总数据
            gv_List.Visible = true; gv_DetailList.Visible = false;
            DataTable dtSummary = FNA_FeeApplyBLL.GetFLFeeSummary(month, organizecity, int.Parse(ddl_Level.SelectedValue), state, int.Parse(Session["UserID"].ToString()));
            if (dtSummary.Rows.Count == 0)
            {
                gv_List.DataBind();
                return;
            }

            dtSummary = MatrixTable.Matrix(dtSummary, new string[] { "管理片区名称", "行政属性" },
                                           new string[] { "RTChannel", "DisplayFeeType", "Title" }, "Summary", true, false);
            MatrixTable.TableAddRowSubTotal_Matric(dtSummary, new string[] { "管理片区名称" }, 2, new string[] { "RTChannel", "DisplayFeeType", "Title" }, false);

            #region 重新计算总计行的费率
            if (dtSummary.Rows.Count > 1)
            {
                foreach (DataRow dr in dtSummary.Rows)
                {
                    if (dr[1].ToString().EndsWith("计") || dr[2].ToString().EndsWith("计"))
                    {
                        foreach (DataColumn dc in dtSummary.Columns)
                        {
                            if (dc.ColumnName.EndsWith("费率%"))
                            {
                                string title = dc.ColumnName;
                                int    pos   = title.IndexOf('→');
                                if (pos > 0)
                                {
                                    title = title.Substring(0, pos);
                                    if (dtSummary.Columns.Contains(title + "→1.返利费总计(元/月)→A.我司承担") &&
                                        dtSummary.Columns.Contains(title + "→2.销量及费率→A.实际进货(元/月)") &&
                                        (decimal)dr[title + "→2.销量及费率→A.实际进货(元/月)"] != 0)
                                    {
                                        dr[dc.ColumnName] = Math.Round((decimal)dr[title + "→1.返利费总计(元/月)→A.我司承担"] / (decimal)dr[title + "→2.销量及费率→A.实际进货(元/月)"] * 100, 1, MidpointRounding.AwayFromZero);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            #endregion

            gv_List.DataSource = dtSummary;
            gv_List.DataBind();

            if (dtSummary.Columns.Count >= 24)
            {
                gv_List.Width = new Unit(dtSummary.Columns.Count * 65);
            }
            else
            {
                gv_List.Width = new Unit(100, UnitType.Percentage);
            }

            MatrixTable.GridViewMatric(gv_List);

            MatrixTable.GridViewMergSampeValueRow(gv_List, 0);
            MatrixTable.GridViewMergSampeValueRow(gv_List, 1);

            #endregion
        }
        else
        {
            gv_List.Visible = false; gv_DetailList.Visible = true;
            if (ddl_State.SelectedValue == "1" && Right_Assign_BLL.GetAccessRight(Session["UserName"].ToString(), 1510, "BatApproveFee"))
            {
                bt_Approve.Visible         = false;
                bt_UnApprove.Visible       = true;
                bt_Approve.OnClientClick   = "return confirm('是否确认将所选中所有申请单批量设为审批通过?注意该操作可能耗时较长,请耐心等待!')";
                bt_UnApprove.OnClientClick = "return confirm('是否确认将所选中所有申请单批量设为审批不通过?注意该操作可能耗时较长,请耐心等待!')";
            }
            #region 组织明细查询条件
            string condition = "";
            condition += @"FNA_FeeApply.FeeType=7 AND EXISTS(SELECT 1 FROM MCS_FNA.dbo.FNA_FeeApplyDetail WHERE FNA_FeeApplyDetail.AccountTitle=82
                AND FNA_FeeApplyDetail.ApplyID=FNA_FeeApply.ID AND BeginMonth=" + ddl_Month.SelectedValue + ")";
            if (tr_OrganizeCity.SelectValue != "1")
            {
                Addr_OrganizeCityBLL orgcity = new Addr_OrganizeCityBLL(organizecity);
                string orgcitys = orgcity.GetAllChildNodeIDs();
                if (orgcitys != "")
                {
                    orgcitys += ",";
                }
                orgcitys += organizecity;

                condition += " AND FNA_FeeApply.OrganizeCity IN (" + orgcitys + ")";
            }
            if (state == 0)
            {
                condition += " AND FNA_FeeApply.State IN (2,3) ";
            }
            else if (state == 1)
            {
                condition +=
                    @" AND	FNA_FeeApply.State = 2 AND 
			EXISTS (
				SELECT EWF_Task_Job.Task
				FROM  MCS_EWF.dbo.EWF_Task_JobDecision INNER JOIN
					MCS_EWF.dbo.EWF_Task_Job ON EWF_Task_JobDecision.Job = EWF_Task_Job.ID 
					 INNER JOIN MCS_EWF.dbo.EWF_Task ON	 EWF_Task_Job.Task= EWF_Task.ID AND EWF_Task.App='4eb9e905-3502-4caf-88d0-aadcfec6e4dd'
				WHERE EWF_Task_JobDecision.RecipientStaff="                 + Session["UserID"].ToString() + @" AND
					EWF_Task_JobDecision.DecisionResult=1 and EWF_Task_Job.Status=3 AND FNA_FeeApply.ApproveTask=EWF_Task_Job.Task)"                    ;
            }
            else if (state == 2)
            {
                condition += " AND FNA_FeeApply.State = 3 ";
            }
            else if (state == 3)
            {
                AC_AccountMonth m = new AC_AccountMonthBLL(month).Model;
                condition +=
                    @" AND FNA_FeeApply.State IN (2,3) AND EXISTS 
            (SELECT EWF_Task_Job.Task FROM  MCS_EWF.dbo.EWF_Task_JobDecision INNER JOIN
	        MCS_EWF.dbo.EWF_Task_Job ON EWF_Task_JobDecision.Job = EWF_Task_Job.ID 
            INNER JOIN MCS_EWF.dbo.EWF_Task ON=EWF_Task_Job.Task=EWF_Task.ID AND EWF_Task.App='4eb9e905-3502-4caf-88d0-aadcfec6e4dd'
            WHERE EWF_Task_JobDecision.RecipientStaff=" + Session["UserID"].ToString() + @" AND
	            EWF_Task_JobDecision.DecisionResult IN(2,5,6) AND FNA_FeeApply.ApproveTask=EWF_Task_Job.Task)"    ;
            }
            #endregion
            gv_DetailList.ConditionString = condition;
            gv_DetailList.BindGrid();
        }


        #region 是否可以批量审批
        if (Right_Assign_BLL.GetAccessRight(Session["UserName"].ToString(), 1510, "BatApproveFee"))
        {
            bt_Approve.Visible   = (ddl_State.SelectedValue == "1");
            bt_UnApprove.Visible = (ddl_State.SelectedValue == "1");
            bt_Approve.Enabled   = (ddl_State.SelectedValue == "1");
            bt_UnApprove.Enabled = (ddl_State.SelectedValue == "1");

            #region 判断费用申请进度
            if (ddl_State.SelectedValue == "1")
            {
                Org_StaffBLL _staff = new Org_StaffBLL((int)Session["UserID"]);
                DataTable    dt     = _staff.GetLowerPositionTask(2, int.Parse(tr_OrganizeCity.SelectValue), month);
                if (AC_AccountMonthBLL.GetCurrentMonth() - 1 <= int.Parse(ddl_Month.SelectedValue))
                {
                    string[] allowdays1 = Addr_OrganizeCityParamBLL.GetValueByType(1, 5).Replace(" ", "").Split(new char[] { ',', ',', ';', ';' });
                    string[] allowdays2 = Addr_OrganizeCityParamBLL.GetValueByType(1, 6).Replace(" ", "").Split(new char[] { ',', ',', ';', ';' });
                    string   date       = DateTime.Now.Day.ToString();
                    if (allowdays1.Contains(date))
                    {
                        bt_Approve.Enabled = false;
                    }
                    else if (allowdays2.Contains(date))
                    {
                        DataTable dt2 = new DataTable();
                        if (_staff.Model.Position == 210)
                        {
                            dt2 = _staff.GetFillProcessDetail(2);
                        }
                        if (dt.Rows.Count > 0 || dt2.Rows.Count > 0)
                        {
                            bt_Approve.Enabled = false;
                        }
                    }
                    else
                    {
                        bt_UnApprove.Enabled = false;
                    }
                }
                else
                {
                    bt_UnApprove.Enabled = false;
                }
                if (dt.Rows.Count > 0)
                {
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "message", "<script language='javascript'>var tempid = Math.random() * 10000; \r\n window.showModalDialog('" + Page.ResolveClientUrl("~/SubModule/Pop_ShowLowerPositionTask.aspx") +
                                                            "?Type=2&StaffID=0&Month=" + ddl_Month.SelectedValue + "&City=" + tr_OrganizeCity.SelectValue + "&tempid='+tempid, window, 'dialogWidth:520px;DialogHeight=600px;status:yes;resizable=no');</script>", false);
                    bt_Approve.Enabled = false;
                }
            }
            #endregion
        }
        else
        {
            bt_Approve.Visible   = false;
            bt_UnApprove.Visible = false;
        }
        #endregion
    }
    private void BindGrid()
    {
        int month = int.Parse(ddl_Month.SelectedValue);
        int organizecity = int.Parse(tr_OrganizeCity.SelectValue);
        int level = int.Parse(ddl_Level.SelectedValue);
        int classify = int.Parse(ddl_GiftClassify.SelectedValue);
        int state = int.Parse(ddl_State.SelectedValue);
        int pdtbrand = int.Parse(ddl_Brand.SelectedValue);
        int client = 0;
        int.TryParse(select_Client.SelectValue, out client);

        switch (MCSTabControl1.SelectedTabItem.Value)
        {
            case "0":
                #region 显示统计分析
                DataTable dtSummary = ORD_OrderApplyBLL.GetGiftSummary(month, organizecity, level, state, classify, (int)Session["UserID"], pdtbrand);

                if (level < 10)
                {
                    dtSummary.Columns.Add("Key", Type.GetType("System.String"), "OrganizeCity+'-'+ProductBrand");
                    dtSummary.Columns.Add("赠品费率", Type.GetType("System.Decimal"), "IIF(实际销量>0,当月生成赠品额/实际销量,0)");
                    dtSummary.Columns.Add("申请费率", Type.GetType("System.Decimal"), "IIF(实际销量>0,申请总额/实际销量,0)");

                    dtSummary = MatrixTable.Matrix(dtSummary, new string[] { "管理片区",
                    "订单品牌", "赠品费用类别", "Key", "实际销量", "赠品费率", "当月生成赠品额",
                    "上月余额", "赠品抵扣额", "申请总额", "申请费率", "当月余额" },
                        new string[] { "GiftBrandName" }, new string[] { "申请金额", "申请占比" }, true, false);
                    MatrixTable.TableAddRowSubTotal_Matric(dtSummary, new string[] { "管理片区" }, 4, new string[] { }, false);

                }
                else
                {
                    dtSummary.Columns.Add("Key", Type.GetType("System.String"), "ClientID+'-'+ProductBrand");
                    dtSummary.Columns.Add("赠品费率", Type.GetType("System.Decimal"), "IIF(实际销量>0,当月生成赠品额/实际销量,0)");
                    dtSummary.Columns.Add("申请费率", Type.GetType("System.Decimal"), "IIF(实际销量>0,申请总额/实际销量,0)");

                    dtSummary = MatrixTable.Matrix(dtSummary, new string[] { "管理片区", "经销商名称",
                   "订单品牌", "赠品费用类别", "Key", "实际销量", "赠品费率", "当月生成赠品额",
                   "上月余额", "赠品抵扣额", "申请总额", "申请费率", "当月余额" },
                        new string[] { "GiftBrandName" }, new string[] { "申请金额", "申请占比" }, true, false);
                    MatrixTable.TableAddRowSubTotal_Matric(dtSummary, new string[] { "管理片区", "经销商名称" }, 5, new string[] { }, false);

                }

                decimal totalsalesvolume = 0, totalavailableamount = 0, totalbalance = 0, totalapplycost = 0, prebalance = 0, deductibleamount = 0;
                if (dtSummary.Rows.Count == 0)
                {
                    gv_Summary.DataBind();
                    return;
                }

                for (int i = 0; i < dtSummary.Rows.Count - 1; i++)
                {

                    if (dtSummary.Rows[i][1].ToString() == "小计" || dtSummary.Rows[i][2].ToString() == "小计")
                    {
                        totalsalesvolume += (decimal)dtSummary.Rows[i]["实际销量"];
                        totalavailableamount += (decimal)dtSummary.Rows[i]["当月生成赠品额"];
                        totalbalance += (decimal)dtSummary.Rows[i]["当月余额"];
                        totalapplycost += (decimal)dtSummary.Rows[i]["申请总额"];
                        prebalance += (decimal)dtSummary.Rows[i]["上月余额"];
                        deductibleamount += (decimal)dtSummary.Rows[i]["赠品抵扣额"];

                        dtSummary.Rows[i]["赠品费率"] = (decimal)dtSummary.Rows[i]["实际销量"] == 0 ? 0 :
                            (decimal)dtSummary.Rows[i]["当月生成赠品额"] / (decimal)dtSummary.Rows[i]["实际销量"];
                        dtSummary.Rows[i]["申请费率"] = (decimal)dtSummary.Rows[i]["实际销量"] == 0 ? 0 :
                            (decimal)dtSummary.Rows[i]["申请总额"] / (decimal)dtSummary.Rows[i]["实际销量"];
                        for (int j = 0; j < dtSummary.Columns.Count; j++)
                        {
                            if (dtSummary.Columns[j].ColumnName.EndsWith("占比"))
                            {
                                dtSummary.Rows[i][j] = (decimal)dtSummary.Rows[i]["申请总额"] == 0 ? 0 :
                                    (decimal)dtSummary.Rows[i][j - 1] / (decimal)dtSummary.Rows[i]["申请总额"];
                            }
                        }
                    }
                }

                dtSummary.Rows[dtSummary.Rows.Count - 1]["实际销量"] = totalsalesvolume;
                dtSummary.Rows[dtSummary.Rows.Count - 1]["当月生成赠品额"] = totalavailableamount;
                dtSummary.Rows[dtSummary.Rows.Count - 1]["当月余额"] = totalbalance;
                dtSummary.Rows[dtSummary.Rows.Count - 1]["申请总额"] = totalapplycost;
                dtSummary.Rows[dtSummary.Rows.Count - 1]["上月余额"] = prebalance;
                dtSummary.Rows[dtSummary.Rows.Count - 1]["赠品抵扣额"] = deductibleamount
                    ;

                dtSummary.Rows[dtSummary.Rows.Count - 1]["赠品费率"] = totalsalesvolume == 0 ? 0 :
                    totalavailableamount / totalsalesvolume;
                dtSummary.Rows[dtSummary.Rows.Count - 1]["申请费率"] = totalsalesvolume == 0 ? 0 :
                    totalapplycost / totalsalesvolume;

                for (int j = 0; j < dtSummary.Columns.Count; j++)
                {
                    if (dtSummary.Columns[j].ColumnName.EndsWith("占比"))
                    {
                        dtSummary.Rows[dtSummary.Rows.Count - 1][j] = totalapplycost == 0 ? 0 :
                            (decimal)dtSummary.Rows[dtSummary.Rows.Count - 1][j - 1] / totalapplycost;
                    }
                }

                bt_Approve.Enabled = (dtSummary.Rows.Count > 0 && state == 1);
                bt_UnApprove.Enabled = (dtSummary.Rows.Count > 0 && state == 1);
                chkHeader1.Visible = (dtSummary.Rows.Count > 0 && state == 1);
                chkHeader1.Checked = false;

                gv_Summary.DataSource = dtSummary;
                gv_Summary.DataBind();
                MatrixTable.GridViewMatric(gv_Summary);
                #endregion
                break;
            case "1":
                #region 显示申请明细

                DataTable dt_detail = ORD_OrderApplyBLL.GetGiftDetail(month, organizecity, client, state, (int)Session["UserID"], pdtbrand, classify);
                if (dt_detail.Rows.Count == 0)
                {
                    gv_ListDetail.DataBind();
                    return;
                }
                gv_ListDetail.DataSource = dt_detail;
                gv_ListDetail.BindGrid();

                MatrixTable.GridViewMergSampeValueRow(gv_ListDetail, 0);
                MatrixTable.GridViewMergSampeValueRow(gv_ListDetail, 1);
                MatrixTable.GridViewMergSampeValueRow(gv_ListDetail, 2);
                MatrixTable.GridViewMergSampeValueRow(gv_ListDetail, 3);
                MatrixTable.GridViewMergSampeValueRow(gv_ListDetail, 4);
                MatrixTable.GridViewMergSampeValueRow(gv_ListDetail, 5);
                MatrixTable.GridViewMergSampeValueRow(gv_ListDetail, 6);
                MatrixTable.GridViewMergSampeValueRow(gv_ListDetail, 7);

                bt_Approve.Enabled = false;
                bt_UnApprove.Enabled = false;
                #endregion
                break;
            case "2":
                #region 显示统计汇总

                DataTable dt = ORD_OrderApplyBLL.GetGiftSummaryTotal(month, organizecity, client, state, (int)Session["UserID"], pdtbrand);
                if (dt.Rows.Count == 0)
                {
                    gv_Total.DataBind();
                    return;
                }
                gv_Total.DataSource = dt;
                gv_Total.DataBind();
                #endregion
                break;
            default:
                break;
        }

        if (state != 1)
        {
            bt_Approve.Visible = false;
            bt_UnApprove.Visible = false;
        }
        else
        {
            Org_StaffBLL _staff = new Org_StaffBLL((int)Session["UserID"]);
            DataTable dt = _staff.GetLowerPositionTask(5, int.Parse(tr_OrganizeCity.SelectValue), month);
            if (AC_AccountMonthBLL.GetCurrentMonth() - 1 > int.Parse(ddl_Month.SelectedValue))
            {
                bt_UnApprove.Enabled = false;
            }

            if (dt.Rows.Count > 0)
            {
                bt_Approve.Enabled = false;
                //bt_UnApprove.Enabled = false;
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "message", "<script language='javascript'>var tempid = Math.random() * 10000; \r\n window.showModalDialog('" + Page.ResolveClientUrl("~/SubModule/Pop_ShowLowerPositionTask.aspx") +
                "?Type=5&StaffID=0&Month=" + ddl_Month.SelectedValue + "&City=" + tr_OrganizeCity.SelectValue + "&tempid='+tempid, window, 'dialogWidth:520px;DialogHeight=600px;status:yes;resizable=no');</script>", false);
            }
        }
    }
Exemple #8
0
    private void BindGrid()
    {
        int month        = int.Parse(ddl_Month.SelectedValue);
        int organizecity = int.Parse(tr_OrganizeCity.SelectValue);
        int state        = int.Parse(ddl_State.SelectedValue);
        int RTChannel    = int.Parse(ddl_RTChannel.SelectedValue);
        int RTType       = int.Parse(ddl_RTType.SelectedValue);

        string condition = "";

        if (tbx_ApplyCost.Text != "0")
        {
            condition = "TotalApplyCost" + ddl_OP.SelectedValue + tbx_ApplyCost.Text;
        }

        if (txt_FeeRate.Text != "0")
        {
            if (condition != "")
            {
                condition += " AND ";
            }
            condition += "CONVERT(DECIMAL(10,3),REPLACE(ApplyCostRate,'%',''))" + ddl_FeeRateOP.SelectedValue + txt_FeeRate.Text;
        }
        DataTable dtSummary = FNA_FeeApplyBLL.GetRTChannelFLFee
                                  (month, organizecity, state, int.Parse(Session["UserID"].ToString()), RTChannel, condition, RTType);

        if (dtSummary.Rows.Count == 0)
        {
            gv_List.DataBind();
            return;
        }

        #region 求行小计
        MatrixTable.TableAddRowSubTotal(dtSummary, new string[] { "区域信息→大区", "区域信息→营业部", "区域信息→办事处", "零售店基本情况→费用代垫客户" },
                                        new string[] { "卖场销售额→上月", "卖场销售额→本月", "费用情况→总费用", "费用情况→我司费用", "费用情况→经销商费用" }, true);
        //计算小计行费率
        foreach (DataRow dr in dtSummary.Rows)
        {
            if (dr[0].ToString() == "总计" ||
                dr[1].ToString() == "小计" ||
                dr[2].ToString() == "小计" ||
                dr[3].ToString() == "小计" ||
                dr[4].ToString() == "小计")
            {
                dr["费用情况→我司费率"]  = (decimal)dr["卖场销售额→本月"] == 0 ? "100%" : ((decimal)dr["费用情况→我司费用"] / (decimal)dr["卖场销售额→本月"]).ToString("0.#%");
                dr["费用情况→经销商费率"] = (decimal)dr["卖场销售额→本月"] == 0 ? "100%" : ((decimal)dr["费用情况→经销商费用"] / (decimal)dr["卖场销售额→本月"]).ToString("0.#%");
            }
        }
        #endregion

        gv_List.DataSource = dtSummary;
        gv_List.DataBind();

        if (dtSummary.Columns.Count >= 24)
        {
            gv_List.Width = new Unit(dtSummary.Columns.Count * 60);
        }
        else
        {
            gv_List.Width = new Unit(100, UnitType.Percentage);
        }

        MatrixTable.GridViewMatric(gv_List);

        for (int i = 0; i < 4; i++)
        {
            MatrixTable.GridViewMergSampeValueRow(gv_List, i);
        }

        if (Right_Assign_BLL.GetAccessRight(Session["UserName"].ToString(), 1510, "BatApproveFee"))
        {
            bt_Approve.Visible            = (ddl_State.SelectedValue == "1");
            bt_UnApprove.Visible          = (ddl_State.SelectedValue == "1");
            bt_ExcludeApplyDetail.Visible = (ddl_State.SelectedValue == "1");

            if (state == 1 && condition == "" && RTChannel == 0 && RTType == 0)
            {
                bt_Approve.Enabled   = true;
                bt_UnApprove.Enabled = true;

                #region 判断能否审批

                if (ddl_State.SelectedValue == "1")
                {
                    Org_StaffBLL _staff = new Org_StaffBLL((int)Session["UserID"]);
                    DataTable    dt     = _staff.GetLowerPositionTask(2, int.Parse(tr_OrganizeCity.SelectValue), month);

                    if (AC_AccountMonthBLL.GetCurrentMonth() - 1 <= int.Parse(ddl_Month.SelectedValue))
                    {
                        string[] allowdays1 = Addr_OrganizeCityParamBLL.GetValueByType(1, 5).Replace(" ", "").Split(new char[] { ',', ',', ';', ';' });
                        string[] allowdays2 = Addr_OrganizeCityParamBLL.GetValueByType(1, 6).Replace(" ", "").Split(new char[] { ',', ',', ';', ';' });
                        string   date       = DateTime.Now.Day.ToString();
                        if (allowdays1.Contains(date))
                        {
                            bt_Approve.Enabled = false;
                        }
                        else if (allowdays2.Contains(date))
                        {
                            DataTable dt2 = new DataTable();
                            if (_staff.Model.Position == 210)
                            {
                                dt2 = _staff.GetFillProcessDetail(2);
                            }
                            if (dt2.Rows.Count > 0)
                            {
                                bt_Approve.Enabled = false;
                            }
                        }
                        else
                        {
                            bt_UnApprove.Enabled = false;
                        }
                    }
                    else
                    {
                        bt_UnApprove.Enabled = false;
                    }

                    if (dt.Rows.Count > 0)
                    {
                        ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "message", "<script language='javascript'>var tempid = Math.random() * 10000; \r\n window.showModalDialog('" + Page.ResolveClientUrl("~/SubModule/Pop_ShowLowerPositionTask.aspx") +
                                                                "?Type=2&StaffID=0&Month=" + ddl_Month.SelectedValue + "&City=" + tr_OrganizeCity.SelectValue + "&tempid='+tempid, window, 'dialogWidth:520px;DialogHeight=600px;status:yes;resizable=no');</script>", false);
                        bt_Approve.Enabled = false;
                    }
                }
                #endregion
            }
            else
            {
                bt_Approve.Enabled   = false;
                bt_UnApprove.Enabled = false;
            }
        }
        else
        {
            bt_Approve.Visible            = false;
            bt_UnApprove.Visible          = false;
            bt_ExcludeApplyDetail.Visible = false;
        }
    }
Exemple #9
0
    private void BindGrid()
    {
        int month        = int.Parse(ddl_Month.SelectedValue);
        int organizecity = int.Parse(tr_OrganizeCity.SelectValue);
        int state        = int.Parse(ddl_State.SelectedValue);
        int RTChannel    = int.Parse(ddl_RTChannel.SelectedValue);
        int RTType       = int.Parse(ddl_RTType.SelectedValue);

        string condition = "";

        if (!(ddl_OP.SelectedValue == ">" && tbx_ApplyCost.Text == "0"))
        {
            condition = "TotalApplyCost" + ddl_OP.SelectedValue + tbx_ApplyCost.Text;
        }

        if (txt_FeeRate.Text != "0")
        {
            if (condition != "")
            {
                condition += " AND ";
            }
            condition += "CONVERT(DECIMAL(10,3),REPLACE(ApplyCostRate,'%',''))" + ddl_FeeRateOP.SelectedValue + txt_FeeRate.Text;
        }

        if (ddl_Flag.SelectedValue != "0")
        {
            if (condition != "")
            {
                condition += " AND ";
            }
            if (ddl_Flag.SelectedValue == "1")
            {
                condition += "发生月='" + ddl_Month.SelectedItem.Text + "'";
            }
            else
            {
                condition += "发生月<>'" + ddl_Month.SelectedItem.Text + "'";
            }
        }
        #region 获取科目过滤条件
        string ATSuppierIDs = "";
        if (ddl_AccountTitle.SelectedValue == "34")
        {
            ATSuppierIDs = "176";
        }
        else if (ddl_AccountTitle.SelectedValue == "33")
        {
            ATSuppierIDs = "73";
        }
        else if (ddl_AccountTitle.SelectedValue != "0")
        {
            ATSuppierIDs = ddl_AccountTitle.SelectedValue;
        }
        #endregion

        DataTable dtSummary = FNA_FeeApplyBLL.GetRTChannelDiaplayFee
                                  (month, organizecity, state, int.Parse(Session["UserID"].ToString()), RTChannel, condition, RTType, ATSuppierIDs);
        if (dtSummary.Rows.Count == 0)
        {
            gv_List.DataBind();
            return;
        }

        #region 求行小计
        MatrixTable.TableAddRowSubTotal(dtSummary, new string[] { "区域信息→大区", "区域信息→营业部", "区域信息→办事处", "零售店基本情况→费用代垫客户" },
                                        new string[] { "陈列费用明细信息→我司费用", "陈列费用明细信息→经销商费用" }, true);
        //计算小计行费率
        //foreach (DataRow dr in dtSummary.Rows)
        //{
        //    if (dr[0].ToString() == "总计" ||
        //        dr[1].ToString() == "小计" ||
        //        dr[2].ToString() == "小计" ||
        //        dr[3].ToString() == "小计" ||
        //        dr[4].ToString() == "小计")
        //    {
        //        dr["陈列费用合计→我司费率"] = (decimal)dr["卖场销量合计→本月预估"] == 0 ? "100%" : ((decimal)dr["陈列费用明细信息→我司费用"] / (decimal)dr["卖场销量合计→本月预估"]).ToString("0.#%");
        //        dr["陈列费用合计→经销商费率"] = (decimal)dr["卖场销量合计→本月预估"] == 0 ? "100%" : ((decimal)dr["陈列费用明细信息→经销商费用"] / (decimal)dr["卖场销量合计→本月预估"]).ToString("0.#%");
        //    }
        //}
        #endregion

        gv_List.DataSource = dtSummary;
        gv_List.DataBind();

        if (dtSummary.Columns.Count >= 24)
        {
            gv_List.Width = new Unit(dtSummary.Columns.Count * 50);
        }
        else
        {
            gv_List.Width = new Unit(100, UnitType.Percentage);
        }

        ViewState["condition"]    = condition;
        ViewState["ATSuppierIDs"] = ATSuppierIDs;
        MatrixTable.GridViewMatric(gv_List);

        for (int i = 0; i < 19; i++)
        {
            MatrixTable.GridViewMergSampeValueRow(gv_List, i);
        }

        if (Right_Assign_BLL.GetAccessRight(Session["UserName"].ToString(), 1509, "BatApproveFee"))
        {
            bt_Approve.Visible            = (ddl_State.SelectedValue == "1");
            bt_UnApprove.Visible          = (ddl_State.SelectedValue == "1");
            bt_ExcludeApplyDetail.Visible = (ddl_State.SelectedValue == "1");

            if (state == 1 && condition == "" && RTChannel == 0 && RTType == 0 && ATSuppierIDs == "")
            {
                bt_Approve.Enabled   = true;
                bt_UnApprove.Enabled = true;

                #region 判断费用申请进度

                if (ddl_State.SelectedValue == "1")
                {
                    Org_StaffBLL _staff = new Org_StaffBLL((int)Session["UserID"]);
                    DataTable    dt     = _staff.GetLowerPositionTask(1, int.Parse(tr_OrganizeCity.SelectValue), month);
                    if (dt.Rows.Count > 0)
                    {
                        ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "message", "<script language='javascript'>var tempid = Math.random() * 10000; \r\n window.showModalDialog('" + Page.ResolveClientUrl("~/SubModule/Pop_ShowLowerPositionTask.aspx") +
                                                                "?Type=1&StaffID=0&Month=" + ddl_Month.SelectedValue + "&City=" + tr_OrganizeCity.SelectValue + "&tempid='+tempid, window, 'dialogWidth:520px;DialogHeight=600px;status:yes;resizable=no');</script>", false);
                        bt_Approve.Enabled = false;
                        //bt_UnApprove.Enabled = false;
                    }
                }

                #endregion
            }
            else
            {
                bt_Approve.Enabled   = false;
                bt_UnApprove.Enabled = false;
            }
        }
        else
        {
            bt_Approve.Visible            = false;
            bt_UnApprove.Visible          = false;
            bt_ExcludeApplyDetail.Visible = false;
        }
    }
Exemple #10
0
    private void BindGrid()
    {
        int month        = int.Parse(ddl_Month.SelectedValue);
        int organizecity = int.Parse(tr_OrganizeCity.SelectValue);
        int level        = int.Parse(ddl_Level.SelectedValue);
        int state        = int.Parse(ddl_State.SelectedValue);
        int rtchannel    = int.Parse(ddl_RTChannel.SelectedValue);


        switch (MCSTabControl1.SelectedTabItem.Value)
        {
        case "0":
        {
            #region 显示统计分析
            DataTable dtSummary = PM_SalaryBLL.GetSummary(month, organizecity, level, state, int.Parse(Session["UserID"].ToString()), int.Parse(ddl_SalaryClassify.SelectedValue));
            if (dtSummary.Rows.Count == 0)
            {
                gv_List.DataBind();
                return;
            }
            //MatrixTable.TableAddSummaryRow(dtSummary, "管理片区名称",
            //    new string[] { "导购员人数", "我司实发额", "上上月总销量", "上月总销量", "上月与上上月增长量", "本月总销量", "本月与上月增长量", "本月婴儿粉销量", "费用A", "费用B", "经销商承担薪资合计" });


            //dtSummary.Columns.Add("婴儿粉比(%)", Type.GetType("System.Decimal"), "IIF(本月总销量=0,0,本月婴儿粉销量/本月总销量*100)").SetOrdinal(10);
            //dtSummary.Columns.Add("费率A(%)", Type.GetType("System.Decimal"), "IIF(本月总销量=0,0,费用A/本月总销量*100)").SetOrdinal(13);
            //dtSummary.Columns.Add("费率B(%)", Type.GetType("System.Decimal"), "IIF(本月总销量=0,0,费用B/本月总销量*100)").SetOrdinal(14);

            //gv_List.Width = new Unit(100, UnitType.Percentage);
            if (txt_FeeRate.Text != "0")
            {
                dtSummary.DefaultView.RowFilter = "[奶粉部费率A(%)]" + ddl_FeeRateOP.SelectedValue + txt_FeeRate.Text;
            }

            gv_List.DataSource = dtSummary.DefaultView;

            gv_List.DataBind();
            GridViewMergSampeValueRow(gv_List, 0, "", 0, "");
            GridViewMergSampeValueRow(gv_List, 1, "", 0, "");
            GridViewMergSampeValueRow(gv_List, 2, "", 0, "");
            #endregion
        }
        break;

        case "1":
        {
            #region 显示汇总单数据源
            DataTable dtSummary = PM_SalaryBLL.GetSummaryTotal(month, organizecity, level, state, int.Parse(Session["UserID"].ToString()), int.Parse(ddl_SalaryClassify.SelectedValue));
            if (dtSummary.Rows.Count == 0)
            {
                gv_List.DataBind();
                return;
            }
            if (dtSummary.Columns.Count >= 24)
            {
                gv_List.Width = new Unit(dtSummary.Columns.Count * 65);
            }
            else
            {
                gv_List.Width = new Unit(100, UnitType.Percentage);
            }

            dtSummary.Columns.Add("费率A(%)", Type.GetType("System.Decimal"), "IIF(本月总销量=0,0,费用A/本月总销量*100)").SetOrdinal(dtSummary.Columns.Count - 1);
            if (txt_FeeRate.Text != "0")
            {
                dtSummary.DefaultView.RowFilter = "[费率A(%)]" + ddl_FeeRateOP.SelectedValue + txt_FeeRate.Text;
            }

            #region 增加合计行
            if (dtSummary.Rows.Count > 0)
            {
                DataRow dr = dtSummary.NewRow();
                dr[0]        = 0;
                dr["管理片区名称"] = "合计";

                for (int column = 2; column < dtSummary.Columns.Count - 1; column++)
                {
                    decimal sum = 0;
                    for (int i = 0; i < dtSummary.Rows.Count; i++)
                    {
                        decimal d = 0;
                        if (decimal.TryParse(dtSummary.Rows[i][column].ToString(), out d))
                        {
                            sum += d;
                        }
                    }
                    dr[column] = sum;
                }
                dtSummary.Rows.Add(dr);
            }
            #endregion
            gv_List.DataSource = dtSummary.DefaultView;
            gv_List.DataBind();

            MatrixTable.GridViewMatric(gv_List);
            #endregion
        }
        break;

        case "2":
        {
            //string condition = " MCS_SYS.dbo.UF_Spilt(PM_SalaryDetail.ExtPropertys,'|',31)!='1'	";//--FlagCancel	是否取消已生成的导购人员导购工(	31)
            string condition = " 1=1 ";

            #region 组织明细记录的查询条件
            //管理片区及所有下属管理片区
            if (tr_OrganizeCity.SelectValue != "1")
            {
                Addr_OrganizeCityBLL orgcity = new Addr_OrganizeCityBLL(int.Parse(tr_OrganizeCity.SelectValue));
                string orgcitys = orgcity.GetAllChildNodeIDs();
                if (orgcitys != "")
                {
                    orgcitys += ",";
                }
                orgcitys += tr_OrganizeCity.SelectValue;

                condition += " AND PM_Salary.OrganizeCity IN (" + orgcitys + ")";
            }
            if (ddl_SalaryClassify.SelectedValue != "0")
            {
                condition += "AND MCS_SYS.dbo.UF_Spilt2('MCS_Promotor.dbo.PM_Salary',PM_Salary.ExtPropertys,'PMClassfiy')=" + ddl_SalaryClassify.SelectedValue;
            }
            //会计月条件
            condition += " AND PM_Salary.AccountMonth = " + ddl_Month.SelectedValue;

            //审批状态
            if (ddl_State.SelectedValue == "0")
            {
                condition += " AND PM_Salary.State IN (2,3) ";
            }
            else if (ddl_State.SelectedValue == "1")
            {
                condition +=
                    @" AND	PM_Salary.State = 2 AND 
			MCS_SYS.dbo.UF_Spilt(PM_Salary.ExtPropertys,'|',1) IN (
				SELECT EWF_Task_Job.Task
				FROM  MCS_EWF.dbo.EWF_Task_JobDecision INNER JOIN
					MCS_EWF.dbo.EWF_Task_Job ON EWF_Task_JobDecision.Job = EWF_Task_Job.ID 
					 INNER JOIN MCS_EWF.dbo.EWF_Task ON	 EWF_Task_Job.Task= EWF_Task.ID 
                     INNER JOIN MCS_EWF.dbo.EWF_Flow_App ON EWF_Task.App=EWF_Flow_App.ID AND EWF_Flow_App.Code='PM_SalaryApplyFlow'
				WHERE EWF_Task_JobDecision.RecipientStaff="                 + Session["UserID"].ToString() + @" AND
					EWF_Task_JobDecision.DecisionResult=1 and EWF_Task_Job.Status=3)"                    ;
            }
            else if (ddl_State.SelectedValue == "2")
            {
                condition += " AND PM_Salary.State = 3 ";
            }
            else if (ddl_State.SelectedValue == "3")
            {
                AC_AccountMonth m = new AC_AccountMonthBLL(month).Model;
                condition +=
                    @" AND PM_Salary.State IN (2,3) AND MCS_SYS.dbo.UF_Spilt(PM_Salary.ExtPropertys,'|',1) IN 
                (SELECT EWF_Task_Job.Task FROM  MCS_EWF.dbo.EWF_Task_JobDecision INNER JOIN
	                MCS_EWF.dbo.EWF_Task_Job ON EWF_Task_JobDecision.Job = EWF_Task_Job.ID 
                 INNER JOIN MCS_EWF.dbo.EWF_Task ON	 EWF_Task_Job.Task= EWF_Task.ID 
                 INNER JOIN MCS_EWF.dbo.EWF_Flow_App ON EWF_Task.App=EWF_Flow_App.ID AND EWF_Flow_App.Code='PM_SalaryApplyFlow'
                WHERE EWF_Task_JobDecision.RecipientStaff=" + Session["UserID"].ToString() + @" AND
	                EWF_Task_JobDecision.DecisionResult IN(2,5,6) AND 
	                EWF_Task_JobDecision.DecisionTime BETWEEN DATEADD(month,-1,'"     + m.BeginDate.ToString("yyyy-MM-dd") + @"') AND 
		                DATEADD(month,3,'"         + m.BeginDate.ToString("yyyy-MM-dd") + @"'))";
            }
            #endregion

            gv_ListDetail.ConditionString = condition;
            gv_ListDetail.BindGrid();
        }
        break;

        case "3":
        {
            DataTable dtSummary = PM_SalaryBLL.GetDetailByState(month, organizecity, level, state, int.Parse(Session["UserID"].ToString()), int.Parse(ddl_SalaryClassify.SelectedValue), rtchannel);
            if (dtSummary.Rows.Count == 0)
            {
                gv_PromotorSalary.DataBind();
                return;
            }
            if (dtSummary.Columns.Count >= 24)
            {
                gv_PromotorSalary.Width = new Unit(dtSummary.Columns.Count * 65);
            }
            else
            {
                gv_PromotorSalary.Width = new Unit(100, UnitType.Percentage);
            }
            dtSummary.Columns.Add("所在门店").SetOrdinal(6);
            if (txt_FeeRate.Text != "0")
            {
                dtSummary.DefaultView.RowFilter = "[费率A%]" + ddl_FeeRateOP.SelectedValue + txt_FeeRate.Text;
            }
            gv_PromotorSalary.DataSource = dtSummary.DefaultView;
            gv_PromotorSalary.DataBind();
            MatrixTable.GridViewMatric(gv_PromotorSalary);
        }
        break;
        }

        #region 是否可以批量审批
        if (state != 1)
        {
            gv_List.Columns[0].ItemStyle.Width = new Unit(1);
            bt_Approved.Visible   = false;
            bt_UnApproved.Visible = false;
        }
        else
        {
            bt_Approved.Visible   = true;
            bt_UnApproved.Visible = true;
            gv_List.Columns[0].ItemStyle.Width = new Unit(68);
            Org_StaffBLL _staff = new Org_StaffBLL((int)Session["UserID"]);
            DataTable    dt     = _staff.GetLowerPositionTask(3, int.Parse(tr_OrganizeCity.SelectValue), month);

            if (AC_AccountMonthBLL.GetCurrentMonth() - 1 <= int.Parse(ddl_Month.SelectedValue))
            {
                string[] allowday1 = Addr_OrganizeCityParamBLL.GetValueByType(1, 3).Split(new char[] { ',', ',', ';', ';' });
                string[] allowday2 = Addr_OrganizeCityParamBLL.GetValueByType(1, 4).Split(new char[] { ',', ',', ';', ';' });
                int      day       = DateTime.Now.Day;
                if (allowday1.Contains(day.ToString()))
                {
                    bt_Approved.Visible = false;
                }
                else if (allowday2.Contains(day.ToString()))
                {
                    #region 判断费用申请进度
                    Org_StaffBLL bll = new Org_StaffBLL((int)Session["UserID"]);
                    DataTable    dt2 = new DataTable();
                    if (bll.Model.Position == 210)
                    {
                        dt2 = bll.GetFillProcessDetail(3);
                    }
                    if (dt.Rows.Count > 0)
                    {
                        bt_Approved.Visible = false;
                    }
                    #endregion
                }
                else
                {
                    bt_UnApproved.Enabled = false;
                    bt_Approved.Enabled   = dt.Rows.Count == 0;
                }
            }
            else
            {
                bt_UnApproved.Enabled = false;
                bt_Approved.Enabled   = dt.Rows.Count == 0;
            }
            if (dt.Rows.Count > 0)
            {
                bt_Approved.Enabled = false;

                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "message", "<script language='javascript'>var tempid = Math.random() * 10000; \r\n window.showModalDialog('" + Page.ResolveClientUrl("~/SubModule/Pop_ShowLowerPositionTask.aspx") +
                                                        "?Type=3&StaffID=0&Month=" + ddl_Month.SelectedValue + "&City=" + tr_OrganizeCity.SelectValue + "&tempid='+tempid, window, 'dialogWidth:520px;DialogHeight=600px;status:yes;resizable=no');</script>", false);
            }
        }
        #endregion
    }
    private void BindGrid()
    {
        int month = int.Parse(ddl_Month.SelectedValue);
        int organizecity = int.Parse(tr_OrganizeCity.SelectValue);
        int state = int.Parse(ddl_State.SelectedValue);
        int RTChannel = int.Parse(ddl_RTChannel.SelectedValue);
        int RTType = int.Parse(ddl_RTType.SelectedValue);

        string condition = "";

        if (!(ddl_OP.SelectedValue == ">" && tbx_ApplyCost.Text == "0"))
            condition = "TotalApplyCost" + ddl_OP.SelectedValue + tbx_ApplyCost.Text;

        if (txt_FeeRate.Text != "0")
        {
            if (condition != "") condition += " AND ";
            condition += "CONVERT(DECIMAL(10,3),REPLACE(ApplyCostRate,'%',''))" + ddl_FeeRateOP.SelectedValue + txt_FeeRate.Text;
        }

        if (ddl_Flag.SelectedValue != "0")
        {
            if (condition != "") condition += " AND ";
            if (ddl_Flag.SelectedValue == "1")
                condition += "发生月='" + ddl_Month.SelectedItem.Text + "'";
            else
                condition += "发生月<>'" + ddl_Month.SelectedItem.Text + "'";
        }
        #region 获取科目过滤条件
        string ATSuppierIDs = "";
        if (ddl_AccountTitle.SelectedValue == "34")
        {
            ATSuppierIDs = "176";
        }
        else if (ddl_AccountTitle.SelectedValue == "33")
        {
            ATSuppierIDs = "73";
        }
        else if (ddl_AccountTitle.SelectedValue != "0")
        {
            ATSuppierIDs = ddl_AccountTitle.SelectedValue;
        }
        #endregion

        DataTable dtSummary = FNA_FeeApplyBLL.GetRTChannelDiaplayFee
            (month, organizecity, state, int.Parse(Session["UserID"].ToString()), RTChannel, condition, RTType, ATSuppierIDs);
        if (dtSummary.Rows.Count == 0)
        {
            gv_List.DataBind();
            return;
        }

        #region 求行小计
        MatrixTable.TableAddRowSubTotal(dtSummary, new string[] { "区域信息→大区", "区域信息→营业部", "区域信息→办事处", "零售店基本情况→费用代垫客户" },
            new string[] { "陈列费用明细信息→我司费用", "陈列费用明细信息→经销商费用" }, true);
        //计算小计行费率
        //foreach (DataRow dr in dtSummary.Rows)
        //{
        //    if (dr[0].ToString() == "总计" ||
        //        dr[1].ToString() == "小计" ||
        //        dr[2].ToString() == "小计" ||
        //        dr[3].ToString() == "小计" ||
        //        dr[4].ToString() == "小计")
        //    {
        //        dr["陈列费用合计→我司费率"] = (decimal)dr["卖场销量合计→本月预估"] == 0 ? "100%" : ((decimal)dr["陈列费用明细信息→我司费用"] / (decimal)dr["卖场销量合计→本月预估"]).ToString("0.#%");
        //        dr["陈列费用合计→经销商费率"] = (decimal)dr["卖场销量合计→本月预估"] == 0 ? "100%" : ((decimal)dr["陈列费用明细信息→经销商费用"] / (decimal)dr["卖场销量合计→本月预估"]).ToString("0.#%");
        //    }
        //}
        #endregion

        gv_List.DataSource = dtSummary;
        gv_List.DataBind();

        if (dtSummary.Columns.Count >= 24)
            gv_List.Width = new Unit(dtSummary.Columns.Count * 50);
        else
            gv_List.Width = new Unit(100, UnitType.Percentage);

        ViewState["condition"] = condition;
        ViewState["ATSuppierIDs"] = ATSuppierIDs;
        MatrixTable.GridViewMatric(gv_List);

        for (int i = 0; i < 19; i++)
        {
            MatrixTable.GridViewMergSampeValueRow(gv_List, i);
        }

        if (Right_Assign_BLL.GetAccessRight(Session["UserName"].ToString(), 1509, "BatApproveFee"))
        {
            bt_Approve.Visible = (ddl_State.SelectedValue == "1");
            bt_UnApprove.Visible = (ddl_State.SelectedValue == "1");
            bt_ExcludeApplyDetail.Visible = (ddl_State.SelectedValue == "1");

            if (state == 1 && condition == "" && RTChannel == 0 && RTType == 0 && ATSuppierIDs == "")
            {
                bt_Approve.Enabled = true;
                bt_UnApprove.Enabled = true;

                #region 判断费用申请进度

                if (ddl_State.SelectedValue == "1")
                {
                    Org_StaffBLL _staff = new Org_StaffBLL((int)Session["UserID"]);
                    DataTable dt = _staff.GetLowerPositionTask(1,int.Parse(tr_OrganizeCity.SelectValue),month);
                    if (dt.Rows.Count > 0)
                    {
                        ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "message", "<script language='javascript'>var tempid = Math.random() * 10000; \r\n window.showModalDialog('" + Page.ResolveClientUrl("~/SubModule/Pop_ShowLowerPositionTask.aspx") +
                       "?Type=1&StaffID=0&Month=" + ddl_Month.SelectedValue + "&City=" + tr_OrganizeCity.SelectValue + "&tempid='+tempid, window, 'dialogWidth:520px;DialogHeight=600px;status:yes;resizable=no');</script>", false);
                        bt_Approve.Enabled = false;
                        //bt_UnApprove.Enabled = false;
                    }
                }

                #endregion
            }
            else
            {
                bt_Approve.Enabled = false;
                bt_UnApprove.Enabled = false;
            }
        }
        else
        {
            bt_Approve.Visible = false;
            bt_UnApprove.Visible = false;
            bt_ExcludeApplyDetail.Visible = false;
        }
    }
    private void BindGrid()
    {
        int month = int.Parse(ddl_Month.SelectedValue);
        int organizecity = int.Parse(tr_OrganizeCity.SelectValue);
        DataTable dtSummary = new DataTable();
        int state = int.Parse(ddl_State.SelectedValue);
        string accountname = ddl_Month.SelectedItem.Text;
        string preaccountname = DateTime.Parse(accountname + "-01").AddMonths(-3).ToString("yyyy-MM");
        switch (MCSTabControl1.SelectedTabItem.Value)
        {
            case "0":
                {
                    dtSummary = FNA_FeeApplyBLL.GetDiaplayFeeSummary(month, organizecity, int.Parse(ddl_Level.SelectedValue), state, int.Parse(Session["UserID"].ToString()));
                    if (dtSummary.Rows.Count == 0)
                    {
                        gv_List.DataBind();
                        return;
                    }

                    dtSummary = MatrixTable.Matrix(dtSummary, new string[] { "管理片区名称", "责任人员", "行政属性" },
                                 new string[] { "RTChannel", "DisplayFeeType", "Title" }, "Summary", true, false);
                    MatrixTable.TableAddRowSubTotal_Matric(dtSummary, new string[] { "责任人员" }, 3, new string[] { "RTChannel", "DisplayFeeType", "Title" }, false);

                    #region 重新计算总计行的费率
                    if (dtSummary.Rows.Count > 1)
                    {

                        foreach (DataRow dr in dtSummary.Rows)
                        {
                            if (dr[0].ToString().EndsWith("计") || dr[2].ToString().EndsWith("计"))
                            {
                                foreach (DataColumn dc in dtSummary.Columns)
                                {
                                    if (dc.ColumnName.EndsWith("费率%"))
                                    {
                                        string title = dc.ColumnName;
                                        int pos = title.IndexOf('→');
                                        if (pos > 0)
                                        {
                                            title = title.Substring(0, pos);
                                            if (dtSummary.Columns.Contains(title + "→2.陈列费总计(元/月)→A.我司承担") &&
                                                dtSummary.Columns.Contains(title + "→3.销量及费率→C." + accountname + "预计销量(元/月)") &&
                                                (decimal)dr[title + "→3.销量及费率→C." + accountname + "预计销量(元/月)"] != 0)
                                            {
                                                dr[dc.ColumnName] = Math.Round((decimal)dr[title + "→2.陈列费总计(元/月)→A.我司承担"] / (decimal)dr[title + "→3.销量及费率→C." + accountname + "预计销量(元/月)"] * 100, 1, MidpointRounding.AwayFromZero);
                                            }
                                        }
                                    }
                                    if (dc.ColumnName.EndsWith("E.费率(较" + preaccountname + ")%"))
                                    {
                                        string title = dc.ColumnName;
                                        int pos = title.IndexOf('→');
                                        if (pos > 0)
                                        {
                                            title = title.Substring(0, pos);
                                            if (dtSummary.Columns.Contains(title + "→2.陈列费总计(元/月)→A.我司承担") &&
                                                dtSummary.Columns.Contains(title + "→3.销量及费率→A." + preaccountname + "实际销量(元/月)") &&
                                                (decimal)dr[title + "→3.销量及费率→A." + preaccountname + "实际销量(元/月)"] != 0)
                                            {
                                                dr[dc.ColumnName] = Math.Round((decimal)dr[title + "→2.陈列费总计(元/月)→A.我司承担"] / (decimal)dr[title + "→3.销量及费率→A." + preaccountname + "实际销量(元/月)"] * 100, 1, MidpointRounding.AwayFromZero);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    #endregion
                }
                break;
            case "1":
                {
                    dtSummary = FNA_FeeApplyBLL.GetDiaplayFeeByDisplay(month, organizecity, int.Parse(ddl_Level.SelectedValue), state, int.Parse(Session["UserID"].ToString()));
                    if (dtSummary.Rows.Count == 0)
                    {
                        gv_List.DataBind();
                        return;
                    }

                    dtSummary = MatrixTable.Matrix(dtSummary, new string[] { "管理片区名称", "责任人员" },
                                 new string[] { "DisplayMode", "Title" }, "Summary", true, false);
                    #region 重新计算总计行的费率
                    if (dtSummary.Rows.Count > 1)
                    {
                        foreach (DataRow dr in dtSummary.Rows)
                        {
                            if (dr[0].ToString().EndsWith("计"))
                            {
                                foreach (DataColumn dc in dtSummary.Columns)
                                {
                                    if (dc.ColumnName.EndsWith("费率%"))
                                    {
                                        string title = dc.ColumnName;
                                        int pos = title.IndexOf('→');
                                        if (pos > 0)
                                        {
                                            title = title.Substring(0, pos);
                                            if (dtSummary.Columns.Contains(title + "→B.我司费用") &&
                                                dtSummary.Columns.Contains(title + "→D."+accountname+"预计销量(元/月)") &&
                                                (decimal)dr[title + "→D." + accountname + "预计销量(元/月)"] != 0)
                                            {
                                                dr[dc.ColumnName] = Math.Round((decimal)dr[title + "→B.我司费用"] / (decimal)dr[title + "→D." + accountname + "预计销量(元/月)"] * 100, 1, MidpointRounding.AwayFromZero);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    #endregion

                }
                break;
            case "2":
                {
                    dtSummary = FNA_FeeApplyBLL.GetByPayMode(month, organizecity, int.Parse(ddl_Level.SelectedValue), state, int.Parse(Session["UserID"].ToString()));
                    if (dtSummary.Rows.Count == 0)
                    {
                        gv_List.DataBind();
                        return;
                    }

                    dtSummary = MatrixTable.Matrix(dtSummary, new string[] { "管理片区名称", "责任人员" },
                                 new string[] { "付款周期", "Title" }, "Summary", true, false);
                    #region 重新计算总计行的费率
                    if (dtSummary.Rows.Count > 1)
                    {
                        foreach (DataRow dr in dtSummary.Rows)
                        {
                            if (dr[0].ToString().EndsWith("计"))
                            {
                                foreach (DataColumn dc in dtSummary.Columns)
                                {
                                    if (dc.ColumnName.EndsWith("比"))
                                    {
                                        string title = dc.ColumnName;
                                        int pos = title.IndexOf('→');
                                        if (pos > 0)
                                        {
                                            title = title.Substring(0, pos);
                                            if (dtSummary.Columns.Contains(title + "→我司费用") &&
                                                dtSummary.Columns.Contains("总计→我司费用") &&
                                                (decimal)dr["总计→我司费用"] != 0)
                                            {
                                                dr[dc.ColumnName] = Math.Round((decimal)dr[title + "→我司费用"] / (decimal)dr["总计→我司费用"] * 100, 1, MidpointRounding.AwayFromZero);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    #endregion

                }
                break;
        }

        gv_List.DataSource = dtSummary;
        gv_List.DataBind();

        if (dtSummary.Columns.Count >= 24)
            gv_List.Width = new Unit(dtSummary.Columns.Count * 65);
        else
            gv_List.Width = new Unit(100, UnitType.Percentage);

        MatrixTable.GridViewMatric(gv_List);

        MatrixTable.GridViewMergSampeValueRow(gv_List, 0);

        MatrixTable.GridViewMergSampeValueRow(gv_List, 1);

        #region 是否可以批量审批
        if (Right_Assign_BLL.GetAccessRight(Session["UserName"].ToString(), 1509, "BatApproveFee"))
        {
            bt_Approve.Visible = (ddl_State.SelectedValue == "1");
            bt_UnApprove.Visible = (ddl_State.SelectedValue == "1");
            bt_Approve.Enabled = (ddl_State.SelectedValue == "1");
            bt_UnApprove.Enabled = (ddl_State.SelectedValue == "1");
            #region 判断费用申请进度
            if (ddl_State.SelectedValue == "1")
            {
                Org_StaffBLL _staff = new Org_StaffBLL((int)Session["UserID"]);
                DataTable dt = _staff.GetLowerPositionTask(1,organizecity, month);

                if (dt.Rows.Count > 0)
                {
                    bt_Approve.Enabled = false;
                    //bt_UnApprove.Enabled = false;
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "message", "<script language='javascript'>var tempid = Math.random() * 10000; \r\n window.showModalDialog('" + Page.ResolveClientUrl("~/SubModule/Pop_ShowLowerPositionTask.aspx") +
                    "?Type=1&StaffID=0&Month="+ddl_Month.SelectedValue+"&City=" + tr_OrganizeCity.SelectValue + "&tempid='+tempid, window, 'dialogWidth:520px;DialogHeight=600px;status:yes;resizable=no');</script>", false);
                }
            }
            #endregion
        }
        else
        {
            bt_Approve.Visible = false;
            bt_UnApprove.Visible = false;
        }
        #endregion
    }
    private void BindGrid()
    {
        int month = int.Parse(ddl_Month.SelectedValue);
        int organizecity = int.Parse(tr_OrganizeCity.SelectValue);
        int level = int.Parse(ddl_Level.SelectedValue);
        int state = int.Parse(ddl_State.SelectedValue);
        int rtchannel = int.Parse(ddl_RTChannel.SelectedValue);

        switch (MCSTabControl1.SelectedTabItem.Value)
        {
            case "0":
                {
                    #region 显示统计分析
                    DataTable dtSummary = PM_SalaryBLL.GetSummary(month, organizecity, level, state, int.Parse(Session["UserID"].ToString()), int.Parse(ddl_SalaryClassify.SelectedValue));
                    if (dtSummary.Rows.Count == 0)
                    {
                        gv_List.DataBind();
                        return;
                    }
                    //MatrixTable.TableAddSummaryRow(dtSummary, "管理片区名称",
                    //    new string[] { "导购员人数", "我司实发额", "上上月总销量", "上月总销量", "上月与上上月增长量", "本月总销量", "本月与上月增长量", "本月婴儿粉销量", "费用A", "费用B", "经销商承担薪资合计" });

                    //dtSummary.Columns.Add("婴儿粉比(%)", Type.GetType("System.Decimal"), "IIF(本月总销量=0,0,本月婴儿粉销量/本月总销量*100)").SetOrdinal(10);
                    //dtSummary.Columns.Add("费率A(%)", Type.GetType("System.Decimal"), "IIF(本月总销量=0,0,费用A/本月总销量*100)").SetOrdinal(13);
                    //dtSummary.Columns.Add("费率B(%)", Type.GetType("System.Decimal"), "IIF(本月总销量=0,0,费用B/本月总销量*100)").SetOrdinal(14);

                    //gv_List.Width = new Unit(100, UnitType.Percentage);
                    if (txt_FeeRate.Text != "0")
                    {
                        dtSummary.DefaultView.RowFilter = "[奶粉部费率A(%)]" + ddl_FeeRateOP.SelectedValue + txt_FeeRate.Text;
                    }

                    gv_List.DataSource = dtSummary.DefaultView;

                    gv_List.DataBind();
                    GridViewMergSampeValueRow(gv_List, 0, "", 0, "");
                    GridViewMergSampeValueRow(gv_List, 1, "", 0, "");
                    GridViewMergSampeValueRow(gv_List, 2, "", 0, "");
                    #endregion
                }
                break;
            case "1":
                {
                    #region 显示汇总单数据源
                    DataTable dtSummary = PM_SalaryBLL.GetSummaryTotal(month, organizecity, level, state, int.Parse(Session["UserID"].ToString()), int.Parse(ddl_SalaryClassify.SelectedValue));
                    if (dtSummary.Rows.Count == 0)
                    {
                        gv_List.DataBind();
                        return;
                    }
                    if (dtSummary.Columns.Count >= 24)
                        gv_List.Width = new Unit(dtSummary.Columns.Count * 65);
                    else
                        gv_List.Width = new Unit(100, UnitType.Percentage);

                    dtSummary.Columns.Add("费率A(%)", Type.GetType("System.Decimal"), "IIF(本月总销量=0,0,费用A/本月总销量*100)").SetOrdinal(dtSummary.Columns.Count - 1);
                    if (txt_FeeRate.Text != "0")
                    {
                        dtSummary.DefaultView.RowFilter = "[费率A(%)]" + ddl_FeeRateOP.SelectedValue + txt_FeeRate.Text;
                    }

                    #region 增加合计行
                    if (dtSummary.Rows.Count > 0)
                    {
                        DataRow dr = dtSummary.NewRow();
                        dr[0] = 0;
                        dr["管理片区名称"] = "合计";

                        for (int column = 2; column < dtSummary.Columns.Count - 1; column++)
                        {
                            decimal sum = 0;
                            for (int i = 0; i < dtSummary.Rows.Count; i++)
                            {
                                decimal d = 0;
                                if (decimal.TryParse(dtSummary.Rows[i][column].ToString(), out d))
                                {
                                    sum += d;
                                }
                            }
                            dr[column] = sum;
                        }
                        dtSummary.Rows.Add(dr);
                    }
                    #endregion
                    gv_List.DataSource = dtSummary.DefaultView;
                    gv_List.DataBind();

                    MatrixTable.GridViewMatric(gv_List);
                    #endregion
                }
                break;
            case "2":
                {
                    //string condition = " MCS_SYS.dbo.UF_Spilt(PM_SalaryDetail.ExtPropertys,'|',31)!='1'	";//--FlagCancel	是否取消已生成的导购人员导购工(	31)
                    string condition = " 1=1 ";

                    #region 组织明细记录的查询条件
                    //管理片区及所有下属管理片区
                    if (tr_OrganizeCity.SelectValue != "1")
                    {
                        Addr_OrganizeCityBLL orgcity = new Addr_OrganizeCityBLL(int.Parse(tr_OrganizeCity.SelectValue));
                        string orgcitys = orgcity.GetAllChildNodeIDs();
                        if (orgcitys != "") orgcitys += ",";
                        orgcitys += tr_OrganizeCity.SelectValue;

                        condition += " AND PM_Salary.OrganizeCity IN (" + orgcitys + ")";
                    }
                    if (ddl_SalaryClassify.SelectedValue != "0")
                    {
                        condition += "AND MCS_SYS.dbo.UF_Spilt2('MCS_Promotor.dbo.PM_Salary',PM_Salary.ExtPropertys,'PMClassfiy')=" + ddl_SalaryClassify.SelectedValue;
                    }
                    //会计月条件
                    condition += " AND PM_Salary.AccountMonth = " + ddl_Month.SelectedValue;

                    //审批状态
                    if (ddl_State.SelectedValue == "0")
                        condition += " AND PM_Salary.State IN (2,3) ";
                    else if (ddl_State.SelectedValue == "1")
                        condition +=
                        @" AND	PM_Salary.State = 2 AND
            MCS_SYS.dbo.UF_Spilt(PM_Salary.ExtPropertys,'|',1) IN (
                SELECT EWF_Task_Job.Task
                FROM  MCS_EWF.dbo.EWF_Task_JobDecision INNER JOIN
                    MCS_EWF.dbo.EWF_Task_Job ON EWF_Task_JobDecision.Job = EWF_Task_Job.ID
                     INNER JOIN MCS_EWF.dbo.EWF_Task ON	 EWF_Task_Job.Task= EWF_Task.ID
                     INNER JOIN MCS_EWF.dbo.EWF_Flow_App ON EWF_Task.App=EWF_Flow_App.ID AND EWF_Flow_App.Code='PM_SalaryApplyFlow'
                WHERE EWF_Task_JobDecision.RecipientStaff=" + Session["UserID"].ToString() + @" AND
                    EWF_Task_JobDecision.DecisionResult=1 and EWF_Task_Job.Status=3)";
                    else if (ddl_State.SelectedValue == "2")
                        condition += " AND PM_Salary.State = 3 ";
                    else if (ddl_State.SelectedValue == "3")
                    {
                        AC_AccountMonth m = new AC_AccountMonthBLL(month).Model;
                        condition +=
                        @" AND PM_Salary.State IN (2,3) AND MCS_SYS.dbo.UF_Spilt(PM_Salary.ExtPropertys,'|',1) IN
                (SELECT EWF_Task_Job.Task FROM  MCS_EWF.dbo.EWF_Task_JobDecision INNER JOIN
                    MCS_EWF.dbo.EWF_Task_Job ON EWF_Task_JobDecision.Job = EWF_Task_Job.ID
                 INNER JOIN MCS_EWF.dbo.EWF_Task ON	 EWF_Task_Job.Task= EWF_Task.ID
                 INNER JOIN MCS_EWF.dbo.EWF_Flow_App ON EWF_Task.App=EWF_Flow_App.ID AND EWF_Flow_App.Code='PM_SalaryApplyFlow'
                WHERE EWF_Task_JobDecision.RecipientStaff=" + Session["UserID"].ToString() + @" AND
                    EWF_Task_JobDecision.DecisionResult IN(2,5,6) AND
                    EWF_Task_JobDecision.DecisionTime BETWEEN DATEADD(month,-1,'" + m.BeginDate.ToString("yyyy-MM-dd") + @"') AND
                        DATEADD(month,3,'" + m.BeginDate.ToString("yyyy-MM-dd") + @"'))";
                    }
                    #endregion

                    gv_ListDetail.ConditionString = condition;
                    gv_ListDetail.BindGrid();
                }
                break;
            case "3":
                {
                    DataTable dtSummary = PM_SalaryBLL.GetDetailByState(month, organizecity, level, state, int.Parse(Session["UserID"].ToString()), int.Parse(ddl_SalaryClassify.SelectedValue), rtchannel);
                    if (dtSummary.Rows.Count == 0)
                    {
                        gv_PromotorSalary.DataBind();
                        return;
                    }
                    if (dtSummary.Columns.Count >= 24)
                        gv_PromotorSalary.Width = new Unit(dtSummary.Columns.Count * 65);
                    else
                        gv_PromotorSalary.Width = new Unit(100, UnitType.Percentage);
                    dtSummary.Columns.Add("所在门店").SetOrdinal(6);
                    if (txt_FeeRate.Text != "0")
                    {
                        dtSummary.DefaultView.RowFilter = "[费率A%]" + ddl_FeeRateOP.SelectedValue + txt_FeeRate.Text;
                    }
                    gv_PromotorSalary.DataSource = dtSummary.DefaultView;
                    gv_PromotorSalary.DataBind();
                    MatrixTable.GridViewMatric(gv_PromotorSalary);
                }
                break;
        }

        #region 是否可以批量审批
        if (state != 1)
        {
            gv_List.Columns[0].ItemStyle.Width = new Unit(1);
            bt_Approved.Visible = false;
            bt_UnApproved.Visible = false;
        }
        else
        {
            bt_Approved.Visible = true;
            bt_UnApproved.Visible = true;
            gv_List.Columns[0].ItemStyle.Width = new Unit(68);
            Org_StaffBLL _staff = new Org_StaffBLL((int)Session["UserID"]);
            DataTable dt = _staff.GetLowerPositionTask(3, int.Parse(tr_OrganizeCity.SelectValue), month);

            if (AC_AccountMonthBLL.GetCurrentMonth() - 1 <= int.Parse(ddl_Month.SelectedValue))
            {
                string[] allowday1 = Addr_OrganizeCityParamBLL.GetValueByType(1, 3).Split(new char[] { ',', ',', ';', ';' });
                string[] allowday2 = Addr_OrganizeCityParamBLL.GetValueByType(1, 4).Split(new char[] { ',', ',', ';', ';' });
                int day = DateTime.Now.Day;
                if (allowday1.Contains(day.ToString()))
                    bt_Approved.Visible = false;
                else if (allowday2.Contains(day.ToString()))
                {
                    #region 判断费用申请进度
                    Org_StaffBLL bll = new Org_StaffBLL((int)Session["UserID"]);
                    DataTable dt2 = new DataTable();
                    if (bll.Model.Position == 210)
                        dt2 = bll.GetFillProcessDetail(3);
                    if (dt.Rows.Count > 0)
                    {
                        bt_Approved.Visible = false;
                    }
                    #endregion
                }
                else
                {
                    bt_UnApproved.Enabled = false;
                    bt_Approved.Enabled = dt.Rows.Count == 0;
                }
            }
            else
            {

                bt_UnApproved.Enabled = false;
                bt_Approved.Enabled = dt.Rows.Count == 0;
            }
            if (dt.Rows.Count > 0)
            {

                bt_Approved.Enabled = false;

                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "message", "<script language='javascript'>var tempid = Math.random() * 10000; \r\n window.showModalDialog('" + Page.ResolveClientUrl("~/SubModule/Pop_ShowLowerPositionTask.aspx") +
                "?Type=3&StaffID=0&Month=" + ddl_Month.SelectedValue + "&City=" + tr_OrganizeCity.SelectValue + "&tempid='+tempid, window, 'dialogWidth:520px;DialogHeight=600px;status:yes;resizable=no');</script>", false);
            }

        }
        #endregion
    }