Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
        /// <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;
            }
        }