示例#1
0
    private void BindDropDown()
    {
        if ((int)ViewState["ID"] != 0)
        {
            ORD_ApplyPublish m = new ORD_ApplyPublishBLL((int)ViewState["ID"]).Model;
            ViewState["Type"] = m.Type;
        }

        if ((int)ViewState["Type"] == 1)
        {
            ddl_Brand.DataSource = PDT_BrandBLL.GetModelList("IsOpponent IN (1,9)");
        }
        else
        {
            ddl_Brand.DataSource = PDT_BrandBLL.GetModelList("IsOpponent='9'");
        }

        ddl_Brand.DataBind();
        ddl_Brand.Items.Insert(0, new ListItem("所有品牌", "0"));
        ddl_Brand.SelectedValue = "0";
        rbl_Brand_SelectedIndexChanged(null, null);

        DropDownList ddl_ProductBrand = (DropDownList)pl_ApplyPublish.FindControl("ORD_ApplyPublish_ProductBrand");

        if (ddl_ProductBrand != null)
        {
            ddl_ProductBrand.DataTextField  = "Name";
            ddl_ProductBrand.DataValueField = "ID";
            ddl_ProductBrand.DataSource     = PDT_BrandBLL.GetModelList("(IsOpponent IN (1) OR ID IN (4,5,99))");
            ddl_ProductBrand.DataBind();
            ddl_ProductBrand.Items.Insert(0, new ListItem("请选择", "0"));
            ddl_ProductBrand.SelectedValue = "0";
        }
    }
示例#2
0
    protected void bt_In_Click(object sender, EventArgs e)
    {
        Save();
        foreach (GridViewRow row in gv_NotInList.Rows)
        {
            CheckBox cb_check = (CheckBox)row.FindControl("cb_Check");
            if (cb_check.Checked)
            {
                ORD_ApplyPublishBLL _bll;
                if ((int)ViewState["ID"] != 0)
                {
                    _bll = new ORD_ApplyPublishBLL((int)ViewState["ID"]);
                }
                else
                {
                    return;
                }

                ORD_ApplyPublishDetail pd = new ORD_ApplyPublishDetail();
                pd.ID      = (int)ViewState["ID"];
                pd.Product = int.Parse(gv_NotInList.DataKeys[row.RowIndex]["ID"].ToString());
                pd.Price   = new PDT_ProductBLL(pd.Product).Model.FactoryPrice;
                _bll.AddDetail(pd);
            }
        }
        Response.Redirect("PublishDetail.aspx?ID=" + ViewState["ID"].ToString());
    }
    protected void ddl_Brand_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (tr_OrganizeCity.SelectValue != "0")
        {
            DataTable dt = TreeTableBLL.GetFullPath("MCS_SYS.dbo.Addr_OrganizeCity", "ID", "SuperID", int.Parse(tr_OrganizeCity.SelectValue));

            string citys = "";
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                citys += dt.Rows[i]["ID"].ToString();

                if (i < dt.Rows.Count - 1)
                {
                    citys += ",";
                }
            }
            string condition = "ToOrganizeCity IN (" + citys + ") AND GETDATE() BETWEEN BeginTime AND DateAdd(day,1,EndTime) AND State=2 AND Type=" + rbl_Type.SelectedValue + " AND MCS_SYS.dbo.UF_Spilt(ExtPropertys,'|',1)=" + ddl_Brand.SelectedValue;
            IList <ORD_ApplyPublish> list = ORD_ApplyPublishBLL.GetModelList(condition);
            ddl_Publish.DataTextField  = "Topic";
            ddl_Publish.DataValueField = "ID";
            ddl_Publish.DataSource     = list;
            ddl_Publish.DataBind();
            if (list.Count == 0)
            {
                ddl_Publish.Items.Insert(0, new ListItem("当前无可以申请的产品目录", "0"));
                bt_Confirm.Enabled = false;
            }
            else
            {
                bt_Confirm.Enabled = true;
            }
        }
    }
 protected void bt_Copy_Click(object sender, EventArgs e)
 {
     if ((int)ViewState["ID"] > 0)
     {
         int id = new ORD_ApplyPublishBLL((int)ViewState["ID"]).Copy((int)Session["UserID"]);
         Response.Redirect("PublishDetail.aspx?ID=" + id.ToString());
     }
 }
示例#5
0
 protected void bt_Copy_Click(object sender, EventArgs e)
 {
     if ((int)ViewState["ID"] > 0)
     {
         int id = new ORD_ApplyPublishBLL((int)ViewState["ID"]).Copy((int)Session["UserID"]);
         Response.Redirect("PublishDetail.aspx?ID=" + id.ToString());
     }
 }
 public ORD_OrderCartBLL(int publish, int organizecity, int ordertype, int brand, int issepecial, int client)
 {
     ORD_ApplyPublishBLL p = new ORD_ApplyPublishBLL(publish);
     _type = p.Model.Type;
     _brand = brand;
     _isspecial = issepecial;
     _ordertype = ordertype;
     _publish = publish;
     _organizecity = organizecity;
     _client = client;
     _items = new List<ORD_OrderCart>();
 }
示例#7
0
    protected string GetPublishDetailRemark(int product)
    {
        ORD_ApplyPublishBLL    publish = new ORD_ApplyPublishBLL((int)ViewState["Publish"]);
        ORD_ApplyPublishDetail detail  = publish.Items.FirstOrDefault(p => p.Product == product);

        if (detail != null)
        {
            return(detail["Remark"]);
        }
        else
        {
            return("");
        }
    }
        private int _type = 1; //默认为成品

        #endregion Fields

        #region Constructors

        public ORD_OrderCartBLL(int publish, int organizecity, int client, int month,int addressid)
        {
            _organizecity = organizecity;
            _client = client;
            _accountmonth = month;
            _addressid = addressid;
            if (publish != 0)
            {
                _publish = publish;

                ORD_ApplyPublishBLL p = new ORD_ApplyPublishBLL(publish);
                _type = p.Model.Type;
                _giftfeetype = p.Model.FeeType;
                int.TryParse(p.Model["ProductBrand"], out _brand);
                int.TryParse(p.Model["GiftClassify"], out _giftclassify);
            }

            _items = new List<ORD_OrderCart>();
        }
示例#9
0
    private void LoadGiftApplyAmount()
    {
        int month  = 0;
        int client = 0;

        int.TryParse(ddl_AccountMonth.SelectedValue, out month);
        int.TryParse(select_Client.SelectValue, out client);

        if (month > 0 && client > 0)
        {
            IList <ORD_GiftApplyAmount> lists = ORD_GiftApplyAmountBLL.GetModelList(string.Format("AccountMonth={0} AND Client={1}", month, client));
            if (lists.Count == 0)
            {
                ORD_GiftApplyAmountBLL.ComputAvailableAmount(month, client);
            }

            int pulishid     = 0;
            int brand        = 0;
            int giftclassify = 0;

            int.TryParse(ddl_Publish.SelectedValue, out pulishid);

            if (pulishid > 0)
            {
                ORD_ApplyPublishBLL publish = new ORD_ApplyPublishBLL(pulishid);
                int.TryParse(publish.Model["ProductBrand"], out brand);
                int.TryParse(publish.Model["GiftClassify"], out giftclassify);

                lists = ORD_GiftApplyAmountBLL.GetModelList(string.Format("AccountMonth={0} AND Client={1} AND Brand={2} AND Classify={3}", month, client, brand, giftclassify));
                if (lists.Count > 0)
                {
                    lb_GiftApplyAmount.Text = string.Format("销量:{0:0.#元},赠品费率:{1:0.###%},赠品总额度:{2:0.#元}, 赠品额度余额:{3:0.#元}", lists[0].SalesVolume, lists[0].FeeRate, lists[0].AvailableAmount + lists[0].PreBalance - lists[0].DeductibleAmount, lists[0].BalanceAmount);
                }
                else
                {
                    string[] nolimitbrand = Addr_OrganizeCityParamBLL.GetValueByType(1, 24).Replace(" ", "").Split(new char[] { ',', ',', ';', ';' });

                    lb_GiftApplyAmount.Text = nolimitbrand.Contains(publish.Model["ProductBrand"])?"本品类不限制申请额度":"上月无销量!";
                }
            }
        }
    }
示例#10
0
    protected void bt_Publish_Click(object sender, EventArgs e)
    {
        Save();
        if ((int)ViewState["ID"] > 0)
        {
            ORD_ApplyPublishBLL _bll = new ORD_ApplyPublishBLL((int)ViewState["ID"]);

            #region 赠品发布有效性判断
            if (_bll.Model.Type == 2)
            {
                if (_bll.Model.FeeType == 0)
                {
                    MessageBox.Show(this, "请指定正确的费用类型!");
                    return;
                }

                if (pl_ApplyPublish.FindControl("ORD_ApplyPublish_ProductBrand") != null && _bll.Model["ProductBrand"] != null)
                {
                    if (_bll.Model["ProductBrand"] == "" || _bll.Model["ProductBrand"] == "0")
                    {
                        MessageBox.Show(this, "请指定赠品请购的所属品牌!");
                        return;
                    }
                }

                if (pl_ApplyPublish.FindControl("ORD_ApplyPublish_GiftClassify") != null && _bll.Model["GiftClassify"] != null)
                {
                    if (_bll.Model["GiftClassify"] == "" || _bll.Model["GiftClassify"] == "0")
                    {
                        MessageBox.Show(this, "请指定赠品请购的赠品费用类别!");
                        return;
                    }
                }
            }
            #endregion


            _bll.Publish(2, (int)Session["UserID"]);

            Response.Redirect("PublishList.aspx");
        }
    }
