public override async Task DeleteAsync(long id)
        {
            var model = await DbSet.Include(d => d.Items).FirstOrDefaultAsync(d => d.Id == id);

            EntityExtension.FlagForDelete(model, IdentityService.Username, "sales-service", true);

            GarmentBookingOrder booking = DbContext.GarmentBookingOrders.FirstOrDefault(b => b.Id == model.BookingOrderId);

            if (booking != null)
            {
                booking.IsBlockingPlan = false;
            }
            foreach (var item in model.Items)
            {
                GarmentWeeklyPlanItem week = DbContext.GarmentWeeklyPlanItems.FirstOrDefault(a => a.Id == item.WeeklyPlanItemId);
                week.UsedEH      -= (int)item.EHBooking;
                week.RemainingEH += (int)item.EHBooking;
                if (item.IsConfirm)
                {
                    week.WHConfirm -= Math.Round((item.EHBooking / (week.Operator * week.Efficiency)), 2);
                }

                EntityExtension.FlagForDelete(item, IdentityService.Username, "sales-service", true);
            }
        }
Exemple #2
0
        public override void UpdateAsync(long id, GarmentSewingBlockingPlan newModel)
        {
            var model = DbSet.AsNoTracking().Include(d => d.Items).FirstOrDefault(d => d.Id == id);

            if (model.Status == "Booking Ada Perubahan")
            {
                newModel.Status = "Booking";
            }

            foreach (var item in model.Items)
            {
                GarmentWeeklyPlanItem week = DbContext.GarmentWeeklyPlanItems.FirstOrDefault(a => a.Id == item.WeeklyPlanItemId);
                week.UsedEH      -= (int)item.EHBooking;
                week.RemainingEH += (int)item.EHBooking;
            }

            foreach (var newPlan in newModel.Items)
            {
                GarmentWeeklyPlanItem week = DbContext.GarmentWeeklyPlanItems.FirstOrDefault(a => a.Id == newPlan.WeeklyPlanItemId);
                //var oldItem = model.Items.FirstOrDefault(i => i.Id == newPlan.Id);
                if (newPlan.Id == 0)
                {
                    week.UsedEH      += (int)newPlan.EHBooking;
                    week.RemainingEH -= (int)newPlan.EHBooking;

                    EntityExtension.FlagForCreate(newPlan, IdentityService.Username, "sales-service");
                }
                else
                {
                    week.UsedEH      += (int)newPlan.EHBooking;
                    week.RemainingEH -= (int)newPlan.EHBooking;

                    EntityExtension.FlagForUpdate(newPlan, IdentityService.Username, "sales-service");
                }
            }


            DbSet.Update(newModel);

            foreach (var oldItem in model.Items)
            {
                var newItem = newModel.Items.FirstOrDefault(i => i.Id == oldItem.Id);
                if (newItem == null)
                {
                    EntityExtension.FlagForDelete(oldItem, IdentityService.Username, "sales-service");
                    DbContext.GarmentSewingBlockingPlanItems.Update(oldItem);
                }
            }


            //DbSet.Update(model);

            EntityExtension.FlagForUpdate(newModel, IdentityService.Username, "sales-service");
        }
        public async Task GetWeekById_Return_Success()
        {
            //Settup
            var dbContext       = DbContext(GetCurrentMethod());
            var serviceProvider = GetServiceProviderMock(dbContext).Object;

            WeeklyPlanFacade facade = new WeeklyPlanFacade(serviceProvider, dbContext);

            var data = await DataUtil(facade, dbContext).GetTestData();

            //Act
            GarmentWeeklyPlanItem response = facade.GetWeekById((int)data.Id);

            //Assert
            Assert.NotNull(response);
            Assert.NotEqual(0, response.Id);
        }
Exemple #4
0
        public override void Create(GarmentSewingBlockingPlan model)
        {
            EntityExtension.FlagForCreate(model, IdentityService.Username, "sales-service");
            model.Status = "Booking";
            GarmentBookingOrder booking = DbContext.GarmentBookingOrders.FirstOrDefault(b => b.Id == model.BookingOrderId);

            booking.IsBlockingPlan = true;
            foreach (var item in model.Items)
            {
                GarmentWeeklyPlanItem week = DbContext.GarmentWeeklyPlanItems.FirstOrDefault(a => a.Id == item.WeeklyPlanItemId);
                week.UsedEH      += (int)item.EHBooking;
                week.RemainingEH -= (int)item.EHBooking;


                EntityExtension.FlagForCreate(item, IdentityService.Username, "sales-service");
            }
            base.Create(model);
        }