Esempio n. 1
0
        private object GetEditObject()
        {
            if (this.ValidateInput())
            {
                MaterialReceive materialReceive = this._IQCFacade.CreateNewMaterialReceive();

                materialReceive.IQCNo     = FormatHelper.PKCapitalFormat(FormatHelper.CleanString(txtIQCNoEdit.Text));
                materialReceive.STLine    = int.Parse(txtIQCLineEdit.Text);
                materialReceive.OrderNo   = FormatHelper.PKCapitalFormat(FormatHelper.CleanString(txtPurchaseOrderNoEdit.Text));
                materialReceive.OrderLine = int.Parse(txtPurchaseOrderLineEdit.Text);

                materialReceive.StorageID      = FormatHelper.PKCapitalFormat(FormatHelper.CleanString(txtStorageIDEdit.Text));
                materialReceive.RealReceiveQty = int.Parse(txtRealReceiveQtyEdit.Text);
                materialReceive.ReceiveMemo    = txtReceiveMemoEdit.Text;

                materialReceive.AccountDate = FormatHelper.TODateInt(datAccountDateEdit.Text);
                materialReceive.VoucherDate = FormatHelper.TODateInt(datVoucherDateEdit.Text);

                IQCDetail iqcDetail = (IQCDetail)this._IQCFacade.GetIQCDetail(materialReceive.IQCNo, materialReceive.STLine);
                if (iqcDetail != null)
                {
                    materialReceive.STNo           = iqcDetail.STNo;
                    materialReceive.OrganizationID = iqcDetail.OrganizationID;
                    materialReceive.ItemCode       = iqcDetail.ItemCode;
                    materialReceive.Unit           = iqcDetail.Unit;
                }

                return(materialReceive);
            }
            else
            {
                return(null);
            }
        }
Esempio n. 2
0
        public static DT_MES_SOURCESTOCK_REQLIST GenerateSAPPOInfo(MaterialReceive mr)
        {
            DT_MES_SOURCESTOCK_REQLIST po = new DT_MES_SOURCESTOCK_REQLIST();

            po.PSTNG_DATE = mr.AccountDate.ToString();
            po.DOC_DATE   = mr.VoucherDate.ToString();
            po.PO_NUMBER  = mr.OrderNo.ToString();
            po.PO_ITEM    = mr.OrderLine.ToString();
            po.MATERIAL   = mr.ItemCode;
            po.PLANT      = mr.OrganizationID.ToString();
            po.STGE_LOC   = mr.StorageID;
            po.ENTRY_QNT  = mr.RealReceiveQty.ToString();
            po.ENTRY_UOM  = mr.Unit;
            po.HEADER_TXT = mr.ReceiveMemo;
            po.MOVE_TYPE  = "101";
            return(po);
        }
Esempio n. 3
0
        private object GetEditObject(Infragistics.WebUI.UltraWebGrid.UltraGridRow row)
        {
            object obj = this._IQCFacade.GetMaterialReceive(row.Cells.FromKey("IQCNo").Text, int.Parse(row.Cells.FromKey("ASNLine").Text));

            if (obj == null)
            {
                obj = this._IQCFacade.GetIQCDetail(row.Cells.FromKey("IQCNo").Text, int.Parse(row.Cells.FromKey("ASNLine").Text));
                if (obj != null)
                {
                    MaterialReceive materialReceive = this._IQCFacade.CreateNewMaterialReceive();

                    materialReceive.IQCNo     = ((IQCDetail)obj).IQCNo;
                    materialReceive.STLine    = ((IQCDetail)obj).STLine;
                    materialReceive.OrderNo   = ((IQCDetail)obj).OrderNo;
                    materialReceive.OrderLine = ((IQCDetail)obj).OrderLine;

                    materialReceive.StorageID      = ((IQCDetail)obj).StorageID;
                    materialReceive.RealReceiveQty = int.Parse(GetReceiveQty(((IQCDetail)obj).IQCNo, ((IQCDetail)obj).STLine).ToString("0"));
                    materialReceive.ReceiveMemo    = string.Empty;

                    materialReceive.AccountDate = FormatHelper.TODateInt(DateTime.Now);
                    materialReceive.VoucherDate = FormatHelper.TODateInt(DateTime.Now);

                    IQCDetail iqcDetail = (IQCDetail)this._IQCFacade.GetIQCDetail(materialReceive.IQCNo, materialReceive.STLine);
                    if (iqcDetail != null)
                    {
                        materialReceive.STNo           = iqcDetail.STNo;
                        materialReceive.OrganizationID = iqcDetail.OrganizationID;
                        materialReceive.ItemCode       = iqcDetail.ItemCode;
                        materialReceive.Unit           = iqcDetail.Unit;
                    }

                    obj = materialReceive;
                }
            }

            if (obj != null)
            {
                return((MaterialReceive)obj);
            }

            return(null);
        }