示例#11
0
    private void BindPublish()
    {
        if (tr_OrganizeCity.SelectValue != "0")
        {
            DataTable dt_publish = ORD_ApplyPublishBLL.GetbyOrganizeCity(int.Parse(tr_OrganizeCity.SelectValue), int.Parse(rbl_Type.SelectedValue));
            ddl_Publish.DataSource = dt_publish;
            ddl_Publish.DataBind();


            if (dt_publish.Rows.Count == 0)
            {
                ddl_Publish.Items.Insert(0, new ListItem("当前无可以申请的产品目录", "0"));
                bt_Confirm.Enabled = false;
            }
            else
            {
                bt_Confirm.Enabled = true;
            }
        }
    }
示例#12
0
 protected void bt_Out_Click(object sender, EventArgs e)
 {
     foreach (GridViewRow row in gv_List.Rows)
     {
         CheckBox cb_check = (CheckBox)row.FindControl("cb_Check");
         if (cb_check.Checked)
         {
             ORD_ApplyPublishBLL _bll;
             if ((int)ViewState["ID"] != 0)
             {
                 _bll = new ORD_ApplyPublishBLL((int)ViewState["ID"]);
             }
             else
             {
                 return;
             }
             _bll.DeleteDetail(int.Parse(gv_List.DataKeys[row.RowIndex]["ID"].ToString()));
         }
     }
     Response.Redirect("PublishDetail.aspx?ID=" + ViewState["ID"].ToString());
 }
    protected void bt_In_Click(object sender, EventArgs e)
    {
        Save();
        foreach (GridViewRow row in gv_NotInList.Rows)
        {
            CheckBox cb_check = (CheckBox)row.FindControl("cb_Check");
            if (cb_check.Checked)
            {
                ORD_ApplyPublishBLL _bll;
                if ((int)ViewState["ID"] != 0)
                    _bll = new ORD_ApplyPublishBLL((int)ViewState["ID"]);
                else
                    return;

                ORD_ApplyPublishDetail pd = new ORD_ApplyPublishDetail();
                pd.ID = (int)ViewState["ID"];
                pd.Product = int.Parse(gv_NotInList.DataKeys[row.RowIndex]["ID"].ToString());
                pd.Price = new PDT_ProductBLL(pd.Product).Model.FactoryPrice;
                _bll.AddDetail(pd);
            }
        }
        Response.Redirect("PublishDetail.aspx?ID=" + ViewState["ID"].ToString());
    }
示例#14
0
    protected void bt_Submit_Click(object sender, EventArgs e)
    {
        if (!Save())
        {
            return;
        }

        if ((int)ViewState["ID"] != 0)
        {
            ORD_OrderApplyBLL bll = new ORD_OrderApplyBLL((int)ViewState["ID"]);
            Session["SubmitOrderApplyID"] = (int)ViewState["ID"];
            if (bll.Model.State > 1)
            {
                Response.Redirect("OrderApplyList.aspx");
            }

            if (bll.Items.Count == 0)
            {
                MessageBox.ShowAndRedirect(this, "对不起,定单申请明细不能为空!", "OrderApplyDetail3.aspx?ID=" + ViewState["ID"].ToString());
                return;
            }

            if (bll.Model.AccountMonth < AC_AccountMonthBLL.GetCurrentMonth())
            {
                MessageBox.Show(this, "对不起,该订单申请月份已不是当前月份,已不可提交,请删除该单后重新申请赠品!");
                return;
            }

            decimal totalcost = bll.Items.Sum(m => m.BookQuantity * m.Price);

            if (bll.Model.Type == 2)
            {
                //促销品申请
                #region 判断预算额度余额是否够申请
                ORD_ApplyPublish publish = new ORD_ApplyPublishBLL(bll.Model.PublishID).Model;
                int productbrand = 0, giftclassify = 0;
                int.TryParse(publish["ProductBrand"], out productbrand);
                int.TryParse(publish["GiftClassify"], out giftclassify);

                decimal _budgetbalance  = FNA_BudgetBLL.GetUsableAmount(bll.Model.AccountMonth, bll.Model.OrganizeCity, publish.FeeType);
                decimal _productbalance = ORD_GiftApplyAmountBLL.GetBalanceAmount(bll.Model.AccountMonth, bll.Model.Client, productbrand, giftclassify);

                decimal _balance = _productbalance;
                //2012-3-27 暂时限定赠品额度,不限定预算
                //decimal _balance = (_budgetbalance > _productbalance ? _productbalance : _budgetbalance);
                string[] nolimitbrand = Addr_OrganizeCityParamBLL.GetValueByType(1, 24).Replace(" ", "").Split(new char[] { ',', ',', ';', ';' });
                if (_balance < totalcost && !nolimitbrand.Contains(publish["ProductBrand"]))
                {
                    if (bll.Model["GiftClassify"] == "2" && _balance > 0 && ORD_OrderApplyBLL.GetModelList("Client=" + bll.Model.Client.ToString() + " AND AccountMonth=" + bll.Model.AccountMonth.ToString() + " AND State IN (2,3) AND MCS_SYS.dbo.UF_Spilt(ExtPropertys,'|',5)=" + bll.Model["ProductBrand"] + " AND MCS_SYS.dbo.UF_Spilt(ExtPropertys,'|',7)=" + bll.Model["GiftClassify"]).Count == 0)
                    {
                        //判断是否可以申请最低金额赠品1件
                        decimal MinApplyAmount = 0, MaxApplyAmount = 0;

                        ORD_ApplyPublishBLL _publishbll = new ORD_ApplyPublishBLL(bll.Model.PublishID);
                        _publishbll.GetMinApplyAmount(out MinApplyAmount, out MaxApplyAmount);
                        if (_balance > 0 && _balance < MinApplyAmount)
                        {
                            if (bll.Items.Count > 1)
                            {
                                MessageBox.Show(this, "对不起,您当前的可申请余额不足,仅能申请最多1件赠品");
                                return;
                            }
                            else
                            {
                                int applyproduct = bll.Items[0].Product;
                                ORD_ApplyPublishDetail applydetail = _publishbll.Items.FirstOrDefault(p => p.Product == applyproduct);
                                if (applydetail != null && applydetail.MinQuantity < bll.Items[0].BookQuantity)
                                {
                                    MessageBox.Show(this, "对不起,您当前的可申请余额不足,仅能申请最多1件赠品");
                                    return;
                                }
                            }
                        }
                        else
                        {
                            MessageBox.ShowAndRedirect(this, "对不起,您当前的可申请余额[" + _balance.ToString("0.##") + "]不够申请这些品项!", "OrderApplyDetail3.aspx?ID=" + ViewState["ID"].ToString());
                            return;
                        }
                    }
                    else
                    {
                        MessageBox.ShowAndRedirect(this, "对不起,您当前的可申请余额[" + _balance.ToString("0.##") + "]不够申请这些品项!", "OrderApplyDetail3.aspx?ID=" + ViewState["ID"].ToString());
                        return;
                    }
                }
                #endregion

                #region 发起工作流
                NameValueCollection dataobjects = new NameValueCollection();

                dataobjects.Add("ID", ViewState["ID"].ToString());
                dataobjects.Add("OrganizeCity", bll.Model.OrganizeCity.ToString());
                dataobjects.Add("AccountMonth", bll.Model.AccountMonth.ToString());
                dataobjects.Add("FeeType", publish.FeeType.ToString());
                dataobjects.Add("ProductBrand", publish["ProductBrand"]);
                dataobjects.Add("GiftClassify", publish["GiftClassify"]);
                dataobjects.Add("TotalFee", totalcost.ToString());

                int TaskID = EWF_TaskBLL.NewTask("CuXiaoPin_Apply", (int)Session["UserID"], "促销品申请申请流程", "~/SubModule/Logistics/Order/OrderApplyDetail3.aspx?ID=" + ViewState["ID"].ToString() + "&Type=2", dataobjects);

                new EWF_TaskBLL(TaskID).Start();
                #endregion

                bll.Submit((int)Session["UserID"], TaskID);

                Response.Redirect("~/SubModule/EWF/TaskDetail.aspx?TaskID=" + TaskID.ToString());
            }
            else
            {
                //产品申请申请
                bll.Submit((int)Session["UserID"], 0);
                Response.Redirect("OrderApplyList.aspx");
            }
        }
    }
