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(); }
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()); } }
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(); }
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"); } }
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()); }
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(); }
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"); } }
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(); } }
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(); } }
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()); }
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); } }
/// <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); } }
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"); } }
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(); } } }
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()); } }