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); } } } }