protected void MagicItemCommand(object sender, MagicItemEventArgs e) { if (e.CommandName == "Save") { using (ISession session = new Session()) { INVCheckHead head = null; if (this.IsNew) { head = new INVCheckHead(); head.OrderNumber = ERPUtil.NextOrderNumber(INVCheckHead.ORDER_TYPE_ADJ); head.Note = this.txtNote.Text.Trim(); head.LocationCode = this.drpLocation.SelectedValue; head.Status = INVCheckStatus.New; head.OrderTypeCode = INVCheckHead.ORDER_TYPE_ADJ; head.CreateTime = DateTime.Now; head.CreateUser = SecuritySession.CurrentUser.UserId; head.Create(session); log.DebugFormat("Create - 库存调整单: {0}", head.OrderNumber); System.Text.StringBuilder url = new System.Text.StringBuilder(); url.Append("StockAdjustmentNewLine.aspx?ordNum=").Append(head.OrderNumber); url.Append("&return="); //保存后跳转到添加明细页面 //下面的返回url设置用途: //1. 从添加明细页面点击返回按钮,将跳转到明细维护界面 //2. 明细维护界面再点击返回按钮,跳转到调整单主档维护页面,并且保留下从调整单主档维护页面进入新增页面时的查询条件 url.Append(WebUtil.escape("StockAdjustmentLine.aspx?ordNum=" + head.OrderNumber + "&return=" + WebUtil.escape(WebUtil.Param("return")))); if (log.IsDebugEnabled) { log.DebugFormat("Redirect - to添加调整明细: url={0}", url.ToString()); log.DebugFormat("返回调整明细页地址: url={0}", "StockAdjustmentLine.aspx?ordNum=" + head.OrderNumber + "&return=" + WebUtil.escape(WebUtil.Param("return"))); } this.Response.Redirect(url.ToString()); } head = INVCheckHead.Retrieve(session, this.OrderNumber); if (head.Status != INVCheckStatus.New) { log.WarnFormat("Warn - 保存库存调整单: 库存调整单{0}状态为{1},无法保存", head.OrderNumber, head.Status.ToString()); WebUtil.ShowMsg(this, "只有状态为新建的库存调整单可以修改保存!"); return; } head.Note = this.txtNote.Text.Trim(); head.LocationCode = this.drpLocation.SelectedValue; head.Update(session, "Note", "LocationCode"); log.DebugFormat("Update - 库存调整单: {0}", head.OrderNumber); WebUtil.ShowMsg(this, "保存成功"); } } }
protected void MagicItemCommand(object sender, MagicItemEventArgs e) { if (e.CommandName == "Save") { try { using (ISession session = new Session()) { try { session.BeginTransaction(); INVCheckHead objHead = null; if (this.IsNew) { objHead = new INVCheckHead(this.drpLocation.SelectedValue, Cast.Enum <INVCheckType>(this.drpCheckType.SelectedValue), this.txtMemo.Text.Trim(), SecuritySession.CurrentUser.UserId); objHead.Create(session); } else { objHead = INVCheckHead.Retrieve(session, this.OrderNumber); objHead.Note = this.txtMemo.Text.Trim(); objHead.CheckType = Cast.Enum <INVCheckType>(this.drpCheckType.SelectedValue); objHead.Update(session, "CheckType", "Note"); } session.Commit(); this.Response.Redirect("InventoryCheckWH.aspx?ordNum=" + objHead.OrderNumber + "&return=" + Microsoft.JScript.GlobalObject.escape(WebUtil.Param("return"))); } catch (Exception ex) { session.Rollback(); throw ex; } } } catch (Exception ex) { logger.Info("保存库存盘点单", ex); WebUtil.ShowMsg(this, "发生未处理的异常,请刷新页面重新操作,或者联系系统管理员"); } } }
private void SaveCheckOrder() { try { DataSet ds = Session["InvAdjustmentItem"] as DataSet; Dictionary <int, int> lstCurrentQuantity = new Dictionary <int, int>(); for (int i = 0; i < this.rptInvCheck.Items.Count; i++) { TextBox objBox = this.rptInvCheck.Items[i].FindControl("txtCurrentQuantity") as TextBox; System.Web.UI.HtmlControls.HtmlInputHidden objSKU = this.rptInvCheck.Items[i].FindControl("hidSKUID") as System.Web.UI.HtmlControls.HtmlInputHidden; try { lstCurrentQuantity.Add(Cast.Int(objSKU.Value), Cast.Int(objBox.Text)); } catch (Exception ex) { WebUtil.ShowMsg(this, "调整数量非法,请重新输入!"); return; } } using (_session = new Session()) { _session.BeginTransaction(); try { INVCheckHead objHead = INVCheckHead.Retrieve(_session, this.txtInvCheckNumber.Text); bool blnInsert = false; if (objHead == null) { blnInsert = true; objHead = new INVCheckHead(); objHead.CreateTime = DateTime.Now; objHead.CreateUser = Magic.Security.SecuritySession.CurrentUser.UserId; objHead.Note = this.txtMemo.Text; objHead.OrderNumber = Magic.ERP.ERPUtil.NextOrderNumber(Magic.ERP.Orders.INVCheckHead.ORDER_TYPE_ADJ); objHead.OrderTypeCode = INVCheckHead.ORDER_TYPE_ADJ; objHead.Status = Magic.ERP.INVCheckStatus.New; objHead.Create(_session); } else { if ((objHead.Status == Magic.ERP.INVCheckStatus.Release) || (objHead.Status == Magic.ERP.INVCheckStatus.Close)) { WebUtil.ShowMsg(this, "发布以后的盘点单不可以进行修改"); return; } objHead.Note = this.txtMemo.Text; blnInsert = false; _session.CreateEntityQuery <INVCheckLine>().Where(Exp.Eq("OrderNumber", objHead.OrderNumber)).Delete(); } objHead.CurrentLineNumber = ""; List <INVCheckLine> List = new List <INVCheckLine>(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { INVCheckLine objLine = new INVCheckLine(); objLine.SKUID = Cast.Int(ds.Tables[0].Rows[i]["SKUID"]); objLine.AreaCode = Cast.String(ds.Tables[0].Rows[i]["AreaCode"]); objLine.BeforeQty = Cast.Decimal(ds.Tables[0].Rows[i]["BeforeQty"]); objLine.CurrentQty = lstCurrentQuantity[objLine.SKUID]; objLine.LineNumber = objHead.NextLineNumber(); objLine.LocationCode = Cast.String(ds.Tables[0].Rows[i]["LocationCode"]); objLine.OrderNumber = objHead.OrderNumber; objLine.SectionCode = Cast.String(ds.Tables[0].Rows[i]["SectionCode"]); objLine.Create(_session); } objHead.Update(_session, "CurrentLineNumber"); this.txtInvCheckNumber.Text = objHead.OrderNumber; _session.Commit(); } catch (Exception ex) { _session.Rollback(); throw ex; } } WebUtil.ShowMsg(this, "库存盘点单保存成功", "操作成功"); } catch (Exception ex) { logger.Info("保存库存盘点单", ex); WebUtil.ShowMsg(this, "发生未处理的异常,请刷新页面重新操作,或者联系系统管理员"); } }