Exemplo n.º 1
0
 public RequiredMedicamentAmountDTO(RequiredMedicamentAmount requiredAmount)
 {
     Id         = requiredAmount.Id;
     Amount     = requiredAmount.Amount;
     Pharmacy   = requiredAmount.Pharmacy;
     Medicament = requiredAmount.Medicament;
 }
Exemplo n.º 2
0
        private async Task Restock(Pharmacy pharmacy, RequiredMedicamentAmount requiredAmount,
                                   ProductBalance productInPharmacy)
        {
            var orderDto = await CreateOrderDTO(requiredAmount, productInPharmacy);

            try
            {
                await _ordersManager.TryCreateOrder(orderDto, pharmacy.Id);
            }
            catch (DuplicateObjectException ex)
            {
                var order = await Context.Orders
                            .Where(o => o.Id == ex.Id)
                            .Include(o => o.OrderProductBalances)
                            .ThenInclude(opb => opb.ProductBalance)
                            .FirstOrDefaultAsync();

                order.UpdateFromDTO(await _ordersManager.CreateProductBalanceList(orderDto.Products));
                await Context.SaveChangesAsync();
            }
        }
Exemplo n.º 3
0
        private async Task <CreateOrderDTO> CreateOrderDTO(RequiredMedicamentAmount requiredAmount,
                                                           ProductBalance productInPharmacy)
        {
            var warehouse = await Context.Warehouses
                            .Where(w => w.Id == 1)
                            .Include(w => w.Products)
                            .FirstOrDefaultAsync();

            var productsToOrder = new TransactionProductDTO
            {
                Amount           = requiredAmount.Amount - productInPharmacy.Amount,
                ProductBalanceId = warehouse.GetProductId(productInPharmacy.MedicamentId)
            };

            var orderDto = new CreateOrderDTO
            {
                WarehouseId = warehouse.Id,
                Products    = new List <TransactionProductDTO> {
                    productsToOrder
                }
            };

            return(orderDto);
        }
Exemplo n.º 4
0
 private static bool IsRestockRequired(RequiredMedicamentAmount requiredAmount, ProductBalance productInPharmacy)
 {
     return(requiredAmount != null && requiredAmount.Amount > productInPharmacy.Amount);
 }