From 7476ce495df7189b05569eece8a5f296d1bef032 Mon Sep 17 00:00:00 2001 From: Viswas Haridas <37623357+JustARatherRidiculouslyLongUsername@users.noreply.github.com> Date: Mon, 13 Jan 2025 14:22:58 +0530 Subject: [PATCH] fix: Add an "Export Date" option to QBO CCP date options (#1148) (cherry picked from commit c80e1ba408de0d3dedca5a29a674b944998e5abe) --- .../qbo-clone-settings.component.ts | 12 +++++++++++- .../qbo-export-settings.component.ts | 12 +++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/app/integrations/qbo/qbo-onboarding/qbo-clone-settings/qbo-clone-settings.component.ts b/src/app/integrations/qbo/qbo-onboarding/qbo-clone-settings/qbo-clone-settings.component.ts index fb074554d..4837998e1 100644 --- a/src/app/integrations/qbo/qbo-onboarding/qbo-clone-settings/qbo-clone-settings.component.ts +++ b/src/app/integrations/qbo/qbo-onboarding/qbo-clone-settings/qbo-clone-settings.component.ts @@ -9,7 +9,7 @@ import { ExpenseField, ImportCodeFieldConfigType, ImportSettingsModel } from 'sr import { SelectFormOption } from 'src/app/core/models/common/select-form-option.model'; import { DefaultDestinationAttribute, DestinationAttribute } from 'src/app/core/models/db/destination-attribute.model'; import { FyleField, IntegrationField } from 'src/app/core/models/db/mapping.model'; -import { AppName, AutoMapEmployeeOptions, ConfigurationCta, ConfigurationWarningEvent, DefaultImportFields, EmployeeFieldMapping, ExpenseGroupingFieldOption, InputType, NameInJournalEntry, QBOCorporateCreditCardExpensesObject, QBOField, QBOReimbursableExpensesObject, ToastSeverity } from 'src/app/core/models/enum/enum.model'; +import { AppName, AutoMapEmployeeOptions, ConfigurationCta, ConfigurationWarningEvent, DefaultImportFields, EmployeeFieldMapping, ExpenseGroupingFieldOption, ExportDateType, InputType, NameInJournalEntry, QBOCorporateCreditCardExpensesObject, QBOField, QBOReimbursableExpensesObject, ToastSeverity } from 'src/app/core/models/enum/enum.model'; import { ConfigurationWarningOut } from 'src/app/core/models/misc/configuration-warning.model'; import { OnboardingStepper } from 'src/app/core/models/misc/onboarding-stepper.model'; import { Org } from 'src/app/core/models/org/org.model'; @@ -324,6 +324,12 @@ export class QboCloneSettingsComponent implements OnInit { private updateCCCExpenseGroupingDateOptions(selectedValue: QBOCorporateCreditCardExpensesObject): void { if ([QBOCorporateCreditCardExpensesObject.CREDIT_CARD_PURCHASE, QBOCorporateCreditCardExpensesObject.DEBIT_CARD_EXPENSE].includes(selectedValue)) { this.cccExpenseGroupingDateOptions = QBOExportSettingModel.getAdditionalCreditCardExpenseGroupingDateOptions(); + if (selectedValue === QBOCorporateCreditCardExpensesObject.CREDIT_CARD_PURCHASE) { + this.cccExpenseGroupingDateOptions.push({ + label: brandingContent.common.currentDate, + value: ExportDateType.CURRENT_DATE + }); + } this.exportSettingForm.controls.creditCardExportGroup.setValue(ExpenseGroupingFieldOption.EXPENSE_ID); this.exportSettingForm.controls.creditCardExportGroup.disable(); } else { @@ -331,6 +337,10 @@ export class QboCloneSettingsComponent implements OnInit { this.helperService.clearValidatorAndResetValue(this.exportSettingForm, 'creditCardExportGroup'); this.helperService.enableFormField(this.exportSettingForm, 'creditCardExportGroup'); } + const allowedValues = this.cccExpenseGroupingDateOptions.map(option => option.value); + if (!allowedValues.includes(this.exportSettingForm.get('creditCardExportDate')?.value)) { + this.exportSettingForm.get('creditCardExportDate')?.setValue(null); + } } private initializeCustomFieldForm(shouldShowDialog: boolean) { diff --git a/src/app/integrations/qbo/qbo-shared/qbo-export-settings/qbo-export-settings.component.ts b/src/app/integrations/qbo/qbo-shared/qbo-export-settings/qbo-export-settings.component.ts index 01635b008..85755e38e 100644 --- a/src/app/integrations/qbo/qbo-shared/qbo-export-settings/qbo-export-settings.component.ts +++ b/src/app/integrations/qbo/qbo-shared/qbo-export-settings/qbo-export-settings.component.ts @@ -6,7 +6,7 @@ import { brandingConfig, brandingContent, brandingFeatureConfig, brandingKbArtic import { ExportSettingModel, ExportSettingOptionSearch } from 'src/app/core/models/common/export-settings.model'; import { SelectFormOption } from 'src/app/core/models/common/select-form-option.model'; import { DefaultDestinationAttribute, DestinationAttribute, PaginatedDestinationAttribute } from 'src/app/core/models/db/destination-attribute.model'; -import { AppName, ConfigurationCta, ConfigurationWarningEvent, EmployeeFieldMapping, ExpenseGroupingFieldOption, FyleField, QBOCorporateCreditCardExpensesObject, QBOOnboardingState, QBOReimbursableExpensesObject, QboExportSettingDestinationOptionKey, ToastSeverity } from 'src/app/core/models/enum/enum.model'; +import { AppName, ConfigurationCta, ConfigurationWarningEvent, EmployeeFieldMapping, ExpenseGroupingFieldOption, ExportDateType, FyleField, QBOCorporateCreditCardExpensesObject, QBOOnboardingState, QBOReimbursableExpensesObject, QboExportSettingDestinationOptionKey, ToastSeverity } from 'src/app/core/models/enum/enum.model'; import { ConfigurationWarningOut } from 'src/app/core/models/misc/configuration-warning.model'; import { QBOExportSettingGet, QBOExportSettingModel } from 'src/app/core/models/qbo/qbo-configuration/qbo-export-setting.model'; import { HelperService } from 'src/app/core/services/common/helper.service'; @@ -315,12 +315,22 @@ export class QboExportSettingsComponent implements OnInit { private updateCCCExpenseGroupingDateOptions(selectedValue: QBOCorporateCreditCardExpensesObject): void { if ([QBOCorporateCreditCardExpensesObject.CREDIT_CARD_PURCHASE, QBOCorporateCreditCardExpensesObject.DEBIT_CARD_EXPENSE].includes(selectedValue)) { this.cccExpenseGroupingDateOptions = QBOExportSettingModel.getAdditionalCreditCardExpenseGroupingDateOptions(); + if (selectedValue === QBOCorporateCreditCardExpensesObject.CREDIT_CARD_PURCHASE) { + this.cccExpenseGroupingDateOptions.push({ + label: brandingContent.common.currentDate, + value: ExportDateType.CURRENT_DATE + }); + } this.exportSettingForm.controls.creditCardExportGroup.setValue(ExpenseGroupingFieldOption.EXPENSE_ID); this.exportSettingForm.controls.creditCardExportGroup.disable(); } else { this.cccExpenseGroupingDateOptions = this.reimbursableExpenseGroupingDateOptions.concat(); this.helperService.enableFormField(this.exportSettingForm, 'creditCardExportGroup'); } + const allowedValues = this.cccExpenseGroupingDateOptions.map(option => option.value); + if (!allowedValues.includes(this.exportSettingForm.get('creditCardExportDate')?.value)) { + this.exportSettingForm.get('creditCardExportDate')?.setValue(null); + } } private setupCustomWatchers(): void {