public async Task <ActionResult> CreatePurchase([FromBody] PurchaseCreateDto purchase)
        {
            int id          = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);
            var logineduser = await _auth.VerifyUser(id);


            Purchase _newPurchase = new Purchase()
            {
                NumberCode       = String.Format("{0:d9}", (DateTime.Now.Ticks / 10) % 1000000000),
                Customer         = await _context.Customers.FirstOrDefaultAsync(s => s.Id == purchase.CustomerId),
                CustomsInclude   = purchase.CustomsInclude,
                CustomsCost      = purchase.CustomsCost,
                TransportInclude = purchase.TransportInclude,
                TransportCost    = purchase.TransportCost,
                PaymentTerm      = await _context.PaymentTerms.FirstOrDefaultAsync(s => s.Id == purchase.PaymentTermId),
                PaymentKind      = await _context.PaymentKinds.FirstOrDefaultAsync(s => s.Id == purchase.PaymentKindId),
                PaymentPeriod    = purchase.PaymentPeriod,
                PaymentLastDate  = purchase.PaymentLastDate,
                DeliveryTerm     = await _context.DeliveryTerms.FirstOrDefaultAsync(s => s.Id == purchase.DeliveryTermId),
                DeliveryPeriod   = purchase.DeliveryPeriod,
                Company          = logineduser.Company,
                ApprovedDate     = DateTime.Now,
                ApprovedWorker   = logineduser,
                OpenClose        = true,
                Status           = true
            };

            _context.Purchases.Add(_newPurchase);
            await _context.SaveChangesAsync();

            foreach (var item in purchase.PurchaseProductList)
            {
                PurchaseProduct purchaseProduct = new PurchaseProduct()
                {
                    Purchase       = _newPurchase,
                    Product        = await _context.Products.FirstOrDefaultAsync(s => s.Id == item.ProductId),
                    Country        = await _context.Country.FirstOrDefaultAsync(s => s.Id == item.CountryId),
                    Quantity       = item.Quantity,
                    Price          = item.Price,
                    Discount       = item.Discount,
                    LastPrice      = item.LastPrice,
                    VAT            = item.VAT,
                    ComingQuantity = 0
                };

                _context.PurchaseProducts.Add(purchaseProduct);
                await _context.SaveChangesAsync();
            }

            return(StatusCode(201));
        }
Пример #2
0
        public async Task <PurchaseDto> CreateAsync(PurchaseCreateDto dto)
        {
            var prc = await _productResellerCustomerService.GetProductResellerCustomerAsync(dto.ResellerId, dto.CustomerId, dto.ProductId);

            if (prc != null)
            {
                var purchase = new Purchase
                {
                    ProductId                 = dto.ProductId,
                    CustomerId                = dto.CustomerId,
                    ResellerId                = dto.ResellerId,
                    UserCustomerId            = dto.UserCustomerId,
                    ProductResellerCustomerId = prc.Id
                };
                _repository.Create <Purchase, int>(purchase);
                await SaveChangesAsync();

                return(_mapper.Map <PurchaseDto>(purchase));
            }
            throw new Exception("Product-customer-reseller relation doesn't exist");
        }
        public async Task <IActionResult> MakeCustomerPurchaseAsync([FromBody] PurchaseCreateDto purchaseDto)
        {
            var dto = await _purchaseService.CreateAsync(purchaseDto);

            return(Ok(dto));
        }