示例#15
0
    private bool Save()
    {
        ORD_OrderCartBLL cart = null;

        if (Session["LogisticsOrderApplyDetail"] != null)
        {
            cart = (ORD_OrderCartBLL)Session["LogisticsOrderApplyDetail"];
        }

        if ((int)ViewState["ID"] == 0)
        {
            if (cart == null || cart.Items.Count == 0)
            {
                MessageBox.Show(this, "对不起,定单申请明细不能为空!");
                return(false);
            }

            ORD_OrderApplyBLL bll = new ORD_OrderApplyBLL();
            pn_OrderApply.GetData(bll.Model);

            #region 判断有没有填写经销商
            if (bll.Model.Client == 0)
            {
                MessageBox.Show(this, "对不起,请填写申请定购的经销商!");
                return(false);
            }
            #endregion

            #region 初始化定单字段
            bll.Model.OrganizeCity = cart.OrganizeCity;
            bll.Model.PublishID    = cart.Publish;
            bll.Model.AccountMonth = cart.AccountMonth;
            bll.Model.SheetCode    = ORD_OrderApplyBLL.GenerateSheetCode(bll.Model.OrganizeCity, bll.Model.AccountMonth); //自动产生备案号
            bll.Model.ApproveFlag  = 2;
            bll.Model.State        = 1;
            bll.Model.InsertStaff  = (int)Session["UserID"];
            bll.Model["AddressID"] = cart.AddressID.ToString();
            bll.Model["Receiver"]  = cart.Receiver.ToString();
            if (cart.Publish > 0)
            {
                ORD_ApplyPublish publish = new ORD_ApplyPublishBLL(cart.Publish).Model;
                if (publish != null)
                {
                    bll.Model["ProductBrand"] = publish["ProductBrand"];
                    bll.Model["GiftClassify"] = publish["GiftClassify"];
                }
            }
            #endregion

            ViewState["ID"] = bll.Add();

            #region 新增定单明细明细
            foreach (ORD_OrderCart cartitem in cart.Items)
            {
                if (cartitem.BookQuantity == 0)
                {
                    continue;
                }
                ORD_OrderApplyDetail m = new ORD_OrderApplyDetail();
                m.ApplyID          = (int)ViewState["ID"];
                m.Product          = cartitem.Product;
                m.Price            = cartitem.Price;
                m.BookQuantity     = cartitem.BookQuantity;
                m.AdjustQuantity   = 0;
                m.DeliveryQuantity = 0;

                bll.AddDetail(m);
            }
            #endregion
        }
        else
        {
            ORD_OrderApplyBLL bll = new ORD_OrderApplyBLL((int)ViewState["ID"]);
            pn_OrderApply.GetData(bll.Model);
            bll.Model.UpdateStaff = (int)Session["UserID"];
            bll.Update();

            #region 修改明细
            if (cart != null)
            {
                //先将现有定单中每个品项与购物中的比较
                //如果购物车中没有该产品,则删除,如有且数量不同,则更新,并从购物车中移除该品项
                foreach (ORD_OrderApplyDetail m in bll.Items)
                {
                    ORD_OrderCart cartitem = cart.Items.FirstOrDefault(p => p.Product == m.Product);
                    if (cartitem == null)
                    {
                        bll.DeleteDetail(m.ID);
                    }
                    else
                    {
                        if (cartitem.BookQuantity != m.BookQuantity)
                        {
                            m.BookQuantity = cartitem.BookQuantity;
                            bll.UpdateDetail(m);
                        }
                        cart.RemoveProduct(m.Product);
                    }
                }

                //新购物车中新增的品项加入定单明细中
                foreach (ORD_OrderCart cartitem in cart.Items)
                {
                    ORD_OrderApplyDetail m = new ORD_OrderApplyDetail();
                    m.ApplyID          = (int)ViewState["ID"];
                    m.Product          = cartitem.Product;
                    m.Price            = cartitem.Price;
                    m.BookQuantity     = cartitem.BookQuantity;
                    m.AdjustQuantity   = 0;
                    m.DeliveryQuantity = 0;

                    bll.AddDetail(m);
                }
            }
            #endregion
        }

        return(true);
    }
示例#16
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            ViewState["ID"] = Request.QueryString["ID"] == null ? 0 : int.Parse(Request.QueryString["ID"]);

            if ((int)ViewState["ID"] > 0)
            {
                Session["LogisticsOrderApplyID"]     = null;        //申请单ID
                Session["LogisticsOrderApplyDetail"] = null;        //购物车明细
            }
            else if (Session["LogisticsOrderApplyID"] != null)
            {
                //Session中存有申请单ID,说明是对现有申请单进行编辑
                ViewState["ID"] = (int)Session["LogisticsOrderApplyID"];
            }

            if ((int)ViewState["ID"] > 0)
            {
                BindData();
            }
            else if (Session["LogisticsOrderApplyDetail"] != null)
            {
                #region 新增申请单
                //当无申请单ID,但有购物车中有明细时,则说明是新增申请单
                ORD_OrderCartBLL cart = (ORD_OrderCartBLL)Session["LogisticsOrderApplyDetail"];

                if (Session["LogisticsOrderApplyID"] == null)
                {
                    ViewState["Publish"] = cart.Publish;
                    ORD_ApplyPublish publish = new ORD_ApplyPublishBLL(cart.Publish).Model;
                    if (publish == null)
                    {
                        Response.Redirect("OrderApplyDetail0.aspx");
                    }

                    int month = publish.AccountMonth;

                    #region 初始化申请单详细信息控件
                    ORD_OrderApply apply = new ORD_OrderApply();
                    apply.OrganizeCity    = cart.OrganizeCity;
                    apply.AccountMonth    = cart.AccountMonth;
                    apply.Type            = cart.Type;
                    apply.Client          = cart.Client;
                    apply.PreArrivalDate  = DateTime.Today.AddMonths(1);
                    apply["ProductBrand"] = cart.Brand.ToString();
                    apply["GiftClassify"] = cart.GiftClassify.ToString();
                    apply.State           = 1;
                    apply.InsertStaff     = (int)Session["UserID"];
                    apply.InsertTime      = DateTime.Now;
                    apply.PublishID       = cart.Publish;
                    apply["AddressID"]    = cart.AddressID.ToString();
                    apply["Receiver"]     = cart.Receiver.ToString();
                    pn_OrderApply.BindData(apply);
                    #endregion

                    if (cart.Type == 2)
                    {
                        //促销品申请
                        #region 绑定赠品申请预算信息
                        BindBudgetInfo(cart.OrganizeCity, cart.AccountMonth, cart.Client, cart.GiftFeeType, cart.Brand, cart.GiftClassify);
                        tb_GiftBudgetInfo.Visible = true;
                        #endregion
                    }

                    BindGrid();

                    bt_Finish.Visible = false;
                    bt_Delete.Visible = false;
                    //bt_Submit.Visible = false;
                }
                #endregion
            }
            else
            {
                if (Session["SubmitOrderApplyID"] == null)
                {
                    MessageBox.ShowAndRedirect(this, "加载购物车失败,请重新选购!", "OrderApplyDetail0.aspx");
                    return;
                }
                else
                {
                    ViewState["ID"] = (int)Session["SubmitOrderApplyID"];
                    BindData();
                }
            }
        }

        #region 注册弹出窗口脚本
        string script = "function PopAdjust(id){\r\n";
        script += "var tempid = Math.random() * 10000; \r\n window.showModalDialog('" + Page.ResolveClientUrl("Pop_OrderApplyDetailAdjust.aspx") +
                  "?ID=' + id + '&tempid='+tempid, window, 'dialogWidth:500px;DialogHeight=600px;status:yes;resizable=yes');}";
        Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "PopAdjust", script, true);

        #endregion
    }
示例#17
0
    private void BindData()
    {
        ORD_OrderApplyBLL apply = new ORD_OrderApplyBLL((int)ViewState["ID"]);

        if (apply.Model == null)
        {
            Response.Redirect("FeeApplyList.aspx");
        }

        pn_OrderApply.BindData(apply.Model);

        ViewState["Publish"] = apply.Model.PublishID;
        ORD_ApplyPublish publish = new ORD_ApplyPublishBLL(apply.Model.PublishID).Model;

        #region 根据审批状态控制页面
        if (apply.Model.Type == 2 && apply.Model.State == 1)
        {
            #region 绑定赠品申请预算信息


            if (publish == null)
            {
                Response.Redirect("OrderApplyDetail0.aspx");
            }
            int productbrand = 0, giftclassify = 0;
            int.TryParse(publish["ProductBrand"], out productbrand);
            int.TryParse(publish["GiftClassify"], out giftclassify);
            int giftfeetype = publish.FeeType;
            int month       = apply.Model.AccountMonth;
            int city        = apply.Model.OrganizeCity;
            int client      = apply.Model.Client;

            BindBudgetInfo(city, month, client, giftfeetype, productbrand, giftclassify);

            tb_GiftBudgetInfo.Visible = true;
            #endregion
        }

        if (apply.Model.State != 1)
        {
            //非 未提交 状态
            pn_OrderApply.SetControlsEnable(false);

            bt_EditCart.Visible = false;
            bt_Delete.Visible   = false;
            bt_Save.Visible     = false;
            bt_Submit.Visible   = false;

            //可见调整数量及原因
            gv_List.Columns[gv_List.Columns.Count - 4].Visible = true;      //调整原因
            gv_List.Columns[gv_List.Columns.Count - 5].Visible = true;      //批复数量
        }

        AC_AccountMonth endmonht = new AC_AccountMonthBLL(apply.Model.AccountMonth).Model;
        DateTime        reapplyend;
        reapplyend         = DateTime.Parse(endmonht.Name + ConfigHelper.GetConfigString("GiftReApplyDate"));
        bt_ReApply.Visible = !(DateTime.Now > reapplyend);
        switch (apply.Model.State)
        {
        case 1:         //编辑状态
            bt_Finish.Visible  = false;
            bt_ReApply.Visible = false;
            break;

        case 2:         //已提交状态,审批过程中,可以作申请数量调整
            if (Request.QueryString["Decision"] != "" && Request.QueryString["Decision"] == "Y")
            {
                gv_List.Columns[gv_List.Columns.Count - 2].Visible = true;          //允许调整
            }
            bt_Finish.Visible  = false;
            bt_ReApply.Visible = false;
            break;

        case 3:         //审核已通过
        case 4:         //审核已通过后,终止发放(该功能暂未启用)
            bt_Finish.Visible  = false;
            bt_ReApply.Visible = false;
            //gv_List.Columns[gv_List.Columns.Count - 1].Visible = true;      //已发放数量
            break;

        case 8:         //审核不通过
            bt_Finish.Visible = false;
            int forwarddays = ConfigHelper.GetConfigInt("GiftApplyForwardDays");
            if (apply.Model.AccountMonth < AC_AccountMonthBLL.GetMonthByDate(DateTime.Now.AddDays(forwarddays)))
            {
                bt_ReApply.Visible = false;
            }
            break;

        default:
            break;
        }
        #endregion

        BindGrid();
    }
