Exemple #1
0
 public TS_OR_DETAIL_BLL(CHubEntities db)
 {
     dal = new TS_OR_DETAIL_DAL(db);
 }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
 public TS_OR_DETAIL_BLL()
 {
     dal = new TS_OR_DETAIL_DAL();
 }