protected void Page_Load(object sender, System.EventArgs e)
        {
            this.InitOnPostBack();

            if (!IsPostBack)
            {
                // 初始化页面语言
                this.InitPageLanguage(this.languageComponent1, false);

                // 初始化界面UI
                this.InitUI();
                this.InitButtonHelp();
                this.SetEditObject(null);
                this.InitWebGrid();

                // 初始化控件
                this.BuildOrgList(this.drpOrgEdit);
                this.BuildOrgList(this.drpOrgQuery);
                this.chkActiveQuery.Checked = true;
            }

            _IQCFacade = new IQCFacade(base.DataProvider);

            this.SetButtonsForActive(this.chkActiveQuery.Checked);
        }
Beispiel #2
0
        protected override object GetEditObject(GridRecord row)
        {
            if (_iqcfacade == null)
            {
                _iqcfacade = new BenQGuru.eMES.IQC.IQCFacade(base.DataProvider);
            }
            string ReceiptNo   = this.txtReceiveNoQuery.Text;
            int    ReceiptLine = int.Parse(row.Items.FindItemByKey("ReceiptLine").Value.ToString());
            object obj         = _iqcfacade.GetInvReceiptDetailForUpdate(ReceiptNo, ReceiptLine);

            if (((InvReceiptDetail)obj).Recstatus == "CLOSE" || ((InvReceiptDetail)obj).Recstatus == "WAITCHECK")
            {
                WebInfoPublish.Publish(this, "$BS_TicketStatus_CannotUpdate", this.languageComponent1);
                return(null);
            }

            object objAsn = _iqcfacade.GetASN(ReceiptNo);

            if (objAsn != null)
            {
                WebInfoPublish.Publish(this, "$BS_ReNo_Create_ANSNO $InvReceiptNO:" + this.txtReceiveNoQuery.Text, this.languageComponent1);
                return(null);
            }
            return(obj);
        }
Beispiel #3
0
        protected override bool ValidateInput()
        {
            PageCheckManager manager = new PageCheckManager();

            manager.Add(new LengthCheck(this.lblOrderNoEd, this.txtOrderNoEdit, 40, true));
            manager.Add(new NumberCheck(this.lblReceiveLineEdit, this.txtReceiveLineEdit, Int32.MinValue, Int32.MaxValue, true));
            manager.Add(new DecimalCheck(this.lblPlanQtyEdit, txtPlanQtyEdit, decimal.MinValue, decimal.MaxValue, true));
            manager.Add(new NumberCheck(this.lblOrderLineEdit, txtOrderLineEdit, Int32.MinValue, Int32.MaxValue, true));
            manager.Add(new LengthCheck(this.lblMaterialCodeEdit, this.txtMaterialCodeEdit, 40, true));


            if (!manager.Check())
            {
                WebInfoPublish.Publish(this, manager.CheckMessage, this.languageComponent1);
                return(false);
            }
            if (_iqcfacade == null)
            {
                _iqcfacade = new BenQGuru.eMES.IQC.IQCFacade(base.DataProvider);
            }
            object objAsn = _iqcfacade.GetASN(this.txtReceiveNoQuery.Text);

            if (objAsn != null)
            {
                WebInfoPublish.Publish(this, "$BS_ReNo_Create_ANSNO $InvReceiptNO:" + this.txtReceiveNoQuery.Text, this.languageComponent1);
                return(false);
            }

            return(true);
        }
Beispiel #4
0
        protected override void AddDomainObject(object domainObject)
        {
            if (_iqcfacade == null)
            {
                _iqcfacade = new BenQGuru.eMES.IQC.IQCFacade(base.DataProvider);
            }
            //新增前唯一性检查

            int count = this._iqcfacade.GetINVReceiptRepeateCount(FormatHelper.CleanString(this.txtReceiveNoEdit.Text.Trim()), OrgId);

            if (count > 0)
            {
                WebInfoPublish.Publish(this, "$BS_ALREADY_INVReceipt", this.languageComponent1);
                return;
            }
            DBDateTime dbDateTime = FormatHelper.GetNowDBDateTime(this.DataProvider);

            ((Domain.IQC.InvReceipt)domainObject).Recstatus      = "NEW";
            ((Domain.IQC.InvReceipt)domainObject).Createdate     = dbDateTime.DBDate;
            ((Domain.IQC.InvReceipt)domainObject).Createtime     = dbDateTime.DBTime;
            ((Domain.IQC.InvReceipt)domainObject).Createuser     = this.GetUserCode();
            ((Domain.IQC.InvReceipt)domainObject).Mdate          = dbDateTime.DBDate;
            ((Domain.IQC.InvReceipt)domainObject).Mtime          = dbDateTime.DBTime;
            ((Domain.IQC.InvReceipt)domainObject).Muser          = this.GetUserCode();
            ((Domain.IQC.InvReceipt)domainObject).IsAllInStorage = "N";
            this._iqcfacade.AddInvReceipt((Domain.IQC.InvReceipt)domainObject);
        }
Beispiel #5
0
        protected override void DeleteDomainObjects(ArrayList domainObjects)
        {
            if (_iqcfacade == null)
            {
                _iqcfacade = new BenQGuru.eMES.IQC.IQCFacade(base.DataProvider);
            }
            foreach (Domain.IQC.InvReceipt invreceipt in (Domain.IQC.InvReceipt[])domainObjects.ToArray(typeof(Domain.IQC.InvReceipt)))
            {
                if (invreceipt.Recstatus.ToUpper() != "NEW")
                {
                    WebInfoPublish.Publish(this, "$BS_TicketStatus_Error", this.languageComponent1);
                    return;
                }

                object obj = _iqcfacade.GetASN(invreceipt.Receiptno);
                if (obj != null)
                {
                    WebInfoPublish.Publish(this, "$BS_ReNo_Create_ANSNO $InvReceiptNO:" + invreceipt.Receiptno, this.languageComponent1);
                    return;
                }

                //删除字表
                object[] objs = this._iqcfacade.QueryINVReceiptDetail2ReceiptNo(invreceipt.Receiptno);
                if (objs != null)
                {
                    foreach (Domain.IQC.InvReceiptDetail invreceiptdetail in objs)
                    {
                        this._iqcfacade.DeleteInvReceiptDetail(invreceiptdetail);
                    }
                }
            }

            this._iqcfacade.DeleteInvReceipt((Domain.IQC.InvReceipt[])domainObjects.ToArray(typeof(Domain.IQC.InvReceipt)));
        }
Beispiel #6
0
        //检查ASN明细所有行状态为Cancel
        /// <summary>
        /// 检查ASN明细所有行状态为Cancel
        /// </summary>
        /// <param name="iqcNo">IQC检验单号</param>
        /// <returns>全部是Cancel:true;否则:false</returns>
        private bool CheckAllASNDetailIsCancel(string iqcNo)
        {
            if (_IQCFacade == null)
            {
                _IQCFacade = new IQCFacade(base.DataProvider);
            }
            _InventoryFacade = new InventoryFacade(base.DataProvider);

            AsnIQC asnIqc = (AsnIQC)_IQCFacade.GetAsnIQC(iqcNo);

            if (asnIqc != null)
            {
                object[] objAsnDetail = _InventoryFacade.GetASNDetailByStNo(asnIqc.StNo);
                if (objAsnDetail != null)
                {
                    foreach (ASNDetail asnDetail in objAsnDetail)
                    {
                        if (asnDetail.Status != ASNLineStatus.Cancel)
                        {
                            return(false);
                        }
                    }
                }
            }
            return(true);
        }
