private void InsertIntoAccounting(CreditNoteReceivingAC creditNoteRecevingAC, CreditNoteDetail creditNoteDetail) { try { List <DoubleEntry> listOfDoubleEntry = new List <DoubleEntry>(); var ledgersForSupplier = _iAccountingRepository.GetAccountLedgerBySupplier(creditNoteRecevingAC.ListOfCreditNotes[0].SupplierId); var ledgersForCash = _iAccountingRepository.GetAccountLedgerByName(StringConstants.CashInHand, Convert.ToInt32(creditNoteDetail.BranchId)); var ledgersForBank = _iAccountingRepository.GetAccountLedgerByName(StringConstants.Bank, Convert.ToInt32(creditNoteDetail.BranchId)); if (ledgersForSupplier != null && ledgersForCash != null && ledgersForBank != null) { decimal totalAmount = 0; totalAmount = (creditNoteRecevingAC.Cheque + creditNoteRecevingAC.Cash); listOfDoubleEntry.Add(new DoubleEntry { LedgerId = ledgersForSupplier.Id, TransactionDate = DateTime.UtcNow, Credit = totalAmount, Debit = 0, CreatedDateTime = DateTime.UtcNow, ActivityName = StringConstants.ReceivingCreditNote, Description = "Credit Note Number :" + creditNoteDetail.CreditNoteNo }); if (creditNoteRecevingAC.Cash != 0) { listOfDoubleEntry.Add(new DoubleEntry { LedgerId = ledgersForCash.Id, TransactionDate = DateTime.UtcNow, Credit = 0, Debit = creditNoteRecevingAC.Cash, CreatedDateTime = DateTime.UtcNow, ActivityName = StringConstants.ReceivingCreditNote, Description = "Credit Note Number :" + creditNoteDetail.CreditNoteNo }); } if (creditNoteRecevingAC.Cheque != 0) { listOfDoubleEntry.Add(new DoubleEntry { LedgerId = ledgersForBank.Id, TransactionDate = DateTime.UtcNow, Credit = 0, Debit = creditNoteRecevingAC.Cheque, CreatedDateTime = DateTime.UtcNow, ActivityName = StringConstants.ReceivingCreditNote, Description = "Credit Note Number :" + creditNoteDetail.CreditNoteNo }); } } if (listOfDoubleEntry.Any()) { _iAccountingRepository.AddAccountingEntries(listOfDoubleEntry); } } catch (Exception ex) { _errorLog.LogException(ex); throw; } }
/// <summary> /// This method used for insert into account entroes table.- JJ /// </summary> /// <param name="SupplierReturnId"></param> /// <param name="SupplierId"></param> /// <param name="BranchId"></param> private void InsertIntoAccountEntries(int SupplierReturnId, int BranchId) { try { List <DoubleEntry> listOfDoubleEntry = new List <DoubleEntry>(); var supplierReturnItems = _supplierReturnItemContext.Fetch(x => x.SupplierReturnId == SupplierReturnId).ToList(); var totalReturnAmount = 0M; foreach (var item in supplierReturnItems) { totalReturnAmount += (decimal)(item.ReturnQuantity * item.CostPrice); } if (totalReturnAmount > 0) { var ledgersForStockInHand = _iAccountingRepository.GetAccountLedgerByName(StringConstants.StockInHand, Convert.ToInt32(BranchId)); var ledgersForCreditNote = _iAccountingRepository.GetAccountLedgerByName(StringConstants.CRNote, Convert.ToInt32(BranchId)); if (ledgersForStockInHand != null && ledgersForCreditNote != null) { listOfDoubleEntry.Add(new DoubleEntry { LedgerId = ledgersForCreditNote.Id, TransactionDate = DateTime.UtcNow, Credit = 0, Debit = totalReturnAmount, ActivityName = StringConstants.SupplierReturnRequest, CreatedDateTime = DateTime.UtcNow }); listOfDoubleEntry.Add(new DoubleEntry { LedgerId = ledgersForStockInHand.Id, TransactionDate = DateTime.UtcNow, Credit = totalReturnAmount, Debit = 0, ActivityName = StringConstants.SupplierReturnRequest, CreatedDateTime = DateTime.UtcNow }); } } if (listOfDoubleEntry.Any()) { _iAccountingRepository.AddAccountingEntries(listOfDoubleEntry); } } catch (Exception ex) { _errorLog.LogException(ex); throw; } }
public IHttpActionResult AddAccountingEntries(List <DoubleEntry> doubleEntry) { _accountingRepository.AddAccountingEntries(doubleEntry); return(Ok()); }
/// <summary> /// This method used for insert into account entroes table.- JJ /// </summary> /// <param name="destruction"></param> /// <param name="totalCostPrice"></param> private void InsertIntoAccountEntries(SupplierPurchaseOrder supplierPO, SPOPaymentAC supplierPOPayment, decimal?discount) { try { List <DoubleEntry> listOfDoubleEntry = new List <DoubleEntry>(); var spoBranches = _purchaseOrderBranchContext.Fetch(x => x.PurchaseOrderId == supplierPO.Id).ToList(); foreach (var branch in spoBranches) { if (supplierPO.SupplierProfile.SupplierType.ValueEn == StringConstants.Cash)//check whether cash po. { var ledgersForCash = _iAccountingRepository.GetAccountLedgerByName(StringConstants.CashInHand, Convert.ToInt32(branch.BranchId)); var ledgersForStockInHand = _iAccountingRepository.GetAccountLedgerByName(StringConstants.StockInHand, Convert.ToInt32(branch.BranchId)); var cash = 0M; cash = supplierPOPayment.Cash; if (discount > 0) { cash += (decimal)discount; } if (ledgersForCash != null && ledgersForStockInHand != null) { listOfDoubleEntry.Add(new DoubleEntry { LedgerId = ledgersForCash.Id, TransactionDate = DateTime.UtcNow, Credit = cash, Debit = 0, ActivityName = StringConstants.SPOPayment, CreatedDateTime = DateTime.UtcNow, Description = "Entry for SPO no. " + supplierPO.PurchaseOrderNumber }); listOfDoubleEntry.Add(new DoubleEntry { LedgerId = ledgersForStockInHand.Id, TransactionDate = DateTime.UtcNow, Credit = 0, Debit = cash, ActivityName = StringConstants.SPOPayment, CreatedDateTime = DateTime.UtcNow, Description = "Entry for SPO no. " + supplierPO.PurchaseOrderNumber }); } } else { var ledgersForSupplier = _iAccountingRepository.GetAccountLedgerBySupplier(supplierPO.SupplierId); var ledgersForStockInHand = _iAccountingRepository.GetAccountLedgerByName(StringConstants.StockInHand, Convert.ToInt32(branch.BranchId)); var cheque = 0M; cheque = supplierPOPayment.Cheque; if (discount > 0) { cheque += (decimal)discount; } if (ledgersForSupplier != null && ledgersForStockInHand != null) { listOfDoubleEntry.Add(new DoubleEntry { LedgerId = ledgersForSupplier.Id, TransactionDate = DateTime.UtcNow, Credit = cheque, Debit = 0, ActivityName = StringConstants.SPOPayment, CreatedDateTime = DateTime.UtcNow, Description = "Entry for SPO no. " + supplierPO.PurchaseOrderNumber }); listOfDoubleEntry.Add(new DoubleEntry { LedgerId = ledgersForStockInHand.Id, TransactionDate = DateTime.UtcNow, Credit = 0, Debit = cheque, ActivityName = StringConstants.SPOPayment, CreatedDateTime = DateTime.UtcNow, Description = "Entry for SPO no. " + supplierPO.PurchaseOrderNumber }); } } if (discount > 0) { var ledgersForIncome = _iAccountingRepository.GetAccountLedgerByName(StringConstants.Income, Convert.ToInt32(branch.BranchId)); if (ledgersForIncome != null) { listOfDoubleEntry.Add(new DoubleEntry { LedgerId = ledgersForIncome.Id, TransactionDate = DateTime.UtcNow, Credit = (decimal)discount, Debit = 0, ActivityName = StringConstants.SPOPayment, CreatedDateTime = DateTime.UtcNow, Description = "Entry for SPO no. " + supplierPO.PurchaseOrderNumber }); } } if (supplierPOPayment.Credit > 0) { var ledgersForSupplier = _iAccountingRepository.GetAccountLedgerBySupplier(supplierPO.SupplierId); var ledgersForCreditNote = _iAccountingRepository.GetAccountLedgerByName(StringConstants.CRNote, Convert.ToInt32(branch.BranchId)); if (ledgersForSupplier != null && ledgersForCreditNote != null) { listOfDoubleEntry.Add(new DoubleEntry { LedgerId = ledgersForCreditNote.Id, TransactionDate = DateTime.UtcNow, Credit = supplierPOPayment.Credit, Debit = 0, ActivityName = StringConstants.SPOPayment, CreatedDateTime = DateTime.UtcNow, Description = "Entry for SPO no. " + supplierPO.PurchaseOrderNumber }); listOfDoubleEntry.Add(new DoubleEntry { LedgerId = ledgersForSupplier.Id, TransactionDate = DateTime.UtcNow, Credit = 0, Debit = supplierPOPayment.Credit, ActivityName = StringConstants.SPOPayment, CreatedDateTime = DateTime.UtcNow, Description = "Entry for SPO no. " + supplierPO.PurchaseOrderNumber }); } } } if (listOfDoubleEntry.Any()) { _iAccountingRepository.AddAccountingEntries(listOfDoubleEntry); } } catch (Exception ex) { _errorLog.LogException(ex); throw; } }