Esempio n. 4
0
        protected void cmdIQCReceive_ServerClick(object sender, System.EventArgs e)
        {
            MaterialReceive materialReceive = (MaterialReceive)this.GetEditObject();

            if (materialReceive != null)
            {
                string returnMessage = string.Empty;
                if (IQCReceive(materialReceive, ref returnMessage))
                {
                    this.gridHelper.GridBind(this.pagerToolBar.PageIndex, this.pagerToolBar.PageSize);
                    this.RequestData();
                    this.buttonHelper.PageActionStatusHandle(PageActionType.Save);

                    WebInfoPublish.PublishInfo(this, "$Message_IQCReceiveOK", languageComponent1);
                }
                else
                {
                    WebInfoPublish.Publish(this, "$Message_IQCReceiveFailed" + " : " + returnMessage, languageComponent1);
                }
            }
        }
Esempio n. 5
0
        public bool ArgumentValid(ref string returnMessage)
        {
            if (m_Argument.IQCNo == null || m_Argument.IQCNo.Trim().Length <= 0)
            {
                returnMessage = "IQC单号不能为空";
                return(false);
            }

            IQCFacade       iqcFacade       = new IQCFacade(this.DataProvider);
            MaterialReceive materialReceive = (MaterialReceive)iqcFacade.GetMaterialReceive(m_Argument.IQCNo, m_Argument.STLine);

            if (materialReceive == null)
            {
                returnMessage = "MaterialReceive数据不存在";
                return(false);
            }
            else if (materialReceive.Flag != FlagStatus.FlagStatus_MES)
            {
                returnMessage = "MaterialReceive.Flag不为MES";
                return(false);
            }

            return(true);
        }
Esempio n. 6
0
        private bool IQCReceive(MaterialReceive materialReceive, ref string returnMessage)
        {
            bool returnValue = false;

            if (materialReceive != null)
            {
                bool checkPassed = true;
                if (this._IQCFacade.IsFromASN(materialReceive.STNo))
                {
                    ASN asn = (ASN)this._IQCFacade.GetASN(materialReceive.STNo);
                    //asn单为Release不能接受
                    if (asn == null || (asn.STStatus != IQCStatus.IQCStatus_WaitCheck && asn.STStatus != IQCStatus.IQCStatus_Close))
                    {
                        checkPassed = false;
                    }
                }

                if (checkPassed)
                {
                    materialReceive.Flag         = FlagStatus.FlagStatus_MES;
                    materialReceive.MaintainUser = this.GetUserCode();

                    returnValue = this._IQCFacade.IQCReceiveMaterial((MaterialReceive)materialReceive);
                }
                else
                {
                    returnMessage = "$Message_ASNIsNotWaitCheckOrCancel";
                }
            }

            if (returnValue)
            {
                returnMessage = string.Empty;
            }
            return(returnValue);
        }
