@sachin9822/reports-lib 0.0.214 → 0.0.216
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/accounting-report/accounting-report.component.mjs +19 -1
- package/esm2020/lib/components/branch-activity-send-report/branch-activity-send-report.component.mjs +21 -1
- package/esm2020/lib/components/branch-activity-send-summary-report/branch-activity-send-summary-report.component.mjs +19 -1
- package/esm2020/lib/components/cancellation-transaction-report/cancellation-transaction-report.component.mjs +21 -1
- package/esm2020/lib/components/transaction-enquiry-report/transaction-enquiry-report.component.mjs +21 -3
- package/esm2020/lib/components/transaction-monitoring-report/transaction-monitoring-report.component.mjs +26 -5
- package/esm2020/lib/components/trial-balance-accounts-report/trial-balance-accounts-report.component.mjs +23 -50
- package/esm2020/lib/models/trial-balance-accounts-report/trial-balance-accounts.models.mjs +1 -1
- package/esm2020/lib/services/report.service.mjs +4 -4
- package/esm2020/lib/shared/search-filter/search-filter.component.mjs +31 -18
- package/fesm2015/sachin9822-reports-lib.mjs +298 -76
- package/fesm2015/sachin9822-reports-lib.mjs.map +1 -1
- package/fesm2020/sachin9822-reports-lib.mjs +176 -75
- package/fesm2020/sachin9822-reports-lib.mjs.map +1 -1
- package/lib/components/cancellation-transaction-report/cancellation-transaction-report.component.d.ts +13 -0
- package/lib/components/transaction-monitoring-report/transaction-monitoring-report.component.d.ts +1 -0
- package/lib/components/trial-balance-accounts-report/trial-balance-accounts-report.component.d.ts +2 -3
- package/lib/models/trial-balance-accounts-report/trial-balance-accounts.models.d.ts +0 -1
- package/lib/services/report.service.d.ts +1 -1
- package/lib/shared/search-filter/search-filter.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -277,9 +277,9 @@ class ReportService {
|
|
|
277
277
|
const apiPath = `${this.reportServiceUrl}/api/v1/Report/TrialBalanceAccountsReport/GetTrialBalanceAccountsReport`;
|
|
278
278
|
return this.http.post(apiPath, object).pipe(map(response => response || undefined));
|
|
279
279
|
}
|
|
280
|
-
// Api 2 - Get Business
|
|
281
|
-
|
|
282
|
-
const apiPath = `${this.reportServiceUrl}/api/v1/Report/TrialBalanceAccountsReport/
|
|
280
|
+
// Api 2 - Get Business Line
|
|
281
|
+
GetBusinessLineForTrialBalanceAccountsReport() {
|
|
282
|
+
const apiPath = `${this.reportServiceUrl}/api/v1/Report/TrialBalanceAccountsReport/GetBusinessLine`;
|
|
283
283
|
return this.http.get(apiPath).pipe(map(response => {
|
|
284
284
|
return response;
|
|
285
285
|
}));
|
|
@@ -1425,7 +1425,7 @@ class SearchFilterComponent {
|
|
|
1425
1425
|
this.isSelectAllChecked = true;
|
|
1426
1426
|
this.erroMessage = 'Error in Loading Data';
|
|
1427
1427
|
// for Trial Balance - Accounts Report
|
|
1428
|
-
this.
|
|
1428
|
+
this.businessLines = [];
|
|
1429
1429
|
this.accountStatuses = [];
|
|
1430
1430
|
this.currency = [];
|
|
1431
1431
|
this.financialYears = [];
|
|
@@ -1448,7 +1448,7 @@ class SearchFilterComponent {
|
|
|
1448
1448
|
'Accounting': ['client', 'fromDate', 'toDate', 'branch', 'transactionProduct', 'sendCurrency', 'transactionStatus', 'sendCountry', 'receiveCountry'],
|
|
1449
1449
|
'Credit Limit Status Enquiry': ['client', 'fromDate', 'toDate', 'transactionStatusSingleSelect'],
|
|
1450
1450
|
'Funding': ['fromDate', 'toDate'],
|
|
1451
|
-
'Trial Balance - Accounts': ['
|
|
1451
|
+
'Trial Balance - Accounts': ['businessLine', 'accountStatus', 'currency', 'financialYear', 'fromMonth', 'toMonth', 'dateTypeForTrialBalanceAccounts', 'fromDay', 'toDay'],
|
|
1452
1452
|
'Branch Activity Send Summary': ['client', 'fromDate', 'toDate', 'branch', 'transactionProduct', 'receiveCurrency', 'transactionStatus', 'sendCountry', 'receiveCountry', 'summaryReport'],
|
|
1453
1453
|
'Transaction Monitoring': ['client', 'fromDate', 'toDate', 'branch', 'transactionProduct', 'receiveCurrency', 'transactionStatus', 'sendCountry', 'receiveCountry'],
|
|
1454
1454
|
// Add more report types here
|
|
@@ -1479,7 +1479,7 @@ class SearchFilterComponent {
|
|
|
1479
1479
|
receiveCountry: 'Receive Country:',
|
|
1480
1480
|
sendBusinessPartner: 'Sender Partner:',
|
|
1481
1481
|
recvBusinessPartner: 'Receiver Partner:',
|
|
1482
|
-
|
|
1482
|
+
businessLine: 'Business Line:',
|
|
1483
1483
|
financialYear: 'Financial Year:',
|
|
1484
1484
|
fromMonth: 'From Month:',
|
|
1485
1485
|
toMonth: 'To Month:',
|
|
@@ -1508,7 +1508,7 @@ class SearchFilterComponent {
|
|
|
1508
1508
|
receiveCurrency: 'currency',
|
|
1509
1509
|
sendBusinessPartner: 'name',
|
|
1510
1510
|
recvBusinessPartner: 'name',
|
|
1511
|
-
|
|
1511
|
+
businessLine: 'businessLine',
|
|
1512
1512
|
financialYear: 'financialYear',
|
|
1513
1513
|
fromMonth: 'period',
|
|
1514
1514
|
toMonth: 'pMonthName',
|
|
@@ -1529,7 +1529,7 @@ class SearchFilterComponent {
|
|
|
1529
1529
|
receiveCurrency: 'currencyCode',
|
|
1530
1530
|
sendBusinessPartner: 'id',
|
|
1531
1531
|
recvBusinessPartner: 'id',
|
|
1532
|
-
|
|
1532
|
+
businessLine: 'businessLine',
|
|
1533
1533
|
financialYear: 'financialYear',
|
|
1534
1534
|
fromMonth: 'pOrder',
|
|
1535
1535
|
toMonth: 'pMonth',
|
|
@@ -1899,7 +1899,7 @@ class SearchFilterComponent {
|
|
|
1899
1899
|
if (this.ReportName == "Trial Balance - Accounts") {
|
|
1900
1900
|
this.searchForm = this.fb.group({
|
|
1901
1901
|
// Added fields
|
|
1902
|
-
|
|
1902
|
+
businessLine: ['All'],
|
|
1903
1903
|
accountStatus: [['Active']],
|
|
1904
1904
|
financialYear: [new Date().getFullYear().toString()],
|
|
1905
1905
|
fromMonth: [''],
|
|
@@ -2198,7 +2198,7 @@ class SearchFilterComponent {
|
|
|
2198
2198
|
loadInitialDataForTrialBalanceAccounts() {
|
|
2199
2199
|
this.loadingState = ComponentLoadingState.Loading;
|
|
2200
2200
|
forkJoin({
|
|
2201
|
-
|
|
2201
|
+
businessLines: this.reportService.GetBusinessLineForTrialBalanceAccountsReport()
|
|
2202
2202
|
.pipe(catchError(err => of([]))),
|
|
2203
2203
|
accountStatuses: this.reportService.GetAccountStatusForTrialBalanceAccountsReport()
|
|
2204
2204
|
.pipe(catchError(err => of([]))),
|
|
@@ -2216,7 +2216,7 @@ class SearchFilterComponent {
|
|
|
2216
2216
|
.pipe(switchMap(results => {
|
|
2217
2217
|
var _a;
|
|
2218
2218
|
// assign base results
|
|
2219
|
-
this.
|
|
2219
|
+
this.businessLines = results.businessLines.filter(b => { var _a; return ((_a = b.businessLine) === null || _a === void 0 ? void 0 : _a.trim()) !== ''; });
|
|
2220
2220
|
this.accountStatuses = results.accountStatuses;
|
|
2221
2221
|
this.dateTypes = results.dateTypes;
|
|
2222
2222
|
this.financialYears = results.financialYears
|
|
@@ -2263,7 +2263,7 @@ class SearchFilterComponent {
|
|
|
2263
2263
|
this.toMonths = allResults.toMonths;
|
|
2264
2264
|
// patch form defaults
|
|
2265
2265
|
this.searchForm.patchValue({
|
|
2266
|
-
|
|
2266
|
+
businessLine: (_b = (_a = this.businessLines[0]) === null || _a === void 0 ? void 0 : _a.businessLine) !== null && _b !== void 0 ? _b : null,
|
|
2267
2267
|
accountStatus: this.accountStatuses.length ? [this.accountStatuses[0].statusCode] : [],
|
|
2268
2268
|
financialYear: (_d = (_c = this.paramDateDefault[0]) === null || _c === void 0 ? void 0 : _c.financialYear) !== null && _d !== void 0 ? _d : new Date().getFullYear().toString(),
|
|
2269
2269
|
fromMonth: (_e = this.paramDateDefault[0]) === null || _e === void 0 ? void 0 : _e.financialMonth,
|
|
@@ -2288,9 +2288,16 @@ class SearchFilterComponent {
|
|
|
2288
2288
|
(_a = this.searchForm.get('fromDate')) === null || _a === void 0 ? void 0 : _a.valueChanges.subscribe(fromDateStr => {
|
|
2289
2289
|
const toDateControl = this.searchForm.get('toDate');
|
|
2290
2290
|
const toDateStr = toDateControl === null || toDateControl === void 0 ? void 0 : toDateControl.value;
|
|
2291
|
-
if (!fromDateStr
|
|
2291
|
+
if (!fromDateStr)
|
|
2292
2292
|
return;
|
|
2293
2293
|
const fromDate = new Date(fromDateStr);
|
|
2294
|
+
// If ToDate is empty → set default
|
|
2295
|
+
if (!(toDateControl === null || toDateControl === void 0 ? void 0 : toDateControl.value)) {
|
|
2296
|
+
const maxToDate = new Date(fromDate);
|
|
2297
|
+
maxToDate.setDate(fromDate.getDate() + 30);
|
|
2298
|
+
toDateControl.patchValue(maxToDate.toISOString().split("T")[0]);
|
|
2299
|
+
return;
|
|
2300
|
+
}
|
|
2294
2301
|
const toDate = new Date(toDateStr);
|
|
2295
2302
|
const maxToDate = new Date(fromDate);
|
|
2296
2303
|
maxToDate === null || maxToDate === void 0 ? void 0 : maxToDate.setDate(fromDate.getDate() + 30);
|
|
@@ -2306,9 +2313,16 @@ class SearchFilterComponent {
|
|
|
2306
2313
|
(_b = this.searchForm.get('toDate')) === null || _b === void 0 ? void 0 : _b.valueChanges.subscribe(toDateStr => {
|
|
2307
2314
|
const fromDateControl = this.searchForm.get('fromDate');
|
|
2308
2315
|
const fromDateStr = fromDateControl === null || fromDateControl === void 0 ? void 0 : fromDateControl.value;
|
|
2309
|
-
if (!toDateStr
|
|
2316
|
+
if (!toDateStr)
|
|
2310
2317
|
return;
|
|
2311
2318
|
const toDate = new Date(toDateStr);
|
|
2319
|
+
// If FromDate is empty → set default
|
|
2320
|
+
if (!(fromDateControl === null || fromDateControl === void 0 ? void 0 : fromDateControl.value)) {
|
|
2321
|
+
const minFromDate = new Date(toDate);
|
|
2322
|
+
minFromDate.setDate(toDate.getDate() - 30);
|
|
2323
|
+
fromDateControl.patchValue(minFromDate.toISOString().split("T")[0]);
|
|
2324
|
+
return;
|
|
2325
|
+
}
|
|
2312
2326
|
const fromDate = new Date(fromDateStr);
|
|
2313
2327
|
this.disabledDate = this.toNgbDateStruct(fromDate);
|
|
2314
2328
|
const minFromDate = new Date(toDate);
|
|
@@ -2812,7 +2826,7 @@ class SearchFilterComponent {
|
|
|
2812
2826
|
}
|
|
2813
2827
|
}
|
|
2814
2828
|
buildSearchCriteria() {
|
|
2815
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16
|
|
2829
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16;
|
|
2816
2830
|
const formValue = this.searchForm.value;
|
|
2817
2831
|
const fromDate = new Date(formValue.fromDate);
|
|
2818
2832
|
const toDate = new Date(formValue.toDate);
|
|
@@ -3008,7 +3022,7 @@ class SearchFilterComponent {
|
|
|
3008
3022
|
const formValue = this.searchForm.value;
|
|
3009
3023
|
// formValue.fromDate = this.toIsoFormat(formValue.fromDate);
|
|
3010
3024
|
// formValue.toDate = this.toIsoFormat(formValue.toDate);
|
|
3011
|
-
if (((_8 = this.initialFilters) === null || _8 === void 0 ? void 0 : _8.isRealtime) && (formValue.fromDate
|
|
3025
|
+
if (((_8 = this.initialFilters) === null || _8 === void 0 ? void 0 : _8.isRealtime) && (!formValue.fromDate && !formValue.toDate)) {
|
|
3012
3026
|
formValue.fromDate = null;
|
|
3013
3027
|
formValue.toDate = null;
|
|
3014
3028
|
}
|
|
@@ -3033,7 +3047,6 @@ class SearchFilterComponent {
|
|
|
3033
3047
|
return {
|
|
3034
3048
|
modal: formValue,
|
|
3035
3049
|
sysUserID: this.currentUser,
|
|
3036
|
-
isRealtime: (_17 = this.initialFilters) === null || _17 === void 0 ? void 0 : _17.isRealtime,
|
|
3037
3050
|
searchCriteria: searchCriteria
|
|
3038
3051
|
};
|
|
3039
3052
|
}
|
|
@@ -3373,8 +3386,8 @@ class SearchFilterComponent {
|
|
|
3373
3386
|
case 'recvBusinessPartner':
|
|
3374
3387
|
list = this.recvBusinessPartnerAgents;
|
|
3375
3388
|
break;
|
|
3376
|
-
case '
|
|
3377
|
-
list = this.
|
|
3389
|
+
case 'businessLine':
|
|
3390
|
+
list = this.businessLines;
|
|
3378
3391
|
break;
|
|
3379
3392
|
case 'financialYear':
|
|
3380
3393
|
list = this.financialYears;
|
|
@@ -3519,10 +3532,10 @@ class SearchFilterComponent {
|
|
|
3519
3532
|
}
|
|
3520
3533
|
}
|
|
3521
3534
|
SearchFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SearchFilterComponent, deps: [{ token: ReportService }, { token: i2.FormBuilder }, { token: ConfigService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
3522
|
-
SearchFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SearchFilterComponent, selector: "lib-search-filter", inputs: { ReportName: "ReportName", initialFilters: "initialFilters" }, outputs: { searchClicked: "searchClicked", formValid: "formValid" }, ngImport: i0, template: "<h6 class=\"Breadcrumb\">\r\n <a class=\"BreadCrumbLink\" [routerLink]=\"['/reports']\">\r\n <h1>Reports</h1>\r\n </a>\r\n <a href=\"BreadCrumbLink\"></a>\r\n <span class=\"BreadCrumbArrow\"></span>\r\n <a class=\"BreadCrumbLink\">\r\n <h2>{{ ReportName }}</h2>\r\n </a>\r\n</h6>\r\n\r\n<app-loader *ngIf=\"loadingState === ComponentLoadingState.Loading\"></app-loader>\r\n<section>\r\n <form [formGroup]=\"searchForm\" (ngSubmit)=\"onSearch()\">\r\n <div class=\"row\">\r\n <div class=\"col-custom-10-5\">\r\n <div class=\"filter-grid\">\r\n\r\n <!-- Dynamically render filters in order -->\r\n <ng-container *ngFor=\"let field of visibleFields\">\r\n <ng-container [ngSwitch]=\"field\">\r\n\r\n <!-- Client -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'client'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Client<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"clients1\" bindLabel=\"businessPartnerName\" bindValue=\"businessPartnerCode\"\r\n placeholder=\"Select Client\" [clearable]=\"false\" formControlName=\"client\" required\r\n [ngClass]=\"{'invalid-select': searchForm.get('client')?.invalid && (searchForm.get('client')?.touched || formValidationError)}\"\r\n (change)=\"onClientChange()\" (open)=\"onOpen()\" (close)=\"onClose()\" [searchable]=\"isOpen\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.businessPartnerName\">{{ item.businessPartnerName }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Branch -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'branch'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Branch<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"branches\" bindLabel=\"businessPartnerBranch\" bindValue=\"branchCode\"\r\n placeholder=\"Select Branch\" [clearable]=\"false\" formControlName=\"branch\" required\r\n [ngClass]=\"{'invalid-select': searchForm.get('branch')?.invalid && (searchForm.get('branch')?.touched || formValidationError)}\"\r\n (change)=\"onBranchChange()\" (open)=\"onOpen()\" (close)=\"onClose()\" [searchable]=\"isOpen\">\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.businessPartnerBranch\">{{ item.businessPartnerBranch }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- From Date -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'fromDate'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">From Date<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <div class=\"input-group date-group\">\r\n <input class=\"form-control dpicker\" placeholder=\"dd/mm/yyyy\" ngbDatepicker\r\n #fromDateInput=\"ngbDatepicker\" formControlName=\"fromDate\" autocomplete=\"off\"\r\n [ngClass]=\"{'invalid-date':searchForm.get('fromDate')?.invalid && (searchForm.get('fromDate')?.touched || formValidationError)}\" />\r\n <button class=\"input-group-button cal\" (click)=\"fromDateInput.toggle()\" type=\"button\">\r\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- To Date -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'toDate'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">To Date<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <div class=\"input-group date-group\">\r\n <input class=\"form-control dpicker\" placeholder=\"dd/mm/yyyy\" ngbDatepicker\r\n #toDateInput=\"ngbDatepicker\" formControlName=\"toDate\" [minDate]=\"disabledDate\"\r\n autocomplete=\"off\"\r\n [ngClass]=\"{'invalid-date':searchForm.get('toDate')?.invalid && (searchForm.get('toDate')?.touched || formValidationError)}\" />\r\n <button class=\"input-group-button cal\" (click)=\"toDateInput.toggle()\" type=\"button\">\r\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Product -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'product'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Product</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"products\" bindLabel=\"productName\" bindValue=\"productCode\"\r\n placeholder=\"Select Product\" [clearable]=\"false\" formControlName=\"product\" (open)=\"onOpen()\"\r\n (close)=\"onClose()\" [searchable]=\"isOpen\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- User -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'userId'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">User<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"users\" bindLabel=\"userName\" bindValue=\"userId\" placeholder=\"Select User\"\r\n [clearable]=\"false\" formControlName=\"userId\" required (open)=\"onOpen()\" (close)=\"onClose()\"\r\n [searchable]=\"isOpen\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('userId')?.invalid && (searchForm.get('userId')?.touched || formValidationError)}\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Currency -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'currency'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Currency</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"currencies\" bindValue=\"currencyCode\" placeholder=\"Select Currency\"\r\n [clearable]=\"false\" formControlName=\"currency\" [searchable]=\"true\" [searchFn]=\"currencySearch\"\r\n (open)=\"onOpen()\" (close)=\"onClose()\" [searchable]=\"isOpen\">\r\n\r\n <!-- Template for dropdown options -->\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <div\r\n [title]=\"item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency)\">\r\n {{ item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency) }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Template for selected value -->\r\n <ng-template ng-label-tmp let-item=\"item\">\r\n <div\r\n [title]=\"item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency)\">\r\n {{ item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency) }}\r\n </div>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--Send Currency -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'sendCurrency'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Send Currency</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"currencies\" bindValue=\"currencyCode\" placeholder=\"Select Currency\"\r\n [clearable]=\"false\" formControlName=\"currency\" [searchable]=\"true\" [searchFn]=\"currencySearch\"\r\n (open)=\"onOpen()\" (close)=\"onClose()\" [searchable]=\"isOpen\">\r\n\r\n <!-- Template for dropdown options -->\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <div\r\n [title]=\"item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency)\">\r\n {{ item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency) }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Template for selected value -->\r\n <ng-template ng-label-tmp let-item=\"item\">\r\n <div\r\n [title]=\"item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency)\">\r\n {{ item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency) }}\r\n </div>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Transaction Status (Multi-select) -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'transactionStatus'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Txn. Status<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select class=\"transaction-status-select\" [items]=\"transactionStatuses\"\r\n bindLabel=\"transactionStatus\" bindValue=\"transactionStatus\" [multiple]=\"true\"\r\n placeholder=\"Select Transaction Status\" formControlName=\"transactionStatus\"\r\n [closeOnSelect]=\"false\" [clearable]=\"false\" [searchable]=\"false\" required\r\n [ngClass]=\"{'invalid-select': searchForm.get('transactionStatus')?.invalid && (searchForm.get('transactionStatus')?.touched || formValidationError)}\">\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\">\r\n <input type=\"checkbox\" [checked]=\"item$.selected\" /> {{ item.transactionStatus }}\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Transaction No -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'transactionNo'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Txn. Number</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <input class=\"form-control dpicker\" formControlName=\"transactionNo\"\r\n placeholder=\"Enter transaction number\" />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Value Date -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'valueDate'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-3\">\r\n <label class=\"form-label label-data\">Value Date<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-9\">\r\n <div class=\"input-group\">\r\n <input class=\"form-control dpicker\" placeholder=\"dd/mm/yyyy\" ngbDatepicker\r\n #toDateInput=\"ngbDatepicker\" formControlName=\"toDate\" autocomplete=\"off\"\r\n [ngClass]=\"{'invalid-date':searchForm.get('date')?.invalid && (searchForm.get('date')?.touched || formValidationError)}\" />\r\n <button class=\"btn btn-outline-secondary\" type=\"button\" (click)=\"toDateInput.toggle()\">\r\n <i class=\"fa fa-calendar\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Send Country -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'sendCountry'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Send Country</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"countries\" bindLabel=\"country\" bindValue=\"countryCode\"\r\n placeholder=\"Select Product\" [clearable]=\"false\" formControlName=\"sendCountry\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.country\">{{ item.country }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Receive Country -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'receiveCountry'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Receive Country</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"countries\" bindLabel=\"country\" bindValue=\"countryCode\"\r\n placeholder=\"Select Product\" [clearable]=\"false\" formControlName=\"receiveCountry\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.country\">{{ item.country }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--Transaction Product -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'transactionProduct'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Product</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"transactionProducts\" bindLabel=\"name\" bindValue=\"productCode\"\r\n placeholder=\"Select Product\" [clearable]=\"false\" formControlName=\"product\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Date Type -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'dateType'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Date Type</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select placeholder=\"- Please select -\" formControlName=\"dateType\" [clearable]=\"false\" required>\r\n <ng-option [value]=\"1\">\r\n Value Date\r\n </ng-option>\r\n <ng-option [value]=\"2\">\r\n Posting Date\r\n </ng-option>\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Date -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'date'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Date</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <div class=\"input-group date-group\">\r\n <input class=\"form-control dpicker\" placeholder=\"dd/mm/yyyy\" ngbDatepicker\r\n #dateInput=\"ngbDatepicker\" formControlName=\"date\" autocomplete=\"off\"\r\n [ngClass]=\"{'invalid-date': searchForm.get('date')?.invalid && (searchForm.get('date')?.touched || formValidationError)}\" />\r\n <button class=\"input-group-button cal\" type=\"button\" (click)=\"dateInput.toggle()\">\r\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- receiveCurrency -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'receiveCurrency'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Receive Currency</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"currencies\" bindValue=\"currencyCode\" placeholder=\"Select Receive Currency\"\r\n [clearable]=\"false\" formControlName=\"receiveCurrency\" required (change)=\"onBranchChange()\"\r\n [searchable]=\"true\" [searchFn]=\"currencySearch\" (open)=\"onOpen()\" (close)=\"onClose()\"\r\n [searchable]=\"isOpen\">\r\n\r\n <!-- Dropdown options -->\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <div\r\n [title]=\"item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency)\">\r\n {{ item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency) }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Selected value -->\r\n <ng-template ng-label-tmp let-item=\"item\">\r\n <div\r\n [title]=\"item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency)\">\r\n {{ item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency) }}\r\n </div>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Send BusinessPartner -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'sendBusinessPartner'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Send Client<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"sendBusinessPartnerAgents\" bindLabel=\"name\" bindValue=\"id\"\r\n placeholder=\"Select Send Partner\" [clearable]=\"false\" formControlName=\"sendBusinessPartner\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('sendBusinessPartner')?.invalid && (searchForm.get('sendBusinessPartner')?.touched || formValidationError)}\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.name\">{{ item.name }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Recv BusinessPartner -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'recvBusinessPartner'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Recv Client<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"recvBusinessPartnerAgents\" bindLabel=\"name\" bindValue=\"id\"\r\n placeholder=\"Select Recv Partner\" [clearable]=\"false\" formControlName=\"recvBusinessPartner\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('recvBusinessPartner')?.invalid && (searchForm.get('recvBusinessPartner')?.touched || formValidationError)}\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.name\">{{ item.name }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Transaction Status (Single-select) -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'transactionStatusSingleSelect'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Txn. Status<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"transactionStatuses\" bindLabel=\"transactionStatus\" bindValue=\"transactionStatus\"\r\n placeholder=\"Select Status\" [clearable]=\"false\" formControlName=\"transactionStatus\" required\r\n [ngClass]=\"{'invalid-select': searchForm.get('transactionStatus')?.invalid && (searchForm.get('transactionStatus')?.touched || formValidationError)}\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- For Trial Balance - Accounts Report -->\r\n\r\n <!-- Business Unit -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'businessUnit'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Business Unit</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"businessUnits\" bindLabel=\"companyFullName\" bindValue=\"companyCode\"\r\n placeholder=\"Select Business Unit\" [clearable]=\"false\" formControlName=\"businessUnit\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('businessUnit')?.invalid && (searchForm.get('businessUnit')?.touched || formValidationError)}\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Year -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'financialYear'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Financial Year</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"financialYears\" bindLabel=\"financialYear\" bindValue=\"financialYear\"\r\n placeholder=\"Select Year\" [clearable]=\"false\" formControlName=\"financialYear\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('financialYear')?.invalid && (searchForm.get('financialYear')?.touched || formValidationError)}\"\r\n (change)=\"onSelectFinancialYear()\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- From Month -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'fromMonth'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">From Month</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"fromMonths\" bindLabel=\"period\" bindValue=\"pOrder\"\r\n placeholder=\"Select From Month\" [clearable]=\"false\" formControlName=\"fromMonth\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('fromMonth')?.invalid && (searchForm.get('fromMonth')?.touched|| formValidationError)}\"\r\n (change)=\"onSelectFromMonth()\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- To Month -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'toMonth'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">To Month</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"toMonths\" bindLabel=\"pMonthName\" bindValue=\"pMonth\"\r\n placeholder=\"Select To Month\" [clearable]=\"false\" formControlName=\"toMonth\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('toMonth')?.invalid && (searchForm.get('toMonth')?.touched|| formValidationError)}\"\r\n (change)=\"onSelectToMonth()\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- From Day -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'fromDay'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">From Day <span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"fromDays\" bindLabel=\"individualDay\" bindValue=\"individualDate\"\r\n placeholder=\"Select From Day\" [clearable]=\"false\" formControlName=\"fromDay\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('fromDay')?.invalid && (searchForm.get('fromDay')?.touched|| formValidationError)}\"\r\n (change)=\"onSelectFromDay()\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- To Day -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'toDay'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">To Day<span style=\"margin-left: 1px;\"\r\n class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"toDays\" bindLabel=\"pDate\" bindValue=\"individualDate\" placeholder=\"Select To Day\"\r\n [clearable]=\"false\" formControlName=\"toDay\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('toDay')?.invalid && (searchForm.get('toDay')?.touched|| formValidationError)}\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Date Type -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'dateTypeForTrialBalanceAccounts'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Date Type</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"dateTypes\" bindLabel=\"dateTypeLabel\" bindValue=\"dateTypeCode\"\r\n placeholder=\"Select Date Type\" formControlName=\"dateType\" [clearable]=\"false\" required\r\n [ngClass]=\"{'invalid-select': searchForm.get('dateType')?.invalid && (searchForm.get('dateType')?.touched|| formValidationError)}\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- Account Status -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'accountStatus'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Account Status</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select class=\"transaction-status-select\" [items]=\"accountStatuses\" bindLabel=\"statusName\"\r\n bindValue=\"statusCode\" [multiple]=\"true\" placeholder=\"Select Account Status\"\r\n formControlName=\"accountStatus\" [closeOnSelect]=\"false\" [clearable]=\"false\" [searchable]=\"false\"\r\n required\r\n [ngClass]=\"{'invalid-select': searchForm.get('accountStatus')?.invalid && (searchForm.get('accountStatus')?.touched|| formValidationError)}\">\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\">\r\n <input type=\"checkbox\" [checked]=\"item$.selected\" /> {{ item.statusName }}\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n <!--Summary Report-->\r\n <div class=\"form-field\" *ngSwitchCase=\"'summaryReport'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Summary Report</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"summaryReportTypes\" bindLabel=\"label\" bindValue=\"value\"\r\n [clearable]=\"false\" formControlName=\"summaryReport\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.label\">{{ item.label }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-custom-1-5\">\r\n <!-- View Report Button (Always at Top-Right) -->\r\n <div class=\"form-field view-report-btn\">\r\n <button type=\"submit\" class=\"btn btn-report\">View</button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n</section>\r\n<hr>\r\n<!-- Error Messages -->\r\n<div class=\"alert alert-danger mt-3\" *ngIf=\"formValidationError && hasSearched\">\r\n Please fill all mandatory fields\r\n</div>\r\n\r\n<div class=\"alert alert-danger mt-3\" *ngIf=\"errorMessage && loadingState === ComponentLoadingState.Error\">\r\n {{ errorMessage }}\r\n</div>", styles: ["@charset \"UTF-8\";.filter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;grid-column:span 3}.form-field{display:flex;flex-direction:column;padding:0 4px 0 0!important;min-width:0}.col-custom-10-5{flex:0 0 87.5%!important;max-width:87.5%!important}.col-custom-1-5{flex:0 0 12.5%!important;max-width:12.5%!important;padding:0!important}::ng-deep .ng-select .ng-select-container .ng-value-container{overflow:hidden;flex-wrap:nowrap}::ng-deep .ng-select .ng-select-container .ng-value-container .ng-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}::ng-deep .ng-select .ng-select-container{height:32px!important;min-height:32px!important;font-size:12px!important;align-items:center}.form-label{margin-bottom:0!important}.date-group{height:32px!important}::ng-deep .transaction-status-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{padding:4px 0!important}::ng-deep .ng-select .ng-select-container .ng-value-container{padding-top:0}::ng-deep .ng-dropdown-panel .ng-option{font-size:12px}.btn-report{border-radius:4px;background-color:#8091a5;color:#fff!important;font-size:14px!important;height:32px;padding:4px 15px!important;margin-left:15px!important;width:auto!important;margin-right:7px!important}::ng-deep .ng-select .ng-select-container:focus-within{box-shadow:0 0 5px 3px #1877f2!important}::ng-deep .ng-select .ng-select-container:focus{box-shadow:0 0 5px 3px #1877f2!important}.fa-calendar{--fa: \"\\f073\" !important}.dpicker{border:1px solid #ccc!important;font-size:12px!important;font-weight:400!important;height:32px!important}.dpicker:focus{box-shadow:0 0 5px 3px #1877f2!important}.cal{height:32px!important;background-color:#1877f2;margin-left:0!important}.cal:focus{box-shadow:none!important}.label-data{font-weight:600!important;font-size:.7rem!important;line-height:1rem}@media (max-width: 768px){.filter-grid{grid-template-columns:1fr;gap:12px}}.input-group-button{background:none!important;border:1px solid #1877F2!important;background-color:#1877f2!important;border-radius:0 3px 3px 0!important;min-width:35px;margin-left:1px;height:32px!important;cursor:pointer}.input-group-button .fa{color:#fff}.input-group-button:focus{box-shadow:0 0 5px 3px #009ee054}.input-group-button:focus{outline:none!important;box-shadow:none!important}.Breadcrumb h1,.Breadcrumb h2{font-weight:700}.row{display:flex;flex-wrap:wrap;margin-right:0;margin-left:0}.col-2{padding-left:0}.col-10{padding-right:0}.col-custom-10-5{padding-right:0!important;padding-left:0}::ng-deep .invalid-select.ng-select>.ng-select-container{background-color:#d521211a;border:2px solid red!important}.invalid-date{background-color:#d521211a;border:2px solid red!important}\n"], dependencies: [{ kind: "directive", type: i2$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: angularCommon.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: angularCommon.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: angularCommon.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: angularCommon.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: angularCommon.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i7$1.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "popperOptions", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i7.NgOptionComponent, selector: "ng-option", inputs: ["value", "disabled"] }, { kind: "directive", type: i7.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i7.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "component", type: LoaderComponent, selector: "app-loader" }] });
|
|
3535
|
+
SearchFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SearchFilterComponent, selector: "lib-search-filter", inputs: { ReportName: "ReportName", initialFilters: "initialFilters" }, outputs: { searchClicked: "searchClicked", formValid: "formValid" }, ngImport: i0, template: "<h6 class=\"Breadcrumb\">\r\n <a class=\"BreadCrumbLink\" [routerLink]=\"['/reports']\">\r\n <h1>Reports</h1>\r\n </a>\r\n <a href=\"BreadCrumbLink\"></a>\r\n <span class=\"BreadCrumbArrow\"></span>\r\n <a class=\"BreadCrumbLink\">\r\n <h2>{{ ReportName }}</h2>\r\n </a>\r\n</h6>\r\n\r\n<app-loader *ngIf=\"loadingState === ComponentLoadingState.Loading\"></app-loader>\r\n<section>\r\n <form [formGroup]=\"searchForm\" (ngSubmit)=\"onSearch()\">\r\n <div class=\"row\">\r\n <div class=\"col-custom-10-5\">\r\n <div class=\"filter-grid\">\r\n\r\n <!-- Dynamically render filters in order -->\r\n <ng-container *ngFor=\"let field of visibleFields\">\r\n <ng-container [ngSwitch]=\"field\">\r\n\r\n <!-- Client -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'client'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Client<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"clients1\" bindLabel=\"businessPartnerName\" bindValue=\"businessPartnerCode\"\r\n placeholder=\"Select Client\" [clearable]=\"false\" formControlName=\"client\" required\r\n [ngClass]=\"{'invalid-select': searchForm.get('client')?.invalid && (searchForm.get('client')?.touched || formValidationError)}\"\r\n (change)=\"onClientChange()\" (open)=\"onOpen()\" (close)=\"onClose()\" [searchable]=\"isOpen\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.businessPartnerName\">{{ item.businessPartnerName }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Branch -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'branch'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Branch<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"branches\" bindLabel=\"businessPartnerBranch\" bindValue=\"branchCode\"\r\n placeholder=\"Select Branch\" [clearable]=\"false\" formControlName=\"branch\" required\r\n [ngClass]=\"{'invalid-select': searchForm.get('branch')?.invalid && (searchForm.get('branch')?.touched || formValidationError)}\"\r\n (change)=\"onBranchChange()\" (open)=\"onOpen()\" (close)=\"onClose()\" [searchable]=\"isOpen\">\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.businessPartnerBranch\">{{ item.businessPartnerBranch }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- From Date -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'fromDate'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">From Date<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <div class=\"input-group date-group\">\r\n <input class=\"form-control dpicker\" placeholder=\"dd/mm/yyyy\" ngbDatepicker\r\n #fromDateInput=\"ngbDatepicker\" formControlName=\"fromDate\" autocomplete=\"off\"\r\n [ngClass]=\"{'invalid-date':searchForm.get('fromDate')?.invalid && (searchForm.get('fromDate')?.touched || formValidationError)}\" />\r\n <button class=\"input-group-button cal\" (click)=\"fromDateInput.toggle()\" type=\"button\">\r\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- To Date -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'toDate'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">To Date<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <div class=\"input-group date-group\">\r\n <input class=\"form-control dpicker\" placeholder=\"dd/mm/yyyy\" ngbDatepicker\r\n #toDateInput=\"ngbDatepicker\" formControlName=\"toDate\" [minDate]=\"disabledDate\"\r\n autocomplete=\"off\"\r\n [ngClass]=\"{'invalid-date':searchForm.get('toDate')?.invalid && (searchForm.get('toDate')?.touched || formValidationError)}\" />\r\n <button class=\"input-group-button cal\" (click)=\"toDateInput.toggle()\" type=\"button\">\r\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Product -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'product'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Product</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"products\" bindLabel=\"productName\" bindValue=\"productCode\"\r\n placeholder=\"Select Product\" [clearable]=\"false\" formControlName=\"product\" (open)=\"onOpen()\"\r\n (close)=\"onClose()\" [searchable]=\"isOpen\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- User -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'userId'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">User<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"users\" bindLabel=\"userName\" bindValue=\"userId\" placeholder=\"Select User\"\r\n [clearable]=\"false\" formControlName=\"userId\" required (open)=\"onOpen()\" (close)=\"onClose()\"\r\n [searchable]=\"isOpen\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('userId')?.invalid && (searchForm.get('userId')?.touched || formValidationError)}\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Currency -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'currency'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Currency</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"currencies\" bindValue=\"currencyCode\" placeholder=\"Select Currency\"\r\n [clearable]=\"false\" formControlName=\"currency\" [searchable]=\"true\" [searchFn]=\"currencySearch\"\r\n (open)=\"onOpen()\" (close)=\"onClose()\" [searchable]=\"isOpen\">\r\n\r\n <!-- Template for dropdown options -->\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <div\r\n [title]=\"item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency)\">\r\n {{ item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency) }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Template for selected value -->\r\n <ng-template ng-label-tmp let-item=\"item\">\r\n <div\r\n [title]=\"item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency)\">\r\n {{ item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency) }}\r\n </div>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--Send Currency -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'sendCurrency'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Send Currency</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"currencies\" bindValue=\"currencyCode\" placeholder=\"Select Currency\"\r\n [clearable]=\"false\" formControlName=\"currency\" [searchable]=\"true\" [searchFn]=\"currencySearch\"\r\n (open)=\"onOpen()\" (close)=\"onClose()\" [searchable]=\"isOpen\">\r\n\r\n <!-- Template for dropdown options -->\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <div\r\n [title]=\"item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency)\">\r\n {{ item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency) }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Template for selected value -->\r\n <ng-template ng-label-tmp let-item=\"item\">\r\n <div\r\n [title]=\"item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency)\">\r\n {{ item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency) }}\r\n </div>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Transaction Status (Multi-select) -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'transactionStatus'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Txn. Status<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select class=\"transaction-status-select\" [items]=\"transactionStatuses\"\r\n bindLabel=\"transactionStatus\" bindValue=\"transactionStatus\" [multiple]=\"true\"\r\n placeholder=\"Select Transaction Status\" formControlName=\"transactionStatus\"\r\n [closeOnSelect]=\"false\" [clearable]=\"false\" [searchable]=\"false\" required\r\n [ngClass]=\"{'invalid-select': searchForm.get('transactionStatus')?.invalid && (searchForm.get('transactionStatus')?.touched || formValidationError)}\">\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\">\r\n <input type=\"checkbox\" [checked]=\"item$.selected\" /> {{ item.transactionStatus }}\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Transaction No -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'transactionNo'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Txn. Number</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <input class=\"form-control dpicker\" formControlName=\"transactionNo\"\r\n placeholder=\"Enter transaction number\" />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Value Date -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'valueDate'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-3\">\r\n <label class=\"form-label label-data\">Value Date<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-9\">\r\n <div class=\"input-group\">\r\n <input class=\"form-control dpicker\" placeholder=\"dd/mm/yyyy\" ngbDatepicker\r\n #toDateInput=\"ngbDatepicker\" formControlName=\"toDate\" autocomplete=\"off\"\r\n [ngClass]=\"{'invalid-date':searchForm.get('date')?.invalid && (searchForm.get('date')?.touched || formValidationError)}\" />\r\n <button class=\"btn btn-outline-secondary\" type=\"button\" (click)=\"toDateInput.toggle()\">\r\n <i class=\"fa fa-calendar\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Send Country -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'sendCountry'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Send Country</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"countries\" bindLabel=\"country\" bindValue=\"countryCode\"\r\n placeholder=\"Select Product\" [clearable]=\"false\" formControlName=\"sendCountry\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.country\">{{ item.country }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Receive Country -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'receiveCountry'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Receive Country</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"countries\" bindLabel=\"country\" bindValue=\"countryCode\"\r\n placeholder=\"Select Product\" [clearable]=\"false\" formControlName=\"receiveCountry\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.country\">{{ item.country }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--Transaction Product -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'transactionProduct'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Product</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"transactionProducts\" bindLabel=\"name\" bindValue=\"productCode\"\r\n placeholder=\"Select Product\" [clearable]=\"false\" formControlName=\"product\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Date Type -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'dateType'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Date Type</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select placeholder=\"- Please select -\" formControlName=\"dateType\" [clearable]=\"false\" required>\r\n <ng-option [value]=\"1\">\r\n Value Date\r\n </ng-option>\r\n <ng-option [value]=\"2\">\r\n Posting Date\r\n </ng-option>\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Date -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'date'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Date</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <div class=\"input-group date-group\">\r\n <input class=\"form-control dpicker\" placeholder=\"dd/mm/yyyy\" ngbDatepicker\r\n #dateInput=\"ngbDatepicker\" formControlName=\"date\" autocomplete=\"off\"\r\n [ngClass]=\"{'invalid-date': searchForm.get('date')?.invalid && (searchForm.get('date')?.touched || formValidationError)}\" />\r\n <button class=\"input-group-button cal\" type=\"button\" (click)=\"dateInput.toggle()\">\r\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- receiveCurrency -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'receiveCurrency'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Receive Currency</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"currencies\" bindValue=\"currencyCode\" placeholder=\"Select Receive Currency\"\r\n [clearable]=\"false\" formControlName=\"receiveCurrency\" required (change)=\"onBranchChange()\"\r\n [searchable]=\"true\" [searchFn]=\"currencySearch\" (open)=\"onOpen()\" (close)=\"onClose()\"\r\n [searchable]=\"isOpen\">\r\n\r\n <!-- Dropdown options -->\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <div\r\n [title]=\"item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency)\">\r\n {{ item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency) }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Selected value -->\r\n <ng-template ng-label-tmp let-item=\"item\">\r\n <div\r\n [title]=\"item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency)\">\r\n {{ item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency) }}\r\n </div>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Send BusinessPartner -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'sendBusinessPartner'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Send Client<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"sendBusinessPartnerAgents\" bindLabel=\"name\" bindValue=\"id\"\r\n placeholder=\"Select Send Partner\" [clearable]=\"false\" formControlName=\"sendBusinessPartner\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('sendBusinessPartner')?.invalid && (searchForm.get('sendBusinessPartner')?.touched || formValidationError)}\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.name\">{{ item.name }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Recv BusinessPartner -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'recvBusinessPartner'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Recv Client<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"recvBusinessPartnerAgents\" bindLabel=\"name\" bindValue=\"id\"\r\n placeholder=\"Select Recv Partner\" [clearable]=\"false\" formControlName=\"recvBusinessPartner\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('recvBusinessPartner')?.invalid && (searchForm.get('recvBusinessPartner')?.touched || formValidationError)}\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.name\">{{ item.name }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Transaction Status (Single-select) -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'transactionStatusSingleSelect'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Txn. Status<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"transactionStatuses\" bindLabel=\"transactionStatus\" bindValue=\"transactionStatus\"\r\n placeholder=\"Select Status\" [clearable]=\"false\" formControlName=\"transactionStatus\" required\r\n [ngClass]=\"{'invalid-select': searchForm.get('transactionStatus')?.invalid && (searchForm.get('transactionStatus')?.touched || formValidationError)}\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- For Trial Balance - Accounts Report -->\r\n\r\n <!-- Business Line -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'businessLine'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Business Line</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"businessLines\" bindLabel=\"businessLine\" bindValue=\"businessLine\"\r\n placeholder=\"Select Business Line\" [clearable]=\"false\" formControlName=\"businessLine\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('businessLine')?.invalid && (searchForm.get('businessLine')?.touched || formValidationError)}\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Year -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'financialYear'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Financial Year</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"financialYears\" bindLabel=\"financialYear\" bindValue=\"financialYear\"\r\n placeholder=\"Select Year\" [clearable]=\"false\" formControlName=\"financialYear\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('financialYear')?.invalid && (searchForm.get('financialYear')?.touched || formValidationError)}\"\r\n (change)=\"onSelectFinancialYear()\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- From Month -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'fromMonth'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">From Month</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"fromMonths\" bindLabel=\"period\" bindValue=\"pOrder\"\r\n placeholder=\"Select From Month\" [clearable]=\"false\" formControlName=\"fromMonth\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('fromMonth')?.invalid && (searchForm.get('fromMonth')?.touched|| formValidationError)}\"\r\n (change)=\"onSelectFromMonth()\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- To Month -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'toMonth'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">To Month</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"toMonths\" bindLabel=\"pMonthName\" bindValue=\"pMonth\"\r\n placeholder=\"Select To Month\" [clearable]=\"false\" formControlName=\"toMonth\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('toMonth')?.invalid && (searchForm.get('toMonth')?.touched|| formValidationError)}\"\r\n (change)=\"onSelectToMonth()\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- From Day -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'fromDay'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">From Day <span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"fromDays\" bindLabel=\"individualDay\" bindValue=\"individualDate\"\r\n placeholder=\"Select From Day\" [clearable]=\"false\" formControlName=\"fromDay\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('fromDay')?.invalid && (searchForm.get('fromDay')?.touched|| formValidationError)}\"\r\n (change)=\"onSelectFromDay()\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- To Day -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'toDay'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">To Day<span style=\"margin-left: 1px;\"\r\n class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"toDays\" bindLabel=\"pDate\" bindValue=\"individualDate\" placeholder=\"Select To Day\"\r\n [clearable]=\"false\" formControlName=\"toDay\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('toDay')?.invalid && (searchForm.get('toDay')?.touched|| formValidationError)}\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Date Type -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'dateTypeForTrialBalanceAccounts'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Date Type</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"dateTypes\" bindLabel=\"dateTypeLabel\" bindValue=\"dateTypeCode\"\r\n placeholder=\"Select Date Type\" formControlName=\"dateType\" [clearable]=\"false\" required\r\n [ngClass]=\"{'invalid-select': searchForm.get('dateType')?.invalid && (searchForm.get('dateType')?.touched|| formValidationError)}\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- Account Status -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'accountStatus'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Account Status</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select class=\"transaction-status-select\" [items]=\"accountStatuses\" bindLabel=\"statusName\"\r\n bindValue=\"statusCode\" [multiple]=\"true\" placeholder=\"Select Account Status\"\r\n formControlName=\"accountStatus\" [closeOnSelect]=\"false\" [clearable]=\"false\" [searchable]=\"false\"\r\n required\r\n [ngClass]=\"{'invalid-select': searchForm.get('accountStatus')?.invalid && (searchForm.get('accountStatus')?.touched|| formValidationError)}\">\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\">\r\n <input type=\"checkbox\" [checked]=\"item$.selected\" /> {{ item.statusName }}\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n <!--Summary Report-->\r\n <div class=\"form-field\" *ngSwitchCase=\"'summaryReport'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Summary Report</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"summaryReportTypes\" bindLabel=\"label\" bindValue=\"value\"\r\n [clearable]=\"false\" formControlName=\"summaryReport\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.label\">{{ item.label }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-custom-1-5\">\r\n <!-- View Report Button (Always at Top-Right) -->\r\n <div class=\"form-field view-report-btn\">\r\n <button type=\"submit\" class=\"btn btn-report\">View</button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n</section>\r\n<hr>\r\n<!-- Error Messages -->\r\n<div class=\"alert alert-danger mt-3\" *ngIf=\"formValidationError && hasSearched\">\r\n Please fill all mandatory fields\r\n</div>\r\n\r\n<div class=\"alert alert-danger mt-3\" *ngIf=\"errorMessage && loadingState === ComponentLoadingState.Error\">\r\n {{ errorMessage }}\r\n</div>", styles: ["@charset \"UTF-8\";.filter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;grid-column:span 3}.form-field{display:flex;flex-direction:column;padding:0 4px 0 0!important;min-width:0}.col-custom-10-5{flex:0 0 87.5%!important;max-width:87.5%!important}.col-custom-1-5{flex:0 0 12.5%!important;max-width:12.5%!important;padding:0!important}::ng-deep .ng-select .ng-select-container .ng-value-container{overflow:hidden;flex-wrap:nowrap}::ng-deep .ng-select .ng-select-container .ng-value-container .ng-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}::ng-deep .ng-select .ng-select-container{height:32px!important;min-height:32px!important;font-size:12px!important;align-items:center}.form-label{margin-bottom:0!important}.date-group{height:32px!important}::ng-deep .transaction-status-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{padding:4px 0!important}::ng-deep .ng-select .ng-select-container .ng-value-container{padding-top:0}::ng-deep .ng-dropdown-panel .ng-option{font-size:12px}.btn-report{border-radius:4px;background-color:#8091a5;color:#fff!important;font-size:14px!important;height:32px;padding:4px 15px!important;margin-left:15px!important;width:auto!important;margin-right:7px!important}::ng-deep .ng-select .ng-select-container:focus-within{box-shadow:0 0 5px 3px #1877f2!important}::ng-deep .ng-select .ng-select-container:focus{box-shadow:0 0 5px 3px #1877f2!important}.fa-calendar{--fa: \"\\f073\" !important}.dpicker{border:1px solid #ccc!important;font-size:12px!important;font-weight:400!important;height:32px!important}.dpicker:focus{box-shadow:0 0 5px 3px #1877f2!important}.cal{height:32px!important;background-color:#1877f2;margin-left:0!important}.cal:focus{box-shadow:none!important}.label-data{font-weight:600!important;font-size:.7rem!important;line-height:1rem}@media (max-width: 768px){.filter-grid{grid-template-columns:1fr;gap:12px}}.input-group-button{background:none!important;border:1px solid #1877F2!important;background-color:#1877f2!important;border-radius:0 3px 3px 0!important;min-width:35px;margin-left:1px;height:32px!important;cursor:pointer}.input-group-button .fa{color:#fff}.input-group-button:focus{box-shadow:0 0 5px 3px #009ee054}.input-group-button:focus{outline:none!important;box-shadow:none!important}.Breadcrumb h1,.Breadcrumb h2{font-weight:700}.row{display:flex;flex-wrap:wrap;margin-right:0;margin-left:0}.col-2{padding-left:0}.col-10{padding-right:0}.col-custom-10-5{padding-right:0!important;padding-left:0}::ng-deep .invalid-select.ng-select>.ng-select-container{background-color:#d521211a;border:2px solid red!important}.invalid-date{background-color:#d521211a;border:2px solid red!important}\n"], dependencies: [{ kind: "directive", type: i2$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: angularCommon.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: angularCommon.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: angularCommon.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: angularCommon.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: angularCommon.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i7$1.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "popperOptions", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i7.NgOptionComponent, selector: "ng-option", inputs: ["value", "disabled"] }, { kind: "directive", type: i7.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i7.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "component", type: LoaderComponent, selector: "app-loader" }] });
|
|
3523
3536
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SearchFilterComponent, decorators: [{
|
|
3524
3537
|
type: Component,
|
|
3525
|
-
args: [{ selector: 'lib-search-filter', template: "<h6 class=\"Breadcrumb\">\r\n <a class=\"BreadCrumbLink\" [routerLink]=\"['/reports']\">\r\n <h1>Reports</h1>\r\n </a>\r\n <a href=\"BreadCrumbLink\"></a>\r\n <span class=\"BreadCrumbArrow\"></span>\r\n <a class=\"BreadCrumbLink\">\r\n <h2>{{ ReportName }}</h2>\r\n </a>\r\n</h6>\r\n\r\n<app-loader *ngIf=\"loadingState === ComponentLoadingState.Loading\"></app-loader>\r\n<section>\r\n <form [formGroup]=\"searchForm\" (ngSubmit)=\"onSearch()\">\r\n <div class=\"row\">\r\n <div class=\"col-custom-10-5\">\r\n <div class=\"filter-grid\">\r\n\r\n <!-- Dynamically render filters in order -->\r\n <ng-container *ngFor=\"let field of visibleFields\">\r\n <ng-container [ngSwitch]=\"field\">\r\n\r\n <!-- Client -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'client'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Client<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"clients1\" bindLabel=\"businessPartnerName\" bindValue=\"businessPartnerCode\"\r\n placeholder=\"Select Client\" [clearable]=\"false\" formControlName=\"client\" required\r\n [ngClass]=\"{'invalid-select': searchForm.get('client')?.invalid && (searchForm.get('client')?.touched || formValidationError)}\"\r\n (change)=\"onClientChange()\" (open)=\"onOpen()\" (close)=\"onClose()\" [searchable]=\"isOpen\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.businessPartnerName\">{{ item.businessPartnerName }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Branch -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'branch'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Branch<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"branches\" bindLabel=\"businessPartnerBranch\" bindValue=\"branchCode\"\r\n placeholder=\"Select Branch\" [clearable]=\"false\" formControlName=\"branch\" required\r\n [ngClass]=\"{'invalid-select': searchForm.get('branch')?.invalid && (searchForm.get('branch')?.touched || formValidationError)}\"\r\n (change)=\"onBranchChange()\" (open)=\"onOpen()\" (close)=\"onClose()\" [searchable]=\"isOpen\">\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.businessPartnerBranch\">{{ item.businessPartnerBranch }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- From Date -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'fromDate'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">From Date<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <div class=\"input-group date-group\">\r\n <input class=\"form-control dpicker\" placeholder=\"dd/mm/yyyy\" ngbDatepicker\r\n #fromDateInput=\"ngbDatepicker\" formControlName=\"fromDate\" autocomplete=\"off\"\r\n [ngClass]=\"{'invalid-date':searchForm.get('fromDate')?.invalid && (searchForm.get('fromDate')?.touched || formValidationError)}\" />\r\n <button class=\"input-group-button cal\" (click)=\"fromDateInput.toggle()\" type=\"button\">\r\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- To Date -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'toDate'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">To Date<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <div class=\"input-group date-group\">\r\n <input class=\"form-control dpicker\" placeholder=\"dd/mm/yyyy\" ngbDatepicker\r\n #toDateInput=\"ngbDatepicker\" formControlName=\"toDate\" [minDate]=\"disabledDate\"\r\n autocomplete=\"off\"\r\n [ngClass]=\"{'invalid-date':searchForm.get('toDate')?.invalid && (searchForm.get('toDate')?.touched || formValidationError)}\" />\r\n <button class=\"input-group-button cal\" (click)=\"toDateInput.toggle()\" type=\"button\">\r\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Product -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'product'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Product</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"products\" bindLabel=\"productName\" bindValue=\"productCode\"\r\n placeholder=\"Select Product\" [clearable]=\"false\" formControlName=\"product\" (open)=\"onOpen()\"\r\n (close)=\"onClose()\" [searchable]=\"isOpen\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- User -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'userId'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">User<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"users\" bindLabel=\"userName\" bindValue=\"userId\" placeholder=\"Select User\"\r\n [clearable]=\"false\" formControlName=\"userId\" required (open)=\"onOpen()\" (close)=\"onClose()\"\r\n [searchable]=\"isOpen\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('userId')?.invalid && (searchForm.get('userId')?.touched || formValidationError)}\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Currency -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'currency'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Currency</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"currencies\" bindValue=\"currencyCode\" placeholder=\"Select Currency\"\r\n [clearable]=\"false\" formControlName=\"currency\" [searchable]=\"true\" [searchFn]=\"currencySearch\"\r\n (open)=\"onOpen()\" (close)=\"onClose()\" [searchable]=\"isOpen\">\r\n\r\n <!-- Template for dropdown options -->\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <div\r\n [title]=\"item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency)\">\r\n {{ item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency) }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Template for selected value -->\r\n <ng-template ng-label-tmp let-item=\"item\">\r\n <div\r\n [title]=\"item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency)\">\r\n {{ item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency) }}\r\n </div>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--Send Currency -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'sendCurrency'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Send Currency</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"currencies\" bindValue=\"currencyCode\" placeholder=\"Select Currency\"\r\n [clearable]=\"false\" formControlName=\"currency\" [searchable]=\"true\" [searchFn]=\"currencySearch\"\r\n (open)=\"onOpen()\" (close)=\"onClose()\" [searchable]=\"isOpen\">\r\n\r\n <!-- Template for dropdown options -->\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <div\r\n [title]=\"item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency)\">\r\n {{ item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency) }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Template for selected value -->\r\n <ng-template ng-label-tmp let-item=\"item\">\r\n <div\r\n [title]=\"item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency)\">\r\n {{ item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency) }}\r\n </div>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Transaction Status (Multi-select) -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'transactionStatus'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Txn. Status<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select class=\"transaction-status-select\" [items]=\"transactionStatuses\"\r\n bindLabel=\"transactionStatus\" bindValue=\"transactionStatus\" [multiple]=\"true\"\r\n placeholder=\"Select Transaction Status\" formControlName=\"transactionStatus\"\r\n [closeOnSelect]=\"false\" [clearable]=\"false\" [searchable]=\"false\" required\r\n [ngClass]=\"{'invalid-select': searchForm.get('transactionStatus')?.invalid && (searchForm.get('transactionStatus')?.touched || formValidationError)}\">\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\">\r\n <input type=\"checkbox\" [checked]=\"item$.selected\" /> {{ item.transactionStatus }}\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Transaction No -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'transactionNo'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Txn. Number</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <input class=\"form-control dpicker\" formControlName=\"transactionNo\"\r\n placeholder=\"Enter transaction number\" />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Value Date -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'valueDate'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-3\">\r\n <label class=\"form-label label-data\">Value Date<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-9\">\r\n <div class=\"input-group\">\r\n <input class=\"form-control dpicker\" placeholder=\"dd/mm/yyyy\" ngbDatepicker\r\n #toDateInput=\"ngbDatepicker\" formControlName=\"toDate\" autocomplete=\"off\"\r\n [ngClass]=\"{'invalid-date':searchForm.get('date')?.invalid && (searchForm.get('date')?.touched || formValidationError)}\" />\r\n <button class=\"btn btn-outline-secondary\" type=\"button\" (click)=\"toDateInput.toggle()\">\r\n <i class=\"fa fa-calendar\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Send Country -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'sendCountry'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Send Country</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"countries\" bindLabel=\"country\" bindValue=\"countryCode\"\r\n placeholder=\"Select Product\" [clearable]=\"false\" formControlName=\"sendCountry\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.country\">{{ item.country }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Receive Country -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'receiveCountry'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Receive Country</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"countries\" bindLabel=\"country\" bindValue=\"countryCode\"\r\n placeholder=\"Select Product\" [clearable]=\"false\" formControlName=\"receiveCountry\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.country\">{{ item.country }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--Transaction Product -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'transactionProduct'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Product</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"transactionProducts\" bindLabel=\"name\" bindValue=\"productCode\"\r\n placeholder=\"Select Product\" [clearable]=\"false\" formControlName=\"product\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Date Type -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'dateType'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Date Type</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select placeholder=\"- Please select -\" formControlName=\"dateType\" [clearable]=\"false\" required>\r\n <ng-option [value]=\"1\">\r\n Value Date\r\n </ng-option>\r\n <ng-option [value]=\"2\">\r\n Posting Date\r\n </ng-option>\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Date -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'date'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Date</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <div class=\"input-group date-group\">\r\n <input class=\"form-control dpicker\" placeholder=\"dd/mm/yyyy\" ngbDatepicker\r\n #dateInput=\"ngbDatepicker\" formControlName=\"date\" autocomplete=\"off\"\r\n [ngClass]=\"{'invalid-date': searchForm.get('date')?.invalid && (searchForm.get('date')?.touched || formValidationError)}\" />\r\n <button class=\"input-group-button cal\" type=\"button\" (click)=\"dateInput.toggle()\">\r\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- receiveCurrency -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'receiveCurrency'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Receive Currency</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"currencies\" bindValue=\"currencyCode\" placeholder=\"Select Receive Currency\"\r\n [clearable]=\"false\" formControlName=\"receiveCurrency\" required (change)=\"onBranchChange()\"\r\n [searchable]=\"true\" [searchFn]=\"currencySearch\" (open)=\"onOpen()\" (close)=\"onClose()\"\r\n [searchable]=\"isOpen\">\r\n\r\n <!-- Dropdown options -->\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <div\r\n [title]=\"item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency)\">\r\n {{ item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency) }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Selected value -->\r\n <ng-template ng-label-tmp let-item=\"item\">\r\n <div\r\n [title]=\"item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency)\">\r\n {{ item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency) }}\r\n </div>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Send BusinessPartner -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'sendBusinessPartner'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Send Client<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"sendBusinessPartnerAgents\" bindLabel=\"name\" bindValue=\"id\"\r\n placeholder=\"Select Send Partner\" [clearable]=\"false\" formControlName=\"sendBusinessPartner\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('sendBusinessPartner')?.invalid && (searchForm.get('sendBusinessPartner')?.touched || formValidationError)}\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.name\">{{ item.name }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Recv BusinessPartner -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'recvBusinessPartner'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Recv Client<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"recvBusinessPartnerAgents\" bindLabel=\"name\" bindValue=\"id\"\r\n placeholder=\"Select Recv Partner\" [clearable]=\"false\" formControlName=\"recvBusinessPartner\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('recvBusinessPartner')?.invalid && (searchForm.get('recvBusinessPartner')?.touched || formValidationError)}\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.name\">{{ item.name }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Transaction Status (Single-select) -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'transactionStatusSingleSelect'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Txn. Status<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"transactionStatuses\" bindLabel=\"transactionStatus\" bindValue=\"transactionStatus\"\r\n placeholder=\"Select Status\" [clearable]=\"false\" formControlName=\"transactionStatus\" required\r\n [ngClass]=\"{'invalid-select': searchForm.get('transactionStatus')?.invalid && (searchForm.get('transactionStatus')?.touched || formValidationError)}\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- For Trial Balance - Accounts Report -->\r\n\r\n <!-- Business Unit -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'businessUnit'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Business Unit</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"businessUnits\" bindLabel=\"companyFullName\" bindValue=\"companyCode\"\r\n placeholder=\"Select Business Unit\" [clearable]=\"false\" formControlName=\"businessUnit\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('businessUnit')?.invalid && (searchForm.get('businessUnit')?.touched || formValidationError)}\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Year -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'financialYear'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Financial Year</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"financialYears\" bindLabel=\"financialYear\" bindValue=\"financialYear\"\r\n placeholder=\"Select Year\" [clearable]=\"false\" formControlName=\"financialYear\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('financialYear')?.invalid && (searchForm.get('financialYear')?.touched || formValidationError)}\"\r\n (change)=\"onSelectFinancialYear()\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- From Month -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'fromMonth'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">From Month</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"fromMonths\" bindLabel=\"period\" bindValue=\"pOrder\"\r\n placeholder=\"Select From Month\" [clearable]=\"false\" formControlName=\"fromMonth\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('fromMonth')?.invalid && (searchForm.get('fromMonth')?.touched|| formValidationError)}\"\r\n (change)=\"onSelectFromMonth()\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- To Month -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'toMonth'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">To Month</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"toMonths\" bindLabel=\"pMonthName\" bindValue=\"pMonth\"\r\n placeholder=\"Select To Month\" [clearable]=\"false\" formControlName=\"toMonth\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('toMonth')?.invalid && (searchForm.get('toMonth')?.touched|| formValidationError)}\"\r\n (change)=\"onSelectToMonth()\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- From Day -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'fromDay'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">From Day <span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"fromDays\" bindLabel=\"individualDay\" bindValue=\"individualDate\"\r\n placeholder=\"Select From Day\" [clearable]=\"false\" formControlName=\"fromDay\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('fromDay')?.invalid && (searchForm.get('fromDay')?.touched|| formValidationError)}\"\r\n (change)=\"onSelectFromDay()\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- To Day -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'toDay'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">To Day<span style=\"margin-left: 1px;\"\r\n class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"toDays\" bindLabel=\"pDate\" bindValue=\"individualDate\" placeholder=\"Select To Day\"\r\n [clearable]=\"false\" formControlName=\"toDay\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('toDay')?.invalid && (searchForm.get('toDay')?.touched|| formValidationError)}\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Date Type -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'dateTypeForTrialBalanceAccounts'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Date Type</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"dateTypes\" bindLabel=\"dateTypeLabel\" bindValue=\"dateTypeCode\"\r\n placeholder=\"Select Date Type\" formControlName=\"dateType\" [clearable]=\"false\" required\r\n [ngClass]=\"{'invalid-select': searchForm.get('dateType')?.invalid && (searchForm.get('dateType')?.touched|| formValidationError)}\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- Account Status -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'accountStatus'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Account Status</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select class=\"transaction-status-select\" [items]=\"accountStatuses\" bindLabel=\"statusName\"\r\n bindValue=\"statusCode\" [multiple]=\"true\" placeholder=\"Select Account Status\"\r\n formControlName=\"accountStatus\" [closeOnSelect]=\"false\" [clearable]=\"false\" [searchable]=\"false\"\r\n required\r\n [ngClass]=\"{'invalid-select': searchForm.get('accountStatus')?.invalid && (searchForm.get('accountStatus')?.touched|| formValidationError)}\">\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\">\r\n <input type=\"checkbox\" [checked]=\"item$.selected\" /> {{ item.statusName }}\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n <!--Summary Report-->\r\n <div class=\"form-field\" *ngSwitchCase=\"'summaryReport'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Summary Report</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"summaryReportTypes\" bindLabel=\"label\" bindValue=\"value\"\r\n [clearable]=\"false\" formControlName=\"summaryReport\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.label\">{{ item.label }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-custom-1-5\">\r\n <!-- View Report Button (Always at Top-Right) -->\r\n <div class=\"form-field view-report-btn\">\r\n <button type=\"submit\" class=\"btn btn-report\">View</button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n</section>\r\n<hr>\r\n<!-- Error Messages -->\r\n<div class=\"alert alert-danger mt-3\" *ngIf=\"formValidationError && hasSearched\">\r\n Please fill all mandatory fields\r\n</div>\r\n\r\n<div class=\"alert alert-danger mt-3\" *ngIf=\"errorMessage && loadingState === ComponentLoadingState.Error\">\r\n {{ errorMessage }}\r\n</div>", styles: ["@charset \"UTF-8\";.filter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;grid-column:span 3}.form-field{display:flex;flex-direction:column;padding:0 4px 0 0!important;min-width:0}.col-custom-10-5{flex:0 0 87.5%!important;max-width:87.5%!important}.col-custom-1-5{flex:0 0 12.5%!important;max-width:12.5%!important;padding:0!important}::ng-deep .ng-select .ng-select-container .ng-value-container{overflow:hidden;flex-wrap:nowrap}::ng-deep .ng-select .ng-select-container .ng-value-container .ng-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}::ng-deep .ng-select .ng-select-container{height:32px!important;min-height:32px!important;font-size:12px!important;align-items:center}.form-label{margin-bottom:0!important}.date-group{height:32px!important}::ng-deep .transaction-status-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{padding:4px 0!important}::ng-deep .ng-select .ng-select-container .ng-value-container{padding-top:0}::ng-deep .ng-dropdown-panel .ng-option{font-size:12px}.btn-report{border-radius:4px;background-color:#8091a5;color:#fff!important;font-size:14px!important;height:32px;padding:4px 15px!important;margin-left:15px!important;width:auto!important;margin-right:7px!important}::ng-deep .ng-select .ng-select-container:focus-within{box-shadow:0 0 5px 3px #1877f2!important}::ng-deep .ng-select .ng-select-container:focus{box-shadow:0 0 5px 3px #1877f2!important}.fa-calendar{--fa: \"\\f073\" !important}.dpicker{border:1px solid #ccc!important;font-size:12px!important;font-weight:400!important;height:32px!important}.dpicker:focus{box-shadow:0 0 5px 3px #1877f2!important}.cal{height:32px!important;background-color:#1877f2;margin-left:0!important}.cal:focus{box-shadow:none!important}.label-data{font-weight:600!important;font-size:.7rem!important;line-height:1rem}@media (max-width: 768px){.filter-grid{grid-template-columns:1fr;gap:12px}}.input-group-button{background:none!important;border:1px solid #1877F2!important;background-color:#1877f2!important;border-radius:0 3px 3px 0!important;min-width:35px;margin-left:1px;height:32px!important;cursor:pointer}.input-group-button .fa{color:#fff}.input-group-button:focus{box-shadow:0 0 5px 3px #009ee054}.input-group-button:focus{outline:none!important;box-shadow:none!important}.Breadcrumb h1,.Breadcrumb h2{font-weight:700}.row{display:flex;flex-wrap:wrap;margin-right:0;margin-left:0}.col-2{padding-left:0}.col-10{padding-right:0}.col-custom-10-5{padding-right:0!important;padding-left:0}::ng-deep .invalid-select.ng-select>.ng-select-container{background-color:#d521211a;border:2px solid red!important}.invalid-date{background-color:#d521211a;border:2px solid red!important}\n"] }]
|
|
3538
|
+
args: [{ selector: 'lib-search-filter', template: "<h6 class=\"Breadcrumb\">\r\n <a class=\"BreadCrumbLink\" [routerLink]=\"['/reports']\">\r\n <h1>Reports</h1>\r\n </a>\r\n <a href=\"BreadCrumbLink\"></a>\r\n <span class=\"BreadCrumbArrow\"></span>\r\n <a class=\"BreadCrumbLink\">\r\n <h2>{{ ReportName }}</h2>\r\n </a>\r\n</h6>\r\n\r\n<app-loader *ngIf=\"loadingState === ComponentLoadingState.Loading\"></app-loader>\r\n<section>\r\n <form [formGroup]=\"searchForm\" (ngSubmit)=\"onSearch()\">\r\n <div class=\"row\">\r\n <div class=\"col-custom-10-5\">\r\n <div class=\"filter-grid\">\r\n\r\n <!-- Dynamically render filters in order -->\r\n <ng-container *ngFor=\"let field of visibleFields\">\r\n <ng-container [ngSwitch]=\"field\">\r\n\r\n <!-- Client -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'client'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Client<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"clients1\" bindLabel=\"businessPartnerName\" bindValue=\"businessPartnerCode\"\r\n placeholder=\"Select Client\" [clearable]=\"false\" formControlName=\"client\" required\r\n [ngClass]=\"{'invalid-select': searchForm.get('client')?.invalid && (searchForm.get('client')?.touched || formValidationError)}\"\r\n (change)=\"onClientChange()\" (open)=\"onOpen()\" (close)=\"onClose()\" [searchable]=\"isOpen\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.businessPartnerName\">{{ item.businessPartnerName }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Branch -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'branch'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Branch<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"branches\" bindLabel=\"businessPartnerBranch\" bindValue=\"branchCode\"\r\n placeholder=\"Select Branch\" [clearable]=\"false\" formControlName=\"branch\" required\r\n [ngClass]=\"{'invalid-select': searchForm.get('branch')?.invalid && (searchForm.get('branch')?.touched || formValidationError)}\"\r\n (change)=\"onBranchChange()\" (open)=\"onOpen()\" (close)=\"onClose()\" [searchable]=\"isOpen\">\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.businessPartnerBranch\">{{ item.businessPartnerBranch }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- From Date -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'fromDate'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">From Date<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <div class=\"input-group date-group\">\r\n <input class=\"form-control dpicker\" placeholder=\"dd/mm/yyyy\" ngbDatepicker\r\n #fromDateInput=\"ngbDatepicker\" formControlName=\"fromDate\" autocomplete=\"off\"\r\n [ngClass]=\"{'invalid-date':searchForm.get('fromDate')?.invalid && (searchForm.get('fromDate')?.touched || formValidationError)}\" />\r\n <button class=\"input-group-button cal\" (click)=\"fromDateInput.toggle()\" type=\"button\">\r\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- To Date -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'toDate'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">To Date<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <div class=\"input-group date-group\">\r\n <input class=\"form-control dpicker\" placeholder=\"dd/mm/yyyy\" ngbDatepicker\r\n #toDateInput=\"ngbDatepicker\" formControlName=\"toDate\" [minDate]=\"disabledDate\"\r\n autocomplete=\"off\"\r\n [ngClass]=\"{'invalid-date':searchForm.get('toDate')?.invalid && (searchForm.get('toDate')?.touched || formValidationError)}\" />\r\n <button class=\"input-group-button cal\" (click)=\"toDateInput.toggle()\" type=\"button\">\r\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Product -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'product'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Product</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"products\" bindLabel=\"productName\" bindValue=\"productCode\"\r\n placeholder=\"Select Product\" [clearable]=\"false\" formControlName=\"product\" (open)=\"onOpen()\"\r\n (close)=\"onClose()\" [searchable]=\"isOpen\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- User -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'userId'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">User<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"users\" bindLabel=\"userName\" bindValue=\"userId\" placeholder=\"Select User\"\r\n [clearable]=\"false\" formControlName=\"userId\" required (open)=\"onOpen()\" (close)=\"onClose()\"\r\n [searchable]=\"isOpen\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('userId')?.invalid && (searchForm.get('userId')?.touched || formValidationError)}\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Currency -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'currency'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Currency</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"currencies\" bindValue=\"currencyCode\" placeholder=\"Select Currency\"\r\n [clearable]=\"false\" formControlName=\"currency\" [searchable]=\"true\" [searchFn]=\"currencySearch\"\r\n (open)=\"onOpen()\" (close)=\"onClose()\" [searchable]=\"isOpen\">\r\n\r\n <!-- Template for dropdown options -->\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <div\r\n [title]=\"item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency)\">\r\n {{ item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency) }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Template for selected value -->\r\n <ng-template ng-label-tmp let-item=\"item\">\r\n <div\r\n [title]=\"item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency)\">\r\n {{ item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency) }}\r\n </div>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--Send Currency -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'sendCurrency'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Send Currency</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"currencies\" bindValue=\"currencyCode\" placeholder=\"Select Currency\"\r\n [clearable]=\"false\" formControlName=\"currency\" [searchable]=\"true\" [searchFn]=\"currencySearch\"\r\n (open)=\"onOpen()\" (close)=\"onClose()\" [searchable]=\"isOpen\">\r\n\r\n <!-- Template for dropdown options -->\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <div\r\n [title]=\"item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency)\">\r\n {{ item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency) }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Template for selected value -->\r\n <ng-template ng-label-tmp let-item=\"item\">\r\n <div\r\n [title]=\"item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency)\">\r\n {{ item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency) }}\r\n </div>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Transaction Status (Multi-select) -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'transactionStatus'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Txn. Status<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select class=\"transaction-status-select\" [items]=\"transactionStatuses\"\r\n bindLabel=\"transactionStatus\" bindValue=\"transactionStatus\" [multiple]=\"true\"\r\n placeholder=\"Select Transaction Status\" formControlName=\"transactionStatus\"\r\n [closeOnSelect]=\"false\" [clearable]=\"false\" [searchable]=\"false\" required\r\n [ngClass]=\"{'invalid-select': searchForm.get('transactionStatus')?.invalid && (searchForm.get('transactionStatus')?.touched || formValidationError)}\">\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\">\r\n <input type=\"checkbox\" [checked]=\"item$.selected\" /> {{ item.transactionStatus }}\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Transaction No -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'transactionNo'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Txn. Number</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <input class=\"form-control dpicker\" formControlName=\"transactionNo\"\r\n placeholder=\"Enter transaction number\" />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Value Date -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'valueDate'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-3\">\r\n <label class=\"form-label label-data\">Value Date<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-9\">\r\n <div class=\"input-group\">\r\n <input class=\"form-control dpicker\" placeholder=\"dd/mm/yyyy\" ngbDatepicker\r\n #toDateInput=\"ngbDatepicker\" formControlName=\"toDate\" autocomplete=\"off\"\r\n [ngClass]=\"{'invalid-date':searchForm.get('date')?.invalid && (searchForm.get('date')?.touched || formValidationError)}\" />\r\n <button class=\"btn btn-outline-secondary\" type=\"button\" (click)=\"toDateInput.toggle()\">\r\n <i class=\"fa fa-calendar\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Send Country -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'sendCountry'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Send Country</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"countries\" bindLabel=\"country\" bindValue=\"countryCode\"\r\n placeholder=\"Select Product\" [clearable]=\"false\" formControlName=\"sendCountry\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.country\">{{ item.country }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Receive Country -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'receiveCountry'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Receive Country</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"countries\" bindLabel=\"country\" bindValue=\"countryCode\"\r\n placeholder=\"Select Product\" [clearable]=\"false\" formControlName=\"receiveCountry\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.country\">{{ item.country }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--Transaction Product -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'transactionProduct'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Product</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"transactionProducts\" bindLabel=\"name\" bindValue=\"productCode\"\r\n placeholder=\"Select Product\" [clearable]=\"false\" formControlName=\"product\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Date Type -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'dateType'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Date Type</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select placeholder=\"- Please select -\" formControlName=\"dateType\" [clearable]=\"false\" required>\r\n <ng-option [value]=\"1\">\r\n Value Date\r\n </ng-option>\r\n <ng-option [value]=\"2\">\r\n Posting Date\r\n </ng-option>\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Date -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'date'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Date</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <div class=\"input-group date-group\">\r\n <input class=\"form-control dpicker\" placeholder=\"dd/mm/yyyy\" ngbDatepicker\r\n #dateInput=\"ngbDatepicker\" formControlName=\"date\" autocomplete=\"off\"\r\n [ngClass]=\"{'invalid-date': searchForm.get('date')?.invalid && (searchForm.get('date')?.touched || formValidationError)}\" />\r\n <button class=\"input-group-button cal\" type=\"button\" (click)=\"dateInput.toggle()\">\r\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- receiveCurrency -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'receiveCurrency'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Receive Currency</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"currencies\" bindValue=\"currencyCode\" placeholder=\"Select Receive Currency\"\r\n [clearable]=\"false\" formControlName=\"receiveCurrency\" required (change)=\"onBranchChange()\"\r\n [searchable]=\"true\" [searchFn]=\"currencySearch\" (open)=\"onOpen()\" (close)=\"onClose()\"\r\n [searchable]=\"isOpen\">\r\n\r\n <!-- Dropdown options -->\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <div\r\n [title]=\"item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency)\">\r\n {{ item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency) }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Selected value -->\r\n <ng-template ng-label-tmp let-item=\"item\">\r\n <div\r\n [title]=\"item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency)\">\r\n {{ item.currencyCode === 'All' ? 'All' : (item.currencyCode + ' - ' + item.currency) }}\r\n </div>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Send BusinessPartner -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'sendBusinessPartner'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Send Client<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"sendBusinessPartnerAgents\" bindLabel=\"name\" bindValue=\"id\"\r\n placeholder=\"Select Send Partner\" [clearable]=\"false\" formControlName=\"sendBusinessPartner\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('sendBusinessPartner')?.invalid && (searchForm.get('sendBusinessPartner')?.touched || formValidationError)}\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.name\">{{ item.name }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Recv BusinessPartner -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'recvBusinessPartner'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Recv Client<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"recvBusinessPartnerAgents\" bindLabel=\"name\" bindValue=\"id\"\r\n placeholder=\"Select Recv Partner\" [clearable]=\"false\" formControlName=\"recvBusinessPartner\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('recvBusinessPartner')?.invalid && (searchForm.get('recvBusinessPartner')?.touched || formValidationError)}\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.name\">{{ item.name }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Transaction Status (Single-select) -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'transactionStatusSingleSelect'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Txn. Status<span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"transactionStatuses\" bindLabel=\"transactionStatus\" bindValue=\"transactionStatus\"\r\n placeholder=\"Select Status\" [clearable]=\"false\" formControlName=\"transactionStatus\" required\r\n [ngClass]=\"{'invalid-select': searchForm.get('transactionStatus')?.invalid && (searchForm.get('transactionStatus')?.touched || formValidationError)}\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- For Trial Balance - Accounts Report -->\r\n\r\n <!-- Business Line -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'businessLine'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Business Line</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"businessLines\" bindLabel=\"businessLine\" bindValue=\"businessLine\"\r\n placeholder=\"Select Business Line\" [clearable]=\"false\" formControlName=\"businessLine\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('businessLine')?.invalid && (searchForm.get('businessLine')?.touched || formValidationError)}\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Year -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'financialYear'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Financial Year</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"financialYears\" bindLabel=\"financialYear\" bindValue=\"financialYear\"\r\n placeholder=\"Select Year\" [clearable]=\"false\" formControlName=\"financialYear\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('financialYear')?.invalid && (searchForm.get('financialYear')?.touched || formValidationError)}\"\r\n (change)=\"onSelectFinancialYear()\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- From Month -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'fromMonth'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">From Month</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"fromMonths\" bindLabel=\"period\" bindValue=\"pOrder\"\r\n placeholder=\"Select From Month\" [clearable]=\"false\" formControlName=\"fromMonth\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('fromMonth')?.invalid && (searchForm.get('fromMonth')?.touched|| formValidationError)}\"\r\n (change)=\"onSelectFromMonth()\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- To Month -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'toMonth'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">To Month</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"toMonths\" bindLabel=\"pMonthName\" bindValue=\"pMonth\"\r\n placeholder=\"Select To Month\" [clearable]=\"false\" formControlName=\"toMonth\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('toMonth')?.invalid && (searchForm.get('toMonth')?.touched|| formValidationError)}\"\r\n (change)=\"onSelectToMonth()\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- From Day -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'fromDay'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">From Day <span class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"fromDays\" bindLabel=\"individualDay\" bindValue=\"individualDate\"\r\n placeholder=\"Select From Day\" [clearable]=\"false\" formControlName=\"fromDay\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('fromDay')?.invalid && (searchForm.get('fromDay')?.touched|| formValidationError)}\"\r\n (change)=\"onSelectFromDay()\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- To Day -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'toDay'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">To Day<span style=\"margin-left: 1px;\"\r\n class=\"text-danger\">*</span></label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"toDays\" bindLabel=\"pDate\" bindValue=\"individualDate\" placeholder=\"Select To Day\"\r\n [clearable]=\"false\" formControlName=\"toDay\"\r\n [ngClass]=\"{'invalid-select': searchForm.get('toDay')?.invalid && (searchForm.get('toDay')?.touched|| formValidationError)}\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Date Type -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'dateTypeForTrialBalanceAccounts'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Date Type</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"dateTypes\" bindLabel=\"dateTypeLabel\" bindValue=\"dateTypeCode\"\r\n placeholder=\"Select Date Type\" formControlName=\"dateType\" [clearable]=\"false\" required\r\n [ngClass]=\"{'invalid-select': searchForm.get('dateType')?.invalid && (searchForm.get('dateType')?.touched|| formValidationError)}\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- Account Status -->\r\n <div class=\"form-field\" *ngSwitchCase=\"'accountStatus'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Account Status</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select class=\"transaction-status-select\" [items]=\"accountStatuses\" bindLabel=\"statusName\"\r\n bindValue=\"statusCode\" [multiple]=\"true\" placeholder=\"Select Account Status\"\r\n formControlName=\"accountStatus\" [closeOnSelect]=\"false\" [clearable]=\"false\" [searchable]=\"false\"\r\n required\r\n [ngClass]=\"{'invalid-select': searchForm.get('accountStatus')?.invalid && (searchForm.get('accountStatus')?.touched|| formValidationError)}\">\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\">\r\n <input type=\"checkbox\" [checked]=\"item$.selected\" /> {{ item.statusName }}\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n <!--Summary Report-->\r\n <div class=\"form-field\" *ngSwitchCase=\"'summaryReport'\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-2\">\r\n <label class=\"form-label label-data\">Summary Report</label>\r\n </div>\r\n <div class=\"col-10\">\r\n <ng-select [items]=\"summaryReportTypes\" bindLabel=\"label\" bindValue=\"value\"\r\n [clearable]=\"false\" formControlName=\"summaryReport\">\r\n\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <span [title]=\"item.label\">{{ item.label }}</span>\r\n </ng-template>\r\n\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-custom-1-5\">\r\n <!-- View Report Button (Always at Top-Right) -->\r\n <div class=\"form-field view-report-btn\">\r\n <button type=\"submit\" class=\"btn btn-report\">View</button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n</section>\r\n<hr>\r\n<!-- Error Messages -->\r\n<div class=\"alert alert-danger mt-3\" *ngIf=\"formValidationError && hasSearched\">\r\n Please fill all mandatory fields\r\n</div>\r\n\r\n<div class=\"alert alert-danger mt-3\" *ngIf=\"errorMessage && loadingState === ComponentLoadingState.Error\">\r\n {{ errorMessage }}\r\n</div>", styles: ["@charset \"UTF-8\";.filter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;grid-column:span 3}.form-field{display:flex;flex-direction:column;padding:0 4px 0 0!important;min-width:0}.col-custom-10-5{flex:0 0 87.5%!important;max-width:87.5%!important}.col-custom-1-5{flex:0 0 12.5%!important;max-width:12.5%!important;padding:0!important}::ng-deep .ng-select .ng-select-container .ng-value-container{overflow:hidden;flex-wrap:nowrap}::ng-deep .ng-select .ng-select-container .ng-value-container .ng-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}::ng-deep .ng-select .ng-select-container{height:32px!important;min-height:32px!important;font-size:12px!important;align-items:center}.form-label{margin-bottom:0!important}.date-group{height:32px!important}::ng-deep .transaction-status-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{padding:4px 0!important}::ng-deep .ng-select .ng-select-container .ng-value-container{padding-top:0}::ng-deep .ng-dropdown-panel .ng-option{font-size:12px}.btn-report{border-radius:4px;background-color:#8091a5;color:#fff!important;font-size:14px!important;height:32px;padding:4px 15px!important;margin-left:15px!important;width:auto!important;margin-right:7px!important}::ng-deep .ng-select .ng-select-container:focus-within{box-shadow:0 0 5px 3px #1877f2!important}::ng-deep .ng-select .ng-select-container:focus{box-shadow:0 0 5px 3px #1877f2!important}.fa-calendar{--fa: \"\\f073\" !important}.dpicker{border:1px solid #ccc!important;font-size:12px!important;font-weight:400!important;height:32px!important}.dpicker:focus{box-shadow:0 0 5px 3px #1877f2!important}.cal{height:32px!important;background-color:#1877f2;margin-left:0!important}.cal:focus{box-shadow:none!important}.label-data{font-weight:600!important;font-size:.7rem!important;line-height:1rem}@media (max-width: 768px){.filter-grid{grid-template-columns:1fr;gap:12px}}.input-group-button{background:none!important;border:1px solid #1877F2!important;background-color:#1877f2!important;border-radius:0 3px 3px 0!important;min-width:35px;margin-left:1px;height:32px!important;cursor:pointer}.input-group-button .fa{color:#fff}.input-group-button:focus{box-shadow:0 0 5px 3px #009ee054}.input-group-button:focus{outline:none!important;box-shadow:none!important}.Breadcrumb h1,.Breadcrumb h2{font-weight:700}.row{display:flex;flex-wrap:wrap;margin-right:0;margin-left:0}.col-2{padding-left:0}.col-10{padding-right:0}.col-custom-10-5{padding-right:0!important;padding-left:0}::ng-deep .invalid-select.ng-select>.ng-select-container{background-color:#d521211a;border:2px solid red!important}.invalid-date{background-color:#d521211a;border:2px solid red!important}\n"] }]
|
|
3526
3539
|
}], ctorParameters: function () { return [{ type: ReportService }, { type: i2.FormBuilder }, { type: ConfigService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { ReportName: [{
|
|
3527
3540
|
type: Input
|
|
3528
3541
|
}], searchClicked: [{
|
|
@@ -3788,11 +3801,53 @@ class TransactionEnquiryComponent {
|
|
|
3788
3801
|
{ headerName: 'Send Client', field: 'sendAgent', flex: 1, minWidth: 120, tooltipField: 'sendAgent' },
|
|
3789
3802
|
{ headerName: 'Send Client Branch', field: 'sendAgtBranch', flex: 1, minWidth: 120, tooltipField: 'sendAgtBranch' },
|
|
3790
3803
|
{ headerName: 'Receive Client', field: 'recvAgent', flex: 1, minWidth: 120, tooltipField: 'recvAgent' },
|
|
3791
|
-
{ headerName: 'Receive Client Branch', field: 'rcvAgtBranch', flex: 1, minWidth: 120, tooltipField: 'rcvAgtBranch' },
|
|
3792
3804
|
{ headerName: 'Sender Name', field: 'sendName', flex: 1, minWidth: 120, tooltipField: 'sendName' },
|
|
3805
|
+
{ headerName: 'Is Sender Corporate', field: 'senderType', flex: 1, minWidth: 80,
|
|
3806
|
+
valueFormatter: (params) => {
|
|
3807
|
+
if (!params.value)
|
|
3808
|
+
return '';
|
|
3809
|
+
const value = params.value.toUpperCase();
|
|
3810
|
+
if (value === 'CORPORATE')
|
|
3811
|
+
return 'YES';
|
|
3812
|
+
if (value === 'INDIVIDUAL')
|
|
3813
|
+
return 'NO';
|
|
3814
|
+
return '';
|
|
3815
|
+
},
|
|
3816
|
+
tooltipValueGetter: (params) => {
|
|
3817
|
+
if (!params.value)
|
|
3818
|
+
return '';
|
|
3819
|
+
const value = params.value.toUpperCase();
|
|
3820
|
+
if (value === 'CORPORATE')
|
|
3821
|
+
return 'YES';
|
|
3822
|
+
if (value === 'INDIVIDUAL')
|
|
3823
|
+
return 'NO';
|
|
3824
|
+
return '';
|
|
3825
|
+
} },
|
|
3826
|
+
{ headerName: 'Receive Client Branch', field: 'rcvAgtBranch', flex: 1, minWidth: 120, tooltipField: 'rcvAgtBranch' },
|
|
3793
3827
|
{ headerName: 'Sender ID Type', field: 'sendIdType', flex: 1, minWidth: 90, tooltipField: 'sendIdType' },
|
|
3794
|
-
{ headerName: '
|
|
3828
|
+
{ headerName: 'Is Beneficiary Corporate', field: 'beneficiaryType', flex: 1, minWidth: 80,
|
|
3829
|
+
valueFormatter: (params) => {
|
|
3830
|
+
if (!params.value)
|
|
3831
|
+
return '';
|
|
3832
|
+
const value = params.value.toUpperCase();
|
|
3833
|
+
if (value === 'CORPORATE')
|
|
3834
|
+
return 'YES';
|
|
3835
|
+
if (value === 'INDIVIDUAL')
|
|
3836
|
+
return 'NO';
|
|
3837
|
+
return '';
|
|
3838
|
+
},
|
|
3839
|
+
tooltipValueGetter: (params) => {
|
|
3840
|
+
if (!params.value)
|
|
3841
|
+
return '';
|
|
3842
|
+
const value = params.value.toUpperCase();
|
|
3843
|
+
if (value === 'CORPORATE')
|
|
3844
|
+
return 'YES';
|
|
3845
|
+
if (value === 'INDIVIDUAL')
|
|
3846
|
+
return 'NO';
|
|
3847
|
+
return '';
|
|
3848
|
+
} },
|
|
3795
3849
|
{ headerName: 'Benf. Name', field: 'benName', flex: 1, minWidth: 100, tooltipField: 'benName' },
|
|
3850
|
+
{ headerName: 'Sender ID Number', field: 'sendIdNumber', flex: 1, minWidth: 85, tooltipField: 'sendIdNumber' },
|
|
3796
3851
|
{ headerName: 'Receive Currency', field: 'payOutCurrency', flex: 1, minWidth: 80, tooltipField: 'payOutCurrency' },
|
|
3797
3852
|
{ headerName: 'Receive Amount', field: 'payOutAmount', flex: 1, minWidth: 100, cellClass: 'ag-right-aligned-cell ', tooltipField: 'payOutAmount' },
|
|
3798
3853
|
{ headerName: 'Send Currency', field: 'payInCurrency', flex: 1, minWidth: 70, tooltipField: 'payInCurrency' },
|
|
@@ -4045,6 +4100,50 @@ class BranchActivitySendReportComponent {
|
|
|
4045
4100
|
{ field: 'product', headerName: 'Product', flex: 0.5, wrapText: true, autoHeight: true, minWidth: 80, width: 120, tooltipField: 'product' },
|
|
4046
4101
|
{ field: 'sendAgentBranchCode', headerName: 'SendClient BranchCode', flex: 1, wrapText: true, autoHeight: true, minWidth: 90, width: 120, tooltipField: 'sendAgentBranchCode' },
|
|
4047
4102
|
{ field: 'receiveAgentCode', headerName: 'Receive ClientCode', flex: 1, wrapText: true, autoHeight: true, minWidth: 90, width: 70, tooltipField: 'receiveAgentCode' },
|
|
4103
|
+
{ headerName: 'Is Sender Corporate', field: 'senderType', flex: 1, minWidth: 80,
|
|
4104
|
+
valueFormatter: (params) => {
|
|
4105
|
+
if (!params.value)
|
|
4106
|
+
return '';
|
|
4107
|
+
const value = params.value.toUpperCase();
|
|
4108
|
+
if (value === 'CORPORATE')
|
|
4109
|
+
return 'YES';
|
|
4110
|
+
if (value === 'INDIVIDUAL')
|
|
4111
|
+
return 'NO';
|
|
4112
|
+
return '';
|
|
4113
|
+
},
|
|
4114
|
+
tooltipValueGetter: (params) => {
|
|
4115
|
+
if (!params.value)
|
|
4116
|
+
return '';
|
|
4117
|
+
const value = params.value.toUpperCase();
|
|
4118
|
+
if (value === 'CORPORATE')
|
|
4119
|
+
return 'YES';
|
|
4120
|
+
if (value === 'INDIVIDUAL')
|
|
4121
|
+
return 'NO';
|
|
4122
|
+
return '';
|
|
4123
|
+
} },
|
|
4124
|
+
{ headerName: 'Sender Name', field: 'senderName', flex: 1, minWidth: 120, tooltipField: 'senderName' },
|
|
4125
|
+
{ headerName: 'Is Beneficiary Corporate', field: 'beneficiaryType', flex: 1, minWidth: 80,
|
|
4126
|
+
valueFormatter: (params) => {
|
|
4127
|
+
if (!params.value)
|
|
4128
|
+
return '';
|
|
4129
|
+
const value = params.value.toUpperCase();
|
|
4130
|
+
if (value === 'CORPORATE')
|
|
4131
|
+
return 'YES';
|
|
4132
|
+
if (value === 'INDIVIDUAL')
|
|
4133
|
+
return 'NO';
|
|
4134
|
+
return '';
|
|
4135
|
+
},
|
|
4136
|
+
tooltipValueGetter: (params) => {
|
|
4137
|
+
if (!params.value)
|
|
4138
|
+
return '';
|
|
4139
|
+
const value = params.value.toUpperCase();
|
|
4140
|
+
if (value === 'CORPORATE')
|
|
4141
|
+
return 'YES';
|
|
4142
|
+
if (value === 'INDIVIDUAL')
|
|
4143
|
+
return 'NO';
|
|
4144
|
+
return '';
|
|
4145
|
+
} },
|
|
4146
|
+
{ headerName: 'Beneficiary Name', field: 'beneficiaryName', flex: 1, minWidth: 100, tooltipField: 'beneficiaryName' },
|
|
4048
4147
|
{ field: 'payoutCCcode', headerName: 'ReceiveCcy Code', flex: 1, wrapText: true, autoHeight: true, minWidth: 90, width: 110, tooltipField: 'payoutCCcode' },
|
|
4049
4148
|
{ field: 'payoutAmount', headerName: 'Receive Amount', flex: 1, wrapText: true, autoHeight: true, minWidth: 90, maxWidth: 120, cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'payoutAmount' },
|
|
4050
4149
|
{ field: 'payinCCcode', headerName: 'SendCcy Code', flex: 1, wrapText: true, autoHeight: true, minWidth: 90, maxWidth: 90, tooltipField: 'payinCCcode' },
|
|
@@ -4495,6 +4594,50 @@ class CancellationTransactionReportComponent {
|
|
|
4495
4594
|
{ headerName: 'Send Client Branch Code', field: 'sendAgentBranchCode', flex: 1, minWidth: 90, tooltipField: 'sendAgentBranchCode' },
|
|
4496
4595
|
{ headerName: 'Send Principal Client Code (If Applicable)', field: 'sendPrincipalAgentCode', flex: 1, minWidth: 90, tooltipField: 'sendPrincipalAgentCode' },
|
|
4497
4596
|
{ headerName: 'Receive Client Code', field: 'recvAGTcode', flex: 1, minWidth: 80, tooltipField: 'recvAGTcode' },
|
|
4597
|
+
{ headerName: 'Is Sender Corporate', field: 'senderType', flex: 1, minWidth: 80,
|
|
4598
|
+
valueFormatter: (params) => {
|
|
4599
|
+
if (!params.value)
|
|
4600
|
+
return '';
|
|
4601
|
+
const value = params.value.toUpperCase();
|
|
4602
|
+
if (value === 'CORPORATE')
|
|
4603
|
+
return 'YES';
|
|
4604
|
+
if (value === 'INDIVIDUAL')
|
|
4605
|
+
return 'NO';
|
|
4606
|
+
return '';
|
|
4607
|
+
},
|
|
4608
|
+
tooltipValueGetter: (params) => {
|
|
4609
|
+
if (!params.value)
|
|
4610
|
+
return '';
|
|
4611
|
+
const value = params.value.toUpperCase();
|
|
4612
|
+
if (value === 'CORPORATE')
|
|
4613
|
+
return 'YES';
|
|
4614
|
+
if (value === 'INDIVIDUAL')
|
|
4615
|
+
return 'NO';
|
|
4616
|
+
return '';
|
|
4617
|
+
} },
|
|
4618
|
+
{ headerName: 'Sender Name', field: 'senderName', flex: 1, minWidth: 120, tooltipField: 'senderName' },
|
|
4619
|
+
{ headerName: 'Is Beneficiary Corporate', field: 'beneficiaryType', flex: 1, minWidth: 80,
|
|
4620
|
+
valueFormatter: (params) => {
|
|
4621
|
+
if (!params.value)
|
|
4622
|
+
return '';
|
|
4623
|
+
const value = params.value.toUpperCase();
|
|
4624
|
+
if (value === 'CORPORATE')
|
|
4625
|
+
return 'YES';
|
|
4626
|
+
if (value === 'INDIVIDUAL')
|
|
4627
|
+
return 'NO';
|
|
4628
|
+
return '';
|
|
4629
|
+
},
|
|
4630
|
+
tooltipValueGetter: (params) => {
|
|
4631
|
+
if (!params.value)
|
|
4632
|
+
return '';
|
|
4633
|
+
const value = params.value.toUpperCase();
|
|
4634
|
+
if (value === 'CORPORATE')
|
|
4635
|
+
return 'YES';
|
|
4636
|
+
if (value === 'INDIVIDUAL')
|
|
4637
|
+
return 'NO';
|
|
4638
|
+
return '';
|
|
4639
|
+
} },
|
|
4640
|
+
{ headerName: 'Beneficiary Name', field: 'beneficiaryName', flex: 1, minWidth: 100, tooltipField: 'beneficiaryName' },
|
|
4498
4641
|
{ headerName: 'Receive CcyCode', field: 'payoutCCcode', flex: 1, minWidth: 65, tooltipField: 'payoutCCcode' },
|
|
4499
4642
|
{ headerName: 'Receive Amount', field: 'payOutAmount', flex: 1, minWidth: 82, cellClass: 'ag-right-aligned-cell', tooltipField: 'payOutAmount' },
|
|
4500
4643
|
{ headerName: 'Send CcyCode', field: 'payinCCcode', flex: 1, minWidth: 69, tooltipField: 'payinCCcode' },
|
|
@@ -5749,6 +5892,48 @@ class AccountingReportComponent {
|
|
|
5749
5892
|
{ headerName: 'Principle SendClient (If Applicable)', field: 'principleSendClient', tooltipField: 'principleSendClient', width: 90, minWidth: 80, maxWidth: 110 },
|
|
5750
5893
|
{ headerName: 'ReceiveClient', field: 'receiveClient', tooltipField: 'receiveClient' },
|
|
5751
5894
|
{ headerName: 'Principle ReceiveClient (If Applicable)', field: 'principleReceiveClient', tooltipField: 'principleReceiveClient', width: 100, minWidth: 90, maxWidth: 120 },
|
|
5895
|
+
{ headerName: 'Is Sender Corporate', field: 'senderType', flex: 1, minWidth: 80,
|
|
5896
|
+
valueFormatter: (params) => {
|
|
5897
|
+
if (!params.value)
|
|
5898
|
+
return '';
|
|
5899
|
+
const value = params.value.toUpperCase();
|
|
5900
|
+
if (value === 'CORPORATE')
|
|
5901
|
+
return 'YES';
|
|
5902
|
+
if (value === 'INDIVIDUAL')
|
|
5903
|
+
return 'NO';
|
|
5904
|
+
return '';
|
|
5905
|
+
},
|
|
5906
|
+
tooltipValueGetter: (params) => {
|
|
5907
|
+
if (!params.value)
|
|
5908
|
+
return '';
|
|
5909
|
+
const value = params.value.toUpperCase();
|
|
5910
|
+
if (value === 'CORPORATE')
|
|
5911
|
+
return 'YES';
|
|
5912
|
+
if (value === 'INDIVIDUAL')
|
|
5913
|
+
return 'NO';
|
|
5914
|
+
return '';
|
|
5915
|
+
} },
|
|
5916
|
+
{ headerName: 'Is Beneficiary Corporate', field: 'beneficiaryType', flex: 1, minWidth: 80,
|
|
5917
|
+
valueFormatter: (params) => {
|
|
5918
|
+
if (!params.value)
|
|
5919
|
+
return '';
|
|
5920
|
+
const value = params.value.toUpperCase();
|
|
5921
|
+
if (value === 'CORPORATE')
|
|
5922
|
+
return 'YES';
|
|
5923
|
+
if (value === 'INDIVIDUAL')
|
|
5924
|
+
return 'NO';
|
|
5925
|
+
return '';
|
|
5926
|
+
},
|
|
5927
|
+
tooltipValueGetter: (params) => {
|
|
5928
|
+
if (!params.value)
|
|
5929
|
+
return '';
|
|
5930
|
+
const value = params.value.toUpperCase();
|
|
5931
|
+
if (value === 'CORPORATE')
|
|
5932
|
+
return 'YES';
|
|
5933
|
+
if (value === 'INDIVIDUAL')
|
|
5934
|
+
return 'NO';
|
|
5935
|
+
return '';
|
|
5936
|
+
} },
|
|
5752
5937
|
{ headerName: 'ReceiveCcy', field: 'receiveCurrency', tooltipField: 'receiveCurrency' },
|
|
5753
5938
|
{ headerName: 'AmountPaid', field: 'amountPaid', tooltipField: 'amountPaid', cellClass: 'ag-right-aligned-cell' },
|
|
5754
5939
|
{ headerName: 'SendCcy', field: 'sendCurrency', tooltipField: 'sendCurrency', },
|
|
@@ -6673,7 +6858,7 @@ class TrialBalanceAccountsReportComponent {
|
|
|
6673
6858
|
this.dateType = '';
|
|
6674
6859
|
this.fromDate = '';
|
|
6675
6860
|
this.toDate = '';
|
|
6676
|
-
this.
|
|
6861
|
+
this.businessLine = '';
|
|
6677
6862
|
this.reportUser = '';
|
|
6678
6863
|
this.reportTime = '';
|
|
6679
6864
|
this.reportPeriod = '';
|
|
@@ -6705,7 +6890,6 @@ class TrialBalanceAccountsReportComponent {
|
|
|
6705
6890
|
'total-row': params => { var _a; return (_a = params.data) === null || _a === void 0 ? void 0 : _a.isTotalRow; }
|
|
6706
6891
|
};
|
|
6707
6892
|
this.columnDefs = [
|
|
6708
|
-
{ headerName: 'Business Unit', field: 'companyFullName', tooltipField: 'companyFullName', minWidth: 70, maxWidth: 100 },
|
|
6709
6893
|
{ headerName: 'COA Code', field: 'coaCode', tooltipField: 'coaCode', minWidth: 60, maxWidth: 100 },
|
|
6710
6894
|
{ headerName: 'Account Code', field: 'accountCode', tooltipField: 'accountCode', minWidth: 80, maxWidth: 100 },
|
|
6711
6895
|
{ headerName: 'Account Description', field: 'accountDescription', tooltipField: 'accountDescription', minWidth: 180, maxWidth: 230 },
|
|
@@ -6716,23 +6900,8 @@ class TrialBalanceAccountsReportComponent {
|
|
|
6716
6900
|
{ headerName: 'Closing Balance Local Amount', field: 'closingBalance', type: 'numericColumn', tooltipField: 'closingBalance' }
|
|
6717
6901
|
];
|
|
6718
6902
|
this.rowData = [];
|
|
6719
|
-
this.businessUnits = [];
|
|
6720
|
-
}
|
|
6721
|
-
ngOnInit() {
|
|
6722
|
-
this.loadingState = ComponentLoadingStates.Loading;
|
|
6723
|
-
this.reportService.GetBusinessUnitForTrialBalanceAccountsReport().subscribe({
|
|
6724
|
-
next: (res) => {
|
|
6725
|
-
this.businessUnits = res;
|
|
6726
|
-
this.loadingState = ComponentLoadingStates.Complete;
|
|
6727
|
-
}, error: (err) => {
|
|
6728
|
-
console.error('Error fetching business units:', err);
|
|
6729
|
-
this.loadingState = ComponentLoadingStates.Error;
|
|
6730
|
-
}, complete: () => {
|
|
6731
|
-
console.log("getting business units api completed");
|
|
6732
|
-
this.loadingState = ComponentLoadingStates.Complete;
|
|
6733
|
-
}
|
|
6734
|
-
});
|
|
6735
6903
|
}
|
|
6904
|
+
ngOnInit() { }
|
|
6736
6905
|
getTrialBalanceAccountsReport(req) {
|
|
6737
6906
|
this.dataReady = false;
|
|
6738
6907
|
this.trialBalanceReport = null;
|
|
@@ -6747,7 +6916,7 @@ class TrialBalanceAccountsReportComponent {
|
|
|
6747
6916
|
this.accountStatus = req.accountStatus;
|
|
6748
6917
|
this.currency = req.currency;
|
|
6749
6918
|
this.dateType = req.dateType == "VD" ? "Value Date" : "Posting Date";
|
|
6750
|
-
this.
|
|
6919
|
+
this.businessLine = req.businessLine;
|
|
6751
6920
|
this.rowData = this.flattenReport(report).map(acc => (Object.assign(Object.assign({}, acc), { openingBalance: Number(acc.openingBalance).toFixed(3), debit: Number(acc.debit).toFixed(3), credit: Number(acc.credit).toFixed(3), netMovement: Number(acc.netMovement).toFixed(3), closingBalance: Number(acc.closingBalance).toFixed(3) })));
|
|
6752
6921
|
this.metaDataOne = {
|
|
6753
6922
|
'Report Period': this.reportPeriod,
|
|
@@ -6760,7 +6929,7 @@ class TrialBalanceAccountsReportComponent {
|
|
|
6760
6929
|
['Currency:', this.currency],
|
|
6761
6930
|
['Date Type:', this.dateType],
|
|
6762
6931
|
['From Date:', this.fromDate],
|
|
6763
|
-
['Business
|
|
6932
|
+
['Business Line:', this.businessLine],
|
|
6764
6933
|
['To Date:', this.toDate],
|
|
6765
6934
|
];
|
|
6766
6935
|
this.searchCriteria = searchCriteria;
|
|
@@ -6778,7 +6947,6 @@ class TrialBalanceAccountsReportComponent {
|
|
|
6778
6947
|
sub.coaGroups.forEach(coa => {
|
|
6779
6948
|
coa.accounts.forEach(account => rows.push(account));
|
|
6780
6949
|
rows.push({
|
|
6781
|
-
companyFullName: '',
|
|
6782
6950
|
coaCode: '',
|
|
6783
6951
|
accountCode: 'Total:',
|
|
6784
6952
|
accountDescription: `${coa.coaDescription}`,
|
|
@@ -6791,7 +6959,6 @@ class TrialBalanceAccountsReportComponent {
|
|
|
6791
6959
|
});
|
|
6792
6960
|
});
|
|
6793
6961
|
rows.push({
|
|
6794
|
-
companyFullName: '',
|
|
6795
6962
|
coaCode: '',
|
|
6796
6963
|
accountCode: 'Total:',
|
|
6797
6964
|
accountDescription: `${sub.subCOADescription}`,
|
|
@@ -6804,7 +6971,6 @@ class TrialBalanceAccountsReportComponent {
|
|
|
6804
6971
|
});
|
|
6805
6972
|
});
|
|
6806
6973
|
rows.push({
|
|
6807
|
-
companyFullName: '',
|
|
6808
6974
|
coaCode: '',
|
|
6809
6975
|
accountCode: 'Total:',
|
|
6810
6976
|
accountDescription: `${main.mainCOADescription}`,
|
|
@@ -6817,7 +6983,6 @@ class TrialBalanceAccountsReportComponent {
|
|
|
6817
6983
|
});
|
|
6818
6984
|
});
|
|
6819
6985
|
rows.push({
|
|
6820
|
-
companyFullName: '',
|
|
6821
6986
|
coaCode: 'TOTAL:',
|
|
6822
6987
|
accountCode: '',
|
|
6823
6988
|
accountDescription: '',
|
|
@@ -6948,7 +7113,6 @@ class TrialBalanceAccountsReportComponent {
|
|
|
6948
7113
|
// --- headers ---
|
|
6949
7114
|
const headers = [
|
|
6950
7115
|
'Sr No',
|
|
6951
|
-
'Business Unit',
|
|
6952
7116
|
'COA Code', 'Account Code', 'Account Description',
|
|
6953
7117
|
'Opening Balance Local Amt', 'Debits Local Amt', 'Credits Local Amt',
|
|
6954
7118
|
'Net Movement Local Amt', 'Closing Balance Local Amt'
|
|
@@ -6957,7 +7121,6 @@ class TrialBalanceAccountsReportComponent {
|
|
|
6957
7121
|
// --- rows ---
|
|
6958
7122
|
const rows = flatReport.map((acc, i) => [
|
|
6959
7123
|
i + 1,
|
|
6960
|
-
acc.companyFullName,
|
|
6961
7124
|
acc.coaCode,
|
|
6962
7125
|
acc.accountCode,
|
|
6963
7126
|
acc.accountDescription,
|
|
@@ -6969,16 +7132,15 @@ class TrialBalanceAccountsReportComponent {
|
|
|
6969
7132
|
]);
|
|
6970
7133
|
// --- column widths ---
|
|
6971
7134
|
const columnStyles = {
|
|
6972
|
-
0: { cellWidth:
|
|
7135
|
+
0: { cellWidth: 15 },
|
|
6973
7136
|
1: { cellWidth: 25 },
|
|
6974
7137
|
2: { cellWidth: 25 },
|
|
6975
|
-
3: { cellWidth:
|
|
6976
|
-
4: { cellWidth:
|
|
7138
|
+
3: { cellWidth: 70 },
|
|
7139
|
+
4: { cellWidth: 30 },
|
|
6977
7140
|
5: { cellWidth: 30 },
|
|
6978
|
-
6: { cellWidth:
|
|
6979
|
-
7: { cellWidth:
|
|
6980
|
-
8: { cellWidth:
|
|
6981
|
-
9: { cellWidth: 30 },
|
|
7141
|
+
6: { cellWidth: 30 },
|
|
7142
|
+
7: { cellWidth: 30 },
|
|
7143
|
+
8: { cellWidth: 30 },
|
|
6982
7144
|
};
|
|
6983
7145
|
// --- draw table ---
|
|
6984
7146
|
doc.autoTable({
|
|
@@ -7009,9 +7171,9 @@ class TrialBalanceAccountsReportComponent {
|
|
|
7009
7171
|
if (isTotalRow)
|
|
7010
7172
|
data.cell.styles.fontStyle = 'bold';
|
|
7011
7173
|
// highlight negatives in red
|
|
7012
|
-
if (data.column.index >
|
|
7174
|
+
if (data.column.index > 3) {
|
|
7013
7175
|
const keyMap = ["openingBalance", "debit", "credit", "netMovement", "closingBalance"];
|
|
7014
|
-
const key = keyMap[data.column.index -
|
|
7176
|
+
const key = keyMap[data.column.index - 4];
|
|
7015
7177
|
const raw = rowData[key];
|
|
7016
7178
|
const num = Number(raw);
|
|
7017
7179
|
if (!isNaN(num) && num < 0) {
|
|
@@ -7047,7 +7209,7 @@ class TrialBalanceAccountsReportComponent {
|
|
|
7047
7209
|
}
|
|
7048
7210
|
// --- title ---
|
|
7049
7211
|
const title = 'Xpress Money - MI Accounts';
|
|
7050
|
-
sheet.mergeCells(1, 3, 1,
|
|
7212
|
+
sheet.mergeCells(1, 3, 1, 9);
|
|
7051
7213
|
const titleCell = sheet.getCell('C1');
|
|
7052
7214
|
titleCell.value = title;
|
|
7053
7215
|
titleCell.font = { size: 15, bold: true };
|
|
@@ -7101,7 +7263,6 @@ class TrialBalanceAccountsReportComponent {
|
|
|
7101
7263
|
// --- headers ---
|
|
7102
7264
|
const headers = [
|
|
7103
7265
|
'Sr No',
|
|
7104
|
-
'Business Unit',
|
|
7105
7266
|
'COA Code', 'Account Code', 'Account Description',
|
|
7106
7267
|
'Opening Balance Local Amt', 'Debits Local Amt', 'Credits Local Amt',
|
|
7107
7268
|
'Net Movement Local Amt', 'Closing Balance Local Amt'
|
|
@@ -7124,7 +7285,6 @@ class TrialBalanceAccountsReportComponent {
|
|
|
7124
7285
|
});
|
|
7125
7286
|
return [
|
|
7126
7287
|
idx + 1,
|
|
7127
|
-
acc.companyFullName,
|
|
7128
7288
|
acc.coaCode,
|
|
7129
7289
|
acc.accountCode,
|
|
7130
7290
|
acc.accountDescription,
|
|
@@ -7134,28 +7294,28 @@ class TrialBalanceAccountsReportComponent {
|
|
|
7134
7294
|
});
|
|
7135
7295
|
rows.forEach(r => {
|
|
7136
7296
|
const row = sheet.getRow(currentRow++);
|
|
7137
|
-
r.slice(0,
|
|
7297
|
+
r.slice(0, 9).forEach((val, i) => {
|
|
7138
7298
|
const cell = row.getCell(i + 1);
|
|
7139
7299
|
// convert back to number for Excel math but show 3 decimals
|
|
7140
|
-
if (i >
|
|
7300
|
+
if (i > 3 && val !== '')
|
|
7141
7301
|
cell.value = parseFloat(val.toString());
|
|
7142
7302
|
else
|
|
7143
7303
|
cell.value = val;
|
|
7144
7304
|
cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } };
|
|
7145
7305
|
// bold total rows
|
|
7146
|
-
if (r[
|
|
7306
|
+
if (r[9])
|
|
7147
7307
|
cell.font = { bold: true };
|
|
7148
7308
|
// negative numbers red
|
|
7149
|
-
if (i >
|
|
7150
|
-
cell.font = { color: { argb: 'FF0000' }, bold: r[
|
|
7309
|
+
if (i > 3 && typeof cell.value === 'number' && cell.value < 0) {
|
|
7310
|
+
cell.font = { color: { argb: 'FF0000' }, bold: r[9] ? true : undefined };
|
|
7151
7311
|
}
|
|
7152
7312
|
// set number format to show 3 decimals
|
|
7153
|
-
if (i >
|
|
7313
|
+
if (i > 3)
|
|
7154
7314
|
cell.numFmt = '0.000';
|
|
7155
7315
|
});
|
|
7156
7316
|
});
|
|
7157
7317
|
// --- column widths ---
|
|
7158
|
-
const widths = [8,
|
|
7318
|
+
const widths = [8, 15, 15, 40, 20, 20, 20, 20, 20];
|
|
7159
7319
|
widths.forEach((w, i) => sheet.getColumn(i + 1).width = w);
|
|
7160
7320
|
// --- save file ---
|
|
7161
7321
|
workbook.xlsx.writeBuffer().then(buffer => {
|
|
@@ -7179,7 +7339,6 @@ class TrialBalanceAccountsReportComponent {
|
|
|
7179
7339
|
// --- table headers (add Sr No at start) ---
|
|
7180
7340
|
const headers = [
|
|
7181
7341
|
'Sr No',
|
|
7182
|
-
'Business Unit',
|
|
7183
7342
|
'COA Code', 'Account Code', 'Account Description',
|
|
7184
7343
|
'Opening Balance Local Amt', 'Debits Local Amt', 'Credits Local Amt',
|
|
7185
7344
|
'Net Movement Local Amt', 'Closing Balance Local Amt'
|
|
@@ -7187,7 +7346,6 @@ class TrialBalanceAccountsReportComponent {
|
|
|
7187
7346
|
// --- table rows (prepend Sr No) ---
|
|
7188
7347
|
const rows = this.flattenReport(this.trialBalanceReport).map((acc, index) => [
|
|
7189
7348
|
index + 1,
|
|
7190
|
-
acc.companyFullName,
|
|
7191
7349
|
acc.coaCode,
|
|
7192
7350
|
acc.accountCode,
|
|
7193
7351
|
acc.accountDescription,
|
|
@@ -7255,9 +7413,9 @@ class TrialBalanceAccountsReportComponent {
|
|
|
7255
7413
|
fromDate: modal.fromDay,
|
|
7256
7414
|
toDate: modal.toDay,
|
|
7257
7415
|
accountStatus: modal.accountStatus.join(','),
|
|
7258
|
-
|
|
7416
|
+
businessLine: modal.businessLine,
|
|
7259
7417
|
currency: modal.currency,
|
|
7260
|
-
companyCode:
|
|
7418
|
+
companyCode: "BH",
|
|
7261
7419
|
reportPeriod: `${formatDate(modal.fromDate, 'dd/MM/yyyy', 'en-US')} - ${formatDate(modal.toDate, 'dd/MM/yyyy', 'en-US')}`,
|
|
7262
7420
|
};
|
|
7263
7421
|
this.getTrialBalanceAccountsReport(req);
|
|
@@ -7309,6 +7467,48 @@ class BranchActivitySendSummaryReportComponent {
|
|
|
7309
7467
|
}
|
|
7310
7468
|
},
|
|
7311
7469
|
{ field: 'product', headerName: 'Product', flex: 1, wrapText: true, autoHeight: true, minWidth: 80, width: 120, tooltipField: 'product' },
|
|
7470
|
+
{ headerName: 'Is Sender Corporate', field: 'senderType', flex: 1, minWidth: 80,
|
|
7471
|
+
valueFormatter: (params) => {
|
|
7472
|
+
if (!params.value)
|
|
7473
|
+
return '';
|
|
7474
|
+
const value = params.value.toUpperCase();
|
|
7475
|
+
if (value === 'CORPORATE')
|
|
7476
|
+
return 'YES';
|
|
7477
|
+
if (value === 'INDIVIDUAL')
|
|
7478
|
+
return 'NO';
|
|
7479
|
+
return '';
|
|
7480
|
+
},
|
|
7481
|
+
tooltipValueGetter: (params) => {
|
|
7482
|
+
if (!params.value)
|
|
7483
|
+
return '';
|
|
7484
|
+
const value = params.value.toUpperCase();
|
|
7485
|
+
if (value === 'CORPORATE')
|
|
7486
|
+
return 'YES';
|
|
7487
|
+
if (value === 'INDIVIDUAL')
|
|
7488
|
+
return 'NO';
|
|
7489
|
+
return '';
|
|
7490
|
+
} },
|
|
7491
|
+
{ headerName: 'Is Beneficiary Corporate', field: 'beneficiaryType', flex: 1, minWidth: 80,
|
|
7492
|
+
valueFormatter: (params) => {
|
|
7493
|
+
if (!params.value)
|
|
7494
|
+
return '';
|
|
7495
|
+
const value = params.value.toUpperCase();
|
|
7496
|
+
if (value === 'CORPORATE')
|
|
7497
|
+
return 'YES';
|
|
7498
|
+
if (value === 'INDIVIDUAL')
|
|
7499
|
+
return 'NO';
|
|
7500
|
+
return '';
|
|
7501
|
+
},
|
|
7502
|
+
tooltipValueGetter: (params) => {
|
|
7503
|
+
if (!params.value)
|
|
7504
|
+
return '';
|
|
7505
|
+
const value = params.value.toUpperCase();
|
|
7506
|
+
if (value === 'CORPORATE')
|
|
7507
|
+
return 'YES';
|
|
7508
|
+
if (value === 'INDIVIDUAL')
|
|
7509
|
+
return 'NO';
|
|
7510
|
+
return '';
|
|
7511
|
+
} },
|
|
7312
7512
|
{ field: 'payoutCCcode', headerName: 'Receive Currency', flex: 1, wrapText: true, autoHeight: true, minWidth: 90, width: 110, tooltipField: 'payoutCCcode' },
|
|
7313
7513
|
{ field: 'payoutAmount', headerName: 'Receive Amount', flex: 1, wrapText: true, autoHeight: true, minWidth: 90, maxWidth: 120, cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'payoutAmount' },
|
|
7314
7514
|
{ field: 'payinCCcode', headerName: 'Send Currency', flex: 1, wrapText: true, autoHeight: true, minWidth: 90, maxWidth: 90, tooltipField: 'payinCCcode' },
|
|
@@ -7969,6 +8169,7 @@ class TransactionMonitoringReportComponent {
|
|
|
7969
8169
|
this.showMessage = false;
|
|
7970
8170
|
this.noDataFound = false;
|
|
7971
8171
|
this.isFormValid = false;
|
|
8172
|
+
this.clearSearch = false;
|
|
7972
8173
|
this.columnDefs = [
|
|
7973
8174
|
{ field: 'businessDateTime', headerName: 'Business Date', flex: 1, headerClass: 'ag-left-aligned-header', minWidth: 70, wrapText: true, autoHeight: true, tooltipField: 'businessDateTime' },
|
|
7974
8175
|
{ field: 'transactionDateTime', headerName: 'Transaction Date', flex: 2, headerClass: 'ag-left-aligned-header', minWidth: 100, wrapText: true, autoHeight: true, tooltipField: 'transactionDateTime' },
|
|
@@ -8050,7 +8251,9 @@ class TransactionMonitoringReportComponent {
|
|
|
8050
8251
|
receiveCountry: params['receiveCountry'],
|
|
8051
8252
|
toDate: params['toDate'],
|
|
8052
8253
|
fromDate: params['fromDate'],
|
|
8053
|
-
isRealtime: params['isRealtime'] === 'true' || params['isRealtime'] === true
|
|
8254
|
+
isRealtime: params['isRealtime'] === 'true' || params['isRealtime'] === true,
|
|
8255
|
+
loggedInTime: params['loggedInTime'],
|
|
8256
|
+
count: Number(params['count'])
|
|
8054
8257
|
};
|
|
8055
8258
|
}
|
|
8056
8259
|
else {
|
|
@@ -8170,13 +8373,28 @@ class TransactionMonitoringReportComponent {
|
|
|
8170
8373
|
return '';
|
|
8171
8374
|
}
|
|
8172
8375
|
handleSearch(criteria) {
|
|
8376
|
+
var _a, _b, _c, _d, _e, _f;
|
|
8377
|
+
if (this.initialFilters != null) {
|
|
8378
|
+
const realtimeStatuses = ['Paid', 'PaidCancelled', 'Cancelled', 'Void', 'Rejected'];
|
|
8379
|
+
const isTerminatingStatus = realtimeStatuses.includes((_a = this.initialFilters) === null || _a === void 0 ? void 0 : _a.transactionStatus);
|
|
8380
|
+
const isZeroCount = ((_b = this.initialFilters) === null || _b === void 0 ? void 0 : _b.count) === 0;
|
|
8381
|
+
// block api call
|
|
8382
|
+
if (isTerminatingStatus && isZeroCount && (!criteria.modal.fromDate && !criteria.modal.toDate)) {
|
|
8383
|
+
this.noDataFound = true;
|
|
8384
|
+
this.showReport = true;
|
|
8385
|
+
this.loadingState = ComponentLoadingStates.Complete;
|
|
8386
|
+
this.clearSearch = false;
|
|
8387
|
+
this.showMessage = true;
|
|
8388
|
+
return;
|
|
8389
|
+
}
|
|
8390
|
+
}
|
|
8173
8391
|
this.searchCriteria = criteria.searchCriteria;
|
|
8174
8392
|
this.reportDate = new Date().toISOString();
|
|
8175
8393
|
this.reportDate = formatDate(this.reportDate, 'dd/MM/yyyy hh:mm a', 'en-US');
|
|
8176
8394
|
const modal = criteria.modal;
|
|
8177
8395
|
this.user = criteria.sysUserID;
|
|
8178
8396
|
// this.fromDate = formatDate(modal.fromDate, 'dd/MM/yyyy hh:mm a', 'en-US').slice(0, 10);
|
|
8179
|
-
//this.toDate = formatDate(modal.toDate, 'dd/MM/yyyy hh:mm a', 'en-US').slice(0, 10);
|
|
8397
|
+
// this.toDate = formatDate(modal.toDate, 'dd/MM/yyyy hh:mm a', 'en-US').slice(0, 10);
|
|
8180
8398
|
this.fromDate = modal.fromDate
|
|
8181
8399
|
? formatDate(modal.fromDate, 'dd/MM/yyyy hh:mm a', 'en-US').slice(0, 10)
|
|
8182
8400
|
: null;
|
|
@@ -8186,7 +8404,7 @@ class TransactionMonitoringReportComponent {
|
|
|
8186
8404
|
console.log(modal);
|
|
8187
8405
|
// Code For Meta Data
|
|
8188
8406
|
this.leftData = {
|
|
8189
|
-
//
|
|
8407
|
+
// 'Report Period': this.fromDate + " - " + this.toDate,
|
|
8190
8408
|
'Report Period': this.fromDate && this.toDate
|
|
8191
8409
|
? `${this.fromDate} - ${this.toDate}`
|
|
8192
8410
|
: ''
|
|
@@ -8204,9 +8422,11 @@ class TransactionMonitoringReportComponent {
|
|
|
8204
8422
|
"PayoutCurrency": modal.receiveCurrency,
|
|
8205
8423
|
"TransactionType": modal.product,
|
|
8206
8424
|
"BranchCode": modal.branch,
|
|
8207
|
-
"IsrealTime":
|
|
8425
|
+
"IsrealTime": (_d = (_c = this.initialFilters) === null || _c === void 0 ? void 0 : _c.isRealtime) !== null && _d !== void 0 ? _d : false,
|
|
8426
|
+
"LoggedInTime": (_f = (_e = this.initialFilters) === null || _e === void 0 ? void 0 : _e.loggedInTime) !== null && _f !== void 0 ? _f : null
|
|
8208
8427
|
};
|
|
8209
8428
|
this.showMessage = true;
|
|
8429
|
+
this.clearSearch = true;
|
|
8210
8430
|
this.loadingState = ComponentLoadingStates.Loading;
|
|
8211
8431
|
this.reportService.getTransactionMonitoringReport(searchData).subscribe({
|
|
8212
8432
|
next: (data) => {
|
|
@@ -8221,10 +8441,12 @@ class TransactionMonitoringReportComponent {
|
|
|
8221
8441
|
},
|
|
8222
8442
|
error: (err) => {
|
|
8223
8443
|
this.loadingState = ComponentLoadingStates.Complete;
|
|
8444
|
+
this.clearSearch = false;
|
|
8224
8445
|
},
|
|
8225
8446
|
complete: () => {
|
|
8226
8447
|
this.loadingState = ComponentLoadingStates.Complete;
|
|
8227
8448
|
this.showReport = true;
|
|
8449
|
+
this.clearSearch = false;
|
|
8228
8450
|
}
|
|
8229
8451
|
});
|
|
8230
8452
|
}
|