@@ -90,7 +90,7 @@
+
diff --git a/src/app/shared/components/configuration/configuration-import-field/configuration-import-field.component.ts b/src/app/shared/components/configuration/configuration-import-field/configuration-import-field.component.ts
index 0a9c727e1..fee783dcf 100644
--- a/src/app/shared/components/configuration/configuration-import-field/configuration-import-field.component.ts
+++ b/src/app/shared/components/configuration/configuration-import-field/configuration-import-field.component.ts
@@ -3,7 +3,7 @@ import { AbstractControl, FormArray, FormGroup } from '@angular/forms';
import { brandingConfig, brandingFeatureConfig } from 'src/app/branding/branding-config';
import { ImportDefaultField, ImportSettingMappingRow, ImportSettingsCustomFieldRow, ImportSettingsModel } from 'src/app/core/models/common/import-settings.model';
import { FyleField, IntegrationField } from 'src/app/core/models/db/mapping.model';
-import { AppName, MappingSourceField } from 'src/app/core/models/enum/enum.model';
+import { AppName, MappingSourceField, XeroFyleField } from 'src/app/core/models/enum/enum.model';
import { Sage300DefaultFields, Sage300DependentImportFields, Sage300ImportSettingModel } from 'src/app/core/models/sage300/sage300-configuration/sage300-import-settings.model';
import { MappingSetting } from 'src/app/core/models/intacct/intacct-configuration/import-settings.model';
import { HelperService } from 'src/app/core/services/common/helper.service';
@@ -50,12 +50,16 @@ export class ConfigurationImportFieldComponent implements OnInit {
AppName = AppName;
+ isXeroProjectMapped: boolean;
+
readonly brandingConfig = brandingConfig;
readonly brandingFeatureConfig = brandingFeatureConfig;
readonly isAsterikAllowed: boolean = brandingFeatureConfig.isAsterikAllowed;
+ @Output() xeroProjectMapping:EventEmitter = new EventEmitter();
+
constructor(
public windowService: WindowService
) { }
@@ -105,6 +109,23 @@ export class ConfigurationImportFieldComponent implements OnInit {
} else {
(this.form.get('expenseFields') as FormArray).at(index)?.get('import_to_fyle')?.setValue(true);
}
+
+ if (selectedValue === MappingSourceField.PROJECT && (this.form.get('expenseFields') as FormArray).at(index)?.get('source_field')?.value !== XeroFyleField.CUSTOMER && this.appName === AppName.XERO) {
+ this.isXeroProjectMapped = true;
+ this.xeroProjectMapping.emit(this.isXeroProjectMapped);
+ } else {
+ this.isXeroProjectMapped = false;
+ this.xeroProjectMapping.emit(this.isXeroProjectMapped);
+ }
+ }
+
+ getOptions(expenseField: AbstractControl): FyleField[]{
+ if (expenseField.value.destination_field === 'CUSTOMER' && this.appName === AppName.XERO && !expenseField.value.import_to_fyle) {
+ return this.filteredFyleFields;
+ } else if (expenseField.value.source_field === 'CATEGORY') {
+ return this.fyleFieldOptions;
+ }
+ return this.fyleFieldOptions;
}
removeFilter(expenseField: AbstractControl) {
@@ -112,6 +133,8 @@ export class ConfigurationImportFieldComponent implements OnInit {
(expenseField as FormGroup).controls.import_to_fyle.patchValue(false);
(expenseField as FormGroup).controls.import_to_fyle.enable();
event?.stopPropagation();
+ this.isXeroProjectMapped = false;
+ this.xeroProjectMapping.emit(this.isXeroProjectMapped);
}
onShowWarningForDependentFields(event: any, formGroup: AbstractControl): void {
@@ -132,7 +155,7 @@ export class ConfigurationImportFieldComponent implements OnInit {
}
ngOnInit(): void {
- this.filteredFyleFields = this.fyleFieldOptions.filter(option => option.attribute_type !== 'CATEGORY');
+ this.filteredFyleFields = this.appName !== AppName.XERO ? this.fyleFieldOptions.filter(option => option.attribute_type !== 'CATEGORY') : [{ attribute_type: 'DISABLED_XERO_SOURCE_FIELD', display_name: 'Project', is_dependent: false }];
}
}
diff --git a/src/app/shared/components/configuration/configuration-toggle-field/configuration-toggle-field.component.html b/src/app/shared/components/configuration/configuration-toggle-field/configuration-toggle-field.component.html
index 5cbb934a1..1c087c0ed 100644
--- a/src/app/shared/components/configuration/configuration-toggle-field/configuration-toggle-field.component.html
+++ b/src/app/shared/components/configuration/configuration-toggle-field/configuration-toggle-field.component.html
@@ -22,6 +22,6 @@