Skip to content

Commit aa58fc0

Browse files
authored
c1: Update category import style (#639)
1 parent ecda27c commit aa58fc0

File tree

4 files changed

+28
-18
lines changed

4 files changed

+28
-18
lines changed

src/app/core/models/intacct/intacct-configuration/import-settings.model.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import { FormGroup } from "@angular/forms";
22
import { DefaultDestinationAttribute } from "../../db/destination-attribute.model";
3+
import { FyleField } from "../../enum/enum.model";
4+
import { brandingConfig } from "src/app/branding/branding-config";
35

46
const emptyDestinationAttribute = { id: null, name: null };
57

@@ -52,7 +54,7 @@ export class ImportSettings {
5254
const filteredExpenseFieldArray = expenseFieldArray.filter((field: MappingSetting) => field.destination_field && field.source_field);
5355

5456
// Then map over the filtered array
55-
const mappingSettings = filteredExpenseFieldArray.map((field: MappingSetting) => {
57+
const mappingSettings = filteredExpenseFieldArray.filter((field: MappingSetting) => field.source_field !== 'CATEGORY').map((field: MappingSetting) => {
5658
return {
5759
source_field: field.source_field.toUpperCase(),
5860
destination_field: field.destination_field,
@@ -74,9 +76,17 @@ export class ImportSettings {
7476
};
7577
}
7678

79+
let isCategoryImportEnabled = false;
80+
81+
if (brandingConfig.brandId === 'fyle') {
82+
isCategoryImportEnabled = importSettingsForm.value.importCategories ? importSettingsForm.value.importCategories : false;
83+
} else {
84+
isCategoryImportEnabled = filteredExpenseFieldArray.filter((field: MappingSetting) => field.source_field === 'CATEGORY' && field.import_to_fyle).length > 0 ? true : false;
85+
}
86+
7787
const importSettingPayload: ImportSettingPost = {
7888
configurations: {
79-
import_categories: importSettingsForm.value.importCategories ? importSettingsForm.value.importCategories : false,
89+
import_categories: isCategoryImportEnabled,
8090
import_tax_codes: importSettingsForm.value.importTaxCodes ? importSettingsForm.value.importTaxCodes : false,
8191
import_vendors_as_merchants: importSettingsForm.value.importVendorAsMerchant ? importSettingsForm.value.importVendorAsMerchant : false
8292
},

src/app/integrations/intacct/intacct-shared/intacct-c1-import-settings/intacct-c1-import-settings.component.html

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,7 @@
1111
</div>
1212
<div>
1313
<form [formGroup]="importSettingsForm">
14-
<div class="tw-p-24-px">
15-
<div class="tw-rounded-lg tw-border-border-tertiary tw-border">
16-
<app-configuration-toggle-field
17-
[form]="importSettingsForm"
18-
[label]="'Import the ' + (intacctCategoryDestination | snakeCaseToSpaceCase | sentenceCase | lowercase) + ' as categories in ' + brandingConfig.brandName"
19-
[subLabel]="'Imported ' + (intacctCategoryDestination | snakeCaseToSpaceCase | sentenceCase | lowercase) + ' will be available as categories in ' + brandingConfig.brandName + '.'"
20-
[formControllerName]="'importCategories'"
21-
[isSectionHeader]="false"
22-
[iconPath]="'arrow-tail-down'">
23-
</app-configuration-toggle-field>
24-
</div>
25-
14+
<div class="tw-p-24-px tw-pt-0">
2615
<div>
2716
<app-configuration-import-field
2817
[form]="importSettingsForm"

src/app/integrations/intacct/intacct-shared/intacct-c1-import-settings/intacct-c1-import-settings.component.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { Router } from '@angular/router';
44
import { RxwebValidators } from '@rxweb/reactive-form-validators';
55
import { forkJoin } from 'rxjs';
66
import { brandingConfig, brandingContent, brandingKbArticles } from 'src/app/branding/branding-config';
7-
import { IntacctCategoryDestination, ConfigurationCta, IntacctOnboardingState, IntacctUpdateEvent, Page, ProgressPhase, ToastSeverity, MappingSourceField, AppName, TrackingApp } from 'src/app/core/models/enum/enum.model';
7+
import { IntacctCategoryDestination, ConfigurationCta, IntacctOnboardingState, IntacctUpdateEvent, Page, ProgressPhase, ToastSeverity, MappingSourceField, AppName, TrackingApp, FyleField } from 'src/app/core/models/enum/enum.model';
88
import { IntacctDestinationAttribute } from 'src/app/core/models/intacct/db/destination-attribute.model';
99
import { ExpenseField } from 'src/app/core/models/intacct/db/expense-field.model';
1010
import { LocationEntityMapping } from 'src/app/core/models/intacct/db/location-entity-mapping.model';
@@ -245,6 +245,17 @@ export class IntacctC1ImportSettingsComponent implements OnInit {
245245
return (topPriorityFields.includes(b.attribute_type) ? 1 : 0) - (topPriorityFields.includes(a.attribute_type) ? 1 : 0);
246246
});
247247

248+
expenseFieldFormArray.push(this.createFormGroup({
249+
source_field: FyleField.CATEGORY,
250+
destination_field: 'GENERAL_LEDGER_ACCOUNT',
251+
import_to_fyle: this.importSettings?.configurations.import_categories || false,
252+
is_custom: false,
253+
source_placeholder: null
254+
}));
255+
256+
this.sageIntacctFields.push({ attribute_type: 'GENERAL_LEDGER_ACCOUNT', display_name: 'General Ledger Account', source_placeholder: '', is_dependent: false });
257+
this.fyleFields.push({ attribute_type: FyleField.CATEGORY, display_name: 'Category', source_placeholder: '', is_dependent: false });
258+
248259
// Handle only mapped fields
249260
this.sageIntacctFields.forEach((sageIntacctField) => {
250261
const fieldData = mappedFieldMap.get(sageIntacctField.attribute_type);

src/app/shared/components/configuration/configuration-import-field/configuration-import-field.component.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ <h5 *ngIf="!isCloneSettingView" class="!tw-text-text-muted tw-text-14-px !tw-fon
7676
<app-svg-icon [isTextColorAllowed]="true" [svgSource]="'arrow-line'" [height]="'10px'" [width]="'100px'" [styleClasses]="'tw-self-center tw-text-border-secondary'"></app-svg-icon>
7777
</div>
7878
<div class="tw-w-28-vw">
79-
<p-dropdown (onChange)="onDropdownChange($event, i)" appendTo="body" [options]="fyleFieldOptions" [placeholder]="'Choose ' + brandingConfig.brandName + ' Expense field'" formControlName="source_field"
80-
optionLabel="display_name" optionValue="attribute_type" [ngClass]="{'selectedItem': expenseField.value.source_field, 'filterDropdown': !expenseField.value.source_field}" [dropdownIcon]="'pi pi-chevron-down ' + brandingConfig.brandId">
79+
<p-dropdown [disabled]="expenseField.value.source_field === 'CATEGORY'" (onChange)="onDropdownChange($event, i)" appendTo="body" [options]="fyleFieldOptions" [placeholder]="'Choose ' + brandingConfig.brandName + ' Expense field'" formControlName="source_field"
80+
optionLabel="display_name" optionValue="attribute_type" [ngClass]="{'selectedItem': expenseField.value.source_field, 'selectedAccItem !tw-text-text-secondary': expenseField.value.source_field === 'CATEGORY', 'filterDropdown': !expenseField.value.source_field}" [dropdownIcon]="'pi pi-chevron-down ' + brandingConfig.brandId">
8181
<ng-template let-option pTemplate="item">
8282
<div [ngClass]="{'custom-option': option.attribute_type === 'custom_field'}" class="tw-align-middle">
8383
<div *ngIf="brandingFeatureConfig.isIconsInsideButtonAllowed && option.attribute_type === 'custom_field'" class="tw-ml-0 tw-mr-6-px ">
@@ -90,7 +90,7 @@ <h5 *ngIf="!isCloneSettingView" class="!tw-text-text-muted tw-text-14-px !tw-fon
9090
<p>
9191
{{ item.display_name }}
9292
</p>
93-
<app-svg-icon [svgSource]="'cross-medium'" [c1SvgSource]="'grv-cross-filled-medium'" (click)="removeFilter(expenseField)" [height]="'18px'" [width]="'18px'" [styleClasses]="'tw-mt-4-px'"></app-svg-icon>
93+
<app-svg-icon *ngIf="expenseField.value.source_field !== 'CATEGORY'" [svgSource]="'cross-medium'" [c1SvgSource]="'grv-cross-filled-medium'" (click)="removeFilter(expenseField)" [height]="'18px'" [width]="'18px'" [styleClasses]="'tw-mt-4-px'"></app-svg-icon>
9494
</ng-template>
9595
</p-dropdown>
9696
<p *ngIf="expenseField.value.source_field && !expenseField.valid && !hasDuplicateOption(expenseField, i, 'source_field')" class="tw-text-alert-toast tw-text-12-px tw-pt-4-px">

0 commit comments

Comments
 (0)