private GeneralLedgerView MapToView(GeneralLedger inputObject) { Mapper mapper = new Mapper(); GeneralLedgerView outObject = mapper.Map <GeneralLedgerView>(inputObject); return(outObject); }
public async Task TestCreateIncomeRevenue() { int addressId = 1; decimal income = 2800M; //long incomeDocumentNumber = 20; //manually extracted //UnitOfWork unitOfWork = new UnitOfWork(); GeneralLedgerModule ledgerMod = new GeneralLedgerModule(); //Income GL GeneralLedgerView glView = new GeneralLedgerView(); glView.DocNumber = -1; //glView.DocType = udcDocType.KeyCode; //glView.AccountId = coa.AccountId; glView.Amount = income; //glView.LedgerType = udcLedgerType.KeyCode; glView.GLDate = DateTime.Parse("9/20/2018"); //glView.CreatedDate = DateTime.Parse("9/20/2018"); glView.AddressId = addressId; glView.Comment = "Week end 8/31/2018"; //glView.DebitAmount = income; //glView.CreditAmount = 0; //glView.FiscalPeriod = 9; //glView.FiscalYear = 2018; glView.CheckNumber = "T2"; bool result = await ledgerMod.CreateIncomeAndCash(glView); Assert.True(result); }
public async Task <bool> CreateIncome(GeneralLedgerView glView) { try { //ChartOfAccts coa = await unitOfWork.generalLedgerRepository.GetChartofAccount("1000", "1200", "300", ""); ChartOfAccount coa = await ChartOfAccounts.Query().GetEntity("1000", "1200", "300", ""); //Udc udcLedgerType = await unitOfWork.generalLedgerRepository.GetUdc("GENERALLEDGERTYPE", "AA"); Udc udcLedgerType = await UDC.Query().GetUdc("GENERALLEDGERTYPE", "AA"); Udc udcDocType = await UDC.Query().GetUdc("DOCTYPE", "PV"); //Udc udcDocType = await unitOfWork.generalLedgerRepository.GetUdc("DOCTYPE","PV"); //AddressBook addressBook = await unitOfWork.addressBookRepository.GetAddressBookByAddressId(addressId); AddressBook addressBook = await AddressBook.Query().GetEntityById(glView.AddressId); glView.DocType = udcDocType.KeyCode; glView.AccountId = coa.AccountId; glView.LedgerType = udcLedgerType.KeyCode; glView.CreatedDate = DateTime.Now; glView.AddressId = addressBook.AddressId; glView.FiscalPeriod = glView.GLDate.Month; glView.FiscalYear = glView.GLDate.Year; glView.DebitAmount = glView.Amount; glView.CreditAmount = 0; GeneralLedgerView glLookup = null; if (String.IsNullOrEmpty(glView.CheckNumber) == false) { glLookup = await GeneralLedger.Query().GetLedgerViewByExpression( e => e.AccountId == glView.AccountId && e.AddressId == glView.AddressId && e.Amount == glView.Amount && e.CheckNumber == glView.CheckNumber && e.DocType == glView.DocType && e.Gldate == glView.GLDate ); } if (glLookup == null) { //create income GeneralLedger.CreateGeneralLedgerByView(glView).Apply(); GeneralLedger.UpdateAccountBalances(glView); GeneralLedgerView glViewLookup = await GeneralLedger.Query().GetViewByDocNumber(glView.DocNumber, glView.DocType); return(glViewLookup != null); } else { glView.DocNumber = glLookup.DocNumber; } return(true); } catch (Exception ex) { throw new Exception("CreateCash", ex); } }
public async Task TestCreatePersonalExpenseAndPayment() { GeneralLedgerModule ledgerMod = new GeneralLedgerModule(); long addressId = 1; decimal expense = 768M; GeneralLedgerView glView = new GeneralLedgerView(); glView.DocNumber = -1; //glView.DocType = udcDocType.KeyCode; //glView.AccountId = coa.AccountId; glView.Amount = expense * -1; //glView.LedgerType = udcLedgerType.KeyCode; glView.GLDate = DateTime.Parse("9/19/2018"); //glView.CreatedDate = DateTime.Parse("9/19/2018"); glView.AddressId = addressId; glView.Comment = "Mortgage Payment"; glView.CheckNumber = "T1"; glView.GeneralLedgerNumber = (await ledgerMod.GeneralLedger.Query().GetNextNumber()).NextNumberValue; //glView.DebitAmount = 0; //glView.CreditAmount = expense; //glView.FiscalPeriod = 9; //glView.FiscalYear = 2018; bool result1 = await ledgerMod.CreatePersonalExpense(glView); GeneralLedgerView glViewLookup = await ledgerMod.GeneralLedger.Query().GetViewByDocNumber(glView.DocNumber, glView.DocType); //ChartOfAccts coaCash = await unitOfWork.generalLedgerRepository.GetChartofAccount("1000", "1200", "101", ""); //ChartOfAccts coaCash = ledgerMod.ChartOfAccounts.Query().GetChartofAccount("1000", "1200", "101", ""); GeneralLedgerView glCashView = new GeneralLedgerView(); //long cashDocumentNumber = 22; glCashView.DocNumber = -1; //glCashView.DocType = udcDocType.KeyCode; //glCashView.AccountId = coaCash.AccountId; glCashView.Amount = expense * -1; //glCashView.LedgerType = udcLedgerType.KeyCode; glCashView.GLDate = DateTime.Parse("9/20/2018"); //glCashView.CreatedDate = DateTime.Parse("9/20/2018"); glCashView.AddressId = addressId; glCashView.Comment = "Mortgage Payment"; glCashView.CheckNumber = "T1"; //glCashView.DebitAmount = 0; //glCashView.CreditAmount = expense; //glCashView.FiscalPeriod = 9; //glCashView.FiscalYear = 2018; bool result2 = await ledgerMod.CreateCashPayment(glCashView); GeneralLedgerView glCashViewLookup = await ledgerMod.GeneralLedger.Query().GetViewByDocNumber(glCashView.DocNumber, glCashView.DocType); Assert.True(glCashViewLookup != null && glViewLookup != null); }
public async Task <bool> CreateIncomeAndCash(GeneralLedgerView glView) { bool results = false; results = await CreateCash(glView); results = results && await CreateIncome(glView); return(results); }
public async Task <bool> CreateCashPayment(GeneralLedgerView glCashView) { try { ChartOfAccount coaCash = await ChartOfAccounts.Query().GetEntity("1000", "1200", "101", ""); Udc udcLedgerType = await UDC.Query().GetUdc("GENERALLEDGERTYPE", "AA"); Udc udcDocType = await UDC.Query().GetUdc("DOCTYPE", "PV"); AddressBook addressBook = await AddressBook.Query().GetEntityById(glCashView.AddressId); glCashView.AccountId = coaCash.AccountId; glCashView.DebitAmount = 0; glCashView.CreditAmount = glCashView.Amount; glCashView.FiscalPeriod = glCashView.GLDate.Month; glCashView.FiscalYear = glCashView.GLDate.Year; glCashView.DocType = udcDocType.KeyCode; glCashView.LedgerType = udcLedgerType.KeyCode; glCashView.CreatedDate = DateTime.Now; glCashView.AddressId = addressBook.AddressId; GeneralLedgerView glLookup = null; if (glCashView.CheckNumber != null) { glLookup = await GeneralLedger.Query().GetLedgerViewByExpression( e => e.AccountId == glCashView.AccountId && e.AddressId == glCashView.AddressId && e.Amount == glCashView.Amount && e.CheckNumber == glCashView.CheckNumber && e.DocType == glCashView.DocType && e.Gldate == glCashView.GLDate ); } if (glLookup == null) { GeneralLedger.CreateGeneralLedgerByView(glCashView).Apply(); GeneralLedger.UpdateAccountBalances(glCashView); } else { glCashView.DocNumber = glLookup.DocNumber; } return(true); } catch (Exception ex) { throw new Exception("CreateCashPayment", ex); } }
public async Task <GeneralLedger> FindEntityByView(GeneralLedgerView view) { try { var query = await(from e in _dbContext.GeneralLedger where e.AccountId == view.AccountId && e.Amount == view.Amount && e.Gldate == view.GLDate && e.DocNumber == view.DocNumber && e.CheckNumber == view.CheckNumber select e ).FirstOrDefaultAsync <GeneralLedger>(); return(query); } catch (Exception ex) { throw new Exception(GetMyMethodName(), ex); } }
public IEnumerable <AccountSummaryView> GetAccountSummaryByFiscalYearViews(long fiscalYear) { try { var query = (from e in _dbContext.GeneralLedger where (e.LedgerType == "AA" && e.DocType == "PV" && e.FiscalYear == fiscalYear) group e by e.AccountId into pg join f in _dbContext.ChartOfAccount on pg.Key equals f.AccountId select new { AccountId = pg.Key, FiscalPeriod = pg.Select(g => g.FiscalPeriod).FirstOrDefault(), FiscalYear = pg.Select(g => g.FiscalYear).FirstOrDefault(), Amount = pg.Select(g => g.Amount).Sum(), Description = f.Description, Ledgers = pg.ToList() }); IList <AccountSummaryView> list = new List <AccountSummaryView>(); foreach (var item in query) { AccountSummaryView view = new AccountSummaryView(); view.AccountId = item.AccountId; view.FiscalPeriod = item.FiscalPeriod; view.FiscalYear = item.FiscalYear; view.Description = item.Description; view.Amount = item.Amount; foreach (var ledger in item.Ledgers.OrderByDescending(i => i.Gldate)) { GeneralLedgerView glView = MapToView(ledger); view.ledgers.Add(glView); } list.Add(view); } return(list); } catch (Exception ex) { throw new Exception(GetMyMethodName(), ex); } }