public async Task <GetGoodsReceivedNoteDto> CreateGoodsReceivedNoteAsync(CreateGoodsReceivedNoteDto goodsReceivedNoteDto) { //verify PO allowed to create GRN var order = await CheckPurchaseOrder(goodsReceivedNoteDto.PurchaseOrderId); CheckPurchaseOrderAllowedToCreateGRN(order); var currentUser = Helper.GetCurrentUser(_userAccessor); var goodsReceivedNote = _mapper.Map <GoodsReceivedNote>(goodsReceivedNoteDto); goodsReceivedNote.CreatedBy = currentUser.UserId; goodsReceivedNote.CreatedDate = DateTime.Now; goodsReceivedNote.ApprovalStatus = Status.Pending; goodsReceivedNote = await _goodReceivedNote.AddGoodsReceivedNoteAsync(goodsReceivedNote); var items = await _purchaseOrderItem.GetPurchaseOrderItemsAsync(e => e.PurchaseOrderId == goodsReceivedNoteDto.PurchaseOrderId); foreach (var item in items) { var grnItem = new GoodsReceivedNoteItem { GoodsReceivedNoteId = goodsReceivedNote.Id, ItemId = item.ItemId, ItemUnitPrice = item.ItemUnitPrice, Quantity = item.Quantity }; await _goodsReceivedNoteItem.AddGoodsReceivedNoteItemAsync(grnItem); } return(_mapper.Map <GetGoodsReceivedNoteDto>(goodsReceivedNote)); }
public CreateGoodsReceivedNoteDtoValidatorFixture() { Validator = new CreateGoodsReceivedNoteDtoValidator(); Model = new CreateGoodsReceivedNoteDto { PurchaseOrderId = 1, InvoiceNumber = "INV_2021_02_13", PaymentTypeId = 1, Nbt = 0.3m, Vat = 0.5m, Discount = 1.2m, ReceivedBy = Guid.NewGuid(), ReceivedDate = DateTime.Now }; }
public async Task <IActionResult> CreateGoodsReceivedNote(CreateGoodsReceivedNoteDto goodsReceivedNoteDto, ApiVersion version) { var result = await _repository.CreateGoodsReceivedNoteAsync(goodsReceivedNoteDto); return(CreatedAtRoute(new { id = result.Id, version = $"{version}" }, result)); }