/// <summary> /// This method is used to issue credit note. - JJ /// </summary> /// <param name="SupplierReturnId">Id of SupplierReturnDetail</param> /// <param name="BranchId"></param> /// <param name="Comment"></param> /// <param name="CompanyId"></param> /// <returns>status</returns> public bool IssueCreditNote(int SupplierReturnId, int?BranchId, int CompanyId, string Comment) { try { var supplierReturnItem = _supplierReturnItemContext.Fetch(x => x.SupplierReturnId == SupplierReturnId).ToList(); var amount = 0M; var supplierReturnDetailId = 0; foreach (var item in supplierReturnItem) { supplierReturnDetailId = item.SupplierReturnId; amount = amount + (item.CostPrice * item.ReturnQuantity); } var creditNoteDetail = new CreditNoteDetail { Amount = amount, BranchId = BranchId, CreatedDateTime = DateTime.UtcNow, InitiationComment = Comment, InitiationDate = DateTime.UtcNow, IsCollected = false, TypeId = _paramTypeContext.FirstOrDefault(x => x.ValueEn == StringConstants.SupplierReturnNote).Id, CreditNoteNo = CreditNoteNumberGenerator(CompanyId) }; _creditNoteDetailContext.Add(creditNoteDetail); _creditNoteDetailContext.SaveChanges(); foreach (var item in supplierReturnItem) { var creditNoteItem = new CreditNoteItem { CostPrice = item.CostPrice, CreatedDateTime = DateTime.UtcNow, CreditNoteId = creditNoteDetail.Id, ItemId = item.ItemId, Quantity = item.ReturnQuantity, }; _creditNoteItemContext.Add(creditNoteItem); _creditNoteItemContext.SaveChanges(); } var supoplierReturnCreditNote = new SupplierReturnCreditNote { CreatedDateTime = DateTime.UtcNow, CreditNoteId = creditNoteDetail.Id, SuppierReturnId = supplierReturnDetailId }; _supplierReturnCreditNoteContext.Add(supoplierReturnCreditNote); _supplierReturnCreditNoteContext.SaveChanges(); return(true); } catch (Exception ex) { _errorLog.LogException(ex); throw; } }
/// <summary> /// This method used for add credit notes item. -An /// </summary> /// <param name="creditNoteItems"></param> /// <returns></returns> public int AddCreditNotesItem(CreditNoteItem creditNoteItems) { try { _iCreditNoteItemContext.Add(creditNoteItems); _iCreditNoteItemContext.SaveChanges(); return(creditNoteItems.Id); } catch (Exception ex) { _errorLog.LogException(ex); throw; } }