public TS_OR_DETAIL_BLL(CHubEntities db) { dal = new TS_OR_DETAIL_DAL(db); }
/// <summary> /// update header and detail ,need to delete stage date if exist stage data /// </summary> /// <param name="orHeader"></param> /// <param name="altORHeader"></param> /// <param name="detailList"></param> /// <returns></returns> public decimal UpdateHeadersWithDetails(TS_OR_HEADER orHeader, TS_OR_HEADER altORHeader, List <TS_OR_DETAIL> detailList) { TS_OR_HEADER_STAGE_BLL hsBLL = new TS_OR_HEADER_STAGE_BLL(dal.db); //Or Header part => if exist stage =>delete stage and add header. if not exist stage => update header TS_OR_HEADER_STAGE headerStage = hsBLL.GetSpecifyHeaderStage(orHeader.ORDER_REQ_NO, orHeader.SHIPFROM_SEQ); if (headerStage != null) { //Must be save draft to save order dal.Delete(headerStage, false); dal.Add(orHeader, false); TS_OR_HEADER_STAGE altHeaderStage = hsBLL.GetSpecifyHeaderStage(orHeader.ORDER_REQ_NO, (decimal)ShipFromSeqEnum.Alternative); if (altHeaderStage != null) { dal.Delete(altHeaderStage, false); } if (altORHeader != null) { dal.Add(altORHeader); } TS_OR_DETAIL_STAGE_DAL dStageDal = new TS_OR_DETAIL_STAGE_DAL(dal.db); //Delete exist details List <TS_OR_DETAIL_STAGE> existDetails = dStageDal.GetDetailsStageByOrderSeq(orHeader.ORDER_REQ_NO); foreach (var item in existDetails) { dal.Delete(item, false); } } else { //Must be override save order dal.Update(orHeader, false); if (altORHeader != null) { dal.AddOrUpdateHeader(altORHeader, false); } } //Detail part TS_OR_DETAIL_DAL detailDal = new TS_OR_DETAIL_DAL(dal.db); //delete old part will insert new data List <TS_OR_DETAIL> oldDetails = detailDal.GetDetailsBySeq(orHeader.ORDER_REQ_NO); if (oldDetails != null && oldDetails.Count > 0) { foreach (var item in oldDetails) { detailDal.Delete(item, false); } } if (detailList != null && detailList.Count > 0) { foreach (var item in detailList) { detailDal.Add(item, false); } } dal.SaveChanges(); return(orHeader.ORDER_REQ_NO); }
public TS_OR_DETAIL_BLL() { dal = new TS_OR_DETAIL_DAL(); }