示例#18
0
    private void BindData()
    {
        ORD_OrderCartBLL    cart    = (ORD_OrderCartBLL)Session["LogisticsOrderApplyDetail"];
        ORD_ApplyPublishBLL publish = new ORD_ApplyPublishBLL(cart.Publish);

        if (publish == null)
        {
            Response.Redirect("OrderApplyDetail0.aspx");
        }

        ViewState["Publish"] = cart.Publish;
        pl_ApplyPublish.BindData(publish.Model);

        IList <ORD_ApplyPublishDetail> productlists;

        if (cart.Type == 1)
        {
            #region 成品取客户价表
            productlists = new List <ORD_ApplyPublishDetail>();
            IList <PDT_ProductPrice> pricelists = PDT_ProductPriceBLL.GetModelList
                                                      ("GETDATE() BETWEEN BeginDate AND EndDate AND Client=" + cart.Client.ToString());
            if (pricelists.Count == 0)
            {
                MessageBox.ShowAndRedirect(this, "对不起,该客户没有生效的价表,不可申请产品!", "OrderApplyDetail0.aspx");
                return;
            }

            PDT_ProductPriceBLL pricebll = new PDT_ProductPriceBLL(pricelists[0].ID);

            foreach (ORD_ApplyPublishDetail item in publish.Items)
            {
                PDT_ProductBLL _bll = new PDT_ProductBLL(item.Product);

                if (new PDT_BrandBLL(_bll.Model.Brand).Model.IsOpponent == "1")
                {
                    PDT_ProductPrice_Detail priceitem = pricebll.Items.FirstOrDefault(p => p.Product == item.Product);
                    if (priceitem == null)
                    {
                        continue;
                    }
                    item.Price = priceitem.BuyingPrice;
                }
                else
                {
                    item.Price = _bll.Model.FactoryPrice;
                }

                productlists.Add(item);
            }
            #endregion
        }
        else
        {
            #region 绑定赠品申请预算信息
            BindBudgetInfo(cart.OrganizeCity, cart.AccountMonth, cart.Client, cart.GiftFeeType, cart.Brand, cart.GiftClassify, cart.Receiver);
            tb_GiftBudgetInfo.Visible = true;
            #endregion


            productlists = publish.Items;
        }

        ViewState["PublishDetails"] = productlists;
        gv_List.PageIndex           = 0;
        BindGrid();

        lb_CartCount.Text = cart.Items.Count.ToString();
    }
    protected string GetPublishDetailRemark(int product)
    {
        ORD_ApplyPublishBLL publish = new ORD_ApplyPublishBLL((int)ViewState["Publish"]);

        ORD_ApplyPublishDetail detail = publish.Items.FirstOrDefault(p => p.Product == product);
        if (detail != null)
            return detail["Remark"];
        else
            return "";
    }