Esempio n. 7
0
        private ServiceResult RunOne(SAPWebServiceEntity webServiceEntity, MaterialReceive materialReceive, DT_MES_SOURCESTOCK_REQ materialPOParameter)
        {
            IQCFacade iqcFacade = new IQCFacade(this.DataProvider);

            string xmlFilePath = SerializeUtil.SerializeFile(this.m_Argument.TransactionCode + "_Request.xml",
                                                             typeof(DT_MES_SOURCESTOCK_REQ), materialPOParameter);

            #region TransferLog

            DBDateTime         dateTime       = FormatHelper.GetNowDBDateTime(this.DataProvider);
            SAPDataTransferLog materialPOLog  = new SAPDataTransferLog();
            TransferFacade     transferFacade = new TransferFacade(this.DataProvider);

            materialPOLog.JobID               = TransferFacade.MaterialPOJobID;
            materialPOLog.TransactionCode     = this.m_Argument.TransactionCode;
            materialPOLog.TransactionSequence = 1;
            materialPOLog.RequestDate         = dateTime.DBDate;
            materialPOLog.RequestTime         = dateTime.DBTime;
            materialPOLog.RequestContent      = xmlFilePath;
            materialPOLog.OrganizationID      = 2000;
            materialPOLog.SendRecordCount     = 1;

            transferFacade.AddSAPDataTransferLog(materialPOLog);

            #endregion

            #region Begin for Calling WebService

            try
            {
                MaterialPOServiceClientProxy clientProxy = new MaterialPOServiceClientProxy();
                clientProxy.RequestEncoding = Encoding.UTF8;
                clientProxy.Timeout         = InternalVariables.MS_TimeOut * 1000;
                clientProxy.Url             = webServiceEntity.Url;
                clientProxy.PreAuthenticate = true;
                System.Uri uri = new Uri(clientProxy.Url);
                clientProxy.Credentials = new NetworkCredential(webServiceEntity.UserName, webServiceEntity.Password).GetCredential(uri, "");
                clientProxy.MI_MES_SOURCESTOCK_REQ(materialPOParameter);
                clientProxy.Dispose();
                clientProxy = null;
            }
            catch (Exception e)
            {
                materialPOLog.Result       = "Fail";
                materialPOLog.ErrorMessage = e.Message;
                transferFacade.UpdateSAPDataTransferLog(materialPOLog);
                return(new ServiceResult(false, e.Message, materialPOLog.TransactionCode));
            }

            #endregion

            #region UPDATE tblmaterialreceive

            try
            {
                this.DataProvider.BeginTransaction();

                foreach (DT_MES_SOURCESTOCK_REQLIST post in materialPOParameter.LIST)
                {
                    materialReceive = (MaterialReceive)iqcFacade.GetMaterialReceive(materialReceive.IQCNo, materialReceive.STLine);
                    if (materialReceive != null)
                    {
                        materialReceive.Flag            = FlagStatus.FlagStatus_POST;
                        materialReceive.TransactionCode = this.m_Argument.TransactionCode;
                        iqcFacade.UpdateMaterialReceive(materialReceive);
                    }
                }

                this.DataProvider.CommitTransaction();
            }
            catch (Exception ex)
            {
                this.DataProvider.RollbackTransaction();
                return(new ServiceResult(false, ex.Message, this.m_Argument.TransactionCode));
            }

            #endregion

            return(new ServiceResult(true, "", this.m_Argument.TransactionCode));
        }
Esempio n. 8
0
        public ServiceResult Run(RunMethod runMethod)
        {
            ServiceResult returnValue = null;

            SAPWebServiceEntity webServiceEntity = System.Configuration.ConfigurationManager.GetSection("MaterialPOTransferConfig") as SAPWebServiceEntity;

            if (webServiceEntity == null)
            {
                if (System.Configuration.ConfigurationManager.AppSettings["MPOWebServiceUrl"] != null &&
                    System.Configuration.ConfigurationManager.AppSettings["MPOWebServiceUserName"] != null &&
                    System.Configuration.ConfigurationManager.AppSettings["MPOWebServicePassword"] != null)
                {
                    webServiceEntity          = new SAPWebServiceEntity();
                    webServiceEntity.Url      = System.Configuration.ConfigurationManager.AppSettings["MPOWebServiceUrl"];
                    webServiceEntity.UserName = System.Configuration.ConfigurationManager.AppSettings["MPOWebServiceUserName"];
                    webServiceEntity.Password = System.Configuration.ConfigurationManager.AppSettings["MPOWebServicePassword"];
                }
                else
                {
                    return(new ServiceResult(false, "没有维护MaterialPOTransfer对应的Service地址", this.m_Argument.TransactionCode));
                }
            }

            #region Begin for Prepare input Paremeter

            IQCFacade iqcFacade = new IQCFacade(this.DataProvider);

            object[] materialReceiveList = null;
            if (runMethod == RunMethod.Auto)
            {
                materialReceiveList = iqcFacade.QueryMaterialReceiveNotConfirmed(100);
            }
            else if (runMethod == RunMethod.Manually)
            {
                MaterialReceive materialReceive = (MaterialReceive)iqcFacade.GetMaterialReceive(m_Argument.IQCNo, m_Argument.STLine);

                if (materialReceive != null && materialReceive.Flag == FlagStatus.FlagStatus_MES)
                {
                    materialReceiveList = new MaterialReceive[] { materialReceive };
                }
            }

            #endregion

            if (materialReceiveList != null)
            {
                List <DT_MES_SOURCESTOCK_REQLIST> inventoryList = new List <DT_MES_SOURCESTOCK_REQLIST>();
                foreach (MaterialReceive materialReceive in materialReceiveList)
                {
                    System.Threading.Thread.Sleep(500);

                    this.NewTransactionCode();
                    inventoryList.Clear();

                    DT_MES_SOURCESTOCK_REQLIST post = new DT_MES_SOURCESTOCK_REQLIST();
                    post.PSTNG_DATE = materialReceive.AccountDate.ToString();
                    post.DOC_DATE   = materialReceive.VoucherDate.ToString();
                    post.PO_NUMBER  = materialReceive.OrderNo;
                    post.PO_ITEM    = materialReceive.OrderLine.ToString();
                    post.MATERIAL   = materialReceive.ItemCode;
                    post.PLANT      = materialReceive.OrganizationID.ToString();
                    post.STGE_LOC   = materialReceive.StorageID;
                    post.ENTRY_QNT  = materialReceive.RealReceiveQty.ToString();
                    post.ENTRY_UOM  = materialReceive.Unit;
                    post.HEADER_TXT = materialReceive.ReceiveMemo;
                    post.MOVE_TYPE  = "101";

                    inventoryList.Add(post);

                    DT_MES_SOURCESTOCK_REQ materialPOParameter = new DT_MES_SOURCESTOCK_REQ();
                    materialPOParameter.TRANSCODE = this.m_Argument.TransactionCode;
                    materialPOParameter.LIST      = inventoryList.ToArray();

                    returnValue = RunOne(webServiceEntity, materialReceive, materialPOParameter);
                    if (!returnValue.Result)
                    {
                        break;
                    }
                }
            }

            if (returnValue == null)
            {
                returnValue = new ServiceResult(true, "", this.m_Argument.TransactionCode);
            }
            return(returnValue);
        }
