Example #1
0
    private void BindData()
    {
        int id = (int)ViewState["ID"];
        ORD_OrderDelivery m = new ORD_OrderDeliveryBLL(id).Model;

        if (m == null)
        {
            Response.Redirect("OrderDeliveryList.aspx");
        }

        pn_OrderDelivery.BindData(m);

        #region 根据状态控制页面显示
        if (m.State == 2 || m.State == 3)
        {
            //在途状态、部分签收
            bNoSignIn = true;
        }
        else
        {
            bt_Save.Visible = false;
        }
        #endregion
        ddl_BalanceLostCost_SelectedIndexChanged(null, null);
        #region 创建空的列表
        ListTable <ORD_OrderDeliveryDetail> _details = new ListTable <ORD_OrderDeliveryDetail>
                                                           (new ORD_OrderDeliveryBLL((int)ViewState["ID"]).Items, "Product");
        ViewState["Details"] = _details;
        #endregion

        BindGrid();
    }
    private void BindData()
    {
        int id = (int)ViewState["ID"];
        ORD_OrderDelivery m = new ORD_OrderDeliveryBLL(id).Model;

        if (m == null)
        {
            Response.Redirect("OrderDeliveryList.aspx");
        }

        pn_OrderDelivery.BindData(m);

        #region 根据状态控制页面显示
        if (m.ApproveFlag == 2)
        {
            //未审核
            bNoDelivery = true;
        }
        else
        {
            bt_Save.Visible   = false;
            bt_Delete.Visible = false;
            pn_OrderDelivery.SetPanelEnable("Panel_LGS_OrderDeliveryDetail_01", false);
        }
        #endregion

        #region 创建空的列表
        ListTable <ORD_OrderDeliveryDetail> _details = new ListTable <ORD_OrderDeliveryDetail>
                                                           (new ORD_OrderDeliveryBLL((int)ViewState["ID"]).Items, "Product");
        ViewState["Details"] = _details;
        #endregion

        BindGrid();
    }
