Skip to content

Commit

Permalink
poc for date grouping
Browse files Browse the repository at this point in the history
  • Loading branch information
DhaaraniCIT committed Feb 5, 2025
1 parent 35a3acd commit 7110f3a
Show file tree
Hide file tree
Showing 2 changed files with 84 additions and 14 deletions.
73 changes: 73 additions & 0 deletions src/app/core/models/common/export-settings.model.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { brandingContent } from "src/app/branding/branding-config";
import { DefaultDestinationAttribute, DestinationAttribute } from "../db/destination-attribute.model";
import { DestinationOptionKey, ExpenseGroupingFieldOption, ExportDateType, IntacctCorporateCreditCardExpensesObject, IntacctExportSettingDestinationOptionKey, IntacctReimbursableExpensesObject, NetsuiteExportSettingDestinationOptionKey, QboExportSettingDestinationOptionKey, SplitExpenseGrouping } from "../enum/enum.model";
import { SelectFormOption } from "./select-form-option.model";
Expand Down Expand Up @@ -87,6 +88,78 @@ export class ExportSettingModel {

}

static getCreditCardExpenseGroupingDateOptions(): SelectFormOption[] {
return [
{
label: 'Card Transaction Post Date',
value: ExportDateType.POSTED_AT
},
{
label: 'Spend date',
value: ExportDateType.SPENT_AT
},
{
label: 'Last Spend date',
value: ExportDateType.LAST_SPENT_AT
},
{
label: brandingContent.common.currentDate,
value: ExportDateType.CURRENT_DATE
}
];
}

static getReimbursableExpenseGroupingDateOption(): SelectFormOption[] {
return [
{
label: brandingContent.common.currentDate,
value: ExportDateType.CURRENT_DATE
},
{
label: 'Verification date',
value: ExportDateType.VERIFIED_AT
},
{
label: 'Spend date',
value: ExportDateType.SPENT_AT
},
{
label: 'Approval date',
value: ExportDateType.APPROVED_AT
},
{
label: 'Last Spend date',
value: ExportDateType.LAST_SPENT_AT
}
];
}

static dateGrouping(exportType:string, expenseGrouping: string, showApprovedDate: boolean, showVerificationDate: boolean): SelectFormOption[] {

Check failure on line 138 in src/app/core/models/common/export-settings.model.ts

View workflow job for this annotation

GitHub Actions / lint

Trailing spaces not allowed
const excludedDate = expenseGrouping === 'expense'

Check failure on line 139 in src/app/core/models/common/export-settings.model.ts

View workflow job for this annotation

GitHub Actions / lint

Trailing spaces not allowed
? ExportDateType.LAST_SPENT_AT

Check failure on line 140 in src/app/core/models/common/export-settings.model.ts

View workflow job for this annotation

GitHub Actions / lint

Trailing spaces not allowed
: ExportDateType.SPENT_AT;

Check failure on line 142 in src/app/core/models/common/export-settings.model.ts

View workflow job for this annotation

GitHub Actions / lint

Trailing spaces not allowed
if (exportType === 'CCC') {
return this.getCreditCardExpenseGroupingDateOptions().filter(option => option.value !== excludedDate);
}

let dateOptions = this.getReimbursableExpenseGroupingDateOption();

Check failure on line 147 in src/app/core/models/common/export-settings.model.ts

View workflow job for this annotation

GitHub Actions / lint

'dateOptions' is never reassigned. Use 'const' instead
let filterOptions: ExportDateType[] = [];

Check failure on line 148 in src/app/core/models/common/export-settings.model.ts

View workflow job for this annotation

GitHub Actions / lint

'filterOptions' is never reassigned. Use 'const' instead

if (showApprovedDate) {
filterOptions.push(ExportDateType.VERIFIED_AT);
} else if (showVerificationDate) {
filterOptions.push(ExportDateType.APPROVED_AT);
}

filterOptions.push(excludedDate);

Check failure on line 157 in src/app/core/models/common/export-settings.model.ts

View workflow job for this annotation

GitHub Actions / lint

Trailing spaces not allowed
return dateOptions.filter((item): item is { label: string; value: ExportDateType } =>
item.value !== null && !filterOptions.includes(item.value as ExportDateType))

Check failure on line 159 in src/app/core/models/common/export-settings.model.ts

View workflow job for this annotation

GitHub Actions / lint

Missing semicolon

}

