Ejemplo n.º 1
0
        protected void cmdAdd_ServerClick(object sender, EventArgs e)
        {
            ViewState["operate"] = "Add";
            if (this.ValidateInput())
            {
                if (_TransferFacade == null)
                {
                    _TransferFacade = new WarehouseFacade(this.DataProvider);
                }

                object obj = this.GetEditObject();

                if (obj != null)
                {
                    //add前检验唯一性

                    object hasData = _TransferFacade.GetInvTransferDetail(((InvTransferDetail)obj).TransferNO, ((InvTransferDetail)obj).TransferLine);
                    if (hasData != null)
                    {
                        WebInfoPublish.Publish(this, "$Error_TransferHasData", this.languageComponent1);
                        return;
                    }

                    if (!String.IsNullOrEmpty(((InvTransferDetail)obj).MOCode))
                    {
                        MOFacade _MOFacade = new MOFacade();
                        object   MO        = _MOFacade.GetMO(((InvTransferDetail)obj).MOCode);
                        if (MO == null)
                        {
                            WebInfoPublish.Publish(this, "$Error_MOCodeNotInTBLMO", this.languageComponent1);
                            return;
                        }
                    }

                    ((InvTransferDetail)obj).TransferStatus = RecordStatus.RecordStatus_NEW;
                    ((InvTransferDetail)obj).TransferDate   = ((InvTransferDetail)obj).Mdate;
                    ((InvTransferDetail)obj).TransferTime   = ((InvTransferDetail)obj).Mtime;
                    ((InvTransferDetail)obj).TransferUser   = ((InvTransferDetail)obj).Muser;

                    //根据客户代码从表TblCustomer中取得客户名称

                    if (!String.IsNullOrEmpty(((InvTransferDetail)obj).CustomerCode))
                    {
                        Customer customer = (Customer)_TransferFacade.GetCustomer(((InvTransferDetail)obj).CustomerCode);
                        if (customer != null)
                        {
                            ((InvTransferDetail)obj).CustomerName = customer.CustomerName;
                        }
                    }

                    _TransferFacade.AddInvTransferDetail((InvTransferDetail)obj);
                }
            }
            this.RequestData();
            this.buttonHelper.PageActionStatusHandle(PageActionType.Add);
        }