Beispiel #7
0
 //Grid中点击按钮
 protected override void Grid_ClickCell(GridRecord row, string commandName)
 {
     if (_IQCFacade == null)
     {
         _IQCFacade = new IQCFacade(base.DataProvider);
     }
     if (commandName == "btnInspect")
     {
         string iqcNo = row.Items.FindItemByKey("IQCNo").Text.Trim();
         AsnIQC iqc   = (AsnIQC)_IQCFacade.GetAsnIQC(iqcNo);
         if (iqc.Status == IQCStatus.IQCStatus_Cancel)
         {
             WebInfoPublish.Publish(this, "IQC检验单已取消!", this.languageComponent1);
             return;
         }
         else if (iqc.Status == IQCStatus.IQCStatus_Release)
         {
             //更新检验单状态为WaitCheck
             AsnIQC asnIqc = (AsnIQC)_IQCFacade.GetAsnIQC(iqcNo);
             asnIqc.Status = IQCStatus.IQCStatus_WaitCheck;
             _IQCFacade.UpdateAsnIQC(asnIqc);
         }
         Response.Redirect(this.MakeRedirectUrl("FIQCCheckResultMP.aspx", new string[] { "IQCNo" }, new string[] { iqcNo }));
     }
 }
Beispiel #8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            _IQCFacade = new IQCFacade(this.DataProvider);

            InitOnPostBack();

            if (!IsPostBack)
            {
                // 初始化页面语言
                this.InitPageLanguage(this.languageComponent1, false);
                // 初始化界面UI
                this.InitUI();
                InitButtonHelp();
                SetEditObject(null);
                this.InitWebGrid();
                this.txtIQCNo.Enabled = false;

                this.InitParameters();
                if (this.txtIQCNo.Text.Trim() != string.Empty)
                {
                    RequestData();
                    this.buttonHelper.PageActionStatusHandle(PageActionType.Query);
                }
            }
        }
Beispiel #9
0
        //免检
        protected void cmdStatusSTS_ServerClick(object sender, EventArgs e)
        {
            if (_IQCFacade == null)
            {
                _IQCFacade = new IQCFacade(base.DataProvider);
            }
            ArrayList array = this.gridHelper.GetCheckedRows();

            _InventoryFacade = new InventoryFacade(base.DataProvider);
            if (array.Count > 0)
            {
                StringBuilder sbShowMsg = new StringBuilder();
                foreach (GridRecord row in array)
                {
                    string iqcNo = row.Items.FindItemByKey("IQCNo").Value.ToString();
                    AsnIQC iqc   = (AsnIQC)_IQCFacade.GetAsnIQC(iqcNo);


                    if (iqc.Status != IQCStatus.IQCStatus_Release)
                    {
                        //IQC检验单号: {0} 状态不是初始化
                        sbShowMsg.AppendFormat("IQC检验单号: {0} 状态不是初始化,不能免检 ", iqcNo);
                        continue;
                    }

                    ASN asn1 = (ASN)_InventoryFacade.GetASN(iqc.StNo);
                    if (asn1.Status != ASN_STATUS.ASN_IQC)
                    {
                        WebInfoPublish.Publish(this, asn1.StNo + "入库指令的状态必须是IQC检验!", this.languageComponent1);
                        return;
                    }
                    //免检
                    try
                    {
                        this.DataProvider.BeginTransaction();
                        ToSTS(iqcNo);
                        this.DataProvider.CommitTransaction();
                    }
                    catch (Exception ex)
                    {
                        sbShowMsg.AppendFormat("IQC检验单号: {0} {1}", iqcNo, ex.Message);
                        this.DataProvider.RollbackTransaction();
                        continue;
                    }
                }
                if (sbShowMsg.Length > 0)
                {
                    string showMsg = sbShowMsg.ToString();
                    WebInfoPublish.Publish(this, showMsg, this.languageComponent1);
                }
                else
                {
                    WebInfoPublish.Publish(this, "免检成功", this.languageComponent1);
                }
                this.gridHelper.RequestData();//刷新页面
            }
        }
Beispiel #10
0
 protected override object[] LoadDataSource(int inclusive, int exclusive)
 {
     if (_iqcfacade == null)
     {
         _iqcfacade = new BenQGuru.eMES.IQC.IQCFacade(base.DataProvider);
     }
     return(this._iqcfacade.GetInvReceiptDetailForQuery(
                FormatHelper.CleanString(this.txtReceiveNoQuery.Text),
                OrgId, inclusive, exclusive));
 }
Beispiel #11
0
        protected override int GetRowCount()
        {
            if (_iqcfacade == null)
            {
                _iqcfacade = new BenQGuru.eMES.IQC.IQCFacade(base.DataProvider);
            }

            return(this._iqcfacade.GetInvReceiptDetailCount(
                       FormatHelper.CleanString(this.txtReceiveNoQuery.Text),
                       OrgId));
        }
Beispiel #12
0
        protected override void UpdateDomainObject(object domainObject)
        {
            if (_iqcfacade == null)
            {
                _iqcfacade = new BenQGuru.eMES.IQC.IQCFacade(base.DataProvider);
            }
            DBDateTime dbDateTime = FormatHelper.GetNowDBDateTime(this.DataProvider);

            ((InvReceiptDetail)domainObject).Mdate = dbDateTime.DBDate;
            ((InvReceiptDetail)domainObject).Mtime = dbDateTime.DBTime;
            ((InvReceiptDetail)domainObject).Muser = this.GetUserCode();

            this._iqcfacade.UpdateInvReceiptDetail((InvReceiptDetail)domainObject);
        }
