/// <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;
     }
 }
Пример #2
0
        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;
            }
        }