public async Task <IActionResult> GetInvoiceList([FromBody] GetInvoiceListRequest req) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } repository.SetTimeout(120); PortalUser user = await repository.AuthenticateUserToken(req.CurrentUser.UserId, req.CurrentUser.UserToken); if (user == null || req.VendorId == null) { return(NotFound()); } var invoiceList = await repository.GetInvoicesByManufacturerId((int)req.VendorId, user.CompanyId); GetInvoiceListResponse resp = new GetInvoiceListResponse(); resp.Invoices = invoiceList.Where(x => x.TransactionStatusTypeId == (int)TransactionStatusType.Enum.Open).Select(x => paymentWorkflow.LoadInvoice(x)).ToList(); resp.TotalVendors = resp.Invoices.Select(x => x.VendorId).Distinct().Count(); resp.TotalOutstandingBalance = resp.Invoices.Select(x => x.ManufacturerRate).Sum(); resp.CompletionPercentage = await repository.GetInvoiceAcknowledgedProgressPercent(); return(Ok(resp)); }
public async Task <IActionResult> GetCommissionsList([FromBody] GetCommissionsListRequest req) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } repository.SetTimeout(120); PortalUser user = await repository.AuthenticateUserToken(req.CurrentUser.UserId, req.CurrentUser.UserToken); if (user == null) { return(NotFound()); } var invoiceList = (await repository.GetInvoicesByDriverId(req.DriverId)).Where(x => x.CompanyId == user.CompanyId).ToList(); GetInvoiceListResponse resp = new GetInvoiceListResponse() { Invoices = invoiceList.Select(x => paymentWorkflow.LoadInvoice(x)).ToList() }; return(Ok(resp)); }