Beispiel #13
0
        private object GetUpdateObject()
        {
            if (_iqcfacade == null)
            {
                _iqcfacade = new BenQGuru.eMES.IQC.IQCFacade(base.DataProvider);
            }
            string ReceiptNo   = FormatHelper.CleanString(this.txtReceiveNoQuery.Text);
            int    ReceiptLine = 0;

            if (FormatHelper.CleanString(this.txtReceiveLineEdit.Text).Length > 0)
            {
                ReceiptLine = int.Parse(FormatHelper.CleanString(this.txtReceiveLineEdit.Text));
            }
            object           obj = this._iqcfacade.GetInvReceiptDetailForUpdate(ReceiptNo, ReceiptLine);
            InvReceiptDetail invreceiptdetail = (InvReceiptDetail)obj;

            if (invreceiptdetail == null)
            {
                invreceiptdetail = this._iqcfacade.CreateNewINVReceiptDetail();

                invreceiptdetail.Receiptno   = FormatHelper.CleanString(this.txtReceiveNoQuery.Text.ToUpper(), 40);
                invreceiptdetail.Receiptline = int.Parse(this.txtReceiveLineEdit.Text);
                invreceiptdetail.Itemcode    = FormatHelper.CleanString(this.txtMaterialCodeEdit.Text, 40);
                invreceiptdetail.Orderline   = int.Parse(this.txtOrderLineEdit.Text);
                invreceiptdetail.Orderno     = FormatHelper.CleanString(this.txtOrderNoEdit.Text, 40);
                invreceiptdetail.Planqty     = decimal.Parse(this.txtPlanQtyEdit.Text);
                invreceiptdetail.Memo        = FormatHelper.CleanString(this.txtMemoEdit.Text, 2000);
                invreceiptdetail.InvUser     = FormatHelper.CleanString(this.txtManagerCode.Text, 100);//added by Jarvis
                invreceiptdetail.Muser       = this.GetUserCode();
                invreceiptdetail.Recstatus   = FormatHelper.CleanString(this.txtTicketStatus.Text, 2000);
                return(invreceiptdetail);
            }
            else
            {
                invreceiptdetail.Receiptno   = FormatHelper.CleanString(this.txtReceiveNoQuery.Text.ToUpper(), 40);
                invreceiptdetail.Receiptline = int.Parse(this.txtReceiveLineEdit.Text);
                invreceiptdetail.Itemcode    = FormatHelper.CleanString(this.txtMaterialCodeEdit.Text, 40);
                invreceiptdetail.Orderline   = int.Parse(this.txtOrderLineEdit.Text);
                invreceiptdetail.Orderno     = FormatHelper.CleanString(this.txtOrderNoEdit.Text, 40);
                invreceiptdetail.Planqty     = decimal.Parse(this.txtPlanQtyEdit.Text);
                invreceiptdetail.Memo        = FormatHelper.CleanString(this.txtMemoEdit.Text, 2000);
                invreceiptdetail.InvUser     = FormatHelper.CleanString(this.txtManagerCode.Text, 100);//added by Jarvis
                invreceiptdetail.Muser       = this.GetUserCode();
                invreceiptdetail.Recstatus   = FormatHelper.CleanString(this.txtTicketStatus.Text, 2000);
                return(invreceiptdetail);
            }
        }
Beispiel #14
0
 protected override object[] LoadDataSource(int inclusive, int exclusive)
 {
     if (_iqcfacade == null)
     {
         _iqcfacade = new BenQGuru.eMES.IQC.IQCFacade(base.DataProvider);
     }
     return(this._iqcfacade.GetINVReceipt(
                FormatHelper.CleanString(this.txtReceiveNoQuery.Text),
                FormatHelper.CleanString(this.txtMaterialCodeQuery.Text),
                FormatHelper.CleanString(this.drpTicketTypeQuery.SelectedValue),
                FormatHelper.CleanString(this.txtVendorCodeQuery.Text),
                FormatHelper.TODateInt(this.dateCreateDateStart.Text),
                FormatHelper.TODateInt(this.dateCreateDateEnd.Text),
                FormatHelper.CleanString(this.drpTicketStatus.SelectedValue),
                FormatHelper.CleanString(this.txtStorageQuery.Text),
                OrgId, inclusive, exclusive));
 }
Beispiel #15
0
        protected override object GetEditObject()
        {
            if (_iqcfacade == null)
            {
                _iqcfacade = new BenQGuru.eMES.IQC.IQCFacade(base.DataProvider);
            }
            string ReceiptNo = FormatHelper.PKCapitalFormat(FormatHelper.CleanString(this.txtReceiveNoEdit.Text.ToUpper(), 40));
            object obj       = this._iqcfacade.GetINVRecepitForUpdate(ReceiptNo);

            Domain.IQC.InvReceipt invreceipt = (Domain.IQC.InvReceipt)obj;
            if (invreceipt == null)
            {
                invreceipt            = this._iqcfacade.CreateNewInvReceipt();
                invreceipt.Receiptno  = FormatHelper.PKCapitalFormat(FormatHelper.CleanString(this.txtReceiveNoEdit.Text.Trim().ToUpper(), 40));
                invreceipt.Rectype    = FormatHelper.CleanString(this.drpTicketTypeEdit.SelectedValue.Trim(), 40);
                invreceipt.Vendorcode = FormatHelper.CleanString(this.txtVendorCodeEdit.Text.Trim(), 40);
                if (invreceipt.Vendorcode == "")
                {
                    invreceipt.Vendorcode = " ";
                }
                invreceipt.Storageid = FormatHelper.CleanString(this.txtStorageEdit.Text.Trim(), 40);
                invreceipt.Muser     = this.GetUserCode();
                invreceipt.Orgid     = OrgId;
                invreceipt.Memo      = FormatHelper.CleanString(this.txtDescription.Text.Trim(), 2000);
                invreceipt.Recstatus = FormatHelper.CleanString(this.txtTicketStatus.Text, 40);

                return(invreceipt);
            }
            else
            {
                invreceipt.Receiptno  = FormatHelper.PKCapitalFormat(FormatHelper.CleanString(this.txtReceiveNoEdit.Text.Trim().ToUpper(), 40));
                invreceipt.Rectype    = FormatHelper.CleanString(this.drpTicketTypeEdit.SelectedValue.Trim(), 40);
                invreceipt.Vendorcode = FormatHelper.CleanString(this.txtVendorCodeEdit.Text.Trim(), 40);
                if (invreceipt.Vendorcode == "")
                {
                    invreceipt.Vendorcode = " ";
                }
                invreceipt.Storageid = FormatHelper.CleanString(this.txtStorageEdit.Text.Trim(), 40);
                invreceipt.Muser     = this.GetUserCode();
                invreceipt.Orgid     = OrgId;
                invreceipt.Memo      = FormatHelper.CleanString(this.txtDescription.Text.Trim(), 2000);
                invreceipt.Recstatus = FormatHelper.CleanString(this.txtTicketStatus.Text, 40);

                return(invreceipt);
            }
        }
Beispiel #16
0
        protected override void AddDomainObject(object domainObject)
        {
            if (_iqcfacade == null)
            {
                _iqcfacade = new BenQGuru.eMES.IQC.IQCFacade(base.DataProvider);
            }
            //单据已经关闭的TBLINVReceipt. RECSTATUS不能新增行项目

            string ReceiptNo   = this.txtReceiveNoQuery.Text.Trim();
            int    ReceiptLine = int.Parse(this.txtReceiveLineEdit.Text.Trim());
            object obj         = _iqcfacade.GetINVRecepitForUpdate(ReceiptNo, OrgId);

            if (((InvReceipt)obj).Recstatus == "CLOSE")
            {
                WebInfoPublish.Publish(this, "$BS_TicketStatus_IsClose_CannotAdd", this.languageComponent1);
                return;
            }

            ((InvReceiptDetail)domainObject).Qualifyqty = 0;
            ((InvReceiptDetail)domainObject).Actqty     = 0;
            ((InvReceiptDetail)domainObject).Iqcstatus  = "NEW";

            //新增前唯一性检查
            int count = this._iqcfacade.GetInvReceiptDetailRepeatCount(ReceiptNo, ReceiptLine);

            if (count > 0)
            {
                WebInfoPublish.Publish(this, "$BS_ALREADY_INVReceipt", this.languageComponent1);
                return;
            }

            DBDateTime dbDateTime = FormatHelper.GetNowDBDateTime(this.DataProvider);

            ((InvReceiptDetail)domainObject).Recstatus   = "NEW";
            ((InvReceiptDetail)domainObject).Recdate     = dbDateTime.DBDate;
            ((InvReceiptDetail)domainObject).Rectime     = dbDateTime.DBTime;
            ((InvReceiptDetail)domainObject).Recuser     = this.GetUserCode();
            ((InvReceiptDetail)domainObject).Mdate       = dbDateTime.DBDate;
            ((InvReceiptDetail)domainObject).Mtime       = dbDateTime.DBTime;
            ((InvReceiptDetail)domainObject).Muser       = this.GetUserCode();
            ((InvReceiptDetail)domainObject).IsInStorage = "N";

            this._iqcfacade.AddInvReceiptDetail((InvReceiptDetail)domainObject);
        }
