Exemplo n.º 1
0
        public bool CreateReservation(int saleOrderID, int iRequesterID, ref DTO.WarehouseReservationMng.WarehouseReservation dtoItem, out Library.DTO.Notification notification)
        {
            // keep log entry
            fwBLL.WriteLog(iRequesterID, 0, "create warehouse reservation, saleorder: " + saleOrderID.ToString());

            // query data
            return(factory.CreateReservation(saleOrderID, iRequesterID, ref dtoItem, out notification));
        }
Exemplo n.º 2
0
        public bool CreateReservation(int saleOrderID, int userID, ref DTO.WarehouseReservationMng.WarehouseReservation dtoItem, out Library.DTO.Notification notification)
        {
            dtoItem.Details.ForEach(o => o.ProductStatusID = 1);

            bool result = false;

            notification = new Library.DTO.Notification()
            {
                Type = Library.DTO.NotificationType.Success
            };
            try
            {
                // cancel old reservation
                CancelReservation(saleOrderID, userID, out notification);
                if (notification.Type != Library.DTO.NotificationType.Success)
                {
                    throw new Exception(notification.Message);
                }

                using (WarehouseReservationMngEntities context = CreateContext())
                {
                    WarehouseReservation dbItem = new WarehouseReservation();
                    context.WarehouseReservation.Add(dbItem);
                    converter.DTO2DB(dtoItem, ref dbItem);
                    dbItem.UpdatedBy          = dtoItem.UpdatedBy;
                    dbItem.UpdatedDate        = DateTime.Now;
                    dbItem.StatusUpdatedBy    = dtoItem.UpdatedBy;
                    dbItem.StatusUpdatedDate  = DateTime.Now;
                    dbItem.ProcessingStatusID = 2;
                    dbItem.SaleOrderID        = saleOrderID;
                    context.SaveChanges();

                    dtoItem = converter.DB2DTO_WarehouseReservation(dbItem);
                    result  = true;
                }
            }
            catch (Exception ex)
            {
                notification = new Library.DTO.Notification()
                {
                    Message = ex.Message, Type = Library.DTO.NotificationType.Error
                };
            }

            return(result);
        }
Exemplo n.º 3
0
        public void DTO2DB(DTO.WarehouseReservationMng.WarehouseReservation dtoItem, ref WarehouseReservation dbItem)
        {
            // map main object
            AutoMapper.Mapper.Map <DTO.WarehouseReservationMng.WarehouseReservation, WarehouseReservation>(dtoItem, dbItem);

            // map child collection
            // delete case
            List <int> toBeDeletedDetailIDs = new List <int>();

            foreach (WarehouseReservationProductDetail toBeDeletedDetail in dbItem.WarehouseReservationProductDetail)
            {
                if (!dtoItem.Details.Select(o => o.WarehouseReservationProductDetailID).Contains(toBeDeletedDetail.WarehouseReservationProductDetailID))
                {
                    toBeDeletedDetailIDs.Add(toBeDeletedDetail.WarehouseReservationProductDetailID);
                }
            }
            foreach (int toBeDeletedDetailID in toBeDeletedDetailIDs)
            {
                dbItem.WarehouseReservationProductDetail.Remove(dbItem.WarehouseReservationProductDetail.FirstOrDefault(o => o.WarehouseReservationProductDetailID == toBeDeletedDetailID));
            }

            foreach (DTO.WarehouseReservationMng.WarehouseReservationProductDetail dtoDetail in dtoItem.Details)
            {
                // add new case
                WarehouseReservationProductDetail dbDetail = null;
                if (dtoDetail.WarehouseReservationProductDetailID <= 0)
                {
                    dbDetail = new WarehouseReservationProductDetail();
                    dbDetail.WarehouseReservation = dbItem;
                    dbItem.WarehouseReservationProductDetail.Add(dbDetail);
                }
                else
                {
                    dbDetail = dbItem.WarehouseReservationProductDetail.FirstOrDefault(o => o.WarehouseReservationProductDetailID == dtoDetail.WarehouseReservationProductDetailID);
                }

                if (dbDetail != null)
                {
                    AutoMapper.Mapper.Map <DTO.WarehouseReservationMng.WarehouseReservationProductDetail, WarehouseReservationProductDetail>(dtoDetail, dbDetail);
                }
            }
        }