static filterDateOptions(exportDateType: ExportDateType, dateOptions: SelectFormOption[]){
const dateOptionToRemove = exportDateType;
const filteredOptions = dateOptions.filter(option => option.value !== dateOptionToRemove);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -312,17 +312,12 @@ 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();

this.cccExpenseGroupingDateOptions = ExportSettingModel.dateGrouping('CCC', this.exportSettingForm.controls.creditCardExportGroup.value, false, false);
} else {
this.cccExpenseGroupingDateOptions = this.reimbursableExpenseGroupingDateOptions.concat();
this.cccExpenseGroupingDateOptions = ExportSettingModel.dateGrouping('rem', this.exportSettingForm.controls.creditCardExportGroup.value, false, false);
this.helperService.enableFormField(this.exportSettingForm, 'creditCardExportGroup');
}
const allowedValues = this.cccExpenseGroupingDateOptions.map(option => option.value);
Expand All @@ -346,19 +341,21 @@ export class QboExportSettingsComponent implements OnInit {
private setupCustomDateOptionWatchers(): void {

this.exportSettingForm.controls.reimbursableExportGroup?.valueChanges.subscribe((reimbursableExportGroup) => {
this.reimbursableExpenseGroupingDateOptions = QBOExportSettingModel.getReimbursableExpenseGroupingDateOptions();
this.reimbursableExpenseGroupingDateOptions = ExportSettingModel.constructGroupingDateOptions(reimbursableExportGroup, this.reimbursableExpenseGroupingDateOptions);
// this.reimbursableExpenseGroupingDateOptions = QBOExportSettingModel.getReimbursableExpenseGroupingDateOptions();

Check failure on line 344 in src/app/integrations/qbo/qbo-shared/qbo-export-settings/qbo-export-settings.component.ts

View workflow job for this annotation

GitHub Actions / lint

Comments should not begin with a lowercase character
// this.reimbursableExpenseGroupingDateOptions = ExportSettingModel.constructGroupingDateOptions(reimbursableExportGroup, this.reimbursableExpenseGroupingDateOptions);

Check failure on line 345 in src/app/integrations/qbo/qbo-shared/qbo-export-settings/qbo-export-settings.component.ts

View workflow job for this annotation

GitHub Actions / lint

Comments should not begin with a lowercase character
this.reimbursableExpenseGroupingDateOptions = ExportSettingModel.dateGrouping('rem', this.exportSettingForm.controls.reimbursableExportGroup.value, true, false)
});

this.exportSettingForm.controls.creditCardExportType?.valueChanges.subscribe(creditCardExportType => {
this.updateCCCExpenseGroupingDateOptions(this.exportSettingForm.get('creditCardExportType')?.value);
this.updateCCCExpenseGroupingDateOptions(creditCardExportType);
});


this.exportSettingForm.controls.creditCardExportGroup?.valueChanges.subscribe((creditCardExportGroup) => {
if (brandingConfig.brandId==='fyle' && this.exportSettingForm.get('creditCardExportType')?.value && this.exportSettingForm.get('creditCardExportType')?.value !== QBOCorporateCreditCardExpensesObject.CREDIT_CARD_PURCHASE && this.exportSettingForm.get('creditCardExportType')?.value !== QBOCorporateCreditCardExpensesObject.DEBIT_CARD_EXPENSE) {
this.cccExpenseGroupingDateOptions = QBOExportSettingModel.getReimbursableExpenseGroupingDateOptions();
this.cccExpenseGroupingDateOptions = ExportSettingModel.constructGroupingDateOptions(creditCardExportGroup, this.cccExpenseGroupingDateOptions);
if (this.exportSettingForm.get('creditCardExportType')?.value && this.exportSettingForm.get('creditCardExportType')?.value !== QBOCorporateCreditCardExpensesObject.CREDIT_CARD_PURCHASE && this.exportSettingForm.get('creditCardExportType')?.value !== QBOCorporateCreditCardExpensesObject.DEBIT_CARD_EXPENSE) {
// // this.cccExpenseGroupingDateOptions = QBOExportSettingModel.getReimbursableExpenseGroupingDateOptions();
// // this.cccExpenseGroupingDateOptions = ExportSettingModel.constructGroupingDateOptions(creditCardExportGroup, this.cccExpenseGroupingDateOptions);
this.cccExpenseGroupingDateOptions = ExportSettingModel.dateGrouping('rem', creditCardExportGroup, true, false)
}
});
}
Expand Down

0 comments on commit 7110f3a

Please sign in to comment.