Ejemplo n.º 1
0
        private GeneralLedgerView MapToView(GeneralLedger inputObject)
        {
            Mapper            mapper    = new Mapper();
            GeneralLedgerView outObject = mapper.Map <GeneralLedgerView>(inputObject);

            return(outObject);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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); }
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        public async Task <bool> CreateIncomeAndCash(GeneralLedgerView glView)
        {
            bool results = false;

            results = await CreateCash(glView);

            results = results && await CreateIncome(glView);

            return(results);
        }
Ejemplo n.º 6
0
        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); }
        }
Ejemplo n.º 7
0
 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); }
 }
Ejemplo n.º 8
0
        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); }
        }