Ejemplo n.º 2
0
        protected void cmdMerge_ServerClick(object sender, EventArgs e)
        {
            ArrayList array = this.GetCheckedRows();
            //A:检查Grid中至少选择2笔以上记录
            //marked by seven  2010-12-22
            //if (array.Count < 2)
            //{
            //    WebInfoPublish.PublishInfo(this, "$Error_Row_Selected_More_Two", this.languageComponent1);
            //    return;
            //}
            //B:检查选择的入库单类型,源库别,收货库别,组织必须一致。
            Hashtable htRecType       = new Hashtable();
            Hashtable htFromStorageNo = new Hashtable();
            Hashtable htToStorageNo   = new Hashtable();
            Hashtable htOrgID         = new Hashtable();

            foreach (Infragistics.WebUI.UltraWebGrid.UltraGridRow row in array)
            {
                string RecType       = row.Cells.FromKey("RECType").ToString();
                string FromStorageNo = row.Cells.FromKey("FromStorageID").ToString();
                string ToStorageNo   = row.Cells.FromKey("ToStorageID").ToString();
                string OrgID         = row.Cells.FromKey("Check").ToString();

                if (!htRecType.ContainsKey(RecType))
                {
                    htRecType.Add(RecType, "");
                }

                if (!htFromStorageNo.ContainsKey(FromStorageNo))
                {
                    htFromStorageNo.Add(FromStorageNo, "");
                }

                if (!htToStorageNo.ContainsKey(ToStorageNo))
                {
                    htToStorageNo.Add(ToStorageNo, "");
                }

                if (!htOrgID.ContainsKey(OrgID))
                {
                    htOrgID.Add(OrgID, "");
                }
            }

            if (htRecType.Count != 1)
            {
                WebInfoPublish.PublishInfo(this, "$Error_RecType_Different", this.languageComponent1);
                return;
            }

            if (htFromStorageNo.Count != 1)
            {
                WebInfoPublish.PublishInfo(this, "$Error_FromStorageNo_Different", this.languageComponent1);
                return;
            }

            if (htToStorageNo.Count != 1)
            {
                WebInfoPublish.PublishInfo(this, "$Error_ToStorageNo_Different", this.languageComponent1);
                return;
            }
            if (htOrgID.Count != 1)
            {
                WebInfoPublish.PublishInfo(this, "$Error_OrgID_Different", this.languageComponent1);
                return;
            }
            if (_TransferFacade == null)
            {
                _TransferFacade = new WarehouseFacade(this.DataProvider);
            }

            try
            {
                this.DataProvider.BeginTransaction();
                //将选择的几个移转单的Detail信息按料号Sum(PLANQTY)重新计算数量后放在该新生成的移转单下。

                Hashtable detailHT = new Hashtable();
                decimal   totalQty = 0;
                foreach (Infragistics.WebUI.UltraWebGrid.UltraGridRow row in array)
                {
                    string  TransferNO = row.Cells.FromKey("TransferNO").ToString();
                    decimal qty        = _TransferFacade.QueryTransferQty(TransferNO);
                    totalQty += qty;

                    object[] objs = _TransferFacade.GetInvTransferDetailByTransferNO(TransferNO);

                    if (objs != null)
                    {
                        foreach (InvTransferDetail tranferDetail in objs)
                        {
                            if (!detailHT.ContainsKey(tranferDetail.ItemCode))
                            {
                                detailHT.Add(tranferDetail.ItemCode, tranferDetail.Planqty);
                            }
                            else
                            {
                                detailHT[tranferDetail.ItemCode] = decimal.Parse(detailHT[tranferDetail.ItemCode].ToString()) + tranferDetail.Planqty;
                            }
                        }
                    }
                }

                //C:按规则 MESXXXXXXX(MES + 7位数字)生成新的移转单号(可以利用TblSerialBook表)
                string newTransNo = this.CreateNewTransNo();

                DBDateTime  dbDateTime  = FormatHelper.GetNowDBDateTime(this.DataProvider);
                InvTransfer invTransfer = new InvTransfer();
                invTransfer.TransferNO     = newTransNo;
                invTransfer.TransferStatus = RecordStatus.RecordStatus_NEW;
                invTransfer.CreateDate     = dbDateTime.DBDate;
                invTransfer.CreateTime     = dbDateTime.DBTime;
                invTransfer.CreateUser     = this.GetUserCode();
                invTransfer.FromStorageID  = (array[0] as Infragistics.WebUI.UltraWebGrid.UltraGridRow).Cells.FromKey("FromStorageID").Value.ToString();
                invTransfer.ToStorageID    = (array[0] as Infragistics.WebUI.UltraWebGrid.UltraGridRow).Cells.FromKey("ToStorageID").Value.ToString();
                invTransfer.Rectype        = (array[0] as Infragistics.WebUI.UltraWebGrid.UltraGridRow).Cells.FromKey("RECType").Value.ToString();
                invTransfer.Memo           = "";
                invTransfer.Mdate          = dbDateTime.DBDate;
                invTransfer.Mtime          = dbDateTime.DBTime;
                invTransfer.Muser          = this.GetUserCode();
                invTransfer.OrgID          = int.Parse((array[0] as Infragistics.WebUI.UltraWebGrid.UltraGridRow).Cells.FromKey("OrganizationID").Value.ToString());
                _TransferFacade.AddInvTransfer(invTransfer);

                int i = 1;
                foreach (DictionaryEntry de in detailHT)
                {
                    //ORDERNO,ORDERLINE,MEMO,MOCODE,CustomerCode,CUSTOMERNAME都为空,ACTQTY=0
                    InvTransferDetail detail = new InvTransferDetail();
                    detail.TransferNO     = newTransNo;
                    detail.TransferLine   = i++;
                    detail.OrderNO        = "";
                    detail.OrderLine      = 0;
                    detail.Memo           = "";
                    detail.MOCode         = "";
                    detail.CustomerCode   = "";
                    detail.CustomerName   = "";
                    detail.Actqty         = 0;
                    detail.Muser          = this.GetUserCode();
                    detail.Mdate          = dbDateTime.DBDate;
                    detail.Mtime          = dbDateTime.DBTime;
                    detail.TransferDate   = dbDateTime.DBDate;
                    detail.TransferTime   = dbDateTime.DBTime;
                    detail.TransferUser   = this.GetUserCode();
                    detail.TransferStatus = RecordStatus.RecordStatus_NEW;
                    detail.ItemCode       = de.Key.ToString();
                    detail.Planqty        = decimal.Parse(de.Value.ToString());

                    _TransferFacade.AddInvTransferDetail(detail);
                }

                //D:将关联关系插入table:TBLInvTransferMerge
                foreach (Infragistics.WebUI.UltraWebGrid.UltraGridRow row in array)
                {
                    InvTransferMerge merge = new InvTransferMerge();
                    merge.Transferno = newTransNo;
                    //merge.Frmtransferno = (array[0] as Infragistics.WebUI.UltraWebGrid.UltraGridRow).Cells.FromKey("FromStorageID").ToString();
                    //modify by li 2011.1.19
                    merge.Frmtransferno = row.Cells.FromKey("TransferNO").ToString();
                    merge.Muser         = this.GetUserCode();
                    merge.Mdate         = dbDateTime.DBDate;
                    merge.Mtime         = dbDateTime.DBTime;

                    _TransferFacade.AddInvTransferMerge(merge);
                }

                this.DataProvider.CommitTransaction();

                cmdQuery_ServerClick(null, null);

                WebInfoPublish.PublishInfo(this, string.Format("$Success_Merge_Transfer {0}", newTransNo), this.languageComponent1);
            }
            catch (Exception ex)
            {
                this.DataProvider.RollbackTransaction();
            }
        }