Example #3
0
    protected void bt_Save_Click(object sender, EventArgs e)
    {
        if ((int)ViewState["ID"] != 0)
        {
            ListTable <ORD_OrderDeliveryDetail> _details = ViewState["Details"] as ListTable <ORD_OrderDeliveryDetail>;

            ORD_OrderDeliveryBLL bll = new ORD_OrderDeliveryBLL((int)ViewState["ID"]);
            pn_OrderDelivery.GetData(bll.Model);
            bll.Model["SignInStaff"] = Session["UserID"].ToString();
            if (bll.Model["SignInTime"] == "" || bll.Model["SignInTime"] == "1900-01-01")
            {
                bll.Model["SignInTime"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm");
            }
            bll.Model.State = 3;   //设为部分签收
            bll.Update();

            #region 修改明细
            bll.Items = _details.GetListItem(ItemState.Modified);
            bll.UpdateDetail();
            #endregion
        }
        if (sender != null)
        {
            MessageBox.ShowAndRedirect(this, "保存成功", "OrderDeliveryDetail.aspx?ID=" + ViewState["ID"].ToString());
        }
    }
Example #4
0
    protected void bt_ConfirmSignIn_Click(object sender, EventArgs e)
    {
        if ((int)ViewState["ID"] != 0)
        {
            ListTable <ORD_OrderDeliveryDetail> _details = ViewState["Details"] as ListTable <ORD_OrderDeliveryDetail>;
            if (_details.GetListItem().Where(p => p.DeliveryQuantity != p.SignInQuantity + p.BadQuantity + p.LostQuantity).Count() > 0)
            {
                MessageBox.Show(this, "对不起,该笔发货单仍有部分品项为在途状态,不能确认签收!");
                return;
            }

            ORD_OrderDeliveryBLL bll = new ORD_OrderDeliveryBLL((int)ViewState["ID"]);
            pn_OrderDelivery.GetData(bll.Model);

            if (bll.Model["BalanceLostCost"] == "0" &&
                _details.GetListItem().Where(p => p.LostQuantity + p.BadQuantity > 0).Count() > 0)
            {
                MessageBox.Show(this, "对不起,该笔发货单有部分货品丢失或破损,请确认是否物流司机已赔款!");
                return;
            }
            bll.Update();

            bll.SignIn((int)Session["UserID"]);

            MessageBox.ShowAndRedirect(this, "完成签收成功!", "OrderDeliveryList.aspx");
        }
    }
    protected void bt_ConfirmSignIn_Click(object sender, EventArgs e)
    {
        if ((int)ViewState["ID"] != 0)
        {
            ListTable<ORD_OrderDeliveryDetail> _details = ViewState["Details"] as ListTable<ORD_OrderDeliveryDetail>;
            if (_details.GetListItem().Where(p => p.DeliveryQuantity != p.SignInQuantity + p.BadQuantity + p.LostQuantity).Count() > 0)
            {
                MessageBox.Show(this, "对不起,该笔发货单仍有部分品项为在途状态,不能确认签收!");
                return;
            }

            ORD_OrderDeliveryBLL bll = new ORD_OrderDeliveryBLL((int)ViewState["ID"]);
            pn_OrderDelivery.GetData(bll.Model);

            if (bll.Model["BalanceLostCost"] == "0" &&
                _details.GetListItem().Where(p => p.LostQuantity + p.BadQuantity > 0).Count() > 0)
            {
                MessageBox.Show(this, "对不起,该笔发货单有部分货品丢失或破损,请确认是否物流司机已赔款!");
                return;
            }
            bll.Update();

            bll.SignIn((int)Session["UserID"]);

            MessageBox.ShowAndRedirect(this, "完成签收成功!", "OrderDeliveryList.aspx");
        }
    }
 private void BindData()
 {
     string strID = ViewState["OrderNo"].ToString();
     ORD_OrderDeliveryBLL ordBll = new ORD_OrderDeliveryBLL();
     DataTable dt = ordBll.GetOrderAlibrayDetailList(strID);
     gv_OrderList.DataSource = dt;
     gv_OrderList.DataBind();
 }
    private void BindData()
    {
        string strID = ViewState["OrderNo"].ToString();
        ORD_OrderDeliveryBLL ordBll = new ORD_OrderDeliveryBLL();
        DataTable            dt     = ordBll.GetOrderAlibrayDetailList(strID);

        gv_OrderList.DataSource = dt;
        gv_OrderList.DataBind();
    }
Example #8
0
    protected void bt_Approve_Click(object sender, EventArgs e)
    {
        if ((int)ViewState["ID"] != 0)
        {
            ORD_OrderDeliveryBLL bll = new ORD_OrderDeliveryBLL((int)ViewState["ID"]);
            bll.Approve((int)Session["UserID"]);

            MessageBox.ShowAndRedirect(this, "审核成功", "OrderDeliveryList.aspx");
        }
    }
    protected void bt_Approve_Click(object sender, EventArgs e)
    {
        if ((int)ViewState["ID"] != 0)
        {
            ORD_OrderDeliveryBLL bll = new ORD_OrderDeliveryBLL((int)ViewState["ID"]);
            bll.Approve((int)Session["UserID"]);

            MessageBox.ShowAndRedirect(this, "审核成功", "OrderDeliveryList.aspx");
        }
    }
    protected void bt_Save_Click(object sender, EventArgs e)
    {
        ListTable <ORD_OrderDeliveryDetail> _details = ViewState["Details"] as ListTable <ORD_OrderDeliveryDetail>;

        if (_details.GetListItem().Count == 0)
        {
            MessageBox.Show(this, "在保存之前,发货明细不能为空!");
            return;
        }
        ORD_OrderDeliveryBLL bll;

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

        pn_OrderDelivery.GetData(bll.Model);

        if ((int)ViewState["ID"] == 0)
        {
            bll.Model.AccountMonth = AC_AccountMonthBLL.GetCurrentMonth();
            bll.Model.InsertStaff  = (int)Session["UserID"];
            bll.Model.Client       = (int)ViewState["Client"];
            bll.Model.OrganizeCity = (int)ViewState["OrganizeCity"];
            bll.Model.State        = 1;
            bll.Model.ApproveFlag  = 2;
            bll.Model.SheetCode    = ORD_OrderDeliveryBLL.GenerateSheetCode(bll.Model.OrganizeCity, bll.Model.AccountMonth);
            bll.Items = _details.GetListItem();

            ViewState["ID"] = bll.Add();
        }
        else
        {
            bll.Model.UpdateStaff = (int)Session["UserID"];
            bll.Update();

            #region 修改明细
            foreach (ORD_OrderDeliveryDetail _deleted in _details.GetListItem(ItemState.Deleted))
            {
                bll.DeleteDetail(_deleted.ID);
            }

            bll.Items = _details.GetListItem(ItemState.Modified);
            bll.UpdateDetail();
            #endregion
        }
        if (sender != null)
        {
            MessageBox.ShowAndRedirect(this, "保存成功", "OrderDeliveryDetail_Edit.aspx?ID=" + ViewState["ID"].ToString());
        }
    }
    protected void bt_Delete_Click(object sender, EventArgs e)
    {
        if ((int)ViewState["ID"] != 0)
        {
            bt_Save_Click(null, null);

            ORD_OrderDeliveryBLL bll = new ORD_OrderDeliveryBLL((int)ViewState["ID"]);
            bll.Delete();

            MessageBox.ShowAndRedirect(this, "删除发货单成功", "OrderDeliveryList.aspx");
        }
    }
    protected bool bNoDelivery = false; //未发货,界面发货数量字段可编辑

    #endregion Fields

    #region Methods

    protected void bt_Delete_Click(object sender, EventArgs e)
    {
        if ((int)ViewState["ID"] != 0)
        {
            bt_Save_Click(null, null);

            ORD_OrderDeliveryBLL bll = new ORD_OrderDeliveryBLL((int)ViewState["ID"]);
            bll.Delete();

            MessageBox.ShowAndRedirect(this, "删除发货单成功", "OrderDeliveryList.aspx");
        }
    }
Example #13
0
    private void BindData()
    {
        int id = (int)ViewState["ID"];
        ORD_OrderDelivery m = new ORD_OrderDeliveryBLL(id).Model;

        if (m == null)
        {
            Response.Redirect("OrderDeliveryList.aspx");
        }

        pn_OrderDelivery.BindData(m);

        #region 根据状态控制页面显示
        if (m.ApproveFlag == 2)
        {
            bt_ConfirmDelivery.Visible = false;
            gv_OrderList.Columns[gv_OrderList.Columns.Count - 1].Visible = false;
            gv_OrderList.Columns[gv_OrderList.Columns.Count - 2].Visible = false;
            gv_OrderList.Columns[gv_OrderList.Columns.Count - 3].Visible = false;
            gv_OrderList.Columns[gv_OrderList.Columns.Count - 4].Visible = false;
        }
        else
        {
            bt_Edit.Visible    = false;
            bt_Approve.Visible = false;
        }
        if (m.State != 1)
        {
            bt_ConfirmDelivery.Visible = false;
        }
        if (m.State != 2 && m.State != 3)
        {
            bt_SignIn.Visible = false;
        }
        if (m.State != 3 && m.State != 4)
        {
            pn_OrderDelivery.SetPanelVisible("Panel_LGS_OrderDeliveryDetail01_02", false);
        }
        if (m.State != 3)
        {
            pn_OrderDelivery.SetPanelEnable("Panel_LGS_OrderDeliveryDetail01_02", false);
            bt_ConfirmSignIn.Visible = false;
        }
        #endregion

        #region 创建空的列表
        ListTable <ORD_OrderDeliveryDetail> _details = new ListTable <ORD_OrderDeliveryDetail>
                                                           (new ORD_OrderDeliveryBLL((int)ViewState["ID"]).Items, "Product");
        ViewState["Details"] = _details;
        #endregion

        BindGrid();
    }
    protected void bt_Save_Click(object sender, EventArgs e)
    {
        ListTable<ORD_OrderDeliveryDetail> _details = ViewState["Details"] as ListTable<ORD_OrderDeliveryDetail>;

        if (_details.GetListItem().Count == 0)
        {
            MessageBox.Show(this, "在保存之前,发货明细不能为空!");
            return;
        }
        ORD_OrderDeliveryBLL bll;

        if ((int)ViewState["ID"] == 0)
            bll = new ORD_OrderDeliveryBLL();
        else
            bll = new ORD_OrderDeliveryBLL((int)ViewState["ID"]);

        pn_OrderDelivery.GetData(bll.Model);

        if ((int)ViewState["ID"] == 0)
        {
            bll.Model.AccountMonth = AC_AccountMonthBLL.GetCurrentMonth();
            bll.Model.InsertStaff = (int)Session["UserID"];
            bll.Model.Client = (int)ViewState["Client"];
            bll.Model.OrganizeCity = (int)ViewState["OrganizeCity"];
            bll.Model.State = 1;
            bll.Model.ApproveFlag = 2;
            bll.Model.SheetCode = ORD_OrderDeliveryBLL.GenerateSheetCode(bll.Model.OrganizeCity, bll.Model.AccountMonth);
            bll.Items = _details.GetListItem();

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

        }
        else
        {
            bll.Model.UpdateStaff = (int)Session["UserID"];
            bll.Update();

            #region 修改明细
            foreach (ORD_OrderDeliveryDetail _deleted in _details.GetListItem(ItemState.Deleted))
            {
                bll.DeleteDetail(_deleted.ID);
            }

            bll.Items = _details.GetListItem(ItemState.Modified);
            bll.UpdateDetail();
            #endregion

        }
        if (sender != null)
            MessageBox.ShowAndRedirect(this, "保存成功", "OrderDeliveryDetail_Edit.aspx?ID=" + ViewState["ID"].ToString());
    }
Example #15
0
    protected void tr_OrganizeCity_Selected(object sender, MCSControls.MCSWebControls.SelectedEventArgs e)
    {
        Label lb_OrganizeCity = (Label)pn_OrderDelivery.FindControl("ORD_OrderDelivery_OrganizeCity");

        lb_OrganizeCity.Text = tr_OrganizeCity.SelectText;

        Label lb_SheetCode = (Label)pn_OrderDelivery.FindControl("ORD_OrderDelivery_SheetCode");

        lb_SheetCode.Text = ORD_OrderDeliveryBLL.GenerateSheetCode(int.Parse(tr_OrganizeCity.SelectValue), AC_AccountMonthBLL.GetCurrentMonth());

        select_Client.PageUrl = "~/SubModule/CM/PopSearch/Search_SelectClient.aspx?ClientType=2&OrganizeCity=" + e.CurSelectIndex.ToString();

        BindOrderApplyCanDelivery();
    }
    protected void bt_ConfirmDelivery_Click(object sender, EventArgs e)
    {
        if ((int)ViewState["ID"] != 0)
        {
            ORD_OrderDeliveryBLL bll = new ORD_OrderDeliveryBLL((int)ViewState["ID"]);

            if (bll.Model["DeliveryTime"] != "1900-01-01") bll.Model["DeliveryTime"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            bll.Model["DeliveryStaff"] = Session["UserID"].ToString();
            bll.Update();

            bll.Delivery((int)Session["UserID"]);

            MessageBox.ShowAndRedirect(this, "发货单发放成功,已为在途状态,待签收!", "OrderDeliveryList.aspx");
        }
    }
    private void BindTableData()
    {
        string strID = ViewState["CarrySheetCode"].ToString();
        DataTable dt = InitOrderDeliveryList(strID);
        string strSqldel = " DELETE MCS_Logistics.dbo.ORD_OrderStorage";
        SQLDatabase.RunSQL(strSqldel);
        for (int j = 0; j < dt.Rows.Count; j++)
        {
            string strSql = " INSERT INTO MCS_Logistics.dbo.ORD_OrderStorage VALUES ('" + dt.Rows[j]["AID"].ToString() + "','" + dt.Rows[j]["BillNo"].ToString() + "','" + dt.Rows[j]["ProdID"].ToString() + "','" + dt.Rows[j]["milkname"].ToString() + "','" + dt.Rows[j]["Spec"].ToString() + "','" + dt.Rows[j]["BarCode"].ToString() + "','" + dt.Rows[j]["Unit"].ToString() + "','" + DateTime.Parse(dt.Rows[j]["Scantime"].ToString()) + "','" + dt.Rows[j]["Source"].ToString() + "')";
            SQLDatabase.RunSQL(strSql);
        }

        ORD_OrderDeliveryBLL ordBll = new ORD_OrderDeliveryBLL();
        DataTable dtStorage = ordBll.GetOrderStorageDetailList(strID);

        gv_OrderList.DataSource = dtStorage;
        gv_OrderList.DataBind();
    }
Example #18
0
    protected void bt_ConfirmDelivery_Click(object sender, EventArgs e)
    {
        if ((int)ViewState["ID"] != 0)
        {
            ORD_OrderDeliveryBLL bll = new ORD_OrderDeliveryBLL((int)ViewState["ID"]);

            if (bll.Model["DeliveryTime"] != "1900-01-01")
            {
                bll.Model["DeliveryTime"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            }
            bll.Model["DeliveryStaff"] = Session["UserID"].ToString();
            bll.Update();

            bll.Delivery((int)Session["UserID"]);

            MessageBox.ShowAndRedirect(this, "发货单发放成功,已为在途状态,待签收!", "OrderDeliveryList.aspx");
        }
    }
Example #19
0
    private void BindTableData()
    {
        string    strID     = ViewState["CarrySheetCode"].ToString();
        DataTable dt        = InitOrderDeliveryList(strID);
        string    strSqldel = " DELETE MCS_Logistics.dbo.ORD_OrderStorage";

        SQLDatabase.RunSQL(strSqldel);
        for (int j = 0; j < dt.Rows.Count; j++)
        {
            string strSql = " INSERT INTO MCS_Logistics.dbo.ORD_OrderStorage VALUES ('" + dt.Rows[j]["AID"].ToString() + "','" + dt.Rows[j]["BillNo"].ToString() + "','" + dt.Rows[j]["ProdID"].ToString() + "','" + dt.Rows[j]["milkname"].ToString() + "','" + dt.Rows[j]["Spec"].ToString() + "','" + dt.Rows[j]["BarCode"].ToString() + "','" + dt.Rows[j]["Unit"].ToString() + "','" + DateTime.Parse(dt.Rows[j]["Scantime"].ToString()) + "','" + dt.Rows[j]["Source"].ToString() + "')";
            SQLDatabase.RunSQL(strSql);
        }

        ORD_OrderDeliveryBLL ordBll    = new ORD_OrderDeliveryBLL();
        DataTable            dtStorage = ordBll.GetOrderStorageDetailList(strID);

        gv_OrderList.DataSource = dtStorage;
        gv_OrderList.DataBind();
    }
    protected void bt_Approve_Click(object sender, EventArgs e)
    {
        if ((int)ViewState["ID"] != 0)
        {
            ORD_OrderDeliveryBLL bll = new ORD_OrderDeliveryBLL((int)ViewState["ID"]);
            bll.Approve((int)Session["UserID"]);

            #region 审核同时默认为发放
            bll = new ORD_OrderDeliveryBLL((int)ViewState["ID"]);
            if (bll.Model["DeliveryTime"] != "1900-01-01") bll.Model["DeliveryTime"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            bll.Model["DeliveryStaff"] = Session["UserID"].ToString();
            bll.Update();

            bll.Delivery((int)Session["UserID"]);
            #endregion

            MessageBox.ShowAndRedirect(this, "发货单审核成功!", "OrderDeliveryList.aspx");
        }
    }
    private void BindGrid()
    {
        if (select_Client.SelectValue != "" && this.txtsDate.Text != "" && this.txteDate.Text != "")
        {
            ORD_OrderDeliveryBLL ordBll = new ORD_OrderDeliveryBLL();
            DataTable dt =ordBll.InitOrderDeliveryList(select_Client.SelectValue,txtsDate.Text, txteDate.Text);

            string strSqldel = " DELETE MCS_Logistics.dbo.ORD_OrderAlibrary";
            SQLDatabase.RunSQL(strSqldel);
            for (int j = 0; j < dt.Rows.Count; j++)
            {
                string strSql = " INSERT INTO MCS_Logistics.dbo.ORD_OrderAlibrary VALUES (" + int.Parse(dt.Rows[j]["OrderId"].ToString()) + ",'" + dt.Rows[j]["OrderNo"].ToString() + "','" + dt.Rows[j]["JxsId"].ToString() + "','" + dt.Rows[j]["经销商名称"].ToString() + "','" + dt.Rows[j]["StoreId"].ToString() + "','" + dt.Rows[j]["下级客户全称"].ToString() + "','" + dt.Rows[j]["barcode"].ToString() + "','" + dt.Rows[j]["Milkid"].ToString() + "','" + dt.Rows[j]["milkname"].ToString() + "','" + dt.Rows[j]["spec"].ToString() + "','" + dt.Rows[j]["Unit"].ToString() + "','" + DateTime.Parse(dt.Rows[j]["Adate"].ToString()) + "')";
                SQLDatabase.RunSQL(strSql);
            }

            DataTable dtAlibrary = ordBll.InitOrderAlibrayList();

            gv_OrderList.DataSource = dtAlibrary;
            gv_OrderList.DataBind();
        }
    }
Example #22
0
    private void BindGrid()
    {
        if (select_Client.SelectValue != "" && this.txtsDate.Text != "" && this.txteDate.Text != "")
        {
            ORD_OrderDeliveryBLL ordBll = new ORD_OrderDeliveryBLL();
            DataTable            dt     = ordBll.InitOrderDeliveryList(select_Client.SelectValue, txtsDate.Text, txteDate.Text);

            string strSqldel = " DELETE MCS_Logistics.dbo.ORD_OrderAlibrary";
            SQLDatabase.RunSQL(strSqldel);
            for (int j = 0; j < dt.Rows.Count; j++)
            {
                string strSql = " INSERT INTO MCS_Logistics.dbo.ORD_OrderAlibrary VALUES (" + int.Parse(dt.Rows[j]["OrderId"].ToString()) + ",'" + dt.Rows[j]["OrderNo"].ToString() + "','" + dt.Rows[j]["JxsId"].ToString() + "','" + dt.Rows[j]["经销商名称"].ToString() + "','" + dt.Rows[j]["StoreId"].ToString() + "','" + dt.Rows[j]["下级客户全称"].ToString() + "','" + dt.Rows[j]["barcode"].ToString() + "','" + dt.Rows[j]["Milkid"].ToString() + "','" + dt.Rows[j]["milkname"].ToString() + "','" + dt.Rows[j]["spec"].ToString() + "','" + dt.Rows[j]["Unit"].ToString() + "','" + DateTime.Parse(dt.Rows[j]["Adate"].ToString()) + "')";
                SQLDatabase.RunSQL(strSql);
            }

            DataTable dtAlibrary = ordBll.InitOrderAlibrayList();

            gv_OrderList.DataSource = dtAlibrary;
            gv_OrderList.DataBind();
        }
    }
Example #23
0
    protected void bt_ConfirmDelivery_Click(object sender, EventArgs e)
    {
        if ((int)ViewState["ID"] != 0)
        {
            #region 再次验证发货数量是否超允许发货数量,以防止用户在多个页面分别填写发货单,并保存后再分批发放
            for (int i = 0; i < gv_OrderList.Rows.Count; i++)
            {
                if (!VerifyDeliveryQuantity(i))
                {
                    return;
                }
            }
            #endregion

            ORD_OrderDeliveryBLL bll = new ORD_OrderDeliveryBLL((int)ViewState["ID"]);
            pn_OrderDelivery.GetData(bll.Model);

            if (bll.Model.Store == 0)
            {
                MessageBox.Show(this, "对不起,必须选择发货仓库!");
                return;
            }

            bll.Model["DeliveryTime"]  = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            bll.Model["DeliveryStaff"] = Session["UserID"].ToString();

            bll.Update();

            #region 保存实发数量
            ListTable <ORD_OrderDeliveryDetail> _details = ViewState["Details"] as ListTable <ORD_OrderDeliveryDetail>;
            bll.Items = _details.GetListItem(ItemState.Modified);
            bll.UpdateDetail();
            #endregion


            bll.Delivery((int)Session["UserID"]);

            MessageBox.ShowAndRedirect(this, "发货单发放成功,已为在途状态,待签收!", "OrderDeliveryList.aspx");
        }
    }
    protected void bt_Save_Click(object sender, EventArgs e)
    {
        if ((int)ViewState["ID"] != 0)
        {
            ListTable<ORD_OrderDeliveryDetail> _details = ViewState["Details"] as ListTable<ORD_OrderDeliveryDetail>;

            ORD_OrderDeliveryBLL bll = new ORD_OrderDeliveryBLL((int)ViewState["ID"]);
            pn_OrderDelivery.GetData(bll.Model);
            bll.Model["SignInStaff"] = Session["UserID"].ToString();
            if (bll.Model["SignInTime"] == "" || bll.Model["SignInTime"] == "1900-01-01")
                bll.Model["SignInTime"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm");
            bll.Model.State = 3;   //设为部分签收
            bll.Update();

            #region 修改明细
            bll.Items = _details.GetListItem(ItemState.Modified);
            bll.UpdateDetail();
            #endregion

        }
        if (sender != null)
            MessageBox.ShowAndRedirect(this, "保存成功", "OrderDeliveryDetail.aspx?ID=" + ViewState["ID"].ToString());
    }
Example #25
0
    protected void bt_Approve_Click(object sender, EventArgs e)
    {
        if ((int)ViewState["ID"] != 0)
        {
            ORD_OrderDeliveryBLL bll = new ORD_OrderDeliveryBLL((int)ViewState["ID"]);
            bll.Approve((int)Session["UserID"]);

            #region 审核同时默认为发放
            bll = new ORD_OrderDeliveryBLL((int)ViewState["ID"]);
            if (bll.Model["DeliveryTime"] != "1900-01-01")
            {
                bll.Model["DeliveryTime"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            }
            bll.Model["DeliveryStaff"] = Session["UserID"].ToString();
            bll.Update();

            bll.Delivery((int)Session["UserID"]);
            #endregion


            MessageBox.ShowAndRedirect(this, "发货单审核成功!", "OrderDeliveryList.aspx");
        }
    }
    protected void bt_Save_Click(object sender, EventArgs e)
    {
        #region 有效性校验
        if (tr_OrganizeCity.SelectValue == "0")
        {
            MessageBox.Show(this, "必须选择管理片区才能保存!");
            return;
        }
        #endregion

        ListTable<ORD_OrderDeliveryDetail> _details = ViewState["Details"] as ListTable<ORD_OrderDeliveryDetail>;

        if (_details.GetListItem().Count == 0)
        {
            MessageBox.Show(this, "在保存之前,发货明细不能为空!");
            return;
        }
        ORD_OrderDeliveryBLL bll;

        if ((int)ViewState["ID"] == 0)
            bll = new ORD_OrderDeliveryBLL();
        else
            bll = new ORD_OrderDeliveryBLL((int)ViewState["ID"]);

        if ((int)ViewState["ID"] == 0)
        {
            bll.Model.AccountMonth = AC_AccountMonthBLL.GetCurrentMonth();
            bll.Model.InsertStaff = (int)Session["UserID"];
            bll.Model.OrganizeCity = int.Parse(tr_OrganizeCity.SelectValue);
            bll.Model.State = 1;
            bll.Model.ApproveFlag = 2;
            bll.Model.SheetCode = ORD_OrderDeliveryBLL.GenerateSheetCode(bll.Model.OrganizeCity, bll.Model.AccountMonth);
            bll.Items = _details.GetListItem();

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

        }
        else
        {
            bll.Model.UpdateStaff = (int)Session["UserID"];

            bll.Update();

            #region 修改明细

            #region 增加发放明细时,再次判断该项费用是否超过发放数量
            bll.Items = new List<ORD_OrderDeliveryDetail>();
            foreach (ORD_OrderDeliveryDetail item in _details.GetListItem(ItemState.Added))
            {
                ORD_OrderApplyDetail apply = new ORD_OrderApplyBLL().GetDetailModel(item.ApplyDetailID);
                if (apply.BookQuantity + apply.AdjustQuantity - apply.DeliveryQuantity >= item.DeliveryQuantity)
                {
                    bll.Items.Add(item);
                }
            }
            bll.AddDetail();
            #endregion

            foreach (ORD_OrderDeliveryDetail _deleted in _details.GetListItem(ItemState.Deleted))
            {
                bll.DeleteDetail(_deleted.ID);
            }

            bll.Items = _details.GetListItem(ItemState.Modified);
            bll.UpdateDetail();

            #endregion
        }
        if (sender != null)
            MessageBox.ShowAndRedirect(this, "保存成功", "OrderDeliveryDetail.aspx?ID=" + ViewState["ID"].ToString());
    }
    private void BindData()
    {
        int id = (int)ViewState["ID"];
        ORD_OrderDelivery m = new ORD_OrderDeliveryBLL(id).Model;

        if (m == null) Response.Redirect("OrderDeliveryList.aspx");

        pn_OrderDelivery.BindData(m);

        #region 根据状态控制页面显示
        if (m.State == 2 || m.State == 3)
        {
            //在途状态、部分签收
            bNoSignIn = true;
        }
        else
        {
            bt_Save.Visible = false;
        }
        #endregion
        ddl_BalanceLostCost_SelectedIndexChanged(null, null);
        #region 创建空的列表
        ListTable<ORD_OrderDeliveryDetail> _details = new ListTable<ORD_OrderDeliveryDetail>
            (new ORD_OrderDeliveryBLL((int)ViewState["ID"]).Items, "Product");
        ViewState["Details"] = _details;
        #endregion

        BindGrid();
    }
    private void BindData()
    {
        int id = (int)ViewState["ID"];
        ORD_OrderDelivery m = new ORD_OrderDeliveryBLL(id).Model;

        if (m == null) Response.Redirect("OrderDeliveryList.aspx");

        pn_OrderDelivery.BindData(m);

        #region 根据状态控制页面显示
        if (m.ApproveFlag == 2)
        {
            //未审核
            bNoDelivery = true;
        }
        else
        {
            bt_Save.Visible = false;
            bt_Delete.Visible = false;
            pn_OrderDelivery.SetPanelEnable("Panel_LGS_OrderDeliveryDetail_01", false);
        }
        #endregion

        #region 创建空的列表
        ListTable<ORD_OrderDeliveryDetail> _details = new ListTable<ORD_OrderDeliveryDetail>
            (new ORD_OrderDeliveryBLL((int)ViewState["ID"]).Items, "Product");
        ViewState["Details"] = _details;
        #endregion

        BindGrid();
    }
        /// <summary>
        /// 同步经销商进货单
        /// </summary>
        /// <param name="begindate"></param>
        /// <param name="enddate"></param>
        /// <param name="clientcode"></param>
        private void SyncSellOut(DateTime begindate, DateTime enddate, string clientcode)
        {
            try
            {
                int success = 0;

                //从进销存数据库中读取出货数据
                DataTable dtShipHeader = null;

                if (string.IsNullOrEmpty(clientcode))
                {
                    dtShipHeader = ERPIF.GetShipHeader(begindate, enddate);
                }
                else
                {
                    SendMessage(0, "经销商代码:" + clientcode);
                    dtShipHeader = ERPIF.GetShipHeader(begindate, enddate, clientcode);
                }
                SendMessage(0, "本次共获取到" + dtShipHeader.Rows.Count.ToString() + "条发货单待同步!" + _sClientCode);

                for (int i = 0; i < dtShipHeader.Rows.Count; i++)
                {
                    DataRow dr = dtShipHeader.Rows[i];

                    if (_bCancelSync)
                    {
                        SendMessage(0, "同步进行中时,被用户取消!");
                        break;
                    }
                    #region 逐条同步发货单
                    try
                    {
                        string SheetCode = dr["DELIVERY_ID"].ToString().Trim();
                        string ClientCode = dr["CUST_NUMBER"].ToString().Trim();
                        DateTime SalesDate = DateTime.Parse(dr["CARRY_SDATE"].ToString().Trim());
                        string DJType = dr["ORDER_TYPE"].ToString().Trim();
                        decimal discount = 0;
                        decimal.TryParse(dr["DISCOUNT"].ToString().Trim(), out discount);

                        if (DJType == "R") continue;

                        if (ORD_OrderDeliveryBLL.GetModelList(" SheetCode = '" + SheetCode + "'").Count > 0)
                        {
                            continue;
                        }

                        #region 判断客户号有效否
                        IList<CM_Client> clients = CM_ClientBLL.GetModelList(" Code= '" + ClientCode.ToString() + "' AND ActiveFlag=1 AND ApproveFlag=1");
                        if (clients.Count == 0)
                        {
                            SendMessage(-11, "经销商编号为" + ClientCode.ToString() + "的匹配错误!");
                            continue;
                        }
                        CM_Client client = clients[0];
                        if (client["DIClassify"] == "3")
                        {
                            //经销商子户头
                            client = new CM_ClientBLL(client.Supplier).Model;
                            if (client == null)
                            {
                                SendMessage(-12, "经销商编号为" + ClientCode.ToString() + "对应的经销商为子户头,但未关联正确的主户头!");
                                continue;
                            }
                        }

                        if (client["DIClassify"] != "1")
                        {
                            SendMessage(-13, "经销商编号为" + ClientCode.ToString() + "对应的经销商不是主户头!");
                            continue;
                        }
                        #endregion

                        #region 生成销量单头
                        ORD_OrderDeliveryBLL bll = new ORD_OrderDeliveryBLL();
                        bll.Model.SheetCode = SheetCode;
                        bll.Model.AccountMonth = AC_AccountMonthBLL.GetMonthByDate(SalesDate);
                        bll.Model.OrganizeCity = client.OrganizeCity;
                        bll.Model.State = 1;        //未发货
                        bll.Model.Client = client.ID;
                        bll.Model.Store = client.Supplier;
                        if (dr["CARRY_EDATE"].ToString() != "")
                            bll.Model.PreArrivalDate = DateTime.Parse(dr["CARRY_EDATE"].ToString().Trim());
                        else
                            bll.Model.PreArrivalDate = SalesDate.AddDays(7);      //默认7天后到货
                        bll.Model.ApproveFlag = 1;
                        bll.Model.InsertStaff = 1;
                        bll.Model["DeliveryTime"] = SalesDate.ToString("yyyy-MM-dd HH:mm");
                        bll.Model["TruckNo"] = dr["CARRY_CAR"].ToString().Trim();
                        bll.Model["DeliveryStaff"] = "1";
                        bll.Model["DeliveryRemark"] = "ERP发货单提取";
                        bll.Model["Discount"] = discount.ToString("0.###");
                        bll.Model["CarrySheetCode"] = dr["REQUEST_NUMBER"].ToString().Trim();
                        #endregion

                        //获取进销存明细
                        DataTable dt_detail = ERPIF.GetShipDetail(SheetCode);

                        #region 生成销量明细
                        foreach (DataRow dr_detail in dt_detail.Rows)
                        {
                            string productcode = dr_detail["ITEM_NO"].ToString();
                            decimal price = decimal.Parse(dr_detail["PRICE"].ToString());
                            int quantity = (int)decimal.Parse(dr_detail["SHIP_QTY"].ToString());
                            string packaging = dr_detail["UOM"].ToString();

                            if (quantity == 0) continue;

                            #region 验证产品信息
                            PDT_Product product = null;
                            if (price == 0)
                            {
                                #region 价格为0,表示为赠品,取赠品目录中的物料
                                IList<PDT_Product> _products = PDT_ProductBLL.GetModelList("Code='" + productcode + "' AND Brand IN (SELECT ID FROM MCS_Pub.dbo.PDT_Brand WHERE IsOpponent=9)");
                                if (_products.Count > 0)
                                {
                                    product = _products[0];
                                }
                                else
                                {
                                    _products = PDT_ProductBLL.GetModelList("Code='" + productcode + "' AND Brand IN (SELECT ID FROM MCS_Pub.dbo.PDT_Brand WHERE IsOpponent <> 9)");
                                    if (_products.Count == 0)
                                    {
                                        SendMessage(-21, string.Format("发货单号为{0}内,产品编号{1}未在产品目录库中未找到!", SheetCode, productcode));
                                        continue;
                                    }
                                    else
                                    {
                                        //在成品目录里找到,但未在赠品目录中,自动在赠品目录中增加一条本品赠品目录
                                        PDT_ProductBLL productbll = new PDT_ProductBLL();
                                        productbll.Model = _products[0];
                                        productbll.Model.Brand = 3;         //本品赠品
                                        productbll.Model.Classify = 100;    //其他品类
                                        productbll.Model.State = 2;         //停用
                                        productbll.Model.ApproveFlag = 2;   //未审核
                                        int productid = productbll.Add();

                                        product = new PDT_ProductBLL(productid).Model;
                                        SendMessage(0, string.Format("发货单号为{0}内,产品编号{1}未在本品赠品目录库中未找到,自动从产品库中增加该赠品信息!", SheetCode, productcode));
                                    }
                                }
                                #endregion
                            }
                            else
                            {
                                #region 从产品目录中取该产品信息
                                IList<PDT_Product> _products = PDT_ProductBLL.GetModelList("Code='" + productcode + "' AND Brand IN (SELECT ID FROM MCS_Pub.dbo.PDT_Brand WHERE IsOpponent<>9)");
                                if (_products.Count > 0)
                                {
                                    product = _products[0];
                                }
                                else
                                {
                                    _products = PDT_ProductBLL.GetModelList("Code='" + productcode + "' AND Brand IN (SELECT ID FROM MCS_Pub.dbo.PDT_Brand WHERE IsOpponent = 9)");
                                    if (_products.Count == 0)
                                    {
                                        SendMessage(-22, string.Format("发货单号为{0}内,产品编号{1}未在产品物料目录库中未找到!", SheetCode, productcode));
                                        continue;
                                    }
                                    else
                                    {
                                        //在赠品目录中找到,则使用赠品目录的产品ID
                                        //不在产品中增加该成品 2012-04-25
                                        product = _products[0];

                                        ////在赠品目录里找到,但未在成品目录中,自动在成品目录中增加一条本品成品目录
                                        //PDT_ProductBLL productbll = new PDT_ProductBLL();
                                        //productbll.Model = _products[0];
                                        //productbll.Model.Brand = 1;
                                        //productbll.Model.Classify = 1;
                                        //productbll.Model.State = 2;         //停用
                                        //productbll.Model.ApproveFlag = 2;   //未审核
                                        //int productid = productbll.Add();

                                        //product = new PDT_ProductBLL(productid).Model;
                                        //SendMessage(0, string.Format("发货单号为{0}内,产品编号{1}未在成品目录库中未找到,自动从赠品库中增加该产品信息!", SheetCode, productcode));
                                    }

                                }
                                #endregion
                            }

                            if (product.State == 2 && product.ApproveFlag == 1)
                            {
                                //确认被停用的产品,不再同步
                                continue;
                            }

                            if (product.State == 3 && !string.IsNullOrEmpty(product["MasterProduct"]) && product["MasterProduct"] != "0")
                            {
                                //是子产品,自动归属到主产品
                                PDT_Product _p = new PDT_ProductBLL(int.Parse(product["MasterProduct"])).Model;
                                if (_p != null) product = _p;
                            }

                            if (product == null)
                            {
                                SendMessage(-23, productcode + "为无效产品编号!");
                                continue;
                            }
                            #endregion

                            if (packaging == "Ea" && product.ConvertFactor > 1)
                            {
                                //整箱单位,转换为零售单位
                                quantity = quantity * product.ConvertFactor;
                                price = price / product.ConvertFactor;
                            }

                            ORD_OrderDeliveryDetail item = bll.Items.FirstOrDefault
                                (p => p.Product == product.ID && p.Client == client.ID);

                            if (item != null)
                            {
                                item.DeliveryQuantity += quantity;
                            }
                            else
                            {
                                item = new ORD_OrderDeliveryDetail();
                                item.Client = client.ID;
                                item.Product = product.ID;
                                item.Price = price;
                                item.FactoryPrice = price == 0 ? product.FactoryPrice : price;
                                item.DeliveryQuantity = quantity;
                                item.SignInQuantity = 0;
                                item.BadQuantity = 0;
                                item.LostQuantity = 0;

                                bll.Items.Add(item);
                            }
                        }
                        #endregion

                        if (bll.Items.Count == 0)
                        {
                            SendMessage(0, "发货单号" + bll.Model.SheetCode + ",未获取到发货单产品明细");
                            continue;
                        }

                        #region 写入发货单
                        if (bll.Add() > 0)
                        {
                            //bll.Delivery(1);        //设为发货状态(20140708修改为数据库作业执行)
                            SendMessage(0, "成功导入发货数据!单号:" + bll.Model.SheetCode + ",发生日期:" + SalesDate.ToString("yyyy-MM-dd") + ",产品明细条数:" + bll.Items.Count.ToString() + ",同步进度:" + (i + 1).ToString() + "/" + dtShipHeader.Rows.Count.ToString());
                        }
                        else
                        {
                            SendMessage(-40, "导入发货数据失败!单号" + bll.Model.SheetCode);
                            continue;
                        }
                        #endregion
                        success += 1;
                    }
                    catch (Exception err)
                    {
                        SendMessage(0, err.StackTrace + err.Source + err.Message);
                        continue;
                    }
                    #endregion
                }

                SendMessage(0, "------" + begindate.ToString("yyyy-MM-dd HH:mm") +
                    "至" + enddate.ToString("yyyy-MM-dd HH:mm") +
                    "。总共同步完成" + success.ToString() + "条发货单记录!-------");
            }
            catch (Exception err)
            {
                SendMessage(0, "SyncSellOut()" + err.StackTrace + err.Source + err.Message);
            }
        }
Example #30
0
        /// <summary>
        /// 同步经销商进货单
        /// </summary>
        /// <param name="begindate"></param>
        /// <param name="enddate"></param>
        /// <param name="clientcode"></param>
        private void SyncSellOut(DateTime begindate, DateTime enddate, string clientcode)
        {
            try
            {
                int success = 0;

                //从进销存数据库中读取出货数据
                DataTable dtShipHeader = null;

                if (string.IsNullOrEmpty(clientcode))
                {
                    dtShipHeader = ERPIF.GetShipHeader(begindate, enddate);
                }
                else
                {
                    SendMessage(0, "经销商代码:" + clientcode);
                    dtShipHeader = ERPIF.GetShipHeader(begindate, enddate, clientcode);
                }
                SendMessage(0, "本次共获取到" + dtShipHeader.Rows.Count.ToString() + "条发货单待同步!" + _sClientCode);

                for (int i = 0; i < dtShipHeader.Rows.Count; i++)
                {
                    DataRow dr = dtShipHeader.Rows[i];

                    if (_bCancelSync)
                    {
                        SendMessage(0, "同步进行中时,被用户取消!");
                        break;
                    }
                    #region 逐条同步发货单
                    try
                    {
                        string   SheetCode  = dr["DELIVERY_ID"].ToString().Trim();
                        string   ClientCode = dr["CUST_NUMBER"].ToString().Trim();
                        DateTime SalesDate  = DateTime.Parse(dr["CARRY_SDATE"].ToString().Trim());
                        string   DJType     = dr["ORDER_TYPE"].ToString().Trim();
                        decimal  discount   = 0;
                        decimal.TryParse(dr["DISCOUNT"].ToString().Trim(), out discount);

                        if (DJType == "R")
                        {
                            continue;
                        }

                        if (ORD_OrderDeliveryBLL.GetModelList(" SheetCode = '" + SheetCode + "'").Count > 0)
                        {
                            continue;
                        }

                        #region 判断客户号有效否
                        IList <CM_Client> clients = CM_ClientBLL.GetModelList(" Code= '" + ClientCode.ToString() + "' AND ActiveFlag=1 AND ApproveFlag=1");
                        if (clients.Count == 0)
                        {
                            SendMessage(-11, "经销商编号为" + ClientCode.ToString() + "的匹配错误!");
                            continue;
                        }
                        CM_Client client = clients[0];
                        if (client["DIClassify"] == "3")
                        {
                            //经销商子户头
                            client = new CM_ClientBLL(client.Supplier).Model;
                            if (client == null)
                            {
                                SendMessage(-12, "经销商编号为" + ClientCode.ToString() + "对应的经销商为子户头,但未关联正确的主户头!");
                                continue;
                            }
                        }

                        if (client["DIClassify"] != "1")
                        {
                            SendMessage(-13, "经销商编号为" + ClientCode.ToString() + "对应的经销商不是主户头!");
                            continue;
                        }
                        #endregion

                        #region 生成销量单头
                        ORD_OrderDeliveryBLL bll = new ORD_OrderDeliveryBLL();
                        bll.Model.SheetCode    = SheetCode;
                        bll.Model.AccountMonth = AC_AccountMonthBLL.GetMonthByDate(SalesDate);
                        bll.Model.OrganizeCity = client.OrganizeCity;
                        bll.Model.State        = 1; //未发货
                        bll.Model.Client       = client.ID;
                        bll.Model.Store        = client.Supplier;
                        if (dr["CARRY_EDATE"].ToString() != "")
                        {
                            bll.Model.PreArrivalDate = DateTime.Parse(dr["CARRY_EDATE"].ToString().Trim());
                        }
                        else
                        {
                            bll.Model.PreArrivalDate = SalesDate.AddDays(7);      //默认7天后到货
                        }
                        bll.Model.ApproveFlag       = 1;
                        bll.Model.InsertStaff       = 1;
                        bll.Model["DeliveryTime"]   = SalesDate.ToString("yyyy-MM-dd HH:mm");
                        bll.Model["TruckNo"]        = dr["CARRY_CAR"].ToString().Trim();
                        bll.Model["DeliveryStaff"]  = "1";
                        bll.Model["DeliveryRemark"] = "ERP发货单提取";
                        bll.Model["Discount"]       = discount.ToString("0.###");
                        bll.Model["CarrySheetCode"] = dr["REQUEST_NUMBER"].ToString().Trim();
                        #endregion

                        //获取进销存明细
                        DataTable dt_detail = ERPIF.GetShipDetail(SheetCode);

                        #region 生成销量明细
                        foreach (DataRow dr_detail in dt_detail.Rows)
                        {
                            string  productcode = dr_detail["ITEM_NO"].ToString();
                            decimal price       = decimal.Parse(dr_detail["PRICE"].ToString());
                            int     quantity    = (int)decimal.Parse(dr_detail["SHIP_QTY"].ToString());
                            string  packaging   = dr_detail["UOM"].ToString();

                            if (quantity == 0)
                            {
                                continue;
                            }

                            #region 验证产品信息
                            PDT_Product product = null;
                            if (price == 0)
                            {
                                #region 价格为0,表示为赠品,取赠品目录中的物料
                                IList <PDT_Product> _products = PDT_ProductBLL.GetModelList("Code='" + productcode + "' AND Brand IN (SELECT ID FROM MCS_Pub.dbo.PDT_Brand WHERE IsOpponent=9)");
                                if (_products.Count > 0)
                                {
                                    product = _products[0];
                                }
                                else
                                {
                                    _products = PDT_ProductBLL.GetModelList("Code='" + productcode + "' AND Brand IN (SELECT ID FROM MCS_Pub.dbo.PDT_Brand WHERE IsOpponent <> 9)");
                                    if (_products.Count == 0)
                                    {
                                        SendMessage(-21, string.Format("发货单号为{0}内,产品编号{1}未在产品目录库中未找到!", SheetCode, productcode));
                                        continue;
                                    }
                                    else
                                    {
                                        //在成品目录里找到,但未在赠品目录中,自动在赠品目录中增加一条本品赠品目录
                                        PDT_ProductBLL productbll = new PDT_ProductBLL();
                                        productbll.Model             = _products[0];
                                        productbll.Model.Brand       = 3;   //本品赠品
                                        productbll.Model.Classify    = 100; //其他品类
                                        productbll.Model.State       = 2;   //停用
                                        productbll.Model.ApproveFlag = 2;   //未审核
                                        int productid = productbll.Add();

                                        product = new PDT_ProductBLL(productid).Model;
                                        SendMessage(0, string.Format("发货单号为{0}内,产品编号{1}未在本品赠品目录库中未找到,自动从产品库中增加该赠品信息!", SheetCode, productcode));
                                    }
                                }
                                #endregion
                            }
                            else
                            {
                                #region 从产品目录中取该产品信息
                                IList <PDT_Product> _products = PDT_ProductBLL.GetModelList("Code='" + productcode + "' AND Brand IN (SELECT ID FROM MCS_Pub.dbo.PDT_Brand WHERE IsOpponent<>9)");
                                if (_products.Count > 0)
                                {
                                    product = _products[0];
                                }
                                else
                                {
                                    _products = PDT_ProductBLL.GetModelList("Code='" + productcode + "' AND Brand IN (SELECT ID FROM MCS_Pub.dbo.PDT_Brand WHERE IsOpponent = 9)");
                                    if (_products.Count == 0)
                                    {
                                        SendMessage(-22, string.Format("发货单号为{0}内,产品编号{1}未在产品物料目录库中未找到!", SheetCode, productcode));
                                        continue;
                                    }
                                    else
                                    {
                                        //在赠品目录中找到,则使用赠品目录的产品ID
                                        //不在产品中增加该成品 2012-04-25
                                        product = _products[0];

                                        ////在赠品目录里找到,但未在成品目录中,自动在成品目录中增加一条本品成品目录
                                        //PDT_ProductBLL productbll = new PDT_ProductBLL();
                                        //productbll.Model = _products[0];
                                        //productbll.Model.Brand = 1;
                                        //productbll.Model.Classify = 1;
                                        //productbll.Model.State = 2;         //停用
                                        //productbll.Model.ApproveFlag = 2;   //未审核
                                        //int productid = productbll.Add();

                                        //product = new PDT_ProductBLL(productid).Model;
                                        //SendMessage(0, string.Format("发货单号为{0}内,产品编号{1}未在成品目录库中未找到,自动从赠品库中增加该产品信息!", SheetCode, productcode));
                                    }
                                }
                                #endregion
                            }

                            if (product.State == 2 && product.ApproveFlag == 1)
                            {
                                //确认被停用的产品,不再同步
                                continue;
                            }

                            if (product.State == 3 && !string.IsNullOrEmpty(product["MasterProduct"]) && product["MasterProduct"] != "0")
                            {
                                //是子产品,自动归属到主产品
                                PDT_Product _p = new PDT_ProductBLL(int.Parse(product["MasterProduct"])).Model;
                                if (_p != null)
                                {
                                    product = _p;
                                }
                            }

                            if (product == null)
                            {
                                SendMessage(-23, productcode + "为无效产品编号!");
                                continue;
                            }
                            #endregion

                            if (packaging == "Ea" && product.ConvertFactor > 1)
                            {
                                //整箱单位,转换为零售单位
                                quantity = quantity * product.ConvertFactor;
                                price    = price / product.ConvertFactor;
                            }

                            ORD_OrderDeliveryDetail item = bll.Items.FirstOrDefault
                                                               (p => p.Product == product.ID && p.Client == client.ID);

                            if (item != null)
                            {
                                item.DeliveryQuantity += quantity;
                            }
                            else
                            {
                                item                  = new ORD_OrderDeliveryDetail();
                                item.Client           = client.ID;
                                item.Product          = product.ID;
                                item.Price            = price;
                                item.FactoryPrice     = price == 0 ? product.FactoryPrice : price;
                                item.DeliveryQuantity = quantity;
                                item.SignInQuantity   = 0;
                                item.BadQuantity      = 0;
                                item.LostQuantity     = 0;

                                bll.Items.Add(item);
                            }
                        }
                        #endregion

                        if (bll.Items.Count == 0)
                        {
                            SendMessage(0, "发货单号" + bll.Model.SheetCode + ",未获取到发货单产品明细");
                            continue;
                        }

                        #region 写入发货单
                        if (bll.Add() > 0)
                        {
                            //bll.Delivery(1);        //设为发货状态(20140708修改为数据库作业执行)
                            SendMessage(0, "成功导入发货数据!单号:" + bll.Model.SheetCode + ",发生日期:" + SalesDate.ToString("yyyy-MM-dd") + ",产品明细条数:" + bll.Items.Count.ToString() + ",同步进度:" + (i + 1).ToString() + "/" + dtShipHeader.Rows.Count.ToString());
                        }
                        else
                        {
                            SendMessage(-40, "导入发货数据失败!单号" + bll.Model.SheetCode);
                            continue;
                        }
                        #endregion
                        success += 1;
                    }
                    catch (Exception err)
                    {
                        SendMessage(0, err.StackTrace + err.Source + err.Message);
                        continue;
                    }
                    #endregion
                }

                SendMessage(0, "------" + begindate.ToString("yyyy-MM-dd HH:mm") +
                            "至" + enddate.ToString("yyyy-MM-dd HH:mm") +
                            "。总共同步完成" + success.ToString() + "条发货单记录!-------");
            }
            catch (Exception err)
            {
                SendMessage(0, "SyncSellOut()" + err.StackTrace + err.Source + err.Message);
            }
        }
Example #31
0
    protected void bt_ConfirmSignIn_Click(object sender, EventArgs e)
    {
        if ((int)ViewState["ID"] != 0)
        {
            ORD_OrderDeliveryBLL bll = new ORD_OrderDeliveryBLL((int)ViewState["ID"]);
            pn_OrderDelivery.GetData(bll.Model);
            if (bll.Model["SignInTime"] == "1900-01-01")
            {
                MessageBox.Show(this, "请选择实际到货日期!");
                return;
            }
            if (DateTime.Parse(bll.Model["SignInTime"]) > DateTime.Now)
            {
                MessageBox.Show(this, "实际到货日期不能大于今天!");
                return;
            }

            if (new CM_ClientBLL(bll.Model.Client).Model.ClientType == 2 && SVM_InventoryBLL.GetModelList("Client=" + bll.Model.Client.ToString() + " AND AccountMonth=" + bll.Model.AccountMonth.ToString() + " AND ApproveFlag=2").Count > 0)
            {
                MessageBox.ShowAndRedirect(this, "该经销商本月还有未审核库存,请先审核库存再作此操作。", "InventoryList.aspx?ClientID=" + bll.Model.Client.ToString());
                return;
            }

            ListTable <ORD_OrderDeliveryDetail> _details = ViewState["Details"] as ListTable <ORD_OrderDeliveryDetail>;

            #region 判断签收数量是否大于发放数量
            for (int i = 0; i < gv_OrderList.Rows.Count; i++)
            {
                int id = (int)gv_OrderList.DataKeys[i]["ID"];

                ORD_OrderDeliveryDetail m       = new ORD_OrderDeliveryBLL().GetDetailModel(id);
                PDT_Product             product = new PDT_ProductBLL(m.Product).Model;


                TextBox tbx_SignInQuantity_T = (TextBox)gv_OrderList.Rows[i].FindControl("tbx_SignInQuantity_T");
                TextBox tbx_SignInQuantity   = (TextBox)gv_OrderList.Rows[i].FindControl("tbx_SignInQuantity");

                TextBox tbx_BadQuantity_T = (TextBox)gv_OrderList.Rows[i].FindControl("tbx_BadQuantity_T");
                TextBox tbx_BadQuantity   = (TextBox)gv_OrderList.Rows[i].FindControl("tbx_BadQuantity");

                TextBox tbx_LostQuantity_T = (TextBox)gv_OrderList.Rows[i].FindControl("tbx_LostQuantity_T");
                TextBox tbx_LostQuantity   = (TextBox)gv_OrderList.Rows[i].FindControl("tbx_LostQuantity");

                int SignInQuantity = (int.Parse(tbx_SignInQuantity_T.Text) * product.ConvertFactor + int.Parse(tbx_SignInQuantity.Text));
                int BadQuantity    = (int.Parse(tbx_BadQuantity_T.Text) * product.ConvertFactor + int.Parse(tbx_BadQuantity.Text));
                int LostQuantity   = (int.Parse(tbx_LostQuantity_T.Text) * product.ConvertFactor + int.Parse(tbx_LostQuantity.Text));

                if (SignInQuantity < 0 || BadQuantity < 0 || LostQuantity < 0)
                {
                    MessageBox.Show(this, "对不起,产品:" + product.FullName + "签收、丢失、破损的数量不能小于0");
                    return;
                }
                if (SignInQuantity + BadQuantity + LostQuantity != m.DeliveryQuantity)
                {
                    MessageBox.Show(this, "对不起,产品:" + product.FullName + "签收、丢失、破损的数量必需等于实发数量" + GetQuantityString(m.Product, m.DeliveryQuantity));
                    return;
                }

                m.SignInQuantity = SignInQuantity;
                m.BadQuantity    = BadQuantity;
                m.LostQuantity   = LostQuantity;

                _details.Update(m);
            }
            #endregion


            bll.Model["SignInStaff"] = Session["UserID"].ToString();
            bll.Model.State          = 3; //已签收

            bll.Update();

            bll.Items = _details.GetListItem(ItemState.Modified);
            bll.UpdateDetail();

            MessageBox.ShowAndRedirect(this, "发货单签收成功!", "OrderDeliveryList.aspx");
        }
    }
Example #32
0
    private void BindData()
    {
        int id = (int)ViewState["ID"];
        ORD_OrderDelivery m = new ORD_OrderDeliveryBLL(id).Model;

        if (m == null)
        {
            Response.Redirect("OrderDeliveryList.aspx");
        }

        pn_OrderDelivery.BindData(m);

        #region 绑定当前申请单的管理片区
        Label lb_OrganizeCity = (Label)pn_OrderDelivery.FindControl("ORD_OrderDelivery_OrganizeCity");
        lb_OrganizeCity.Text        = TreeTableBLL.GetFullPathName("MCS_Sys.dbo.Addr_OrganizeCity", m.OrganizeCity);
        tr_OrganizeCity.SelectValue = m.OrganizeCity.ToString();
        tr_OrganizeCity.Enabled     = false;
        select_Client.PageUrl       = "~/SubModule/CM/PopSearch/Search_SelectClient.aspx?ClientType=2&OrganizeCity=" + tr_OrganizeCity.SelectValue;
        #endregion

        #region 根据状态控制页面显示
        switch (m.State)
        {
        case 1:     //未发货
            if (m.ApproveFlag == 2)
            {       //未审核
                BindOrderApplyCanDelivery();
                pn_OrderDelivery.SetPanelVisible("Panel_LGS_OrderDeliveryDetail_02", false);
                bt_ConfirmDelivery.Visible = false;
                gv_OrderList.Columns[gv_OrderList.Columns.Count - 1].Visible = true;
            }
            else
            {
                bt_Approve.Visible      = false;
                tr_FeeApplyList.Visible = false;
                bt_Save.Visible         = false;
                bt_Delete.Visible       = false;
            }
            bt_ConfirmSignIn.Visible = false;
            bNoDelivery = true;
            pn_OrderDelivery.SetPanelVisible("Panel_LGS_OrderDeliveryDetail_03", false);
            break;

        case 2:         //已发货
            bt_Save.Visible            = false;
            bt_Delete.Visible          = false;
            bt_Approve.Visible         = false;
            bt_ConfirmDelivery.Visible = false;
            tr_FeeApplyList.Visible    = false;
            bNoSignIn = true;
            gv_OrderList.Columns[gv_OrderList.Columns.Count - 4].Visible = true;
            gv_OrderList.Columns[gv_OrderList.Columns.Count - 3].Visible = true;
            gv_OrderList.Columns[gv_OrderList.Columns.Count - 2].Visible = true;
            pn_OrderDelivery.SetPanelEnable("Panel_LGS_OrderDeliveryDetail_02", false);
            break;

        case 3:         //已签收
            bt_Save.Visible            = false;
            bt_Delete.Visible          = false;
            bt_Approve.Visible         = false;
            bt_ConfirmDelivery.Visible = false;
            bt_ConfirmSignIn.Visible   = false;
            tr_FeeApplyList.Visible    = false;
            bNoSignIn = false;
            gv_OrderList.Columns[gv_OrderList.Columns.Count - 4].Visible = true;
            gv_OrderList.Columns[gv_OrderList.Columns.Count - 3].Visible = true;
            gv_OrderList.Columns[gv_OrderList.Columns.Count - 2].Visible = true;
            pn_OrderDelivery.SetPanelEnable("Panel_LGS_OrderDeliveryDetail_02", false);
            pn_OrderDelivery.SetPanelEnable("Panel_LGS_OrderDeliveryDetail_03", false);
            break;

        default:
            break;
        }
        #endregion

        BindGrid();
    }
    protected void bt_ConfirmDelivery_Click(object sender, EventArgs e)
    {
        if ((int)ViewState["ID"] != 0)
        {
            #region 再次验证发货数量是否超允许发货数量,以防止用户在多个页面分别填写发货单,并保存后再分批发放
            for (int i = 0; i < gv_OrderList.Rows.Count; i++)
            {
                if (!VerifyDeliveryQuantity(i)) return;
            }
            #endregion

            ORD_OrderDeliveryBLL bll = new ORD_OrderDeliveryBLL((int)ViewState["ID"]);
            pn_OrderDelivery.GetData(bll.Model);

            if (bll.Model.Store == 0)
            {
                MessageBox.Show(this, "对不起,必须选择发货仓库!");
                return;
            }

            bll.Model["DeliveryTime"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            bll.Model["DeliveryStaff"] = Session["UserID"].ToString();

            bll.Update();

            #region 保存实发数量
            ListTable<ORD_OrderDeliveryDetail> _details = ViewState["Details"] as ListTable<ORD_OrderDeliveryDetail>;
            bll.Items = _details.GetListItem(ItemState.Modified);
            bll.UpdateDetail();
            #endregion

            bll.Delivery((int)Session["UserID"]);

            MessageBox.ShowAndRedirect(this, "发货单发放成功,已为在途状态,待签收!", "OrderDeliveryList.aspx");
        }
    }
    private void BindData()
    {
        int id = (int)ViewState["ID"];
        ORD_OrderDelivery m = new ORD_OrderDeliveryBLL(id).Model;

        if (m == null) Response.Redirect("OrderDeliveryList.aspx");

        pn_OrderDelivery.BindData(m);

        #region 绑定当前申请单的管理片区
        Label lb_OrganizeCity = (Label)pn_OrderDelivery.FindControl("ORD_OrderDelivery_OrganizeCity");
        lb_OrganizeCity.Text = TreeTableBLL.GetFullPathName("MCS_Sys.dbo.Addr_OrganizeCity", m.OrganizeCity);
        tr_OrganizeCity.SelectValue = m.OrganizeCity.ToString();
        tr_OrganizeCity.Enabled = false;
        select_Client.PageUrl = "~/SubModule/CM/PopSearch/Search_SelectClient.aspx?ClientType=2&OrganizeCity=" + tr_OrganizeCity.SelectValue;
        #endregion

        #region 根据状态控制页面显示
        switch (m.State)
        {
            case 1:     //未发货
                if (m.ApproveFlag == 2)
                {   //未审核
                    BindOrderApplyCanDelivery();
                    pn_OrderDelivery.SetPanelVisible("Panel_LGS_OrderDeliveryDetail_02", false);
                    bt_ConfirmDelivery.Visible = false;
                    gv_OrderList.Columns[gv_OrderList.Columns.Count - 1].Visible = true;
                }
                else
                {
                    bt_Approve.Visible = false;
                    tr_FeeApplyList.Visible = false;
                    bt_Save.Visible = false;
                    bt_Delete.Visible = false;
                }
                bt_ConfirmSignIn.Visible = false;
                bNoDelivery = true;
                pn_OrderDelivery.SetPanelVisible("Panel_LGS_OrderDeliveryDetail_03", false);
                break;
            case 2:     //已发货
                bt_Save.Visible = false;
                bt_Delete.Visible = false;
                bt_Approve.Visible = false;
                bt_ConfirmDelivery.Visible = false;
                tr_FeeApplyList.Visible = false;
                bNoSignIn = true;
                gv_OrderList.Columns[gv_OrderList.Columns.Count - 4].Visible = true;
                gv_OrderList.Columns[gv_OrderList.Columns.Count - 3].Visible = true;
                gv_OrderList.Columns[gv_OrderList.Columns.Count - 2].Visible = true;
                pn_OrderDelivery.SetPanelEnable("Panel_LGS_OrderDeliveryDetail_02", false);
                break;
            case 3:     //已签收
                bt_Save.Visible = false;
                bt_Delete.Visible = false;
                bt_Approve.Visible = false;
                bt_ConfirmDelivery.Visible = false;
                bt_ConfirmSignIn.Visible = false;
                tr_FeeApplyList.Visible = false;
                bNoSignIn = false;
                gv_OrderList.Columns[gv_OrderList.Columns.Count - 4].Visible = true;
                gv_OrderList.Columns[gv_OrderList.Columns.Count - 3].Visible = true;
                gv_OrderList.Columns[gv_OrderList.Columns.Count - 2].Visible = true;
                pn_OrderDelivery.SetPanelEnable("Panel_LGS_OrderDeliveryDetail_02", false);
                pn_OrderDelivery.SetPanelEnable("Panel_LGS_OrderDeliveryDetail_03", false);
                break;
            default:
                break;
        }
        #endregion

        BindGrid();
    }
    private void BindData()
    {
        int id = (int)ViewState["ID"];
        ORD_OrderDelivery m = new ORD_OrderDeliveryBLL(id).Model;

        if (m == null) Response.Redirect("OrderDeliveryList.aspx");

        pn_OrderDelivery.BindData(m);

        #region 根据状态控制页面显示
        if (m.ApproveFlag == 2)
        {
            bt_ConfirmDelivery.Visible = false;
            gv_OrderList.Columns[gv_OrderList.Columns.Count - 1].Visible = false;
            gv_OrderList.Columns[gv_OrderList.Columns.Count - 2].Visible = false;
            gv_OrderList.Columns[gv_OrderList.Columns.Count - 3].Visible = false;
            gv_OrderList.Columns[gv_OrderList.Columns.Count - 4].Visible = false;
        }
        else
        {
            bt_Edit.Visible = false;
            bt_Approve.Visible = false;

        }
        if (m.State != 1) bt_ConfirmDelivery.Visible = false;
        if (m.State != 2 && m.State != 3) bt_SignIn.Visible = false;
        if (m.State != 3 && m.State != 4) pn_OrderDelivery.SetPanelVisible("Panel_LGS_OrderDeliveryDetail01_02", false);
        if (m.State != 3)
        {
            pn_OrderDelivery.SetPanelEnable("Panel_LGS_OrderDeliveryDetail01_02", false);
            bt_ConfirmSignIn.Visible = false;
        }
        #endregion

        #region 创建空的列表
        ListTable<ORD_OrderDeliveryDetail> _details = new ListTable<ORD_OrderDeliveryDetail>
            (new ORD_OrderDeliveryBLL((int)ViewState["ID"]).Items, "Product");
        ViewState["Details"] = _details;
        #endregion

        BindGrid();
    }
    protected void bt_ConfirmSignIn_Click(object sender, EventArgs e)
    {
        if ((int)ViewState["ID"] != 0)
        {
            ORD_OrderDeliveryBLL bll = new ORD_OrderDeliveryBLL((int)ViewState["ID"]);
            pn_OrderDelivery.GetData(bll.Model);
            if (bll.Model["SignInTime"] == "1900-01-01")
            {
                MessageBox.Show(this, "请选择实际到货日期!");
                return;
            }
            if (DateTime.Parse(bll.Model["SignInTime"]) > DateTime.Now)
            {
                MessageBox.Show(this, "实际到货日期不能大于今天!");
                return;
            }

            if (new CM_ClientBLL(bll.Model.Client).Model.ClientType == 2 && SVM_InventoryBLL.GetModelList("Client=" + bll.Model.Client.ToString() + " AND AccountMonth=" + bll.Model.AccountMonth.ToString() + " AND ApproveFlag=2").Count > 0)
            {
                MessageBox.ShowAndRedirect(this, "该经销商本月还有未审核库存,请先审核库存再作此操作。", "InventoryList.aspx?ClientID=" + bll.Model.Client.ToString());
                return;
            }

            ListTable<ORD_OrderDeliveryDetail> _details = ViewState["Details"] as ListTable<ORD_OrderDeliveryDetail>;

            #region 判断签收数量是否大于发放数量
            for (int i = 0; i < gv_OrderList.Rows.Count; i++)
            {
                int id = (int)gv_OrderList.DataKeys[i]["ID"];

                ORD_OrderDeliveryDetail m = new ORD_OrderDeliveryBLL().GetDetailModel(id);
                PDT_Product product = new PDT_ProductBLL(m.Product).Model;

                TextBox tbx_SignInQuantity_T = (TextBox)gv_OrderList.Rows[i].FindControl("tbx_SignInQuantity_T");
                TextBox tbx_SignInQuantity = (TextBox)gv_OrderList.Rows[i].FindControl("tbx_SignInQuantity");

                TextBox tbx_BadQuantity_T = (TextBox)gv_OrderList.Rows[i].FindControl("tbx_BadQuantity_T");
                TextBox tbx_BadQuantity = (TextBox)gv_OrderList.Rows[i].FindControl("tbx_BadQuantity");

                TextBox tbx_LostQuantity_T = (TextBox)gv_OrderList.Rows[i].FindControl("tbx_LostQuantity_T");
                TextBox tbx_LostQuantity = (TextBox)gv_OrderList.Rows[i].FindControl("tbx_LostQuantity");

                int SignInQuantity = (int.Parse(tbx_SignInQuantity_T.Text) * product.ConvertFactor + int.Parse(tbx_SignInQuantity.Text));
                int BadQuantity = (int.Parse(tbx_BadQuantity_T.Text) * product.ConvertFactor + int.Parse(tbx_BadQuantity.Text));
                int LostQuantity = (int.Parse(tbx_LostQuantity_T.Text) * product.ConvertFactor + int.Parse(tbx_LostQuantity.Text));

                if (SignInQuantity < 0 || BadQuantity < 0 || LostQuantity < 0)
                {
                    MessageBox.Show(this, "对不起,产品:" + product.FullName + "签收、丢失、破损的数量不能小于0");
                    return;
                }
                if (SignInQuantity + BadQuantity + LostQuantity != m.DeliveryQuantity)
                {
                    MessageBox.Show(this, "对不起,产品:" + product.FullName + "签收、丢失、破损的数量必需等于实发数量" + GetQuantityString(m.Product, m.DeliveryQuantity));
                    return;
                }

                m.SignInQuantity = SignInQuantity;
                m.BadQuantity = BadQuantity;
                m.LostQuantity = LostQuantity;

                _details.Update(m);
            }
            #endregion

            bll.Model["SignInStaff"] = Session["UserID"].ToString();
            bll.Model.State = 3;        //已签收

            bll.Update();

            bll.Items = _details.GetListItem(ItemState.Modified);
            bll.UpdateDetail();

            MessageBox.ShowAndRedirect(this, "发货单签收成功!", "OrderDeliveryList.aspx");
        }
    }
    protected bool bNoDelivery = false;      //未发货,界面发货数量字段可编辑

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            ViewState["ID"]     = Request.QueryString["ID"] == null ? 0 : int.Parse(Request.QueryString["ID"]);
            ViewState["Client"] = Request.QueryString["Client"] == null ? 0 : int.Parse(Request.QueryString["Client"]);
            BindDropDown();

            pn_OrderDelivery.SetPanelVisible("Panel_LGS_OrderDeliveryDetail00_02", false);

            if ((int)ViewState["ID"] == 0)
            {
                if ((int)ViewState["Client"] == 0)
                {
                    return;
                }

                #region 新增发货单时,初始化界面
                CM_Client client = new CM_ClientBLL((int)ViewState["Client"]).Model;
                if (client != null)
                {
                    ViewState["OrganizeCity"] = client.OrganizeCity;
                    Label lb_Client = (Label)pn_OrderDelivery.FindControl("ORD_OrderDelivery_Client");
                    if (lb_Client != null)
                    {
                        lb_Client.Text = client.FullName;
                    }

                    MCSSelectControl select_Store = (MCSSelectControl)pn_OrderDelivery.FindControl("ORD_OrderDelivery_Store");
                    if (select_Store != null && client.Supplier != 0)
                    {
                        select_Store.SelectText  = new CM_ClientBLL(client.Supplier).Model.FullName;
                        select_Store.SelectValue = client.Supplier.ToString();
                    }

                    TextBox tbx_DeliveryTime = (TextBox)pn_OrderDelivery.FindControl("ORD_OrderDelivery_DeliveryTime");
                    if (tbx_DeliveryTime != null)
                    {
                        tbx_DeliveryTime.Text = DateTime.Today.ToString("yyyy-MM-dd");
                    }

                    TextBox tbx_PreArrivalDate = (TextBox)pn_OrderDelivery.FindControl("ORD_OrderDelivery_PreArrivalDate");
                    if (tbx_PreArrivalDate != null)
                    {
                        tbx_PreArrivalDate.Text = DateTime.Today.AddDays(1).ToString("yyyy-MM-dd");
                    }



                    bNoDelivery       = true;
                    bt_Delete.Visible = false;
                }
                #endregion

                #region 创建空的列表
                ListTable <ORD_OrderDeliveryDetail> _details = new ListTable <ORD_OrderDeliveryDetail>
                                                                   (new List <ORD_OrderDeliveryDetail>(), "Product");
                DataTable dtProduct = ORD_OrderDeliveryBLL.InitProductList((int)ViewState["Client"], 0);
                foreach (DataRow row in dtProduct.Rows)
                {
                    ORD_OrderDeliveryDetail item = new ORD_OrderDeliveryDetail();
                    item.Product          = (int)row["Product"];
                    item.FactoryPrice     = (decimal)row["FactoryPrice"];
                    item.Price            = (decimal)row["SalesPrice"];
                    item.Client           = (int)ViewState["Client"];
                    item.DeliveryQuantity = 0;
                    item.SignInQuantity   = 0;
                    item.BadQuantity      = 0;
                    item.LostQuantity     = 0;

                    _details.Add(item);
                }

                ViewState["Details"] = _details;
                #endregion

                BindGrid();
            }
            else
            {
                BindData();
            }
        }
    }
Example #38
0
    protected void bt_Save_Click(object sender, EventArgs e)
    {
        #region  效性校验
        if (tr_OrganizeCity.SelectValue == "0")
        {
            MessageBox.Show(this, "必须选择管理片区才能保存!");
            return;
        }
        #endregion

        ListTable <ORD_OrderDeliveryDetail> _details = ViewState["Details"] as ListTable <ORD_OrderDeliveryDetail>;

        if (_details.GetListItem().Count == 0)
        {
            MessageBox.Show(this, "在保存之前,发货明细不能为空!");
            return;
        }
        ORD_OrderDeliveryBLL bll;

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

        if ((int)ViewState["ID"] == 0)
        {
            bll.Model.AccountMonth = AC_AccountMonthBLL.GetCurrentMonth();
            bll.Model.InsertStaff  = (int)Session["UserID"];
            bll.Model.OrganizeCity = int.Parse(tr_OrganizeCity.SelectValue);
            bll.Model.State        = 1;
            bll.Model.ApproveFlag  = 2;
            bll.Model.SheetCode    = ORD_OrderDeliveryBLL.GenerateSheetCode(bll.Model.OrganizeCity, bll.Model.AccountMonth);
            bll.Items = _details.GetListItem();

            ViewState["ID"] = bll.Add();
        }
        else
        {
            bll.Model.UpdateStaff = (int)Session["UserID"];

            bll.Update();

            #region 修改明细

            #region 增加发放明细时,再次判断该项费用是否超过发放数量
            bll.Items = new List <ORD_OrderDeliveryDetail>();
            foreach (ORD_OrderDeliveryDetail item in _details.GetListItem(ItemState.Added))
            {
                ORD_OrderApplyDetail apply = new ORD_OrderApplyBLL().GetDetailModel(item.ApplyDetailID);
                if (apply.BookQuantity + apply.AdjustQuantity - apply.DeliveryQuantity >= item.DeliveryQuantity)
                {
                    bll.Items.Add(item);
                }
            }
            bll.AddDetail();
            #endregion

            foreach (ORD_OrderDeliveryDetail _deleted in _details.GetListItem(ItemState.Deleted))
            {
                bll.DeleteDetail(_deleted.ID);
            }

            bll.Items = _details.GetListItem(ItemState.Modified);
            bll.UpdateDetail();

            #endregion
        }
        if (sender != null)
        {
            MessageBox.ShowAndRedirect(this, "保存成功", "OrderDeliveryDetail.aspx?ID=" + ViewState["ID"].ToString());
        }
    }