예제 #1
0
        protected override void CreateOrUpdateObject(object obj)
        {
            if (obj.GetType() == typeof(BomDetail))
            {
                BomDetail bomDetail = (BomDetail)obj;

                BomDetail newBomDetail = this.bomDetailMgr.GetBomDetail(bomDetail.Bom.Code, bomDetail.Item.Code);
                if (newBomDetail == null)
                {
                    this.bomDetailMgr.CreateBomDetail(bomDetail);
                    log.Debug("Create BomDetail:" + bomDetail.Bom.Code + "," + bomDetail.Item.Code + "," + bomDetail.RateQty.ToString("0.########"));
                }
                else
                {
                    CloneHelper.CopyProperty(bomDetail, newBomDetail, this.fields);
                    this.bomDetailMgr.UpdateBomDetail(newBomDetail);
                    log.Debug("Update BomDetail:" + bomDetail.Bom.Code + "," + bomDetail.Item.Code + "," + bomDetail.RateQty.ToString("0.########"));
                }
            }
            else if (obj.GetType() == typeof(MesBomDetail))
            {
                MesBomDetail bomDetail = (MesBomDetail)obj;

                MesBomDetail newBomDetail = this.mesBomDetailMgr.GetBomDetail(bomDetail.Bom.Code, bomDetail.Item.Code);
                if (newBomDetail == null)
                {
                    this.mesBomDetailMgr.CreateBomDetail(bomDetail);
                    log.Debug("Create MesBomDetail:" + bomDetail.Bom.Code + "," + bomDetail.Item.Code + "," + bomDetail.RateQty.ToString("0.########"));
                }
                else
                {
                    CloneHelper.CopyProperty(bomDetail, newBomDetail, this.fields);
                    this.mesBomDetailMgr.UpdateBomDetail(newBomDetail);
                    log.Debug("Update MesBomDetail:" + bomDetail.Bom.Code + "," + bomDetail.Item.Code + "," + bomDetail.RateQty.ToString("0.########"));
                }
                IList <MesBom> mesBomList = mesBomDetailMgr.GetRelatedBomDetail(bomDetail);
                if (mesBomList != null && mesBomList.Count > 0)
                {
                    foreach (MesBom mesBom in mesBomList)
                    {
                        mesBom.TransferFlag = true;
                        mesBomMgr.UpdateBom(mesBom);
                    }
                }
            }
        }