Beispiel #1
0
        public async Task <ApiResult <bool> > CombinedBills(CombinedBills bundle)
        {
            var json        = JsonConvert.SerializeObject(bundle);
            var httpContent = new StringContent(json, Encoding.UTF8, "application/json");
            var url         = $"/api/Bill/combined-bills";
            var result      = await Create <bool>(url, httpContent);

            return(result);
        }
Beispiel #2
0
        public async Task <ApiResult <bool> > CombinedBills(CombinedBills bundle)
        {
            if (bundle.Combined.Length < 2)
            {
                return(new ApiErrorResult <bool>("Gộp thất bại"));
            }
            List <OrderDetail> listOrderDetails = new List <OrderDetail>();

            foreach (var item in bundle.Combined)
            {
                var orderPlan = await _context.OrderPlans.Include(x => x.OrderDetails)
                                .Where(x => x.Id == item).FirstOrDefaultAsync();

                foreach (var x in orderPlan.OrderDetails)
                {
                    var orderDetail = new OrderDetail()
                    {
                        IdMaterials = x.IdMaterials,
                        IdSupplier  = x.IdSupplier,
                        Amount      = x.Amount - x.EnterAmount,
                        Note        = x.Note,
                        Price       = x.Price,
                        Unit        = x.Unit
                    };
                    listOrderDetails.Add(orderDetail);
                }
            }

            // tạo code
            var code = await _context.ManageCodes.FirstOrDefaultAsync(x => x.Name == bundle.Code);

            var stt = 1;

Location:
            var location = code.Location + stt;

            var str = code.Name + location;

            var checkCode = await _context.OrderPlans.AnyAsync(x => x.Code == str);

            if (checkCode)
            {
                stt++;
                goto Location;
            }
            var idcreate = await _userManager.FindByNameAsync(bundle.NameCreator);

            var order = new OrderPlan()
            {
                Code          = str,
                Name          = "(Gộp kế hoạch)",
                CreatedDate   = DateTime.Now,
                ExpectedDate  = DateTime.Now,
                Note          = "(Gộp kế hoạch)",
                OrderDetails  = listOrderDetails,
                IdCreator     = idcreate.Id,
                IdResponsible = bundle.IdResponsible
            };

            _context.OrderPlans.Add(order);
            await _context.SaveChangesAsync();

            List <OrderPlan> orderPlanUpdate = new List <OrderPlan>();

            foreach (var item in bundle.Combined)
            {
                var orderPlan = await _context.OrderPlans.Include(x => x.OrderDetails)
                                .Where(x => x.Id == item).FirstOrDefaultAsync();

                orderPlan.Status = StatusOrderPlan.Accomplished;
                orderPlanUpdate.Add(orderPlan);
            }
            _context.OrderPlans.UpdateRange(orderPlanUpdate);
            await _context.SaveChangesAsync();

            return(new ApiSuccessResult <bool>());
        }
Beispiel #3
0
        public async Task <IActionResult> CombinedBills([FromBody] CombinedBills bundle)
        {
            var result = await _billService.CombinedBills(bundle);

            return(Ok(result));
        }
Beispiel #4
0
        public async Task <IActionResult> CombinedBills(CombinedBills bundle)
        {
            var result = await _billApiClient.CombinedBills(bundle);

            return(Ok(result));
        }