Ejemplo n.º 1
0
        private object GetEditObject()
        {
            if (this.ValidateInput())
            {
                ShipToStock shipToStock = this._IQCFacade.CreateNewShipToStock();


                BenQGuru.eMES.Material.WarehouseFacade _WarehouseFacade = new BenQGuru.eMES.Material.WarehouseFacade(base.DataProvider);
                // shipToStock.OrganizationID = int.Parse(this.drpOrgEdit.SelectedValue);
                shipToStock.OrganizationID = 1;
                shipToStock.VendorCode     = FormatHelper.PKCapitalFormat(FormatHelper.CleanString(this.txtVendorCodeEdit.Text));
                shipToStock.EffectDate     = FormatHelper.TODateInt(this.datEffectDateEdit.Text);
                shipToStock.InvalidDate    = FormatHelper.TODateInt(this.datInvalidDateEdit.Text);
                shipToStock.Active         = "Y";
                shipToStock.MaintainUser   = this.GetUserCode();
                shipToStock.DQMCode        = FormatHelper.PKCapitalFormat(FormatHelper.CleanString(this.txtDQMaterialNO.Text, 40));

                BenQGuru.eMES.Domain.MOModel.Material m = _WarehouseFacade.GetMaterialFromDQMCode(shipToStock.DQMCode);
                if (m != null)
                {
                    shipToStock.MaterialCode = m.MCode;
                }


                return(shipToStock);
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 2
0
        public void GetMaterilDescription()
        {
            ItemFacade itemFacade = new ItemFacade(this.DataProvider);

            object obj = itemFacade.GetMaterial(this.txtItemCodeEdit.Text, GlobalVariables.CurrentOrganizations.First().OrganizationID);

            if (obj != null)
            {
                BenQGuru.eMES.Domain.MOModel.Material material = obj as BenQGuru.eMES.Domain.MOModel.Material;

                //  this.txtItemDescriptionEdit.Text = material.MaterialDescription;
            }
        }
Ejemplo n.º 3
0
        protected override void SetEditObject(object obj)
        {
            if (obj == null)
            {
                txtPickLineEdit.Text = "";

                txtDQMCodeEdit.Text = "";
                txtDMESCEdit.Text   = "";
                txtInvLineEidt.Text = "";
                return;
            }


            BenQGuru.eMES.Domain.Warehouse.PickDetail d = (BenQGuru.eMES.Domain.Warehouse.PickDetail)obj;
            BenQGuru.eMES.Domain.MOModel.Material     m = _WarehouseFacade.GetMaterialFromDQMCode(d.DQMCode);
            txtPickLineEdit.Text = d.PickLine;
            txtDMESCEdit.Text    = m.MchlongDesc;
            txtDQMCodeEdit.Text  = d.DQMCode;

            txtInvLineEidt.Text = d.InvLine.ToString();
        }
Ejemplo n.º 4
0
        protected override DataRow GetGridRow(object obj)
        {
            WarehouseFacade  _WarehouseFacade = new WarehouseFacade(base.DataProvider);
            DataRow          row  = this.DtSource.NewRow();
            SAPInvoicesQuery pick = obj as SAPInvoicesQuery;
            Type             type = pick.GetType();

            for (int i = 0; i < this.PickHeadViewFieldList.Length; i++)
            {
                ViewField field    = this.PickHeadViewFieldList[i];
                string    strValue = string.Empty;
                System.Reflection.FieldInfo fieldInfo = type.GetField(field.FieldName.ToUpper());
                if (fieldInfo != null)
                {
                    if (field.FieldName == "DNBatchNo")
                    {
                        strValue = pick.DNNO;
                    }
                    else if (field.FieldName == "REMARK1")
                    {
                        strValue = pick.REMARK1;
                    }
                    else if (field.FieldName == "FROMSTORAGECODE")
                    {
                        strValue = pick.FROMSTORAGECODE;
                        if (pick.INVTYPE == "PRC" || pick.INVTYPE == "YFR" || pick.INVTYPE == "GZC")
                        {
                            strValue = pick.STORAGECODE;
                        }
                    }
                    else if (field.FieldName == "STORAGECODE")
                    {
                        strValue = pick.STORAGECODE;
                        if (pick.INVTYPE == "PRC" || pick.INVTYPE == "YFR" || pick.INVTYPE == "GZC")
                        {
                            strValue = "";
                        }
                    }


                    #region SAP

                    //else if (field.FieldName == "CREATEUSER")
                    //{

                    //    if (!string.IsNullOrEmpty(pick.CREATEUSER))
                    //    {
                    //        strValue = pick.CREATEUSER;
                    //    }
                    //    else
                    //    {
                    //        strValue = pick.DNMUSER;
                    //    }

                    //}
                    //else if (field.FieldName == "POUPDATEDATE")
                    //{
                    //    if (pick.POUPDATEDATE != 0)
                    //    {
                    //        strValue = FormatHelper.ToDateString(pick.POUPDATEDATE);
                    //    }
                    //    else
                    //    {
                    //        strValue = FormatHelper.ToDateString(pick.DNMDATE);
                    //    }
                    //}
                    //else if (field.FieldName == "POUPDATETIME")
                    //{
                    //    if (pick.POUPDATEDATE != 0)
                    //    {
                    //        strValue = FormatHelper.ToTimeString(pick.POUPDATETIME);
                    //    }
                    //    else
                    //    {
                    //        strValue = FormatHelper.ToTimeString(pick.DNMTIME);
                    //    }
                    //}

                    #endregion

                    #region MES

                    //else if (field.FieldName == "MESCDate")
                    //{
                    //    strValue = FormatHelper.ToDateString(pick.CDate);
                    //}
                    else if (field.FieldName == "MESCTIME")
                    {
                        strValue = FormatHelper.ToTimeString(pick.CTIME);
                    }
                    else if (field.FieldName == "MESCUSER")
                    {
                        strValue = pick.CUSER;
                    }
                    else if (field.FieldName == "MESMUSER")
                    {
                        strValue = pick.MUSER;
                    }
                    //else if (field.FieldName == "MESMTIME")
                    //{
                    //    strValue = FormatHelper.ToDateString(pick.MaintainDate);
                    //}
                    else if (field.FieldName == "MESMTIME")
                    {
                        strValue = FormatHelper.ToTimeString(pick.MTIME);
                    }

                    else if (field.FieldName == "NOTOUTCHECKFLAG")
                    {
                        if (string.IsNullOrEmpty(pick.NOTOUTCHECKFLAG))
                        {
                            strValue = "否";
                        }
                        else if (pick.NOTOUTCHECKFLAG.ToUpper() == "X")
                        {
                            strValue = "是";
                        }
                        else
                        {
                            strValue = pick.NOTOUTCHECKFLAG;
                        }
                    }
                    #endregion

                    else
                    {
                        strValue = fieldInfo.GetValue(pick).ToString();
                    }
                }


                row[this.PickHeadViewFieldList[i].FieldName] = strValue;

                if (this.PickHeadViewFieldList[i].FieldName == "DQMCODE")
                {
                    BenQGuru.eMES.Domain.MOModel.Material m = (BenQGuru.eMES.Domain.MOModel.Material)_WarehouseFacade.GetMaterialFromDQMCode(((SAPInvoicesQuery)obj).DQMCODE);
                    if (m != null)
                    {
                        row["DQMCHLONGDESC"] = m.MchlongDesc;
                    }
                    else
                    {
                        row["DQMCHLONGDESC"] = string.Empty;
                    }
                }
            }
            return(row);
        }
Ejemplo n.º 5
0
        protected void cmdLotSave_ServerClick(object sender, EventArgs e)
        {
            try
            {
                _WarehouseFacade = new BenQGuru.eMES.Material.WarehouseFacade(this.DataProvider);
                BenQGuru.eMES.Domain.Warehouse.Pick p = (BenQGuru.eMES.Domain.Warehouse.Pick)_WarehouseFacade.GetPick(txtPickNoQuery.Text);
                if (p.Status != Pick_STATUS.Status_Release)
                {
                    WebInfoPublish.Publish(this, p.PickNo + "拣货任务令的状态必须是初始化才能修改!", this.languageComponent1);
                    return;
                }
                StringBuilder sb = new StringBuilder(300);
                this.DataProvider.BeginTransaction();
                List <string> pickLineGtQty = new List <string>();
                for (int i = 0; i < this.gridWebGrid.Rows.Count; i++)
                {
                    string pickLine = this.gridWebGrid.Rows[i].Items.FindItemByKey("PICKLINE").Value.ToString();
                    BenQGuru.eMES.Domain.Warehouse.PickDetail d = (BenQGuru.eMES.Domain.Warehouse.PickDetail)_WarehouseFacade.GetPickdetail(txtPickNoQuery.Text, pickLine);
                    decimal qty = d.QTY;
                    BenQGuru.eMES.Domain.MOModel.Material m = (BenQGuru.eMES.Domain.MOModel.Material)_WarehouseFacade.GetMaterialFromDQMCode(d.DQMCode);

                    if (m == null)
                    {
                        WebInfoPublish.Publish(this, d.DQMCode + "物料号不存在!", this.languageComponent1);
                        this.DataProvider.RollbackTransaction();
                        return;
                    }



                    string qtyStr = this.gridWebGrid.Rows[i].Items.FindItemByKey("QTY").Value.ToString();

                    decimal decqty = 0;
                    if (!decimal.TryParse(qtyStr, out decqty))
                    {
                        WebInfoPublish.Publish(this, txtPickNoQuery.Text + ":" + pickLine + "数量必须是数字!", this.languageComponent1);
                        this.DataProvider.RollbackTransaction();
                        return;
                    }

                    string  invno   = FormatHelper.CleanString(txtInvNoEidt.Text);
                    decimal pickqty = _WarehouseFacade.GetPickDetailQty(invno, d.InvLine, m.MCode);
                    decimal wwpoqty = _WarehouseFacade.GetWWPOQty(invno, d.InvLine, m.MCode);

                    bool isFalse = (decqty + pickqty - qty > wwpoqty);
                    d.QTY = decqty;
                    if (isFalse)
                    {
                        sb.Append(string.Format(@"拣货任务令号:{0},SAP单据号:{1},状态:{2},下发人:{3},鼎桥物料编码:{4},描述:{5},领取数量:{6},超领数量:{7} \r\n",
                                                p.PickNo,
                                                txtInvNoEidt.Text,
                                                p.Status,
                                                GetUserCode(),
                                                m.DqmCode,
                                                m.MenshortDesc,
                                                decqty, decqty + pickqty - qty - wwpoqty));
                        pickLineGtQty.Add(pickLine);
                    }
                    _WarehouseFacade.UpdatePickdetail(d);
                }

                this.DataProvider.CommitTransaction();

                if (pickLineGtQty.Count == 0)
                {
                    WebInfoPublish.Publish(this, "保存成功", this.languageComponent1);
                }
                else
                {
                    GenWWPOMail(sb.ToString(), GetUserCode());
                    WebInfoPublish.Publish(this, "保存成功 - " + txtPickNoQuery.Text + "行项目" + string.Join(",", pickLineGtQty.ToArray()) + " 的领料数大于SAP物料数量", this.languageComponent1);
                }
            }
            catch (Exception ex)
            {
                this.DataProvider.RollbackTransaction();
                throw ex;
            }
            this.gridHelper.RequestData();
            this.buttonHelper.PageActionStatusHandle(PageActionType.Save);
        }
Ejemplo n.º 6
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;
            }
        }
