Skip to content

Commit 9c7f344

Browse files
authored
fix: qbd direct export settings onboarding changes and content changes (#1082)
* qbd direct export settings onboarding changes and content changes * fix: qbd direct import settings onboarding changes and content changes (#1083) * qbd direct import settings onboarding changes and content changes * qbd direct advanced settings onboarding changes and content changes (#1084)
1 parent 9640a93 commit 9c7f344

File tree

14 files changed

+141
-58
lines changed

14 files changed

+141
-58
lines changed

src/app/branding/fyle-contents-config.ts

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export const brandingConfig: BrandingConfiguration = config as BrandingConfigura
66
export const fyleContents = {
77
qbd_direct: {
88
landing: {
9-
contentText: 'Import data from QuickBooks Desktop to Fyle and export expenses from Fyle to QuickBooks Desktop',
9+
contentText: 'Import data from QuickBooks Desktop to ' + brandingConfig.brandName + ' and export expenses from ' + brandingConfig.brandName + ' to QuickBooks Desktop',
1010
guideHeaderText: 'Guide to setup your integrations'
1111
},
1212
configuration: {
@@ -24,80 +24,80 @@ export const fyleContents = {
2424
exportSetting: {
2525
stepName: 'Export Settings',
2626
headerText: ' Export Corporate Card Expenses',
27-
contentText: 'In this section, you can configure how and when the expenses from ' + brandingConfig.brandName + ' can be exported to QuickBooks Desktop',
27+
contentText: 'In this section, you can configure how and when the expenses from ' + brandingConfig.brandName + ' need to be exported to QuickBooks Desktop.',
2828
reimbursable: {
2929
reimbursableExpenseLabel: 'Export Reimbursable Expenses',
3030
reimbursableExpenseSubLabel: 'Enable this to export the reimbursable expenses from ' + brandingConfig.brandName + '. If not enabled, any <b>out-of-pocket</b> expenses will not be exported to Quickbooks Desktop.',
3131
reimbursableExpenseTypeLabel: 'How should the expenses be exported?',
3232
reimbursableExpenseTypeSubLabel: 'Choose the type of transaction in QuickBooks Desktop to export your ' + brandingConfig.brandName +' expenses.',
3333
reimbursableExpenseStateLabel: 'At which state should the expenses be ready to export from ' + brandingConfig.brandName + '?',
34-
reimbursableExpenseStateSubLabel: 'You can export expenses either when they are awaiting closure after approval (Processing) or when the payment has been settled (Closed).',
34+
reimbursableExpenseStateSubLabel: 'You can export expenses either when they are awaiting payments after approval (Processing) or when the payment has been settled (Closed).',
3535
reimbursableExpenseDateLabel: 'Set the expense ',
3636
reimbursableExpenseDateSubLabel: 'Expenses will be grouped and posted using the configured date when exporting from ' + brandingConfig.brandName +' to QuickBooks Desktop',
3737
reimbursableExpenseGroupLabel: 'How should the expenses be grouped?',
3838
reimbursableExpenseGroupSubLabel: 'Expenses can either be exported as single line items (Expense) or as a grouped report with multiple line items (Report)',
3939
employeeMappingLabel: 'How are your Employees represented in QuickBooks Desktop?',
40-
employeeMappingSubLabel: 'Select how you represent your employees in QuickBooks Desktop. This would help to export the expenses from ' + brandingConfig.brandName + ' to the correct employee/vendor record in QuickBooks Desktop.',
40+
employeeMappingSubLabel: 'Select how employees are represented in QuickBooks Desktop to ensure expenses from ' + brandingConfig.brandName + ' export to the correct employee/vendor record.',
4141
autoMapEmployeesLabel: 'How should Employees in ' + brandingConfig.brandName + ' be mapped to ',
4242
autoMapEmployeesSubLabel: 'Automatically map the employees in ' + brandingConfig.brandName + ' to their corresponding records in QuickBooks Desktop based on a unique parameter.',
43-
defaultReimbursableAccountPayableLabel: 'To which accounts payable account should the ',
43+
defaultReimbursableAccountPayableLabel: 'Select the Default Credit Account for adding ',
4444
defaultReimbursableAccountPayableSubLabel: 'The integration will post the offset credit entry in '
4545
},
4646
corporateCard: {
4747
creditCardExpenseLabel: 'Export corporate card expenses',
48-
creditCardExpenseSubLabel: 'Enable this to export the non-reimbursable expenses from ' + brandingConfig.brandName + '. If not enabled, any <b>corporate credit card </b> expenses will not be exported to Quickbooks Desktop.',
48+
creditCardExpenseSubLabel: 'Enable this to export the corporate credit card expenses from ' + brandingConfig.brandName + '. If not enabled, any <b>non-reimbursable </b> expenses will not be exported to Quickbooks Desktop.',
4949
creditCardExpenseTypeLabel: 'How should the expenses be exported?',
5050
creditCardExpenseTypeSubLabel: 'Choose the type of transaction in QuickBooks Desktop to export your ' + brandingConfig.brandName +' expenses.',
5151
creditCardExpenseStateLabel: 'At which state should the expenses be ready to export from ' + brandingConfig.brandName + '?',
52-
creditCardExpenseStateSubLabel: 'You could choose to export ccc expenses when they have been approved and are awaiting payment clearance, or simply when they have been paid out.',
52+
creditCardExpenseStateSubLabel: 'You can export expenses either when they are awaiting closure after approval (Approved) or when the expense has been closed (Closed).',
5353
creditCardExpenseDateLabel: 'Set the expense ',
5454
creditCardExpenseDateSubLabel: 'Expenses will be grouped and posted using the configured date when exporting from ' + brandingConfig.brandName +' to QuickBooks Desktop',
5555
creditCardExpenseGroupLabel: 'How should the expenses be grouped?',
5656
creditCardExpenseGroupSubLabel: 'Expenses can either be exported as single line items (Expense) or as a grouped report with multiple line items (Report)',
5757
creditCardExpenseNameinJELabel: 'Name in Journal Entry',
58-
creditCardExpenseNameinJESubLabel: 'You can select either the \'Merchant Name\' or the \'Employee Name\' to appear in the \'Name\' field of your Journal Entries.',
59-
defaultCCCAccountLabel: 'Set Default Credit Card Account as',
60-
defaultCCCAccountSubLabel: 'Post all your company corporate card transactions to a default credit card account.',
61-
defaultCCCAccountPayableLabel: 'To which accounts payable account should the ',
62-
defaultCCCAccountPayableSubLabel: 'The integration will post the offset credit entry in '
58+
creditCardExpenseNameinJESubLabel: 'You can select either the \'Merchant Name\' or the \'Employee Name\' to appear in the \'Name\' field of your journal entries.',
59+
defaultCCCAccountLabel: 'Set a Default Credit Card Account',
60+
defaultCCCAccountSubLabel: 'If there\'s no card-to-card mapping or when an expense lacks a corporate card transaction associated with it, expenses will be posted to the default card configured here.',
61+
defaultCCCAccountPayableLabel: 'Select the Default Credit Account for adding Journal Entry ',
62+
defaultCCCAccountPayableSubLabel: 'This account will be used for the credit line of the '
6363
}
6464
},
6565
importSetting: {
6666
stepName: 'Import Settings',
6767
headerText: '',
6868
contentText: 'In this section, you can choose the fields required to be imported from QuickBooks Desktop to ' + brandingConfig.brandName + '. ',
69-
importCategoriesLabel: 'Import the Chart of Accounts as Categories in ' + brandingConfig.brandName,
70-
importCategoriesSubLabel: 'Imported account will be available as Categories in ' + brandingConfig.brandName + '.',
69+
importCategoriesLabel: 'Import Chart of Accounts as Categories in ' + brandingConfig.brandName,
70+
importCategoriesSubLabel: 'Chart of Accounts in QuickBooks will be imported as Categories in Fyle, available in a dropdown for employees to select when coding expenses.',
7171
importItemsLabel: 'Import Products/Services from QuickBooks Desktop',
7272
importItemsSubLabel: 'Products/services from QuickBooks Desktop will be imported as Categories in ' + brandingConfig.brandName + '.',
73-
importVendorsAsMerchantsLabel: 'Import Vendors from QuickBooks Desktop',
74-
chartOfAccountTypes: 'Select the accounts from QuickBooks Desktop to import as categories in ' + brandingConfig.brandName,
75-
chartOfAccountTypesSubLabel: 'By default expense will be selected. Open the dropdown to select more as per your requirements.'
73+
importVendorsAsMerchantsLabel: 'Import Vendors as Merchants in Fyle',
74+
chartOfAccountTypes: 'Choose the type of accounts to be imported',
75+
chartOfAccountTypesSubLabel: 'By default \'Expense\' type accounts will be imported. Open the dropdown to add or modify selections based on your needs.'
7676
},
7777
advancedSettings: {
7878
stepName: 'Advanced Settings',
7979
contentText: 'In this section, you can customize the integration based on your accounting requirements. ',
8080
automationLabel: 'Automation',
8181
automationSubLabel: 'You can automate the export and sync of your data in this section.',
8282
customizeSectionLabel: 'Customization',
83-
customizeSectionSubLabel: 'In this section, you can customize the data that you\'d like to export from Fyle to QuickBooks Desktop You can choose what data points need to be exported and what shouldn\'t be.',
83+
customizeSectionSubLabel: 'In this section, you can customize the data that you\'d like to export from Fyle to QuickBooks Desktop.',
8484
scheduleAutoExportLabel: 'Schedule automatic export',
8585
scheduleAutoExportSubLabel: 'Set up a schedule to frequently automate the export of expenses from ' + brandingConfig.brandName + ' to QuickBooks Desktop.',
8686
autoExportfrequencyLabel: 'Set up export frequency',
8787
autoExportfrequencySubLabel: 'Set a frequency based on how often you want your expenses in Fyle to be exported to QuickBooks Desktop.',
88-
topLevelMemoStructureLabel: 'Select the top level memo field data for QuickBooks Desktop',
89-
topLevelMemoStructureSubLabel: 'You can customize the <b>data point</b> you would like to export to QuickBooks Desktop\’s <b>top-level memo</b> field while exporting expenses from ' + brandingConfig.brandName + '.',
90-
memoStructureLabel: 'Set the line-item level memo field data for QuickBooks Desktop.',
91-
memoStructureSubLabel: 'You can customize the data set you would like to export to QuickBooks Desktop\’s <b>transaction line-item level memo</b> field while exporting expenses from ' + brandingConfig.brandName + '.',
88+
topLevelMemoStructureLabel: 'Customize the Top-Level Memo Field',
89+
topLevelMemoStructureSubLabel: 'Select the datapoints you\'d like to export to QuickBooks Desktop’s top-level memo field when exporting expenses from Fyle.',
90+
memoStructureLabel: 'Customize the Line-Item Level Memo Field',
91+
memoStructureSubLabel: 'Select the datapoints you\'d like to export to QuickBooks Desktop\’s line-item level memo field when exporting expenses from Fyle.',
9292
previewDescriptionFieldLabel: 'Preview of the Description Field',
9393
otherPreferencesLabel: 'Other preferences',
9494
otherPreferencesSubLabel: 'Based on your preference, you can choose whether you want to create any new records in QuickBooks Desktop from ' + brandingConfig.brandName + '.',
9595
autoCreateMerchantsAsVendorsLabel: 'Auto-create merchants as vendors',
9696
autoCreateMerchantsAsVendorsSubLabel: 'Fyle will auto-create a new vendor in QuickBooks Desktop if a merchant added by an employee does not have a corresponding match in QuickBooks Desktop. ',
97-
skipExportLabel: 'Skip export of specific expenses from ' + brandingConfig.brandName + ' to QuickBooks Desktop',
98-
skipExportSubLabel: 'You could choose to skip expenses from ' + brandingConfig.brandName + ' to QuickBooks Desktop by setting up a conditional rule. ',
99-
autoCreateReimbursableEnitityLabel: 'Auto create reimbursable enitity',
100-
autoCreateReimbursableEnititySubLabel: 'Do you want to create a reimbursable enitity if not present',
97+
skipExportLabel: 'Skip Export of Specific Expenses from Fyle to QuickBooks Desktop',
98+
skipExportSubLabel: 'Set up a conditional rule to selectively skip exporting certain expenses from Fyle to QuickBooks Desktop. ',
99+
autoCreateReimbursableEnitityLabel: 'Auto-create fyle employees as ',
100+
autoCreateReimbursableEnititySubLabel: 'If an employee in Fyle has no corresponding record in QuickBooks Desktop, the integration will automatically create a ',
101101
accountingPeriodLabel: 'Post entries in the current accounting period',
102102
accountingPeriodSubLabel: 'If there are expenses for which the accounting period is closed in QuickBooks Desktop, you can export those to the current month by enabling this option.'
103103
}

src/app/core/models/common/advanced-settings.model.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ export class AdvancedSettingsModel {
8585
merchant: 'Pizza Hut',
8686
report_number: 'C/2021/12/R/1',
8787
spent_on: today.toLocaleDateString(),
88-
expence_key: 'txDdlUFWkahX',
88+
expense_key: 'txDdlUFWkahX',
8989
expense_link: `${environment.fyle_app_url}/app/main/#/enterprise/view_expense/`
9090
};
9191
let memoPreviewText = '';

src/app/core/models/qbd-direct/qbd-direct-configuration/qbd-direct-advanced-settings.model.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export class QbdDirectAdvancedSettingsModel extends AdvancedSettingsModel {
2626
}
2727

2828
static defaultTopMemoOptions(): string[] {
29-
return ["employee_name", "expense_key"];
29+
return ["employee_name", "Expense/Report ID"];
3030
}
3131

3232
static formatMemoStructure(memoStructure: string[], defaultMemoOptions: string[]): string[] {
@@ -58,6 +58,9 @@ export class QbdDirectAdvancedSettingsModel extends AdvancedSettingsModel {
5858

5959
const topMemo: string[] = advancedSettingForm.controls.topMemoStructure.value;
6060

61+
const index = topMemo.indexOf('Expense/Report ID');
62+
topMemo[index] = 'expense_key';
63+
6164
const allSelectedEmails: EmailOption[] = advancedSettingForm.get('email')?.value;
6265

6366
const selectedEmailsEmails = allSelectedEmails?.filter((email: EmailOption) => adminEmails.includes(email));
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
1-
<p>qbd-direct-onboarding-advanced-settings works!</p>
1+
<div class="tw-pb-48-px">
2+
<app-onboarding-steppers [onboardingSteps]="onboardingSteps"></app-onboarding-steppers>
3+
<app-qbd-direct-advanced-settings></app-qbd-direct-advanced-settings>
4+
</div>
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,31 @@
1-
import { Component } from '@angular/core';
1+
import { CommonModule } from '@angular/common';
2+
import { Component, OnInit } from '@angular/core';
3+
import { QbdDirectSharedModule } from '../../qbd-direct-shared/qbd-direct-shared.module';
4+
import { SharedModule } from 'src/app/shared/shared.module';
5+
import { QbdDirectAdvancedSettingsComponent } from "../../qbd-direct-shared/qbd-direct-advanced-settings/qbd-direct-advanced-settings.component";
6+
import { QbdDirectOnboardingModel } from 'src/app/core/models/qbd-direct/qbd-direct-configuration/qbd-direct-onboarding.model';
7+
import { brandingContent } from 'src/app/branding/branding-config';
8+
import { OnboardingStepper } from 'src/app/core/models/misc/onboarding-stepper.model';
9+
import { WorkspaceService } from 'src/app/core/services/common/workspace.service';
210

311
@Component({
412
selector: 'app-qbd-direct-onboarding-advanced-settings',
513
standalone: true,
6-
imports: [],
14+
imports: [CommonModule, QbdDirectSharedModule, SharedModule, QbdDirectAdvancedSettingsComponent],
715
templateUrl: './qbd-direct-onboarding-advanced-settings.component.html',
816
styleUrl: './qbd-direct-onboarding-advanced-settings.component.scss'
917
})
10-
export class QbdDirectOnboardingAdvancedSettingsComponent {
18+
export class QbdDirectOnboardingAdvancedSettingsComponent implements OnInit {
19+
20+
brandingContent = brandingContent.configuration.advancedSettings;
21+
22+
onboardingSteps: OnboardingStepper[] = new QbdDirectOnboardingModel().getOnboardingSteps(this.brandingContent.stepName, this.workspaceService.getOnboardingState());
23+
24+
constructor(
25+
private workspaceService: WorkspaceService
26+
) { }
27+
28+
ngOnInit(): void {
29+
}
1130

1231
}
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
1-
<p>qbd-direct-onboarding-export-settings works!</p>
1+
<div class="tw-pb-48-px">
2+
<app-onboarding-steppers [onboardingSteps]="onboardingSteps"></app-onboarding-steppers>
3+
<app-qbd-direct-export-settings></app-qbd-direct-export-settings>
4+
</div>
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,31 @@
1-
import { Component } from '@angular/core';
1+
import { Component, OnInit } from '@angular/core';
2+
import { QbdDirectExportSettingsComponent } from "../../qbd-direct-shared/qbd-direct-export-settings/qbd-direct-export-settings.component";
3+
import { SharedModule } from 'src/app/shared/shared.module';
4+
import { CommonModule } from '@angular/common';
5+
import { QbdOnboardingModule } from 'src/app/integrations/qbd/qbd-onboarding/qbd-onboarding.module';
6+
import { QbdDirectOnboardingModel } from 'src/app/core/models/qbd-direct/qbd-direct-configuration/qbd-direct-onboarding.model';
7+
import { brandingContent } from 'src/app/branding/branding-config';
8+
import { OnboardingStepper } from 'src/app/core/models/misc/onboarding-stepper.model';
9+
import { WorkspaceService } from 'src/app/core/services/common/workspace.service';
210

311
@Component({
412
selector: 'app-qbd-direct-onboarding-export-settings',
513
standalone: true,
6-
imports: [],
14+
imports: [QbdDirectExportSettingsComponent, SharedModule, CommonModule],
715
templateUrl: './qbd-direct-onboarding-export-settings.component.html',
816
styleUrl: './qbd-direct-onboarding-export-settings.component.scss'
917
})
10-
export class QbdDirectOnboardingExportSettingsComponent {
18+
export class QbdDirectOnboardingExportSettingsComponent implements OnInit {
19+
20+
brandingContent = brandingContent.configuration.exportSetting;
21+
22+
onboardingSteps: OnboardingStepper[] = new QbdDirectOnboardingModel().getOnboardingSteps(this.brandingContent.stepName, this.workspaceService.getOnboardingState());
23+
24+
constructor(
25+
private workspaceService: WorkspaceService
26+
) { }
27+
28+
ngOnInit(): void {
29+
}
1130

1231
}
Original file line numberDiff line numberDiff line change
@@ -1 +1,8 @@
1-
<p>qbd-direct-onboarding-import-settings works!</p>
1+
<div class="tw-pb-48-px">
2+
<div>
3+
<app-onboarding-steppers [onboardingSteps]="onboardingSteps"></app-onboarding-steppers>
4+
</div>
5+
<div>
6+
<app-qbd-direct-import-settings></app-qbd-direct-import-settings>
7+
</div>
8+
</div>

0 commit comments

Comments
 (0)