Beispiel #17
0
        protected override string[] FormatExportRecord(object obj)
        {
            _IQCFacade = new IQCFacade(base.DataProvider);



            string IQCNO = ((AsnIQCExt)obj).IqcNo;



            _InventoryFacade = new InventoryFacade(this.DataProvider);

            string desc = string.Empty;

            Domain.MOModel.Material m = (Domain.MOModel.Material)_InventoryFacade.GetMaterialByDQMCode(((AsnIQCExt)obj).DQMCode);
            if (m != null)
            {
                desc = m.MchlongDesc;
            }



            return(new string[] { ((AsnIQCExt)obj).IqcNo,
                                  ((AsnIQCExt)obj).StNo,
                                  this.GetInvInName(((AsnIQCExt)obj).StType),
                                  ((AsnIQCExt)obj).InvNo,
                                  ((AsnIQCExt)obj).STORAGECODE,
                                  ((AsnIQCExt)obj).DQMCode,
                                  desc,
                                  ((AsnIQCExt)obj).StType == "UB" ? ((AsnIQCExt)obj).CustmCode : ((AsnIQCExt)obj).VendorMCode,
                                  this.GetStatusName(((AsnIQCExt)obj).Status),
                                  FormatHelper.GetChName(((AsnIQCExt)obj).IqcType),
                                  ((AsnIQCExt)obj).QcStatus == "Y" ? "合格" : (((AsnIQCExt)obj).QcStatus == "N" ? "不合格" : ""),
                                  ((AsnIQCExt)obj).AppQty.ToString(),
                                  ((AsnIQCExt)obj).NgQty.ToString(),
                                  _IQCFacade.ReturnQtyTotalWithIQCNO(IQCNO).ToString(),
                                  _IQCFacade.ReformQtyTotalWithIQCNO(IQCNO).ToString(),
                                  _IQCFacade.GiveQtyTotalWithIQCNO(IQCNO).ToString(),
                                  _IQCFacade.AcceptQtyTotalWithIQCNO(IQCNO).ToString(),
                                  ((AsnIQCExt)obj).VendorCode,
                                  FormatHelper.ToDateString(((AsnIQCExt)obj).AppDate, "/") });
        }
Beispiel #18
0
        protected override int GetRowCount()
        {
            if (_IQCFacade == null)
            {
                _IQCFacade = new IQCFacade(base.DataProvider);
            }
            SystemSettingFacade systemSettingFacade = new SystemSettingFacade(this.DataProvider);
            UserFacade          userFacade          = new UserFacade(this.DataProvider);

            string[] usergroupList = userFacade.GetUserGroupCodeofUser1(GetUserCode());
            return(this._IQCFacade.QueryAsnIQC1Count(usergroupList,
                                                     FormatHelper.CleanString(this.drpStorageInASNQuery.SelectedValue),
                                                     FormatHelper.CleanString(this.txtInvNoQuery.Text),
                                                     this.drpStorageInTypeQuery.SelectedValue,
                                                     FormatHelper.CleanString(this.txtIQCNoQuery.Text),
                                                     FormatHelper.CleanString(this.drpIQCStatusQuery.SelectedValue),
                                                     FormatHelper.TODateInt(this.txtAppCDateQuery.Text),
                                                     FormatHelper.TODateInt(this.txtAppEDateQuery.Text), txtCartonCode.Text.ToUpper(), txtSNQuery.Text.ToUpper(),
                                                     FormatHelper.CleanString(this.txtDQMCodeQuery.Text), FormatHelper.CleanString(this.txtCusMCodeQuery.Text), drpStorageQuery.SelectedValue));
        }
Beispiel #19
0
        protected override object GetEditObject(GridRecord row)
        {
            if (row.Items.FindItemByKey("TicketStatus").Value.ToString() == "关闭")
            {
                WebInfoPublish.Publish(this, "$BS_TicketStatus_IsClose", this.languageComponent1);
                return(null);
            }



            if (_iqcfacade == null)
            {
                _iqcfacade = new BenQGuru.eMES.IQC.IQCFacade(base.DataProvider);
            }

            object objASN = _iqcfacade.GetASN(row.Items.FindItemByKey("ReceiveNo").Value.ToString());

            if (objASN != null)
            {
                WebInfoPublish.Publish(this, "$BS_ReNo_Create_ANSNO $InvReceiptNO:" + row.Items.FindItemByKey("ReceiveNo").Value.ToString(), this.languageComponent1);
                return(null);
            }


            //object[] objs = _iqcfacade.QueryINVReceiptDetail2ReceiptNo(row.Cells[1].Value.ToString());
            //if (objs != null)
            //{
            //    WebInfoPublish.Publish(this, "$BS_ReNo_Create_Detail $InvReceiptNO:" + row.Cells[1].Value.ToString(), this.languageComponent1);
            //    return null;
            //}


            object obj = this._iqcfacade.GetINVRecepitForUpdate(row.Items.FindItemByKey("ReceiveNo").Value.ToString(), OrgId);

            if (obj != null)
            {
                return((Domain.IQC.InvReceipt)obj);
            }
            return(null);
        }
Beispiel #20
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);
        }
Beispiel #21
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            this.InitOnPostBack();

            if (!IsPostBack)
            {
                // 初始化页面语言
                this.InitPageLanguage(this.languageComponent1, false);

                // 初始化界面UI
                this.InitUI();
                this.InitButtonHelp();
                this.SetEditObject(null);
                this.InitWebGrid();

                // 初始化控件
                this.drpROHSQuery_Load();
                this.drpShipToStockQuery_Load();
                this.datAccountDateEdit.Text = DateTime.Now.ToString("yyyy-MM-dd");;
                this.datVoucherDateEdit.Text = DateTime.Now.ToString("yyyy-MM-dd");;
            }

            _IQCFacade = new IQCFacadeFactory(base.DataProvider).CreateIQCFacade();
        }