Ejemplo n.º 7
0
        public string Add(string userCode, string newIqcNo, string fromCarton)
        {
            #region check
            if (_WarehouseFacade == null)
            {
                _WarehouseFacade = new WarehouseFacade(DataProvider);
            }
            InventoryFacade facade     = new InventoryFacade(this.DataProvider);
            ItemFacade      itemFacade = new ItemFacade(DataProvider);
            DBDateTime      dbTime     = FormatHelper.GetNowDBDateTime(DataProvider);
            string          msg        = "";

            StorageDetail storageCarton = (StorageDetail)facade.GetStorageDetail(fromCarton);
            if (storageCarton == null)
            {  //A 根据原箱号和数量操作。根据原箱号(cartonno)到TBLStorageDetail中查找数据。没有报错。
                msg = "转储单中没有对应的SAP物料号";
                return(msg);
            }
            string dqmCode = storageCarton.DQMCode;
            if (string.IsNullOrEmpty(dqmCode))
            {
                msg = "鼎桥物料编码不能为空";
                return(msg);
            }
            BenQGuru.eMES.Domain.MOModel.Material material = (BenQGuru.eMES.Domain.MOModel.Material)itemFacade.GetMaterialByDQMCode(dqmCode);
            if (material == null)
            {
                msg = "鼎桥物料编码不存在";
                return(msg);
            }
            if (string.IsNullOrEmpty(newIqcNo))
            {
                msg = "移转单号不能为空";
                return(msg);
            }

            #endregion
            #region try
            try
            {
                this.DataProvider.BeginTransaction();
                Storloctrans oldStorloctrans = (Storloctrans)_WarehouseFacade.GetStorloctrans(newIqcNo);
                if (oldStorloctrans == null)
                {
                    #region 货位移动单信息TBLStorLocTrans表增加一笔数据
                    Storloctrans storloctrans = new Storloctrans();
                    storloctrans.Transno      = newIqcNo;
                    storloctrans.TransType    = TransType.TransType_Move;//类型(Transfer:转储;Move:货位移动)
                    storloctrans.Status       = Pick_STATUS.Status_Release;
                    storloctrans.Invno        = " ";
                    storloctrans.StorageCode  = "";
                    storloctrans.CDate        = dbTime.DBDate;
                    storloctrans.CTime        = dbTime.DBTime;
                    storloctrans.CUser        = userCode;// this.GetUserCode();
                    storloctrans.MaintainDate = dbTime.DBDate;
                    storloctrans.MaintainTime = dbTime.DBTime;
                    storloctrans.MaintainUser = userCode;// this.GetUserCode();
                    _WarehouseFacade.AddStorloctrans(storloctrans);
                    #endregion
                }
                StorloctransDetail oldstorloctransDetail = (StorloctransDetail)_WarehouseFacade.GetStorloctransdetail(newIqcNo, material.MCode);
                if (oldstorloctransDetail == null)
                {
                    //检查移转单下表TBLStorLocTransDetail是否存在,如果存在提示已经包含物料信息。
                    //    this.DataProvider.RollbackTransaction();
                    //   msg= "移转单号已经包含物料信息" ;
                    //   return msg;
                    //}
                    //else
                    //{
                    #region 货位移动单信息StorloctransDetail表增加一笔数据
                    StorloctransDetail storloctransDetail = new StorloctransDetail();
                    storloctransDetail.Transno      = newIqcNo;
                    storloctransDetail.Status       = Pick_STATUS.Status_Release;
                    storloctransDetail.DqmCode      = dqmCode;
                    storloctransDetail.MCode        = material.MCode;
                    storloctransDetail.MDesc        = material.MenlongDesc;
                    storloctransDetail.CustmCode    = ""; //
                    storloctransDetail.Unit         = ""; //
                    storloctransDetail.Qty          = 0;
                    storloctransDetail.CDate        = dbTime.DBDate;
                    storloctransDetail.CTime        = dbTime.DBTime;
                    storloctransDetail.CUser        = userCode;// this.GetUserCode();
                    storloctransDetail.MaintainDate = dbTime.DBDate;
                    storloctransDetail.MaintainTime = dbTime.DBTime;
                    storloctransDetail.MaintainUser = userCode;// this.GetUserCode();
                    _WarehouseFacade.AddStorloctransdetail(storloctransDetail);
                    #endregion
                }



                //货位移动单据号
                //string date = dbTime.DBDate.ToString().Substring(2, 6);
                //string documentno = CreateAutoDocmentsNo();
                //SaveDocmentsNo(documentno, userCode);


                this.DataProvider.CommitTransaction();
                msg = "新增成功";
                return(msg);
            }
            catch (Exception ex)
            {
                this.DataProvider.RollbackTransaction();
                msg = ex.Message;
                return(msg);
                //WebInfoPublish.PublishInfo(this, ex.Message, this.languageComponent1);
            }
            #endregion
        }
