Ejemplo n.º 1
0
        public async Task Create(PurchaseCreateDTO dto)
        {
            using var tx = TransactionScopeHelper.GetInstance();

            var supplier = await _supplierRepo.GetById(dto.SupplierId).ConfigureAwait(false) ?? throw new Exception("Supplier not found!!!");


            var purchase = new Purchase(supplier, dto.Discount);

            foreach (var data in dto.PurchaseDetails)
            {
                var item = await _itemRepo.GetById(data.ItemId).ConfigureAwait(false) ?? throw new Exception("Item not found!");

                purchase.AddPurchaseDetails(item, data.Qty, data.Rate, data.SalesRate);
                item.AddQty(data.Qty);
                item.UpdateRate(data.SalesRate);
                await _itemRepo.UpdateAsync(item).ConfigureAwait(false);
            }

            await _purchaseRepo.InsertAsync(purchase).ConfigureAwait(false);



            tx.Complete();
        }
Ejemplo n.º 2
0
 public PurchaseServiceTest()
 {
     _purchase             = new Purchase(_supplier, discount);
     _purchaseService      = new PurchaseService(_purchaseRepo.Object, _supplierRepo.Object, _itemRepo.Object);
     _purchaseCreate       = new PurchaseCreateDTO();
     _purchaseDetailCreate = new PurchaseDetailCreateDTO();
     _supplier             = new Supplier(name, address, email, phone);
 }
Ejemplo n.º 3
0
        public async Task <IActionResult> Create(PurchaseIndexViewModel allPurchases)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var purchase = new PurchaseCreateDTO()
                    {
                        SupplierId = allPurchases.SupplierId,
                        Total      = allPurchases.Total,
                        GrandTotal = allPurchases.GrandTotal,
                        Discount   = allPurchases.Discount,
                        Remarks    = allPurchases.Remarks
                    };

                    var purchaseDetails = new List <PurchaseDetailCreateDTO>();

                    foreach (var data in allPurchases.PurchaseDetails)
                    {
                        var dto = new PurchaseDetailCreateDTO
                        {
                            ItemId    = data.ItemId,
                            Rate      = data.Rate,
                            Qty       = data.Qty,
                            Amount    = data.Amount,
                            SalesRate = data.SalesRate,
                        };


                        purchaseDetails.Add(dto);
                    }
                    purchase.PurchaseDetails = purchaseDetails;
                    await _purchaseService.Create(purchase).ConfigureAwait(true);

                    return(Json(purchase));
                }
            }
            catch (Exception ex)
            {
                _toastNotification.AddErrorToastMessage("Error in creating sale!");
            }

            allPurchases.Suppliers = await _supplierInterface.GetAllAsync().ConfigureAwait(true);

            allPurchases.Items = (await _itemRepo.GetAllAsync().ConfigureAwait(true)).Where(a => a.IsActive()).ToList();

            return(View(allPurchases));
        }