Beispiel #22
0
        public void Receive(MATPO_REQ request)
        {
            ((SQLDomainDataProvider)DataProvider).PersistBroker.AutoCloseConnection = false;
            ((SQLDomainDataProvider)DataProvider).PersistBroker.OpenConnection();
            try
            {
                TransferFacade     transferFacade = new TransferFacade(this.DataProvider);
                SAPDataTransferLog log;
                DBDateTime         currentDateTime = FormatHelper.GetNowDBDateTime(this.DataProvider);
                string             xmlFilePath;
                if (request.TransactionCode == null || request.TransactionCode == string.Empty)
                {
                    // New Log
                    log = transferFacade.CreateNewSAPDataTransferLog();
                    //log.ErrorMessage
                    //log.FinishedDate
                    //log.FinishedTime
                    log.JobID               = TransferFacade.MaterialPOJobID;
                    log.OrganizationID      = 2000;
                    log.ReceivedRecordCount = (request.POList == null || request.POList.Count == 0) ? 0 : request.POList.Count;
                    log.TransactionCode     = TransferFacade.MaterialPOJobID + "_"
                                              + currentDateTime.DBDate.ToString() + "_"
                                              + currentDateTime.DBTime.ToString()
                                              + DateTime.Now.Millisecond.ToString();
                    log.TransactionSequence = 1;
                    xmlFilePath             = SerializeUtil.SerializeFile(log.TransactionCode + "_Response.xml",
                                                                          typeof(MATPO_REQ), request);
                    log.RequestContent = xmlFilePath;
                    log.RequestDate    = currentDateTime.DBDate;
                    log.RequestTime    = currentDateTime.DBTime;
                    //log.Result
                    log.SendRecordCount = 0;
                    transferFacade.AddSAPDataTransferLog(log);

                    request.TransactionCode = log.TransactionCode;
                }
                else
                {
                    // Update log
                    log = transferFacade.GetSAPDataTransferLog(request.TransactionCode, 1) as SAPDataTransferLog;
                    //log.ErrorMessage
                    //log.FinishedDate
                    //log.FinishedTime
                    log.ReceivedRecordCount = (request.POList == null || request.POList.Count == 0) ? 0 : request.POList.Count;
                    xmlFilePath             = SerializeUtil.SerializeFile(log.TransactionCode + "_Response.xml",
                                                                          typeof(MATPO_REQ), request);
                    log.ResponseContent = xmlFilePath;
                    log.ResponseDate    = currentDateTime.DBDate;
                    log.ResponseTime    = currentDateTime.DBTime;
                    //log.Result
                    transferFacade.UpdateSAPDataTransferLog(log);
                }

                if (request.POList == null || request.POList.Count == 0)
                {
                    log.Result       = "Fail";
                    log.ErrorMessage = "PO list is null.";
                    log.FinishedDate = 0;
                    log.FinishedTime = 0;

                    transferFacade.UpdateSAPDataTransferLog(log);
                    return;
                }
                else
                {
                    MaterialStockFacade msf       = new MaterialStockFacade(this.DataProvider);
                    IQCFacade           iqcFacade = new IQCFacade(this.DataProvider);
                    RawReceive4SAP      rawReceive4SAP;

                    List <MaterialReceive> confirmMaterialReceiveList = new List <MaterialReceive>();

                    try
                    {
                        this.DataProvider.BeginTransaction();

                        foreach (MES_MATPO mpo in request.POList)
                        {
                            rawReceive4SAP = msf.CreateNewRawReceive4SAP();
                            rawReceive4SAP.ErrorMessage         = mpo.Message;
                            rawReceive4SAP.Flag                 = mpo.Flag;
                            rawReceive4SAP.MaintainDate         = currentDateTime.DBDate;
                            rawReceive4SAP.MaintainTime         = currentDateTime.DBTime;
                            rawReceive4SAP.MaintainUser         = "******";
                            rawReceive4SAP.MaterialDocument     = mpo.MaterialDocument;
                            rawReceive4SAP.MaterialDocumentYear = mpo.MaterialDocumentYear;
                            rawReceive4SAP.PONo                 = mpo.PONo;
                            rawReceive4SAP.PostSequence         = msf.GetRawReceive4SAPMaxPostSequence(mpo.PONo.ToUpper());
                            rawReceive4SAP.TransactionCode      = request.TransactionCode;

                            msf.AddRawReceive4SAP(rawReceive4SAP);

                            if (string.Compare(mpo.Flag, "Y", true) == 0)  // Post OK
                            {
                                object[] materialReceiveList = iqcFacade.QueryMaterialReceive(mpo.PONo, request.TransactionCode);

                                if (materialReceiveList != null)
                                {
                                    foreach (MaterialReceive materialReceive in materialReceiveList)
                                    {
                                        if (materialReceive.Flag == FlagStatus.FlagStatus_POST)
                                        {
                                            confirmMaterialReceiveList.Add(materialReceive);
                                        }
                                    }
                                }
                            }
                        }

                        this.DataProvider.CommitTransaction();
                    }
                    catch (Exception ex)
                    {
                        this.DataProvider.RollbackTransaction();

                        log.Result       = "Fail";
                        log.ErrorMessage = ex.Message;
                        log.FinishedDate = 0;
                        log.FinishedTime = 0;

                        transferFacade.UpdateSAPDataTransferLog(log);
                    }

                    try
                    {
                        log.Result       = "OK";
                        log.ErrorMessage = "";
                        currentDateTime  = FormatHelper.GetNowDBDateTime(this.DataProvider);
                        log.FinishedDate = currentDateTime.DBDate;
                        log.FinishedTime = currentDateTime.DBTime;

                        transferFacade.UpdateSAPDataTransferLog(log);

                        foreach (MaterialReceive materialReceive in confirmMaterialReceiveList)
                        {
                            iqcFacade.ConfirmMaterialReceive(new MaterialReceive[] { materialReceive }, materialReceive.MaintainUser);
                        }
                    }
                    catch (Exception ex)
                    {
                        log.Result       = "Fail";
                        log.ErrorMessage = ex.Message;
                        log.FinishedDate = 0;
                        log.FinishedTime = 0;

                        transferFacade.UpdateSAPDataTransferLog(log);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                ((SQLDomainDataProvider)DataProvider).PersistBroker.CloseConnection();
                ((SQLDomainDataProvider)DataProvider).PersistBroker.AutoCloseConnection = true;
            }
        }
Beispiel #23
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));
        }
Beispiel #24
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);
        }
Beispiel #25
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            this.InitOnPostBack();

            _IQCFacade = new IQCFacadeFactory(base.DataProvider).CreateIQCFacade();

            if (!IsPostBack)
            {
                // 初始化页面语言
                this.InitPageLanguage(this.languageComponent1, false);

                // 初始化界面UI
                this.InitUI();
                this.InitButtonHelp();
                this.SetEditObject(null);
                this.InitWebGrid();

                // 初始化控件
                this.drpIQCStatusQuery_Load();
                this.drpROHSQuery_Load();
                this.drpShipToStockQuery_Load();
                this.drpIQCHeadAttributeEdit_Load();

                //首次进入界面的查询
                string iqcNo = string.Empty;
                if (Request.Params["iqcno"] == null)
                {
                    this.drpIQCStatusQuery.SelectedValue = "New";
                }
                else
                {
                    iqcNo = Request.Params["iqcno"].ToString().Trim();
                }
                if (iqcNo.Length > 0)
                {
                    this.txtIQCNoQuery.Text = iqcNo;
                }

                string asnPO = string.Empty;
                if (Request.Params["asnpo"] != null)
                {
                    asnPO = Request.Params["asnpo"].ToString().Trim();
                }
                if (asnPO.Length > 0)
                {
                    this.txtASNPOQuery.Text = asnPO;
                    this.drpIQCStatusQuery.SelectedValue = "New";
                }

                this.RequestData();
                this.buttonHelper.PageActionStatusHandle(PageActionType.Query);
            }

            //添加一些JS事件
            //if (this.txtPOMaterialEdit.Attributes["po"] == null)
            //{
            //    this.txtPOMaterialEdit.Attributes["po"] = "0";
            //}
            if (this.cmdCreateIQCFromASN.Attributes["onclick"] == null)
            {
                this.cmdCreateIQCFromASN.Attributes["onclick"] = "this.style.cursor='wait';";
            }
            //if (this.cmdCreateIQCFromPO.Attributes["onclick"] == null)
            //{
            //    this.cmdCreateIQCFromPO.Attributes["onclick"] = "this.style.cursor='wait';";
            //}
        }