Ejemplo n.º 8
0
        protected void cmdAdd_ServerClick(object sender, EventArgs e)
        {
            if (_WarehouseFacade == null)
            {
                _WarehouseFacade = new BenQGuru.eMES.Material.WarehouseFacade(base.DataProvider);
            }
            if (string.IsNullOrEmpty(txtStockCheckEdit.Text))
            {
                WebInfoPublish.Publish(this, "盘点单号不能为空!", this.languageComponent1); return;
            }
            if (string.IsNullOrEmpty(drpStorageCodeEdit.SelectedValue))
            {
                WebInfoPublish.Publish(this, "库位不能为空!", this.languageComponent1); return;
            }
            if (string.IsNullOrEmpty(drpCheckTypeEdit.SelectedValue))
            {
                WebInfoPublish.Publish(this, "盘点类型不能为空!", this.languageComponent1); return;
            }
            if (drpCheckTypeEdit.SelectedValue != "Portion")
            {
                if (!string.IsNullOrEmpty(txtBDateEdit.Text))
                {
                    WebInfoPublish.Publish(this, "盘点日期动盘时才可用!", this.languageComponent1); return;
                }
                if (!string.IsNullOrEmpty(txtEDateEdit.Text))
                {
                    WebInfoPublish.Publish(this, "盘点日期动盘时才可用!", this.languageComponent1); return;
                }
            }
            if (drpCheckTypeEdit.SelectedValue == "Portion")
            {
                if (string.IsNullOrEmpty(txtBDateEdit.Text))
                {
                    WebInfoPublish.Publish(this, "必须输入盘点日期!", this.languageComponent1); return;
                }
                if (string.IsNullOrEmpty(txtEDateEdit.Text))
                {
                    WebInfoPublish.Publish(this, "必须输入盘点日期!", this.languageComponent1); return;
                }
            }

            try
            {
                this.DataProvider.BeginTransaction();
                BenQGuru.eMES.Domain.Warehouse.StockCheck s = new BenQGuru.eMES.Domain.Warehouse.StockCheck();
                s.CheckNo     = txtStockCheckEdit.Text;
                s.CheckType   = drpCheckTypeEdit.SelectedValue;
                s.StorageCode = drpStorageCodeEdit.Text;
                s.REMARK1     = txtREMARKEdit.Text;
                s.STATUS      = "WaitCheck";
                s.FACCODE     = " ";
                s.SDATE       = FormatHelper.TODateInt(txtBDateEdit.Text);
                s.EDATE       = FormatHelper.TODateInt(txtEDateEdit.Text);
                s.MDATE       = FormatHelper.TODateInt(DateTime.Now);
                s.MTIME       = FormatHelper.TOTimeInt(DateTime.Now);
                s.MUSER       = GetUserCode();
                s.CDATE       = FormatHelper.TODateInt(DateTime.Now);
                s.CTIME       = FormatHelper.TOTimeInt(DateTime.Now);
                s.CUSER       = GetUserCode();
                _WarehouseFacade.AddStockCheck(s);

                BenQGuru.eMES.Material.Do[] ds;
                bool isPortion = false;
                if (drpCheckTypeEdit.SelectedValue == "Portion")
                {
                    ds        = _WarehouseFacade.GetPortionStorageQty(drpStorageCodeEdit.Text, s.SDATE, s.EDATE);
                    isPortion = true;
                }
                else
                {
                    ds = _WarehouseFacade.GetStorageQTY123(drpStorageCodeEdit.Text);
                }
                foreach (BenQGuru.eMES.Material.Do d in ds)
                {
                    BenQGuru.eMES.Domain.Warehouse.StockCheckDetail ss = new BenQGuru.eMES.Domain.Warehouse.StockCheckDetail();
                    ss.CheckNo     = txtStockCheckEdit.Text;
                    ss.StorageCode = drpStorageCodeEdit.SelectedValue;
                    ss.DQMCODE     = d.DQMCODE;

                    BenQGuru.eMES.Domain.MOModel.Material m = _WarehouseFacade.GetMaterialFromDQMCode(d.DQMCODE);
                    if (m == null)
                    {
                        throw new Exception(d.DQMCODE + "物料在物料表中不存在!");
                    }
                    ss.MDESC = m.MchshortDesc;
                    ss.UNIT  = m.Muom;

                    ss.STORAGEQTY   = d.sum;
                    ss.LocationCode = " ";
                    ss.CARTONNO     = string.IsNullOrEmpty(d.CARTONNO) ? " " : d.CARTONNO;
                    if (isPortion)
                    {
                        ss.LocationCode = d.LOCATIONCODE;
                        //StorageDetail storageDetail = (StorageDetail)_WarehouseFacade.GetStorageDetail(ss.CARTONNO);
                        //if (storageDetail != null)
                        //{
                        //    ss.LocationCode = storageDetail.LocationCode;
                        //}
                    }
                    ss.MDATE = FormatHelper.TODateInt(DateTime.Now);
                    ss.MTIME = FormatHelper.TOTimeInt(DateTime.Now);
                    ss.MUSER = GetUserCode();
                    ss.CDATE = FormatHelper.TODateInt(DateTime.Now);
                    ss.CTIME = FormatHelper.TOTimeInt(DateTime.Now);
                    ss.CUSER = GetUserCode();
                    _WarehouseFacade.AddStockCheckDetails(ss);
                }
                this.DataProvider.CommitTransaction();
            }
            catch (Exception ex)
            {
                this.DataProvider.RollbackTransaction();
                throw ex;
            }



            WebInfoPublish.Publish(this, "添加成功!", this.languageComponent1); return;
        }