Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -469,6 +469,7 @@
"Yema",
"Zenefit",
"Zenefits",
"Zoho",
"Zipaligning",
"Zürcher",
"aaroon",
Expand Down
1 change: 1 addition & 0 deletions knip.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
"tests/perf-test/**",
"web/snippets/gib.js",
"src/libs/actions/connections/FinancialForce.ts",
"src/libs/actions/connections/ZohoBooks.ts",
"src/setup/telemetry/noopExpoUpdates.ts"
],
"eslint": {
Expand Down
61 changes: 61 additions & 0 deletions src/CONST/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4023,6 +4023,63 @@ const CONST = {
EMPLOYEE: 'employee',
},

ZOHO_BOOKS_CONFIG: {
ORGANIZATION_ID: 'organizationID',
ENABLE_NEW_CATEGORIES: 'enableNewCategories',
SYNC_TAX_RATES: 'syncTaxRates',
EXPORTER: 'exporter',
EXPORT_DATE: 'exportDate',
REIMBURSABLE: 'reimbursable',
NON_REIMBURSABLE: 'nonReimbursable',
CREDIT_CARD_ACCOUNT_ID: 'creditCardAccountID',
EXPORT_TO_MULTIPLE_ACCOUNTS: 'exportToMultipleAccounts',
DEFAULT_VENDORID: 'defaultVendorID',
TRAVEL_BILLING_PAYABLE_ACCOUNT_ID: 'travelInvoicingPayableAccountID',
ACCOUNTING_METHOD: 'accountingMethod',
AUTO_SYNC: 'autoSync',
SYNC_REIMBURSED_REPORTS: 'syncReimbursedReports',
BILL_PAYMENT_ACCOUNT_ID: 'billPaymentAccountID',
SYNC_EXPENSIFY_CARD_SETTLEMENTS: 'syncExpensifyCardSettlements',
SETTLEMENTS_BANK_ACCOUNT_ID: 'settlementsBankAccountID',
SYNC_TRAVEL_BILLING_SETTLEMENTS: 'syncTravelInvoicingSettlements',
TRAVEL_BILLING_SETTLEMENTS_BANK_ACCOUNT_ID: 'travelInvoicingSettlementsBankAccountID',
FIELD_MAPPING_PREFIX: 'fieldMapping_',
CARD_PROGRAM_ACCOUNT_PREFIX: 'cardProgramAccount_',
},

ZOHO_BOOKS_MAPPING_VALUE: {
NONE: 'NONE',
TAG: 'TAG',
},

ZOHO_BOOKS_EXPORT_REIMBURSABLE: {
VENDOR_BILL: 'VENDOR_BILL',
},

ZOHO_BOOKS_EXPORT_NON_REIMBURSABLE: {
EXPENSE: 'EXPENSE',
},
Comment thread
nkdengineer marked this conversation as resolved.

ZOHO_BOOKS_EXPORT_DATE: {
LAST_EXPENSE: 'LAST_EXPENSE',
REPORT_EXPORTED: 'REPORT_EXPORTED',
REPORT_SUBMITTED: 'REPORT_SUBMITTED',
},

// Zoho Books accounts have one account_type. These are the lowercase values the API returns.
ZOHO_BOOKS_ACCOUNT_TYPE: {
BANK: 'bank',
CREDIT_CARD: 'credit_card',
EXPENSE: 'expense',
COST_OF_GOODS_SOLD: 'cost_of_goods_sold',
OTHER_EXPENSE: 'other_expense',
},

ZOHO_BOOKS_VENDOR_TYPE: {
VENDOR: 'vendor',
CUSTOMER: 'customer',
},
Comment thread
nkdengineer marked this conversation as resolved.

BUSINESS_CENTRAL_CONFIG: {
COMPANY_ID: 'companyID',
ENABLE_NEW_CATEGORIES: 'enableNewCategories',
Expand Down Expand Up @@ -4856,6 +4913,7 @@ const CONST = {
RILLET: 'rillet',
DUALENTRY: 'dualEntry',
CAMPFIRE: 'campfire',
ZOHO_BOOKS: 'zohoBooks',
BUSINESS_CENTRAL: 'businessCentral',
GUSTO: 'gusto',
ZENEFITS: 'zenefits',
Expand All @@ -4876,6 +4934,7 @@ const CONST = {
RILLET: 'rillet',
DUALENTRY: 'dualentry',
CAMPFIRE: 'campfire',
ZOHO_BOOKS: 'zoho-books',
BUSINESS_CENTRAL: 'business-central',
GUSTO: 'gusto',
ZENEFITS: 'zenefits',
Expand All @@ -4892,6 +4951,7 @@ const CONST = {
rillet: 'Rillet',
dualEntry: 'DualEntry',
campfire: 'Campfire',
zohoBooks: 'Zoho Books',
businessCentral: 'Dynamics 365 Business Central',
gusto: 'Gusto',
billCom: 'Bill.com',
Expand Down Expand Up @@ -5055,6 +5115,7 @@ const CONST = {
CAMPFIRE_SYNC_PAYMENTS: 'campfireSyncPayments',
CAMPFIRE_SYNC_CARD_SETTLEMENTS: 'campfireSyncCardSettlements',
CAMPFIRE_SYNC_TRAVEL_SETTLEMENTS: 'campfireSyncTravelSettlements',
ZOHO_BOOKS_SYNC_CONNECTION: 'zohoBooksSyncConnection',
BUSINESS_CENTRAL_SYNC_TITLE: 'businessCentralSyncTitle',
BUSINESS_CENTRAL_SYNC_CONNECTION: 'businessCentralSyncConnection',
BUSINESS_CENTRAL_SYNC_IMPORT_DATA: 'businessCentralSyncImportData',
Expand Down
2 changes: 2 additions & 0 deletions src/components/Icon/chunks/expensify-icons.chunk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@ import Uber from '@assets/images/integrationicons/uber.svg';
import XeroCircle from '@assets/images/integrationicons/xero-icon-circle.svg';
import XeroSquare from '@assets/images/integrationicons/xero-icon-square.svg';
import ZenefitsSquare from '@assets/images/integrationicons/zenefits-icon-square.svg';
import ZohoBooksSquare from '@assets/images/integrationicons/zoho-books-icon-square.svg';
import InvoiceBookmark from '@assets/images/invoice-bookmark.svg';
import InvoiceGeneric from '@assets/images/invoice-generic.svg';
import Invoice from '@assets/images/invoice.svg';
Expand Down Expand Up @@ -609,6 +610,7 @@ const Expensicons = {
ApplePayMark,
Contactless,
CampfireSquare,
ZohoBooksSquare,
};

// Create the ExpensifyIcons object from the imported Expensicons
Expand Down
5 changes: 5 additions & 0 deletions src/languages/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7318,6 +7318,8 @@ Der Control-Tarif beginnt bei 9 $ pro aktivem Mitglied und Monat.`,
return 'DualEntry';
case CONST.POLICY.CONNECTIONS.NAME.CAMPFIRE:
return 'Campfire';
case CONST.POLICY.CONNECTIONS.NAME.ZOHO_BOOKS:
return 'Zoho Books';
case CONST.POLICY.CONNECTIONS.NAME.BUSINESS_CENTRAL:
return 'Dynamics 365 Business Central';
default: {
Expand Down Expand Up @@ -7545,6 +7547,8 @@ Der Control-Tarif beginnt bei 9 $ pro aktivem Mitglied und Monat.`,
return 'Campfire-Daten werden synchronisiert';
case 'campfireSyncConnection':
return 'Verbindung zu Campfire wird initialisiert';
case 'zohoBooksSyncConnection':
return 'Verbindung zu Zoho Books wird initialisiert';
case 'campfireSyncImportData':
return 'Daten werden geladen';
case 'campfireSyncPayments':
Expand Down Expand Up @@ -7602,6 +7606,7 @@ Der Control-Tarif beginnt bei 9 $ pro aktivem Mitglied und Monat.`,
syncTravelInvoicingSettlementsNoAccountTooltip: 'Zum Aktivieren legen Sie ein Konto für Ihre Exporte fest.',
syncTravelInvoicingSettlementsNoAutoSyncTooltip: 'Zum Entsperren automatische Synchronisierung aktivieren.',
campfire: 'Campfire',
zohoBooks: 'Zoho Books',
continuousReconciliationFeedSelection:
'<muted-text-label>Die fortlaufende Abstimmung wird pro Kartenfeed konfiguriert. Wählen Sie einen Feed aus, um zu ändern, welchen Sie konfigurieren.</muted-text-label>',
businessCentral: 'Dynamics 365 Business Central',
Expand Down
5 changes: 5 additions & 0 deletions src/languages/el.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7448,6 +7448,8 @@ _Για πιο αναλυτικές οδηγίες, [επισκεφθείτε τ
return 'DualEntry';
case CONST.POLICY.CONNECTIONS.NAME.CAMPFIRE:
return 'Campfire';
case CONST.POLICY.CONNECTIONS.NAME.ZOHO_BOOKS:
return 'Zoho Books';
case CONST.POLICY.CONNECTIONS.NAME.BUSINESS_CENTRAL:
return 'Dynamics 365 Business Central';
default: {
Expand Down Expand Up @@ -7676,6 +7678,8 @@ _Για πιο αναλυτικές οδηγίες, [επισκεφθείτε τ
return 'Γίνεται συγχρονισμός δεδομένων Campfire';
case 'campfireSyncConnection':
return 'Γίνεται αρχικοποίηση σύνδεσης με το Campfire';
case 'zohoBooksSyncConnection':
return 'Γίνεται αρχικοποίηση σύνδεσης με το Zoho Books';
case 'campfireSyncImportData':
return 'Φόρτωση δεδομένων';
case 'campfireSyncPayments':
Expand Down Expand Up @@ -7733,6 +7737,7 @@ _Για πιο αναλυτικές οδηγίες, [επισκεφθείτε τ
syncTravelInvoicingSettlementsNoAccountTooltip: 'Για να το ενεργοποιήσετε, ορίστε έναν λογαριασμό για τις εξαγωγές σας.',
syncTravelInvoicingSettlementsNoAutoSyncTooltip: 'Για να το ξεκλειδώσετε, ενεργοποιήστε τον αυτόματο συγχρονισμό.',
campfire: 'Campfire',
zohoBooks: 'Zoho Books',
continuousReconciliationFeedSelection:
'<muted-text-label>Η συνεχής συμφωνία είναι ρυθμισμένη ανά ροή καρτών. Επιλέξτε μια ροή για να αλλάξετε ποια ρυθμίζετε.</muted-text-label>',
businessCentral: 'Dynamics 365 Business Central',
Expand Down
5 changes: 5 additions & 0 deletions src/languages/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7641,6 +7641,7 @@ const translations = {
rillet: 'Rillet',
dualEntry: 'DualEntry',
campfire: 'Campfire',
zohoBooks: 'Zoho Books',
businessCentral: 'Dynamics 365 Business Central',
sap: 'SAP',
oracle: 'Oracle',
Expand All @@ -7665,6 +7666,8 @@ const translations = {
return 'DualEntry';
case CONST.POLICY.CONNECTIONS.NAME.CAMPFIRE:
return 'Campfire';
case CONST.POLICY.CONNECTIONS.NAME.ZOHO_BOOKS:
return 'Zoho Books';
case CONST.POLICY.CONNECTIONS.NAME.BUSINESS_CENTRAL:
return 'Dynamics 365 Business Central';
default: {
Expand Down Expand Up @@ -7895,6 +7898,8 @@ const translations = {
return 'Syncing Campfire data';
case 'campfireSyncConnection':
return 'Initializing connection to Campfire';
case 'zohoBooksSyncConnection':
return 'Initializing connection to Zoho Books';
case 'campfireSyncImportData':
return 'Loading data';
case 'campfireSyncPayments':
Expand Down
5 changes: 5 additions & 0 deletions src/languages/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7123,6 +7123,8 @@ El plan Controlar empieza en 9 $ por miembro activo al mes.`,
return 'DualEntry';
case CONST.POLICY.CONNECTIONS.NAME.CAMPFIRE:
return 'Campfire';
case CONST.POLICY.CONNECTIONS.NAME.ZOHO_BOOKS:
return 'Zoho Books';
case CONST.POLICY.CONNECTIONS.NAME.BUSINESS_CENTRAL:
return 'Dynamics 365 Business Central';
default: {
Expand Down Expand Up @@ -7351,6 +7353,8 @@ El plan Controlar empieza en 9 $ por miembro activo al mes.`,
return 'Sincronizando datos de Campfire';
case 'campfireSyncConnection':
return 'Iniciando conexión con Campfire';
case 'zohoBooksSyncConnection':
return 'Iniciando conexión con Zoho Books';
case 'campfireSyncImportData':
return 'Cargando datos';
case 'campfireSyncPayments':
Expand Down Expand Up @@ -7408,6 +7412,7 @@ El plan Controlar empieza en 9 $ por miembro activo al mes.`,
syncTravelInvoicingSettlementsNoAccountTooltip: 'Para desbloquearlo, configura una cuenta para tus exportaciones.',
syncTravelInvoicingSettlementsNoAutoSyncTooltip: 'Para desbloquear, habilita la sincronización automática.',
campfire: 'Campfire',
zohoBooks: 'Zoho Books',
continuousReconciliationFeedSelection:
'<muted-text-label>La conciliación continua se configura por cada fuente de tarjetas. Selecciona una fuente para cambiar cuál estás configurando.</muted-text-label>',
businessCentral: 'Dynamics 365 Business Central',
Expand Down
5 changes: 5 additions & 0 deletions src/languages/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7336,6 +7336,8 @@ Le forfait Control commence à 9 $ par Membre actif et par mois.`,
return 'DualEntry';
case CONST.POLICY.CONNECTIONS.NAME.CAMPFIRE:
return 'Campfire';
case CONST.POLICY.CONNECTIONS.NAME.ZOHO_BOOKS:
return 'Zoho Books';
case CONST.POLICY.CONNECTIONS.NAME.BUSINESS_CENTRAL:
return 'Dynamics 365 Business Central';
default: {
Expand Down Expand Up @@ -7564,6 +7566,8 @@ Le forfait Control commence à 9 $ par Membre actif et par mois.`,
return 'Synchronisation des données Campfire';
case 'campfireSyncConnection':
return 'Initialisation de la connexion à Campfire';
case 'zohoBooksSyncConnection':
return 'Initialisation de la connexion à Zoho Books';
case 'campfireSyncImportData':
return 'Chargement des données';
case 'campfireSyncPayments':
Expand Down Expand Up @@ -7621,6 +7625,7 @@ Le forfait Control commence à 9 $ par Membre actif et par mois.`,
syncTravelInvoicingSettlementsNoAccountTooltip: 'Pour le déverrouiller, définissez un compte pour vos exports.',
syncTravelInvoicingSettlementsNoAutoSyncTooltip: 'Pour le déverrouiller, activez la synchronisation automatique.',
campfire: 'Campfire',
zohoBooks: 'Zoho Books',
continuousReconciliationFeedSelection:
'<muted-text-label>Le rapprochement continu est configuré par flux de carte. Sélectionnez un flux pour changer celui que vous configurez.</muted-text-label>',
businessCentral: 'Dynamics 365 Business Central',
Expand Down
5 changes: 5 additions & 0 deletions src/languages/it.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7276,6 +7276,8 @@ Il piano Control parte da 9 $ al mese per ogni membro attivo.`,
return 'DualEntry';
case CONST.POLICY.CONNECTIONS.NAME.CAMPFIRE:
return 'Campfire';
case CONST.POLICY.CONNECTIONS.NAME.ZOHO_BOOKS:
return 'Zoho Books';
case CONST.POLICY.CONNECTIONS.NAME.BUSINESS_CENTRAL:
return 'Dynamics 365 Business Central';
default: {
Expand Down Expand Up @@ -7503,6 +7505,8 @@ Il piano Control parte da 9 $ al mese per ogni membro attivo.`,
return 'Sincronizzazione dei dati Campfire';
case 'campfireSyncConnection':
return 'Inizializzazione della connessione a Campfire';
case 'zohoBooksSyncConnection':
return 'Inizializzazione della connessione a Zoho Books';
case 'campfireSyncImportData':
return 'Caricamento dei dati';
case 'campfireSyncPayments':
Expand Down Expand Up @@ -7560,6 +7564,7 @@ Il piano Control parte da 9 $ al mese per ogni membro attivo.`,
syncTravelInvoicingSettlementsNoAccountTooltip: 'Per sbloccare, imposta un conto per le tue esportazioni.',
syncTravelInvoicingSettlementsNoAutoSyncTooltip: 'Per sbloccare, abilita la sincronizzazione automatica.',
campfire: 'Campfire',
zohoBooks: 'Zoho Books',
continuousReconciliationFeedSelection:
'<muted-text-label>La Riconciliazione continua è configurata per ogni flusso di carte. Seleziona un flusso per cambiare quello che stai configurando.</muted-text-label>',
businessCentral: 'Dynamics 365 Business Central',
Expand Down
5 changes: 5 additions & 0 deletions src/languages/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7186,6 +7186,8 @@ Control プランは、アクティブメンバー1人あたり月額 $9 から
return 'DualEntry';
case CONST.POLICY.CONNECTIONS.NAME.CAMPFIRE:
return 'Campfire';
case CONST.POLICY.CONNECTIONS.NAME.ZOHO_BOOKS:
return 'Zoho Books';
case CONST.POLICY.CONNECTIONS.NAME.BUSINESS_CENTRAL:
return 'Dynamics 365 Business Central';
default: {
Expand Down Expand Up @@ -7414,6 +7416,8 @@ Control プランは、アクティブメンバー1人あたり月額 $9 から
return 'Campfire データを同期しています';
case 'campfireSyncConnection':
return 'Campfire への接続を初期化しています';
case 'zohoBooksSyncConnection':
return 'Zoho Books への接続を初期化しています';
case 'campfireSyncImportData':
return 'データを読み込んでいます';
case 'campfireSyncPayments':
Expand Down Expand Up @@ -7470,6 +7474,7 @@ Control プランは、アクティブメンバー1人あたり月額 $9 から
syncTravelInvoicingSettlementsNoAccountTooltip: 'ロックを解除するには、エクスポート用の口座を設定してください。',
syncTravelInvoicingSettlementsNoAutoSyncTooltip: 'ロックを解除するには、自動同期を有効にしてください。',
campfire: 'Campfire',
zohoBooks: 'Zoho Books',
continuousReconciliationFeedSelection:
'<muted-text-label>継続的な照合はカードフィードごとに設定されます。設定するフィードを変更するには、フィードを選択してください。</muted-text-label>',
businessCentral: 'Dynamics 365 Business Central',
Expand Down
Loading
Loading