Beispiel #26
0
        private void ToSTS(string iqcNo, string userCode)
        {
            IQCFacade _IQCFacade = new IQCFacade(DataProvider);

            InventoryFacade _InventoryFacade = new InventoryFacade(DataProvider);

            //1、更新送检单TBLASNIQC
            AsnIQC asnIqc = (AsnIQC)_IQCFacade.GetAsnIQC(iqcNo);

            if (asnIqc != null)
            {
                asnIqc.IqcType  = "ExemptCheck";
                asnIqc.Status   = IQCStatus.IQCStatus_IQCClose;
                asnIqc.QcStatus = "Y";
                _IQCFacade.UpdateAsnIQC(asnIqc);

                #region 在invinouttrans表中增加一条数据
                WarehouseFacade facade = new WarehouseFacade(DataProvider);

                //ASN asn = (ASN)domainObject;
                DBDateTime    dbTime1 = FormatHelper.GetNowDBDateTime(this.DataProvider);
                InvInOutTrans trans   = facade.CreateNewInvInOutTrans();
                trans.CartonNO        = string.Empty;
                trans.DqMCode         = asnIqc.DQMCode;
                trans.FacCode         = string.Empty;
                trans.FromFacCode     = string.Empty;
                trans.FromStorageCode = string.Empty;
                trans.InvNO           = asnIqc.InvNo;
                trans.InvType         = asnIqc.IqcType;
                trans.LotNo           = string.Empty;
                trans.MaintainDate    = dbTime1.DBDate;
                trans.MaintainTime    = dbTime1.DBTime;
                trans.MaintainUser    = userCode;
                trans.MCode           = asnIqc.MCode;
                trans.ProductionDate  = 0;
                trans.Qty             = asnIqc.Qty;
                trans.Serial          = 0;
                trans.StorageAgeDate  = 0;
                trans.StorageCode     = string.Empty;
                trans.SupplierLotNo   = string.Empty;
                trans.TransNO         = asnIqc.IqcNo;
                trans.TransType       = "IN";
                trans.Unit            = string.Empty;
                trans.ProcessType     = "IQC";
                facade.AddInvInOutTrans(trans);
                #endregion
            }

            object[] objAsnIqcDetail = _IQCFacade.GetAsnIQCDetailByIqcNo(iqcNo);
            if (objAsnIqcDetail != null)
            {
                foreach (AsnIQCDetail asnIqcDetail in objAsnIqcDetail)
                {
                    //2、更新送检单明细TBLASNIQCDETAIL
                    asnIqcDetail.QcPassQty = asnIqcDetail.Qty;
                    asnIqcDetail.QcStatus  = "Y";
                    _IQCFacade.UpdateAsnIQCDetail(asnIqcDetail);


                    //4、更新ASN明细TBLASNDETAIL
                    ASNDetail asnDetail = (ASNDetail)_InventoryFacade.GetASNDetail(Convert.ToInt32(asnIqcDetail.StLine), asnIqcDetail.StNo);
                    if (asnDetail != null)
                    {
                        asnDetail.QcPassQty = asnDetail.ReceiveQty;
                        asnDetail.Status    = IQCStatus.IQCStatus_IQCClose;
                        _InventoryFacade.UpdateASNDetail(asnDetail);
                    }

                    //5、更新ASN明细对应单据行明细TBLASNDETAILITEM
                    object[] objAsnDetaileItem = _InventoryFacade.GetAsnDetailItem(asnIqcDetail.StNo, Convert.ToInt32(asnIqcDetail.StLine));
                    if (objAsnDetaileItem != null)
                    {
                        foreach (Asndetailitem asnDetaileItem in objAsnDetaileItem)
                        {
                            asnDetaileItem.QcpassQty = asnDetaileItem.ReceiveQty;
                            _InventoryFacade.UpdateAsndetailitem(asnDetaileItem);
                        }
                    }
                }
            }

            object[] objAsnIqcDetailSN = _IQCFacade.GetAsnIqcDetailSNByIqcNo(iqcNo);
            if (objAsnIqcDetailSN != null)
            {
                foreach (AsnIqcDetailSN asnIqcDetailSN in objAsnIqcDetailSN)
                {
                    //3、更新送检单明细SNTBLASNIQCDETAILSN
                    asnIqcDetailSN.QcStatus = "Y";
                    _IQCFacade.UpdateAsnIqcDetailSN(asnIqcDetailSN);

                    //6、更新ASN明细SN TBLASNDETAILSN
                    Asndetailsn asnDetailSn = (Asndetailsn)_InventoryFacade.GetAsndetailsn(asnIqcDetailSN.Sn, asnIqcDetailSN.StNo, Convert.ToInt32(asnIqcDetailSN.StLine));
                    if (asnDetailSn != null)
                    {
                        asnDetailSn.QcStatus = "Y";
                        _InventoryFacade.UpdateAsndetailsn(asnDetailSn);
                    }
                }
            }

            //7、以上表数据更新完成后检查ASN明细表(TBLASNDETAIL)所有行记录状态为:IQCClose:IQC完成 or OnLocation:上架 or Close:入库 or Cancel:取消时,
            //   更新ASN主表(TBLASN)状态(TBLASN.STATUS)为:OnLocation:上架
            bool isAllIQCClose   = CheckAllASNDetailIsIQCClose(iqcNo);
            bool isAllOnLocation = CheckAllASNDetailIsOnLocation(iqcNo);
            bool isAllClose      = CheckAllASNDetailIsClose(iqcNo);
            bool isAllCancel     = CheckAllASNDetailIsCancel(iqcNo);

            if (isAllIQCClose || isAllOnLocation ||
                isAllClose || isAllCancel
                )
            {
                ASN asn = (ASN)_InventoryFacade.GetASN(asnIqc.StNo);
                if (asn != null)
                {
                    asn.Status = ASNHeadStatus.OnLocation;
                    _InventoryFacade.UpdateASN(asn);
                }
            }
        }
