コード例 #1
0
    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, "保存成功");
            }
        }
    }
コード例 #2
0
 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, "发生未处理的异常,请刷新页面重新操作,或者联系系统管理员");
         }
     }
 }
コード例 #3
0
    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, "发生未处理的异常,请刷新页面重新操作,或者联系系统管理员");
        }
    }