protected void MagicItemCommand(object sender, MagicItemEventArgs e) { if (e.CommandName == "Save") { this.SetView(SavePOHead()); } else if (e.CommandName == "Paid") { try { using (ISession session = new Session()) { POHead po = POHead.Retrieve(session, this.OrderNumber); po.HasPaid = true; po.Update(session, "HasPaid"); this.cmdPaid.Visible = false; this.lblPaid.Text = "是"; WebUtil.ShowMsg(this, "已付款操作成功"); } } catch (Exception er) { WebUtil.ShowError(this, "操作失败:" + er.Message); } } }
public POHead SavePOHead() { using (ISession session = new Session()) { try { POHead poHead = null; if (this.IsNew) { //新增 poHead = new POHead(); poHead.OrderNumber = ERPUtil.NextOrderNumber(POHead.ORDER_TYPE); this.txtOrderNumber.Text = poHead.OrderNumber; poHead.CompanyID = -1; poHead.LocationCode = this.drpLocationCode.SelectedValue; poHead.PurchGroupCode = this.drpPurchGroupCode.SelectedValue; poHead.VendorID = Cast.Int(this.drpVendorID.SelectedValue, 0); poHead.Status = POStatus.New; poHead.TaxAmt = 0M; poHead.TaxExclusiveAmt = 0M; poHead.TaxInclusiveAmt = 0M; poHead.ShippingAddress = this.txtShippingAddress.Text.Trim(); poHead.CreateUser = Magic.Security.SecuritySession.CurrentUser.UserId; poHead.CreateTime = DateTime.Now; poHead.ApproveResult = ApproveStatus.UnApprove; poHead.ApproveTime = new DateTime(1900, 1, 1); poHead.ApproveUser = 0; poHead.ApproveNote = " "; poHead.CurrentLineNumber = "0000"; poHead.Note = this.txtNote.Text.Trim(); poHead.DefaultPlanDate = Cast.DateTime(this.txtDemandDate.Text, DateTime.Now); poHead.Create(session); WebUtil.ShowMsg(this, "采购订单保存成功", "操作成功"); return(poHead); } else { //编辑 poHead = POHead.Retrieve(session, this.txtOrderNumber.Text.Trim()); poHead.LocationCode = this.drpLocationCode.SelectedValue; poHead.PurchGroupCode = this.drpPurchGroupCode.SelectedValue; poHead.VendorID = Cast.Int(this.drpVendorID.SelectedValue, 0); poHead.ShippingAddress = this.txtShippingAddress.Text.Trim(); poHead.Note = this.txtNote.Text.Trim(); poHead.DefaultPlanDate = Cast.DateTime(this.txtDemandDate.Text, poHead.DefaultPlanDate); poHead.Update(session, "PurchGroupCode", "LocationCode", "VendorID", "ShippingAddress", "Note", "DefaultPlanDate"); WebUtil.ShowMsg(this, "采购订单保存成功", "操作成功"); return(poHead); } } catch (Exception ex) { //throw; logger.Info("保存POHead", ex); WebUtil.ShowMsg(this, "发生未处理的异常,请刷新页面重新操作,或者联系系统管理员"); } return(null); } }
void QueryAndBindData(ISession session) { string OrderNumber = WebUtil.Param("OrderNum"); string LineNumber = WebUtil.Param("CurrentLineNumber"); if (!string.IsNullOrEmpty(OrderNumber) && !string.IsNullOrEmpty(LineNumber)) { //显示POHead内容 POHead poHead = POHead.Retrieve(session, OrderNumber); if (poHead != null) { this.LabOrderNumber.Text = poHead.OrderNumber; this.LabTaxAmt.Text = poHead.TaxAmt.ToString(); this.LabTaxExclusiveAmt.Text = poHead.TaxExclusiveAmt.ToString(); this.LabTaxInclusiveAmt.Text = poHead.TaxInclusiveAmt.ToString(); //供应商 Vendor vendor = Vendor.Retrieve(session, poHead.VendorID); if (vendor != null) { this.LabVendorID.Text = vendor.FullName; } //采购组 PurchaseGroup purchasegroup = PurchaseGroup.Retrieve(session, poHead.PurchGroupCode); if (purchasegroup != null) { this.LabPurchGroupCode.Text = purchasegroup.PurchGroupText; } } //POLine.SKUID=ItemSpec.SKUID ItemSpec.ItemID=ItemMaster.ItemID //货号ItemMaster.ItemCode 商品名称ItemMaster.ItemName //颜色ItemSpec.ColorCode 尺码 ItemSpec.SizeCode this.magicPagerSub.PageSize = 20; int pageIndex = this.magicPagerMain.CurrentPageIndex; int pageSize = this.magicPagerMain.PageSize; ObjectQuery query = session.CreateObjectQuery(@"select m.ItemCode as ItemCode,m.ItemName as ItemName,s.ColorCode as ColorCode,s.SizeCode as SizeCode,p.LineStatus as LineStatus,p.PurchaseQty as PurchaseQty,p.PlanDate as PlanDate,p.Price as Price,p.TaxInclusiveAmt as TaxInclusiveAmt,p.TaxValue as TaxValue,p.TaxAmt as TaxAmt,p.LineNumber as LineNumber,p.OrderNumber as OrderNumber from POLine p,ItemSpec s,ItemMaster m WHERE p.SKUID=s.SKUID AND s.ItemID=m.ItemID AND p.OrderNumber=?").Attach(typeof(POLine)).Attach(typeof(ItemSpec)).Attach(typeof(ItemMaster)).SetValue(0, OrderNumber, "p.OrderNumber").SetPage(pageIndex, pageSize); this.rptPL.DataSource = query.DataSet(); this.rptPL.DataBind(); this.magicPagerMain.RecordCount = this.magicPagerSub.RecordCount = query.Count(); WebUtil.SetMagicPager(magicPagerMain, pageSize, pageIndex); WebUtil.SetMagicPager(magicPagerSub, pageSize, pageIndex); } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.hidStatus.Value = POStatus.New.ToString(); this.txtOrderNumber.Text = WebUtil.Param("OrderNum"); this.lblPaid.Text = "否"; POHead po = null; using (_session = new Session()) { InitDrp(_session); _actionMode = WebUtil.GetActionMode(this); this.txtDemandDate.Text = DateTime.Now.ToString("yyyy-MM-dd"); if (_actionMode == Mode.Edit) { po = POHead.Retrieve(_session, this.OrderNumber); RetrievePOHeadData(po, this.OrderNumber); } } this.SetView(po); } }
protected void Page_Load(object sender, EventArgs e) { if (Request["return"] != null) { this.cmdReturn1["Return"].NavigateUrl = this.cmdReturn2["Return"].NavigateUrl = Request["return"]; } if (!IsPostBack) { using (_session = new Session()) { POHead head = POHead.Retrieve(_session, this.OrderNumber); if (head != null) { BindPOLine(_session, head); } this.SetView(_session, head); if (head.Status == POStatus.New) { this.SetQuickAdd(_session, head); } } } }
internal static IApprovable GetApproveItem(ISession session, string orderType, string orderNumber) { switch (orderType) { case POHead.ORDER_TYPE: //采购订单 return(POHead.Retrieve(session, orderNumber)); case RCVHead.ORD_TYPE_PUR: //采购收货 return(RCVHead.Retrieve(session, orderNumber)); case POReturnHead.ORD_TYPE_CODE: //采购退货 return(POReturnHead.Retrieve(session, orderNumber)); case ICHead.ORDER_TYPE: //交接单 return(ICHead.Retrieve(session, orderNumber)); case INVCheckHead.ORDER_TYPE_ADJ: //库存调整单 case INVCheckHead.ORDER_TYPE_CHK: //库房盘点 return(INVCheckHead.Retrieve(session, orderNumber)); case StockInHead.ORD_TYPE_ASSIST_IN: //辅料入库 case StockInHead.ORD_TYPE_ASSIST_OUT: //辅料领用 case StockInHead.ORD_TYPE_PRD_IN: //产品入库 case StockInHead.ORD_TYPE_PRD_OUT: //产品领用 return(StockInHead.Retrieve(session, orderNumber)); case ReturnHead.ORDER_TYPE_MBR_RTN: //会员退货 case ReturnHead.ORDER_TYPE_LOGISTICS_RTN: //物流退货 case ReturnHead.ORDER_TYPE_INNER_RTN: //内部退货 case ReturnHead.ORDER_TYPE_EXCHANGE_RTN: //会员换货 return(ReturnHead.Retrieve(session, orderNumber)); case WHTransferHead.ORDER_TYPE_NORMAL: //移库单 return(WHTransferHead.Retrieve(session, orderNumber)); } throw new Exception(string.Format("Order type {0} is not a registered approvable item", orderType)); }
protected void MagicItemCommand(object sender, MagicItemEventArgs e) { if (e.CommandName == "Delete") { #region 除 bool deleted = false; using (ISession session = new Session()) { session.BeginTransaction(); try { foreach (RepeaterItem item in this.rptPO.Items) { HtmlInputCheckBox chk = item.FindControl("checkbox") as HtmlInputCheckBox; HtmlInputHidden hidStatus = item.FindControl("hidStatus") as HtmlInputHidden; if (chk != null && chk.Checked && !string.IsNullOrEmpty(chk.Value)) { if (Cast.Enum <POStatus>(hidStatus.Value) == POStatus.New) { session.CreateEntityQuery <POLine>() .Where(Exp.Eq("OrderNumber", chk.Value)) .Delete(); POHead.Delete(session, chk.Value); deleted = true; } } } session.Commit(); if (deleted) { this.QueryAndBindData(session, this.magicPagerMain.CurrentPageIndex, this.magicPagerMain.PageSize, true); WebUtil.ShowMsg(this, "选择的采购订单已经被删除", "操作成功"); } } catch (Exception ex) { session.Rollback(); WebUtil.ShowError(this, ex); } } #endregion } else if (e.CommandName == "Complete") { #region 关闭采购订单 bool completed = false; using (ISession session = new Session()) { session.BeginTransaction(); try { foreach (RepeaterItem item in this.rptPO.Items) { HtmlInputCheckBox chk = item.FindControl("checkbox") as HtmlInputCheckBox; if (chk != null && chk.Checked && !string.IsNullOrEmpty(chk.Value)) { POHead poHead = POHead.Retrieve(session, chk.Value); if (poHead.Status == POStatus.Release && poHead.ApproveResult == ApproveStatus.Approve) { poHead.Close(session); completed = true; } } } session.Commit(); } catch (Exception er) { session.Rollback(); WebUtil.ShowError(this, er); } if (completed) { this.QueryAndBindData(session, this.magicPagerMain.CurrentPageIndex, this.magicPagerMain.PageSize, true); WebUtil.ShowMsg(this, "选择的采购订单已经完成", "操作成功"); } } #endregion } else if (e.CommandName == "Publish") { #region 发布(送签单据) bool published = false; using (ISession session = new Session()) { session.BeginTransaction(); try { foreach (RepeaterItem item in this.rptPO.Items) { HtmlInputCheckBox chk = item.FindControl("checkbox") as HtmlInputCheckBox; if (chk != null && chk.Checked && !string.IsNullOrEmpty(chk.Value)) { POHead poHead = POHead.Retrieve(session, chk.Value.Trim()); if (poHead.Status == POStatus.New)//为新建状态 { poHead.Release(session); published = true; } } } session.Commit(); } catch (Exception er) { session.Rollback(); WebUtil.ShowError(this, er); } if (published) { this.QueryAndBindData(session, this.magicPagerMain.CurrentPageIndex, this.magicPagerMain.PageSize, true); WebUtil.ShowMsg(this, "选择的采购订单已经发布", "操作成功"); } } #endregion } }
private void QueryAndBindData(ISession session, int pageIndex, int pageSize, bool fetchRecordCount) { ObjectQuery query = session.CreateObjectQuery(@" select ai.ApproveID as ApproveID,ai.OrderTypeCode as OrderTypeCode,td.TypeText as TypeText,ai.OrderNumber as OrderNumber ,ai.Status as Status,ai.ApproveTime as ApproveTime ,u1.FullName as SubmitUser,u2.FullName as CreateUser,ai.SubmitTime as SubmitTime,ai.CreateTime as CreateTime ,ar.HasFinished as HasFinished,ar.ActiveItem as ActiveItem, td.ViewURL as ViewURL ,ar.ApproveResultID as ApproveResultID, ' ' as Vendor from OrderApproveItem ai inner join OrderApproveResult ar on ai.ApproveID=ar.ApproveID inner join OrderTypeDef td on td.OrderTypeCode=ai.OrderTypeCode left join User u1 on u1.UserId=ai.SubmitUser left join User u2 on u2.UserId=ai.CreateUser where ar.ApproveUser=?userId") .Attach(typeof(OrderApproveItem)).Attach(typeof(OrderApproveResult)).Attach(typeof(OrderTypeDef)) .Attach(typeof(Magic.Sys.User)) .SetValue("?userId", Magic.Security.SecuritySession.CurrentUser.UserId, "ar.ApproveUser") .SetPage(pageIndex, pageSize); if (this.drpOrderType.SelectedValue.Trim().Length > 0) { query.And(Exp.Eq("ai.OrderTypeCode", this.drpOrderType.SelectedValue.Trim())); } if (this.txtOrderNumber.Text.Trim().Length > 0) { query.And(Exp.Like("ai.OrderNumber", "%" + this.txtOrderNumber.Text.Trim() + "%")); } if (this.rdoUnapprove.Checked) { query.And(Exp.Eq("ar.ActiveItem", true)).OrderBy("ai.SubmitTime", Order.Desc); } else { query.And(Exp.Eq("ar.HasFinished", true)).OrderBy("ai.ApproveTime", Order.Desc); DateTime dateFrom = Cast.DateTime(this.txtDateFrom.Text.Trim(), new DateTime(1900, 1, 1)); DateTime dateTo = Cast.DateTime(this.txtDateTo.Text.Trim(), new DateTime(1900, 1, 1)).AddDays(1); if (dateFrom > new DateTime(1900, 1, 1)) { query.And(Exp.Ge("ai.ApproveTime", dateFrom)); } if (dateTo > new DateTime(1900, 1, 1)) { query.And(Exp.Le("ai.ApproveTime", dateTo)); } } DataSet ds = query.DataSet(); foreach (DataRow row in ds.Tables[0].Rows) { string ordType = Cast.String(row["OrderTypeCode"]); if (ordType == POHead.ORDER_TYPE) { string poNum = Cast.String(row["OrderNumber"]); POHead po = POHead.Retrieve(session, poNum); if (po != null && po.VendorID > 0) { Vendor vendor = Vendor.Retrieve(session, po.VendorID); if (vendor != null) { row["Vendor"] = vendor.ShortName; } } } } this.repeatControl.DataSource = ds; this.repeatControl.DataBind(); if (fetchRecordCount) { this.magicPagerMain.RecordCount = this.magicPagerSub.RecordCount = query.Count(); } WebUtil.SetMagicPager(magicPagerMain, pageSize, pageIndex); WebUtil.SetMagicPager(magicPagerSub, pageSize, pageIndex); }
protected void cmdProduct_Click(object sender, EventArgs e) { if (this.txtSkuId.Value.Trim().Length <= 0) { return; } bool added = false; using (_session = new Session()) { string[] idArray = this.txtSkuId.Value.Trim().Trim(';').Split(';'); try { POHead head = POHead.Retrieve(_session, this.OrderNumber); if (head == null || head.Status != POStatus.New) { return; } _session.BeginTransaction(); foreach (string s in idArray) { POLine poLine = new POLine(); poLine.OrderNumber = this.OrderNumber; poLine.SKUID = Cast.Int(s, 0); if (poLine.SKUID <= 0) { continue; } poLine.LineNumber = head.NextLineNumber(); poLine.LineStatus = POLineStatus.Open; poLine.PurchaseQty = 0M; poLine.Price = 0M; //Vendor vendor = null; //if (head.VendorID > 0) vendor = Vendor.Retrieve(_session, head.VendorID); //if (vendor != null) //{ // poLine.TaxID = vendor.TaxID; // poLine.TaxValue = vendor.Tax; //} //else //{ // poLine.TaxID = 0; // poLine.TaxValue = 0M; //} poLine.TaxID = 0; poLine.TaxValue = 0M; poLine.TaxInclusiveAmt = 0M; poLine.TaxAmt = 0M; poLine.TaxExlusiveAmt = 0M; poLine.PlanDate = head.DefaultPlanDate; poLine.ActualDate = new DateTime(1900, 1, 1); poLine.ReceiveQty = 0M; poLine.IQCQty = 0M; poLine.UnfinishedReceiveQty = 0M; poLine.ModifyUser = SecuritySession.CurrentUser.UserId; poLine.ModifyTime = DateTime.Now; poLine.UnitID = 0; poLine.Create(_session); added = true; } head.Update(_session, "CurrentLineNumber"); _session.Commit(); if (added) { BindPOLine(_session, head); WebUtil.ShowMsg(this, "订单明细保存成功", "操作成功"); } } catch (Exception ex) { _session.Rollback(); logger.Info("保存POLine", ex); WebUtil.ShowError(this, "发生未处理的异常,请刷新页面重新操作,或者联系系统管理员"); } } }
protected void MagicItemCommand(object sender, MagicItemEventArgs e) { if (e.CommandName == "Save") { #region 保存 //txtPurchaseQty txtPlanDate txtPrice bool updated = false; using (_session = new Session()) { POHead head = POHead.Retrieve(_session, this.OrderNumber); if (head == null || head.Status != POStatus.New) { return; } _session.BeginTransaction(); try { foreach (RepeaterItem item in this.rptPL.Items) { HtmlInputCheckBox chk = item.FindControl("checkbox") as HtmlInputCheckBox; if (!string.IsNullOrEmpty(chk.Value)) { HtmlInputText txtPurchaseQty = item.FindControl("txtPurchaseQty") as HtmlInputText; HtmlInputText txtPlanDate = item.FindControl("txtPlanDate") as HtmlInputText; HtmlInputText txtPrice = item.FindControl("txtPrice") as HtmlInputText; POLine poLine = POLine.Retrieve(_session, this.OrderNumber, chk.Value); if (poLine == null || poLine.LineStatus != POLineStatus.Open) { continue; } poLine.PurchaseQty = Cast.Decimal(txtPurchaseQty.Value, poLine.PurchaseQty); poLine.PlanDate = Cast.DateTime(txtPlanDate.Value, poLine.PlanDate); poLine.Price = Cast.Decimal(txtPrice.Value, poLine.Price); poLine.TaxID = 0; poLine.TaxValue = 0M; //含税额(含税采购成本) TaxInclusiveAmt 含税额 = 数量*单价 poLine.TaxInclusiveAmt = poLine.PurchaseQty * poLine.Price; //不含税额(采购成本) TaxExlusiveAmt 含税额-税额 poLine.TaxExlusiveAmt = 0M; // poLine.TaxInclusiveAmt / (1 + poLine.TaxValue); //税额 TaxAmt 税额 = 不含税额*税率 poLine.TaxAmt = 0M; //poLine.TaxExlusiveAmt * poLine.TaxValue; poLine.Update(_session, "PurchaseQty", "TaxID", "TaxValue", "PlanDate", "Price", "TaxInclusiveAmt"); updated = true; } } //更新统计信息 if (updated) { UpdatePOLineAndPoHead(_session, head); } _session.Commit(); if (updated) { BindPOLine(_session, head); WebUtil.ShowMsg(this, "采购订单明细保存成功", "操作成功"); } } catch (Exception ex) { _session.Rollback(); WebUtil.ShowError(this, ex); } } #endregion } else if (e.CommandName == "Cancel") { #region 取消明细 bool updated = false; using (_session = new Session()) { POHead head = POHead.Retrieve(_session, this.OrderNumber); if (head.Status != POStatus.Release) { return; } _session.BeginTransaction(); try { foreach (RepeaterItem item in this.rptPL.Items) { HtmlInputCheckBox chk = item.FindControl("checkbox") as HtmlInputCheckBox; if (chk != null && chk.Checked && !string.IsNullOrEmpty(chk.Value)) { POLine poLine = POLine.Retrieve(_session, this.OrderNumber, chk.Value); if (poLine == null || poLine.LineStatus != POLineStatus.Open) { continue; } poLine.LineStatus = POLineStatus.Cancel; poLine.ModifyUser = Magic.Security.SecuritySession.CurrentUser.UserId; poLine.ModifyTime = DateTime.Now; poLine.Update(_session, "LineStatus", "ModifyUser", "ModifyTime"); updated = true; } } //再次统计 POLine if (updated) { UpdatePOLineAndPoHead(_session, head); } _session.Commit(); if (updated) { BindPOLine(_session, head); WebUtil.ShowMsg(this, "选择的明细已经取消", "操作成功"); } } catch (Exception ex) { _session.Rollback(); WebUtil.ShowError(this, ex); } } #endregion } else if (e.CommandName == "Delete") { #region 除明细 bool deleted = false; using (_session = new Session()) { POHead head = POHead.Retrieve(_session, this.OrderNumber); if (head == null || head.Status != POStatus.New) { return; } _session.BeginTransaction(); try { foreach (RepeaterItem item in this.rptPL.Items) { HtmlInputCheckBox chk = item.FindControl("checkbox") as HtmlInputCheckBox; if (chk != null && chk.Checked && !string.IsNullOrEmpty(chk.Value)) { POLine line = POLine.Retrieve(_session, this.OrderNumber, chk.Value); if (line.LineStatus != POLineStatus.Open) { continue; } line.Delete(_session); deleted = true; } } //再次统计 POLine if (deleted) { UpdatePOLineAndPoHead(_session, head); } _session.Commit(); if (deleted) { BindPOLine(_session, head); WebUtil.ShowMsg(this, "选择的明细已经删除", "操作成功"); } } catch (Exception ex) { _session.Rollback(); WebUtil.ShowError(this, ex); } } #endregion } else if (e.CommandName == "Release" || e.CommandName == "Close") { #region 发布,关闭 using (_session = new Session()) { try { POHead head = POHead.Retrieve(_session, this.OrderNumber); _session.BeginTransaction(); if (e.CommandName == "Release") { head.Release(_session); } else { head.Close(_session); } _session.Commit(); BindPOLine(_session, head); this.SetView(_session, head); WebUtil.ShowMsg(this, "订单已经" + (e.CommandName == "Release" ? "发布" : "关闭"), "操作成功"); } catch (Exception er) { _session.Rollback(); WebUtil.ShowError(this, er); } } #endregion } else if (e.CommandName == "QuickAdd") { #region 快速添加 using (_session = new Session()) { //检查 string itemCode = this.txtItemCode.Value.Trim(); string color = this.txtColorCode.Value.Trim().ToUpper(); string size = this.txtSizeCode.Value.Trim().ToUpper(); decimal qty = Cast.Decimal(this.txtPurchaseQty.Value.Trim(), 0M); decimal price = Cast.Decimal(this.txtPrice.Value.Trim(), 0M); DateTime date = Cast.DateTime(this.txtDemandDate.Value.Trim(), new DateTime(1900, 1, 1)); if (qty <= 0M) { this.txtAlertMsg.InnerText = string.Format("采购数量{0}不是有效的数字", this.txtPurchaseQty.Value.Trim()); return; } if (price <= 0M) { this.txtAlertMsg.InnerText = string.Format("单价{0}不是有效的数字", this.txtPrice.Value.Trim()); return; } if (date <= new DateTime(1900, 1, 1)) { this.txtAlertMsg.InnerText = string.Format("无效的需求日期{0}", this.txtDemandDate.Value.Trim()); return; } IList <ItemMaster> masters = _session.CreateEntityQuery <ItemMaster>() .Where(Exp.Eq("ItemCode", itemCode)).List <ItemMaster>(); if (masters == null || masters.Count <= 0) { this.txtAlertMsg.InnerText = string.Format("货号{0}不存在", itemCode); return; } ItemColor objColor = ItemColor.Retrieve(_session, color); if (objColor == null) { this.txtAlertMsg.InnerText = string.Format("颜色代码{0}不存在", color); return; } IList <ItemSpec> skus = _session.CreateEntityQuery <ItemSpec>() .Where(Exp.Eq("ItemID", masters[0].ItemID) & Exp.Eq("ColorCode", objColor.ColorCode) & Exp.Eq("SizeCode", size)) .List <ItemSpec>(); if (skus == null || skus.Count <= 0) { this.txtAlertMsg.InnerText = string.Format("不存在货号:{0} 颜色:{1} 尺码:{2}的SKU", itemCode, color, size); return; } ItemSize objSize = ItemSize.Retrieve(_session, size, masters[0].CategoryID); if (objSize == null) { this.txtAlertMsg.InnerText = string.Format("尺码{0}不存在", size); return; } //添加操作 POHead head = POHead.Retrieve(_session, this.OrderNumber); POLine line = new POLine(); line.OrderNumber = this.OrderNumber; line.LineNumber = head.NextLineNumber(); line.LineStatus = POLineStatus.Open; line.SKUID = skus[0].SKUID; line.PurchaseQty = qty; line.Price = price; line.TaxID = 0; line.TaxValue = 0M; line.TaxInclusiveAmt = line.PurchaseQty * line.Price; line.TaxExlusiveAmt = 0M; // line.TaxInclusiveAmt / (1 + line.TaxValue); line.TaxAmt = 0M; //line.TaxExlusiveAmt * line.TaxValue; line.PlanDate = date; line.ActualDate = new DateTime(1900, 1, 1); line.ReceiveQty = 0M; line.IQCQty = 0M; line.UnfinishedReceiveQty = 0M; line.ModifyUser = SecuritySession.CurrentUser.UserId; line.ModifyTime = DateTime.Now; line.UnitID = 0; try { _session.BeginTransaction(); line.Create(_session); head.Update(_session, "CurrentLineNumber"); this.UpdatePOLineAndPoHead(_session, head); _session.Commit(); BindPOLine(_session, head); this.txtAlertMsg.InnerText = "添加成功,订单行号为" + line.LineNumber; this.txtPurchaseQty.Value = ""; } catch (Exception er) { _session.Rollback(); WebUtil.ShowError(this, er); } } #endregion } }