Beispiel #27
0
        public string SaveIQCInfo(string[] asns, string usrCode)
        {
            WarehouseFacade wFacade = new WarehouseFacade(DataProvider);

            InventoryFacade facade = new InventoryFacade(DataProvider);

            BenQGuru.eMES.Web.Helper.DBDateTime dbDateTime = BenQGuru.eMES.Web.Helper.FormatHelper.GetNowDBDateTime(this.DataProvider);
            #region 6>	以下几种情况不可点击申请IQC:
            //1》 入库类型为:PD:盘点
            //2》 入库类型为:POR: PO入库 并且供应商直发标识为:Y
            //3》 入库类型为:SCTR:生产退料 并且生产退料入不良品库标识为:Y


            ASN asn = (ASN)facade.GetASN(asns[0]);

            if (asn.StType == InInvType.PD)
            {
                return("入库类型为盘点,不可申请IQC");
            }
            else if (asn.StType == InInvType.POR && asn.DirectFlag == "Y")
            {
                return("入库类型为PO入库并且供应商直发标识为Y,不可申请IQC");
            }

            else if (asn.StType == InInvType.SCTR && asn.RejectsFlag == "Y")
            {
                return("入库类型为生产退料并且生产退料入不良品库标识为Y,不可申请IQC");
            }


            bool hasDetail = facade.CheckASNHasDetail(asn.StNo, ASNLineStatus.ReceiveClose);
            if (!hasDetail)
            {
                bool hasReject = facade.CheckASNReceiveStatusHasDetail(asn.StNo, "Reject");
                if (hasReject)
                {
                    //将头数据改为拒收状态 IQCRejection:IQC拒收;
                    ASN oldAsn = (ASN)facade.GetASN(asn.StNo);
                    oldAsn.Status = ASNHeadStatus.IQCRejection;
                    facade.UpdateASN(oldAsn);
                    return("初检接收状态中全部为拒收状态");
                }
            }
            else
            {
                return("ASN单行项目状态必须为初检完成");
            }
            #endregion

            IQCFacade iqcFacade      = new IQCFacade(DataProvider);
            object[]  disdqMcodeList = facade.QueryAsnDetailForDqMcode(asn.StNo);
            if (disdqMcodeList == null)
            {
                return("入库指令号对应在ASN明细表中不存在,不可申请IQC");
            }


            //同一入库指令下,同一鼎桥物料编码,生成一个IQC检验单号。
            object[] dqMcodeList = facade.QueryAsnDetailForCreateIqc(asn.StNo);
            if (dqMcodeList == null)
            {
                return("IQC检验单号已存在!");
            }


            try
            {
                this.DataProvider.BeginTransaction();
                string iqcNo = string.Empty;
                foreach (ASNDetail dqMcode in dqMcodeList)
                {
                    //edit by sam 2016年3月21日 剔除拒收状态
                    object[] detailList = facade.QueryAsnDetailByStNo(asn.StNo, dqMcode.DQMCode, "Reject");
                    if (detailList != null)
                    {
                        #region AsnIQC
                        ASNDetail asnDetailobj = detailList[0] as ASNDetail;
                        string    newIqcNo     = this.CreateNewIqcNo(asnDetailobj.StNo, usrCode);
                        AsnIQC    asnIqc       = new AsnIQC();
                        asnIqc.IqcNo   = newIqcNo;
                        iqcNo          = newIqcNo;
                        asnIqc.IqcType = "";
                        asnIqc.StNo    = asn.StNo;
                        asnIqc.InvNo   = !string.IsNullOrEmpty(asn.InvNo) ? asn.InvNo : asn.StNo;


                        asnIqc.StType    = asn.StType;                                           //	 STTYPE
                        asnIqc.Status    = BenQGuru.eMES.Web.Helper.IQCStatus.IQCStatus_Release; //	STATUS
                        asnIqc.AppDate   = dbDateTime.DBDate;                                    //	MDATE
                        asnIqc.AppTime   = dbDateTime.DBTime;                                    //	MTIME
                        asnIqc.InspDate  = 0;                                                    //	INSPDATE
                        asnIqc.InspTime  = 0;                                                    //	INSPTIME
                        asnIqc.CustmCode = asnDetailobj.CustMCode;                               //	CUSTMCODE 华为物料号
                        asnIqc.MCode     = asnDetailobj.MCode;                                   //	MCODE
                        asnIqc.DQMCode   = asnDetailobj.DQMCode;                                 //	DQMCODE
                        asnIqc.MDesc     = asnDetailobj.MDesc;                                   //	MDESC
                        // asnIqc.Qty = asnDetailobj.ReceiveQty;	//	QTY
                        asnIqc.QcStatus     = "";                                                //	QCSTATUS IQC状态(Y:合格;N:不合格)
                        asnIqc.VendorCode   = asn.VendorCode;                                    //	VENDORCODE
                        asnIqc.VendorMCode  = asnDetailobj.VendorMCodeDesc;                      //	VENDORMCODE
                        asnIqc.Remark1      = asn.Remark1;                                       //	REMARK1
                        asnIqc.CUser        = usrCode;                                           //	CUSER
                        asnIqc.CDate        = dbDateTime.DBDate;                                 //	CDATE
                        asnIqc.CTime        = dbDateTime.DBTime;                                 //	CTIME
                        asnIqc.MaintainDate = dbDateTime.DBDate;                                 //	MDATE
                        asnIqc.MaintainTime = dbDateTime.DBTime;                                 //	MTIME
                        asnIqc.MaintainUser = usrCode;                                           //	MUSER
                        foreach (ASNDetail asnDetail in detailList)
                        {
                            asnIqc.Qty += asnDetail.ReceiveQty;
                        }
                        iqcFacade.AddAsnIQC(asnIqc);
                        #endregion
                        foreach (ASNDetail asnDetail in detailList)
                        {
                            #region
                            AsnIQCDetail iqcDetail = new AsnIQCDetail();

                            #region  iqcDetail
                            iqcDetail.IqcNo        = newIqcNo;             //	IQCNO	送检单号
                            iqcDetail.StNo         = asnDetail.StNo;       //	STNO	ASN单号
                            iqcDetail.StLine       = asnDetail.StLine;     //	STLINE	ASN单行项目
                            iqcDetail.CartonNo     = asnDetail.CartonNo;   //	CARTONNO	箱号条码
                            iqcDetail.Qty          = asnDetail.ReceiveQty; //	QTY	送检数量
                            iqcDetail.QcPassQty    = 0;                    //	QCPASSQTY	检验通过数量
                            iqcDetail.Unit         = asnDetail.Unit;       //	UNIT	单位
                            iqcDetail.NgQty        = 0;                    //	NGQTY	缺陷品数
                            iqcDetail.ReturnQty    = 0;                    //	ReturnQTY	退换货数量
                            iqcDetail.ReformQty    = 0;                    //	ReformQTY	现场整改数量
                            iqcDetail.GiveQty      = 0;                    //	GiveQTY	让步接收数量
                            iqcDetail.AcceptQty    = 0;                    //	AcceptQTY	特采数量
                            iqcDetail.QcStatus     = "";                   //	QCSTATUS	 IQC状态(Y:合格;N:不合格)
                            iqcDetail.Remark1      = asnDetail.Remark1;    //	REMARK1	备注
                            iqcDetail.CUser        = usrCode;              //	CUSER
                            iqcDetail.CDate        = dbDateTime.DBDate;    //	CDATE
                            iqcDetail.CTime        = dbDateTime.DBTime;    //	CTIME
                            iqcDetail.MaintainDate = dbDateTime.DBDate;    //	MDATE
                            iqcDetail.MaintainTime = dbDateTime.DBTime;    //	MTIME
                            iqcDetail.MaintainUser = usrCode;              //	MUSER
                            iqcFacade.AddAsnIQCDetail(iqcDetail);
                            #endregion

                            #region  AsnIqcDetailSN

                            object[] iqcDetailsnList = facade.GetSNbySTNo(asnDetail.StNo, asnDetail.StLine);
                            if (iqcDetailsnList != null)
                            {
                                foreach (Asndetailsn detailsn in iqcDetailsnList)
                                {
                                    AsnIqcDetailSN iqcDetailsn = new AsnIqcDetailSN();
                                    iqcDetailsn.IqcNo        = newIqcNo;           //	IQCNO	送检单号
                                    iqcDetailsn.StNo         = asnDetail.StNo;     //	STNO	ASN单号
                                    iqcDetailsn.StLine       = asnDetail.StLine;   //	STLINE	ASN单行项目
                                    iqcDetailsn.Sn           = detailsn.Sn;
                                    iqcDetailsn.CartonNo     = asnDetail.CartonNo; //	CARTONNO	箱号条码
                                    iqcDetailsn.StNo         = asnDetail.StNo;     //	SN	SN条码
                                    iqcDetailsn.QcStatus     = "";                 //	QCSTATUS	SN IQC状态(Y:合格;N:不合格)
                                    iqcDetailsn.Remark1      = asnDetail.Remark1;  //	REMARK1	备注
                                    iqcDetailsn.CUser        = usrCode;            //	CUSER
                                    iqcDetailsn.CDate        = dbDateTime.DBDate;  //	CDATE
                                    iqcDetailsn.CTime        = dbDateTime.DBTime;  //	CTIME
                                    iqcDetailsn.MaintainDate = dbDateTime.DBDate;  //	MDATE
                                    iqcDetailsn.MaintainTime = dbDateTime.DBTime;  //	MTIME
                                    iqcDetailsn.MaintainUser = usrCode;            //	MUSER
                                    iqcFacade.AddAsnIqcDetailSN(iqcDetailsn);
                                }
                            }
                            #endregion
                            #endregion
                        }
                    }
                    //判断是否是免检物料

                    BenQGuru.eMES.Domain.MOModel.Material mar = wFacade.GetMaterialFromDQMCode(dqMcode.DQMCode);
                    int count = wFacade.GetStockRecordCount(dbDateTime.DBDate, dbDateTime.DBTime, mar.MCode);
                    if (count > 0)
                    {
                        //是免检物料
                        try
                        {
                            ToSTS(iqcNo, usrCode);
                        }
                        catch (Exception ex)
                        {
                            this.DataProvider.RollbackTransaction();
                            throw ex;
                        }
                    }
                }
                // 3>	IQC检验单数据来源与ASN主表(TBLASN)、ASN明细表(TBLASNDETAIL)、ASN明细SN表(TBLASNDETAILSN),
                //保存数据表有:送检单(TBLASNIQC)、送检单明细(TBLASNIQCDETAIL)、送检单明细SN表(TBLASNIQCDETAILSN),
                //注:送检数量(TBLASNIQCDETAIL.QTY)为ASN明细表中的接收数量(TBLASNDETAIL.ReceiveQTY)
                //4>	IQC送检单号规则:IQC+入库指令号+两位流水号,如:IQCASN00000101

                //5>	更新ASN主表(TBLASN)状态为:IQC:IQC
                var oldasn = (ASN)facade.GetASN(asn.StNo);
                if (oldasn != null)
                {
                    if (!(oldasn.Status == ASN_STATUS.ASN_Close || oldasn.Status == ASN_STATUS.ASN_Cancel || oldasn.Status == ASN_STATUS.ASN_OnLocation || oldasn.Status == ASN_STATUS.ASN_IQC))
                    {
                        oldasn.Status = "IQC";
                        facade.UpdateASN(oldasn);
                    }
                }

                this.DataProvider.CommitTransaction();
                return("申请IQC成功");
            }
            catch (Exception ex)
            {
                this.DataProvider.RollbackTransaction();
                throw ex;
            }
        }