示例#20
0
    private bool Save()
    {
        ORD_ApplyPublishBLL _bll;

        if ((int)ViewState["ID"] != 0)
        {
            _bll = new ORD_ApplyPublishBLL((int)ViewState["ID"]);
        }
        else
        {
            _bll = new ORD_ApplyPublishBLL();
        }

        pl_ApplyPublish.GetData(_bll.Model);

        #region 判断有效性
        if (_bll.Model.Type == 2)
        {
            if (_bll.Model["ProductBrand"] == "0")
            {
                MessageBox.Show(this, "请选择【品牌】!");
                return(false);
            }

            if (_bll.Model["GiftClassify"] == "0")
            {
                MessageBox.Show(this, "请选择【赠品费用类别】!");
                return(false);
            }
        }
        #endregion

        #region 组织主题
        if (_bll.Model.Topic == "")
        {
            DropDownList ddl_Type = (DropDownList)pl_ApplyPublish.FindControl("ORD_ApplyPublish_Type");
            if (ddl_Type != null)
            {
                _bll.Model.Topic += ddl_Type.SelectedItem.Text + " ";
            }

            DropDownList ddl_AccountMonth = (DropDownList)pl_ApplyPublish.FindControl("ORD_ApplyPublish_AccountMonth");
            if (ddl_AccountMonth != null)
            {
                _bll.Model.Topic += ddl_AccountMonth.SelectedItem.Text.Replace('-', '年') + "月 ";
            }

            DropDownList ddl_ProductBrand = (DropDownList)pl_ApplyPublish.FindControl("ORD_ApplyPublish_ProductBrand");
            if (ddl_ProductBrand != null)
            {
                _bll.Model.Topic += ddl_ProductBrand.SelectedItem.Text + " ";
            }

            DropDownList ddl_GiftClassify = (DropDownList)pl_ApplyPublish.FindControl("ORD_ApplyPublish_GiftClassify");
            if (ddl_GiftClassify != null)
            {
                _bll.Model.Topic += ddl_GiftClassify.SelectedItem.Text + " ";
            }
        }
        #endregion

        if ((int)ViewState["ID"] != 0)
        {
            if (_bll.Model.Type == 2 && _bll.Model.FeeType == 0)
            {
                //赠品所属费用类型
                _bll.Model.FeeType = ConfigHelper.GetConfigInt("GiftFeeType");
            }
            _bll.Model.UpdateStaff = int.Parse(Session["UserID"].ToString());
            _bll.Update();
        }
        else
        {
            #region 判断相同品牌的申请当月是否已存在
            string condition = string.Format(@"AccountMonth={0} AND Type={1} AND 
                ToOrganizeCity={2} AND
                MCS_SYS.dbo.UF_Spilt2('MCS_Logistics.dbo.ORD_ApplyPublish',ExtPropertys,'ProductBrand')='{3}' AND
                MCS_SYS.dbo.UF_Spilt2('MCS_Logistics.dbo.ORD_ApplyPublish',ExtPropertys,'GiftClassify')='{4}' ",
                                             _bll.Model.AccountMonth, _bll.Model.Type, _bll.Model.ToOrganizeCity, _bll.Model["ProductBrand"], _bll.Model["GiftClassify"]);

            if (ORD_ApplyPublishBLL.GetModelList(condition).Count > 0)
            {
                MessageBox.Show(this, "对不起,相同品牌相同类别的申请目录已发布了,请勿重复发布!");
                return(false);
            }
            #endregion

            _bll.Model.State       = 1;
            _bll.Model.ApproveFlag = 2;
            _bll.Model.InsertStaff = (int)Session["UserID"];
            _bll.Add();
            ViewState["ID"] = _bll.Model.ID;
        }

        #region 修改明细
        foreach (GridViewRow row in gv_List.Rows)
        {
            ORD_ApplyPublishDetail item = new ORD_ApplyPublishDetail();
            item.PublishID = _bll.Model.ID;
            item.ID        = int.Parse(gv_List.DataKeys[row.RowIndex]["ID"].ToString());
            item.Product   = int.Parse(gv_List.DataKeys[row.RowIndex]["Product"].ToString());

            PDT_Product p = new PDT_ProductBLL(item.Product).Model;
            item.Price = p.FactoryPrice;

            if (row.FindControl("tbx_AvailableQuantity_T") != null)
            {
                item.AvailableQuantity = int.Parse(((TextBox)row.FindControl("tbx_AvailableQuantity_T")).Text) * p.ConvertFactor;
            }

            if (row.FindControl("tbx_MinQuantity_T") != null)
            {
                item.MinQuantity = int.Parse(((TextBox)row.FindControl("tbx_MinQuantity_T")).Text) * p.ConvertFactor;
            }

            if (row.FindControl("tbx_MaxQuantity_T") != null)
            {
                item.MaxQuantity = int.Parse(((TextBox)row.FindControl("tbx_MaxQuantity_T")).Text) * p.ConvertFactor;
            }

            if (row.FindControl("tbx_Remark") != null)
            {
                item.Remark = ((TextBox)row.FindControl("tbx_Remark")).Text;
            }

            if (row.FindControl("tbx_GiveLevel") != null)
            {
                item["GiveLevel"] = ((TextBox)row.FindControl("tbx_GiveLevel")).Text;
            }

            if (item.MaxQuantity > 0 && item.MinQuantity > item.MaxQuantity)
            {
                MessageBox.Show(this, "产品:" + p.FullName + "的【单次最小请购数量】不能大于【单次最大请购数量】!");
                return(false);
            }

            if (item.MaxQuantity > 0 && item.AvailableQuantity > 0 && item.MaxQuantity > item.AvailableQuantity)
            {
                MessageBox.Show(this, "产品:" + p.FullName + "的【单次最大请购数量】不能大于【可供请购数量】!");
                return(false);
            }
            _bll.UpdateDetail(item);
        }

        #endregion

        return(true);
    }
    private void BindData()
    {
        ORD_ApplyPublish m = new ORD_ApplyPublishBLL((int)ViewState["ID"]).Model;
        ViewState["Type"] = m.Type;
        pl_ApplyPublish.BindData(m);

        if ((int)ViewState["Type"] == 1)
        {
            gv_List.Columns[5].Visible = false;     //成品请购单,单价依据各客户价表结算
            gv_List.Columns[6].Visible = false;     //成品请购单,单价依据各客户价表结算
            gv_List.Columns[gv_List.Columns.Count - 3].Visible = false;     //赠送坎级不显示

            DropDownList ddl_FeeType = (DropDownList)pl_ApplyPublish.FindControl("ORD_ApplyPublish_FeeType");
            if (ddl_FeeType != null) ddl_FeeType.Enabled = false;

            DropDownList ddl_ProductBrand = (DropDownList)pl_ApplyPublish.FindControl("ORD_ApplyPublish_ProductBrand");
            if (ddl_ProductBrand != null) ddl_ProductBrand.Enabled = false;

            DropDownList ddl_GiftClassify = (DropDownList)pl_ApplyPublish.FindControl("ORD_ApplyPublish_GiftClassify");
            if (ddl_GiftClassify != null) ddl_GiftClassify.Enabled = false;
        }

        if (m.State != 1)
        {
            pl_ApplyPublish.SetControlsEnable(false);
            btn_Save.Visible = false;
            btn_Delete.Visible = false;
            tbl_publish.Visible = false;
            CanEnabled = false;

        }
        switch (m.State)
        {
            case 1:     //未发布
                bt_Close.Visible = false;
                bt_Cancel.Visible = false;
                bt_Modify.Visible = false;
                bt_ViewApplyList.Visible = false;
                gv_List.Columns[gv_List.Columns.Count - 1].Visible = false;
                break;
            case 2:     //已发布
                bt_Publish.Visible = false;
                break;
            case 3:     //关闭
            case 4:     //撤销
                bt_Publish.Visible = false;
                bt_Close.Visible = false;
                bt_Cancel.Visible = false;
                bt_Modify.Visible = false;
                break;
        }
    }
        /// <summary>
        /// 根据请购买申请单重新初始化购物车
        /// </summary>
        /// <param name="ApplyID"></param>
        /// <returns></returns>
        public static ORD_OrderCartBLL InitByOrderApply(int ApplyID)
        {
            ORD_OrderApplyBLL apply = new ORD_OrderApplyBLL(ApplyID);
            if (apply.Model == null) return null;

            ORD_ApplyPublishBLL publish = new ORD_ApplyPublishBLL(apply.Model.PublishID);
            if (publish.Model == null) return null;
            int addressid = 0;
            int.TryParse(apply.Model["AddressID"], out addressid);
            ORD_OrderCartBLL cart = new ORD_OrderCartBLL(apply.Model.PublishID, apply.Model.OrganizeCity, apply.Model.Client, apply.Model.AccountMonth, addressid);

            foreach (ORD_OrderApplyDetail item in apply.Items)
            {
                ORD_ApplyPublishDetail _m = publish.Items.FirstOrDefault(m => m.Product == item.Product);
                if (_m == null) continue;

                ORD_OrderCart cartitem = new ORD_OrderCart();
                cartitem.ID = _m.ID;
                cartitem.Product = _m.Product;
                cartitem.MinQuantity = _m.MinQuantity;
                cartitem.MaxQuantity = _m.MaxQuantity;
                cartitem.Price = item.Price;
                cartitem.AvailableQuantity = _m.AvailableQuantity;
                cartitem.SubmitQuantity = ORD_OrderApplyBLL.GetSubmitQuantity(cart.Publish, cartitem.Product);

                cartitem.BookQuantity = item.BookQuantity;

                cart.Items.Add(cartitem);
            }

            return cart;
        }
    private void BindDropDown()
    {
        if ((int)ViewState["ID"] != 0)
        {
            ORD_ApplyPublish m = new ORD_ApplyPublishBLL((int)ViewState["ID"]).Model;
            ViewState["Type"] = m.Type;
        }

        if ((int)ViewState["Type"] == 1)
            ddl_Brand.DataSource = PDT_BrandBLL.GetModelList("IsOpponent IN (1,9)");
        else
            ddl_Brand.DataSource = PDT_BrandBLL.GetModelList("IsOpponent='9'");

        ddl_Brand.DataBind();
        ddl_Brand.Items.Insert(0, new ListItem("所有品牌", "0"));
        ddl_Brand.SelectedValue = "0";
        rbl_Brand_SelectedIndexChanged(null, null);

        DropDownList ddl_ProductBrand = (DropDownList)pl_ApplyPublish.FindControl("ORD_ApplyPublish_ProductBrand");
        if (ddl_ProductBrand != null)
        {
            ddl_ProductBrand.DataTextField = "Name";
            ddl_ProductBrand.DataValueField = "ID";
            ddl_ProductBrand.DataSource = PDT_BrandBLL.GetModelList("(IsOpponent IN (1) OR ID IN (4,5,99))");
            ddl_ProductBrand.DataBind();
            ddl_ProductBrand.Items.Insert(0, new ListItem("请选择", "0"));
            ddl_ProductBrand.SelectedValue = "0";
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            ViewState["ID"] = Request.QueryString["ID"] == null ? 0 : int.Parse(Request.QueryString["ID"]);

            if ((int)ViewState["ID"] > 0)
            {
                Session["LogisticsOrderApplyID"] = null;            //申请单ID
                Session["LogisticsOrderApplyDetail"] = null;        //购物车明细
            }
            else if (Session["LogisticsOrderApplyID"] != null)
            {
                //Session中存有申请单ID,说明是对现有申请单进行编辑
                ViewState["ID"] = (int)Session["LogisticsOrderApplyID"];
            }

            if ((int)ViewState["ID"] > 0)
            {
                BindData();
            }
            else if (Session["LogisticsOrderApplyDetail"] != null)
            {
                #region 新增申请单
                //当无申请单ID,但有购物车中有明细时,则说明是新增申请单
                ORD_OrderCartBLL cart = (ORD_OrderCartBLL)Session["LogisticsOrderApplyDetail"];

                if (Session["LogisticsOrderApplyID"] == null)
                {
                    ViewState["Publish"] = cart.Publish;
                    ORD_ApplyPublish publish = new ORD_ApplyPublishBLL(cart.Publish).Model;
                    if (publish == null) Response.Redirect("OrderApplyDetail0.aspx");

                    int month = publish.AccountMonth;

                    #region 初始化申请单详细信息控件
                    ORD_OrderApply apply = new ORD_OrderApply();
                    apply.OrganizeCity = cart.OrganizeCity;
                    apply.AccountMonth = cart.AccountMonth;
                    apply.Type = cart.Type;
                    apply.Client = cart.Client;
                    apply.PreArrivalDate = DateTime.Today.AddMonths(1);
                    apply["ProductBrand"] = cart.Brand.ToString();
                    apply["GiftClassify"] = cart.GiftClassify.ToString();
                    apply.State = 1;
                    apply.InsertStaff = (int)Session["UserID"];
                    apply.InsertTime = DateTime.Now;
                    apply.PublishID = cart.Publish;
                    apply["AddressID"] = cart.AddressID.ToString();
                    apply["Receiver"] = cart.Receiver.ToString();
                    pn_OrderApply.BindData(apply);
                    #endregion

                    if (cart.Type == 2)
                    {
                        //促销品申请
                        #region 绑定赠品申请预算信息
                        BindBudgetInfo(cart.OrganizeCity, cart.AccountMonth, cart.Client, cart.GiftFeeType, cart.Brand, cart.GiftClassify);
                        tb_GiftBudgetInfo.Visible = true;
                        #endregion
                    }

                    BindGrid();

                    bt_Finish.Visible = false;
                    bt_Delete.Visible = false;
                    //bt_Submit.Visible = false;
                }
                #endregion
            }
            else
            {
                if (Session["SubmitOrderApplyID"] == null)
                {
                    MessageBox.ShowAndRedirect(this, "加载购物车失败,请重新选购!", "OrderApplyDetail0.aspx");
                    return;
                }
                else
                {
                    ViewState["ID"] = (int)Session["SubmitOrderApplyID"];
                    BindData();
                }
            }
        }

        #region 注册弹出窗口脚本
        string script = "function PopAdjust(id){\r\n";
        script += "var tempid = Math.random() * 10000; \r\n window.showModalDialog('" + Page.ResolveClientUrl("Pop_OrderApplyDetailAdjust.aspx") +
            "?ID=' + id + '&tempid='+tempid, window, 'dialogWidth:500px;DialogHeight=600px;status:yes;resizable=yes');}";
        Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "PopAdjust", script, true);

        #endregion
    }
    private void LoadGiftApplyAmount()
    {
        int month = 0;
        int client = 0;

        int.TryParse(ddl_AccountMonth.SelectedValue, out month);
        int.TryParse(select_Client.SelectValue, out client);

        if (month > 0 && client > 0)
        {

            IList<ORD_GiftApplyAmount> lists = ORD_GiftApplyAmountBLL.GetModelList(string.Format("AccountMonth={0} AND Client={1}", month, client));
            if (lists.Count == 0)
            {
                ORD_GiftApplyAmountBLL.ComputAvailableAmount(month, client);
            }

            int pulishid = 0;
            int brand = 0;
            int giftclassify = 0;

            int.TryParse(ddl_Publish.SelectedValue, out pulishid);

            if (pulishid > 0)
            {
                ORD_ApplyPublishBLL publish = new ORD_ApplyPublishBLL(pulishid);
                int.TryParse(publish.Model["ProductBrand"], out brand);
                int.TryParse(publish.Model["GiftClassify"], out giftclassify);

                lists = ORD_GiftApplyAmountBLL.GetModelList(string.Format("AccountMonth={0} AND Client={1} AND Brand={2} AND Classify={3}", month, client, brand, giftclassify));
                if (lists.Count > 0)
                {
                    lb_GiftApplyAmount.Text = string.Format("销量:{0:0.#元},赠品费率:{1:0.###%},赠品总额度:{2:0.#元}, 赠品额度余额:{3:0.#元}", lists[0].SalesVolume, lists[0].FeeRate, lists[0].AvailableAmount + lists[0].PreBalance - lists[0].DeductibleAmount, lists[0].BalanceAmount);
                }
                else
                {
                    string[] nolimitbrand = Addr_OrganizeCityParamBLL.GetValueByType(1, 24).Replace(" ", "").Split(new char[] { ',', ',', ';', ';' });

                    lb_GiftApplyAmount.Text =nolimitbrand.Contains(publish.Model["ProductBrand"])?"本品类不限制申请额度":"上月无销量!";
                }
            }
        }
    }
    protected void bt_Publish_Click(object sender, EventArgs e)
    {
        Save();
        if ((int)ViewState["ID"] > 0)
        {
            ORD_ApplyPublishBLL _bll = new ORD_ApplyPublishBLL((int)ViewState["ID"]);

            #region 赠品发布有效性判断
            if (_bll.Model.Type == 2)
            {
                if (_bll.Model.FeeType == 0)
                {
                    MessageBox.Show(this, "请指定正确的费用类型!");
                    return;
                }

                if (pl_ApplyPublish.FindControl("ORD_ApplyPublish_ProductBrand") != null && _bll.Model["ProductBrand"] != null)
                {
                    if (_bll.Model["ProductBrand"] == "" || _bll.Model["ProductBrand"] == "0")
                    {
                        MessageBox.Show(this, "请指定赠品请购的所属品牌!");
                        return;
                    }
                }

                if (pl_ApplyPublish.FindControl("ORD_ApplyPublish_GiftClassify") != null && _bll.Model["GiftClassify"] != null)
                {
                    if (_bll.Model["GiftClassify"] == "" || _bll.Model["GiftClassify"] == "0")
                    {
                        MessageBox.Show(this, "请指定赠品请购的赠品费用类别!");
                        return;
                    }
                }
            }
            #endregion

            _bll.Publish(2, (int)Session["UserID"]);

            Response.Redirect("PublishList.aspx");
        }
    }
 protected void bt_Out_Click(object sender, EventArgs e)
 {
     foreach (GridViewRow row in gv_List.Rows)
     {
         CheckBox cb_check = (CheckBox)row.FindControl("cb_Check");
         if (cb_check.Checked)
         {
             ORD_ApplyPublishBLL _bll;
             if ((int)ViewState["ID"] != 0)
                 _bll = new ORD_ApplyPublishBLL((int)ViewState["ID"]);
             else
                 return;
             _bll.DeleteDetail(int.Parse(gv_List.DataKeys[row.RowIndex]["ID"].ToString()));
         }
     }
     Response.Redirect("PublishDetail.aspx?ID=" + ViewState["ID"].ToString());
 }
    private bool Save()
    {
        ORD_ApplyPublishBLL _bll;
        if ((int)ViewState["ID"] != 0)
            _bll = new ORD_ApplyPublishBLL((int)ViewState["ID"]);
        else
            _bll = new ORD_ApplyPublishBLL();

        pl_ApplyPublish.GetData(_bll.Model);

        #region 判断有效性
        if (_bll.Model.Type == 2)
        {
            if (_bll.Model["ProductBrand"] == "0")
            {
                MessageBox.Show(this, "请选择【品牌】!");
                return false;
            }

            if (_bll.Model["GiftClassify"] == "0")
            {
                MessageBox.Show(this, "请选择【赠品费用类别】!");
                return false;
            }
        }
        #endregion

        #region 组织主题
        if (_bll.Model.Topic == "")
        {
            DropDownList ddl_Type = (DropDownList)pl_ApplyPublish.FindControl("ORD_ApplyPublish_Type");
            if (ddl_Type != null) _bll.Model.Topic += ddl_Type.SelectedItem.Text + " ";

            DropDownList ddl_AccountMonth = (DropDownList)pl_ApplyPublish.FindControl("ORD_ApplyPublish_AccountMonth");
            if (ddl_AccountMonth != null) _bll.Model.Topic += ddl_AccountMonth.SelectedItem.Text.Replace('-', '年') + "月 ";

            DropDownList ddl_ProductBrand = (DropDownList)pl_ApplyPublish.FindControl("ORD_ApplyPublish_ProductBrand");
            if (ddl_ProductBrand != null) _bll.Model.Topic += ddl_ProductBrand.SelectedItem.Text + " ";

            DropDownList ddl_GiftClassify = (DropDownList)pl_ApplyPublish.FindControl("ORD_ApplyPublish_GiftClassify");
            if (ddl_GiftClassify != null) _bll.Model.Topic += ddl_GiftClassify.SelectedItem.Text + " ";
        }
        #endregion

        if ((int)ViewState["ID"] != 0)
        {
            if (_bll.Model.Type == 2 && _bll.Model.FeeType == 0)
            {
                //赠品所属费用类型
                _bll.Model.FeeType = ConfigHelper.GetConfigInt("GiftFeeType");
            }
            _bll.Model.UpdateStaff = int.Parse(Session["UserID"].ToString());
            _bll.Update();
        }
        else
        {
            #region 判断相同品牌的申请当月是否已存在
            string condition = string.Format(@"AccountMonth={0} AND Type={1} AND
                ToOrganizeCity={2} AND
                MCS_SYS.dbo.UF_Spilt2('MCS_Logistics.dbo.ORD_ApplyPublish',ExtPropertys,'ProductBrand')='{3}' AND
                MCS_SYS.dbo.UF_Spilt2('MCS_Logistics.dbo.ORD_ApplyPublish',ExtPropertys,'GiftClassify')='{4}' ",
                _bll.Model.AccountMonth, _bll.Model.Type, _bll.Model.ToOrganizeCity, _bll.Model["ProductBrand"], _bll.Model["GiftClassify"]);

            if (ORD_ApplyPublishBLL.GetModelList(condition).Count > 0)
            {
                MessageBox.Show(this, "对不起,相同品牌相同类别的申请目录已发布了,请勿重复发布!");
                return false;
            }
            #endregion

            _bll.Model.State = 1;
            _bll.Model.ApproveFlag = 2;
            _bll.Model.InsertStaff = (int)Session["UserID"];
            _bll.Add();
            ViewState["ID"] = _bll.Model.ID;
        }

        #region 修改明细
        foreach (GridViewRow row in gv_List.Rows)
        {
            ORD_ApplyPublishDetail item = new ORD_ApplyPublishDetail();
            item.PublishID = _bll.Model.ID;
            item.ID = int.Parse(gv_List.DataKeys[row.RowIndex]["ID"].ToString());
            item.Product = int.Parse(gv_List.DataKeys[row.RowIndex]["Product"].ToString());

            PDT_Product p = new PDT_ProductBLL(item.Product).Model;
            item.Price = p.FactoryPrice;

            if (row.FindControl("tbx_AvailableQuantity_T") != null)
                item.AvailableQuantity = int.Parse(((TextBox)row.FindControl("tbx_AvailableQuantity_T")).Text) * p.ConvertFactor;

            if (row.FindControl("tbx_MinQuantity_T") != null)
                item.MinQuantity = int.Parse(((TextBox)row.FindControl("tbx_MinQuantity_T")).Text) * p.ConvertFactor;

            if (row.FindControl("tbx_MaxQuantity_T") != null)
                item.MaxQuantity = int.Parse(((TextBox)row.FindControl("tbx_MaxQuantity_T")).Text) * p.ConvertFactor;

            if (row.FindControl("tbx_Remark") != null)
                item.Remark = ((TextBox)row.FindControl("tbx_Remark")).Text;

            if (row.FindControl("tbx_GiveLevel") != null)
                item["GiveLevel"] = ((TextBox)row.FindControl("tbx_GiveLevel")).Text;

            if (item.MaxQuantity > 0 && item.MinQuantity > item.MaxQuantity)
            {
                MessageBox.Show(this, "产品:" + p.FullName + "的【单次最小请购数量】不能大于【单次最大请购数量】!");
                return false;
            }

            if (item.MaxQuantity > 0 && item.AvailableQuantity > 0 && item.MaxQuantity > item.AvailableQuantity)
            {
                MessageBox.Show(this, "产品:" + p.FullName + "的【单次最大请购数量】不能大于【可供请购数量】!");
                return false;
            }
            _bll.UpdateDetail(item);
        }

        #endregion

        return true;
    }
        /// <summary>
        /// 向购物车中新增产品
        /// </summary>
        /// <param name="product"></param>
        /// <param name="price"></param>
        /// <returns>0:成功 -1:发布目录中不包括此产品 -2:已超可请购数量 -3:该产品已在购物车中 -4:该产品不在指定客户的价表中</returns>
        public int AddProduct(int product, decimal price)
        {
            if (Items.FirstOrDefault(m => m.Product == product) != null) return -3;

            ORD_ApplyPublishDetail _m = new ORD_ApplyPublishBLL(_publish).Items.FirstOrDefault(m => m.Product == product);

            if (_m != null)
            {
                ORD_OrderCart cartitem = new ORD_OrderCart();
                cartitem.Product = _m.Product;
                cartitem.MinQuantity = _m.MinQuantity;
                cartitem.MaxQuantity = _m.MaxQuantity;
                cartitem.Price = price;
                cartitem.AvailableQuantity = _m.AvailableQuantity;
                cartitem.SubmitQuantity = ORD_OrderApplyBLL.GetSubmitQuantity(_publish, product);

                cartitem.BookQuantity = cartitem.MinQuantity > 0 ? cartitem.MinQuantity : new PDT_ProductBLL(product).Model.ConvertFactor;

                if (cartitem.AvailableQuantity > 0 && cartitem.BookQuantity > cartitem.AvailableQuantity - cartitem.SubmitQuantity) return -2;

                _items.Add(cartitem);

                return 0;
            }
            return -1;
        }
    protected void bt_Submit_Click(object sender, EventArgs e)
    {
        if (!Save()) return;

        if ((int)ViewState["ID"] != 0)
        {
            ORD_OrderApplyBLL bll = new ORD_OrderApplyBLL((int)ViewState["ID"]);
            Session["SubmitOrderApplyID"] = (int)ViewState["ID"];
            if (bll.Model.State > 1) Response.Redirect("OrderApplyList.aspx");

            if (bll.Items.Count == 0)
            {
                MessageBox.ShowAndRedirect(this, "对不起,定单申请明细不能为空!", "OrderApplyDetail3.aspx?ID=" + ViewState["ID"].ToString());
                return;
            }

            if (bll.Model.AccountMonth < AC_AccountMonthBLL.GetCurrentMonth())
            {
                MessageBox.Show(this, "对不起,该订单申请月份已不是当前月份,已不可提交,请删除该单后重新申请赠品!");
                return;
            }

            decimal totalcost = bll.Items.Sum(m => m.BookQuantity * m.Price);

            if (bll.Model.Type == 2)
            {
                //促销品申请
                #region 判断预算额度余额是否够申请
                ORD_ApplyPublish publish = new ORD_ApplyPublishBLL(bll.Model.PublishID).Model;
                int productbrand = 0, giftclassify = 0;
                int.TryParse(publish["ProductBrand"], out productbrand);
                int.TryParse(publish["GiftClassify"], out giftclassify);

                decimal _budgetbalance = FNA_BudgetBLL.GetUsableAmount(bll.Model.AccountMonth, bll.Model.OrganizeCity, publish.FeeType);
                decimal _productbalance = ORD_GiftApplyAmountBLL.GetBalanceAmount(bll.Model.AccountMonth, bll.Model.Client, productbrand, giftclassify);

                decimal _balance = _productbalance;
                //2012-3-27 暂时限定赠品额度,不限定预算
                //decimal _balance = (_budgetbalance > _productbalance ? _productbalance : _budgetbalance);
                string[] nolimitbrand = Addr_OrganizeCityParamBLL.GetValueByType(1, 24).Replace(" ", "").Split(new char[] { ',', ',', ';', ';' });
                if (_balance < totalcost && !nolimitbrand.Contains(publish["ProductBrand"]))
                {
                    if (bll.Model["GiftClassify"] == "2" && _balance > 0 && ORD_OrderApplyBLL.GetModelList("Client=" + bll.Model.Client.ToString() + " AND AccountMonth=" + bll.Model.AccountMonth.ToString() + " AND State IN (2,3) AND MCS_SYS.dbo.UF_Spilt(ExtPropertys,'|',5)=" + bll.Model["ProductBrand"] + " AND MCS_SYS.dbo.UF_Spilt(ExtPropertys,'|',7)=" + bll.Model["GiftClassify"]).Count == 0)
                    {
                        //判断是否可以申请最低金额赠品1件
                        decimal MinApplyAmount = 0, MaxApplyAmount = 0;

                        ORD_ApplyPublishBLL _publishbll = new ORD_ApplyPublishBLL(bll.Model.PublishID);
                        _publishbll.GetMinApplyAmount(out MinApplyAmount, out MaxApplyAmount);
                        if (_balance > 0 && _balance < MinApplyAmount)
                        {

                            if (bll.Items.Count > 1)
                            {
                                MessageBox.Show(this, "对不起,您当前的可申请余额不足,仅能申请最多1件赠品");
                                return;
                            }
                            else
                            {
                                int applyproduct = bll.Items[0].Product;
                                ORD_ApplyPublishDetail applydetail = _publishbll.Items.FirstOrDefault(p => p.Product == applyproduct);
                                if (applydetail != null && applydetail.MinQuantity < bll.Items[0].BookQuantity)
                                {
                                    MessageBox.Show(this, "对不起,您当前的可申请余额不足,仅能申请最多1件赠品");
                                    return;
                                }
                            }
                        }
                        else
                        {
                            MessageBox.ShowAndRedirect(this, "对不起,您当前的可申请余额[" + _balance.ToString("0.##") + "]不够申请这些品项!", "OrderApplyDetail3.aspx?ID=" + ViewState["ID"].ToString());
                            return;
                        }

                    }
                    else
                    {
                        MessageBox.ShowAndRedirect(this, "对不起,您当前的可申请余额[" + _balance.ToString("0.##") + "]不够申请这些品项!", "OrderApplyDetail3.aspx?ID=" + ViewState["ID"].ToString());
                        return;
                    }
                }
                #endregion

                #region 发起工作流
                NameValueCollection dataobjects = new NameValueCollection();

                dataobjects.Add("ID", ViewState["ID"].ToString());
                dataobjects.Add("OrganizeCity", bll.Model.OrganizeCity.ToString());
                dataobjects.Add("AccountMonth", bll.Model.AccountMonth.ToString());
                dataobjects.Add("FeeType", publish.FeeType.ToString());
                dataobjects.Add("ProductBrand", publish["ProductBrand"]);
                dataobjects.Add("GiftClassify", publish["GiftClassify"]);
                dataobjects.Add("TotalFee", totalcost.ToString());

                int TaskID = EWF_TaskBLL.NewTask("CuXiaoPin_Apply", (int)Session["UserID"], "促销品申请申请流程", "~/SubModule/Logistics/Order/OrderApplyDetail3.aspx?ID=" + ViewState["ID"].ToString() + "&Type=2", dataobjects);

                new EWF_TaskBLL(TaskID).Start();
                #endregion

                bll.Submit((int)Session["UserID"], TaskID);

                Response.Redirect("~/SubModule/EWF/TaskDetail.aspx?TaskID=" + TaskID.ToString());
            }
            else
            {
                //产品申请申请
                bll.Submit((int)Session["UserID"], 0);
                Response.Redirect("OrderApplyList.aspx");
            }
        }
    }
    private void BindData()
    {
        ORD_OrderApplyBLL apply = new ORD_OrderApplyBLL((int)ViewState["ID"]);
        if (apply.Model == null) Response.Redirect("FeeApplyList.aspx");

        pn_OrderApply.BindData(apply.Model);

        ViewState["Publish"] = apply.Model.PublishID;
        ORD_ApplyPublish publish = new ORD_ApplyPublishBLL(apply.Model.PublishID).Model;
        #region 根据审批状态控制页面
        if (apply.Model.Type == 2 && apply.Model.State == 1)
        {
            #region 绑定赠品申请预算信息

            if (publish == null) Response.Redirect("OrderApplyDetail0.aspx");
            int productbrand = 0, giftclassify = 0;
            int.TryParse(publish["ProductBrand"], out productbrand);
            int.TryParse(publish["GiftClassify"], out giftclassify);
            int giftfeetype = publish.FeeType;
            int month = apply.Model.AccountMonth;
            int city = apply.Model.OrganizeCity;
            int client = apply.Model.Client;

            BindBudgetInfo(city, month, client, giftfeetype, productbrand, giftclassify);

            tb_GiftBudgetInfo.Visible = true;
            #endregion
        }

        if (apply.Model.State != 1)
        {
            //非 未提交 状态
            pn_OrderApply.SetControlsEnable(false);

            bt_EditCart.Visible = false;
            bt_Delete.Visible = false;
            bt_Save.Visible = false;
            bt_Submit.Visible = false;

            //可见调整数量及原因
            gv_List.Columns[gv_List.Columns.Count - 4].Visible = true;      //调整原因
            gv_List.Columns[gv_List.Columns.Count - 5].Visible = true;      //批复数量
        }

        AC_AccountMonth endmonht = new AC_AccountMonthBLL(apply.Model.AccountMonth).Model;
        DateTime reapplyend;
        reapplyend = DateTime.Parse(endmonht.Name + ConfigHelper.GetConfigString("GiftReApplyDate"));
        bt_ReApply.Visible = !(DateTime.Now > reapplyend);
        switch (apply.Model.State)
        {
            case 1:     //编辑状态
                bt_Finish.Visible = false;
                bt_ReApply.Visible = false;
                break;
            case 2:     //已提交状态,审批过程中,可以作申请数量调整
                if (Request.QueryString["Decision"] != "" && Request.QueryString["Decision"] == "Y")
                    gv_List.Columns[gv_List.Columns.Count - 2].Visible = true;      //允许调整

                bt_Finish.Visible = false;
                bt_ReApply.Visible = false;
                break;
            case 3:     //审核已通过
            case 4:     //审核已通过后,终止发放(该功能暂未启用)
                bt_Finish.Visible = false;
                bt_ReApply.Visible = false;
                //gv_List.Columns[gv_List.Columns.Count - 1].Visible = true;      //已发放数量
                break;
            case 8:     //审核不通过
                bt_Finish.Visible = false;
                int forwarddays = ConfigHelper.GetConfigInt("GiftApplyForwardDays");
                if (apply.Model.AccountMonth < AC_AccountMonthBLL.GetMonthByDate(DateTime.Now.AddDays(forwarddays)))
                    bt_ReApply.Visible = false;
                break;
            default:
                break;
        }
        #endregion

        BindGrid();
    }
    private void BindData()
    {
        ORD_OrderCartBLL cart = (ORD_OrderCartBLL)Session["LogisticsOrderApplyDetail"];
        ORD_ApplyPublishBLL publish = new ORD_ApplyPublishBLL(cart.Publish);
        if (publish == null) Response.Redirect("OrderApplyDetail0.aspx");

        ViewState["Publish"] = cart.Publish;
        pl_ApplyPublish.BindData(publish.Model);

        IList<ORD_ApplyPublishDetail> productlists;
        if (cart.Type == 1)
        {
            #region 成品取客户价表
            productlists = new List<ORD_ApplyPublishDetail>();
            IList<PDT_ProductPrice> pricelists = PDT_ProductPriceBLL.GetModelList
                ("GETDATE() BETWEEN BeginDate AND EndDate AND Client=" + cart.Client.ToString());
            if (pricelists.Count == 0)
            {
                MessageBox.ShowAndRedirect(this, "对不起,该客户没有生效的价表,不可申请产品!", "OrderApplyDetail0.aspx");
                return;
            }

            PDT_ProductPriceBLL pricebll = new PDT_ProductPriceBLL(pricelists[0].ID);

            foreach (ORD_ApplyPublishDetail item in publish.Items)
            {
                PDT_ProductBLL _bll = new PDT_ProductBLL(item.Product);

                if (new PDT_BrandBLL(_bll.Model.Brand).Model.IsOpponent == "1")
                {
                    PDT_ProductPrice_Detail priceitem = pricebll.Items.FirstOrDefault(p => p.Product == item.Product);
                    if (priceitem == null) continue;
                    item.Price = priceitem.BuyingPrice;
                }
                else
                {
                    item.Price = _bll.Model.FactoryPrice;
                }

                productlists.Add(item);
            }
            #endregion
        }
        else
        {
            #region 绑定赠品申请预算信息
            BindBudgetInfo(cart.OrganizeCity, cart.AccountMonth, cart.Client, cart.GiftFeeType, cart.Brand, cart.GiftClassify,cart.Receiver);
            tb_GiftBudgetInfo.Visible = true;
            #endregion

            productlists = publish.Items;
        }

        ViewState["PublishDetails"] = productlists;
        gv_List.PageIndex = 0;
        BindGrid();

        lb_CartCount.Text = cart.Items.Count.ToString();
    }
    private bool Save()
    {
        ORD_OrderCartBLL cart = null;
        if (Session["LogisticsOrderApplyDetail"] != null) cart = (ORD_OrderCartBLL)Session["LogisticsOrderApplyDetail"];

        if ((int)ViewState["ID"] == 0)
        {
            if (cart == null || cart.Items.Count == 0)
            {
                MessageBox.Show(this, "对不起,定单申请明细不能为空!");
                return false;
            }

            ORD_OrderApplyBLL bll = new ORD_OrderApplyBLL();
            pn_OrderApply.GetData(bll.Model);

            #region 判断有没有填写经销商
            if (bll.Model.Client == 0)
            {
                MessageBox.Show(this, "对不起,请填写申请定购的经销商!");
                return false;
            }
            #endregion

            #region 初始化定单字段
            bll.Model.OrganizeCity = cart.OrganizeCity;
            bll.Model.PublishID = cart.Publish;
            bll.Model.AccountMonth = cart.AccountMonth;
            bll.Model.SheetCode = ORD_OrderApplyBLL.GenerateSheetCode(bll.Model.OrganizeCity, bll.Model.AccountMonth);   //自动产生备案号
            bll.Model.ApproveFlag = 2;
            bll.Model.State = 1;
            bll.Model.InsertStaff = (int)Session["UserID"];
            bll.Model["AddressID"] = cart.AddressID.ToString();
            bll.Model["Receiver"] = cart.Receiver.ToString();
            if (cart.Publish > 0)
            {
                ORD_ApplyPublish publish = new ORD_ApplyPublishBLL(cart.Publish).Model;
                if (publish != null)
                {
                    bll.Model["ProductBrand"] = publish["ProductBrand"];
                    bll.Model["GiftClassify"] = publish["GiftClassify"];
                }
            }
            #endregion

            ViewState["ID"] = bll.Add();

            #region 新增定单明细明细
            foreach (ORD_OrderCart cartitem in cart.Items)
            {
                if (cartitem.BookQuantity == 0) continue;
                ORD_OrderApplyDetail m = new ORD_OrderApplyDetail();
                m.ApplyID = (int)ViewState["ID"];
                m.Product = cartitem.Product;
                m.Price = cartitem.Price;
                m.BookQuantity = cartitem.BookQuantity;
                m.AdjustQuantity = 0;
                m.DeliveryQuantity = 0;

                bll.AddDetail(m);
            }
            #endregion
        }
        else
        {
            ORD_OrderApplyBLL bll = new ORD_OrderApplyBLL((int)ViewState["ID"]);
            pn_OrderApply.GetData(bll.Model);
            bll.Model.UpdateStaff = (int)Session["UserID"];
            bll.Update();

            #region 修改明细
            if (cart != null)
            {
                //先将现有定单中每个品项与购物中的比较
                //如果购物车中没有该产品,则删除,如有且数量不同,则更新,并从购物车中移除该品项
                foreach (ORD_OrderApplyDetail m in bll.Items)
                {
                    ORD_OrderCart cartitem = cart.Items.FirstOrDefault(p => p.Product == m.Product);
                    if (cartitem == null)
                        bll.DeleteDetail(m.ID);
                    else
                    {
                        if (cartitem.BookQuantity != m.BookQuantity)
                        {
                            m.BookQuantity = cartitem.BookQuantity;
                            bll.UpdateDetail(m);
                        }
                        cart.RemoveProduct(m.Product);
                    }
                }

                //新购物车中新增的品项加入定单明细中
                foreach (ORD_OrderCart cartitem in cart.Items)
                {
                    ORD_OrderApplyDetail m = new ORD_OrderApplyDetail();
                    m.ApplyID = (int)ViewState["ID"];
                    m.Product = cartitem.Product;
                    m.Price = cartitem.Price;
                    m.BookQuantity = cartitem.BookQuantity;
                    m.AdjustQuantity = 0;
                    m.DeliveryQuantity = 0;

                    bll.AddDetail(m);
                }
            }
            #endregion
        }

        return true;
    }