Esempio n. 9
0
        protected void cmdIQCReceiveBatch_ServerClick(object sender, System.EventArgs e)
        {
            ArrayList array = this.gridHelper.GetCheckedRows();

            if (array.Count > 0)
            {
                ArrayList items       = new ArrayList();
                ArrayList itemsFailed = new ArrayList();

                foreach (UltraGridRow row in array)
                {
                    MaterialReceive materialReceive = (MaterialReceive)this.GetEditObject(row);

                    //检查入库库别(页面上输入的是tblstorage.sapstorage)
                    string   sapStorage  = materialReceive.StorageID.Trim().ToUpper();
                    object[] storageList = this.InvFacade.QueryStorageByOrgId(materialReceive.OrganizationID, sapStorage);
                    if (storageList == null)
                    {
                        //WebInfoPublish.Publish(this, "$INVALID_STORGE" + " " + "$PageControl_IQCNo" + ":" +  materialReceive.IQCNo , languageComponent1);
                        WebInfoPublish.Publish(this, string.Format("$INVALID_STORGE    $PageControl_IQCNo:{0} $STLINE:{1}", materialReceive.IQCNo, materialReceive.STLine), languageComponent1);
                        return;
                    }

                    string returnMessage = string.Empty;
                    if (IQCReceive(materialReceive, ref returnMessage))
                    {
                        items.Add(materialReceive);
                    }
                    else
                    {
                        itemsFailed.Add(materialReceive);
                        materialReceive.ReceiveMemo = languageComponent1.GetString(returnMessage);
                    }
                }


                this.gridHelper.GridBind(this.pagerToolBar.PageIndex, this.pagerToolBar.PageSize);
                this.RequestData();
                this.buttonHelper.PageActionStatusHandle(PageActionType.Query);

                string message = string.Empty;

                if (items != null && items.Count > 0)
                {
                    message += "$Message_IQCReceiveOK" + " : \n";
                    foreach (MaterialReceive item in items)
                    {
                        message += item.IQCNo + "," + item.STLine + "\n";
                    }
                }

                if (itemsFailed != null && itemsFailed.Count > 0)
                {
                    if (message.Trim().Length > 0)
                    {
                        message += "\n";
                    }
                    message += "$Message_IQCReceiveFailed" + " : \n";
                    foreach (MaterialReceive item in itemsFailed)
                    {
                        message += item.IQCNo + "," + item.STLine + ": " + item.ReceiveMemo + "\n";
                    }
                }

                if (message.Trim().Length > 0)
                {
                    WebInfoPublish.PublishInfo(this, message, languageComponent1);
                }
            }
        }