Пример #1
0
        public async Task <IActionResult> GetJournalList([FromBody] GetJournalListRequest req)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            PortalUser user = await repository.AuthenticateUserToken(req.CurrentUser.UserId, req.CurrentUser.UserToken);

            if (user == null)
            {
                return(NotFound());
            }

            List <JournalEntryModel> retList = new List <JournalEntryModel>();

            switch (req.JournalTypeId)
            {
            case (int)JournalType.Enum.Expenses:
                break;

            case (int)JournalType.Enum.Recurring:
                if (req.ContractId > 0)
                {
                    var recurringList = await repository.GetRecurringJournalEntriesByContractId(req.ContractId);

                    retList.AddRange(recurringList.Where(x => x.CompanyId == user.CompanyId).Select(x => LoadJournalEntry(x)));
                    break;
                }
                else
                {
                    var recurringList = await repository.GetRecurringJournalEntriesByDriverId(req.DriverId);

                    retList.AddRange(recurringList.Where(x => x.CompanyId == user.CompanyId).Select(x => LoadJournalEntry(x)));
                    break;
                }

            case (int)JournalType.Enum.MaintenanceParts:
                var maintenanceList = await repository.GetMaintenanceJournalEntriesByDriverId(req.DriverId);

                retList.AddRange(maintenanceList.Where(x => x.CompanyId == user.CompanyId).Select(x => LoadJournalEntry(x)));
                break;

            case (int)JournalType.Enum.Compliance:
                break;

            case (int)JournalType.Enum.Adjustment:
                break;

            default:
                return(NotFound());
            }


            //return Ok(resp);
            return(Ok(LoadJournalEntries(req, retList)));
        }
Пример #2
0
        private async Task <GetJournalListResposne> LoadJournalEntries(GetJournalListRequest req, List <JournalEntryModel> retList)
        {
            GetJournalListResposne resp = new GetJournalListResposne()
            {
                JournalEntries = retList
            };

            if (req.JournalEntryId > 0)
            {
                resp.CurrentJournalEntry = retList.FirstOrDefault(x => x.JournalEntryId == req.JournalEntryId);
            }
            else
            {
                if (retList.Count > 0)
                {
                    resp.CurrentJournalEntry = retList[0];
                }
            }


            //create sample records for offshore
            //TODO: WILL NEED TO POPULATE CORRECTLY
            int recCounter = 0;

            foreach (JournalEntryModel jem in resp.JournalEntries)
            {
                //add 3 test transactions
                for (int i = 0; i < 3; i++)
                {
                    recCounter = recCounter + 1;

                    if (jem.SettledTransactions == null)
                    {
                        jem.SettledTransactions = new List <SettledTransactionModel>();
                    }

                    SettledTransactionModel sem = new SettledTransactionModel();
                    sem.PaymentNumber        = "SME00000" + recCounter.ToString();
                    sem.SettledDate          = new DateTime(2018, 1, 15);
                    sem.SettledTransactionId = recCounter;
                    sem.TransactionAmount    = (recCounter * 110) + (.23m * decimal.Parse(recCounter.ToString()));
                    sem.TransactionDesc      = "Test Trans " + recCounter.ToString();

                    jem.SettledTransactions.Add(sem);
                }
            }

            return(resp);
        }