Beispiel #28
0
        protected override DataRow GetGridRow(object obj)
        {
            if (_IQCFacade == null)
            {
                _IQCFacade = new IQCFacade(base.DataProvider);
            }

            if (_InventoryFacade == null)
            {
                _InventoryFacade = new InventoryFacade(base.DataProvider);
            }
            DataRow row = this.DtSource.NewRow();

            row["IQCNo"]         = ((AsnIQCExt)obj).IqcNo;
            row["StorageInASN"]  = ((AsnIQCExt)obj).StNo;
            row["StorageInType"] = this.GetInvInName(((AsnIQCExt)obj).StType);//入库类型(单据类型)
            row["SAPInvNo"]      = ((AsnIQCExt)obj).InvNo;

            row["STORAGECODE1234"] = ((AsnIQCExt)obj).STORAGECODE;


            row["DQMCode"] = ((AsnIQCExt)obj).DQMCode;

            Domain.MOModel.Material m = (Domain.MOModel.Material)_InventoryFacade.GetMaterialByDQMCode(((AsnIQCExt)obj).DQMCode);
            if (m != null)
            {
                row["DQMCODEDESC"] = m.MchlongDesc;
            }
            else
            {
                row["DQMCODEDESC"] = string.Empty;
            }


            row["VMCode"]    = ((AsnIQCExt)obj).StType == "UB" ? ((AsnIQCExt)obj).CustmCode : ((AsnIQCExt)obj).VendorMCode;
            row["Status"]    = this.GetStatusName(((AsnIQCExt)obj).Status);
            row["IQCStatus"] = ((AsnIQCExt)obj).Status;
            row["IQCType"]   = FormatHelper.GetChName(((AsnIQCExt)obj).IqcType);

            if (((AsnIQCExt)obj).IqcType == "SpotCheck")
            {
                row["AQLResult"] = FormatHelper.GetChName(((AsnIQCExt)obj).QcStatus);
            }


            row["AppQty"] = ((AsnIQCExt)obj).AppQty;
            row["NGQty"]  = ((AsnIQCExt)obj).NgQty;



            string IQCNO = ((AsnIQCExt)obj).IqcNo;

            row["ReturnQty"] = _IQCFacade.ReturnQtyTotalWithIQCNO(IQCNO);
            row["ReformQty"] = _IQCFacade.ReformQtyTotalWithIQCNO(IQCNO);
            row["GiveQty"]   = _IQCFacade.GiveQtyTotalWithIQCNO(IQCNO);
            row["AcceptQty"] = _IQCFacade.AcceptQtyTotalWithIQCNO(IQCNO);


            row["VendorNo"] = ((AsnIQCExt)obj).VendorCode;
            row["AppDate"]  = FormatHelper.ToDateString(((AsnIQCExt)obj).AppDate, "/");

            return(row);
        }