diff --git a/src/app/core/services/common/export-log.service.ts b/src/app/core/services/common/export-log.service.ts index 729c9b1cc..644a98cf7 100644 --- a/src/app/core/services/common/export-log.service.ts +++ b/src/app/core/services/common/export-log.service.ts @@ -50,17 +50,13 @@ export class ExportLogService { return this.apiService.get(`/workspaces/${workspaceId}/fyle/expenses/`, params); } - getExpenseGroups(state: TaskLogState, limit: number, offset: number, selectedDateFilter: SelectedDateFilter | null, exportedAt?: string | null, query?: string | null, appName?: AppName): Observable { + getExpenseGroups(state: TaskLogState, limit: number, offset: number, selectedDateFilter: SelectedDateFilter | null, exportedAt?: string | null, query?: string | null): Observable { const params: ExpenseGroupParam = { limit, offset }; - if (appName === AppName.INTACCT) { - params.state = state; - } else { - params.tasklog__status = state; - } + params.tasklog__status = state; if (query) { params.expenses__expense_number = query; @@ -72,21 +68,8 @@ export class ExportLogService { if (selectedDateFilter) { const startDate = selectedDateFilter.startDate.toLocaleDateString().split('/'); const endDate = selectedDateFilter.endDate.toLocaleDateString().split('/'); - if (appName === AppName.INTACCT) { - params.start_date = `${startDate[2]}-${startDate[1]}-${startDate[0]}T00:00:00`; - params.end_date = `${endDate[2]}-${endDate[1]}-${endDate[0]}T23:59:59`; - } else { params.exported_at__gte = `${startDate[2]}-${startDate[1]}-${startDate[0]}T00:00:00`; params.exported_at__lte = `${endDate[2]}-${endDate[1]}-${endDate[0]}T23:59:59`; - } - } - - if (exportedAt) { - if (appName === AppName.INTACCT) { - params.exported_at = exportedAt; - } else { - params.exported_at__gte = exportedAt; - } } return this.apiService.get(`/workspaces/${this.workspaceId}/fyle/expense_groups/`, params); diff --git a/src/app/integrations/intacct/intacct-main/intacct-export-log/intacct-completed-export-log/intacct-completed-export-log.component.html b/src/app/integrations/intacct/intacct-main/intacct-export-log/intacct-completed-export-log/intacct-completed-export-log.component.html index 0ca023ea3..aa41145e7 100644 --- a/src/app/integrations/intacct/intacct-main/intacct-export-log/intacct-completed-export-log/intacct-completed-export-log.component.html +++ b/src/app/integrations/intacct/intacct-main/intacct-export-log/intacct-completed-export-log/intacct-completed-export-log.component.html @@ -1,23 +1,24 @@ -
+
-
+
- -
+
-
- diff --git a/src/app/integrations/intacct/intacct-main/intacct-export-log/intacct-completed-export-log/intacct-completed-export-log.component.ts b/src/app/integrations/intacct/intacct-main/intacct-export-log/intacct-completed-export-log/intacct-completed-export-log.component.ts index 67f5afb5d..3f1a78f4e 100644 --- a/src/app/integrations/intacct/intacct-main/intacct-export-log/intacct-completed-export-log/intacct-completed-export-log.component.ts +++ b/src/app/integrations/intacct/intacct-main/intacct-export-log/intacct-completed-export-log/intacct-completed-export-log.component.ts @@ -12,6 +12,8 @@ import { environment } from 'src/environments/environment'; import { brandingConfig, brandingFeatureConfig } from 'src/app/branding/branding-config'; import { AccountingExportList, AccountingExportModel } from 'src/app/core/models/db/accounting-export.model'; import { UserService } from 'src/app/core/services/misc/user.service'; +import { Subject } from 'rxjs/internal/Subject'; +import { debounceTime } from 'rxjs/internal/operators/debounceTime'; @Component({ selector: 'app-intacct-completed-export-log', @@ -60,13 +62,26 @@ export class IntacctCompletedExportLogComponent implements OnInit { readonly brandingConfig = brandingConfig; + searchQuery: string | null; + + private searchQuerySubject = new Subject(); + constructor( private formBuilder: FormBuilder, private trackingService: TrackingService, private exportLogService: ExportLogService, private paginatorService: PaginatorService, private userService: UserService - ) { } + ) { + this.searchQuerySubject.pipe( + debounceTime(1000) + ).subscribe((query: string) => { + this.searchQuery = query; + this.offset = 0; + this.currentPage = Math.ceil(this.offset / this.limit) + 1; + this.getAccountingExports(this.limit, this.offset); + }); + } openExpenseinFyle(expense_id: string) { const url = `${environment.fyle_app_url}/app/admin/#/view_expense/${expense_id}`; @@ -74,9 +89,7 @@ export class IntacctCompletedExportLogComponent implements OnInit { } public handleSimpleSearch(query: string) { - this.filteredAccountingExports = this.accountingExports.filter((group: AccountingExportList) => { - return AccountingExportModel.getfilteredAccountingExports(query, group); - }); + this.searchQuerySubject.next(query); } pageSizeChanges(limit: number): void { @@ -103,10 +116,10 @@ export class IntacctCompletedExportLogComponent implements OnInit { this.paginatorService.storePageSize(PaginatorPage.EXPORT_LOG, limit); } - this.exportLogService.getExpenseGroups(TaskLogState.COMPLETE, limit, offset, this.selectedDateFilter, null, null, AppName.INTACCT).subscribe((accountingExportResponse: ExpenseGroupResponse) => { - if (!this.isDateSelected) { - this.totalCount = accountingExportResponse.count; - } + this.exportLogService.getExpenseGroups(TaskLogState.COMPLETE, limit, offset, this.selectedDateFilter, null, this.searchQuery).subscribe((accountingExportResponse: ExpenseGroupResponse) => { + + this.totalCount = accountingExportResponse.count; + const accountingExports: AccountingExportList[] = accountingExportResponse.results.map((accountingExport: ExpenseGroup) => AccountingExportModel.parseExpenseGroupAPIResponseToExportLog(accountingExport, this.org_id, this.appName) ); @@ -128,13 +141,16 @@ export class IntacctCompletedExportLogComponent implements OnInit { this.exportLogForm.controls.start.valueChanges.subscribe((dateRange) => { const paginator: Paginator = this.paginatorService.getPageSize(PaginatorPage.EXPORT_LOG); if (!dateRange) { + this.dateOptions = AccountingExportModel.getDateOptionsV2(); this.selectedDateFilter = null; + this.isDateSelected = false; this.getAccountingExports(paginator.limit, paginator.offset); } else if (dateRange.length && dateRange[1]) { this.selectedDateFilter = { startDate: dateRange[0], endDate: dateRange[1] }; + this.isDateSelected = true; this.trackDateFilter('existing', this.selectedDateFilter); this.getAccountingExports(paginator.limit, paginator.offset); diff --git a/src/app/integrations/intacct/intacct-main/intacct-export-log/intacct-skip-export-log/intacct-skip-export-log.component.html b/src/app/integrations/intacct/intacct-main/intacct-export-log/intacct-skip-export-log/intacct-skip-export-log.component.html index 7e9d4f235..a3b8fa5d4 100644 --- a/src/app/integrations/intacct/intacct-main/intacct-export-log/intacct-skip-export-log/intacct-skip-export-log.component.html +++ b/src/app/integrations/intacct/intacct-main/intacct-export-log/intacct-skip-export-log/intacct-skip-export-log.component.html @@ -1,19 +1,19 @@ -
+
-
+
- - + -
+
-
- diff --git a/src/app/integrations/intacct/intacct-main/intacct-export-log/intacct-skip-export-log/intacct-skip-export-log.component.ts b/src/app/integrations/intacct/intacct-main/intacct-export-log/intacct-skip-export-log/intacct-skip-export-log.component.ts index 6dd005b23..f41a0f21f 100644 --- a/src/app/integrations/intacct/intacct-main/intacct-export-log/intacct-skip-export-log/intacct-skip-export-log.component.ts +++ b/src/app/integrations/intacct/intacct-main/intacct-export-log/intacct-skip-export-log/intacct-skip-export-log.component.ts @@ -9,6 +9,8 @@ import { ExportLogService } from 'src/app/core/services/common/export-log.servic import { PaginatorService } from 'src/app/core/services/si/si-core/paginator.service'; import { brandingConfig, brandingFeatureConfig } from 'src/app/branding/branding-config'; import { AccountingExportModel, SkippedAccountingExportModel } from 'src/app/core/models/db/accounting-export.model'; +import { debounceTime } from 'rxjs/operators'; +import { Subject } from 'rxjs'; @Component({ selector: 'app-intacct-skip-export-log', @@ -57,17 +59,29 @@ export class IntacctSkipExportLogComponent implements OnInit { readonly brandingConfig = brandingConfig; + searchQuery: string | null; + + private searchQuerySubject = new Subject(); + + constructor( private formBuilder: FormBuilder, private trackingService: TrackingService, private exportLogService: ExportLogService, private paginatorService: PaginatorService - ) { } + ) { + this.searchQuerySubject.pipe( + debounceTime(1000) + ).subscribe((query: string) => { + this.searchQuery = query; + this.offset = 0; + this.currentPage = Math.ceil(this.offset / this.limit) + 1; + this.getSkippedExpenses(this.limit, this.offset); + }); +} public handleSimpleSearch(query: string) { - this.filteredExpenses = this.expenses.filter((group: SkipExportList) => { - return SkippedAccountingExportModel.getfilteredSkippedAccountingExports(query, group); - }); + this.searchQuerySubject.next(query); } pageSizeChanges(limit: number): void { @@ -94,10 +108,8 @@ export class IntacctSkipExportLogComponent implements OnInit { this.paginatorService.storePageSize(PaginatorPage.EXPORT_LOG, limit); } - return this.exportLogService.getSkippedExpenses(limit, offset, this.selectedDateFilter, null).subscribe((skippedExpenses: SkipExportLogResponse) => { - if (!this.isDateSelected) { + return this.exportLogService.getSkippedExpenses(limit, offset, this.selectedDateFilter, this.searchQuery).subscribe((skippedExpenses: SkipExportLogResponse) => { this.totalCount = skippedExpenses.count; - } skippedExpenses.results.forEach((skippedExpense: SkipExportLog) => { skippedExpenseGroup.push(SkippedAccountingExportModel.parseAPIResponseToSkipExportList(skippedExpense)); @@ -118,18 +130,24 @@ export class IntacctSkipExportLogComponent implements OnInit { }); this.skipExportLogForm.controls.start.valueChanges.subscribe((dateRange) => { - if (dateRange[1]) { + const paginator: Paginator = this.paginatorService.getPageSize(PaginatorPage.EXPORT_LOG); + if (!dateRange) { + this.dateOptions = AccountingExportModel.getDateOptionsV2(); + this.isDateSelected = false; + this.selectedDateFilter = null; + + this.getSkippedExpenses(paginator.limit, paginator.offset); + } else if (dateRange.length && dateRange[1]) { this.selectedDateFilter = { startDate: dateRange[0], endDate: dateRange[1] }; - this.trackDateFilter('existing', this.selectedDateFilter); + this.isDateSelected = true; - const paginator: Paginator = this.paginatorService.getPageSize(PaginatorPage.EXPORT_LOG); this.getSkippedExpenses(paginator.limit, paginator.offset); - } - }); + } + }); } private getSkippedExpensesAndSetupPage(): void { diff --git a/src/app/integrations/qbo/qbo-main/qbo-export-log/qbo-skipped-export-log/qbo-skipped-export-log.component.html b/src/app/integrations/qbo/qbo-main/qbo-export-log/qbo-skipped-export-log/qbo-skipped-export-log.component.html index e842054a1..f62dca023 100644 --- a/src/app/integrations/qbo/qbo-main/qbo-export-log/qbo-skipped-export-log/qbo-skipped-export-log.component.html +++ b/src/app/integrations/qbo/qbo-main/qbo-export-log/qbo-skipped-export-log/qbo-skipped-export-log.component.html @@ -1,3 +1,7 @@ +
+ +
+
{ + this.exportLogService.getExpenseGroups((status as unknown as TaskLogState), limit, offset, null, lastExportedAt).subscribe((accountingExportResponse: ExpenseGroupResponse) => { const accountingExports: AccountingExportList[] = accountingExportResponse.results.map((accountingExport: ExpenseGroup) => AccountingExportModel.parseExpenseGroupAPIResponseToExportLog(accountingExport, this.org_id, this.appName) );