/// <summary> /// This method used for add receving credit note detail. -An /// </summary> /// <param name="recevingCreditNotePaymentDetail"></param> /// <returns></returns> public int AddRecevingCreditNotePaymantDetal(RecevingCreditNotePaymentDetail recevingCreditNotePaymentDetail) { try { _recevingCreditNotePaymentDetailContext.Add(recevingCreditNotePaymentDetail); _recevingCreditNotePaymentDetailContext.SaveChanges(); return(recevingCreditNotePaymentDetail.Id); } catch (Exception ex) { _errorLog.LogException(ex); throw; } }
public IHttpActionResult SubmitRecevingCreditNote(CreditNoteReceivingAC creditNoteRecevingAC) { try { RecevingCreditNotePaymentDetail recevingCreditNotePaymentDetail = new RecevingCreditNotePaymentDetail(); recevingCreditNotePaymentDetail.CashAmount = creditNoteRecevingAC.Cash; recevingCreditNotePaymentDetail.ChequeAmount = creditNoteRecevingAC.Cheque; recevingCreditNotePaymentDetail.VoucherNo = creditNoteRecevingAC.VoucharNo; recevingCreditNotePaymentDetail.ChequeNo = creditNoteRecevingAC.ChequeNo; recevingCreditNotePaymentDetail.CreatedDateTime = DateTime.UtcNow; int recevingCreditNotePaymantId = _iCreditNoteRepository.AddRecevingCreditNotePaymantDetal(recevingCreditNotePaymentDetail); decimal remainingAmount = 0; decimal totalAmount = creditNoteRecevingAC.Cash + creditNoteRecevingAC.Cheque; foreach (var creditNote in creditNoteRecevingAC.ListOfCreditNotes.OrderBy(x => x.Amount)) { var creditNoteDetail = _iCreditNoteRepository.GetCreditNoteDetailById(creditNote.Id); if (creditNoteDetail != null && totalAmount > 0) { if (creditNoteDetail.IsCollected) { remainingAmount = totalAmount - creditNoteDetail.RemainigAmount; if (remainingAmount < 0) { creditNoteDetail.RemainigAmount = creditNoteDetail.RemainigAmount - totalAmount; totalAmount = remainingAmount; } else { totalAmount = remainingAmount; creditNoteDetail.RemainigAmount = 0; } } else { creditNoteDetail.IsCollected = true; remainingAmount = totalAmount - creditNoteDetail.Amount; if (remainingAmount < 0) { creditNoteDetail.RemainigAmount = creditNoteDetail.Amount - totalAmount; totalAmount = remainingAmount; } else { totalAmount = remainingAmount; creditNoteDetail.RemainigAmount = 0; } } creditNoteDetail.RecevingCreditNotePaymentId = recevingCreditNotePaymantId; _iCreditNoteRepository.UpdateCreditNoteDetail(creditNoteDetail); } #region Insert Into Accounting InsertIntoAccounting(creditNoteRecevingAC, creditNoteDetail); #endregion } return(Ok(new { _isResult = true })); } catch (Exception ex) { _errorLog.LogException(ex); throw; } }