示例#34
0
    private void BindData()
    {
        ORD_ApplyPublish m = new ORD_ApplyPublishBLL((int)ViewState["ID"]).Model;

        ViewState["Type"] = m.Type;
        pl_ApplyPublish.BindData(m);

        if ((int)ViewState["Type"] == 1)
        {
            gv_List.Columns[5].Visible = false;                         //成品请购单,单价依据各客户价表结算
            gv_List.Columns[6].Visible = false;                         //成品请购单,单价依据各客户价表结算
            gv_List.Columns[gv_List.Columns.Count - 3].Visible = false; //赠送坎级不显示

            DropDownList ddl_FeeType = (DropDownList)pl_ApplyPublish.FindControl("ORD_ApplyPublish_FeeType");
            if (ddl_FeeType != null)
            {
                ddl_FeeType.Enabled = false;
            }

            DropDownList ddl_ProductBrand = (DropDownList)pl_ApplyPublish.FindControl("ORD_ApplyPublish_ProductBrand");
            if (ddl_ProductBrand != null)
            {
                ddl_ProductBrand.Enabled = false;
            }

            DropDownList ddl_GiftClassify = (DropDownList)pl_ApplyPublish.FindControl("ORD_ApplyPublish_GiftClassify");
            if (ddl_GiftClassify != null)
            {
                ddl_GiftClassify.Enabled = false;
            }
        }

        if (m.State != 1)
        {
            pl_ApplyPublish.SetControlsEnable(false);
            btn_Save.Visible    = false;
            btn_Delete.Visible  = false;
            tbl_publish.Visible = false;
            CanEnabled          = false;
        }
        switch (m.State)
        {
        case 1:         //未发布
            bt_Close.Visible         = false;
            bt_Cancel.Visible        = false;
            bt_Modify.Visible        = false;
            bt_ViewApplyList.Visible = false;
            gv_List.Columns[gv_List.Columns.Count - 1].Visible = false;
            break;

        case 2:         //已发布
            bt_Publish.Visible = false;
            break;

        case 3:         //关闭
        case 4:         //撤销
            bt_Publish.Visible = false;
            bt_Close.Visible   = false;
            bt_Cancel.Visible  = false;
            bt_Modify.Visible  = false;
            break;
        }
    }