{"version":3,"sources":["utils/apis/audit.js","utils/apis/translation.js","utils/apis/inits.js","utils/apis/setup.js","utils/apis/approval.js","utils/apis/accountMapping.js","utils/apis/oauthClient.js","utils/apis/emailTemplate.js","utils/apis/commission.js","utils/apis/whatsappTemplate.js","utils/apis/financeContact.js","utils/apis/financeExpense.js","utils/apis/financePurchaseOrder.js","utils/apis/financePurchaseInvoice.js","utils/apis/financeBankTrans.js","utils/apis/financeQuote.js","utils/apis/financeInvoice.js","utils/apis/financeProduct.js","utils/apis/financeBank.js","utils/apis/financeBankStatements.js","utils/apis/financeBankReconciles.js","utils/apis/financeNumber.js","utils/apis/financeConversionBalances.js","utils/apis/financeManualJournal.js","utils/apis/financeFixedAssets.js","utils/apis/options.js","utils/apis/outletOptions.js","utils/apis/financeLayoutInvoice.js","utils/apis/financeTag.js","utils/apis/layoutReport.js","utils/apis/location.js","utils/apis/consolidation.js","utils/apis/financeOrder.js","utils/apis/financeDelivery.js","utils/apis/creditMemo.js","utils/apis/return.js","utils/apis/financePurchaseQuote.js","utils/apis/debitMemo.js","utils/apis/financePurchaseDelivery.js","utils/apis/marketplaceConnect.js","utils/apis/purchaseReturn.js","utils/apis/notification.js","utils/apis/tutorial.js","utils/apis/bankRef.js","utils/apis/backupDatabase.js","utils/apis/favoriteReportMenus.js","utils/apis/onboarding.js","utils/apis/pos.js","utils/apis/financePaymentConnectSetting.js","utils/apis/sso.js","utils/apis/financeLog.js","redux/actionTypes.js","utils/pusher.js","utils/hooks/useNotificationProgress.js","utils/hooks/useReport.js","utils/hooks/useLoadedInit.js","utils/hooks/useChartLegend.js","utils/hooks/useImport.js","redux/companies/actions.js","redux/user/actions.js","redux/settings/actions.js","locales/en-US.js","locales/id-ID.js","styledComponentsTheme.js","components/LayoutComponents/ConfigProvider/index.js","utils/axios.js","redux/maintenance/actions.js","redux/menu/reducers.js","redux/settings/reducers.js","redux/refs/reducers.js","redux/inits/reducers.js","redux/payments/reducers.js","redux/options/reducers.js","redux/posSettings/reducers.js","redux/financeExpenseTerms/reducers.js","redux/financeTaxes/reducers.js","redux/financeProducts/reducers.js","redux/financeWareHouses/reducers.js","redux/financeUnits/reducers.js","redux/shippingComps/reducers.js","redux/transactionFees/reducers.js","redux/finance/reducers.js","redux/billing/reducers.js","redux/billingPos/reducers.js","redux/companies/reducers.js","redux/translation/reducers.js","redux/broadcast/reducers.js","redux/nps/reducers.js","redux/hris/reducers.js","redux/tutorials/reducers.js","redux/reviews/reducers.js","redux/loginForm/reducers.js","redux/customColumn/reducers.js","redux/defaultMessage/reducers.js","redux/currencies/reducers.js","redux/salutations/reducers.js","redux/maintenance/reducers.js","redux/reasons/reducers.js","redux/onboardingChecklist/reducers.js","redux/outlets/reducers.js","redux/maxCompanies/reducers.js","redux/store.js","redux/reducers.js","utils/sentry.js","index.js","iconLibraries.js","utils/apis/financeAccount.js","utils/apis/user.js","utils/apis/customColumn.js","utils/helper.js","redux/finance/actions.js","redux/loginForm/actions.js","utils/apis/financeWareHouse.js","layouts/Login/style.module.scss","containers/OnboardingChecklist/style.module.scss","utils/apis/dashboard.js","redux/selectors.js","utils/apis/financeExpenseTerm.js","utils/apis/shippingComp.js","utils/apis/multiCurrency.js","utils/queries/account.js","utils/queries/bankReconcile.js","utils/queries/bankStatement.js","utils/queries/bankTrans.js","utils/queries/expense.js","utils/queries/fixedAsset.js","utils/queries/manualJournal.js","utils/queries/sales.js","utils/queries/delivery.js","utils/queries/invoice.js","utils/queries/order.js","utils/queries/purchaseDelivery.js","utils/queries/purchaseInvoice.js","utils/queries/purchaseOrder.js","utils/queries/purchaseQuote.js","utils/queries/quote.js","utils/queries/retur.js","utils/queries/purchaseRetur.js","utils/queries/purchaseInvoicePaymentDebitMemo.js","utils/queries/invoicePaymentCreditMemo.js","utils/queries/salesCommissions.js","utils/queries/tag.js","utils/queries/roles.js","utils/queries/priceRule.js","utils/apis/financeLayoutBarcode.js","utils/queries/barcode.js","utils/queries/pos.js","utils/queries/faq.js","utils/queries/reportLayout.js","utils/queries/backupDatabase.js","utils/queries/emailTemplate.js","utils/queries/favoriteReportMenus.js","utils/queries/taxes.js","utils/queries/onboarding.js","utils/queries/user.js","utils/queries/financePaymentConnectSetting.js","utils/queries/videos.js","utils/queries/contactGroup.js","components/UI/Button/Add.js","components/UI/Button/Cancel.js","components/UI/Button/Delete.js","components/UI/Button/Save.js","components/UI/Button/SaveAddNew.js","components/UI/Button/Back.js","components/UI/Button/Edit.js","components/UI/Button/Filter.js","components/UI/Button/Print.js","components/UI/Button/Pdf.js","components/UI/Button/Import.js","components/UI/Button/Export.js","components/UI/Button/Send.js","components/UI/Button/Upgrade.js","components/UI/Button/Reset.js","components/UI/Button/BackGhost.js","components/UI/Button/ShowColumn.js","components/UI/Button/Unarchive.js","utils/apis/billing.js","utils/apis/financeTax.js","components/UI/Table/empty.module.scss","components/UI/Chart/widget-trend-up-down.module.scss","components/apps/Notification/Timeline/style.module.scss","utils/hooks/useTerm.js","components/UI/ModalPlayer/Player.js","redux/utility.js","components/AppProvider.js","utils/apis/financeUnit.js","utils/apis/priceRule.js","utils/static.js","containers/NPS/style.module.scss","utils/apis/roles.js","utils/formatting.js","utils/apis/users.js","utils/apis/invoicePaymentCreditMemo.js","utils/apis/purchaseInvoicePaymentDebitMemo.js","redux/broadcast/actions.js","components/LayoutComponents/Footer/style.module.scss","containers/Billing/HideFeature/index.js","containers/GridDashboard/Dropdown.service.js","utils/gtm.js","components/LayoutComponents/TopBar/ProfileMenu/style.module.scss","layouts/SelectCompany/style.module.scss","components/apps/FinanceAccounts/Charts/colors.js","components/UI/Spinner/index.js","components/UI/SearchWidget/index.js","components/UI/PageHeader/index.js","components/UI/DateMonth/index.js","components/UI/SearchInput/DropdownItemAction.js","components/UI/SearchInput/index.js","components/UI/Dropdown/AccountDropdown.js","components/UI/Dropdown/PrintDropdown.js","components/UI/Draggable/BodyRow.js","components/UI/Draggable/withDragRow.js","components/UI/Overview/index.js","components/UI/ToggleLabel/index.js","assets/images/empty-data.svg","components/UI/Table/Empty.js","components/UI/Table/index.js","components/UI/Tags/index.js","components/UI/Card/index.js","components/UI/InnerDivider/index.js","components/UI/Helmet/index.js","components/UI/MultipleEmailInput/index.js","components/UI/NewLineText/index.js","components/UI/Dropdown/HelpDropdown.js","components/UI/ModalPlayer/index.js","components/UI/ProductTour/index.js","components/UI/HelpTooltip/index.js","components/UI/HelpTooltip/RefNumberTitle.js","components/UI/DatePicker/index.js","components/UI/MassSendEmailModal/index.js","components/UI/MassCreateTransModal/MassMinTransDateForm.js","components/UI/MassCreateTransModal/InfoTable.js","components/UI/MassCreateTransModal/index.js","components/UI/MessageEditor/index.js","components/UI/SendWaModal/index.js","components/UI/SendSmsModal/index.js","components/UI/TimePicker/index.js","components/UI/Dropdown/ReportDropdown.js","components/UI/Loader/BlockLoader.js","components/UI/Chart/ChartCardWithFilter.js","components/UI/Chart/Chart.js","components/UI/Chart/RatioChart.js","components/UI/Chart/WidgetTrendUpDown.js","components/UI/Overlay/index.js","components/UI/DemoWarning/index.js","components/UI/TrialWarning/index.js","components/UI/SubscriptionWarning/index.js","components/UI/RowItemPrint/index.js","components/UI/DetailPlaceholder/Placeholder.js","components/UI/DetailPlaceholder/index.js","components/UI/RestrictedPage.js","components/UI/YearSelector/index.js","layouts/Main/style.module.scss","components/LayoutComponents/TopBar/CompanySelector/style.module.scss","containers/FinanceTag/withTagSuggestion.js","containers/FinanceTag/withAddTag.js","containers/FinanceTag/TagSuggestion.js","utils/localStorage.js","utils/hooks/usePrevious.js","utils/queries/product.js","components/UI/LinkTransType/index.js","utils/hooks/useResponsive.js","utils/apis/reports.js","utils/hooks/usePermission.js","utils/apis/unrealizedGain.js","utils/apis/queue.js","components/UI/Pagination/PageSizeChanger.js","components/UI/Pagination/index.js","redux/user/reducers.js","components/apps/Notification/News/style.module.scss","serviceWorker.js","ServiceWorkerProvider.js","components/apps/FinanceTag/FinanceTagForm/styles.module.scss","components/UI/Chart/ratio-chart.module.scss","components/LayoutComponents/Breadcrumbs/style.module.scss","components/LayoutComponents/Loader/style.module.scss","pages/user/requestDeleteAccount/style.module.scss","redux/financeWareHouses/actions.js","components/apps/Dashboard/colour.js","redux/options/actions.js","redux/customColumn/actions.js","redux/outlets/actions.js","containers/Users/Login/sso.module.scss","components/UI/Spinner/style.module.css","components/UI/Tags/styles.module.scss","components/UI/Chart/card-with-with-filter.module.scss","components/LayoutComponents/TopBar/LanguageSelector/style.module.scss","components/LayoutComponents/TopBar/Actions/style.module.scss","components/LayoutComponents/TopBar/Timelines/style.module.scss","containers/Translation/withTranslation.js","containers/ProductTour/Welcome.js","containers/ProductTour/Module.js","utils/queries/contact.js","utils/apis/financeContactGroup.js","containers/Users/UserSuggestion.js","utils/queries/number.js","components/apps/Notification/Timeline/index.js","redux/financeUnits/actions.js","utils/apis/financeProductCategory.js","redux/financeExpenseTerms/actions.js","redux/transactionFees/actions.js","redux/shippingComps/actions.js","containers/EmailTemplate/SendEmailModal.js","components/apps/FinanceProducts/FinanceProductDetail/Context.js","components/UI/Button/Copy.js","utils/hooks/useExport.js","utils/parseURIToParams.js","pages/404.js","utils/queries/warehouses.js","components/apps/FinanceProducts/FinanceProductDetail/StockMovements.js","redux/options/selectors.js","utils/apis/app.js","redux/financeTaxes/actions.js","redux/defaultMessage/actions.js","redux/currencies/actions.js","redux/maxCompanies/actions.js","redux/inits/actions.js","redux/tutorials/actions.js","utils/hooks/useGoBack.js","containers/GridDashboard/DropdownDate.js","utils/queries/reports.js","utils/apis/financeClosing.js","utils/apis/tenants.js","utils/apis/financeStockAdjustment.js","utils/apis/faq.js","utils/apis/videos.js","components/UI/RangePicker/index.js","components/UI/DetailAccountModal/index.js","utils/queries/unrealizedGain.js","redux/setup/actions.js","utils/queries/options.js","components/apps/FinanceProducts/FinanceProductDetail/DataTable.js","components/apps/FinanceProducts/FinanceProductDetail/FilterFormTransaction.js","utils/cookies.js","components/LayoutComponents/Menu/MenuLeft/style.module.scss","components/apps/EmailTemplate/Editor.js","components/apps/EmailTemplate/TagsOption.js","containers/EmailTemplate/ConfirmEmailModal.js","containers/Reports/Export/styles.module.scss","components/apps/FinanceTag/AddFinanceTag/index.js","components/apps/FinanceTag/FinanceTagForm/index.js","redux/user/selectors.js","components/apps/User/Login/index.js","containers/Users/Login/Sso.js","components/apps/Reports/AccountTransactions/Filter.js","components/apps/Reports/AccountTransactions/PieChart.js","components/apps/Reports/AccountTransactions/LineChart.js","components/apps/Reports/AccountTransactions/Charts.js","components/apps/Reports/AccountTransactions/Print.js","containers/Reports/AccountTransactions/index.js","theme.js","app.js","utils/hooks/chart-legend.module.scss","containers/FinanceTag/tag-suggestion.module.scss","components/SentryErrorBoundary.js","InstallPromptWrapper.js","layouts/Public/index.js","components/apps/User/ChangeEnvModal/index.js","layouts/Login/index.js","components/LayoutComponents/TopBar/ProfileMenu/index.js","components/LayoutComponents/TopBar/LanguageSelector/index.js","components/LayoutComponents/TopBar/CompanySelector/index.js","components/apps/Notification/News/index.js","containers/Notification/News.js","components/LayoutComponents/TopBar/Actions/index.js","components/apps/Notification/QueueStats.js","utils/queries/queue.js","containers/Notification/Timeline.js","components/LayoutComponents/TopBar/Timelines/index.js","components/LayoutComponents/TopBar/ThemeColors/index.js","components/LayoutComponents/TopBar/index.js","components/LayoutComponents/Menu/MenuLeft/index.js","components/LayoutComponents/Menu/index.js","components/LayoutComponents/Footer/index.js","containers/FinanceBanks/routes.js","routes.js","components/LayoutComponents/Breadcrumbs/index.js","containers/Reports/AccountTransactions/AccountTransactionModal.js","containers/OnboardingChecklist/index.js","containers/Broadcast/index.js","redux/nps/actions.js","utils/apis/nps.js","containers/NPS/index.js","pages/user/login/LoginModal.js","utils/oneSignal.js","layouts/Main/index.js","layouts/SelectCompany/index.js","components/LayoutComponents/TopBar/NoCompany.js","layouts/Info/index.js","layouts/index.js","layouts/Main/NoCompany.js","pages/Error.js","pages/ServerError.js","components/LayoutComponents/Loader/index.js","pages/Maintenance.js","pages/user/requestDeleteAccount/index.js","router.js","utils/hooks/useAppUpdate.js","UpdateAppWrapper.js"],"names":["getFinanceLogs","params","query","stringify","axios","get","exportFinanceLogs","cleanBlankValue","responseType","resetTranslation","data","post","getTranslation","getDefaultTranslation","editTranslation","put","getInits","v","getInitsPublic","headers","Authorization","getInitsFinance","setup","createOrUpdateApproval","getApprovalSettings","transTypeId","getApprovable","inputMassApproval","executeMassApproval","inputMassApprovalReject","executeMassApprovalReject","getAccountMappings","editAccountMapping","getOauthClients","getOauthClient","id","addOauthClient","editOauthClient","deleteOauthClient","delete","getEmails","getEmail","updateEmail","revertEmail","getEmailTemplateCustomerBirthday","getCommissions","getCommissionTypes","addCommission","editCommission","getCommission","deleteCommission","getWhatsapps","getWhatsapp","updateWhatsapp","revertWhatsapp","getFinanceContacts","getOnce","getFinanceContactDetail","getFinanceContactMoneyInOutStat","getFinanceContactSalesStats","addFinanceContact","editFinanceContact","editFinanceContactAsEmployee","patch","archiveFinanceContact","unarchiveFinanceContact","deleteFinanceContact","getSuggestionFinanceContact","options","getFinanceContact","getFinanceContactLog","getFinanceContactTransactions","uploadImportFinanceContact","uploadImportFinanceContactTransactions","executeImportFinanceContact","executeImportFinanceContactTransactions","exportFinanceContact","inputMassDeleteFinanceContact","executeMassDeleteFinanceContact","deleteOnAddFinanceContactPhoto","url","deleteOnEditFinanceContactPhoto","getFinanceExpenses","getFinanceExpensesOverview","getFinanceExpensesAccountChart","getFinanceExpensesContactChart","addFinanceExpense","editFinanceExpense","deleteOnAddFinanceExpenseAttachment","deleteOnEditFinanceExpenseAttachment","getFinanceExpense","getFinanceExpenseLog","deleteFinanceExpense","uploadImportFinanceExpense","executeImportFinanceExpense","exportFinanceExpense","URL","status_id","addRecurringExpense","editRecurringExpense","getRecurringExpense","deleteRecurringExpense","getRecurringExpenses","inputMassDeleteFinanceExpense","executeMassDeleteFinanceExpense","approveFinanceExpense","rejectFinanceExpense","body","revertApprovalFinanceExpense","getMassDownloadFinanceExpense","getFinancePurchaseOrders","addFinancePurchaseOrder","editFinancePurchaseOrder","deleteOnAddFinancePurchaseOrderAttachment","deleteOnEditFinancePurchaseOrderAttachment","getFinancePurchaseOrder","getFinancePurchaseOrderLog","getSuggestionFinanceProduct","changeFinancePurchaseOrderStatus","deleteFinancePurchaseOrder","uploadImportFinancePurchaseOrder","executeImportFinancePurchaseOrder","getFinancePurchaseOrderJournal","getFinancePurchaseOrderPublicUrl","exportFinancePurchaseOrder","getFinancePurchaseOrderWaTemplate","getFinancePurchaseOrderEmailTemplate","sendFinancePurchaseOrderEmail","addRecurringPurchaseOrder","editRecurringPurchaseOrder","getRecurringPurchaseOrder","deleteRecurringPurchaseOrder","getRecurringPurchaseOrders","getFinancePurchaseOrderSmsTemplate","sendFinancePurchaseOrderSms","inputMassDeleteFinancePurchaseOrder","executeMassDeleteFinancePurchaseOrder","inputMassSendEmailFinancePurchaseOrder","executeMassSendEmailFinancePurchaseOrder","getMassDownloadFinancePurchaseOrder","getMinTransDateFinancePurchaseOrder","inputMassCreateFinancePurchaseOrder","executeMassCreateFinancePurchaseOrder","approveFinancePurchaseOrder","rejectFinancePurchaseOrder","revertApprovalFinancePurchaseOrder","getFinancePurchaseInvoices","addFinancePurchaseInvoice","editFinancePurchaseInvoice","deleteOnAddFinancePurchaseInvoiceAttachment","deleteOnEditFinancePurchaseInvoiceAttachment","getFinancePurchaseInvoice","getFinancePurchaseInvoiceLog","deleteFinancePurchaseInvoice","getFinancePurchaseInvoiceOverview","uploadImportFinancePurchaseInvoice","executeImportFinancePurchaseInvoice","uploadImportStatusFinancePurchaseInvoice","executeImportStatusFinancePurchaseInvoice","getFinancePurchaseInvoicePublicUrl","exportFinancePurchaseInvoice","getFinancePurchaseInvoiceWaTemplate","getFinancePurchaseInvoiceEmailTemplate","sendFinancePurchaseInvoiceEmail","addRecurringPurchaseInvoice","editRecurringPurchaseInvoice","getRecurringPurchaseInvoice","deleteRecurringPurchaseInvoice","getRecurringPurchaseInvoices","getFinancePurchaseInvoiceSmsTemplate","sendFinancePurchaseInvoiceSms","inputMassDeleteFinancePurchaseInvoice","executeMassDeleteFinancePurchaseInvoice","inputMassSendEmailFinancePurchaseInvoice","executeMassSendEmailFinancePurchaseInvoice","getMassDownloadFinancePurchaseInvoice","getMinTransDateFinancePurchaseInvoice","inputMassCreateFinancePurchaseInvoice","executeMassCreateFinancePurchaseInvoice","approveFinancePurchaseInvoice","rejectFinancePurchaseInvoice","revertApprovalFinancePurchaseInvoice","getFinanceBankTranses","getFinanceBankTrans","getFinanceBankTransLog","editFinanceBankTrans","purchasePaymentFinanceBankTrans","invoicePaymentFinanceBankTrans","orderPaymentFinanceBankTrans","purchaseOrderPaymentFinanceBankTrans","creditMemoPaymentFinanceBankTrans","debitMemoPaymentFinanceBankTrans","deleteOnAddFinanceBankTransAttachment","deleteOnEditFinanceBankTransAttachment","deleteFinanceBankTrans","transferFinanceBankTrans","spendFinanceBankTrans","receiveFinanceBankTrans","deleteTransferFinanceBankTrans","editTransferFinanceBankTrans","expensePaymentFinanceBankTrans","editPurchasePaymentFinanceBankTrans","editInvoicePaymentFinanceBankTrans","editExpensePaymentFinanceBankTrans","editCreditMemoPaymentFinanceBankTrans","editDebitMemoPaymentFinanceBankTrans","editOrderPaymentFinanceBankTrans","editPurchaseOrderPaymentFinanceBankTrans","createPdfFinanceBankTrans","then","response","openNewTabBlobFile","Promise","resolve","catch","error","reject","getFinanceBankTransPublicUrl","exportFinanceBankTrans","getFinanceBankTransWaTemplate","getFinanceBankTransEmailTemplate","sendFinanceBankTransEmail","addRecurringBankTrans","editRecurringBankTrans","getRecurringBankTrans","deleteRecurringBankTrans","getRecurringBankTranses","getFinanceBankTransSmsTemplate","sendFinanceBankTransSms","inputMassDeleteFinanceBankTrans","executeMassDeleteFinanceBankTrans","uploadImportFinanceBankTrans","executeImportFinanceBankTrans","massPaymentFinanceBankTrans","executeMassPaymentFinanceBankTrans","uploadImportFinanceBankTransfer","executeImportFinanceBankTransfer","approveFinanceBankTransfer","rejectFinanceBankTransfer","revertFinanceBankTransfer","getFinanceQuotes","addFinanceQuote","editFinanceQuote","deleteOnAddFinanceQuoteAttachment","deleteOnEditFinanceQuoteAttachment","getFinanceQuote","getFinanceQuoteLog","changeFinanceQuoteStatus","deleteFinanceQuote","uploadImportFinanceQuote","executeImportFinanceQuote","getFinanceQuotePublicUrl","exportFinanceQuote","getFinanceQuoteWaTemplate","getFinanceQuoteEmailTemplate","sendFinanceQuoteEmail","getFinanceQuoteSmsTemplate","sendFinanceQuoteSms","inputMassDeleteFinanceQuote","executeMassDeleteFinanceQuote","inputMassSendEmailFinanceQuote","executeMassSendEmailFinanceQuote","getMassDownloadFinanceQuote","approveFinanceQuote","rejectFinanceQuote","revertApprovalFinanceQuote","getFinanceInvoices","addFinanceInvoice","editFinanceInvoice","deleteOnAddFinanceInvoiceAttachment","deleteOnEditFinanceInvoiceAttachment","getFinanceInvoice","getFinanceInvoiceLog","deleteFinanceInvoice","getFinanceInvoiceOverview","uploadImportFinanceInvoice","executeImportFinanceInvoice","uploadImportFinanceInvoiceRecurring","executeImportFinanceInvoiceRecurring","uploadImportStatusFinanceInvoice","executeImportStatusFinanceInvoice","uploadImportFinanceInvoiceReturn","executeImportFinanceInvoiceReturn","changeFinanceInvoiceTaxNumber","getFinanceInvoicePublicUrl","exportFinanceInvoice","type","getFinanceInvoiceWaTemplate","getFinanceInvoiceWaRecapTemplate","getFinanceInvoiceEmailTemplate","sendFinanceInvoiceEmail","getFinanceInvoiceEmailRecapTemplate","sendFinanceInvoiceEmailRecap","addRecurringInvoice","editRecurringInvoice","getRecurringInvoice","deleteRecurringInvoice","getRecurringInvoices","getFinanceInvoiceSmsTemplate","sendFinanceInvoiceSms","getFinanceInvoiceSmsRecapTemplate","sendFinanceInvoiceSmsRecap","inputMassDeleteFinanceInvoice","executeMassDeleteFinanceInvoice","inputMassSendEmailFinanceInvoice","executeMassSendEmailFinanceInvoice","getMassDownloadFinanceInvoice","getMassDownloadLabelFinanceInvoice","getMassDownloadDeliveryFinanceInvoice","inputMassCreateFinanceInvoice","getMinTransDateFinanceInvoice","executeMassCreateFinanceInvoice","voidFinanceInvoice","unvoidFinanceInvoice","approveFinanceInvoice","rejectFinanceInvoice","revertApprovalFinanceInvoice","addFinanceProduct","addFinanceProductPackage","deleteFinanceProductPhoto","deleteFinanceProductPhotoOnEdit","conversionProduct","editConversionProduct","deleteConversionProduct","editFinanceProductPackage","addFinanceProductManufacture","editFinanceProductManufacture","editFinanceProduct","uploadImportFinanceProduct","executeImportFinanceProduct","uploadImportFinanceProductManufacture","executeImportFinanceProductManufacture","uploadImportFinanceProductPackage","executeImportFinanceProductPackage","uploadImportFinanceProductConversion","executeImportFinanceProductConversion","getStockProduct","warehouseIds","transDate","warehouse_ids","trans_date","getStockProducts","getFinanceProducts","getFinanceProductsOverview","getFinanceProduct","getFinanceProductLog","getFinanceProductStockMovementChart","getFinanceProductMovementByCategoryChart","getFinanceProductValueMovementChart","getFinanceProductSalesPurchaseChartDetail","getFinanceProductStockMovementChartDetail","getConversionProduct","getFinanceProductStockMovements","exportFinanceProductStockMovements","getFinanceProductTransactions","archiveFinanceProduct","unarchiveFinanceProduct","deleteFinanceProduct","inputMassDeleteProduct","executeMassDeleteProduct","getAllStockProducts","requests","all","spread","responses","exportProducts","exportProductsPackage","exportProductsManufacture","editUnitConversion","getProductsPriceRule","getFinanceProductRoles","addFinanceProductRoles","getSuggestionBarcodeFinanceProduct","inputMassUnarchiveProduct","executeMassUnarchiveProduct","getProductSummary","getProductWarehouseQtyStats","getStockStatusStats","getStockPerCategoryStats","getProductPerCategoryStats","getProductsSummary","getProductLastPrices","getBank","getBankDetail","getBankConnect","getBankConnectDetail","getBankConnectAccountTypes","addBankConnect","editBankConnectSubmission","deleteBankConnectSubmission","removeBankBookImage","removeIdCardImage","removeBankBookImageDetail","removeIdCardImageDetail","getFinanceBankStatements","deleteFinanceBankStatement","bankAccountId","ids","bank_account_id","uploadImportFinanceBankStatement","executeImportFinanceBankStatement","editFinanceBankStatement","getBankStatementDetails","onlyGetOnce","revertBankStatementDetail","inputMassRevertBankStatement","executeMassRevertBankStatement","getFinanceBankReconciles","getFinanceBankReconcileTrans","reconcileFinanceBank","massReconcileFinanceBank","selectedRowKeys","reconcilesData","forEach","d","selected","push","bank_statement_id","bank_tran_ids","suggestion","inputMassDeleteFinanceBank","multiBankReconciliation","getFinanceNumbers","getFinanceNumberFormat","editFinanceNumber","getFinanceNumberNext","name","isFinanceNumberExist","getFinanceNumberTrans","createFinanceNumberTrans","editFinanceNumberTrans","deleteFinanceNumberTrans","getFinanceNumberLog","getFinanceNumberDetailLog","justGetOnce","getFinanceConversionBalances","getFinanceConversionBalancesDate","getFinanceConversionBalance","saveFinanceConversionBalanceDate","saveFinanceConversionBalances","editFinanceConversionBalances","deleteFinanceConversionBalances","getFinanceReversal","getFinanceOpeningBalance","uploadImportFinanceConversionBalances","executeImportFinanceConversionBalances","exportConversionBalances","getFinanceManualJournals","addFinanceManualJournal","editFinanceManualJournal","deleteOnAddFinanceManualJournalAttachment","deleteOnEditFinanceManualJournalAttachment","getFinanceManualJournal","getFinanceManualJournalLog","deleteFinanceManualJournal","uploadImportFinanceManualJournal","executeImportFinanceManualJournal","exportFinanceManualJournal","addRecurringManualJournal","editRecurringManualJournal","getRecurringManualJournal","deleteRecurringManualJournal","getRecurringManualJournals","inputMassDeleteManualJournal","executeMassDeleteManualJournal","getFinanceFixedAssets","addFinanceFixedAsset","editFinanceFixedAsset","getFinanceFixedAsset","deleteFinanceFixedAssetPhoto","deleteFinanceFixedAssetPhotoOnEdit","getFinanceFixedAssetLog","deleteFinanceFixedAsset","disposeFinanceFixedAsset","registerFinanceFixedAsset","getFinanceFixedAssetToDepreciates","depreciateFinanceFixedAsset","revertDisposeFinanceFixedAsset","rollbackDepreciationFinanceFixedAsset","massDeleteFinanceFixedAsset","getFinanceFixedAssetTransaction","tranId","uploadImportFinanceFixedAsset","executeImportFinanceFixedAsset","exportFinanceFixedAsset","inputMassDeleteFinanceFixedAsset","executeMassDeleteFinanceFixedAsset","getFinanceFixedAssetAccumulatedDepreciation","getFinanceFixedAssetsTopAcquisitionPriceStats","getFinanceFixedAssetsTopAssetValueStats","getFinanceFixedAssetValueStats","payload","getFinanceFixedAssetsDepreciationStats","getFinanceFixedAssetsAssetDisposalStats","getFinanceFixedAssetsAutomaticDepreciateLogs","getOptions","updateOptions","getPropertyOptions","setLockDate","isLockDateDeletable","deleteLockDate","onBoarding","sendEmailConfirmation","confirmsEmail","getOption","getOptionNotification","editOptionNotification","getOptionsDueReminders","updateOptionsDueReminders","getOptionsThemeColors","editOptionsThemeColors","addSchedulerLockDate","getSchedulerLockDate","putSchedulerLockDateActive","updateOutletOptions","outletid","getOutletOptions","getFinanceLayoutInvoice","saveFinanceLayoutInvoice","getFinanceLayoutInvoiceTemplates","getFinanceLayoutInvoiceTemplatesStamp","getFinanceLayoutInvoiceLabelTemplates","resetFinanceLayoutInvoice","resetImageFinanceLayoutInvoice","getFinanceTags","addFinanceTag","editFinanceTag","getSuggestionFinanceTag","getFinanceTag","deleteFinanceTag","getFinanceTagRoles","addFinanceTagRoles","getFinanceTagDetail","getLayoutReport","getLayoutReportVariable","editLayoutReportVariable","editLayoutReport","resetLayoutReport","getCountries","getProvinces","getCities","getDistricts","getVillages","getConsolidationCompanies","updateConsolidationCompanies","getConsolidationAccounts","updateConsolidationAccounts","autoCompileConsolidation","activateConsolidation","deactivateConsolidation","getFinanceOrders","addFinanceOrder","editFinanceOrder","deleteOnAddFinanceOrderAttachment","deleteOnEditFinanceOrderAttachment","getFinanceOrder","getFinanceOrderLog","deleteFinanceOrder","uploadImportFinanceOrder","executeImportFinanceOrder","getFinanceOrderPublicUrl","exportFinanceOrder","getFinanceOrderWaTemplate","getFinanceOrderEmailTemplate","sendFinanceOrderEmail","addRecurringOrder","editRecurringOrder","getRecurringOrder","deleteRecurringOrder","getRecurringOrders","getFinanceOrderSmsTemplate","sendFinanceOrderSms","inputMassDeleteFinanceOrder","executeMassDeleteFinanceOrder","inputMassSendEmailFinanceOrder","executeMassSendEmailFinanceOrder","getMassDownloadFinanceOrder","getMinTransDateFinanceOrder","inputMassCreateFinanceOrder","executeMassCreateFinanceOrder","approveFinanceOrder","rejectFinanceOrder","revertApprovalFinanceOrder","getFinanceDeliverys","addFinanceDelivery","editFinanceDelivery","deleteOnAddFinanceDeliveryAttachment","deleteOnEditFinanceDeliveryAttachment","getFinanceDelivery","getFinanceDeliveryLog","deleteFinanceDelivery","getFinanceDeliveryMerged","getFinanceDeliveryPublicUrl","exportFinanceDelivery","getFinanceDeliveryWaTemplate","getFinanceDeliveryEmailTemplate","sendFinanceDeliveryEmail","getFinanceDeliverySmsTemplate","sendFinanceDeliverySms","inputMassDeleteFinanceDelivery","executeMassDeleteFinanceDelivery","getMassDownloadFinanceDelivery","getMassDownloadLabelFinanceDelivery","inputMassCreateFinanceDelivery","getMinTransDateFinanceDelivery","executeMassCreateFinanceDelivery","addCreditMemo","editCreditMemo","deleteOnAddCreditMemoAttachment","deleteOnEditCreditMemoAttachment","getCreditMemo","deleteCreditMemo","getCreditMemoLog","getReturns","addReturn","editReturn","deleteOnAddReturnAttachment","deleteOnEditReturnAttachment","getReturn","deleteReturn","getReturnLog","getFinancePurchaseQuotes","addFinancePurchaseQuote","editFinancePurchaseQuote","deleteOnAddFinancePurchaseQuoteAttachment","deleteOnEditFinancePurchaseQuoteAttachment","getFinancePurchaseQuote","getFinancePurchaseQuoteLog","changeFinancePurchaseQuoteStatus","deleteFinancePurchaseQuote","uploadImportFinancePurchaseQuote","executeImportFinancePurchaseQuote","getFinancePurchaseQuotePublicUrl","exportFinancePurchaseQuote","getFinancePurchaseQuoteWaTemplate","getFinancePurchaseQuoteEmailTemplate","sendFinancePurchaseQuoteEmail","getFinancePurchaseQuoteSmsTemplate","sendFinancePurchaseQuoteSms","inputMassDeleteFinancePurchaseQuote","executeMassDeleteFinancePurchaseQuote","inputMassSendEmailFinancePurchaseQuote","executeMassSendEmailFinancePurchaseQuote","getMassDownloadFinancePurchaseQuote","approveFinancePurchaseQuote","rejectFinancePurchaseQuote","revertApprovalFinancePurchaseQuote","addDebitMemo","editDebitMemo","deleteOnAddDebitMemoAttachment","deleteOnEditDebitMemoAttachment","getDebitMemo","deleteDebitMemo","getDebitMemoLog","getFinancePurchaseDeliverys","addFinancePurchaseDelivery","editFinancePurchaseDelivery","deleteOnAddFinancePurchaseDeliveryAttachment","deleteOnEditFinancePurchaseDeliveryAttachment","getFinancePurchaseDelivery","getFinancePurchaseDeliveryLog","deleteFinancePurchaseDelivery","getFinancePurchaseDeliveryMerged","getFinancePurchaseDeliveryPublicUrl","exportFinancePurchaseDelivery","getFinancePurchaseDeliveryWaTemplate","getFinancePurchaseDeliveryEmailTemplate","sendFinancePurchaseDeliveryEmail","getFinancePurchaseDeliverySmsTemplate","sendFinancePurchaseDeliverySms","inputMassDeleteFinancePurchaseDelivery","executeMassDeleteFinancePurchaseDelivery","inputMassCreateFinancePurchaseDelivery","getMinTransDateFinancePurchaseDelivery","executeMassCreateFinancePurchaseDelivery","getMarketplaceConnects","getMarketplaceConnectShopeeAuthUrl","getMarketplaceConnectLazadaAuthUrl","getMarketplaceConnect","syncMarketplaceConnect","addTempMarketplaceConnect","deleteMarketplaceConnect","editMarketplaceConnect","getPurchaseReturns","addPurchaseReturn","editPurchaseReturn","deleteOnAddPurchaseReturnAttachment","deleteOnEditPurchaseReturnAttachment","getPurchaseReturn","deletePurchaseReturn","getPurchaseReturnLog","getNews","markAsRead","getTutorial","getSuggestionBankRef","getBackupDatabase","prepareBackupDatabase","addFavoriteReport","deleteFavoriteReport","getOnboarding","getOnboardingStatus","updateOnboardingStatus","getProductFavorites","createProductFavorites","deleteProductFavorites","moveProductFavorite","getOutlets","createOutlet","editOutlet","deleteOutlet","getPosUsers","getFinancePaymentConnectSetting","testConnectionFinancePaymentConnectSetting","updatePaymentConnectSetting","setDefaultPaymentConnectSetting","getSsoDomain","addSsoDomain","sendCodeSsoDomain","verifySsoDomain","deleteSsoDomain","generateSpSso","saveSsoConfiguration","getSsoConfiguration","updateSsoConfiguration","getFinanceLog","SET_REFS","SET_DASHBOARD","SET_A_DASHBOARD","ADD_DASHBOARD","EDIT_DASHBOARD","DELETE_DASHBOARD","RESET_DASHBOARD","ADD_ACCOUNT_WATCH_LIST","DELETE_ACCOUNT_WATCH_LIST","MOVE_ACCOUNT_WATCH_LIST","FILTER_ACCOUNT_WATCH_LIST","TOKEN_EXPIRED","START_LOADING","STOP_LOADING","START_INIT","STOP_INIT","SET_LOADED_INIT","INCREASE_ATTEMP","RESET_ATTEMP","SET_BILLING","SET_BILLING_POS","CLEAR_BILLING_POS","SET_ONBOARDING_CHECKLIST","SET_TRANSLATION","EDIT_TRANSLATION","SET_COMPANIES","SET_WEBSITE_ID","SET_ENDPOINT","SET_SELECTED_ENDPOINT","EDIT_COMPANY_NAME","SET_PAYMENTS","ADD_PAYMENT","DELETE_PAYMENT","EDIT_PAYMENT","MOVE_PAYMENT","CHANGE_STATUS_PAYMENT","SET_USER","USER_LOGIN","USER_LOGIN_SUCCESS","USER_LOGIN_FAILURE","USER_LOGOUT","USER_UPDATE_PROFILE","SHOW_LOGIN_FORM","SET_ERROR_LOGIN_FORM","SET_MENU","EDIT_MENU","RESET_MENU","SET_OPTIONS","EDIT_OPTIONS","SETUP_CLEAR_DEMO_DATA","SETUP_FINISH","POS_SETTINGS_STORE","SET_FINANCE_PRODUCTS","SET_FINANCE_BANK_ACCOUNTS","ADD_FINANCE_BANK_ACCOUNT","EDIT_FINANCE_BANK_ACCOUNT","DELETE_FINANCE_BANK_ACCOUNT","SET_CUSTOM_COLUMNS","ADD_CUSTOM_COLUMN","DELETE_CUSTOM_COLUMN","EDIT_CUSTOM_COLUMN","MOVE_CUSTOM_COLUMN","CHANGE_STATUS_CUSTOM_COLUMN","ADD_CUSTOM_COLUMN_ITEM","DELETE_CUSTOM_COLUMN_ITEM","EDIT_CUSTOM_COLUMN_ITEM","MOVE_CUSTOM_COLUMN_ITEM","CHANGE_STATUS_CUSTOM_COLUMN_ITEM","GET_CAN_DELETED_FINANCE_EXPENSE_TERMS","SET_FINANCE_EXPENSE_TERMS","ADD_FINANCE_EXPENSE_TERM","DELETE_FINANCE_EXPENSE_TERM","EDIT_FINANCE_EXPENSE_TERM","MOVE_FINANCE_EXPENSE_TERM","CHANGE_STATUS_FINANCE_EXPENSE_TERM","FILTER_FINANCE_EXPENSE_TERM","SET_FINANCE_TAXES","ADD_FINANCE_TAX","DELETE_FINANCE_TAX","EDIT_FINANCE_TAX","MOVE_FINANCE_TAX","CHANGE_STATUS_FINANCE_TAX","FILTER_FINANCE_TAX","GET_CAN_DELETED_FINANCE_UNIT","SET_FINANCE_UNITS","ADD_FINANCE_UNIT","DELETE_FINANCE_UNIT","EDIT_FINANCE_UNIT","MOVE_FINANCE_UNIT","FILTER_FINANCE_UNIT","SET_FINANCE_CONFIG","SET_FINANCE_CONFIG_DEFAULT_ACCOUNT","SET_FINANCE_ACCOUNT_CATEGORIES","SET_FINANCE_CONTACT_GROUP","ADD_FINANCE_CONTACT_GROUP","EDIT_FINANCE_CONTACT_GROUP","MOVE_FINANCE_CONTACT_GROUP","DELETE_FINANCE_CONTACT_GROUP","SET_FINANCE_PRODUCT_CATEGORIES","SET_FINANCE_PRODUCT_CATEGORIES_ROLES","DELETE_FINANCE_PRODUCT_CATEGORIES_ROLES","MOVE_FINANCE_PRODUCT_CATEGORIES_ROLES","ADD_FINANCE_PRODUCT_CATEGORIES","EDIT_FINANCE_PRODUCT_CATEGORIES","DELETE_FINANCE_PRODUCT_CATEGORIES","SET_LOCK_DATE_OPTION","REMOVE_LOCK_DATE_OPTION","SET_FINANCE_WAREHOUSES","ADD_FINANCE_WAREHOUSE","DELETE_FINANCE_WAREHOUSE","ARCHIVE_FINANCE_WAREHOUSE","UNARCHIVE_FINANCE_WAREHOUSE","EDIT_FINANCE_WAREHOUSE","MOVE_FINANCE_WAREHOUSE","FILTER_FINANCE_WAREHOUSE","CHANGE_STATUS_FINANCE_WAREHOUSE","SET_FINANCE_WAREHOUSES_ROLES","GET_CAN_DELETED_SHIPPING_COMPS","SET_SHIPPING_COMPS","ADD_SHIPPING_COMP","DELETE_SHIPPING_COMP","EDIT_SHIPPING_COMP","MOVE_SHIPPING_COMP","CHANGE_STATUS_SHIPPING_COMP","FILTER_SHIPPING_COMP","SHOW_ACCOUNTTRANSACTION_REPORT","HIDE_ACCOUNTTRANSACTION_REPORT","SHOW_AUDIT_MODAL","HIDE_AUDIT_MODAL","SET_BROADCAST","CLEAR_BROADCAST","SHOW_BROADCAST","HIDE_BROADCAST","MARKASREAD_BROADCAST","HIDE_NPS","SET_NPS","SET_SHOW_HR_ADDON","SET_TUTORIALS","SET_DEFAULT_MESSAGE","EDIT_DEFAULT_MESSAGE","SET_CURRENCIES","SET_MULTI_CURRENCIES","ADD_CURRENCY","DELETE_CURRENCY","EDIT_CURRENCY","SET_BASE_CURRENCY","ACTIVATED_CURRENCY","DEACTIVATED_CURRENCY","SET_REVIEWS","SET_ID_CARD_TYPES","EDIT_OPTION","SET_ANNOUNCEMENT","SET_MAX_COMPANIES","SET_FINANCE_APPROVAL","SET_PAYMENT_CONNECT_PROVIDERS","SET_SALUTATIONS","SET_REASONS","SET_MAINTENANCE","SET_OUTLETS","ADD_OUTLET","EDIT_OUTLET","DELETE_OUTLET","SET_TRANSACTION_FEES","ADD_TRANSACTION_FEE","DELETE_TRANSACTION_FEE","EDIT_TRANSACTION_FEE","getAuthorizationHeader","token","getToken","createPusherInstance","Pusher","process","forceTLS","cluster","authEndpoint","generateBaseUri","auth","initialProgress","invalid","total","valid","useNotificationProgress","rawData","channelRef","useRef","pusherRef","progress","setProgress","useState","statusImported","setStatusImported","setChannelHandler","useCallback","async","eventName","callback","pusher","current","channel","subscribe","bind","progressData","useMemo","imported","percentage","Math","floor","disconnectHandler","unbind_all","unsubscribe","disconnect","resetProgressHandler","useEffect","setTimeout","onSetChannel","onDisconnect","onResetProgress","useReport","setParams","parseParamsToUri","parseUriToParams","reportPermissionName","intl","filters","location","isHasAccess","loadedInit","usePermission","parentPermission","prevParams","usePrevious","dispatch","useDispatch","onReplace","path","replace","_parseParamsToUri","__params","currentParams","_","cloneDeep","page","arrayFormat","pathname","paramChangeHandler","_params","prevState","_parseUriToParams","isEmpty","currentFilters","isEqual","pageChangeHandler","per_page","onTableChange","pagination","_filters","sorter","sortBy","orderBy","order","field","sort_by","order_by","useLoadedInit","useSelector","loadedInitSelector","user","userSelector","useChartLegend","horizontalLegendScreens","getOrCreateLegendList","legendContainer","document","getElementById","listContainer","querySelector","createElement","style","display","flexDirection","includes","justifyContent","margin","padding","flexWrap","appendChild","afterUpdate","chart","args","ul","containerID","firstChild","remove","plugins","legend","labels","generateLabels","item","li","alignItems","cursor","marginLeft","onclick","config","toggleDataVisibility","index","setDatasetVisibility","datasetIndex","isDatasetVisible","update","boxSpan","background","fillStyle","borderColor","strokeStyle","borderWidth","lineWidth","height","marginRight","width","minWidth","maxWidth","textContainer","color","fontColor","classList","add","styles","legendText","textDecoration","hidden","text","createTextNode","useImport","useUploadMutation","listPagePath","useExecuteMutation","file","setFile","step","setStep","dataUploaded","setDataUploaded","rows","invalidDetail","financeConfigSelector","isMobileView","useResponsive","executeMutation","uploadMutation","loading","status","goToListPage","onPush","onSetAttachment","onRemoveAttachment","onUpload","message","formatMessage","formData","FormData","append","mutate","onSuccess","success","result","onError","onExecuteImport","onNewImport","setSelectedEndpoint","actionTypes","editCompanyName","showLoginForm","errorMessage","hideLoginForm","loginRedux","loginFailureRedux","afterLoginHandler","withLoading","init","companies","email","setSavedEmail","setToken","access_token","endpoint","setInits","setUser","setCompanies","stopInit","setLoadedInit","singleLogin","setErrorLoginForm","onSingleLogin","password","remember_me","verifyGoogleToken","onVerifyGoogleToken","e","invite","onInvite","store","expires_at","console","log","acceptInvitation","onAcceptInvitation","reset","onFinish","onReset","logoutRedux","logout","startInit","onLogout","removeToken","resetInits","setOptions","updateProfileRedux","updateProfile","updateProfileApi","actions","SET_STATE","CHANGE_SETTING","changeSetting","set","setting","value","changeLayoutSetting","isTabView","changeLanguage","startLoading","apiChangeLang","stopLoading","locale","antdData","localeData","messages","styledComponentsTheme","theme","responsive","xxlMinWidth","xxlMaxWidth","xlMinWidth","xlMaxWidth","mdMinWidth","mdMaxWidth","smMinWidth","smMaxWidth","xsMinWidth","xsMaxWidth","defaultAlgorithm","darkAlgorithm","addLocaleData","english","indonesia","locales","connect","settings","children","optionsSelector","setLocale","dayjs","setDarkMode","dark_mode","documentElement","setAttribute","currentLocale","allowedLocales","Object","freeze","algorithm","colorPrimary","fontSize","components","Table","headerBg","rowHoverBg","Tooltip","zIndexPopup","colorBgSpotlight","DatePicker","cellHoverWithRangeBg","customAxios","create","baseURL","timeout","withCredentials","errorHandler","history","isCancel","isArrayBuffer","JSON","parse","TextDecoder","decode","NProgress","done","Sentry","notification","warning","description","key","call","makeGetRequestCreator","initialState","menuLeftData","formatedTitle","title","startCase","toLower","formatedMenu","menus","dashboard","map","itemIndex","subMenu","icon","divider","sub","row","rowIndex","subChildrenMenu","menuSetting","appMessage","settingMenus","group_id","faq","setMenu","state","updateObject","editMenu","menu","child","resetMenu","found","keys","foundChild","menuReducer","action","storedSettings","STORED_SETTINGS","isLightTheme","isSettingsOpen","isMenuTop","isBorderless","isSquaredBorders","isFixedWidth","isMenuShadow","userReducer","countries","bookingTypes","lang","setRefs","reducer","attemp","announcement","increaseAttemp","resetAttemp","setAnnouncement","payments","setPayments","addPayment","editPayment","deletePayment","filter","extra","extraId","changeStatusPayment","is_active","checked","movePayment","dragIndex","hoverIndex","srcPayment","splice","property_language","option","editOptions","demo","removeLockDate","lock_date","prevOptions","editOption","loadingOutlets","settingsOutlets","loadingOutletsDetailForm","loadingOutletsDetail","settingsOutletsDetail","posSales","pos_id","payment_type_id","booking_room_id","payment_id","table_id","gross_sales","net_sales","tax","gratuity","collected","saved_name","items","total_discount","service_charge_per","tax_per","posSalesLoading","posSalesList","listToRoomLoading","listToRoom","storePosSettings","expenseTerms","canDeletedExpenseTerms","searchText","getCanDeletedFinanceExpenseTerms","setFinanceExpenseTerms","addFinanceExpenseTerm","editFinanceExpenseTerm","deleteFinanceExpenseTerm","moveFinanceExpenseTerm","srcFinanceExpenseTerm","changeStatusFinanceExpenseTerm","filterFinanceExpenseTerm","taxes","setFinanceTaxes","addFinanceTax","editFinanceTax","moveFinanceTax","srcFinanceTax","changeStatusFinanceTax","filterFinanceTax","deleteFinanceTax","loadingProduct","dataProduct","warehouses","warehouses_has_role","adjustmentTypes","setFinanceWareHouses","addFinanceWareHouse","editFinanceWareHouse","moveFinanceWareHouse","srcFinanceWareHouse","changeStatusFinanceWareHouse","filterFinanceWareHouse","deleteFinanceWareHouse","warehouse","archiveFinanceWareHouse","is_archive","unarchiveFinanceWareHouse","setFinanceWareHousesRoles","units","canDeletedUnits","getCanDeletedUnits","setFinanceUnits","addFinanceUnit","editFinanceUnit","moveFinanceUnit","srcFinanceUnit","filterFinanceUnit","deleteFinanceUnit","unit","shippingComps","canDeletedShippingComps","getCanDeletedShippingComps","setShippingComps","addShippingComp","editShippingComp","deleteShippingComp","moveShippingComp","srcShippingComp","changeStatusShippingComp","filterShippingComp","addFinanceTransactionFee","editFinanceTransactionFee","deleteFinanceTransactionFee","filterAccountWatchlist","setDashboard","isLoadedCache","find","addDashboard","editDashboard","deleteDashboard","accountIds","type_id","setADashboard","loaded","resetDashboard","isLoaded","i","length","moveAccountWatchList","findIndex","arraymove","addMoveAccountWatchList","deleteAccountWatchList","combineReducers","expenseTerm","financeExpenseTerms","financeTaxes","financeUnits","newState","product","mapping_product_purchase","purchase_account","default","default_name","default_ref_code","ref_code","mapping_product_sales","sell_account","mapping_product_inventory","track_account","contact","mapping_contact_account_receivable","receivable_contact","mapping_contact_account_payable","payable_account","fixed_asset","mapping_fixed_asset","fixed_asset_account","stock_adjustment","mapping_stock_adjustment_inventory","account","accountCategories","bankAccounts","parent_id","products","financeProducts","contactGroups","prevCategories","productCategories","financeApproval","product_categories_has_role","accountWatchList","financeWareHouses","shippingComp","accountTransactionReport","show","auditModal","getData","idCardTypes","fees","paymentConnectProviders","setBilling","selectedEndpoint","setWebsiteId","website_id","setEndpoint","company","Axios","defaults","setInitial","setTranslation","category","setBroadcast","clearBroadcast","showBroadcast","hideBroadcast","markAsReadBroadcast","setTutorials","setReviews","loginFormReducer","custom_column_types","custom_columns","custom_column_items","setCustomColumns","addCustomColumn","editCustomColumn","deleteCustomColumn","moveCustomColumn","srcCustomColumn","changeStatusCustomColumn","addCustomColumnItem","editCustomColumnItem","deleteCustomColumnItem","moveCustomColumnItem","changeStatusCustomColumnItem","setDefaultMessage","editDefaultMessage","currencies","multi_currencies","base_currency_editable","multi_currency_deactive_enabled","setCurrencies","setTenantCurrencies","addTenantCurrency","multiCurrencies","currency","code","symbol","editTenantCurrency","currency_id","deleteTenantCurrency","activatedCurrency","deactivatedCurrency","setBaseCurrency","salutationReducer","salutations","maintenanceReducer","onboarding_checklist","setOnboardingChecklist","onboardingChecklistReducer","outletsReducer","outlet","maxCompaniesReducer","composeEnhancers","window","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","sentryReduxEnhancer","configureStore","routeMiddleware","routerMiddleware","middlewares","thunk","createStore","router","connectRouter","refs","inits","posSettings","finance","billing","billingPos","translation","broadcast","show_nps","show_hr_addon","tutorials","reviews","loginForm","customColumn","defaultMessage","multiCurrency","reasons","maintenance","max_companies","maxCompanies","onboardingChecklist","outlets","reducers","applyMiddleware","dsn","release","normalizeDepth","ignoreErrors","createHashHistory","initializeTagManager","initializeFp","common","interceptors","request","use","isAuthorization","requestHandler","newToken","successHandler","queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","library","fas","Chart","register","ArcElement","BarElement","CategoryScale","Filler","LinearScale","LineElement","PointElement","Legend","Title","AppContainer","listen","trackingPage","AppProvider","isMobileMenuOpen","isMenuCollapsed","client","clientId","ReactDOM","createRoot","render","Cypress","getFinanceAccounts","getFinanceAccountsStats","addFinanceAccount","editFinanceAccount","deleteFinanceAccount","getSuggestionFinanceAccount","getSuggestionFinanceParentAccountWithPagination","getFinanceAccount","getListFinanceBankAccounts","uploadImportFinanceAccount","executeImportFinanceAccount","exportAccounts","getFinanceAccountRoles","addFinanceAccountRoles","resource","login","remember","changePassword","revokeLogin","loginWithSso","getCustomColumns","srcId","destId","dest_id","activateCustomColumn","deactivateCustomColumn","getCustomColumnsItem","activateCustomColumnItem","deactivateCustomColumnItem","isSameOrBefore","require","extend","arr","fromIndex","toIndex","element","disabledTransDate","reduxStore","getState","transDateValidator","rule","getTemplateUrl","fileName","byPassEndpoint","localStore","apiUrl","baseUrl","hostname","splitHostname","split","protocol","getMax","max","obj","undefined","_url","forceCancellation","forceCancellationWithURL","cancel","CancelToken","source","cancelToken","isDesktopLayout","discountType","isDiscountNumeric","purchase_discount_numeric","sale_discount_numeric","Blob","fileURL","createObjectURL","tempLink","href","click","openNewTab","moduleUrl","withBaseUri","filterOption","input","toString","toLowerCase","indexOf","copyclip","textField","innerText","select","execCommand","getMobileOperatingSystem","userAgent","navigator","vendor","opera","test","MSStream","useDebounce","delay","React","debounce","parseUrlToFileName","splitPath","decodeURI","last","replaceSlash","replaceable","isPaidFeature","hidden_feature","hidden_feature_elite","hidden_feature_champion","feature","isFeaturePro","isFeatureElite","isFeatureChampion","makeYears","min","years","year","getBase64","img","reader","FileReader","addEventListener","readAsDataURL","isValidJson","str","compare","prevProps","nextProps","compareWithJSON","cache","stripTagsRDW","blocks","newBlocks","isArray","block","entityRanges","sortDate","sort","prevDate","nextDate","Date","getTime","hexToRGB","h","r","g","b","luminance","a","extractRgb","stringRgb","num","Number","checkContrast","rgb1","rgb2","lum1","lum2","setFinanceConfigDefaultAccount","addFinanceBankAccount","editFinanceBankAccount","deleteFinanceBankAccount","setFinanceProductCategories","filterAccountWatchList","addAccountWatchList","watchlistsDashboardPost","addAccountWatchListRedux","moveAccountWatchListRedux","watchlistsDashboardMove","deleteAccountWatchListRedux","watchlistsDashboardDelete","setPaymentConnectProviders","setFinance","contactTypes","contact_type","contactType","term","customer","setFinanceConfig","setFinanceAccountCategories","setFinanceProductCategoriesRoles","setFinanceBankAccounts","setIDCardTypes","id_card_types","setFinanceApproval","finance_approval","payment_connect_providers","Array","setTransactionFees","initsFinance","showAccountTransactionReport","hideAccountTransactionReport","showAuditModal","hideAuditModal","getFinanceWareHouses","getFinanceWareHouse","deleteFinanceWareHousePhoto","deleteFinanceWareHousePhotoOnEdit","getFinanceWareHouseLog","getFinanceWareHouseTransactions","activateFinanceWareHouse","deactivateFinanceWareHouse","getFinanceWareHouseTransfers","exportFinanceWarehouseTransfers","getFinanceWareHouseTransfer","includeStockBefore","include_stock_before","getFinanceWareHouseTransferLog","addFinanceWareHouseTransfer","editFinanceWareHouseTransfer","deleteFinanceWareHouseTransfer","deleteOnAddFinanceWareHouseTransferAttachment","deleteOnEditFinanceWareHouseTransferAttachment","uploadImportFinanceWarehouseTransfer","executeImportFinanceWarehouseTransfer","getFinanceWarehouseRoles","addFinanceWarehouseRoles","approveWarehouseTransfer","rejectWarehouseTransfer","revertWarehouseTransfer","addFinanceWarehouseContactGroups","getWarehousesSummary","module","exports","getDashboards","moveDashboards","activateDashboards","deactivateDashboards","getAllDashboards","getCaches","names","nameString","join","initsSelector","createSelector","settingsSelector","mobileViewSelector","selectFinance","tabViewSelector","warehouseSelector","warehousesSelector","warehousesHasRoleSelector","taxesSelector","tutorialsSelector","shippingCompSelector","shippingCompsSelector","productCategoriesSelector","translationSelector","titleSelector","__","reportTitleSelector","reportmenu","termTitleSelector","contactTypeSelector","bank_tran_status","contactSelector","desktopLayoutSelector","auditModalSelector","accountTransReportSelector","locationSelector","parseLocationSearchSelector","search","termSelector","activeTermsSelector","terms","firstTermSelector","first","firstWarehouseSelector","unArchiveWarehouses","unitsSelector","broadcastSelector","showNPSSelector","billingSelector","billingPosSelector","loginFormSelector","selectCompanies","companiesSelector","selectedEndpointSelector","hiddenFeatureSelector","contactGroupsSelector","defaultMessageSelector","customColumnSelector","hrisSelector","multiCurrencySelector","contactIdCardTypeSelector","optionSelector","darkModeSelector","companySelector","bankAccountsSelector","tempTransKeySelector","searchs","tempTransKey","websiteIdSelector","companyLogoSelector","property_logo","companyDetailsSelector","property_name","property_email","property_phone","property_address","property_address_delivery","property_country_id","property_npwp","productCategoriesHasRolesSelector","financeApprovalSelector","paymentConnectProvidersSelector","maintenanceSelector","maxCompaniesSelector","translationReportmenuSelector","accountCategoriesSelector","cashBankAccountCategoriesSelector","transactionFeesSelector","multi_currency","property_currency_id","makeTransactionFeeFilteredResults","searchResults","dashboardSelector","bank_account_sort_by","outletsSelector","relatedReportSelector","related_report_menu","relatedReportMenu","makeCashBanksResults","bankAccountSortBy","multiCurrencyOption","property_currency_symbol","propertyCurrencySymbol","isMultiCurrency","searchToLowerCase","findData","dashboard_id","newRow","currencySymbol","closing_balance","statement_balance","graph","daterange","lastCache","findMultiCurrency","some","getCanDeletedFinanceExpenseTerm","activateFinanceExpenseTerm","deactivateFinanceExpenseTerm","getSuggestionFinanceExpenseTerm","activateShippingComp","deactivateShippingComp","getCanDeletedShippingComp","getTenantCurrencies","activateTenantCurrency","deactivateTenantCurrency","editTenantCurrencySource","getTenantCurrencyRate","editTenantCurrencyRate","getCurrencyRateSource","editBaseCurrency","useAccountsSuggestion","apiOptions","RQOptions","useQuery","keepPreviousData","useInfiniteAccountSuggestion","withParent","extraQueryKey","queryKey","useInfiniteQuery","pageParam","Error","getNextPageParam","lastPage","current_page","last_page","useAccounts","enabled","useAccountsStats","useAccountDetail","useAccount","useAccountRoles","useAddAccountRoles","useMutation","useAddAccount","useUploadImportFinanceAccountMutation","useExecuteImportFinanceAccountMutation","useBankReconciles","useMassReconcileInfo","setMassReconciliationInfo","setLoadingMassReconciliation","res","useBankStatements","savePerPage","banks_per_page_default","useMultiBankReconciliation","useBankTranses","useRecurringBankTranses","useInvoicePayment","usePurchaseInvoicePayment","useBankTransDeleteAttachment","useUploadImportFinanceBankTransfer","useExecuteImportFinanceBankTransfer","useExpenses","expenses_per_page_default","useRecurringExpenses","useExpenseOverview","useExpense","useExpenseAccountChart","useExpenseContactChart","useApproveExpense","useQueryClient","invalidateQueries","useRejectExpense","useRevertApprovalFinanceExpense","useDeleteExpense","useExpensePaymentFinanceBankTrans","useDeleteOnAddFinanceBankTransAttachment","useFixedAssets","useFixedAssetAccumulatedDepreciation","useFixedAssetsTopAcquisitionPriceStats","useFixedAssetsTopAssetValueStats","useFixedAssetsAssetValueStats","useFixedAssetsAssetsDepreciationStats","useFixedAssetsAssetDisposalStats","useUploadImportFinanceFixedAssetMutation","useExecuteImportFinanceFixedAssetMutation","useFixedAsset","useDeleteFixedAsset","useRevertDisposeFinanceFixedAsset","useRollbackDepreciationFinanceFixedAsset","useRecurringManualJournals","useUploadImportFinanceManualJournalMutation","useExecuteImportFinanceManualJournalMutation","useDeliveries","saveDataPagination","optionsState","sales_per_page_default","useGetMinTransDateFinanceDeliveryMutation","trans_type","useInputMassCreateFinanceDeliveryMutation","useInvoices","additionalQueryKey","useRecurringInvoices","useInvoice","useInvoicePublicUrl","useDeleteInvoice","useChangeInvoiceTaxNumber","useApproveInvoice","useRejectInvoice","useRevertApprovalFinanceInvoice","useUploadImportFinanceInvoiceReturn","useExecuteImportFinanceInvoiceReturn","useVoidInvoice","useUnvoidInvoice","useUploadImportFinanceInvoiceRecurringMutation","useExecuteImportFinanceInvoiceRecurringMutation","useUploadImportStatusFinanceInvoiceMutation","useExecuteImportStatusFinanceInvoiceMutation","useGetMinTransDateFinanceInvoiceMutation","useInputMassCreateFinanceInvoiceMutation","useOrders","useRecurringOrders","useMutationOrderPaymentFinanceBankTrans","useUploadImportFinanceOrderMutation","useExecuteImportFinanceOrderMutation","useGetMinTransDateFinanceOrderMutation","useInputMassCreateFinanceOrderMutation","usePurchaseDeliveries","purchases_per_page_default","useGetMinTransDateFinancePurchaseDeliveryMutation","useInputMassCreateFinancePurchaseDeliveryMutation","usePurchaseInvoices","useRecurringPurchaseInvoices","usePurchaseInvoice","usePurchaseInvoicePublicUrl","useDeletePurchaseInvoice","useApprovePurchaseInvoice","useRejectPurchaseInvoice","useRevertApprovalFinancePurchaseInvoice","useUploadImportFinancePurchaseInvoiceMutation","useExecuteImportFinancePurchaseInvoiceMutation","useUploadImportStatusFinancePurchaseInvoiceMutation","useExecuteImportStatusFinancePurchaseInvoiceMutation","useGetMinTransDateFinancePurchaseInvoiceMutation","useInputMassCreateFinancePurchaseInvoiceMutation","usePurchaseOrders","useRecurringPurchaseOrders","useMutationPurchaseOrderPaymentFinanceBankTrans","useUploadImportFinancePurchaseOrderMutation","useExecuteImportFinancePurchaseOrderMutation","useGetMinTransDateFinancePurchaseOrderMutation","useInputMassCreateFinancePurchaseOrderMutation","usePurchaseQuotes","useUploadImportFinancePurchaseQuoteMutation","useExecuteImportFinancePurchaseQuoteMutation","useQuotes","useUploadImportFinanceQuoteMutation","useExecuteImportFinanceQuoteMutation","useReturns","usePurchaseReturns","usePurchaseInvoicePaymentDebitMemo","getPurchaseInvoicePaymentDebitMemo","useEditPurchaseInvoicePaymentDebitMemo","editPurchaseInvoicePaymentDebitMemo","useDeletePurchaseInvoicePaymentDebitMemo","deletePurchaseInvoicePaymentDebitMemo","useAddPurchaseInvoicePaymentDebitMemo","addPurchaseInvoicePaymentDebitMemo","useInvoicePaymentCreditMemo","getInvoicePaymentCreditMemo","useAddInvoicePaymentCreditMemo","addInvoicePaymentCreditMemo","useEditInvoicePaymentCreditMemo","editInvoicePaymentCreditMemo","useDeleteInvoicePaymentCreditMemo","deleteInvoicePaymentCreditMemo","useCommissions","useCommission","useCommissionTypes","useTag","useTagRoles","useTagDetail","useRoles","getRoles","useRole","getRole","usePriceRules","getPriceRules","useCreatePriceRule","addPriceRule","useEditPriceRule","editPriceRule","useDeletePriceRule","deletePriceRule","usePriceRule","getPriceRule","getFinanceLayoutBarcode","editFinanceLayoutBarcode","resetFinanceLayoutBarcode","useFinanceLayoutBarcode","useEditFinanceLayoutBarcode","useResetFinanceLayoutBarcode","useProductFavorites","useCreateProductFavorites","useDeleteProductFavorites","useMoveProductFavorite","useOutlets","useCreateOutlet","useEditOutlet","useDeleteOutlet","usePosUsers","useFaqCategory","getFaqCategory","useInfiniteFAQs","getFaqs","useFaqDetail","getFaqDetail","useLikeFaq","likeFaq","setQueryData","useDislikeFaq","dislikeFaq","useLayoutReportVariable","useBackupDatabase","usePrepareBackupDatabase","useEmailTemplateCustomerBirthday","useUpdateEmail","useRevertEmail","useAddFavoriteReport","useDeleteFavoriteReport","useCanBeDeletedFinanceTax","getCanDeletedFinanceTax","useCalculateTaxGroupTotal","calculateTaxGroupTotal","useOnboarding","useOnboardingStatus","useUsers","getUsers","useLoginWithSsoMutation","useFinancePaymentConnectSetting","useTestConnectionPaymentConnectSettingMutation","useUpdatePaymentConnectSettingMutation","useSetDefaultPaymentConnectSettingMutation","useVideos","getVideos","useContactGroupRoles","getFinanceContactGroupRoles","useAddFinanceContactGroupRoles","addFinanceContactGroupRoles","Add","props","disabled","defaultProps","PlusOutlined","onClick","injectIntl","Cancel","CloseOutlined","Delete","danger","DeleteOutlined","Save","SaveOutlined","SaveAddNew","onClickNew","onCancel","saveMenu","label","Button","LoadingOutlined","DownOutlined","buttonsRender","btns","flex","Back","useHistory","goBack","ArrowLeftOutlined","backgroundColor","Edit","EditOutlined","Filter","showClearBtn","onClear","FilterOutlined","Print","PrinterOutlined","Pdf","FilePdfOutlined","Import","ImportOutlined","Export","ExportOutlined","Send","SendOutlined","Upgrade","UpCircleOutlined","Reset","RollbackOutlined","BackGhost","ghost","DoubleLeftOutlined","ShowColumn","UnorderedListOutlined","Unarchive","getBillingTransaction","getBillingUpgradeInfo","getBillingDowngrade","postBillingDowngrade","getBillingUpgradeAmount","upgradeBillingPlan","getBillingRevewInfo","getBillingRenewAmount","deleteBilling","getBillingToken","renewBillingPlan","getBillingAddonInfo","getBillingAddonAmount","upgradeBillingAddon","getBillingUsage","getBillingPosAddonAmount","upgradeBillingPosAddon","checkReferralCode","activateFinanceTax","deactivateFinanceTax","getFinanceTax","getTerm","plural","tag","reference","sales_person","payable","receivable","getPluralize","useTerm","Component","videoId","autoplay","opts","playerVars","mute","containerClassName","className","memo","oldObject","updatedProperties","AppContext","createContext","initialStates","setSettings","defaultValue","onChangeSettings","setSettingsToLocalStorage","Provider","useApp","context","useContext","AppConsumer","Consumer","withAppConsumer","WrappedComponent","this","appContext","getCanDeletedFinanceUnit","transType","EXPENSE","PURCHASE_ORDER","PURCHASE_INVOICE","QUOTE","INVOICE","ORDER","DELIVERY","RETURN","SPEND_MONEY","RECEIVE_MONEY","SEND_TRANSFER","RECEIVE_TRANSFER","EXPENSE_PAYMENT","PURCHASE_PAYMENT","RECEIVE_INVOICE_PAYMENT","BANK_REVERSAL","BANK_OPENING_BALANCE","REGISTER_FIXED_ASSET","BANK_MANUAL_JOURNAL","REVERSAL","OPENING_BALANCE","RECEIVE_SALES_ORDER_PAYMENT","CREDIT_MEMO_PAYMENT","DEBIT_MEMO_PAYMENT","BANK_CREDIT_MEMO","BANK_DEBIT_MEMO","PURCHASE_ORDER_PAYMENT","PAYMENT_RECAP","MANUAL_JOURNAL","INVOICE_WITHOLDING","PURCHASE_INVOICE_WITHOLDING","CREATE_FIXED_ASSET","INITIAL_DEPRECIATION","DEPRECIATION","DISPOSAL","WAREHOUSE_TRANSFER","STOCK_ADJUSTMENT","PRODUCT_CONVERSION","CREDIT_MEMO","DEBIT_MEMO","PURCHASE_QUOTE","PURCHASE_DELIVERY","PURCHASE_RETURN","CLOSING","USER","TRANSLATION","ROLE","OPTION","WAREHOUSE","TERM","TAX","PRODUCT","PRODUCT_CATEGORY","NUMBER","LAYOUT_INVOICE","FIXED_ASSET","CONVERSION_BALANCE","CONTACT","GROUP_CONTACT","ACCOUNT","BILLING","CASH_BANK","RECURRING_INVOICE","RECURRING_ORDER","RECURRING_PURCHASEINVOICE","RECURRING_PURCHASEORDER","RECURRING_EXPENSE","RECURRING_MANUALJOURNAL","RECURRING_CASHBANK","TAG","INVOICE_PAYMENT_CREDIT_MEMO","PURCHASE_INVOICE_PAYMENT_DEBIT_MEMO","UNREALIZED_GAIN","SALES_SHIPPING_COSTS","PURCHASE_SHIPPING_COSTS","REPORT_SALES_PER_SALES_PERSON","SCHEDULER_LOCK_DATE","dbFormat","paymentConst","UNPAID","PARTIAL","PAID","bankTransStatus","RECONCILED","UNRECONCILED","VOID","WAITING","REJECT","statusColors","productBundleType","GENERAL","PACKAGE","MANUFACTURE","everyType","MONTH","WEEK","availableTransType","fallbackImage","customColumnTypes","TEXT","CURRENCY","DATE","OPTIONS","CHECKLIST","priceRuleTypes","MIN_QT","MIN_AMOUNT","defaultTransItem","finance_account_id","qty","price","tax_id","desc","amount","tax_manual","discount_percent","unit_id","product_units","stock","1","colors","2","3","4","getDeletableRoles","addRole","updateRole","deleteRole","moveRole","val","unformat","symbolNon","ifNull","precision","symbolDefault","skipPrefix","show_property_currency_symbol","property_decimal","format","decimal","property_currency_format","thousand","currencyFormatter","InputCurrency","forwardRef","ref","onBlur","onPressEnter","onFocus","onChange","showPrefix","onFocusHandler","target","onKeyDownHandler","keyCode","onBlurHandler","decimalSeparator","thousandSeparator","prefix","paddingTop","paddingBottom","textAlign","onKeyDown","decimalScale","property_currency","customInput","Input","getInputRef","InputDiscount","formatter","parser","formatDate","date","property_date_format","toDbFormat","isValid","formatTime","property_time_format","stringDateToMoment","castToMoment","formatDateText","isObject","constructor","qtyToCurrency","parseFloat","toFixed","count","qtyToCurrencyAutoComma","maxPrecision","newValue","capitalizeFirstLetter","lowercaseAllFirst","charAt","toUpperCase","slice","staticTranslation","edit","detail","purchase_invoice","purchase_order","quote","invoice","transactions","bankstatements","reconcile","addUser","updateUser","deleteUser","resendInvitation","getInvoicePaymentCreditMemoLogs","getPurchaseInvoicePaymentDebitMemoLogs","markAsReadBroadcastRedux","markAsReadApi","UpgradeBilling","isPos","checkPermission","level","currentCount","maxCode","maxFeature","forceHiddenFeature","isFeatureOnlyAccess","asModal","modalProps","center","onlyPaidPlan","byPassCanBeAddoned","canBeAdOned","can_be_addoned","modalTitle","footer","maskTransitionName","isBetween","onPrevDateChange","monthly","yearly","withCustomDaterange","dateTypeKey","_date","newInnerParams","date_from","abs","date_to","diff","isAfter","endOf","onNextDateChange","startOf","subtract","getDefaultCustomDate","advancedMatching","em","autoConfig","debug","ReactPixel","tagManagerArgs","gtmId","TagManager","initialize","dataLayer","event","dataLayerName","pageView","trackingEvent","reactPixel","gtm","track","Spinner","spinning","classNames","loader","escape","autoFocus","darkMode","SearchOutlined","placeholder","escapeRegExp","allowClear","PageHeader","newExtra","active","marginBottom","DateMonth","pickerOpen","setDate","setState","togglePicker","renderNavigation","navigation","disabledDate","getDate","LeftOutlined","RightOutlined","dataTestId","data-testid","role","tabIndex","MonthPicker","open","onOpenChange","DropdownItemAction","onMouseDown","preventDefault","SearchInput","renderLoaderInfinite","infiniteScroll","infiniteData","withExtra","position","bottom","top","size","dropdownRender","onExtraClick","extraTitle","onSearch","extraIcon","innerRef","notFoundContent","popupClassName","showSearch","defaultActiveFirstOption","popupMatchSelectWidth","Option","Select","AccountDropdown","accounts","filterCategoryIds","newAccounts","finance_account_category_id","optionFilterProp","exportUrl","content","removeAfterPrint","isPrint","noPrintAction","goToLayout","withLandscape","getEmailTemplate","sendEmail","getWaTemplate","sendWaTitle","sendTitle","withoutPrint","withPrintType","printTypeModalTitle","totalData","onPrintExpanded","printProps","printExpandedProps","printCompactProps","printPortraitProps","printLandscapeProps","printGraph","contentGraph","xlsProps","csvProps","dropdownMenuPrintProps","sendEmailModal","setSendEmailModal","emailSent","setEmailSent","sendWaModal","setSendWaModal","showPrintModal","setShowPrintModal","onCloseEmailModal","exportTo","exportType","getResponseHeader","blobURL","handlePrintGraph","useReactToPrint","MailOutlined","WhatsAppOutlined","shareMenu","menuItems","trigger","landscape","ExpandOutlined","CompressOutlined","printType","FileExcelOutlined","SettingOutlined","gap","ShareAltOutlined","onCloseWaModal","SendEmailModal","onPrintPdf","lastRow","rowCount","renderPrintRow","dragingIndex","BodyRow","isOver","connectDragSource","connectDropTarget","moveRow","restProps","rowSource","beginDrag","rowTarget","drop","monitor","getItem","DragableBodyRow","DropTarget","dropTarget","DragSource","dragSource","withDragRow","DndProvider","random","backend","HTML5Backend","styled","div","h3","Overview","ToggleLabel","showTitle","hideTitle","onToggle","MinusOutlined","_path","_path2","_path3","_path4","_path5","_path6","_path7","_path8","_path9","_path10","_path11","_path12","_path13","_path14","_path15","_path16","_path17","_path18","_path19","_path20","_path21","_path22","_path23","_path24","_path25","_path26","_path27","_path28","_path29","_path30","_path31","_path32","_path33","_path34","_path35","_path36","_path37","_path38","_path39","_path40","_path41","_path42","_path43","_path44","_path45","_path46","_extends","assign","arguments","prototype","hasOwnProperty","apply","SvgEmptyData","_ref","svgRef","viewBox","fill","opacity","ForwardRef","Typography","Empty","appendDescription","onAdd","emptyTitle","emptyDescription","hasAppendDescription","emptyAddButton","image","emptyImage","empty","Text","mapStateToProps","withTitle","rowKey","columns","dataSource","rowClassName","onRow","sortDirections","summary","rowSelection","showHeader","scroll","expandedRowKeys","expandedRowRender","onExpandedRowsChange","onExpand","expandRowByClick","bordered","mobileTableByPassEmptyValue","appendEmptyDescription","formattedColumns","column","dataIndex","renderMobileRow","colVal","xs","sm","responsiveColumns","newColumns","fontWeight","emptyMessage","renderEmpty","minHeight","expandable","indicator","paragraph","left","renderCell","record","originNode","stopPropagation","Summary","titleColSpan","datas","disableResponsive","getContent","Cell","colSpan","strong","hide","align","bodyStyle","headStyle","Fragment","Row","Tags","asLink","tagProps","LinkTransType","tagLink","goTo","marginTop","Card","InnerDivider","AppHelmet","Helmet","htmlAttributes","MultipleEmailInput","validateEmail","isEmail","getLabel","removeEmail","closable","onClose","NewTextLine","onClickVideo","onClickArticle","onClickTour","visible","setVisible","clickVideoHandler","clickTourHandler","clickArticleHandler","SolutionOutlined","PlayCircleOutlined","BookOutlined","QuestionCircleOutlined","flag","afterClose","playerProps","youTubeApi","setYouTubeApi","afterCloseHandler","pauseVideo","overflow","borderBottomLeftRadius","borderBottomRightRadius","header","tip","Player","onReady","ProductTour","continuous","scrollToFirstStep","showProgress","showSkipButton","zIndex","arrowColor","textColor","primaryColor","tooltipContent","lineHeight","spotlightPadding","questionIconProps","values","link","showToday","presets","info","getMassSendEmailInfo","onExecuteMassSendEmail","onSendEmailCompleted","loadingExecute","setLoadingExecute","maskClosable","Item","form","minTransDate","onSubmit","Form","useWatch","layout","initialValues","now","getDefaultPaymentDate","trans_date_from_parent_tran","rules","required","validator","minDate","valuePropName","noStyle","direction","errors","originTransType","originTitle","ref_number","loadingTransDate","loadingInfo","getMinTransDate","getInfo","onExecute","onCompleted","formValues","setFormValues","useForm","titleName","currentType","setChannel","resetFields","destroyOnClose","htmlType","submit","percent","MessageEditor","setRef","editorState","editorStateChangeHandler","pastedTextHandler","editorRef","toolbarClassName","editorClassName","wrapperClassName","onEditorStateChange","toolbar","inline","list","handlePastedText","TextArea","SendWaModal","goToWaTamplate","formRef","createRef","loadingWaTemplate","setLoadingWaTemplate","waTemplate","setWaTemplate","phone_number","phonesNumber","setPhonesNumber","currentData","phones","Boolean","phone","getTemplate","setFieldsValue","float","HideFeature","encodeURIComponent","substring","pattern","phoneNumber","autoSize","minRows","maxRows","SendSmsModal","getSmsTemplate","sendSms","smsSent","setSmsSent","onCloseSmsModal","plan","loadingSendSms","setLoadingSendSms","loadingSmsTemplate","setLoadingSmsTemplate","smsTemplate","setSmsTemplate","showCount","idLocale","ok","pushPath","balance_sheet","permission","cash_flow","profit_and_loss","equity_movement","executive_summary","payable_credit_per_contact","bank_summary","general_ledger","journal","trial_balance","sales_detail","aged_receivables","customer_invoice","profitability_product","profitability_per_invoice","income_per_customer","sales_per_product","order_per_product","sales_per_sales_person","sales_delivery","shipping_cost_per_expedition","invoice_payment","sales_per_product_category","product_sales_per_customer","sales_per_period","purchase_detail","aged_payables","supplier_invoice","purchases_per_product","purchases_per_supplier","purchase_delivery","purchases_invoice_payment","product_purchases_per_supplier","purchases_per_period","expense_per_contact","expense_claim_detail","sales_tax","witholding_tax","inventory_summary","inventory_stock_movement","warehouse_stock_summary","warehouse_stock_movement","production","report_inventory_stock_adjustment","inventory_warehouse_transfer","fixed_asset_summary","fixed_asset_detail","fixed_asset_disposal","budget","budget_profit_loss","attachment","export","import","filteredItems","BlockLoader","justify","ComponentLinkTitle","textLinkDark","titleOnPrint","titleProps","subtitle","withFilter","withDateFilter","initialParams","onParamsChange","withCustomDateType","dateTypes","cardHeaderMarginBottom","onRenderTitle","forceCustomDaterange","placeholderDateFrom","formatPickerDateFrom","pickerTypeDateFrom","placeholderDateTo","formatPickerDateTo","pickerTypeDateTo","daterangeOnly","dateOnly","cardClassName","cardProps","legacy","customDateType","customDateTypeKey","filterFormRef","dropdownDateTypeData","daily","today","yesterday","this_month","last_month","this_year","last_year","dateKey","changeDateRangeHandler","custom_daterange","renderFilter","tag_ids","sales_id","TagSuggestion","UserSuggestion","onClearFilter","unClearFilter","showClearFilter","borderRadius","LinkTitle","_extra","placement","validateFields","DropdownDate","setDateRange","selectedKeys","dateType","datasets","onRenderLabelsData","onRenderLabelsTooltips","onRenderYAxesTicks","scalesXAxesProps","scalesYAxesProps","renderLabelsTooltips","tooltipItem","dataset","raw","renderTicks","newScalesXAxesProps","merge","stacked","newScalesYAxesProps","ticks","ComponentChart","Pie","Doughnut","Bar","Line","ChartJs","tooltip","mode","intersect","callbacks","scales","x","y","RatioChart","ratio","rawRatio","loadingType","ratioSvgWidth","ratioSvgHeight","needleClassName","speedometerClassName","ratioClassName","descriptionClassName","chartDescription","chartDescriptionClassName","xmlns","maskType","maskUnits","mask","transformOrigin","transform","transition","Paragraph","numOfTransaction","rawPercent","descriptionBottomRight","percentStyle","renderCustomChart","CustomChart","showStatistic","statisticContainerClassName","amountClassName","numOfTransactionClassName","statisticClassName","percentClassName","widgetContainerClassName","container","amountDark","numOfTransactions","statistic","Container","Wrapper","Overlay","DemoWarning","showIcon","to","TrialWarning","expiry_date","remainingDays","alertMessage","hoursUntilMidnight","upgradeLink","commonValues","hour","days","getTrialMessage","SubscriptionWarning","expired_warning_closed","RowItemPrint","contentAsHTML","span","dangerouslySetInnerHTML","__html","Placeholder","DetailPlaceholder","offset","restricted","isHasAccessDashboard","goToDashboard","subTitle","YearSelector","withTagSuggestion","HOC","super","searchHandler","getDataDebounced","callBack","permissions","ownerOnly","hasMore","_isMounted","filteredData","tags_other_user_access","owner_id","loadMore","scrollHandler","scrollTop","offsetHeight","scrollHeight","scrollTo","loadMoreThrottled","resetSearchHandler","throttle","componentDidMount","componentWillUnmount","formItemLoader","hasFeedback","validateStatus","tags","loadingSearchTag","onSearchTag","formItemLoaderTag","onLoadMore","onFetchData","onResetSearch","withAddTag","toggleModalHandler","addFormRef","showModal","submitHandler","errorFields","scrollToField","loadingTag","showTagModal","onToggleTagModal","tagFormRef","onSubmitTag","PureComponent","containerId","uuid","popUpClassName","defaultTags","finishFirstSync","allItem","afterSavedHandler","newData","onAfterSaved","showAddTagHandler","popUpScrollHandler","afterVisibleChangeHanlder","resetScrollTop","dropdownVisibleChangeHandler","scrollToN","nodes","childNodes","getElementsByClassName","getPopupContainer","defaultTag","execludeTags","asFilter","exclude","unshift","isCanAdd","findItem","selectedHandler","newTags","getFieldValue","setFieldValue","onSelect","searchChangeHandler","deselectHandler","onDeselect","clearHandler","componentDidUpdate","getDefaultTags","withLabel","initialValue","styleFormItem","isListField","fieldKey","withTerm","formItemClassName","newInitialValue","_label","_placeholder","_extraTitle","_term","onPopupScroll","onDropdownVisibleChange","tagRender","tagLabel","AddFinanceTag","confirmLoading","hideHandler","getModulePermissions","isValidKey","spliteKey","setDraftTransaction","storeDate","storedData","getDraftTransaction","removeTempTransaction","expires","cleanInvalidDraftTransaction","useProductsSuggestion","useProducts","products_per_page_default","useProductStockMovements","showColumns","useProductDetail","useProduct","useConversionProduct","useProductStockMovementChart","useProductMovementByCategoryChart","useProductValueMovementChart","useProductRoles","useMutateSuggestionBarcodeProduct","useProductSummary","useProductSalesPurchaseStats","useProductStockMovementStats","useProductWarehouseQtyStats","useProductTransactions","useProductStock","useStockStatusStats","useStockPerCategoryStats","useProductPerCategoryStats","useProductsSummary","useDeleteProduct","useArchiveProduct","useUnArchiveProduct","useEditProduct","useAddProduct","useEditUnitConversion","useInfiniteProductSuggestion","getUrl","isCashBank","force","accountId","warehouseId","isDetail","userId","findPermissionRecursive","recursive","suffixUrl","uri","currentTitle","spreadProps","warehousesRole","sizes","screenSizes","setScreenSizes","md","lg","xl","xxl","setLayoutView","load","windowWidth","global","innerWidth","currentMobileState","prevMobileState","currentTabState","prevTabState","onResize","removeEventListener","financeReportingsGraphs","attachmentsReports","exportsReports","importsReports","importsDetailReports","importsTransactionsReports","salesPerPersonReports","getSalesPerPersonReportsWaTemplate","getSalesPerPersonReportsEmailTemplate","sendSalesPerPersonReportsEmail","salesPerPersonDailyReports","exportSalesPerPersonReports","shippingCostPerExpeditionReports","getShippingCostPerExpeditionReportsWaTemplate","getShippingCostPerExpeditionReportsEmailTemplate","sendShippingCostPerExpeditionReportsEmail","shippingCostPerExpeditionDailyReports","exportShippingCostPerExpeditionReports","inventorySummaryReports","exportInventorySmmaryReports","inventorySummaryFifoReports","exportInventorySummaryFifoReports","inventorySummaryDetailFifoReports","inventoryStockMovementReports","exportInventoryStockMovementReports","inventoryStockMovementDetailReports","inventoryStockMovementFifoReports","exportInventoryStockMovementFifoReports","inventoryStockMovementDetailFifoReports","inventoryStockAdjustmentReports","inventoryStockAdjustmentReportsWaTemplate","inventoryStockAdjustmentReportsEmailTemplate","sendInventoryStockAdjustmentReportsEmail","exportInventoryStockAdjustmentReports","inventoryStockAdjustmentDetailReports","inventoryWarehouseTransferReports","inventoryWarehouseTransferReportsWaTemplate","inventoryWarehouseTransferReportsEmailTemplate","sendInventoryWarehouseTransferReportsEmail","exportInventoryWarehouseTransferReports","inventoryWarehouseTransferDetailReports","warehouseStockSummaryReports","exportInventoryStockSummaryReports","productionReports","getProductionReportsWaTemplate","getProductionReportsEmailTemplate","sendProductionReportsEmail","exportProductionReports","generalLedgerReports","generalLedgerAccountsReports","exportGeneralLedgerAccountsReports","generalLedgerAccountsDetailReports","generalLedgerStatsReports","getGeneralLedgerReportsWaTemplate","getGeneralLedgerReportsEmailTemplate","sendGeneralLedgerReportsEmail","exportGeneralLedgerReports","generalLedgerCategoryReports","journalReports","exportJournalReports","getJournalReportsWaTemplate","getJournalReportsEmailTemplate","sendJournalReportsEmail","bankSummaryReports","getBankSummaryReportsWaTemplate","getBankSummaryReportsEmailTemplate","sendBankSummaryReportsEmail","exportBankSummaryReports","salesTaxReports","exportSalesTaxReports","salesTaxDetailReports","customerInvoiceReports","customerInvoiceDetailReports","getCustomerInvoiceReportsWaTemplate","getCustomerInvoiceReportsEmailTemplate","sendCustomerInvoiceReportsEmail","exportCustomerInvoiceReports","profitabilityPerInvoiceReports","profitabilityPerInvoiceGrandTotalReports","getProfitabilityPerInvoiceReportsWaTemplate","getProfitabilityPerInvoiceReportsEmailTemplate","sendProfitabilityPerInvoiceReportsEmail","exportProfitabilityPerInvoiceReports","incomePerCustomerReports","incomePerCustomerDetailReports","getIncomePerCustomerReportsWaTemplate","getIncomePerCustomerReportsEmailTemplate","sendIncomePerCustomerReportsEmail","exportIncomePerCustomerReports","expensePerContactReports","exportExpensePerContactReports","salesPerProductReports","getSalesPerProductReportsWaTemplate","getSalesPerProductReportsEmailTemplate","sendSalesPerProductReportsEmail","exportSalesPerProductReports","orderPerProductReports","getOrderPerProductReportsWaTemplate","getOrderPerProductReportsEmailTemplate","sendOrderPerProductReportsEmail","exportOrderPerProductReports","getSalesPerProductCategory","exportSalesPerProductCategory","queryPayload","exportSalesPerProductCategoryWhatsapp","exportSalesPerProductCategoryEmail","postSalesPerProductCategoryEmail","purchasesPerVendorReports","purchasesPerVendorDetailReports","getPurchasePerVendorReportsWaTemplate","getPurchasePerVendorReportsEmailTemplate","sendPurchasePerVendorReportsEmail","exportPurchasesPerVendorReports","purchasesPerProductReports","getPurchasePerProductReportsWaTemplate","getPurchasePerProductReportsEmailTemplate","sendPurchasePerProductReportsEmail","exportPurchasesPerProductReports","supplierInvoiceReports","getSupplierInvoiceReportsWaTemplate","getSupplierInvoiceReportsEmailTemplate","sendSupplierInvoiceReportsEmail","exportSupplierInvoiceReports","agedReceivableReports","getAgedReceivableReportsWaTemplate","getAgedReceivableReportsEmailTemplate","sendAgedReceivableReportsEmail","exportAgedReceivableReports","agedReceivableDetailReports","exportAgedReceivableDetailReports","salesPerPeriodReports","getSalesPerPeriodReportsWaTemplate","getSalesPerPeriodReportsEmailTemplate","sendSalesPerPeriodReportsEmail","exportSalesPerPeriodReports","purchasesPerPeriodReports","getPurchasesPerPeriodReportsWaTemplate","getPurchasesPerPeriodReportsEmailTemplate","sendPurchasesPerPeriodReportsEmail","exportPurchasesPerPeriodReports","agedPayableReports","getAgedPayableReportsWaTemplate","getAgedPayableReportsEmailTemplate","sendAgedPayableReportsEmail","exportAgedPayableReports","agedPayableDetailReports","exportAgedPayableDetailReports","receivablePayableReports","exportReceivablePayableReports","getReceivablePayableReportsWaTemplate","getReceivablePayableReportsEmailTemplate","sendReceivablePayableReportsEmail","expenseClaimReports","exportExpenseClaimReports","expenseClaimDetailReports","trialBalanceReports","exportTrialBalanceReports","getTrialBalanceReportsWaTemplate","getTrialBalanceReportsEmailTemplate","sendTrialBalanceReportsEmail","profitLossReports","getProfitLossReportsWaTemplate","getProfitLossReportsEmailTemplate","sendProfitLossReportsEmail","exportProfitLossReports","consolidationProfitLossReports","exportConsolidationProfitLossReports","cashFlowReports","getCashFlowReportsWaTemplate","getCashFlowReportsEmailTemplate","sendCashFlowReportsEmail","exportCashFlowReports","cashFlowDetailReports","consolidationCashFlowReports","exportConsolidationCashFlowReports","balanceSheetReports","getBalanceSheetReportsWaTemplate","getBalanceSheetReportsEmailTemplate","sendBalanceSheetReportsEmail","exportBalanceSheetReports","consolidationBalanceSheetReports","exportConsolidationBalanceSheetReports","consolidationWorksheetReports","exportConsolidationWorksheetReports","equityMovementReports","getEquityMovementReportsWaTemplate","getEquityMovementReportsEmailTemplate","sendEquityMovementReportsEmail","exportEquityMovementReports","executiveSummaryReports","getExecutiveSummaryReportsWaTemplate","getExecutiveSummaryReportsEmailTemplate","sendExecutiveSummaryReportsEmail","exportExecutiveSummaryReports","fixedAssetDetailReports","exportFixedAssetDetailReports","fixedAssetReports","exportFixedAssetReports","fixedAssetReleaseReports","exportFixedAssetReleaseReports","witholdingTaxReports","exportWitholdingTaxReports","salesDeliveryReports","getSalesDeliveryReportsWaTemplate","getSalesDeliveryReportsEmailTemplate","sendSalesDeliveryReportsEmail","exportSalesDeliveryReports","purchaseDeliveryReports","getPurchaseDeliveryReportsWaTemplate","getPurchaseDeliveryReportsEmailTemplate","sendPurchaseDeliveryReportsEmail","exportPurchaseDeliveryReports","addBudgetReports","budgetReports","exportBudgetsReports","budgetDetailReports","editBudgetReports","deleteBudgetReports","budgetProfitLossReports","exportBudgetProfitLossReports","budgetProfitLossDetailReports","salesDetailReports","getSalesDetailReportsWaTemplate","getSalesDetailReportsEmailTemplate","sendSalesDetailReportsEmail","exportSalesDetailReports","purchaseDetailReports","getPurchaseDetailReportsWaTemplate","getPurchaseDetailReportsEmailTemplate","sendPurchaseDetailReportsEmail","exportPurchaseDetailReports","productProfitabilityReports","exportProductProfitabilityReports","invoicePaymentReports","exportInvoicePaymentReports","getInvoicePaymentReportsWaTemplate","getInvoicePaymentReportsEmailTemplate","sendInvoicePaymentReportsEmail","purchaseInvoicePaymentReports","exportPurchaseInvoicePaymentReports","getPurchaseInvoicePaymentReportsWaTemplate","getPurchaseInvoicePaymentReportsEmailTemplate","sendPurchaseInvoicePaymentReportsEmail","exportProductSalesContacts","getProductSalesContacts","getProductSalesContactsDetails","getProductSalesContactWATemplate","getProductSalesContactEmailTemplate","postProductSalesContactEmailReport","getProductPurchasesContactsDetails","getProductPurchasesContacts","exportProductPurchasesContacts","getProductPurchasesContactWATemplate","getProductPurchasesContactEmailTemplate","postProductPurchasesContactEmailReport","getUnrealizedGain","getQueues","useBreakpoint","Grid","pageSize","pageSizeOptions","onShowSizeChange","isSmall","DEFAULT_PER_PAGES","Pagination","showPageSizeChangeOnSinglePage","disableFloat","innerPageSizeOptions","showSizeChanger","showTotal","hideOnSinglePage","profile_image","loginReduxFailure","isLocalhost","match","origin","swUrl","fetch","contentType","serviceWorker","ready","registration","unregister","reload","registerValidSW","checkValidServiceWorker","onupdatefound","installingWorker","installing","onstatechange","controller","onUpdate","ServiceWorkerContext","ServiceWorkerProvider","waitingServiceWorker","setWaitingServiceWorker","assetsUpdateReady","setAssetsUpdateReady","assetsCached","setAssetsCached","updateAssets","withReload","postMessage","waiting","useServiceWorker","api","addFinanceWareHouseRedux","editFinanceWareHouseRedux","moveFinanceWareHouseRedux","deleteFinanceWareHouseRedux","archiveFinanceWareHouseRedux","unarchiveFinanceWareHouseRedux","hover","editOptionsRedux","loadingMessage","successMessage","withEditCompanyName","prevOption","confirmEmail","email_confirmed","setLockDateOption","setLockDateRedux","removeLockDateOption","onBoardingProcess","redux","editOptionRedux","addCustomColumnRedux","editCustomColumnRedux","deleteCustomColumnRedux","moveCustomColumnRedux","changeStatusCustomColumnRedux","addCustomColumnItemRedux","editCustomColumnItemRedux","deleteCustomColumnItemRedux","moveCustomColumnItemRedux","changeStatusCustomColumnItemRedux","setOutlets","addOutlet","withTranslation","scrollBarRef","joyrideRef","run","setRun","steps","setSteps","joyrideCallbackHandler","ACTIONS","PREV","scrollToTop","CLOSE","STATUS","FINISHED","SKIPPED","START","startTourHandler","helpers","next","formatSteps","hideFooter","src","right","joyrideCallback","hideOnEmpty","visiblePlayer","setVisiblePlayer","stepIndex","setStepIndex","tutorial","openTourHandler","EVENTS","STEP_AFTER","TARGET_NOT_FOUND","stepI","video_id","article","useContactsSuggestion","useContacts","contacts_per_page_default","useContactDetail","useContactTransaction","useContactMoneyInOut","useContactSalesStats","useInfiniteContactSuggestion","useDeleteContact","useArchiveContact","useUnarchiveContact","useTransactionsContact","getFinanceContactGroups","addFinanceContactGroup","editFinanceContactGroup","deleteFinanceContactGroup","moveFinanceContactGroup","canBeDeletedContactGroup","defaultUser","hideTagOnFirstLoading","isReadyToFetch","withPermission","hideLabel","excludeUsers","activeUser","isOtherSalesPersonAccessPermission","isOtherSalesPersonAccess","setOpen","enabledQuery","setEnabledQuery","fetcher","isLoading","makeDefaultUser","formattedOptions","filterOptionHandler","fieldNames","useNumberNext","restPayload","useFinanceNumberTrans","useDeleteFinanceNumberTrans","useFinanceNumberDetailLog","relativeTime","loadingMore","onHideParent","isMain","initialLoad","pageStart","useWindow","avatar","entries","typeDonut","action_type_cat","paddingRight","itemTime","created_at","fromNow","itemSeparator","donut","itemContent","action_type_id","trans_type_id","tran_id","warehouse_id","user_id","remote_addr","rel","PRESENTED_IMAGE_SIMPLE","addFinanceUnitRedux","editFinanceUnitRedux","moveFinanceUnitRedux","deleteFinanceUnitRedux","addFinanceProductCategory","editFinanceProductCategory","deleteFinanceProductCategory","moveFinanceProductCategory","canBeDeletedProductCategory","getFinanceProductCategoriesRoles","addFinanceProductCategoriesRoles","getCanDeletedExpenseTerms","addFinanceExpenseTermRedux","editFinanceExpenseTermRedux","deleteFinanceExpenseTermRedux","moveFinanceExpenseTermRedux","changeStatusFinanceExpenseTermRedux","addTransactionFeeRedux","editTransactionFeeRedux","deleteTransactionFeeRedux","addShippingCompRedux","editShippingCompRedux","deleteShippingCompRedux","moveShippingCompRedux","changeStatusShippingCompRedux","emailPayment","goToEmailTamplate","withRelationAttachment","loadingSendEmail","setLoadingSendEmail","loadingEmailTemplate","setLoadingEmailTemplate","emailTemplate","setEmailTemplate","subject","setEditorState","EditorState","createEmpty","emailsTo","setEmailsTo","searchEmails","setSearchEmails","emailOpen","setEmailOpen","emailTemplatePermission","emails","reply_email_address","reply_email_addresses","resData","mail_to_all","mail_to","mail","blocksFromHTML","htmlToDraft","createWithContent","ContentState","createFromBlockArray","contentBlocks","entityMap","onSendEmail","rawContentState","convertToRaw","getCurrentContent","draftToHtml","changeEmailsToHandler","_mails","mail_from","border","inputClassName","afterUpdatedOption","closeAfterUpdate","ProductDetailContext","trans_type_ids","transactionsActiveTab","initial","tableName","ProductDetailProvider","useReducer","updateParams","updateTransactionsActiveTab","useProductDetailContext","Copy","onExport","downloadLink","blob","matches","exec","download","useExport","handleExport","ParseURIToParams","build","pass","string","validValues","number","int","isInteger","array","parseParam","selectedName","idOnly","object","newShowColumns","fallbackTitle","fallbackLink","pageTitle","useFinanceWareHouseTransfers","useUploadImportFinanceWarehouseTransferMutation","useExecuteImportFinanceWarehouseTransferMutation","useAddWarehouseContactGroupsMutation","useWarehousesSummary","useWarehouses","TABLE_NAME","DEFAULT_COLUMNS","HPPSkeleton","Skeleton","filterParams","LoadingInvalidData","show_columns_stock_movements","showColumnFormRef","showExport","setShowExport","isHasInvalid","setIsHasInvalid","selectedTags","setSelectedTags","stock_movements_tags","decodeURIComponent","transTypeFromRedux","getTransType","transTypeIds","_transType","newInitialParams","newParams","isDesktopView","parseParams","refetchInterval","formattedData","_isHasInvalid","mergedParams","has","newObject","otherQuery","parseInt","stockMovementQuery","joinQuery","parseColumns","columnsArray","columnChanges","columnName","business_tran_id","product_show_hpp","formatText","showExportHandler","hideExportHandler","exportStockMovementHandler","renderExportRow","isDirtyFilter","paramsChangeHandler","filterVisibleChangeHandler","oldParams","pageSizeChangeHandler","tableChangeHandler","columnKey","clearFilterHandler","selectTagHandler","deselectTagHandler","clearTagHandler","_currentParams","onSelectTag","onDeselectTag","onClearTag","withTag","withTransType","onChangeShowColumns","col","renderShowColumns","newCol","onPageChange","onPageSizeChange","flowMenus","menuName","optionName","checkAlurFlow","findMenu","isShow","appConnect","app","is_editable","addFinanceTaxRedux","editFinanceTaxRedux","moveFinanceTaxRedux","changeStatusFinanceTaxRedux","deleteFinanceTaxRedux","setMultiCurrenciesRedux","activatedTenantCurrency","findCurrency","base_currency","deactivatedTenantCurrency","addTenantCurrencyRedux","editTenantCurrencyRedux","param","base_currency_id","is_deletable","setBaseCurrencyRedux","deleteTenantCurrencyRedux","setMaxCompanies","setNPS","setSalutations","setReasons","setHris","message_default","billing_pos","setBillingPos","maxAttemp","finally","initsPublic","quotes","initialStateUser","useGoBack","fallBackUrl","isReplace","MONTHLY","YEARLY","ThreeDotsIcon","stroke","strokeWidth","strokeLinecap","strokeLinejoin","keepCustomDateType","popoverVisible","setPopoverVisible","currentInitialParams","innerParams","setInnerParams","customDateranges","onSetDateRange","newPayload","selected_daterange","onChangeDate","onDateFromDateChange","dateMoment","onDateToChange","getPlaceholder","currentPickerTypeDateFrom","currentPickerTypeDateTo","currentFormatDatePickerFrom","currentFormatDatePickerTo","customDateTypeValue","picker","newItems","idx","visibility","parseSelectedKeys","visibleChangeHandler","popoverContent","borderRight","buttonTransparent","component","useFinanceReportingsGraphs","useGetProductSalesContactsDetails","useGetProductPurchasesContactsDetails","useSalesTaxDetailReport","useInventoryStockAdjustmentReport","useInventoryStockAdjustmentDetailReport","useInventoryWarehouseTransferReport","useInventoryWarehouseTransferDetailReport","useSalesTaxReport","useWitholdingTaxReport","useExpensePerContactReport","useExpenseClaimReport","useExpenseClaimDetailReports","useFixedAssetReports","useFixedAssetDetailReport","useFixedAssetReleaseReport","useAttachmentsReport","useExportsReport","useImportsReport","useImportsDetailReport","useImportsTransactionsReport","useInventorySummaryReport","useInventorySummaryFifoReports","useInventorySummaryDetailFifoReports","useWarehouseStockSummaryReports","useProductionReport","useInventoryStockMovementReport","useInventoryStockMovementDetailReport","useInventoryStockMovementFifoReport","useInventoryStockMovementDetailFifoReport","useBudgetReport","useAddBudgetReport","useBudgetDetailReport","useEditBudgetReport","useDeleteBudgetReport","useBudgetProfitLossReport","useBudgetProfitLossDetailReport","useSalesDetailReport","usePurchaseDetailReport","useAgedReceivableReport","useAgedReceivableDetailReport","useAgedPayableReport","useAgedPayableDetailReport","useCustomerInvoiceReport","useCustomerInvoiceDetailReport","useSupplierInvoiceReport","useSalesPerProductReport","additionalKeys","useOrderPerProductReport","useProductProfitabilityReport","usePurchasesPerProductReport","useIncomePerCustomerReport","useIncomePerCustomerDetailReport","usePurchasesPerVendorReport","usePurchasesPerVendorDetailReport","useProfitabilityPerInvoiceReport","useProfitabilityPerInvoiceGrandTotalReport","useSalesPerPersonReport","useSalesPerPersonDailyReport","useSalesPerPeriodReport","usePurchasesPerPeriodReport","useSalesPerProductCategoryReport","useProductPurchasesContactsReport","useProductSalesContactsReport","useInvoicePaymentReport","usePurchaseInvoicePaymentReport","useSalesDeliveryReport","usePurchaseDeliveryReport","useShippingCostPerExpeditionReport","useShippingCostPerExpeditionDailyReport","useReceivablePayableReport","useEquityMovementReport","useProfitLossReport","useGeneralLedgerStatsReport","useGeneralLedgerReport","useGeneralLedgerAccountsReport","useGeneralLedgerAccountsDetailReport","addFinanceClosing","getFinanceClosings","getFinanceClosing","getFinanceClosingPreview","getFinanceClosingPreviewDate","deleteFinanceClosing","getTenants","getTenantFieldData","deleteTenant","registerCompany","checkTenant","getFinanceStockAdjustment","getFinanceStockAdjustmentLog","getFinanceStockAdjustments","addFinanceStockAdjustment","editFinanceStockAdjustment","deleteFinanceStockAdjustment","deleteOnAddFinanceStockAdjustmentAttachment","deleteOnEditFinanceStockAdjustmentAttachment","generateImportFinanceStockAdjustment","uploadImportFinanceStockAdjustment","executeImportFinanceStockAdjustment","getFaqsByName","RangePicker","RangeAntd","getDefaultPresets","DetailAccountModal","hasAccountPermission","showAccountTransHandler","useUnrealizedGain","setupFinishRedux","useOptionsDueReminders","useOptionsDueRemindersMutation","useEditOptions","onMutate","useEditOptionThemeColors","inputValue","Cookies","isTokenExist","getSavedEmail","Editor","getTagsHandler","tagLoading","toolbarCustomButtons","emailId","OptGroup","TagsOption","changeHandler","contentState","Modifier","replaceText","getSelection","getCurrentInlineStyle","newEditorState","forceSelection","renderOptionGroups","_termPlural","interval","intervalCountDown","ConfirmEmailModal","setLoading","runInterval","setRunInterval","countDown","setCountDown","runCountDown","setRunCountDown","countCheckOption","setCountCheckOption","setInterval","prev","checkOptionHandler","clearInterval","wrapClassName","FinanceTagForm","nameRef","focus","displayColorPicker","buttonPickerColor","overlay","disableAlpha","newColor","hex","getPermissions","getModulePermissionsRecursive","currentPermissions","_actions","isCanEdit","isCanDelete","isCanReconciliation","isCanConversionBalance","checkPermissionMain","findPermission","perms","childPerms","getFirstUrl","isGrantToDashboard","getMenus","getRedirectUrl","UserCircle","onGoogleLogin","onSsoLogin","editEmail","setEditEmail","failureGoogleLoginHandler","useGoogleLogin","onFailure","cookiePolicy","flow","savedEmail","emailRef","passwordRef","onEmailFocus","setSelectionRange","onEmailBlur","trim","getFieldsError","googleLoginHandler","requiredMark","shouldUpdate","prevValues","currentValues","currentEmail","shape","Password","alt","onBackLogin","loginWithSsoMutation","excludeTransTypeIdsForAccountTransactions","sources_id","onToggleGraph","showGraph","dateFrom","dateTo","CaretDownOutlined","newTransTypeIds","_data","transTypeIdWithColor","hoverBackgroundColor","aspectRatio","LineChart","month","shouldComponentUpdate","isSmallMobileScreen","lineTension","stack","grid","autoSkip","tickValue","arrayData","dataLabel","getLabelForValue","day","lengthOfData","_index","beginAtZero","elements","point","pointStyle","NumberOfTransactionPerSource","pie_chart","RunningBalance","line_chart","gutter","PrintAccountTransactionReport","journalTotal","getParams","headerColumns","isCategory","cashFlowDetail","opening_credit","opening_debit","opening_balance","debit","credit","balance","closing_debit","closing_credit","total_debit","total_credit","cellPadding","cellSpacing","borderBottom","tags_setting","AccountTransactionsReports","onSearchDebounce","tagsSetting","remove_closing","loadData","getReports","isInvalid","journal_total","accountName","account_name","title_lang","toggleShowFilter","isShowFilter","renderLoading","getHeader","nameAccount","codeAccount","parseTags","clearFilter","unClearParams","getBody","account_id","toggleGraphHandler","pageHeader","print","fillRule","cx","cy","rx","ry","_page","_per_page","el","App","onChangeLayoutSetting","appComponent","showDialog","dialogOptions","duration","SentryErrorBoundary","fallback","componentStack","resetError","platform","setPlatform","PublicLayout","withRouter","ChangeEnvModal","isOverwriteBaseUrl","base_url","overwrite_baseurl","clear","resetHandler","LoginLayout","property","onInits","onChangeSetting","hideLoginModal","backgroundNumber","backgroundEnabled","networkErr","countClick","showEnvModal","onInit","changeBackground","toggleBackground","renderLogo","clickLayout","closeEnvModal","start","Content","backgroundImage","inner","aria-hidden","logoKledoFooter","ProfileMenu","hasAccessToBilling","goToUpgradeHandler","can_be_renewed","can_be_upgraded","menuIcon","selectable","dropdown","UserOutlined","LanguageSelector","onChangeLanguage","visibleDropdown","changeLang","language","substr","aria-label","langMenu","onChangeCompany","lineHeightInherit","changeCompany","selectedCompany","Media","imageUrl","itemCover","News","renderItem","NewsContainer","setData","setLoadingMore","setHasMore","mounted","stylePane","useQueues","orientationMargin","orientation","isReload","Timeline","isDarkMode","editOptionThemeColors","changeThemeHandler","checkedChildren","MoonFilled","unCheckedChildren","SunFilled","CustomTopBar","invoicePermissions","purchaseInvoicePermissions","expensePermissions","role_id","isHasAccessAudit","expenses","Sider","Layout","PayrollSvg","clipPath","MenuLeft","websiteId","menuData","openedKeys","flattenItems","reduce","flattenedItems","concat","setSelectedKeys","pathName","flattenData","selectedItem","startsWith","onCollapse","handleClick","keyPath","generateMenuItems","generateItem","link_title","clipRule","linkComponent","titleLink","app_connect_hr","urlKledo","generateSubmenu","menuItem","subMenuTitle","kledo_pos","makeLoader","loaders","Avatar","prevAppContext","menuSettings","collapsible","collapsed","collapsedWidth","breakpoint","light","logo","logoContainer","scrollbarMobile","scrollbarDesktop","renderThumbVertical","autoHide","openKeys","overflowX","AppMenu","toggleOpen","getContainer","onHandleClick","BootstrappedMenu","Footer","isOnChampionPlan","companyName","finance_system_white_label","downloadImg","copyright","getFullYear","routes","breadcrumb","lazy","exact","Breadcrumbs","getWarehouseName","findWarehouse","getAccountName","findAccount","breadcrumbs","countBreadCrumb","arrMenuLeft","chil","bread","findRoute","sales","invoices","orders","deliveries","overview","returns","purchases","purchase_invoices","purchase_orders","purchase_quotes","purchase_deliveries","purchase_returns","pos","pos_product_favorites","pos_cashier_users","pos_outlets","home","reports","consolidation","worksheet","layout_invoice","finance_backup_database","splitUrl","lastUrl","cash_bank","email_template","due_reminder","shipping_comps","approval","finance_approval_setting","contacts","inventory","businessflow","customer_birthday","automatic_sequencing","users","roles","my_profile","fixed_assets","provider","arrow","withBreadcrumbs","routeConfig","financeBankRoutes","AccountTransactionModal","accountTrans","AccountTransactions","isOnModal","isLoadingOnboarding","setIsLoadingOnboarding","popoverRef","isChecklistDone","checklistId","progress_detail","checklist_id","completed_at","checklist","app_id","button_text","button_dest","isDone","renderSubContent","onboardingSubItem","ExclamationCircleFilled","onboardingDark","onboarding","onboardingTitle","progressBarText","completed_percentage","showInfo","strokeColor","progressBar","overlayInnerStyle","onboardingItemDark","onboardingItem","CheckOutlined","dismiss_onboarding_checklist","renderContent","overlayStyle","newOpen","chat_support","outline","boxShadow","carouselRef","activeSlide","setActiveSlide","viewedSlide","setViewedSlide","goBackHandler","goNextHandler","getViewedIds","act","BackwardOutlined","ForwardOutlined","dots","infinite","beforeChange","cover","Meta","isi","hideNPSRedux","ignoreNPS","postNPS","Character","char","focusedChar","rate","setRate","loadingClose","setLoadingClose","sent","setSent","showNPS","npsContainer","closeBtn","character","tooltipWrapper","score","formWrapper","showForm","showSso","setShowSso","isSafeToReload","safeToReload","parseBaseUrl","Sso","appId","setInizialized","OneSignal","allowLocalhostAsSecureOrigin","notificationClickHandlerMatch","notificationClickHandlerAction","promptOptions","slidedown","autoPrompt","timeDelay","pageViews","setExternalUserId","isPushNotificationsEnabled","isEnabled","on","warn","MainLayout","chatSupport","chatNumber","chat_number","expiryDate","dismissOnboardingChecklist","isProductTour","product_tour","onShowBroadcast","initializeOneSignal","isDashboard","OneSignalApp","onOpenNotification","initialized","styleCustom","paddingLeft","settings__borderLess","settings__squaredBorders","settings__fixedWidth","settings__menuShadow","settings__menuTop","Menu","Header","TopBar","waBtn","Broadcast","networkError","setNetworkError","loadInits","NoCompanyTopBar","Layouts","public","main","selectCompany","SelectCompanyLayout","noCompanyLayout","avoidRouteWhenAuthorized","infoPages","execludePreviousPages","publicPages","IndexLayout","replacePath","containerKey","getLayout","from_login","loginFromOtherApp","replaceState","hash","bootstrappedLayout","storeEndpoint","currentLayout","isUserAuthorized","isLoginLayout","isExpired","isBefore","prevLocation","resetscroll","__insp","getSnapshotBeforeUpdate","titleTemplate","ServerError","Loader","fullScreen","Maintenance","maintenanceMessage","privacyPolicy","stepForCloseAccount","RequestDeleteAccount","Router","errorComponent","renderRoutes","route","ErrorPage","NotFoundPage","useAppUpdate","showReload","setShowReload","isLatestVersion","clearCacheAndReload","latestVersion","useClearBrowserCache","worker","reloadPage","onReloadPage","errorAutoReloadMessage"],"mappings":"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A+B,eAC/B,mCACE,gFACF,8BAA+B,sCAC/B,mCACE,qEACF,mCAAoC,mCACpC,qDAAsD,sCACtD,qDAAsD,wCACtD,wDAAyD,yCACzD,uDACE,iDACF,sCAAuC,mCACvC,2CAA4C,mDAC5C,0CAA2C,mCAC3C,+CACE,mDACF,mDAAoD,qCACpD,+DACE,qEACF,0DACE,iDACF,6FACE,oFACF,iDACE,2EACF,kDACE,mDACF,2DACE,6GACF,kEACE,kEACF,kEACE,oEACF,qEACE,qEACF,mCAAoC,6BACpC,0FACE,2GACF,yCAA0C,iCAC1C,oEACE,yEACF,4BAA6B,eAC7B,wCAAyC,yCACzC,sDACE,yEACF,4CAA6C,yCAC7C,0DACE,yEACF,yBAA0B,eAC1B,+DACE,2EACF,wDAAyD,yCACzD,mEACE,gFACF,kCAAmC,+BACnC,wBAAyB,iBACzB,6BACE,2EACF,yBAA0B,aAC1B,8BAA+B,oCAC/B,2BAA4B,iBAC5B,gCAAiC,qCACjC,2BAA4B,eAC5B,gCAAiC,2CACjC,kCAAmC,gCACnC,uCACE,2EACF,+BAAgC,mBAChC,oCAAqC,uCACrC,uCAAwC,iCACxC,4CACE,gEACF,6BAA8B,kBAC9B,kCACE,sEACF,wBAAyB,gBACzB,6BAA8B,qCAC9B,oCAAqC,6BACrC,yCACE,mEACF,8BAA+B,sBAC/B,mCAAoC,2DACpC,wBAAyB,gBACzB,6BAA8B,qDAC9B,qCAAsC,wBACtC,0CACE,gEACF,kCAAmC,iCACnC,uCACE,sEACF,qCAAsC,6BACtC,0CACE,iFACF,8CAA+C,uCAC/C,mDACE,2FACF,+BAAgC,wDAChC,oCACE,6QACF,6CAA8C,gCAC9C,kDACE,2GACF,8CAA+C,gCAC/C,mDACE,2GACF,mCAAoC,sBACpC,wCAAyC,sCACzC,6BAA8B,wBAC9B,kEACE,qEACF,yDACE,2DACF,+BAAgC,uBAChC,oCAAqC,sDACrC,6BAA8B,uBAC9B,kCAAmC,gDACnC,gEACE,oDACF,qEACE,+IACF,qFACE,wEACF,0FACE,6KACF,+BAAgC,gDAChC,oCACE,+GACF,wCACE,gEACF,6CACE,gFACF,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tBC,OAAO,GAET,CACEthH,KAAM,2BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,gCACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,GAET,CACEthH,KAAM,gCACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,+BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,mCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,gDACNilG,UAAWoc,eAAK,IAAM,yDACtBC,OAAO,GAET,CACEthH,KAAM,wCACNilG,UAAWoc,eAAK,IAAM,yDACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,iBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,qBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,4BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,6BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,2BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,4BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,wBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAYnvG,aAAW,6BAGzB,CACEjS,KAAM,YACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAGT,CACEthH,KAAM,2BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAGT,CACEthH,KAAM,6BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAGT,CACEthH,KAAM,0BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAGT,CACEthH,KAAM,iBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAGT,CACEthH,KAAM,wBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAGT,CACEthH,KAAM,kBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAGT,CACEthH,KAAM,2BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAGT,CACEthH,KAAM,wBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,uBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,oBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,4BACNilG,UAAWoc,eAAK,IAAM,iEACtBC,OAAO,GAET,CACEthH,KAAM,8BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,0BACNilG,UAAWoc,eAAK,IAAM,iEACtBC,OAAO,GAET,CACEthH,KAAM,wBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,YACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAGT,CACEthH,KAAM,kBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAGT,CACEthH,KAAM,kBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,sBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,2BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAY,MAGd,CACEphH,KAAM,8BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,kCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,yCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,uCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAY,MAId,CACEphH,KAAM,cACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,cACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAY,SAEd,CACEphH,KAAM,kBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAY,SAEd,CACEphH,KAAM,uBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,eACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,iBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,8BACNilG,UAAWoc,eAAK,IAAM,6EACtBC,OAAO,GAET,CACEthH,KAAM,sBACNilG,UAAWoc,eAAK,IAAM,6EACtBC,OAAO,GAET,CACEthH,KAAM,oBACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,GAGT,CACEthH,KAAM,oBACNilG,UAAWoc,eAAK,IAAM,wDACtBC,OAAO,GAIT,CACEthH,KAAM,aACNilG,UAAWoc,eAAK,IAAM,wDACtBD,WAAY,MAEd,CACEphH,KAAM,sBACNilG,UAAWoc,eAAK,IAAM,mCAExB,CACErhH,KAAM,kBACNilG,UAAWoc,eAAK,IAAM,mCAGxB,CACErhH,KAAM,sCACNilG,UAAWoc,eAAK,IAAM,+DACtBC,OAAO,GAET,CACEthH,KAAM,wCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,sCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,4BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,gCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,6BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,oCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,mCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,oCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,sCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,8BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,sBACNilG,UAAWoc,eAAK,IAAM,+DACtBC,OAAO,GAET,CACEthH,KAAM,0BACNilG,UAAWoc,eAAK,IAAM,6EACtBC,OAAO,GAET,CACEthH,KAAM,uCACNilG,UAAWoc,eAAK,IAAM,6EACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,mBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,wBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,qBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,4BACNilG,UAAWoc,eAAK,IAAM,6EACtBC,OAAO,GAET,CACEthH,KAAM,qCACNilG,UAAWoc,eAAK,IAAM,6EACtBC,OAAO,GAET,CACEthH,KAAM,4BACNilG,UAAWoc,eAAK,IAAM,6EACtBC,OAAO,GAET,CACEthH,KAAM,wBACNilG,UAAWoc,eAAK,IAAM,6EACtBC,OAAO,GAET,CACEthH,KAAM,2BACNilG,UAAWoc,eAAK,IAAM,6EACtBC,OAAO,GAET,CACEthH,KAAM,2BACNilG,UAAWoc,eAAK,IAAM,uEACtBC,OAAO,GAET,CACEthH,KAAM,sCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,wBACNilG,UAAWoc,eAAK,IAAM,uEACtBC,OAAO,GAET,CACEthH,KAAM,mCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,yBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,oCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,+BACNilG,UAAWoc,eAAK,IAAM,uEACtBC,OAAO,GAET,CACEthH,KAAM,yBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,uBACNilG,UAAWoc,eAAK,IAAM,iEACtBC,OAAO,GAET,CACEthH,KAAM,+BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,6BACNilG,UAAWoc,eAAK,IAAM,6EACtBC,OAAO,GAET,CACEthH,KAAM,6BACNilG,UAAWoc,eAAK,IAAM,6EACtBC,OAAO,GAET,CACEthH,KAAM,mCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,gCACNilG,UAAWoc,eAAK,IAAM,uEACtBC,OAAO,GAET,CACEthH,KAAM,iCACNilG,UAAWoc,eAAK,IAAM,6EACtBC,OAAO,GAET,CACEthH,KAAM,WACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAYnvG,aAAW,mBAEzB,CACEjS,KAAM,qBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,yBACNilG,UAAWoc,eAAK,IAAM,yDACtBC,OAAO,GAET,CACEthH,KAAM,2BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,6BACNilG,UAAWoc,eAAK,IAAM,yDACtBC,OAAO,GAET,CACEthH,KAAM,0CACNilG,UAAWoc,eAAK,IAAM,6EACtBC,OAAO,GAET,CACEthH,KAAM,8BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,+BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,gCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,uCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,mCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,qCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,mCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,0BACNilG,UAAWoc,eAAK,IAAM,uEACtBC,OAAO,GAET,CACEthH,KAAM,6BACNilG,UAAWoc,eAAK,IAAM,uEACtBC,OAAO,GAET,CACEthH,KAAM,6BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,iCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,sCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,8BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,wCACNilG,UAAWoc,eAAK,IAAM,6EACtBC,OAAO,GAET,CACEthH,KAAM,kCACNilG,UAAWoc,eAAK,IAAM,uEACtBC,OAAO,GAET,CACEthH,KAAM,iCACNilG,UAAWoc,eAAK,IAAM,+DACtBC,OAAO,GAET,CACEthH,KAAM,2BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,oCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,sBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,kBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,kBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,sBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAYnvG,aAAW,WAEzB,CACEjS,KAAM,kBACNilG,UAAWoc,eAAK,IAAM,yDA2BxB,CACErhH,KAAM,YACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,mBACNilG,UAAWoc,eAAK,IAAM,+DACtBC,OAAO,GAET,CACEthH,KAAM,mBACNilG,UAAWoc,eAAK,IAAM,uEACtBC,OAAO,GAET,CACEthH,KAAM,oCACNilG,UAAWoc,eAAK,IAAM,uEACtBC,OAAO,GAET,CACEthH,KAAM,YACNilG,UAAWoc,eAAK,IAAM,6EACtBC,OAAO,GAET,CACEthH,KAAM,uBACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,qBACNilG,UAAWoc,eAAK,IAAM,6EACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,2BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,uBACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,YACNilG,UAAWoc,eAAK,IAAM,6EACtBC,OAAO,GAET,CACEthH,KAAM,uBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,uBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,2BACNilG,UAAWoc,eAAK,IAAM,6EACtBC,OAAO,GAET,CACEthH,KAAM,kCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,gCACNilG,UAAWoc,eAAK,IAAM,6EACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,mBACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,GAET,CACEthH,KAAM,2BACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,GAET,CACEthH,KAAM,+BACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,GAET,CACEthH,KAAM,8BACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,GAET,CACEthH,KAAM,oCACNilG,UAAWoc,eAAK,IAAM,8EACtBC,OAAO,GAET,CACEthH,KAAM,wCACNilG,UAAWoc,eAAK,IAAM,8EACtBC,OAAO,GAET,CACEthH,KAAM,oCACNilG,UAAWoc,eAAK,IAAM,8EACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,wCACNilG,UAAWoc,eAAK,IAAM,8EACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,4BACNilG,UAAWoc,eAAK,IAAM,8EACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,mCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,iCACNilG,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M,+DACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,mCACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,GAET,CACEthH,KAAM,qCACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,GAET,CACEthH,KAAM,6CACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,+CACNilG,UAAWoc,eAAK,IAAM,qEACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,kCACNilG,UAAWoc,eAAK,IAAM,6EACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,iBACNilG,UAAWoc,eAAK,IAAM,wDACtBC,OAAO,GAET,CACEthH,KAAM,4BACNilG,UAAWoc,eAAK,IAAM,uEACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,yBACNilG,UAAWoc,eAAK,IAAM,uEACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,0BACNilG,UAAWoc,eAAK,IAAM,uEACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,iCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAY,wBAEd,CACEphH,KAAM,+BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,sCACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,GAET,CACEthH,KAAM,8CACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,mDACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,mDACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,kBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,yBACNilG,UAAWoc,eAAK,IAAM,+DACtBC,OAAO,GAET,CACEthH,KAAM,mCACNilG,UAAWoc,eAAK,IAAM,uEACtBC,OAAO,GAET,CACEthH,KAAM,2BACNilG,UAAWoc,eAAK,IAAM,uEACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,6BACNilG,UAAWoc,eAAK,IAAM,wDACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,gBACNilG,UAAWoc,eAAK,IAAM,wDACtBC,OAAO,GAET,CACEthH,KAAM,uBACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,GAET,CACEthH,KAAM,yBACNilG,UAAWoc,eAAK,IAAM,uEACtBC,OAAO,GAET,CACEthH,KAAM,2BACNilG,UAAWoc,eAAK,IAAM,+DACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,yBACNilG,UAAWoc,eAAK,IAAM,uEACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,4BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,6BACNilG,UAAWoc,eAAK,IAAM,uEACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,iCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,oCACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,sBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,0BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,cACNilG,UAAWoc,eAAK,IAAM,+DACtBC,OAAO,GAET,CACEthH,KAAM,yBACNilG,UAAWoc,eAAK,IAAM,wEACtBD,WAAY,KACZE,OAAO,GAET,CACEthH,KAAM,yBACNilG,UAAWoc,eAAK,IAAM,kCACtBD,WAAY,KACZE,OAAO,GAET,CACEthH,KAAM,qCACNilG,UAAWoc,eAAK,IAAM,kCACtBD,WAAY,KACZE,OAAO,GAET,CACEthH,KAAM,8BACNilG,UAAWoc,eAAK,IAAM,8EACtBC,OAAO,GAET,CACEthH,KAAM,+BACNilG,UAAWoc,eAAK,IAAM,8EACtBC,OAAO,GAET,CACEthH,KAAM,kCACNilG,UAAWoc,eAAK,IAAM,+DACtBC,OAAO,GAET,CACEthH,KAAM,+CACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,6CACNilG,UAAWoc,eAAK,IAAM,8EACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,uDACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,oDACNilG,UAAWoc,eAAK,IAAM,8EACtBC,OAAO,GAET,CACEthH,KAAM,0CACNilG,UAAWoc,eAAK,IAAM,+DACtBC,OAAO,GAET,CACEthH,KAAM,qDACNilG,UAAWoc,eAAK,IAAM,8EACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,oBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,2BACNilG,UAAWoc,eAAK,IAAM,yEACtBC,OAAO,GAET,CACEthH,KAAM,0BACNilG,UAAWoc,eAAK,IAAM,gEACtBC,OAAO,GAET,CACEthH,KAAM,2BACNilG,UAAWoc,eAAK,IAAM,yDACtBC,OAAO,GAET,CACEthH,KAAM,iBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,4BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,4BACNilG,UAAWoc,eAAK,IAAM,kCACtBD,WAAY,KACZE,OAAO,GAET,CACEthH,KAAM,YACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,6BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,gBACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,GAET,CACEthH,KAAM,uBACNilG,UAAWoc,eAAK,IAAM,+DACtBC,OAAO,GAET,CACEthH,KAAM,2BACNilG,UAAWoc,eAAK,IAAM,8EACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,8BACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,GAET,CACEthH,KAAM,yBACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,8BACNilG,UAAWoc,eAAK,IAAM,qEACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,mCACNilG,UAAWoc,eAAK,IAAM,qEACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,oBACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,GAET,CACEthH,KAAM,kCACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,GAET,CACEthH,KAAM,+BACNilG,UAAWoc,eAAK,IAAM,wDACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,6BACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,8BACNilG,UAAWoc,eAAK,IAAM,uEACtBC,OAAO,GAET,CACEthH,KAAM,wBACNilG,UAAWoc,eAAK,IAAM,uEACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,0BACNilG,UAAWoc,eAAK,IAAM,wEACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,iCACNilG,UAAWoc,eAAK,IAAM,8EACtBC,OAAO,GAET,CACEthH,KAAM,4BACNilG,UAAWoc,eAAK,IAAM,yDACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,0BACNilG,UAAWoc,eAAK,IAAM,8EACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,oBACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,EACPF,WAAYnvG,aAAW,UAEzB,CACEjS,KAAM,6BACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,EACPF,WAAYnvG,aAAW,QAEzB,CACEjS,KAAM,6BACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,uBACNilG,UAAWoc,eAAK,IAAM,uEACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,+BACNilG,UAAWoc,eAAK,IAAM,wDACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,2BACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,GAET,CACEthH,KAAM,yBACNilG,UAAWoc,eAAK,IAAM,wEACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,6BACNilG,UAAWoc,eAAK,IAAM,uEACtBC,OAAO,GAET,CACEthH,KAAM,wBACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,GAET,CACEthH,KAAM,sCACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,GAET,CACEthH,KAAM,mCACNilG,UAAWoc,eAAK,IAAM,wDACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,iCACNilG,UAAWoc,eAAK,IAAM,4EACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,qCACNilG,UAAWoc,eAAK,IAAM,8EACtBC,OAAO,GAET,CACEthH,KAAM,gCACNilG,UAAWoc,eAAK,IAAM,yDACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,8BACNilG,UAAWoc,eAAK,IAAM,8EACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,0BACNilG,UAAWoc,eAAK,IAAM,wDACtBC,OAAO,GAGT,CACEthH,KAAM,4CACNilG,UAAWoc,eAAK,IAAM,qEACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,iDACNilG,UAAWoc,eAAK,IAAM,qEACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,0CACNilG,UAAWoc,eAAK,IAAM,qEACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,+CACNilG,UAAWoc,eAAK,IAAM,qEACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,0BACNilG,UAAWoc,eAAK,IAAM,qEACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,+BACNilG,UAAWoc,eAAK,IAAM,qEACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,gCACNilG,UAAWoc,eAAK,IAAM,qEACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,qCACNilG,UAAWoc,eAAK,IAAM,qEACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,sCACNilG,UAAWoc,eAAK,IAAM,qEACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,2CACNilG,UAAWoc,eAAK,IAAM,qEACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,WACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,eACNilG,UAAWoc,eAAK,IAAM,yDAGxB,CACErhH,KAAM,sBACNilG,UAAWoc,eAAK,IAAM,iEACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,0CACNilG,UAAWoc,eAAK,IAAM,yDACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,iDACNilG,UAAWoc,eAAK,IAAM,yDACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,wCACNilG,UAAWoc,eAAK,IAAM,wDACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,+CACNilG,UAAWoc,eAAK,IAAM,wDACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,8BACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,WACNilG,UAAWoc,eAAK,IAAM,wDACtBC,OAAO,GAGT,CACEthH,KAAM,mBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,QACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,GAET,CACEthH,KAAM,mBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OAAO,EACPF,WAAY,MAEd,CACEphH,KAAM,OACNilG,UAAWoc,eAAK,IAAM,uDACtBC,OAAO,EACPF,WAAY,aAEd,CACEphH,KAAM,gBACNilG,UAAWoc,eAAK,IAAM,6EACtBC,OAAO,GAET,CACEthH,KAAM,eACNilG,UAAWoc,eAAK,IAAM,6EACtBC,OAAO,GAET,CACEthH,KAAM,yBACNilG,UAAWoc,eAAK,IAAM,sEACtBC,OAAO,GAET,CACEthH,KAAM,aACNilG,UAAWoc,eAAK,IAAM,iCACtBC,OAAO,GAET,CACEthH,KAAM,yBACNilG,UAAWoc,eAAK,IAAM,kCACtBC,OA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","file":"static/js/main.6ea7fa00.chunk.js","sourcesContent":["import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nimport { cleanBlankValue } from 'utils/helper'\r\n\r\nexport const getFinanceLogs = (params) => {\r\n const query = stringify(params)\r\n return axios.get(`/finance/logs?${query}`)\r\n}\r\n\r\nexport const exportFinanceLogs = (params) => {\r\n params = cleanBlankValue(params)\r\n const query = stringify(params)\r\n return axios.get(`/finance/logs?${query}`, { responseType: 'arraybuffer' })\r\n}\r\n","import axios from 'axios'\r\n\r\nexport const resetTranslation = (data) => {\r\n return axios.post('/translations/reset', data)\r\n}\r\n\r\nexport const getTranslation = () => {\r\n return axios.get('/translations')\r\n}\r\n\r\nexport const getDefaultTranslation = () => {\r\n return axios.get('/translations/default')\r\n}\r\n\r\nexport const editTranslation = (data) => {\r\n return axios.put('/translations', data)\r\n}\r\n","import axios from 'axios'\r\n\r\nexport const getInits = () => {\r\n return axios.get('/inits', { params: { v: '1' } })\r\n}\r\n\r\nexport const getInitsPublic = () => {\r\n return axios.get('/inits/public', { headers: { Authorization: false } })\r\n}\r\n\r\nexport const getInitsFinance = () => {\r\n return axios.get('/inits/finance')\r\n}\r\n","import axios from 'axios'\r\n\r\nexport const setup = (data) => {\r\n return axios.post('/setup/clear', data)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nexport const createOrUpdateApproval = (data) => {\r\n return axios.post('/finance/approvals', data)\r\n}\r\n\r\nexport const getApprovalSettings = (transTypeId) => {\r\n return axios.get(`/finance/approvals/${transTypeId}`)\r\n}\r\n\r\nexport const getApprovable = (params) => {\r\n const query = stringify(params)\r\n return axios.get(`/finance/approvals/approveable?${query}`)\r\n}\r\n\r\nexport const inputMassApproval = (data) => {\r\n return axios.post('/finance/approvals/inputMassApproval', data)\r\n}\r\n\r\nexport const executeMassApproval = (data) => {\r\n return axios.post('/finance/approvals/executeMassApproval', data)\r\n}\r\n\r\nexport const inputMassApprovalReject = (data) => {\r\n return axios.post('/finance/approvals/inputMassApprovalReject', data)\r\n}\r\n\r\nexport const executeMassApprovalReject = (data) => {\r\n return axios.post('/finance/approvals/executeMassApprovalReject', data)\r\n}\r\n","import axios from 'axios'\r\n\r\nexport const getAccountMappings = (params) => {\r\n return axios.get(`/finance/accountMappings`, { params })\r\n}\r\n\r\nexport const editAccountMapping = (data) => {\r\n return axios.put(`/finance/accountMappings`, data)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nexport const getOauthClients = (params) => {\r\n const query = stringify(params)\r\n return axios.get(`/oauth/clients?${query}`)\r\n}\r\n\r\nexport const getOauthClient = (id, params) => {\r\n const query = stringify(params)\r\n return axios.get(`/oauth/clients/${id}?${query}`)\r\n}\r\n\r\nexport const addOauthClient = (data) => {\r\n return axios.post('/oauth/clients', data)\r\n}\r\n\r\nexport const editOauthClient = (data) => {\r\n return axios.put(`/oauth/clients/${data.id}`, data)\r\n}\r\n\r\nexport const deleteOauthClient = (id) => {\r\n return axios.delete(`/oauth/clients/${id}`)\r\n}\r\n","import axios from 'axios'\r\n\r\nexport const getEmails = () => {\r\n return axios.get('/emailTemplates')\r\n}\r\n\r\nexport const getEmail = (id) => {\r\n return axios.get(`/emailTemplates/${id}`)\r\n}\r\n\r\nexport const updateEmail = (data) => {\r\n return axios.put(`/emailTemplates/${data.id}`, data)\r\n}\r\n\r\nexport const revertEmail = (id) => {\r\n return axios.put(`/emailTemplates/${id}/revert`)\r\n}\r\n\r\nexport const getEmailTemplateCustomerBirthday = () => {\r\n return axios.get('/emailTemplates/customerBirthday')\r\n}\r\n","import axios from 'axios'\r\n\r\nexport const getCommissions = (params) => {\r\n return axios.get('/finance/commissions', { params })\r\n}\r\n\r\nexport const getCommissionTypes = (params) => {\r\n return axios.get('/finance/commissions/types', { params })\r\n}\r\n\r\nexport const addCommission = (data) => {\r\n return axios.post('/finance/commissions', data)\r\n}\r\n\r\nexport const editCommission = (data) => {\r\n return axios.put(`/finance/commissions/${data.id}`, data)\r\n}\r\n\r\nexport const getCommission = (id) => {\r\n return axios.get(`/finance/commissions/${id}`)\r\n}\r\n\r\nexport const deleteCommission = (id) => {\r\n return axios.delete(`/finance/commissions/${id}`)\r\n}\r\n","import axios from 'axios'\r\n\r\nexport const getWhatsapps = () => {\r\n return axios.get('/whatsAppTemplates')\r\n}\r\n\r\nexport const getWhatsapp = (id) => {\r\n return axios.get(`/whatsAppTemplates/${id}`)\r\n}\r\n\r\nexport const updateWhatsapp = (data) => {\r\n return axios.put(`/whatsAppTemplates/${data.id}`, data)\r\n}\r\n\r\nexport const revertWhatsapp = (id) => {\r\n return axios.put(`/whatsAppTemplates/${id}/revert`)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\nimport { cleanBlankValue, getOnce } from 'utils/helper'\r\n\r\nexport const getFinanceContacts = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/contacts?${query}`)\r\n}\r\n\r\nexport const getFinanceContactDetail = (id, params) => {\r\n return axios.get(`/finance/contacts/${id}`, { params })\r\n}\r\n\r\nexport const getFinanceContactMoneyInOutStat = (id, params) => {\r\n return axios.get(`/finance/contacts/${id}/moneyInOutStats`, { params })\r\n}\r\n\r\nexport const getFinanceContactSalesStats = (id, params) => {\r\n return axios.get(`/finance/contacts/${id}/salesStats`, { params })\r\n}\r\n\r\nexport const addFinanceContact = (data) => {\r\n return axios.post('/finance/contacts', data)\r\n}\r\n\r\nexport const editFinanceContact = (data) => {\r\n return axios.put(`/finance/contacts/${data.id}`, data)\r\n}\r\n\r\nexport const editFinanceContactAsEmployee = (data) => {\r\n return axios.patch(`/finance/contacts/${data.id}/updateAsEmployee`, data)\r\n}\r\n\r\nexport const archiveFinanceContact = (id) => {\r\n return axios.patch(`/finance/contacts/${id}/archive`)\r\n}\r\n\r\nexport const unarchiveFinanceContact = (id) => {\r\n return axios.patch(`/finance/contacts/${id}/unarchive`)\r\n}\r\n\r\nexport const deleteFinanceContact = (id) => {\r\n return axios.delete(`/finance/contacts/${id}`)\r\n}\r\n\r\nexport const getSuggestionFinanceContact = (params, options) => {\r\n const query = stringify(params)\r\n\r\n return getOnce(`/finance/contacts/suggestionPerPage?${query}`, options)\r\n}\r\n\r\nexport const getFinanceContact = (id) => {\r\n return axios.get(`/finance/contacts/${id}/name`)\r\n}\r\n\r\nexport const getFinanceContactLog = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/contacts/${id}/logs${query}`)\r\n}\r\n\r\nexport const getFinanceContactTransactions = (id, params) => {\r\n params = cleanBlankValue(params)\r\n const query = stringify(params)\r\n return axios.get(`/finance/contacts/${id}/transactions?${query}`)\r\n}\r\n\r\nexport const uploadImportFinanceContact = (data) => {\r\n return axios.post('/finance/contacts/uploadImport', data)\r\n}\r\n\r\nexport const uploadImportFinanceContactTransactions = (data) => {\r\n return axios.post('/finance/contacts/transactions/uploadImport', data)\r\n}\r\n\r\nexport const executeImportFinanceContact = (data) => {\r\n return axios.post('/finance/contacts/executeImport', data)\r\n}\r\n\r\nexport const executeImportFinanceContactTransactions = (data) => {\r\n return axios.post('/finance/contacts/transactions/executeImport', data)\r\n}\r\n\r\nexport const exportFinanceContact = (params) => {\r\n params = cleanBlankValue(params)\r\n const query = stringify(params)\r\n return axios.get(`/finance/contacts/export?${query}`, { responseType: 'arraybuffer' })\r\n}\r\n\r\nexport const inputMassDeleteFinanceContact = (data) => {\r\n return axios.post('/finance/contacts/inputMassDelete', data)\r\n}\r\n\r\nexport const executeMassDeleteFinanceContact = (data) => {\r\n return axios.delete('/finance/contacts/executeMassDelete', { data })\r\n}\r\n\r\nexport const deleteOnAddFinanceContactPhoto = (url) => {\r\n return axios.delete('/finance/contacts/photo', { data: { url } })\r\n}\r\n\r\nexport const deleteOnEditFinanceContactPhoto = (id, url) => {\r\n return axios.delete(`/finance/contacts/${id}/photo`, { data: { url } })\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\nimport { cleanBlankValue, getOnce } from 'utils/helper'\r\n\r\nexport const getFinanceExpenses = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/expenses?${query}`)\r\n}\r\n\r\nexport const getFinanceExpensesOverview = (params) => {\r\n const query = stringify(params)\r\n return axios.get(`/finance/expenses/overview?${query}`)\r\n}\r\n\r\nexport const getFinanceExpensesAccountChart = (params) => {\r\n return axios.get('/finance/expenses/accountStats', { params })\r\n}\r\n\r\nexport const getFinanceExpensesContactChart = (params) => {\r\n return axios.get('/finance/expenses/contactStats', { params })\r\n}\r\n\r\nexport const addFinanceExpense = (data) => {\r\n return axios.post('/finance/expenses', data)\r\n}\r\n\r\nexport const editFinanceExpense = (data) => {\r\n return axios.put(`/finance/expenses/${data.id}`, data)\r\n}\r\n\r\nexport const deleteOnAddFinanceExpenseAttachment = (url) => {\r\n return axios.delete('/finance/expenses/attachments', { data: { url } })\r\n}\r\n\r\nexport const deleteOnEditFinanceExpenseAttachment = (id, url) => {\r\n return axios.delete(`/finance/expenses/${id}/attachments`, { data: { url } })\r\n}\r\n\r\nexport const getFinanceExpense = (id) => {\r\n return axios.get(`/finance/expenses/${id}`)\r\n}\r\n\r\nexport const getFinanceExpenseLog = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/expenses/${id}/logs${query}`)\r\n}\r\n\r\nexport const deleteFinanceExpense = (id) => {\r\n return axios.delete(`/finance/expenses/${id}`)\r\n}\r\n\r\nexport const uploadImportFinanceExpense = (data) => {\r\n return axios.post('/finance/expenses/uploadImport', data)\r\n}\r\n\r\nexport const executeImportFinanceExpense = (data) => {\r\n return axios.post('/finance/expenses/executeImport', data)\r\n}\r\n\r\nexport const exportFinanceExpense = (params) => {\r\n const URL = params.status_id === 'recurring' ? 'expenses/recurring/export' : 'expenses/export'\r\n if (params.status_id === 'recurring') {\r\n delete params.status_id\r\n }\r\n const query = stringify(cleanBlankValue(params))\r\n return axios.get(`/finance/${URL}?${query}`, { responseType: 'arraybuffer' })\r\n}\r\n\r\nexport const addRecurringExpense = (data) => {\r\n return axios.post('/finance/expenses/recurring', data)\r\n}\r\n\r\nexport const editRecurringExpense = (data) => {\r\n return axios.put(`/finance/expenses/recurring/${data.id}`, data)\r\n}\r\n\r\nexport const getRecurringExpense = (id) => {\r\n return axios.get(`/finance/expenses/recurring/${id}`)\r\n}\r\n\r\nexport const deleteRecurringExpense = (id) => {\r\n return axios.delete(`/finance/expenses/recurring/${id}`)\r\n}\r\n\r\nexport const getRecurringExpenses = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/expenses/recurring?${query}`)\r\n}\r\n\r\nexport const inputMassDeleteFinanceExpense = (data) => {\r\n return axios.post('/finance/expenses/inputMassDelete', data)\r\n}\r\n\r\nexport const executeMassDeleteFinanceExpense = (data) => {\r\n return axios.delete('/finance/expenses/executeMassDelete', { data })\r\n}\r\n\r\nexport const approveFinanceExpense = ({ id }) => {\r\n return axios.post(`/finance/expenses/${id}/approve`)\r\n}\r\n\r\nexport const rejectFinanceExpense = ({ id, body }) => {\r\n return axios.post(`/finance/expenses/${id}/reject`, body)\r\n}\r\n\r\nexport const revertApprovalFinanceExpense = ({ id }) => {\r\n return axios.post(`/finance/expenses/${id}/revert`)\r\n}\r\n\r\nexport const getMassDownloadFinanceExpense = (params) => {\r\n return axios.get('/finance/expenses/massDownload', { params })\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\nimport { cleanBlankValue, getOnce, openNewTabBlobFile } from 'utils/helper'\r\n\r\nexport const getFinancePurchaseOrders = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/purchaseOrders?${query}`)\r\n}\r\n\r\nexport const addFinancePurchaseOrder = (data) => {\r\n return axios.post('/finance/purchaseOrders', data)\r\n}\r\n\r\nexport const editFinancePurchaseOrder = (data) => {\r\n return axios.put(`/finance/purchaseOrders/${data.id}`, data)\r\n}\r\n\r\nexport const deleteOnAddFinancePurchaseOrderAttachment = (url) => {\r\n return axios.delete('/finance/purchaseOrders/attachments', { data: { url } })\r\n}\r\n\r\nexport const deleteOnEditFinancePurchaseOrderAttachment = (id, url) => {\r\n return axios.delete(`/finance/purchaseOrders/${id}/attachments`, { data: { url } })\r\n}\r\n\r\nexport const getFinancePurchaseOrder = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/purchaseOrders/${id}${query}`)\r\n}\r\n\r\nexport const getFinancePurchaseOrderLog = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/purchaseOrders/${id}/logs${query}`)\r\n}\r\n\r\nexport const getSuggestionFinanceProduct = (params, options) => {\r\n const query = stringify(params)\r\n\r\n return getOnce(`/finance/products/suggestionPerPage?${query}`, options)\r\n}\r\n\r\nexport const changeFinancePurchaseOrderStatus = (id, data) => {\r\n return axios.patch(`/finance/purchaseOrders/${id}/status`, data)\r\n}\r\n\r\nexport const deleteFinancePurchaseOrder = (id) => {\r\n return axios.delete(`/finance/purchaseOrders/${id}`)\r\n}\r\n\r\nexport const uploadImportFinancePurchaseOrder = (data) => {\r\n return axios.post('/finance/purchaseOrders/uploadImport', data)\r\n}\r\n\r\nexport const executeImportFinancePurchaseOrder = (data) => {\r\n return axios.post('/finance/purchaseOrders/executeImport', data)\r\n}\r\n\r\nexport const getFinancePurchaseOrderJournal = (id) => {\r\n return axios.get(`/finance/transactions/${id}/journals`)\r\n}\r\n\r\nexport const createPdfFinancePurchaseOrder = (id) => {\r\n return axios\r\n .get(`/finance/purchaseOrders/${id}/print`, { responseType: 'blob' })\r\n .then((response) => {\r\n openNewTabBlobFile(response)\r\n\r\n return Promise.resolve(true)\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error)\r\n })\r\n}\r\n\r\nexport const getFinancePurchaseOrderPublicUrl = (id) => {\r\n return axios.get(`/finance/purchaseOrders/${id}/publicUrl`)\r\n}\r\n\r\nexport const exportFinancePurchaseOrder = (params) => {\r\n const URL =\r\n params.status_id === 'recurring' ? 'purchaseOrders/recurring/export' : 'purchaseOrders/export'\r\n if (params.status_id === 'recurring') {\r\n delete params.status_id\r\n }\r\n const query = stringify(cleanBlankValue(params))\r\n return axios.get(`/finance/${URL}?${query}`, { responseType: 'arraybuffer' })\r\n}\r\n\r\nexport const getFinancePurchaseOrderWaTemplate = (id) => {\r\n return axios.get(`/finance/purchaseOrders/${id}/whatsapp`)\r\n}\r\n\r\nexport const getFinancePurchaseOrderEmailTemplate = (id) => {\r\n return axios.get(`/finance/purchaseOrders/${id}/email`)\r\n}\r\n\r\nexport const sendFinancePurchaseOrderEmail = (id, data) => {\r\n return axios.post(`/finance/purchaseOrders/${id}/email`, data)\r\n}\r\n\r\nexport const addRecurringPurchaseOrder = (data) => {\r\n return axios.post('/finance/purchaseOrders/recurring', data)\r\n}\r\n\r\nexport const editRecurringPurchaseOrder = (data) => {\r\n return axios.put(`/finance/purchaseOrders/recurring/${data.id}`, data)\r\n}\r\n\r\nexport const getRecurringPurchaseOrder = (id) => {\r\n return axios.get(`/finance/purchaseOrders/recurring/${id}`)\r\n}\r\n\r\nexport const deleteRecurringPurchaseOrder = (id) => {\r\n return axios.delete(`/finance/purchaseOrders/recurring/${id}`)\r\n}\r\n\r\nexport const getRecurringPurchaseOrders = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/purchaseOrders/recurring?${query}`)\r\n}\r\n\r\nexport const getFinancePurchaseOrderSmsTemplate = (id) => {\r\n return axios.get(`/finance/purchaseOrders/${id}/sms`)\r\n}\r\n\r\nexport const sendFinancePurchaseOrderSms = (id, data) => {\r\n return axios.post(`/finance/purchaseOrders/${id}/sms`, data)\r\n}\r\n\r\nexport const inputMassDeleteFinancePurchaseOrder = (data) => {\r\n return axios.post('/finance/purchaseOrders/inputMassDelete', data)\r\n}\r\n\r\nexport const executeMassDeleteFinancePurchaseOrder = (data) => {\r\n return axios.delete('/finance/purchaseOrders/executeMassDelete', { data })\r\n}\r\n\r\nexport const inputMassSendEmailFinancePurchaseOrder = (data) => {\r\n return axios.post('/finance/purchaseOrders/inputMassEmail', data)\r\n}\r\n\r\nexport const executeMassSendEmailFinancePurchaseOrder = (data) => {\r\n return axios.post('/finance/purchaseOrders/executeMassEmail', data)\r\n}\r\n\r\nexport const getMassDownloadFinancePurchaseOrder = (params) => {\r\n return axios.get('/finance/purchaseOrders/massDownload', { params })\r\n}\r\n\r\nexport const getMinTransDateFinancePurchaseOrder = (data) => {\r\n return axios.post('/finance/purchaseOrders/mass/minDate', data)\r\n}\r\n\r\nexport const inputMassCreateFinancePurchaseOrder = (data) => {\r\n return axios.post('/finance/purchaseOrders/inputMassPurchaseOrder', data)\r\n}\r\n\r\nexport const executeMassCreateFinancePurchaseOrder = (data) => {\r\n return axios.post('/finance/purchaseOrders/executeMassPurchaseOrder', data)\r\n}\r\n\r\nexport const approveFinancePurchaseOrder = ({ id }) => {\r\n return axios.post(`/finance/purchaseOrders/${id}/approve`)\r\n}\r\n\r\nexport const rejectFinancePurchaseOrder = ({ id, body }) => {\r\n return axios.post(`/finance/purchaseOrders/${id}/reject`, body)\r\n}\r\n\r\nexport const revertApprovalFinancePurchaseOrder = ({ id }) => {\r\n return axios.post(`/finance/purchaseOrders/${id}/revert`)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\nimport { cleanBlankValue, getOnce, openNewTabBlobFile } from 'utils/helper'\r\n\r\nexport const getFinancePurchaseInvoices = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/purchaseInvoices?${query}`)\r\n}\r\n\r\nexport const addFinancePurchaseInvoice = (data) => {\r\n return axios.post('/finance/purchaseInvoices', data)\r\n}\r\n\r\nexport const editFinancePurchaseInvoice = (data) => {\r\n return axios.put(`/finance/purchaseInvoices/${data.id}`, data)\r\n}\r\n\r\nexport const deleteOnAddFinancePurchaseInvoiceAttachment = (url) => {\r\n return axios.delete('/finance/purchaseInvoices/attachments', { data: { url } })\r\n}\r\n\r\nexport const deleteOnEditFinancePurchaseInvoiceAttachment = (id, url) => {\r\n return axios.delete(`/finance/purchaseInvoices/${id}/attachments`, { data: { url } })\r\n}\r\n\r\nexport const getFinancePurchaseInvoice = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/purchaseInvoices/${id}${query}`)\r\n}\r\n\r\nexport const getFinancePurchaseInvoiceLog = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/purchaseInvoices/${id}/logs${query}`)\r\n}\r\n\r\nexport const changeFinancePurchaseInvoiceStatus = (id, data) => {\r\n return axios.patch(`/finance/purchaseInvoices/${id}/status`, data)\r\n}\r\n\r\nexport const deleteFinancePurchaseInvoice = (id) => {\r\n return axios.delete(`/finance/purchaseInvoices/${id}`)\r\n}\r\n\r\nexport const getFinancePurchaseInvoiceOverview = (params) => {\r\n return axios.get(`/finance/purchaseInvoices/overview`, { params })\r\n}\r\n\r\nexport const uploadImportFinancePurchaseInvoice = (data) => {\r\n return axios.post('/finance/purchaseInvoices/uploadImport', data)\r\n}\r\n\r\nexport const executeImportFinancePurchaseInvoice = (data) => {\r\n return axios.post('/finance/purchaseInvoices/executeImport', data)\r\n}\r\n\r\nexport const uploadImportStatusFinancePurchaseInvoice = (data) => {\r\n return axios.post('/finance/purchaseInvoices/payment/uploadImport', data)\r\n}\r\n\r\nexport const executeImportStatusFinancePurchaseInvoice = (data) => {\r\n return axios.post('/finance/purchaseInvoices/payment/executeImport', data)\r\n}\r\n\r\nexport const createPdfFinancePurchaseInvoice = (id) => {\r\n return axios\r\n .get(`/finance/purchaseInvoices/${id}/print`, { responseType: 'blob' })\r\n .then((response) => {\r\n openNewTabBlobFile(response)\r\n\r\n return Promise.resolve(true)\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error)\r\n })\r\n}\r\n\r\nexport const getFinancePurchaseInvoicePublicUrl = (id) => {\r\n return axios.get(`/finance/purchaseInvoices/${id}/publicUrl`)\r\n}\r\n\r\nexport const exportFinancePurchaseInvoice = (params) => {\r\n const URL =\r\n params.status_id === 'recurring'\r\n ? 'purchaseInvoices/recurring/export'\r\n : 'purchaseInvoices/export'\r\n if (params.status_id === 'recurring') {\r\n delete params.status_id\r\n }\r\n const query = stringify(cleanBlankValue(params))\r\n return axios.get(`/finance/${URL}?${query}`, { responseType: 'arraybuffer' })\r\n}\r\n\r\nexport const getFinancePurchaseInvoiceWaTemplate = (id) => {\r\n return axios.get(`/finance/purchaseInvoices/${id}/whatsapp`)\r\n}\r\n\r\nexport const getFinancePurchaseInvoiceEmailTemplate = (id) => {\r\n return axios.get(`/finance/purchaseInvoices/${id}/email`)\r\n}\r\n\r\nexport const sendFinancePurchaseInvoiceEmail = (id, data) => {\r\n return axios.post(`/finance/purchaseInvoices/${id}/email`, data)\r\n}\r\n\r\nexport const addRecurringPurchaseInvoice = (data) => {\r\n return axios.post('/finance/purchaseInvoices/recurring', data)\r\n}\r\n\r\nexport const editRecurringPurchaseInvoice = (data) => {\r\n return axios.put(`/finance/purchaseInvoices/recurring/${data.id}`, data)\r\n}\r\n\r\nexport const getRecurringPurchaseInvoice = (id) => {\r\n return axios.get(`/finance/purchaseInvoices/recurring/${id}`)\r\n}\r\n\r\nexport const deleteRecurringPurchaseInvoice = (id) => {\r\n return axios.delete(`/finance/purchaseInvoices/recurring/${id}`)\r\n}\r\n\r\nexport const getRecurringPurchaseInvoices = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/purchaseInvoices/recurring?${query}`)\r\n}\r\n\r\nexport const getFinancePurchaseInvoiceSmsTemplate = (id) => {\r\n return axios.get(`/finance/purchaseInvoices/${id}/sms`)\r\n}\r\n\r\nexport const sendFinancePurchaseInvoiceSms = (id, data) => {\r\n return axios.post(`/finance/purchaseInvoices/${id}/sms`, data)\r\n}\r\n\r\nexport const inputMassDeleteFinancePurchaseInvoice = (data) => {\r\n return axios.post('/finance/purchaseInvoices/inputMassDelete', data)\r\n}\r\n\r\nexport const executeMassDeleteFinancePurchaseInvoice = (data) => {\r\n return axios.delete('/finance/purchaseInvoices/executeMassDelete', { data })\r\n}\r\n\r\nexport const inputMassSendEmailFinancePurchaseInvoice = (data) => {\r\n return axios.post('/finance/purchaseInvoices/inputMassEmail', data)\r\n}\r\n\r\nexport const executeMassSendEmailFinancePurchaseInvoice = (data) => {\r\n return axios.post('/finance/purchaseInvoices/executeMassEmail', data)\r\n}\r\n\r\nexport const getMassDownloadFinancePurchaseInvoice = (params) => {\r\n return axios.get('/finance/purchaseInvoices/massDownload', { params })\r\n}\r\n\r\nexport const getMinTransDateFinancePurchaseInvoice = (data) => {\r\n return axios.post('/finance/purchaseInvoices/mass/minDate', data)\r\n}\r\n\r\nexport const inputMassCreateFinancePurchaseInvoice = (data) => {\r\n return axios.post('/finance/purchaseInvoices/inputMassPurchaseInvoice', data)\r\n}\r\n\r\nexport const executeMassCreateFinancePurchaseInvoice = (data) => {\r\n return axios.post('/finance/purchaseInvoices/executeMassPurchaseInvoice', data)\r\n}\r\n\r\nexport const approveFinancePurchaseInvoice = ({ id }) => {\r\n return axios.post(`/finance/purchaseInvoices/${id}/approve`)\r\n}\r\n\r\nexport const rejectFinancePurchaseInvoice = ({ id, body }) => {\r\n return axios.post(`/finance/purchaseInvoices/${id}/reject`, body)\r\n}\r\n\r\nexport const revertApprovalFinancePurchaseInvoice = ({ id }) => {\r\n return axios.post(`/finance/purchaseInvoices/${id}/revert`)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nimport { cleanBlankValue, getOnce, openNewTabBlobFile } from 'utils/helper'\r\n\r\nexport const getFinanceBankTranses = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/bankTrans?${query}`)\r\n}\r\n\r\nexport const getFinanceBankTrans = (id) => {\r\n return axios.get(`/finance/bankTrans/${id}`)\r\n}\r\n\r\nexport const getFinanceBankTransLog = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/bankTrans/${id}/logs${query}`)\r\n}\r\n\r\n// export const addFinanceBankTrans = (data) => {\r\n// return axios.post('/finance/bankTrans', data)\r\n// }\r\n\r\nexport const editFinanceBankTrans = (id, data) => {\r\n return axios.put(`/finance/bankTrans/${id}`, data)\r\n}\r\n\r\nexport const purchasePaymentFinanceBankTrans = (data) => {\r\n return axios.post('/finance/bankTrans/purchasePayment', data)\r\n}\r\n\r\nexport const invoicePaymentFinanceBankTrans = (data) => {\r\n return axios.post('/finance/bankTrans/invoicePayment', data)\r\n}\r\n\r\nexport const orderPaymentFinanceBankTrans = (data) => {\r\n return axios.post('/finance/bankTrans/orderPayment', data)\r\n}\r\n\r\nexport const purchaseOrderPaymentFinanceBankTrans = (data) => {\r\n return axios.post('/finance/bankTrans/purchaseOrderPayment', data)\r\n}\r\n\r\nexport const creditMemoPaymentFinanceBankTrans = (data) => {\r\n return axios.post('/finance/bankTrans/creditMemoPayment', data)\r\n}\r\n\r\nexport const debitMemoPaymentFinanceBankTrans = (data) => {\r\n return axios.post('/finance/bankTrans/debitMemoPayment', data)\r\n}\r\n\r\nexport const deleteOnAddFinanceBankTransAttachment = (url) => {\r\n return axios.delete('/finance/bankTrans/attachments', { data: { url } })\r\n}\r\n\r\nexport const deleteOnEditFinanceBankTransAttachment = (id, url) => {\r\n return axios.delete(`/finance/bankTrans/${id}/attachments`, { data: { url } })\r\n}\r\n\r\nexport const deleteFinanceBankTrans = (id) => {\r\n return axios.delete(`/finance/bankTrans/${id}`)\r\n}\r\n\r\nexport const transferFinanceBankTrans = (data) => {\r\n return axios.post('/finance/bankTrans/transfer', data)\r\n}\r\n\r\nexport const spendFinanceBankTrans = (data) => {\r\n return axios.post('/finance/bankTrans/spend', data)\r\n}\r\n\r\nexport const receiveFinanceBankTrans = (data) => {\r\n return axios.post('/finance/bankTrans/receive', data)\r\n}\r\n\r\nexport const deleteTransferFinanceBankTrans = (id) => {\r\n return axios.delete(`/finance/bankTrans/${id}/transfer`)\r\n}\r\n\r\nexport const editTransferFinanceBankTrans = (id, data) => {\r\n return axios.put(`/finance/bankTrans/${id}/transfer`, data)\r\n}\r\n\r\nexport const expensePaymentFinanceBankTrans = (data) => {\r\n return axios.post('/finance/bankTrans/expensePayment', data)\r\n}\r\n\r\nexport const editPurchasePaymentFinanceBankTrans = (id, data) => {\r\n return axios.put(`/finance/bankTrans/${id}/purchasePayment`, data)\r\n}\r\n\r\nexport const editInvoicePaymentFinanceBankTrans = (id, data) => {\r\n return axios.put(`/finance/bankTrans/${id}/invoicePayment`, data)\r\n}\r\n\r\nexport const editExpensePaymentFinanceBankTrans = (id, data) => {\r\n return axios.put(`/finance/bankTrans/${id}/expensePayment`, data)\r\n}\r\n\r\nexport const editCreditMemoPaymentFinanceBankTrans = (id, data) => {\r\n return axios.put(`/finance/bankTrans/${id}/creditMemoPayment`, data)\r\n}\r\n\r\nexport const editDebitMemoPaymentFinanceBankTrans = (id, data) => {\r\n return axios.put(`/finance/bankTrans/${id}/debitMemoPayment`, data)\r\n}\r\n\r\nexport const editOrderPaymentFinanceBankTrans = (id, data) => {\r\n return axios.put(`/finance/bankTrans/${id}/orderPayment`, data)\r\n}\r\n\r\nexport const editPurchaseOrderPaymentFinanceBankTrans = (id, data) => {\r\n return axios.put(`/finance/bankTrans/${id}/purchaseOrderPayment`, data)\r\n}\r\n\r\n// export const getFinanceBankOverview = () => {\r\n// return axios.get('/finance/bank/overview')\r\n// }\r\n\r\nexport const createPdfFinanceBankTrans = (id) => {\r\n return axios\r\n .get(`/finance/bankTrans/${id}/print`, { responseType: 'blob' })\r\n .then((response) => {\r\n openNewTabBlobFile(response)\r\n return Promise.resolve(true)\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error)\r\n })\r\n}\r\n\r\nexport const getFinanceBankTransPublicUrl = (id) => {\r\n return axios.get(`/finance/bankTrans/${id}/publicUrl`)\r\n}\r\n\r\nexport const exportFinanceBankTrans = (params) => {\r\n params = cleanBlankValue(params)\r\n const query = stringify(params)\r\n return axios.get(`/finance/bankTrans/export?${query}`, { responseType: 'arraybuffer' })\r\n}\r\n\r\nexport const getFinanceBankTransWaTemplate = (id) => {\r\n return axios.get(`/finance/bankTrans/${id}/whatsapp`)\r\n}\r\n\r\nexport const getFinanceBankTransEmailTemplate = (id) => {\r\n return axios.get(`/finance/bankTrans/${id}/email`)\r\n}\r\n\r\nexport const sendFinanceBankTransEmail = (id, data) => {\r\n return axios.post(`/finance/bankTrans/${id}/email`, data)\r\n}\r\n\r\nexport const addRecurringBankTrans = (data) => {\r\n return axios.post('/finance/bankTrans/recurring', data)\r\n}\r\n\r\nexport const editRecurringBankTrans = (data) => {\r\n return axios.put(`/finance/bankTrans/recurring/${data.id}`, data)\r\n}\r\n\r\nexport const getRecurringBankTrans = (id) => {\r\n return axios.get(`/finance/bankTrans/recurring/${id}`)\r\n}\r\n\r\nexport const deleteRecurringBankTrans = (id) => {\r\n return axios.delete(`/finance/bankTrans/recurring/${id}`)\r\n}\r\n\r\nexport const getRecurringBankTranses = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/bankTrans/recurring?${query}`)\r\n}\r\n\r\nexport const getFinanceBankTransSmsTemplate = (id) => {\r\n return axios.get(`/finance/bankTrans/${id}/sms`)\r\n}\r\n\r\nexport const sendFinanceBankTransSms = (id, data) => {\r\n return axios.post(`/finance/bankTrans/${id}/sms`, data)\r\n}\r\n\r\nexport const inputMassDeleteFinanceBankTrans = (data) => {\r\n return axios.post('/finance/bankTrans/inputMassDelete', data)\r\n}\r\n\r\nexport const executeMassDeleteFinanceBankTrans = (data) => {\r\n return axios.delete('/finance/bankTrans/executeMassDelete', { data })\r\n}\r\n\r\nexport const uploadImportFinanceBankTrans = (data) => {\r\n return axios.post('/finance/bankTrans/uploadImport', data)\r\n}\r\n\r\nexport const executeImportFinanceBankTrans = (data) => {\r\n return axios.post('/finance/bankTrans/executeImport', data)\r\n}\r\n\r\nexport const massPaymentFinanceBankTrans = (data) => {\r\n return axios.post('/finance/bankTrans/massPayment', data)\r\n}\r\n\r\nexport const executeMassPaymentFinanceBankTrans = (data) => {\r\n return axios.post('/finance/bankTrans/executeMassPayment', data)\r\n}\r\n\r\nexport const uploadImportFinanceBankTransfer = (data) => {\r\n return axios.post('/finance/bankTrans/transfer/uploadImport', data)\r\n}\r\n\r\nexport const executeImportFinanceBankTransfer = (data) => {\r\n return axios.post('/finance/bankTrans/transfer/executeImport', data)\r\n}\r\n\r\nexport const approveFinanceBankTransfer = (id) => {\r\n return axios.post(`finance/bankTrans/${id}/approve`)\r\n}\r\n\r\nexport const rejectFinanceBankTransfer = ({ id, body }) => {\r\n return axios.post(`finance/bankTrans/${id}/reject`, body)\r\n}\r\n\r\nexport const revertFinanceBankTransfer = ({ id, body }) => {\r\n return axios.post(`finance/bankTrans/${id}/revert`, body)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nimport { cleanBlankValue, getOnce } from 'utils/helper'\r\n// import { openNewTabBlobFile } from 'utils/helper'\r\n\r\nexport const getFinanceQuotes = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/quotes?${query}`)\r\n}\r\n\r\nexport const addFinanceQuote = (data) => {\r\n return axios.post('/finance/quotes', data)\r\n}\r\n\r\nexport const editFinanceQuote = (data) => {\r\n return axios.put(`/finance/quotes/${data.id}`, data)\r\n}\r\n\r\nexport const deleteOnAddFinanceQuoteAttachment = (url) => {\r\n return axios.delete('/finance/quotes/attachments', { data: { url } })\r\n}\r\n\r\nexport const deleteOnEditFinanceQuoteAttachment = (id, url) => {\r\n return axios.delete(`/finance/quotes/${id}/attachments`, { data: { url } })\r\n}\r\n\r\nexport const getFinanceQuote = (id) => {\r\n return axios.get(`/finance/quotes/${id}`)\r\n}\r\n\r\nexport const getFinanceQuoteLog = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/quotes/${id}/logs${query}`)\r\n}\r\n\r\nexport const changeFinanceQuoteStatus = (id, data) => {\r\n return axios.patch(`/finance/quotes/${id}/status`, data)\r\n}\r\n\r\nexport const deleteFinanceQuote = (id) => {\r\n return axios.delete(`/finance/quotes/${id}`)\r\n}\r\n\r\nexport const uploadImportFinanceQuote = (data) => {\r\n return axios.post('/finance/quotes/uploadImport', data)\r\n}\r\n\r\nexport const executeImportFinanceQuote = (data) => {\r\n return axios.post('/finance/quotes/executeImport', data)\r\n}\r\n\r\n// export const createPdfFinanceQuote = (id) => {\r\n// return axios\r\n// .get(`/finance/quotes/${id}/print`, { responseType: 'blob' })\r\n// .then((response) => {\r\n// openNewTabBlobFile(response)\r\n//\r\n// return Promise.resolve(true)\r\n// })\r\n// .catch((error) => {\r\n// return Promise.reject(error)\r\n// })\r\n// }\r\n\r\nexport const getFinanceQuotePublicUrl = (id) => {\r\n return axios.get(`/finance/quotes/${id}/publicUrl`)\r\n}\r\n\r\nexport const exportFinanceQuote = (params) => {\r\n params = cleanBlankValue(params)\r\n const query = stringify(params)\r\n return axios.get(`/finance/quotes/export?${query}`, { responseType: 'arraybuffer' })\r\n}\r\n\r\nexport const getFinanceQuoteWaTemplate = (id) => {\r\n return axios.get(`/finance/quotes/${id}/whatsapp`)\r\n}\r\n\r\nexport const getFinanceQuoteEmailTemplate = (id) => {\r\n return axios.get(`/finance/quotes/${id}/email`)\r\n}\r\n\r\nexport const sendFinanceQuoteEmail = (id, data) => {\r\n return axios.post(`/finance/quotes/${id}/email`, data)\r\n}\r\n\r\nexport const getFinanceQuoteSmsTemplate = (id) => {\r\n return axios.get(`/finance/quotes/${id}/sms`)\r\n}\r\n\r\nexport const sendFinanceQuoteSms = (id, data) => {\r\n return axios.post(`/finance/quotes/${id}/sms`, data)\r\n}\r\n\r\nexport const inputMassDeleteFinanceQuote = (data) => {\r\n return axios.post('/finance/quotes/inputMassDelete', data)\r\n}\r\n\r\nexport const executeMassDeleteFinanceQuote = (data) => {\r\n return axios.delete('/finance/quotes/executeMassDelete', { data })\r\n}\r\n\r\nexport const inputMassSendEmailFinanceQuote = (data) => {\r\n return axios.post('/finance/quotes/inputMassEmail', data)\r\n}\r\n\r\nexport const executeMassSendEmailFinanceQuote = (data) => {\r\n return axios.post('/finance/quotes/executeMassEmail', data)\r\n}\r\n\r\nexport const getMassDownloadFinanceQuote = (params) => {\r\n return axios.get('/finance/quotes/massDownload', { params })\r\n}\r\n\r\nexport const approveFinanceQuote = ({ id }) => {\r\n return axios.post(`/finance/quotes/${id}/approve`)\r\n}\r\n\r\nexport const rejectFinanceQuote = ({ id, body }) => {\r\n return axios.post(`/finance/quotes/${id}/reject`, body)\r\n}\r\n\r\nexport const revertApprovalFinanceQuote = ({ id }) => {\r\n return axios.post(`/finance/quotes/${id}/revert`)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\nimport { cleanBlankValue, getOnce, openNewTabBlobFile } from 'utils/helper'\r\n\r\nexport const getFinanceInvoices = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/invoices?${query}`)\r\n}\r\n\r\nexport const addFinanceInvoice = (data) => {\r\n return axios.post('/finance/invoices', data)\r\n}\r\n\r\nexport const editFinanceInvoice = (data) => {\r\n return axios.put(`/finance/invoices/${data.id}`, data)\r\n}\r\n\r\nexport const deleteOnAddFinanceInvoiceAttachment = (url) => {\r\n return axios.delete('/finance/invoices/attachments', { data: { url } })\r\n}\r\n\r\nexport const deleteOnEditFinanceInvoiceAttachment = (id, url) => {\r\n return axios.delete(`/finance/invoices/${id}/attachments`, { data: { url } })\r\n}\r\n\r\nexport const getFinanceInvoice = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/invoices/${id}${query}`)\r\n}\r\n\r\nexport const exportFinanceInvoiceReceipt = (id, printURL) => {\r\n return axios.get(`/finance/invoices/${id}/downloadReceipt/${printURL}`)\r\n}\r\n\r\nexport const getFinanceInvoiceLog = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/invoices/${id}/logs${query}`)\r\n}\r\n\r\nexport const changeFinanceInvoiceStatus = (id, data) => {\r\n return axios.patch(`/finance/invoices/${id}/status`, data)\r\n}\r\n\r\nexport const deleteFinanceInvoice = (id) => {\r\n return axios.delete(`/finance/invoices/${id}`)\r\n}\r\n\r\nexport const getFinanceInvoiceOverview = (params) => {\r\n return axios.get(`/finance/invoices/overview`, { params })\r\n}\r\n\r\nexport const uploadImportFinanceInvoice = (data) => {\r\n return axios.post('/finance/invoices/uploadImport', data)\r\n}\r\n\r\nexport const executeImportFinanceInvoice = (data) => {\r\n return axios.post('/finance/invoices/executeImport', data)\r\n}\r\n\r\nexport const uploadImportFinanceInvoiceRecurring = (data) => {\r\n return axios.post('/finance/invoices/recurring/uploadImport', data)\r\n}\r\n\r\nexport const executeImportFinanceInvoiceRecurring = (data) => {\r\n return axios.post('/finance/invoices/recurring/executeImport', data)\r\n}\r\n\r\nexport const uploadImportStatusFinanceInvoice = (data) => {\r\n return axios.post('/finance/invoices/payment/uploadImport', data)\r\n}\r\n\r\nexport const executeImportStatusFinanceInvoice = (data) => {\r\n return axios.post('/finance/invoices/payment/executeImport', data)\r\n}\r\n\r\nexport const uploadImportFinanceInvoiceReturn = (data) => {\r\n return axios.post('/finance/invoices/returns/uploadImport', data)\r\n}\r\n\r\nexport const executeImportFinanceInvoiceReturn = (data) => {\r\n return axios.post('/finance/invoices/returns/executeImport', data)\r\n}\r\n\r\nexport const createPdfFinanceInvoice = (id) => {\r\n return axios\r\n .get(`/finance/invoices/${id}/print`, { responseType: 'blob' })\r\n .then((response) => {\r\n openNewTabBlobFile(response)\r\n return Promise.resolve(true)\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error)\r\n })\r\n}\r\n\r\nexport const changeFinanceInvoiceTaxNumber = (id, data) => {\r\n return axios.patch(`/finance/invoices/${id}/tax_number`, data)\r\n}\r\n\r\nexport const getFinanceInvoicePublicUrl = (id) => {\r\n return axios.get(`/finance/invoices/${id}/publicUrl`)\r\n}\r\n\r\nexport const exportFinanceInvoice = (params, type) => {\r\n const URL = params.status_id === 'recurring' ? 'invoices/recurring/export' : 'invoices/export'\r\n if (params.status_id === 'recurring') {\r\n delete params.status_id\r\n }\r\n const query = stringify(cleanBlankValue(params))\r\n\r\n if (type === 'eTax') {\r\n return axios.get(`/finance/${URL}/eTax?${query}`, { responseType: 'arraybuffer' })\r\n }\r\n return axios.get(`/finance/${URL}?${query}`, { responseType: 'arraybuffer' })\r\n}\r\n\r\nexport const getFinanceInvoiceWaTemplate = (id) => {\r\n return axios.get(`/finance/invoices/${id}/whatsapp`)\r\n}\r\n\r\nexport const getFinanceInvoiceWaRecapTemplate = (id) => {\r\n return axios.get(`/finance/invoices/${id}/whatsappRecap`)\r\n}\r\n\r\nexport const getFinanceInvoiceEmailTemplate = (id) => {\r\n return axios.get(`/finance/invoices/${id}/email`)\r\n}\r\n\r\nexport const sendFinanceInvoiceEmail = (id, data) => {\r\n return axios.post(`/finance/invoices/${id}/email`, data)\r\n}\r\n\r\nexport const getFinanceInvoiceEmailRecapTemplate = (id) => {\r\n return axios.get(`/finance/invoices/${id}/emailRecap`)\r\n}\r\n\r\nexport const sendFinanceInvoiceEmailRecap = (id, data) => {\r\n return axios.post(`/finance/invoices/${id}/emailRecap`, data)\r\n}\r\n\r\nexport const addRecurringInvoice = (data) => {\r\n return axios.post('/finance/invoices/recurring', data)\r\n}\r\n\r\nexport const editRecurringInvoice = (data) => {\r\n return axios.put(`/finance/invoices/recurring/${data.id}`, data)\r\n}\r\n\r\nexport const getRecurringInvoice = (id) => {\r\n return axios.get(`/finance/invoices/recurring/${id}`)\r\n}\r\n\r\nexport const deleteRecurringInvoice = (id) => {\r\n return axios.delete(`/finance/invoices/recurring/${id}`)\r\n}\r\n\r\nexport const getRecurringInvoices = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/invoices/recurring?${query}`)\r\n}\r\n\r\nexport const getFinanceInvoiceSmsTemplate = (id) => {\r\n return axios.get(`/finance/invoices/${id}/sms`)\r\n}\r\n\r\nexport const sendFinanceInvoiceSms = (id, data) => {\r\n return axios.post(`/finance/invoices/${id}/sms`, data)\r\n}\r\n\r\nexport const getFinanceInvoiceSmsRecapTemplate = (id) => {\r\n return axios.get(`/finance/invoices/${id}/smsRecap`)\r\n}\r\n\r\nexport const sendFinanceInvoiceSmsRecap = (id, data) => {\r\n return axios.post(`/finance/invoices/${id}/smsRecap`, data)\r\n}\r\n\r\nexport const inputMassDeleteFinanceInvoice = (data) => {\r\n return axios.post('/finance/invoices/inputMassDelete', data)\r\n}\r\n\r\nexport const executeMassDeleteFinanceInvoice = (data) => {\r\n return axios.delete('/finance/invoices/executeMassDelete', { data })\r\n}\r\n\r\nexport const inputMassSendEmailFinanceInvoice = (data) => {\r\n return axios.post('/finance/invoices/inputMassEmail', data)\r\n}\r\n\r\nexport const executeMassSendEmailFinanceInvoice = (data) => {\r\n return axios.post('/finance/invoices/executeMassEmail', data)\r\n}\r\n\r\nexport const getMassDownloadFinanceInvoice = (params) => {\r\n return axios.get('/finance/invoices/massDownload', { params })\r\n}\r\n\r\nexport const getMassDownloadLabelFinanceInvoice = (params) => {\r\n return axios.get('/finance/invoices/massDownloadLabel', { params })\r\n}\r\n\r\nexport const getMassDownloadDeliveryFinanceInvoice = (params) => {\r\n return axios.get('/finance/invoices/massDownloadDelivery', { params })\r\n}\r\n\r\nexport const getMassDownloadPaymentFinanceInvoice = (params) => {\r\n return axios.get('/finance/invoices/massDownloadPayment', { params })\r\n}\r\n\r\nexport const inputMassCreateFinanceInvoice = (data) => {\r\n return axios.post('/finance/invoices/inputMassInvoice', data)\r\n}\r\n\r\nexport const getMinTransDateFinanceInvoice = (data) => {\r\n return axios.post('/finance/invoices/mass/minDate', data)\r\n}\r\n\r\nexport const executeMassCreateFinanceInvoice = (data) => {\r\n return axios.post('/finance/invoices/executeMassInvoice', data)\r\n}\r\n\r\nexport const voidFinanceInvoice = (id, body) => {\r\n return axios.post(`/finance/invoices/${id}/void`, body)\r\n}\r\n\r\nexport const unvoidFinanceInvoice = (id) => {\r\n return axios.post(`/finance/invoices/${id}/unvoid`)\r\n}\r\n\r\nexport const approveFinanceInvoice = ({ id }) => {\r\n return axios.post(`/finance/invoices/${id}/approve`)\r\n}\r\n\r\nexport const rejectFinanceInvoice = ({ id, body }) => {\r\n return axios.post(`/finance/invoices/${id}/reject`, body)\r\n}\r\n\r\nexport const revertApprovalFinanceInvoice = ({ id }) => {\r\n return axios.post(`/finance/invoices/${id}/revert`)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\nimport { cleanBlankValue, getOnce } from 'utils/helper'\r\n\r\nexport const addFinanceProduct = (data) => {\r\n return axios.post('/finance/products', data)\r\n}\r\n\r\nexport const addFinanceProductPackage = (data) => {\r\n return axios.post('/finance/products/bundlePackages', data)\r\n}\r\n\r\nexport const deleteFinanceProductPhoto = (url) => {\r\n return axios.delete('/finance/products/photo', { data: { url } })\r\n}\r\n\r\nexport const deleteFinanceProductPhotoOnEdit = ({ url, id }) => {\r\n return axios.delete(`/finance/products/${id}/photo`, { data: { url } })\r\n}\r\n\r\nexport const conversionProduct = (data) => {\r\n return axios.post('/finance/products/conversions', data)\r\n}\r\n\r\nexport const editConversionProduct = (id, data) => {\r\n return axios.put(`/finance/products/conversions/${id}`, data)\r\n}\r\n\r\nexport const deleteConversionProduct = (id) => {\r\n return axios.delete(`/finance/products/conversions/${id}`)\r\n}\r\n\r\nexport const editFinanceProductPackage = (data) => {\r\n return axios.put(`/finance/products/bundlePackages/${data.id}`, data)\r\n}\r\n\r\nexport const addFinanceProductManufacture = (data) => {\r\n return axios.post('/finance/products/bundleManufactures', data)\r\n}\r\n\r\nexport const editFinanceProductManufacture = (data) => {\r\n return axios.put(`/finance/products/bundleManufactures/${data.id}`, data)\r\n}\r\n\r\nexport const editFinanceProduct = (data) => {\r\n return axios.put(`/finance/products/${data.id}`, data)\r\n}\r\n\r\nexport const addFinanceCategorie = (data) => {\r\n return axios.post('/finance/productCategories', data)\r\n}\r\n\r\nexport const uploadImportFinanceProduct = (data) => {\r\n return axios.post('/finance/products/uploadImport', data)\r\n}\r\n\r\nexport const executeImportFinanceProduct = (data) => {\r\n return axios.post('/finance/products/executeImport', data)\r\n}\r\n\r\nexport const uploadImportFinanceProductManufacture = (data) => {\r\n return axios.post('/finance/products/bundleManufactures/uploadImport', data)\r\n}\r\n\r\nexport const executeImportFinanceProductManufacture = (data) => {\r\n return axios.post('/finance/products/bundleManufactures/executeImport', data)\r\n}\r\n\r\nexport const uploadImportFinanceProductPackage = (data) => {\r\n return axios.post('/finance/products/bundlePackages/uploadImport', data)\r\n}\r\n\r\nexport const executeImportFinanceProductPackage = (data) => {\r\n return axios.post('/finance/products/bundlePackages/executeImport', data)\r\n}\r\n\r\nexport const uploadImportFinanceProductConversion = (data) => {\r\n return axios.post('/finance/products/conversions/uploadImport', data)\r\n}\r\n\r\nexport const executeImportFinanceProductConversion = (data) => {\r\n return axios.post('/finance/products/conversions/executeImport', data)\r\n}\r\n\r\nexport const getStockProduct = (id, warehouseIds, transDate) => {\r\n const params = cleanBlankValue({\r\n warehouse_ids: warehouseIds,\r\n trans_date: transDate,\r\n })\r\n const query = stringify(params)\r\n return axios.get(`/finance/products/${id}/stocks?${query}`)\r\n}\r\n\r\nexport const getStockProducts = (params) => {\r\n return axios.get('/finance/products/stocks', { params })\r\n}\r\n\r\nexport const getFinanceProducts = (params) => {\r\n params = cleanBlankValue(params)\r\n const query = stringify(params)\r\n return getOnce(`/finance/products?${query}`)\r\n}\r\n\r\nexport const getFinanceProductsOverview = (params) => {\r\n params = cleanBlankValue(params)\r\n const query = stringify(params)\r\n return axios.get(`/finance/products/overview?${query}`)\r\n}\r\n\r\nexport const getFinanceProduct = (id, params) => {\r\n return axios.get(`/finance/products/${id}`, { params })\r\n}\r\n\r\nexport const getFinanceProductLog = (id, params) => {\r\n return axios.get(`/finance/products/${id}/logs`, { params })\r\n}\r\n\r\nexport const getFinanceProductStockMovementChart = (params) => {\r\n return axios.get('/finance/products/stockMovementStats', { params })\r\n}\r\n\r\nexport const getFinanceProductMovementByCategoryChart = (params) => {\r\n return axios.get('/finance/products/movementProductByCategoryStats', { params })\r\n}\r\n\r\nexport const getFinanceProductValueMovementChart = (params) => {\r\n return axios.get('/finance/products/movementProductValueStats', { params })\r\n}\r\n\r\nexport const getFinanceProductSalesPurchaseChartDetail = (id, params) => {\r\n return axios.get(`/finance/products/${id}/salePurchaseStats`, { params })\r\n}\r\n\r\nexport const getFinanceProductStockMovementChartDetail = (id, params) => {\r\n return axios.get(`/finance/products/${id}/stockMovementStats`, { params })\r\n}\r\n\r\nexport const getConversionProduct = (id) => {\r\n return axios.get(`/finance/products/conversions/${id}`)\r\n}\r\n\r\nexport const getFinanceProductStockMovements = (id, params) => {\r\n return axios.get(`/finance/products/${id}/stockMovements`, { params })\r\n}\r\n\r\nexport const exportFinanceProductStockMovements = (id, params) => {\r\n return axios.get(`/finance/products/${id}/stockMovements`, {\r\n params,\r\n responseType: 'arraybuffer',\r\n })\r\n}\r\n\r\nexport const getFinanceProductTransactions = (id, params) => {\r\n return axios.get(`/finance/products/${id}/transactions`, { params })\r\n}\r\n\r\nexport const archiveFinanceProduct = (id) => {\r\n return axios.patch(`/finance/products/${id}/archive`)\r\n}\r\n\r\nexport const unarchiveFinanceProduct = (id) => {\r\n return axios.patch(`/finance/products/${id}/unarchive`)\r\n}\r\n\r\nexport const deleteFinanceProduct = (id) => {\r\n return axios.delete(`/finance/products/${id}`)\r\n}\r\n\r\nexport const inputMassDeleteProduct = (data) => {\r\n return axios.post('/finance/products/inputMassDelete', data)\r\n}\r\n\r\nexport const executeMassDeleteProduct = (data) => {\r\n return axios.delete('/finance/products/executeMassDelete', { data })\r\n}\r\n\r\nexport const getAllStockProducts = (requests) => {\r\n return axios.all(requests).then(axios.spread((...responses) => responses))\r\n}\r\n\r\nexport const exportProducts = (params) => {\r\n params = cleanBlankValue(params)\r\n const query = stringify(params)\r\n return axios.get(`/finance/products/export?${query}`, { responseType: 'arraybuffer' })\r\n}\r\n\r\nexport const exportProductsPackage = (params) => {\r\n params = cleanBlankValue(params)\r\n const query = stringify(params)\r\n return axios.get(`/finance/products/bundlePackage/export?${query}`, {\r\n responseType: 'arraybuffer',\r\n })\r\n}\r\n\r\nexport const exportProductsManufacture = (params) => {\r\n params = cleanBlankValue(params)\r\n const query = stringify(params)\r\n return axios.get(`/finance/products/bundleManufactures/export?${query}`, {\r\n responseType: 'arraybuffer',\r\n })\r\n}\r\n\r\nexport const editUnitConversion = (id, data) => {\r\n return axios.put(`/finance/products/${id}/units`, data)\r\n}\r\n\r\nexport const getProductsPriceRule = (params) => {\r\n return axios.get(`/finance/products/priceRules`, { params })\r\n}\r\n\r\nexport const getFinanceProductRoles = (id) => {\r\n return axios.get(`/finance/products/${id}/roles`)\r\n}\r\n\r\nexport const addFinanceProductRoles = (id, data) => {\r\n return axios.post(`/finance/products/${id}/roles`, data)\r\n}\r\n\r\nexport const getSuggestionBarcodeFinanceProduct = (params) => {\r\n const query = stringify(params)\r\n\r\n return getOnce(`/finance/products/suggestionBarcode?${query}`)\r\n}\r\n\r\nexport const inputMassUnarchiveProduct = (data) => {\r\n return axios.post('/finance/products/inputMassUnarchive', data)\r\n}\r\n\r\nexport const executeMassUnarchiveProduct = (data) => {\r\n return axios.post('/finance/products/executeMassUnarchive', data)\r\n}\r\n\r\nexport const getProductSummary = (id) => {\r\n return axios.get(`/finance/products/${id}/summary`)\r\n}\r\n\r\nexport const getProductWarehouseQtyStats = (id) => {\r\n return axios.get(`/finance/products/${id}/warehouseQtyStats`)\r\n}\r\n\r\nexport const getStockStatusStats = (params) => {\r\n return axios.get(`/finance/products/stockStatusStats`, { params })\r\n}\r\n\r\nexport const getStockPerCategoryStats = (params) => {\r\n return axios.get(`/finance/products/stockPerCategoryStats`, { params })\r\n}\r\n\r\nexport const getProductPerCategoryStats = (params) => {\r\n return axios.get(`/finance/products/productPerCategoryStats`, { params })\r\n}\r\n\r\nexport const getProductsSummary = (params) => {\r\n return axios.get(`/finance/products/summary`, { params })\r\n}\r\n\r\nexport const getProductLastPrices = (params) => {\r\n const query = stringify(params)\r\n return axios.get(`/finance/products/last_prices?${query}`)\r\n}\r\n","import axios from 'axios'\r\n\r\nexport const getBank = () => {\r\n return axios.get('/banks')\r\n}\r\n\r\nexport const getBankDetail = (id) => {\r\n return axios.get(`/banks/${id}`)\r\n}\r\n\r\nexport const getBankConnect = () => {\r\n return axios.get('/banks/connects')\r\n}\r\n\r\nexport const getBankConnectDetail = (id) => {\r\n return axios.get(`/banks/connects/${id}`)\r\n}\r\n\r\nexport const getBankConnectAccountTypes = () => {\r\n return axios.get('/banks/connects/accountTypes')\r\n}\r\n\r\nexport const addBankConnectSubmission = (data) => {\r\n return axios.post('/banks/connects/submissions', data)\r\n}\r\n\r\nexport const addBankConnect = (data) => {\r\n return axios.post('/banks/connects', data)\r\n}\r\n\r\nexport const editBankConnectSubmission = (id, data) => {\r\n return axios.put(`/banks/connects/${id}`, data)\r\n}\r\n\r\nexport const deleteBankConnectSubmission = (id) => {\r\n return axios.delete(`/banks/connects/${id}`)\r\n}\r\n\r\nexport const removeBankBookImage = (url) => {\r\n return axios.delete('/banks/connects/submissions/bankBookImgs', { data: { url } })\r\n}\r\n\r\nexport const removeIdCardImage = (url) => {\r\n return axios.delete('/banks/connects/submissions/idcardImgs', { data: { url } })\r\n}\r\n\r\nexport const removeBankBookImageDetail = (id) => {\r\n return axios.delete(`/banks/connects/submissions/${id}/bankBookImgs`)\r\n}\r\n\r\nexport const removeIdCardImageDetail = (id) => {\r\n return axios.delete(`/banks/connects/submissions/${id}/idcardImgs`)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nimport { getOnce } from 'utils/helper'\r\n\r\nexport const getFinanceBankStatements = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/bankStatements?${query}`)\r\n}\r\n\r\nexport const deleteFinanceBankStatement = (bankAccountId, ids) => {\r\n return axios.delete('/finance/bankStatements', {\r\n data: { bank_account_id: bankAccountId, id: ids },\r\n })\r\n}\r\n\r\nexport const uploadImportFinanceBankStatement = (data) => {\r\n return axios.post('/finance/bankStatements/uploadImport', data)\r\n}\r\n\r\nexport const executeImportFinanceBankStatement = (data) => {\r\n return axios.post('/finance/bankStatements/executeImport', data)\r\n}\r\n\r\nexport const editFinanceBankStatement = (id, data) => {\r\n return axios.put(`/finance/bankStatements/${id}`, data)\r\n}\r\n\r\nexport const getBankStatementDetails = (id, onlyGetOnce = true) => {\r\n if (onlyGetOnce) return getOnce(`/finance/bankStatements/${id}`)\r\n return axios.get(`/finance/bankStatements/${id}`)\r\n}\r\n\r\nexport const revertBankStatementDetail = (id, data) => {\r\n return axios.put(`/finance/bankStatements/${id}/revert`, data)\r\n}\r\n\r\nexport const inputMassRevertBankStatement = (data) => {\r\n return axios.post('/finance/bankStatements/inputMassRevert', data)\r\n}\r\n\r\nexport const executeMassRevertBankStatement = (data) => {\r\n return axios.post('/finance/bankStatements/executeMassRevert', data)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\nimport { getOnce } from 'utils/helper'\r\n\r\nexport const getFinanceBankReconciles = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/bankReconciles?${query}`)\r\n}\r\n\r\nexport const getFinanceBankReconcileTrans = (params) => {\r\n const query = stringify(params)\r\n return axios.get(`/finance/bankReconciles/bankTransactions?${query}`)\r\n}\r\n\r\nexport const reconcileFinanceBank = (data) => {\r\n return axios.patch('/finance/bankReconciles/reconcile', data)\r\n}\r\nexport const massReconcileFinanceBank = ({ data, selectedRowKeys }) => {\r\n const reconcilesData = []\r\n data.data.forEach((d) => {\r\n selectedRowKeys.forEach((selected) => {\r\n if (selected === d.id) {\r\n reconcilesData.push({\r\n bank_account_id: d.bank_account_id,\r\n bank_statement_id: d.id,\r\n bank_tran_ids: [d.suggestion.id],\r\n })\r\n }\r\n })\r\n })\r\n\r\n return axios.post('/finance/bankReconciles/executeMassReconcile', reconcilesData)\r\n}\r\n\r\nexport const inputMassDeleteFinanceBank = ({ data, selectedRowKeys }) => {\r\n const reconcilesData = []\r\n data.data.forEach((d) => {\r\n selectedRowKeys.forEach((selected) => {\r\n if (selected === d.id) {\r\n reconcilesData.push({\r\n bank_account_id: d.bank_account_id,\r\n bank_statement_id: d.id,\r\n bank_tran_ids: [d.suggestion.id],\r\n })\r\n }\r\n })\r\n })\r\n return axios.post('/finance/bankReconciles/inputMassReconcile', reconcilesData)\r\n}\r\n\r\nexport const multiBankReconciliation = (data) => {\r\n return axios.patch('/finance/bankReconciles/multiBankReconcile', data)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nimport { getOnce } from 'utils/helper'\r\n\r\nexport const getFinanceNumbers = () => {\r\n return axios.get('/finance/numbers/format')\r\n}\r\n\r\nexport const getFinanceNumberFormat = (id, params) => {\r\n return axios.get(`/finance/numbers/${id}`, { params })\r\n}\r\n\r\nexport const editFinanceNumber = (id, data) => {\r\n return axios.put(`/finance/numbers/${id}`, data)\r\n}\r\n\r\nexport const getFinanceNumberNext = (name, params) => {\r\n return axios.get(`/finance/numbers/next/${name}`, { params })\r\n}\r\n\r\nexport const isFinanceNumberExist = (name, params) => {\r\n return axios.get(`/finance/numbers/exists/${name}`, { params })\r\n}\r\n\r\nexport const getFinanceNumberTrans = () => {\r\n return axios.get('/finance/numbers/trans')\r\n}\r\n\r\nexport const createFinanceNumberTrans = (data) => {\r\n return axios.post('/finance/numbers/trans', data)\r\n}\r\n\r\nexport const editFinanceNumberTrans = (id, data) => {\r\n return axios.put(`/finance/numbers/trans/${id}`, data)\r\n}\r\n\r\nexport const deleteFinanceNumberTrans = (id) => {\r\n return axios.delete(`/finance/numbers/trans/${id}`)\r\n}\r\n\r\nexport const getFinanceNumberLog = (params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/numbers/logs${query}`)\r\n}\r\n\r\nexport const getFinanceNumberDetailLog = (id, params, justGetOnce = false) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n if (justGetOnce) return getOnce(`/finance/numbers/logs/${id}${query}`)\r\n return axios.get(`/finance/numbers/logs/${id}?${query}`)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nimport { cleanBlankValue } from 'utils/helper'\r\n\r\nexport const getFinanceConversionBalances = () => {\r\n return axios.get('/finance/conversionBalances')\r\n}\r\n\r\nexport const getFinanceConversionBalancesDate = () => {\r\n return axios.get('/finance/conversionBalances/date')\r\n}\r\n\r\nexport const getFinanceConversionBalance = (id) => {\r\n return axios.get(`/finance/conversionBalances/${id}`)\r\n}\r\n\r\nexport const saveFinanceConversionBalanceDate = (data) => {\r\n return axios.put('/finance/conversionBalances/date', data)\r\n}\r\n\r\nexport const saveFinanceConversionBalances = () => {\r\n return axios.post('/finance/conversionBalances')\r\n}\r\n\r\nexport const editFinanceConversionBalances = (id, data) => {\r\n return axios.put(`/finance/conversionBalances/${id}`, data)\r\n}\r\n\r\nexport const deleteFinanceConversionBalances = (id) => {\r\n return axios.delete(`/finance/conversionBalances/${id}`)\r\n}\r\n\r\nexport const getFinanceReversal = (id) => {\r\n return axios.get(`/finance/reversals/${id}`)\r\n}\r\n\r\nexport const getFinanceOpeningBalance = (id) => {\r\n return axios.get(`/finance/openingBalances/${id}`)\r\n}\r\n\r\nexport const uploadImportFinanceConversionBalances = (data) => {\r\n return axios.post('/finance/conversionBalances/uploadImport', data)\r\n}\r\n\r\nexport const executeImportFinanceConversionBalances = (data) => {\r\n return axios.post('/finance/conversionBalances/executeImport', data)\r\n}\r\n\r\nexport const exportConversionBalances = (params) => {\r\n params = cleanBlankValue(params)\r\n const query = stringify(params)\r\n return axios.get(`/finance/conversionBalances/export?${query}`, { responseType: 'arraybuffer' })\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\nimport { cleanBlankValue, getOnce } from 'utils/helper'\r\n\r\nexport const getFinanceManualJournals = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/manualJournals?${query}`)\r\n}\r\n\r\nexport const addFinanceManualJournal = (data) => {\r\n return axios.post('/finance/manualJournals', data)\r\n}\r\n\r\nexport const editFinanceManualJournal = (data) => {\r\n return axios.put(`/finance/manualJournals/${data.id}`, data)\r\n}\r\n\r\nexport const deleteOnAddFinanceManualJournalAttachment = (url) => {\r\n return axios.delete('/finance/manualJournals/attachments', { data: { url } })\r\n}\r\n\r\nexport const deleteOnEditFinanceManualJournalAttachment = (id, url) => {\r\n return axios.delete(`/finance/manualJournals/${id}/attachments`, { data: { url } })\r\n}\r\n\r\nexport const getFinanceManualJournal = (id) => {\r\n return axios.get(`/finance/manualJournals/${id}`)\r\n}\r\n\r\nexport const getFinanceManualJournalLog = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/manualJournals/${id}/logs${query}`)\r\n}\r\n\r\nexport const deleteFinanceManualJournal = (id) => {\r\n return axios.delete(`/finance/manualJournals/${id}`)\r\n}\r\n\r\nexport const uploadImportFinanceManualJournal = (data) => {\r\n return axios.post('/finance/manualJournals/uploadImport', data)\r\n}\r\n\r\nexport const executeImportFinanceManualJournal = (data) => {\r\n return axios.post('/finance/manualJournals/executeImport', data)\r\n}\r\n\r\nexport const exportFinanceManualJournal = (params) => {\r\n const URL =\r\n params.status_id === 'recurring' ? 'manualJournals/recurring/export' : 'manualJournals/export'\r\n if (params.status_id === 'recurring') {\r\n delete params.status_id\r\n }\r\n const query = stringify(cleanBlankValue(params))\r\n return axios.get(`/finance/${URL}?${query}`, { responseType: 'arraybuffer' })\r\n}\r\n\r\nexport const addRecurringManualJournal = (data) => {\r\n return axios.post('/finance/manualJournals/recurring', data)\r\n}\r\n\r\nexport const editRecurringManualJournal = (data) => {\r\n return axios.put(`/finance/manualJournals/recurring/${data.id}`, data)\r\n}\r\n\r\nexport const getRecurringManualJournal = (id) => {\r\n return axios.get(`/finance/manualJournals/recurring/${id}`)\r\n}\r\n\r\nexport const deleteRecurringManualJournal = (id) => {\r\n return axios.delete(`/finance/manualJournals/recurring/${id}`)\r\n}\r\n\r\nexport const getRecurringManualJournals = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/manualJournals/recurring?${query}`)\r\n}\r\n\r\nexport const inputMassDeleteManualJournal = (data) => {\r\n return axios.post('/finance/manualJournals/inputMassDelete', data)\r\n}\r\n\r\nexport const executeMassDeleteManualJournal = (data) => {\r\n return axios.delete('/finance/manualJournals/executeMassDelete', { data })\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nimport { cleanBlankValue, getOnce } from 'utils/helper'\r\n\r\nexport const getFinanceFixedAssets = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/fixedAssets?${query}`)\r\n}\r\n\r\nexport const addFinanceFixedAsset = (data) => {\r\n return axios.post('/finance/fixedAssets', data)\r\n}\r\n\r\nexport const editFinanceFixedAsset = (data) => {\r\n return axios.put(`/finance/fixedAssets/${data.id}`, data)\r\n}\r\n\r\nexport const getFinanceFixedAsset = (id) => {\r\n return axios.get(`/finance/fixedAssets/${id}`)\r\n}\r\n\r\nexport const deleteFinanceFixedAssetPhoto = (url) => {\r\n return axios.delete('/finance/fixedAssets/photo', { data: { url } })\r\n}\r\n\r\nexport const deleteFinanceFixedAssetPhotoOnEdit = ({ url, id }) => {\r\n return axios.delete(`/finance/fixedAssets/${id}/photo`, { data: { url } })\r\n}\r\n\r\nexport const getFinanceFixedAssetLog = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/fixedAssets/${id}/logs${query}`)\r\n}\r\n\r\nexport const deleteFinanceFixedAsset = (id) => {\r\n return axios.delete(`/finance/fixedAssets/${id}`)\r\n}\r\n\r\nexport const disposeFinanceFixedAsset = ({ id, ...data }) => {\r\n return axios.post(`/finance/fixedAssets/${id}/dispose`, data)\r\n}\r\n\r\nexport const registerFinanceFixedAsset = ({ id, ...data }) => {\r\n return axios.post(`/finance/fixedAssets/${id}/register`, data)\r\n}\r\n\r\nexport const getFinanceFixedAssetToDepreciates = (params) => {\r\n const query = stringify(params)\r\n return axios.get(`/finance/fixedAssets/toDepreciates?${query}`)\r\n}\r\n\r\nexport const depreciateFinanceFixedAsset = (data) => {\r\n return axios.post('/finance/fixedAssets/depreciate', data)\r\n}\r\n\r\nexport const revertDisposeFinanceFixedAsset = (id) => {\r\n return axios.post(`/finance/fixedAssets/${id}/revertDispose`)\r\n}\r\n\r\nexport const rollbackDepreciationFinanceFixedAsset = (id) => {\r\n return axios.post(`/finance/fixedAssets/${id}/rollbackDepreciation`)\r\n}\r\n\r\nexport const massDeleteFinanceFixedAsset = (ids) => {\r\n return axios.delete('/finance/fixedAssets/massDelete', { data: { id: ids } })\r\n}\r\n\r\nexport const getFinanceFixedAssetTransaction = (tranId) => {\r\n return axios.get(`/finance/fixedAssets/transactions/${tranId}`)\r\n}\r\n\r\nexport const uploadImportFinanceFixedAsset = (data) => {\r\n return axios.post('/finance/fixedAssets/uploadImport', data)\r\n}\r\n\r\nexport const executeImportFinanceFixedAsset = (data) => {\r\n return axios.post('/finance/fixedAssets/executeImport', data)\r\n}\r\n\r\nexport const exportFinanceFixedAsset = (params) => {\r\n params = cleanBlankValue(params)\r\n const query = stringify(params)\r\n return axios.get(`/finance/fixedAssets/export?${query}`, { responseType: 'arraybuffer' })\r\n}\r\n\r\nexport const inputMassDeleteFinanceFixedAsset = (data) => {\r\n return axios.post('/finance/fixedAssets/inputMassDelete', data)\r\n}\r\n\r\nexport const executeMassDeleteFinanceFixedAsset = (data) => {\r\n return axios.delete('/finance/fixedAssets/executeMassDelete', { data })\r\n}\r\n\r\nexport const getFinanceFixedAssetAccumulatedDepreciation = ({ id, ...params }) => {\r\n return axios.get(`/finance/fixedAssets/${id}/accumulatedDepreciation`, { params })\r\n}\r\n\r\nexport const getFinanceFixedAssetsTopAcquisitionPriceStats = () => {\r\n return axios.get('/finance/fixedAssets/topAcquisitionPriceStats')\r\n}\r\n\r\nexport const getFinanceFixedAssetsTopAssetValueStats = () => {\r\n return axios.get('/finance/fixedAssets/topAssetValueStats')\r\n}\r\n\r\nexport const getFinanceFixedAssetValueStats = (payload) => {\r\n const query = stringify(payload)\r\n return axios.get(`/finance/fixedAssets/assetValueStats?${query}`)\r\n}\r\n\r\nexport const getFinanceFixedAssetsDepreciationStats = (payload) => {\r\n const query = stringify(payload)\r\n return axios.get(`/finance/fixedAssets/depreciationStats?${query}`)\r\n}\r\n\r\nexport const getFinanceFixedAssetsAssetDisposalStats = (payload) => {\r\n const query = stringify(payload)\r\n return axios.get(`/finance/fixedAssets/assetDisposalStats?${query}`)\r\n}\r\n\r\nexport const getFinanceFixedAssetsAutomaticDepreciateLogs = (payload, justGetOnce = false) => {\r\n const query = stringify(payload)\r\n if (justGetOnce) return getOnce(`/finance/fixedAssets/automaticDepreciateLogs?${query}`)\r\n return axios.get(`/finance/fixedAssets/automaticDepreciateLogs?${query}`)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nconst resource = 'options'\r\n\r\nexport const getOptions = () => {\r\n return axios.get(`/${resource}`)\r\n}\r\n\r\nexport const updateOptions = (data) => {\r\n return axios.put(`/${resource}`, data)\r\n}\r\n\r\nexport const getPropertyOptions = () => {\r\n return axios.get(`/${resource}/property`)\r\n}\r\n\r\nexport const setLockDate = (data) => {\r\n return axios.put(`/${resource}/lock_date`, data)\r\n}\r\n\r\nexport const isLockDateDeletable = () => {\r\n return axios.get('/options/lock_date/deletable')\r\n}\r\n\r\nexport const deleteLockDate = () => {\r\n return axios.delete(`/${resource}/lock_date`)\r\n}\r\n\r\nexport const onBoarding = (data) => {\r\n return axios.post(`/onboardings`, data)\r\n}\r\n\r\nexport const sendEmailConfirmation = () => {\r\n return axios.post(`/${resource}/confirmationEmail/resend`)\r\n}\r\n\r\nexport const confirmsEmail = (data) => {\r\n return axios.post(`/${resource}/confirmationEmail`, data)\r\n}\r\n\r\nexport const getOption = (name) => {\r\n return axios.get(`/${resource}/${name}`)\r\n}\r\n\r\nexport const getOptionNotification = () => {\r\n return axios.get(`/${resource}/notifications`)\r\n}\r\n\r\nexport const editOptionNotification = (name, data) => {\r\n return axios.put(`/${resource}/notifications/${name}`, data)\r\n}\r\n\r\nexport const getOptionsDueReminders = (payload) => {\r\n const query = stringify(payload)\r\n return axios.get(`/${resource}/dueReminders?${query}`)\r\n}\r\n\r\nexport const updateOptionsDueReminders = (data) => {\r\n return axios.post(`/${resource}/dueReminders`, data)\r\n}\r\n\r\nexport const getOptionsThemeColors = () => {\r\n return axios.get('/options/themeColors')\r\n}\r\n\r\nexport const editOptionsThemeColors = (data) => {\r\n return axios.patch('/options/themeColors', data)\r\n}\r\n\r\nexport const addSchedulerLockDate = (data) => {\r\n return axios.put(`/${resource}/scheduler_lock_date`, data)\r\n}\r\n\r\nexport const getSchedulerLockDate = () => {\r\n return axios.get(`/${resource}/scheduler_lock_date`)\r\n}\r\n\r\nexport const putSchedulerLockDateActive = (data) => {\r\n return axios.put(`/${resource}/scheduler_lock_date/active`, data)\r\n}\r\n","import axios from 'axios'\r\n\r\nconst resource = 'pos/outletOptions'\r\n\r\nexport const updateOutletOptions = (outletid, payload) => {\r\n return axios.put(`/${resource}/${outletid}`, payload)\r\n}\r\n\r\nexport const getOutletOptions = (outletid) => {\r\n return axios.get(`/${resource}/${outletid}`)\r\n}\r\n","import axios from 'axios'\r\n\r\nexport const getFinanceLayoutInvoice = (type) => {\r\n return axios.get(`/finance/layoutInvoice?type=${type}`)\r\n}\r\n\r\nexport const saveFinanceLayoutInvoice = (data) => {\r\n return axios.put('/finance/layoutInvoice', data)\r\n}\r\n\r\nexport const getFinanceLayoutInvoiceTemplates = () => {\r\n return axios.get('/finance/layoutInvoice/templates')\r\n}\r\n\r\nexport const getFinanceLayoutInvoiceTemplatesStamp = () => {\r\n return axios.get('/finance/layoutInvoice/templatesStamp')\r\n}\r\n\r\nexport const getFinanceLayoutInvoiceLabelTemplates = () => {\r\n return axios.get('/finance/layoutInvoice/templatesLabel')\r\n}\r\n\r\nexport const resetFinanceLayoutInvoice = (data) => {\r\n return axios.post('/finance/layoutInvoice/reset', data)\r\n}\r\n\r\nexport const resetImageFinanceLayoutInvoice = (data) => {\r\n return axios.post('/finance/layoutInvoice/resetImage', data)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\nimport { getOnce } from 'utils/helper'\r\n\r\nexport const getFinanceTags = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/tags?${query}`)\r\n}\r\n\r\nexport const addFinanceTag = (data) => {\r\n return axios.post('/finance/tags', data)\r\n}\r\n\r\nexport const editFinanceTag = (data) => {\r\n return axios.put(`/finance/tags/${data.id}`, data)\r\n}\r\n\r\nexport const getSuggestionFinanceTag = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/tags/suggestionPerPage?${query}`)\r\n}\r\n\r\nexport const getFinanceTag = (id, params) => {\r\n const query = stringify(params)\r\n return axios.get(`/finance/tags/${id}?${query}`)\r\n}\r\n\r\nexport const deleteFinanceTag = (id) => {\r\n return axios.delete(`/finance/tags/${id}`)\r\n}\r\n\r\nexport const getFinanceTagRoles = (id) => {\r\n return axios.get(`/finance/tags/${id}/roles`)\r\n}\r\n\r\nexport const addFinanceTagRoles = (id, data) => {\r\n return axios.post(`/finance/tags/${id}/roles`, data)\r\n}\r\n\r\nexport const getFinanceTagDetail = (params) => {\r\n const query = stringify(params)\r\n return axios.get(`/finance/tags?${query}`)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nexport const getLayoutReport = () => {\r\n return axios.get('/layoutReporting')\r\n}\r\n\r\nexport const getLayoutReportVariable = (type) => {\r\n return axios.get(`/layoutReporting/updateVariable?type=${type}`)\r\n}\r\n\r\nexport const editLayoutReportVariable = (payload, type) => {\r\n const query = stringify({ ...payload, type })\r\n return axios.put(`/layoutReporting/updateVariable?${query}`)\r\n}\r\n\r\nexport const editLayoutReport = (data) => {\r\n return axios.put('/layoutReporting', data)\r\n}\r\n\r\nexport const resetLayoutReport = () => {\r\n return axios.post('/layoutReporting/reset')\r\n}\r\n\r\nexport const uploadLogoLayoutReport = (data) => {\r\n return axios.post('/layoutReporting/uploadLogo', data)\r\n}\r\n","import axios from 'axios'\r\n\r\nexport const getCountries = (params) => {\r\n return axios.get('/countries', { params })\r\n}\r\n\r\nexport const getProvinces = (params) => {\r\n return axios.get('/provinces', { params })\r\n}\r\n\r\nexport const getCities = (params) => {\r\n return axios.get('/cities', { params })\r\n}\r\n\r\nexport const getDistricts = (params) => {\r\n return axios.get('/districts', { params })\r\n}\r\n\r\nexport const getVillages = (params) => {\r\n return axios.get('/villages', { params })\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nexport const getConsolidationCompanies = (params) => {\r\n const query = stringify(params)\r\n return axios.get(`/finance/consolidations/companies?${query}`)\r\n}\r\n\r\nexport const updateConsolidationCompanies = (data) => {\r\n return axios.put('/finance/consolidations/companies', data)\r\n}\r\n\r\nexport const getConsolidationAccounts = (params) => {\r\n const query = stringify(params)\r\n return axios.get(`/finance/consolidations/accounts?${query}`)\r\n}\r\n\r\nexport const updateConsolidationAccounts = (data) => {\r\n return axios.put('/finance/consolidations/accounts', data)\r\n}\r\n\r\nexport const autoCompileConsolidation = (data) => {\r\n return axios.post('/finance/consolidations/accounts/autoCompile', data)\r\n}\r\n\r\nexport const activateConsolidation = (data) => {\r\n return axios.post('/finance/consolidations/activate', data)\r\n}\r\n\r\nexport const deactivateConsolidation = (data) => {\r\n return axios.post('/finance/consolidations/deactivate', data)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\nimport { cleanBlankValue, getOnce, openNewTabBlobFile } from 'utils/helper'\r\n\r\nexport const getFinanceOrders = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/orders?${query}`)\r\n}\r\n\r\nexport const addFinanceOrder = (data) => {\r\n return axios.post('/finance/orders', data)\r\n}\r\n\r\nexport const editFinanceOrder = (data) => {\r\n return axios.put(`/finance/orders/${data.id}`, data)\r\n}\r\n\r\nexport const deleteOnAddFinanceOrderAttachment = (url) => {\r\n return axios.delete('/finance/orders/attachments', { data: { url } })\r\n}\r\n\r\nexport const deleteOnEditFinanceOrderAttachment = (id, url) => {\r\n return axios.delete(`/finance/orders/${id}/attachments`, { data: { url } })\r\n}\r\n\r\nexport const getFinanceOrder = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/orders/${id}${query}`)\r\n}\r\n\r\nexport const getFinanceOrderLog = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/orders/${id}/logs${query}`)\r\n}\r\n\r\nexport const changeFinanceOrderStatus = (id, data) => {\r\n return axios.patch(`/finance/orders/${id}/status`, data)\r\n}\r\n\r\nexport const deleteFinanceOrder = (id) => {\r\n return axios.delete(`/finance/orders/${id}`)\r\n}\r\n\r\nexport const getFinanceOrderOverview = () => {\r\n return axios.get(`/finance/orders/overview`)\r\n}\r\n\r\nexport const uploadImportFinanceOrder = (data) => {\r\n return axios.post('/finance/orders/uploadImport', data)\r\n}\r\n\r\nexport const executeImportFinanceOrder = (data) => {\r\n return axios.post('/finance/orders/executeImport', data)\r\n}\r\n\r\nexport const createPdfFinanceOrder = (id) => {\r\n return axios\r\n .get(`/finance/orders/${id}/print`, { responseType: 'blob' })\r\n .then((response) => {\r\n openNewTabBlobFile(response)\r\n return Promise.resolve(true)\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error)\r\n })\r\n}\r\n\r\nexport const getFinanceOrderPublicUrl = (id) => {\r\n return axios.get(`/finance/orders/${id}/publicUrl`)\r\n}\r\n\r\nexport const exportFinanceOrder = (params) => {\r\n const URL = params.status_id === 'recurring' ? 'orders/recurring/export' : 'orders/export'\r\n if (params.status_id === 'recurring') {\r\n delete params.status_id\r\n }\r\n const query = stringify(cleanBlankValue(params))\r\n return axios.get(`/finance/${URL}?${query}`, { responseType: 'arraybuffer' })\r\n}\r\n\r\nexport const getFinanceOrderWaTemplate = (id) => {\r\n return axios.get(`/finance/orders/${id}/whatsapp`)\r\n}\r\n\r\nexport const getFinanceOrderEmailTemplate = (id) => {\r\n return axios.get(`/finance/orders/${id}/email`)\r\n}\r\n\r\nexport const sendFinanceOrderEmail = (id, data) => {\r\n return axios.post(`/finance/orders/${id}/email`, data)\r\n}\r\n\r\nexport const addRecurringOrder = (data) => {\r\n return axios.post('/finance/orders/recurring', data)\r\n}\r\n\r\nexport const editRecurringOrder = (data) => {\r\n return axios.put(`/finance/orders/recurring/${data.id}`, data)\r\n}\r\n\r\nexport const getRecurringOrder = (id) => {\r\n return axios.get(`/finance/orders/recurring/${id}`)\r\n}\r\n\r\nexport const deleteRecurringOrder = (id) => {\r\n return axios.delete(`/finance/orders/recurring/${id}`)\r\n}\r\n\r\nexport const getRecurringOrders = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/orders/recurring?${query}`)\r\n}\r\n\r\nexport const getFinanceOrderSmsTemplate = (id) => {\r\n return axios.get(`/finance/orders/${id}/sms`)\r\n}\r\n\r\nexport const sendFinanceOrderSms = (id, data) => {\r\n return axios.post(`/finance/orders/${id}/sms`, data)\r\n}\r\n\r\nexport const inputMassDeleteFinanceOrder = (data) => {\r\n return axios.post('/finance/orders/inputMassDelete', data)\r\n}\r\n\r\nexport const executeMassDeleteFinanceOrder = (data) => {\r\n return axios.delete('/finance/orders/executeMassDelete', { data })\r\n}\r\n\r\nexport const inputMassSendEmailFinanceOrder = (data) => {\r\n return axios.post('/finance/orders/inputMassEmail', data)\r\n}\r\n\r\nexport const executeMassSendEmailFinanceOrder = (data) => {\r\n return axios.post('/finance/orders/executeMassEmail', data)\r\n}\r\n\r\nexport const getMassDownloadFinanceOrder = (params) => {\r\n return axios.get('/finance/orders/massDownload', { params })\r\n}\r\n\r\nexport const getMinTransDateFinanceOrder = (data) => {\r\n return axios.post('/finance/orders/mass/minDate', data)\r\n}\r\n\r\nexport const inputMassCreateFinanceOrder = (data) => {\r\n return axios.post('/finance/orders/inputMassOrder', data)\r\n}\r\n\r\nexport const executeMassCreateFinanceOrder = (data) => {\r\n return axios.post('/finance/orders/executeMassOrder', data)\r\n}\r\n\r\nexport const approveFinanceOrder = ({ id }) => {\r\n return axios.post(`/finance/orders/${id}/approve`)\r\n}\r\n\r\nexport const rejectFinanceOrder = ({ id, body }) => {\r\n return axios.post(`/finance/orders/${id}/reject`, body)\r\n}\r\n\r\nexport const revertApprovalFinanceOrder = ({ id }) => {\r\n return axios.post(`/finance/orders/${id}/revert`)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nimport { cleanBlankValue, getOnce } from 'utils/helper'\r\n\r\nexport const getFinanceDeliverys = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/deliveries?${query}`)\r\n}\r\n\r\nexport const addFinanceDelivery = (data) => {\r\n return axios.post('/finance/deliveries', data)\r\n}\r\n\r\nexport const editFinanceDelivery = (data) => {\r\n return axios.put(`/finance/deliveries/${data.id}`, data)\r\n}\r\n\r\nexport const deleteOnAddFinanceDeliveryAttachment = (url) => {\r\n return axios.delete('/finance/deliveries/attachments', { data: { url } })\r\n}\r\n\r\nexport const deleteOnEditFinanceDeliveryAttachment = (id, url) => {\r\n return axios.delete(`/finance/deliveries/${id}/attachments`, { data: { url } })\r\n}\r\n\r\nexport const getFinanceDelivery = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/deliveries/${id}${query}`)\r\n}\r\n\r\nexport const getFinanceDeliveryLog = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/deliveries/${id}/logs${query}`)\r\n}\r\n\r\n// export const changeFinanceDeliveryStatus = (id, data) => {\r\n// return axios.patch(`/finance/deliveries/${id}/status`, data)\r\n// }\r\n\r\nexport const deleteFinanceDelivery = (id) => {\r\n return axios.delete(`/finance/deliveries/${id}`)\r\n}\r\n\r\nexport const getFinanceDeliveryMerged = (params) => {\r\n const query = stringify(params)\r\n\r\n return axios.get(`/finance/deliveries/merged?${query}`)\r\n}\r\n\r\nexport const getFinanceDeliveryPublicUrl = (id) => {\r\n return axios.get(`/finance/deliveries/${id}/publicUrl`)\r\n}\r\n\r\nexport const exportFinanceDelivery = (params) => {\r\n params = cleanBlankValue(params)\r\n const query = stringify(params)\r\n return axios.get(`/finance/deliveries/export?${query}`, { responseType: 'arraybuffer' })\r\n}\r\n\r\nexport const getFinanceDeliveryWaTemplate = (id) => {\r\n return axios.get(`/finance/deliveries/${id}/whatsapp`)\r\n}\r\n\r\nexport const getFinanceDeliveryEmailTemplate = (id) => {\r\n return axios.get(`/finance/deliveries/${id}/email`)\r\n}\r\n\r\nexport const sendFinanceDeliveryEmail = (id, data) => {\r\n return axios.post(`/finance/deliveries/${id}/email`, data)\r\n}\r\n\r\nexport const getFinanceDeliverySmsTemplate = (id) => {\r\n return axios.get(`/finance/deliveries/${id}/sms`)\r\n}\r\n\r\nexport const sendFinanceDeliverySms = (id, data) => {\r\n return axios.post(`/finance/deliveries/${id}/sms`, data)\r\n}\r\n\r\nexport const inputMassDeleteFinanceDelivery = (data) => {\r\n return axios.post('/finance/deliveries/inputMassDelete', data)\r\n}\r\n\r\nexport const executeMassDeleteFinanceDelivery = (data) => {\r\n return axios.delete('/finance/deliveries/executeMassDelete', { data })\r\n}\r\n\r\nexport const getMassDownloadFinanceDelivery = (params) => {\r\n return axios.get('/finance/deliveries/massDownload', { params })\r\n}\r\n\r\nexport const getMassDownloadLabelFinanceDelivery = (params) => {\r\n return axios.get('/finance/deliveries/massDownloadLabel', { params })\r\n}\r\n\r\nexport const inputMassCreateFinanceDelivery = (data) => {\r\n return axios.post('/finance/deliveries/inputMassDelivery', data)\r\n}\r\n\r\nexport const getMinTransDateFinanceDelivery = (data) => {\r\n return axios.post('/finance/deliveries/mass/minDate', data)\r\n}\r\n\r\nexport const executeMassCreateFinanceDelivery = (data) => {\r\n return axios.post('/finance/deliveries/executeMassDelivery', data)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\n// export const getCreditMemos = (params) => {\r\n// const query = stringify(params)\r\n// return getOnce(`/finance/creditMemos?${query}`)\r\n// }\r\n\r\nexport const addCreditMemo = (data) => {\r\n return axios.post('/finance/creditMemos', data)\r\n}\r\n\r\nexport const editCreditMemo = (data) => {\r\n return axios.put(`/finance/creditMemos/${data.id}`, data)\r\n}\r\n\r\nexport const deleteOnAddCreditMemoAttachment = (url) => {\r\n return axios.delete('/finance/creditMemos/attachments', { data: { url } })\r\n}\r\n\r\nexport const deleteOnEditCreditMemoAttachment = (id, url) => {\r\n return axios.delete(`/finance/creditMemos/${id}/attachments`, { data: { url } })\r\n}\r\n\r\nexport const getCreditMemo = (id) => {\r\n return axios.get(`/finance/creditMemos/${id}`)\r\n}\r\n\r\nexport const deleteCreditMemo = (id) => {\r\n return axios.delete(`/finance/creditMemos/${id}`)\r\n}\r\n\r\nexport const getCreditMemoLog = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/creditMemos/${id}/logs${query}`)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nimport { getOnce } from 'utils/helper'\r\n\r\nexport const getReturns = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/returns?${query}`)\r\n}\r\n\r\nexport const addReturn = (data) => {\r\n return axios.post('/finance/returns', data)\r\n}\r\n\r\nexport const editReturn = (data) => {\r\n return axios.put(`/finance/returns/${data.id}`, data)\r\n}\r\n\r\nexport const deleteOnAddReturnAttachment = (url) => {\r\n return axios.delete('/finance/returns/attachments', { data: { url } })\r\n}\r\n\r\nexport const deleteOnEditReturnAttachment = (id, url) => {\r\n return axios.delete(`/finance/returns/${id}/attachments`, { data: { url } })\r\n}\r\n\r\nexport const getReturn = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/returns/${id}${query}`)\r\n}\r\n\r\nexport const deleteReturn = (id) => {\r\n return axios.delete(`/finance/returns/${id}`)\r\n}\r\n\r\nexport const getReturnLog = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/returns/${id}/logs${query}`)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nimport { cleanBlankValue, getOnce } from 'utils/helper'\r\n\r\nexport const getFinancePurchaseQuotes = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/purchaseQuotes?${query}`)\r\n}\r\n\r\nexport const addFinancePurchaseQuote = (data) => {\r\n return axios.post('/finance/purchaseQuotes', data)\r\n}\r\n\r\nexport const editFinancePurchaseQuote = (data) => {\r\n return axios.put(`/finance/purchaseQuotes/${data.id}`, data)\r\n}\r\n\r\nexport const deleteOnAddFinancePurchaseQuoteAttachment = (url) => {\r\n return axios.delete('/finance/purchaseQuotes/attachments', { data: { url } })\r\n}\r\n\r\nexport const deleteOnEditFinancePurchaseQuoteAttachment = (id, url) => {\r\n return axios.delete(`/finance/purchaseQuotes/${id}/attachments`, { data: { url } })\r\n}\r\n\r\nexport const getFinancePurchaseQuote = (id) => {\r\n return axios.get(`/finance/purchaseQuotes/${id}`)\r\n}\r\n\r\nexport const getFinancePurchaseQuoteLog = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/purchaseQuotes/${id}/logs${query}`)\r\n}\r\n\r\nexport const changeFinancePurchaseQuoteStatus = (id, data) => {\r\n return axios.patch(`/finance/purchaseQuotes/${id}/status`, data)\r\n}\r\n\r\nexport const deleteFinancePurchaseQuote = (id) => {\r\n return axios.delete(`/finance/purchaseQuotes/${id}`)\r\n}\r\n\r\nexport const uploadImportFinancePurchaseQuote = (data) => {\r\n return axios.post('/finance/purchaseQuotes/uploadImport', data)\r\n}\r\n\r\nexport const executeImportFinancePurchaseQuote = (data) => {\r\n return axios.post('/finance/purchaseQuotes/executeImport', data)\r\n}\r\n\r\nexport const getFinancePurchaseQuotePublicUrl = (id) => {\r\n return axios.get(`/finance/purchaseQuotes/${id}/publicUrl`)\r\n}\r\n\r\nexport const exportFinancePurchaseQuote = (params) => {\r\n params = cleanBlankValue(params)\r\n const query = stringify(params)\r\n return axios.get(`/finance/purchaseQuotes/export?${query}`, { responseType: 'arraybuffer' })\r\n}\r\n\r\nexport const getFinancePurchaseQuoteWaTemplate = (id) => {\r\n return axios.get(`/finance/purchaseQuotes/${id}/whatsapp`)\r\n}\r\n\r\nexport const getFinancePurchaseQuoteEmailTemplate = (id) => {\r\n return axios.get(`/finance/purchaseQuotes/${id}/email`)\r\n}\r\n\r\nexport const sendFinancePurchaseQuoteEmail = (id, data) => {\r\n return axios.post(`/finance/purchaseQuotes/${id}/email`, data)\r\n}\r\n\r\nexport const getFinancePurchaseQuoteSmsTemplate = (id) => {\r\n return axios.get(`/finance/purchaseQuotes/${id}/sms`)\r\n}\r\n\r\nexport const sendFinancePurchaseQuoteSms = (id, data) => {\r\n return axios.post(`/finance/purchaseQuotes/${id}/sms`, data)\r\n}\r\n\r\nexport const inputMassDeleteFinancePurchaseQuote = (data) => {\r\n return axios.post('/finance/purchaseQuotes/inputMassDelete', data)\r\n}\r\n\r\nexport const executeMassDeleteFinancePurchaseQuote = (data) => {\r\n return axios.delete('/finance/purchaseQuotes/executeMassDelete', { data })\r\n}\r\n\r\nexport const inputMassSendEmailFinancePurchaseQuote = (data) => {\r\n return axios.post('/finance/purchaseQuotes/inputMassEmail', data)\r\n}\r\n\r\nexport const executeMassSendEmailFinancePurchaseQuote = (data) => {\r\n return axios.post('/finance/purchaseQuotes/executeMassEmail', data)\r\n}\r\n\r\nexport const getMassDownloadFinancePurchaseQuote = (params) => {\r\n return axios.get('/finance/purchaseQuotes/massDownload', { params })\r\n}\r\n\r\nexport const approveFinancePurchaseQuote = ({ id }) => {\r\n return axios.post(`/finance/purchaseQuotes/${id}/approve`)\r\n}\r\n\r\nexport const rejectFinancePurchaseQuote = ({ id, body }) => {\r\n return axios.post(`/finance/purchaseQuotes/${id}/reject`, body)\r\n}\r\n\r\nexport const revertApprovalFinancePurchaseQuote = ({ id }) => {\r\n return axios.post(`/finance/purchaseQuotes/${id}/revert`)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\n// import { getOnce } from 'utils/helper'\r\n\r\n// export const getDebitMemos = (params) => {\r\n// const query = stringify(params)\r\n// return getOnce(`/finance/debitMemos?${query}`)\r\n// }\r\n\r\nexport const addDebitMemo = (data) => {\r\n return axios.post('/finance/debitMemos', data)\r\n}\r\n\r\nexport const editDebitMemo = (data) => {\r\n return axios.put(`/finance/debitMemos/${data.id}`, data)\r\n}\r\n\r\nexport const deleteOnAddDebitMemoAttachment = (url) => {\r\n return axios.delete('/finance/debitMemos/attachments', { data: { url } })\r\n}\r\n\r\nexport const deleteOnEditDebitMemoAttachment = (id, url) => {\r\n return axios.delete(`/finance/debitMemos/${id}/attachments`, { data: { url } })\r\n}\r\n\r\nexport const getDebitMemo = (id) => {\r\n return axios.get(`/finance/debitMemos/${id}`)\r\n}\r\n\r\nexport const deleteDebitMemo = (id) => {\r\n return axios.delete(`/finance/debitMemos/${id}`)\r\n}\r\n\r\nexport const getDebitMemoLog = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/debitMemos/${id}/logs${query}`)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nimport { cleanBlankValue, getOnce } from 'utils/helper'\r\n\r\nexport const getFinancePurchaseDeliverys = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/purchaseDeliveries?${query}`)\r\n}\r\n\r\nexport const addFinancePurchaseDelivery = (data) => {\r\n return axios.post('/finance/purchaseDeliveries', data)\r\n}\r\n\r\nexport const editFinancePurchaseDelivery = (data) => {\r\n return axios.put(`/finance/purchaseDeliveries/${data.id}`, data)\r\n}\r\n\r\nexport const deleteOnAddFinancePurchaseDeliveryAttachment = (url) => {\r\n return axios.delete('/finance/purchaseDeliveries/attachments', { data: { url } })\r\n}\r\n\r\nexport const deleteOnEditFinancePurchaseDeliveryAttachment = (id, url) => {\r\n return axios.delete(`/finance/purchaseDeliveries/${id}/attachments`, { data: { url } })\r\n}\r\n\r\nexport const getFinancePurchaseDelivery = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/purchaseDeliveries/${id}${query}`)\r\n}\r\n\r\nexport const getFinancePurchaseDeliveryLog = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/purchaseDeliveries/${id}/logs${query}`)\r\n}\r\n\r\n// export const changeFinancePurchaseDeliveryStatus = (id, data) => {\r\n// return axios.patch(`/finance/purchaseDeliveries/${id}/status`, data)\r\n// }\r\n\r\nexport const deleteFinancePurchaseDelivery = (id) => {\r\n return axios.delete(`/finance/purchaseDeliveries/${id}`)\r\n}\r\n\r\nexport const getFinancePurchaseDeliveryMerged = (params) => {\r\n const query = stringify(params)\r\n\r\n return axios.get(`/finance/purchaseDeliveries/merged?${query}`)\r\n}\r\n\r\n// export const getFinancePurchaseDeliveryPublicUrl = (id) => {\r\n// return axios.get(`/finance/purchaseDeliveries/${id}/publicUrl`)\r\n// }\r\n\r\nexport const getFinancePurchaseDeliveryPublicUrl = (id) => {\r\n return axios.get(`/finance/purchaseDeliveries/${id}/publicUrl`)\r\n}\r\n\r\nexport const exportFinancePurchaseDelivery = (params) => {\r\n params = cleanBlankValue(params)\r\n const query = stringify(params)\r\n return axios.get(`/finance/purchaseDeliveries/export?${query}`, { responseType: 'arraybuffer' })\r\n}\r\n\r\nexport const getFinancePurchaseDeliveryWaTemplate = (id) => {\r\n return axios.get(`/finance/purchaseDeliveries/${id}/whatsapp`)\r\n}\r\n\r\nexport const getFinancePurchaseDeliveryEmailTemplate = (id) => {\r\n return axios.get(`/finance/purchaseDeliveries/${id}/email`)\r\n}\r\n\r\nexport const sendFinancePurchaseDeliveryEmail = (id, data) => {\r\n return axios.post(`/finance/purchaseDeliveries/${id}/email`, data)\r\n}\r\n\r\nexport const getFinancePurchaseDeliverySmsTemplate = (id) => {\r\n return axios.get(`/finance/purchaseDeliveries/${id}/sms`)\r\n}\r\n\r\nexport const sendFinancePurchaseDeliverySms = (id, data) => {\r\n return axios.post(`/finance/purchaseDeliveries/${id}/sms`, data)\r\n}\r\n\r\nexport const inputMassDeleteFinancePurchaseDelivery = (data) => {\r\n return axios.post('/finance/purchaseDeliveries/inputMassDelete', data)\r\n}\r\n\r\nexport const executeMassDeleteFinancePurchaseDelivery = (data) => {\r\n return axios.delete('/finance/purchaseDeliveries/executeMassDelete', { data })\r\n}\r\n\r\nexport const inputMassCreateFinancePurchaseDelivery = (data) => {\r\n return axios.post('/finance/purchaseDeliveries/inputMassPurchaseDelivery', data)\r\n}\r\n\r\nexport const getMinTransDateFinancePurchaseDelivery = (data) => {\r\n return axios.post('/finance/purchaseDeliveries/mass/minDate', data)\r\n}\r\n\r\nexport const executeMassCreateFinancePurchaseDelivery = (data) => {\r\n return axios.post('/finance/purchaseDeliveries/executeMassPurchaseDelivery', data)\r\n}\r\n","import axios from 'axios'\r\n\r\nexport const getMarketplaceConnects = (params) => {\r\n return axios.get('/marketplaceConnects', { params })\r\n}\r\n\r\nexport const getMarketplaceConnectShopeeAuthUrl = (params) => {\r\n return axios.get('/marketplaceConnects/shopee/partnerAuthUrl', { params })\r\n}\r\n\r\nexport const getMarketplaceConnectLazadaAuthUrl = (params) => {\r\n return axios.get('/marketplaceConnects/lazada/partnerAuthUrl', { params })\r\n}\r\n\r\nexport const getMarketplaceConnect = (id) => {\r\n return axios.get(`/marketplaceConnects/${id}`)\r\n}\r\n\r\nexport const syncMarketplaceConnect = (id) => {\r\n return axios.post(`/marketplaceConnects/${id}/sync`)\r\n}\r\n\r\nexport const addTempMarketplaceConnect = (data) => {\r\n return axios.post(`/marketplaceConnects/tmp`, data)\r\n}\r\n\r\nexport const deleteMarketplaceConnect = (id) => {\r\n return axios.delete(`/marketplaceConnects/${id}`)\r\n}\r\n\r\nexport const editMarketplaceConnect = (data) => {\r\n return axios.put(`/marketplaceConnects/${data.id}`, data)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nimport { getOnce } from 'utils/helper'\r\n\r\nexport const getPurchaseReturns = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/purchaseReturns?${query}`)\r\n}\r\n\r\nexport const addPurchaseReturn = (data) => {\r\n return axios.post('/finance/purchaseReturns', data)\r\n}\r\n\r\nexport const editPurchaseReturn = (data) => {\r\n return axios.put(`/finance/purchaseReturns/${data.id}`, data)\r\n}\r\n\r\nexport const deleteOnAddPurchaseReturnAttachment = (url) => {\r\n return axios.delete('/finance/purchaseReturns/attachments', { data: { url } })\r\n}\r\n\r\nexport const deleteOnEditPurchaseReturnAttachment = (id, url) => {\r\n return axios.delete(`/finance/purchaseReturns/${id}/attachments`, { data: { url } })\r\n}\r\n\r\nexport const getPurchaseReturn = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/purchaseReturns/${id}${query}`)\r\n}\r\n\r\nexport const deletePurchaseReturn = (id) => {\r\n return axios.delete(`/finance/purchaseReturns/${id}`)\r\n}\r\n\r\nexport const getPurchaseReturnLog = (id, params) => {\r\n const query = params ? `?${stringify(params)}` : ''\r\n return axios.get(`/finance/purchaseReturns/${id}/logs${query}`)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nimport { getOnce } from 'utils/helper'\r\n\r\nexport const getNews = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/notification/news?${query}`)\r\n}\r\n\r\nexport const markAsRead = (id) => {\r\n return axios.put(`/notification/broadcast/${id}/markAsRead`)\r\n}\r\n","import axios from 'axios'\r\n\r\nexport const getTutorial = (name) => {\r\n return axios.get(`/tutorials/${name}`)\r\n}\r\n","import { stringify } from 'query-string'\r\n\r\nimport { getOnce } from 'utils/helper'\r\n\r\nexport const getSuggestionBankRef = (params) => {\r\n const query = stringify(params)\r\n\r\n return getOnce(`/refBanks/suggestionPerPage?${query}`)\r\n}\r\n","import axios from 'axios'\r\n\r\nexport const getBackupDatabase = () => {\r\n return axios.get('/finance/backupDatabase/get', )\r\n}\r\n\r\nexport const prepareBackupDatabase = (data) => {\r\n return axios.post('/finance/backupDatabase/prepare', data)\r\n}\r\n","import axios from 'axios'\r\n\r\nexport const addFavoriteReport = (data) => {\r\n return axios.put('/finance/favoriteReportMenus', data)\r\n}\r\n\r\nexport const deleteFavoriteReport = (id) => {\r\n return axios.delete(`/finance/favoriteReportMenus/${id}`)\r\n}\r\n","import axios from \"axios\";\r\n\r\nexport const getOnboarding = () => {\r\n return axios.get('/onboardings')\r\n}\r\n\r\nexport const getOnboardingStatus = () => {\r\n return axios.get('/onboardings/status')\r\n}\r\n\r\nexport const updateOnboardingStatus = (id) => {\r\n return axios.post(`onboardings/${id}/check`)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nexport const getProductFavorites = () => {\r\n return axios.get('/pos/products/favorites')\r\n}\r\n\r\nexport const createProductFavorites = (payload) => {\r\n return axios.post('/pos/products/favorites', payload)\r\n}\r\n\r\nexport const deleteProductFavorites = ({ id }) => {\r\n return axios.delete(`/pos/products/favorites/${id}`)\r\n}\r\n\r\nexport const moveProductFavorite = ({ id, payload }) => {\r\n return axios.patch(`/pos/products/favorites/${id}/move`, payload)\r\n}\r\n\r\nexport const getOutlets = ({ payload }) => {\r\n const query = stringify(payload)\r\n return axios.get(`/pos/outlets?${query}`)\r\n}\r\n\r\nexport const createOutlet = ({ payload }) => {\r\n return axios.post('/pos/outlets', payload)\r\n}\r\n\r\nexport const editOutlet = ({ id, payload }) => {\r\n return axios.put(`/pos/outlets/${id}`, payload)\r\n}\r\n\r\nexport const deleteOutlet = ({ id }) => {\r\n return axios.delete(`/pos/outlets/${id}`)\r\n}\r\n\r\nexport const getPosUsers = () => {\r\n return axios.get('/pos/users')\r\n}\r\n","import axios from 'axios'\r\n\r\nexport const getFinancePaymentConnectSetting = (id) => {\r\n return axios.get(`/finance/paymentConnectSetting/${id}`)\r\n}\r\n\r\nexport const testConnectionFinancePaymentConnectSetting = (payload) => {\r\n return axios.post('/finance/paymentConnectSetting/testConnection', payload)\r\n}\r\n\r\nexport const updatePaymentConnectSetting = (payload) => {\r\n return axios.put('/finance/paymentConnectSetting', payload)\r\n}\r\n\r\nexport const setDefaultPaymentConnectSetting = (id, data) => {\r\n return axios.post(`/finance/paymentConnectSetting/${id}/default`, data)\r\n}\r\n","import axios from 'axios'\r\n\r\nexport const getSsoDomain = () => {\r\n return axios.get('/sso/domain')\r\n}\r\n\r\nexport const addSsoDomain = (data) => {\r\n return axios.post('/sso/domain', data)\r\n}\r\n\r\nexport const sendCodeSsoDomain = (id) => {\r\n return axios.post(`/sso/domain/${id}/sendCode`)\r\n}\r\n\r\nexport const verifySsoDomain = ({ id, data }) => {\r\n return axios.post(`/sso/domain/${id}/verify`, data)\r\n}\r\n\r\nexport const deleteSsoDomain = (id) => {\r\n return axios.delete(`/sso/domain/${id}`)\r\n}\r\n\r\nexport const generateSpSso = () => {\r\n return axios.get('/sso/generateSp')\r\n}\r\n\r\nexport const saveSsoConfiguration = ({ data }) => {\r\n return axios.post('/sso/config', data)\r\n}\r\n\r\nexport const getSsoConfiguration = () => {\r\n return axios.get('/sso/config')\r\n}\r\n\r\nexport const updateSsoConfiguration = ({ id, data }) => {\r\n return axios.patch(`/sso/config/${id}`, data)\r\n}\r\n","import axios from 'axios'\r\n\r\nexport const getFinanceLog = (params) => {\r\n return axios.get(`/finance/logs/transType`, {params})\r\n}\r\n","export const SET_REFS = 'SET_REFS'\r\nexport const SET_DASHBOARD = 'SET_DASHBOARD'\r\nexport const SET_A_DASHBOARD = 'SET_A_DASHBOARD'\r\nexport const ADD_DASHBOARD = 'ADD_DASHBOARD'\r\nexport const EDIT_DASHBOARD = 'EDIT_DASHBOARD'\r\nexport const DELETE_DASHBOARD = 'DELETE_DASHBOARD'\r\nexport const RESET_DASHBOARD = 'RESET_DASHBOARD'\r\nexport const ADD_ACCOUNT_WATCH_LIST = 'ADD_ACCOUNT_WATCH_LIST'\r\nexport const DELETE_ACCOUNT_WATCH_LIST = 'DELETE_ACCOUNT_WATCH_LIST'\r\nexport const MOVE_ACCOUNT_WATCH_LIST = 'MOVE_ACCOUNT_WATCH_LIST'\r\nexport const FILTER_ACCOUNT_WATCH_LIST = 'FILTER_ACCOUNT_WATCH_LIST'\r\nexport const TOKEN_EXPIRED = 'TOKEN_EXPIRED'\r\n\r\n// punya e inits\r\nexport const START_LOADING = 'START_LOADING'\r\nexport const STOP_LOADING = 'STOP_LOADING'\r\n\r\nexport const START_INIT = 'START_INIT'\r\nexport const STOP_INIT = 'STOP_INIT'\r\nexport const SET_LOADED_INIT = 'SET_LOADED_INIT'\r\nexport const INCREASE_ATTEMP = 'INCREASE_ATTEMP'\r\nexport const RESET_ATTEMP = 'RESET_ATTEMP'\r\n\r\n// Billing\r\nexport const SET_BILLING = 'SET_BILLING'\r\n\r\n// Billing POS\r\nexport const SET_BILLING_POS = 'SET_BILLING_POS'\r\nexport const CLEAR_BILLING_POS = 'CLEAR_BILLING_POS'\r\n\r\n// Onboarding Checklist\r\nexport const SET_ONBOARDING_CHECKLIST = 'SET_ONBOARDING_CHECKLIST'\r\n\r\n// Translation\r\nexport const SET_TRANSLATION = 'SET_TRANSLATION'\r\nexport const EDIT_TRANSLATION = 'EDIT_TRANSLATION'\r\n\r\n// Companes\r\nexport const SET_COMPANIES = 'SET_COMPANIES'\r\nexport const SET_WEBSITE_ID = 'SET_WEBSITE_ID'\r\nexport const SET_ENDPOINT = 'SET_ENDPOINT'\r\nexport const SET_SELECTED_ENDPOINT = 'SET_SELECTED_ENDPOINT'\r\nexport const EDIT_COMPANY_NAME = 'EDIT_COMPANY_NAME'\r\n\r\n// Pages Payments\r\nexport const SET_PAYMENTS = 'SET_PAYMENTS'\r\nexport const ADD_PAYMENT = 'ADD_PAYMENT'\r\nexport const DELETE_PAYMENT = 'DELETE_PAYMENT'\r\nexport const EDIT_PAYMENT = 'EDIT_PAYMENT'\r\nexport const MOVE_PAYMENT = 'MOVE_PAYMENT'\r\nexport const CHANGE_STATUS_PAYMENT = 'CHANGE_STATUS_PAYMENT'\r\n\r\n// Authentication User\r\nexport const SET_USER = 'SET_USER'\r\nexport const USER_LOGIN = 'USER_LOGIN'\r\nexport const USER_LOGIN_SUCCESS = 'USER_LOGIN_SUCCESS'\r\nexport const USER_LOGIN_FAILURE = 'USER_LOGIN_FAILURE'\r\nexport const USER_LOGOUT = 'USER_LOGOUT'\r\nexport const USER_UPDATE_PROFILE = 'USER_UPDATE_PROFILE'\r\nexport const SHOW_LOGIN_FORM = 'SHOW_LOGIN_FORM'\r\nexport const SET_ERROR_LOGIN_FORM = 'SET_ERROR_LOGIN_FORM'\r\n\r\n// Menu\r\nexport const SET_MENU = 'SET_MENU'\r\nexport const EDIT_MENU = 'EDIT_MENU'\r\nexport const RESET_MENU = 'RESET_MENU'\r\n\r\n// Options\r\nexport const SET_OPTIONS = 'SET_OPTIONS'\r\nexport const EDIT_OPTIONS = 'EDIT_OPTIONS'\r\n\r\n// Setup\r\nexport const SETUP_CLEAR_DEMO_DATA = 'SETUP_CLEAR_DEMO_DATA'\r\nexport const SETUP_FINISH = 'SETUP_FINISH'\r\n\r\n// POS Settings\r\nexport const POS_SETTINGS_STORE = 'POS_SETTINGS_STORE'\r\n\r\n// Finance Products\r\nexport const SET_FINANCE_PRODUCTS = 'SET_FINANCE_PRODUCTS'\r\n\r\n// Bank Accounts\r\nexport const SET_FINANCE_BANK_ACCOUNTS = 'SET_FINANCE_BANK_ACCOUNTS'\r\nexport const ADD_FINANCE_BANK_ACCOUNT = 'ADD_FINANCE_BANK_ACCOUNT'\r\nexport const EDIT_FINANCE_BANK_ACCOUNT = 'EDIT_FINANCE_BANK_ACCOUNT'\r\nexport const DELETE_FINANCE_BANK_ACCOUNT = 'DELETE_FINANCE_BANK_ACCOUNT'\r\n\r\n// Custom Column\r\nexport const SET_CUSTOM_COLUMNS = 'SET_CUSTOM_COLUMNS'\r\nexport const ADD_CUSTOM_COLUMN = 'ADD_CUSTOM_COLUMN'\r\nexport const DELETE_CUSTOM_COLUMN = 'DELETE_CUSTOM_COLUMN'\r\nexport const EDIT_CUSTOM_COLUMN = 'EDIT_CUSTOM_COLUMN'\r\nexport const MOVE_CUSTOM_COLUMN = 'MOVE_CUSTOM_COLUMN'\r\nexport const CHANGE_STATUS_CUSTOM_COLUMN = 'CHANGE_STATUS_CUSTOM_COLUMN'\r\nexport const ADD_CUSTOM_COLUMN_ITEM = 'ADD_CUSTOM_COLUMN_ITEM'\r\nexport const DELETE_CUSTOM_COLUMN_ITEM = 'DELETE_CUSTOM_COLUMN_ITEM'\r\nexport const EDIT_CUSTOM_COLUMN_ITEM = 'EDIT_CUSTOM_COLUMN_ITEM'\r\nexport const MOVE_CUSTOM_COLUMN_ITEM = 'MOVE_CUSTOM_COLUMN_ITEM'\r\nexport const CHANGE_STATUS_CUSTOM_COLUMN_ITEM = 'CHANGE_STATUS_CUSTOM_COLUMN_ITEM'\r\n\r\n// Finance Expense Term\r\nexport const GET_CAN_DELETED_FINANCE_EXPENSE_TERMS = 'GET_CAN_DELETED_FINANCE_EXPENSE_TERMS'\r\nexport const SET_FINANCE_EXPENSE_TERMS = 'SET_FINANCE_EXPENSE_TERMS'\r\nexport const ADD_FINANCE_EXPENSE_TERM = 'ADD_FINANCE_EXPENSE_TERM'\r\nexport const DELETE_FINANCE_EXPENSE_TERM = 'DELETE_FINANCE_EXPENSE_TERM'\r\nexport const EDIT_FINANCE_EXPENSE_TERM = 'EDIT_FINANCE_EXPENSE_TERM'\r\nexport const MOVE_FINANCE_EXPENSE_TERM = 'MOVE_FINANCE_EXPENSE_TERM'\r\nexport const CHANGE_STATUS_FINANCE_EXPENSE_TERM = 'CHANGE_STATUS_FINANCE_EXPENSE_TERM'\r\nexport const FILTER_FINANCE_EXPENSE_TERM = 'FILTER_FINANCE_EXPENSE_TERM'\r\n\r\n// Finance Tax\r\nexport const GET_CAN_DELETED_FINANCE_TAX = 'GET_CAN_DELETED_FINANCE_TAX'\r\nexport const SET_FINANCE_TAXES = 'SET_FINANCE_TAXES'\r\nexport const ADD_FINANCE_TAX = 'ADD_FINANCE_TAX'\r\nexport const DELETE_FINANCE_TAX = 'DELETE_FINANCE_TAX'\r\nexport const EDIT_FINANCE_TAX = 'EDIT_FINANCE_TAX'\r\nexport const MOVE_FINANCE_TAX = 'MOVE_FINANCE_TAX'\r\nexport const CHANGE_STATUS_FINANCE_TAX = 'CHANGE_STATUS_FINANCE_TAX'\r\nexport const FILTER_FINANCE_TAX = 'FILTER_FINANCE_TAX'\r\n\r\n// Finance Unit\r\nexport const GET_CAN_DELETED_FINANCE_UNIT = 'GET_CAN_DELETED_FINANCE_UNIT'\r\nexport const SET_FINANCE_UNITS = 'SET_FINANCE_UNITS'\r\nexport const ADD_FINANCE_UNIT = 'ADD_FINANCE_UNIT'\r\nexport const DELETE_FINANCE_UNIT = 'DELETE_FINANCE_UNIT'\r\nexport const EDIT_FINANCE_UNIT = 'EDIT_FINANCE_UNIT'\r\nexport const MOVE_FINANCE_UNIT = 'MOVE_FINANCE_UNIT'\r\nexport const FILTER_FINANCE_UNIT = 'FILTER_FINANCE_UNIT'\r\n\r\nexport const SET_FINANCE_CONFIG = 'SET_FINANCE_CONFIG'\r\nexport const SET_FINANCE_CONFIG_DEFAULT_ACCOUNT = 'SET_FINANCE_CONFIG_DEFAULT_ACCOUNT'\r\nexport const SET_FINANCE_ACCOUNT_CATEGORIES = 'SET_FINANCE_ACCOUNT_CATEGORIES'\r\nexport const SET_FINANCE_CONTACTS = 'SET_FINANCE_CONTACTS'\r\n\r\n// Finance Contact Group\r\nexport const SET_FINANCE_CONTACT_GROUP = 'SET_FINANCE_CONTACT_GROUP'\r\nexport const ADD_FINANCE_CONTACT_GROUP = 'ADD_FINANCE_CONTACT_GROUP'\r\nexport const EDIT_FINANCE_CONTACT_GROUP = 'EDIT_FINANCE_CONTACT_GROUP'\r\nexport const MOVE_FINANCE_CONTACT_GROUP = 'MOVE_FINANCE_CONTACT_GROUP'\r\nexport const DELETE_FINANCE_CONTACT_GROUP = 'DELETE_FINANCE_CONTACT_GROUP'\r\n\r\nexport const SET_FINANCE_PRODUCT_CATEGORIES = 'SET_FINANCE_PRODUCT_CATEGORIES'\r\nexport const SET_FINANCE_PRODUCT_CATEGORIES_ROLES = 'SET_FINANCE_PRODUCT_CATEGORIES_ROLES'\r\nexport const DELETE_FINANCE_PRODUCT_CATEGORIES_ROLES = 'DELETE_FINANCE_PRODUCT_CATEGORIES_ROLES'\r\nexport const MOVE_FINANCE_PRODUCT_CATEGORIES_ROLES = 'MOVE_FINANCE_PRODUCT_CATEGORIES_ROLES'\r\nexport const ADD_FINANCE_PRODUCT_CATEGORIES = 'ADD_FINANCE_PRODUCT_CATEGORIES'\r\nexport const EDIT_FINANCE_PRODUCT_CATEGORIES = 'EDIT_FINANCE_PRODUCT_CATEGORIES'\r\nexport const DELETE_FINANCE_PRODUCT_CATEGORIES = 'DELETE_FINANCE_PRODUCT_CATEGORIES'\r\n\r\n// Lock Date\r\nexport const SET_LOCK_DATE_OPTION = 'SET_LOCK_DATE_OPTION'\r\nexport const REMOVE_LOCK_DATE_OPTION = 'REMOVE_LOCK_DATE_OPTION'\r\n\r\n// Finance Accounts\r\nexport const SET_FINANCE_WAREHOUSES = 'SET_FINANCE_WAREHOUSES'\r\nexport const ADD_FINANCE_WAREHOUSE = 'ADD_FINANCE_WAREHOUSE'\r\nexport const DELETE_FINANCE_WAREHOUSE = 'DELETE_FINANCE_WAREHOUSE'\r\nexport const ARCHIVE_FINANCE_WAREHOUSE = 'ARCHIVE_FINANCE_WAREHOUSE'\r\nexport const UNARCHIVE_FINANCE_WAREHOUSE = 'UNARCHIVE_FINANCE_WAREHOUSE'\r\nexport const EDIT_FINANCE_WAREHOUSE = 'EDIT_FINANCE_WAREHOUSE'\r\nexport const MOVE_FINANCE_WAREHOUSE = 'MOVE_FINANCE_WAREHOUSE'\r\nexport const FILTER_FINANCE_WAREHOUSE = 'FILTER_FINANCE_WAREHOUSE'\r\nexport const CHANGE_STATUS_FINANCE_WAREHOUSE = 'CHANGE_STATUS_FINANCE_WAREHOUSE'\r\nexport const SET_FINANCE_WAREHOUSES_ROLES = 'SET_FINANCE_WAREHOUSES_ROLES'\r\n\r\n// Expediton\r\nexport const GET_CAN_DELETED_SHIPPING_COMPS = 'GET_CAN_DELETED_SHIPPING_COMPS'\r\nexport const SET_SHIPPING_COMPS = 'SET_SHIPPING_COMPS'\r\nexport const ADD_SHIPPING_COMP = 'ADD_SHIPPING_COMP'\r\nexport const DELETE_SHIPPING_COMP = 'DELETE_SHIPPING_COMP'\r\nexport const EDIT_SHIPPING_COMP = 'EDIT_SHIPPING_COMP'\r\nexport const MOVE_SHIPPING_COMP = 'MOVE_SHIPPING_COMP'\r\nexport const CHANGE_STATUS_SHIPPING_COMP = 'CHANGE_STATUS_SHIPPING_COMP'\r\nexport const FILTER_SHIPPING_COMP = 'FILTER_SHIPPING_COMP'\r\n\r\n// Account Transaction Report\r\nexport const SHOW_ACCOUNTTRANSACTION_REPORT = 'SHOW_ACCOUNTTRANSACTION_REPORT'\r\nexport const HIDE_ACCOUNTTRANSACTION_REPORT = 'HIDE_ACCOUNTTRANSACTION_REPORT'\r\n\r\n// Audit Modal\r\nexport const SHOW_AUDIT_MODAL = 'SHOW_AUDIT_MODAL'\r\nexport const HIDE_AUDIT_MODAL = 'HIDE_AUDIT_MODAL'\r\n\r\n// Broadcast\r\nexport const SET_BROADCAST = 'SET_BROADCAST'\r\nexport const CLEAR_BROADCAST = 'CLEAR_BROADCAST'\r\nexport const SHOW_BROADCAST = 'SHOW_BROADCAST'\r\nexport const HIDE_BROADCAST = 'HIDE_BROADCAST'\r\nexport const MARKASREAD_BROADCAST = 'MARKASREAD_BROADCAST'\r\n\r\n// NPS\r\nexport const HIDE_NPS = 'HIDE_NPS'\r\nexport const SET_NPS = 'SET_NPS'\r\n\r\n// HRIS\r\nexport const SET_SHOW_HR_ADDON = 'SET_SHOW_HR_ADDON'\r\n\r\n// Tutorials\r\nexport const SET_TUTORIALS = 'SET_TUTORIALS'\r\n\r\n// Default Message\r\nexport const SET_DEFAULT_MESSAGE = 'SET_DEFAULT_MESSAGE'\r\nexport const EDIT_DEFAULT_MESSAGE = 'EDIT_DEFAULT_MESSAGE'\r\n\r\n// Multi Currencies\r\nexport const SET_CURRENCIES = 'SET_CURRENCIES' // Untuk ngeset yang dari init\r\nexport const SET_MULTI_CURRENCIES = 'SET_MULTI_CURRENCIES' // Untuk ngeset dari yang setting\r\nexport const ADD_CURRENCY = 'ADD_CURRENCY'\r\nexport const DELETE_CURRENCY = 'DELETE_CURRENCY'\r\nexport const EDIT_CURRENCY = 'EDIT_CURRENCY'\r\nexport const SET_BASE_CURRENCY = 'SET_BASE_CURRENCY'\r\nexport const ACTIVATED_CURRENCY = 'ACTIVATED_CURRENCY'\r\nexport const DEACTIVATED_CURRENCY = 'DEACTIVATED_CURRENCY'\r\n// Reviews\r\nexport const SET_REVIEWS = 'SET_REVIEWS'\r\n\r\nexport const SET_ID_CARD_TYPES = 'SET_ID_CARD_TYPES'\r\nexport const EDIT_OPTION = 'EDIT_OPTION'\r\n\r\nexport const SET_ANNOUNCEMENT = 'SET_ANNOUNCEMENT'\r\n\r\nexport const SET_MAX_COMPANIES = 'SET_MAX_COMPANIES'\r\n\r\nexport const SET_FINANCE_APPROVAL = 'SET_FINANCE_APPROVAL'\r\n\r\nexport const SET_PAYMENT_CONNECT_PROVIDERS = 'SET_PAYMENT_CONNECT'\r\n\r\nexport const SET_SALUTATIONS = 'SET_SALUTATIONS'\r\n\r\nexport const SET_REASONS = 'SET_REASONS'\r\n\r\nexport const SET_MAINTENANCE = 'SET_MAINTENANCE'\r\n\r\nexport const SET_OUTLETS = 'SET_OUTLETS'\r\nexport const ADD_OUTLET = 'ADD_OUTLET'\r\nexport const EDIT_OUTLET = 'EDIT_OUTLET'\r\nexport const DELETE_OUTLET = 'DELETE_OUTLET'\r\n\r\n// Transaction Fees\r\nexport const SET_TRANSACTION_FEES = 'SET_TRANSACTION_FEES'\r\nexport const ADD_TRANSACTION_FEE = 'ADD_TRANSACTION_FEE'\r\nexport const DELETE_TRANSACTION_FEE = 'DELETE_TRANSACTION_FEE'\r\nexport const EDIT_TRANSACTION_FEE = 'EDIT_TRANSACTION_FEE'\r\n","import Pusher from 'pusher-js'\r\nimport { generateBaseUri } from './helper'\r\nimport { getToken } from './cookies'\r\n\r\n// Pusher.logToConsole = true;\r\n\r\nconst getAuthorizationHeader = () => {\r\n const token = getToken() // Mendapatkan token dari cookies\r\n return {\r\n Authorization: `Bearer ${token}`,\r\n }\r\n}\r\n\r\nexport const createPusherInstance = () => {\r\n const pusher = new Pusher(process.env.REACT_APP_PUSHER_APP_KEY, {\r\n forceTLS: true,\r\n cluster: process.env.REACT_APP_PUSHER_APP_CLUSTER,\r\n authEndpoint: `${generateBaseUri()}/broadcasting/auth`,\r\n auth: {\r\n headers: getAuthorizationHeader(),\r\n },\r\n })\r\n return pusher\r\n}\r\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\r\nimport { createPusherInstance } from 'utils/pusher'\r\n// import { useAbly } from 'ably/react'\r\n\r\nconst initialProgress = { invalid: 0, total: 0, valid: 0 }\r\n\r\n// Hook untuk handle ably progress\r\nconst useNotificationProgress = ({ rawData } = {}) => {\r\n // const ably = useAbly()\r\n const channelRef = useRef()\r\n const pusherRef = useRef()\r\n // const [channelTemp, setChannelTemp] = useState({\r\n // name: 'private:default',\r\n // eventName: 'App\\\\Events\\\\DeleteProgress',\r\n // })\r\n const [progress, setProgress] = useState(initialProgress)\r\n const [statusImported, setStatusImported] = useState(false)\r\n\r\n // const channelEventCallback = useCallback((event) => {\r\n // console.log(event.data)\r\n // }, [])\r\n\r\n // const { channel } = useChannel(channelTemp.name, channelTemp.eventName, channelEventCallback)\r\n\r\n const setChannelHandler = useCallback(\r\n async (name, eventName = 'App\\\\Events\\\\DeleteProgress', callback) => {\r\n const pusher = createPusherInstance()\r\n pusherRef.current = pusher\r\n\r\n const channel = pusher.subscribe(name)\r\n channelRef.current = channel\r\n\r\n channelRef.current.bind(eventName, async (data) => {\r\n if (rawData) {\r\n setProgress(data)\r\n } else {\r\n setProgress(data?.progress ?? {})\r\n }\r\n })\r\n\r\n if (typeof callback === 'function') {\r\n callback({ channel: channelRef })\r\n }\r\n },\r\n [rawData],\r\n )\r\n\r\n const progressData = useMemo(() => {\r\n if (rawData) {\r\n return progress\r\n }\r\n\r\n const imported = progress.invalid + progress.valid\r\n\r\n return {\r\n imported,\r\n total: progress.total,\r\n percentage:\r\n progress.total > 0 && imported > 0 ? Math.floor((imported / progress.total) * 100) : 0,\r\n data: progress,\r\n }\r\n }, [progress, rawData])\r\n\r\n const disconnectHandler = useCallback(() => {\r\n if (channelRef.current) {\r\n channelRef.current.unbind_all()\r\n channelRef.current.unsubscribe()\r\n }\r\n if (pusherRef.current) {\r\n pusherRef.current.disconnect()\r\n }\r\n }, [])\r\n\r\n const resetProgressHandler = useCallback(() => {\r\n setProgress(initialProgress)\r\n setStatusImported(false)\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (progress.total > 0 && progress.valid > 0) {\r\n if (progressData.percentage >= 100) {\r\n setTimeout(() => {\r\n setStatusImported(true)\r\n }, 300)\r\n }\r\n }\r\n }, [progress.total, progress.valid, progressData.percentage])\r\n\r\n return {\r\n onSetChannel: setChannelHandler,\r\n progress: progressData,\r\n onDisconnect: disconnectHandler,\r\n onResetProgress: resetProgressHandler,\r\n statusImported,\r\n }\r\n}\r\n\r\nexport default useNotificationProgress\r\n","import { useDispatch } from 'react-redux'\r\nimport { useCallback, useEffect } from 'react'\r\nimport _ from 'lodash'\r\nimport { stringify } from 'query-string'\r\nimport { replace } from 'connected-react-router'\r\n\r\nimport { cleanBlankValue } from 'utils/helper'\r\nimport usePrevious from './usePrevious'\r\nimport usePermission from './usePermission'\r\n\r\nconst useReport = ({\r\n params,\r\n setParams,\r\n parseParamsToUri,\r\n parseUriToParams,\r\n reportPermissionName,\r\n intl,\r\n filters,\r\n location,\r\n}) => {\r\n const { isHasAccess, loadedInit } = usePermission({\r\n name: reportPermissionName,\r\n intl,\r\n parentPermission: 'reports',\r\n })\r\n\r\n const prevParams = usePrevious(params)\r\n\r\n const dispatch = useDispatch()\r\n const onReplace = useCallback((path) => dispatch(replace(path)), [dispatch])\r\n\r\n const _parseParamsToUri = useCallback(\r\n ({ params: __params = {} } = {}) => {\r\n let currentParams = _.cloneDeep({ ...params, ...__params })\r\n if (currentParams.page === 1) currentParams.page = null\r\n\r\n if (typeof parseParamsToUri === 'function') {\r\n currentParams = {\r\n ...parseParamsToUri({\r\n params: currentParams,\r\n }),\r\n }\r\n }\r\n\r\n const payload = cleanBlankValue(currentParams)\r\n const query = stringify(payload, { arrayFormat: 'bracket' })\r\n onReplace(`${location.pathname}?${query}`)\r\n },\r\n [params, parseParamsToUri, onReplace, location.pathname],\r\n )\r\n\r\n const paramChangeHandler = useCallback(\r\n (_params) => {\r\n setParams((prevState) => {\r\n return {\r\n ...prevState,\r\n ..._params,\r\n }\r\n })\r\n },\r\n [setParams],\r\n )\r\n\r\n const _parseUriToParams = useCallback(() => {\r\n if (!_.isEmpty(filters)) {\r\n let currentFilters = { ...filters }\r\n if (typeof parseUriToParams === 'function') {\r\n currentFilters = {\r\n ...parseUriToParams({ filters: currentFilters }),\r\n }\r\n }\r\n paramChangeHandler(currentFilters)\r\n }\r\n }, [filters, paramChangeHandler, parseUriToParams])\r\n\r\n useEffect(() => {\r\n _parseUriToParams()\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (!_.isEmpty(prevParams) && !_.isEqual(prevParams, params)) {\r\n _parseParamsToUri()\r\n }\r\n }, [loadedInit, params, _parseParamsToUri, prevParams])\r\n\r\n const pageChangeHandler = useCallback(\r\n (page, per_page) => paramChangeHandler({ page, per_page }),\r\n [paramChangeHandler],\r\n )\r\n\r\n const onTableChange = useCallback(\r\n (pagination, _filters, sorter) => {\r\n setParams((prevState) => {\r\n let orderBy = ''\r\n if (sorter.order === 'ascend') orderBy = 'asc'\r\n else if (sorter.order === 'descend') orderBy = 'desc'\r\n\r\n let sortBy\r\n\r\n if (sorter?.field?.[0]) {\r\n sortBy = typeof sorter?.field === 'string' ? sorter?.field : sorter?.field?.[0]\r\n } else sortBy = sorter.field ?? null\r\n\r\n return {\r\n ...prevState,\r\n sort_by: sortBy,\r\n order_by: orderBy,\r\n }\r\n })\r\n },\r\n [setParams],\r\n )\r\n\r\n return {\r\n pageChangeHandler,\r\n onTableChange,\r\n loadedInit,\r\n isHasAccess,\r\n parseParamsToUri: _parseParamsToUri,\r\n }\r\n}\r\n\r\nexport default useReport\r\n","import { useSelector } from 'react-redux'\r\n\r\nimport { loadedInitSelector, userSelector } from 'redux/selectors'\r\n\r\n/**\r\n * check if user.id === 0 because loadedInit has a bug that loadedInit=true before init loaded\r\n * @returns {boolean}\r\n */\r\nconst useLoadedInit = () => {\r\n const loadedInit = useSelector(loadedInitSelector)\r\n const user = useSelector(userSelector)\r\n\r\n return loadedInit && !!user.id\r\n}\r\n\r\nexport default useLoadedInit\r\n","import { useCallback, useMemo } from 'react'\r\n\r\nimport styles from './chart-legend.module.scss'\r\n\r\nconst useChartLegend = ({ horizontalLegendScreens = [] }) => {\r\n const getOrCreateLegendList = useCallback(\r\n ({ id }) => {\r\n const legendContainer = document.getElementById(id)\r\n let listContainer = legendContainer.querySelector('ul')\r\n if (!listContainer) {\r\n listContainer = document.createElement('ul')\r\n listContainer.style.display = 'flex'\r\n listContainer.style.flexDirection = horizontalLegendScreens.includes(true)\r\n ? 'row'\r\n : 'column'\r\n listContainer.style.justifyContent = horizontalLegendScreens.includes(true) ? 'center' : ''\r\n listContainer.style.margin = '0'\r\n listContainer.style.padding = '0'\r\n listContainer.style.flexWrap = 'wrap'\r\n\r\n legendContainer.appendChild(listContainer)\r\n }\r\n\r\n return listContainer\r\n },\r\n [horizontalLegendScreens],\r\n )\r\n\r\n return useMemo(\r\n () => ({\r\n id: 'htmlLegend',\r\n afterUpdate(chart, args, options) {\r\n if (options.display === false) return\r\n\r\n const ul = getOrCreateLegendList({\r\n id: options.containerID,\r\n })\r\n\r\n // Remove old legend items\r\n while (ul.firstChild) {\r\n ul.firstChild.remove()\r\n }\r\n\r\n // Reuse the built-in legendItems generator\r\n const items = chart.options.plugins.legend.labels.generateLabels(chart)\r\n\r\n items.forEach((item) => {\r\n const li = document.createElement('li')\r\n li.style.alignItems = 'center'\r\n li.style.cursor = 'pointer'\r\n li.style.display = 'flex'\r\n li.style.flexDirection = 'row'\r\n li.style.marginLeft = '10px'\r\n li.style.cursor = 'pointer'\r\n\r\n li.onclick = () => {\r\n const { type } = chart.config\r\n if (type === 'pie' || type === 'doughnut') {\r\n // Pie and doughnut charts only have a single dataset and visibility is per item\r\n chart.toggleDataVisibility(item.index)\r\n } else {\r\n chart.setDatasetVisibility(\r\n item.datasetIndex,\r\n !chart.isDatasetVisible(item.datasetIndex),\r\n )\r\n }\r\n chart.update()\r\n }\r\n\r\n // Color box\r\n const boxSpan = document.createElement('span')\r\n boxSpan.style.background = item.fillStyle\r\n boxSpan.style.borderColor = item.strokeStyle\r\n boxSpan.style.borderWidth = `${item.lineWidth}px`\r\n boxSpan.style.display = 'inline-block'\r\n boxSpan.style.height = '10px'\r\n boxSpan.style.marginRight = '10px'\r\n boxSpan.style.width = '35px'\r\n boxSpan.style.minWidth = '35px'\r\n boxSpan.style.maxWidth = '35px'\r\n\r\n // Text\r\n const textContainer = document.createElement('p')\r\n textContainer.style.color = item.fontColor\r\n textContainer.classList.add(styles.legendText)\r\n textContainer.style.textDecoration = item.hidden ? 'line-through' : ''\r\n\r\n const text = document.createTextNode(item.text)\r\n textContainer.appendChild(text)\r\n\r\n li.appendChild(boxSpan)\r\n li.appendChild(textContainer)\r\n ul.appendChild(li)\r\n })\r\n },\r\n }),\r\n [getOrCreateLegendList],\r\n )\r\n}\r\n\r\nexport default useChartLegend\r\n","import { useEffect, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { push } from 'connected-react-router'\r\nimport { message } from 'antd'\r\n\r\nimport { financeConfigSelector } from 'redux/selectors'\r\nimport { useNotificationProgress, useResponsive } from 'utils/hooks/index'\r\n\r\nconst useImport = ({ useUploadMutation, listPagePath, useExecuteMutation, intl }) => {\r\n const [file, setFile] = useState(null)\r\n const [step, setStep] = useState(0)\r\n const [dataUploaded, setDataUploaded] = useState({\r\n url: '',\r\n rows: {\r\n valid: [],\r\n invalid: [],\r\n },\r\n valid: 0,\r\n invalid: 0,\r\n invalidDetail: [],\r\n })\r\n\r\n const config = useSelector(financeConfigSelector)\r\n const dispatch = useDispatch()\r\n const onPush = (path) => dispatch(push(path))\r\n\r\n const { isMobileView } = useResponsive()\r\n\r\n const executeMutation = useExecuteMutation()\r\n const uploadMutation = useUploadMutation()\r\n\r\n const { onSetChannel, progress, onDisconnect, statusImported, onResetProgress } =\r\n useNotificationProgress()\r\n\r\n useEffect(() => {\r\n if (step === 2 && statusImported) {\r\n onDisconnect()\r\n }\r\n }, [onDisconnect, statusImported, onResetProgress, step])\r\n\r\n useEffect(() => {\r\n return () => {\r\n onResetProgress()\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n const loading = uploadMutation.status === 'loading' || executeMutation.status === 'loading'\r\n\r\n const onSetAttachment = (url) => setFile(url)\r\n\r\n const onRemoveAttachment = () => setFile(null)\r\n\r\n const goToListPage = () => onPush(listPagePath)\r\n\r\n const onUpload = () => {\r\n if (!file) {\r\n message.error(intl.formatMessage({ id: 'financeInvoices.file_not_found' }))\r\n return\r\n }\r\n\r\n const formData = new FormData()\r\n formData.append('file', file)\r\n\r\n uploadMutation.mutate(formData, {\r\n onSuccess: (response) => {\r\n if (response.data.success) {\r\n const { result, url } = response.data.data\r\n setStep(1)\r\n setDataUploaded({\r\n url,\r\n rows: {\r\n valid: result.rows.valid || [],\r\n invalid: result.rows.invalid || [],\r\n },\r\n valid: result.valid,\r\n invalid: result.invalid,\r\n invalidDetail: result.invalidDetail || {},\r\n })\r\n message.success(response.data.message)\r\n } else {\r\n message.error(response.data.message)\r\n }\r\n },\r\n onError: () => {\r\n message.error(intl.formatMessage({ id: 'financeInvoices.error_upload_file' }))\r\n },\r\n })\r\n }\r\n\r\n const onExecuteImport = () => {\r\n executeMutation.mutate(\r\n { url: dataUploaded.url },\r\n {\r\n onSuccess: (response) => {\r\n if (response.data.success) {\r\n const { channel } = response.data.data\r\n setStep(2)\r\n onSetChannel(channel, 'App\\\\Events\\\\ImportProgress')\r\n message.success(response.data.message)\r\n } else {\r\n message.error(response.data.message)\r\n }\r\n },\r\n onError: () => {\r\n message.error(intl.formatMessage({ id: 'financeInvoices.error_cannot_import' }))\r\n },\r\n },\r\n )\r\n }\r\n\r\n const onNewImport = () => {\r\n onResetProgress()\r\n setStep(0)\r\n setFile(null)\r\n setDataUploaded({\r\n url: '',\r\n rows: {\r\n valid: [],\r\n invalid: [],\r\n },\r\n valid: 0,\r\n invalid: 0,\r\n invalidDetail: [],\r\n })\r\n }\r\n\r\n return {\r\n loading,\r\n config,\r\n isMobileView,\r\n progress,\r\n statusImported,\r\n step,\r\n file,\r\n dataUploaded,\r\n goToListPage,\r\n onSetAttachment,\r\n onRemoveAttachment,\r\n onUpload,\r\n onExecuteImport,\r\n onNewImport,\r\n }\r\n}\r\n\r\nexport default useImport\r\n","import * as actionTypes from 'redux/actionTypes'\r\n\r\nexport const setEndpoint = (payload) => (dispatch) => {\r\n // dispatch(resetDashboard());\r\n dispatch({\r\n type: actionTypes.SET_ENDPOINT,\r\n payload,\r\n })\r\n}\r\n\r\nexport const setSelectedEndpoint = (payload) => (dispatch) => {\r\n // dispatch(resetDashboard());\r\n dispatch({\r\n type: actionTypes.SET_SELECTED_ENDPOINT,\r\n payload,\r\n })\r\n}\r\n\r\nexport const setWebsiteId = (payload) => (dispatch) => {\r\n // dispatch(resetDashboard());\r\n dispatch({\r\n type: actionTypes.SET_WEBSITE_ID,\r\n payload,\r\n })\r\n}\r\n\r\nexport const editCompanyName = (payload) => (dispatch) => {\r\n dispatch({\r\n type: actionTypes.EDIT_COMPANY_NAME,\r\n payload,\r\n })\r\n}\r\n","import { message } from 'antd'\r\nimport store from 'store'\r\n\r\nimport {\r\n acceptInvitation as onAcceptInvitation,\r\n invite as onInvite,\r\n login as onLogin,\r\n logout as onLogout,\r\n reset as onReset,\r\n singleLogin as onSingleLogin,\r\n updateProfile as updateProfileApi,\r\n verifyGoogleToken as onVerifyGoogleToken,\r\n} from 'utils/apis'\r\nimport {\r\n resetInits,\r\n setCompanies,\r\n setInits,\r\n setLoadedInit,\r\n setOptions,\r\n setUser,\r\n startInit,\r\n stopInit,\r\n} from 'redux/inits/actions'\r\nimport * as actionTypes from 'redux/actionTypes'\r\nimport { removeToken, setSavedEmail, setToken } from 'utils/cookies'\r\nimport { setSelectedEndpoint } from 'redux/companies/actions'\r\nimport { setErrorLoginForm } from 'redux/loginForm/actions'\r\n\r\nconst actions = {\r\n SET_STATE: 'user/SET_STATE',\r\n LOGIN: 'user/LOGIN',\r\n ACTIVATE: 'user/ACTIVATE',\r\n LOAD_CURRENT_ACCOUNT: 'user/LOAD_CURRENT_ACCOUNT',\r\n LOGOUT: 'user/LOGOUT',\r\n}\r\n\r\n/**\r\n * Show login modal\r\n */\r\nexport const showLoginForm = (errorMessage) => {\r\n const payload = {\r\n showLoginForm: true,\r\n }\r\n if (errorMessage) {\r\n payload.message = errorMessage\r\n }\r\n return {\r\n type: actionTypes.SHOW_LOGIN_FORM,\r\n payload,\r\n }\r\n}\r\n\r\n/**\r\n * Hide login modal\r\n */\r\nexport const hideLoginForm = () => {\r\n return {\r\n type: actionTypes.SHOW_LOGIN_FORM,\r\n payload: {\r\n showLoginForm: false,\r\n message: '',\r\n },\r\n }\r\n}\r\n\r\nexport const loginRedux = (payload) => {\r\n return {\r\n type: actionTypes.USER_LOGIN,\r\n payload,\r\n }\r\n}\r\n\r\nexport const tokenExpiredRedux = () => {\r\n return {\r\n type: actionTypes.TOKEN_EXPIRED,\r\n }\r\n}\r\n\r\nexport const loginSuccessRedux = (payload) => {\r\n return {\r\n type: actionTypes.USER_LOGIN_SUCCESS,\r\n payload,\r\n }\r\n}\r\n\r\nexport const loginFailureRedux = (payload) => {\r\n return {\r\n type: actionTypes.USER_LOGIN_FAILURE,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setUserRedux = (payload) => {\r\n return {\r\n type: actionTypes.SET_USER,\r\n payload,\r\n }\r\n}\r\n\r\nexport const login = (payload) => {\r\n return (dispatch) => {\r\n dispatch(loginRedux(payload))\r\n\r\n return onLogin(payload.email, payload.password, payload.remember_me)\r\n .then((response) => {\r\n if (response.data.success) {\r\n const { init, data } = response.data.data\r\n setToken(data.access_token, payload.remember_me)\r\n dispatch(setInits(init))\r\n } else {\r\n message.error(response.data.message)\r\n }\r\n })\r\n .catch(() => {\r\n dispatch(loginFailureRedux())\r\n })\r\n }\r\n}\r\n\r\nexport const afterLoginHandler = (response, payload, withLoading) => {\r\n return (dispatch) => {\r\n if (withLoading) {\r\n dispatch(loginRedux(payload))\r\n }\r\n\r\n if (response.data.success) {\r\n const { init, data, companies, user } = response.data.data\r\n if (payload.email) {\r\n setSavedEmail(payload.email)\r\n }\r\n setToken(data.access_token)\r\n if (init) {\r\n dispatch(setSelectedEndpoint(init.endpoint))\r\n dispatch(setInits(init))\r\n // dispatch(stopInit());\r\n } else {\r\n if (response.data?.data?.endpoint) {\r\n dispatch(setSelectedEndpoint(response.data?.data?.endpoint))\r\n }\r\n dispatch(setUser({ user }))\r\n dispatch(setCompanies({ companies }))\r\n }\r\n dispatch(stopInit())\r\n dispatch(setLoadedInit())\r\n } else {\r\n message.error(response.data.message)\r\n }\r\n }\r\n}\r\n\r\nexport const singleLogin = (payload) => {\r\n return (dispatch) => {\r\n dispatch(loginRedux(payload))\r\n dispatch(setErrorLoginForm(null))\r\n\r\n return onSingleLogin(payload.email, payload.password, payload.remember_me)\r\n .then((response) => {\r\n dispatch(afterLoginHandler(response, payload))\r\n })\r\n .catch(() => {\r\n dispatch(loginFailureRedux())\r\n })\r\n }\r\n}\r\n\r\nexport const verifyGoogleToken = (payload) => {\r\n return (dispatch) => {\r\n dispatch(loginRedux())\r\n dispatch(setErrorLoginForm(null))\r\n\r\n return onVerifyGoogleToken(payload)\r\n .then((response) => {\r\n if (response.data.success) {\r\n dispatch(afterLoginHandler(response, { email: response.data.data.user.email }))\r\n } else {\r\n dispatch(setErrorLoginForm(response.data.message))\r\n }\r\n })\r\n .catch((e) => {\r\n dispatch(loginFailureRedux())\r\n if (e && e.data && e.data.message) {\r\n dispatch(setErrorLoginForm(e.data.message))\r\n }\r\n })\r\n }\r\n}\r\n\r\nexport const invite = (payload) => {\r\n return (dispatch) => {\r\n return onInvite(payload)\r\n .then((response) => {\r\n if (response.data.success) {\r\n const { init, data } = response.data.data\r\n store.remove('app.endpoint')\r\n setToken(data.access_token, data.expires_at)\r\n dispatch(setInits(init))\r\n dispatch(stopInit())\r\n return true\r\n }\r\n message.error(response.data.message)\r\n return false\r\n })\r\n .catch((e) => {\r\n console.log(e)\r\n })\r\n }\r\n}\r\n\r\nexport const acceptInvitation = (payload) => {\r\n return (dispatch) => {\r\n return onAcceptInvitation(payload)\r\n .then((response) => {\r\n if (response.data.success) {\r\n const { init, data } = response.data.data\r\n store.remove('app.endpoint')\r\n setToken(data.access_token, data.expires_at)\r\n dispatch(setInits(init))\r\n dispatch(stopInit())\r\n return true\r\n }\r\n message.error(response.data.message)\r\n return false\r\n })\r\n .catch((e) => {\r\n console.log(e)\r\n })\r\n }\r\n}\r\n\r\nexport const reset = ({ payload, onFinish }) => {\r\n return (dispatch) => {\r\n return onReset(payload)\r\n .then((response) => {\r\n if (response.data.success) {\r\n const { init, data, companies, user } = response.data.data\r\n store.remove('app.endpoint')\r\n setToken(data.access_token, data.expires_at)\r\n if (init) {\r\n dispatch(setInits(init))\r\n } else {\r\n dispatch(setUser({ user }))\r\n dispatch(setCompanies({ companies }))\r\n }\r\n dispatch(stopInit())\r\n } else {\r\n message.error(response.data.message)\r\n }\r\n onFinish()\r\n })\r\n .catch((e) => {\r\n console.log(e)\r\n message.error('Error reset')\r\n onFinish()\r\n })\r\n }\r\n}\r\n\r\nexport const logoutRedux = () => {\r\n return {\r\n type: actionTypes.USER_LOGOUT,\r\n }\r\n}\r\n\r\nexport const logout = () => {\r\n return (dispatch) => {\r\n dispatch(startInit())\r\n dispatch(hideLoginForm())\r\n return onLogout()\r\n .then((response) => {\r\n if (response.data.success) {\r\n // Dihapus dulu previous path dan selected endpoinnya\r\n store.remove('app.previousPathname')\r\n store.remove('app.endpoint')\r\n // Dihapus tokennya\r\n removeToken()\r\n // Reset reduxnya\r\n dispatch(setSelectedEndpoint(null))\r\n dispatch(logoutRedux())\r\n dispatch(resetInits())\r\n dispatch(setOptions(response.data.data))\r\n } else {\r\n message.error(response.data.message)\r\n }\r\n dispatch(stopInit())\r\n })\r\n .catch(() => {\r\n dispatch(loginFailureRedux())\r\n dispatch(stopInit())\r\n })\r\n }\r\n}\r\n\r\nexport const updateProfileRedux = (payload) => {\r\n return {\r\n type: actionTypes.USER_UPDATE_PROFILE,\r\n payload,\r\n }\r\n}\r\n\r\nexport const updateProfile = (payload) => {\r\n return (dispatch) => {\r\n return updateProfileApi(payload).then((response) => {\r\n dispatch(updateProfileRedux(response.data.data))\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const tokenExpired = () => {\r\n return (dispatch) => {\r\n // Dihapus dulu previous path dan selected endpoinnya\r\n store.remove('app.previousPathname')\r\n store.remove('app.endpoint')\r\n // Dihapus tokennya\r\n removeToken()\r\n dispatch(setSelectedEndpoint(null))\r\n dispatch(resetInits())\r\n dispatch(tokenExpiredRedux())\r\n }\r\n}\r\n\r\nexport default actions\r\n","import store from 'store'\r\nimport { message } from 'antd'\r\n\r\nimport { changeLanguage as apiChangeLang } from 'utils/apis'\r\nimport { setInits, startLoading, stopLoading } from 'redux/inits/actions'\r\n\r\nconst actions = {\r\n SET_STATE: 'settings/SET_STATE',\r\n CHANGE_SETTING: 'settings/CHANGE_SETTING',\r\n}\r\n\r\nexport const changeSetting = (payload) => {\r\n return (dispatch) => {\r\n store.set(`app.settings.${payload.setting}`, payload.value)\r\n dispatch({\r\n type: actions.SET_STATE,\r\n payload: {\r\n [payload.setting]: payload.value,\r\n },\r\n })\r\n }\r\n}\r\n\r\nexport const changeLayoutSetting = (payload) => {\r\n return (dispatch) => {\r\n store.set('app.settings.isMobileView', payload.isMobileView)\r\n store.set('app.settings.isTabView', payload.isTabView)\r\n dispatch({\r\n type: actions.SET_STATE,\r\n payload: {\r\n isMobileView: payload.isMobileView,\r\n isTabView: payload.isTabView,\r\n },\r\n })\r\n }\r\n}\r\n\r\nexport const changeLanguage = (payload) => {\r\n return (dispatch) => {\r\n dispatch(startLoading())\r\n return apiChangeLang(payload.value)\r\n .then((response) => {\r\n if (response.data.success) {\r\n message.success(response.data.message)\r\n const { data } = response.data\r\n dispatch(setInits(data.init))\r\n } else {\r\n message.error(response.data.message)\r\n }\r\n dispatch(stopLoading())\r\n return response\r\n })\r\n .catch(() => {\r\n message.error('Error:: Cannot update language!')\r\n dispatch(stopLoading())\r\n })\r\n }\r\n}\r\n\r\nexport default actions\r\n","import antdData from 'antd/lib/locale/en_US'\r\nimport localeData from 'react-intl/locale-data/en'\r\n\r\nconst messages = {\r\n // Dynamic Translation\r\n 'text.choose': 'Choose {title}',\r\n 'text.select': 'Select {title}',\r\n 'text.please_choose': 'Please select {title}',\r\n 'button.add_with_title': 'Add {title}',\r\n 'report.name_with_title': 'Name {title}',\r\n 'report.product_name_with_title': '{title} Name',\r\n 'report.product_category_with_title': '{title} Category',\r\n 'report.total_quantity_product_with_title': 'Total Quantity {title}',\r\n 'report.finished_product_with_title': 'Finished {title}',\r\n 'report.search_by_product_with_title': 'Search by {title}',\r\n 'report.product_value_with_title': '{title} Value',\r\n 'report.product_profitability_stock_tracking_product_with_title': 'Stock Tracking {title}',\r\n 'report.product_profitability_non_stock_tracking_product_with_title':\r\n 'Non Stock Tracking {title}',\r\n 'report.product_profitability_bundle_product_with_title': 'Bundle {title}',\r\n 'sales.product_sales_with_title': '{title} Sales',\r\n 'sales.sales_contact_with_title': 'Sales Per {title}',\r\n 'financeInvoices.product_type_with_title': '{title} Type',\r\n 'financeInvoices.select_product_with_title': 'Select {title}',\r\n 'financeInvoices.please_select_tag_with_title': 'Please select {title}',\r\n 'financeWareHouses.total_products_with_title': 'Total {title}',\r\n 'financeWareHouses.total_product_value_with_title': 'Total {title} Value',\r\n 'financeWareHouses.ref_number_help_with_title':\r\n 'Fill in the {title} for internal records and make searching easier.',\r\n 'financeInvoices.used_to_create_transaction_categories_with_title':\r\n 'Used to create transaction categories. You can also generate reports based on this {title}.',\r\n 'financeWareHouses.please_select_a_product_with_title': 'Please select a {title}.',\r\n 'financeWareHouses.header_column_hpp_help_with_title':\r\n 'This is the cost of the {title}, or the purchase price.',\r\n 'financeInvoices.product_code_that_not_exist_will_be_inserted_as_a_new_product_with_title':\r\n '{product} code that not exist will be inserted as a new {product}.',\r\n 'financeProduct.available_stock_product_with_title': 'Available Stock {product}',\r\n 'financeProduct.almost_empty_stock_product_with_title': 'Almost Empty Stock {product}',\r\n 'financeProduct.empty_stock_product_with_title': 'Empty Stock {product}',\r\n 'financeProduct.total_product_value_with_title': '{product} Value Total',\r\n 'financeProduct.total_product_type_with_title': '{product} Type Total',\r\n 'financeProduct.product_type_per_category_with_title': '{product} Type per Category',\r\n 'financeProduct.product_availability_with_title': '{product} Availability',\r\n 'financeProduct.product_image_with_title': '{product} Image',\r\n 'financeProduct.show_product_image_with_title': 'Show {product} Image',\r\n 'financeProduct.hide_product_image_with_title': 'Hide {product} Image',\r\n 'financePurchaseOrders.please_select_a_product_with_title': 'Please select a {product}.',\r\n 'financeProduct.package_product_items_with_title': 'The {product} package consists of :',\r\n 'financeProduct.raw_material': 'Raw material:',\r\n 'financeProduct.manufacture_product_items_with_title': 'The {product} manufacture consists of :',\r\n 'priceRule.applies_to_the_following_customers_with_title': 'Applies to the Following {customer}',\r\n 'priceRule.applies_to_the_following_products_with_title': 'Applies to the Following {product}',\r\n 'priceRule.all_customer_with_title': 'All {customer}',\r\n 'priceRule.customer_group_with_title': '{customer} Group',\r\n 'priceRule.per_customer_with_title': 'Per {customer}',\r\n 'priceRule.customer_groups_that_will_get_discount_with_title':\r\n '{customer} groups that will get discount',\r\n 'priceRule.customers_that_will_get_discount_with_title': '{customer} that will get discount',\r\n 'priceRule.all_product_with_title': 'All {product}',\r\n 'priceRule.product_category_with_title': '{product} Category',\r\n 'priceRule.per_product_with_title': 'Per {product}',\r\n 'priceRule.discounted_product_category_with_title': 'Discounted {product} category',\r\n 'priceRule.discounted_product_with_title': 'Discounted {product}',\r\n 'posConnect.default_customer_with_title': 'Default {customer}',\r\n 'posConnect.please_select_default_customer_with_title': 'Please select Default {customer}',\r\n 'posConnect.transaction_from_pos_inputed_as_this_customer_with_title':\r\n 'Transaction from POS will be inputed as transaction from this {customer}',\r\n 'posConnect.service_charge_product_with_title': 'Service Charge {product}',\r\n 'posConnect.please_select_service_charge_product_with_title':\r\n 'Please select Service Charge {product}',\r\n 'posConnect.if_service_charge_inputes_as_this_product_with_title':\r\n 'If there is a service charge, will be inputed as a purchase on this {product}',\r\n 'posConnect.custom_product_with_title': 'Custom {product}',\r\n 'posConnect.please_select_custom_product_with_title': 'Please select Custom {product}',\r\n 'posConnect.if_custom_product_inputes_as_this_product_with_title':\r\n 'If there is a purchase on custom {product}, it will be inputed as this {product}',\r\n 'emails.insert_tagsment_with_title': 'Insert {tag}',\r\n 'layoutInvoice.show_product_with_title': 'Show {product}',\r\n 'layoutInvoice.show_ref_code_product_with_title': 'Show {product} SKU',\r\n 'layoutInvoice.show_product_image_with_title': 'Show {product} Image',\r\n 'layoutInvoice.show_tags_with_title': 'Show {tags}',\r\n 'layoutInvoice.show_reference_with_title': 'Show {reference}',\r\n 'businessFlow.hide_products_that_are_out_of_stock_with_title':\r\n 'Hide {products} that are out of stock',\r\n 'businessFlow.hide_products_that_are_out_of_stock_description_with_title':\r\n 'Are out-of-stock {products} hidden when adding to a bill?',\r\n 'businessFlow.product_price_dont_change_with_title': \"{product} price can't changed\",\r\n 'businessFlow.wether_product_price_can_be_changed_when_add_invoice_with_title':\r\n 'Wether {product} price can be changed when add invoice',\r\n 'businessFlow.when_product_below_min_stock_email_notification_with_title':\r\n 'When {product} stock below minimal stock, email notification will be sent',\r\n 'businessFlow.use_fifo_method_desc_with_title':\r\n 'Turn on to activate FIFO method to calculate COGS, or turn it off to use averaging method. You cannot change this setting after you have {product} with inventory tracking active. This settings only available on Elite Plan.',\r\n 'businessFlow.auto_update_product_buy_price_with_title': 'Auto update {product} buy price',\r\n 'businessFlow.auto_update_product_buy_price_desc_with_title':\r\n 'When buying a {product}, the buy price is automatically updated to the product as the default buy price',\r\n 'businessFlow.auto_update_product_sell_price_with_title': 'Auto update {product} selling price',\r\n 'businessFlow.auto_update_product_sell_price_desc_with_title':\r\n 'When selling a {product}, the selling price is automatically updated to the product as the default selling price',\r\n 'businessFlow.decline_product_conv_if_stock_not_enough_with_title':\r\n 'Decline {product} conversion if stok is not enough',\r\n 'businessFlow.wether_decline_add_product_conv_if_stock_not_enough_with_title':\r\n 'Wether decline add {product} conversion if stock not enough',\r\n 'businessFlow.show_reference_with_title': 'Show {reference}',\r\n 'businessFlow.show_reference_desc_with_title':\r\n 'Wether show {reference} input when creating invoice',\r\n 'bussinesFlow.desc_default_tracking_stock_with_title':\r\n 'By default the track stock feature is active when creating a new {product}',\r\n 'businessFlow.show_tag_with_title': 'Show {tag}',\r\n 'businessFlow.show_tag_desc_with_title': 'Wether show {tag} input when creating invoice',\r\n 'businessFlow.input_tag_is_required_with_title': 'Input {tag} is required',\r\n 'businessFlow.input_tag_is_required_desc_with_title':\r\n 'Is the {tag} required when adding a sales transaction?',\r\n 'businessFlow.manual_journal_input_tag_is_required_desc_with_title':\r\n 'Is the {tag} required when adding a manual journal transaction?',\r\n 'businessFlow.purchase_input_tag_is_required_desc_with_title':\r\n 'Is the {tag} required when adding a purchase transaction?',\r\n 'businessFlow.expense_input_tag_is_required_desc_with_title':\r\n 'Is the {tag} required when adding a expense transaction?',\r\n 'businessFlow.bank_input_tag_is_required_desc_with_title':\r\n 'Is the {tag} required when adding a bank transaction?',\r\n 'businessFlow.product_conversion_input_tag_is_required_desc_with_title':\r\n 'Is the {tag} required when adding a product conversion transaction?',\r\n 'businessFlow.reference_multiline_with_title': 'Multiline {reference}',\r\n 'businessFlow.reference_multiline_desc_with_title': 'Can {reference} be multiline?',\r\n 'financeProduct.bundle_type_id_with_title': '{product} Type',\r\n 'salesPerson.show_sales_person_with_title': 'Show {sales_person}',\r\n 'salesPerson.hide_sales_person_with_title': 'Hide {sales_person}',\r\n 'salesPerson.select_sales_person_with_title': 'Select {sales_person}',\r\n 'salesPerson.faq_answer_give_different_commission_with_title':\r\n 'You can set the amount of commission for each {sales_person} through the {here}. In addition, the commission can also be set differently for each product.',\r\n 'businessFlow.wether_save_sales_person_to_sales_with_title':\r\n 'Wether to save the {sales_person} to the sales?',\r\n 'salesCommission.you_can_manage_sales_person_in_this_page_with_title':\r\n 'You can manage sales commission for each {sales_person} in this page. If done, {link} to see the sales commission report.',\r\n 'salesCommission.applies_to_the_following_sales_person_with_title':\r\n 'Applies to the Following {sales_person}',\r\n 'financeManualJournal.tag_is_required_with_title': '{tag} is required',\r\n 'financeTag.who_can_access_this_tag_with_title': 'Who can access this {tag}?',\r\n 'financeProduct.who_can_access_this_product_with_title': 'Who can access this {product}?',\r\n 'financeInvoices.with_credit_payment_with_title': 'With {credit} Memo',\r\n 'financeInvoices.with_debit_payment_with_title': 'With {debit} Memo',\r\n 'financePurchaseInvoices.pay_with_credit_memo_with_title': 'Pay with {credit} memo',\r\n 'financePurchaseInvoices.please_select_with_credit_memo_with_title':\r\n 'Please select with {credit} memo',\r\n 'financePurchaseInvoices.pay_with_debit_memo_with_title': 'Pay with {debit} memo',\r\n 'financePurchaseInvoices.please_select_with_debit_memo_with_title':\r\n 'Please select with {debit} memo',\r\n 'financeContacts.your_net_debt_with_title': 'Your net debt',\r\n 'financeContacts.you_owe_with_title': 'You {credit}',\r\n 'financeContacts.they_owe_with_title': 'They {credit}',\r\n 'financeContacts.your_due_debt_with_title': 'Your due {credit}',\r\n 'financeContacts.their_due_debt_with_title': 'Their due {credit}',\r\n 'financeContacts.debt_you_need_to_pay_with_title': '{credit} you need to pay',\r\n 'financeContacts.max_payable_with_title': 'Max {credit}',\r\n 'financeContacts.total_payable_is_calculated_from_purchase_invoices_with_title':\r\n 'Total {credit} is calculated from purchase invoices, transaction costs and accounts {credit}. If the total {credit} exceeds the maximum, then when creating a new purchase invoice it will be rejected.',\r\n 'financeContacts.max_receivable_with_title': 'Max {debit}',\r\n 'financeContacts.total_accounts_receivable_is_calculated_from_sales_invoices_with_title':\r\n 'Total accounts {debit} is calculated from sales invoices and accounts {debit} contacts. If the total {debit} exceeds the maximum, then when creating a new sales invoice it will be rejected.',\r\n 'financeContacts.payable_account_with_title': '{credit} Account',\r\n 'financeContacts.receivable_account_with_title': '{debit} Account',\r\n 'financeContacts.awaiting_payment_with_title': '{debit} waiting for payment',\r\n 'creditMemo.add_credit_memo_with_title': 'Add {credit} Memo',\r\n 'creditMemo.detail_credit_memo_with_title': 'Detail {credit} Memo',\r\n 'creditMemo.detail_title_with_title': '{credit} Memo {number}',\r\n 'creditMemo.edit_credit_memo_with_title': 'Edit {credit} Memo',\r\n 'debitMemo.add_debit_memo_with_title': 'Add {debit} Memo',\r\n 'debitMemo.detail_debit_memo_with_title': 'Detail {debit} Memo',\r\n 'debitMemo.detail_title_with_title': '{debit} Memo {number}',\r\n 'debitMemo.edit_debit_memo_with_title': 'Edit {debit} Memo',\r\n 'financeContacts.import_contact_transactions_with_title': 'Import {debit} {credit}',\r\n 'financeContacts.follow_these_steps_to_import_your_contact_transactions_with_title':\r\n 'Follow these steps to import your {credit} {debit}',\r\n 'financeContacts.1_download_your_contact_transactions_template_file_with_title':\r\n '1. Download your {credit} {debit} template file',\r\n 'financeContacts.start_by_downloading_our_contact_transactions_csv_with_title':\r\n 'Start by downloading our accounts payable Excel template file. This file has the correct column headings Kledo needs to import details of your {credit} {debit}.',\r\n 'financeContacts.2_copy_your_contact_transactions_into_the_template_with_title':\r\n '2. Copy your {credit} {debit} into the template',\r\n 'financeContacts.import_contact_transactions_using_excel_or_another_spreadsheet_editor_with_title':\r\n 'Using Excel or another spreadsheet editor, fill the Kledo template with the details of your {credit} {debit}. Make sure the {credit} {debit} details match the column headings provided in the template.',\r\n 'financeInvoices.payment_with_credit_memo_with_title': 'Payment using {credit} Memo',\r\n 'financeInvoices.payment_with_debit_memo_with_title': 'Payment using {debit} Memo',\r\n 'financeInvoices.recurring_send_email_to_customer_with_title': 'Send email to {customer}',\r\n\r\n 'text.and': 'and',\r\n\r\n 'topBar.changeLanguage': 'Change Language',\r\n 'topBar.latestKledoUpdate': 'Latest Kledo Update',\r\n 'topBar.dataChangesTimeline': 'Data Changes Timeline',\r\n 'topBar.issuesHistory': 'Issues History',\r\n 'topBar.projectManagement': 'Project Management',\r\n 'topBar.typeToSearch': 'Type to search...',\r\n 'topBar.buyNow': 'Buy Now $24',\r\n 'topBar.bitcoin': 'Bitcoin',\r\n 'topBar.profileMenu.hello': 'Hello',\r\n 'topBar.profileMenu.billingPlan': 'Billing Plan',\r\n 'topBar.profileMenu.role': 'Role',\r\n 'topBar.profileMenu.email': 'Email',\r\n 'topBar.profileMenu.phone': 'Phone',\r\n 'topBar.profileMenu.logout': 'Logout',\r\n 'topBar.billing.plan': 'Plan',\r\n 'topBar.billing.forever': 'Forever',\r\n 'topBar.billing.active_until': 'Active until',\r\n\r\n 'notification.updates': 'Updates',\r\n 'notification.timeline': 'Timeline',\r\n 'notification.server_error': 'Server Error',\r\n 'notification.something_went_wrong': 'Something went wrong, please contact our customer support.',\r\n 'notification.install_kledo': 'Install Kledo App',\r\n 'notification.kledo_is_now_on_google_play': 'Kledo is now available on Google Play',\r\n 'notification.kledo_is_now_on_app_store': 'Kledo is now available on App Store',\r\n 'notification.install_now': 'Install Now',\r\n 'notification.later': 'Later',\r\n 'notification.disable': 'Disable Notification',\r\n 'notification.enable': 'Enable Notification',\r\n 'notification.low_stock': 'Low stock notification',\r\n 'notification.marketplace_sync_done': 'Marketplace sync done notification',\r\n 'notification.bank_sync_done': 'Bank sync done notification',\r\n 'notification.monthly_financial_report_email': 'Monthly financial report email',\r\n 'notification.a_new_version_is_available': 'A new version is available!',\r\n 'notification.please_wait_prepare_to_reload_page':\r\n 'Please wait, prepare to reload page on {countDown} seconds. {errorAutoReloadMessage}',\r\n 'notification.autoreload_failed': 'Auto reload failed.',\r\n 'notification.reload_immediately': 'Reload immediately',\r\n\r\n 'date.today': 'Today',\r\n 'date.yesterday': 'Yesterday',\r\n 'date.last_week': 'Last Week',\r\n 'date.this_month': 'This Month',\r\n 'date.last_month': 'Last Month',\r\n 'date.last_7_days': 'Last 7 Days',\r\n 'date.last_30_days': 'Last 30 Days',\r\n 'date.last_365_days': 'Last 365 Days',\r\n 'date.this_year': 'This Year',\r\n 'date.last_year': 'Last Year',\r\n 'date.daily': 'Daily',\r\n 'date.monthly': 'Monthly',\r\n 'date.yearly': 'Yearly',\r\n 'date.day': 'Day',\r\n 'date.month': 'Month',\r\n 'date.months': 'Months',\r\n 'date.year': 'Year',\r\n 'date.years': 'Years',\r\n 'date.same_date_last_month': 'Same date last month',\r\n 'date.same_date_last_year': 'Same date last year',\r\n\r\n 'button.page': 'Page',\r\n 'button.next': 'Next',\r\n 'button.prev': 'Prev',\r\n 'button.revert': 'Revert',\r\n 'button.renew': 'Renew',\r\n 'button.upgrade': 'Upgrade',\r\n 'button.delete': 'Delete',\r\n 'button.archive': 'Archive',\r\n 'button.unarchive': 'Unarchive',\r\n 'button.add': 'Add',\r\n 'button.edit': 'Edit',\r\n 'button.back': 'Back',\r\n 'button.search': 'Search',\r\n 'button.save': 'Save',\r\n 'button.save_add_new': 'Save & Add New',\r\n 'button.cancel': 'Cancel',\r\n 'button.print': 'Print',\r\n 'button.filter': 'Filter',\r\n 'button.clear_filter': 'Clear Filter',\r\n 'button.year': 'Year',\r\n 'button.month': 'Month',\r\n 'button.close': 'Close',\r\n 'button.return': 'Return',\r\n 'button.hello_can_i_help': 'Hello, can I help you?',\r\n 'button.schedule_now': 'Schedule Now',\r\n 'button.error_data_': 'Error data!',\r\n 'input.placeholder.search': 'Search',\r\n 'popconfirm.title.delete': 'Are you sure to delete?',\r\n 'popconfirm.title.archive': 'Are you sure to archive?',\r\n 'popconfirm.title.unarchive': 'Are you sure to unarchive?',\r\n 'popconfirm.title.reset': 'Are you sure to reset?',\r\n 'popconfirm.title.void': 'Are you sure to void this transaction?',\r\n 'popconfirm.title.unvoid': 'Are you sure to unvoid this transaction?',\r\n 'suggestion.not_found': 'Data not found',\r\n 'spinner.loading': 'Loading...',\r\n 'button.yes': 'Yes',\r\n 'button.no': 'No',\r\n 'button.pdf': 'PDF',\r\n 'button.print_pdf': 'Print PDF',\r\n 'button.print_label': 'Print Label',\r\n 'button.print_payment': 'Print Payment Recap',\r\n 'button.print_tax': 'Print Tax Invoice',\r\n 'button.print_partial': 'Print Partial',\r\n 'button.copy_link': 'Copy Link',\r\n 'button.copy': 'Copy',\r\n 'button.send_email': 'Send Email',\r\n 'button.send_sms': 'Send SMS',\r\n 'button.send_wa': 'Send Whatsapp',\r\n 'button.send_email_payment': 'Email Payment Recap',\r\n 'button.send_wa_payment': 'Whatsapp Payment Recap',\r\n 'button.send_sms_payment': 'SMS Payment Recap',\r\n 'button.download_word': 'Download MsWord',\r\n 'button.download_xls': 'Download XLS',\r\n 'button.download_csv': 'Download CSV',\r\n 'button.download_now': 'Download Now',\r\n 'button.send': 'Send',\r\n 'button.share': 'Share',\r\n 'button.duplicate': 'Duplicate',\r\n 'button.guide': 'Guide',\r\n 'button.tour': 'Tour',\r\n 'button.video': 'Video',\r\n 'button.article': 'Article',\r\n 'button.import': 'Import',\r\n 'button.export': 'Export',\r\n 'button.view_journal_entries': 'View Journal Entries',\r\n 'button.add_more': 'Add more',\r\n 'button.change_layout': 'Change Layout',\r\n 'button.reset': 'Reset',\r\n 'button.copy_to_clipboard': 'Copy Link to Clipboard',\r\n 'button.select_all': 'Select All',\r\n 'button.deselect_all': 'Remove All',\r\n 'button.change_order': 'Change Order',\r\n 'button.sell': 'Sell',\r\n 'button.buy': 'Buy',\r\n 'message.cannot_update_data': 'Cannot update data.',\r\n 'message.cannot_return_data': 'Data is not returnable.',\r\n 'message.link_has_been_copied': 'Link has been copied.',\r\n 'message.on': 'on',\r\n 'link.show_more': 'Show more',\r\n 'link.show_less': 'Show less',\r\n 'link.payment': '{payment} Payment',\r\n 'link.more': 'more',\r\n 'link.add_email': 'Add email',\r\n 'link.add_shipping_address': 'Add shipping address',\r\n\r\n 'companies.company_list': 'Company List',\r\n 'companies.add_company': 'Add Company',\r\n 'companies.created_on': 'Created on ',\r\n 'companies.as': 'As',\r\n 'companies.are_you_sure_to_delete_this_company':\r\n 'Are You sure to delete this company?\\nAfter deleted, the data cannot be returned',\r\n 'companies.choose_package': 'Choose a Package',\r\n 'companies.full_name': 'Full Name',\r\n 'companies.please_input_full_name': 'Please input full name',\r\n 'companies.company_name': 'Company Name',\r\n 'companies.please_input_company_name': 'Please input Company Name',\r\n 'companies.role_on_company': 'Role on Company as',\r\n 'companies.please_input_role_on_company': 'Please input role on company',\r\n 'companies.number_of_employee': 'Number of Employee',\r\n 'companies.please_input_number_of_employee': 'Please input number of company',\r\n 'companies.please_input_email': 'Please input email',\r\n 'companies.please_input_phone_number': 'Please input phone number',\r\n 'companies.phone_number_must_08': 'Phone number must begin with 08',\r\n 'companies.next_per_month': 'Next {price}/month',\r\n 'companies.free_forever': 'Free Forever',\r\n\r\n 'table.number': 'No',\r\n 'table.show_data': 'Show Data',\r\n 'table.rows_selected': '{count} rows selected',\r\n 'table.min_one_column': 'Minimum show one column',\r\n 'table.data_empty': 'Data Empty',\r\n 'table.data_x_empty': '{name} Data Empty',\r\n 'table.lets_create_your_first_x': 'Lets create your first {name}!',\r\n\r\n 'nps.how_likely_you_recommend': 'How likely is that you would recommend Kledo to a friend?',\r\n 'nps.not_likely': 'Not at all likely',\r\n 'nps.very_likely': 'Very likely',\r\n 'nps.please_mention_another':\r\n 'Please mention something else you would like to say through comment box below',\r\n 'nps.cannot_hide_nps': 'Cannot hide NPS',\r\n 'nps.cannot_send_nps': 'Cannot send NPS',\r\n 'nps.thank_you_your_input':\r\n 'Thank you, your input is very meaningful. We analyze every input that comes in.',\r\n\r\n 'sms.cannot_send_wa': 'Cannot send Whatsapp.',\r\n 'sms.cannot_send_sms': 'Cannot send SMS.',\r\n 'sms.destination_number': 'Destination Number',\r\n 'sms.sms_has_been_sent_to': 'SMS has been sent to',\r\n 'sms.sms_content': 'SMS Content',\r\n 'sms.wa_content': 'Whatsapp Content',\r\n 'sms.please_input_content': 'Please input SMS content.',\r\n 'sms.please_input_wa_content': 'Please input Whatsapp content.',\r\n 'sms.please_input_phone': 'Please input phone number.',\r\n\r\n 'email.to': 'To',\r\n 'email.from': 'From',\r\n 'email.subject': 'Subject',\r\n 'email.message': 'Message',\r\n 'email.please_input_subject': 'Please input subject.',\r\n 'email.please_input_message': 'Please input message.',\r\n 'email.cannot_send_email': 'Cannot send email.',\r\n 'email.email_has_been_sent_to': 'Email has been sent to',\r\n 'email.please_confirm_email': 'Please confirm your email {email} before you can send an email.',\r\n 'email.send_confirmation_email': 'Send Confirmation Email',\r\n 'email.resend_confirmation_email': 'Resend Confirmation Email',\r\n 'email.we_have_sent_confirmation_email':\r\n 'We have sent a confirmation email to {email}. Please check the inbox and confirm your email to proceed.',\r\n 'email.email_confirmation': 'Email Confirmation',\r\n 'email.email_has_been_verified': 'Email {email} has been verified.',\r\n 'email.cannot_verify_email': 'Cannot verify email.',\r\n 'email.email_verification_failed': 'Email {email} verification failed.',\r\n 'email.email_template': 'Email Template',\r\n 'emails.edit_email_template': 'Edit Email Template',\r\n 'emails.are_you_sure_revert_to_default': 'Are you sure to revert template to default?',\r\n 'emails.revert_to_default': 'Revert to Default',\r\n 'emails.please_input_the_email_template_name': 'Please input the email template name.',\r\n 'emails.email_template_name': 'Email Template name',\r\n 'emails.please_input_the_email_template_subject': 'Please input the email template subject',\r\n 'emails.please_input_unique_email_address': 'Email {email} has been registered.',\r\n 'emails.subject': 'Subject',\r\n 'emails.email_successfully_updated': 'Email successfully updated.',\r\n 'emails.error_cannot_update_email_template': 'Cannot update email template.',\r\n 'emails.email_successfully_reverted_to_default': 'Email successfully reverted to default.',\r\n 'emails.error_cannot_revert_email_template': 'Cannot revert email template.',\r\n 'emails.reply_email_address_successfully_updated': 'Reply email address successfully updated.',\r\n 'emails.error_cannot_update_reply_email_address': 'Cannot update reply email address.',\r\n 'emails.email_templates': 'Email Templates',\r\n 'emails.reply_email_address': \"Sender's Email Address\",\r\n 'emails.body': 'Body',\r\n 'emails.rdw_tags_wrapper': 'rdw-tags-wrapper',\r\n 'emails.insert_tagsment': 'Insert Tags',\r\n 'emails.template_name': 'Template Name',\r\n 'emails.when_an_agent_or_guest_replies_to_an_email,_this_is_the_email_their_reply_will_be_sent_to':\r\n \"When you send an email, the following email will be used as sender's email:\",\r\n 'emails.please_input_the_display_name': 'Please input the display name.',\r\n 'emails.max_20_characters': 'Max 20 characters.',\r\n 'emails.only_alphanumeric_allowed': 'Only alphanumeric allowed.',\r\n 'emails.display_name': 'Display name',\r\n 'emails.email_address': 'Email Address',\r\n 'emails.please_input_the_email_address': 'Please input the email address.',\r\n 'emails.max_100_characters': 'Max 100 characters.',\r\n 'emails.invalid_email_address_format': 'Invalid email address format.',\r\n 'email.you_can_resend_an_email_after': 'You can resend confirmation email after {countDown}.',\r\n 'emails.send_attachment_from_related_transaction': 'Send attachment from related transaction',\r\n 'emails.send_attachment_from_related_transaction_help':\r\n 'If related transaction has attachment, is it sent on this email too?',\r\n\r\n 'wa.wa_template': 'Whatsapp Template',\r\n 'wa.edit_wa_template': 'Edit Whatsapp Template',\r\n 'wa.change_template': 'Change Template',\r\n 'wa.error_cannot_update_template': 'Cannot change Whatsapp template',\r\n 'wa.error_cannot_revert_template': 'Cannot revert Whatsapp template',\r\n\r\n 'multiCurrency.multi_currency': 'Multi Currency',\r\n 'multiCurrency.base_currency_cannot_changed_after_enabled':\r\n 'Base currency cannot be changed after enabling multi currency',\r\n 'multiCurrency.activate_multi_currency': 'Activate multi currency',\r\n 'multiCurrency.set_rate_source': 'Set rate source',\r\n 'multiCurrency.change_daily_rate': 'Change daily rate',\r\n 'multiCurrency.add_currency': 'Add currency',\r\n 'multiCurrency.in': 'In',\r\n 'multiCurrency.rate': 'Rate',\r\n 'multiCurrency.source': 'Source',\r\n 'multiCurrency.base_currency': 'Base currency',\r\n 'multiCurrency.currency': 'Currency',\r\n 'multiCurrency.select_currency': 'Select currency',\r\n 'multiCurrency.rate_source': 'Rate source',\r\n 'multiCurrency.select_rate_source': 'Select rate source',\r\n 'multiCurrency.edit_rate_for_date': 'Edit rate for date',\r\n 'multiCurrency.input_date': 'Input date',\r\n 'multiCurrency.rate_value': 'Rate value',\r\n 'multiCurrency.rate_value_must_more_0': 'Rate value must more than 0',\r\n 'multiCurrency.select_rate_value': 'Input rate value',\r\n 'multiCurrency.rate_reference': 'Rate reference',\r\n 'multiCurrency.please_select_base_currency_to_enable_multi':\r\n 'Please select base currency to enable multi currency',\r\n 'multiCurrency.please_select_currency_first': 'Please select currency first',\r\n 'multiCurrency.change_rate_value': 'Change rate value',\r\n 'multiCurrency.transaction_currency': 'Transaction currency',\r\n 'multiCurrency.reset_rate': 'Reset rate',\r\n 'multiCurrency.rate_not_found': 'Rate not found',\r\n\r\n 'referral.referral': 'Referral',\r\n 'referral.read_more': 'Read more >>',\r\n 'referral.referral_history': 'Referral History',\r\n 'referral.your_referral_code': 'Your Referral Code',\r\n 'referral.company': 'Company',\r\n 'referral.code': 'Code',\r\n 'referral.copy_code': 'Copy Code',\r\n 'referral.add_code': 'Tambah Code',\r\n 'referral.register': 'Register',\r\n 'referral.paid': 'Paid',\r\n 'referral.transfered': 'Transfered',\r\n 'referral.approved': 'Approved',\r\n 'referral.lead': 'Lead',\r\n 'referral.cannot_get_referral': 'Cannot get referral',\r\n 'referral.cannot_add_referral': 'Cannot add referral',\r\n 'referral.cannot_delete_referral': 'Cannot delete referral',\r\n 'referral.invite_your_friends': 'Invite Your Friends to Use Kledo',\r\n 'referral.get_millions_per_month': 'Get millions per month',\r\n 'referral.share_your_referral_code': 'Share your referral code',\r\n 'referral.share_via_sosmed_or_anything':\r\n 'Share via sosmed, email, whatsapp, or anything to your friends',\r\n 'referral.discount_for_your_friends': '{discount}% Discount for your friends',\r\n 'referral.your_friends_will_get_discount':\r\n 'Your friends will get {discount}% discount if register for 1 year',\r\n 'referral.reward_per_referral': 'Reward Rp {rewardAmount}k per referral',\r\n 'referral.get_reward_per_referral': 'Get reward of Rp {rewardAmount}k per referral',\r\n\r\n 'customColumn.you_can_add_custom_column_on_invoice':\r\n 'You can add custom column on invoice transaction data',\r\n 'customColumn.name': 'Name',\r\n 'customColumn.please_input_name': 'Please input Name',\r\n 'customColumn.data_type': 'Data Type',\r\n 'customColumn.please_input_data_type': 'Please input data type',\r\n 'customColumn.transaction_field': 'Transaction Field',\r\n 'customColumn.item_field': 'Item Field',\r\n 'customColumn.option': 'Option',\r\n 'customColumn.default_selected': 'Default Selected',\r\n 'customColumn.please_input_option': 'Please input option',\r\n 'customColumn.min_1_option': 'Minimal 1 option',\r\n 'customColumn.add_more': 'Add more',\r\n 'customColumn.what_difference_of_transaction_and_item_field':\r\n 'What is the difference of transaction field and item field? Click here.',\r\n 'customColumn.please_select_custom_column': 'Please select custom field',\r\n 'customColumn.show_custom_column': 'Show Custom Field',\r\n 'customColumn.hide_custom_column': 'Hide Custom Field',\r\n 'customColumn.with_custom_fields_you_can_add_data_to_the_bill':\r\n \"With custom fields, you can add data to the bill, or also add a column to the billing item according to your company's needs.\",\r\n\r\n 'marketplaceConnect.status': 'Status',\r\n 'marketplaceConnect.marketplace': 'Marketplace',\r\n 'marketplaceConnect.store': 'Shop',\r\n 'marketplaceConnect.store_url': 'Store Url',\r\n 'marketplaceConnect.data_integration_schedule': 'Data Integration Schedule',\r\n 'marketplaceConnect.created_at': 'Created At',\r\n 'marketplaceConnect.last_data_integrated': 'Last Data Sync',\r\n 'marketplaceConnect.action': 'Action',\r\n 'marketplaceConnect.choose_marketplace_to_connect_to_kledo':\r\n 'Choose a marketplace to connect to Kledo',\r\n 'marketplaceConnect.marketplace_not_supported_yet': 'This marketplace is not supported yet',\r\n 'marketplaceConnect.setting': 'Setting',\r\n 'marketplaceConnect.store_name': 'Store Name',\r\n 'marketplaceConnect.delete_connection': 'Delete Connection',\r\n 'marketplaceConnect.sync_now': 'Sync Now',\r\n 'marketplaceConnect.sync_interval': 'Data Sync Interval',\r\n 'marketplaceConnect.please_select_sync_interval': 'Please Select Data Sync Interval',\r\n 'marketplaceConnect.payment_bank_account': 'Payment Bank Account',\r\n 'marketplaceConnect.please_select_payment_bank_account': 'Please Select Payment Bank Account',\r\n 'marketplaceConnect.shipping_cost_account': 'Shipping Cost Account',\r\n 'marketplaceConnect.shipping_cost_account_tooltip':\r\n 'Every transaction that the customer is paid shipping cost to marketplace, expense transaction will be created automatically.',\r\n 'marketplaceConnect.start_pulling_data': 'Start pulling data',\r\n 'marketplaceConnect.start_pulling_data_tooltip':\r\n 'When is the start date for pulling data from the marketplace to Kledo? Withdraw data a maximum of 1 week from the current date.',\r\n 'marketplaceConnect.start_pulling_data_minimum_date_message':\r\n 'The minimum data withdrawal start date is now.',\r\n 'marketplaceConnect.start_pulling_data_maximum_date_message':\r\n 'The maximum data withdrawal start date is now.',\r\n 'marketplaceConnect.please_select_shipping_cost_account': 'Please Select Shipping Cost Account',\r\n 'marketplaceConnect.admin_cost_account': 'Admin Cost Account',\r\n 'marketplaceConnect.admin_cost_account_tooltip':\r\n 'Every transaction that has admin cost by marketplace, expense transaction will be created automatically.',\r\n 'marketplaceConnect.please_select_admin_cost_account': 'Please Select Admin Cost AccountAdmin',\r\n 'marketplaceConnect.warehouse': 'Warehouse',\r\n 'marketplaceConnect.please_select_warehouse': 'Please Select Warehouse',\r\n 'marketplaceConnect.tag': 'Tag',\r\n 'marketplaceConnect.record_shipping_cost': 'Record Shipping Cost',\r\n 'marketplaceConnect.is_shipping_cost_will_be_recorded_on_kledo':\r\n 'Is shipping cost will be recorded on Kledo?',\r\n 'marketplaceConnect.every_hour': 'Every {hour} hour',\r\n 'marketplaceConnect.please_input_shop_name': 'Please input shop url',\r\n 'marketplaceConnect.yeah_successful': 'Hurray successful!',\r\n 'marketplaceConnect.next_activation_step_will_be_contacted':\r\n 'For the next activation step, You will be contacted by out customer success team on work day and hour, by whatapp and email. Please wait.',\r\n 'marketplaceConnect.if_product_not_track_empty_warehouse':\r\n 'If your product is without stock tracking, please empty this warehouse field',\r\n 'marketplaceConnect.using_marketplace_connect_shop_transaction_automatic_on_kledo':\r\n 'By using marketplace connect, your shop transaction in marketplace will be automatically added to Kledo data, great right? Lets connect your marketplace with Kledo.',\r\n 'marketplaceConnect.tutorial_video': 'Tutorial Video',\r\n 'marketplaceConnect.record_transaction': 'Record Transaction',\r\n 'marketplaceConnect.please_select_record_transaction': 'Please select Record Transaction',\r\n 'marketplaceConnect.on_transaction_done': 'On transaction done',\r\n 'marketplaceConnect.start_on_item_sent': 'Start on item sent',\r\n 'marketplaceConnect.record_transaction_help':\r\n \"If recorded on item sent, then on item's status on sent in kledo order transaction and the delivery will be recorded. And when transaction done, sales invoice transaction and the payment will be created. If recorded on transaction done, then transaction will be inputed only when transaction status in marketplace is done.\",\r\n\r\n 'posConnect.choose_pos_to_connect_to_kledo': 'Choose a POS to connect to Kledo',\r\n 'posConnect.please_input_client_id': 'Please input Client ID',\r\n 'posConnect.please_input_client_secret': 'Please input Client Secret',\r\n 'posConnect.click_here_to_get_client_id_secret': 'Click {link} to get Client ID and Secret',\r\n 'posConnect.payment_transaction_input_this_coa_account':\r\n 'Payment transaction will be inputed in this COA account',\r\n 'posConnect.default_customer': 'Default Customer',\r\n 'posConnect.please_select_default_customer': 'Please select Default Customer',\r\n 'posConnect.transaction_from_pos_inputed_as_this_customer':\r\n 'Transaction from POS will be inputed as transaction from this customer',\r\n 'posConnect.service_charge_product': 'Service Charge Product',\r\n 'posConnect.please_select_service_charge_product': 'Please select Service Charge Product',\r\n 'posConnect.if_service_charge_inputes_as_this_product':\r\n 'If there is a service charge, will be inputed as a purchase on this product',\r\n 'posConnect.custom_product': 'Custom Product',\r\n 'posConnect.please_select_custom_product': 'Please select Custom Product',\r\n 'posConnect.if_custom_product_inputes_as_this_product':\r\n 'If there is a purchase on custom product, it will be inputed as this product',\r\n 'posConnect.your_pos_has_been_connected':\r\n 'Your POS has been connected to Kledo. Data from POS will automatically sync to Kledo periodically',\r\n\r\n 'consolidation.you_must_have_more_than_one_companies':\r\n 'To enable consolidation feature, you must have more than one companies with adimistrator access.',\r\n 'consolidation.if_you_have_more_companies_you_may_activate':\r\n 'If you have more than one companies, you may activate consolidation feature. This feature will automatically compile report from each companies into a consolidation report.',\r\n 'consolidation.you_must_have_admin_each_companies':\r\n 'You must have Administrator access in each companies that will be compiled.',\r\n 'consolidation.please_select_companies_that_will_be_compiled':\r\n 'Please select companies that will be compiled to consolidation report',\r\n 'consolidation.please_select_coa_accounts':\r\n 'Please select COA accounts to be compiled in to consolidation reports',\r\n 'consolidation.please_select_all_companies_that_will_be_compiled':\r\n 'Please select all companies that will be compiled to consolidation report',\r\n 'consolidation.must_enable_2_companies': 'You must enable at least 2 companies',\r\n 'consolidation.cannot_select_company': 'Cannot select company',\r\n 'consolidation.add_company': 'Add Company',\r\n 'consolidation.automatic_compilation': 'Automatic Compilation',\r\n 'consolidation.compile': 'Compile',\r\n 'consolidation.cannot_compile': 'Cannot Compile',\r\n 'consolidation.code': 'Code',\r\n 'consolidation.name': 'Name',\r\n 'consolidation.category': 'Category',\r\n 'consolidation.account': 'Account',\r\n 'consolidation.account_total': 'Account Total',\r\n 'consolidation.activate_consolidation_feature': 'Activate consolidation feature',\r\n 'consolidation.cannot_activate_consolidation': 'Cannot activate consolidation feature',\r\n 'consolidation.compilation_saved':\r\n 'Account compilation saved, click button below to go to consolidation report',\r\n 'consolidation.see_report': 'See Report',\r\n 'consolidation.confirm_auto_compile':\r\n 'Auto compile will automatically compile account with the same code to consolidation account. Are you sure to auto compile?',\r\n 'consolidation.code_already_exist': 'Code already exist, please change to another',\r\n\r\n 'translation.translation': 'Translation',\r\n 'translation.title.reset': 'Are you sure to reset?',\r\n 'translation.reset': 'Reset Translation',\r\n 'translation.error_cannot_edit': 'Cannot Edit Translation',\r\n\r\n 'audit.audit': 'Audit',\r\n 'audit.show_audit': 'Show Audit',\r\n 'audit.date': 'Date',\r\n 'audit.description': 'Description',\r\n 'audit.ip': 'IP',\r\n 'audit.by': ' by ',\r\n 'audit.user': 'User',\r\n 'audit.item': 'Item',\r\n 'audit.all_item': 'All items',\r\n 'audit.filter': 'Filter Audit',\r\n\r\n 'appSetting.apps': 'Apps',\r\n 'appSetting.date_created': 'Date Created',\r\n 'appSetting.app_name': 'App Name',\r\n 'appSetting.client_id': 'Client ID',\r\n 'appSetting.client_id_has_been_copied': 'Client ID has been copied',\r\n 'appSetting.secret_has_been_copied': 'Secret has been copied',\r\n 'appSetting.endpoint_has_been_copied': 'API Endpoint URL has been copied',\r\n 'appSetting.documentation_has_been_copied': 'API Documentation has been copied',\r\n 'appSetting.api_documentation_endpoint': 'API Documentation Endpoint',\r\n 'appSetting.please_input_name': 'Please input app name',\r\n 'appSetting.please_redirect_uri': 'Please input redirect URI',\r\n 'appSetting.please_valid_uri': 'Please input valid URL',\r\n 'appSetting.error_cannot_get': 'Cannot get apps',\r\n 'appSetting.error_cannot_create': 'Cannot create apps',\r\n 'appSetting.error_cannot_edit': 'Cannot edit apps',\r\n 'appSetting.error_cannot_delete': 'Cannot delete apps',\r\n 'appSetting.app_has_been_created_make_sure_save_secret':\r\n 'New app has been created, please please save secret code below before going to another page.',\r\n 'appSetting.secret_code_just_shown_once':\r\n 'Secret code just shown once. Save this code, because after this you cannot see this secret code again.',\r\n 'appSetting.integrate_your_app_with_kledo': 'Integrate your application with Kledo',\r\n 'appSetting.now_app_can_be_integrated_with_kledo':\r\n 'Now your application, website, or software can be integrated with Kledo.',\r\n 'appSetting.for_more_details_lets_see_the_video': 'For more details, lets watch the video',\r\n 'appSetting.watch_video': 'Watch video',\r\n\r\n 'settings.shipping_comps': 'Manage shipping companies',\r\n 'settings.businessflow': 'Manage your business flow',\r\n 'settings.company': \"Company's data and logo\",\r\n 'settings.taxes': 'Manage taxes',\r\n 'settings.terms': 'Manage payment terms',\r\n 'settings.billing': 'Upgrade and renew Kledo plan',\r\n 'settings.automatic_sequencing': 'Manage invoice automatic sequencing',\r\n 'settings.lock_date': 'Lock transaction data on specific date',\r\n 'settings.layout_invoice': 'Manage invoice layout',\r\n 'settings.layout_reporting': 'Manage finance report layout',\r\n 'settings.users': 'Invite staff and colleagues to use Kledo',\r\n 'settings.roles': 'Manage users role',\r\n 'settings.my_profile': 'Manage profile and change password',\r\n 'settings.setup': 'Remove demo data and start from scratch',\r\n 'settings.translation': \"Change language on Kledo's menu\",\r\n 'settings.audits': 'Watch data log',\r\n 'settings.units': 'Manage product units',\r\n 'settings.consolidation': 'Manage companies and account for consolidation reportings',\r\n 'settings.tags': 'Manage tag to separate branch/department/division reporting',\r\n 'settings.email_template': 'Manage email layouts',\r\n 'settings.apps': 'Connect your Apps with Kledo API',\r\n 'settings.account_mappings': 'CoA Account mapping for transactions on Kledo',\r\n 'settings.marketplace_connect': 'Automatically sync Shopee, Tokopedia, and Lazada to Kledo',\r\n 'settings.whatsapp_template': 'Manage default template invoice delivery via Whatsapp',\r\n 'settings.notification': 'Manage notification that will be sent to your email',\r\n 'settings.notification_title': 'Notification',\r\n 'settings.custom_columns': 'Custom data on your invoice',\r\n 'settings.woocommerce': 'Automatically sync Wordpress & Woocommerce to Kledo',\r\n 'settings.pos_connect': 'Automatically sync POS to Kledo',\r\n 'settings.multi_currency': 'Manage multi currency usage',\r\n 'settings.sales_commission': 'Manage sales commission each sales team',\r\n\r\n 'billing.error_cannot_upgrade': 'Cannot upgrade',\r\n 'billing.error_cannot_renew': 'Cannot renew',\r\n 'billing.error_cannot_delete': 'Cannot delete',\r\n 'billing.error_cannot_get_addon': 'Cannot get addon',\r\n 'billing.error_cannot_add_addon': 'Cannot add addon',\r\n 'billing.account_expired': 'Your account has expired, please renew now',\r\n 'billing.current_expired_date': 'Current expiry date',\r\n 'billing.1.expiration_date_after_renewal': 'Expiration date after renewal',\r\n 'billing.2.expiration_date_after_renewal':\r\n 'The expiry date after renewal is calculated from the current expiry date, not calculated from the payment date.',\r\n 'billing.expired': 'Your account has expired, {setup} to renew',\r\n 'billing.expired_link': 'click here',\r\n 'billing.billing': 'Billing',\r\n 'billing.thankyou': 'Thankyou',\r\n 'billing.upgrade': 'Upgrade',\r\n 'billing.renew': 'Renew',\r\n 'billing.addon': 'Addon',\r\n 'billing.show_addon': 'Show Addon',\r\n 'billing.hide_addon': 'Hide Addon',\r\n 'billing.upgrade_now': 'Upgrade Now',\r\n 'billing.renew_now': 'Renew Now',\r\n 'billing.order_now': 'Order Now',\r\n 'billing.upgrade_plan': 'Upgrade Plan',\r\n 'billing.renew_plan': 'Renew Plan',\r\n 'billing.subscription_plan': 'Subscription Plan',\r\n 'billing.plan': 'Plan',\r\n 'billing.forever': 'Forever',\r\n 'billing.payment_history': 'Payment History',\r\n 'billing.active_until': 'Active until',\r\n 'billing.order_date': 'Order Date',\r\n 'billing.description': 'Description',\r\n 'billing.period': 'Period',\r\n 'billing.payment_date': 'Payment Date',\r\n 'billing.total': 'Total',\r\n 'billing.status': 'Status',\r\n 'billing.select_plan': 'Select a plan',\r\n 'billing.select_contract_duration': 'Select the contract duration',\r\n 'billing.total_bill': 'Total bill',\r\n 'billing.please_add_an_addon': 'Please add one of the addon',\r\n 'billing.please_select_a_plan': 'Please select a plan',\r\n 'billing.please_select_the_contract_duration': 'Please select the contract duration',\r\n 'billing.get_x_discount_for_1_year_payment_and_x_discount_for_6_months':\r\n 'Discount {discountFor1Year} for 1 year payment and {discountFor6Months} discount for 6 months payment',\r\n 'billing.bill_email_has_been_sent_to_your_email':\r\n 'Bill email has been sent to your email address.',\r\n 'billing.please_make_a_payment_of': 'Please make a payment of',\r\n 'billing.by_click_button_below': 'by clicking button below',\r\n 'billing.pay_now': 'Pay Now',\r\n 'billing.pay': 'Pay',\r\n 'billing.payment_failed': 'Payment Failed',\r\n 'billing.please_contact_kledo_if_difficulity_on_payment':\r\n 'Please contact tim Hebat Kledo if you have a difficulity on payment.',\r\n 'billing.payment_success': 'Payment Succeed',\r\n 'billing.your_account_activated_thanks': 'Your account has been activated. Thank You.',\r\n 'billing.payment_pending': 'Waiting for Payment',\r\n 'billing.your_account_wiil_be_active_after_payment':\r\n 'Your account will be active after payment. If you have made a payment, please click the following button. Thank You.',\r\n 'billing.to': 'to',\r\n 'billing.bank': 'Bank',\r\n 'billing.account_number': 'Account Number',\r\n 'billing.after_make_a_payment_please_confirm_via_whatsapp':\r\n 'After make a payment, please confirm via whatsapp at',\r\n 'billing.back_to_billing': 'Back to Billing',\r\n 'billing.feature_available_in_pro_plan': '{feature} feature available in PRO plan',\r\n 'billing.feature_can_only_be_use_on_pro_plan': '{feature} can only be accessed on the PRO plan',\r\n 'billing.pro_plan_features': 'Pro Plan Features',\r\n 'billing.feature_available_in_elite_plan': '{feature} feature available in Elite plan',\r\n 'billing.feature_can_only_be_use_on_elite_plan':\r\n '{feature} can only be accessed on the Elite plan',\r\n 'billing.elite_plan_features': 'Elite Plan Features',\r\n 'billing.feature_available_in_champion_plan': '{feature} feature available in Champion plan',\r\n 'billing.feature_can_only_be_use_on_champion_plan':\r\n '{feature} can only be accessed on the Champion plan',\r\n 'billing.champion_plan_features': 'Champion Plan Features',\r\n 'billing.quota_is_exhausted_add_an_addon':\r\n 'Your {feature} quota is exhausted, please add an addon',\r\n 'billing.marketplace_connect_available_in_elite':\r\n '{feature} Available in Elite Package, Please Upgrade',\r\n 'billing.paid_plan_features': 'Paid Plan Features',\r\n 'billing.feature_can_only_be_accessed_on_paid_plan':\r\n '{feature} can only be accessed on the Paid plan',\r\n 'billing.warehouse_and_inventory': 'Warehouse & Inventory',\r\n 'billing.track_product': 'Track product',\r\n 'billing.attachment': 'Attachment',\r\n 'billing.dashboard_layout_setting': 'Dashboard layout setting',\r\n 'billing.feature_locked': 'Feature Locked',\r\n 'billing.your_free_trial_active': 'Your Free Trial account has been activated.',\r\n 'billing.account_will_active_until': 'The account will be active until',\r\n 'billing.token_required_to_make_payment': 'Token is required to make a payment',\r\n\r\n 'dashboard.hello_name': 'Hello {name},',\r\n 'dashboard.schedule_a_demo_and_consult':\r\n \"Let's schedule a free online demo and consultation with tim hebat Kledo.\",\r\n 'dashboard.demo_online_with_zoom':\r\n 'The demo will be conducted online using Zoom 1 on 1 for 45 minutes.',\r\n 'dashboards.dashboard': 'Dashboard',\r\n 'dashboards.select_company': 'Select a Company: ',\r\n 'dashboards.gross_profit': 'Gross profit',\r\n 'dashboards.net_profit': 'Net Profit',\r\n 'dashboards.net_profit_for_this_year': 'Net profit for this year',\r\n 'dashboards.sales_value_this_year': 'Sales value this year',\r\n 'dashboards.sales': 'Sales',\r\n 'dashboards.awaiting_payment': 'Awaiting payment',\r\n 'dashboards.overdue': 'Overdue',\r\n 'dashboards.sales_this_day': 'Sales this day',\r\n 'dashboards.sales_this_month': 'Sales this month',\r\n 'dashboards.sales_this_year': 'Sales this year',\r\n 'dashboards.this_month': 'This month',\r\n 'dashboards.ytd': 'YTD',\r\n 'dashboards.total': 'Total',\r\n 'dashboards.are_you_sure_delete': 'Are you sure delete?',\r\n 'dashboards.modif': 'Modif',\r\n 'dashboards.exit': 'Exit',\r\n 'dashboards.select_account': 'Select account',\r\n 'dashboards.please_select_account': 'Please select account',\r\n 'dashboards.in': 'In',\r\n 'dashboards.out': 'Out',\r\n 'dashboards.net': 'Net',\r\n 'dashboards.edit': 'Edit',\r\n 'dashboards.other': 'Other',\r\n 'dashboards.the_first_date_end_higger_than_second_date_start':\r\n 'The start of the second date must be a date after the end of the first date',\r\n 'breadcrumb.sales': 'Sales',\r\n 'breadcrumb.purchases': 'Purchase',\r\n 'breadcrumb.conversionbalances': 'Conversion Balances',\r\n 'breadcrumb.conversiondate': 'Conversion Date',\r\n 'breadcrumb.add': 'Add',\r\n 'breadcrumb.edit': 'Edit',\r\n 'breadcrumb.detail': 'Detail',\r\n\r\n 'payments.add_a_payment_method': 'Add A Payment Method',\r\n 'payments.delete_a_payment_method': 'Delete A Payment Method',\r\n 'payments.are_you_sure_delete': 'Are you sure to delete?',\r\n 'payments.payment_metod': 'Payment Metod',\r\n 'payments.please_select_a_payment_to_delete': 'Please select a payment to delete',\r\n 'payments.select_a_payment_method': 'Select a payment method',\r\n 'payments.edit_payment_method': 'Edit Payment Method',\r\n 'payments.payment_method': 'Payment Method',\r\n 'payments.please_input_the_payment_name': 'Please input the payment name.',\r\n 'payments.max_20_characters': 'Max 20 characters.',\r\n 'payments.only_alphanumeric_allowed': 'Only alphanumeric allowed.',\r\n 'payments.name': 'Name',\r\n 'payments.payment': 'Payment',\r\n 'payments.payment_methods': 'Payment Methods',\r\n 'payments.successfully_added': 'successfully added.',\r\n 'payments.error_cannot_add': 'Cannot add payment',\r\n 'payments.successfully_deleted': 'successfully deleted.',\r\n 'payments.error_cannot_delete': 'Cannot delete payment.',\r\n 'payments.payment_successfully_updated': 'Payment successfully updated.',\r\n 'payments.error_cannot_update_payment': 'Cannot update payment.',\r\n 'payments.payment_moved_successfully': 'Payment moved successfully.',\r\n 'payments.error_cannot_move_the_payment': 'Cannot move the payment.',\r\n 'payments.change_status_payment_successfully': 'Change status payment successfully.',\r\n 'payments.error_cannot_change_status_the_payment': 'Cannot change status the payment.',\r\n 'payments.must_have_active_payment': 'Must have at least one active payment.',\r\n\r\n 'profile.profile': 'Profile',\r\n 'profile.image_profile': 'Profile Image',\r\n 'profile.my_profile': 'My Profile',\r\n 'profile.old_password': 'Old Password',\r\n 'profile.please_input_the_old_password': 'Please input the old password.',\r\n 'profile.new_password': 'New Password',\r\n 'profile.please_input_the_new_password': 'Please input the new password.',\r\n 'profile.max_100_characters': 'Max 100 characters.',\r\n 'profile.confirm_new_password': 'Confirm New Password',\r\n 'profile.please_input_the_confirm_new_password': 'Please input the confirm new password.',\r\n 'profile.email_or_username': 'Email / Username',\r\n 'profile.please_input_the_email/username': 'Please input the email/username.',\r\n 'profile.the_input_is_not_valid-e-mail': 'The input is not valid E-mail.',\r\n 'profile.please_input_the_full_name': 'Please input the full name.',\r\n 'profile.0nly_alphanumeric_allowed': 'Only alphanumeric allowed.',\r\n 'profile.full_name': 'Full Name',\r\n 'profile.please_input_the_phone_number': 'Please input the phone number.',\r\n 'profile.max_20_characters': 'Max 20 characters.',\r\n 'profile.only_number_allowed': 'Only number allowed.',\r\n 'profile.phone_number': 'Phone Number',\r\n 'profile.user_profile_successfully_updated': 'User profile successfully updated.',\r\n 'profile.error_cannot_update_user_profile': 'Cannot update user profile.',\r\n 'profile.user_password_successfully_updated': 'User password successfully updated.',\r\n 'profile.error_cannot_update_user_password': 'Cannot update user password.',\r\n 'profile.change_password': 'Change Password',\r\n 'profile.two_passwords_that_you_enter_is_inconsistent_':\r\n 'Two passwords that you enter is inconsistent.',\r\n 'profile.password_atleast_8_characters_atleast_1_uppercase_and_atleast_1_digit':\r\n 'Password atleast 8 characters, atleast 1 uppercase and atleast 1 digit.',\r\n 'profile.password_atleast_6_characters': 'Password atleast 6 characters.',\r\n 'profile.password_atleast_8_characters': 'Password atleast 8 characters.',\r\n 'profile.password_pattern_minimum_1_capital_and_1_lowercase_letter':\r\n 'Minimum 1 capital letter and 1 lowercase letter.',\r\n 'profile.password_pattern_minimum_1_number': 'Minimum 1 number.',\r\n 'profile.logout_from_all_device': 'Logout from all device',\r\n 'profile.cannot_logout_from_all_device': 'Cannot logout from all device',\r\n\r\n 'roles.add_role': 'Add Role',\r\n 'roles.delete_role': 'Delete Role',\r\n 'roles.select_role_to_delete': 'Select Role to Delete',\r\n 'roles.please_select_a_role': 'Please select a role.',\r\n 'roles.select_role': 'Select role',\r\n 'roles.edit_role': 'Edit Role',\r\n 'roles.role': 'Role',\r\n 'roles.roles': 'Roles',\r\n 'roles.please_input_the_role_name': 'Please input the role name.',\r\n 'roles.max_100_characters': 'Max 100 characters.',\r\n 'roles.superadmin': 'Superadmin',\r\n 'roles.error_cannot_get_roles': 'Cannot get Roles.',\r\n 'roles.successfully_added': 'successfully added.',\r\n 'roles.error_cannot_add': 'Cannot add',\r\n 'roles.role_successfully_updated': 'Role successfully updated.',\r\n 'roles.error_cannot_update_role': 'Cannot update role.',\r\n 'roles.successfully_deleted': 'successfully deleted.',\r\n 'roles.error_cannot_delete': 'Cannot delete',\r\n 'roles.role_moved_successfully': 'Role moved successfully.',\r\n 'roles.error_cannot_move_the_channel': 'Cannot move the channel.',\r\n 'roles.search_by_role_name': 'Search by role name',\r\n 'roles.name': 'Role name',\r\n 'roles.invoices_payment': 'Payment',\r\n 'roles.orders_payment': 'Payment',\r\n 'roles.purchase_invoices_payment': 'Payment',\r\n 'roles.purchase_orders_payment': 'Payment',\r\n 'roles.product_show_purchase_price': 'Show Purchase Price',\r\n 'roles.product_show_sale_price': 'Show Sale Price',\r\n 'roles.product_show_hpp': 'Show COGS',\r\n 'roles.inventory_show_hpp': 'Show Price',\r\n 'roles.reports_finance': 'Finance',\r\n 'roles.reports_accounting': 'Accounting',\r\n 'roles.reports_sales': 'Sales',\r\n 'roles.reports_purchases': 'Purchases',\r\n 'roles.reports_expenses': 'Expenses',\r\n 'roles.reports_taxes': 'Taxes',\r\n 'roles.reports_inventory': 'Inventory',\r\n 'roles.reports_fixed_assets': 'Fixed Assets',\r\n 'roles.reports_budget': 'Budget',\r\n 'roles.reports_consolidation': 'Consolidation',\r\n 'roles.apikeys': 'API Keys',\r\n 'roles.sales_other_user_access': 'Other User Access',\r\n 'roles.purchase_other_user_access': 'Other User Access',\r\n 'roles.expenses_other_user_access': 'Other User Access',\r\n 'roles.product_show_manufacture_raw': 'Show Manufacture Raw Materials',\r\n 'roles.show_purchase_price': 'Show Purchase Price',\r\n 'roles.show_sales_price': 'Show Sales Price',\r\n 'roles.show_cogs': 'Show COGS',\r\n 'roles.show_manufaktur_materials': 'Show Manufaktur Materials',\r\n 'roles.users_with_this_role': 'Users with this role',\r\n 'roles.click_here_to_set_users': '{clickHere} to set users.',\r\n 'roles.role_not_found': 'Role with id {id} not found',\r\n\r\n 'shipComp.shipping_company': 'Shipping Companies',\r\n 'shipComp.name': 'Name',\r\n 'shipComp.status': 'Status',\r\n 'shipComp.error_cannot_move': 'Cannot add shipping company.',\r\n 'shipComp.error_cannot_add': 'Cannot add shipping company.',\r\n 'shipComp.error_cannot_update': 'Cannot update shipping company.',\r\n 'shipComp.error_cannot_delete': 'Cannot delete shipping company.',\r\n 'shipComp.error_cannot_change_status': 'Cannot change status shipping company.',\r\n 'shipComp.please_select_to_delete': 'Please select a Shipping Company to delete',\r\n 'shipComp.select': 'Select a Shipping Company',\r\n 'shipComp.please_input_the_name': 'Please input the shipping company name.',\r\n 'shipComp.must_have_active_shipcomp': 'Must have at least one active shipping company.',\r\n\r\n 'report.processing_the_data': 'Processing the Data',\r\n 'report.access_denied': 'Access Denied',\r\n 'report.profitability_per_invoice': 'Profitability per Invoice',\r\n 'report.show_account': 'Show Account',\r\n 'report.show_zero_account_balance': 'Show zero account balance',\r\n 'report.account_not_compiled':\r\n 'Some accounts are not compiled yet, please {link} to compile the accounts',\r\n 'report.month': 'Month',\r\n 'report.date': 'Date',\r\n 'report.general_ledger_reporting': 'General Ledger',\r\n 'report.account': 'Account',\r\n 'report.account_list': 'Account List',\r\n 'report.general_ledger': 'General Ledger',\r\n 'report.source': 'Source',\r\n 'report.please_select_source': 'Please Select Source',\r\n 'report.description': 'Description',\r\n 'report.reference': 'Reference',\r\n 'report.debit': 'Debit',\r\n 'report.credit': 'Credit',\r\n 'report.ytd_debit': 'YTD Debit',\r\n 'report.ytd_credit': 'YTD Credit',\r\n 'report.running_balance': 'Running Balance',\r\n 'report.opening_balance': 'Opening Balance',\r\n 'report.closing_balance': 'Closing Balance',\r\n 'report.total': 'Total',\r\n 'report.total_this_page': 'Total This Page',\r\n 'report.total_all_page': 'Total All Page',\r\n 'report.posted_on': 'Posted on',\r\n 'report.no_data': 'No Data',\r\n 'report.journal_reporting': 'Journal',\r\n 'report.journal_report': 'Journal',\r\n 'report.journal': 'Journal',\r\n 'report.account_transaction_reporting': 'Account Transaction',\r\n 'report.bank_summary': 'Bank Summary',\r\n 'report.bank_account': 'Bank Account',\r\n 'report.cash_received': 'Cash Received',\r\n 'report.cash_spent': 'Cash Spent',\r\n 'report.sales_tax': 'Sales Tax',\r\n 'report.net': 'Net',\r\n 'report.tax': 'Tax',\r\n 'report.customer_invoice': 'Customer Invoice',\r\n 'report.invoice_number': 'Invoice Number',\r\n 'report.to': 'To',\r\n 'report.from': 'From',\r\n 'report.due_date': 'Due Date',\r\n 'report.date_and_time': 'Date & time',\r\n 'report.invoice_date': 'Invoice Date',\r\n 'report.paid': 'Paid',\r\n 'report.due': 'Due',\r\n 'report.all': 'All',\r\n 'report.status': 'Status',\r\n 'report.income_per_customer': 'Income Per Customer',\r\n 'report.customer': 'Customer',\r\n 'report.income': 'Income',\r\n 'report.sales_per_product': 'Sales Per Product',\r\n 'report.order_per_product': 'Order Per Product',\r\n 'report.product_name': 'Product Name',\r\n 'report.current_unit_price': 'Current Unit Price',\r\n 'report.quantity_sold': 'Quantity Sold',\r\n 'report.product_quantity_sold_not_sent_yet': 'Product Quantity Sold Not Sent Yet',\r\n 'report.quantity_bought': 'Quantity Bought',\r\n 'report.average': 'Average',\r\n 'report.purchases': 'Purchases',\r\n 'report.purchases_per_vendor': 'Purchases Per Vendor',\r\n 'report.purchases_per_product': 'Purchases Per Product',\r\n 'report.expense_per_contact': 'Expense Per Contact',\r\n 'report.supplier': 'Supplier',\r\n 'report.supplier_invoice': 'Supplier Invoice',\r\n 'report.purchase_value': 'Purchase Value',\r\n 'report.aged_receivable': 'Aged Receivable',\r\n 'report.aged_receivable_not_yet_due': 'Not Yet Due',\r\n 'report.aged_receivable_aged_trans': 'Age of Transaction',\r\n 'report.aged_receivable_aged_due': 'Age of Due',\r\n 'report.aged_receivable_detail': 'Aged Receivable Detail',\r\n 'report.aged_payable': 'Aged Payable',\r\n 'report.aged_payable_detail': 'Aged Payable Detail',\r\n 'report.expense_claim': 'Expense Claim',\r\n 'report.expense_claim_detail': 'Expense Claim Detail',\r\n 'report.trial_balance': 'Trial Balance',\r\n 'report.profit_and_loss': 'Profit and Loss',\r\n 'report.other_revenue': 'Other Revenue',\r\n 'report.cost_of_sales': 'Cost of Sales',\r\n 'report.total_cost_of_sales': 'Total Cost of Sales',\r\n 'report.expenses': 'Expenses',\r\n 'report.operating_expenses': 'Operating Expenses',\r\n 'report.total_operating_expenses': 'Total Operating Expenses',\r\n 'report.other_expenses': 'Other Expenses',\r\n 'report.trading_income': 'Trading Income',\r\n 'report.total_trading_income': 'Total Trading Income',\r\n 'report.profitloss_comprehensive_income': 'Profit/Loss Comprehensive Income',\r\n 'report.profitloss_all_encompassing': 'All encompassing',\r\n 'report.profitloss_one_of': 'One of',\r\n 'report.profitloss_filter_by_tags': 'Filter by tags',\r\n 'report.profitloss_filter_currency': 'Select Currency',\r\n 'report.profitloss_currency': 'Currency',\r\n 'report.total_comprehensive_income_this_period': 'Total Comprehensive Income This Period',\r\n 'report.reports': 'Reports',\r\n 'report.financial': 'Financial',\r\n 'report.balance_sheet': 'Balance Sheet',\r\n 'report.compare': 'Compare',\r\n 'report.period': 'Period',\r\n 'report.cash_summary': 'Cash Summary',\r\n 'report.executive_summary': 'Executive Summary',\r\n 'report.sales_tax_report': 'Sales Tax',\r\n 'report.accounting': 'Accounting',\r\n 'report.aged_receivables': 'Aged Receivables',\r\n 'report.customer_invoice_report': 'Customer Invoice',\r\n 'report.aged_payables': 'Aged Payables',\r\n 'report.supplier_invoice_report': 'Supplier Invoice',\r\n 'report.purchases_per_supplier': 'Purchases per Supplier',\r\n 'report.cash_flow': 'Cash Flow',\r\n 'report.net_cash_flows_from_': 'Net cash flows from ',\r\n 'report.direct_method': 'Direct Method',\r\n 'report.indirect_method': 'Indirect Method',\r\n 'report.please_select': 'Please select',\r\n 'report.cash_and_cash_equivalent': 'Cash and Cash Equivalent',\r\n 'report.cash_and_cash_equivalent_at_beginning_period':\r\n 'Cash and cash equivalent at beginning of period',\r\n 'report.cash_and_cash_equivalent_at_end_period': 'Cash and cash equivalent at end of period',\r\n 'report.net_change_in_cash_for_period': 'Net change in cash for period',\r\n 'report.net_cash_flows': 'Net cash flows',\r\n 'report.equity_movement': 'Movement in Equity',\r\n 'report.beginning': 'Beginning',\r\n 'report.ending': 'Ending',\r\n 'report.net_movement': 'Net Movement',\r\n 'report.expense_claim_customer': 'Customer',\r\n 'report.spend': 'Expenses',\r\n 'report.to_customer': 'To',\r\n 'report.account_transactions': 'Account Transactions',\r\n 'report.account_transactions_title': '{account} Transactions',\r\n 'report.fixed_asset': 'Fixed Asset',\r\n 'report.fixed_asset_detail': 'Fixed Asset Detail',\r\n 'report.fixed_asset_summary': 'Fixed Asset Summary',\r\n 'report.asset_name': 'Asset Name',\r\n 'report.number': 'Number',\r\n 'report.purchase_date': 'Purchase Date',\r\n 'report.purchase_price': 'Purchase Price',\r\n 'report.depreciation': 'Depreciation',\r\n 'report.book_value': 'Book Value',\r\n 'report.witholding_tax': 'Witholding Tax',\r\n 'report.inventory': 'Inventory',\r\n 'report.inventory_summary': 'Inventory Summary',\r\n 'report.inventory_stock_movement': 'Inventory Stock Movement',\r\n 'report.warehouse_stock_summary': 'Warehouse Stock Summary',\r\n 'report.warehouse_stock_movement': 'Warehouse Stock Movement',\r\n 'report.warehouse': 'Warehouse',\r\n 'report.category': 'Category',\r\n 'report.select_category': 'Select Category',\r\n 'report.code': 'Code',\r\n 'report.qty': 'Quantity',\r\n 'report.opening_qty': 'Opening Quantity',\r\n 'report.qty_movement': 'Quantity Movement',\r\n 'report.closing_qty': 'Closing Quantity',\r\n 'report.opening_value': 'Opening Value',\r\n 'report.value_movement': 'Value Movement',\r\n 'report.value': 'Value',\r\n 'report.closing_value': 'Closing Value',\r\n 'report.avg_cost': 'Average Cost',\r\n 'report.avg_cost2': 'Average Cost',\r\n 'report.unit_price': 'Unit Price',\r\n 'report.product_value': 'Product Value',\r\n 'report.product_stock': 'Product Stock',\r\n 'report.product': 'Product',\r\n 'report.until': 'until',\r\n 'report.budget': 'Budget',\r\n 'report.actual': 'Actual',\r\n 'report.movement': 'Movement',\r\n 'report.price': 'Price',\r\n 'report.unpaid': 'Unpaid',\r\n 'report.grand_total': 'Grand Total',\r\n 'report.delivery': 'Delivery',\r\n 'report.please_input_name': 'Please input name',\r\n 'report.start_period': 'Start Period',\r\n 'report.please_input_start_period': 'Please input start period',\r\n 'report.no_of_period': 'No. of Period',\r\n 'report.last_period': 'Last Period',\r\n 'report.last_n_period': 'Last {count} Period',\r\n 'report.cannot_save_budget': 'Cannot save budget',\r\n 'report.cannot_delete_budget': 'Cannot delete budget',\r\n 'report.interval': 'Interval',\r\n 'report.apply': 'Apply',\r\n 'report.delete_figures_this_column': 'Delete all figures from this column',\r\n 'report.apply_figures_to_following_month':\r\n 'Apply the figures from this month to the following months',\r\n 'report.adjust_figures_each_month_amount':\r\n 'Adjust the figures for each subsequent month to this amount',\r\n 'report.adjust_figures_each_month_percent':\r\n 'Adjust the figures for each subsequent month with this percentage',\r\n 'report.max_n_period_to_print': 'Maximum {count} period to print',\r\n 'report.total_income': 'Total Income',\r\n 'report.gross_profit': 'Gross Profit',\r\n 'report.operating_costs': 'Operating Costs',\r\n 'report.net_profit': 'Net Profit',\r\n 'report.search_by_product': 'Search by product',\r\n 'report.shipping_amount': 'Shipping Amount',\r\n 'report.invoice_total': 'Invoice Total',\r\n 'report.shipping_cost_total': 'Shipping Cost Total',\r\n 'report.shipping_cost': 'Shipping Cost',\r\n 'report.shipping_cost_per_expedition': 'Shipping Cost per Expedition',\r\n 'report.sales_per_sales_person': 'Sales per Sales Person',\r\n 'report.production_report': 'Production Report',\r\n 'report.finished_product': 'Finished Product',\r\n 'report.percentage': 'Percentage',\r\n 'report.transaction_total': 'Transaction Total',\r\n 'report.receivable_payable_contact': 'Receivable Payable per Contact',\r\n 'report.sort_by': 'Sort by',\r\n 'report.invoice_payment': 'Invoice Payment',\r\n 'report.purchase_invoice_payment': 'Purchase Invoice Payment',\r\n 'report.first_payment_date': 'First Payment Date',\r\n 'report.paid_date': 'Paid Date',\r\n 'report.product_profitability': 'Product Profitability',\r\n 'report.total_profit': 'Total Profit',\r\n 'report.profit_margin': 'Profit Margin',\r\n 'report.avg_sell_price': 'Avg Sell Price',\r\n 'report.hpp_per_unit': 'COGS Per Unit',\r\n 'report.avg_cogs': 'Avg COGS',\r\n 'report.stock_in': 'Stock In',\r\n 'report.stock_out': 'Stock Out',\r\n 'report.sales_per_period': 'Sales Per Period',\r\n 'report.purchases_per_period': 'Purchases Per Period',\r\n 'report.product_sales_per_customer': 'Product Sales Per Customer',\r\n 'report.product_purchase_per_supplier': 'Product Purchase Per Supplier',\r\n 'report.total_quantity_product': 'Total Quantity Product',\r\n 'report.product_purchases_per_vendor': 'Product Purchases per Vendor',\r\n 'report.vendor': 'Vendor',\r\n 'report.sales_per_product_category': 'Sales Per Product Category',\r\n 'report.favorite': 'Favorite',\r\n 'report.remove_favorite': 'Remove from favorite menu',\r\n 'report.add_favorite': 'Add from favorite menu',\r\n\r\n 'report.total_price': 'Total Price',\r\n\r\n 'report.view_price': 'View Price',\r\n 'report.include_unit_conversion': 'Show unit conversions',\r\n 'report.hide_zero_qty': 'Hide zero qty',\r\n 'trialBalance.show_balance': 'Show Balance',\r\n\r\n 'attachment.file_name': 'File Name',\r\n 'attachment.search_by_file_name': 'Search by file name',\r\n 'reportsImport.amount_of_success_import': 'Amount of success import',\r\n 'reportsImport.detail': 'Import Detail',\r\n 'reportsImport.status': 'Import Status',\r\n 'reportsImport.failed_to_import': 'Failed to import',\r\n 'reportsImport.successful_import': 'Successful import',\r\n 'reportsImport.import_type': 'Import Type',\r\n 'reportsImport.import_time': 'Import Time',\r\n 'reportsImport.transaction_status': 'Transaction Status',\r\n 'reportsImport.download_file_import': 'Download file import',\r\n 'reportsImport.download_file_error': 'Download file error',\r\n 'reportsImport.sub_account_code': 'Sub Account Code (Parent)',\r\n 'reportsImport.sub_account_name': 'Sub Account Name (Parent)',\r\n 'reportsImport.imported_by': 'Imported by',\r\n\r\n 'setup.demo_data_successfully_cleared': 'Demo data successfully cleared.',\r\n 'setup.error_demo_data_failure_to_cleared_': 'Failed to clear demo data.',\r\n 'setup.demo_data_successfully_finished': 'Setup finished successfully.',\r\n 'setup.error_demo_data_failure_to_finished': 'Failed to finish setup.',\r\n 'setup.setup_clear_demo_data': 'Setup Clear Demo Data',\r\n 'setup.you_are_using_a_demo_of_kledo_at_the_moment':\r\n 'You are using a demo of kledo at the moment.',\r\n 'setup.click_button_below_to_clear_the_test_data_and_start_setting_up_your_property':\r\n 'Click button below to clear the test data and start setting up your company',\r\n 'setup.are_you_sure_that_you_want_to_clear_demo_': 'Are you sure to clear demo data?',\r\n 'setup.this_will_remove_all_rooms_room_types_rates_and_bookings':\r\n 'This will remove all data, and cannot be undone.',\r\n 'setup.clear_test_data_and_setup': 'Clear test data and setup',\r\n 'setup.clear_demo_data': 'Clear demo data',\r\n 'setup.delete_all_data_now': 'Delete all data now',\r\n 'setup.continue_deleting_data': 'Continue deleting data',\r\n 'setup.1_waring': 'This setup page will only appear to admins with Administrator privileges.',\r\n 'setup.2_waring':\r\n 'This page will disappear automatically 1 month after the registration date on Kledo.',\r\n 'setup.finish': 'Finish',\r\n 'setup.finish_setup': 'Finish setup',\r\n 'setup.demo': 'The data presented here is dummy data. When ready, {setup} to reset the data.',\r\n 'setup.demo_link': 'click here',\r\n 'setup.trial': 'Your free trial access will be ended in {days} days. {setup}.',\r\n 'setup.trial_one_day': 'Your free trial access will expire in {hour} hours. {setup}.',\r\n 'setup.trial_zero_days': 'Your free trial access has ended. {setup}.',\r\n 'setup.subscription': 'Your subscription package will expire in {days} days. {setup}.',\r\n 'setup.subscription_one_day': 'Your subscription will expire in {hour} hours. {setup}.',\r\n 'setup.subscription_zero_days': 'Your subscription has ended. {setup}.',\r\n 'setup.go_to_dashboard': 'Go to dashboard',\r\n 'setup.setup_complete':\r\n 'Demo data has been deleted and setup is complete, now you can start using Kledo.',\r\n 'setup.input_your_cash_and_account_bank_name': 'Enter your company cash & bank account name',\r\n 'setup.input_your_company_name': 'Enter your company data',\r\n 'setup.company_logo': 'Company Logo',\r\n 'setup.cash': 'Cash',\r\n 'setup.bca_account': 'BCA Account',\r\n 'setup.mandiri_account': 'Mandiri Account',\r\n 'setup.please_input_bank_account_name_or_delete_this_field':\r\n 'Input bank account name or delete this field.',\r\n\r\n 'accountMapping.account_mappinng': 'Account Mapping',\r\n\r\n 'users.hello_please_select_company_to_proceed':\r\n 'Hello {name}, please select a company to proceed',\r\n 'users.please_select_company_to_proceed': 'please select a company to proceed',\r\n 'users.hello': 'Hello',\r\n 'users.you_are_invited_to_join': 'You are invited to join',\r\n 'users.do_you_agree_to_join': 'Do You agree to join',\r\n 'users.all_users': 'All users',\r\n 'users.select_user': 'Select user',\r\n 'users.yes': 'Yes',\r\n 'users.no': 'No',\r\n 'users.add_user': 'Add User',\r\n 'users.delete_user': 'Delete User',\r\n 'users.only_displays_users_other_than_you': 'Only displays users other than you',\r\n 'users.please_select_a_user': 'Please select a user.',\r\n 'users.select_user_to_delete': 'Select User to Delete',\r\n 'users.edit_user': 'Edit User',\r\n 'users.name': 'Name',\r\n 'users.email': 'Email',\r\n 'users.role': 'Role in the company as',\r\n 'users.roles': 'Roles',\r\n 'users.resending': 'Resending',\r\n 'users.resending_help':\r\n 'To confirm, please open your email inbox, and click the link sent by Kledo.',\r\n 'users.success_resending': 'Successfully Sending Invitations',\r\n 'users.success_resending_desc':\r\n 'Invitation successfully resent to email {email}. Please open your email inbox, and click on the link that has been sent by Kledo.',\r\n 'users.waiting_for_confirmation': 'Waiting for confirmation',\r\n 'users.please_input_the_email_address': 'Please input the email address.',\r\n 'users.max_100_characters': 'Max 100 characters.',\r\n 'users.invalid_email_address_format': 'Invalid email address format.',\r\n 'users.please_select_a_role': 'Please select a role.',\r\n 'users.select_roles': 'Select roles',\r\n 'users.pending_invitation': '(Pending invitation)',\r\n 'users.user': 'User',\r\n 'users.successfully_added': 'successfully added.',\r\n 'users.error_cannot_add': 'Cannot add',\r\n 'users.user_successfully_updated': 'User successfully updated.',\r\n 'users.error_cannot_update_user': 'Cannot update user.',\r\n 'users.successfully_deleted': 'successfully deleted.',\r\n 'users.error_cannot_delete': 'Cannot delete',\r\n 'users.search_by_name_or_email': 'Search by name or email',\r\n 'users.restore_password': 'Restore Password',\r\n 'users.enter_the_email_address_associated_with_your_account_and_well_email_you_a_link_to_reset_your_password':\r\n \"Enter the email address associated with your account, and we'll email you a link to reset your password\",\r\n 'users.back_to_login': 'Back to login',\r\n 'users.send_reset_link': 'Send Reset Link',\r\n 'users.please_check_your_email_inbox_and_follow_the_instruction_to_reset_your_password_if_email_hasnt_received_please_check_the_bulk_and_spam_folder':\r\n \"Please check your email inbox and follow the instruction to reset your password. If email hasn't received please check the bulk and spam folder\",\r\n 'users.please_input_your_email': 'Please input your email',\r\n 'users.the_input_is_not_valid_email_': 'The input is not valid E-mail.',\r\n 'users.welcome_to_kledo': 'WELCOME TO KLEDO',\r\n 'users.welcome_to2': 'Welcome to ',\r\n 'users.phone': 'Phone',\r\n 'users.password': 'Password',\r\n 'users.confirm_new_password': 'Confirm New Password',\r\n 'users.activate': 'Activate',\r\n 'users.invalid_invitation_token': 'Invalid invitation token',\r\n 'users.your_invitation_token_is_invalid_please_check_it_again_and_reload_the_page':\r\n 'Please check it again and reload the page',\r\n 'users.please_fill_the_register_form': 'Please fill the register form',\r\n 'users.please_input_your_email_address': 'Please input your e-mail address',\r\n 'users.please_input_your_name': 'Please input your name',\r\n 'users.please_input_your_phone': 'Please input your phone',\r\n 'users.only_number_allowed': 'Only number allowed.',\r\n 'users.please_input_new_password': 'Please input New Password',\r\n 'users.min_8_characters': 'Min 8 characters.',\r\n 'users.password_atleast_8_characters_atleast_1_uppercase_and_atleast_1_digit':\r\n 'Password atleast 8 characters, atleast 1 uppercase and atleast 1 digit.',\r\n 'users.two_passwords_that_you_enter_is_inconsistent_':\r\n 'Two passwords that you enter is inconsistent.',\r\n 'users.welcome_to': 'WELCOME TO',\r\n 'users.please_log_in': 'Please log in',\r\n 'users.you_have_logged_out_automatically':\r\n 'You have been logged out automatically, please continue to proceed.',\r\n 'users.remember_me': 'Remember me',\r\n 'users.forgot_password_': 'Forgot password?',\r\n 'users.login': 'Login',\r\n 'users.login_with_google': 'Sign in with Google',\r\n 'users.login_failed': 'Login Failed',\r\n 'users.go_back_to_home_page': 'Go back to the home page',\r\n 'users.failed_to_connect_to_kledo': 'Failed to connect to Kledo server',\r\n 'users.please_check_your_internet_connection_please_contact_wa':\r\n 'Please check your internet connection. If you still have a problem, please contact via Whatsapp on 62-896-5884-7000',\r\n 'users.please_input_your_password': 'Please input your password',\r\n 'users.profile': 'Profile',\r\n 'users.reset_password': 'Reset Password',\r\n 'users.request_new_password_reset': 'Request new password reset',\r\n 'users.new_password': 'New Password',\r\n 'users.invalid_password_reset_token': 'Invalid password reset token',\r\n 'users.your_password_reset_token_is_invalid_please_check_it_again_and_reload_the_page':\r\n 'Your password reset token is invalid, please check it again and reload the page',\r\n 'users.users': 'Users',\r\n 'users.information': 'Information',\r\n 'users.information_invitation_email':\r\n \"A invitation email already sent to {email} . Please ask your colleague to follow the instruction in the email to activate the account. If email hasn't received please check the bulk and spam folder.\",\r\n 'users.create_kledo_accounts': 'Create Kledo Accounts',\r\n 'users.congratulation_': 'Congratulation!',\r\n 'users.registration_failed': 'Registration Failed',\r\n 'users.your_kledo_account_successfully_created': 'Your Kledo account successfully created.',\r\n 'users.your_username_and_password_already_sent_to_your_email':\r\n 'Your username and password already sent to your email',\r\n 'users.kledo_app_url': 'Kledo App Url',\r\n 'users.kledo_app_url_is_required': 'Kledo App Url is required',\r\n 'users.kledo_app_arl_must_be_at_least_3_characters':\r\n 'Kledo App Url must be at least 3 characters',\r\n 'users.kledo_app_url_cannot_be_longer_than_20_characters':\r\n 'Kledo App Url cannot be longer than 20 characters',\r\n 'users.name_is_required': 'Name is required',\r\n 'users.name_must_be_at_least_5_characters': 'Name must be at least 5 characters',\r\n 'users.name_cannot_be_longer_than_20_characters': 'Name cannot be longer than 20 characters',\r\n 'users.property_name': 'Company Name',\r\n 'users.property_name_is_required': 'Company Name is required',\r\n 'users.property_name_must_be_at_least_5_characters': 'Company Name must be at least 5 characters',\r\n 'users.property_name_cannot_be_longer_than_20_characters':\r\n 'Company Name cannot be longer than 20 characters',\r\n 'users.role_is_required': 'Role is required',\r\n 'users.role_must_be_at_least_3_characters': 'Role must be at least 3 characters',\r\n 'users.role_cannot_be_longer_than_20_characters': 'Role cannot be longer than 20 characters',\r\n 'users.phone_number': 'Phone Number',\r\n 'users.phone_number_is_required': 'Phone Number is required',\r\n 'users.no_phone_number_worng': 'Phone Number worng',\r\n 'users.phone_number_must_be_at_least_5_characters': 'Phone Number must be at least 5 characters',\r\n 'users.phone_number_cannot_be_longer_than_20_characters':\r\n 'Phone Number cannot be longer than 20 characters',\r\n 'users.email_is_required': 'Email is required',\r\n 'users.email_is_not_a_valid_email': 'Email is not a valid email',\r\n 'users.register_now': 'Register Now',\r\n 'users.login_now': 'Login Now',\r\n 'users.domain_value_app_kledo_com_already_used_please_use_another_name':\r\n 'Domain {value}.app.kledo.com already used, please use another name',\r\n 'users.please_contact_hello_kledo_com_for_more_info':\r\n 'Please contact hello@kledo.com for more info.',\r\n 'users.registration_completed': 'Regsitration completed!',\r\n 'users.password_has_been_sent_to_email_sms':\r\n 'Password has been sent to your email and sms, please check it out',\r\n 'users.click_here_to_set_roles': '{clickHere} to set roles.',\r\n\r\n 'report.point_of_sale': 'Point Of Sale',\r\n 'report.net_sales_per_product_category': 'Net Sales per Product Category',\r\n 'report.volume_per_product_category': 'Volume per Product Category',\r\n 'report.product_category': 'Product Category',\r\n 'report.gross_sales': 'Gross Sales',\r\n 'report.net_sales': 'Net Sales',\r\n 'report.discount': 'Discount',\r\n 'report.gratuity': 'Gratuity',\r\n 'report.collected': 'collected',\r\n 'report.total_collected': 'Total Collected',\r\n 'report.all_outlets': 'All',\r\n 'report.payment': 'Payment',\r\n 'report.day_of_the_week_sales': 'Day Of The Week Sales',\r\n 'report.sales': 'Sales',\r\n 'report.sales_summary': 'Sales Summary',\r\n 'report.invoice': 'Invoice',\r\n\r\n 'report.transactions': 'Transactions',\r\n 'report.transactions_type': 'Transactions Type',\r\n 'report.choose_transactions_type': 'Choose transactions type',\r\n 'report.buy_sell_price': 'Buy/Sell Price',\r\n 'report.avg_per_transaction': 'Avg. Net Sale Per Transactions',\r\n 'report.name': 'Name',\r\n 'report.volume': 'Volume',\r\n 'report.top_products': 'Top Products',\r\n 'report.pos': 'Pos',\r\n 'report.pos_reports': 'Pos Reports',\r\n 'report.outlets': 'Outlets',\r\n\r\n 'financeAccounts.add_account': 'Add Account',\r\n 'financeAccounts.financeAccounts': 'Account',\r\n 'financeAccounts.all_accounts': 'All accounts',\r\n 'financeAccounts.category': 'Category',\r\n 'financeAccounts.select_category': 'Select category',\r\n 'financeAccounts.successfully_added': 'successfully added.',\r\n 'financeAccounts.error_cannot_add': 'Cannot add account.',\r\n 'financeAccounts.error_cannot_update': 'Cannot update account.',\r\n 'financeAccounts.error_cannot_move': 'Cannot move the account.',\r\n 'financeAccounts.error_cannot_change_status': 'Cannot change status the account.',\r\n 'financeAccounts.edit_account': 'Edit Account',\r\n 'financeAccounts.please_input_the_account_name': 'Please input the account name.',\r\n 'financeAccounts.please_input_the_code': 'Please input the code.',\r\n 'financeAccounts.account_name': 'Name',\r\n 'financeAccounts.code': 'Code',\r\n 'financeAccounts.desc': 'Description',\r\n 'financeAccounts.please_select_a_category': 'Please select a category.',\r\n 'financeAccounts.max_20_characters': 'Max 20 characters.',\r\n 'financeAccounts.max_100_characters': 'Max 100 characters.',\r\n 'financeAccounts.min_2_characters': 'Min 2 characters.',\r\n 'financeAccounts.balance': 'Balance',\r\n 'financeAccounts.only_alphanumeric_allowed': 'Only alphanumeric allowed.',\r\n 'financeAccounts.select_account': 'Select account',\r\n 'financeAccounts.set_conversion_balances': 'Conversion Balances',\r\n 'financeAccounts.error_get_conversion_balances': 'Error check conversion balances',\r\n 'financeAccounts.set_manual_journal': 'Manual Journal',\r\n 'financeAccounts.error_cannot_load_data': 'Cannot load data account.',\r\n 'financeAccounts.all_category': 'All category',\r\n 'financeAccounts.error_cannot_delete': 'Cannot delete account.',\r\n 'financeAccounts.error_cannot_search': 'Cannot search account.',\r\n 'financeAccounts.follow_these_steps_to_import_your_account':\r\n 'Follow these steps to import your account',\r\n 'financeAccounts.1_download_your_account_template_file': '1. Download your account template file',\r\n 'financeAccounts.start_by_downloading_our_account_csv':\r\n 'Start by downloading our accounts Excel template file. This file has the correct column headings Kledo needs to import details of your accounts.',\r\n 'financeAccounts.download_template_file': 'Download Template File',\r\n 'financeAccounts.download_template_data_example_file': 'Download template data example file',\r\n 'financeAccounts.import': 'Import Account',\r\n 'financeAccounts.2_copy_your_account_into_the_template':\r\n '2. Copy your accounts into the template',\r\n 'financeAccounts.using_excel_or_another_spreadsheet_editor':\r\n 'Using Excel or another spreadsheet editor, fill the Kledo template with the details of your accounts. Make sure the product details match the column headings provided in the template.',\r\n 'financeAccounts.important': 'IMPORTANT',\r\n 'financeAccounts.3_upload_the_updated_template_file_here':\r\n '3. Upload the updated template file here',\r\n 'financeAccounts.upload': 'Upload',\r\n 'financeAccounts.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Save your updated template and you are ready to go',\r\n 'financeAccounts.a_maximum_of_500_account_can_be_imported_at_a_time':\r\n 'A maximum of 1.000 accounts can be imported at a time.',\r\n 'financeAccounts.import_actions_only_insert_new_account_cannot_update_or_delete':\r\n 'Import actions only insert new accounts, cannot update nor delete.',\r\n 'financeAccounts.dont_change_the_column_heading_in_the_template_file':\r\n 'Do not change the column headings in the template file. These need to be unchanged for the important to work in the next step.',\r\n 'financeAccounts.account_successfully_imported': '{rowCount} account imported successfully.',\r\n 'financeAccounts.go_to_account_list': 'Go to account list',\r\n 'financeAccounts.sub_account_from': 'Sub Account from',\r\n\r\n 'financeClosing.closing': 'Closing',\r\n 'financeClosing.period': 'Period',\r\n 'financeClosing.note': 'Note',\r\n 'financeClosing.profit_loss': 'Profit/Loss',\r\n 'financeClosing.choose_period': 'Choose Period',\r\n 'financeClosing.set_worksheet': 'Set Worksheet',\r\n 'financeClosing.worksheet': 'Worksheet',\r\n 'financeClosing.done': 'Done',\r\n 'financeClosing.please_select_period': 'Please select closing period',\r\n 'financeClosing.please_select_date': 'Please select date',\r\n 'financeClosing.please_select_account': 'Please select account',\r\n 'financeClosing.closing_report': 'Closing Report',\r\n 'financeClosing.closing_period_to_has_been_saved': 'Closing period {from} to {to} has been saved',\r\n 'financeClosing.period_from_to': 'Period: {from} - {to}',\r\n 'financeClosing.see_closing_report': 'See Closing Report',\r\n 'financeClosing.error_get_start_date': 'Cannot get start date',\r\n 'financeClosing.error_get_closing_data': 'Cannot get closing data',\r\n 'financeClosing.error_create_closing_data': 'Cannot create closing data',\r\n 'financeClosing.error_delete_closing_data': 'Cannot delete closing data',\r\n 'financeClosing.debit': 'Debit',\r\n 'financeClosing.credit': 'Credit',\r\n 'financeClosing.net_profit_loss': 'Net Profit/Loss',\r\n 'financeClosing.tax_expense': 'Tax Expense',\r\n 'financeClosing.tax_expense_account': 'Tax Expense Account',\r\n 'financeClosing.tax_payable_account': 'Tax Payable Account',\r\n 'financeClosing.tax_amount': 'Tax Amount',\r\n 'financeClosing.tax_percent': 'Tax Percentage',\r\n 'financeClosing.net_profit_loss_after_tax': 'Net Profit/Loss After Tax',\r\n 'financeClosing.retained_earnings_account': 'Retained Earnings Account',\r\n 'financeClosing.early_period': 'Early Period',\r\n\r\n 'financeContacts.paid_status': 'Paid Status',\r\n 'financeContacts.transaction_number': 'Transaction Number',\r\n 'financeContacts.payment_note': 'Payment Note',\r\n 'financeContacts.payment_account_code': 'Payment Account Code',\r\n 'financeContacts.photo': 'Photo',\r\n 'financeContacts.show_photo': 'Show Photo',\r\n 'financeContacts.hide_photo': 'Hide Photo',\r\n 'financeContacts.add_contact': 'Add Contact',\r\n 'financeContacts.financeContacts': 'Contact',\r\n 'financeContacts.contact_type': 'Contact Type',\r\n 'financeContacts.select_contact_type': 'Select contact type',\r\n 'financeContacts.error_cannot_add': 'Cannot add contact.',\r\n 'financeContacts.error_cannot_update': 'Cannot update contact.',\r\n 'financeContacts.edit_contact': 'Edit Contact',\r\n 'financeContacts.please_input_the_contact_name': 'Please input the contact name.',\r\n 'financeContacts.please_select_a_contact_type': 'Please select a contact type.',\r\n 'financeContacts.please_select_a_required_contact_type':\r\n 'The contact type {contacts} must be selected.',\r\n 'financeContacts.please_select_a_contact_type_with_minimal':\r\n 'Please select the type of contact, at least 1 type of contact.',\r\n 'financeContacts.contact_group': 'Contact Group',\r\n 'financeContacts.please_select_a_contact_group': 'Please select a contact group.',\r\n 'financeContacts.contact_name': 'Name',\r\n 'financeContacts.max_characters': 'Max {value} characters.',\r\n 'financeContacts.min_characters': 'Min {value} characters.',\r\n 'financeContacts.balance': 'Balance',\r\n 'financeContacts.company': 'Company',\r\n 'financeContacts.address': 'Address',\r\n 'financeContacts.email': 'Email',\r\n 'financeContacts.add_email': 'Add Email',\r\n 'financeContacts.alternative_email': 'Alternative Email',\r\n 'financeContacts.email_cannot_be_the_same': 'Email cannot be the same',\r\n 'financeContacts.phone': 'Phone',\r\n 'financeContacts.secondary_phone': 'Secondary phone',\r\n 'financeContacts.npwp': 'Tax Number',\r\n 'financeContacts.only_number_allowed': 'Only number allowed.',\r\n 'financeContacts.invalid_email_address_format': 'Invalid email address format.',\r\n 'financeContacts.only_alphanumeric_allowed': 'Only alphanumeric allowed.',\r\n 'financeContacts.all_contact_type': 'All contact type',\r\n 'financeContacts.error_cannot_search': 'Cannot search contact.',\r\n 'financeContacts.group': 'Group',\r\n 'financeContacts.all_group': 'All Group',\r\n 'financeContacts.add_group': 'Add Group',\r\n 'financeContacts.edit_group': 'Edit Group',\r\n 'financeContacts.delete_group': 'Delete Group',\r\n 'financeContacts.only_group_that_not_assigned_in_contact_could_be_deleted':\r\n 'Note: Only group that not assigned in contact could be deleted.',\r\n 'financeContacts.billing_address': 'Billing Address',\r\n 'financeContacts.shipping_address': 'Shipping Address',\r\n 'financeContacts.account_mapping': 'Account Mapping',\r\n 'financeContacts.show_phone_detail': 'Show phone details',\r\n 'financeContacts.hide_phone_detail': 'Hide phone details',\r\n 'financeContacts.show_account_mapping': 'Show account mapping',\r\n 'financeContacts.hide_account_mapping': 'Hide account mapping',\r\n 'financeContacts.payable_account': 'Payable Account',\r\n 'financeContacts.receivable_account': 'Receivable Account',\r\n 'financeContacts.transactions': 'Transactions',\r\n 'financeContacts.successfully_deleted': 'successfully deleted.',\r\n 'financeContacts.successfully_added': 'successfully added.',\r\n 'financeContacts.error_cannot_delete': 'Cannot delete contact group.',\r\n 'financeContacts.error_cannot_add_group': 'Cannot add contact group.',\r\n 'financeContacts.error_cannot_update_group': 'Cannot update contact group.',\r\n 'financeContacts.error_cannot_move': 'Cannot move the contact group.',\r\n 'financeContacts.error_cannot_change_status': 'Cannot change status the contact group.',\r\n 'financeContacts.error_cannot_load_can_be_deleted_group': 'Cannot load contact group.',\r\n 'financeContacts.follow_these_steps_to_import_your_contact':\r\n 'Follow these steps to import your contact',\r\n 'financeContacts.1_download_your_contact_template_file': '1. Download your contact template file',\r\n 'financeContacts.start_by_downloading_our_contact_csv':\r\n 'Start by downloading our contacts Excel template file. This file has the correct column headings Kledo needs to import details of your contacts.',\r\n 'financeContacts.download_template_file': 'Download Template File',\r\n 'financeContacts.download_template_data_example_file': 'Download template data example file',\r\n 'financeContacts.import': 'Import Contact',\r\n 'financeContacts.2_copy_your_contact_into_the_template':\r\n '2. Copy your contacts into the template',\r\n 'financeContacts.using_excel_or_another_spreadsheet_editor':\r\n 'Using Excel or another spreadsheet editor, fill the Kledo template with the details of your contacts. Make sure the contacts details match the column headings provided in the template.',\r\n 'financeContacts.important': 'IMPORTANT',\r\n 'financeContacts.3_upload_the_updated_template_file_here':\r\n '3. Upload the updated template file here',\r\n 'financeContacts.upload': 'Upload',\r\n 'financeContacts.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Save your updated template and you are ready to go',\r\n\r\n 'financeContacts.dont_change_the_column_heading_in_the_template_file':\r\n 'Do not change the column headings in the template file. These need to be unchanged for the important to work in the next step.',\r\n 'financeContacts.a_maximum_of_1000_contact_can_be_imported_at_a_time':\r\n 'A maximum of 1.000 contacts can be imported at a time.',\r\n 'financeContacts.import_benefit_with_update':\r\n 'You can also use the imported file to update all your contacts, saving time and effort over updating contacts one by one through the browser.',\r\n 'financeContacts.warning_update_contact_using_import':\r\n 'The import process will use the contact name, company, and contact type to determine whether a contact already exists in Kledo or not, if the contact already exists, the contact will be updated, whereas if the contact does not exist, a new contact will be created. Contacts will not be deleted, so you can safely update only some of your contacts without worrying about losing data on other contacts.',\r\n\r\n 'financeContacts.contact_successfully_imported': '{rowCount} contact imported successfully.',\r\n 'financeContacts.go_to_contact_list': 'Go to contact list',\r\n 'financeContacts.mass_delete_info':\r\n '**Contact that have a transaction cannot be deleted, can only be archived',\r\n 'financeContacts.want_to_use_this_contact': 'Would like to use this contact ?',\r\n 'financeContacts.are_you_sure_to_archive': 'Are you sure to archive this contact?',\r\n 'financeContacts.are_you_sure_to_unarchive': 'Are you sure to unarchive this contact?',\r\n 'financeContacts.your_net_debt': 'Your net debt',\r\n 'financeContacts.you_owe': 'You owe',\r\n 'financeContacts.they_owe': 'They owe',\r\n 'financeContacts.payment_received': 'Payment received',\r\n 'financeContacts.your_due_debt': 'Your due debt',\r\n 'financeContacts.their_due_debt': 'Their due debt',\r\n 'financeContacts.payment_sent': 'Payment sent',\r\n 'financeContacts.awaiting_payment': 'Awaiting payments',\r\n 'financeContacts.debt_you_need_to_pay': 'Debt you need to pay',\r\n 'financeContacts.money_in_out': 'Money In Out',\r\n 'financeContacts.money_in': 'Money In',\r\n 'financeContacts.money_out': 'Money Out',\r\n 'financeContacts.bank_accounts': 'Bank Accounts',\r\n 'financeContacts.bank': 'Bank',\r\n 'financeContacts.branch': 'Branch',\r\n 'financeContacts.holder_name': 'Holder Name',\r\n 'financeContacts.account_number': 'Account Number',\r\n 'financeContacts.required': 'Required',\r\n 'financeContacts.select_shipping_address': 'Select Shipping Address',\r\n 'financeContacts.revert_to_default_address': 'Revert to default address',\r\n 'financeContacts.max_payable': 'Max Payable',\r\n 'financeContacts.total_payable_is_calculated_from_purchase_invoices':\r\n 'Total payable is calculated from purchase invoices, transaction costs and accounts payable. If the total debt exceeds the maximum, then when creating a new purchase invoice it will be rejected.',\r\n 'financeContacts.max_receivable': 'Max Receivable',\r\n 'financeContacts.total_accounts_receivable_is_calculated_from_sales_invoices':\r\n 'Total accounts receivable is calculated from sales invoices and accounts receivable contacts. If the total receivable exceeds the maximum, then when creating a new sales invoice it will be rejected.',\r\n 'financeContacts.country': 'Country',\r\n 'financeContacts.province': 'Province',\r\n 'financeContacts.city': 'City',\r\n 'financeContacts.district': 'District',\r\n 'financeContacts.village': 'Village',\r\n 'financeContacts.id_card_type': 'ID Card Type',\r\n 'financeContacts.id_card_number': 'ID Card Number',\r\n 'financeContacts.please_select_id_card_type': 'Please select a ID card type',\r\n\r\n 'financeExpenseTerms.delete_expenseTerm': 'Delete Expense Term',\r\n 'financeExpenseTerms.are_you_sure_delete': 'Are you sure to delete?',\r\n 'financeExpenseTerms.select_expenseTerm': 'Select an Expense Term',\r\n 'financeExpenseTerms.please_select_expenseTerm_to_delete':\r\n 'Please select an Expense Term to delete',\r\n 'financeExpenseTerms.add_expenseTerm': 'Add Expense Term',\r\n 'financeExpenseTerms.financeExpenseTerms': 'Expense Term',\r\n 'financeExpenseTerms.successfully_deleted': 'successfully deleted.',\r\n 'financeExpenseTerms.successfully_added': 'successfully added.',\r\n 'financeExpenseTerms.error_cannot_delete': 'Cannot delete expense term.',\r\n 'financeExpenseTerms.error_cannot_add': 'Cannot add expense term.',\r\n 'financeExpenseTerms.error_cannot_update': 'Cannot update expense term.',\r\n 'financeExpenseTerms.error_cannot_move': 'Cannot move the expense term.',\r\n 'financeExpenseTerms.error_cannot_change_status': 'Cannot change status the expense term.',\r\n 'financeExpenseTerms.edit_expenseTerm': 'Edit Expense Term',\r\n 'financeExpenseTerms.please_input_the_expenseTerm_name': 'Please input the expense term name.',\r\n 'financeExpenseTerms.please_input_the_days': 'Please input the days.',\r\n 'financeExpenseTerms.expenseTerm_name': 'Name',\r\n 'financeExpenseTerms.length': 'Length',\r\n 'financeExpenseTerms.days': 'Days',\r\n 'financeExpenseTerms.max_characters': 'Max {value} characters.',\r\n 'financeExpenseTerms.min_characters': 'Min {value} characters.',\r\n 'financeExpenseTerms.only_alphanumeric_allowed': 'Only alphanumeric allowed.',\r\n 'financeExpenseTerms.only_number_allowed': 'Only number allowed.',\r\n 'financeExpenseTerms.only_0_-_1000_allowed': 'Only 0 - 1000 allowed',\r\n 'financeExpenseTerms.only_0_-_10000_allowed': 'Only 0 - 10.000 allowed',\r\n 'financeExpenseTerms.must_have_active_termin': 'Must have at least one active term.',\r\n\r\n 'financeTaxes.add_tax': 'Add Tax',\r\n 'financeTaxes.financeTaxes': 'Tax',\r\n 'financeTaxes.successfully_added': 'successfully added.',\r\n 'financeTaxes.error_cannot_add': 'Cannot add tax.',\r\n 'financeTaxes.error_cannot_update': 'Cannot update tax.',\r\n 'financeTaxes.error_cannot_move': 'Cannot move the tax.',\r\n 'financeTaxes.error_cannot_change_status': 'Cannot change status the tax.',\r\n 'financeTaxes.edit_tax': 'Edit Tax Term',\r\n 'financeTaxes.please_input_the_tax_name': 'Please input the tax name.',\r\n 'financeTaxes.please_input_the_effective_rates': 'Please input the effective rate.',\r\n 'financeTaxes.please_select_a_sell_tax_account': 'Please select a sell tax account.',\r\n 'financeTaxes.please_select_a_buy_tax_account': 'Please select a buy tax account.',\r\n 'financeTaxes.select_buy_tax_account': 'Select buy tax account',\r\n 'financeTaxes.select_sell_tax_account': 'Select sell tax account',\r\n 'financeTaxes.tax_name': 'Name',\r\n 'financeTaxes.effective_rates': 'Effective Rate',\r\n 'financeTaxes.is_withholding': 'With Holding',\r\n 'financeTaxes.buy_tax_account': 'Buy Tax Account',\r\n 'financeTaxes.sell_tax_account': 'Sell Tax Account',\r\n 'financeTaxes.max_characters': 'Max {value} characters.',\r\n 'financeTaxes.min_characters': 'Min {value} characters.',\r\n 'financeTaxes.only_alphanumeric_allowed': 'Only alphanumeric allowed.',\r\n 'financeTaxes.only_number_allowed': 'Only number allowed.',\r\n 'financeTaxes.effective_rate_%': 'Effective Rate %',\r\n 'financeTaxes.must_have_active_tax': 'Must have at least one active tax.',\r\n 'financeTaxes.witholding': 'Witholding',\r\n 'financeTaxes.error_cannot_load_data_detail': 'Cannot load data detail tax.',\r\n 'financeTaxes.delete_tax': 'Delete Tax',\r\n 'financeTaxes.are_you_sure_delete': 'Are you sure to delete?',\r\n 'financeTaxes.select_tax': 'Select a Tax',\r\n 'financeTaxes.please_select_tax_to_delete': 'Please select a Tax to delete',\r\n 'financeTaxes.successfully_deleted': 'successfully deleted.',\r\n 'financeTaxes.error_cannot_delete': 'Cannot delete tax.',\r\n 'financeTaxes.manually_edit_tax_amount_allowed': 'Manually edit tax amount allowed',\r\n 'financeTaxes.allow_manual': 'Allow manual',\r\n 'financeTaxes.compound': 'Compound',\r\n 'financeTaxes.compound_help_text':\r\n 'Double tax will be applied to the total after the previous tax has been applied. By tax order.',\r\n 'financeTaxes.tax_type': 'Tax Type',\r\n 'financeTaxes.one': 'One',\r\n 'financeTaxes.consist_of': 'Consist of',\r\n 'financeTaxes.consist_of_is_required': 'Minimum 1 selected tax.',\r\n 'financeTaxes.effective_percentage': 'Effective Percentage',\r\n 'financeTaxes.error_effective_percentage': 'Unable to get effective percentage',\r\n 'financeTaxes.tax_group': 'Tax Group',\r\n\r\n 'financeUnits.error_cannot_move': 'Cannot move unit',\r\n 'financeUnits.name': 'Name',\r\n 'financeUnits.max_characters': 'Max {value} characters.',\r\n 'financeUnits.min_characters': 'Min {value} characters.',\r\n 'financeUnits.only_alphanumeric_allowed': 'Only alphanumeric allowed.',\r\n 'financeUnits.please_input_the_unit_name': 'Please input the tax name.',\r\n 'financeUnits.error_cannot_add': 'Cannot add unit.',\r\n 'financeUnits.error_cannot_update': 'Cannot update unit.',\r\n 'financeUnits.error_cannot_delete': 'Cannot delete unit.',\r\n 'financeUnits.please_select_unit_to_delete': 'Please select a Unit to delete',\r\n 'financeUnits.select_unit': 'Select a Unit',\r\n 'financeUnits.unit': 'Unit',\r\n\r\n 'financeExpenses.add_expense': 'Add Expense',\r\n 'financeExpenses.financeExpenses': 'Expense',\r\n 'financeExpenses.successfully_added': 'successfully added.',\r\n 'financeExpenses.error_cannot_add': 'Cannot add expense.',\r\n 'financeExpenses.error_cannot_update': 'Cannot update expense.',\r\n 'financeExpenses.error_cannot_move': 'Cannot move the expense.',\r\n 'financeExpenses.error_cannot_change_status': 'Cannot change status the expense.',\r\n 'financeExpenses.edit_expense': 'Edit Expense',\r\n 'financeExpenses.please_input_the_expense_name': 'Please input the expense name.',\r\n 'financeExpenses.please_input_the_effective_rates': 'Please input the effective rate.',\r\n 'financeExpenses.please_select_a_sell_expense_account': 'Please select a sell expense account.',\r\n 'financeExpenses.please_select_a_buy_expense_account': 'Please select a buy expense account.',\r\n 'financeExpenses.select_buy_expense_account': 'Select buy expense account',\r\n 'financeExpenses.select_sell_expense_account': 'Select sell expense account',\r\n 'financeExpenses.expense_name': 'Name',\r\n 'financeExpenses.effective_rates': 'Effective Rate',\r\n 'financeExpenses.is_withholding': 'With Holding',\r\n 'financeExpenses.buy_expense_account': 'Buy expense account',\r\n 'financeExpenses.sell_expense_account': 'Sell expense account',\r\n 'financeExpenses.max_characters': 'Max {value} characters.',\r\n 'financeExpenses.min_characters': 'Min {value} characters.',\r\n 'financeExpenses.only_alphanumeric_allowed': 'Only alphanumeric allowed.',\r\n 'financeExpenses.only_number_allowed': 'Only number allowed.',\r\n 'financeExpenses.expense_account': 'Expense Account',\r\n 'financeExpenses.select_expense_account': 'Select account',\r\n 'financeExpenses.description': 'Description',\r\n 'financeExpenses.tax': 'Tax',\r\n 'financeExpenses.select_tax': 'Select tax',\r\n 'financeExpenses.amount': 'Amount',\r\n 'financeExpenses.pay_from': 'Pay From',\r\n 'financeExpenses.please_select_a_pay_from': 'Please select a pay from',\r\n 'financeExpenses.select_pay_from': 'Select pay from',\r\n 'financeExpenses.pay_later': 'Pay Later',\r\n 'financeExpenses.benefeciary': 'Benefeciary',\r\n 'financeExpenses.please_select_a_benefeciary': 'Please select a benefeciary',\r\n 'financeExpenses.select_benefeciary': 'Select benefeciary',\r\n 'financeExpenses.add_contact': 'Add contact',\r\n 'financeExpenses.all_contacts': 'All contact',\r\n 'financeExpenses.transaction_date': 'Transaction Date',\r\n 'financeExpenses.please_select_transaction_date': 'Please select transaction date',\r\n 'financeExpenses.due_date': 'Due Date',\r\n 'financeExpenses.please_select_due_date': 'Please select due date',\r\n 'financeExpenses.term': 'Term',\r\n 'financeExpenses.select_term': 'Select term',\r\n 'financeExpenses.add_term': 'Add term',\r\n 'financeExpenses.price_include_tax': 'Price include tax',\r\n 'financeExpenses.add_more': 'Add more',\r\n 'financeExpenses.payment_method': 'Payment Method',\r\n 'financeExpenses.please_select_a_payment_method': 'Please select a payment method',\r\n 'financeExpenses.select_payment_method': 'Select payment method',\r\n 'financeExpenses.number': 'Number',\r\n 'financeExpenses.please_input_the_number': 'Please input the number.',\r\n 'financeExpenses.memo': 'Memo',\r\n 'financeExpenses.date': 'Date',\r\n 'financeExpenses.category': 'Category',\r\n 'financeExpenses.status': 'Status',\r\n 'financeExpenses.balance_due': 'Balance Due',\r\n 'financeExpenses.total': 'Total',\r\n 'financeExpenses.please_select_a_term': 'Please select a term.',\r\n 'financeExpenses.search_by_memo': 'Search',\r\n 'financeExpenses.the_due_date_max_higger_than_transaction_date':\r\n 'The due date must same or after transaction date',\r\n 'financeExpenses.detail_title': '{status} Expense',\r\n 'financeExpenses.pay_bill': 'Pay Bill',\r\n 'financeExpenses.detail_expense': 'Detail Expense',\r\n 'financeExpenses.total_amount_must_greater_than_total_payment':\r\n 'Total amount must greater than or equal to total payment.',\r\n 'financeExpenses.all': 'All',\r\n 'financeExpenses.unpaid': 'Unpaid',\r\n 'financeExpenses.partial': 'Partial',\r\n 'financeExpenses.closed': 'Closed',\r\n 'financeExpenses.follow_these_steps_to_import_your_expenses':\r\n 'Follow these steps to import your expenses',\r\n 'financeExpenses.1_download_your_expenses_template_file':\r\n '1. Download your expenses template file',\r\n 'financeExpenses.start_by_downloading_our_expenses_csv':\r\n 'Start by downloading our expenses Excel template file. This file has the correct column headings Kledo needs to import details of your expenses.',\r\n 'financeExpenses.download_template_file': 'Download Template File',\r\n 'financeExpenses.download_template_data_example_file': 'Download template data example file',\r\n 'financeExpenses.import': 'Import Expenses',\r\n 'financeExpenses.2_copy_your_expenses_into_the_template':\r\n '2. Copy your expenses into the template',\r\n 'financeExpenses.using_excel_or_another_spreadsheet_editor':\r\n 'Using Excel or another spreadsheet editor, fill the Kledo template with the details of your expenses. Make sure the product details match the column headings provided in the template.',\r\n 'financeExpenses.important': 'IMPORTANT',\r\n 'financeExpenses.3_upload_the_updated_template_file_here':\r\n '3. Upload the updated template file here',\r\n 'financeExpenses.upload': 'Upload',\r\n 'financeExpenses.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Save your updated template and you are ready to go',\r\n 'financeExpenses.a_maximum_of_500_expenses_can_be_imported_at_a_time':\r\n 'A maximum of 1.000 expenses can be imported at a time.',\r\n 'financeExpenses.contact_name_that_not_exist_will_be_inserted_as_a_new_contact':\r\n 'Contact name that not exist will be inserted as a new contact.',\r\n 'financeExpenses.import_actions_only_insert_new_expenses_cannot_update_or_delete':\r\n 'Import actions only insert new data, cannot update nor delete.',\r\n 'financeExpenses.dont_change_the_column_heading_in_the_template_file':\r\n 'Do not change the column headings in the template file. These need to be unchanged for the important to work in the next step.',\r\n 'financeExpenses.you_can_only_upload_csv_file': 'You can only upload csv or excel file.',\r\n 'financeExpenses.upload_file': 'Upload File',\r\n 'financeExpenses.check_the_imported_data': 'Check Data',\r\n 'financeExpenses.please_check_the_imported_data': 'Please check the imported data',\r\n 'financeExpenses.import_expenses_done': 'Import Success',\r\n 'financeExpenses.error_upload_file': 'Upload failed.',\r\n 'financeExpenses.file_not_found': 'File not found',\r\n 'financeExpenses.if_you_are_happy_to_continue_with_the_import_please_click_the_import_now_button': `If you are happy to continue with the import please click the \"Import Now\" button.`,\r\n 'financeExpenses.contact_name': 'Contact name',\r\n 'financeExpenses.email': 'Email',\r\n 'financeExpenses.address': 'Address',\r\n 'financeExpenses.phone': 'Phone',\r\n 'financeExpenses.expense_date': 'Expense Date',\r\n 'financeExpenses.expense_number': 'Expense Number',\r\n 'financeExpenses.reference': 'Reference',\r\n 'financeExpenses.account_code': 'Account Code',\r\n 'financeExpenses.tax_inclusive': 'Tax Inclusive',\r\n 'financeExpenses.paid': 'Paid',\r\n 'financeExpenses.paid_account': 'Paid To Account',\r\n 'financeExpenses.row_imported': '{imported} of {total} rows imported',\r\n 'financeExpenses.expenses_successfully_imported': '{rowCount} expense imported successfully.',\r\n 'financeExpenses.view_detail': 'View detail',\r\n 'financeExpenses.import_another_file': 'Import another file',\r\n 'financeExpenses.go_to_expenses_list': 'Go to expense list',\r\n 'financeExpenses.success': 'Success',\r\n 'financeExpenses.failed': 'Failed',\r\n 'financeExpenses.error_cannot_import': 'Import failed',\r\n 'financeExpenses.error': 'Error',\r\n 'financeExpenses.import_expenses_in_progress': 'Import in progress',\r\n 'financeExpenses.import_expenses_is_still_in_progress': 'Import is still in progress',\r\n 'financeExpenses.its_ok_to_close_this_page': `It's OK to close this page or import another file. When import done, you will be notified via email.`,\r\n\r\n 'financePurchaseOrders.message': 'Message',\r\n 'financePurchaseOrders.show_message': 'Show Message',\r\n 'financePurchaseOrders.hide_message': 'Hide Message',\r\n 'financePurchaseOrders.show_attachment': 'Show Attachment',\r\n 'financePurchaseOrders.hide_attachment': 'Hide Attachment',\r\n 'financePurchaseOrders.account': 'Account',\r\n 'financePurchaseOrders.debit': 'Debit',\r\n 'financePurchaseOrders.credit': 'Credit',\r\n 'financePurchaseOrders.journal_report': 'Journal Report',\r\n 'financePurchaseOrders.add_purchaseorder': 'Add Purchase Order',\r\n 'financePurchaseOrders.financePurchaseOrders': 'Purchase Order',\r\n 'financePurchaseOrders.successfully_added': 'successfully added.',\r\n 'financePurchaseOrders.error_cannot_add': 'Cannot add purchase order.',\r\n 'financePurchaseOrders.error_cannot_print_pdf': 'Cannot print pdf purchase order.',\r\n 'financePurchaseOrders.error_cannot_update': 'Cannot update purchase order.',\r\n 'financePurchaseOrders.error_cannot_move': 'Cannot move the purchase order.',\r\n 'financePurchaseOrders.error_cannot_change_status': 'Cannot change status the purchase order.',\r\n 'financePurchaseOrders.edit_purchaseorder': 'Edit Purchase Order',\r\n 'financePurchaseOrders.max_characters': 'Max {value} characters.',\r\n 'financePurchaseOrders.min_characters': 'Min {value} characters.',\r\n 'financePurchaseOrders.only_number_allowed': 'Only number allowed.',\r\n 'financePurchaseOrders.description': 'Description',\r\n 'financePurchaseOrders.tax': 'Tax',\r\n 'financePurchaseOrders.select_tax': 'Select tax',\r\n 'financePurchaseOrders.amount': 'Amount',\r\n 'financePurchaseOrders.please_select_a_contact': 'Please select a contact',\r\n 'financePurchaseOrders.select_contact': 'Select contact',\r\n 'financePurchaseOrders.add_contact': 'Add contact',\r\n 'financePurchaseOrders.all_contacts': 'All contact',\r\n 'financePurchaseOrders.transaction_date': 'Transaction Date',\r\n 'financePurchaseOrders.please_select_transaction_date': 'Please select transaction date',\r\n 'financePurchaseOrders.due_date': 'Due Date',\r\n 'financePurchaseOrders.please_select_due_date': 'Please select due date',\r\n 'financePurchaseOrders.term': 'Term',\r\n 'financePurchaseOrders.select_term': 'Select term',\r\n 'financePurchaseOrders.add_term': 'Add term',\r\n 'financePurchaseOrders.price_include_tax': 'Price include tax',\r\n 'financePurchaseOrders.add_more': 'Add more',\r\n 'financePurchaseOrders.number': 'Number',\r\n 'financePurchaseOrders.please_input_the_number': 'Please input the number.',\r\n 'financePurchaseOrders.memo': 'Memo',\r\n 'financePurchaseOrders.date': 'Date',\r\n 'financePurchaseOrders.status': 'Status',\r\n 'financePurchaseOrders.balance_due': 'Balance Due',\r\n 'financePurchaseOrders.please_select_a_term': 'Please select a term.',\r\n 'financePurchaseOrders.search_by_memo': 'Search',\r\n 'financePurchaseOrders.the_due_date_max_higger_than_transaction_date':\r\n 'The due date must same or after transaction date',\r\n 'financePurchaseOrders.detail_title': 'Purchase Order {number}',\r\n 'financePurchaseOrders.vendor': 'Vendor',\r\n 'financePurchaseOrders.reference': 'Reference',\r\n 'financePurchaseOrders.product': 'Product',\r\n 'financePurchaseOrders.qty': 'Qty',\r\n 'financePurchaseOrders.unit': 'Unit',\r\n 'financePurchaseOrders.price': 'Price',\r\n 'financePurchaseOrders.add_product': 'Add Product',\r\n 'financePurchaseOrders.select_product': 'Select product',\r\n 'financePurchaseOrders.attachments': 'Attachments',\r\n 'financePurchaseOrders.save_&_approve': 'Save & approve',\r\n 'financePurchaseOrders.save_&_approve_add_new': 'Save & approve & Add New',\r\n 'financePurchaseOrders.save_as_draft': 'Save as draft',\r\n 'financePurchaseOrders.save_as_draft_add_new': 'Save as draft & Add New',\r\n 'financePurchaseOrders.save_&_submit_for_approval': 'Save & submit for approval',\r\n 'financePurchaseOrders.save_&_submit_for_approval_add_new':\r\n 'Save & submit for approval & Add New',\r\n 'financePurchaseOrders.please_select_a_product': 'Please select a product.',\r\n 'financePurchaseOrders.please_input_the_qty': 'Please input the qty.',\r\n 'financePurchaseOrders.please_input_the_price': 'Please input the price.',\r\n 'financePurchaseOrders.please_input_the_amount': 'Please input the amount.',\r\n 'financePurchaseOrders.approve': 'Approve',\r\n 'financePurchaseOrders.are_you_sure_to_approve': 'Are you sure to approve ?',\r\n 'financePurchaseOrders.submit_for_approval': 'Submit for approval',\r\n 'financePurchaseOrders.are_you_sure_to_submit_for_approval':\r\n 'Are you sure to submit for approval ?',\r\n 'financePurchaseOrders.create_invoice': 'Create Invoice',\r\n 'financePurchaseOrders.must_greater_than_0': 'Must greater than 0.',\r\n 'financePurchaseOrders.must_be_smaller_than_bill': 'Must be smaller than bill.',\r\n\r\n 'financePurchaseOrders.follow_these_steps_to_import_your_purchase_orders':\r\n 'Follow these steps to import your purchase orders',\r\n 'financePurchaseOrders.1_download_your_purchase_orders_template_file':\r\n '1. Download your purchase orders template file',\r\n 'financePurchaseOrders.start_by_downloading_our_purchase_orders_csv':\r\n 'Start by downloading our purchase orders Excel template file. This file has the correct column headings Kledo needs to import details of your orders.',\r\n 'financePurchaseOrders.download_template_file': 'Download Template File',\r\n 'financePurchaseOrders.download_template_data_example_file':\r\n 'Download template data example file',\r\n 'financePurchaseOrders.import': 'Import Purchase Orders',\r\n 'financePurchaseOrders.2_copy_your_purchase_orders_into_the_template':\r\n '2. Copy your purchase orders into the template',\r\n 'financePurchaseOrders.using_excel_or_another_spreadsheet_editor':\r\n 'Using Excel or another spreadsheet editor, fill the Kledo template with the details of your purchase orders. Make sure the product details match the column headings provided in the template.',\r\n 'financePurchaseOrders.important': 'IMPORTANT',\r\n 'financePurchaseOrders.3_upload_the_updated_template_file_here':\r\n '3. Upload the updated template file here',\r\n 'financePurchaseOrders.upload': 'Upload',\r\n 'financePurchaseOrders.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Save your updated template and you are ready to go',\r\n 'financePurchaseOrders.a_maximum_of_500_purchase_orders_can_be_imported_at_a_time':\r\n 'A maximum of 1.000 purchase orders can be imported at a time.',\r\n 'financePurchaseOrders.contact_name_that_not_exist_will_be_inserted_as_a_new_contact':\r\n 'Contact name that not exist will be inserted as a new contact.',\r\n 'financePurchaseOrders.import_actions_only_insert_new_purchase_orders_cannot_update_or_delete':\r\n 'Import actions only insert new purchase orders, cannot update nor delete.',\r\n 'financePurchaseOrders.dont_change_the_column_heading_in_the_template_file':\r\n 'Do not change the column headings in the template file. These need to be unchanged for the important to work in the next step.',\r\n 'financePurchaseOrders.you_can_only_upload_csv_file': 'You can only upload csv or excel file.',\r\n 'financePurchaseOrders.upload_file': 'Upload File',\r\n 'financePurchaseOrders.check_the_imported_data': 'Check Data',\r\n 'financePurchaseOrders.please_check_the_imported_data': 'Please check the imported data',\r\n 'financePurchaseOrders.import_purchase_orders_done': 'Import Success',\r\n 'financePurchaseOrders.error_upload_file': 'Upload failed.',\r\n 'financePurchaseOrders.file_not_found': 'File not found',\r\n 'financePurchaseOrders.if_you_are_happy_to_continue_with_the_import_please_click_the_import_now_button': `If you are happy to continue with the import please click the \"Import Now\" button.`,\r\n 'financePurchaseOrders.valid': 'Valid',\r\n 'financePurchaseOrders.invalid': 'Invalid',\r\n 'financePurchaseOrders.total': 'Total',\r\n 'financePurchaseOrders.import_now': 'Import Now',\r\n 'financePurchaseOrders.contact_name': 'Contact name',\r\n 'financePurchaseOrders.email': 'Email',\r\n 'financePurchaseOrders.address': 'Address',\r\n 'financePurchaseOrders.phone': 'Phone',\r\n 'financePurchaseOrders.purchase_order_date': 'Purchase Order Date',\r\n 'financePurchaseOrders.purchase_order_number': 'Purchase Order Number',\r\n 'financePurchaseOrders.product_name': 'Product name',\r\n 'financePurchaseOrders.code_sku': 'Kode/SKU',\r\n 'financePurchaseOrders.tax_inclusive': 'Tax Inclusive',\r\n\r\n 'financePurchaseOrders.inventory_account': 'Inventory Account',\r\n 'financePurchaseOrders.purchase_orders_successfully_imported':\r\n '{rowCount} pesanan pembelian imported successfully.',\r\n 'financePurchaseOrders.view_detail': 'View detail',\r\n 'financePurchaseOrders.import_another_file': 'Import another file',\r\n 'financePurchaseOrders.go_to_purchase_order_list': 'Go to purchase order list',\r\n 'financePurchaseOrders.success': 'Success',\r\n 'financePurchaseOrders.failed': 'Failed',\r\n 'financePurchaseOrders.error_cannot_import': 'Import failed',\r\n 'financePurchaseOrders.error': 'Error',\r\n 'financePurchaseOrders.tax_manual': 'Manual Tax',\r\n 'financePurchaseOrders.tax_manual_must_less_than_amount': 'Manual tax must less than amount.',\r\n 'financePurchaseOrders.discount': 'Discount',\r\n 'financePurchaseOrders.additional_discount': 'Additional Discount',\r\n 'financePurchaseOrders.discount_per_item': 'Discount per item',\r\n 'financePurchaseOrders.total_discount': 'Total Discount',\r\n 'financePurchaseOrders.total_cannot_be_negative': 'Due cannot be negative.',\r\n 'financePurchaseOrders.product_not_found': 'Product not found',\r\n 'financePurchaseOrders.product_has_been_added': 'Product has been added',\r\n 'financePurchaseOrders.discount_per_quantity': 'Discount per quantity',\r\n\r\n 'salesCommission.sales_commission': 'Sales Commission',\r\n 'salesCommission.commission': 'Commission',\r\n 'salesCommission.commission_required': 'Commission is required',\r\n 'salesCommission.commission_name': 'Commission Name',\r\n 'salesCommission.commission_name_required': 'Commission Name is required',\r\n 'salesCommission.commission_amount_by': 'Commission Amount By',\r\n 'salesCommission.commission_amount': 'Commission Amount',\r\n 'salesCommission.min_transaction_per_month': 'Minimum transaction per month',\r\n 'salesCommission.min_transaction_per_month_required': 'Minimum transaction is required',\r\n 'salesCommission.cannot_get_commission_type': 'Cannot get commission type',\r\n 'salesCommission.cannot_get_commission': 'Cannot get commission',\r\n 'salesCommission.sales_person_required': 'Sales person is required',\r\n 'salesCommission.all_sales': 'All Sales',\r\n 'salesCommission.not_due_only':\r\n 'Commission is only for transactions whose payment is not past due',\r\n 'salesCommission.not_due_only_desc':\r\n 'Sales transactions that are due will not be calculated as a commission',\r\n 'salesCommission.invalid_format_commission_amount': 'Invalid format commission amount.',\r\n 'salesCommission.commission_is_only_for_transactions_that_have_been_paid':\r\n 'Commission is only for transactions that have been paid',\r\n 'salesCommission.commission_is_only_for_transactions_that_have_been_paid_desc':\r\n 'Unpaid bills are not counted as commissions.',\r\n 'salesCommission.commission_type_id_help_text': `\r\n If based on \"{transactionsPerMonth}\", then the commission is calculated based on the number of sales transactions each month. For example, one sales person makes 5 invoices. Then the sales are counted as having made 5 transactions.\r\n
\r\n
\r\n If based on \"{salesAmountPerMonth}\", then the commission is calculated based on the nominal sales money in rupiah. For example, a salesperson makes 5 invoices, with a total bill of Rp. 5 million. Then the sales are calculated to have made a nominal sales of IDR 5 million.\r\n
\r\n
\r\n If based on \"{numberOfProductsSoldPerMonth}\", then the commission is calculated based on the total quantity of products sold. For example, a sales person makes 5 invoices, where each invoice sells 100 products. Then the sales are calculated to have sold 500 pcs of products.\r\n `,\r\n\r\n 'priceRule.price_rule': 'Price Rule',\r\n 'priceRule.rule_name': 'Rule Name',\r\n 'priceRule.rule_name_required': 'Rule name is required',\r\n 'priceRule.dicsount': 'Discount',\r\n 'priceRule.discount_required': 'Discount is required',\r\n 'priceRule.min_buy': 'Applies if the customer purchases with:',\r\n 'priceRule.min_qty': 'Minimal Quantity',\r\n 'priceRule.min_qty_required': 'Minimal buy is required',\r\n 'priceRule.min_qty_tooltip':\r\n 'What is the minimum quantity of products a customer must purchase for the discount to apply?',\r\n 'priceRule.min_amount': 'Minimal Buy',\r\n 'priceRule.min_amount_tooltip':\r\n 'What is the minimum purchase amount for the discount to apply to customers? ' +\r\n 'Calculated from the total purchase of all products in one invoice.',\r\n 'priceRule.effective_date': 'Effective Date',\r\n 'priceRule.forever': 'Forever',\r\n 'priceRule.date': 'Date',\r\n 'priceRule.date_start': 'Start Date',\r\n 'priceRule.date_end': 'End Date',\r\n 'priceRule.date_is_required': 'Date is required',\r\n 'priceRule.until': 'until',\r\n 'priceRule.applies_to_the_following_customers': 'Applies to the Following Customers',\r\n 'priceRule.customer': 'Customer',\r\n 'priceRule.all_customer': 'All Customer',\r\n 'priceRule.customer_group': 'Customer Group',\r\n 'priceRule.customer_groups_that_will_get_discount': 'Customer groups that will get discount',\r\n 'priceRule.add_group': 'Add group',\r\n 'priceRule.select_group': 'Select group',\r\n 'priceRule.per_customer': 'Per Customer',\r\n 'priceRule.customers_that_will_get_discount': 'Customers that will get discount',\r\n 'priceRule.add_customer': 'Add customer',\r\n 'priceRule.name': 'Name',\r\n 'priceRule.company': 'Company',\r\n 'priceRule.applies_to_the_following_products': 'Applies to the Following Products',\r\n 'priceRule.product': 'Product',\r\n 'priceRule.all_product': 'All Product',\r\n 'priceRule.product_category': 'Product Category',\r\n 'priceRule.discounted_product_category': 'Discounted product category',\r\n 'priceRule.add_category': 'Add category',\r\n 'priceRule.per_product': 'Per Product',\r\n 'priceRule.discounted_product': 'Discounted Product',\r\n 'priceRule.add_product': 'Add product',\r\n 'priceRule.status': 'Status',\r\n 'priceRule.active': 'Active',\r\n 'priceRule.inactive': 'Inactive',\r\n 'priceRule.select_price_rule': 'Select price rule',\r\n 'priceRule.to_use_the_pricing_rules_please_first_activate_the_sales_discount_option':\r\n 'To use the pricing rules, please first activate the Sales Discount option from the Settings Business Flow menu.',\r\n\r\n 'financeProduct.cannot_delete_current_photo': 'Tidak bisa menghapus foto ini.',\r\n 'financeProduct.search_in': 'Search in',\r\n 'financeProduct.available': 'Available',\r\n 'financeProduct.almost_empty': 'Almost Empty',\r\n 'financeProduct.empty': 'Empty',\r\n 'financeProduct.stock_per_category': 'Stock per Category',\r\n 'financeProduct.warehouse_location': 'Warehouse Location',\r\n 'financeProduct.total_stock': 'Stock Total',\r\n 'financeProduct.total_avg_base_price': 'COGS Total',\r\n 'financeProduct.total_sales': 'Sales Total',\r\n 'financeProduct.total_purchase': 'Purchases Total',\r\n 'financeProduct.product': 'Product',\r\n 'financeProduct.sell_or_purchase': 'Sell or Purchase',\r\n 'financeProduct.for_sale': 'For sale',\r\n 'financeProduct.bought': 'Bought',\r\n 'financeProduct.track_stock': 'Track Stock',\r\n 'financeProduct.not_track_stock': 'Not Track Stock',\r\n 'financeProduct.code_sku_tooltip':\r\n 'SKU (Stock Keeping Unit) code is a unique code for each product. The code will be generated automatically, or you can change it.',\r\n 'financeProduct.conversion_detail_title': 'Product Conversion {number}',\r\n 'financeProduct.row': 'Row',\r\n 'financeProduct.avg_base_price': 'COGs',\r\n 'financeProduct.all_stock': 'All stock',\r\n 'financeProduct.all_products': 'All products',\r\n 'financeProduct.detail_product': 'Detail Product',\r\n 'financeProduct.category': 'Category',\r\n 'financeProduct.product_name': 'Product Name',\r\n 'financeProduct.code_sku': 'Code/SKU',\r\n 'financeProduct.cost_price': 'Cost Price',\r\n 'financeProduct.sale_price': 'Sale Price',\r\n 'financeProduct.quantity': 'Quantity',\r\n 'financeProduct.products_and_services': 'Products & Services',\r\n 'financeProduct.add_category': 'Add Category',\r\n 'financeProduct.name_category_required': 'Name category required',\r\n 'financeProduct.name_category_must_be_at_least_2_characters':\r\n 'name category must be at least 2 characters',\r\n 'financeProduct.edit_category': 'Edit Category',\r\n 'financeProduct.edit_product': 'Edit Product',\r\n 'financeProduct.image': 'Image',\r\n 'financeProduct.choose_category': 'Choose Category',\r\n 'financeProduct.choose_category_required': 'choose category required',\r\n 'financeProduct.product_name_required': 'product name required',\r\n 'financeProduct.product_name_must_be_at_least_2_characters':\r\n 'product name must be at least 2 characters',\r\n 'financeProduct.product_name_max_150_characters': 'product name maximal 150 characters',\r\n 'financeProduct.code_sku_must_be_at_least_2_characters': 'Code/SKU must be at least 2 characters',\r\n 'financeProduct.i_purchase_this_item': 'I purchase this item',\r\n 'financeProduct.price': 'Price',\r\n 'financeProduct.price_required': 'Price required',\r\n 'financeProduct.extra_price_must_greather_than_ziro': 'Extra price must greather than 0.',\r\n 'financeProduct.tax': 'Tax',\r\n 'financeProduct.choose_tax_required': 'choose tax required',\r\n 'financeProduct.select_tax_rate': 'Select Tax Rate',\r\n 'financeProduct.i_sell_this_item': 'I sell this item',\r\n 'financeProduct.i_track_this_item': 'I track this item',\r\n 'financeProduct.this_treats_your_item_as_a_tracked_inventory':\r\n 'This treats your item as a tracked inventory asset.',\r\n 'financeProduct.date': 'Date',\r\n 'financeProduct.add_adjustment': 'Add Adjustment',\r\n 'financeProduct.quantity_on_hand': 'Quantity On Hand',\r\n 'financeProduct.total_value': 'Total Value',\r\n 'financeProduct.purchase': 'Purchase',\r\n 'financeProduct.tax_rate': 'Tax Rate',\r\n 'financeProduct.sales': 'Sales',\r\n 'financeProduct.inventory': 'Inventory',\r\n 'financeProduct.inventory_asset_account': 'Inventory Asset Account',\r\n 'financeProduct.decrease_quantity': 'Decrease quantity',\r\n 'financeProduct.revolution': 'Revolution',\r\n 'financeProduct.new_adjustment': 'New Adjustment',\r\n 'financeProduct.adjustment_type': 'Adjustment Type',\r\n 'financeProduct.adjustment_type_required': 'adjustment type required',\r\n 'financeProduct.select_adjustment_type': 'Select Adjustment Type',\r\n 'financeProduct.date_required': 'date required',\r\n 'financeProduct.current_qty': 'Current qty',\r\n 'financeProduct.qty_required': 'qty required',\r\n 'financeProduct.avg_cost': 'Avg cost',\r\n 'financeProduct.avg_cost_required': 'avg cost required',\r\n 'financeProduct.total_value_required': 'total value required',\r\n 'financeProduct.adjustment': 'Adjustment',\r\n 'financeProduct.adjustment_required': 'adjustment required',\r\n 'financeProduct.cost_price_required': 'cost price required',\r\n 'financeProduct.new_qty_on_hand': 'New qty on hand',\r\n 'financeProduct.new_qty_on_hand_required': 'new qty on hand required',\r\n 'financeProduct.account': 'Account',\r\n 'financeProduct.choose_account_required': 'choose account required',\r\n 'financeProduct.select_account': 'Select Account',\r\n 'financeProduct.note': 'Note',\r\n 'financeProduct.note_required': 'note required',\r\n 'financePurchaseOrders.detail_purchaseorder': 'Detail Purchase Order',\r\n 'financeProduct.error_cannot_add': 'Cannot add product',\r\n 'financeProduct.error_cannot_add_categorie': 'Cannot add product categorie',\r\n 'financeProduct.recent_transactions': 'Recent Transactions',\r\n 'financeProduct.manufacture': 'Manufacture',\r\n 'financeProduct.package': 'Package',\r\n 'financeProduct.conversion': 'Conversion',\r\n 'financeProduct.conversion_description': 'Description',\r\n 'financeProduct.follow_these_steps_to_import_your_products':\r\n 'Follow these steps to import your products',\r\n 'financeProduct.1_download_your_products_template_file':\r\n '1. Download your products template file',\r\n 'financeProduct.start_by_downloading_our_products_csv':\r\n 'Start by downloading our products Excel template file. This file has the correct column headings Kledo needs to import details of your products.',\r\n 'financeProduct.download_template_file': 'Download Template File',\r\n 'financeProduct.download_template_data_example_file': 'Download template data example file',\r\n 'financeProduct.import': 'Import Products',\r\n 'financeProduct.2_copy_your_products_into_the_template':\r\n '2. Copy your products into the template',\r\n 'financeProduct.using_excel_or_another_spreadsheet_editor':\r\n 'Using Excel or another spreadsheet editor, fill the Kledo template with the details of your products. Make sure the product details match the column headings provided in the template.',\r\n 'financeProduct.important': 'IMPORTANT',\r\n 'financeProduct.3_upload_the_updated_template_file_here':\r\n '3. Upload the updated template file here',\r\n 'financeProduct.upload': 'Upload',\r\n 'financeProduct.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Save your updated template and you are ready to go',\r\n 'financeProduct.a_maximum_of_1000_products_can_be_imported_at_a_time':\r\n 'A maximum of 1.000 products can be imported at a time.',\r\n 'financeProduct.dont_change_the_column_heading_in_the_template_file':\r\n 'Do not change the column headings in the template file. These need to be unchanged for the important to work in the next step. You can also use a previously exported CSV of your products to update all your products in one go, saving you the effort of having to individually update all your products through the browser. The import will use the item code to determine whether a product exist and should be updated, or does not exist and should be created. Products cannot and will not be deleted using this import so you can safely update a subset of your products without fear of losing the others.',\r\n 'financeProduct.you_can_only_upload_csv_file': 'You can only upload csv or excel file.',\r\n 'financeProduct.upload_file': 'Upload File',\r\n 'financeProduct.check_the_imported_data': 'Check Data',\r\n 'financeProduct.please_check_the_imported_data': 'Please check the imported data',\r\n 'financeProduct.import_product_done': 'Import Success',\r\n 'financeProduct.error_upload_file': 'Upload failed.',\r\n 'financeProduct.file_not_found': 'File not found',\r\n 'financeProduct.if_you_are_happy_to_continue_with_the_import_please_click_the_import_now_button': `If you are happy to continue with the import please click the \"Import Now\" button.`,\r\n 'financeProduct.valid': 'Valid',\r\n 'financeProduct.invalid': 'Invalid',\r\n 'financeProduct.total': 'Total',\r\n 'financeProduct.import_now': 'Import Now',\r\n 'financeProduct.status': 'Status',\r\n 'financeProduct.name': 'Name',\r\n 'financeProduct.purchase_price': 'Purchase Price',\r\n 'financeProduct.purchase_account': 'Purchase Account',\r\n 'financeProduct.purchase_tax': 'Purchase Tax',\r\n 'financeProduct.sell_price': 'Sell Price',\r\n 'financeProduct.sell_account': 'Sell Account',\r\n 'financeProduct.sell_tax': 'Sell Tax',\r\n 'financeProduct.track_account': 'Tracking Account',\r\n 'financeProduct.product_bundle': 'Product Bundle',\r\n 'financeProduct.product_bundle_qty': 'Product Bundle Qty',\r\n 'financeProduct.product_bundle_account': 'Product Bundle Account',\r\n 'financeProduct.product_bundle_account_cost': 'Product Bundle Account Cost',\r\n 'financeProduct.account_cost': 'Account Cost',\r\n 'financeProduct.inventory_account': 'Inventory Account',\r\n 'financeProduct.products_successfully_imported': '{rowCount} products imported successfully.',\r\n 'financeProduct.view_detail': 'View detail',\r\n 'financeProduct.import_another_file': 'Import another file',\r\n 'financeProduct.go_to_product_list': 'Go to product list',\r\n 'financeProduct.success': 'Success',\r\n 'financeProduct.failed': 'Failed',\r\n 'financeProduct.error_cannot_import': 'Import failed',\r\n 'financeProduct.error_cannot_export': 'Export failed',\r\n 'financeProduct.error': 'Error',\r\n 'financeProduct.please_input_the_code_sku': 'Please input the code/SKU.',\r\n 'financeProduct.code_sku_maximal_150_characters': 'Code/SKU maximal 150 characters.',\r\n 'financeProduct.please_choose_at_least_a_product_action':\r\n 'Please choose at least a product action (Sell/Purchase/Inventory).',\r\n 'financeProduct.name_category_already_exist':\r\n 'Nama kategori sudah digunakan, silakan pilih yang lain',\r\n 'financeProduct.please_choose_this_action':\r\n 'You must activate purchase while you track the product inventory!',\r\n 'financeProduct.please_choose_the_unit': 'Please choose the unit.',\r\n 'financeProduct.show_qty_per_warehouse': 'Show qty per warehouse',\r\n 'financeProduct.select_category': 'Select category',\r\n 'financeProduct.qty': 'Qty',\r\n 'financeProduct.min_qty': 'Minimum Qty',\r\n 'financeProduct.min_qty_must_less': 'Qty must less than next qty',\r\n 'financeProduct.min_qty_must_greater': 'Qty must greater than previous qty',\r\n 'financeProduct.wholesale_price': 'Wholesale Price',\r\n 'financeProduct.wholesale_qty': 'Wholesale Qty',\r\n 'financeProduct.show_wholesale_price': 'Show Wholesale Price',\r\n 'financeProduct.hide_wholesale_price': 'Hide Wholesale Price',\r\n 'financeProduct.warehouses': 'Warehouses',\r\n 'financeProduct.warehouse': 'Warehouse',\r\n 'financeProduct.transaction': 'Transaction',\r\n 'financeProduct.description': 'Description',\r\n 'financeProduct.type': 'Type',\r\n 'financeProduct.stock_movement': 'Stock Movement',\r\n 'financeProduct.warehouse_movement': 'Warehouse Movement',\r\n 'financeProduct.stock': 'Stock',\r\n 'financeProduct.select_stock': 'Select Stock',\r\n 'financeProduct.error_load_stock': 'Error cannot load stock',\r\n 'financeProduct.show_accounts_and_taxes_setting': 'Show account and taxes setting',\r\n 'financeProduct.hide_accounts_and_taxes_setting': 'Hide account and taxes setting',\r\n 'financeProduct.categories': 'Manage Categories',\r\n 'financeProduct.error_cannot_move': 'Cannot move the category.',\r\n 'financeProduct.please_select_a_category_to_delete': 'Please select a category to delete.',\r\n 'financeProduct.delete_a_product_category': 'Delete A Product Category',\r\n 'financeProduct.error_cannot_delete_category': 'Cannot delete product category.',\r\n 'financeProduct.error_cannot_update_category': 'Cannot update product category.',\r\n 'financeProduct.error_cannot_update': 'Cannot update product.',\r\n 'financeProduct.error_cannot_load_can_be_deleted_category': 'Cannot load product category.',\r\n 'financeProduct.only_category_that_not_assigned_in_product_could_be_deleted':\r\n 'Note: Only category that not assigned in product could be deleted.',\r\n 'financeProduct.reference': 'Reference',\r\n 'financeProduct.error_load_product': 'Error cannot load product.',\r\n 'financeProduct.add_product': 'Add {title}',\r\n 'financeProduct.add_product_package': 'Add {title} Package',\r\n 'financeProduct.duplicate_product_package': 'Duplicate {title} Package',\r\n 'financeProduct.duplicate_product_manufacture': 'Duplicate {title} Manufacture',\r\n 'financeProduct.add_product_manufacture': 'Add {title} Manufacture',\r\n 'financeProduct.edit_product_package': 'Edit {title} Package',\r\n 'financeProduct.edit_product_manufacture': 'Edit {title} Manufacture',\r\n 'financeProduct.package_product_items': 'The product package consists of',\r\n 'financeProduct.manufacture_product_items': 'The product manufacture consists of',\r\n 'financeProduct.error_load_product_detail': 'Error load product detail.',\r\n 'financeProduct.cost_of_production': 'The production costs consist of',\r\n 'financeProduct.product_conversion': 'Product Conversion',\r\n 'financeProduct.total_cost': 'Total cost',\r\n 'financeProduct.total_cost_conversion': 'Total cost of conversion',\r\n 'financeProduct.cost_per_unit': 'Cost per unit',\r\n 'financeProduct.error_cannot_conversion_product': 'Error cannot conversion product',\r\n 'financeProduct.conversion_title': '{title} Conversion {name}',\r\n 'financeProduct.amount': 'Amount',\r\n 'financeProduct.conversion_date': 'Conversion Date',\r\n 'financeProduct.error_load_conversion_product_detail': 'Error load conversion product detail',\r\n 'financeProduct.error_cannot_delete_conversion_product': 'Error cannot delete conversion product',\r\n 'financeProduct.multiplier': 'Multiplier',\r\n 'financeProduct.please_input_the_multiplier': 'Please input the multiplier',\r\n 'financeProduct.per_pcs': 'Per Pcs',\r\n 'financeProduct.unit_conversion': 'Unit Conversion',\r\n 'financeProduct.unit': 'Unit',\r\n 'financeProduct.base_unit': 'Base Unit',\r\n 'financeProduct.add_unit_conversion': 'Add unit conversion',\r\n 'financeProduct.edit_unit_conversion': 'Edit unit conversion',\r\n 'financeProduct.please_input_unit': 'Please input unit',\r\n 'financeProduct.please_input_unit_conv': 'Please input unit conversion',\r\n 'financeProduct.unit_cannot_same': 'Unit cannot be the same',\r\n 'financeProduct.unit_cannot_same_as_conversion': 'Unit cannot be the same as unit conversion',\r\n 'financeProduct.cannot_edit_unit_conversion': 'Cannot edit unit conversion',\r\n 'financeProduct.mass_delete_info':\r\n '**Product that have a transaction cannot be deleted, can only be archived',\r\n 'financeProduct.archive': 'Archive',\r\n 'financeProduct.show_archive': 'Show Archive',\r\n 'financeProduct.unarchive': 'Unarchive',\r\n 'financeProduct.archived': 'Archived',\r\n 'financeProduct.without_archive': 'Without archive',\r\n 'financeProduct.with_archive': 'with archive',\r\n 'financeProduct.archive_only': 'Archive only',\r\n 'financeProduct.are_you_sure_to_archive': 'Are you sure to archive this product?',\r\n 'financeProduct.are_you_sure_to_unarchive': 'Are you sure to unarchive this product?',\r\n 'financeProduct.future_transactions': 'Future transactions',\r\n 'financeProduct.all_transactions': 'All transactions',\r\n 'financeProduct.current_transaction_will_not_be_modified':\r\n 'Current transactions will not be modified, Only affect future transactions.',\r\n 'financeProduct.current_transaction_and_future_will_be_modified':\r\n 'Current transactions and future transactions will be modified.',\r\n 'financeProduct.purchase_account_cannot_be_modified_for_future_transactions':\r\n 'Purchase account cannot be modified for future transactions, because this product already has transactions.',\r\n 'financeProduct.purchase_account_cannot_be_modified_for_all_transactions':\r\n 'Purchase account cannot be modified for all transactions, because this product already has transactions before lock date or before book closing.',\r\n 'financeProduct.sell_account_cannot_be_modified': 'Sell account cannot be modified.',\r\n 'financeProduct.sell_account_cannot_be_modified_for_all_transactions':\r\n 'Sell account cannot be modified for all transactions, because this product already has transactions before lock date or before book closing.',\r\n 'financeProduct.track_account_cannot_be_modified':\r\n 'Track account cannot be modified because this product already has transactions before lock date or before book closing.',\r\n 'financeProduct.please_choose_account_update_past': 'Please choose account update past setting!',\r\n 'financeProduct.same_as_business_flow': 'Same as business flow setting',\r\n 'financeProduct.please_input_buffer_qty': 'Please input minimum stock',\r\n 'financeProduct.data_is_being_processed': 'Data is being processed',\r\n\r\n 'financePurchaseInvoices.import_purchase_invoice_status': 'Import Purchase Invoice Status',\r\n 'financePurchaseInvoices.message': 'Message',\r\n 'financePurchaseInvoices.add_purchaseInvoice': 'Add Purchase Invoice',\r\n 'financePurchaseInvoices.financePurchaseInvoices': 'Purchase Invoice',\r\n 'financePurchaseInvoices.successfully_added': 'successfully added.',\r\n 'financePurchaseInvoices.error_cannot_add': 'Cannot add purchase invoice.',\r\n 'financePurchaseInvoices.error_cannot_print_pdf': 'Cannot print pdf purchase invoice.',\r\n 'financePurchaseInvoices.error_cannot_update': 'Cannot update purchase invoice.',\r\n 'financePurchaseInvoices.error_cannot_move': 'Cannot move the purchase invoice.',\r\n 'financePurchaseInvoices.error_cannot_change_status':\r\n 'Cannot change status the purchase invoice.',\r\n 'financePurchaseInvoices.edit_purchaseInvoice': 'Edit Purchase invoice',\r\n 'financePurchaseInvoices.max_characters': 'Max {value} characters.',\r\n 'financePurchaseInvoices.min_characters': 'Min {value} characters.',\r\n 'financePurchaseInvoices.only_number_allowed': 'Only number allowed.',\r\n 'financePurchaseInvoices.description': 'Description',\r\n 'financePurchaseInvoices.tax': 'Tax',\r\n 'financePurchaseInvoices.select_tax': 'Select tax',\r\n 'financePurchaseInvoices.amount': 'Amount',\r\n 'financePurchaseInvoices.please_select_a_contact': 'Please select a contact',\r\n 'financePurchaseInvoices.select_contact': 'Select contact',\r\n 'financePurchaseInvoices.add_contact': 'Add contact',\r\n 'financePurchaseInvoices.all_contacts': 'All contact',\r\n 'financePurchaseInvoices.transaction_date': 'Transaction Date',\r\n 'financePurchaseInvoices.please_select_transaction_date': 'Please select transaction date',\r\n 'financePurchaseInvoices.due_date': 'Due Date',\r\n 'financePurchaseInvoices.please_select_due_date': 'Please select due date',\r\n 'financePurchaseInvoices.term': 'Term',\r\n 'financePurchaseInvoices.select_term': 'Select term',\r\n 'financePurchaseInvoices.add_term': 'Add term',\r\n 'financePurchaseInvoices.price_include_tax': 'Price include tax',\r\n 'financePurchaseInvoices.add_more': 'Add more',\r\n 'financePurchaseInvoices.number': 'Number',\r\n 'financePurchaseInvoices.please_input_the_number': 'Please input the number.',\r\n 'financePurchaseInvoices.memo': 'Memo',\r\n 'financePurchaseInvoices.date': 'Date',\r\n 'financePurchaseInvoices.status': 'Status',\r\n 'financePurchaseInvoices.balance_due': 'Balance Due',\r\n 'financePurchaseInvoices.please_select_a_term': 'Please select a term.',\r\n 'financePurchaseInvoices.search_by_memo': 'Search',\r\n 'financePurchaseInvoices.the_due_date_max_higger_than_transaction_date':\r\n 'The due date must same or after transaction date',\r\n 'financePurchaseInvoices.the_payment_date_max_higger_than_transaction_date':\r\n 'The payment date must same or after transaction date',\r\n 'financePurchaseInvoices.detail_title': 'Purchase Invoice {number}',\r\n 'financePurchaseInvoices.vendor': 'Vendor',\r\n 'financePurchaseInvoices.reference': 'Reference',\r\n 'financePurchaseInvoices.product': 'Product',\r\n 'financePurchaseInvoices.qty': 'Qty',\r\n 'financePurchaseInvoices.price': 'Price',\r\n 'financePurchaseInvoices.add_product': 'Add Product',\r\n 'financePurchaseInvoices.select_product': 'Select product',\r\n 'financePurchaseInvoices.attachments': 'Attachments',\r\n 'financePurchaseInvoices.save_&_approve': 'Save & approve',\r\n 'financePurchaseInvoices.save_as_draft': 'Save as draft',\r\n 'financePurchaseInvoices.save_&_submit_for_approval': 'Save & submit for approval',\r\n 'financePurchaseInvoices.please_select_a_product': 'Please select a product.',\r\n 'financePurchaseInvoices.please_input_the_qty': 'Please input the qty.',\r\n 'financePurchaseInvoices.please_input_the_price': 'Please input the price.',\r\n 'financePurchaseInvoices.please_input_the_amount': 'Please input the amount.',\r\n 'financePurchaseInvoices.approve': 'Approve',\r\n 'financePurchaseInvoices.are_you_sure_to_approve': 'Are you sure to approve ?',\r\n 'financePurchaseInvoices.submit_for_approval': 'Submit for approval',\r\n 'financePurchaseInvoices.are_you_sure_to_submit_for_approval':\r\n 'Are you sure to submit for approval ?',\r\n 'financePurchaseInvoices.create_invoice': 'Create Invoice',\r\n 'financePurchaseInvoices.amount_paid': 'Amount Paid',\r\n 'financePurchaseInvoices.paid_from': 'Paid From',\r\n 'financePurchaseInvoices.add_payment': 'Add Payment',\r\n 'financePurchaseInvoices.select_paid_from': 'Select paid from',\r\n 'financePurchaseInvoices.please_select_a_paid_from': 'Please select a paid from.',\r\n 'financePurchaseInvoices.paid_to': 'Paid To',\r\n 'financePurchaseInvoices.select_paid_to': 'Select paid to',\r\n 'financePurchaseInvoices.please_select_a_paid_to': 'Please select a paid to.',\r\n 'financePurchaseInvoices.error_cannot_add_payment': 'Cannot add payment.',\r\n 'financePurchaseInvoices.payment': 'Payment',\r\n 'financePurchaseInvoices.detail_purchaseInvoice': 'Detail Purchase Invoice',\r\n 'financePurchaseInvoices.number_po': 'PO Number',\r\n\r\n 'financePurchaseInvoices.follow_these_steps_to_import_your_purchase_invoices':\r\n 'Follow these steps to import your purchase invoices',\r\n 'financePurchaseInvoices.1_download_your_purchase_invoices_template_file':\r\n '1. Download your purchase invoices template file',\r\n 'financePurchaseInvoices.start_by_downloading_our_purchase_invoices_csv':\r\n 'Start by downloading our purchase invoices Excel template file. This file has the correct column headings Kledo needs to import details of your invoices.',\r\n 'financePurchaseInvoices.download_template_file': 'Download Template File',\r\n 'financePurchaseInvoices.download_template_data_example_file':\r\n 'Download template data example file',\r\n 'financePurchaseInvoices.import': 'Import Purchase Invoices',\r\n 'financePurchaseInvoices.2_copy_your_purchase_invoices_into_the_template':\r\n '2. Copy your purchase invoices into the template',\r\n 'financePurchaseInvoices.using_excel_or_another_spreadsheet_editor':\r\n 'Using Excel or another spreadsheet editor, fill the Kledo template with the details of your invoices. Make sure the product details match the column headings provided in the template.',\r\n 'financePurchaseInvoices.important': 'IMPORTANT',\r\n 'financePurchaseInvoices.3_upload_the_updated_template_file_here':\r\n '3. Upload the updated template file here',\r\n 'financePurchaseInvoices.upload': 'Upload',\r\n 'financePurchaseInvoices.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Save your updated template and you are ready to go',\r\n 'financePurchaseInvoices.a_maximum_of_500_purchase_invoices_can_be_imported_at_a_time':\r\n 'A maximum of 1.000 purchase invoices can be imported at a time.',\r\n 'financePurchaseInvoices.contact_name_that_not_exist_will_be_inserted_as_a_new_contact':\r\n 'Contact name that not exist will be inserted as a new contact.',\r\n 'financePurchaseInvoices.import_actions_only_insert_new_purchase_invoices_cannot_update_or_delete':\r\n 'Import actions only insert new purchase invoices, cannot update nor delete.',\r\n 'financePurchaseInvoices.dont_change_the_column_heading_in_the_template_file':\r\n 'Do not change the column headings in the template file. These need to be unchanged for the important to work in the next step.',\r\n 'financePurchaseInvoices.you_can_only_upload_csv_file': 'You can only upload csv or excel file.',\r\n 'financePurchaseInvoices.upload_file': 'Upload File',\r\n 'financePurchaseInvoices.check_the_imported_data': 'Check Data',\r\n 'financePurchaseInvoices.please_check_the_imported_data': 'Please check the imported data',\r\n 'financePurchaseInvoices.import_purchase_invoices_done': 'Import Success',\r\n 'financePurchaseInvoices.error_upload_file': 'Upload failed.',\r\n 'financePurchaseInvoices.file_not_found': 'File not found',\r\n 'financePurchaseInvoices.if_you_are_happy_to_continue_with_the_import_please_click_the_import_now_button': `If you are happy to continue with the import please click the \"Import Now\" button.`,\r\n 'financePurchaseInvoices.valid': 'Valid',\r\n 'financePurchaseInvoices.invalid': 'Invalid',\r\n 'financePurchaseInvoices.total': 'Total',\r\n 'financePurchaseInvoices.import_now': 'Import Now',\r\n 'financePurchaseInvoices.contact_name': 'Contact name',\r\n 'financePurchaseInvoices.email': 'Email',\r\n 'financePurchaseInvoices.address': 'Address',\r\n 'financePurchaseInvoices.phone': 'Phone',\r\n 'financePurchaseInvoices.invoice_date': 'Purchase Invoice Date',\r\n 'financePurchaseInvoices.invoice_number': 'Purchase Invoice Number',\r\n 'financePurchaseInvoices.product_name': 'Product name',\r\n 'financePurchaseInvoices.code_sku': 'Kode/SKU',\r\n 'financePurchaseInvoices.tax_inclusive': 'Tax Inclusive',\r\n 'financePurchaseInvoices.paid': 'Paid',\r\n 'financePurchaseInvoices.paid_account': 'Paid Account',\r\n 'financePurchaseInvoices.copy_link': 'Copy Purchase Invoice Link',\r\n 'financePurchaseInvoices.send_email': 'Send Purchase Invoice Email',\r\n 'financePurchaseInvoices.send_sms': 'Send Purchase Invoice SMS',\r\n 'financePurchaseInvoices.pay_with_credit_memo': 'Pay with credit memo',\r\n 'financePurchaseInvoices.please_select_with_credit_memo': 'Please select with credit memo',\r\n 'financePurchaseInvoices.pay_with_debit_memo': 'Pay with debit memo',\r\n 'financePurchaseInvoices.please_select_with_debit_memo': 'Please select with debit memo',\r\n 'financeInvoices.sales_person': 'Sales Person',\r\n 'financeInvoices.set_paid': 'Set Paid',\r\n 'financeInvoices.mass_payment': 'Mass Payment',\r\n 'financeInvoices.cannot_mass_payment': 'Cannot mass payment',\r\n 'financeInvoices.can_be_paid': 'Can be paid',\r\n 'financeInvoices.cannot_be_paid': 'Cannot be paid',\r\n 'financeInvoices.data_progress_paid': '{count} out of {total} data has been paid',\r\n 'financeInvoices.data_has_been_paid': 'Total {count} data has been paid',\r\n 'financeInvoices.create_mass_trans': 'Create Mass {title}',\r\n 'financeInvoices.can_be_created_to': 'Can be created to {title}',\r\n 'financeInvoices.cannot_be_created_to': 'Cannot created to {title}',\r\n 'financeInvoices.data_progress_create_trans': '{count} out of {total} {title} has been created',\r\n 'financeInvoices.data_has_been_create_trans': 'Total {count} {title} has been created',\r\n 'financeInvoices.please_select_tag': 'Please select tag',\r\n 'financeInvoices.recurring_invoice': 'Recurring Invoice',\r\n 'financeInvoices.1_download_your_invoices_recurring_template_file':\r\n '1. Download the recurring invoice template file',\r\n 'financeInvoices.start_by_downloading_our_invoices_recurring_csv':\r\n 'Start by downloading the recurring invoice Excel template file. This file has the header fields that Kledo needs to import the details of your recurring invoices.',\r\n 'financeInvoices.2_copy_your_invoices_recurring_into_the_template':\r\n '2. Copy recurring invoice details into template',\r\n 'financeInvoices.invoice_recurring_using_excel_or_another_spreadsheet_editor':\r\n 'Using Excel or other spreadsheet software, enter recurring invoice details into a template file from Kledo. Make sure the recurring invoice details match the header fields in the template.',\r\n 'financeInvoices.amount_after_discount': 'Amount after discount',\r\n 'financeInvoices.cannot_upload_this_photo': 'Cannot upload this photo.',\r\n\r\n 'financeInvoices.import_invoice_return': 'Import Invoice Return',\r\n 'financeInvoices.invoice_return_number': 'Invoice Return Number',\r\n 'financeInvoices.import_return_product_name_or_code': '{product} Name atau Code/SKU',\r\n 'financeInvoices.1_download_your_invoices_return_template_file':\r\n '1. Download the return invoice template file',\r\n 'financeInvoices.start_by_downloading_our_invoices_return_csv':\r\n 'Start by downloading the return invoice Excel template file. This file has the header fields that Kledo needs to import the details of your return invoices.',\r\n 'financeInvoices.2_copy_your_invoices_return_into_the_template':\r\n '2. Copy return invoice details into template',\r\n 'financeInvoices.invoice_return_using_excel_or_another_spreadsheet_editor':\r\n 'Using Excel or other spreadsheet software, enter return invoice details into a template file from Kledo. Make sure the return invoice details match the header fields in the template.',\r\n 'financeInvoices.follow_these_steps_to_import_your_invoices_return':\r\n 'Follow these steps to import your invoices return',\r\n\r\n 'financePurchaseInvoices.inventory_account': 'Inventory Account',\r\n 'financePurchaseInvoices.purchase_invoices_successfully_imported':\r\n '{rowCount} purchase invoice imported successfully.',\r\n 'financePurchaseInvoices.view_detail': 'View detail',\r\n 'financePurchaseInvoices.import_another_file': 'Import another file',\r\n 'financePurchaseInvoices.go_to_purchase_invoice_list': 'Go to Purchase invoice list',\r\n 'financePurchaseInvoices.success': 'Success',\r\n 'financePurchaseInvoices.failed': 'Failed',\r\n 'financePurchaseInvoices.error_cannot_import': 'Import failed',\r\n 'financePurchaseInvoices.error': 'Error',\r\n 'financePurchaseInvoices.make_a_payment': 'Send a payment',\r\n\r\n 'financeQuotes.message': 'Message',\r\n 'financeQuotes.add_quote': 'Add Quote',\r\n 'financeQuotes.financeQuotes': 'Quote',\r\n 'financeQuotes.quote_accepted': 'Accepted quote',\r\n 'financeQuotes.quote_open': 'Open quote',\r\n 'financeQuotes.successfully_added': 'successfully added.',\r\n 'financeQuotes.error_cannot_add': 'Cannot add quote.',\r\n 'financeQuotes.error_cannot_print_pdf': 'Cannot print pdf quote.',\r\n 'financeQuotes.error_cannot_update': 'Cannot update quote.',\r\n 'financeQuotes.error_cannot_move': 'Cannot move the quote.',\r\n 'financeQuotes.error_cannot_change_status': 'Cannot change status the quote.',\r\n 'financeQuotes.edit_quote': 'Edit Quote',\r\n 'financeQuotes.max_characters': 'Max {value} characters.',\r\n 'financeQuotes.min_characters': 'Min {value} characters.',\r\n 'financeQuotes.only_number_allowed': 'Only number allowed.',\r\n 'financeQuotes.description': 'Description',\r\n 'financeQuotes.tax': 'Tax',\r\n 'financeQuotes.select_tax': 'Select tax',\r\n 'financeQuotes.amount': 'Amount',\r\n 'financeQuotes.please_select_a_contact': 'Please select a contact',\r\n 'financeQuotes.select_contact': 'Select contact',\r\n 'financeQuotes.add_contact': 'Add contact',\r\n 'financeQuotes.all_contacts': 'All contact',\r\n 'financeQuotes.transaction_date': 'Transaction Date',\r\n 'financeQuotes.please_select_transaction_date': 'Please select transaction date',\r\n 'financeQuotes.due_date': 'Expiry',\r\n 'financeQuotes.please_select_due_date': 'Please select expiry',\r\n 'financeQuotes.term': 'Term',\r\n 'financeQuotes.select_term': 'Select term',\r\n 'financeQuotes.add_term': 'Add term',\r\n 'financeQuotes.price_include_tax': 'Price include tax',\r\n 'financeQuotes.add_more': 'Add more',\r\n 'financeQuotes.number': 'Number',\r\n 'financeQuotes.please_input_the_number': 'Please input the number.',\r\n 'financeQuotes.memo': 'Memo',\r\n 'financeQuotes.date': 'Date',\r\n 'financeQuotes.status': 'Status',\r\n 'financeQuotes.balance_due': 'Balance Due',\r\n 'financeQuotes.please_select_a_term': 'Please select a term.',\r\n 'financeQuotes.search_by_memo': 'Search',\r\n 'financeQuotes.the_due_date_max_higger_than_transaction_date':\r\n 'The expiry date must same or after transaction date',\r\n 'financeQuotes.detail_title': 'Quote {number}',\r\n 'financeQuotes.customer': 'Customer',\r\n 'financeQuotes.reference': 'Reference',\r\n 'financeQuotes.product': 'Product',\r\n 'financeQuotes.qty': 'Qty',\r\n 'financeQuotes.price': 'Price',\r\n 'financeQuotes.add_product': 'Add Product',\r\n 'financeQuotes.select_product': 'Select product',\r\n 'financeQuotes.attachments': 'Attachments',\r\n 'financeQuotes.save_as_draft': 'Save as draft',\r\n 'financeQuotes.save_as_draft_add_new': 'Save as draft & Add New',\r\n 'financeQuotes.save_&_submit_for_approval': 'Save & submit for approval',\r\n 'financeQuotes.please_select_a_product': 'Please select a product.',\r\n 'financeQuotes.please_input_the_qty': 'Please input the qty.',\r\n 'financeQuotes.please_input_the_price': 'Please input the price.',\r\n 'financeQuotes.please_input_the_amount': 'Please input the amount.',\r\n 'financeQuotes.mark_as_sent': 'Mark as sent',\r\n 'financeQuotes.are_you_sure_to_mark_as_sent': 'Are you sure to mark as sent ?',\r\n 'financeQuotes.mark_as_accepted': 'Mark as accepted',\r\n 'financeQuotes.are_you_sure_to_mark_as_accepted': 'Are you sure to mark as accepted ?',\r\n 'financeQuotes.mark_as_declined': 'Mark as declined',\r\n 'financeQuotes.are_you_sure_to_mark_as_declined': 'Are you sure to mark as declined ?',\r\n 'financeQuotes.create_invoice': 'Create Invoice',\r\n 'financeQuotes.send': 'Send',\r\n 'financeQuotes.send_add_new': 'Send & Add New',\r\n 'financeQuotes.detail_quote': 'Detail Quote',\r\n 'financeQuotes.create_order': 'Create Order',\r\n\r\n 'financeQuotes.follow_these_steps_to_import_your_quotes':\r\n 'Follow these steps to import your quotes',\r\n 'financeQuotes.1_download_your_quotes_template_file': '1. Download your quotes template file',\r\n 'financeQuotes.start_by_downloading_our_quotes_csv':\r\n 'Start by downloading our quotes Excel template file. This file has the correct column headings Kledo needs to import details of your quotes.',\r\n 'financeQuotes.download_template_file': 'Download Template File',\r\n 'financeQuotes.download_template_data_example_file': 'Download template data example file',\r\n 'financeQuotes.import': 'Import Quotes',\r\n 'financeQuotes.2_copy_your_quotes_into_the_template': '2. Copy your quotes into the template',\r\n 'financeQuotes.using_excel_or_another_spreadsheet_editor':\r\n 'Using Excel or another spreadsheet editor, fill the Kledo template with the details of your quotes. Make sure the product details match the column headings provided in the template.',\r\n 'financeQuotes.important': 'IMPORTANT',\r\n 'financeQuotes.3_upload_the_updated_template_file_here':\r\n '3. Upload the updated template file here',\r\n 'financeQuotes.upload': 'Upload',\r\n 'financeQuotes.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Save your updated template and you are ready to go',\r\n 'financeQuotes.a_maximum_of_500_quotes_can_be_imported_at_a_time':\r\n 'A maximum of 1.000 quotes can be imported at a time.',\r\n 'financeQuotes.contact_name_that_not_exist_will_be_inserted_as_a_new_contact':\r\n 'Contact name that not exist will be inserted as a new contact.',\r\n 'financeQuotes.import_actions_only_insert_new_quotes_cannot_update_or_delete':\r\n 'Import actions only insert new quotes, cannot update nor delete.',\r\n 'financeQuotes.dont_change_the_column_heading_in_the_template_file':\r\n 'Do not change the column headings in the template file. These need to be unchanged for the important to work in the next step.',\r\n 'financeQuotes.you_can_only_upload_csv_file': 'You can only upload csv or excel file.',\r\n 'financeQuotes.upload_file': 'Upload File',\r\n 'financeQuotes.check_the_imported_data': 'Check Data',\r\n 'financeQuotes.please_check_the_imported_data': 'Please check the imported data',\r\n 'financeQuotes.import_quotes_done': 'Import Success',\r\n 'financeQuotes.error_upload_file': 'Upload failed.',\r\n 'financeQuotes.file_not_found': 'File not found',\r\n 'financeQuotes.if_you_are_happy_to_continue_with_the_import_please_click_the_import_now_button': `If you are happy to continue with the import please click the \"Import Now\" button.`,\r\n 'financeQuotes.valid': 'Valid',\r\n 'financeQuotes.invalid': 'Invalid',\r\n 'financeQuotes.total': 'Total',\r\n 'financeQuotes.import_now': 'Import Now',\r\n 'financeQuotes.contact_name': 'Contact name',\r\n 'financeQuotes.email': 'Email',\r\n 'financeQuotes.address': 'Address',\r\n 'financeQuotes.phone': 'Phone',\r\n 'financeQuotes.quote_date': 'Quote Date',\r\n 'financeQuotes.quote_number': 'Quote Number',\r\n 'financeQuotes.product_name': 'Product name',\r\n 'financeQuotes.code_sku': 'Kode/SKU',\r\n 'financeQuotes.tax_inclusive': 'Tax Inclusive',\r\n 'financeQuotes.paid': 'Paid',\r\n 'financeQuotes.paid_account': 'Paid To Account',\r\n 'financeQuotes.copy_link': 'Copy Quote Link',\r\n 'financeQuotes.send_email': 'Send Quote Email',\r\n 'financeQuotes.send_sms': 'Send Quote SMS',\r\n 'financeQuotes.send_wa': 'Send Quote Whatsapp',\r\n\r\n 'financeQuotes.inventory_account': 'Inventory Account',\r\n 'financeQuotes.quotes_successfully_imported': '{rowCount} quote imported successfully.',\r\n 'financeQuotes.view_detail': 'View detail',\r\n 'financeQuotes.import_another_file': 'Import another file',\r\n 'financeQuotes.go_to_quote_list': 'Go to quote list',\r\n 'financeQuotes.success': 'Success',\r\n 'financeQuotes.failed': 'Failed',\r\n 'financeQuotes.error_cannot_import': 'Import failed',\r\n 'financeQuotes.error': 'Error',\r\n 'financeQuotes.print_quote': 'Print Quotation',\r\n\r\n 'pos.pos': 'POS',\r\n 'pos.pos_activity': 'POS Activity',\r\n 'pos.transfer_to_room': 'Transfer to Room',\r\n 'pos.please_choose_a_table': 'please choose a table!',\r\n 'pos.failed_list_item_null': 'failed list item null!',\r\n 'pos.harga_item': 'Harga item',\r\n 'pos.activity': 'Activity',\r\n 'pos.saved_bill': 'Saved Bill',\r\n 'pos.items': 'Items',\r\n 'pos.total_harga_item': 'Total harga item',\r\n 'pos.discount': 'Discount',\r\n 'pos.tax': 'Tax',\r\n 'pos.total': 'Total',\r\n 'pos.pay': 'Pay',\r\n 'pos.save_bill': 'Save Bill',\r\n 'pos.list_save_bill': 'List Save Bill',\r\n 'pos.table': 'Table',\r\n 'pos.select_table': 'select table',\r\n 'pos.receipt_number': 'Receipt Number',\r\n 'pos.details': 'Details',\r\n 'pos.payment': 'Payment',\r\n 'pos.date_range': 'Date Range',\r\n 'pos.unpaid': 'unpaid',\r\n 'pos.paid_cashier': 'paid cashier',\r\n 'pos.transfer_to_room_': 'transfer to room',\r\n 'pos.please_select_date_range': 'please select date range',\r\n 'pos.select': 'Select',\r\n 'pos.room': 'Room',\r\n 'pos.name': 'Name',\r\n 'pos.checking': 'Checking',\r\n 'pos.transfer': 'Transfer',\r\n 'pos.new_sale': 'New Sale',\r\n 'pos.transfer_to': 'Transfer To',\r\n 'pos.guest_name': 'Guest Name',\r\n 'pos.pos_outlets': 'POS Outlets',\r\n 'pos.category': 'Category',\r\n 'pos.variant_name': 'Variant Name',\r\n 'pos.modify_variant': 'Modify Variant',\r\n 'pos.variant_of': 'Variant of',\r\n 'pos.add_variant_category': 'Add Variant Category',\r\n 'pos.add_variant': 'Add Variant',\r\n 'pos.product_name': 'Product Name',\r\n 'pos.add_table': 'Add Table',\r\n 'pos.enable_table_for_this_outlet': 'Enable table for this outlet',\r\n 'pos.add_product': 'Add Product',\r\n 'pos.add_category': 'Add Category',\r\n 'pos.product': 'Product',\r\n 'pos.settings': 'Settings',\r\n 'pos.name_category_required': 'Name category required',\r\n 'pos.edit_category': 'Edit Category',\r\n 'pos.category_name': 'Category Name',\r\n 'pos.change_multi_required': 'change multi required',\r\n 'pos.one_variant_per_product_sale': 'One Variant per product sale',\r\n 'pos.multiple_variant_per_product_sale': 'Multiple Variant per product sale',\r\n 'pos.edit_variant_category': 'Edit Variant Category',\r\n 'pos.add_tables': 'Add Tables',\r\n 'pos.name_table_required': 'name table required',\r\n 'pos.tables': 'Tables',\r\n 'pos.edit_tables': 'Edit Tables',\r\n 'pos.name_required': 'name required',\r\n 'pos.tax_required': 'tax required',\r\n 'pos.service_charge': 'Service Charge',\r\n 'pos.service_charge_required': 'service charge required',\r\n 'pos.product_image': 'Product Image',\r\n 'pos.product_image_required': 'Product Image required',\r\n 'pos.choose_category_required': 'choose category required',\r\n 'pos.choose_category': 'Choose Category',\r\n 'pos.product_name_required': 'product name required',\r\n 'pos.price': 'Price',\r\n 'pos.price_required': 'price required',\r\n 'pos.extra_price_must_greather_than_0': 'Extra price must greather than 0.',\r\n 'pos.base_price': 'Base Price',\r\n 'pos.base_price_required': 'Base Price required',\r\n 'pos.description': 'Description',\r\n 'pos.description_required': 'Description required',\r\n 'pos.edit_product': 'Edit Product',\r\n 'pos.variant': 'Variant',\r\n 'pos.variant_name_required': 'variant name required',\r\n 'pos.edit_variant': 'Edit Variant',\r\n\r\n 'financeInvoices.order_payment': 'Order Payment',\r\n 'financeInvoices.builtin_notes_for_easy_searching': 'Built-in notes for easy searching.',\r\n 'financeInvoices.the_number_will_be_automatically_generated_by_the_system':\r\n 'The number will be automatically generated by the system, but you can also change it here. You can set the format of this number {link}.',\r\n 'financeInvoices.used_to_create_transaction_categories':\r\n 'Used to create transaction categories. You can also generate reports based on this tag.',\r\n 'financeInvoices.message': 'Message',\r\n 'financeInvoices.here': 'here',\r\n 'financeInvoices.add_invoice': 'Add Invoice',\r\n 'financeInvoices.financeInvoices': 'Invoice',\r\n 'financeInvoices.witholding': 'Witholding',\r\n 'financeInvoices.select_holding_from': 'Select holding from',\r\n 'financeInvoices.please_select_a_holding_from': 'Please select a holding from',\r\n 'financeInvoices.successfully_added': 'successfully added.',\r\n 'financeInvoices.error_cannot_add': 'Cannot add invoice.',\r\n 'financeInvoices.error_cannot_print_pdf': 'Cannot print pdf invoice.',\r\n 'financeInvoices.error_cannot_export_receipt': 'Export receipt failed',\r\n 'financeInvoices.error_cannot_update': 'Cannot update invoice.',\r\n 'financeInvoices.error_cannot_move': 'Cannot move the invoice.',\r\n 'financeInvoices.error_cannot_change_status': 'Cannot change status the invoice.',\r\n 'financeInvoices.edit_invoice': 'Edit Invoice',\r\n 'financeInvoices.max_characters': 'Max {value} characters.',\r\n 'financeInvoices.min_characters': 'Min {value} characters.',\r\n 'financeInvoices.only_number_allowed': 'Only number allowed.',\r\n 'financeInvoices.description': 'Description',\r\n 'financeInvoices.tax': 'Tax',\r\n 'financeInvoices.select_tax': 'Select tax',\r\n 'financeInvoices.please_select_a_contact': 'Please select a contact',\r\n 'financeInvoices.select_contact': 'Select contact',\r\n 'financeInvoices.add_contact': 'Add contact',\r\n 'financeInvoices.all_contacts': 'All contact',\r\n 'financeInvoices.transaction_date': 'Transaction Date',\r\n 'financeInvoices.transaction': 'Transaction',\r\n 'financeInvoices.please_select_transaction_date': 'Please select transaction date',\r\n 'financeInvoices.due_date': 'Due Date',\r\n 'financeInvoices.please_select_due_date': 'Please select due date',\r\n 'financeInvoices.term': 'Term',\r\n 'financeInvoices.select_term': 'Select term',\r\n 'financeInvoices.add_term': 'Add term',\r\n 'financeInvoices.price_include_tax': 'Price include tax',\r\n 'financeInvoices.add_more': 'Add more',\r\n 'financeInvoices.number': 'Number',\r\n 'financeInvoices.please_input_the_number': 'Please input the number.',\r\n 'financeInvoices.memo': 'Memo',\r\n 'financeInvoices.date': 'Date',\r\n 'financeInvoices.payment_date': 'Payment Date',\r\n 'financeInvoices.paid_date': 'Paid Date',\r\n 'financeInvoices.show_payment_amount': 'Show payment amount',\r\n 'financeInvoices.hide_payment_amount': 'Hide payment amount',\r\n 'financeInvoices.status': 'Status',\r\n 'financeInvoices.payment_status': 'Status Pembayaran',\r\n 'financeInvoices.balance_due': 'Balance Due',\r\n 'financeInvoices.please_select_a_term': 'Please select a term.',\r\n 'financeInvoices.search_by_memo': 'Search',\r\n 'financeInvoices.the_due_date_max_higger_than_transaction_date':\r\n 'The due date must same or after transaction date',\r\n 'financeInvoices.detail_title': ' Invoice {number}',\r\n 'financeInvoices.customer': 'Customer',\r\n 'financeInvoices.reference': 'Reference',\r\n 'financeInvoices.product': 'Product',\r\n 'financeInvoices.qty': 'Qty',\r\n 'financeInvoices.price': 'Price',\r\n 'financeInvoices.add_product': 'Add Product',\r\n 'financeInvoices.select_product': 'Select product',\r\n 'financeInvoices.attachments': 'Attachments',\r\n 'financeInvoices.save_&_approve': 'Save & approve',\r\n 'financeInvoices.save_as_draft': 'Save as draft',\r\n 'financeInvoices.save_&_submit_for_approval': 'Save & submit for approval',\r\n 'financeInvoices.please_select_a_product': 'Please select a product.',\r\n 'financeInvoices.please_input_the_qty': 'Please input the qty.',\r\n 'financeInvoices.please_input_the_price': 'Please input the price.',\r\n 'financeInvoices.please_input_the_amount': 'Please input the amount.',\r\n 'financeInvoices.approve': 'Approve',\r\n 'financeInvoices.are_you_sure_to_approve': 'Are you sure to approve ?',\r\n 'financeInvoices.submit_for_approval': 'Submit for approval',\r\n 'financeInvoices.are_you_sure_to_submit_for_approval': 'Are you sure to submit for approval ?',\r\n 'financeInvoices.create_invoice': 'Create Invoice',\r\n 'financeInvoices.amount_paid': 'Amount Paid',\r\n 'financeInvoices.add_payment': 'Receive Payment',\r\n 'financeInvoices.receive_a_payment': 'Receive a payment',\r\n 'financeInvoices.error_cannot_add_payment': 'Cannot add payment.',\r\n 'financeInvoices.payment': 'Payment',\r\n 'financeInvoices.detail_invoice': 'Detail Invoice',\r\n 'financeInvoices.number_quotes': 'Quotes Number',\r\n 'financeInvoices.amount': 'Amount',\r\n 'financeInvoices.tax_code': 'Tax Code',\r\n 'financeInvoices.please_input_the_tax_code': 'Please input the tax code.',\r\n 'financeInvoices.error_cannot_change_tax_code': 'Cannot change tax code.',\r\n 'financeInvoices.order': 'Order Number',\r\n 'financeInvoices.quote': 'Quote Number',\r\n 'financeInvoices.delivery': 'Delivery Number',\r\n 'financeInvoices.please_select_deliveries': 'Please select at least one delivery',\r\n 'financeInvoices.cannot_greather_than_order': 'Cannot greather than order.',\r\n 'financeInvoices.down_payment': 'Down payment',\r\n 'financeInvoices.already_paid': 'Paid',\r\n 'financeInvoices.print_invoice': 'Invoice',\r\n 'financeInvoices.whoever_have_this_link_can_see_pdf':\r\n 'Whoever has this link can see the invoice as PDF format.',\r\n 'financeInvoices.copy_link': 'Copy Invoice Link',\r\n 'financeInvoices.send_email': 'Send Invoice Email',\r\n 'financeInvoices.send_sms': 'Send Invoice SMS',\r\n 'financeInvoices.send_wa': 'Send Invoice Whatsapp',\r\n 'financeInvoices.on': 'on',\r\n 'financeInvoices.last_printed_by': 'Last printed by',\r\n 'financeInvoices.last_modified_by': 'Last modified by',\r\n 'financeInvoices.preorder_number': 'PO Number',\r\n 'financeInvoices.total_before_tax': 'Total Before Tax',\r\n 'financeInvoices.printStatus': 'Print Status',\r\n 'financeInvoices.import_new_invoice': 'Import New Invoice',\r\n 'financeInvoices.import_invoice_status': 'Import Invoice Status',\r\n 'financeInvoices.import_recurring_invoice': 'Recurring Invoice Import',\r\n 'financeInvoices.print_partial': 'Partial Invoice',\r\n 'financeInvoices.print_delivery_label': 'Delivery Label',\r\n 'financeInvoices.print_delivery': 'Delivery Order',\r\n 'financeInvoices.print_payment': 'Payment Recap',\r\n 'financeInvoices.print_tax': 'Tax Invoice',\r\n 'financeInvoices.download_word': 'Invoice MsWord',\r\n 'financeInvoices.default_label_term': 'Term Invoice I',\r\n 'financeInvoices.please_input_label': 'Please input the label',\r\n 'financeInvoices.insufficient_stock': 'Insufficient Stock',\r\n 'financeInvoices.insufficient_stock_confirm':\r\n 'There is a product that has insufficient stock, Will you still make this bill ?',\r\n 'financeInvoices.insufficient_stock_warning':\r\n 'Cannot add to the bill, because there are products that have insufficient stock.',\r\n\r\n 'financeInvoices.sales': 'Sales',\r\n 'financeInvoices.print_receipt': 'Print Invoices Receipt',\r\n 'financeInvoices.download': 'Download',\r\n 'financeInvoices.download_sales_report': 'Download Sales Report',\r\n 'financeInvoices.my_order': 'My Order',\r\n 'financeInvoices.all': 'All',\r\n 'financeInvoices.export': 'Export',\r\n 'financeInvoices.orders': 'Orders',\r\n 'financeInvoices.order_review': 'Order Review',\r\n 'financeInvoices.manage_order': 'Manage Order',\r\n 'financeInvoices.download_order': 'Download Order',\r\n 'financeInvoices.export_all_order': 'Export All Order',\r\n 'financeInvoices.delivery_list': 'Delivery List',\r\n 'financeInvoices.done': 'Done',\r\n 'financeInvoices.export_invoice': 'Export E-Invoice',\r\n 'financeInvoices.choose_template': 'Choose Template',\r\n 'financeInvoices.import_with_kledo_template': 'Import with Excel template format from Kledo',\r\n 'financeInvoices.marketplace_connect_sync_automatic_from_marketplace_without_import':\r\n 'Marketplace Connect: Sync data automatically from marketplace to Kledo, without import',\r\n 'financeInvoices.import_with_marketplace_template':\r\n 'Import with Excel template format from Marketplace',\r\n 'financeInvoices.export_sales_data_from_tokopedia': '1. Export Sales Data from Tokopedia',\r\n 'financeInvoices.export_sales_data_from_shopee': '1. Export Sales Data from Shopee',\r\n 'financeInvoices.export_sales_data_from_bukalapak': '1. Export Sales Data from Bukalapak',\r\n 'financeInvoices.export_sales_data_from_lazada': '1. Export Sales Data from Lazada',\r\n 'financeInvoices.export_sales_data_from_tiktok': '1. Export Sales Data from Tiktok Shop',\r\n 'financeInvoices.export_sales_data_from_olsera': '1. Export sales data from Olsera dashboard',\r\n 'financeInvoices.export_sales_data_record_shipping_cost_to_bill': 'Record Shipping Cost To Bill',\r\n 'financeInvoices.upload_excel_from_tokopedia': '2. Upload Excel File from Tokopedia Here',\r\n 'financeInvoices.upload_excel_from_shopee': '2. Upload Excel File from Shopee Here',\r\n 'financeInvoices.upload_excel_from_bukalapak': '2. Upload Excel File from Bukalapak Here',\r\n 'financeInvoices.upload_excel_from_lazada': '2. Upload Excel File from Lazada Here',\r\n 'financeInvoices.upload_excel_from_tiktok': '2. Upload Excel File from Tiktok Shop Here',\r\n 'financeInvoices.upload_excel_from_olsera': '2. Upload Excel File from Olsera Here',\r\n 'financeInvoices.set_import_option': '3. Set Import Option',\r\n 'financeInvoices.1a_tokopedia': 'a. On Home page, click tab {sales}',\r\n 'financeInvoices.1b_tokopedia': 'b. Click {download} button',\r\n 'financeInvoices.1c_tokopedia':\r\n 'c. Filter sales report time range that you want to download, then click {download} button. Save the recently downloaded Excel file',\r\n 'financeInvoices.1a_shopee':\r\n 'a. Login on shopee seller center application, then click {myOrder} menu',\r\n 'financeInvoices.1b_shopee': 'b. Click {all} tab',\r\n 'financeInvoices.1c_shopee':\r\n 'c. Filter sales report time range that you want to download on Data Period column, then click {export} button. Save the recently downloaded Excel file',\r\n 'financeInvoices.1a_bukalapak': 'a. On Home page, click {transaction} tab',\r\n 'financeInvoices.1b_bukalapak': 'b. Click {downloadTransaction} button',\r\n 'financeInvoices.1c_bukalapak':\r\n 'c. Filter time range and sales report transaction that you want to download, then click {downloadTransaction} button. Save the recently downloaded Excel file',\r\n 'financeInvoices.1a_lazada': 'a. On Home page, click {orders} tab, then click {orderReview} tab',\r\n 'financeInvoices.1b_lazada': 'b. Click {export} button, then click {exportAllOrder}',\r\n 'financeInvoices.1c_lazada':\r\n 'c. For sales report that you want to download, click {download} button, then click {done}. Save the recently downloaded Excel file',\r\n 'financeInvoices.1a_tiktok': 'a. Click {order} - {manageOrder} menu',\r\n 'financeInvoices.1b_tiktok': 'b. Click {done} tab',\r\n 'financeInvoices.1c_tiktok': 'c. Click {downloadOrder} menu',\r\n 'financeInvoices.1d_tiktok': 'd. Select Excel download format',\r\n 'financeInvoices.1e_tiktok': 'e. Check {deliveryList} on {chooseTemplate}',\r\n 'financeInvoices.1f_tiktok': 'f. Click {download} button',\r\n 'financeInvoices.1a_olsera': 'a. Click the \"Reports\" menu',\r\n 'financeInvoices.1b_olsera': 'b. Click the \"Sales Reports\" menu',\r\n 'financeInvoices.1c_olsera': 'c. Click the \"Sales By Date\" menu',\r\n 'financeInvoices.1d_olsera': 'd. Select payment status has been paid',\r\n 'financeInvoices.1e_olsera':\r\n 'e. Click the Excel button. Save the Excel file you just downloaded.',\r\n 'financeInvoices.this_import_will_change_status':\r\n 'This import feature will change invoice status that has not paid to paid.',\r\n 'financeInvoices.data_will_not_change_even_if_different':\r\n 'Invoice data will not be changed on this import, even if the data on the kledo system with the data on the excel file is different.',\r\n 'financeInvoices.follow_these_steps_to_import_your_invoices':\r\n 'Follow these steps to import your invoices',\r\n 'financeInvoices.1_download_your_invoices_template_file':\r\n '1. Download your invoices template file',\r\n 'financeInvoices.start_by_downloading_our_invoices_csv':\r\n 'Start by downloading our invoices Excel template file. This file has the correct column headings Kledo needs to import details of your invoices.',\r\n 'financeInvoices.download_template_file': 'Download Template File',\r\n 'financeInvoices.download_template_data_example_file': 'Download template data example file',\r\n 'financeInvoices.import': 'Import Invoices',\r\n 'financeInvoices.2_copy_your_invoices_into_the_template':\r\n '2. Copy your invoices into the template',\r\n 'financeInvoices.using_excel_or_another_spreadsheet_editor':\r\n 'Using Excel or another spreadsheet editor, fill the Kledo template with the details of your invoices. Make sure the product details match the column headings provided in the template.',\r\n 'financeInvoices.important': 'IMPORTANT',\r\n 'financeInvoices.3_upload_the_updated_template_file_here':\r\n '3. Upload the updated template file here',\r\n 'financeInvoices.upload': 'Upload',\r\n 'financeInvoices.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Save your updated template and you are ready to go',\r\n 'financeInvoices.a_maximum_of_500_invoices_can_be_imported_at_a_time':\r\n 'A maximum of 1.000 invoices can be imported at a time.',\r\n 'financeInvoices.contact_name_that_not_exist_will_be_inserted_as_a_new_contact':\r\n 'Contact name that not exist will be inserted as a new contact.',\r\n 'financeInvoices.import_actions_only_insert_new_invoices_cannot_update_or_delete':\r\n 'Import actions only insert new invoices, cannot update nor delete.',\r\n 'financeInvoices.dont_change_the_column_heading_in_the_template_file':\r\n 'Do not change the column headings in the template file. These need to be unchanged for the important to work in the next step.',\r\n 'financeInvoices.you_can_only_upload_csv_file': 'You can only upload csv or excel file.',\r\n 'financeInvoices.upload_file': 'Upload File',\r\n 'financeInvoices.check_the_imported_data': 'Check Data',\r\n 'financeInvoices.please_check_the_imported_data': 'Please check the imported data',\r\n 'financeInvoices.import_invoices_done': 'Import Success',\r\n 'financeInvoices.error_upload_file': 'Upload failed.',\r\n 'financeInvoices.file_not_found': 'File not found',\r\n 'financeInvoices.if_you_are_happy_to_continue_with_the_import_please_click_the_import_now_button': `If you are happy to continue with the import please click the \"Import Now\" button.`,\r\n 'financeInvoices.valid': 'Valid',\r\n 'financeInvoices.invalid': 'Invalid',\r\n 'financeInvoices.total': 'Total',\r\n 'financeInvoices.import_now': 'Import Now',\r\n 'financeInvoices.contact_name': 'Contact name',\r\n 'financeInvoices.email': 'Email',\r\n 'financeInvoices.address': 'Address',\r\n 'financeInvoices.phone': 'Phone',\r\n 'financeInvoices.invoice_date': 'Invoice Date',\r\n 'financeInvoices.date_same_as_the_original_transaction':\r\n 'The date is the same as the original transaction',\r\n 'financeInvoices.invoice_number': 'Invoice Number',\r\n 'financeInvoices.product_name': 'Product name',\r\n 'financeInvoices.code_sku': 'Kode/SKU',\r\n 'financeInvoices.tax_inclusive': 'Tax Inclusive',\r\n 'financeInvoices.paid': 'Paid',\r\n 'financeInvoices.paid_account': 'Paid To Account',\r\n 'financeInvoices.row_imported': '{imported} of {total} rows imported',\r\n\r\n 'financeInvoices.inventory_account': 'Inventory Account',\r\n 'financeInvoices.invoices_successfully_imported': '{rowCount} invoice imported successfully.',\r\n 'financeInvoices.view_detail': 'View detail',\r\n 'financeInvoices.import_another_file': 'Import another file',\r\n 'financeInvoices.go_to_invoice_list': 'Go to invoice list',\r\n 'financeInvoices.success': 'Success',\r\n 'financeInvoices.failed': 'Failed',\r\n 'financeInvoices.error_cannot_import': 'Import failed',\r\n 'financeInvoices.error': 'Error',\r\n 'financeInvoices.import_invoices_in_progress': 'Import in progress',\r\n 'financeInvoices.import_invoices_is_still_in_progress': 'Import is still in progress',\r\n 'financeInvoices.import_warehouse_help_text':\r\n 'If when importing data from the marketplace you fill in the warehouse column, then the product formed as a result of the imported transaction will automatically \"track stock\". However, if the product is not stocked in the warehouse, the product will automatically \"not track stock\".',\r\n 'financeInvoices.its_ok_to_close_this_page': `It's ok OK to close this page or import another file. When import done, you will be notified via email.`,\r\n 'financeInvoices.duplicate_to_trans': 'Duplicate to transaction',\r\n\r\n 'financeInvoices.you_can_only_upload_up_to': `You can only upload up to {count} files`,\r\n 'financeInvoices.cash_payment': 'Cash Payment',\r\n 'financeInvoices.with_credit_payment': 'With Credit Memo',\r\n 'financeInvoices.with_debit_payment': 'With Debit Memo',\r\n 'financeInvoices.payment_with_credit_memo': 'Payment using Credit Memo',\r\n 'financeInvoices.payment_with_debit_memo': 'Payment using Debit Memo',\r\n\r\n 'financeBanks.edit_bank_statement': 'Edit Bank Statement',\r\n 'financeBanks.are_you_sure_to_revert': 'Are you sure to revert ?',\r\n 'financeBanks.error_cannot_revert': 'Cannot revert',\r\n 'financeBanks.add_bank': 'Add Bank',\r\n 'financeBanks.financeBanks': 'Cash & Bank Accounts',\r\n 'financeBanks.manage_account': 'Manage Account',\r\n 'financeBanks.statement_balance': 'Statement Balance',\r\n 'financeBanks.balance_in_kledo': 'Balance in kledo',\r\n 'financeBanks.successfully_added': 'successfully added.',\r\n 'financeBanks.error_cannot_add': 'Cannot add bank.',\r\n 'financeBanks.error_cannot_update': 'Cannot update bank.',\r\n 'financeBanks.error_cannot_move': 'Cannot move the bank.',\r\n 'financeBanks.error_cannot_change_status': 'Cannot change status the bank.',\r\n 'financeBanks.edit_bank': 'Edit bank',\r\n 'financeBanks.only_number_allowed': 'Only number allowed.',\r\n 'financeBanks.description': 'Description',\r\n 'financeBanks.max_characters': 'Max {value} characters.',\r\n 'financeBanks.min_characters': 'Min {value} characters.',\r\n 'financeBanks.tax': 'Tax',\r\n 'financeBanks.select_tax': 'Select tax',\r\n 'financeBanks.amount': 'Amount',\r\n 'financeBanks.please_select_a_contact': 'Please select a contact',\r\n 'financeBanks.select_contact': 'Select contact',\r\n 'financeBanks.add_contact': 'Add contact',\r\n 'financeBanks.all_contacts': 'All contact',\r\n 'financeBanks.contact': 'Contact',\r\n 'financeBanks.transaction_date': 'Transaction Date',\r\n 'financeBanks.please_select_transaction_date': 'Please select transaction date',\r\n 'financeBanks.due_date': 'Due Date',\r\n 'financeBanks.please_select_due_date': 'Please select due date',\r\n 'financeBanks.term': 'Term',\r\n 'financeBanks.select_term': 'Select term',\r\n 'financeBanks.add_term': 'Add term',\r\n 'financeBanks.price_include_tax': 'Price include tax',\r\n 'financeBanks.add_more': 'Add more',\r\n 'financeBanks.number': 'Number',\r\n 'financeBanks.please_input_the_number': 'Please input the number.',\r\n 'financeBanks.memo': 'Memo',\r\n 'financeBanks.date': 'Date',\r\n 'financeBanks.status': 'Status',\r\n 'financeBanks.balance_due': 'Balance Due',\r\n 'financeBanks.please_select_a_account': 'Please select a account.',\r\n 'financeBanks.search_by_memo': 'Search',\r\n 'financeBanks.the_due_date_max_higger_than_transaction_date':\r\n 'The due date must same or after transaction date',\r\n 'financeBanks.detail_title': ' Transaction: {transTypeName}',\r\n 'financeBanks.customer': 'Customer',\r\n 'financeBanks.reference': 'Reference',\r\n 'financeBanks.attachments': 'Attachments',\r\n 'financeBanks.save_&_approve': 'Save & approve',\r\n 'financeBanks.save_as_draft': 'Save as draft',\r\n 'financeBanks.save_&_submit_for_approval': 'Save & submit for approval',\r\n 'financeBanks.please_input_the_amount': 'Please input the amount.',\r\n 'financeBanks.approve': 'Approve',\r\n 'financeBanks.are_you_sure_to_approve': 'Are you sure to approve ?',\r\n 'financeBanks.submit_for_approval': 'Submit for approval',\r\n 'financeBanks.are_you_sure_to_submit_for_approval': 'Are you sure to submit for approval ?',\r\n 'financeBanks.create_bank': 'Create Bank',\r\n 'financeBanks.amount_paid': 'Amount Paid',\r\n 'financeBanks.paid_from': 'Paid From',\r\n 'financeBanks.add_payment': 'Add Payment',\r\n 'financeBanks.make_a_payment': 'Make a payment',\r\n 'financeBanks.select_paid_from': 'Select paid from',\r\n 'financeBanks.please_select_a_paid_from': 'Please select a paid from.',\r\n 'financeBanks.error_cannot_add_payment': 'Cannot add payment.',\r\n 'financeBanks.payment': 'Payment',\r\n 'financeBanks.detail_bank': 'Detail Bank',\r\n 'financeBanks.spent': 'Spent',\r\n 'financeBanks.received': 'Received',\r\n 'financeBanks.balance': 'Balance',\r\n 'financeBanks.transfer_money': 'Transfer Money',\r\n 'financeBanks.spend_money': 'Spend Money',\r\n 'financeBanks.receive_money': 'Receive Money',\r\n 'financeBanks.auto_import_bank_statement': 'Auto Import Bank Statement',\r\n 'financeBanks.manually_import_bank_statement': 'Manually Import Bank Statement',\r\n 'financeBanks.from': 'From',\r\n 'financeBanks.to': 'To',\r\n 'financeBanks.bank_account': 'Bank Account',\r\n 'financeBanks.account_transactions': 'Account Transactions',\r\n 'financeBanks.bank_statements': 'Bank Statements',\r\n 'financeBanks.reconcile': 'Reconcile',\r\n 'financeBanks.reconcile_mass_reconcile_title': 'Mass Reconciliation',\r\n 'financeBanks.reconcile_mass_can_be_reconcile': 'Can be reconciled',\r\n 'financeBanks.reconcile_mass_cannot_be_reconcile': 'Cannot be reconciled',\r\n 'financeBanks.reconcile_mass_reconcile_are_you_sure':\r\n 'Are you sure you want to reconcile {count} transaction data?',\r\n 'financeBanks.reconcile_data_progress_deleted':\r\n '{count} data from total {total} has been reconciled',\r\n 'financeBanks.search_by_reference': 'Search',\r\n 'financeBanks.please_select_a_from_account': 'Please select a from account',\r\n 'financeBanks.please_select_a_to_account': 'Please select a to account',\r\n 'financeBanks.transfer': 'Transfer',\r\n 'financeBanks.edit_account_transaction': 'Edit Account Transaction',\r\n 'financeBanks.error_cannot_transfer_money': 'Error cannot transfer money',\r\n 'financeBanks.the_to_account_cannot_be_same_with_from_account':\r\n 'The to account cannot be same with from account.',\r\n 'financeBanks.the_from_account_cannot_be_same_with_to_account':\r\n 'The from account cannot be same with to account.',\r\n 'financeBanks.new_transaction': 'New Transaction',\r\n 'financeBanks.source': 'Source',\r\n 'financeBanks.confirm_delete_bank_statement_p1': 'This will change your bank statement balance.',\r\n 'financeBanks.confirm_delete_bank_statement_p2':\r\n 'Usually this action only taken to delete duplicate transaction.',\r\n 'financeBanks.follow_these_steps_to_import_your_transactions':\r\n 'Follow these steps to import your transactions',\r\n 'financeBanks.import_bank_transactions': 'Import Bank Transactions',\r\n 'financeBanks.you_can_only_upload_csv_file': 'You can only upload csv or excel file.',\r\n 'financeBanks.upload_file': 'Upload',\r\n 'financeBanks.set_import_options': 'Set Options',\r\n 'financeBanks.import_statement_done': 'Done',\r\n 'financeBanks.error_upload_file': 'Error upload file.',\r\n 'financeBanks.file_not_found': 'File not found.',\r\n 'financeBanks.statement_heading': 'Statement Heading',\r\n 'financeBanks.statement_value': 'Statement Value',\r\n 'financeBanks.assign_to': 'Assign To',\r\n 'financeBanks.please_select_a_assign_to': 'Please select a assign to.',\r\n 'financeBanks.select_assign_to': 'Select assign to',\r\n 'financeBanks.rows_uploaded_set_the_import_options':\r\n '{rowCount} rows uploaded. Set the import options below and click Import Now button to continue.',\r\n 'financeBanks.please_select_a_date_format': 'Please select a date format.',\r\n 'financeBanks.select_date_format': 'Select date format',\r\n 'financeBanks.dont_import_the_first_line':\r\n \"Don't import the first line because they are column headings.\",\r\n 'financeBanks.import_now': 'Import Now',\r\n 'financeBanks.date_format': 'Date Format',\r\n 'financeBanks.error_cannot_import': 'Error cannot import.',\r\n 'financeBanks.1_in_a_new_window': '1. In a new window, go to your bank web site.',\r\n 'financeBanks.2_download_your_bank_statement': '2. Download your bank statement.',\r\n 'financeBanks.file_type_must_be_csv': 'File type must be CSV',\r\n 'financeBanks.3_upload_the_bank_statement_here': '3. Upload the bank statement here.',\r\n 'financeBanks.download_our_csv_template': 'Download our CSV template',\r\n 'financeBanks.to_create_your_own_bank_statement_file': ' to create your own bank statement file.',\r\n 'financeBanks.import_maximum_of_1000_bank_statement_line_at_a_time':\r\n 'Import a maximum of 1000 bank statement line at a time.',\r\n 'financeBanks.drop_the_file_to_upload': 'Drop the file to upload',\r\n 'financeBanks.transaction_lines_successfully_imported':\r\n '{rowCount} transaction lines successfully imported.',\r\n 'financeBanks.view_detail': 'View detail',\r\n 'financeBanks.import_another_file': 'Import another file',\r\n 'financeBanks.go_to_reconciliation': 'Go to reconciliation',\r\n 'financeBanks.success': 'Success',\r\n 'financeBanks.failed': 'Failed',\r\n 'financeBanks.invalid_date': 'Invalid Date',\r\n 'financeBanks.invalid_transaction_type': 'Invalid Transaction Type',\r\n 'financeBanks.invalid_amount': 'Invalid Amount',\r\n 'financeBanks.total': 'Total',\r\n 'financeBanks.review_your_bank_statement': 'Review your bank statement...',\r\n 'financeBanks.then_match_with_your_transactions_in_kledo':\r\n '...then match with your transactions in Kledo',\r\n 'financeBanks.bank_statement': 'Bank Statement',\r\n 'financeBanks.go': 'Go',\r\n 'financeBanks.show_received_item': 'Show Received Items',\r\n 'financeBanks.find_&_match': 'Find & Match',\r\n 'financeBanks.kledo_transaction': 'Kledo Transaction',\r\n 'financeBanks.subtotal': 'Subtotal',\r\n 'financeBanks.must_match': 'Must Match',\r\n 'financeBanks.difference': 'Difference',\r\n 'financeBanks.find_&_select_matching_transactions': '1. Find & select matching transactions',\r\n 'financeBanks.error_cannot_reconcile': 'Error cannot reconcile.',\r\n 'financeBanks.are_you_sure_to_reconcile': 'Are you sure to reconcile ?',\r\n 'financeBanks.difference_must_be_zero': 'Difference must be 0.',\r\n 'financeBanks.view_your_selected_transactions':\r\n '2. View your selected transactions, Add new transactions, as needed.',\r\n 'financeBanks.the_sum_of_your_selected_transactions_must_match_the_money_spent':\r\n '3. The sum of your selected transactions must match the money spent. Make adjustments, as needed.',\r\n 'financeBanks.show_spent_item': 'Show Spent Items',\r\n 'financeBanks.to_reconcile': 'To',\r\n 'financeBanks.transactions': 'Transactions',\r\n 'financeBanks.minimal_value': 'Minimal value is {value}',\r\n 'financeBanks.maximal_value': 'Maximal value is {value}',\r\n 'financeBanks.error_cannot_print_pdf': 'Cannot print pdf bank.',\r\n 'financeBanks.print_receipt': 'Print Receipt',\r\n 'financeBanks.print_remittance_advice': 'Print Remittance Advice',\r\n 'financeBanks.print_cash_receipt': 'Print Cash Receipt',\r\n 'financeBanks.print_expense_slip': 'Print Expense Slip',\r\n 'financeBanks.print_purchase_payment': 'Print Remittance Advice',\r\n 'financeBanks.print_transfer': 'Print Transfer',\r\n 'financeBanks.copy_link_receipt': 'Copy Receipt Link',\r\n 'financeBanks.copy_link_remittance_advice': 'Copy Remittance Advice Link',\r\n 'financeBanks.copy_link_cash_receipt': 'Copy Cash Receipt Link',\r\n 'financeBanks.copy_link_expense_slip': 'Copy Expense Slip Link',\r\n 'financeBanks.copy_link_purchase_payment': 'Copy Remittance Advice Link',\r\n 'financeBanks.copy_link_transfer': 'Copy Transfer Link',\r\n 'financeBanks.send_email_receipt': 'Send Receipt Email',\r\n 'financeBanks.send_email_remittance_advice': 'Send Remittance Advice Email',\r\n 'financeBanks.send_email_cash_receipt': 'Send Cash Receipt Email',\r\n 'financeBanks.send_email_expense_slip': 'Send Expense Slip Email',\r\n 'financeBanks.send_email_purchase_payment': 'Send Remittance Advice Email',\r\n 'financeBanks.send_sms_receipt': 'Send Receipt SMS',\r\n 'financeBanks.send_sms_remittance_advice': 'Send Remittance Advice SMS',\r\n 'financeBanks.send_sms_cash_receipt': 'Send Cash Receipt SMS',\r\n 'financeBanks.send_sms_expense_slip': 'Send Expense Slip SMS',\r\n 'financeBanks.send_sms_purchase_payment': 'Send Remittance Advice SMS',\r\n 'financeBanks.send_wa_receipt': 'Send Receipt Whatsapp',\r\n 'financeBanks.send_wa_remittance_advice': 'Send Remittance Advice Whatsapp',\r\n 'financeBanks.send_wa_cash_receipt': 'Send Cash Receipt Whatsapp',\r\n 'financeBanks.send_wa_expense_slip': 'Send Expense Slip Whatsapp',\r\n 'financeBanks.send_wa_purchase_payment': 'Send Remittance Advice Whatsapp',\r\n 'financeBanks.1_download_your_bankStatement_template_file':\r\n '1. Download your bank statement template file',\r\n 'financeBanks.start_by_downloading_our_bankStatement_csv':\r\n 'Start by downloading our bank statements Excel template file. This file has the correct column headings Kledo needs to import details of your bank statements.',\r\n 'financeBanks.2_copy_your_bankStatement_into_the_template':\r\n '2. Copy your bank statements into the template',\r\n 'financeBanks.a_maximum_of_500_bankStatement_can_be_imported_at_a_time':\r\n 'A maximum of 1.000 bank statements can be imported at a time.',\r\n 'financeBanks.import_actions_only_insert_new_bankStatement_cannot_update_or_delete':\r\n 'Import actions only insert new bank statements, cannot update nor delete.',\r\n 'financeBanks.bankStatement_successfully_imported':\r\n '{rowCount} bank statement imported successfully.',\r\n 'financeBanks.reconciliation_detail': 'Reconciliation Detail',\r\n 'financeBanks.detail': 'Detail',\r\n 'financeBanks.mutasi_bank': 'Bank Mutation',\r\n 'financeBanks.transactions_on_kledo': 'Transaction on Kledo',\r\n 'financeBanks.error_load_data': 'Error on get list bank statement',\r\n 'financeBanks.bank_connect': 'Bank Connect',\r\n 'financeBanks.add_bank_connect': 'Add Bank Connect',\r\n 'financeBanks.edit_bank_connect': 'Edit Bank Connect',\r\n 'financeBanks.choose_bank': 'Choose bank that will be connected to Kledo',\r\n 'financeBanks.bank_connected': 'Bank connected to Kledo',\r\n 'financeBanks.account': 'Account',\r\n 'financeBanks.fill_out_the_form': 'Fill Out the Form',\r\n 'financeBanks.under_review': 'Under Review',\r\n 'financeBanks.signature_and_send': 'Signature & Send',\r\n 'financeBanks.activation': 'Activation',\r\n 'financeBanks.submission': 'Submission',\r\n 'financeBanks.review': 'Review',\r\n 'financeBanks.active': 'Active',\r\n 'financeBanks.cannot_add_bank_connect': 'Cannot add bank connect',\r\n 'financeBanks.cannot_delete_bank_connect': 'Cannot delete bank connect',\r\n 'financeBanks.please_select_account': 'Please select account',\r\n 'financeBanks.send_submission': 'Send Submission',\r\n 'financeBanks.connect_to_account': 'Connect to Account',\r\n 'financeBanks.connect_company_desc_1':\r\n 'To be able to connect to a BCA Business Account, it is necessary to activate the BCA API feature in your BCA account.',\r\n 'financeBanks.connect_company_desc_2': 'Following are the steps for activating the BCA API:',\r\n 'financeBanks.connect_company_desc_3': '- Enter your data in the form on this page.',\r\n 'financeBanks.connect_company_desc_4':\r\n '- The Kledo Great Team will contact you via WhatsApp for confirmation and other data collection.',\r\n 'financeBanks.connect_company_desc_5':\r\n '- The BCA API activation application form will be sent by the Great Kledo Team to BCA Bank.',\r\n 'financeBanks.connect_company_desc_6':\r\n '- BCA API is active, and your account mutation will be automatically downloaded to Kledo.',\r\n 'financeBanks.connect_company_desc_7': 'A few things you need to know:',\r\n 'financeBanks.connect_company_desc_8':\r\n \"- For BCA API connection, a fee from BCA is Rp. 50,000 per month. From Kledo's side there is no charge at all\",\r\n 'financeBanks.connect_company_desc_9':\r\n '- The activation application process takes about 2-4 weeks.',\r\n 'financeBanks.connect_company_desc_10':\r\n '- The BCA API connection that is connected to Kledo only takes mutation data, not to transfer funds. So that your account is guaranteed security.',\r\n 'financeBanks.account_information': 'Bank Account Information',\r\n 'financeBanks.bank_account_type': 'Bank Account Type',\r\n 'financeBanks.internet_banking_username': 'Internet Banking Username',\r\n 'financeBanks.internet_banking_password': 'Internet Banking Password',\r\n 'financeBanks.repeat_internet_banking_password': 'Repeat Internet Banking Password',\r\n 'financeBanks.please_input_ib_username': 'Please input internet banking username',\r\n 'financeBanks.please_input_ib_password': 'Please input internet banking password',\r\n 'financeBanks.last_get_data': 'Last Get Data',\r\n 'financeBanks.account_owner_name': 'Bank Account Owner Name',\r\n 'financeBanks.account_number': 'Bank Account Number',\r\n 'financeBanks.please_input_account_owner_name': 'Please input account owner name',\r\n 'financeBanks.please_input_account_number': 'Please input account number',\r\n 'financeBanks.scan_bank_book': 'Scan/Photo of Bank Book',\r\n 'financeBanks.please_input_scan_bank_book': 'Please input scan/photo of bank book',\r\n 'financeBanks.identity_card_information': 'Identity Card Information',\r\n 'financeBanks.company_information': 'Company Information',\r\n 'financeBanks.trade_name': 'Trade Name',\r\n 'financeBanks.please_input_trade_name': 'Please input Trade Name',\r\n 'financeBanks.website': 'Website',\r\n 'financeBanks.please_input_website': 'Please input Website',\r\n 'financeBanks.company_email': 'Company Email',\r\n 'financeBanks.please_input_company_email': 'Please input Company Email',\r\n 'financeBanks.please_input_a_valid_format_email': 'Please input a valid format email',\r\n 'financeBanks.company_tax_number': 'Company Tax Number',\r\n 'financeBanks.please_input_company_tax_number': 'Please input Company Tax Number',\r\n 'financeBanks.company_account_number': 'Company Account Number',\r\n 'financeBanks.please_input_company_account_number': 'Please input Company Account Number',\r\n 'financeBanks.office_address': 'Office Address',\r\n 'financeBanks.please_input_office_address': 'Please input Office Address',\r\n 'financeBanks.corp_id': 'Corporation ID',\r\n 'financeBanks.please_input_corp_id': 'Please input Corporation ID',\r\n 'financeBanks.main_pic': 'Main PIC',\r\n 'financeBanks.secondary_pic': 'Secondary PIC',\r\n 'financeBanks.position': 'Position',\r\n 'financeBanks.please_input_position': 'Please input Position',\r\n 'financeBanks.id_number': 'ID Number',\r\n 'financeBanks.please_input_id_number': 'Please input ID Number',\r\n 'financeBanks.please_input_email': 'Please input Email',\r\n 'financeBanks.phone_number': 'Phone Number',\r\n 'financeBanks.please_input_phone_number': 'Please input Phone Number',\r\n 'financeBanks.address_according_to_id_card': 'Address according to ID Card',\r\n 'financeBanks.please_input_address': 'Please input Address',\r\n 'financeBanks.name_on_bank_account_owner_card': 'Name on Bank Account Owner Identity Card',\r\n 'financeBanks.identity_card_number': 'Identity Card Number',\r\n 'financeBanks.scan_identity_card': 'Scan/Photo of Identity Card',\r\n 'financeBanks.please_input_name_on_bank_account_owner_card': 'Please input name',\r\n 'financeBanks.please_input_identity_card_number': 'Please input identity card number',\r\n 'financeBanks.please_input_scan_identity_card': 'Please input scan/photo of identity card',\r\n 'financeBanks.note': 'Note',\r\n 'financeBanks.follow_these_steps_to_import_your_bankTrans':\r\n 'Follow these steps to import your bank transaction',\r\n 'financeBanks.1_download_your_bankTrans_template_file':\r\n '1. Download your bank transaction template file',\r\n 'financeBanks.start_by_downloading_our_bankTrans_csv':\r\n 'Start by downloading our bank transactions Excel template file. This file has the correct column headings Kledo needs to import details of your bank transactions.',\r\n 'financeBanks.download_template_file': 'Download Template File',\r\n 'financeBanks.download_template_data_example_file': 'Download template data example file',\r\n 'financeBanks.import_bankTrans': 'Import Bank Transaction',\r\n 'financeBanks.2_copy_your_bankTrans_into_the_template':\r\n '2. Copy your bank transactions into the template',\r\n 'financeBanks.using_excel_or_another_spreadsheet_editor':\r\n 'Using Excel or another spreadsheet editor, fill the Kledo template with the details of your bank transactions. Make sure the product details match the column headings provided in the template.',\r\n 'financeBanks.important': 'IMPORTANT',\r\n 'financeBanks.3_upload_the_updated_template_file_here':\r\n '3. Upload the updated template file here',\r\n 'financeBanks.upload': 'Upload',\r\n 'financeBanks.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Save your updated template and you are ready to go',\r\n 'financeBanks.a_maximum_of_500_bankTrans_can_be_imported_at_a_time':\r\n 'A maximum of 1.000 bank transactions can be imported at a time.',\r\n 'financeBanks.import_actions_only_insert_new_bankTrans_cannot_update_or_delete':\r\n 'Import actions only insert new bank transactions, cannot update nor delete.',\r\n 'financeBanks.dont_change_the_column_heading_in_the_template_file':\r\n 'Do not change the column headings in the template file. These need to be unchanged for the important to work in the next step.',\r\n 'financeBanks.bankTrans_successfully_imported': '{rowCount} bankTrans imported successfully.',\r\n 'financeBanks.go_to_bankTrans_list': 'Go to bankTrans list',\r\n 'financeBanks.revert_reconciliation': 'Revert Reconciliation',\r\n 'financeBanks.view_reconciliation': 'View Reconciliation',\r\n 'financeBanks.import_with_bank_template': 'Import with template format from Bank',\r\n 'financeBanks.login_bca_business': '1. Login to your BCA Business internet banking',\r\n 'financeBanks.click_bank_info_mutation_bca':\r\n '2. Click Account Information menu - Account Mutation',\r\n 'financeBanks.select_format_download_csv':\r\n '3. Select CSV download format, and click download button',\r\n 'financeBanks.upload_downloaded_csv_on_form_below': '4. Upload downloaded CSV file on form below',\r\n 'financeBanks.login_mandiri_business': '1. Login to your Mandiri Business internet banking',\r\n 'financeBanks.click_bank_info_mutation_mandiri':\r\n '2. Click Account Information menu - Account Mutation',\r\n 'financeBanks.select_excel_click_download':\r\n '3. Select Excel download format, and click download button',\r\n 'financeBanks.select_download_check_file_download':\r\n '4. Click Download Report menu. Select file that will be downloaded, then click download button',\r\n 'financeBanks.upload_downloaded_excel_on_form_below':\r\n '5. Upload downloaded Excel file on form below',\r\n 'financeBanks.the_one_of_accounts_must_be_base_currency':\r\n 'The one of selected accounts must be base currency',\r\n 'financeBanks.data_has_been_reconciled': 'Data has been reconciled succesfully.',\r\n 'financeBanks.empty_bank_reconcile_data_message':\r\n 'To reconcile bank transactions, please import
bank transactions first',\r\n 'financeBanks.bank_reconcile_click_here_to_import': 'Click here to import bank transactions!',\r\n 'financeBanks.search_bank_statement_at_kledo':\r\n 'Search for bank mutations that match transactions at Kledo',\r\n 'financeBanks.your_selected_transactions':\r\n 'Your selected transactions, Add new transactions, as needed.',\r\n 'financeBanks.total_transaction_on_kledo_and_bank_mutation_must_be_same':\r\n 'The total transactions on Kledo must be the same as the total transactions',\r\n 'financeBanks.total_transaction_on_kledo': 'Total transactions on Kledo',\r\n 'financeBanks.total_mutations': 'Total mutations',\r\n\r\n 'purchases.purchases': 'Purchases Overview',\r\n 'purchases.purchases_invoices': 'Purchases Invoices',\r\n 'purchases.awaiting_payment': 'Awaiting Payment',\r\n 'purchases.overdue': 'Overdue',\r\n 'purchases.purchases_total_last_30_days': 'Purchases Total Last 30 Days',\r\n 'purchases.purchases_total': 'Purchases Total',\r\n 'purchases.product': 'Product',\r\n 'purchases.qty': 'Qty',\r\n 'purchases.value': 'Value',\r\n 'purchases.payment_made': 'Payment Made',\r\n 'purchases.purchases_orders': 'Purchases Orders',\r\n 'purchases.draft': 'Draft',\r\n 'purchases.awaiting_approval': 'Awaiting Approval',\r\n 'purchases.approved': 'Approved',\r\n\r\n 'sales.sales': 'Sales Overview',\r\n 'sales.invoices': 'Invoices',\r\n 'sales.awaiting_payment': 'Awaiting Payment',\r\n 'sales.overdue': 'Overdue',\r\n 'sales.purchases_total_last_30_days': 'Sales Total Last 30 Days',\r\n 'sales.product_sales_last_30_days': 'Product Sales Last 30 Days',\r\n 'sales.product_sales': 'Product Sales',\r\n 'sales.sales_contact': 'Sales Per Customer',\r\n 'sales.purchases_vendor': 'Purchases Per Vendor',\r\n 'sales.payments.received': 'Payments Received',\r\n 'sales.draft': 'Draft',\r\n 'sales.sent': 'Sent',\r\n 'sales.quotes': 'quotes',\r\n 'sales.accepted': 'Accepted',\r\n\r\n 'financeNumbers.automatic_sequencing': 'Automatic Sequencing',\r\n 'financeNumbers.automatic_sequencing_billing': '{title} Numbering',\r\n 'financeNumbers.define_the_number_to_be_used':\r\n 'Define the number to be used when creating your invoice, or purchase order expense. The number will automatically increment with each new document you create.',\r\n 'financeNumbers.prefix': 'Prefix',\r\n 'financeNumbers.suffix': 'Suffix',\r\n 'financeNumbers.sequence': 'Current Number',\r\n 'financeNumbers.please_input_the_next_number': 'Please input the current number',\r\n 'financeNumbers.sequence_error': 'Error create sequence.',\r\n 'financeNumbers.error_edit': 'Error edit sequence.',\r\n 'financeNumbers.error_check_exist': 'Error check number.',\r\n 'financeNumbers.number_is_used': 'Number is used, {link} to get new number.',\r\n 'financeNumbers.number_format': 'Number Format',\r\n 'financeNumbers.automatic_numbering_output_example': 'Automatic Numbering Output Example',\r\n 'financeNumbers.reset_number_every': 'Reset Number Every',\r\n 'financeNumbers.never_reset': 'Never reset',\r\n 'financeNumbers.every_month': 'Every month',\r\n 'financeNumbers.every_year': 'Every year',\r\n 'financeNumbers.on_date': 'On date',\r\n 'financeNumbers.add_numbering_code': 'Add Numbering Code',\r\n 'financeNumbers.please_input_format': 'Please input the number format',\r\n 'financeNumbers.please_input_date': 'Please input the date',\r\n 'financeNumbers.please_input_month': 'Please input the month',\r\n 'financeNumbers.trans_number_same_as_original_trans':\r\n 'Set transaction number same as original transaction',\r\n 'financeNumbers.trans_number_same_as_original_trans_desc':\r\n 'If active, when create invoice from order, the number will be same as order. Likewise for other transaction.',\r\n 'financeNumbers.auto_numbering_lock':\r\n 'The transaction number is locked so that it cannot be changed',\r\n 'financeNumbers.auto_numbering_lock_desc':\r\n 'If it is active, the transaction number will follow the Kledo system, it cannot be changed by the user.',\r\n 'financeNumbers.default_settings': 'Default Settings',\r\n 'financeNumbers.add_setting': 'Add Setting',\r\n 'financeNumbers.setting_name': 'Setting Name',\r\n 'financeNumbers.setting_name_is_required': 'Setting Name is required!',\r\n 'financeNumbers.valid_for_bank_accounts': 'Valid for bank accounts',\r\n 'financeNumbers.bank_account_is_required': 'Bank Account is required!',\r\n 'financeNumbers.select_bank_account': 'Select Bank Account',\r\n 'financeNumbers.last_reset_number_log':\r\n 'The last reset was on {date}, [{clickHere}] to view the log',\r\n 'financeNumbers.reset_number_automatic': 'Automatic Reset Number',\r\n\r\n 'financeConversion.your_opening_balances_will_be_set_as_at':\r\n 'Your opening balances will be set at {date}',\r\n 'financeConversion.conversion_date': 'Conversion Date',\r\n 'financeConversion.error_cannot_save_conversion_date': 'Error cannot save conversion date.',\r\n 'financeConversion.show_zero_balances': 'Show zero balances',\r\n 'financeConversion.conversion_balances': 'Conversion Balances',\r\n 'financeConversion.add_comparative_balances': 'Add Comparative Balances',\r\n 'financeConversion.error_cannot_add_comparative_balances':\r\n 'Error cannot add comparative balances.',\r\n 'financeConversion.error_cannot_save_comparative_balances':\r\n 'Error cannot save comparative balances.',\r\n 'financeConversion.are_you_sure': 'Are you sure ?',\r\n 'financeConversion.warning': 'Warning',\r\n 'financeConversion.reversal_detail': 'Reversal Detail',\r\n 'financeConversion.opening_balance': 'Opening Balance',\r\n 'financeConversion.error_cannot_delete_comparative_balances':\r\n 'Error cannot delete conversion balances.',\r\n 'financeConversion.confirm_balances': 'Confirm your {endDate} account balances.',\r\n 'financeConversion.cannot_set_conversion_date':\r\n 'Tidak dapat set tanggal konversi, karena telah dilakukan tutup buku pada bulan ini.',\r\n 'financeConversion.your_debit_and_credit_total_must_be_balanced':\r\n 'Your debit and credit total must be balanced. If you wish to publish anyway, differences of {diff} will be posted into Opening Balance Equity account.',\r\n 'financeConversion.enter_the_date_that_you_began_processing': `Enter the date that you began processing all your transactions in Kledo. It's easiest when you set your conversion date to be the start of a Tax period.`,\r\n 'financeConversion.back_to_account_list': 'Back to account list',\r\n 'financeConversion.follow_these_steps_to_import_your_conversion_balance':\r\n 'Follow these steps to import your conversion balance',\r\n 'financeConversion.1_download_your_conversion_balance_template_file':\r\n '1. Download your conversion balance template file',\r\n 'financeConversion.start_by_downloading_our_conversion_balance_csv':\r\n 'Start by downloading our conversion balances Excel template file. This file has the correct column headings Kledo needs to import details of your conversion balances.',\r\n 'financeConversion.download_template_file': 'Download Template File',\r\n 'financeConversion.download_template_data_example_file': 'Download template data example file',\r\n 'financeConversion.import': 'Import Conversion Balance',\r\n 'financeConversion.2_copy_your_conversion_balance_into_the_template':\r\n '2. Copy your conversion balances into the template',\r\n 'financeConversion.using_excel_or_another_spreadsheet_editor':\r\n 'Using Excel or another spreadsheet editor, fill the Kledo template with the details of your conversion balances. Make sure the product details match the column headings provided in the template.',\r\n 'financeConversion.important': 'IMPORTANT',\r\n 'financeConversion.3_upload_the_updated_template_file_here':\r\n '3. Upload the updated template file here',\r\n 'financeConversion.upload': 'Upload',\r\n 'financeConversion.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Save your updated template and you are ready to go',\r\n 'financeConversion.a_maximum_of_500_conversion_balance_can_be_imported_at_a_time':\r\n 'A maximum of 1.000 conversion balances can be imported at a time.',\r\n 'financeConversion.import_actions_only_insert_new_conversion_balance_cannot_update_or_delete':\r\n 'Import actions only insert new conversion balances, cannot update nor delete.',\r\n 'financeConversion.dont_change_the_column_heading_in_the_template_file':\r\n 'Do not change the column headings in the template file. These need to be unchanged for the important to work in the next step.',\r\n 'financeConversion.conversion_balance_successfully_imported':\r\n '{rowCount} conversion balance imported successfully.',\r\n 'financeConversion.go_to_conversion_balance_list': 'Go to conversion balance list',\r\n\r\n 'financeManualJournal.add_manual_journal': 'Add Manual Journal',\r\n 'financeManualJournal.financeManualJournal': 'Manual Journal',\r\n 'financeManualJournal.successfully_added': 'successfully added.',\r\n 'financeManualJournal.error_cannot_add': 'Cannot add manual journal.',\r\n 'financeManualJournal.error_cannot_update': 'Cannot update manual journal.',\r\n 'financeManualJournal.edit_manual_journal': 'Edit Manual Journal',\r\n 'financeManualJournal.max_characters': 'Max {value} characters.',\r\n 'financeManualJournal.min_characters': 'Min {value} characters.',\r\n 'financeManualJournal.only_number_allowed': 'Only number allowed.',\r\n 'financeManualJournal.description': 'Description',\r\n 'financeManualJournal.tax': 'Tax',\r\n 'financeManualJournal.select_tax': 'Select tax',\r\n 'financeManualJournal.amount': 'Amount',\r\n 'financeManualJournal.transaction_date': 'Transaction Date',\r\n 'financeManualJournal.please_select_transaction_date': 'Please select transaction date',\r\n 'financeManualJournal.due_date': 'Expiry',\r\n 'financeManualJournal.please_select_due_date': 'Please select expiry',\r\n 'financeManualJournal.price_include_tax': 'Price include tax',\r\n 'financeManualJournal.add_more': 'Add more',\r\n 'financeManualJournal.number': 'Number',\r\n 'financeManualJournal.please_input_the_number': 'Please input the number.',\r\n 'financeManualJournal.memo': 'Memo',\r\n 'financeManualJournal.date': 'Date',\r\n 'financeManualJournal.total': 'Total',\r\n 'financeManualJournal.search_by_memo': 'Search',\r\n 'financeManualJournal.detail_title': 'Manual Journal {number}',\r\n 'financeManualJournal.reference': 'Reference',\r\n 'financeManualJournal.attachments': 'Attachments',\r\n 'financeManualJournal.please_input_the_amount': 'Please input the amount.',\r\n 'financeManualJournal.account': 'Account',\r\n 'financeManualJournal.debit': 'Debit',\r\n 'financeManualJournal.credit': 'Credit',\r\n 'financeManualJournal.select_account': 'Select Account',\r\n 'financeManualJournal.diff': 'Total is out by {diff}',\r\n 'financeManualJournal.total_debits_must_equal_total_credits':\r\n 'Total debits must equal total credits.',\r\n 'financeManualJournal.debit_or_credit_must_greater_than_0':\r\n 'Debit or credit must greather than 0.',\r\n 'financeManualJournal.total_debit': 'Total Debit',\r\n 'financeManualJournal.total_credit': 'Total Credit',\r\n 'financeManualJournal.detail_manual_journal': 'Detil Jurnal Manual',\r\n 'financeManualJournal.follow_these_steps_to_import_your_manualJournal':\r\n 'Follow these steps to import your manual journal',\r\n 'financeManualJournal.1_download_your_manualJournal_template_file':\r\n '1. Download your manual journal template file',\r\n 'financeManualJournal.start_by_downloading_our_manualJournal_csv':\r\n 'Start by downloading our manual journals Excel template file. This file has the correct column headings Kledo needs to import details of your manual journals.',\r\n 'financeManualJournal.download_template_file': 'Download Template File',\r\n 'financeManualJournal.download_template_data_example_file': 'Download template data example file',\r\n 'financeManualJournal.import': 'Import Manual Journal',\r\n 'financeManualJournal.2_copy_your_manualJournal_into_the_template':\r\n '2. Copy your manual journals into the template',\r\n 'financeManualJournal.using_excel_or_another_spreadsheet_editor':\r\n 'Using Excel or another spreadsheet editor, fill the Kledo template with the details of your manual journals. Make sure the product details match the column headings provided in the template.',\r\n 'financeManualJournal.important': 'IMPORTANT',\r\n 'financeManualJournal.3_upload_the_updated_template_file_here':\r\n '3. Upload the updated template file here',\r\n 'financeManualJournal.upload': 'Upload',\r\n 'financeManualJournal.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Save your updated template and you are ready to go',\r\n 'financeManualJournal.a_maximum_of_500_manualJournal_can_be_imported_at_a_time':\r\n 'A maximum of 1.000 manual journals can be imported at a time.',\r\n 'financeManualJournal.import_actions_only_insert_new_manualJournal_cannot_update_or_delete':\r\n 'Import actions only insert new manual journals, cannot update nor delete.',\r\n 'financeManualJournal.dont_change_the_column_heading_in_the_template_file':\r\n 'Do not change the column headings in the template file. These need to be unchanged for the important to work in the next step.',\r\n 'financeManualJournal.manualJournal_successfully_imported':\r\n '{rowCount} manual journal imported successfully.',\r\n 'financeManualJournal.go_to_manualJournal_list': 'Go to manual journal list',\r\n\r\n 'financeFixedAssets.register': 'Register',\r\n 'financeFixedAssets.fixed_assets': 'Fixed Assets',\r\n 'financeFixedAssets.add_fixed_asset': 'Add Fixed Asset',\r\n 'financeFixedAssets.asset_name': 'Asset Name',\r\n 'financeFixedAssets.purchase_invoice': 'Purchase Invoice',\r\n 'financeFixedAssets.purchase_date': 'Purchase Date',\r\n 'financeFixedAssets.purchase_price': 'Purchase Price',\r\n 'financeFixedAssets.book_value': 'Book Value',\r\n 'financeFixedAssets.init_cost': 'Initial Cost',\r\n 'financeFixedAssets.disposal_date': 'Disposal Date',\r\n 'financeFixedAssets.disposal_price': 'Disposal Price',\r\n 'financeFixedAssets.gain': 'Gain/Losses',\r\n 'financeFixedAssets.number': 'Number',\r\n 'financeFixedAssets.purchase_price_from': 'From',\r\n 'financeFixedAssets.purchase_price_to': 'To',\r\n 'financeFixedAssets.details': 'Details',\r\n 'financeFixedAssets.please_input_the_asset_name': 'Please input the asset name.',\r\n 'financeFixedAssets.max_characters': 'Max {value} characters.',\r\n 'financeFixedAssets.min_characters': 'Min {value} characters.',\r\n 'financeFixedAssets.please_select_purchase_date': 'Please select purchase date.',\r\n 'financeFixedAssets.please_input_the_purchase_price': 'Please input the purcahse price. ',\r\n 'financeFixedAssets.fixed_asset_account': 'Fixed Asset Account',\r\n 'financeFixedAssets.please_select_a_fixed_asset_account': 'Please select a fixed asset account.',\r\n 'financeFixedAssets.select_fixed_asset_account': 'Select fixed asset account',\r\n 'financeFixedAssets.credited_from_account': 'Credited From Account',\r\n 'financeFixedAssets.please_select_a_credit_from_account': 'Please select a credited from account',\r\n 'financeFixedAssets.select_credit_from_account': 'Select credit from account',\r\n 'financeFixedAssets.description': 'Description',\r\n 'financeFixedAssets.must_greater_than_0': 'Must greater than 0.',\r\n 'financeFixedAssets.depreciation': 'Depreciation',\r\n 'financeFixedAssets.no_depreciation': 'No depreciation',\r\n 'financeFixedAssets.accumulated_depreciation_account': 'Accumulated Depreciation Account',\r\n 'financeFixedAssets.select_accumulated_depreciation_account':\r\n 'Select accumulated depreciation account',\r\n 'financeFixedAssets.depreciation_expense_account': 'Depreciation Expense Account',\r\n 'financeFixedAssets.select_depreciation_expense_account': 'Select depreciation expense account',\r\n 'financeFixedAssets.depreciation_method': 'Depreciation Method',\r\n 'financeFixedAssets.select_depreciation_method': 'Select depreciation method',\r\n 'financeFixedAssets.rate': 'Rate',\r\n 'financeFixedAssets.effective_life': 'Effective Life (years)',\r\n 'financeFixedAssets.show_more_options': 'Show more options',\r\n 'financeFixedAssets.depreciation_start_date': 'Depreciation start date',\r\n 'financeFixedAssets.accumulated_depreciation': 'Accumulated Depreciation',\r\n 'financeFixedAssets.cost_limit': 'Cost Limit',\r\n 'financeFixedAssets.residual_value': 'Residual Value',\r\n 'financeFixedAssets.hide_more_options': 'Hide more options',\r\n 'financeFixedAssets.please_select_a_accumulated_depreciation_account':\r\n 'Please select a accumulated depreciation account.',\r\n 'financeFixedAssets.please_select_a_depreciation_expense_account':\r\n 'Please select a depreciation expense account.',\r\n 'financeFixedAssets.please_select_a_depreciation_method': 'Please select a depreciation method.',\r\n 'financeFixedAssets.must_equal_or_smaller_than_cost_limit_minus_residual_value':\r\n 'Must equal or smaller than (cost limit) - (residual value).',\r\n 'financeFixedAssets.must_equal_or_smaller_than_purchase_price':\r\n 'Must equal or smaller than purchase price.',\r\n 'financeFixedAssets.must_equal_or_smaller_than_cost_limit':\r\n 'Must equal or smaller than cost limit.',\r\n 'financeFixedAssets.transactions': 'Transactions',\r\n 'financeFixedAssets.detail_fixed_asset': 'Detail Fixed Asset',\r\n 'financeFixedAssets.detail_title': 'Fixed Asset {detail}',\r\n 'financeFixedAssets.date': 'Date',\r\n 'financeFixedAssets.reference': 'Reference',\r\n 'financeFixedAssets.debit': 'Debit',\r\n 'financeFixedAssets.credit': 'Credit',\r\n 'financeFixedAssets.undo_dispose': 'Undo Dispose',\r\n 'financeFixedAssets.dispose': 'Dispose',\r\n 'financeFixedAssets.rollback_depreciation': 'Rollback Depreciation',\r\n 'financeFixedAssets.error_cannot_add': 'Error cannot add fixed asset.',\r\n 'financeFixedAssets.error_cannot_update': 'Error cannot update fixed asset.',\r\n 'financeFixedAssets.error_cannot_delete': 'Error cannot delete fixed asset.',\r\n 'financeFixedAssets.edit_title': 'Edit Fixed Asset {detail}',\r\n 'financeFixedAssets.dispose_fixed_asset': 'Dispose Fixed Asset',\r\n 'financeFixedAssets.dispose_title': 'Dispose {title}',\r\n 'financeFixedAssets.last_depreciation': 'Last Depreciation',\r\n 'financeFixedAssets.sale_price': 'Sale Price',\r\n 'financeFixedAssets.journal_entries': 'Journal Entries',\r\n 'financeFixedAssets.name': 'Name',\r\n 'financeFixedAssets.account': 'Account',\r\n 'financeFixedAssets.acquisition_const': 'Acquisition cost',\r\n 'financeFixedAssets.gain_on_disposal': 'Gain on disposal',\r\n 'financeFixedAssets.loss_on_disposal': 'Loss on disposal',\r\n 'financeFixedAssets.please_select_disposal_date': 'Please select disposal date.',\r\n 'financeFixedAssets.please_input_the_sale_price': 'Please input the sale price.',\r\n 'financeFixedAssets.deposit_to': 'Deposit to',\r\n 'financeFixedAssets.deposit_to_account': 'Deposit to account',\r\n 'financeFixedAssets.please_select_a_deposit_to_account': 'Please select a deposit to account.',\r\n 'financeFixedAssets.must_equal_or_higher_than_purchase_date_and_last_depreciation_date':\r\n 'Must equal or higher than purchase date and last depreciation date.',\r\n 'financeFixedAssets.must_equal_or_higher_than_purchase_date':\r\n 'Must equal or higher than purchase date.',\r\n 'financeFixedAssets.register_fixed_asset': 'Register Fixed Asset',\r\n 'financeFixedAssets.run_depreciation': 'Run Depreciation',\r\n 'financeFixedAssets.period': 'Period',\r\n 'financeFixedAssets.method': 'Method',\r\n 'financeFixedAssets.depreciation_amount': 'Depreciation Amount',\r\n 'financeFixedAssets.error_cannot_run_depreciation': 'Error cannot run depreciation.',\r\n 'financeFixedAssets.please_select_at_least_a_depreciation':\r\n 'Please select at least a depreciation.',\r\n 'financeFixedAssets.depreciation_executed_successfully': 'Depreciation executed successfully.',\r\n 'financeFixedAssets.back_to_asset_list': 'Back to asset list',\r\n 'financeFixedAssets.apply_depreciation': 'Apply Depreciation',\r\n 'financeFixedAssets.are_u_sure_to_undo_dispose': 'Are you sure to undo dispose ?',\r\n 'financeFixedAssets.error_cannot_undo_dispose': 'Error cannot undo dispose.',\r\n 'financeFixedAssets.error_cannot_rollback_depreciation': 'Error cannot rollback depreciation.',\r\n 'financeFixedAssets.are_u_sure_to_rollback_depreciation':\r\n 'Are you sure to rollback depreciation ?',\r\n 'financeFixedAssets.please_input_the_number': 'Please input the number.',\r\n 'financeFixedAssets.select_deposit_to_account': 'Select deposit to account',\r\n 'financeFixedAssets.edit_fixed_asset': 'Edit Fixed Asset',\r\n 'financeFixedAssets.detail_fixed_asset_transaction': 'Detail Fixed Asset Transaction',\r\n 'financeFixedAssets.dispose_detail': 'Dispose',\r\n 'financeFixedAssets.follow_these_steps_to_import_your_fixedAsset':\r\n 'Follow these steps to import your fixed asset',\r\n 'financeFixedAssets.1_download_your_fixedAsset_template_file':\r\n '1. Download your fixed asset template file',\r\n 'financeFixedAssets.start_by_downloading_our_fixedAsset_csv':\r\n 'Start by downloading our fixed assets Excel template file. This file has the correct column headings Kledo needs to import details of your fixed assets.',\r\n 'financeFixedAssets.download_template_file': 'Download Template File',\r\n 'financeFixedAssets.download_template_data_example_file': 'Download template data example file',\r\n 'financeFixedAssets.import': 'Import Fixed Asset',\r\n 'financeFixedAssets.2_copy_your_fixedAsset_into_the_template':\r\n '2. Copy your fixed assets into the template',\r\n 'financeFixedAssets.using_excel_or_another_spreadsheet_editor':\r\n 'Using Excel or another spreadsheet editor, fill the Kledo template with the details of your fixed assets. Make sure the product details match the column headings provided in the template.',\r\n 'financeFixedAssets.important': 'IMPORTANT',\r\n 'financeFixedAssets.3_upload_the_updated_template_file_here':\r\n '3. Upload the updated template file here',\r\n 'financeFixedAssets.upload': 'Upload',\r\n 'financeFixedAssets.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Save your updated template and you are ready to go',\r\n 'financeFixedAssets.a_maximum_of_500_fixedAsset_can_be_imported_at_a_time':\r\n 'A maximum of 1.000 fixed assets can be imported at a time.',\r\n 'financeFixedAssets.import_actions_only_insert_new_fixedAsset_cannot_update_or_delete':\r\n 'Import actions only insert new fixed assets, cannot update nor delete.',\r\n 'financeFixedAssets.dont_change_the_column_heading_in_the_template_file':\r\n 'Do not change the column headings in the template file. These need to be unchanged for the important to work in the next step.',\r\n 'financeFixedAssets.fixedAsset_successfully_imported':\r\n '{rowCount} fixed asset imported successfully.',\r\n 'financeFixedAssets.go_to_fixedAsset_list': 'Go to fixed asset list',\r\n 'financeFixedAssets.the_date_this_asset_was_purchased_or_acquired':\r\n 'The date this asset was purchased or acquired.',\r\n 'financeFixedAssets.the_total_cost_of_acquiring_this_asset':\r\n 'The total cost of acquiring this asset, tax exempt.',\r\n 'financeFixedAssets.account_to_hold_the_balance_of_this_fixed_asset':\r\n 'Account to hold the balance of this fixed asset.',\r\n 'financeFixedAssets.account_for_crediting_the_purchase_of_fixed_asset':\r\n 'Account for crediting the purchase of fixed assets. For example Cash, Loans or Capital.',\r\n 'financeFixedAssets.an_expense_account_to_record_monthly_depreciation':\r\n 'An expense account to record monthly depreciation.',\r\n 'financeFixedAssets.accounts_for_contra_assets_to_accommodate_accumulated_depreciation':\r\n 'Accounts for contra assets to accommodate accumulated depreciation.',\r\n 'financeFixedAssets.percent_depreciation_value_each_year':\r\n 'Percent depreciation value each year.',\r\n 'financeFixedAssets.the_longevity_of_the_asset_since_purchase_in_years':\r\n 'The longevity of the asset since purchase in years.',\r\n 'financeFixedAssets.method_of_calculating_assets_each_months':\r\n 'Method of calculating assets each month {br}Straight Line = Depreciation on average over the useful life of the asset.{br}For example, if the purchase price of an asset is 1000 and the depreciation value is 20%, then the depreciation per year is 1000 * 20 % = 200{br}Declining Balance 100% = Depreciation with a greater rate of decline at the beginning of the asset is life.{br}For example, if the asset purchase price is 1000 and the depreciation value is 20%, then{br}First Year Depreciation = 1000 x 20% = 200{br}Depreciation in the Second Year = (1000 - 200) x 20% = 160{br}Depreciation in Third Year = (800 - 160) x 20% = 128
Declining Balance 150% calculates the depreciation by the depreciation value multiplied by 150%{br}200 % Declining Balance calculates the depreciation by the depreciation value multiplied by 200%',\r\n 'financeFixedAssets.the_commencement_date_of_the_accumulated_depreciation_account_opening_balance':\r\n 'The commencement date of the accumulated depreciation account opening balance. Can be filled with the same as the date of purchase of assets, or better to use the start date of the period or the date of migration.',\r\n 'financeFixedAssets.beginning_balance_for_accumulated_depreciation_accounts':\r\n 'Beginning balance for accumulated depreciation accounts from past books or records.',\r\n 'financeFixedAssets.the_upper_limit_on_the_value_of_the_depreciated_assets':\r\n 'The upper limit on the value of the depreciated assets. For example, if an asset is purchased at a price of IDR 1,000, then the cost limit is set at IDR 600, so only IDR 600 is depreciated.',\r\n 'financeFixedAssets.the_residual_value_is_the_minimum_amount_of_assets':\r\n 'The residual value is the minimum amount of assets that cannot be depreciated. For example, if an asset is purchased at a price of Rp1,000, then the residual value is set at Rp. 200. So when the asset is depreciated every month, and the final asset value is only Rp. 200, the asset is not depreciated.',\r\n 'financeFixedAssets.image': 'Fixed Asset Image',\r\n 'financeFixedAssets.show_image': 'Show fixed asset image',\r\n 'financeFixedAssets.hide_image': 'Hide fixed asset image',\r\n\r\n 'financeLockDate.lock_date': 'Lock Date',\r\n 'financeLockDate.lock_date_will_stop_data_from_being_changed':\r\n 'Lock date will stop data from being changed for a specific period. You can change these at any time.',\r\n 'financeLockDate.stop_all_users_making_changes_on_and_before':\r\n 'Stop all users making changes on and before',\r\n 'financeLockDate.please_select_a_date': 'Please select a date.',\r\n 'financeLockDate.error_cannot_set_lock_date': 'Error cannot set lock date.',\r\n 'financeLockDate.cannot_higher_than_now': 'Cannot higher than now.',\r\n 'financeLockDate.cannot_select_before_lock_date': 'Cannot select before lock date.',\r\n 'financeLockDate.this_transaction_is_locked': 'This transaction is locked.',\r\n 'financeLockDate.click_button_below_to_remove_the_lock_date':\r\n 'Click button below to remove the lock date',\r\n 'financeLockDate.remove_lock_date': 'Remove Lock Date',\r\n 'financeLockDate.error_cannot_delete': 'Error cannot remove lock date.',\r\n\r\n 'property.property': 'Property',\r\n 'property.company': 'Company',\r\n 'property.property_details': 'Property Details',\r\n 'property.company_details': 'Company Details',\r\n 'property.tax_details': 'Tax Details',\r\n 'property.system_settings': 'System Settings',\r\n 'property.property_logo': 'Property Logo',\r\n 'property.company_logo': 'Company Logo',\r\n 'property.error_cannot_update_tax_details': 'Cannot update tax details.',\r\n 'property.property_details_successfully_updated': 'Property details successfully updated.',\r\n 'property.company_details_successfully_updated': 'Company details successfully updated.',\r\n 'property.error_cannot_update_property_details': 'Cannot update property details.',\r\n 'property.error_cannot_update_company_details': 'Cannot update company details.',\r\n 'property.system_details_successfully_updated': 'System details successfully updated.',\r\n 'property.error_cannot_update_system_details': 'Cannot update system details.',\r\n 'property.tax_details_successfully_updated': 'Tax details successfully updated.',\r\n 'property.property_name': 'Name',\r\n 'property.company_name': 'Name',\r\n 'property.please_input_the_property_name': 'Please input the property name.',\r\n 'property.please_input_the_company_name': 'Please input the company name.',\r\n 'property.max_100_characters': 'Max 100 characters.',\r\n 'property.emai_address': 'Emai Address',\r\n 'property.invalid_email_address_format': 'Invalid email address format.',\r\n 'property.phone_number': 'Phone Number',\r\n 'property.max_20_characters': 'Max 20 characters.',\r\n 'property.only_number_allowed': 'Only number allowed.',\r\n 'property.address': 'Billing Address',\r\n 'property.address_delivery': 'Delivery Address',\r\n 'property.country': 'Country',\r\n 'property.tax_number': 'Tax Number',\r\n 'property.please_select_the_country': 'Please select the country.',\r\n 'property.select_country': 'Select country',\r\n 'property.arrival_time': 'Arrival Time',\r\n 'property.departure_time': 'Departure Time',\r\n 'property.image_file_size_maximal': 'Image file size maximal',\r\n 'property.language': 'Language',\r\n 'property.select_time_region': 'Select time region',\r\n 'property.timezone': 'Timezone',\r\n 'property.please_select_the_language': 'Please select the language.',\r\n 'property.select_timezone': 'Select timezone',\r\n 'property.please_select-the_timezone': 'Please select the timezone.',\r\n 'property.date_format': 'Date Format',\r\n 'property.please_select_the_date_format': 'Please select the date format.',\r\n 'property.select_date_format': 'Select date format',\r\n 'property.time_format': 'Time Format',\r\n 'property.please_select_the_time_format': 'Please select the time format.',\r\n 'property.select_time_format': 'Select time format',\r\n 'property.Currency_Format': 'Currency Format',\r\n 'property.please_select_the_currency_format': 'Please select the currency format.',\r\n 'property.select_currency_format': 'Select currency format',\r\n 'property.country_tax_identifier_name': 'Country Tax Identifier Name',\r\n 'property.only_alphanumeric_allowed': 'Only alphanumeric allowed.',\r\n 'property.company_tax_number': 'Company Tax Number',\r\n 'property.tax_name': 'Tax Name',\r\n 'property.tax_rate': 'Tax Rate',\r\n 'property.image_file_dimension_maximal': 'Image file dimension maximal',\r\n 'property.click_or_drag_file_to_this_area_to_upload': 'Click or drag file to this area to upload',\r\n 'property.preview': 'Preview',\r\n 'property.file_uploaded_successfully': 'file uploaded successfully.',\r\n 'property.file_upload_failed': 'file upload failed.',\r\n 'property.you_can_only_upload_jpg_or_png_file_': 'You can only upload JPG/PNG file.',\r\n 'property.image_must_smaller_than': 'Image must smaller than',\r\n 'property.image_width_must_smaller_than': 'Image width must smaller than',\r\n 'property.image_height_must_smaller_than': 'Image height must smaller than',\r\n 'property.currency': 'Currency',\r\n 'property.please_select_the_currency': 'Please select the currency.',\r\n 'property.select_currency': 'Select currency',\r\n 'property.number_after_comma': 'Number after comma',\r\n 'property.please_select_the_number_after_comma': 'Please select number after comma.',\r\n 'property.select_number_after_comma': 'Select number after comma',\r\n\r\n 'financeWareHouses.add_warehouse': 'Add Warehouse',\r\n 'financeWareHouses.financeWareHouses': 'Warehouse',\r\n 'financeWareHouses.warehouse_name': 'Warehouse Name',\r\n 'financeWareHouses.successfully_added': 'successfully added.',\r\n 'financeWareHouses.error_cannot_add': 'Cannot add warehouse.',\r\n 'financeWareHouses.error_cannot_update': 'Cannot update warehouse.',\r\n 'financeWareHouses.error_cannot_move': 'Cannot move the warehouse.',\r\n 'financeWareHouses.error_cannot_delete': 'Cannot delete the warehouse.',\r\n 'financeWareHouses.error_cannot_change_status': 'Cannot change status the warehouse.',\r\n 'financeWareHouses.error_cannot_load_warehouses': 'Cannot load warehouses.',\r\n 'financeWareHouses.edit_warehouse': 'Edit Warehouse',\r\n 'financeWareHouses.please_input_the_name': 'Please input the name.',\r\n 'financeWareHouses.please_input_the_code': 'Please input the code.',\r\n 'financeWareHouses.name': 'Name',\r\n 'financeWareHouses.code': 'Code',\r\n 'financeWareHouses.max_characters': 'Max {value} characters.',\r\n 'financeWareHouses.min_characters': 'Min {value} characters.',\r\n 'financeWareHouses.total_qty': 'Total Quantity',\r\n 'financeWareHouses.only_alphanumeric_allowed': 'Only alphanumeric allowed.',\r\n 'financeWareHouses.desc': 'Description',\r\n 'financeWareHouses.total_value': 'Total Value',\r\n 'financeWareHouses.stock_adjustment': 'Stock Adjustment',\r\n 'financeWareHouses.warehouse_transfer': 'Warehouse Transfer',\r\n 'financeWareHouses.import_warehouse_transfer': 'Import Warehouse Transfer',\r\n 'financeWareHouses.transfer_in': 'Transfer In',\r\n 'financeWareHouses.transfer_out': 'Transfer Out',\r\n 'financeWareHouses.qty': 'Quantity',\r\n 'financeWareHouses.value': 'Value',\r\n 'financeWareHouses.detail_warehouse': 'Detail Warehouse',\r\n 'financeWareHouses.show_transactions': 'Show Transactions',\r\n 'financeWareHouses.hide_transactions': 'Hide Transactions',\r\n 'financeWareHouses.purchase_&_sale': 'Purchase & Sale',\r\n 'financeWareHouses.transactions': 'Transactions',\r\n 'financeWareHouses.date': 'Date',\r\n 'financeWareHouses.type': 'Type',\r\n 'financeWareHouses.number': 'Number',\r\n 'financeWareHouses.debit': 'Debit',\r\n 'financeWareHouses.credit': 'Credit',\r\n 'financeWareHouses.from': 'From',\r\n 'financeWareHouses.to': 'To',\r\n 'financeWareHouses.adjustment_type': 'Adjustment Type',\r\n 'financeWareHouses.please_select_date': 'Please select date',\r\n 'financeWareHouses.warehouse_transfer_out': 'Warehouse Transfer Out',\r\n 'financeWareHouses.warehouse_transfer_in': 'Warehouse Transfer In',\r\n 'financeWareHouses.qty_before': 'Qty Before',\r\n 'financeWareHouses.qty_after': 'Qty After',\r\n 'financeWareHouses.transfer_qty': 'Transfer Qty',\r\n 'financeWareHouses.add_more': 'Add more',\r\n 'financeWareHouses.attachments': 'Attachments',\r\n 'financeWareHouses.select_warehouse': 'Select warehouse',\r\n 'financeWareHouses.please_input_the_transfer_qty': 'Please input the transfer qty.',\r\n 'financeWareHouses.please_select_a_warehouse': 'Please select a warehouse.',\r\n 'financeWareHouses.must_greater_than_0': 'Must greater than 0.',\r\n 'financeWareHouses.detail_transfer': 'Warehouse Transfer {number}',\r\n 'financeWareHouses.detail_transfer_title': 'Warehouse Transfer Detail',\r\n 'financeWareHouses.edit_warehouse_transfer': 'Edit Warehouse Transfer',\r\n 'financeWareHouses.insufficient_stock': 'Insufficient stock',\r\n 'financeWareHouses.detail_stockadjustment_title': 'Stock Adjustment Detail',\r\n 'financeWareHouses.detail_stockadjustment': 'Stock Adjustment {number}',\r\n 'financeWareHouses.difference': 'Difference',\r\n 'financeWareHouses.average_price': 'Average Price',\r\n 'financeWareHouses.account': 'Account',\r\n 'financeWareHouses.actual_qty': 'Actual Qty',\r\n 'financeWareHouses.actual_qty_2': 'Actual Qty',\r\n 'financeWareHouses.import_stock_adjustment': 'Import Stock Adjustment',\r\n 'financeWareHouses.download': 'Download',\r\n 'financeWareHouses.please_select_adjustment_type': 'Please select adjustment type',\r\n 'financeWareHouses.add_stock_adjustment': 'Add Stock Adjustment',\r\n 'financeWareHouses.select_account': 'Select account',\r\n 'financeWareHouses.recorded_qty': 'Recorded Qty',\r\n 'financeWareHouses.please_input_the_actual_qty': 'Please input the actual qty',\r\n 'financeWareHouses.please_input_the_difference_qty': 'Please input the difference qty',\r\n 'financeWareHouses.please_input_the_average_price': 'Please input the average price',\r\n 'financeWareHouses.error_cannot_update_stock_adjustment': 'Cannot update stock adjustment',\r\n 'financeWareHouses.error_cannot_add_stock_adjustment': 'Cannot add stock adjustment',\r\n 'financeWareHouses.edit_stock_adjustment': 'Edit Stock Adjustment',\r\n 'financeWareHouses.transfer': 'Transfer',\r\n 'financeWareHouses.cannot_less_than_0': 'Cannot less than 0.',\r\n 'financeWareHouses.follow_these_steps_to_import_your_stockAdjustment':\r\n 'Follow these steps to import your stock adjustment',\r\n 'financeWareHouses.1_download_your_stockAdjustment_template_file':\r\n '1. Download your stock adjustment template file',\r\n 'financeWareHouses.start_by_downloading_our_stockAdjustment_csv':\r\n 'Start by downloading our stock adjustments Excel template file. This file has the correct column headings Kledo needs to import details of your stock adjustments.',\r\n 'financeWareHouses.download_template_file': 'Download Template File',\r\n 'financeWareHouses.download_template_data_example_file': 'Download template data example file',\r\n 'financeWareHouses.import': 'Import Stock Adjustment',\r\n 'financeWareHouses.2_copy_your_stockAdjustment_into_the_template':\r\n '2. Copy your stock adjustments into the template',\r\n 'financeWareHouses.important': 'IMPORTANT',\r\n 'financeWareHouses.3_upload_the_updated_template_file_here':\r\n '3. Upload the updated template file here',\r\n 'financeWareHouses.upload': 'Upload',\r\n 'financeWareHouses.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Save your updated template and you are ready to go',\r\n 'financeWareHouses.a_maximum_of_500_stockAdjustment_can_be_imported_at_a_time':\r\n 'A maximum of 1.000 stock adjustments can be imported at a time.',\r\n 'financeWareHouses.import_actions_only_insert_new_stockAdjustment_cannot_update_or_delete':\r\n 'Import actions only insert new stock adjustments, cannot update nor delete.',\r\n 'financeWareHouses.dont_change_the_column_heading_in_the_template_file':\r\n 'Do not change the column headings in the template file. These need to be unchanged for the important to work in the next step.',\r\n 'financeWareHouses.stockAdjustment_successfully_imported':\r\n '{rowCount} stock adjustment imported successfully.',\r\n 'financeWareHouses.go_to_stockAdjustment_list': 'Go to stock adjustment list',\r\n 'financeWareHouses.account_id_help': 'Select stock adjustment account for journaling.',\r\n 'financeWareHouses.count_stock_help':\r\n 'If you want to do a stock take, select the type of stock calculation. With this type, the number of stock items will be locked so that all stock movements prior to this stock adjustment will be ignored.',\r\n 'financeWareHouses.count_stock_in_out_help':\r\n 'If you want to increase or decrease stock from a warehouse, select the In/Out Stock type.',\r\n 'financeWareHouses.warehouse_transfer_successfully_imported':\r\n '{rowCount} warehouse transfer imported successfully.',\r\n 'financeWareHouses.go_to_warehouse_page': 'Go to warehouse page',\r\n 'financeWareHouses.follow_these_steps_to_import_your_warehouse_transfer':\r\n 'Follow these steps to import your warehouse transfers',\r\n 'financeWareHouses.1_download_your_warehouse_transfer_template_file':\r\n '1. Download your warehouse transfers template file',\r\n 'financeWareHouses.start_by_downloading_our_warehouse_transfer_csv':\r\n 'Start by downloading our warehouse transfer Excel template file. This file has the correct column headings Kledo needs to import details of your warehouse transfers.',\r\n 'financeWareHouses.2_copy_your_warehouse_transfer_into_the_template':\r\n '2. Copy your warehouse transfers into the template',\r\n 'financeWareHouses.using_excel_or_another_spreadsheet_editor':\r\n 'Using Excel or another spreadsheet editor, fill the Kledo template with the details of your warehouse transfer. Make sure the warehouse transfer details match the column headings provided in the template.',\r\n 'financeWareHouses.a_maximum_of_500_warehouse_transfer_can_be_imported_at_a_time':\r\n 'A maximum of 1.000 warehouse transfers can be imported at a time.',\r\n 'financeWareHouses.change_access': 'Change Access Rights',\r\n 'financeWareHouses.who_can_access_this_warehouse': 'Who can access this warehouse?',\r\n 'financeWareHouses.all_user': 'All User',\r\n 'financeWareHouses.access': 'Access Rights',\r\n 'financeWareHouses.recorded_amount': 'Recorded Amount',\r\n 'financeWareHouses.actual_amount': 'Actual Amount',\r\n 'financeWareHouses.difference_2': 'Difference',\r\n\r\n 'approvals.approve': 'Approve',\r\n 'approvals.reject': 'Reject',\r\n 'approvals.waiting_for_approval': 'Waiting for Approval',\r\n 'approvals.waiting_for_my_approval': 'Waiting for My Approval',\r\n 'approvals.rejected': 'Rejected',\r\n 'approvals.are_you_sure_to_approve': 'Are you sure you approve to this transaction?',\r\n 'approvals.are_you_sure_to_reject': 'Are you sure reject this transaction?',\r\n 'approvals.enable_approvals': 'Enable Approvals',\r\n 'approvals.approval_levels': 'How many levels of approval?',\r\n 'approvals.approval_authority': 'Roles that have level {level} approval authority',\r\n 'approvals.role_is_required': 'Please select a role',\r\n 'approvals.approval_progress': 'Approval progress',\r\n 'approvals.and_number_others': 'and {value} others',\r\n 'approvals.cancel_approval': 'Cancel approval',\r\n 'approvals.cancel_rejection': 'Cancel rejection',\r\n 'approvals.are_you_sure_to_cancel_approval':\r\n 'Are you sure to cancel the approval for this transaction?',\r\n\r\n 'layoutInvoice.layout_invoice': 'Layout Invoice',\r\n 'layoutInvoice.invoice': 'Invoice',\r\n 'layoutInvoice.tax_invoice': 'Tax Invoice',\r\n 'layoutInvoice.delivery': 'Delivery Slip',\r\n 'layoutInvoice.order': 'Sales Order',\r\n 'layoutInvoice.receipt': 'Receipt',\r\n 'layoutInvoice.expense_slip': 'Expense Slip',\r\n 'layoutInvoice.purchase_payment': 'Remittance Advice',\r\n 'layoutInvoice.send_receive_money': 'Send/Receive Money',\r\n 'layoutInvoice.remittance_advice': 'Remittance Advice',\r\n 'layoutInvoice.cash_receipt': 'Cash Receipt',\r\n 'layoutInvoice.account_code': 'Account Code',\r\n 'layoutInvoice.account_name': 'Account Name',\r\n 'layoutInvoice.error_cannot_load_data': 'Cannot load data.',\r\n 'layoutInvoice.error_cannot_save_data': 'Cannot save data.',\r\n 'layoutInvoice.error_cannot_reset_data': 'Cannot reset data.',\r\n 'layoutInvoice.sale': 'Sale',\r\n 'layoutInvoice.purchase': 'Purchase',\r\n 'layoutInvoice.company_logo': 'Company Logo',\r\n 'layoutInvoice.signature_logo': 'Signature Logo',\r\n 'layoutInvoice.upload_logo': 'Upload logo',\r\n 'layoutInvoice.change_logo_size': 'Change logo size',\r\n 'layoutInvoice.upload_signature': 'Upload signature',\r\n 'layoutInvoice.purchase_order': 'Purchase Order',\r\n 'layoutInvoice.purchase_invoice': 'Purchase Invoice',\r\n 'layoutInvoice.purchase_return': 'Purchase Return',\r\n 'layoutInvoice.purchase_quote': 'Purchase Quote',\r\n 'layoutInvoice.quote': 'Quote',\r\n 'layoutInvoice.sell_invoice': 'Invoice',\r\n 'layoutInvoice.show_discount': 'Show Discount',\r\n 'layoutInvoice.show_account': 'Show Account',\r\n 'layoutInvoice.show_price': 'Show Price',\r\n 'layoutInvoice.show_tax_total': 'Show Tax Total',\r\n 'layoutInvoice.show_subtotal': 'Show Subtotal',\r\n 'layoutInvoice.show_total': 'Show Total',\r\n 'layoutInvoice.show_amount_column': 'Show Amount Column',\r\n 'layoutInvoice.show_tax': 'Show Tax',\r\n 'layoutInvoice.show_product': 'Show Product',\r\n 'layoutInvoice.show_ref_code_product': 'Show Product SKU',\r\n 'layoutInvoice.show_product_image': 'Show Product Image',\r\n 'layoutInvoice.show_qty': 'Show Quantity',\r\n 'layoutInvoice.show_total_qty': 'Show Total Quantity',\r\n 'layoutInvoice.show_unit': 'Show Unit',\r\n 'layoutInvoice.show_description': 'Show Description',\r\n 'layoutInvoice.show_tags': 'Show Tags',\r\n 'layoutInvoice.show_term': 'Show Term',\r\n 'layoutInvoice.show_payment_detail': 'Show Payment Detail',\r\n 'layoutInvoice.show_sales_person': 'Show Sales Person',\r\n 'layoutInvoice.show_paid_status': 'Show Paid Status',\r\n 'layoutInvoice.show_warehouse': 'Show Warehouse',\r\n 'layoutInvoice.show_amount_in_word': 'Show Amount in Word',\r\n 'layoutInvoice.show_contact_name': 'Show Contact Name',\r\n 'layoutInvoice.show_attention': 'Show UP/ATTN',\r\n 'layoutInvoice.show_detail_contact': 'Show Detail Contact',\r\n 'layoutInvoice.show_manufacturing_product_materials': 'Show Manufacturing Product Materials',\r\n 'layoutInvoice.show_manufacturing_product_materials_only':\r\n 'Show Manufacturing Product Materials Only',\r\n 'layoutInvoice.show_the_calculated_value_of_the_remaining_bill':\r\n 'Show The Calculated Value of the Remaining Bill',\r\n 'layoutInvoice.show_total_after_discount': 'Show Total After Discount',\r\n 'layoutInvoice.show_coa': 'Show COA',\r\n 'layoutInvoice.show_reference': 'Show Reference',\r\n 'layoutInvoice.change_template': 'Change Template',\r\n 'layoutInvoice.template': 'Template',\r\n 'layoutInvoice.stamp': 'Stamp',\r\n 'layoutInvoice.change_stamp': 'Change Stamp',\r\n 'layoutInvoice.edit_header': 'Edit Header',\r\n 'layoutInvoice.please_choose_template': 'Please choose template bellow :',\r\n 'layoutInvoice.please_choose_stamp': 'Please choose stemp bellow :',\r\n 'layoutInvoice.select_this_template': 'Select template',\r\n 'layoutInvoice.select_this_stamp': 'Select stamp',\r\n 'layoutInvoice.current_template': 'Current template',\r\n 'layoutInvoice.current_stamp': 'Current stemp',\r\n 'layoutInvoice.name': 'Name',\r\n 'layoutInvoice.transfer_money': 'Transfer Money',\r\n 'layoutInvoice.label_delivery': 'Label Delivery',\r\n 'layoutInvoice.proof_of_goods_receipt': 'Proof of Goods Receipt',\r\n 'layoutInvoice.payment_recap': 'Payment Recap',\r\n 'layoutInvoice.production_orders': 'Production Orders',\r\n 'layoutInvoice.show_due_date': 'Show Due Date',\r\n 'layoutInvoice.show_number': 'Show Number',\r\n 'layoutInvoice.show_expedition': 'Show Expedition',\r\n 'layoutInvoice.show_message': 'Show Message',\r\n 'layoutInvoice.show_signature': 'Show Signature',\r\n 'layoutInvoice.show_signature_detail': 'Show TTd Sender & Receiver',\r\n 'layoutInvoice.font_size': 'Font Size',\r\n 'layoutInvoice.additional_message': 'Additional Message',\r\n 'layoutInvoice.additional_message_desc':\r\n \"Message on this additional message will be added automatically on the bottom of the transaction's message.\",\r\n 'layoutInvoice.default_message': 'Default Message',\r\n 'layoutInvoice.default_message_desc':\r\n 'Default message will be loaded automatically on the message input when adding a new transaction.',\r\n 'layoutInvoice.account': 'Account',\r\n 'layoutInvoice.show_due': 'Show Balance Due',\r\n 'layoutInvoice.show_payments_received': 'Show Payments Received',\r\n 'layoutInvoice.invoice_show_coa_payment_detail': 'Show Account Code Information',\r\n 'layoutInvoice.date_format': 'Date Format',\r\n 'layoutInvoice.show_percentage_number_on_additional_number':\r\n 'Show Additional Discount Percentage Number',\r\n 'layoutInvoice.discount_price': 'Discount Price',\r\n 'layoutInvoice.show_discount_price': 'Show Discount Price',\r\n 'layoutInvoice.show_total_discount': 'Show Total Discount',\r\n 'layoutInvoice.show_qty_actual': 'Show Qty Actual',\r\n 'layoutInvoice.show_avg_price': 'Show Average Price',\r\n\r\n 'layoutReport.layout_report': 'Report Layout',\r\n 'layoutReport.manage_your_finance_report_print_pdf_layout_here':\r\n 'Manage your finance report print pdf layout here',\r\n 'layoutReport.report_logo': 'Report Logo',\r\n 'layoutReport.report_setting': 'Report Setting',\r\n 'layoutReport.show_logo': 'Show Logo',\r\n 'layoutReport.logo_position': 'Logo Position',\r\n 'layoutReport.logo_position_left': 'Left',\r\n 'layoutReport.logo_position_center': 'Center',\r\n 'layoutReport.logo_position_right': 'Right',\r\n 'layoutReport.show_comp_name': 'Show Company Name',\r\n 'layoutReport.font_family': 'Font Family',\r\n 'layoutReport.font_size': 'Font Size',\r\n 'layoutReport.margin_size': 'Margin Size',\r\n 'layoutReport.margin_top': 'Margin Top',\r\n 'layoutReport.margin_right': 'Margin Right',\r\n 'layoutReport.margin_bottom': 'Margin Bottom',\r\n 'layoutReport.margin_left': 'Margin Left',\r\n 'layoutReport.report_text': 'Report Text',\r\n 'layoutReport.comp_name': 'Company Name',\r\n 'layoutReport.report_title': 'Report Title',\r\n 'layoutReport.report_date': 'Report Date',\r\n 'layoutReport.click_here_to_reset_layout': 'Click here to reset report layout to the default',\r\n 'layoutReport.show_comp_sign': 'Show Signature',\r\n 'layoutReport.show_comp_sign_left': 'Show Signature Left',\r\n 'layoutReport.show_comp_sign_center': 'Show Signature Center',\r\n 'layoutReport.show_comp_sign_right': 'Show Signature Right',\r\n 'layoutReport.signature': 'Signature',\r\n\r\n 'financeTag.add_tag': 'Add Tag',\r\n 'financeTag.financeTag': 'Tag',\r\n 'financeTag.all_tags': 'All tags',\r\n 'financeTag.select_tag_type': 'Select tag type',\r\n 'financeTag.successfully_added': 'successfully added.',\r\n 'financeTag.error_cannot_add': 'Cannot add tag.',\r\n 'financeTag.error_cannot_update': 'Cannot update tag.',\r\n 'financeTag.edit_tag': 'Edit Tag',\r\n 'financeTag.please_input_the_tag_name': 'Please input the tag name.',\r\n 'financeTag.name': 'Name',\r\n 'financeTag.sale': 'Sale',\r\n 'financeTag.purchase': 'Purchase',\r\n 'financeTag.expense': 'Expense',\r\n 'financeTag.fixed_asset': 'Fixed Asset',\r\n 'financeTag.other': 'Other',\r\n 'financeTag.date': 'Date',\r\n 'financeTag.transaction': 'Transaction',\r\n 'financeTag.desc': 'Description',\r\n 'financeTag.total': 'Total',\r\n 'financeTag.max_characters': 'Max {value} characters.',\r\n 'financeTag.min_characters': 'Min {value} characters.',\r\n 'financeTag.only_alphanumeric_allowed': 'Only alphanumeric allowed.',\r\n 'financeTag.error_cannot_search': 'Cannot search tag.',\r\n 'financeTag.select_tag': 'Select tag',\r\n 'financeTag.reference': 'Reference',\r\n\r\n 'financeOrder.default_label_term': 'Term Order I',\r\n 'financeOrder.message': 'Message',\r\n 'financeOrder.add_order': 'Add Order',\r\n 'financeOrder.financeOrder': 'Order',\r\n 'financeOrder.open_order': 'Open order',\r\n 'financeOrder.order_waiting_approval': 'Order waiting approval',\r\n 'financeOrder.order_partial_shipped': 'Order partial shipped',\r\n 'financeOrder.successfully_added': 'successfully added.',\r\n 'financeOrder.error_cannot_add': 'Cannot add order.',\r\n 'financeOrder.error_cannot_print_pdf': 'Cannot print pdf order.',\r\n 'financeOrder.error_cannot_update': 'Cannot update order.',\r\n 'financeOrder.error_cannot_move': 'Cannot move the order.',\r\n 'financeOrder.error_cannot_change_status': 'Cannot change status the order.',\r\n 'financeOrder.edit_order': 'Edit Invoice',\r\n 'financeOrder.max_characters': 'Max {value} characters.',\r\n 'financeOrder.min_characters': 'Min {value} characters.',\r\n 'financeOrder.only_number_allowed': 'Only number allowed.',\r\n 'financeOrder.description': 'Description',\r\n 'financeOrder.tax': 'Tax',\r\n 'financeOrder.select_tax': 'Select tax',\r\n 'financeOrder.please_select_a_contact': 'Please select a contact',\r\n 'financeOrder.select_contact': 'Select contact',\r\n 'financeOrder.add_contact': 'Add contact',\r\n 'financeOrder.all_contacts': 'All contact',\r\n 'financeOrder.transaction_date': 'Transaction Date',\r\n 'financeOrder.please_select_transaction_date': 'Please select transaction date',\r\n 'financeOrder.due_date': 'Due Date',\r\n 'financeOrder.please_select_due_date': 'Please select due date',\r\n 'financeOrder.term': 'Term',\r\n 'financeOrder.select_term': 'Select term',\r\n 'financeOrder.add_term': 'Add term',\r\n 'financeOrder.price_include_tax': 'Price include tax',\r\n 'financeOrder.add_more': 'Add more',\r\n 'financeOrder.number': 'Number',\r\n 'financeOrder.please_input_the_number': 'Please input the number.',\r\n 'financeOrder.memo': 'Memo',\r\n 'financeOrder.date': 'Date',\r\n 'financeOrder.status': 'Status',\r\n 'financeOrder.balance_due': 'Balance Due',\r\n 'financeOrder.total': 'Total',\r\n 'financeOrder.please_select_a_term': 'Please select a term.',\r\n 'financeOrder.search_by_memo': 'Search',\r\n 'financeOrder.the_due_date_max_higger_than_transaction_date':\r\n 'The due date must same or after transaction date',\r\n 'financeOrder.detail_title': ' Invoice {number}',\r\n 'financeOrder.customer': 'Customer',\r\n 'financeOrder.reference': 'Reference',\r\n 'financeOrder.product': 'Product',\r\n 'financeOrder.qty': 'Qty',\r\n 'financeOrder.not_sent_yet': 'Not Sent Yet',\r\n 'financeOrder.price': 'Price',\r\n 'financeOrder.add_product': 'Add Product',\r\n 'financeOrder.select_product': 'Select product',\r\n 'financeOrder.attachments': 'Attachments',\r\n 'financeOrder.save_&_approve': 'Save & approve',\r\n 'financeOrder.save_as_draft': 'Save as draft',\r\n 'financeOrder.save_&_submit_for_approval': 'Save & submit for approval',\r\n 'financeOrder.please_select_a_product': 'Please select a product.',\r\n 'financeOrder.please_input_the_qty': 'Please input the qty.',\r\n 'financeOrder.please_input_the_price': 'Please input the price.',\r\n 'financeOrder.please_input_the_amount': 'Please input the amount.',\r\n 'financeOrder.approve': 'Approve',\r\n 'financeOrder.are_you_sure_to_approve': 'Are you sure to approve ?',\r\n 'financeOrder.submit_for_approval': 'Submit for approval',\r\n 'financeOrder.are_you_sure_to_submit_for_approval': 'Are you sure to submit for approval ?',\r\n 'financeOrder.create_order': 'Create Order',\r\n 'financeOrder.amount_paid': 'Amount Paid',\r\n 'financeOrder.paid_from': 'Paid From',\r\n 'financeOrder.add_payment': 'Receive Payment',\r\n 'financeOrder.make_a_payment': 'Receive a payment',\r\n 'financeOrder.select_paid_from': 'Select paid to',\r\n 'financeOrder.please_select_a_paid_from': 'Please select receive payment to.',\r\n 'financeOrder.error_cannot_add_payment': 'Cannot add payment.',\r\n 'financeOrder.payment': 'Payment',\r\n 'financeOrder.detail_order': 'Detail Order',\r\n 'financeOrder.number_quotes': 'Quotes Number',\r\n 'financeOrder.amount': 'Amount',\r\n 'financeOrder.dp': 'DP',\r\n 'financeOrder.create_delivery': 'Create Delivery',\r\n 'financeOrder.follow_these_steps_to_import_your_order': 'Follow these steps to import your order',\r\n 'financeOrder.1_download_your_order_template_file': '1. Download your order template file',\r\n 'financeOrder.start_by_downloading_our_order_csv':\r\n 'Start by downloading our orders Excel template file. This file has the correct column headings Kledo needs to import details of your orders.',\r\n 'financeOrder.download_template_file': 'Download Template File',\r\n 'financeOrder.download_template_data_example_file': 'Download template data example file',\r\n 'financeOrder.import': 'Import Order',\r\n 'financeOrder.2_copy_your_order_into_the_template': '2. Copy your orders into the template',\r\n 'financeOrder.using_excel_or_another_spreadsheet_editor':\r\n 'Using Excel or another spreadsheet editor, fill the Kledo template with the details of your orders. Make sure the product details match the column headings provided in the template.',\r\n 'financeOrder.important': 'IMPORTANT',\r\n 'financeOrder.3_upload_the_updated_template_file_here':\r\n '3. Upload the updated template file here',\r\n 'financeOrder.upload': 'Upload',\r\n 'financeOrder.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Save your updated template and you are ready to go',\r\n 'financeOrder.a_maximum_of_500_order_can_be_imported_at_a_time':\r\n 'A maximum of 1.000 orders can be imported at a time.',\r\n 'financeOrder.import_actions_only_insert_new_order_cannot_update_or_delete':\r\n 'Import actions only insert new orders, cannot update nor delete.',\r\n 'financeOrder.dont_change_the_column_heading_in_the_template_file':\r\n 'Do not change the column headings in the template file. These need to be unchanged for the important to work in the next step.',\r\n 'financeOrder.order_successfully_imported': '{rowCount} order imported successfully.',\r\n 'financeOrder.go_to_order_list': 'Go to order list',\r\n 'financeOrder.print_order': 'Print Order',\r\n 'financeOrder.copy_link': 'Copy Order Link',\r\n 'financeOrder.send_email': 'Send Order Email',\r\n 'financeOrder.send_sms': 'Send Order SMS',\r\n 'financeOrder.send_wa': 'Send Order Whatsapp',\r\n 'financeOrder.insufficient_stock_warning':\r\n 'Cannot add to the order, because there are products that have insufficient stock.',\r\n\r\n 'financeDelivery.message': 'Message',\r\n 'financeDelivery.add_delivery': 'Add Delivery',\r\n 'financeDelivery.financeDelivery': 'Delivery',\r\n 'financeDelivery.open_delivery': 'Open delivery',\r\n 'financeDelivery.successfully_added': 'successfully added.',\r\n 'financeDelivery.error_cannot_add': 'Cannot add delivery.',\r\n 'financeDelivery.error_cannot_print_pdf': 'Cannot print pdf delivery.',\r\n 'financeDelivery.error_cannot_update': 'Cannot update delivery.',\r\n 'financeDelivery.error_cannot_move': 'Cannot move the delivery.',\r\n 'financeDelivery.error_cannot_change_status': 'Cannot change status the delivery.',\r\n 'financeDelivery.edit_delivery': 'Edit Invoice',\r\n 'financeDelivery.max_characters': 'Max {value} characters.',\r\n 'financeDelivery.min_characters': 'Min {value} characters.',\r\n 'financeDelivery.only_number_allowed': 'Only number allowed.',\r\n 'financeDelivery.description': 'Description',\r\n 'financeDelivery.tax': 'Tax',\r\n 'financeDelivery.select_tax': 'Select tax',\r\n 'financeDelivery.please_select_a_contact': 'Please select a contact',\r\n 'financeDelivery.select_contact': 'Select contact',\r\n 'financeDelivery.add_contact': 'Add contact',\r\n 'financeDelivery.all_contacts': 'All contact',\r\n 'financeDelivery.transaction_date': 'Transaction Date',\r\n 'financeDelivery.please_select_transaction_date': 'Please select transaction date',\r\n 'financeDelivery.due_date': 'Due Date',\r\n 'financeDelivery.please_select_due_date': 'Please select due date',\r\n 'financeDelivery.term': 'Term',\r\n 'financeDelivery.select_term': 'Select term',\r\n 'financeDelivery.add_term': 'Add term',\r\n 'financeDelivery.price_include_tax': 'Price include tax',\r\n 'financeDelivery.add_more': 'Add more',\r\n 'financeDelivery.number': 'Number',\r\n 'financeDelivery.please_input_the_number': 'Please input the number.',\r\n 'financeDelivery.memo': 'Memo',\r\n 'financeDelivery.date': 'Date',\r\n 'financeDelivery.status': 'Status',\r\n 'financeDelivery.balance_due': 'Balance Due',\r\n 'financeDelivery.total': 'Total',\r\n 'financeDelivery.please_select_a_term': 'Please select a term.',\r\n 'financeDelivery.search_by_memo': 'Search',\r\n 'financeDelivery.the_due_date_max_higger_than_transaction_date':\r\n 'The due date must same or after transaction date',\r\n 'financeDelivery.detail_title': ' Invoice {number}',\r\n 'financeDelivery.customer': 'Customer',\r\n 'financeDelivery.reference': 'Reference',\r\n 'financeDelivery.product': 'Product',\r\n 'financeDelivery.qty': 'Qty',\r\n 'financeDelivery.price': 'Price',\r\n 'financeDelivery.add_product': 'Add Product',\r\n 'financeDelivery.select_product': 'Select product',\r\n 'financeDelivery.attachments': 'Attachments',\r\n 'financeDelivery.save_&_approve': 'Save & approve',\r\n 'financeDelivery.save_as_draft': 'Save as draft',\r\n 'financeDelivery.save_&_submit_for_approval': 'Save & submit for approval',\r\n 'financeDelivery.please_select_a_product': 'Please select a product.',\r\n 'financeDelivery.please_input_the_qty': 'Please input the qty.',\r\n 'financeDelivery.please_input_the_price': 'Please input the price.',\r\n 'financeDelivery.please_input_the_amount': 'Please input the amount.',\r\n 'financeDelivery.approve': 'Approve',\r\n 'financeDelivery.are_you_sure_to_approve': 'Are you sure to approve ?',\r\n 'financeDelivery.submit_for_approval': 'Submit for approval',\r\n 'financeDelivery.are_you_sure_to_submit_for_approval': 'Are you sure to submit for approval ?',\r\n 'financeDelivery.amount_paid': 'Amount Paid',\r\n 'financeDelivery.paid_from': 'Paid From',\r\n 'financeDelivery.add_payment': 'Receive Payment',\r\n 'financeDelivery.make_a_payment': 'Receive a payment',\r\n 'financeDelivery.select_paid_from': 'Select paid to',\r\n 'financeDelivery.please_select_a_paid_from': 'Please select receive payment to.',\r\n 'financeDelivery.error_cannot_add_payment': 'Cannot add payment.',\r\n 'financeDelivery.payment': 'Payment',\r\n 'financeDelivery.detail_delivery': 'Detail Delivery',\r\n 'financeDelivery.number_quotes': 'Quotes Number',\r\n 'financeDelivery.amount': 'Amount',\r\n 'financeDelivery.dp': 'DP',\r\n 'financeDelivery.create_delivery': 'Create Delivery',\r\n 'financeDelivery.shipping_delivery': 'Shipping Delivery',\r\n 'financeDelivery.print_delivery': 'Print Delivery Order',\r\n 'financeDelivery.print_delivery_label': 'Print Delivery Label',\r\n 'financeDelivery.copy_link': 'Copy Delivery Link',\r\n 'financeDelivery.send_email': 'Send Delivery Email',\r\n 'financeDelivery.send_sms': 'Send Delivery SMS',\r\n 'financeDelivery.send_wa': 'Send Delivery Whatsapp',\r\n\r\n 'shipping.show_shipping_information': 'Show shipping information',\r\n 'shipping.hide_shipping_information': 'Hide shipping information',\r\n 'shipping.shipping_date': 'Shipping date',\r\n 'shipping.shipping_expedition': 'Expediton',\r\n 'shipping.shipping_tracking': 'Tracking number',\r\n 'shipping.select_expedition': 'Select expedition',\r\n 'shipping.add_expedition': 'Add expedition',\r\n 'shipping.shipping_cost': 'Shipping cost',\r\n 'shipping.please_select_shipping_date': 'Please select shipping date.',\r\n 'shipping.shipping_information': 'Shipping information',\r\n\r\n 'creditMemo.add_credit_memo': 'Add Credit Memo',\r\n 'creditMemo.credit_memo': 'Credit Memo',\r\n 'creditMemo.detail_credit_memo': 'Detail Credit Memo',\r\n 'creditMemo.customer': 'Customer',\r\n 'creditMemo.add_transactions': 'Add Transaction',\r\n 'creditMemo.successfully_added': 'successfully added.',\r\n 'creditMemo.error_cannot_add': 'Cannot add credit memo.',\r\n 'creditMemo.error_cannot_update': 'Cannot update credit memo.',\r\n 'creditMemo.edit_credit_memo': 'Edit Credit Memo',\r\n 'creditMemo.max_characters': 'Max {value} characters.',\r\n 'creditMemo.min_characters': 'Min {value} characters.',\r\n 'creditMemo.only_number_allowed': 'Only number allowed.',\r\n 'creditMemo.description': 'Description',\r\n 'creditMemo.amount': 'Amount',\r\n 'creditMemo.transaction_date': 'Transaction Date',\r\n 'creditMemo.please_select_transaction_date': 'Please select transaction date',\r\n 'creditMemo.number': 'Number',\r\n 'creditMemo.please_input_the_number': 'Please input the number.',\r\n 'creditMemo.memo': 'Memo',\r\n 'creditMemo.message': 'Message',\r\n 'creditMemo.date': 'Date',\r\n 'creditMemo.total': 'Total',\r\n 'creditMemo.search_by_memo': 'Search',\r\n 'creditMemo.detail_title': 'Credit Memo {number}',\r\n 'creditMemo.reference': 'Reference',\r\n 'creditMemo.attachments': 'Attachments',\r\n 'creditMemo.please_input_the_amount': 'Please input the amount.',\r\n 'creditMemo.account': 'Account',\r\n 'creditMemo.select_account': 'Select Account',\r\n 'creditMemo.credit_balance': 'Credit Balance',\r\n 'creditMemo.make_a_payment': 'Make a payment',\r\n 'creditMemo.return_number': 'Return Number',\r\n\r\n 'return.add_return': 'Add Return',\r\n 'return.return': 'Return',\r\n 'return.detail_return': 'Detail Return',\r\n 'return.customer': 'Customer',\r\n 'return.vendor': 'Vendor',\r\n 'return.add_transactions': 'Add Transaction',\r\n 'return.successfully_added': 'successfully added.',\r\n 'return.error_cannot_add': 'Cannot add credit memo.',\r\n 'return.error_cannot_update': 'Cannot update credit memo.',\r\n 'return.edit_return': 'Edit Return',\r\n 'return.max_characters': 'Max {value} characters.',\r\n 'return.min_characters': 'Min {value} characters.',\r\n 'return.only_number_allowed': 'Only number allowed.',\r\n 'return.description': 'Description',\r\n 'return.amount': 'Amount',\r\n 'return.transaction_date': 'Return Date',\r\n 'return.please_select_transaction_date': 'Please select transaction date',\r\n 'return.number': 'Number',\r\n 'return.please_input_the_number': 'Please input the number.',\r\n 'return.memo': 'Memo',\r\n 'return.message': 'Message',\r\n 'return.date': 'Date',\r\n 'return.total': 'Total',\r\n 'return.search_by_memo': 'Search',\r\n 'return.detail_title': 'Return {number}',\r\n 'return.reference': 'Reference',\r\n 'return.attachments': 'Attachments',\r\n 'return.please_input_the_amount': 'Please input the amount.',\r\n 'return.invoice': 'Invoice',\r\n 'return.faktur_balance': 'Faktur Balance',\r\n 'return.qty_faktur': 'Qty Faktur',\r\n 'return.available_return': 'Available Retur',\r\n 'return.product': 'Product',\r\n 'return.discount_percent': 'Discount',\r\n 'return.tax': 'Tax',\r\n 'return.qty_return': 'Qty Return',\r\n 'return.price': 'Price',\r\n 'return.please_input_the_qty': 'Please input the qty.',\r\n 'return.price_include_tax': 'Price include tax',\r\n 'return.cannot_greather_than_available': 'Cannot greather than available.',\r\n 'return.balance_due': 'Balance Due',\r\n 'return.total_return': 'Return Total',\r\n\r\n 'financePurchaseQuotes.message': 'Message',\r\n 'financePurchaseQuotes.add_quote': 'Add Quote',\r\n 'financePurchaseQuotes.financePurchaseQuotes': 'Quote',\r\n 'financePurchaseQuotes.financePurchaseQuotes2': 'Purchase Quote',\r\n 'financePurchaseQuotes.successfully_added': 'successfully added.',\r\n 'financePurchaseQuotes.error_cannot_add': 'Cannot add quote.',\r\n 'financePurchaseQuotes.error_cannot_print_pdf': 'Cannot print pdf quote.',\r\n 'financePurchaseQuotes.error_cannot_update': 'Cannot update quote.',\r\n 'financePurchaseQuotes.error_cannot_move': 'Cannot move the quote.',\r\n 'financePurchaseQuotes.error_cannot_change_status': 'Cannot change status the quote.',\r\n 'financePurchaseQuotes.edit_quote': 'Edit Quote',\r\n 'financePurchaseQuotes.max_characters': 'Max {value} characters.',\r\n 'financePurchaseQuotes.min_characters': 'Min {value} characters.',\r\n 'financePurchaseQuotes.only_number_allowed': 'Only number allowed.',\r\n 'financePurchaseQuotes.description': 'Description',\r\n 'financePurchaseQuotes.tax': 'Tax',\r\n 'financePurchaseQuotes.select_tax': 'Select tax',\r\n 'financePurchaseQuotes.amount': 'Amount',\r\n 'financePurchaseQuotes.please_select_a_contact': 'Please select a contact',\r\n 'financePurchaseQuotes.select_contact': 'Select contact',\r\n 'financePurchaseQuotes.add_contact': 'Add contact',\r\n 'financePurchaseQuotes.all_contacts': 'All contact',\r\n 'financePurchaseQuotes.transaction_date': 'Transaction Date',\r\n 'financePurchaseQuotes.please_select_transaction_date': 'Please select transaction date',\r\n 'financePurchaseQuotes.due_date': 'Expiry',\r\n 'financePurchaseQuotes.please_select_due_date': 'Please select expiry',\r\n 'financePurchaseQuotes.term': 'Term',\r\n 'financePurchaseQuotes.select_term': 'Select term',\r\n 'financePurchaseQuotes.add_term': 'Add term',\r\n 'financePurchaseQuotes.price_include_tax': 'Price include tax',\r\n 'financePurchaseQuotes.add_more': 'Add more',\r\n 'financePurchaseQuotes.number': 'Number',\r\n 'financePurchaseQuotes.please_input_the_number': 'Please input the number.',\r\n 'financePurchaseQuotes.memo': 'Memo',\r\n 'financePurchaseQuotes.date': 'Date',\r\n 'financePurchaseQuotes.status': 'Status',\r\n 'financePurchaseQuotes.balance_due': 'Balance Due',\r\n 'financePurchaseQuotes.please_select_a_term': 'Please select a term.',\r\n 'financePurchaseQuotes.search_by_memo': 'Search',\r\n 'financePurchaseQuotes.the_due_date_max_higger_than_transaction_date':\r\n 'The expiry date must same or after transaction date',\r\n 'financePurchaseQuotes.detail_title': 'Quote {number}',\r\n 'financePurchaseQuotes.customer': 'Customer',\r\n 'financePurchaseQuotes.reference': 'Reference',\r\n 'financePurchaseQuotes.product': 'Product',\r\n 'financePurchaseQuotes.qty': 'Qty',\r\n 'financePurchaseQuotes.price': 'Price',\r\n 'financePurchaseQuotes.add_product': 'Add Product',\r\n 'financePurchaseQuotes.select_product': 'Select product',\r\n 'financePurchaseQuotes.attachments': 'Attachments',\r\n 'financePurchaseQuotes.save_as_draft': 'Save as draft',\r\n 'financePurchaseQuotes.save_&_submit_for_approval': 'Save & submit for approval',\r\n 'financePurchaseQuotes.please_select_a_product': 'Please select a product.',\r\n 'financePurchaseQuotes.please_input_the_qty': 'Please input the qty.',\r\n 'financePurchaseQuotes.please_input_the_price': 'Please input the price.',\r\n 'financePurchaseQuotes.please_input_the_amount': 'Please input the amount.',\r\n 'financePurchaseQuotes.mark_as_sent': 'Mark as sent',\r\n 'financePurchaseQuotes.are_you_sure_to_mark_as_sent': 'Are you sure to mark as sent ?',\r\n 'financePurchaseQuotes.mark_as_accepted': 'Mark as accepted',\r\n 'financePurchaseQuotes.are_you_sure_to_mark_as_accepted': 'Are you sure to mark as accepted ?',\r\n 'financePurchaseQuotes.mark_as_declined': 'Mark as declined',\r\n 'financePurchaseQuotes.are_you_sure_to_mark_as_declined': 'Are you sure to mark as declined ?',\r\n 'financePurchaseQuotes.create_invoice': 'Create Invoice',\r\n 'financePurchaseQuotes.send': 'Send',\r\n 'financePurchaseQuotes.detail_quote': 'Detail Quote',\r\n 'financePurchaseQuotes.create_order': 'Create Order',\r\n\r\n 'financePurchaseQuotes.follow_these_steps_to_import_your_quotes':\r\n 'Follow these steps to import your quotes',\r\n 'financePurchaseQuotes.1_download_your_quotes_template_file':\r\n '1. Download your quotes template file',\r\n 'financePurchaseQuotes.start_by_downloading_our_quotes_csv':\r\n 'Start by downloading our quotes Excel template file. This file has the correct column headings Kledo needs to import details of your quotes.',\r\n 'financePurchaseQuotes.download_template_file': 'Download Template File',\r\n 'financePurchaseQuotes.download_template_data_example_file':\r\n 'Download template data example file',\r\n 'financePurchaseQuotes.import': 'Import Quotes',\r\n 'financePurchaseQuotes.2_copy_your_quotes_into_the_template':\r\n '2. Copy your quotes into the template',\r\n 'financePurchaseQuotes.using_excel_or_another_spreadsheet_editor':\r\n 'Using Excel or another spreadsheet editor, fill the Kledo template with the details of your quotes. Make sure the product details match the column headings provided in the template.',\r\n 'financePurchaseQuotes.important': 'IMPORTANT',\r\n 'financePurchaseQuotes.3_upload_the_updated_template_file_here':\r\n '3. Upload the updated template file here',\r\n 'financePurchaseQuotes.upload': 'Upload',\r\n 'financePurchaseQuotes.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Save your updated template and you are ready to go',\r\n 'financePurchaseQuotes.a_maximum_of_500_quotes_can_be_imported_at_a_time':\r\n 'A maximum of 1.000 quotes can be imported at a time.',\r\n 'financePurchaseQuotes.contact_name_that_not_exist_will_be_inserted_as_a_new_contact':\r\n 'Contact name that not exist will be inserted as a new contact.',\r\n 'financePurchaseQuotes.import_actions_only_insert_new_quotes_cannot_update_or_delete':\r\n 'Import actions only insert new quotes, cannot update nor delete.',\r\n 'financePurchaseQuotes.dont_change_the_column_heading_in_the_template_file':\r\n 'Do not change the column headings in the template file. These need to be unchanged for the important to work in the next step.',\r\n 'financePurchaseQuotes.you_can_only_upload_csv_file': 'You can only upload csv or excel file.',\r\n 'financePurchaseQuotes.upload_file': 'Upload File',\r\n 'financePurchaseQuotes.check_the_imported_data': 'Check Data',\r\n 'financePurchaseQuotes.please_check_the_imported_data': 'Please check the imported data',\r\n 'financePurchaseQuotes.import_quotes_done': 'Import Success',\r\n 'financePurchaseQuotes.error_upload_file': 'Upload failed.',\r\n 'financePurchaseQuotes.file_not_found': 'File not found',\r\n 'financePurchaseQuotes.if_you_are_happy_to_continue_with_the_import_please_click_the_import_now_button': `If you are happy to continue with the import please click the \"Import Now\" button.`,\r\n 'financePurchaseQuotes.valid': 'Valid',\r\n 'financePurchaseQuotes.invalid': 'Invalid',\r\n 'financePurchaseQuotes.total': 'Total',\r\n 'financePurchaseQuotes.import_now': 'Import Now',\r\n 'financePurchaseQuotes.contact_name': 'Contact name',\r\n 'financePurchaseQuotes.email': 'Email',\r\n 'financePurchaseQuotes.address': 'Address',\r\n 'financePurchaseQuotes.phone': 'Phone',\r\n 'financePurchaseQuotes.quote_date': 'Quote Date',\r\n 'financePurchaseQuotes.quote_number': 'Quote Number',\r\n 'financePurchaseQuotes.product_name': 'Product name',\r\n 'financePurchaseQuotes.code_sku': 'Kode/SKU',\r\n 'financePurchaseQuotes.tax_inclusive': 'Tax Inclusive',\r\n 'financePurchaseQuotes.paid': 'Paid',\r\n 'financePurchaseQuotes.paid_account': 'Paid To Account',\r\n\r\n 'financePurchaseQuotes.inventory_account': 'Inventory Account',\r\n 'financePurchaseQuotes.quotes_successfully_imported': '{rowCount} quote imported successfully.',\r\n 'financePurchaseQuotes.view_detail': 'View detail',\r\n 'financePurchaseQuotes.import_another_file': 'Import another file',\r\n 'financePurchaseQuotes.go_to_quote_list': 'Go to quote list',\r\n 'financePurchaseQuotes.success': 'Success',\r\n 'financePurchaseQuotes.failed': 'Failed',\r\n 'financePurchaseQuotes.error_cannot_import': 'Import failed',\r\n 'financePurchaseQuotes.error': 'Error',\r\n 'financePurchaseQuotes.vendor': 'Vendor',\r\n 'debitMemo.add_debit_memo': 'Add Debit Memo',\r\n 'debitMemo.debit_memo': 'Debit Memo',\r\n 'debitMemo.detail_debit_memo': 'Detail Debit Memo',\r\n 'debitMemo.customer': 'Customer',\r\n 'debitMemo.add_transactions': 'Add Transaction',\r\n 'debitMemo.successfully_added': 'successfully added.',\r\n 'debitMemo.error_cannot_add': 'Cannot add debit memo.',\r\n 'debitMemo.error_cannot_update': 'Cannot update debit memo.',\r\n 'debitMemo.edit_debit_memo': 'Edit Debit Memo',\r\n 'debitMemo.max_characters': 'Max {value} characters.',\r\n 'debitMemo.min_characters': 'Min {value} characters.',\r\n 'debitMemo.only_number_allowed': 'Only number allowed.',\r\n 'debitMemo.description': 'Description',\r\n 'debitMemo.amount': 'Amount',\r\n 'debitMemo.transaction_date': 'Transaction Date',\r\n 'debitMemo.please_select_transaction_date': 'Please select transaction date',\r\n 'debitMemo.number': 'Number',\r\n 'debitMemo.please_input_the_number': 'Please input the number.',\r\n 'debitMemo.memo': 'Memo',\r\n 'debitMemo.message': 'Message',\r\n 'debitMemo.date': 'Date',\r\n 'debitMemo.total': 'Total',\r\n 'debitMemo.search_by_memo': 'Search',\r\n 'debitMemo.detail_title': 'Debit Memo {number}',\r\n 'debitMemo.reference': 'Reference',\r\n 'debitMemo.attachments': 'Attachments',\r\n 'debitMemo.please_input_the_amount': 'Please input the amount.',\r\n 'debitMemo.account': 'Account',\r\n 'debitMemo.select_account': 'Select Account',\r\n 'debitMemo.debit_balance': 'Debit Balance',\r\n 'debitMemo.make_a_payment': 'Receive Payment',\r\n 'debitMemo.return_number': 'Return Number',\r\n\r\n 'financePurchaseDelivery.message': 'Message',\r\n 'financePurchaseDelivery.add_delivery': 'Add Delivery',\r\n 'financePurchaseDelivery.financePurchaseDelivery': 'Delivery',\r\n 'financePurchaseDelivery.successfully_added': 'successfully added.',\r\n 'financePurchaseDelivery.error_cannot_add': 'Cannot add delivery.',\r\n 'financePurchaseDelivery.error_cannot_print_pdf': 'Cannot print pdf delivery.',\r\n 'financePurchaseDelivery.error_cannot_update': 'Cannot update delivery.',\r\n 'financePurchaseDelivery.error_cannot_move': 'Cannot move the delivery.',\r\n 'financePurchaseDelivery.error_cannot_change_status': 'Cannot change status the delivery.',\r\n 'financePurchaseDelivery.edit_delivery': 'Edit Invoice',\r\n 'financePurchaseDelivery.max_characters': 'Max {value} characters.',\r\n 'financePurchaseDelivery.min_characters': 'Min {value} characters.',\r\n 'financePurchaseDelivery.only_number_allowed': 'Only number allowed.',\r\n 'financePurchaseDelivery.description': 'Description',\r\n 'financePurchaseDelivery.tax': 'Tax',\r\n 'financePurchaseDelivery.select_tax': 'Select tax',\r\n 'financePurchaseDelivery.please_select_a_contact': 'Please select a contact',\r\n 'financePurchaseDelivery.select_contact': 'Select contact',\r\n 'financePurchaseDelivery.add_contact': 'Add contact',\r\n 'financePurchaseDelivery.all_contacts': 'All contact',\r\n 'financePurchaseDelivery.transaction_date': 'Transaction Date',\r\n 'financePurchaseDelivery.please_select_transaction_date': 'Please select transaction date',\r\n 'financePurchaseDelivery.due_date': 'Due Date',\r\n 'financePurchaseDelivery.please_select_due_date': 'Please select due date',\r\n 'financePurchaseDelivery.term': 'Term',\r\n 'financePurchaseDelivery.select_term': 'Select term',\r\n 'financePurchaseDelivery.add_term': 'Add term',\r\n 'financePurchaseDelivery.price_include_tax': 'Price include tax',\r\n 'financePurchaseDelivery.add_more': 'Add more',\r\n 'financePurchaseDelivery.number': 'Number',\r\n 'financePurchaseDelivery.please_input_the_number': 'Please input the number.',\r\n 'financePurchaseDelivery.memo': 'Memo',\r\n 'financePurchaseDelivery.date': 'Date',\r\n 'financePurchaseDelivery.status': 'Status',\r\n 'financePurchaseDelivery.balance_due': 'Balance Due',\r\n 'financePurchaseDelivery.total': 'Total',\r\n 'financePurchaseDelivery.please_select_a_term': 'Please select a term.',\r\n 'financePurchaseDelivery.search_by_memo': 'Search',\r\n 'financePurchaseDelivery.the_due_date_max_higger_than_transaction_date':\r\n 'The due date must same or after transaction date',\r\n 'financePurchaseDelivery.detail_title': ' Invoice {number}',\r\n 'financePurchaseDelivery.customer': 'Customer',\r\n 'financePurchaseDelivery.vendor': 'Vendor',\r\n 'financePurchaseDelivery.print_receipt_of_goods': 'Print Receipt of Goods',\r\n 'financePurchaseDelivery.reference': 'Reference',\r\n 'financePurchaseDelivery.product': 'Product',\r\n 'financePurchaseDelivery.qty': 'Qty',\r\n 'financePurchaseDelivery.price': 'Price',\r\n 'financePurchaseDelivery.add_product': 'Add Product',\r\n 'financePurchaseDelivery.select_product': 'Select product',\r\n 'financePurchaseDelivery.attachments': 'Attachments',\r\n 'financePurchaseDelivery.save_&_approve': 'Save & approve',\r\n 'financePurchaseDelivery.save_as_draft': 'Save as draft',\r\n 'financePurchaseDelivery.save_&_submit_for_approval': 'Save & submit for approval',\r\n 'financePurchaseDelivery.please_select_a_product': 'Please select a product.',\r\n 'financePurchaseDelivery.please_input_the_qty': 'Please input the qty.',\r\n 'financePurchaseDelivery.please_input_the_price': 'Please input the price.',\r\n 'financePurchaseDelivery.please_input_the_amount': 'Please input the amount.',\r\n 'financePurchaseDelivery.approve': 'Approve',\r\n 'financePurchaseDelivery.are_you_sure_to_approve': 'Are you sure to approve ?',\r\n 'financePurchaseDelivery.submit_for_approval': 'Submit for approval',\r\n 'financePurchaseDelivery.are_you_sure_to_submit_for_approval':\r\n 'Are you sure to submit for approval ?',\r\n 'financePurchaseDelivery.amount_paid': 'Amount Paid',\r\n 'financePurchaseDelivery.paid_from': 'Paid From',\r\n 'financePurchaseDelivery.add_payment': 'Receive Payment',\r\n 'financePurchaseDelivery.make_a_payment': 'Receive a payment',\r\n 'financePurchaseDelivery.select_paid_from': 'Select paid to',\r\n 'financePurchaseDelivery.please_select_a_paid_from': 'Please select receive payment to.',\r\n 'financePurchaseDelivery.error_cannot_add_payment': 'Cannot add payment.',\r\n 'financePurchaseDelivery.payment': 'Payment',\r\n 'financePurchaseDelivery.detail_delivery': 'Detail Delivery',\r\n 'financePurchaseDelivery.number_quotes': 'Quotes Number',\r\n 'financePurchaseDelivery.amount': 'Amount',\r\n 'financePurchaseDelivery.dp': 'DP',\r\n 'financePurchaseDelivery.create_delivery': 'Create Delivery',\r\n 'financePurchaseDelivery.shipping_delivery': 'Shipping Delivery',\r\n\r\n 'businessFlow.businessFlow': 'Settings Business Flow',\r\n 'businessFlow.sales_discount': 'Sales discount',\r\n 'businessFlow.sales_discount_desc': 'Does your company can give sales discount?',\r\n 'businessFlow.delivery_desc': 'Does your company make a pass at delivery?',\r\n 'businessFlow.order_desc': 'Does your company accept sales orders?',\r\n 'businessFlow.quote_desc': 'Have your company send out sales offers?',\r\n 'businessFlow.down_payment': 'Down payment',\r\n 'businessFlow.down_payment_desc': 'Does your company can accept sales down payment?',\r\n 'businessFlow.purchase_down_payment_desc': 'Does your company can paid purchase down payment?',\r\n 'businessFlow.purchase_discount': 'Purchase discount',\r\n 'businessFlow.purchase_discount_desc': 'Does your company can accept purchase discount?',\r\n 'businessFlow.purchase_delivery': 'Purchase delivery',\r\n 'businessFlow.purchase_delivery_desc': 'Does purchase delivery feature activated?',\r\n 'businessFlow.purchase_order': 'Purchase order',\r\n 'businessFlow.purchase_order_desc': 'Does your company place a purchase order?',\r\n 'businessFlow.purchase_quote': 'Purchase quote',\r\n 'businessFlow.purchase_quote_desc': 'Does your company accept purchase orders?',\r\n 'businessFlow.reconciliation': 'Reconciliation',\r\n 'businessFlow.reconciliation_desc':\r\n 'Do you reconcile transactions at Kledo with mutations in bank accounts?',\r\n 'businessFlow.tracking_stock': 'Track inventory / stock by default',\r\n 'businessFlow.tracking_stock_desc':\r\n 'When adding products, by default set products to track stock',\r\n 'businessFlow.error_cannot_update': 'Cannot change settings.',\r\n 'businessFlow.decline_new_sales_if_stock_not_enough': 'Decline new invoice if stock not enough',\r\n 'businessFlow.decline_new_order_if_stock_not_enough': 'Decline new order if stock not enough',\r\n 'businessFlow.decline_new_delivery_if_stock_not_enough':\r\n 'Decline new delivery if stock not enough',\r\n 'businessFlow.show_available_stock_when_making_a_sale': 'Show available stock when making a sale',\r\n 'businessFlow.show_sales_description': 'Show description on sale',\r\n 'businessFlow.show_sales_description_desc': 'Is the description column in sales showing?',\r\n 'businessFlow.show_purchases_description': 'Show description on purchase',\r\n 'businessFlow.show_purchases_description_desc': 'Is the description field in the purchase shown?',\r\n 'businessFlow.whether_stock_is_in_the_warehouse':\r\n 'Whether stock is in the warehouse needs to be displayed when making a new sale?',\r\n 'businessFlow.show_available_stock_per_warehouse': 'Stock calculated by selected warehouse',\r\n 'businessFlow.hide_products_that_are_out_of_stock': 'Hide products that are out of stock',\r\n 'businessFlow.hide_products_that_are_out_of_stock_description':\r\n 'Are out-of-stock products hidden when adding to a bill?',\r\n 'businessFlow.show_profit_margin_when_making_transaction':\r\n 'Show profit margin when making transaction',\r\n 'businessFlow.show_details_of_average_price_and_profit_margin_when_making_a_new_transaction':\r\n 'Show details of average price and profit margin when making a new transaction.',\r\n\r\n 'businessFlow.whether_displayed_stock_needs_per_warehouse':\r\n 'If active, then stock is calculated by selected warehouse instead of all stock',\r\n 'businessFlow.decline_to_add_sales_if_the_total_stock_not_enough':\r\n 'Decline to add invoice if the total stock in the warehouse is insufficient?',\r\n 'businessFlow.decline_to_add_order_if_the_total_stock_not_enough':\r\n 'Decline to add order if the total stock in the warehouse is insufficient?',\r\n 'businessFlow.decline_to_add_delivery_if_the_total_stock_not_enough':\r\n 'Decline to add delivery if the total stock in the warehouse is insufficient?',\r\n 'businessFlow.discount_in_nominal': 'Discount input in numeric',\r\n 'businessFlow.wether_discount_input_when_add_invoice_in_nominal_format_or_percent_format':\r\n 'Wether discount input when add invoice in numeric format or percentage format',\r\n 'businessFlow.product_price_dont_change': \"Product price can't changed\",\r\n 'businessFlow.wether_product_price_can_be_changed_when_add_invoice':\r\n 'Wether product price can be changed when add invoice',\r\n 'businessFlow.sales_person': 'Sales person',\r\n 'businessFlow.default_sale_include_tax': 'Default sale price include tax',\r\n 'businessFlow.wether_create_sale_invoice_include_tax':\r\n 'Wether when creating invoice default sale price include tax?',\r\n 'businessFlow.default_purchase_include_tax': 'Default purchase price include tax',\r\n 'businessFlow.wether_create_purchase_invoice_include_tax':\r\n 'Wether when creating invoice default purchase price include tax?',\r\n 'businessFlow.min_stock': 'Minimal stock',\r\n 'businessFlow.when_product_below_min_stock_email_notification':\r\n 'When product stock below minimal stock, email notification will be sent',\r\n 'businessFlow.decline_product_conv_if_stock_not_enough':\r\n 'Decline product conversion if stok is not enough',\r\n 'businessFlow.wether_decline_add_product_conv_if_stock_not_enough':\r\n 'Wether decline add product conversion if stock not enough',\r\n 'businessFlow.lang_date_currency': 'Language, Date, & Currency',\r\n 'businessFlow.app_lang': 'Invoice language',\r\n 'businessFlow.app_lang_desc': 'Default language for every staff in your company',\r\n 'businessFlow.time_zone': 'Time zone',\r\n 'businessFlow.time_zone_desc': 'Time zone location of your company',\r\n 'businessFlow.date_format': 'Date format',\r\n 'businessFlow.date_format_desc': 'Date display in Kledo app',\r\n 'businessFlow.time_format': 'Time format',\r\n 'businessFlow.time_format_desc': 'Hour and minute display in Kledo app',\r\n 'businessFlow.number_after_comma': 'Number after comma',\r\n 'businessFlow.number_after_comma_desc': 'How much number behind comma showed in Kledo app?',\r\n 'businessFlow.currency_format': 'Currency format',\r\n 'businessFlow.currency_format_desc': 'Currency display in Kledo app',\r\n 'businessFlow.activate_multi_currency': 'Activate multi currency feature',\r\n 'businessFlow.activate_multi_currency_desc': 'Does your company use more than one currency?',\r\n 'businessFlow.base_currency': 'Base currency',\r\n 'businessFlow.base_currency_desc': 'Currency used as main currency in your company',\r\n 'businessFlow.show_coa': 'Show COA',\r\n 'businessFlow.show_coa_desc': 'Show COA on profit loss report',\r\n 'businessFlow.show_currency_symbol': 'Show currency symbol',\r\n 'businessFlow.show_currency_symbol_desc':\r\n 'Will the currency symbol be displayed on the interface?',\r\n 'businessFlow.show_reference': 'Show reference',\r\n 'businessFlow.show_reference_desc': 'Wether show reference input when creating invoice',\r\n 'businessFlow.show_tag': 'Show tag',\r\n 'businessFlow.show_tag_desc': 'Wether show tag input when creating invoice',\r\n 'businessFlow.input_tag_is_required': 'Input tag is required',\r\n 'businessFlow.input_tag_is_required_desc': 'Is the tag required when adding a sales transaction?',\r\n 'businessFlow.show_delivery_info': 'Show delivery information',\r\n 'businessFlow.show_delivery_info_desc':\r\n 'Wether show delivery information input when creating invoice',\r\n 'businessFlow.lock_price_from_quote': 'Lock price from quote',\r\n 'businessFlow.lock_price_from_quote_desc':\r\n 'Wether when create invoice from quote, the price cannot be changed?',\r\n 'businessFlow.lock_price_from_purchase_quote': 'Lock price from purchase quote',\r\n 'businessFlow.lock_price_from_purchase_quote_desc':\r\n 'Wether when create purchase invoice from quote, the price cannot be changed?',\r\n 'businessFlow.use_fifo_method': 'Use FIFO method to calculate COGS',\r\n 'businessFlow.use_fifo_method_desc':\r\n 'Turn on to activate FIFO method to calculate COGS, or turn it off to use averaging method. You cannot change this setting after you have product with inventory tracking active. This settings only available on Elite Plan.',\r\n 'businessFlow.auto_update_product_buy_price': 'Auto update product buy price',\r\n 'businessFlow.auto_update_product_buy_price_desc':\r\n 'When buying a product, the buy price is automatically updated to the product as the default buy price',\r\n 'businessFlow.auto_update_product_sell_price': 'Auto update product selling price',\r\n 'businessFlow.auto_update_product_sell_price_desc':\r\n 'When selling a product, the selling price is automatically updated to the product as the default selling price',\r\n 'businessFlow.reference_multiline': 'Multiline reference',\r\n 'businessFlow.reference_multiline_desc': 'Can reference be multiline?',\r\n 'businessFlow.show_due_date': 'Show due date',\r\n 'businessFlow.is_the_due_date_shown_on_the_purchase_invoice_form':\r\n 'Is the due date shown on the purchase invoice form ?',\r\n 'businessFlow.is_the_due_date_shown_on_the_invoice_form':\r\n 'Is the due date shown on the invoice form ?',\r\n 'businessFlow.show_witholding': 'Show witholding',\r\n 'businessFlow.show_witholding_desc': 'Wether show witholding when creating invoice?',\r\n 'businessFlow.show_sequence': 'Show sequence',\r\n 'businessFlow.show_sequence_desc': 'Wether to show the order column of transaction items?',\r\n 'businessFlow.auto_update_selling_price_from_orders_and_quotes':\r\n 'Auto update selling price from orders & quotes',\r\n 'businessFlow.auto_update_selling_price_from_orders_and_quotes_desc':\r\n 'If it is active, the product price will be updated if there are orders and quotes. If it is not active then only update the price when it is invoice.',\r\n 'businessFlow.auto_update_purchase_price_from_purchases_orders_and_purchases_quotes':\r\n 'Auto update purchase price from purchase order & purchase quotes',\r\n 'businessFlow.auto_update_purchase_price_from_purchases_orders_and_purchases_quotes_desc':\r\n 'If it is active, the product price will be updated if there is a purchase orders or purchase quotes. If it is not active then only update the price when it is on the purchase invoice.',\r\n 'businessFlow.default_trans_date_follow_parent':\r\n 'Default transaction date is the same as the original transcation date',\r\n 'businessFlow.default_trans_date_follow_parent_desc':\r\n \"If yes, then when creating a bill from the order, the default transaction date is the same as the order date. Otherwise, the transaction date is today's date.\",\r\n 'businessFlow.default_message': 'Use the same message as the original transaction',\r\n 'businessFlow.default_message_desc':\r\n 'When creating a bill from an order, the contents of the message in the bill are automatically the same as the message in the order.',\r\n 'businessFlow.default_message_delivery': 'Use the same delivery message as the order transaction',\r\n 'businessFlow.default_message_delivery_desc':\r\n 'When making a delivery, the content of the message is the same as the order transaction.',\r\n 'businessFlow.delivery_items_default_zero': 'Product quantity defaults from order to delivery',\r\n 'businessFlow.delivery_items_default_zero_desc':\r\n 'Product quantity will be set to 0 when making delivery from order',\r\n 'businessFlow.input_tax_is_required': 'Input tax is required',\r\n 'businessFlow.input_tax_is_required_desc': 'Is tax input required when creating an invoice?',\r\n 'businessFlow.invoice_create_from_shipment_only':\r\n 'Invoices can only be made from shipping transactions',\r\n 'businessFlow.invoice_create_from_shipment_only_desc':\r\n 'Are you required to make a shipping transaction in order to make an invoice?',\r\n 'businessFlow.order_create_from_quotation_only':\r\n 'Orders can only be made from quote transactions',\r\n 'businessFlow.order_create_from_quotation_only_desc':\r\n 'Are you required to make a quote transaction in order to make an order?',\r\n 'businessFlow.invoice_profit_margin_not_minus': 'Reject new bills if the profit margin is minus',\r\n 'businessFlow.invoice_profit_margin_not_minus_desc':\r\n 'Reject sales if the product is sold with a profit margin below 0',\r\n 'businessFlow.purchase_invoice_create_from_shipment_only':\r\n 'Purchase invoices can only be made from shipping purchase transactions',\r\n 'businessFlow.purchase_invoice_create_from_shipment_only_desc':\r\n 'Are you required to make a shipping purchase transaction in order to make an purchase invoice?',\r\n 'businessFlow.purchase_order_create_from_quotation_only':\r\n 'Purchase orders can only be made from quote purchase transactions',\r\n 'businessFlow.purchase_order_create_from_quotation_only_desc':\r\n 'Are you required to make a quote purchase transaction in order to make an purchase order?',\r\n\r\n 'salesPerson.sales_person': 'Sales Person',\r\n 'salesPerson.show_sales_person': 'Show Sales Person',\r\n 'salesPerson.hide_sales_person': 'Hide Sales Person',\r\n 'salesPerson.select_sales_person': 'Select sales person',\r\n 'salesPerson.sales_name': 'Sales Name',\r\n 'salesPerson.sales_amount': 'Sales Amount',\r\n 'salesPerson.sales_value': 'Sales Value',\r\n 'salesPerson.sales_total': 'Sales Total',\r\n 'salesPerson.customer': 'Customer',\r\n 'salesPerson.sales_incentive': 'Sales Incentive',\r\n 'salesPerson.sales_commission': 'Sales Commission',\r\n 'salesPerson.manage_sales_commission': 'Manage Sales Commission',\r\n 'salesPerson.commission_rule': 'Commission Rule',\r\n 'salesPerson.faq_question_commission_calculated':\r\n 'How is the commission calculated on this report?',\r\n 'salesPerson.faq_answer_commission_calculated':\r\n 'Commission is calculated from the total bill after discount. The tax and postage components are not used to calculate commissions.',\r\n 'salesPerson.faq_question_give_different_commission':\r\n 'How to give a different commission for each sales?',\r\n 'salesPerson.faq_answer_give_different_commission_menu_here': 'menu here',\r\n 'salesPerson.faq_question_give_commission_progressively':\r\n 'How to give commission progressively, the more sales the bigger the commission?',\r\n 'salesPerson.faq_answer_give_commission_progressively':\r\n 'You can set multilevel commission from settings, please {here}.',\r\n\r\n 'massEmail.mass_email': 'Mass Send Email',\r\n 'massEmail.cannot_mass_email': 'Cannot mass sent email',\r\n 'massEmail.can_be_sent': 'Can be sent',\r\n 'massEmail.cannot_be_sent': 'Cannot be sent',\r\n 'massEmail.are_you_sure': 'Are you sure want to sent {count} {title}(s) email?',\r\n 'massEmail.data_progress_sent': '{count} out of {total} email has been sent',\r\n 'massEmail.data_has_been_sent': 'Total {count} email has been sent',\r\n\r\n 'massDelete.mass_delete': 'Mass Delete',\r\n 'massDelete.cannot_mass_delete': 'Cannot mass delete',\r\n 'massDelete.can_be_deleted': 'Can be deleted',\r\n 'massDelete.cannot_be_deleted': 'Cannot be deleted',\r\n 'massDelete.archived': 'Archived',\r\n 'massDelete.are_you_sure': 'Are you sure want to delete {count} {title}(s)?',\r\n 'massDelete.are_you_sure_archive': 'Are you sure want to delete/archive {count} {title}(s)?',\r\n 'massDelete.deleted_data_is_irreversible': 'Deleted data is irreversible',\r\n 'massDelete.data_progress_deleted': '{count} out of {total} data has been deleted',\r\n 'massDelete.data_has_been_deleted': 'Total {count} data has been deleted',\r\n 'massDelete.transaction_before_lock_date_and_reconciled_cannot_be_deleted':\r\n '**Transaction before lock date and reconciled transaction cannot be deleted',\r\n 'massDelete.transaction_before_lock_date_reconciled_and_related_cannot_be_deleted':\r\n '**Transaction before lock date, reconciled transaction, and transaction that has relation to another transaction cannot be deleted',\r\n\r\n 'massPrint.cannot_mass_print': 'Cannot mass print',\r\n\r\n 'massApproval.mass_approve': 'Mass Approve',\r\n 'massApproval.mass_reject': 'Mass Reject',\r\n 'massApproval.cannot_mass_approve': 'Cannot mass approve',\r\n 'massApproval.cannot_mass_reject': 'Cannot mass reject',\r\n 'massApproval.can_be_approved': 'Can be approved',\r\n 'massApproval.can_be_rejected': 'Can be rejected',\r\n 'massApproval.are_you_sure_will_approved':\r\n 'Are you sure you will approve these {count} transactions?',\r\n 'massApproval.are_you_sure_will_rejected':\r\n 'Are you sure you will reject these {count} transactions?',\r\n 'massApproval.approved_data_is_irreversible': 'Approved data is irreversible',\r\n 'massApproval.rejected_data_is_irreversible': 'Rejected data is irreversible',\r\n 'massApproval.data_progress_approved': '{count} out of {total} data has been appoved',\r\n 'massApproval.data_progress_rejected': '{count} out of {total} data has been rejected',\r\n 'massApproval.data_has_been_approved': 'Total {count} data has been approved',\r\n 'massApproval.data_has_been_rejected': 'Total {count} data has been rejected',\r\n\r\n 'onBoarding.greeting': 'Hallo {name},',\r\n 'onBoarding.welcome_to_kledo': 'Welcome to Kledo!',\r\n 'onBoarding.setup_kledo_account': \"Let's go to setup Kledo account :)\",\r\n 'onBoarding.start_to_setup': 'Start to setup',\r\n 'onBoarding.inventory_question':\r\n 'Do you want to manage the stock and inventory of products sold ?',\r\n 'onBoarding.quote_question': 'Do you need an offer letter to a customer ?',\r\n 'onBoarding.order_question': 'Do you make a purchase order to a supplier ?',\r\n 'onBoarding.delivery_question': 'Do you need a pass ?',\r\n 'onBoarding.horee': 'Yeaah!',\r\n 'onBoarding.checklist_greeting': \"Let's start using Kledo\",\r\n 'onBoarding.setup_complete': 'Setup is complete, now you can start using Kledo.',\r\n 'onBoarding.go_to_dashboard': 'Go to Dashboard',\r\n 'onBoarding.cannot_access_onboarding': 'Cannot access on boarding',\r\n 'onBoarding.next_step': 'Next',\r\n 'onBoarding.prev_step': 'Prev',\r\n 'onBoarding.step_question': 'Question - {step}',\r\n 'onBoarding.company_location_question': 'Where is the {company} located?',\r\n 'onBoarding.company_location_question_province': 'Please input province!',\r\n 'onBoarding.company_location_question_city': 'Please input city!',\r\n 'onBoarding.role_question': 'What role are you in the {company}?',\r\n 'onBoarding.role_question_error':\r\n 'Please select a role or enter a custom role before proceeding!',\r\n 'onBoarding.employee_question': 'How many employees do you have in your company?',\r\n\r\n 'recurring.add': 'Add Recurring {title}',\r\n 'recurring.edit': 'Edit Recurring {title}',\r\n 'recurring.add_invoice': 'Add recurring',\r\n 'recurring.edit_invoice': 'Edit recurring',\r\n 'recurring.add_order': 'Add recurring order',\r\n 'recurring.edit_order': 'Edit recurring order',\r\n 'recurring.add_purchaseinvoice': 'Add recurring purchase invoice',\r\n 'recurring.edit_purchaseinvoice': 'Edit recurring purchase invoice',\r\n 'recurring.add_purchaseorder': 'Add recurring purchase order',\r\n 'recurring.edit_purchaseorder': 'Edit recurring purchase order',\r\n 'recurring.add_expense': 'Add recurring expense',\r\n 'recurring.edit_expense': 'Edit recurring expense',\r\n 'recurring.add_manualjournal': 'Add recurring manual journal',\r\n 'recurring.edit_manualjournal': 'Edit recurring manual journal',\r\n 'recurring.add_cashbank': 'Add recurring {title}',\r\n 'recurring.edit_cashbank': 'Edit recurring cash & bank',\r\n 'recurring.recurring_transaction_periode': 'Repeat this transaction every',\r\n 'recurring.start_date': 'Start date',\r\n 'recurring.end_date': 'End date (Optional)',\r\n 'recurring.end_date_column': 'End date',\r\n 'recurring.next_date_transaction': 'Next of transaction date',\r\n 'recurring.automatic_send_email_on_created_transaction':\r\n 'Send automated email every time a transaction is made',\r\n 'recurring.week': 'Week',\r\n 'recurring.month': 'Month',\r\n 'recurring.please_input_the_recurring': 'Please input the recurring',\r\n 'recurring.please_select_start_date': 'Please select start date',\r\n 'recurring.please_select_end_date': 'Please select end date',\r\n 'recurring.title': 'Recurring {name}',\r\n 'recurring.cannot_select_before_start_date': 'Cannot select before start date',\r\n 'recurring.number': 'Number',\r\n 'recurring.repeat_every': 'Repeat every',\r\n 'recurring.next_date': 'Next Transaction',\r\n 'recurring.total': 'Total',\r\n 'recurring.error_load_data': 'Error on get list recurring',\r\n 'recurring.error_cannot_recurring': 'Error cannot create recurring',\r\n 'recurring.error_cannot_delete': 'Error cannot delete recurring',\r\n 'recurring.error_load_detail': 'Error load detail transaction',\r\n 'recurring.recurring': 'Recurring',\r\n 'recurring.new_transaction': 'New Recurring Transaction',\r\n 'recurring.cannot_select_before_current_date': 'Cannot select before current date',\r\n\r\n 'tutorial.video_tutorial': 'Video Tutorial',\r\n\r\n 'report.the_total_number_of_bills_issued_during_this_period':\r\n 'The total number of bills issued during this period.',\r\n 'report.average_value_of_invoices_issued_during_this_period':\r\n 'Average value of invoices issued during this period.',\r\n 'report.gross_profit_margin_is_the_ratio_of_gross_profit_to_total_revenue':\r\n 'Gross profit margin is the ratio of gross profit to total revenue.',\r\n 'report.gross_profit_margin_is_the_ratio_of_net_income_to_total_revenue':\r\n 'Gross profit margin is the ratio of net income to total revenue.',\r\n 'report.roi_is_the_ratio_of_net_income_to_net_assets_per_year':\r\n 'ROI is the ratio of net income to net assets per year. Where net assets are total assets minus liabilities.
ROI = (Net profit / Net asset) x 12 months x 100%',\r\n 'report.the_average_number_of_days_it_takes_your_customer_to_pay_the_bill':\r\n 'The average number of days it takes your customer to pay the bill.',\r\n 'report.the_average_number_of_days_it_take_you_to_pay_a_bill_to_a_vendor':\r\n 'The average number of days it takes you to pay a bill to a vendor.',\r\n 'report.is_the_percentage_of_liabilities_divided_by_equity':\r\n 'Is the percentage of liabilities divided by equity.',\r\n 'report.is_the_percentage_of_current_assets_divided_by_labilities':\r\n 'Is the percentage of current assets divided by liabilities.',\r\n\r\n 'invoicePaymentCreditMemo.invoicePaymentCreditMemo': 'Invoice Payment Credit Memo',\r\n 'purchaseInvoicePaymentDebitMemo.purchaseInvoicePaymentDebitMemo':\r\n 'Purchase Invoice Payment Debit Memo',\r\n\r\n 'unrealizedGain.unrealizedGain': 'Unrealized Gain',\r\n 'financeProduct.profit_margin': 'Profit margin',\r\n 'financeProduct.average_purchase_price': 'Average purchase price',\r\n 'financeProduct.last_purchase_price': 'Last purchase price',\r\n 'financeProduct.last_sell_price': 'Last sell price',\r\n 'financeProduct.this_customer_selling_price': \"This customer's selling price\",\r\n 'financeProduct.insufficient_payment': 'Insufficient payment',\r\n 'settings.menu_cannot_be_found': 'Settings Menu Cannot Be Found',\r\n 'report.avg': 'Avg',\r\n 'reports.stock_adjustment': 'Stock Adjustment Report',\r\n 'bussinesFlow.default_tracking_stock': 'Default tracking stock',\r\n 'bussinesFlow.desc_default_tracking_stock':\r\n 'By default the track stock feature is active when creating a new product',\r\n 'settings.reset': 'Reset',\r\n 'financeContacts.taxable': 'Taxable',\r\n 'financeContacts.not_taxable': 'Not Taxable',\r\n 'tooltip.next': 'Next {title}',\r\n 'tooltip.prev': 'Prev {title}',\r\n 'financeBanks.bank_transaction': 'Bank Transaction',\r\n 'picker.select_year': 'Select year',\r\n 'picker.select_month': 'Select month',\r\n 'picker.select_date': 'Select date',\r\n 'chart.from_param_to_param': 'from {from} until {to}',\r\n 'gajihub.hash_tag': '#better, easier and more practical.',\r\n 'gajihub.head_title_1': 'Process',\r\n 'gajihub.head_title_2': 'Payroll',\r\n 'gajihub.head_title_3': 'Absence',\r\n 'gajihub.head_title_4': 'and',\r\n 'gajihub.head_title_5': 'Accountancy',\r\n 'gajihub.head_title_6': 'Your Business is Now Integrated',\r\n 'gajihub.head_desc_1': 'Now you can do it',\r\n 'gajihub.head_desc_2': 'calculation',\r\n 'gajihub.head_desc_3': 'salary recording',\r\n 'gajihub.head_desc_4': 'allowance',\r\n 'gajihub.head_desc_5': 'into',\r\n 'gajihub.head_desc_6': 'tax',\r\n 'gajihub.head_desc_7':\r\n \"all employees are automatically in the company's books with the integration of GajiHub and Kledo.\",\r\n 'gajihub.integrate': 'Integrate Now',\r\n 'gajihub.footer_note':\r\n 'Get HR management solutions and easy company accounting management that are perfectly integrated with each other.',\r\n 'gajihub.feat_title_1': 'What will',\r\n 'gajihub.feat_title_2': 'You Get',\r\n 'gajihub.feat_title_3': 'From GajiHub and Kledo Integration?',\r\n 'gajihub.feat_1_sub_title': 'Integration of payroll and accounting systems',\r\n 'gajihub.feat_1_description':\r\n \"The process of recording salaries and all allowances for all employees can be recorded in your company's bookkeeping system automatically in one integrated platform.\",\r\n 'gajihub.feat_2_sub_title': 'Automatic calculation of PPh 21',\r\n 'gajihub.feat_2_description':\r\n 'No need to worry about calculating income tax for all employees. With this integration, Kledo will automatically record employee PPh 21 according to the data stored in GajiHub.',\r\n 'gajihub.feat_3_sub_title': 'Record attendance via smartphone',\r\n 'gajihub.feat_3_description':\r\n 'All your employees will also find it easy to make attendance attendance and apply for leave from their smartphone via the ESS GajiHub application.',\r\n 'gajihub.feat_4_sub_title': 'Recording employee cash and reimbursements directly into the books',\r\n 'gajihub.feat_4_description':\r\n 'You can record all employee cash and reimbursement values in the GajiHub system. Then, this data will be automatically recorded in the Kledo accounting system.',\r\n 'gajihub.feat_5_sub_title': 'Create and send real time employee pay slips',\r\n 'gajihub.feat_5_description':\r\n \"Create pay slips in seconds and send them directly to all your employees. This salary slip can also be accessed via the ESS GajiHub application on your employee's smartphone.\",\r\n 'gajihub.feat_6_sub_title': 'BPJS Employment contributions are recorded automatically',\r\n 'gajihub.feat_6_description':\r\n 'You can manage BPJS Employment and Health for all your employees on GajiHub. Later, contribution payments will be automatically recorded in the Kledo accounting system.',\r\n 'payroll.goto_gajihub': 'Go to Gajihub',\r\n 'payroll.integrate_with_gajihub': 'Integrate with Gajihub',\r\n 'payroll.payroll': 'Payroll',\r\n 'payroll.perform_employee_payroll_quickly_and_neatly':\r\n 'Perform employee payroll quickly and neatly.',\r\n 'payroll.employee_payroll_is_automatically_recorded_in_kledo_accounting_software':\r\n 'Employee payroll is automatically recorded in Kledo accounting software.',\r\n 'payroll.automatically_calculating_PPH_21_Tax': 'Automatically calculating PPH 21 Tax.',\r\n 'payroll.automatic_employee_BPJS_calculation': 'Automatic employee BPJS calculation.',\r\n 'payroll.employee_attendance_via_mobile_app': 'Employee attendance via mobile app.',\r\n 'payroll.application_for_leave_and_permission': 'Application for leave and permission.',\r\n 'payroll.employee_cash_account': 'Employee Cash Account.',\r\n 'payroll.employee_reimbursement': 'Employee Reimbursement.',\r\n 'payroll.and_many_more': 'And many more.',\r\n 'payroll.click_the_button_below_to_start_the_integration':\r\n 'Click the button below to start the integration.',\r\n 'payroll.what_benefits_will_you_get_with_this_integration':\r\n 'What benefits will you get with this integration ?',\r\n 'payroll.this_feature_is_avilable_for_free': 'This feature is avilable for free.',\r\n 'payroll.kledo_is_now_automatically_integrated_with_gajihub_payroll_software':\r\n 'Kledo is now automatically integrated with GajiHub Payroll Software',\r\n 'payroll.please_wait': 'Please wait a minutes!',\r\n 'payroll.integrating_kledo_with_gajihub': 'Integrating Gajihub with Kledo...',\r\n 'payroll.integrating_success_1': 'Yeaah!, The',\r\n 'payroll.integrating_success_2': 'Kledo',\r\n 'payroll.integrating_success_3':\r\n 'account has been successfully connected to the Payroll Software',\r\n 'payroll.integrating_success_4': 'GajiHub.',\r\n\r\n 'companies.success_message_title': 'Your company was created successfully.',\r\n 'companies.success_message_subtitle': 'Please click the button below to continue.',\r\n 'companies.go_to_dashboard': 'Go to Dashboard',\r\n 'message.sorry_you_are_not_authorized_to_access_this_page':\r\n 'Sorry, You are not authorized to access this page.',\r\n 'message.you_have_some_unsaved_transaction_entries':\r\n 'You have {countTransaction} draft unsaved transaction entries, {clickHere} to view.',\r\n 'message.click_here': 'click here',\r\n 'message.click_here_2': 'Click here',\r\n 'message.image_is_being_uploaded': 'Image is being uploaded...',\r\n 'message.for_the_detail': 'for the detail.',\r\n\r\n 'emailTemplate.invoice_due_reminder_email': '{transType} Due Reminder Email',\r\n 'emailTemplate.send_email_to_customers_who_have_invoices_due':\r\n 'Send email to customers who have {transType} due',\r\n 'emailTemplate.send_email': 'Send email',\r\n 'emailTemplate.days_before_due': 'days before due',\r\n 'emailTemplate.days_after_due': 'days after due',\r\n 'emailTemplate.send_a_due_reminder_email_to_the_group':\r\n 'Send a due reminder email to the customer contact group as follows',\r\n 'emailTemplate.send_reminder': 'Send Reminder',\r\n\r\n 'report.stock_tracking_product': 'Stock Tracking Product',\r\n 'report.non_stock_tracking_product': 'Non Stock Tracking Product',\r\n 'report.package_product': 'Package Product',\r\n\r\n 'return.product_not_found_in_this_transaction': 'Product not found in this transaction',\r\n 'return.maximum_qty_that_can_be_returned': 'Maximum qty than can be returned {max}',\r\n 'return.the_product_has_met_the_maximum_return_limit':\r\n 'The product has met the maximum return limit',\r\n 'financeWareHouses.the_product_is_already_on_the_list': 'The product is already on the list',\r\n 'report.minimum_stock': 'Minimum Stock',\r\n 'report.control_stock': 'Control Stock',\r\n 'report.control_stock_tooltip': 'Difference between final stock and minimum stock',\r\n\r\n 'businessFlow.reject_the_transaction_if_the_balance_is_insufficient':\r\n 'Reject the transaction if the balance is insufficient',\r\n 'businessFlow.reject_the_transaction_if_the_balance_is_insufficient_desc':\r\n 'Refuse to add cash and bank transactions if the cash and bank balance is insufficient',\r\n\r\n 'settings.finance_approval_setting': 'Set the transaction approval flow',\r\n 'businessFlow.journal_desc_include_contact': 'Show contact in journal description',\r\n 'businessFlow.journal_desc_include_contact_desc':\r\n 'Will the contact name be displayed in the journal description?',\r\n 'financeProduct.mass_unarchive_info': '**Only products with archive status can be unarchived.',\r\n 'financeProduct.mass_unarchive': 'Mass Unarchive',\r\n 'financeProduct.can_be_unarchive': 'Can be unarchived',\r\n 'financeProduct.cannot_be_unarchive': 'Cannot be unarchived',\r\n 'financeProduct.mass_unarchive_confirm_message':\r\n 'Are you sure you want to unarchive {count} products ?',\r\n 'massDelete.cannot_mass_unarchive': 'Unable to bulk unarchive',\r\n 'massDelete.data_progress_unarchived': '{count} data from total {total} has been unarchived',\r\n 'massDelete.data_has_been_unarchived': 'Total {count} data has been successfully unarchived',\r\n 'financeContacts.salutation': 'Salutation',\r\n 'financeContacts.choose_salutation': 'Choose salutation',\r\n 'product.the_maximum_number_of_uploads_is_5_photos': 'Them maximum number is 5 photos',\r\n 'reports.profitloss_hide_sub_account': 'Hide Sub Account',\r\n 'reports.account_view': 'Account View',\r\n 'reports.change_account_view_loading': 'Change the account display format...',\r\n 'reports.change_account_view_success': 'The account display format has been successfully changed',\r\n 'reports.format_account_profit_loss_1': 'Code - Account Name',\r\n 'reports.format_account_profit_loss_2': '(Code) Account Name',\r\n 'reports.format_account_profit_loss_3': 'Account Name - Code',\r\n 'reports.format_account_profit_loss_4': 'Account Name (Code)',\r\n 'reports.format_account_profit_loss_5': 'Account Name',\r\n 'reports.separate_others_income_and_expenses': 'Separate Others Income & Expenses',\r\n 'financeWarehouse.qty_per_unit': 'Qty per Unit',\r\n\r\n 'faqs.whats_your_question': \"What's your Question?\",\r\n 'faqs.most_popular': 'Most Popular',\r\n 'faqs.most_help': 'Most Help',\r\n 'faqs.search_result': 'Search result {value}',\r\n 'faqs.title_by_category': 'By {value} Category',\r\n 'faqs.title_by_tag': 'By {value} Tag',\r\n 'faqs.was_this_answer_helpful': 'Was this answer helpful?',\r\n 'faqs.last_update': 'Last Update',\r\n 'faqs.copy_raw_text': 'FAQ copied successfully',\r\n 'financeProduct.total_cost_summary': 'Total Cost',\r\n 'financeWareHouses.production_warehouse': 'Production warehouse',\r\n 'financeWareHouses.raw_material_warehouse_is_the_same_as_product_warehouse':\r\n 'Raw material warehouse is the same as product warehouse',\r\n 'conversionProduct.avg_price': 'Avg Price',\r\n 'financeProduct.product_conversion_cost_per_unit_help_text':\r\n 'Total product cost for each unit (raw material cost + production cost)',\r\n 'layoutInvoice.show_the_print_delivery_on_the_invoice_with_title':\r\n 'Show the print delivery on the {title}',\r\n 'queue.data_is_waiting_to_be_processed': '{value} data is waiting to be processed...',\r\n 'billing.using_the_invoicing_feature': 'Invoice feature usage',\r\n 'billing.this_month': 'This month',\r\n 'billing.last_month': 'Last month',\r\n 'businessFlow.reject_warehouse_transfer_if_stock_is_less_with_title':\r\n 'Reject {title} If Stock Is Less',\r\n 'businessFlow.reject_warehouse_transfer_if_stock_is_less_desc_with_title':\r\n 'If yes, then the {title} will be rejected if the stock is lacking',\r\n\r\n 'financeProduct.products_with_stock_tracking_with_title': '{title} with stock tracking',\r\n 'financeFixedAssets.run_automatic_deprecation': 'Run Automatic Depreciation',\r\n 'financeFixedAssets.automatic_deprecation': 'Automatic Depreciation',\r\n 'financeFixedAssets.automatic_depreciation_every_month': 'Automatic depreciation every month',\r\n 'financeFixedAssets.automatic_depreciation_every_month_desc_with_title':\r\n 'If this feature is active, {title} will be automatically depreciated on the 1st of each month.',\r\n 'financeProduct.regular_product_with_title': 'Regular {title}',\r\n 'financeProduct.package_product_with_title': 'Package {title}',\r\n 'financeProduct.manufacturing_product_with_title': 'Manufacturing {title}',\r\n 'button.void': 'Void',\r\n 'button.unvoid': 'Unvoid',\r\n\r\n 'financeBanks.spend_money_and_receive_money': 'Spend Money and Receive Money',\r\n 'financeBanks.receive_transfers': 'Receive Transfer',\r\n 'financeBanks.send_transfers': 'Send Transfer',\r\n 'financeBanks.expense_payment': 'Expense Payment',\r\n 'financeBanks.invoice_payment': 'Invoice Payment',\r\n 'financeBanks.purchase_invoice_payment': 'Purchase Invoice Payment',\r\n 'financeBanks.purchase_order_payment': 'Purchase Order Payment',\r\n 'financeBanks.credit_memo_payment': 'Credit Memo Payment',\r\n 'financeBanks.debit_memo_payment': 'Debit Memo Payment',\r\n 'financeBanks.fixed_asset_payment': 'Fixed Asset Payment',\r\n 'financeBanks.sales_shipping_costs': 'Sales Shipping Costs',\r\n 'financeBanks.purchase_shipping_costs': 'Purchase Shipping Costs',\r\n 'financeBanks.invoice_withholding': 'Invoice Withholding',\r\n 'financeBanks.purchase_invoice_withholding': 'Purchase Invoice Withholding',\r\n 'financeBanks.reversal': 'Reversal',\r\n 'financeProduct.product_list_with_title': '{title} list',\r\n 'financeProduct.product_detail_with_title': '{title} detail',\r\n 'financeProduct.print_a_number': 'Print a number',\r\n 'layoutBarcode.label_size': 'Label size',\r\n 'layoutBarcode.number_of_columns': 'Number of Columns',\r\n 'layoutBarcode.show_product_name': 'Show product name',\r\n 'layoutBarcode.barcode_show_text': 'Show barcode numbers',\r\n 'layoutBarcode.barcode_show_product_price': 'Show price',\r\n 'layoutBarcode.click_here_to_reset_layout': 'Click here to reset barcode layout to the default',\r\n 'settings.layout_barcode': 'Manage barcode layout',\r\n 'financeContacts.date_of_birth': 'Date of Birth',\r\n 'financeInvoices.witholding_total': 'Witholding Total',\r\n 'financeContacts.total_from_value': 'Total from {value}',\r\n\r\n 'pos.choose_product_favorites_with_title':\r\n 'Select the {title} that will be displayed on the front page of the POS',\r\n 'pos.page_note':\r\n 'This page is for managing products that are favorites at POS. If you want to add a new product, please {clickHere}!',\r\n 'pos.add_product_favorite_with_title': 'Add {title} Favorite',\r\n 'pos.save_to_favorite': 'Save to Favorites',\r\n 'pos.choose_product_to_become_favorite_with_title': 'Select a {title} to favorite',\r\n 'pos.add_outlet': 'Add Outlet',\r\n 'pos.edit_outlet': 'Edit Outlet',\r\n 'pos.name_is_required': 'Name is required',\r\n 'pos.name_at_least_3_characters': 'Name at least 3 characters',\r\n 'pos.code_is_required': 'Code is required',\r\n 'pos.code_at_least_3_characters': 'Code at least 3 characters',\r\n 'pos.not_yet_connected_to_the_warehouse': 'Not yet connected to the warehouse',\r\n 'pos.connect_now': 'Connect now!',\r\n 'pos.connect_outlets_and_warehouses': 'Connect outlets and warehouses',\r\n 'kledoPos.hash_tag': '#better, easier and more practical.',\r\n 'kledoPos.head_title_1': 'You can still record transactions though',\r\n 'kledoPos.head_title_2': 'Internet Down',\r\n 'kledoPos.head_title_3': 'with Kledo POS',\r\n 'kledoPos.head_title_description':\r\n 'Cashier application that is perfectly integrated with Kledo accounting software. The best solution for recording transactions from various outlets, shops and business branches on one platform.',\r\n 'kledoPos.download': 'Download Kledo POS',\r\n 'kledoPos.sales_contact': 'Contact Sales',\r\n 'kledoPos.footer_note':\r\n 'Record every transaction and carry out business financial analysis more easily using the Kledo POS integration and Kledo accounting software now.',\r\n 'kledoPos.feat_title_1': 'What will',\r\n 'kledoPos.feat_title_2': 'You Get',\r\n 'kledoPos.feat_title_3': 'If you use Kledo POS?',\r\n 'kledoPos.feat_1_sub_title': 'Accepts various types of payments',\r\n 'kledoPos.feat_1_description':\r\n 'With Kledo POS, you can record payments from various payment methods ranging from cash, non-cash, e-wallet and EDC machines.',\r\n 'kledoPos.feat_2_sub_title': 'Easy to use cashier application',\r\n 'kledoPos.feat_2_description':\r\n 'You can easily install Kledo POS on your Android smartphone or tablet and can be used online and offline.',\r\n 'kledoPos.feat_3_sub_title': 'Promotion settings',\r\n 'kledoPos.feat_3_description':\r\n 'Create promos that pamper your customers and record every transaction using the promo without missing a single one.',\r\n 'kledoPos.feat_4_sub_title': 'Free implementation',\r\n 'kledoPos.feat_4_description':\r\n 'Have you bought expensive POS software but still have to pay for training? At Kledo POS we promise free implementation and training until you are proficient.',\r\n 'kledoPos.feat_5_sub_title': 'Customer profile',\r\n 'kledoPos.feat_5_description':\r\n 'Customer data is an important thing that every business must have. By using Kledo POS, you can store everything more practically.',\r\n 'kledoPos.feat_6_sub_title': 'Integration with accounting systems',\r\n 'kledoPos.feat_6_description':\r\n 'Perfectly integrated with the Kledo ecosystem, making it easier for you to manage financial data in one optimal platform.',\r\n 'kledoPos.setting': 'POS Settings',\r\n 'kledoPos.setting_custom_product': 'Custom Products',\r\n 'kledoPos.setting_custom_product_desc':\r\n 'You can make transactions at the POS for products that have not been recorded in the data, or are called custom products. For custom product transactions, the Kledo system will record it as a sale for the product according to this setting.',\r\n 'kledoPos.setting_default_customer': 'Customer Default',\r\n 'kledoPos.setting_default_customer_desc':\r\n 'You can record sales at the POS without registering the customer. If the transaction is not recorded by the customer, the Kledo system will record it as a transaction belonging to the `customer default` in this setting.',\r\n 'kledoPos.setting_product_placeholder': 'Select Product',\r\n 'kledoPos.setting_customer_placeholder': 'Select Customer',\r\n 'kledoPos.error_cannot_update': 'Failed to save settings',\r\n 'kledoPos.setting_default_outlet_placeholder': 'Select Outlet',\r\n 'kledoPos.setting_default_spend_account': 'Default Account Send Funds',\r\n 'kledoPos.setting_default_spend_account_placeholder': 'Select Account',\r\n 'kledoPos.setting_default_spend_account_desc':\r\n 'When recording cash in and out at the POS, it will be recorded in accounting on this COA account.',\r\n 'kledoPos.setting_default_receive_account': 'Default Account Receive Funds',\r\n 'billing.pos_add_outlet_label': 'How many outlets will be added?',\r\n 'billing.pos_current_quota': 'Current POS quota: {outlet} Outlet',\r\n 'billing.pos_add_outlet': 'Add Outlet',\r\n 'billing.pos_please_add_addon': 'Please add one POS addon',\r\n\r\n 'financeBanks.import_bank_transfer': 'Import Bank Transfer',\r\n 'financeBanks.follow_these_steps_to_import_your_bank_transfer':\r\n 'Follow these steps to import your bank transfer',\r\n 'financeBanks.1_download_your_bank_transfer_template_file':\r\n '1. Download your bank transfer template file',\r\n 'financeBanks.start_by_downloading_our_bank_transfer_csv':\r\n 'Start by downloading our bank transfers Excel template file. This file has the correct column headings Kledo needs to import details of your bank transfers.',\r\n 'financeBanks.2_copy_your_bank_transfer_into_the_template':\r\n '2. Copy your bank transfers into the template',\r\n 'financeBanks.bank_transfer_import_using_excel_or_another_spreadsheet_editor':\r\n 'Using Excel or another spreadsheet editor, fill the Kledo template with the details of your bank transfers. Make sure the product details match the column headings provided in the template.',\r\n 'financeBanks.a_maximum_of_500_bank_transfer_can_be_imported_at_a_time':\r\n 'A maximum of 1.000 bank transfers can be imported at a time.',\r\n 'financeBanks.bank_transfer_import_from_account': 'From Account (Account Code)',\r\n 'financeBanks.bank_transfer_import_to_account': 'To Account (Account Code)',\r\n 'financeBanks.bank_transfer_import_transfer_amount': 'Transfer Amount',\r\n 'financeBanks.in': 'In',\r\n 'financeBanks.out': 'Out',\r\n 'financeAccounts.balance_per_category': 'Balance per Category',\r\n 'financeAccounts.balance_per_account': 'Balance per Account',\r\n 'reports.show_graph': 'Show Graph',\r\n 'reports.hide_graph': 'Hide Graph',\r\n 'reports.number_of_transactions_per_source': 'Number of transactions per source',\r\n 'massRevertReconcile.mass_unreconciled': 'Cancel Mass Reconciliation',\r\n 'massRevertReconcile.cannot_mass_unreconciled': 'Unable to cancel the reconciliation',\r\n 'massRevertReconcile.can_be_unreconciled': 'Can cancel the reconciliation',\r\n 'massRevertReconcile.are_you_sure_want_to_unreconciled':\r\n 'Are you sure you want to cancel {count} reconciliation?',\r\n 'massRevertReconcile.data_progress_unreconciled':\r\n '{count} record out of {total} has been unreconciled',\r\n 'massRevertReconcile.data_has_been_unreconciled':\r\n 'A total of {count} records have been successfully rolled back from reconciliation',\r\n 'billing.downgrade_warning_title': 'Attention!!!',\r\n 'billing.downgrade_warning_description_1':\r\n 'An account that has been downgraded cannot be cancelled. An upgrade and payment is required to return to the previous plan.',\r\n 'billing.downgrade_warning_description_2':\r\n 'Accounts that have been downgraded, will follow the latest package prices and the latest feature limits.',\r\n 'billing.downgrade_warning_description_3':\r\n 'Older accounts on Kledo usually get lower prices and more complete features compared to new accounts on Kledo.',\r\n 'billing.what_package_will_you_downgrade_to': 'What package will you downgrade to?',\r\n 'billing.downgrade_now': 'Downgrade Now',\r\n 'billing.button_confirm_title':\r\n 'This action cannot be undone, and you will lose your benefits as the old account owner. Are you sure you want to downgrade your plan?',\r\n 'billing.button_downgrade_now': 'Yes, Downgrade Now',\r\n 'financeFixedAssets.asset_value': 'Asset Value',\r\n 'financeFixedAssets.asset_depreciation': 'Asset Depreciation',\r\n 'financeFixedAssets.asset_disposal': 'Gain/Loss on Asset Disposal',\r\n 'financeFixedAssets.new_assets': 'New Assets',\r\n 'financeFixedAssets.depreciation_chart': 'Depreciation',\r\n 'financeFixedAssets.profit_and_loss_on_asset_disposal': 'Profit and Loss on Asset Disposal',\r\n 'financeFixedAssets.highest_value_assets': '{count} Highest Value Assets',\r\n 'financeFixedAssets.the_highest_acquisition_costs': 'The {count} Highest Acquisition Costs',\r\n 'financeFixedAssets.profit': 'Profit',\r\n 'financeFixedAssets.loss': 'Loss',\r\n 'financeProduct.this_product_is_a_package_material_from_with_title':\r\n 'This {title} is a package material from',\r\n 'financeProduct.this_product_is_raw_material_from_with_title':\r\n 'This {title} is raw material from',\r\n 'settings.due_reminder': 'Send emails to customers who has bills due',\r\n 'businessFlow.system': 'System',\r\n 'businessFlow.enable_white_label': 'Enable white labels?',\r\n 'businessFlow.enable_white_label_desc':\r\n 'If the white label is active, the web app, WhatsApp content, and email content will be removed from the kledo text in the footer.',\r\n 'financeOrder.amount_unbilled': 'Amount Unbilled',\r\n 'settings.download_description':\r\n 'You can download your Kledo database to save it offline on your computer. The downloaded data is in excel format (.xls), and it takes a few minutes to prepare the backup file.',\r\n 'settings.download_button': 'Start Preparing Backup Files Now',\r\n 'settings.please_wait_download_backup':\r\n 'Please wait a moment, the download database file is being prepared.',\r\n 'settings.preparing_data': 'Preparing {dataName} data',\r\n 'settings.backup_auto_delete': '* Backup files will be deleted automatically in 1-4 days',\r\n 'settings.download_backup_finish':\r\n 'The database backup file is ready, click the button below to download:',\r\n 'settings.finance_backup_database': 'Download your Kledo database',\r\n 'settings.backup_date': 'Backup Date',\r\n 'sales_overview.vs_same_date_with_another_date': 'vs same date {date}',\r\n 'sales_overview.invoices_this_month_with_title': '{title} {date}',\r\n 'sales_overview.of_the_total_unpaid_invoices_with_title': 'of the total unpaid {title}',\r\n 'sales_overview.invoices_paid_vs_total_invoices_for_the_month_with_title':\r\n '{title} paid vs total {title} for {date}',\r\n 'sales_overview.paid_ratio': 'Paid Ratio',\r\n 'sales_overview.sales_flow_not_completed_with_title': '{title} Flow Not Completed',\r\n 'sales_overview.quote_accepted_with_title': 'Accepted {title}',\r\n 'sales_overview.order_not_finished_with_title': '{title} not finished',\r\n 'sales_overview.delivery_has_not_been_invoiced_with_title': '{title} has not been invoiced',\r\n 'sales_overview.invoices_due_with_title': '{title} due',\r\n 'purchases_overview.purchase_payment_sent_with_title': '{title} payment sent',\r\n 'purchases_overview.payment_purchases_pending_with_title': 'Waiting for {title} Payment',\r\n 'financeProduct.qty_per_warehouse': 'Qty per Warehouse',\r\n 'financeProduct.product_value_per_warehouse_with_title': '{title} Value per Warehouse',\r\n 'billing.most_chosen': 'Most Chosen',\r\n 'billing.see_more': 'See More',\r\n 'billing.show_less': 'Show Less',\r\n 'billing.product_manufacture': 'Product Manufacture',\r\n 'billing.contract_length': 'Select Contract Length',\r\n 'billing.please_choose_contract_length': 'Please Select Contract Length',\r\n 'billing.saving': 'Saving',\r\n 'billing.addon_user_description': 'Add users to get involved in helping manage your account.',\r\n 'billing.addon_warehouse_description':\r\n 'The more warehouses, the easier it is to categorize items or products.',\r\n 'billing.addon_marketplace_description': 'Allows you to integrate your store with Marketplace',\r\n 'billing.addon_invoice_description':\r\n 'Adding the number of invoices in your account, 1 addons invoice = 5,000 invoices.',\r\n 'billing.addon_product_description':\r\n 'Adding the number of {products} in your account, 1 addons {product} = 5,000 {products}.',\r\n 'billing.addon_bank_connect_description':\r\n 'Integrate the business you have with the bank services you have.',\r\n 'billing.invoices': 'Invoices',\r\n 'billing.employee': 'Employee ',\r\n 'billing.select_add_on_hris': 'Select the Payroll and HRIS Addon Package',\r\n 'billing.hris_elite': 'Elite Package',\r\n 'billing.hris_pro': 'Pro Package',\r\n 'billing.active_package': 'Active Package',\r\n 'billing.expired_date': 'Expired date',\r\n 'billing.at_the_moment': 'At the Moment',\r\n 'billing.after_extension': 'After Extension',\r\n 'billing.extend_now': 'Extend Now',\r\n 'billing.upgrade_plan_to': `Plan Upgrades {planName}`,\r\n 'billing.contract': 'Contract',\r\n 'billing.per_month': 'Per Month',\r\n 'billing.calculation_details': 'Calculation Details',\r\n 'billing.1_year_subs_with_x_discount':\r\n 'With a 1 year subscription, you will get a discount of {discount}.',\r\n 'billing.1_year_subs_with_x_discount_warning':\r\n 'Are you sure you subscribe to {term} month and not get {discount} discount?',\r\n 'billing.i_want_discount': 'I want {discount} discount',\r\n 'billing.i_dont_want_discount': \"Yes, I don't want a discount\",\r\n 'financeBanks.bank_connect_less': 'Less',\r\n 'financeBanks.error_cannot_export': 'Cannot export {bankName}',\r\n 'report.total_due': 'Total Due',\r\n 'settings.set_roles': 'Set Roles',\r\n 'settings.set_users': 'Set Users',\r\n 'report.aged_receivable_from_until_less_than_equal_months':\r\n '{firstMonth} until <= {secondMonth} months',\r\n 'report.aged_receivable_greater_than_months': '> {month} months',\r\n 'financeFixedAssets.last_automatic_depreciation': 'Last automatic depreciation on {dateTime}',\r\n 'financeFixedAssets.see_automatic_depreciation_history': 'See auto depreciation history',\r\n 'report.downloading_data': 'Downloading data...',\r\n 'contacts.info_is_as_employee':\r\n 'Some data cannot be changed because the contact is also an employee.',\r\n 'report.balance_sheet_previous_month': 'previous month',\r\n 'report.balance_sheet_previous_year': 'previous year',\r\n 'report.balance_sheet_vs_1_month_ago': 'vs 1 month ago',\r\n 'report.balance_sheet_structure': 'Balance Sheet Structure',\r\n 'report.balance_sheet_trend': 'Balance Sheet Trend',\r\n 'report.balance_sheet_component_trend': 'Balance Sheet Component Trend',\r\n 'report.balance_sheet_component': 'Balance Sheet Component',\r\n 'report.balance_sheet_equity': 'Equity',\r\n 'report.balance_sheet_asset': 'Asset',\r\n 'report.balance_sheet_liability': 'Liability',\r\n 'report.balance_sheet_trend_net_position': 'Balance Sheet Trend Net Position',\r\n 'report.quick_ratio_help_1':\r\n \"The quick ratio functions as an indicator of a company's short-term liquidity, or its ability to meet its short-term obligations. In other words, it tests how much a company has in assets to pay off all its liabilities.\",\r\n 'report.quick_ratio_help_2':\r\n \"When the value of the quick ratio is above 1, it means that the company or business's current assets are able to meet all its current obligations. This indicates a healthy financial condition of the business because it is able to pay off all liabilities if necessary.\",\r\n 'report.quick_ratio_help_3':\r\n 'On the other hand, if the quick ratio value is less than 1, it means that the entity is unable to pay off its current liabilities using all the current assets it owns.',\r\n 'report.quick_ratio_help_4':\r\n 'Quick ratio formula: (Current Assets – Stock or Inventory) / Current Liabilities',\r\n 'report.current_ratio_help_1':\r\n \"The current ratio is used to evaluate a company's ability to pay short-term obligations, such as debt and wages. The current ratio is calculated by dividing current assets by current liabilities. The higher the result, the stronger the company's financial position.\",\r\n 'report.current_ratio_help_2':\r\n 'However, keep in mind that a current ratio that is too high can also indicate that the company is not optimizing the use of its assets.',\r\n 'report.current_ratio_help_3':\r\n 'Current Ratio Formula = Total Current Assets / Total Current Liabilities',\r\n 'report.debt_equity_ratio_help_1':\r\n 'Debt to Equity Ratio is a financial ratio that compares the amount of debt with equity.',\r\n 'report.debt_equity_ratio_help_2':\r\n 'Equity and the amount of accounts payable and receivable used for company operations must be in a proportional amount. Debt to Equity Ratio is also often known as the leverage ratio or leverage ratio.',\r\n 'report.debt_equity_ratio_help_3': 'Debt to Equity Ratio (DER) formula = Total Debt / Equity',\r\n 'report.debt_equity_ratio_help_4':\r\n \"A debt to equity ratio value above 2 or 200% indicates that the company's financial condition is very vulnerable to various types of risks.\",\r\n 'report.equity_ratio_help_1':\r\n \"Equity Ratio shows the value of assets financed using owner's equity. The higher the proportion of funds from owners, the lower the risk is considered.\",\r\n 'report.equity_ratio_help_2':\r\n \"This ratio is calculated by dividing a company's total equity by its total assets.\",\r\n 'report.equity_ratio_help_3': 'Equity Ratio Formula = Total Equity / Total Assets',\r\n 'birthday.please_input_the_birthday_template_subject':\r\n 'Please enter a title for the birthday template.',\r\n 'birthday.send_an_email_to_a_customer_having_a_birthday':\r\n 'Send an email to a customer having a birthday',\r\n 'birthday.when_email_birthday_sent':\r\n \"On birthdays, subscribers will automatically be sent a birthday wish email. Make sure you have filled in the customer's date of birth from each of your customer contact data!\",\r\n 'settings.customer_birthday': 'Send an email to customers who are celebrating their birthday',\r\n 'businessFlow.add_format_code': 'Add format code',\r\n 'financeInvoices.profit_margin_minus': 'Profit margin minus',\r\n 'financeInvoices.select_name': 'Select {name}',\r\n 'financeWareHouses.stock_adjustment_price': 'Stock Adjustment Price',\r\n 'financeWareHouses.recorded_average_price': 'Recorded Average Price',\r\n 'financeApproval.cannot_approve_transaction': 'Failed to approve this transaction.',\r\n 'report.equity_movement_capital_balance': 'Capital Balance',\r\n 'report.equity_movement_capital_increase': 'Capital Increase',\r\n 'report.equity_movement_capital_reduction': 'Capital Reduction',\r\n 'report.equity_movement_capital_component_trends': 'Capital Component Trends',\r\n 'report.equity_movement_capital_component': 'Capital Component',\r\n 'report.receivable_payable_debt_widget': 'Payable',\r\n 'report.receivable_payable_receivable_widget': 'Receivable',\r\n 'report.receivable_payable_net_debt_receivable_widget': 'Net Payable Receivable',\r\n 'report.receivable_payable_debt_receivable_contact_widget': 'Contact',\r\n 'report.receivable_payable_debt': 'Highest Debt',\r\n 'report.receivable_payable_receivable': 'Highest Receivable',\r\n 'report.receivable_payable_ratio_debt_receivable': 'Payable Receivable Ratio',\r\n 'report.receivable_payable_trend_debt_receivable': 'Payable Receivable Trend',\r\n 'report.receivable_payable_transaction': 'transactions',\r\n 'report.receivable_payable_this_month': 'this month',\r\n 'report.receivable_payable_this_year': 'this year',\r\n 'report.receivable_payable_contact_debt_with_title': 'contacts with debt',\r\n 'report.receivable_payable_contact_receivable_with_title': 'contacts with receivables',\r\n 'report.executive_summary_equity_movement': 'Equity Movement',\r\n 'financeProduct.change_column_display': 'Change column display...',\r\n 'financeProduct.column_display_changed_successfully': 'Column display changed successfully',\r\n 'reports.add_menu_to_favorites_menu': 'Add menu to favorites menu',\r\n 'reports.remove_from_favorites_menu': 'Remove from favorites menu',\r\n 'page404.title': 'Page not found',\r\n 'page404.description': 'The page is deprecated, deleted, or does not exist at all',\r\n 'page404.fallback': 'Go back to the home page',\r\n 'page404.custom_detail_title': 'Detail page {title} not found',\r\n 'page404.custom_import_title': '{title} import page not found',\r\n 'page404.custom_detail_description': 'This {title} has been deleted or does not exist at all',\r\n 'page404.custom_fallback': 'Go back to {title} page',\r\n 'report.cash_change': 'Cash Changes',\r\n 'report.end_period': 'Closing Balance',\r\n 'report.cash_out': 'Cash out',\r\n 'report.cash_in': 'Cash In',\r\n 'report.trend_cash_flow': 'Cash Flow Trends',\r\n 'report.chart_cash_flow': 'Cash Balance',\r\n 'report.funding_components': 'Funding Components',\r\n 'report.investment_components': 'Investment Components',\r\n 'report.operational_components': 'Operational Components',\r\n 'report.vs_1_year_ago': 'vs 1 year ago',\r\n 'report.bank_summary_balance_per_bank': 'Balance per Bank',\r\n 'report.bank_summary_trend_balance_per_bank': 'Trend Balance per Bank',\r\n 'report.bank_summary_trend_received_per_bank': 'Cash Inflow Trend per Bank',\r\n 'report.bank_summary_balance_all_bank': 'All Balance Bank',\r\n 'report.bank_summary_trend_spent_per_bank': 'Cash Out Trend per Bank',\r\n 'report.bank_summary_trend_net_per_bank': 'Trend Net Movement per Bank',\r\n\r\n 'financeContacts.contact_information': 'Contact Information',\r\n 'financeInvoices.void_reason_label': 'Please enter the reason for voiding the transaction',\r\n 'financeInvoices.void_reason_placeholder': 'Please enter your reason',\r\n 'report.profit_loss_net_profit_margin': 'Net Profit Margin',\r\n 'report.profit_loss_gross_profit_margin': 'Gross Profit Margin',\r\n 'report.profit_loss_operating_expense_ratio': 'Operating Expense Ratio',\r\n 'report.profit_loss_profit_loss_trend': 'Profit Loss Trend',\r\n 'report.profit_loss_flow': 'Profit Loss Flow',\r\n 'report.profit_loss_income_details': 'Income Details',\r\n 'report.profit_loss_expense_details': 'Expense Details',\r\n 'report.profit_loss_component_trends': 'Profit and Loss Component Trends',\r\n 'reports.sales_value_per_product_category_graph': 'Sales Value per Product Category',\r\n 'reports.total_sales_per_product_category_graph': 'Number of Sales per Product Category',\r\n 'transactionFees.fees': 'Transaction Fees',\r\n 'transactionFees.nominal': 'Nominal',\r\n 'transactionFees.please_input_the_nominal': 'Please input the nominal',\r\n 'transactionFees.please_select_transaction_fee': 'Please select transaction fee',\r\n 'transactionFees.select_transaction_fee': 'Select transaction fee',\r\n 'transactionFees.total_transaction_fees': 'Total Transaction Fees',\r\n 'settings.fees': 'Set sales and purchase transaction fees',\r\n 'reports.total_of_transactions_per_customer': 'Total of Transactions per Customer',\r\n 'reports.total_of_transactions_per_vendor': 'Total of Transactions per Vendor',\r\n 'reports.expense_claim_per_term': 'Claim Cost Per Tempo',\r\n 'reports.term_expense_claim': 'Cost Claim Time',\r\n 'reports.total_due_expense_claim': 'Total Expense Claim Due',\r\n 'financeBanks.bank_statements_empty_title': \"You don't have bank transaction data yet\",\r\n 'financeBanks.bank_statements_empty_description':\r\n 'Bank transaction data can be imported automatically from your bank account or imported
manually by uploading an Excel file.',\r\n 'financeBanks.bank_statements_automatic_import': 'Automatic Import',\r\n 'financeBanks.bank_statements_manual_import': 'Manual Import',\r\n 'financeInvoices.enter_the_number_of_shipping_items': 'Enter qty of shipping items',\r\n 'billing.pos_renew_outlet': 'Renew Outlet',\r\n 'billing.pos_length_of_contract': 'Length of Contract',\r\n 'billing.add_pos_addon': 'Add POS Addon',\r\n 'billing.renew_pos': 'Renew POS',\r\n 'hideFeature.add_pos_addon_or_upgrade':\r\n 'Your POS addon has expired, please order
an extension to be able to access POS again',\r\n 'report.journal_transaction_value': 'Transaction Value',\r\n 'report.journal_transaction_amount': 'Transaction Amount',\r\n 'report.journal_journal_row': 'Journal Row',\r\n 'report.journal_value_per_transaction_type': 'Value Per Transaction Type',\r\n 'report.journal_total_transaction_per_type': 'Total Transaction Per Type',\r\n 'report.journal_total_transaction_value': 'Total Transaction Value',\r\n 'report.journal_total_transaction_amount': 'Total Transaction Amount',\r\n 'report.journal_total_journal_row': 'Total Journal Row',\r\n\r\n 'bankConnect.hash_tag': '#bankconnect',\r\n 'bankConnect.head_title_1': 'Automatically Download',\r\n 'bankConnect.head_title_2': 'Bank Account Mutations',\r\n 'bankConnect.head_title_3': 'to Kledo',\r\n 'bankConnect.head_title_description':\r\n 'Now every transaction in your bank account can be automatically entered into Kledo and reconciled. No more differences between financial statements and real transactions at the bank.',\r\n 'bankConnect.sales_contact': 'Contact Sales',\r\n 'bankConnect.add_bank_connect': 'Add Bank Connect',\r\n 'bankConnect.set_bank_connect': 'Set Bank Connect',\r\n 'bankConnect.feat_title_1': 'What will',\r\n 'bankConnect.feat_title_2': 'You get',\r\n 'bankConnect.feat_title_3': 'With Bank Connect',\r\n 'bankConnect.feat_1_sub_title': 'Automatic Download Mutation',\r\n 'bankConnect.feat_1_description':\r\n 'Every day, bank mutation transaction data will be automatically downloaded to the Kledo application. No more hassle of exporting transactions from ibanking and importing them to Kledo.',\r\n 'bankConnect.feat_2_sub_title': 'Free, No Cost',\r\n 'bankConnect.feat_2_description':\r\n 'Kledo does not charge a penny to use the Bank Connect feature. But banks will charge a fee for API connections, fees vary for each bank.',\r\n 'bankConnect.feat_3_sub_title': 'Direct Connection via API Bank',\r\n 'bankConnect.feat_3_description':\r\n 'Without using a 3rd party, Kledo will directly connect with your bank via API.',\r\n 'bankConnect.feat_4_sub_title': 'Safe and Secure',\r\n 'bankConnect.feat_4_description':\r\n 'The cooperation between Kledo and the Bank is only limited to taking account mutations, so it is not possible to make money transactions out of your account.',\r\n 'bankConnect.feat_5_sub_title': 'Unlimited',\r\n 'bankConnect.feat_5_description':\r\n \"No limit on the number of transactions per day, and no limit on the number of accounts you connect. It's all free!\",\r\n 'bankConnect.footer_note': \"Let's simplify your bank reconciliation process right now!\",\r\n 'report.number_of_shipments_per_expedition': 'Number of Shipments per Expedition',\r\n 'report.sales_value_per_expedition': 'Sales Value per Expedition',\r\n 'reports.product_sales_per_customer': 'Product Sales per Customer',\r\n 'reports.product_sales_per_customer_group': 'Product Sales per Customer Group',\r\n 'reports.product_purchases_per_vendor': 'Product Purchases per Vendor',\r\n 'reports.product_purchases_per_vendor_group': 'Product Purchases per Vendor Group',\r\n 'reports.cash_movement': 'Cash Movement',\r\n 'reports.account_component': 'Account Component',\r\n 'reports.excluded_accounts': 'Excluded Accounts',\r\n 'reports.select_excluded_accounts': 'Select the account you want to exclude',\r\n 'kledoPos.setting_default_account_receive_payment': 'Default Account Receive Payment',\r\n 'kledoPos.setting_default_account_receive_payment_desc':\r\n 'When you make a transaction payment at the POS, it will be recorded in accounting on this COA account.',\r\n 'billing.show_coupon': 'Show Coupon',\r\n 'billing.hide_coupon': 'Hide Coupon',\r\n 'billing.input_coupon': 'Input Coupon',\r\n 'reports.purchase_per_period_value': 'Purchase Value',\r\n 'reports.purchase_per_period_amount': 'Purchase Amount',\r\n 'layoutInvoice.invoice_show_witholding_detail': 'Show Withholding Detail',\r\n 'financeContacts.new_contact': 'New Contact',\r\n 'financeContacts.total_contact': 'Contact Total',\r\n 'financeContacts.contact_per_group': 'Contact Per Group',\r\n 'financeContacts.contact_per_province': 'Contact Per Province',\r\n 'reportsImport.date_and_time': 'Date & Time',\r\n 'reportsImport.total': 'Total Import',\r\n 'reportsImport.valid': 'Success',\r\n 'reportsImport.invalid': 'Failed',\r\n 'pos.pos_role': 'POS Role',\r\n 'approval.financeBanks': 'Cash & Bank',\r\n 'financeWareHouses.change_access_per_contact': 'Change Access Per Contact',\r\n 'financeWareHouses.per_contact_warehouse_access': 'Per Contact Warehouse Access',\r\n 'financeWareHouses.per_contact_warehouse_access_desc':\r\n 'Warehouse can be dedicated to only selected groups of contacts.
For example, Surabaya Warehouse can only be used for customers in the Surabaya group. Meanwhile, the National Warehouse can be used by all customers',\r\n 'financeWareHouses.warehouse_per_contact_type': 'The warehouse can be used by any contact group?',\r\n 'financeWareHouses.all_contact_groups': 'All Contact Groups',\r\n 'financeWareHouses.select_contact_group': 'Select Contact Group',\r\n 'reports.using_new_table_view': 'You are using a new table view',\r\n 'reports.using_legacy_table_view': 'You are using a legacy table view',\r\n 'reports.switch_to_new_table_view': 'Switch to the new table view',\r\n 'reports.switch_to_old_table_view': 'Switch to the old table view',\r\n 'settings.finance_payment_connect': 'Accept payments from ewallet, credit card, VA',\r\n 'paymentConnect.connection_test': 'Connection Test',\r\n 'paymentConnect.activate_payment_via_provider_name': 'Activate payment via {providerName}',\r\n 'paymentConnect.coa_cash_bank_accounts': 'COA Cash & Bank Accounts',\r\n 'paymentConnect.coa_cash_bank_accounts_help_text':\r\n 'Payments from the payment gateway will be recorded in this bank account',\r\n 'paymentConnect.coa_expense_account': 'COA Expense Account',\r\n 'paymentConnect.coa_expense_account_help_text':\r\n 'Transaction fees for payments will be recorded on this COA account',\r\n 'paymentConnect.tax_coa_account': 'Tax COA Account',\r\n 'paymentConnect.tax_coa_account_help_text':\r\n 'Imposition of transaction tax on payments will be recorded in this COA account',\r\n 'paymentConnect.midtrans_api_key_help_text':\r\n 'Copy the API Key from your Midtrans account, via the menu Settings >> Access Keys >> Server Key',\r\n 'paymentConnect.xendit_api_key_help_text':\r\n 'Copy the API Key from your Xendit account, via the menu Settings >> Developer >> API keys >> Create new secret key >> Secret API Key',\r\n 'paymentConnect.doku_api_key_help_text':\r\n 'Copy the API Key from your DOKU account, via the menu Integration >> API Keys >> Secret Key',\r\n 'paymentConnect.token_callback_help_text':\r\n 'Click the copy URL button below, then enter it into {providerName} account',\r\n 'invoices.payment_link': '{providerName} Payment Link',\r\n 'invoices.payment_connect_not_activated':\r\n 'You have not activated the {title} feature. With {title}, your customers can make payments via various payment channels, such as GoPay, Credit Card, Virtual Account, Alfamart, Kredivo and many more.',\r\n 'invoices.activate': 'Activate',\r\n 'paymentConnect.please_input_api_key': 'Please enter the API Key',\r\n 'paymentConnect.please_input_tax_coa_account': 'Please enter the Tax COA Account',\r\n 'paymentConnect.please_input_coa_expense_account': 'Please enter the COA Expense Account',\r\n 'paymentConnect.please_input_coa_cash_bank_accounts': 'Please enter the COA Cash & Bank Accounts',\r\n 'layoutInvoice.show_reference_as_message_with_title': 'Show {reference} As Message',\r\n 'tags.choose_a_color': 'Choose a color',\r\n 'report.profitloss_delta_tooltip':\r\n 'The difference between the revenue of the previous period and the revenue of this period.',\r\n 'report.profitloss_delta_percentage_tooltip':\r\n 'Growth or decline in revenue from the previous period.',\r\n 'kledoPos.setting_sales_tags': 'Sales Tags',\r\n 'kledoPos.setting_sales_tags_description':\r\n 'Sales made through POS will automatically use the following tags.',\r\n 'sso.please_input_your_code': 'Please input your code',\r\n 'sso.verified': 'Verified',\r\n 'sso.pending_verification': 'Pending Verification',\r\n 'sso.domain_verification': 'Domain Verification',\r\n 'sso.domain_verification_successful': 'Domain Verification Successful',\r\n 'sso.add_domain': 'Add Domain',\r\n 'sso.add_domain_desc':\r\n \"Please enter your email address containing your company's domain name. For example myname@companyname.com\",\r\n 'sso.domain_successfully_verified': 'Congratulation! Domain {domainName} successfully verified.',\r\n 'sso.verify_domain_desc':\r\n 'A verification code has been sent to your email address. Please enter the verification code in the form below',\r\n 'sso.verification': 'Verification',\r\n 'sso.resend_code': 'Resend code',\r\n 'sso.sso_configuration_service_provider_desc':\r\n 'Please enter the SP Entity ID and SP ACS URL data below into your identity provider administration page',\r\n 'sso.sso_configuration_identity_provider_desc':\r\n 'Retrieve the IDP Entity ID and SAML Login URL data from your identity provider, then enter it in the form below',\r\n 'sso.sso_please_enter_idp_entity_id': 'Please enter the IDP Entity ID',\r\n 'sso.sso_please_enter_saml_login_url': 'Please enter the SAML Login URL',\r\n 'sso.sso_configuration': 'SSO Configuration',\r\n 'settings.sso_setting': 'Login to Kledo with just one account',\r\n 'sso.continue_with_sso': 'Continue with SSO',\r\n 'sso.login_with_sso': 'Login with SSO',\r\n 'sso.login_sso_desc':\r\n 'Your account has Single Sign-On enabled. Proceed with SSO
to access your Kledo account',\r\n 'sso.return_to_login': 'Return to login',\r\n 'businessFlow.enable_login_with_sso': 'Enable login with SSO?',\r\n 'businessFlow.enable_login_with_sso_desc': 'Do you use SSO to login?',\r\n 'contacts.group_with_title': '{title} Group',\r\n 'contacts.who_can_access_this_contact_group': 'Who can access this group?',\r\n 'settings.approval_setting': 'Approval Setting',\r\n 'financeExpenseTerms.select_terms': 'Select Term',\r\n 'approval.transfer_money': 'Transfer Money',\r\n 'dashboard.the_maximum_number_that_can_be_displayed_on_the_dashboard':\r\n 'The maximum number that can be displayed on the dashboard is 30',\r\n 'sso.faq_question_what_is_sso': 'What is Single Sign On (SSO)?',\r\n 'sso.faq_answer_what_is_sso':\r\n 'SSO allows users to login to multiple applications and websites using one identity provider. So that users do not need to memorize many users and passwords for each application or website.',\r\n 'sso.faq_question_how_does_sso_work': 'How does SSO work?',\r\n 'sso.faq_answer_1_how_does_sso_work': 'User attempts to login to Kledo using SSO',\r\n 'sso.faq_answer_2_how_does_sso_work': 'Kledo sends user data to Identity Provider',\r\n 'sso.faq_answer_3_how_does_sso_work': 'Identity Provider checks user credentials',\r\n 'sso.faq_answer_4_how_does_sso_work':\r\n 'Identity Provider sends a response to Kledo, informing that the user is allowed to login',\r\n 'sso.faq_answer_5_how_does_sso_work':\r\n 'Kledo receives the info from the Identity Provider, and logs the user into Kledo',\r\n 'sso.faq_question_how_to_setup_sso_in_kledo': 'How to setup SSO in Kledo?',\r\n 'sso.faq_answer_how_to_setup_sso_in_kledo':\r\n 'Click {here} for a tutorial on how to setup SSO in Kledo.',\r\n 'sso.here': 'here',\r\n 'report.average_unit_price': 'Average Unit Price',\r\n 'report.average_product_value': 'Average Product Value',\r\n 'report.total_product_value': 'Total Product Value',\r\n 'billing.payment_balance': 'Payment Balance',\r\n 'roles.time_access_limit': 'Enable time access limit',\r\n 'roles.access_limit': 'Access time limit',\r\n 'roles.restricted_access_type_monday_friday': 'Monday - Friday Working hours',\r\n 'roles.restricted_access_type_monday_saturday': 'Monday - Saturday Working hours',\r\n 'roles.restricted_access_type_custom': 'Custom',\r\n 'roles.active_days_monday': 'Monday',\r\n 'roles.active_days_tuesday': 'Tuesday',\r\n 'roles.active_days_wednesday': 'Wednesday',\r\n 'roles.active_days_thursday': 'Thursday',\r\n 'roles.active_days_friday': 'Friday',\r\n 'roles.active_days_saturday': 'Saturday',\r\n 'roles.active_days_sunday': 'Sunday',\r\n 'businessFlow.enable_contact_group_is_required': 'Group is required',\r\n 'businessFlow.enable_contact_group_is_required_desc':\r\n 'Does there need to be a group when adding and modifying contacts?',\r\n 'report.unit_price_help':\r\n 'The Unit Price displayed is the last purchase price (not the average price)',\r\n 'report.product_value_help':\r\n 'The Product Value displayed is the last unit price multiplied by the quantity (not the average product value)',\r\n\r\n 'scheduler_lock_date.monday': 'Monday',\r\n 'scheduler_lock_date.tuesday': 'Tuesday',\r\n 'scheduler_lock_date.wednesday': 'Wednesday',\r\n 'scheduler_lock_date.thursday': 'Thursday',\r\n 'scheduler_lock_date.friday': 'Friday',\r\n 'scheduler_lock_date.saturday': 'Saturday',\r\n 'scheduler_lock_date.sunday': 'Sunday',\r\n 'scheduler_lock_date.days': 'Days',\r\n 'scheduler_lock_date.weeks': 'Weeks',\r\n 'scheduler_lock_date.months': 'Months',\r\n 'scheduler_lock_date.create_successfully': 'Option successfully updated.',\r\n 'scheduler_lock_date.create_failed': 'Cannot update option.',\r\n 'scheduler_lock_date.subtitle_1': 'Now you can automatically change the lock date.',\r\n 'scheduler_lock_date.subtitle_2':\r\n 'Specify the automatic change rules in the form below, and the lock date will be automatically updated according to your settings.',\r\n 'scheduler_lock_date.is_automatically_changed':\r\n 'Is the lock date automatically changed periodically?',\r\n 'scheduler_lock_date.label1': 'How frequently is the lock date changed?',\r\n 'scheduler_lock_date.label2': 'On which date is the lock date changed?',\r\n 'scheduler_lock_date.label3': 'On which day is the lock date changed?',\r\n 'scheduler_lock_date.label4': 'Change the lock date to which date?',\r\n 'scheduler_lock_date.daily': 'Daily',\r\n 'scheduler_lock_date.weekly': 'Weekly',\r\n 'scheduler_lock_date.monthly': 'Monthly',\r\n 'scheduler_lock_date.example': 'Example:',\r\n 'scheduler_lock_date.example_sub':\r\n 'If the automatic lock date is changed on March 1, and the lock date is moved 2 months earlier, then the lock date will be changed to January 1.',\r\n 'scheduler_lock_date.earlier': 'Earlier',\r\n 'scheduler_lock_date.update_successfully': 'Schedule Lock Date successfully activated.',\r\n 'scheduler_lock_date.update_failed': 'Cannot activate Schedule Lock Date.',\r\n 'scheduler_lock_date.update_successfully_inactive':\r\n 'Schedule Lock Date successfully deactivated.',\r\n 'scheduler_lock_date.update_failed_inactive': 'Cannot dactivate Schedule Lock Date.',\r\n 'financeFixedAssets.effective_life_title': 'Effective Life',\r\n 'paymentConnect.faq_question_payment_gateway': 'What is Payment Gateway?',\r\n 'paymentConnect.faq_answer_payment_gateway':\r\n 'By using a payment gateway, your customers can pay the bills you issue through various payment channels, such as credit cards, gopay, virtual accounts and so on. QR codes will be embedded on your bills, so customers can pay easily by scanning QR codes.',\r\n 'paymentConnect.faq_question_when_customer_pays_through_payment_gateway':\r\n 'What happens when my customer pays through the Payment Gateway?',\r\n 'paymentConnect.faq_answer_when_customer_pays_through_payment_gateway':\r\n 'When a payment is made, your bill will be automatically updated with the payment status. So you no longer need to bother recording every incoming payment.',\r\n 'paymentConnect.faq_question_payment_gateway_supported_by_kledo':\r\n 'What Payment Gateway is supported by Kledo?',\r\n 'paymentConnect.faq_answer_payment_gateway_supported_by_kledo':\r\n 'You can use Midtrans, Xendit or Doku.',\r\n 'paymentConnect.faq_question_charge_a_fee': 'Does Kledo charge a fee for using Payment Gateway?',\r\n 'paymentConnect.faq_answer_charge_a_fee':\r\n 'No. However, the payment gateway provider will charge a fee per transaction. For more detailed information, you can ask directly to Midtrans, Xendit or Doku.',\r\n 'paymentConnect.faq_question_how_to_setup': 'How to setup?',\r\n 'paymentConnect.faq_answer_how_to_setup': 'Click on the following links:',\r\n 'report.see_report': 'View Report',\r\n 'paymentConnect.click_here_to_go_to_tutorial':\r\n '{clickHere} for details on how to set up payment connect {providerName}',\r\n 'kledoPos.service_charge': 'Service Charge On Invoice Fees',\r\n 'kledoPos.service_charge_desc':\r\n 'For sales that include a service charge, the fee is recorded in this invoice fee master.',\r\n 'paymentConnect.success_copy_url_callback': 'The callback url was copied successfully',\r\n 'financeContacts.search_on_google_map': 'Search on Google Map',\r\n 'users.check_user_quota_availability': 'Check {title} quota availability',\r\n 'businessFlow.duplicate_contact_email': 'Duplicate contact email',\r\n 'businessFlow.duplicate_contact_email_desc': 'If active, the contact email can be duplicated.',\r\n 'audit.ip_address': 'IP Address',\r\n 'audit.enter_ip_address': 'Enter IP address',\r\n 'topBar.show_dark_mode': 'Show dark mode',\r\n 'topBar.show_light_mode': 'Show light mode',\r\n 'financeInvoices.reject_reason_label': 'Please enter your reason for rejecting the transaction',\r\n 'massDownload.data_progress_processed': '{count} out of {total} data has been processed',\r\n 'billing.enter_coupon_code': 'Enter coupon code',\r\n 'approval.receive_invoice_payment': 'Receive Invoice Payment',\r\n 'approval.receive_sales_order_payment': 'Receive Sales Order Payment',\r\n 'approval.purchase_payment': 'Purchase Payment',\r\n 'approval.purchase_order_payment': 'Purchase Order Payment',\r\n 'financeInvoices.detail_something': '{something} Detail',\r\n 'financeInvoices.logistic': 'Logistic',\r\n 'financeInvoices.location': 'Location',\r\n\r\n 'placeholder.attachment': 'Select Attachment',\r\n 'option.with_attachment': 'With Attachment',\r\n 'option.without_attachment': 'Without Attachment',\r\n 'placeholder.attachment_photo': 'Select Photo',\r\n 'option.with_attachment_photo': 'With Photo',\r\n 'option.without_attachment_photo': 'Without Photo',\r\n 'title.attachment_photo': 'Photo',\r\n 'layoutInvoice.show_transaction_fee_details': 'Show Transaction Fee Details',\r\n 'massPrint.data_progress_processed': '{count} out of {total} data has been processed',\r\n 'massPrint.mass_print': 'Mass Print',\r\n 'uploadImage.image_with_title': '{title} Image',\r\n 'uploadImage.show_image_with_title': 'Show {title} Image',\r\n 'uploadImage.hide_image_with_title': 'Hide {title} Image',\r\n 'financeInvoices.this_customer': 'This {customer}',\r\n 'financeInvoices.all_customer': 'All {customer}',\r\n 'financeInvoices.sales_price_history': 'Sales Price History',\r\n 'financeInvoices.sales_price_history_of_all_customers': 'Sales Price History of All {customer}',\r\n 'financeInvoices.something_has_been_applied': '{something} has been applied',\r\n 'financePurchaseInvoices.transaction_date_must_be_gt_date':\r\n 'Transaction date must be later than {date}',\r\n 'financeInvoices.failed_to_get_sales_price_history': 'Failed to get last sale price history',\r\n}\r\n\r\nexport default {\r\n locale: 'en-US',\r\n antdData,\r\n localeData,\r\n messages,\r\n}\r\n","import antdData from 'antd/lib/locale/id_ID'\r\nimport localeData from 'react-intl/locale-data/id'\r\n\r\nconst messages = {\r\n // Dynamic Translation\r\n 'text.choose': 'Pilih {title}',\r\n 'text.select': 'Pilih {title}',\r\n 'text.please_choose': 'Silahkan pilih {title}',\r\n 'button.add_with_title': 'Tambah {title}',\r\n 'report.name_with_title': 'Nama {title}',\r\n 'report.product_name_with_title': 'Nama {title}',\r\n 'report.product_category_with_title': 'Kategori {title}',\r\n 'report.total_quantity_product_with_title': 'Total kuantitas {title}',\r\n 'report.finished_product_with_title': '{title} Jadi',\r\n 'report.search_by_product_with_title': 'Cari {title}',\r\n 'report.product_value_with_title': 'Nilai {title}',\r\n 'report.product_profitability_stock_tracking_product_with_title': '{title} Lacak Stok',\r\n 'report.product_profitability_non_stock_tracking_product_with_title': '{title} Tanpa Lacak Stok',\r\n 'report.product_profitability_bundle_product_with_title': '{title} Paket',\r\n 'sales.product_sales_with_title': 'Penjualan Per {title}',\r\n 'sales.sales_contact_with_title': 'Penjualan Per {title}',\r\n 'financeInvoices.product_type_with_title': 'Jenis {title}',\r\n 'financeInvoices.select_product_with_title': 'Pilih {title}',\r\n 'financeInvoices.please_select_tag_with_title': 'Silahkan pilih {title}',\r\n 'financeWareHouses.total_products_with_title': 'Total {title}',\r\n 'financeWareHouses.total_product_value_with_title': 'Total Nilai {title}',\r\n 'financeWareHouses.ref_number_help_with_title':\r\n 'Isikan {title} untuk catatan internal dan mempermudah pencarian.',\r\n 'financeInvoices.used_to_create_transaction_categories_with_title':\r\n 'Digunakan untuk membuat kategori transaksi. Anda juga bisa membuat laporan berdasarkan {title} ini.',\r\n 'financeWareHouses.please_select_a_product_with_title': 'Silakan pilih {title}.',\r\n 'financeWareHouses.header_column_hpp_help_with_title':\r\n 'Ini adalah harga perolehan dari {title}, atau harga beli.',\r\n 'financeInvoices.product_code_that_not_exist_will_be_inserted_as_a_new_product_with_title':\r\n 'Kode SKU {product} yang belum ada di Kledo akan dimasukkan sebagai {product} baru.',\r\n 'financeProduct.available_stock_product_with_title': '{product} Stok Tersedia',\r\n 'financeProduct.almost_empty_stock_product_with_title': '{product} Stok Hampir Habis',\r\n 'financeProduct.empty_stock_product_with_title': '{product} Stok Habis',\r\n 'financeProduct.total_product_value_with_title': 'Total Nilai {product}',\r\n 'financeProduct.total_product_type_with_title': 'Total Jenis {product}',\r\n 'financeProduct.product_type_per_category_with_title': 'Jenis {product} per Kategori',\r\n 'financeProduct.product_availability_with_title': 'Ketersediaan {product}',\r\n 'financeProduct.product_image_with_title': 'Gambar {product}',\r\n 'financeProduct.show_product_image_with_title': 'Tampilkan Gambar {product}',\r\n 'financeProduct.hide_product_image_with_title': 'Sembunyikan Gambar {product}',\r\n 'financeProduct.raw_material': 'Bahan baku:',\r\n 'financePurchaseOrders.please_select_a_product_with_title': 'Silakan pilih {product}.',\r\n 'financeProduct.package_product_items_with_title': 'Paket {product} terdiri dari :',\r\n 'financeProduct.manufacture_product_items_with_title': '{product} manufaktur terdiri dari :',\r\n 'priceRule.applies_to_the_following_customers_with_title': 'Berlaku Pada {customer} Berikut',\r\n 'priceRule.applies_to_the_following_products_with_title': 'Berlaku Pada {product} Berikut',\r\n 'priceRule.all_customer_with_title': 'Semua {customer}',\r\n 'priceRule.customer_group_with_title': 'Grup {customer}',\r\n 'priceRule.per_customer_with_title': 'Per {customer}',\r\n 'priceRule.customer_groups_that_will_get_discount_with_title':\r\n 'Grup {customer} yang akan mendapatkan diskon',\r\n 'priceRule.customers_that_will_get_discount_with_title':\r\n '{customer} yang akan mendapatkan diskon',\r\n 'priceRule.all_product_with_title': 'Semua {product}',\r\n 'priceRule.product_category_with_title': 'Kategori {product}',\r\n 'priceRule.per_product_with_title': 'Per {product}',\r\n 'priceRule.discounted_product_category_with_title': 'Kategori {product} yang didiskon',\r\n 'priceRule.discounted_product_with_title': '{product} yang didiskon',\r\n 'posConnect.default_customer_with_title': '{customer} Default',\r\n 'posConnect.please_select_default_customer_with_title': 'Silakan pilih {customer} Default',\r\n 'posConnect.transaction_from_pos_inputed_as_this_customer_with_title':\r\n 'Transaksi dari POS akan dicatatkan sebagai transaksi dari {customer} ini',\r\n 'posConnect.service_charge_product_with_title': '{product} Service Charge',\r\n 'posConnect.please_select_service_charge_product_with_title':\r\n 'Silakan pilih {product} Service Charge',\r\n 'posConnect.if_service_charge_inputes_as_this_product_with_title':\r\n 'Jika terdapat service charge, akan dicatatkan sebagai pembelian pada {product} ini',\r\n 'posConnect.custom_product_with_title': '{product} Custom',\r\n 'posConnect.please_select_custom_product_with_title': 'Silakan pilih {product} Custom',\r\n 'posConnect.if_custom_product_inputes_as_this_product_with_title':\r\n 'Jika terdapat pembelian dengan {product} custom, akan dicatatkan pada {product} ini',\r\n 'emails.insert_tagsment_with_title': 'Sisipkan {tag}',\r\n 'layoutInvoice.show_product_with_title': 'Tampilkan {product}',\r\n 'layoutInvoice.show_ref_code_product_with_title': 'Tampilkan SKU {product}',\r\n 'layoutInvoice.show_product_image_with_title': 'Tampilkan Gambar {product}',\r\n 'layoutInvoice.show_tags_with_title': 'Tampilkan {tags}',\r\n 'layoutInvoice.show_reference_with_title': 'Tampilkan {reference}',\r\n 'businessFlow.hide_products_that_are_out_of_stock_with_title':\r\n 'Sembunyikan {products} yang stok habis',\r\n 'businessFlow.hide_products_that_are_out_of_stock_description_with_title':\r\n 'Apakah {products} yang stok habis disembunyikan saat menambah tagihan?',\r\n 'businessFlow.product_price_dont_change_with_title': 'Harga {product} tidak bisa diubah',\r\n 'businessFlow.wether_product_price_can_be_changed_when_add_invoice_with_title':\r\n 'Jika aktif maka harga {product} saat menambah tagihan tidak dapat diubah.',\r\n 'businessFlow.when_product_below_min_stock_email_notification_with_title':\r\n 'Saat stok {product} di bawah stok minimal, akan dikirimkan email notifikasi',\r\n 'bussinesFlow.desc_default_tracking_stock_with_title':\r\n 'Secara default fitur lacak stock aktif saat membuat {product} baru',\r\n 'businessFlow.use_fifo_method_desc_with_title':\r\n 'Metode yang digunakan untuk menghitung HPP. Jika aktif akan menggunakan metode FIFO, jika tidak aktif akan menggunakan metode Averaging. Pengaturan ini tidak dapat diubah jika telah terdapat {product} yang aktif lacak stok nya. Pengaturan hanya tersedia di paket Elite.',\r\n 'businessFlow.auto_update_product_buy_price_with_title': 'Auto update harga beli {product}',\r\n 'businessFlow.auto_update_product_buy_price_desc_with_title':\r\n 'Saat melakukan pembelian {product}, otomatis harga beli-nya dicatatkan ke produk sebagai harga beli default',\r\n 'businessFlow.auto_update_product_sell_price_with_title': 'Auto update harga jual {product}',\r\n 'businessFlow.auto_update_product_sell_price_desc_with_title':\r\n 'Saat melakukan penjualan {product}, otomatis harga jual-nya dicatatkan ke produk sebagai harga jual default',\r\n 'businessFlow.decline_product_conv_if_stock_not_enough_with_title':\r\n 'Tolak konversi {product} jika stok kurang',\r\n 'businessFlow.wether_decline_add_product_conv_if_stock_not_enough_with_title':\r\n 'Apakah tolak penambahan konversi {product} jika stok bahan baku tidak mencukupi?',\r\n 'businessFlow.show_tag_with_title': 'Tampilkan {tag}',\r\n 'businessFlow.show_tag_desc_with_title': 'Apakah input {tag} ditampilkan saat membuat invoice?',\r\n 'businessFlow.input_tag_is_required_with_title': 'Input {tag} wajib diisi',\r\n 'businessFlow.input_tag_is_required_desc_with_title':\r\n 'Apakah {tag} wajib diisi saat menambahkan transaksi penjualan?',\r\n 'businessFlow.manual_journal_input_tag_is_required_desc_with_title':\r\n 'Apakah {tag} wajib diiisi saat menambahkan transaksi jurnal umum?',\r\n 'businessFlow.purchase_input_tag_is_required_desc_with_title':\r\n 'Apakah {tag} wajib diiisi saat menambahkan transaksi tagihan pembelian?',\r\n 'businessFlow.expense_input_tag_is_required_desc_with_title':\r\n 'Apakah {tag} wajib diiisi saat menambahkan transaksi biaya?',\r\n 'businessFlow.bank_input_tag_is_required_desc_with_title':\r\n 'Apakah {tag} wajib diiisi saat menambahkan transaksi bank?',\r\n 'businessFlow.product_conversion_input_tag_is_required_desc_with_title':\r\n 'Apakah {tag} wajib diiisi saat menambahkan transaksi produk konversi?',\r\n 'businessFlow.show_reference_with_title': 'Tampilkan {reference}',\r\n 'businessFlow.show_reference_desc_with_title':\r\n 'Apakah input {reference} ditampilkan saat membuat invoice?',\r\n 'businessFlow.reference_multiline_with_title': 'Multiline {reference}',\r\n 'businessFlow.reference_multiline_desc_with_title': 'Apakah {reference} bisa banyak baris?',\r\n 'financeProduct.bundle_type_id_with_title': 'Tipe {product}',\r\n 'salesPerson.show_sales_person_with_title': 'Tampilkan {sales_person}',\r\n 'salesPerson.hide_sales_person_with_title': 'Sembunyikan {sales_person}',\r\n 'salesPerson.select_sales_person_with_title': 'Pilih {sales_person}',\r\n 'salesPerson.faq_answer_give_different_commission_with_title':\r\n 'Anda dapat mengatur besaran komisi tiap {sales_person} melalui {here}. Selain itu komisi juga bisa diatur berbeda untuk masing-masing produk.',\r\n 'businessFlow.wether_save_sales_person_to_sales_with_title':\r\n 'Apakah mencatatkan {sales_person} pada penjualan?',\r\n 'businessFlow.default_trans_date_follow_parent':\r\n 'Default tanggal transaksi sama dengan tanggal transaksi asal',\r\n 'businessFlow.default_trans_date_follow_parent_desc':\r\n 'Jika ya, maka saat membuat tagihan dari pemesanan, tanggal transaksi defaultnya sama dengan tanggal pemesanan. Jika tidak, tanggal transaksi adalah tanggal hari ini.',\r\n\r\n 'financeInvoices.with_credit_payment_with_title': 'Dengan {credit}',\r\n 'financeInvoices.with_debit_payment_with_title': 'Dengan {debit}',\r\n 'financePurchaseInvoices.pay_with_credit_memo_with_title': 'Dibayar dengan {credit}',\r\n 'financePurchaseInvoices.please_select_with_credit_memo_with_title':\r\n 'Silahkan pilih dibayar dengan {credit}',\r\n 'financePurchaseInvoices.pay_with_debit_memo_with_title': 'Dibayar dengan {debit}',\r\n 'financePurchaseInvoices.please_select_with_debit_memo_with_title':\r\n 'Silahkan pilih dibayar dengan {debit}',\r\n 'financeContacts.your_net_debt_with_title': 'Net {credit} Anda',\r\n 'financeContacts.you_owe_with_title': 'Anda {credit}',\r\n 'financeContacts.they_owe_with_title': 'Mereka {credit}',\r\n 'financeContacts.your_due_debt_with_title': '{credit} Anda jatuh tempo',\r\n 'financeContacts.their_due_debt_with_title': '{credit} mereka jatuh tempo',\r\n 'financeContacts.debt_you_need_to_pay_with_title': '{credit} yang perlu Anda bayar',\r\n 'financeContacts.max_payable_with_title': 'Maksimal {credit}',\r\n 'financeContacts.total_payable_is_calculated_from_purchase_invoices_with_title':\r\n 'Total {credit} dihitung dari tagihan pembelian, transaksi biaya dan kontak {credit}. Jika total {credit} melebihi maksimal, maka saat membuat tagihan pembelian baru akan ditolak.',\r\n 'financeContacts.max_receivable_with_title': 'Maksimal {debit}',\r\n 'financeContacts.total_accounts_receivable_is_calculated_from_sales_invoices_with_title':\r\n 'Total {debit} dihitung dari tagihan penjualan dan kontak {debit}. Jika total {debit} melebihi maksimal, maka saat membuat tagihan penjualan baru akan ditolak.',\r\n 'financeContacts.payable_account_with_title': 'Akun {credit}',\r\n 'financeContacts.receivable_account_with_title': 'Akun {debit}',\r\n 'financeContacts.awaiting_payment_with_title': '{debit} menunggu pembayaran',\r\n 'creditMemo.add_credit_memo_with_title': 'Tambah {credit}',\r\n 'creditMemo.detail_credit_memo_with_title': 'Detil {credit}',\r\n 'creditMemo.detail_title_with_title': '{credit} {number}',\r\n 'creditMemo.edit_credit_memo_with_title': 'Ubah {credit}',\r\n 'debitMemo.add_debit_memo_with_title': 'Tambah {debit}',\r\n 'debitMemo.detail_debit_memo_with_title': 'Detil {debit}',\r\n 'debitMemo.detail_title_with_title': '{debit} {number}',\r\n 'debitMemo.edit_debit_memo_with_title': 'Ubah {debit}',\r\n 'financeContacts.import_contact_transactions_with_title': 'Import {credit} {debit}',\r\n 'financeContacts.follow_these_steps_to_import_your_contact_transactions_with_title':\r\n 'Ikuti langkah-langkah berikut untuk meng-import {credit} {debit}',\r\n 'financeContacts.1_download_your_contact_transactions_template_file_with_title':\r\n '1. Download file template {credit} {debit}',\r\n 'financeContacts.start_by_downloading_our_contact_transactions_csv_with_title':\r\n 'Mulai dengan mengunduh file template dalam format Excel. File ini mempunyai kolom header yang yang dibutuhkan Kledo untuk mengimport detail dari {credit} {debit}-mu.',\r\n 'financeContacts.2_copy_your_contact_transactions_into_the_template_with_title':\r\n '2. Salin detail {credit} {debit} ke dalam template',\r\n 'financeContacts.import_contact_transactions_using_excel_or_another_spreadsheet_editor_with_title':\r\n 'Menggunakan Excel atau software spreadsheeet lainnya, masukkan detail {credit} {debit} ke dalam file template dari Kledo. Pastikan detail {credit} {debit} sesuai dengan kolom header yang ada di template.',\r\n 'financeInvoices.payment_with_credit_memo_with_title': 'Pembayaran dengan {credit}',\r\n 'financeInvoices.payment_with_debit_memo_with_title': 'Pembayaran dengan {debit}',\r\n 'salesCommission.you_can_manage_sales_person_in_this_page_with_title':\r\n 'Anda dapat mengatur komisi penjualan masing-masing {sales_person} pada halaman ini. Jika sudah, {link} untuk melihat laporan komisi sales-nya.',\r\n 'salesCommission.applies_to_the_following_sales_person_with_title':\r\n 'Berlaku Pada {sales_person} Berikut',\r\n 'financeManualJournal.tag_is_required_with_title': '{tag} wajib diisi',\r\n 'financeTag.who_can_access_this_tag_with_title': 'Siapa yang bisa mengakses {tag} ini?',\r\n 'financeProduct.who_can_access_this_product_with_title':\r\n 'Siapa yang bisa mengakses {product} ini?',\r\n 'financeInvoices.recurring_send_email_to_customer_with_title': 'Kirim Email ke {customer}',\r\n\r\n 'text.and': 'dan',\r\n\r\n 'topBar.changeLanguage': 'Ubah Bahasa',\r\n 'topBar.latestKledoUpdate': 'Update Kledo Terbaru',\r\n 'topBar.dataChangesTimeline': 'Timeline Perubahan Data',\r\n 'topBar.issuesHistory': 'Issues History',\r\n 'topBar.projectManagement': 'Project Management',\r\n 'topBar.typeToSearch': 'Ketik untuk mencari...',\r\n 'topBar.buyNow': 'Buy Now $24',\r\n 'topBar.bitcoin': 'Bitcoin',\r\n 'topBar.profileMenu.hello': 'Halo',\r\n 'topBar.profileMenu.billingPlan': 'Billing Plan',\r\n 'topBar.profileMenu.role': 'Role',\r\n 'topBar.profileMenu.email': 'Email',\r\n 'topBar.profileMenu.phone': 'Telp',\r\n 'topBar.profileMenu.logout': 'Keluar',\r\n 'topBar.billing.plan': 'Paket',\r\n 'topBar.billing.forever': 'Selamanya',\r\n 'topBar.billing.active_until': 'Aktif s/d',\r\n\r\n 'notification.updates': 'Updates',\r\n 'notification.timeline': 'Timeline',\r\n 'notification.server_error': 'Server Bermasalah',\r\n 'notification.something_went_wrong':\r\n 'Terjadi masalah di server, silahkan hubungi customer support kami.',\r\n 'notification.install_kledo': 'Install Aplikasi Kledo',\r\n 'notification.kledo_is_now_on_google_play': 'Kledo kini tersedia di Google Play',\r\n 'notification.kledo_is_now_on_app_store': 'Kledo kini tersedia di App Store',\r\n 'notification.install_now': 'Install Sekarang',\r\n 'notification.later': 'Nanti Saja',\r\n 'notification.disable': 'Matikan Notifikasi',\r\n 'notification.enable': 'Nyalakan Notifikasi',\r\n 'notification.low_stock': 'Notifikasi stok habis',\r\n 'notification.marketplace_sync_done': 'Notifikasi sinkronisasi marketplace selesai',\r\n 'notification.bank_sync_done': 'Notifikasi sinkronisasi bank selesai',\r\n 'notification.monthly_financial_report_email': 'Email laporan keuangan bulanan',\r\n 'notification.a_new_version_is_available': 'Versi terbaru tersedia!',\r\n 'notification.please_wait_prepare_to_reload_page':\r\n 'Silahkan tunggu, sistem akan melakukan pemasangan update dalam {countDown} detik. {errorAutoReloadMessage}',\r\n 'notification.autoreload_failed': 'Pemasangan otomatis gagal.',\r\n 'notification.reload_immediately': 'Pasangkan langsung',\r\n\r\n 'date.today': 'Hari Ini',\r\n 'date.yesterday': 'Kemarin',\r\n 'date.last_week': 'Minggu Lalu',\r\n 'date.this_month': 'Bulan Ini',\r\n 'date.last_month': 'Bulan Lalu',\r\n 'date.last_7_days': '7 Hari Lalu',\r\n 'date.last_30_days': '30 Hari Lalu',\r\n 'date.last_365_days': '365 Hari Lalu',\r\n 'date.this_year': 'Tahun Ini',\r\n 'date.last_year': 'Tahun Lalu',\r\n 'date.daily': 'Harian',\r\n 'date.monthly': 'Bulanan',\r\n 'date.yearly': 'Tahunan',\r\n 'date.day': 'Hari',\r\n 'date.month': 'Bulan',\r\n 'date.months': 'Bulan',\r\n 'date.year': 'Tahun',\r\n 'date.years': 'Tahun',\r\n 'date.same_date_last_month': 'Tanggal sama bulan lalu',\r\n 'date.same_date_last_year': 'Tanggal sama tahun lalu',\r\n\r\n 'button.page': 'Halaman',\r\n 'button.next': 'Lanjut',\r\n 'button.prev': 'Sebelumnya',\r\n 'button.renew': 'Perpanjang',\r\n 'button.revert': 'Kembalikan',\r\n 'button.upgrade': 'Upgrade',\r\n 'button.delete': 'Hapus',\r\n 'button.archive': 'Arsipkan',\r\n 'button.unarchive': 'Batalkan Arsip',\r\n 'button.add': 'Tambah',\r\n 'button.edit': 'Ubah',\r\n 'button.back': 'Kembali',\r\n 'button.search': 'Cari',\r\n 'button.save': 'Simpan',\r\n 'button.save_add_new': 'Simpan & Tambah Baru',\r\n 'button.cancel': 'Batal',\r\n 'button.print': 'Print',\r\n 'button.filter': 'Filter',\r\n 'button.clear_filter': 'Hapus Filter',\r\n 'button.guide': 'Panduan',\r\n 'button.tour': 'Tur',\r\n 'button.video': 'Video',\r\n 'button.article': 'Artikel',\r\n 'button.year': 'Tahun',\r\n 'button.month': 'Bulan',\r\n 'button.close': 'Tutup',\r\n 'button.error_data_': 'Error data!',\r\n 'input.placeholder.search': 'Cari',\r\n 'button.return': 'Retur',\r\n 'button.hello_can_i_help': 'Halo, ada yang bisa saya bantu?',\r\n 'button.schedule_now': 'Jadwalkan Sekarang',\r\n 'popconfirm.title.delete': 'Apakah Anda yakin untuk menghapus?',\r\n 'popconfirm.title.archive': 'Apakah Anda yakin untuk mengarsipkan?',\r\n 'popconfirm.title.unarchive': 'Apakah Anda yakin untuk batalkan arsip?',\r\n 'popconfirm.title.reset': 'Apakah Anda yakin untuk mengatur ulang?',\r\n 'popconfirm.title.void': 'Apakah Anda yakin untuk melakukan void transaksi ini?',\r\n 'popconfirm.title.unvoid': 'Apakah Anda yakin untuk membatalkan void transaksi ini?',\r\n 'breadcrumb.sales': 'Penjualan',\r\n 'breadcrumb.purchases': 'Pembelian',\r\n 'breadcrumb.conversionbalances': 'Saldo Awal',\r\n 'breadcrumb.conversiondate': 'Tanggal Konversi',\r\n 'breadcrumb.add': 'Tambah',\r\n 'breadcrumb.edit': 'Edit',\r\n 'breadcrumb.detail': 'Detil',\r\n 'suggestion.not_found': 'Data tidak ditemukan',\r\n 'spinner.loading': 'Pemuatan...',\r\n 'button.yes': 'Ya',\r\n 'button.no': 'Tidak',\r\n 'button.pdf': 'PDF',\r\n 'button.import': 'Import',\r\n 'button.export': 'Ekspor',\r\n 'button.view_journal_entries': 'Lihat Entri Jurnal',\r\n 'button.add_more': 'Tambah baris',\r\n 'button.print_pdf': 'Cetak PDF',\r\n 'button.print_label': 'Cetak Label',\r\n 'button.print_payment': 'Cetak Rekap Pembayaran',\r\n 'button.print_tax': 'Cetak Faktur Pajak',\r\n 'button.print_partial': 'Cetak per Termin',\r\n 'button.copy_link': 'Salin Link',\r\n 'button.copy': 'Salin',\r\n 'button.send_email': 'Kirim Email',\r\n 'button.send_wa': 'Kirim Whatsapp',\r\n 'button.send_sms': 'Kirim SMS',\r\n 'button.send_email_payment': 'Email Rekap Pembayaran',\r\n 'button.send_wa_payment': 'Whatsapp Rekap Pembayaran',\r\n 'button.send_sms_payment': 'SMS Rekap Pembayaran',\r\n 'button.download_word': 'Download MsWord',\r\n 'button.download_xls': 'Download XLS',\r\n 'button.download_csv': 'Download CSV',\r\n 'button.download_now': 'Download Sekarang',\r\n 'button.send': 'Kirim',\r\n 'button.share': 'Bagikan',\r\n 'button.duplicate': 'Duplikat',\r\n 'button.change_layout': 'Ganti Layout',\r\n 'button.reset': 'Kembali pengaturan awal',\r\n 'button.copy_to_clipboard': 'Salin Link ke Clipboard',\r\n 'button.select_all': 'Pilih Semua',\r\n 'button.deselect_all': 'Hapus Semua',\r\n 'button.change_order': 'Ubah Urutan',\r\n 'button.sell': 'Jual',\r\n 'button.buy': 'Beli',\r\n 'message.cannot_update_data': 'Data tidak dapat diubah.',\r\n 'message.cannot_return_data': 'Data tidak dapat di kembalikan.',\r\n 'message.link_has_been_copied': 'Link berhasil disalin.',\r\n 'message.on': 'di',\r\n 'link.show_more': 'Tampilkan selengkapnya',\r\n 'link.show_less': 'Sembunyikan',\r\n 'link.payment': 'Pembayaran {payment}',\r\n 'link.more': 'selengkapnya',\r\n 'link.add_email': 'Tambah email',\r\n 'link.add_shipping_address': 'Tambah Alamat Pengiriman',\r\n\r\n 'companies.company_list': 'Daftar Perusahaan',\r\n 'companies.add_company': 'Tambah Perusahaan',\r\n 'companies.created_on': 'Dibuat',\r\n 'companies.as': 'Sebagai',\r\n 'companies.are_you_sure_to_delete_this_company':\r\n 'Apakah Anda yakin untuk menghapus perusahaan ini?\\nSetelah dihapus, data tidak dapat dikembalikan',\r\n 'companies.choose_package': 'Pilih Paket',\r\n 'companies.full_name': 'Nama Lengkap',\r\n 'companies.please_input_full_name': 'Silakan masukkan Nama Lengkap',\r\n 'companies.company_name': 'Nama Perusahaan',\r\n 'companies.please_input_company_name': 'Silakan masukkan Nama Perusahaan',\r\n 'companies.role_on_company': 'Jabatan di Perusahaan Sebagai',\r\n 'companies.please_input_role_on_company': 'Silakan masukkan Jabatan di Perusahaan',\r\n 'companies.number_of_employee': 'Jumlah Karyawan',\r\n 'companies.please_input_number_of_employee': 'Silakan masukkan Jumlah Karyawan',\r\n 'companies.please_input_email': 'Silakan masukkan email',\r\n 'companies.please_input_phone_number': 'Silakan masukkan nomor telepon',\r\n 'companies.phone_number_must_08': 'Nomor telepon harus berawalan 08',\r\n 'companies.next_per_month': 'Selanjutnya {price}/bln',\r\n 'companies.free_forever': 'Gratis Selamanya',\r\n\r\n 'table.number': 'No',\r\n 'table.show_data': 'Tampilkan Data',\r\n 'table.rows_selected': '{count} baris dipilih',\r\n 'table.min_one_column': 'Minimal tampil satu kolom',\r\n 'table.data_empty': 'Data Kosong',\r\n 'table.data_x_empty': 'Data {name} Kosong',\r\n 'table.lets_create_your_first_x': 'Yuk mulai buat {name} pertamamu!',\r\n\r\n 'nps.how_likely_you_recommend':\r\n 'Seberapa besar kemungkinan Anda akan merekomendasikan Kledo kepada teman atau rekan kerja?',\r\n 'nps.not_likely': 'Sama sekali tidak mungkin',\r\n 'nps.very_likely': 'Sangat mungkin',\r\n 'nps.please_mention_another':\r\n 'Mohon sebutkan hal lain yang ingin Anda sampaikan melalui kotak komentar di bawah',\r\n 'nps.cannot_hide_nps': 'Tidak dapat menutup NPS',\r\n 'nps.cannot_send_nps': 'Tidak dapat mengirim NPS',\r\n 'nps.thank_you_your_input':\r\n 'Terima kasih, masukan Anda sangat berarti. Kami mempelajari setiap masukan yang masuk.',\r\n\r\n 'sms.cannot_send_wa': 'Tidak dapat mengirim Whatsapp.',\r\n 'sms.cannot_send_sms': 'Tidak dapat mengirim SMS.',\r\n 'sms.destination_number': 'Nomor Tujuan',\r\n 'sms.sms_has_been_sent_to': 'SMS telah berhasil terkirim ke',\r\n 'sms.sms_content': 'Isi SMS',\r\n 'sms.wa_content': 'Isi Whatsapp',\r\n 'sms.please_input_content': 'Silakan masukkan isi SMS.',\r\n 'sms.please_input_wa_content': 'Silakan masukkan isi Whatsapp.',\r\n 'sms.please_input_phone': 'Silakan masukkan nomor tujuan.',\r\n\r\n 'email.to': 'Kepada',\r\n 'email.from': 'Dari',\r\n 'email.subject': 'Judul',\r\n 'email.message': 'Pesan',\r\n 'email.please_input_subject': 'Silakan masukkan judul.',\r\n 'email.please_input_message': 'Silakan masukkan pesan.',\r\n 'email.cannot_send_email': 'Tidak dapat mengirim email.',\r\n 'email.email_has_been_sent_to': 'Email telah berhasil terkirim ke',\r\n 'email.please_confirm_email':\r\n 'Silakan mengkonfirmasi email Anda {email} terlebih dahulu sebelum bisa mengirimkan email.',\r\n 'email.send_confirmation_email': 'Kirim Email Konfirmasi',\r\n 'email.resend_confirmation_email': 'Kirim Ulang Email Konfirmasi',\r\n 'email.we_have_sent_confirmation_email':\r\n 'Kami telah mengirim email konfirmasi ke {email}. Mohon cek kotak masuk dan konfirmasi email Anda untuk melanjutkan.',\r\n 'email.email_confirmation': 'Konfirmasi Email',\r\n 'email.email_has_been_verified': 'Email {email} telah berhasil diverifikasi.',\r\n 'email.cannot_verify_email': 'Tidak dapat memverifikasi email.',\r\n 'email.email_verification_failed': 'Email {email} gagal diverifikasi.',\r\n 'email.email_template': 'Template Email',\r\n 'emails.edit_email_template': 'Ubah Template Email',\r\n 'emails.are_you_sure_revert_to_default': 'Apakah Anda yakin akan mengembalikan ke default?',\r\n 'emails.revert_to_default': 'Kembalikan ke Default',\r\n 'emails.template_name': 'Nama Templat',\r\n 'emails.please_input_the_email_template_name': 'Silakan masukkan nama template email.',\r\n 'emails.max_100_characters': 'Maks 100 karakter.',\r\n 'emails.email_template_name': 'Nama Template Email',\r\n 'emails.subject': 'Judul',\r\n 'emails.please_input_the_email_template_subject': 'Silakan masukkan judul template email.',\r\n 'emails.email_successfully_updated': 'Email berhasil diperbarui.',\r\n 'emails.error_cannot_update_email_template': 'Gagal memperbarui template email.',\r\n 'emails.email_successfully_reverted_to_default': 'Email berhasil dikembalikan ke default.',\r\n 'emails.error_cannot_revert_email_template': 'Gagal mengembalikan template email.',\r\n 'emails.reply_email_address_successfully_updated': 'Alamat email balasan berhasil diperbarui.',\r\n 'emails.error_cannot_update_reply_email_address': 'Gagal memperbarui alamat email balasan.',\r\n 'emails.email_templates': 'Template Email',\r\n 'emails.reply_email_address': 'Alamat Email Pengirim',\r\n 'emails.body': 'Tubuh',\r\n 'emails.rdw_tags_wrapper': 'rdw-tags-wrapper',\r\n 'emails.insert_tagsment': 'Sisipkan Tag',\r\n 'emails.when_an_agent_or_guest_replies_to_an_email,_this_is_the_email_their_reply_will_be_sent_to':\r\n 'Saat Anda mengirimkan email, email pengirim akan menggunakan alamat email berikut:.',\r\n 'emails.display_name': 'Nama tampilan',\r\n 'emails.please_input_the_display_name': 'Silakan masukkan nama tampilan.',\r\n 'emails.max_20_characters': 'Maks 20 karakter.',\r\n 'emails.only_alphanumeric_allowed': 'Hanya alfanumerik yang diizinkan.',\r\n 'emails.email_address': 'Alamat email',\r\n 'emails.please_input_the_email_address': 'Silakan masukkan alamat email.',\r\n 'emails.please_input_unique_email_address': 'Email {email} telah terdaftar.',\r\n 'emails.invalid_email_address_format': 'Format alamat email tidak valid.',\r\n 'email.you_can_resend_an_email_after':\r\n 'Ada dapat mengirimkan konfirmasi email kembali setelah {countDown}.',\r\n 'emails.send_attachment_from_related_transaction': 'Kirim attachment dari transaksi terkait',\r\n 'emails.send_attachment_from_related_transaction_help':\r\n 'Apabila transaksi terkait mempunyai attachment, apakah ikut dikirimkan pada email ini?',\r\n\r\n 'wa.wa_template': 'Template Whatsapp',\r\n 'wa.edit_wa_template': 'Ubah Template Whatsapp',\r\n 'wa.change_template': 'Ubah Template',\r\n 'wa.error_cannot_update_template': 'Tidak dapat mengubah template Whatsapp',\r\n 'wa.error_cannot_revert_template': 'Tidak dapat mengembalikan template Whatsapp',\r\n\r\n 'multiCurrency.multi_currency': 'Multi Mata Uang',\r\n 'multiCurrency.base_currency_cannot_changed_after_enabled':\r\n 'Mata uang dasar tidak dapat diubah setelah Anda mengaktifkan multi mata uang',\r\n 'multiCurrency.activate_multi_currency': 'Aktifkan multi mata uang',\r\n 'multiCurrency.set_rate_source': 'Atur sumber kurs',\r\n 'multiCurrency.change_daily_rate': 'Ubah kurs harian',\r\n 'multiCurrency.add_currency': 'Tambah mata uang',\r\n 'multiCurrency.in': 'Dalam',\r\n 'multiCurrency.rate': 'Kurs',\r\n 'multiCurrency.source': 'Sumber',\r\n 'multiCurrency.base_currency': 'Mata uang dasar',\r\n 'multiCurrency.currency': 'Mata uang',\r\n 'multiCurrency.select_currency': 'Pilih mata uang',\r\n 'multiCurrency.rate_source': 'Sumber kurs',\r\n 'multiCurrency.select_rate_source': 'Pilih sumber kurs',\r\n 'multiCurrency.edit_rate_for_date': 'Ubah kurs untuk tanggal',\r\n 'multiCurrency.input_date': 'Masukkan tanggal',\r\n 'multiCurrency.rate_value': 'Nilai kurs',\r\n 'multiCurrency.rate_value_must_more_0': 'Nilai kurs harus lebih dari 0',\r\n 'multiCurrency.select_rate_value': 'Masukkan nilai kurs',\r\n 'multiCurrency.rate_reference': 'Kurs referensi',\r\n 'multiCurrency.please_select_base_currency_to_enable_multi':\r\n 'Silakan pilih mata uang dasar untuk mengaktifkan multi mata uang',\r\n 'multiCurrency.please_select_currency_first': 'Pilih mata uang terlebih dahulu',\r\n 'multiCurrency.change_rate_value': 'Ubah nilai kurs',\r\n 'multiCurrency.transaction_currency': 'Mata uang transaksi',\r\n 'multiCurrency.reset_rate': 'Reset kurs',\r\n 'multiCurrency.rate_not_found': 'Kurs tidak ditemukan',\r\n\r\n 'referral.referral': 'Referal',\r\n 'referral.read_more': 'Baca selengkapnya >>',\r\n 'referral.referral_history': 'Riwayat Referal',\r\n 'referral.your_referral_code': 'Kode Referalmu',\r\n 'referral.company': 'Perusahaan',\r\n 'referral.code': 'Kode',\r\n 'referral.copy_code': 'Salin Kode',\r\n 'referral.add_code': 'Tambah Kode',\r\n 'referral.register': 'Daftar',\r\n 'referral.paid': 'Dibayar',\r\n 'referral.transfered': 'Ditransfer',\r\n 'referral.approved': 'Disetujui',\r\n 'referral.lead': 'Lead',\r\n 'referral.cannot_get_referral': 'Tidak dapat mengambil data referal',\r\n 'referral.cannot_add_referral': 'Tidak dapat menambah referal',\r\n 'referral.cannot_delete_referral': 'Tidak dapat menghapus referal',\r\n 'referral.invite_your_friends': 'Ajak Temanmu Menggunakan Kledo',\r\n 'referral.get_millions_per_month': 'Dapatkan jutaan rupiah per bulan',\r\n 'referral.share_your_referral_code': 'Bagikan kode referalmu',\r\n 'referral.share_via_sosmed_or_anything':\r\n 'Bagikan via sosmed, email, whatsapp, atau apapun ke kolegamu',\r\n 'referral.discount_for_your_friends': 'Diskon {discount}% untuk temanmu',\r\n 'referral.your_friends_will_get_discount':\r\n 'Temanmu akan mendapatkan diskon {discount}% jika mendaftar untuk 1 tahun',\r\n 'referral.reward_per_referral': 'Reward Rp {rewardAmount}rb per referal',\r\n 'referral.get_reward_per_referral':\r\n 'Dapatkan reward sebesar Rp {rewardAmount}rb rupiah tiap referal',\r\n\r\n 'customColumn.you_can_add_custom_column_on_invoice':\r\n 'Anda bisa menambahkan custom kolom pada data transaksi tagihan penjualan',\r\n 'customColumn.name': 'Nama',\r\n 'customColumn.please_input_name': 'Silakan Masukkan Nama',\r\n 'customColumn.data_type': 'Tipe Data',\r\n 'customColumn.please_input_data_type': 'Silakan Masukkan Tipe Data',\r\n 'customColumn.transaction_field': 'Field Transaksi',\r\n 'customColumn.item_field': 'Field Item',\r\n 'customColumn.option': 'Pilihan',\r\n 'customColumn.default_selected': 'Default Terpilih',\r\n 'customColumn.please_input_option': 'Silakan Masukkan Pilihan',\r\n 'customColumn.min_1_option': 'Minimal 1 pilihan',\r\n 'customColumn.add_more': 'Tambah baris',\r\n 'customColumn.what_difference_of_transaction_and_item_field':\r\n 'Apa beda field transaksi dan field item? Klik di sini.',\r\n 'customColumn.please_select_custom_column': 'Silakan pilih custom field',\r\n 'customColumn.show_custom_column': 'Tampilkan Custom Field',\r\n 'customColumn.hide_custom_column': 'Sembunyikan Custom Field',\r\n 'customColumn.with_custom_fields_you_can_add_data_to_the_bill':\r\n 'Dengan custom fields, Anda bisa menambah data pada tagihan, ataupun juga menambah kolom pada item tagihan sesuai dengan kebutuhan perusahaan Anda.',\r\n\r\n 'marketplaceConnect.status': 'Status',\r\n 'marketplaceConnect.marketplace': 'Marketplace',\r\n 'marketplaceConnect.store': 'Toko',\r\n 'marketplaceConnect.store_url': 'Url Toko',\r\n 'marketplaceConnect.data_integration_schedule': 'Jadwal Tarik Data',\r\n 'marketplaceConnect.created_at': 'Dibuat',\r\n 'marketplaceConnect.last_data_integrated': 'Terakhir Tarik Data',\r\n 'marketplaceConnect.action': 'Aksi',\r\n 'marketplaceConnect.choose_marketplace_to_connect_to_kledo':\r\n 'Pilih marketplace yang akan dihubungkan ke Kledo',\r\n 'marketplaceConnect.marketplace_not_supported_yet': 'Marketplace ini belum didukung',\r\n 'marketplaceConnect.setting': 'Setting',\r\n 'marketplaceConnect.store_name': 'Nama Toko',\r\n 'marketplaceConnect.delete_connection': 'Hapus Koneksi',\r\n 'marketplaceConnect.sync_now': 'Tarik Data Sekarang',\r\n 'marketplaceConnect.sync_interval': 'Jadwal Tarik Data',\r\n 'marketplaceConnect.please_select_sync_interval': 'Silakan Pilih Jadwal Tarik Data',\r\n 'marketplaceConnect.payment_bank_account': 'Akun Bank Pembayaran',\r\n 'marketplaceConnect.please_select_payment_bank_account': 'Silakan Pilih Akun Bank Pembayaran',\r\n 'marketplaceConnect.shipping_cost_account': 'Akun Biaya Pengiriman',\r\n 'marketplaceConnect.shipping_cost_account_tooltip':\r\n 'Setiap transaksi yang biaya pengirimannya dibayarkan pelanggan ke marketplace, akan dibuatkan transaksi biaya secara otomatis.',\r\n 'marketplaceConnect.start_pulling_data': 'Mulai tarik data',\r\n 'marketplaceConnect.start_pulling_data_tooltip':\r\n 'Kapan tanggal mulai tarik data dari marketplace ke Kledo? Tarik data maksimal 1 minggu dari tanggal sekarang.',\r\n 'marketplaceConnect.start_pulling_data_minimum_date_message':\r\n 'Minimal tanggal mulai penarikan data adalah sekarang.',\r\n 'marketplaceConnect.start_pulling_data_maximum_date_message':\r\n 'Maximal tanggal mulai penarikan data adalah sekarang.',\r\n 'marketplaceConnect.please_select_shipping_cost_account': 'Silakan Pilih Akun Biaya Pengiriman',\r\n 'marketplaceConnect.admin_cost_account': 'Akun Biaya Admin',\r\n 'marketplaceConnect.admin_cost_account_tooltip':\r\n 'Setiap transaksi yang dipotong biaya admin oleh marketplace, akan dibuatkan transaksi biaya secara otomatis.',\r\n 'marketplaceConnect.please_select_admin_cost_account': 'Silakan Pilih Akun Biaya Admin',\r\n 'marketplaceConnect.warehouse': 'Gudang',\r\n 'marketplaceConnect.please_select_warehouse': 'Silakan Pilih Gudang',\r\n 'marketplaceConnect.tag': 'Tag',\r\n 'marketplaceConnect.record_shipping_cost': 'Catat Biaya Pengiriman',\r\n 'marketplaceConnect.is_shipping_cost_will_be_recorded_on_kledo':\r\n 'Apakah biaya pengiriman akan dicatatkan ke Kledo?',\r\n 'marketplaceConnect.every_hour': 'Setiap {hour} jam',\r\n 'marketplaceConnect.please_input_shop_name': 'Silakan masukkan url toko',\r\n 'marketplaceConnect.yeah_successful': 'Hore berhasil!',\r\n 'marketplaceConnect.next_activation_step_will_be_contacted':\r\n 'Untuk langkah aktifasi berikutnya, Anda akan dihubungi oleh tim customer success kami pada hari dan jam kerja, melalui whatsapp dan email. Mohon ditunggu ya.',\r\n 'marketplaceConnect.if_product_not_track_empty_warehouse':\r\n 'Jika produk Anda tidak lacak stok, silakan kosongkan bagian gudang ini',\r\n 'marketplaceConnect.using_marketplace_connect_shop_transaction_automatic_on_kledo':\r\n 'Dengan menggunakan marketplace connect, transaksi tokomu di marketplace akan otomatis masuk ke data Kledo, asik kan? Yuk hubungkan marketplacemu dengan Kledo.',\r\n 'marketplaceConnect.tutorial_video': 'Video Tutorial',\r\n 'marketplaceConnect.record_transaction': 'Catat Transaksi',\r\n 'marketplaceConnect.please_select_record_transaction': 'Silakan masukkan Catat Transaksi',\r\n 'marketplaceConnect.on_transaction_done': 'Saat transaksi selesai',\r\n 'marketplaceConnect.start_on_item_sent': 'Mulai saat barang dikirim',\r\n 'marketplaceConnect.record_transaction_help':\r\n 'Jika dicatat saat barang dikirim, maka saat barang status sedang kirim di kledo akan dicatatkan transaksi pemesanan dan pengirimannya. Dan saat transaksi selesai, akan dibuatkan transaksi tagihan penjualan dan pembayarannya. Jika dicatat saat transaksi selesai, maka transaksi dimasukkan ke kledo hanya saat status transaksi di marketplace selesai.',\r\n\r\n 'posConnect.choose_pos_to_connect_to_kledo': 'Pilih POS yang akan dihubungkan ke Kledo',\r\n 'posConnect.please_input_client_id': 'Silakan masukkan Client ID',\r\n 'posConnect.please_input_client_secret': 'Silakan masukkan Client Secret',\r\n 'posConnect.click_here_to_get_client_id_secret':\r\n 'Klik {link} untuk mendapatkan Client ID dan Secret',\r\n 'posConnect.payment_transaction_input_this_coa_account':\r\n 'Transaksi pembayaran akan dicatatkan pada akun COA ini',\r\n 'posConnect.default_customer': 'Pelanggan Default',\r\n 'posConnect.please_select_default_customer': 'Silakan pilih Pelanggan Default',\r\n 'posConnect.transaction_from_pos_inputed_as_this_customer':\r\n 'Transaksi dari POS akan dicatatkan sebagai transaksi dari pelanggan ini',\r\n 'posConnect.service_charge_product': 'Produk Service Charge',\r\n 'posConnect.please_select_service_charge_product': 'Silakan pilih Produk Service Charge',\r\n 'posConnect.if_service_charge_inputes_as_this_product':\r\n 'Jika terdapat service charge, akan dicatatkan sebagai pembelian pada produk ini',\r\n 'posConnect.custom_product': 'Produk Custom',\r\n 'posConnect.please_select_custom_product': 'Silakan pilih Produk Custom',\r\n 'posConnect.if_custom_product_inputes_as_this_product':\r\n 'Jika terdapat pembelian dengan produk custom, akan dicatatkan pada produk ini',\r\n 'posConnect.your_pos_has_been_connected':\r\n 'POS Anda sudah terkoneksi dengan Kledo. Data dari POS akan otomatis masuk ke Kledo secara berkala',\r\n\r\n 'consolidation.you_must_have_more_than_one_companies':\r\n 'Untuk dapat menggunakan fitur konsolidasi, Anda terlebih dahulu harus mempunyai lebih dari satu perusahaan dengan hak akses Administrator.',\r\n 'consolidation.if_you_have_more_companies_you_may_activate':\r\n 'Jika Anda memiliki lebih dari satu perusahaan, Anda dapat mengaktifkan fitur konsolidasi. Fitur konsolidasi akan secara otomatis mengkompilasi laporan dari masing-masing perusahaan kedalam satu laporan konsolidasi.',\r\n 'consolidation.you_must_have_admin_each_companies':\r\n 'Anda harus memilik hak akses sebagai administrator dimasing-masing perusahaan yang akan dikompilasi.',\r\n 'consolidation.please_select_companies_that_will_be_compiled':\r\n 'Silakan pilih perusahaan yang akan dikompilasi ke dalam laporan konsolidasi',\r\n 'consolidation.please_select_coa_accounts':\r\n 'Silakan pilih akun COA untuk dikompilasi kedalam laporan konsolidasi',\r\n 'consolidation.please_select_all_companies_that_will_be_compiled':\r\n 'Silakan pilih semua perusahaan yang akan dikompilasi ke dalam laporan konsolidasi',\r\n 'consolidation.must_enable_2_companies': 'Anda harus mengaktifkan setidaknya 2 perusahaan',\r\n 'consolidation.cannot_select_company': 'Tidak dapat memilih perusahaan',\r\n 'consolidation.add_company': 'Tambah Perusahaan',\r\n 'consolidation.automatic_compilation': 'Kompilasi Otomatis',\r\n 'consolidation.compile': 'Kompilasi',\r\n 'consolidation.cannot_compile': 'Tidak dapat mengkompilasi',\r\n 'consolidation.code': 'Kode',\r\n 'consolidation.name': 'Nama',\r\n 'consolidation.category': 'Kategori',\r\n 'consolidation.account': 'Akun',\r\n 'consolidation.account_total': 'Jumlah Akun',\r\n 'consolidation.activate_consolidation_feature': 'Aktifkan fitur konsolidasi',\r\n 'consolidation.cannot_activate_consolidation': 'Tidak dapat mengaktifkan fitur konsolidasi',\r\n 'consolidation.compilation_saved':\r\n 'Kompilasi akun berhasil, klik tombol di bawah untuk melihat laporan',\r\n 'consolidation.see_report': 'Lihat Laporan',\r\n 'consolidation.confirm_auto_compile':\r\n 'Kompilasi otomatis akan secara otomatis mengkompilasi akun dengan kode yang sama ke dalam akun konsolidasi. Apakah Anda yakin akan mengkompilasi otomatis?',\r\n 'consolidation.code_already_exist': 'Kode sudah ada, silakan ganti dengan yang lain',\r\n\r\n 'translation.translation': 'Translasi',\r\n 'translation.title.reset': 'Apakah Anda yakin untuk reset?',\r\n 'translation.reset': 'Reset Translasi',\r\n 'translation.error_cannot_edit': 'TIdak bisa mengubah Translasi',\r\n\r\n 'audit.audit': 'Audit',\r\n 'audit.show_audit': 'Lihat Audit',\r\n 'audit.date': 'Tanggal',\r\n 'audit.description': 'Deskripsi',\r\n 'audit.ip': 'IP',\r\n 'audit.by': ' oleh ',\r\n 'audit.user': 'User',\r\n 'audit.item': 'Item',\r\n 'audit.all_item': 'Semua item',\r\n 'audit.filter': 'Filter Audit',\r\n\r\n 'appSetting.apps': 'Aplikasi',\r\n 'appSetting.date_created': 'Tanggal Dibuat',\r\n 'appSetting.app_name': 'Nama Aplikasi',\r\n 'appSetting.client_id': 'Client ID',\r\n 'appSetting.client_id_has_been_copied': 'Client ID berhasil disalin',\r\n 'appSetting.secret_has_been_copied': 'Secret berhasil disalin',\r\n 'appSetting.endpoint_has_been_copied': 'API Endpoint URL berhasil disalin',\r\n 'appSetting.documentation_has_been_copied': 'Dokumentasi API berhasil disalin',\r\n 'appSetting.api_documentation_endpoint': 'Dokumentasi API Endpoint',\r\n 'appSetting.please_input_name': 'Silakan masukkan nama aplikasi',\r\n 'appSetting.please_redirect_uri': 'Silakan masukkan redirect URI',\r\n 'appSetting.please_valid_uri': 'Silakan masukkan URL yang valid',\r\n 'appSetting.error_cannot_get': 'Tidak dapat mengambil data aplikasi',\r\n 'appSetting.error_cannot_create': 'Tidak dapat membuat aplikasi',\r\n 'appSetting.error_cannot_edit': 'Tidak dapat mengubah aplikasi',\r\n 'appSetting.error_cannot_delete': 'Tidak dapat menghapus aplikasi',\r\n 'appSetting.app_has_been_created_make_sure_save_secret':\r\n 'Aplikasi baru berhasil dibuat, silakan pastikan simpan kode secret di bawah sebelum berpindah ke halaman lain.',\r\n 'appSetting.secret_code_just_shown_once':\r\n 'Kode secret hanya tampil sekali. Simpan kode ini, karena setelah ini Anda tidak dapat melihat kode secret ini lagi.',\r\n 'appSetting.integrate_your_app_with_kledo': 'Integrasikan aplikasimu dengan Kledo',\r\n 'appSetting.now_app_can_be_integrated_with_kledo':\r\n 'Sekarang aplikasi, website, maupun software-mu bisa diintegrasikan dengan Kledo.',\r\n 'appSetting.for_more_details_lets_see_the_video': 'Untuk lebih jelasnya, yuk lihat videonya',\r\n 'appSetting.watch_video': 'Lihat video',\r\n\r\n 'settings.shipping_comps': 'Atur perusahaan ekspedisi',\r\n 'settings.businessflow': 'Atur alur bisnismu',\r\n 'settings.company': 'Data dan logo perusahaan',\r\n 'settings.taxes': 'Atur pajak',\r\n 'settings.terms': 'Atur data termin pembayaran',\r\n 'settings.billing': 'Upgrade dan perpanjangan paket Kledo',\r\n 'settings.automatic_sequencing': 'Atur penomoran otomatis invoice',\r\n 'settings.lock_date': 'Kunci data lama untuk tutup buku',\r\n 'settings.layout_invoice': 'Atur tampilan print invoice',\r\n 'settings.layout_reporting': 'Atur tampilan laporan keuangan',\r\n 'settings.users': 'Undang staff dan kolegamu menggunakan Kledo',\r\n 'settings.roles': 'Atur hak akses pengguna',\r\n 'settings.my_profile': 'Atur profil dan ubah password',\r\n 'settings.setup': 'Hapus data demo dan mulai dari awal',\r\n 'settings.translation': 'Ubah bahasa pada menu Kledo',\r\n 'settings.audits': 'Pantau log perubahan data',\r\n 'settings.units': 'Atur satuan produk',\r\n 'settings.consolidation': 'Atur perusahaan dan akun untuk laporan konsolidasi',\r\n 'settings.tags': 'Atur tag untuk pemisahan laporan cabang/departemen/divisi',\r\n 'settings.email_template': 'Atur tampilan email',\r\n 'settings.apps': 'Koneksikan Apps mu dengan API Kledo',\r\n 'settings.account_mappings': 'Pemetaan akun CoA untuk transaksi di Kledo',\r\n 'settings.marketplace_connect': 'Otomatis sinkron Shopee, Tokopedia, dan Lazada ke Kledo',\r\n 'settings.whatsapp_template': 'Atur template default pengiriman invoice via Whatsapp',\r\n 'settings.notification': 'Atur notifikasi yang dikirim ke emailmu',\r\n 'settings.notification_title': 'Notifikasi',\r\n 'settings.custom_columns': 'Custom data pada invoicemu',\r\n 'settings.woocommerce': 'Otomatis sinkron Wordpress & Woocommerce ke Kledo',\r\n 'settings.pos_connect': 'Otomatis sinkron POS ke Kledo',\r\n 'settings.multi_currency': 'Atur penggunaan banyak mata uang',\r\n 'settings.sales_commission': 'Atur komisi penjualan tiap tim sales',\r\n\r\n 'billing.error_cannot_upgrade': 'Tidak dapat upgrade',\r\n 'billing.error_cannot_renew': 'Tidak dapat perpanjangan',\r\n 'billing.error_cannot_delete': 'Tidak dapat menghapus',\r\n 'billing.error_cannot_get_addon': 'Tidak dapat mengambil addon',\r\n 'billing.error_cannot_add_addon': 'Tidak dapat menambah addon',\r\n 'billing.account_expired':\r\n 'Akun Anda telah habis masa aktifnya, silakan order perpanjangan untuk kembali dapat mengakses akun Anda',\r\n 'billing.expired': 'Akun Anda telah habis masa aktifnya, {setup} untuk order perpanjangan',\r\n 'billing.current_expired_date': 'Tanggal expired saat ini',\r\n 'billing.1.expiration_date_after_renewal': 'Tanggal expired setelah perpanjangan',\r\n 'billing.2.expiration_date_after_renewal':\r\n 'Tanggal expired setelah perpanjangan dihitung dari tanggal expired saat ini, bukan dihitung dari tanggal pembayaran.',\r\n 'billing.expired_link': 'klik disini',\r\n 'billing.billing': 'Billing',\r\n 'billing.thankyou': 'Terimakasih',\r\n 'billing.upgrade': 'Upgrade',\r\n 'billing.renew': 'Perpanjang',\r\n 'billing.addon': 'Addon',\r\n 'billing.show_addon': 'Tambah Addon',\r\n 'billing.hide_addon': 'Sembunyikan Addon',\r\n 'billing.upgrade_now': 'Upgrade Sekarang',\r\n 'billing.renew_now': 'Perpanjang Sekarang',\r\n 'billing.order_now': 'Pesan Sekarang',\r\n 'billing.upgrade_plan': 'Upgrade Paket',\r\n 'billing.renew_plan': 'Perpanjang Paket',\r\n 'billing.subscription_plan': 'Paket Berlangganan',\r\n 'billing.plan': 'Paket',\r\n 'billing.forever': 'Selamanya',\r\n 'billing.payment_history': 'Riwayat Pembayaran',\r\n 'billing.active_until': 'Aktif sampai',\r\n 'billing.order_date': 'Tanggal Order',\r\n 'billing.description': 'Deskripsi',\r\n 'billing.period': 'Periode',\r\n 'billing.payment_date': 'Tanggal Bayar',\r\n 'billing.total': 'Total',\r\n 'billing.status': 'Status',\r\n 'billing.select_plan': 'Silakan pilih paket yang Anda inginkan',\r\n 'billing.select_contract_duration': 'Silakan pilih lama kontrak',\r\n 'billing.total_bill': 'Total tagihan',\r\n 'billing.please_add_an_addon': 'Silakan tambah salah satu addon',\r\n 'billing.please_select_a_plan': 'Silakan pilih paket',\r\n 'billing.please_select_the_contract_duration': 'Silakan pilih lama kontrak',\r\n 'billing.get_x_discount_for_1_year_payment_and_x_discount_for_6_months':\r\n 'Diskon {discountFor1Year} untuk pembayaran 1 tahun dan diskon {discountFor6Months} untuk pembayaran 6 bulan',\r\n 'billing.bill_email_has_been_sent_to_your_email':\r\n 'Email tagihan telah dikirimkan ke alamat email Anda.',\r\n 'billing.please_make_a_payment_of': 'Silakan melakukan pembayaran sebesar',\r\n 'billing.by_click_button_below': 'dengan klik tombol berikut',\r\n 'billing.pay_now': 'Bayar Sekarang',\r\n 'billing.pay': 'Bayar',\r\n 'billing.payment_failed': 'Pembayaran Gagal',\r\n 'billing.please_contact_kledo_if_difficulity_on_payment':\r\n 'Silakan menghubungi tim Hebat Kledo jika mengalami kesulitan dalam pembayaran.',\r\n 'billing.payment_success': 'Pembayaran Berhasil',\r\n 'billing.your_account_activated_thanks': 'Akun Anda telah diaktifkan. Terima kasih.',\r\n 'billing.payment_pending': 'Menunggu Pembayaran',\r\n 'billing.your_account_wiil_be_active_after_payment':\r\n 'Akun Anda akan aktif setelah dilakukan pembayaran. Jika Anda telah melakukan pembayaran, silakan klik tombol berikut. Terimakasih.',\r\n 'billing.to': 'ke',\r\n 'billing.bank': 'Bank',\r\n 'billing.account_number': 'Nomor Rekening',\r\n 'billing.after_make_a_payment_please_confirm_via_whatsapp':\r\n 'Setelah melakukan pembayaran, mohon konfirmasi melalui whatsapp di',\r\n 'billing.back_to_billing': 'Kembali ke Billing',\r\n 'billing.feature_available_in_pro_plan': 'Fitur {feature} tersedia di paket PRO',\r\n 'billing.feature_can_only_be_use_on_pro_plan': '{feature} hanya bisa diakses di paket PRO',\r\n 'billing.pro_plan_features': 'Fitur Paket Pro',\r\n 'billing.feature_available_in_elite_plan': 'Fitur {feature} tersedia di paket Elite',\r\n 'billing.feature_can_only_be_use_on_elite_plan': '{feature} hanya bisa diakses di paket Elite',\r\n 'billing.elite_plan_features': 'Fitur Paket Elite',\r\n 'billing.feature_available_in_champion_plan': 'Fitur {feature} tersedia di paket Champion',\r\n 'billing.feature_can_only_be_use_on_champion_plan':\r\n '{feature} hanya bisa diakses di paket Champion',\r\n 'billing.champion_plan_features': 'Fitur Paket Champion',\r\n 'billing.quota_is_exhausted_add_an_addon': 'Kuota {feature} Anda Habis, Silahkan Tambah Addon',\r\n 'billing.marketplace_connect_available_in_elite':\r\n '{feature} Tersedia di Paket Elite, Silahkan Upgrade',\r\n 'billing.paid_plan_features': 'Fitur Paket Berbayar',\r\n 'billing.feature_can_only_be_accessed_on_paid_plan':\r\n 'Fitur {feature} hanya bisa diakses di paket berbayar',\r\n 'billing.warehouse_and_inventory': 'Gudang & Inventori',\r\n 'billing.track_product': 'Lacak produk',\r\n 'billing.attachment': 'Attachment',\r\n 'billing.dashboard_layout_setting': 'Pengaturan tampilan dashboard',\r\n 'billing.feature_locked': 'Fitur Dikunci',\r\n 'billing.your_free_trial_active': 'Akun Free Trial Anda sudah aktif.',\r\n 'billing.account_will_active_until': 'Akun akan aktif sampai dengan',\r\n 'billing.token_required_to_make_payment': 'Token diperlukan untuk melakukan pembayaran',\r\n\r\n 'dashboard.hello_name': 'Halo {name},',\r\n 'dashboard.schedule_a_demo_and_consult':\r\n 'Yuk jadwalkan demo dan konsultasi online secara gratis bersama tim hebat Kledo.',\r\n 'dashboard.demo_online_with_zoom':\r\n 'Demo dilakukan online menggunakan Zoom secara 1 on 1 selama 45 menit.',\r\n 'dashboards.dashboard': 'Dashboard',\r\n 'dashboards.select_company': 'Pilih Perusahaan: ',\r\n 'dashboards.gross_profit': 'Laba kotor',\r\n 'dashboards.net_profit': 'Laba bersih',\r\n 'dashboards.net_profit_for_this_year': 'Laba bersih tahun ini',\r\n 'dashboards.sales_value_this_year': 'Nilai penjualan bulan ini',\r\n 'dashboards.sales': 'Penjualan',\r\n 'dashboards.awaiting_payment': 'Menunggu pembayaran',\r\n 'dashboards.overdue': 'Jatuh tempo',\r\n 'dashboards.sales_this_day': 'Penjualan hari ini',\r\n 'dashboards.sales_this_month': 'Penjualan bulan ini',\r\n 'dashboards.sales_this_year': 'Penjualan tahun ini',\r\n 'dashboards.this_month': 'Bulan ini',\r\n 'dashboards.ytd': 'Tahun ini',\r\n 'dashboards.total': 'Total',\r\n 'dashboards.are_you_sure_delete': 'Apakah Anda yakin untuk menghapus?',\r\n 'dashboards.modif': 'Ubah',\r\n 'dashboards.exit': 'Keluar',\r\n 'dashboards.select_account': 'Pilih akun',\r\n 'dashboards.please_select_account': 'Silakan pilih akun!',\r\n 'dashboards.in': 'In',\r\n 'dashboards.out': 'Out',\r\n 'dashboards.net': 'Net',\r\n 'dashboards.edit': 'Ubah Dashboard',\r\n 'dashboards.other': 'Lainnya',\r\n 'dashboards.the_first_date_end_higger_than_second_date_start':\r\n 'Tanggal mulai kedua harus berupa tanggal setelah tanggal pertama berakhir',\r\n\r\n 'payments.add_a_payment_method': 'Tambah Metode Pembayaran',\r\n 'payments.delete_a_payment_method': 'Hapus Metode Pembayaran ',\r\n 'payments.are_you_sure_delete': 'Anda yakin menghapus?',\r\n 'payments.payment_metod': 'Metode pembayaran',\r\n 'payments.please_select_a_payment_to_delete': 'Silakan pilih pembayaran untuk dihapus',\r\n 'payments.select_a_payment_method': 'Pilih metode pembayaran',\r\n 'payments.edit_payment_method': 'Ubah Metode Pembayaran',\r\n 'payments.payment_method': 'Metode pembayaran',\r\n 'payments.please_input_the_payment_name': 'Silakan masukkan nama pembayaran.',\r\n 'payments.max_20_characters': 'Maks 20 karakter.',\r\n 'payments.only_alphanumeric_allowed': 'Hanya alfanumerik yang diizinkan.',\r\n 'payments.name': 'Nama',\r\n 'payments.payment': 'Pembayaran',\r\n 'payments.payment_methods': 'Metode pembayaran',\r\n 'payments.successfully_added': 'berhasil ditambahkan.',\r\n 'payments.error_cannot_add': 'Tidak bisa menambahkan pembayaran.',\r\n 'payments.successfully_deleted': 'berhasil dihapus.',\r\n 'payments.error_cannot_delete': 'Gagal menghapus pambayaran.',\r\n 'payments.payment_successfully_updated': 'Pembayaran berhasil diperbarui.',\r\n 'payments.error_cannot_update_payment': 'Gagal memperbarui pembayaran.',\r\n 'payments.payment_moved_successfully': 'Pembayaran berhasil dipindahkan.',\r\n 'payments.error_cannot_move_the_payment': 'Gagal memindahkan pembayaran.',\r\n 'payments.change_status_payment_successfully': 'Ubah pembayaran status berhasil.',\r\n 'payments.error_cannot_change_status_the_payment': 'Gagal mengubah status pembayaran. ',\r\n 'payments.must_have_active_payment': 'Harus ada minimal satu pembayaran aktif.',\r\n\r\n 'profile.profile': 'Profil',\r\n 'profile.image_profile': 'Gambar Profil',\r\n 'profile.my_profile': 'Profilku',\r\n 'profile.old_password': 'Password lama',\r\n 'profile.please_input_the_old_password': 'Silakan masukkan password lama.',\r\n 'profile.new_password': 'Password baru',\r\n 'profile.please_input_the_new_password': 'Silakan masukkan password baru.',\r\n 'profile.max_100_characters': 'Maks 100 karakter.',\r\n 'profile.confirm_new_password': 'Ulangi password baru',\r\n 'profile.please_input_the_confirm_new_password':\r\n 'Silakan masukkan password baru yang dikonfirmasi! ',\r\n 'profile.email_or_username': 'Email',\r\n 'profile.please_input_the_email/username': 'Silakan masukkan email.',\r\n 'profile.the_input_is_not_valid-e-mail': 'Silakan masukkan email yang valid',\r\n 'profile.full_name': 'Nama lengkap',\r\n 'profile.please_input_the_full_name': 'Silakan masukkan nama lengkap.',\r\n 'profile.0nly_alphanumeric_allowed': 'Hanya alfanumerik yang diizinkan.',\r\n 'profile.phone_number': 'Nomor telepon',\r\n 'profile.please_input_the_phone_number': 'Silakan masukkan nomor telepon.',\r\n 'profile.max_20_characters': 'Maks 20 karakter.',\r\n 'profile.only_number_allowed': 'Hanya angka yang diizinkan.',\r\n 'profile.user_profile_successfully_updated': 'Profil berhasil diperbarui.',\r\n 'profile.error_cannot_update_user_profile': 'Gagal memperbarui profil.',\r\n 'profile.user_password_successfully_updated': 'Password berhasil diperbarui.',\r\n 'profile.error_cannot_update_user_password': 'Gagal memperbarui password.',\r\n 'profile.change_password': 'Ganti password',\r\n 'profile.two_passwords_that_you_enter_is_inconsistent_':\r\n 'Dua password yang Anda masukkan tidak konsisten.',\r\n 'profile.password_atleast_8_characters_atleast_1_uppercase_and_atleast_1_digit':\r\n 'Password setidaknya 8 karakter, setidaknya 1 huruf besar dan setidaknya 1 digit.',\r\n 'profile.password_atleast_6_characters': 'Password setidaknya 6 karakter.',\r\n 'profile.password_atleast_8_characters': 'Password setidaknya 8 karakter.',\r\n 'profile.password_pattern_minimum_1_capital_and_1_lowercase_letter':\r\n 'Minimal 1 huruf kapital dan 1 huruf kecil.',\r\n 'profile.password_pattern_minimum_1_number': 'Minimal 1 angka.',\r\n 'profile.logout_from_all_device': 'Logout dari semua perangkat',\r\n 'profile.cannot_logout_from_all_device': 'Tidak dapat logout dari semua perangkat',\r\n\r\n 'roles.add_role': 'Tambah Peran',\r\n 'roles.delete_role': 'Hapus Peran',\r\n 'roles.select_role_to_delete': 'Pilih Peran untuk Dihapus',\r\n 'roles.please_select_a_role': 'Silakan pilih peran.',\r\n 'roles.select_role': 'Pilih peran',\r\n 'roles.edit_role': 'Ubah Peran',\r\n 'roles.role': 'Peran',\r\n 'roles.roles': 'Peran',\r\n 'roles.please_input_the_role_name': 'Silakan masukkan nama peran.',\r\n 'roles.max_100_characters': 'Maks 100 karakter.',\r\n 'roles.superadmin': 'Superadmin',\r\n 'roles.error_cannot_get_roles': 'Tidak bisa mendapatkan Peran.',\r\n 'roles.successfully_added': 'berhasil ditambahkan.',\r\n 'roles.error_cannot_add': 'Tidak bisa menambahkan',\r\n 'roles.role_successfully_updated': 'Peran berhasil diperbarui.',\r\n 'roles.error_cannot_update_role': 'Gagal memperbarui peran.',\r\n 'roles.successfully_deleted': 'berhasil dihapus.',\r\n 'roles.error_cannot_delete': 'Gagal menghapus',\r\n 'roles.role_moved_successfully': 'Peran berhasil dipindahkan.',\r\n 'roles.error_cannot_move_the_channel': 'Gagal memindahkan channel.',\r\n 'roles.search_by_role_name': 'Cari berdasarkan nama peran',\r\n 'roles.name': 'Nama peran',\r\n 'roles.invoices_payment': 'Pembayaran',\r\n 'roles.orders_payment': 'Pembayaran',\r\n 'roles.purchase_invoices_payment': 'Pembayaran',\r\n 'roles.purchase_orders_payment': 'Pembayaran',\r\n 'roles.product_show_purchase_price': 'Tampilkan Harga Beli',\r\n 'roles.product_show_sale_price': 'Tampilkan Harga Jual',\r\n 'roles.product_show_hpp': 'Tampilkan HPP',\r\n 'roles.inventory_show_hpp': 'Tampilkan Harga',\r\n 'roles.reports_finance': 'Finansial',\r\n 'roles.reports_accounting': 'Akuntansi',\r\n 'roles.reports_sales': 'Penjualan',\r\n 'roles.reports_purchases': 'Pembelian',\r\n 'roles.reports_expenses': 'Biaya',\r\n 'roles.reports_taxes': 'Pajak',\r\n 'roles.reports_inventory': 'Inventori',\r\n 'roles.reports_fixed_assets': 'Aset Tetap',\r\n 'roles.reports_budget': 'Anggaran',\r\n 'roles.reports_consolidation': 'Konsolidasi',\r\n 'roles.apikeys': 'API Keys',\r\n 'roles.sales_other_user_access': 'Akses Milik User Lain',\r\n 'roles.purchase_other_user_access': 'Akses Milik User Lain',\r\n 'roles.expenses_other_user_access': 'Akses Milik User Lain',\r\n 'roles.product_show_manufacture_raw': 'Tampilkan Bahan Baku Manufaktur',\r\n 'report.view_price': 'Lihat Harga',\r\n\r\n 'roles.show_purchase_price': 'Tampilkan Harga Beli',\r\n 'roles.show_sales_price': 'Tampilkan Harga Jual',\r\n 'roles.show_cogs': 'Tampilkan HPP',\r\n 'roles.show_manufaktur_materials': 'Tampilkan Bahan Baku Manufaktur',\r\n 'roles.users_with_this_role': 'Pengguna dengan peran ini',\r\n 'roles.click_here_to_set_users': '{clickHere} untuk mengatur pengguna.',\r\n 'roles.role_not_found': 'Peran dengan id {id} tidak ditemukan',\r\n\r\n 'shipComp.shipping_company': 'Ekspedisi',\r\n 'shipComp.name': 'Nama',\r\n 'shipComp.status': 'Status',\r\n 'shipComp.error_cannot_move': 'Tidak dapat menambah ekspedisi.',\r\n 'shipComp.error_cannot_add': 'Tidak dapat menambah ekspedisi.',\r\n 'shipComp.error_cannot_update': 'Tidak dapat mengubah ekspedisi.',\r\n 'shipComp.error_cannot_delete': 'Tidak dapat menghapus ekspedisi.',\r\n 'shipComp.error_cannot_change_status': 'Tidak dapat mengubah status ekspedisi.',\r\n 'shipComp.please_select_to_delete': 'Silakan pilih Ekspedisi untuk dihapus',\r\n 'shipComp.select': 'Pilih Ekspedisi',\r\n 'shipComp.please_input_the_name': 'Silakan masukkan nama ekspedisi.',\r\n 'shipComp.must_have_active_shipcomp': 'Harus ada minimal satu ekspedisi aktif.',\r\n 'report.sales_per_period': 'Penjualan Per Periode',\r\n 'report.purchases_per_period': 'Pembelian Per Periode',\r\n 'report.product_sales_per_customer': 'Penjualan Produk per Pelanggan',\r\n\r\n 'report.processing_the_data': 'Memproses data',\r\n 'report.access_denied': 'Akses Ditolak',\r\n 'report.profitability_per_invoice': 'Profitabilitas per Tagihan',\r\n 'report.show_account': 'Tampilkan Akun',\r\n 'report.show_zero_account_balance': 'Tampilkan akun bersaldo kosong',\r\n 'report.account_not_compiled':\r\n 'Terdapat akun yang belum dikompilasi, silahkan {link} untuk mengkompilasi',\r\n 'report.month': 'Bulan',\r\n 'report.date': 'Tanggal',\r\n 'report.expense_claim_customer': 'Kontak',\r\n 'report.general_ledger_reporting': 'Laporan Buku Besar',\r\n 'report.account': 'Akun',\r\n 'report.account_list': 'Daftar Akun',\r\n 'report.general_ledger': 'Buku Besar',\r\n 'report.source': 'Sumber',\r\n 'report.please_select_source': 'Silahkan Pilih Sumber',\r\n 'report.description': 'Deskripsi',\r\n 'report.reference': 'Referensi',\r\n 'report.debit': 'Debit',\r\n 'report.credit': 'Kredit',\r\n 'report.ytd_debit': 'Debit Tahun Ini',\r\n 'report.ytd_credit': 'Kredit Tahun Ini',\r\n 'report.running_balance': 'Saldo Berjalan',\r\n 'report.opening_balance': 'Saldo Awal',\r\n 'report.closing_balance': 'Saldo Akhir',\r\n 'report.total': 'Total',\r\n 'report.total_this_page': 'Total Halaman Ini',\r\n 'report.total_all_page': 'Total Seluruh Halaman',\r\n 'report.posted_on': 'Dibuat pada',\r\n 'report.no_data': 'No Data',\r\n 'report.journal_reporting': 'Jurnal',\r\n 'report.journal_report': 'Jurnal',\r\n 'report.journal': 'Jurnal',\r\n 'report.account_transaction_reporting': 'Transaksi Akun',\r\n 'report.bank_summary': 'Ringkasan Bank',\r\n 'report.bank_account': 'Akun Bank',\r\n 'report.cash_received': 'Uang Diterima',\r\n 'report.cash_spent': 'Uang Dibelanjakan',\r\n 'report.sales_tax': 'Pajak Penjualan',\r\n 'report.net': 'Net',\r\n 'report.tax': 'Pajak',\r\n 'report.customer_invoice': 'Tagihan Pelanggan',\r\n 'report.invoice_number': 'Nomor Tagihan',\r\n 'report.to': 'Sampai',\r\n 'report.from': 'Dari',\r\n 'report.due_date': 'Tanggal Jatuh Tempo',\r\n 'report.date_and_time': 'Tanggal & waktu',\r\n 'report.invoice_date': 'Tanggal Tagihan',\r\n 'report.invoice_total': 'Total Tagihan',\r\n 'report.paid': 'Dibayar',\r\n 'report.due': 'Jatuh Tempo',\r\n 'report.all': 'Semua',\r\n 'report.status': 'Status',\r\n 'report.income_per_customer': 'Pendapatan Per Pelanggan',\r\n 'report.customer': 'Pelanggan',\r\n 'report.income': 'Pendapatan',\r\n 'report.sales_per_product': 'Penjualan Per Produk',\r\n 'report.order_per_product': 'Pemesanan Per Produk',\r\n 'report.product_name': 'Nama Produk',\r\n 'report.current_unit_price': 'Harga Saat Ini',\r\n 'report.quantity_sold': 'Jumlah Terjual',\r\n 'report.product_quantity_sold_not_sent_yet': 'Jumlah Produk Belum Dikirim',\r\n 'report.quantity_bought': 'Jumlah Dibeli',\r\n 'report.average': 'Rata-rata',\r\n 'report.purchases': 'Pembelian',\r\n 'report.purchases_per_vendor': 'Pembelian Per Vendor',\r\n 'report.purchases_per_product': 'Pembelian Per Produk',\r\n 'report.expense_per_contact': 'Biaya per Kontak',\r\n 'report.supplier': 'Vendor',\r\n 'report.supplier_invoice': 'Tagihan Vendor',\r\n 'report.purchase_value': 'Nilai Pembelian',\r\n 'report.aged_receivable': 'Umur Piutang',\r\n 'report.aged_receivable_not_yet_due': 'Belum Jatuh Tempo',\r\n 'report.aged_receivable_aged_trans': 'Umur dari Transaksi',\r\n 'report.aged_receivable_aged_due': 'Umur dari Jatuh Tempo',\r\n 'report.aged_receivable_detail': 'Detil Umur Piutang',\r\n 'report.aged_payable': 'Umur Hutang',\r\n 'report.aged_payable_detail': 'Detil Umur Hutang',\r\n 'report.expense_claim': 'Klaim Biaya',\r\n 'report.expense_claim_detail': 'Detil Klaim Biaya',\r\n 'report.trial_balance': 'Trial Balance',\r\n 'report.profit_and_loss': 'Laba Rugi',\r\n 'report.sales': 'Penjualan',\r\n 'report.other_revenue': 'Penghasilan lain',\r\n 'report.cost_of_sales': 'Beban Pokok Penjualan',\r\n 'report.total_cost_of_sales': 'Total Beban Pokok Penjualan',\r\n 'report.expenses': 'Biaya',\r\n 'report.operating_expenses': 'Biaya Operasional',\r\n 'report.total_operating_expenses': 'Total Biaya Operasional',\r\n 'report.other_expenses': 'Biaya Lain-Lain',\r\n 'report.gross_profit': 'Laba Kotor',\r\n 'report.trading_income': 'Pendapatan',\r\n 'report.total_trading_income': 'Total Pendapatan',\r\n 'report.profitloss_comprehensive_income': 'Laba/Rugi Pendapatan Komprehensif',\r\n 'report.profitloss_all_encompassing': 'Mencakup semua',\r\n 'report.profitloss_one_of': 'Salah satu',\r\n 'report.profitloss_filter_by_tags': 'Filter berdasarkan tag',\r\n 'report.profitloss_filter_currency': 'Pilih Mata Uang',\r\n 'report.profitloss_currency': 'Mata Uang',\r\n 'report.total_comprehensive_income_this_period': 'Total Pendapatan Komprehensif Periode ini',\r\n 'report.reports': 'Laporan',\r\n 'report.financial': 'Finansial',\r\n 'report.balance_sheet': 'Neraca',\r\n 'report.compare': 'Bandingkan',\r\n 'report.period': 'Periode',\r\n 'report.cash_summary': 'Ringkasan Uang Tunai',\r\n 'report.executive_summary': 'Ringkasan Eksekutif',\r\n 'report.sales_tax_report': 'Pajak Penjualan',\r\n 'report.accounting': 'Akuntansi',\r\n 'report.aged_receivables': 'Umur Piutang',\r\n 'report.customer_invoice_report': 'Tagihan Pelanggan',\r\n 'report.aged_payables': 'Umur Hutang',\r\n 'report.supplier_invoice_report': 'Tagihan Vendor',\r\n 'report.purchases_per_supplier': 'Pembelian per Vendor',\r\n 'report.cash_flow': 'Arus Kas',\r\n 'report.net_cash_flows_from_': 'Arus kas bersih dari ',\r\n 'report.direct_method': 'Metode Langsung',\r\n 'report.indirect_method': 'Metode Tak Langsung',\r\n 'report.please_select': 'Silakan Pilih',\r\n 'report.cash_and_cash_equivalent': 'Kas dan Setara Kas',\r\n 'report.cash_and_cash_equivalent_at_beginning_period': 'Kas dan setara kas di awal periode',\r\n 'report.cash_and_cash_equivalent_at_end_period': 'Kas dan setara kas di akhir periode',\r\n 'report.net_change_in_cash_for_period': 'Perubahan kas untuk periode',\r\n 'report.net_cash_flows': 'Arus kas bersih',\r\n 'report.equity_movement': 'Pergerakan Ekuitas',\r\n 'report.beginning': 'Awal',\r\n 'report.ending': 'Akhir',\r\n 'report.net_movement': 'Pergerakan Bersih',\r\n 'report.spend': 'Pengeluaran',\r\n 'report.to_customer': 'Ke',\r\n 'report.account_transactions': 'Transaksi Akun',\r\n 'report.account_transactions_title': 'Transaksi {account}',\r\n 'report.fixed_asset': 'Aset Tetap',\r\n 'report.fixed_asset_detail': 'Detil Aset Tetap',\r\n 'report.fixed_asset_summary': 'Ringkasan Aset Tetap',\r\n 'report.asset_name': 'Nama Aset',\r\n 'report.number': 'Nomor',\r\n 'report.purchase_date': 'Tanggal Pembelian',\r\n 'report.purchase_price': 'Harga Pembelian',\r\n 'report.depreciation': 'Penyusutan',\r\n 'report.book_value': 'Nilai Buku',\r\n 'report.witholding_tax': 'Pajak Pemotongan',\r\n 'report.inventory': 'Inventori',\r\n 'report.inventory_summary': 'Ringkasan Inventori',\r\n 'report.inventory_stock_movement': 'Pergerakan Stok Inventori',\r\n 'report.warehouse_stock_summary': 'Ringkasan Stok Gudang',\r\n 'report.warehouse_stock_movement': 'Pergerakan Stok Gudang',\r\n 'report.warehouse': 'Gudang',\r\n 'report.category': 'Kategori',\r\n 'report.select_category': 'Pilih Kategori',\r\n 'report.code': 'Kode',\r\n 'report.qty': 'Kuantitas',\r\n 'report.opening_qty': 'Kuantitas Awal',\r\n 'report.qty_movement': 'Pergerakan Kuantitas',\r\n 'report.closing_qty': 'Kuantitas Akhir',\r\n 'report.opening_value': 'Nilai Awal',\r\n 'report.value_movement': 'Pergerakan Nilai',\r\n 'report.value': 'Nilai',\r\n 'report.closing_value': 'Nilai Akhir',\r\n 'report.avg_cost': 'Harga Rata-rata',\r\n 'report.avg_cost2': 'Harga Rata-Rata',\r\n 'report.unit_price': 'Harga Satuan',\r\n 'report.product_value': 'Nilai Produk',\r\n 'report.product_stock': 'Stok Produk',\r\n 'report.product': 'Produk',\r\n 'report.until': 's/d',\r\n 'report.budget': 'Anggaran',\r\n 'report.actual': 'Aktual',\r\n 'report.movement': 'Pergerakan',\r\n 'report.price': 'Harga',\r\n 'report.unpaid': 'Belum Dibayar',\r\n 'report.grand_total': 'Grand Total',\r\n 'report.delivery': 'Pengiriman',\r\n 'report.please_input_name': 'Silakan masukkan nama',\r\n 'report.start_period': 'Periode Mulai',\r\n 'report.please_input_start_period': 'Silakan masukkan periode mulai',\r\n 'report.no_of_period': 'Jumlah Periode',\r\n 'report.last_period': 'Periode Sebelumnya',\r\n 'report.last_n_period': '{count} Periode Terakhir',\r\n 'report.cannot_save_budget': 'Tidak dapat menyimpan anggaran',\r\n 'report.cannot_delete_budget': 'Tidak dapat menghapus anggaran',\r\n 'report.interval': 'Interval',\r\n 'report.apply': 'Terapkan',\r\n 'report.delete_figures_this_column': 'Hapus semua angka dari kolom ini',\r\n 'report.apply_figures_to_following_month': 'Terapkan angka dari bulan ini untuk bulan berikutnya',\r\n 'report.adjust_figures_each_month_amount':\r\n 'Sesuaikan angka tiap bulan berikutnya dengan jumlah ini',\r\n 'report.adjust_figures_each_month_percent':\r\n 'Sesuaikan angka tiap bulan berikutnya dengan persentase ini',\r\n 'report.max_n_period_to_print': 'Maksimal {count} periode untuk dapat melakukan print',\r\n 'report.total_income': 'Total Pendapatan',\r\n 'report.operating_costs': 'Biaya Operasional',\r\n 'report.net_profit': 'Laba Bersih',\r\n 'report.search_by_product': 'Cari produk',\r\n 'report.shipping_amount': 'Jumlah Pengiriman',\r\n 'report.shipping_cost_total': 'Total Ongkos Kirim',\r\n 'report.shipping_cost': 'Ongkos Kirim',\r\n 'report.shipping_cost_per_expedition': 'Ongkos Kirim per Ekspedisi',\r\n 'report.sales_per_sales_person': 'Penjualan per Sales Person',\r\n 'report.production_report': 'Laporan Produksi',\r\n 'report.finished_product': 'Produk Jadi',\r\n 'report.transaction_total': 'Total Transaksi',\r\n 'report.receivable_payable_contact': 'Hutang Piutang per Kontak',\r\n 'report.sort_by': 'Urutkan',\r\n 'report.invoice_payment': 'Pelunasan Pembayaran Tagihan',\r\n 'report.purchase_invoice_payment': 'Pelunasan Pembayaran Tagihan Pembelian',\r\n 'report.first_payment_date': 'Tanggal Pembayaran Pertama',\r\n 'report.paid_date': 'Tanggal Pelunasan',\r\n 'report.product_profitability': 'Profitabilitas Produk',\r\n 'report.total_profit': 'Total Profit',\r\n 'report.profit_margin': 'Profit Margin',\r\n 'report.avg_sell_price': 'Harga Jual Rata-Rata',\r\n 'report.hpp_per_unit': 'HPP Per Unit',\r\n 'report.avg_cogs': 'HPP Rata - Rata',\r\n 'report.stock_in': 'Stok Masuk',\r\n 'report.stock_out': 'Stok Keluar',\r\n 'report.product_purchase_per_supplier': 'Pembelian Product per Vendor',\r\n 'report.total_quantity_product': 'Total kuantitas Produk',\r\n 'report.total_price': 'Total Harga',\r\n 'report.product_purchases_per_vendor': 'Pembelian Produk per Supplier',\r\n 'report.vendor': 'Supplier',\r\n 'report.include_unit_conversion': 'Tampilkan konversi unit',\r\n 'report.hide_zero_qty': 'Sembunyikan qty yang kosong',\r\n 'report.sales_per_product_category': 'Penjualan Per Kategori Produk',\r\n 'report.favorite': 'Favorit',\r\n 'report.remove_favorite': 'Hilangkan dari menu favorit',\r\n 'report.add_favorite': 'Tambahkan menu ke menu favorit',\r\n\r\n 'trialBalance.show_balance': 'Tampilkan Saldo',\r\n\r\n 'attachment.file_name': 'Nama File',\r\n 'attachment.search_by_file_name': 'Cari berdasarkan nama file',\r\n 'reportsImport.amount_of_success_import': 'Jumlah impor yang berhasil',\r\n 'reportsImport.detail': 'Detail Import',\r\n 'reportsImport.status': 'Status Import',\r\n 'reportsImport.failed_to_import': 'Gagal Import',\r\n 'reportsImport.successful_import': 'Import sukses',\r\n 'reportsImport.import_type': 'Tipe Import',\r\n 'reportsImport.import_time': 'Waktu Import',\r\n 'reportsImport.transaction_status': 'Status Transaksi',\r\n 'reportsImport.download_file_import': 'Unduh berkas import',\r\n 'reportsImport.download_file_error': 'Unduh berkas error',\r\n 'reportsImport.sub_account_code': 'Kode Sub Akun (Parent)',\r\n 'reportsImport.sub_account_name': 'Nama Sub Akun (Parent)',\r\n 'reportsImport.imported_by': 'Diimpor oleh',\r\n\r\n 'setup.demo_data_successfully_cleared': 'Data demo berhasil dihapus.',\r\n 'setup.error_demo_data_failure_to_cleared_': 'Gagal hapus data demo.',\r\n 'setup.demo_data_successfully_finished': 'Setup berhasil diselesaikan.',\r\n 'setup.error_demo_data_failure_to_finished': 'Gagal menyelesaikan setup.',\r\n 'setup.setup_clear_demo_data': 'Setup Hapus Demo Data',\r\n 'setup.you_are_using_a_demo_of_kledo_at_the_moment':\r\n 'Saat ini Anda sedang menggunakan demo kledo.',\r\n 'setup.click_button_below_to_clear_the_test_data_and_start_setting_up_your_property':\r\n 'Klik tombol di bawah untuk menghapus data demo dan mulai setup perusahaan Anda ',\r\n 'setup.are_you_sure_that_you_want_to_clear_demo_': 'Anda yakin ingin menghapus demo?',\r\n 'setup.this_will_remove_all_rooms_room_types_rates_and_bookings':\r\n 'Ini akan menghapus semua data, dan tidak dapat dikembalikan.',\r\n 'setup.clear_test_data_and_setup': 'Hapus data demo dan lakukan setup',\r\n 'setup.clear_demo_data': 'Hapus data demo',\r\n 'setup.delete_all_data_now': 'Hapus seluruh data sekarang',\r\n 'setup.continue_deleting_data': 'Lanjut hapus data',\r\n 'setup.1_waring':\r\n 'Halaman setup ini akan hanya tampil pada admin dengan hak akses Administrator.',\r\n 'setup.2_waring':\r\n 'Halaman ini akan hilang secara otomatis 1 bulan setelah tanggal pendaftaran di Kledo.',\r\n 'setup.finish': 'Selesai',\r\n 'setup.finish_setup': 'Selesaikan setup',\r\n 'setup.demo':\r\n 'Data yang tampil saat ini adalah data dummy. Setelah Anda siap, {setup} untuk mengosongkan data.',\r\n 'setup.demo_link': 'klik disini',\r\n 'setup.trial': 'Akses free trial Anda akan berakhir {days} hari lagi. {setup}.',\r\n 'setup.trial_one_day': 'Akses free trial Anda akan berakhir dalam {hour} jam lagi. {setup}.',\r\n 'setup.trial_zero_days': 'Akses free trial Anda telah berakhir. {setup}.',\r\n 'setup.subscription': 'Paket berlangganan Anda akan habis dalam {days} hari lagi. {setup}.',\r\n 'setup.subscription_one_day':\r\n 'Paket berlangganan Anda akan berakhir dalam {hour} jam lagi. {setup}.',\r\n 'setup.subscription_zero_days': 'Paket berlangganan Anda telah berakhir. {setup}.',\r\n 'setup.go_to_dashboard': 'Go to dashboard',\r\n 'setup.setup_complete':\r\n 'Data demo telah dihapus dan setup selesai, sekarang kamu bisa mulai menggunakan Kledo.',\r\n 'setup.input_your_cash_and_account_bank_name':\r\n 'Masukkan nama kas & rekening bank perusahaan Anda',\r\n 'setup.input_your_company_name': 'Masukkan data perusahaan Anda',\r\n 'setup.company_logo': 'Logo Perusahaan',\r\n 'setup.cash': 'Kas',\r\n 'setup.bca_account': 'Rekening BCA',\r\n 'setup.mandiri_account': 'Rekening Mandiri',\r\n 'setup.please_input_bank_account_name_or_delete_this_field':\r\n 'Isi nama akun bank atau hapus baris ini.',\r\n\r\n 'accountMapping.account_mappinng': 'Pemetaan Akun',\r\n\r\n 'users.hello_please_select_company_to_proceed':\r\n 'Halo {name}, silakan pilih perusahaan untuk melanjutkan',\r\n 'users.please_select_company_to_proceed': 'silakan pilih perusahaan untuk melanjutkan',\r\n 'users.hello': 'Halo',\r\n 'users.you_are_invited_to_join': 'Anda diundang untuk bergabung di',\r\n 'users.do_you_agree_to_join': 'Apakah Anda bersedia bergabung di',\r\n 'users.all_users': 'Semua user',\r\n 'users.select_user': 'Pilih pengguna',\r\n 'users.yes': 'Ya',\r\n 'users.no': 'Tidak',\r\n 'users.add_user': 'Tambah pengguna',\r\n 'users.delete_user': 'Hapus pengguna',\r\n 'users.only_displays_users_other_than_you': 'Hanya menampilkan pengguna selain Anda',\r\n 'users.please_select_a_user': 'Silakan pilih pengguna.',\r\n 'users.select_user_to_delete': 'Pilih Pengguna untuk Dihapus',\r\n 'users.edit_user': 'Ubah Pengguna',\r\n 'users.name': 'Nama Lengkap',\r\n 'users.email': 'Email',\r\n 'users.role': 'Peran di perusahaan sebagai',\r\n 'users.roles': 'Peran',\r\n 'users.resending': 'Kirim Ulang',\r\n 'users.resending_help':\r\n 'Untuk mengkonfirmasi, silahkan buka inbox email, dan klik link yang dikirim oleh Kledo.',\r\n 'users.success_resending': 'Sukses Mengirim Undangan',\r\n 'users.success_resending_desc':\r\n 'Undangan berhasil dikirim ulang ke email {email}. Silahkan buka inbox email Anda, dan klik link yang telah dikirm oleh Kledo.',\r\n 'users.waiting_for_confirmation': 'Menunggu Konfirmasi',\r\n 'users.please_input_the_email_address': 'Silakan masukkan alamat email.',\r\n 'users.max_100_characters': 'Maks 100 karakter.',\r\n 'users.invalid_email_address_format': 'Format alamat email tidak valid.',\r\n 'users.please_select_a_role': 'Silakan pilih peran.',\r\n 'users.select_roles': 'Pilih peran',\r\n 'users.pending_invitation': '(Undangan tertunda)',\r\n 'users.user': 'Pengguna',\r\n 'users.successfully_added': 'berhasil ditambahkan.',\r\n 'users.error_cannot_add': 'Tidak bisa menambahkan',\r\n 'users.user_successfully_updated': 'Pengguna berhasil diperbarui.',\r\n 'users.error_cannot_update_user': 'Gagal memperbarui pengguna.',\r\n 'users.successfully_deleted': 'berhasil dihapus.',\r\n 'users.error_cannot_delete': 'Gagal menghapus',\r\n 'users.search_by_name_or_email': 'Cari berdasarkan nama atau email',\r\n 'users.restore_password': 'Pulihkan Password',\r\n 'users.enter_the_email_address_associated_with_your_account_and_well_email_you_a_link_to_reset_your_password':\r\n 'Masukkan alamat email yang dikaitkan dengan akun Anda, dan kami akan mengirimi Anda email tautan untuk mereset password Anda ',\r\n 'users.back_to_login': 'Kembali untuk Login',\r\n 'users.send_reset_link': 'Kirim Reset Link',\r\n 'users.please_check_your_email_inbox_and_follow_the_instruction_to_reset_your_password_if_email_hasnt_received_please_check_the_bulk_and_spam_folder':\r\n 'Silakan periksa kotak masuk email Anda dan ikuti instruksi untuk mereset password Anda. Jika email belum diterima, silakan periksa folder bulk dan spam ',\r\n 'users.please_input_your_email': 'Silakan masukkan email Anda',\r\n 'users.the_input_is_not_valid_email_': 'Silakan masukkan email yang valid.',\r\n 'users.welcome_to_kledo': 'SELAMAT DATANG DI KLEDO ',\r\n 'users.welcome_to2': 'Selamat datang di ',\r\n 'users.phone': 'Telepon',\r\n 'users.password': 'Password',\r\n 'users.confirm_new_password': 'Konfirmasi password baru',\r\n 'users.activate': 'Mengaktifkan',\r\n 'users.invalid_invitation_token': 'Token undangan tidak valid',\r\n 'users.your_invitation_token_is_invalid_please_check_it_again_and_reload_the_page':\r\n 'Silakan periksa lagi dan muat ulang halaman',\r\n 'users.please_fill_the_register_form': 'Silakan isi formulir pendaftaran',\r\n 'users.please_input_your_email_address': 'Silakan masukkan alamat email Anda',\r\n 'users.please_input_your_name': 'Silakan masukkan nama Anda',\r\n 'users.please_input_your_phone': 'Silakan masukkan no ponsel Anda',\r\n 'users.only_number_allowed': 'Hanya angka yang diizinkan.',\r\n 'users.please_input_new_password': 'Silakan masukkan Password Baru',\r\n 'users.min_8_characters': 'Minimal 8 karakter',\r\n 'users.password_atleast_8_characters_atleast_1_uppercase_and_atleast_1_digit':\r\n 'Password setidaknya 8 karakter, setidaknya 1 huruf besar dan setidaknya 1 digit.',\r\n 'users.two_passwords_that_you_enter_is_inconsistent_':\r\n 'Dua password yang Anda masukkan tidak konsisten.',\r\n 'users.welcome_to': 'SELAMAT DATANG DI',\r\n 'users.please_log_in': 'Silakan masuk',\r\n 'users.you_have_logged_out_automatically':\r\n 'Anda sudah terlogout secara otomatis, silahkan login kembali untuk melanjutkan.',\r\n 'users.remember_me': 'Ingat saya',\r\n 'users.forgot_password_': 'lupa password?',\r\n 'users.login': 'Masuk',\r\n 'users.login_with_google': 'Sign in dengan Google',\r\n 'users.login_failed': 'Login Gagal',\r\n 'users.go_back_to_home_page': 'Kembali ke halaman utama',\r\n 'users.failed_to_connect_to_kledo': 'Gagal terhubung ke server Kledo',\r\n 'users.please_check_your_internet_connection_please_contact_wa':\r\n 'Mohon periksa koneksi internet Anda. Jika masih mengalami kendala, silakan menghubungi via Whatsapp ke 62-896-5884-7000',\r\n 'users.please_input_your_password': 'Silakan masukkan password Anda',\r\n 'users.profile': 'Profil',\r\n 'users.reset_password': 'Setel Ulang Password',\r\n 'users.request_new_password_reset': 'Minta reset password lagi',\r\n 'users.new_password': 'Password baru',\r\n 'users.invalid_password_reset_token': 'Token tidak valid',\r\n 'users.your_password_reset_token_is_invalid_please_check_it_again_and_reload_the_page':\r\n 'Token atur ulang password Anda tidak valid, periksa lagi dan muat ulang halaman',\r\n 'users.users': 'Pengguna',\r\n 'users.information': 'Informasi',\r\n 'users.information_invitation_email':\r\n 'Email sudah dikirim ke {email}. Silakan minta kolega Anda untuk membuka email dan mengikuti instruksi berikutnya untuk mengaktifkan akun. Jika email tidak diterima, silahkan cek folder bulk dan folder spam.',\r\n 'users.create_kledo_accounts': 'Buat Akun Kledo',\r\n 'users.congratulation_': 'Selamat!',\r\n 'users.registration_failed': 'Registrasi gagal',\r\n 'users.your_kledo_account_successfully_created': 'Akun Kledo Anda berhasil dibuat.',\r\n 'users.your_username_and_password_already_sent_to_your_email':\r\n 'Nama pengguna dan kata sandi Anda sudah dikirim ke email Anda',\r\n 'users.kledo_app_url': 'Alamat subdomain yang kamu inginkan',\r\n 'users.kledo_app_url_is_required': 'Alamat subdomain Aplikasi Kledo diperlukan',\r\n 'users.kledo_app_arl_must_be_at_least_3_characters':\r\n 'Alamat subdomain Aplikasi Kledo minimal 3 karakter',\r\n 'users.kledo_app_url_cannot_be_longer_than_20_characters':\r\n 'Url Aplikasi Kledo tidak boleh lebih dari 20 karakter',\r\n 'users.name_is_required': 'Nama harus diisi',\r\n 'users.name_must_be_at_least_5_characters': 'Nama harus minimal 5 karakter',\r\n 'users.name_cannot_be_longer_than_20_characters': 'Nama tidak boleh lebih dari 20 karakter',\r\n 'users.property_name': 'Nama perusahaan',\r\n 'users.property_name_is_required': 'Nama perusahaan wajib diisi',\r\n 'users.property_name_must_be_at_least_5_characters': 'Nama perusahaan minimal 5 karakter',\r\n 'users.property_name_cannot_be_longer_than_20_characters':\r\n 'Nama perusahaan tidak boleh lebih dari 20 karakter',\r\n 'users.role_is_required': 'Jabatan harus diisi',\r\n 'users.role_must_be_at_least_3_characters': 'Jabatan minimal 3 karakter',\r\n 'users.role_cannot_be_longer_than_20_characters': 'Jabatan tidak boleh lebih dari 20 karakter',\r\n 'users.phone_number': 'Nomor telepon',\r\n 'users.phone_number_is_required': 'Nomor Telepon harus diisi',\r\n 'users.no_phone_number_worng': 'Nomor telepon salah',\r\n 'users.phone_number_must_be_at_least_5_characters': 'Nomor Telepon minimal 5 karakter',\r\n 'users.phone_number_cannot_be_longer_than_20_characters':\r\n 'Nomor Telepon tidak boleh lebih dari 20 karakter',\r\n 'users.email_is_required': 'Email harus diisi',\r\n 'users.email_is_not_a_valid_email': 'Email bukan email yang valid',\r\n 'users.register_now': 'Daftar sekarang',\r\n 'users.login_now': 'Masuk sekarang',\r\n 'users.domain_value_app_kledo_com_already_used_please_use_another_name':\r\n 'Domain {value}.app.kledo.com sudah digunakan, silakan gunakan nama lain',\r\n 'users.please_contact_hello_kledo_com_for_more_info':\r\n 'Silakan hubungi hello@kledo.com untuk info lebih lanjut.',\r\n 'users.registration_completed': 'Pendaftaran berhasil!',\r\n 'users.password_has_been_sent_to_email_sms':\r\n 'Password telah dikirim ke email dan sms mu, silakan cek ya',\r\n 'users.click_here_to_set_roles': '{clickHere} untuk mengatur peran.',\r\n\r\n 'report.point_of_sale': 'Point Of Sale',\r\n 'report.net_sales_per_product_category': 'Net Penjualan per Kategori Produk',\r\n 'report.product_category': 'Kategori Produk',\r\n 'report.volume_per_product_category': 'Volume per KategoriProduk',\r\n 'report.gross_sales': 'Gross Penjualan',\r\n 'report.net_sales': 'Net Penjualan',\r\n 'report.discount': 'Discount',\r\n 'report.gratuity': 'Gratuity',\r\n 'report.collected': 'collected',\r\n 'report.total_collected': 'Total Collected',\r\n 'report.all_outlets': 'Semua',\r\n 'report.payment': 'Pembayaran',\r\n 'report.day_of_the_week_sales': 'Day Of The Week Penjualan',\r\n 'report.sales_summary': 'Penjalan Summary',\r\n 'report.invoice': 'Invoice',\r\n 'report.transactions': 'Transaksi',\r\n 'report.transactions_type': 'Tipe Transaksi',\r\n 'report.choose_transactions_type': 'Pilih tipe transaksi',\r\n 'report.buy_sell_price': 'Harga Jual/Beli',\r\n 'report.avg_per_transaction': 'Avg. Net Sale Per Transactions',\r\n 'report.name': 'Nama',\r\n 'report.volume': 'Volume',\r\n 'report.top_products': 'Top Produk',\r\n 'report.pos': 'Pos',\r\n 'report.pos_reports': 'Pos Reports',\r\n 'report.outlets': 'Outlets',\r\n\r\n 'financeAccounts.add_account': 'Tambah Akun',\r\n 'financeAccounts.financeAccounts': 'Akun',\r\n 'financeAccounts.all_accounts': 'Semua akun',\r\n 'financeAccounts.select_category': 'Pilih kategori',\r\n 'financeAccounts.category': 'Kategori',\r\n 'financeAccounts.please_input_the_code': 'Silakan masukkan kode.',\r\n 'financeAccounts.successfully_added': 'berhasil ditambahkan.',\r\n 'financeAccounts.error_cannot_add': 'Tidak dapat menambah',\r\n 'financeAccounts.error_cannot_update': 'Tidak dapat mengubah akun.',\r\n 'financeAccounts.error_cannot_move': 'Tidak dapat memindah akun.',\r\n 'financeAccounts.error_cannot_change_status': 'Tidak dapat mengubah status akun.',\r\n 'financeAccounts.edit_account': 'Ubah Akun',\r\n 'financeAccounts.please_input_the_account_name': 'Silakan masukkan nama akun.',\r\n 'financeAccounts.account_name': 'Nama',\r\n 'financeAccounts.code': 'Kode',\r\n 'financeAccounts.desc': 'Deskripsi',\r\n 'financeAccounts.please_select_a_category': 'Silakan pilih kategori.',\r\n 'financeAccounts.max_20_characters': 'Maks 20 karakter.',\r\n 'financeAccounts.max_100_characters': 'Maks 100 karakter.',\r\n 'financeAccounts.min_2_characters': 'Min 2 karakter.',\r\n 'financeAccounts.balance': 'Saldo',\r\n 'financeAccounts.only_alphanumeric_allowed': 'Hanya huruf dan angka yang diperkenankan.',\r\n 'financeAccounts.select_account': 'Pilih akun',\r\n 'financeAccounts.set_conversion_balances': 'Saldo Awal',\r\n 'financeAccounts.error_get_conversion_balances': 'Terjadi masalah cek konversi saldo',\r\n 'financeAccounts.error_cannot_load_data': 'Tidak dapat mengambil data akun.',\r\n 'financeAccounts.all_category': 'Semua kategori',\r\n 'financeAccounts.error_cannot_delete': 'Tidak dapat menghapus akun.',\r\n 'financeAccounts.error_cannot_search': 'Tidak dapat mencari akun.',\r\n 'financeAccounts.set_manual_journal': 'Jurnal Umum',\r\n 'financeAccounts.follow_these_steps_to_import_your_account':\r\n 'Ikuti langkah-langkah berikut untuk meng-import akun',\r\n 'financeAccounts.1_download_your_account_template_file': '1. Download file template akun',\r\n 'financeAccounts.start_by_downloading_our_account_csv':\r\n 'Mulai dengan mengunduh file template Excel. File ini mempunyai kolom header yang yang dibutuhkan Kledo untuk mengimport detail dari akun-mu.',\r\n 'financeAccounts.download_template_file': 'Download File Template',\r\n 'financeAccounts.download_template_data_example_file': 'Download File Contoh',\r\n 'financeAccounts.import': 'Import Akun',\r\n 'financeAccounts.2_copy_your_account_into_the_template': '2. Salin detail akun ke dalam template',\r\n 'financeAccounts.using_excel_or_another_spreadsheet_editor':\r\n 'Menggunakan Excel atau software spreadsheeet lainnya, masukkan detail akun ke dalam file template dari Kledo. Pastikan detail akun sesuai dengan kolom header yang ada di template.',\r\n 'financeAccounts.important': 'PENTING',\r\n 'financeAccounts.3_upload_the_updated_template_file_here':\r\n '3. Upload template yang sudah diupdate ke sini',\r\n 'financeAccounts.upload': 'Upload',\r\n 'financeAccounts.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Simpan file template yang sudah diupdate',\r\n 'financeAccounts.a_maximum_of_500_account_can_be_imported_at_a_time':\r\n 'Maksimal 1.000 akun dapat diimport dalam satu waktu.',\r\n 'financeAccounts.import_actions_only_insert_new_account_cannot_update_or_delete':\r\n 'Saat meng-import, Kledo hanya akan memasukkan data baru, tidak ada data yang dihapus atau diupdate.',\r\n 'financeAccounts.dont_change_the_column_heading_in_the_template_file':\r\n 'Jangan mengubah header kolom di dalam template. Ini dibutuhkan agar import dapat berjalan.',\r\n 'financeAccounts.account_successfully_imported': '{rowCount} baris akun berhasil diimport.',\r\n 'financeAccounts.go_to_account_list': 'Ke halaman daftar akun',\r\n 'financeAccounts.sub_account_from': 'Sub Akun dari',\r\n\r\n 'financeClosing.closing': 'Tutup Buku',\r\n 'financeClosing.period': 'Periode',\r\n 'financeClosing.note': 'Catatan',\r\n 'financeClosing.profit_loss': 'Laba/Rugi',\r\n 'financeClosing.choose_period': 'Pilih Periode',\r\n 'financeClosing.set_worksheet': 'Set Kertas Kerja',\r\n 'financeClosing.worksheet': 'Kertas Kerja',\r\n 'financeClosing.done': 'Selesai',\r\n 'financeClosing.please_select_period': 'Silakan pilih periode tutup buku',\r\n 'financeClosing.please_select_date': 'Silakan pilih tanggal',\r\n 'financeClosing.please_select_account': 'Silakan pilih akun',\r\n 'financeClosing.closing_report': 'Laporan Tutup Buku',\r\n 'financeClosing.closing_period_to_has_been_saved':\r\n 'Tutup buku periode {from} s/d {to} berhasil disimpan',\r\n 'financeClosing.period_from_to': 'Periode: {from} - {to}',\r\n 'financeClosing.see_closing_report': 'Lihat Laporan Tutup Buku',\r\n 'financeClosing.error_get_start_date': 'Tidak dapat mengambil tanggal awal',\r\n 'financeClosing.error_get_closing_data': 'Tidak dapat mengambil data tutup buku',\r\n 'financeClosing.error_create_closing_data': 'Tidak dapat membuat data tutup buku',\r\n 'financeClosing.error_delete_closing_data': 'Tidak dapat menghapus data tutup buku',\r\n 'financeClosing.debit': 'Debit',\r\n 'financeClosing.credit': 'Kredit',\r\n 'financeClosing.net_profit_loss': 'Laba Bersih',\r\n 'financeClosing.tax_expense': 'Pajak Beban',\r\n 'financeClosing.tax_expense_account': 'Akun Pajak Beban',\r\n 'financeClosing.tax_payable_account': 'Akun Hutang Pajak',\r\n 'financeClosing.tax_amount': 'Jumlah Pajak',\r\n 'financeClosing.tax_percent': 'Persen Pajak',\r\n 'financeClosing.net_profit_loss_after_tax': 'Laba Bersih Setelah Pajak',\r\n 'financeClosing.retained_earnings_account': 'Akun Pendapatan Tertahan',\r\n 'financeClosing.early_period': 'Periode Awal',\r\n\r\n 'financeContacts.paid_status': 'Status Dibayar',\r\n 'financeContacts.transaction_number': 'Nomor Transaksi',\r\n 'financeContacts.payment_note': 'Catatan Pembayaran',\r\n 'financeContacts.payment_account_code': 'Kode Akun Pembarayan',\r\n 'financeContacts.photo': 'Foto',\r\n 'financeContacts.show_photo': 'Tampilkan Foto',\r\n 'financeContacts.hide_photo': 'Sembunyikan Foto',\r\n 'financeContacts.add_contact': 'Tambah Kontak',\r\n 'financeContacts.financeContacts': 'Kontak',\r\n 'financeContacts.contact_type': 'Tipe Kontak',\r\n 'financeContacts.select_contact_type': 'Pilih tipe kontak',\r\n 'financeContacts.successfully_added': 'berhasil ditambahkan.',\r\n 'financeContacts.error_cannot_add': 'Tidak dapat menambah kontak.',\r\n 'financeContacts.error_cannot_update': 'Tidak dapat mengubah kontak.',\r\n 'financeContacts.edit_contact': 'Ubah Kontak',\r\n 'financeContacts.please_input_the_contact_name': 'Silakan masukkan nama kontak.',\r\n 'financeContacts.please_select_a_contact_type': 'Silakan pilih tipe kontak.',\r\n 'financeContacts.please_select_a_required_contact_type': 'Tipe kontak {contacts} wajib dipilih.',\r\n 'financeContacts.please_select_a_contact_type_with_minimal':\r\n 'Silakan pilih tipe kontak, minimal 1 tipe kontak.',\r\n 'financeContacts.contact_group': 'Grup Kontak',\r\n 'financeContacts.please_select_a_contact_group': 'Silakan pilih grup kontak.',\r\n 'financeContacts.contact_name': 'Nama',\r\n 'financeContacts.all_contact_type': 'Semua tipe kontak',\r\n 'financeContacts.max_characters': 'Maks {value} karakter.',\r\n 'financeContacts.min_characters': 'Min {value} karakter.',\r\n 'financeContacts.balance': 'Saldo',\r\n 'financeContacts.address': 'Alamat',\r\n 'financeContacts.email': 'Email',\r\n 'financeContacts.add_email': 'Tambah Email',\r\n 'financeContacts.npwp': 'NPWP',\r\n 'financeContacts.invalid_email_address_format': 'Format email tidak valid.',\r\n 'financeContacts.only_alphanumeric_allowed': 'Hanya huruf dan angka yang diperkenankan.',\r\n 'financeContacts.company': 'Perusahaan',\r\n 'financeContacts.alternative_email': 'Email Alternatif',\r\n 'financeContacts.email_cannot_be_the_same': 'Email tidak boleh sama',\r\n 'financeContacts.phone': 'Telepon',\r\n 'financeContacts.secondary_phone': 'Telepon sekunder',\r\n 'financeContacts.only_number_allowed': 'Hanya angka yang diperkenankan.',\r\n 'financeContacts.error_cannot_search': 'Tidak dapat mencari kontak.',\r\n 'financeContacts.group': 'Grup',\r\n 'financeContacts.all_group': 'Semua Grup',\r\n 'financeContacts.add_group': 'Tambah Grup',\r\n 'financeContacts.edit_group': 'Ubah Grup',\r\n 'financeContacts.delete_group': 'Hapus Group',\r\n 'financeContacts.only_group_that_not_assigned_in_contact_could_be_deleted':\r\n 'Catatan: Hanya grup yang belum mempunyai kontak yang dapat dihapus.',\r\n 'financeContacts.billing_address': 'Alamat Penagihan',\r\n 'financeContacts.shipping_address': 'Alamat Pengiriman',\r\n 'financeContacts.account_mapping': 'Pemetaan Akun',\r\n 'financeContacts.show_phone_detail': 'Tampilkan telepon detail',\r\n 'financeContacts.hide_phone_detail': 'Sembunyikan telepon detail',\r\n 'financeContacts.show_account_mapping': 'Tampilkan pemetaan akun',\r\n 'financeContacts.hide_account_mapping': 'Sembunyikan pemetaan akun',\r\n 'financeContacts.payable_account': 'Akun Hutang',\r\n 'financeContacts.receivable_account': 'Akun Piutang',\r\n 'financeContacts.transactions': 'Transaksi',\r\n 'financeContacts.successfully_deleted': 'berhasil dihapus.',\r\n 'financeContacts.error_cannot_delete': 'Tidak dapat menghapus grup kontak.',\r\n 'financeContacts.error_cannot_add_group': 'Tidak dapat menambah grup kontak.',\r\n 'financeContacts.error_cannot_update_group': 'Tidak dapat mengubah grup kontak.',\r\n 'financeContacts.error_cannot_move': 'Tidak dapat memindah grup kontak.',\r\n 'financeContacts.error_cannot_change_status': 'Tidak dapat mengubah status grup kontak.',\r\n 'financeContacts.error_cannot_load_can_be_deleted_group':\r\n 'Tidak dapat mengambil data grup kontak.',\r\n 'financeContacts.follow_these_steps_to_import_your_contact':\r\n 'Ikuti langkah-langkah berikut untuk meng-import kontak',\r\n 'financeContacts.1_download_your_contact_template_file': '1. Download file template kontak',\r\n 'financeContacts.start_by_downloading_our_contact_csv':\r\n 'Mulai dengan mengunduh file template dalam format Excel. File ini mempunyai kolom header yang yang dibutuhkan Kledo untuk mengimport detail dari kontak-mu.',\r\n 'financeContacts.download_template_file': 'Download File Template',\r\n 'financeContacts.download_template_data_example_file': 'Download File Contoh',\r\n 'financeContacts.import': 'Import Kontak',\r\n 'financeContacts.2_copy_your_contact_into_the_template':\r\n '2. Salin detail kontak ke dalam template',\r\n 'financeContacts.using_excel_or_another_spreadsheet_editor':\r\n 'Menggunakan Excel atau software spreadsheeet lainnya, masukkan detail kontak ke dalam file template dari Kledo. Pastikan detail kontak sesuai dengan kolom header yang ada di template.',\r\n 'financeContacts.important': 'PENTING',\r\n 'financeContacts.3_upload_the_updated_template_file_here':\r\n '3. Upload template yang sudah diupdate ke sini',\r\n 'financeContacts.upload': 'Upload',\r\n 'financeContacts.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Simpan file template yang sudah diupdate',\r\n\r\n 'financeContacts.dont_change_the_column_heading_in_the_template_file':\r\n 'Jangan mengubah header kolom di dalam template. Ini dibutuhkan agar import dapat berjalan.',\r\n 'financeContacts.a_maximum_of_1000_contact_can_be_imported_at_a_time':\r\n 'Maksimal 1.000 kontak dapat diimport dalam satu waktu.',\r\n 'financeContacts.import_benefit_with_update':\r\n 'Kamu juga dapat menggunakan file yang sudah diimport untuk mengupdate semua kontakmu, menghemat waktu dan tenaga daripada mengupdate kontak satu persatu melalui browser.',\r\n 'financeContacts.warning_update_contact_using_import':\r\n 'Proses import akan menggunakan Nama Kontak, Perusahaan, dan Tipe kontak untuk menentukan apakah suatu kontak sudah ada di Kledo atau belum, jika kontak sudah ada maka kontak akan diupdate, sedangkan jika kontak belum ada maka akan dibuat kontak baru. Kontak tidak akan dihapus, sehingga kamu bisa dengan aman mengupdate sebagian kontakmu saja tanpa khawatir akan kehilangan data dikontak yang lain.',\r\n\r\n 'financeContacts.contact_successfully_imported': '{rowCount} baris kontak berhasil diimport.',\r\n 'financeContacts.go_to_contact_list': 'Ke halaman daftar kontak',\r\n 'financeContacts.mass_delete_info':\r\n '**Kontak yang telah mempunyai transaksi tidak dapat dihapus, hanya bisa diarsipkan.',\r\n 'financeContacts.want_to_use_this_contact': 'Apakah Anda akan menggunakan kontak ini ?',\r\n 'financeContacts.are_you_sure_to_archive': 'Apakah Anda yakin untuk mengarsipkan kontak ini?',\r\n 'financeContacts.are_you_sure_to_unarchive': 'Apakah Anda yakin untuk batalkan arsip kontak ini?',\r\n 'financeContacts.your_net_debt': 'Net hutang Anda',\r\n 'financeContacts.you_owe': 'Anda hutang',\r\n 'financeContacts.they_owe': 'Mereka Hutang',\r\n 'financeContacts.payment_received': 'Pembayaran diterima',\r\n 'financeContacts.your_due_debt': 'Hutang Anda jatuh tempo',\r\n 'financeContacts.their_due_debt': 'Hutang mereka jatuh tempo',\r\n 'financeContacts.payment_sent': 'Pembayaran dikirim',\r\n 'financeContacts.awaiting_payment': 'Piutang menunggu pembayaran',\r\n 'financeContacts.debt_you_need_to_pay': 'Hutang yang perlu Anda bayar',\r\n 'financeContacts.money_in_out': 'Keluar Masuk Uang',\r\n 'financeContacts.money_in': 'Uang Masuk',\r\n 'financeContacts.money_out': 'Uang keluar',\r\n 'financeContacts.bank_accounts': 'Rekening Bank',\r\n 'financeContacts.bank': 'Bank',\r\n 'financeContacts.branch': 'Cabang',\r\n 'financeContacts.holder_name': 'Nama Pemilik',\r\n 'financeContacts.account_number': 'Nomor Rekening',\r\n 'financeContacts.required': 'Harus diisi',\r\n 'financeContacts.select_shipping_address': 'Pilih Alamat Pengiriman',\r\n 'financeContacts.revert_to_default_address': 'Kembalikan ke alamat default',\r\n 'financeContacts.max_payable': 'Maksimal Hutang',\r\n 'financeContacts.total_payable_is_calculated_from_purchase_invoices':\r\n 'Total hutang dihitung dari tagihan pembelian, transaksi biaya dan kontak hutang. Jika total hutang melebihi maksimal, maka saat membuat tagihan pembelian baru akan ditolak.',\r\n 'financeContacts.max_receivable': 'Maksimal Piutang',\r\n 'financeContacts.total_accounts_receivable_is_calculated_from_sales_invoices':\r\n 'Total piutang dihitung dari tagihan penjualan dan kontak piutang. Jika total piutang melebihi maksimal, maka saat membuat tagihan penjualan baru akan ditolak.',\r\n 'financeContacts.country': 'Negara',\r\n 'financeContacts.province': 'Provinsi',\r\n 'financeContacts.city': 'Kota',\r\n 'financeContacts.district': 'Kecamatan',\r\n 'financeContacts.village': 'Kelurahan',\r\n 'financeContacts.id_card_type': 'Tipe Kartu Identitas',\r\n 'financeContacts.id_card_number': 'ID Kartu Identitas',\r\n 'financeContacts.please_select_id_card_type': 'Silahkan pilih tipe kartu identitas',\r\n\r\n 'financeExpenseTerms.delete_expenseTerm': 'Hapus Termin',\r\n 'financeExpenseTerms.are_you_sure_delete': 'Apakah Anda yakin untuk menghapus?',\r\n 'financeExpenseTerms.select_expenseTerm': 'Pilih Termin',\r\n 'financeExpenseTerms.please_select_expenseTerm_to_delete': 'Silakan pilih Termin untuk dihapus',\r\n 'financeExpenseTerms.add_expenseTerm': 'Tambah Termin',\r\n 'financeExpenseTerms.financeExpenseTerms': 'Termin',\r\n 'financeExpenseTerms.successfully_deleted': 'berhasil dihapus.',\r\n 'financeExpenseTerms.successfully_added': 'berhasil ditambahkan.',\r\n 'financeExpenseTerms.error_cannot_delete': 'Tidak dapat menghapus termin.',\r\n 'financeExpenseTerms.error_cannot_add': 'Tidak dapat menambah termin.',\r\n 'financeExpenseTerms.error_cannot_update': 'Tidak dapat mengubah termin.',\r\n 'financeExpenseTerms.error_cannot_move': 'Tidak dapat memindah termin.',\r\n 'financeExpenseTerms.error_cannot_change_status': 'Tidak dapat mengubah status termin.',\r\n 'financeExpenseTerms.edit_expenseTerm': 'Ubah Termin',\r\n 'financeExpenseTerms.please_input_the_expenseTerm_name': 'Silakan masukkan nama termin.',\r\n 'financeExpenseTerms.please_input_the_days': 'Silakan masukkan jumlah hari.',\r\n 'financeExpenseTerms.expenseTerm_name': 'Nama',\r\n 'financeExpenseTerms.length': 'Lama',\r\n 'financeExpenseTerms.days': 'Hari',\r\n 'financeExpenseTerms.max_characters': 'Maks {value} karakter.',\r\n 'financeExpenseTerms.min_characters': 'Min {value} karakter.',\r\n 'financeExpenseTerms.only_alphanumeric_allowed': 'Hanya huruf dan angka yang diperkenankan.',\r\n 'financeExpenseTerms.only_number_allowed': 'Hanya angka yang diperkenankan.',\r\n 'financeExpenseTerms.only_0_-_1000_allowed': 'Hanya 0 - 1000 diperkenankan',\r\n 'financeExpenseTerms.only_0_-_10000_allowed': 'Hanya 0 - 10.000 diperkenankan',\r\n 'financeExpenseTerms.must_have_active_termin': 'Harus ada minimal satu termin aktif.',\r\n\r\n 'financeTaxes.add_tax': 'Tambah Pajak',\r\n 'financeTaxes.financeTaxes': 'Pajak',\r\n 'financeTaxes.successfully_added': 'berhasil ditambahkan.',\r\n 'financeTaxes.error_cannot_add': 'Tidak dapat menambah pajak.',\r\n 'financeTaxes.error_cannot_update': 'Tidak dapat mengubah pajak.',\r\n 'financeTaxes.error_cannot_move': 'Tidak dapat memindah pajak.',\r\n 'financeTaxes.error_cannot_change_status': 'Tidak dapat mengubah status pajak.',\r\n 'financeTaxes.edit_tax': 'Ubah Pajak',\r\n 'financeTaxes.please_input_the_tax_name': 'Silakan masukkan nama pajak.',\r\n 'financeTaxes.please_input_the_effective_rates': 'Silakan masukkan persentase efektif.',\r\n 'financeTaxes.please_select_a_sell_tax_account': 'Silakan pilih akun pajak penjualan.',\r\n 'financeTaxes.please_select_a_buy_tax_account': 'Silakan pilih akun pajak pembelian.',\r\n 'financeTaxes.select_buy_tax_account': 'Pilih akun pajak pembelian',\r\n 'financeTaxes.select_sell_tax_account': 'Pilih akun pajak penjualan',\r\n 'financeTaxes.tax_name': 'Nama',\r\n 'financeTaxes.effective_rates': 'Persentase efektif',\r\n 'financeTaxes.is_withholding': 'Pemotongan',\r\n 'financeTaxes.buy_tax_account': 'Akun Pajak Pembelian',\r\n 'financeTaxes.sell_tax_account': 'Akun Pajak Penjualan',\r\n 'financeTaxes.max_characters': 'Maks {value} karakter.',\r\n 'financeTaxes.min_characters': 'Min {value} karakter.',\r\n 'financeTaxes.only_alphanumeric_allowed': 'Hanya huruf dan angka yang diperkenankan.',\r\n 'financeTaxes.only_number_allowed': 'Hanya angka yang diperkenankan.',\r\n 'financeTaxes.effective_rate_%': 'Persentase Efektif %',\r\n 'financeTaxes.must_have_active_tax': 'Harus ada minimal satu pajak aktif.',\r\n 'financeTaxes.witholding': 'Pemotongan',\r\n 'financeTaxes.error_cannot_load_data_detail': 'Tidak dapat memuat data detail pajak.',\r\n 'financeTaxes.delete_tax': 'Hapus Pajak',\r\n 'financeTaxes.are_you_sure_delete': 'Apakah Anda yakin untuk menghapus?',\r\n 'financeTaxes.select_tax': 'Pilih Pajak',\r\n 'financeTaxes.please_select_tax_to_delete': 'Silakan pilih Pajak untuk dihapus',\r\n 'financeTaxes.successfully_deleted': 'berhasil dihapus.',\r\n 'financeTaxes.error_cannot_delete': 'Tidak dapat menghapus pajak.',\r\n 'financeTaxes.manually_edit_tax_amount_allowed': 'Besaran rupiah pajak bisa diubah secara manual',\r\n 'financeTaxes.allow_manual': 'Allow manual',\r\n 'financeTaxes.compound': 'Majemuk',\r\n 'financeTaxes.compound_help_text':\r\n 'Pajak dilipatgandakan akan diterapkan terhadap total setelah pajak sebelumnya diterapkan. Dengan urutan pajak.',\r\n 'financeTaxes.tax_type': 'Tipe Pajak',\r\n 'financeTaxes.one': 'Satu',\r\n 'financeTaxes.consist_of': 'Terdiri dari',\r\n 'financeTaxes.consist_of_is_required': 'Minimal 1 pajak terpilih.',\r\n 'financeTaxes.effective_percentage': 'Persentase Efektif',\r\n 'financeTaxes.error_effective_percentage': 'Tidak dapat mendapatkan persentase efektif',\r\n 'financeTaxes.tax_group': 'Grup Pajak',\r\n\r\n 'financeUnits.error_cannot_move': 'Tidak dapat memindah satuan',\r\n 'financeUnits.name': 'Nama',\r\n 'financeUnits.max_characters': 'Maks {value} karakter.',\r\n 'financeUnits.min_characters': 'Min {value} karakter.',\r\n 'financeUnits.only_alphanumeric_allowed': 'Hanya huruf dan angka yang diperkenankan.',\r\n 'financeUnits.please_input_the_unit_name': 'Silakan masukkan nama satuan.',\r\n 'financeUnits.error_cannot_add': 'Tidak dapat menambah satuan.',\r\n 'financeUnits.error_cannot_update': 'Tidak dapat mengubah satuan.',\r\n 'financeUnits.error_cannot_delete': 'Tidak dapat menghapus satuan.',\r\n 'financeUnits.please_select_unit_to_delete': 'Silakan pilih Satuan untuk dihapus',\r\n 'financeUnits.select_unit': 'Pilih Satuan',\r\n 'financeUnits.unit': 'Satuan',\r\n\r\n 'financeExpenses.add_expense': 'Tambah Biaya',\r\n 'financeExpenses.financeExpenses': 'Biaya',\r\n 'financeExpenses.successfully_added': 'berhasil ditambahkan.',\r\n 'financeExpenses.error_cannot_add': 'Tidak dapat menambah biaya.',\r\n 'financeExpenses.error_cannot_update': 'Tidak dapat mengubah biaya.',\r\n 'financeExpenses.error_cannot_move': 'Tidak dapat memindah biaya.',\r\n 'financeExpenses.error_cannot_change_status': 'Tidak dapat mengubah status biaya.',\r\n 'financeExpenses.edit_expense': 'Ubah Biaya',\r\n 'financeExpenses.please_input_the_expense_name': 'Silakan masukkan nama biaya.',\r\n 'financeExpenses.please_input_the_effective_rates': 'Silakan masukkan persentase efektif.',\r\n 'financeExpenses.please_select_a_sell_expense_account': 'Silakan pilih akun biaya penjualan.',\r\n 'financeExpenses.please_select_a_buy_expense_account': 'Silakan pilih akun biaya pembelian.',\r\n 'financeExpenses.select_buy_expense_account': 'Pilih akun biaya pembelian',\r\n 'financeExpenses.select_sell_expense_account': 'Pilih akun biaya penjualan',\r\n 'financeExpenses.expense_name': 'Nama',\r\n 'financeExpenses.effective_rates': 'Persentase Efektif',\r\n 'financeExpenses.is_withholding': 'Pemotongan',\r\n 'financeExpenses.buy_expense_account': 'Akun biaya pembelian',\r\n 'financeExpenses.sell_expense_account': 'Akun biaya penjualan',\r\n 'financeExpenses.max_characters': 'Maks {value} karakter.',\r\n 'financeExpenses.min_characters': 'Min {value} karakter.',\r\n 'financeExpenses.only_alphanumeric_allowed': 'Hanya huruf dan angka yang diperkenankan.',\r\n 'financeExpenses.only_number_allowed': 'Hanya angka yang diperkenankan.',\r\n 'financeExpenses.expense_account': 'Akun Biaya',\r\n 'financeExpenses.select_expense_account': 'Pilih akun',\r\n 'financeExpenses.description': 'Deskripsi',\r\n 'financeExpenses.tax': 'Pajak',\r\n 'financeExpenses.select_tax': 'Pilih pajak',\r\n 'financeExpenses.amount': 'Total',\r\n 'financeExpenses.pay_from': 'Dibayar Dari',\r\n 'financeExpenses.please_select_a_pay_from': 'Silakan pilih dibayar dari',\r\n 'financeExpenses.select_pay_from': 'Pilih dibayar dari',\r\n 'financeExpenses.pay_later': 'Bayar Nanti',\r\n 'financeExpenses.benefeciary': 'Penerima',\r\n 'financeExpenses.please_select_a_benefeciary': 'Silakan pilih penerima',\r\n 'financeExpenses.select_benefeciary': 'Pilih penerima',\r\n 'financeExpenses.add_contact': 'Tambah kontak',\r\n 'financeExpenses.all_contacts': 'Semua kontak',\r\n 'financeExpenses.transaction_date': 'Tgl Transaksi',\r\n 'financeExpenses.please_select_transaction_date': 'Silakan pilih tanggal transaksi',\r\n 'financeExpenses.due_date': 'Tanggal Jatuh Tempo',\r\n 'financeExpenses.please_select_due_date': 'Silakan pilih tanggal jatuh tempo',\r\n 'financeExpenses.term': 'Termin',\r\n 'financeExpenses.select_term': 'Pilih termin',\r\n 'financeExpenses.add_term': 'Tambah termin',\r\n 'financeExpenses.price_include_tax': 'Harga termasuk pajak',\r\n 'financeExpenses.add_more': 'Tambah baris',\r\n 'financeExpenses.payment_method': 'Metode Pembayaran',\r\n 'financeExpenses.please_select_a_payment_method': 'Silakan pilih metode pembayaran',\r\n 'financeExpenses.select_payment_method': 'Pilih metode pembayaran',\r\n 'financeExpenses.number': 'Nomor',\r\n 'financeExpenses.please_input_the_number': 'Silakan isikan nomor.',\r\n 'financeExpenses.memo': 'Reference',\r\n 'financeExpenses.date': 'Tanggal',\r\n 'financeExpenses.category': 'Kategori',\r\n 'financeExpenses.status': 'Status',\r\n 'financeExpenses.balance_due': 'Sisa Tagihan',\r\n 'financeExpenses.total': 'Total',\r\n 'financeExpenses.please_select_a_term': 'Silakan pilih termin.',\r\n 'financeExpenses.search_by_memo': 'Cari',\r\n 'financeExpenses.the_due_date_max_higger_than_transaction_date':\r\n 'Tanggal jatuh tempo harus sama atau setelah tanggal transaksi',\r\n 'financeExpenses.detail_title': 'Biaya - {status}',\r\n 'financeExpenses.pay_bill': 'Bayar Tagihan',\r\n 'financeExpenses.detail_expense': 'Detil Biaya',\r\n 'financeExpenses.total_amount_must_greater_than_total_payment':\r\n 'Total transaksi harus lebih besar atau sama dengan total pembayaran.',\r\n 'financeExpenses.all': 'Semua',\r\n 'financeExpenses.unpaid': 'Belum Dibayar',\r\n 'financeExpenses.partial': 'Bayar Sebagian',\r\n 'financeExpenses.closed': 'Closed',\r\n 'financeExpenses.follow_these_steps_to_import_your_expenses':\r\n 'Ikuti langkah berikut untuk mengimport biayamu',\r\n 'financeExpenses.1_download_your_expenses_template_file': '1. Download file template biaya',\r\n 'financeExpenses.start_by_downloading_our_expenses_csv':\r\n 'Mulai dengan mengunduh file template Excel. File ini mempunyai kolom header yang yang dibutuhkan Kledo untuk mengimport detail dari biaya-biayamu.',\r\n 'financeExpenses.download_template_file': 'Download File Template',\r\n 'financeExpenses.download_template_data_example_file': 'Download File Contoh',\r\n 'financeExpenses.import': 'Import Biaya',\r\n 'financeExpenses.2_copy_your_expenses_into_the_template':\r\n '2. Salin detail biaya ke dalam template',\r\n 'financeExpenses.using_excel_or_another_spreadsheet_editor':\r\n 'Menggunakan Excel atau software spreadsheeet lainnya, masukkan detail biaya ke dalam file template dari Kledo. Pastikan detail biaya sesuai dengan kolom header yang ada di template.',\r\n 'financeExpenses.important': 'PENTING',\r\n 'financeExpenses.3_upload_the_updated_template_file_here':\r\n '3. Upload template yang sudah diupdate ke sini',\r\n 'financeExpenses.upload': 'Upload',\r\n 'financeExpenses.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Simpan file template yang sudah diupdate',\r\n 'financeExpenses.a_maximum_of_500_expenses_can_be_imported_at_a_time':\r\n 'Maksimal 1.000 biaya dapat diimport dalam satu waktu.',\r\n 'financeExpenses.contact_name_that_not_exist_will_be_inserted_as_a_new_contact':\r\n 'Nama kontak yang yang belum ada di Kledo akan dimasukkan sebagai kontak baru.',\r\n 'financeExpenses.import_actions_only_insert_new_expenses_cannot_update_or_delete':\r\n 'Saat meng-import, Kledo hanya akan memasukkan data baru, tidak ada data yang dihapus atau diupdate.',\r\n 'financeExpenses.dont_change_the_column_heading_in_the_template_file':\r\n 'Jangan mengubah header kolom di dalam template. Ini dibutuhkan agar import dapat berjalan.',\r\n 'financeExpenses.you_can_only_upload_csv_file':\r\n 'Anda hanya dapat mengunggah file csv atau excel.',\r\n 'financeExpenses.upload_file': 'Upload File',\r\n 'financeExpenses.check_the_imported_data': 'Cek Data',\r\n 'financeExpenses.please_check_the_imported_data': 'Silakan cek data yang diimport',\r\n 'financeExpenses.import_expenses_done': 'Import Berhasil',\r\n 'financeExpenses.error_upload_file': 'Gagal mengunggah file.',\r\n 'financeExpenses.file_not_found': 'File tidak ditemukan.',\r\n 'financeExpenses.if_you_are_happy_to_continue_with_the_import_please_click_the_import_now_button': `Jika data yang diimport sesuai dengan yang kamu harapkan, silakan klik tombol \"Import Sekarang\".`,\r\n 'financeExpenses.contact_name': 'Nama Kontak',\r\n 'financeExpenses.email': 'Email',\r\n 'financeExpenses.address': 'Alamat',\r\n 'financeExpenses.phone': 'Phone',\r\n 'financeExpenses.expense_date': 'Tanggal Biaya',\r\n 'financeExpenses.expense_number': 'Nomor Biaya',\r\n 'financeExpenses.reference': 'Reference',\r\n 'financeExpenses.account_code': 'Kode Akun',\r\n 'financeExpenses.tax_inclusive': 'Termasuk Pajak',\r\n 'financeExpenses.paid': 'Lunas',\r\n 'financeExpenses.paid_account': 'Akun Pembayaran',\r\n 'financeExpenses.row_imported': '{imported} dari {total} baris diproses',\r\n 'financeExpenses.expenses_successfully_imported': '{rowCount} biaya berhasil diimport.',\r\n 'financeExpenses.view_detail': 'Tampilkan detil',\r\n 'financeExpenses.import_another_file': 'Import file lain',\r\n 'financeExpenses.go_to_expenses_list': 'Ke halaman daftar biaya',\r\n 'financeExpenses.success': 'Berhasil',\r\n 'financeExpenses.failed': 'Gagal',\r\n 'financeExpenses.error_cannot_import': 'Gagal import.',\r\n 'financeExpenses.error': 'Error',\r\n 'financeExpenses.import_expenses_in_progress': 'Import in progress',\r\n 'financeExpenses.import_expenses_is_still_in_progress': 'Import is still in progress',\r\n 'financeExpenses.its_ok_to_close_this_page': `It's OK to close this page or import another file. When import done, you will be notified via email.`,\r\n\r\n 'financePurchaseOrders.message': 'Pesan',\r\n 'financePurchaseOrders.customer': 'Pelanggan',\r\n 'financePurchaseOrders.show_message': 'Tampilkan Pesan',\r\n 'financePurchaseOrders.hide_message': 'Sembunyikan Pesan',\r\n 'financePurchaseOrders.show_attachment': 'Tampilkan Lampiran',\r\n 'financePurchaseOrders.hide_attachment': 'Sembunyikan Lampiran',\r\n 'financePurchaseOrders.account': 'Akun',\r\n 'financePurchaseOrders.debit': 'Debit',\r\n 'financePurchaseOrders.credit': 'Kredit',\r\n 'financePurchaseOrders.journal_report': 'Laporan Jurnal',\r\n 'financePurchaseOrders.add_purchaseorder': 'Tambah Pesanan Pembelian',\r\n 'financePurchaseOrders.financePurchaseOrders': 'Pesanan Pembelian',\r\n 'financePurchaseOrders.successfully_added': 'berhasil ditambahkan.',\r\n 'financePurchaseOrders.error_cannot_add': 'Tidak dapat menambah pesanan pembelian.',\r\n 'financePurchaseOrders.error_cannot_update': 'Tidak dapat mengubah pesanan pembelian.',\r\n 'financePurchaseOrders.error_cannot_move': 'Tidak dapat memindah pesanan pembelian.',\r\n 'financePurchaseOrders.error_cannot_print_pdf': 'Tidak dapat membuat pdf pesanan pembelian.',\r\n 'financePurchaseOrders.error_cannot_change_status':\r\n 'Tidak dapat mengubah status pesanan pembelian.',\r\n 'financePurchaseOrders.edit_purchaseorder': 'Ubah Pesanan Pembelian',\r\n 'financePurchaseOrders.max_characters': 'Maks {value} karakter.',\r\n 'financePurchaseOrders.min_characters': 'Min {value} karakter.',\r\n 'financePurchaseOrders.only_number_allowed': 'Hanya angka yang diperkenankan.',\r\n 'financePurchaseOrders.description': 'Deskripsi',\r\n 'financePurchaseOrders.tax': 'Pajak',\r\n 'financePurchaseOrders.select_tax': 'Pilih pajak',\r\n 'financePurchaseOrders.amount': 'Total',\r\n 'financePurchaseOrders.please_select_a_contact': 'Silakan pilih kontak',\r\n 'financePurchaseOrders.select_contact': 'Pilih kontak',\r\n 'financePurchaseOrders.add_contact': 'Tambah kontak',\r\n 'financePurchaseOrders.all_contacts': 'Semua kontak',\r\n 'financePurchaseOrders.transaction_date': 'Tgl Transaksi',\r\n 'financePurchaseOrders.please_select_transaction_date': 'Silakan pilih tanggal transaksi',\r\n 'financePurchaseOrders.due_date': 'Tanggal Jatuh Tempo',\r\n 'financePurchaseOrders.please_select_due_date': 'Silakan pilih tanggal jatuh tempo',\r\n 'financePurchaseOrders.term': 'Termin',\r\n 'financePurchaseOrders.select_term': 'Pilih termin',\r\n 'financePurchaseOrders.add_term': 'Tambah termin',\r\n 'financePurchaseOrders.price_include_tax': 'Harga termasuk pajak',\r\n 'financePurchaseOrders.add_more': 'Tambah baris',\r\n 'financePurchaseOrders.number': 'Nomor',\r\n 'financePurchaseOrders.please_input_the_number': 'Silakan isikan nomor.',\r\n 'financePurchaseOrders.memo': 'Reference',\r\n 'financePurchaseOrders.date': 'Tanggal',\r\n 'financePurchaseOrders.status': 'Status',\r\n 'financePurchaseOrders.balance_due': 'Sisa Tagihan',\r\n 'financePurchaseOrders.total': 'Total',\r\n 'financePurchaseOrders.please_select_a_term': 'Silakan pilih termin.',\r\n 'financePurchaseOrders.search_by_memo': 'Cari',\r\n 'financePurchaseOrders.the_due_date_max_higger_than_transaction_date':\r\n 'Tanggal jatuh tempo harus sama atau setelah tanggal transaksi',\r\n 'financePurchaseOrders.detail_title': 'Pesanan Pembelian {number}',\r\n 'financePurchaseOrders.vendor': 'Vendor',\r\n 'financePurchaseOrders.reference': 'Reference',\r\n 'financePurchaseOrders.product': 'Produk',\r\n 'financePurchaseOrders.qty': 'Kuantitas',\r\n 'financePurchaseOrders.unit': 'Satuan',\r\n 'financePurchaseOrders.price': 'Harga',\r\n 'financePurchaseOrders.add_product': 'Tambah Produk',\r\n 'financePurchaseOrders.select_product': 'Pilih produk',\r\n 'financePurchaseOrders.attachments': 'Attachment',\r\n 'financePurchaseOrders.save_&_approve': 'Simpan & setujui',\r\n 'financePurchaseOrders.save_&_approve_add_new': 'Simpan & setujui & Tambah Baru',\r\n 'financePurchaseOrders.save_as_draft': 'Simpan sbg draft',\r\n 'financePurchaseOrders.save_as_draft_add_new': 'Simpan sbg draft & Tambah Baru',\r\n 'financePurchaseOrders.save_&_submit_for_approval': 'Simpan & ajukan approval',\r\n 'financePurchaseOrders.save_&_submit_for_approval_add_new':\r\n 'Simpan & ajukan approval & Tambah Baru',\r\n 'financePurchaseOrders.please_select_a_product': 'Silakan pilih produk.',\r\n 'financePurchaseOrders.please_input_the_qty': 'Silakan masukkan kuantitas.',\r\n 'financePurchaseOrders.please_input_the_price': 'Silakan masukkan harga.',\r\n 'financePurchaseOrders.please_input_the_amount': 'Silakan masukkan total.',\r\n 'financePurchaseOrders.approve': 'Setujui',\r\n 'financePurchaseOrders.are_you_sure_to_approve': 'Apakah Anda yakin untuk menyutujui?',\r\n 'financePurchaseOrders.submit_for_approval': 'Ajukan approval',\r\n 'financePurchaseOrders.are_you_sure_to_submit_for_approval':\r\n 'Apakah Anda yakin untuk mengajukan approval?',\r\n 'financePurchaseOrders.create_invoice': 'Buat Tagihan',\r\n 'financePurchaseOrders.must_greater_than_0': 'Harus lebih besar dari 0.',\r\n 'financeProduct.product': 'Produk',\r\n 'financeProduct.sell_or_purchase': 'Jual atau Beli',\r\n 'financeProduct.for_sale': 'Dijual',\r\n 'financeProduct.bought': 'Dibeli',\r\n 'financeProduct.track_stock': 'Lacak Stok',\r\n 'financeProduct.not_track_stock': 'Tidak Lacak Stok',\r\n 'financePurchaseOrders.must_be_smaller_than_bill':\r\n 'Total harus lebih kecil atau sama dengan total transaksi.',\r\n 'financePurchaseInvoices.pay_with_credit_memo': 'Dibayar dengan Hutang',\r\n 'financePurchaseInvoices.please_select_with_credit_memo': 'Silahkan pilih dibayar dengan hutang',\r\n 'financePurchaseInvoices.pay_with_debit_memo': 'Dibayar dengan Piutang',\r\n 'financePurchaseInvoices.please_select_with_debit_memo': 'Silahkan pilih dibayar dengan piutang',\r\n\r\n 'financePurchaseOrders.follow_these_steps_to_import_your_purchase_orders':\r\n 'Ikuti langkah berikut untuk mengimport pesanan pembelianmu',\r\n 'financePurchaseOrders.1_download_your_purchase_orders_template_file':\r\n '1. Download file template pesanan pembelian',\r\n 'financePurchaseOrders.start_by_downloading_our_purchase_orders_csv':\r\n 'Mulai dengan mengunduh file template Excel. File ini mempunyai kolom header yang yang dibutuhkan Kledo untuk mengimport detail dari pesanan pembelian-pesanan pembelianmu.',\r\n 'financePurchaseOrders.download_template_file': 'Download File Template',\r\n 'financePurchaseOrders.download_template_data_example_file': 'Download File Contoh',\r\n 'financePurchaseOrders.import': 'Import Pesanan Pembelian',\r\n 'financePurchaseOrders.2_copy_your_purchase_orders_into_the_template':\r\n '2. Salin detail pesanan pembelian ke dalam template',\r\n 'financePurchaseOrders.using_excel_or_another_spreadsheet_editor':\r\n 'Menggunakan Excel atau software spreadsheeet lainnya, masukkan detail pesanan pembelian ke dalam file template dari Kledo. Pastikan detail pesanan pembelian sesuai dengan kolom header yang ada di template.',\r\n 'financePurchaseOrders.important': 'PENTING',\r\n 'financePurchaseOrders.3_upload_the_updated_template_file_here':\r\n '3. Upload template yang sudah diupdate ke sini',\r\n 'financePurchaseOrders.upload': 'Upload',\r\n 'financePurchaseOrders.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Simpan file template yang sudah diupdate',\r\n 'financePurchaseOrders.a_maximum_of_500_purchase_orders_can_be_imported_at_a_time':\r\n 'Maksimal 1.000 pesanan pembelian dapat diimport dalam satu waktu.',\r\n 'financePurchaseOrders.contact_name_that_not_exist_will_be_inserted_as_a_new_contact':\r\n 'Nama kontak yang yang belum ada di Kledo akan dimasukkan sebagai kontak baru.',\r\n 'financePurchaseOrders.import_actions_only_insert_new_purchase_orders_cannot_update_or_delete':\r\n 'Saat meng-import, Kledo hanya akan memasukkan data baru, tidak ada data yang dihapus atau diupdate.',\r\n 'financePurchaseOrders.dont_change_the_column_heading_in_the_template_file':\r\n 'Jangan mengubah header kolom di dalam template. Ini dibutuhkan agar import dapat berjalan.',\r\n 'financePurchaseOrders.you_can_only_upload_csv_file':\r\n 'Anda hanya dapat mengunggah file csv atau excel',\r\n 'financePurchaseOrders.upload_file': 'Upload File',\r\n 'financePurchaseOrders.check_the_imported_data': 'Cek Data',\r\n 'financePurchaseOrders.please_check_the_imported_data': 'Silakan cek data yang diimport',\r\n 'financePurchaseOrders.import_purchase_orders_done': 'Import Berhasil',\r\n 'financePurchaseOrders.error_upload_file': 'Gagal mengunggah file.',\r\n 'financePurchaseOrders.file_not_found': 'File tidak ditemukan.',\r\n 'financePurchaseOrders.if_you_are_happy_to_continue_with_the_import_please_click_the_import_now_button': `Jika data yang diimport sesuai dengan yang kamu harapkan, silakan klik tombol \"Import Sekarang\".`,\r\n 'financePurchaseOrders.valid': 'Valid',\r\n 'financePurchaseOrders.invalid': 'Invalid',\r\n 'financePurchaseOrders.import_now': 'Import Sekarang',\r\n 'financePurchaseOrders.contact_name': 'Nama Kontak',\r\n 'financePurchaseOrders.email': 'Email',\r\n 'financePurchaseOrders.address': 'Alamat',\r\n 'financePurchaseOrders.phone': 'Phone',\r\n 'financePurchaseOrders.purchase_order_date': 'Tanggal Tagihan Pembelian',\r\n 'financePurchaseOrders.purchase_order_number': 'Nomor Tagihan Pembelian',\r\n 'financePurchaseOrders.product_name': 'Nama Produk',\r\n 'financePurchaseOrders.code_sku': 'Kode/SKU',\r\n 'financePurchaseOrders.tax_inclusive': 'Termasuk Pajak',\r\n\r\n 'financePurchaseOrders.inventory_account': 'Akun Penyimpanan',\r\n 'financePurchaseOrders.purchase_orders_successfully_imported':\r\n '{rowCount} pesanan pembelian berhasil diimport.',\r\n 'financePurchaseOrders.view_detail': 'Tampilkan detil',\r\n 'financePurchaseOrders.import_another_file': 'Import file lain',\r\n 'financePurchaseOrders.go_to_purchase_order_list': 'Ke halaman daftar pesanan pembelian',\r\n 'financePurchaseOrders.success': 'Berhasil',\r\n 'financePurchaseOrders.failed': 'Gagal',\r\n 'financePurchaseOrders.error_cannot_import': 'Gagal import.',\r\n 'financePurchaseOrders.error': 'Error',\r\n 'financePurchaseOrders.tax_manual': 'Pajak Manual',\r\n 'financePurchaseOrders.tax_manual_must_less_than_amount':\r\n 'Pajak harus kurang dari nilai transaksi.',\r\n 'financePurchaseOrders.discount': 'Discount',\r\n 'financePurchaseOrders.additional_discount': 'Tambahan Diskon',\r\n 'financePurchaseOrders.discount_per_item': 'Diskon per item',\r\n 'financePurchaseOrders.total_discount': 'Total Diskon',\r\n 'financePurchaseOrders.total_cannot_be_negative': 'Nilai sisa tagihan tidak boleh minus.',\r\n 'financePurchaseOrders.product_not_found': 'Produk tidak ditemukan',\r\n 'financePurchaseOrders.product_has_been_added': 'Produk berhasil ditambahkan',\r\n 'financePurchaseOrders.discount_per_quantity': 'Diskon per kuantitas',\r\n\r\n 'salesCommission.sales_commission': 'Komisi Penjualan',\r\n 'salesCommission.commission': 'Komisi',\r\n 'salesCommission.commission_required': 'Komisi harus diisi',\r\n 'salesCommission.commission_name': 'Nama Komisi',\r\n 'salesCommission.commission_name_required': 'Nama komisi wajib diisi',\r\n 'salesCommission.commission_amount_by': 'Besaran Komisi Bertingkat Berdasar',\r\n 'salesCommission.commission_amount': 'Besaran Komisi Bertingkat',\r\n 'salesCommission.min_transaction_per_month': 'Minimal transaksi per bulan',\r\n 'salesCommission.min_transaction_per_month_required': 'Minimal transaksi harus diisi',\r\n 'salesCommission.cannot_get_commission_type': 'Tidak dapat mengambil tipe komisi',\r\n 'salesCommission.cannot_get_commission': 'Tidak dapat mengambil komisi',\r\n 'salesCommission.sales_person_required': 'Sales person wajib diisi',\r\n 'salesCommission.all_sales': 'Semua Sales',\r\n 'salesCommission.not_due_only':\r\n 'Komisi hanya untuk transaksi yang pelunasannya tidak melewati jatuh tempo',\r\n 'salesCommission.not_due_only_desc':\r\n 'Transaksi penjualan yang jatuh tempo tidak akan diperhitungkan sebagai komisi',\r\n 'salesCommission.invalid_format_commission_amount': 'Jumlah Komisi format tidak valid.',\r\n 'salesCommission.commission_is_only_for_transactions_that_have_been_paid':\r\n 'Komisi hanya untuk transaksi yang telah dibayar',\r\n 'salesCommission.commission_is_only_for_transactions_that_have_been_paid_desc':\r\n 'Tagihan yang belum dibayar tidak diperhitungkan sebagai komisi.',\r\n 'salesCommission.commission_type_id_help_text': `\r\n Jika berdasarkan \"{transactionsPerMonth}\", maka komisi dihitung berdasarkan jumlah transaksi penjualan tiap bulannya. Misalnya salah seorang sales membuat 5 invoice. Maka sales tersebut terhitung telah melakukan 5 transaksi.\r\n
\r\n
\r\n Jika berdasarkan \"{salesAmountPerMonth}\", maka komisi dihitung berdasarkan nominal uang penjualan dalam rupiah. Misalnya seorang sales membuat 5 invoice, dengan total tagihan keseluruhan Rp 5 juta. Maka sales tersebut terhitung telah melakukan nominal penjualan Rp 5 jt.\r\n
\r\n
\r\n Jika berdasarkan \"{numberOfProductsSoldPerMonth}\", maka komisi dihitung berdasarkan jumlah kuantitas produk yang terjual. Misalnya seorang sales membuat 5 invoice, dimana masing-masing invoice menjual 100pcs produk. Maka sales tersebut terhitung telah menjualn sebanyak 500pcs produk.\r\n `,\r\n\r\n 'priceRule.price_rule': 'Aturan Harga',\r\n 'priceRule.rule_name': 'Nama Aturan',\r\n 'priceRule.rule_name_required': 'Nama aturan wajib diisi',\r\n 'priceRule.dicsount': 'Diskon',\r\n 'priceRule.discount_required': 'Diskon wajib diisi',\r\n 'priceRule.min_buy': 'Berlaku jika pelanggan membeli dengan:',\r\n 'priceRule.min_qty': 'Minimal Kuantitas',\r\n 'priceRule.min_qty_required': 'Minimal pembelian wajib diisi',\r\n 'priceRule.min_qty_tooltip':\r\n 'Berapa jumlah minimal produk yang dibeli pelanggan agar diskon berlaku?',\r\n 'priceRule.min_amount': 'Minimal Pembelian',\r\n 'priceRule.min_amount_tooltip':\r\n 'Berapa rupiah minimal pembelian pelanggan agar diskon berlaku? ' +\r\n 'Dihitung dari total pembelian seluruh produk dalam satu invoice',\r\n 'priceRule.effective_date': 'Tanggal Berlaku',\r\n 'priceRule.forever': 'Selamanya',\r\n 'priceRule.date': 'Tanggal',\r\n 'priceRule.date_start': 'Tanggal Mulai',\r\n 'priceRule.date_end': 'Tanggal Selesai',\r\n 'priceRule.date_is_required': 'Tanggal wajib diisi',\r\n 'priceRule.until': 'sampai',\r\n 'priceRule.applies_to_the_following_customers': 'Berlaku Pada Pelanggan Berikut',\r\n 'priceRule.customer': 'Pelanggan',\r\n 'priceRule.all_customer': 'Semua Pelanggan',\r\n 'priceRule.customer_group': 'Grup Pelanggan',\r\n 'priceRule.customer_groups_that_will_get_discount': 'Grup pelanggan yang akan mendapatkan diskon',\r\n 'priceRule.add_group': 'Tambah grup',\r\n 'priceRule.select_group': 'Pilih grup',\r\n 'priceRule.per_customer': 'Per Pelanggan',\r\n 'priceRule.customers_that_will_get_discount': 'Pelanggan yang akan mendapatkan diskon',\r\n 'priceRule.add_customer': 'Tambah pelanggan',\r\n 'priceRule.name': 'Nama',\r\n 'priceRule.company': 'Perusahaan',\r\n 'priceRule.applies_to_the_following_products': 'Berlaku Pada Produk Berikut',\r\n 'priceRule.product': 'Produk',\r\n 'priceRule.all_product': 'Semua Produk',\r\n 'priceRule.product_category': 'Kategori Produk',\r\n 'priceRule.discounted_product_category': 'Kategori produk yang didiskon',\r\n 'priceRule.add_category': 'Tambah kategori',\r\n 'priceRule.per_product': 'Per Produk',\r\n 'priceRule.discounted_product': 'Produk yang didiskon',\r\n 'priceRule.add_product': 'Tambah produk',\r\n 'priceRule.status': 'Status',\r\n 'priceRule.active': 'Aktif',\r\n 'priceRule.inactive': 'Tidak Aktif',\r\n 'priceRule.select_price_rule': 'Pilih aturan harga',\r\n 'priceRule.to_use_the_pricing_rules_please_first_activate_the_sales_discount_option':\r\n 'Untuk menggunakan aturan harga, silakan aktifkan terlebih dahulu opsi Diskon Penjualan dari menu Pengaturan Alur Bisnis.',\r\n\r\n 'financeProduct.cannot_delete_current_photo': 'Tidak bisa menghapus foto ini.',\r\n 'financeProduct.search_in': 'Cari di',\r\n 'financeProduct.available': 'Tersedia',\r\n 'financeProduct.almost_empty': 'Hampir Habis',\r\n 'financeProduct.empty': 'Habis',\r\n 'financeProduct.stock_per_category': 'Stok per Kategori',\r\n 'financeProduct.warehouse_location': 'Lokasi Gudang',\r\n 'financeProduct.total_stock': 'Total Stok',\r\n 'financeProduct.total_avg_base_price': 'Total HPP',\r\n 'financeProduct.total_sales': 'Total Penjualan',\r\n 'financeProduct.total_purchase': 'Total Pembelian',\r\n 'financeProduct.detail_product': 'Detil Produk',\r\n 'financeProduct.code_sku_tooltip':\r\n 'Kode SKU (Stock Keeping Unit) adalah kode unik tiap produk. Kode akan tergenerate secara otomatis, atau Anda bisa juga mengubahnya.',\r\n 'financeProduct.row': 'Baris',\r\n 'financeProduct.conversion_detail_title': 'Konversi Produk {number}',\r\n 'financeProduct.category': 'Kategori',\r\n 'financeProduct.avg_base_price': 'HPP',\r\n 'financeProduct.all_stock': 'Semua stok',\r\n 'financeProduct.all_products': 'Semua produk',\r\n 'financeProduct.product_name': 'Nama Produk',\r\n 'financeProduct.code_sku': 'Kode/SKU',\r\n 'financeProduct.cost_price': 'Harga Beli',\r\n 'financeProduct.sale_price': 'Harga Jual',\r\n 'financeProduct.quantity': 'Kuantitas',\r\n 'financeProduct.products_and_services': 'Produk dan Layanan',\r\n 'financeProduct.add_category': 'Tambah Kategori',\r\n 'financeProduct.name_category_required': 'Nama kategori wajib diisi',\r\n 'financeProduct.name_category_must_be_at_least_2_characters': 'nama kategori minimal 2 karakter',\r\n 'financeProduct.edit_category': 'Ubah Kategori',\r\n 'financeProduct.edit_product': 'Ubah Produk',\r\n 'financeProduct.image': 'Gambar',\r\n 'financeProduct.choose_category': 'Pilih Kategori',\r\n 'financeProduct.choose_category_required': 'Silakan pilih kategori',\r\n 'financeProduct.product_name_required': 'Nama produk wajib diisi',\r\n 'financeProduct.product_name_must_be_at_least_2_characters': 'Nama produk minimal 2 karakter',\r\n 'financeProduct.product_name_max_150_characters': 'Nama produk maksimal 150 karakter',\r\n 'financeProduct.code_sku_must_be_at_least_2_characters': 'Kode/SKU minimal 2 karakter',\r\n 'financeProduct.i_purchase_this_item': 'Saya membeli item ini',\r\n 'financeProduct.price': 'Harga',\r\n 'financeProduct.price_required': 'Harga wajib diisi',\r\n 'financeProduct.extra_price_must_greather_than_ziro': 'Harga harus lebih besar dari 0.',\r\n 'financeProduct.account': 'Akun',\r\n 'financeProduct.select_account': 'Pilih Akun',\r\n 'financeProduct.tax': 'Pajak',\r\n 'financeProduct.choose_tax_required': 'Pajak harus diisi',\r\n 'financeProduct.select_tax_rate': 'Pilih Pajak',\r\n 'financeProduct.i_sell_this_item': 'Saya menjual item ini',\r\n 'financeProduct.i_track_this_item': 'Saya melacak inventori item ini',\r\n 'financeProduct.this_treats_your_item_as_a_tracked_inventory':\r\n 'Ini akan mencatat stok item Anda.',\r\n 'financeProduct.date': 'Tanggal',\r\n 'financeProduct.add_adjustment': 'Tambah Penyesuaian',\r\n 'financeProduct.quantity_on_hand': 'Stok di tangan',\r\n 'financeProduct.total_value': 'Nilai Total',\r\n 'financeProduct.purchase': 'Pembelian',\r\n 'financeProduct.tax_rate': 'Pajak',\r\n 'financeProduct.sales': 'Penjualan',\r\n 'financeProduct.inventory': 'Inventori',\r\n 'financeProduct.inventory_asset_account': 'Akun Aset Inventori',\r\n 'financeProduct.total': 'Total',\r\n 'financeProduct.decrease_quantity': 'Kurangi stok',\r\n 'financeProduct.revolution': 'Revolusi',\r\n 'financeProduct.new_adjustment': 'Penyesuaian Stok',\r\n 'financeProduct.adjustment_type': 'Tipe Penyesuaian',\r\n 'financeProduct.adjustment_type_required': 'tipe penyesuaian wajib diisi',\r\n 'financeProduct.select_adjustment_type': 'Pilih Penyesuaian Tipe',\r\n 'financeProduct.date_required': 'tanggal wajib diisi',\r\n 'financeProduct.current_qty': 'Jumlah stok sekarang',\r\n 'financeProduct.qty_required': 'jumlah stok wajib diisi',\r\n 'financeProduct.avg_cost': 'Harga rata-rata',\r\n 'financeProduct.avg_cost_required': 'harga rata-rata wajib diisi',\r\n 'financeProduct.total_value_required': 'nilai total wajib diisi',\r\n 'financeProduct.adjustment': 'Penyesuaian',\r\n 'financeProduct.adjustment_required': 'penyesuaian wajib diisi',\r\n 'financeProduct.cost_price_required': 'harga wajib diisi',\r\n 'financeProduct.new_qty_on_hand': 'Stok ditangan baru',\r\n 'financeProduct.new_qty_on_hand_required': 'stok ditangan baru wajib diisi',\r\n 'financeProduct.choose_account_required': 'akun wajib diisi',\r\n 'financeProduct.note': 'Catatan',\r\n 'financeProduct.note_required': 'catatan wajib diisi',\r\n 'financePurchaseOrders.detail_purchaseorder': 'Detil Pesanan Pembelian',\r\n 'financeProduct.error_cannot_add': 'Tidak dapat menambahkan produk.',\r\n 'financeProduct.error_cannot_export': 'Tidak dapat ekspor produk',\r\n 'financeProduct.error_cannot_add_categorie': 'Tidak dapat menambahkan kategori produk.',\r\n 'financeProduct.recent_transactions': 'Transaksi Terkini',\r\n\r\n 'financeProduct.manufacture': 'Manufaktur',\r\n 'financeProduct.package': 'Paket',\r\n 'financeProduct.conversion': 'Konversi',\r\n 'financeProduct.conversion_description': 'Keterangan',\r\n 'financeProduct.follow_these_steps_to_import_your_products':\r\n 'Ikuti langkah berikut untuk mengimport produk-produkmu',\r\n 'financeProduct.1_download_your_products_template_file': '1. Download file template produk',\r\n 'financeProduct.start_by_downloading_our_products_csv':\r\n 'Mulai dengan mendownload file template produk dalam format Excel. Format ini mempunyai format header yang dibutuhkankledo untuk mengimport detail produkmu.',\r\n 'financeProduct.download_template_file': 'Download File Template',\r\n 'financeProduct.download_template_data_example_file': 'Download File Contoh Data',\r\n 'financeProduct.import': 'Import Produk',\r\n 'financeProduct.2_copy_your_products_into_the_template': '2. Salin produkmu ke dalam template',\r\n 'financeProduct.using_excel_or_another_spreadsheet_editor':\r\n 'Menggunakan Excel atau program spreadsheet lainnya, masukkan detail produkmu ke dalam file template. Pastikan detail produk sesuai dengan header kolom yang ada di template.',\r\n 'financeProduct.important': 'PENTING',\r\n 'financeProduct.3_upload_the_updated_template_file_here':\r\n '3. Upload file template yang telah diupdate di sini',\r\n 'financeProduct.upload': 'Upload',\r\n 'financeProduct.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Simpan template yang sudah diupdate',\r\n 'financeProduct.a_maximum_of_1000_products_can_be_imported_at_a_time':\r\n 'Maksimum 200 produk dapat diimpot dalam satu waktu.',\r\n 'financeProduct.dont_change_the_column_heading_in_the_template_file':\r\n 'Jangan mengubah header kolom dalam file template. Ini dibutuhkan Kledo untuk proses import pada langkah berikutnya. Kamu juga dapat menggunakan file yang sudah diimport untuk mengupdate semua produk-produkmu, menghemat waktu dan tenaga daripada mengupdate produk satu persatu melalui browser. Proses import akan menggunakan Kode/SKU produk untuk menentukan apakah suatu produk sudah ada di Kledo atau belum, jika produk sudah ada maka produk akan diupdate, sedangkan jika produk belum ada maka akan dibuat produk baru. Produk tidak akan dihapus, sehingga kamu bisa dengan aman mengupdate sebagian produkmu saja tanpa khawatir akan kehilangan data diproduk yang lain.',\r\n 'financeProduct.you_can_only_upload_csv_file': 'Anda hanya dapat mengunggah file csv atau excel',\r\n 'financeProduct.upload_file': 'Upload File',\r\n 'financeProduct.check_the_imported_data': 'Cek Data',\r\n 'financeProduct.please_check_the_imported_data': 'Silakan cek data yang diimport',\r\n 'financeProduct.import_product_done': 'Import Berhasil',\r\n 'financeProduct.error_upload_file': 'Gagal mengunggah file.',\r\n 'financeProduct.file_not_found': 'File tidak ditemukan.',\r\n 'financeProduct.if_you_are_happy_to_continue_with_the_import_please_click_the_import_now_button': `Jika data yang kamu upload sudah sesuai dengan yang diinginkan, silakan klik tombol \"Import Sekarang\".`,\r\n 'financeProduct.valid': 'Valid',\r\n 'financeProduct.invalid': 'Invalid',\r\n 'financeProduct.import_now': 'Import Sekarang',\r\n 'financeProduct.status': 'Status',\r\n 'financeProduct.name': 'Nama',\r\n 'financeProduct.purchase_price': 'Harga Beli',\r\n 'financeProduct.purchase_account': 'Akun Pembelian',\r\n 'financeProduct.purchase_tax': 'Pajak Pembelian',\r\n 'financeProduct.sell_price': 'Harga Jual',\r\n 'financeProduct.sell_account': 'Akun Penjualan',\r\n 'financeProduct.sell_tax': 'Pajak Penjualan',\r\n 'financeProduct.track_account': 'Akun Pelacakan',\r\n 'financeProduct.product_bundle': 'Produk Bundel',\r\n 'financeProduct.product_bundle_qty': 'Kuantitas Produk Bundel',\r\n 'financeProduct.product_bundle_account': 'Akun Produk Bundel',\r\n 'financeProduct.product_bundle_account_cost': 'Harga Akun Produk Bundel',\r\n 'financeProduct.account_cost': 'Harga Akun',\r\n 'financeProduct.inventory_account': 'Akun Penyimpanan',\r\n 'financeProduct.products_successfully_imported': '{rowCount} produk berhasil diimport.',\r\n 'financeProduct.view_detail': 'Tampilkan detil',\r\n 'financeProduct.import_another_file': 'Import file lain',\r\n 'financeProduct.go_to_product_list': 'Ke halaman daftar produk',\r\n 'financeProduct.success': 'Berhasil',\r\n 'financeProduct.failed': 'Gagal',\r\n 'financeProduct.error_cannot_import': 'Gagal import.',\r\n 'financeProduct.error': 'Error',\r\n 'financeProduct.please_input_the_code_sku': 'Kode/SKU wajib diisi.',\r\n 'financeProduct.code_sku_maximal_150_characters': 'Kode/SKU maksimal 150 karakter.',\r\n 'financeProduct.please_choose_at_least_a_product_action':\r\n 'Silakan pilih minimal satu aksi dari product (Beli/Jual/Inventori).',\r\n 'financeProduct.name_category_already_exist':\r\n 'Nama kategori sudah digunakan, silakan pilih nama kategori yang lain',\r\n 'financeProduct.please_choose_this_action':\r\n 'Beli produk harus aktif jika lacak inventori diaktifkan!',\r\n 'financeProduct.please_choose_the_unit': 'Silakan pilih satuan.',\r\n 'financeProduct.show_qty_per_warehouse': 'Tampilkan stok per gudang',\r\n 'financeProduct.select_category': 'Pilih kategori',\r\n 'financeProduct.qty': 'Qty',\r\n 'financeProduct.min_qty': 'Kuantitas Minimal',\r\n 'financeProduct.min_qty_must_less': 'Kuantitas harus lebih kecil dari kuantitas selanjutnya',\r\n 'financeProduct.min_qty_must_greater': 'Kuantitas harus lebih besar dari kuantitas sebelumnya',\r\n 'financeProduct.wholesale_price': 'Harga Grosir',\r\n 'financeProduct.wholesale_qty': 'Kuantitas Grosir',\r\n 'financeProduct.show_wholesale_price': 'Tampilkan Harga Grosir',\r\n 'financeProduct.hide_wholesale_price': 'Sembunyikan Harga Grosir',\r\n 'financeProduct.warehouses': 'Gudang',\r\n 'financeProduct.warehouse': 'Gudang',\r\n 'financeProduct.transaction': 'Transaksi',\r\n 'financeProduct.description': 'Deskripsi',\r\n 'financeProduct.type': 'Jenis',\r\n 'financeProduct.stock_movement': 'Pergerakan Stok',\r\n 'financeProduct.warehouse_movement': 'Pergerakan Gudang',\r\n 'financeProduct.stock': 'Stok',\r\n 'financeProduct.select_stock': 'Pilih Stok',\r\n 'financeProduct.error_load_stock': 'Gagal load stok.',\r\n 'financeProduct.show_accounts_and_taxes_setting': 'Tampilkan pengaturan akun dan pajak',\r\n 'financeProduct.hide_accounts_and_taxes_setting': 'Sembunyikan pengaturan akun dan pajak',\r\n 'financeProduct.categories': 'Kategori',\r\n 'financeProduct.error_cannot_move': 'Tidak dapat memindah kategori.',\r\n 'financeProduct.please_select_a_category_to_delete':\r\n 'Silahkan pilih salah satu kategori untuk menghapus.',\r\n 'financeProduct.delete_a_product_category': 'Hapus Kategori Produk',\r\n 'financeProduct.error_cannot_delete_category': 'Tidak dapat menghapus kategori produk.',\r\n 'financeProduct.error_cannot_update_category': 'Tidak dapat mengubah kategori produk.',\r\n 'financeProduct.error_cannot_update': 'Tidak dapat mengubah produk.',\r\n 'financeProduct.error_cannot_load_can_be_deleted_category':\r\n 'Tidak dapat mengambil data kategori produk.',\r\n 'financeProduct.only_category_that_not_assigned_in_product_could_be_deleted':\r\n 'Catatan: Hanya kategori yang belum mempunyai produk yang dapat dihapus.',\r\n 'financeProduct.reference': 'Reference',\r\n 'financeProduct.error_load_product': 'Tidak dapat menampilkan data produk.',\r\n 'financeProduct.add_product': 'Tambah {title}',\r\n 'financeProduct.duplicate_product_package': 'Duplikat {title} Paket',\r\n 'financeProduct.duplicate_product_manufacture': 'Duplikat {title} Manufaktur',\r\n 'financeProduct.add_product_package': 'Tambah {title} Paket',\r\n 'financeProduct.add_product_manufacture': 'Tambah {title} Manufaktur',\r\n 'financeProduct.edit_product_package': 'Ubah {title} Paket',\r\n 'financeProduct.edit_product_manufacture': 'Ubah {title} Manufaktur',\r\n 'financeProduct.package_product_items': 'Paket produk terdiri dari',\r\n 'financeProduct.manufacture_product_items': 'Produk manufaktur terdiri dari',\r\n 'financeProduct.error_load_product_detail':\r\n 'Terjadi masalah di sistem saat mengambil data detail produk.',\r\n 'financeProduct.cost_of_production': 'Biaya produksi terdiri dari',\r\n 'financeProduct.product_conversion': 'Konversi Produk',\r\n 'financeProduct.total_cost': 'Biaya total',\r\n 'financeProduct.total_cost_conversion': 'Biaya total konversi',\r\n 'financeProduct.cost_per_unit': 'Biaya per unit',\r\n 'financeProduct.error_cannot_conversion_product':\r\n 'Terjadi masalah server saat mengkonversi produk',\r\n 'financeProduct.conversion_title': 'Konversi {title} {name}',\r\n 'financeProduct.amount': 'Jumlah',\r\n 'financeProduct.conversion_date': 'Tanggal Konversi',\r\n 'financeProduct.error_load_conversion_product_detail':\r\n 'Terjadi masalah di server saat mengambil konversi produk',\r\n 'financeProduct.error_cannot_delete_conversion_product':\r\n 'Terjadi masalah di server saat menghapus konversi produk',\r\n 'financeProduct.multiplier': 'Pengali',\r\n 'financeProduct.please_input_the_multiplier': 'Silahkan isikan pengali',\r\n 'financeProduct.per_pcs': 'Per Pcs',\r\n 'financeProduct.unit_conversion': 'Konversi Satuan',\r\n 'financeProduct.unit': 'Satuan',\r\n 'financeProduct.base_unit': 'Satuan Dasar',\r\n 'financeProduct.add_unit_conversion': 'Tambah konversi satuan',\r\n 'financeProduct.edit_unit_conversion': 'Ubah konversi satuan',\r\n 'financeProduct.please_input_unit': 'Silakan masukkan satuan',\r\n 'financeProduct.please_input_unit_conv': 'Silakan masukkan konversi satuan',\r\n 'financeProduct.unit_cannot_same': 'Satuan tidak boleh sama',\r\n 'financeProduct.unit_cannot_same_as_conversion': 'Satuan tidak boleh sama dengan konversi satuan',\r\n 'financeProduct.cannot_edit_unit_conversion': 'Tidak dapat mengubah konversi satuan',\r\n 'financeProduct.mass_delete_info':\r\n '**Produk yang telah mempunyai transaksi tidak dapat dihapus, hanya bisa diarsipkan.',\r\n 'financeProduct.archive': 'Arsipkan',\r\n 'financeProduct.show_archive': 'Tampilkan Arsip',\r\n 'financeProduct.unarchive': 'Batalkan Arsip',\r\n 'financeProduct.archived': 'Diarsipkan',\r\n 'financeProduct.without_archive': 'Tanpa arsip',\r\n 'financeProduct.with_archive': 'Dengan arsip',\r\n 'financeProduct.archive_only': 'Arsip saja',\r\n 'financeProduct.are_you_sure_to_archive': 'Apakah Anda yakin untuk mengarsipkan produk ini?',\r\n 'financeProduct.are_you_sure_to_unarchive': 'Apakah Anda yakin untuk batalkan arsip produk ini?',\r\n 'financeProduct.future_transactions': 'Transaksi yang akan datang ',\r\n 'financeProduct.all_transactions': 'Semua transaksi',\r\n 'financeProduct.current_transaction_will_not_be_modified':\r\n 'Tidak akan mempengaruhi transaksi yang sudah dibuat.',\r\n 'financeProduct.current_transaction_and_future_will_be_modified':\r\n 'Akan mempengaruhi jurnal entri dari transaksi yang sudah dibuat.',\r\n 'financeProduct.purchase_account_cannot_be_modified_for_future_transactions':\r\n 'Akun pembelian tidak dapat diubah pada transaksi yang akan datang, karena produk ini telah mempunyai transaksi sebelumnya.',\r\n 'financeProduct.purchase_account_cannot_be_modified_for_all_transactions':\r\n 'Akun pembelian tidak dapat diubah untuk semua transaksi, karena ada transaksi pada produk ini sebelum tanggal penguncian, atau tanggal tutup buku.',\r\n 'financeProduct.sell_account_cannot_be_modified': 'Akun penjualan tidak dapat diubah.',\r\n 'financeProduct.sell_account_cannot_be_modified_for_all_transactions':\r\n 'Akun penjualan tidak dapat diubah untuk semua transaksi, karena ada transaksi pada produk ini sebelum tanggal penguncian, atau tanggal tutup buku.',\r\n 'financeProduct.track_account_cannot_be_modified':\r\n 'Akun persediaan tidak dapat diubah karena ada transaksi pada produk ini sebelum tanggal penguncian, atau tanggal tutup buku.',\r\n 'financeProduct.please_choose_account_update_past':\r\n 'Pengaturan edit akun yang akan datang belum dipilih!',\r\n 'financeProduct.same_as_business_flow': 'Sesuai pengaturan alur bisnis',\r\n 'financeProduct.please_input_buffer_qty': 'Silakan masukkan jumlah stok minimal',\r\n 'financeProduct.data_is_being_processed': 'Data sedang diproses',\r\n\r\n 'financePurchaseInvoices.message': 'Pesan',\r\n 'financePurchaseInvoices.customer': 'Pelanggan',\r\n 'financePurchaseInvoices.add_purchaseInvoice': 'Tambah Tagihan Pembelian',\r\n 'financePurchaseInvoices.financePurchaseInvoices': 'Tagihan Pembelian',\r\n 'financePurchaseInvoices.successfully_added': 'berhasil ditambah.',\r\n 'financePurchaseInvoices.error_cannot_print_pdf': 'Tidak dapat membuat pdf tagihan pembelian.',\r\n\r\n 'financePurchaseInvoices.error_cannot_add': 'Tidak dapat menambah tagihan pembelian.',\r\n 'financePurchaseInvoices.error_cannot_update': 'Tidak dapat mengubah tagihan pembelian.',\r\n 'financePurchaseInvoices.error_cannot_move': 'Tidak dapat memindah tagihan pembelian.',\r\n 'financePurchaseInvoices.error_cannot_change_status':\r\n 'Tidak dapat mengubah status tagihan pembelian.',\r\n 'financePurchaseInvoices.edit_purchaseInvoice': 'Ubah Tagihan Pembelian',\r\n 'financePurchaseInvoices.max_characters': 'Maks {value}.',\r\n 'financePurchaseInvoices.min_characters': 'Min {value} karakter.',\r\n 'financePurchaseInvoices.only_number_allowed': 'Hanya angka yang diperkenankan.',\r\n 'financePurchaseInvoices.description': 'Deskripsi',\r\n 'financePurchaseInvoices.tax': 'Pajak',\r\n 'financePurchaseInvoices.select_tax': 'Pilih pajak',\r\n 'financePurchaseInvoices.please_select_a_contact': 'Silakan pilih kontak',\r\n 'financePurchaseInvoices.select_contact': 'Pilih kontak',\r\n 'financePurchaseInvoices.add_contact': 'Tambah kontak',\r\n 'financePurchaseInvoices.all_contacts': 'Semua kontak',\r\n 'financePurchaseInvoices.transaction_date': 'Tgl Transaksi',\r\n 'financePurchaseInvoices.please_select_transaction_date': 'Silakan pilih tanggal transaksi',\r\n 'financePurchaseInvoices.due_date': 'Tanggal Jatuh Tempo',\r\n 'financePurchaseInvoices.please_select_due_date': 'Silakan pilih tanggal jatuh tempo',\r\n 'financePurchaseInvoices.term': 'Termin',\r\n 'financePurchaseInvoices.select_term': 'Pilih termin',\r\n 'financePurchaseInvoices.add_term': 'Tambah termin',\r\n 'financePurchaseInvoices.price_include_tax': 'Harga termasuk pajak',\r\n 'financePurchaseInvoices.add_more': 'Tambah baris',\r\n 'financePurchaseInvoices.number': 'Nomor',\r\n 'financePurchaseInvoices.please_input_the_number': 'Silakan isikan nomor.',\r\n 'financePurchaseInvoices.memo': 'Reference',\r\n 'financePurchaseInvoices.date': 'Tanggal',\r\n 'financePurchaseInvoices.status': 'Status',\r\n 'financePurchaseInvoices.balance_due': 'Sisa Tagihan',\r\n 'financePurchaseInvoices.total': 'Total',\r\n 'financePurchaseInvoices.please_select_a_term': 'Silakan pilih termin.',\r\n 'financePurchaseInvoices.search_by_memo': 'Cari',\r\n 'financePurchaseInvoices.the_due_date_max_higger_than_transaction_date':\r\n 'Tanggal jatuh tempo harus sama atau setelah tanggal transaksi',\r\n 'financePurchaseInvoices.the_payment_date_max_higger_than_transaction_date':\r\n 'Tanggal pembayaran harus sama atau setelah tanggal transaksi',\r\n 'financePurchaseInvoices.detail_title': 'Tagihan Pembelian {number}',\r\n 'financePurchaseInvoices.vendor': 'Vendor',\r\n 'financePurchaseInvoices.reference': 'Reference',\r\n 'financePurchaseInvoices.product': 'Produk',\r\n 'financePurchaseInvoices.qty': 'Kuantitas',\r\n 'financePurchaseInvoices.price': 'Harga',\r\n 'financePurchaseInvoices.add_product': 'Tambah Produk',\r\n 'financePurchaseInvoices.select_product': 'Pilih produk',\r\n 'financePurchaseInvoices.attachments': 'Attachment',\r\n 'financePurchaseInvoices.save_&_approve': 'Simpan & setujui',\r\n 'financePurchaseInvoices.save_as_draft': 'Simpan sbg draft',\r\n 'financePurchaseInvoices.save_&_submit_for_approval': 'Simpan & ajukan approval',\r\n 'financePurchaseInvoices.please_select_a_product': 'Silakan pilih produk.',\r\n 'financePurchaseInvoices.please_input_the_qty': 'Silakan masukkan kuantitas.',\r\n 'financePurchaseInvoices.please_input_the_price': 'Silakan masukkan harga.',\r\n 'financePurchaseInvoices.please_input_the_amount': 'Silakan masukkan total.',\r\n 'financePurchaseInvoices.approve': 'Setujui',\r\n 'financePurchaseInvoices.are_you_sure_to_approve': 'Apakah Anda yakin untuk menyutujui?',\r\n 'financePurchaseInvoices.submit_for_approval': 'Ajukan approval',\r\n 'financePurchaseInvoices.are_you_sure_to_submit_for_approval':\r\n 'Apakah Anda yakin untuk mengajukan approval?',\r\n 'financePurchaseInvoices.create_invoice': 'Buat Tagihan',\r\n 'financePurchaseInvoices.amount_paid': 'Total Dibayar',\r\n 'financePurchaseInvoices.paid_from': 'Dibayar Dari',\r\n 'financePurchaseInvoices.add_payment': 'Tambah Pembayaran',\r\n 'financePurchaseInvoices.select_paid_from': 'Pilih dibayar dari',\r\n 'financePurchaseInvoices.please_select_a_paid_from': 'Silakan pilih dibayar dari.',\r\n 'financePurchaseInvoices.error_cannot_add_payment': 'Tidak bisa menambah pembayaran.',\r\n 'financePurchaseInvoices.payment': 'Pembayaran',\r\n 'financePurchaseInvoices.detail_purchaseInvoice': 'Detil Tagihan Pembelian',\r\n 'financePurchaseInvoices.number_po': 'Nomor PO',\r\n 'financePurchaseInvoices.amount': 'Jumlah',\r\n 'financePurchaseInvoices.paid_to': 'Dibayar Ke',\r\n 'financePurchaseInvoices.select_paid_to': 'Pilih dibayar ke',\r\n 'financePurchaseInvoices.please_select_a_paid_to': 'Silakan pilih dibayar ke.',\r\n\r\n 'financePurchaseInvoices.follow_these_steps_to_import_your_purchase_invoices':\r\n 'Ikuti langkah berikut untuk mengimport tagihan pembelianmu',\r\n 'financePurchaseInvoices.1_download_your_purchase_invoices_template_file':\r\n '1. Download file template tagihan pembelian',\r\n 'financePurchaseInvoices.start_by_downloading_our_purchase_invoices_csv':\r\n 'Mulai dengan mengunduh file template Excel. File ini mempunyai kolom header yang yang dibutuhkan Kledo untuk mengimport detail dari tagihan pembelian-tagihan pembelianmu.',\r\n 'financePurchaseInvoices.download_template_file': 'Download File Template',\r\n 'financePurchaseInvoices.download_template_data_example_file': 'Download File Contoh',\r\n 'financePurchaseInvoices.import': 'Import Tagihan pembelian',\r\n 'financePurchaseInvoices.2_copy_your_purchase_invoices_into_the_template':\r\n '2. Salin detail tagihan pembelian ke dalam template',\r\n 'financePurchaseInvoices.using_excel_or_another_spreadsheet_editor':\r\n 'Menggunakan Excel atau software spreadsheeet lainnya, masukkan detail tagihan pembelian ke dalam file template dari Kledo. Pastikan detail tagihan pembelian sesuai dengan kolom header yang ada di template.',\r\n 'financePurchaseInvoices.important': 'PENTING',\r\n 'financePurchaseInvoices.3_upload_the_updated_template_file_here':\r\n '3. Upload template yang sudah diupdate ke sini',\r\n 'financePurchaseInvoices.upload': 'Upload',\r\n 'financePurchaseInvoices.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Simpan file template yang sudah diupdate',\r\n 'financePurchaseInvoices.a_maximum_of_500_purchase_invoices_can_be_imported_at_a_time':\r\n 'Maksimal 1.000 tagihan pembelian dapat diimport dalam satu waktu.',\r\n 'financePurchaseInvoices.contact_name_that_not_exist_will_be_inserted_as_a_new_contact':\r\n 'Nama kontak yang yang belum ada di Kledo akan dimasukkan sebagai kontak baru.',\r\n 'financePurchaseInvoices.import_actions_only_insert_new_purchase_invoices_cannot_update_or_delete':\r\n 'Saat meng-import, Kledo hanya akan memasukkan data baru, tidak ada data yang dihapus atau diupdate.',\r\n 'financePurchaseInvoices.dont_change_the_column_heading_in_the_template_file':\r\n 'Jangan mengubah header kolom di dalam template. Ini dibutuhkan agar import dapat berjalan.',\r\n 'financePurchaseInvoices.you_can_only_upload_csv_file':\r\n 'Anda hanya dapat mengunggah file csv atau excel',\r\n 'financePurchaseInvoices.upload_file': 'Upload File',\r\n 'financePurchaseInvoices.check_the_imported_data': 'Cek Data',\r\n 'financePurchaseInvoices.please_check_the_imported_data': 'Silakan cek data yang diimport',\r\n 'financePurchaseInvoices.import_purchase_invoices_done': 'Import Berhasil',\r\n 'financePurchaseInvoices.error_upload_file': 'Gagal mengunggah file.',\r\n 'financePurchaseInvoices.file_not_found': 'File tidak ditemukan.',\r\n 'financePurchaseInvoices.if_you_are_happy_to_continue_with_the_import_please_click_the_import_now_button': `Jika data yang diimport sesuai dengan yang kamu harapkan, silakan klik tombol \"Import Sekarang\".`,\r\n 'financePurchaseInvoices.valid': 'Valid',\r\n 'financePurchaseInvoices.invalid': 'Invalid',\r\n 'financePurchaseInvoices.import_now': 'Import Sekarang',\r\n 'financePurchaseInvoices.contact_name': 'Nama Kontak',\r\n 'financePurchaseInvoices.email': 'Email',\r\n 'financePurchaseInvoices.address': 'Alamat',\r\n 'financePurchaseInvoices.phone': 'Phone',\r\n 'financePurchaseInvoices.invoice_date': 'Tanggal Tagihan',\r\n 'financePurchaseInvoices.invoice_number': 'Nomor Invoice',\r\n 'financePurchaseInvoices.product_name': 'Nama Produk',\r\n 'financePurchaseInvoices.code_sku': 'Kode/SKU',\r\n 'financePurchaseInvoices.tax_inclusive': 'Termasuk Pajak',\r\n 'financePurchaseInvoices.paid': 'Lunas',\r\n 'financePurchaseInvoices.paid_account': 'Akun Pembayaran',\r\n 'financePurchaseInvoices.copy_link': 'Salin Link Faktur Pembelian',\r\n 'financePurchaseInvoices.send_email': 'Kirim Email Faktur Pembelian',\r\n 'financeInvoices.on': 'pada',\r\n 'financeInvoices.last_printed_by': 'Terakhir dicetak oleh',\r\n 'financeInvoices.last_modified_by': 'Terakhir diubah oleh',\r\n 'financeInvoices.preorder_number': 'Nomor PO',\r\n 'financeInvoices.total_before_tax': 'Total Sebelum Pajak',\r\n 'financeInvoices.printStatus': 'Status Print',\r\n 'financeInvoices.import_new_invoice': 'Import Tagihan Baru',\r\n 'financeInvoices.import_invoice_status': 'Import Status Tagihan',\r\n 'financeInvoices.import_recurring_invoice': 'Import Tagihan Berulang',\r\n 'financeInvoices.witholding': 'Pemotongan',\r\n 'financeInvoices.select_holding_from': 'Pilih dipotong dari',\r\n 'financeInvoices.please_select_a_holding_from': 'Silahkan pilih dipotong dari',\r\n 'financeInvoices.print_partial': 'Faktur Per Termin',\r\n 'financeInvoices.print_delivery_label': 'Label Pengiriman',\r\n 'financeInvoices.print_delivery': 'Surat Jalan',\r\n 'financeInvoices.print_payment': 'Rekap Pembayaran',\r\n 'financeInvoices.print_tax': 'Faktur Pajak',\r\n 'financeInvoices.download_word': 'Faktur MsWord',\r\n 'financeInvoices.default_label_term': 'Tagihan Termin I',\r\n 'financeInvoices.here': 'di sini',\r\n 'financeInvoices.please_input_label': 'Silakan masukkan label',\r\n 'financeInvoices.insufficient_stock_confirm':\r\n 'Terdapat produk yang stok nya kurang, Apakah akan tetap membuat tagihan ini ?',\r\n 'financeInvoices.insufficient_stock_warning':\r\n 'Tidak dapat menambah tagihan, karena terdapat produk yang stok nya kurang.',\r\n 'financeInvoices.insufficient_stock': 'Stok tidak mencukupi',\r\n 'financeInvoices.builtin_notes_for_easy_searching':\r\n 'Catatan internal untuk mempermudah pencarian.',\r\n 'financeInvoices.used_to_create_transaction_categories':\r\n 'Digunakan untuk membuat kategori transaksi. Anda juga bisa membuat laporan berdasarkan tag ini.',\r\n 'financeInvoices.the_number_will_be_automatically_generated_by_the_system':\r\n 'Nomor akan otomatis terbuat oleh sistem, tapi Anda juga bisa mengubahnya disini. Anda bisa mengatur format nomor ini {link}.',\r\n 'financeInvoices.amount_before_tax': 'Total Sblm Pajak',\r\n 'financeInvoices.amount_after_discount': 'Total setelah diskon',\r\n\r\n 'financePurchaseInvoices.import_purchase_invoice_status': 'Import Status Tagihan Pembelian',\r\n 'financePurchaseInvoices.inventory_account': 'Akun Penyimpanan',\r\n 'financePurchaseInvoices.purchase_invoices_successfully_imported':\r\n '{rowCount} tagihan pembelian berhasil diimport.',\r\n 'financePurchaseInvoices.view_detail': 'Tampilkan detil',\r\n 'financePurchaseInvoices.import_another_file': 'Import file lain',\r\n 'financePurchaseInvoices.go_to_purchase_invoice_list': 'Ke halaman daftar tagihan pembelian',\r\n 'financePurchaseInvoices.success': 'Berhasil',\r\n 'financePurchaseInvoices.failed': 'Gagal',\r\n 'financePurchaseInvoices.error_cannot_import': 'Gagal import.',\r\n 'financePurchaseInvoices.error': 'Error',\r\n 'financePurchaseInvoices.make_a_payment': 'Kirim pembayaran',\r\n\r\n 'financeQuotes.message': 'Pesan',\r\n 'financeQuotes.error_cannot_print_pdf': 'Tidak dapat membuat pdf penawaran.',\r\n 'financeQuotes.add_quote': 'Tambah Penawaran',\r\n 'financeQuotes.financeQuotes': 'Penawaran',\r\n 'financeQuotes.quote_accepted': 'Penawaran disetujui',\r\n 'financeQuotes.quote_open': 'Penawaran belum selesai',\r\n 'financeQuotes.successfully_added': 'berhasil ditambahkan.',\r\n 'financeQuotes.error_cannot_add': 'Tidak dapat menambah penawaran.',\r\n 'financeQuotes.error_cannot_update': 'Tidak dapat mengubah penawaran.',\r\n 'financeQuotes.error_cannot_move': 'Tidak dapat memindah penawaran.',\r\n 'financeQuotes.error_cannot_change_status': 'Tidak dapat mengubah status penawaran.',\r\n 'financeQuotes.edit_quote': 'Ubah Penawaran',\r\n 'financeQuotes.max_characters': 'Maks {value} karakter.',\r\n 'financeQuotes.min_characters': 'Min {value} karakter.',\r\n 'financeQuotes.only_number_allowed': 'Hanya angka yang diperkenankan.',\r\n 'financeQuotes.description': 'Deskripsi',\r\n 'financeQuotes.tax': 'Pajak',\r\n 'financeQuotes.select_tax': 'Pilih pajak',\r\n 'financeQuotes.amount': 'Total',\r\n 'financeQuotes.please_select_a_contact': 'Silakan pilih kontak',\r\n 'financeQuotes.select_contact': 'Pilih kontak',\r\n 'financeQuotes.add_contact': 'Tambah kontak',\r\n 'financeQuotes.all_contacts': 'Semua kontak',\r\n 'financeQuotes.transaction_date': 'Tgl Transaksi',\r\n 'financeQuotes.please_select_transaction_date': 'Silakan pilih tanggal transaksi',\r\n 'financeQuotes.due_date': 'Kadaluarsa',\r\n 'financeQuotes.please_select_due_date': 'Silakan pilih tanggal kadaluarsa',\r\n 'financeQuotes.term': 'Termin',\r\n 'financeQuotes.select_term': 'Pilih termin',\r\n 'financeQuotes.add_term': 'Tambah termin',\r\n 'financeQuotes.price_include_tax': 'Harga termasuk pajak',\r\n 'financeQuotes.add_more': 'Tambah baris',\r\n 'financeQuotes.number': 'Nomor',\r\n 'financeQuotes.please_input_the_number': 'Silakan isikan nomor.',\r\n 'financeQuotes.memo': 'Reference',\r\n 'financeQuotes.date': 'Tanggal',\r\n 'financeQuotes.status': 'Status',\r\n 'financeQuotes.balance_due': 'Sisa Tagihan',\r\n 'financeQuotes.please_select_a_term': 'Silakan pilih termin.',\r\n 'financeQuotes.search_by_memo': 'Cari',\r\n 'financeQuotes.the_due_date_max_higger_than_transaction_date':\r\n 'Tanggal kadaluarsa harus sama atau setelah tanggal transaksi',\r\n 'financeQuotes.detail_title': 'Penawaran {number}',\r\n 'financeQuotes.customer': 'Pelanggan',\r\n 'financeQuotes.reference': 'Reference',\r\n 'financeQuotes.product': 'Produk',\r\n 'financeQuotes.qty': 'Kuantitas',\r\n 'financeQuotes.price': 'Harga',\r\n 'financeQuotes.add_product': 'Tambah Produk',\r\n 'financeQuotes.select_product': 'Pilih produk',\r\n 'financeQuotes.attachments': 'Attachment',\r\n 'financeQuotes.save_as_draft': 'Simpan sbg draft',\r\n 'financeQuotes.save_as_draft_add_new': 'Simpan sbg draft & Tambah Baru',\r\n 'financeQuotes.save_&_submit_for_approval': 'Simpan & ajukan approval',\r\n 'financeQuotes.please_select_a_product': 'Silakan pilih produk.',\r\n 'financeQuotes.please_input_the_qty': 'Silakan masukkan kuantitas.',\r\n 'financeQuotes.please_input_the_price': 'Silakan masukkan harga.',\r\n 'financeQuotes.please_input_the_amount': 'Silakan masukkan total.',\r\n 'financeQuotes.mark_as_sent': 'Tandai sbg terkirim',\r\n 'financeQuotes.are_you_sure_to_mark_as_sent': 'Apakah Anda yakin menandai sebagai terkirim?',\r\n 'financeQuotes.mark_as_accepted': 'Tandai sbg diterima',\r\n 'financeQuotes.are_you_sure_to_mark_as_accepted': 'Apakah Anda yakin menandai sebagai diterima?',\r\n 'financeQuotes.mark_as_declined': 'Tandai sbg ditolak',\r\n 'financeQuotes.are_you_sure_to_mark_as_declined': 'Apakah Anda yakin menandai sebagai ditolak?',\r\n 'financeQuotes.create_invoice': 'Buat Tagihan',\r\n 'financeQuotes.send': 'Kirim',\r\n 'financeQuotes.send_add_new': 'Kirim & Tambah Baru',\r\n 'financeQuotes.detail_quote': 'Detil Penawaran',\r\n 'financeQuotes.create_order': 'Buat Pemesanan',\r\n\r\n 'financeInvoices.sales': 'Penjualan',\r\n 'financeInvoices.print_receipt': 'Print Kuitansi Tagihan',\r\n 'financeInvoices.download': 'Unduh',\r\n 'financeInvoices.download_sales_report': 'Unduh Laporan Penjualan',\r\n 'financeInvoices.my_order': 'Pesanan Saya',\r\n 'financeInvoices.all': 'Semua',\r\n 'financeInvoices.export': 'Export',\r\n 'financeInvoices.orders': 'Pesanan',\r\n 'financeInvoices.order_review': 'Tinjauan Pesanan',\r\n 'financeInvoices.manage_order': 'Kelola Pesanan',\r\n 'financeInvoices.download_order': 'Unduh Pesanan',\r\n 'financeInvoices.export_all_order': 'Ekspor Semua Pesanan',\r\n 'financeInvoices.delivery_list': 'Daftar Pengiriman',\r\n 'financeInvoices.done': 'Done',\r\n 'financeInvoices.export_invoice': 'Ekspor E-Faktur',\r\n 'financeInvoices.choose_template': 'Pilih Template',\r\n 'financeInvoices.import_with_kledo_template': 'Import dengan format template Excel dari Kledo',\r\n 'financeInvoices.marketplace_connect_sync_automatic_from_marketplace_without_import':\r\n 'Marketplace Connect: Otomatis sinkronisasi data dari marketplace ke Kledo, tanpa perlu import',\r\n 'financeInvoices.import_with_marketplace_template':\r\n 'Import dengan format template Excel dari Marketplace',\r\n 'financeInvoices.export_sales_data_from_tokopedia': '1. Export Data Penjualan dari Tokopedia',\r\n 'financeInvoices.export_sales_data_from_shopee': '1. Export Data Penjualan dari Shopee',\r\n 'financeInvoices.export_sales_data_from_bukalapak': '1. Export Data Penjualan dari Bukalapak',\r\n 'financeInvoices.export_sales_data_from_lazada': '1. Export Data Penjualan dari Lazada',\r\n 'financeInvoices.export_sales_data_from_tiktok': '1. Export Data Penjualan dari Tiktok Shop',\r\n 'financeInvoices.export_sales_data_from_olsera': '1. Export data penjualan dari dashboard Olsera',\r\n 'financeInvoices.export_sales_data_record_shipping_cost_to_bill':\r\n 'catatkan biaya kirim ke tagihan',\r\n 'financeInvoices.upload_excel_from_tokopedia': '2. Upload File Excel dari Tokopedia di sini',\r\n 'financeInvoices.upload_excel_from_shopee': '2. Upload File Excel dari Shopee di sini',\r\n 'financeInvoices.upload_excel_from_bukalapak': '2. Upload File Excel dari Bukalapak di sini',\r\n 'financeInvoices.upload_excel_from_lazada': '2. Upload File Excel dari Lazada di sini',\r\n 'financeInvoices.upload_excel_from_tiktok': '2. Upload File Excel dari Tiktok Shop di sini',\r\n 'financeInvoices.upload_excel_from_olsera': '2. Upload File Excel dari Olsera di sini',\r\n 'financeInvoices.set_import_option': '3. Atur Opsi Import',\r\n 'financeInvoices.1a_tokopedia': 'a. Pada halaman Home, klik tab {sales}',\r\n 'financeInvoices.1b_tokopedia': 'b. Klik tombol {download}',\r\n 'financeInvoices.1c_tokopedia':\r\n 'c. Filter rentang waktu laporan penjualan yang ingin diunduh, lalu klik tombol {download}. Simpan file Excel yang baru saja di unduh.',\r\n 'financeInvoices.1a_shopee':\r\n 'a. Login pada aplikasi shopee seller center, lalu klik menu {myOrder}',\r\n 'financeInvoices.1b_shopee': 'b. Klik tab {all}',\r\n 'financeInvoices.1c_shopee':\r\n 'c. Filter rentang waktu laporan penjualan yang ingin diunduh pada kolom Periode Data, lalu klik tombol {export}. Simpan file Excel yang baru saja di unduh.',\r\n 'financeInvoices.1a_bukalapak': 'a. Pada halaman Home, klik tab {transaction}',\r\n 'financeInvoices.1b_bukalapak': 'b. Klik tombol {downloadTransaction}',\r\n 'financeInvoices.1c_bukalapak':\r\n 'c. Filter rentang waktu dan transaksi laporan penjualan yang ingin di unduh, lalu klik tombol {downloadTransaction}. Simpan file Excel yang baru saja di unduh.',\r\n 'financeInvoices.1a_lazada':\r\n 'a. Pada halaman Home, klik tab {orders}, lalu klik tab {orderReview}',\r\n 'financeInvoices.1b_lazada': 'b. Klik tombol {export}, lalu klik {exportAllOrder}',\r\n 'financeInvoices.1c_lazada':\r\n 'c. Untuk laporan penjualan yang ingin diunduh, klik tombol {download}, lalu klik {done}. Simpan file Excel yang baru saja di unduh.',\r\n 'financeInvoices.1a_tiktok': 'a. Klik menu {order} - {manageOrder}',\r\n 'financeInvoices.1b_tiktok': 'b. Klik tab {done}',\r\n 'financeInvoices.1c_tiktok': 'c. Klik menu {downloadOrder}',\r\n 'financeInvoices.1d_tiktok': 'd. Pilih format unduh Excel',\r\n 'financeInvoices.1e_tiktok': 'e. Centang {deliveryList} pada {chooseTemplate}',\r\n 'financeInvoices.1f_tiktok': 'f. Klik tombol {download}',\r\n 'financeInvoices.1a_olsera': 'a. Klik menu Laporan',\r\n 'financeInvoices.1b_olsera': 'b. Klik menu Laporan Penjualan',\r\n 'financeInvoices.1c_olsera': 'c. Klik menu Item Penjualan Per Tanggal',\r\n 'financeInvoices.1d_olsera': 'd. Pilih status pembayaran telah dibayar',\r\n 'financeInvoices.1e_olsera': 'e. Klik tombol Excel. Simpan file Excel yang baru saja di unduh.',\r\n 'financeInvoices.this_import_will_change_status':\r\n 'Fasilitas import ini akan mengubah status tagihan yang belum lunas menjadi lunas.',\r\n 'financeInvoices.data_will_not_change_even_if_different':\r\n 'Data tagihan tidak akan diubah pada import ini, meskipun data pada sistem kledo dengan data pada file excel berbeda.',\r\n 'financeQuotes.follow_these_steps_to_import_your_quotes':\r\n 'Ikuti langkah berikut untuk mengimport penawaranmu',\r\n 'financeQuotes.1_download_your_quotes_template_file': '1. Download file template penawaran',\r\n 'financeQuotes.start_by_downloading_our_quotes_csv':\r\n 'Mulai dengan mengunduh file template Excel penawaran. File ini mempunyai kolom header yang yang dibutuhkan Kledo untuk mengimport detail dari penawaran-penawaranmu.',\r\n 'financeQuotes.download_template_file': 'Download File Template',\r\n 'financeQuotes.download_template_data_example_file': 'Download File Contoh',\r\n 'financeQuotes.import': 'Import Penawaran',\r\n 'financeQuotes.2_copy_your_quotes_into_the_template':\r\n '2. Salin detail penawaran ke dalam template',\r\n 'financeQuotes.using_excel_or_another_spreadsheet_editor':\r\n 'Menggunakan Excel atau software spreadsheeet lainnya, masukkan detail penawaran ke dalam file template dari Kledo. Pastikan detail penawaran sesuai dengan kolom header yang ada di template.',\r\n 'financeQuotes.important': 'PENTING',\r\n 'financeQuotes.3_upload_the_updated_template_file_here':\r\n '3. Upload template yang sudah diupdate ke sini',\r\n 'financeQuotes.upload': 'Upload',\r\n 'financeQuotes.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Simpan file template yang sudah diupdate',\r\n 'financeQuotes.a_maximum_of_500_quotes_can_be_imported_at_a_time':\r\n 'Maksimal 1.000 penawaran dapat diimport dalam satu waktu.',\r\n 'financeQuotes.contact_name_that_not_exist_will_be_inserted_as_a_new_contact':\r\n 'Nama kontak yang yang belum ada di Kledo akan dimasukkan sebagai kontak baru.',\r\n 'financeQuotes.import_actions_only_insert_new_quotes_cannot_update_or_delete':\r\n 'Saat meng-import, Kledo hanya akan memasukkan data baru, tidak ada data yang dihapus atau diupdate.',\r\n 'financeQuotes.dont_change_the_column_heading_in_the_template_file':\r\n 'Jangan mengubah header kolom di dalam template. Ini dibutuhkan agar import dapat berjalan.',\r\n 'financeQuotes.you_can_only_upload_csv_file': 'Anda hanya dapat mengunggah file csv atau excel',\r\n 'financeQuotes.upload_file': 'Upload File',\r\n 'financeQuotes.check_the_imported_data': 'Cek Data',\r\n 'financeQuotes.please_check_the_imported_data': 'Silakan cek data yang diimport',\r\n 'financeQuotes.import_quotes_done': 'Import Berhasil',\r\n 'financeQuotes.error_upload_file': 'Gagal mengunggah file.',\r\n 'financeQuotes.file_not_found': 'File tidak ditemukan.',\r\n 'financeQuotes.if_you_are_happy_to_continue_with_the_import_please_click_the_import_now_button': `Jika data yang diimport sesuai dengan yang kamu harapkan, silakan klik tombol \"Import Sekarang\".`,\r\n 'financeQuotes.valid': 'Valid',\r\n 'financeQuotes.invalid': 'Invalid',\r\n 'financeQuotes.total': 'Total',\r\n 'financeQuotes.import_now': 'Import Sekarang',\r\n 'financeQuotes.contact_name': 'Nama Kontak',\r\n 'financeQuotes.email': 'Email',\r\n 'financeQuotes.address': 'Alamat',\r\n 'financeQuotes.phone': 'Phone',\r\n 'financeQuotes.quote_date': 'Tanggal Penawaran',\r\n 'financeQuotes.quote_number': 'Nomor Penawaran',\r\n 'financeQuotes.product_name': 'Nama Produk',\r\n 'financeQuotes.code_sku': 'Kode/SKU',\r\n 'financeQuotes.tax_inclusive': 'Termasuk Pajak',\r\n 'financeQuotes.copy_link': 'Salin Link Penawaran',\r\n 'financeQuotes.send_email': 'Kirim Email Penawaran',\r\n 'financeQuotes.send_sms': 'Kirim SMS Penawaran',\r\n 'financeQuotes.send_wa': 'Kirim Whatsapp Penawaran',\r\n\r\n 'financeQuotes.inventory_account': 'Akun Penyimpanan',\r\n 'financeQuotes.quotes_successfully_imported': '{rowCount} quote berhasil diimport.',\r\n 'financeQuotes.view_detail': 'Tampilkan detil',\r\n 'financeQuotes.import_another_file': 'Import file lain',\r\n 'financeQuotes.go_to_quote_list': 'Ke halaman daftar penawaran',\r\n 'financeQuotes.success': 'Berhasil',\r\n 'financeQuotes.failed': 'Gagal',\r\n 'financeQuotes.error_cannot_import': 'Gagal import.',\r\n 'financeQuotes.error': 'Error',\r\n 'financeQuotes.print_quote': 'Cetak Penawaran',\r\n\r\n 'pos.pos': 'POS',\r\n 'pos.pos_activity': 'POS Activity',\r\n 'pos.transfer_to_room': 'Transfer to Room',\r\n 'pos.please_choose_a_table': 'please choose a table!',\r\n 'pos.failed_list_item_null': 'failed list item null!',\r\n 'pos.harga_item': 'Harga item',\r\n 'pos.activity': 'Activity',\r\n 'pos.saved_bill': 'Saved Bill',\r\n 'pos.items': 'Items',\r\n 'pos.total_harga_item': 'Total harga item',\r\n 'pos.discount': 'Discount',\r\n 'pos.tax': 'Pajak',\r\n 'pos.total': 'Total',\r\n 'pos.pay': 'Pay',\r\n 'pos.save_bill': 'Save Bill',\r\n 'pos.list_save_bill': 'List Save Bill',\r\n 'pos.table': 'Table',\r\n 'pos.select_table': 'select table',\r\n 'pos.receipt_number': 'Receipt Nomor',\r\n 'pos.details': 'Detils',\r\n 'pos.payment': 'Pembayaran',\r\n 'pos.date_range': 'Tanggal Range',\r\n 'pos.unpaid': 'unpaid',\r\n 'pos.paid_cashier': 'paid cashier',\r\n 'pos.transfer_to_room_': 'transfer to room',\r\n 'pos.please_select_date_range': 'please select tanggal range',\r\n 'pos.select': 'Select',\r\n 'pos.room': 'Room',\r\n 'pos.name': 'Nama',\r\n 'pos.checking': 'Checking',\r\n 'pos.transfer': 'Transfer',\r\n 'pos.new_sale': 'New Sale',\r\n 'pos.transfer_to': 'Transfer To',\r\n 'pos.guest_name': 'Guest Name',\r\n 'pos.pos_outlets': 'POS Outlets',\r\n 'pos.category': 'Kategori',\r\n 'pos.variant_name': 'Variant Name',\r\n 'pos.modify_variant': 'Modify Variant',\r\n 'pos.variant_of': 'Variant of',\r\n 'pos.add_variant_category': 'Tambah Variant Kategori',\r\n 'pos.add_variant': 'Tambah Variant',\r\n 'pos.product_name': 'Nama Produk',\r\n 'pos.add_table': 'Tambah Table',\r\n 'pos.enable_table_for_this_outlet': 'Enable table for this outlet',\r\n 'pos.add_product': 'Tambah Produk',\r\n 'pos.add_category': 'Tambah Kategori',\r\n 'pos.product': 'Produk',\r\n 'pos.settings': 'Settings',\r\n 'pos.name_category_required': 'Nama kategori wajib diisi',\r\n 'pos.edit_category': 'Ubah Kategori',\r\n 'pos.category_name': 'Kategori Name',\r\n 'pos.change_multi_required': 'change multi wajib diisi',\r\n 'pos.one_variant_per_product_sale': 'One Variant per produk sale',\r\n 'pos.multiple_variant_per_product_sale': 'Multiple Variant per produk sale',\r\n 'pos.edit_variant_category': 'Ubah Variant Kategori',\r\n 'pos.add_tables': 'Tambah Tables',\r\n 'pos.name_table_required': 'name table wajib diisi',\r\n 'pos.tables': 'Tables',\r\n 'pos.edit_tables': 'Ubah Tables',\r\n 'pos.name_required': 'name wajib diisi',\r\n 'pos.tax_required': 'tax wajib diisi',\r\n 'pos.service_charge': 'Service Charge',\r\n 'pos.service_charge_required': 'service charge wajib diisi',\r\n 'pos.product_image': 'Gambar Produk',\r\n 'pos.product_image_required': 'Gambar produk wajib diisi',\r\n 'pos.choose_category_required': 'choose kategori wajib diisi',\r\n 'pos.choose_category': 'Pilih Kategori',\r\n 'pos.product_name_required': 'nama produk wajib diisi',\r\n 'pos.price': 'Harga',\r\n 'pos.price_required': 'price wajib diisi',\r\n 'pos.extra_price_must_greather_than_0': 'Harga harus lebih besar dari 0.',\r\n 'pos.base_price': 'Base Harga',\r\n 'pos.base_price_required': 'Base Harga wajib diisi',\r\n 'pos.description': 'Deskripsi',\r\n 'pos.description_required': 'Description wajib diisi',\r\n 'pos.edit_product': 'Ubah Produk',\r\n 'pos.variant': 'Variant',\r\n 'pos.variant_name_required': 'variant name wajib diisi',\r\n 'pos.edit_variant': 'Ubah Variant',\r\n\r\n 'financeInvoices.message': 'Pesan',\r\n 'financeInvoices.order_payment': 'Pembayaran Pemesanan',\r\n 'financeInvoices.add_invoice': 'Tambah Tagihan',\r\n 'financeInvoices.financeInvoices': 'Tagihan',\r\n 'financeInvoices.error_cannot_print_pdf': 'Tidak dapat membuat pdf tagihan.',\r\n 'financeInvoices.error_cannot_export_receipt': 'Tidak dapat ekspor kwitansi',\r\n 'financeInvoices.successfully_added': 'berhasil ditambahkan.',\r\n 'financeInvoices.error_cannot_add': 'Tidak dapat menambah tagihan.',\r\n 'financeInvoices.error_cannot_update': 'Tidak dapat mengubah tagihan.',\r\n 'financeInvoices.error_cannot_move': 'Tidak dapat memindah tagihan.',\r\n 'financeInvoices.error_cannot_change_status': 'Gagal mengubah status tagihan.',\r\n 'financeInvoices.edit_invoice': 'Ubah tagihan',\r\n 'financeInvoices.max_characters': 'Maks {value} karakter.',\r\n 'financeInvoices.min_characters': 'Min {value} karakter.',\r\n 'financeInvoices.only_number_allowed': 'Hanya angka yang diperkenankan.',\r\n 'financeInvoices.description': 'Deskripsi',\r\n 'financeInvoices.tax': 'Pajak',\r\n 'financeInvoices.select_tax': 'Pilih pajak',\r\n 'financeInvoices.please_select_a_contact': 'Silakan pilih kontak',\r\n 'financeInvoices.select_contact': 'Pilih kontak',\r\n 'financeInvoices.add_contact': 'Tambah kontak',\r\n 'financeInvoices.all_contacts': 'Semua kontak',\r\n 'financeInvoices.transaction_date': 'Tgl Transaksi',\r\n 'financeInvoices.please_select_transaction_date': 'Silakan pilih tanggal transaksi',\r\n 'financeInvoices.due_date': 'Tanggal Jatuh Tempo',\r\n 'financeInvoices.please_select_due_date': 'Silakan pilih tanggal jatuh tempo',\r\n 'financeInvoices.term': 'Termin',\r\n 'financeInvoices.select_term': 'Pilih termin',\r\n 'financeInvoices.add_term': 'Tambah termin',\r\n 'financeInvoices.price_include_tax': 'Harga termasuk pajak',\r\n 'financeInvoices.add_more': 'Tambah baris',\r\n 'financeInvoices.number': 'Nomor',\r\n 'financeInvoices.please_input_the_number': 'Silakan isikan nomor.',\r\n 'financeInvoices.memo': 'Reference',\r\n 'financeInvoices.date': 'Tanggal',\r\n 'financeInvoices.payment_date': 'Tanggal Pembayaran',\r\n 'financeInvoices.paid_date': 'Tanggal Pelunasan',\r\n 'financeInvoices.show_payment_amount': 'Tampilkan jumlah pelunasan',\r\n 'financeInvoices.hide_payment_amount': 'Sembunyikan jumlah pelunasan',\r\n 'financeInvoices.status': 'Status',\r\n 'financeInvoices.payment_status': 'Status Pembayaran',\r\n 'financeInvoices.balance_due': 'Sisa Tagihan',\r\n 'financeInvoices.please_select_a_term': 'Silakan pilih termin.',\r\n 'financeInvoices.search_by_memo': 'Cari',\r\n 'financeInvoices.the_due_date_max_higger_than_transaction_date':\r\n 'Tanggal jatuh tempo harus sama atau setelah tanggal transaksi',\r\n 'financeInvoices.detail_title': ' Tagihan {number}',\r\n 'financeInvoices.customer': 'Pelanggan',\r\n 'financeInvoices.reference': 'Reference',\r\n 'financeInvoices.product': 'Produk',\r\n 'financeInvoices.qty': 'Kuantitas',\r\n 'financeInvoices.price': 'Harga',\r\n 'financeInvoices.add_product': 'Tambah Produk',\r\n 'financeInvoices.select_product': 'Pilih produk',\r\n 'financeInvoices.attachments': 'Attachment',\r\n 'financeInvoices.save_&_approve': 'Simpan & setujui',\r\n 'financeInvoices.save_as_draft': 'Simpan sbg draft',\r\n 'financeInvoices.save_&_submit_for_approval': 'Simpan & ajukan approval',\r\n 'financeInvoices.please_select_a_product': 'Silakan pilih produk.',\r\n 'financeInvoices.please_input_the_qty': 'Silakan masukkan kuantitas.',\r\n 'financeInvoices.please_input_the_price': 'Silakan masukkan harga.',\r\n 'financeInvoices.please_input_the_amount': 'Silakan masukkan total.',\r\n 'financeInvoices.approve': 'Setujui',\r\n 'financeInvoices.are_you_sure_to_approve': 'Apakah Anda yakin untuk menyutujui?',\r\n 'financeInvoices.submit_for_approval': 'Ajukan approval',\r\n 'financeInvoices.are_you_sure_to_submit_for_approval':\r\n 'Apakah Anda yakin untuk mengajukan approval?',\r\n 'financeInvoices.create_invoice': 'Buat Tagihan',\r\n 'financeInvoices.amount_paid': 'Total Dibayar',\r\n 'financeInvoices.paid_from': 'Terima pembayaran ke',\r\n 'financeInvoices.add_payment': 'Terima Pembayaran',\r\n 'financeInvoices.receive_a_payment': 'Terima pembayaran',\r\n 'financeInvoices.error_cannot_add_payment': 'Tidak bisa menambah pembayaran.',\r\n 'financeInvoices.payment': 'Pembayaran',\r\n 'financeInvoices.detail_invoice': 'Detil Tagihan',\r\n 'financeInvoices.number_quotes': 'Nomor Penawaran',\r\n 'financeInvoices.amount': 'Jumlah',\r\n 'financeInvoices.tax_code': 'Kode dan Nomor Seri Faktur',\r\n 'financeInvoices.please_input_the_tax_code': 'Silakan masukkan kode dan nomor seri faktur.',\r\n 'financeInvoices.error_cannot_change_tax_code':\r\n 'Tidak dapat mengubah kode dan nomor seri faktur.',\r\n 'financeInvoices.order': 'Nomor Pemesanan',\r\n 'financeInvoices.quote': 'Nomor Penawaran',\r\n 'financeInvoices.delivery': 'Nomor Pengiriman',\r\n 'financeInvoices.please_select_deliveries': 'Pilih minimal satu nomor pengiriman.',\r\n 'financeInvoices.cannot_greather_than_order': 'Tidak dapat melebihi order.',\r\n 'financeInvoices.down_payment': 'Uang muka',\r\n 'financeInvoices.already_paid': 'Sudah dibayar',\r\n 'financeInvoices.transaction': 'Transaksi',\r\n 'financeInvoices.print_invoice': 'Faktur',\r\n 'financeInvoices.whoever_have_this_link_can_see_pdf':\r\n 'Siapapun yang memiliki link ini dapat melihat invoicenya seperti tampilan format PDF.',\r\n 'financeInvoices.copy_link': 'Salin Link Faktur',\r\n 'financeInvoices.send_email': 'Kirim Email Faktur',\r\n 'financeInvoices.send_sms': 'Kirim SMS Faktur',\r\n 'financeInvoices.send_wa': 'Kirim Whatsapp Faktur',\r\n 'financeInvoices.sales_person': 'Sales Person',\r\n 'financeInvoices.set_paid': 'Set Lunas',\r\n 'financeInvoices.mass_payment': 'Pembayaran Massal',\r\n 'financeInvoices.cannot_mass_payment': 'Tidak dapat pembayaran massal',\r\n 'financeInvoices.can_be_paid': 'Bisa dilunaskan',\r\n 'financeInvoices.cannot_be_paid': 'Tidak bisa dilunaskan',\r\n 'financeInvoices.data_progress_paid': '{count} data dari total {total} telah dilunaskan',\r\n 'financeInvoices.data_has_been_paid': 'Total {count} data telah berhasil dilunaskan',\r\n 'financeInvoices.cash_payment': 'Bayar Tunai',\r\n 'financeInvoices.with_credit_payment': 'Dengan Hutang',\r\n 'financeInvoices.with_debit_payment': 'Dengan Piutang',\r\n 'financeInvoices.payment_with_credit_memo': 'Pembayaran dengan Hutang',\r\n 'financeInvoices.payment_with_debit_memo': 'Pembayaran dengan Piutang',\r\n 'financeInvoices.follow_these_steps_to_import_your_invoices':\r\n 'Ikuti langkah berikut untuk mengimport tagihanmu',\r\n 'financeInvoices.create_mass_trans': 'Buat {title} Massal',\r\n 'financeInvoices.can_be_created_to': 'Bisa dibuat {title}',\r\n 'financeInvoices.cannot_be_created_to': 'Tidak bisa dibuat {title}',\r\n 'financeInvoices.data_progress_create_trans': '{count} {title} dari total {total} telah dibuat',\r\n 'financeInvoices.data_has_been_create_trans': 'Total {count} {title} telah berhasil dibuat',\r\n\r\n 'financeInvoices.1_download_your_invoices_template_file': '1. Download file template tagihan',\r\n 'financeInvoices.start_by_downloading_our_invoices_csv':\r\n 'Mulai dengan mengunduh file template Excel tagihan. File ini mempunyai kolom header yang yang dibutuhkan Kledo untuk mengimport detail dari tagihan-tagihanmu.',\r\n 'financeInvoices.download_template_file': 'Download File Template',\r\n 'financeInvoices.download_template_data_example_file': 'Download File Contoh',\r\n 'financeInvoices.import': 'Import Tagihan',\r\n 'financeInvoices.2_copy_your_invoices_into_the_template':\r\n '2. Salin detail tagihan ke dalam template',\r\n 'financeInvoices.using_excel_or_another_spreadsheet_editor':\r\n 'Menggunakan Excel atau software spreadsheeet lainnya, masukkan detail tagihan ke dalam file template dari Kledo. Pastikan detail tagihan sesuai dengan kolom header yang ada di template.',\r\n 'financeInvoices.important': 'PENTING',\r\n 'financeInvoices.3_upload_the_updated_template_file_here':\r\n '3. Upload template yang sudah diupdate ke sini',\r\n 'financeInvoices.upload': 'Upload',\r\n 'financeInvoices.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Simpan file template yang sudah diupdate',\r\n 'financeInvoices.a_maximum_of_500_invoices_can_be_imported_at_a_time':\r\n 'Maksimal 1.000 tagihan dapat diimport dalam satu waktu.',\r\n 'financeInvoices.contact_name_that_not_exist_will_be_inserted_as_a_new_contact':\r\n 'Nama kontak yang yang belum ada di Kledo akan dimasukkan sebagai kontak baru.',\r\n 'financeInvoices.import_actions_only_insert_new_invoices_cannot_update_or_delete':\r\n 'Saat meng-import, Kledo hanya akan memasukkan data baru, tidak ada data yang dihapus atau diupdate.',\r\n 'financeInvoices.dont_change_the_column_heading_in_the_template_file':\r\n 'Jangan mengubah header kolom di dalam template. Ini dibutuhkan agar import dapat berjalan.',\r\n 'financeInvoices.you_can_only_upload_csv_file': 'Anda hanya dapat mengunggah file csv atau excel',\r\n 'financeInvoices.upload_file': 'Upload File',\r\n 'financeInvoices.check_the_imported_data': 'Cek Data',\r\n 'financeInvoices.please_check_the_imported_data': 'Silakan cek data yang diimport',\r\n 'financeInvoices.import_invoices_done': 'Import Berhasil',\r\n 'financeInvoices.error_upload_file': 'Gagal mengunggah file.',\r\n 'financeInvoices.file_not_found': 'File tidak ditemukan.',\r\n 'financeInvoices.if_you_are_happy_to_continue_with_the_import_please_click_the_import_now_button': `Jika data yang diimport sesuai dengan yang kamu harapkan, silakan klik tombol \"Import Sekarang\".`,\r\n 'financeInvoices.valid': 'Valid',\r\n 'financeInvoices.invalid': 'Invalid',\r\n 'financeInvoices.total': 'Total',\r\n 'financeInvoices.import_now': 'Import Sekarang',\r\n 'financeInvoices.contact_name': 'Nama Kontak',\r\n 'financeInvoices.email': 'Email',\r\n 'financeInvoices.address': 'Alamat',\r\n 'financeInvoices.phone': 'Phone',\r\n 'financeInvoices.invoice_date': 'Tanggal Tagihan',\r\n 'financeInvoices.date_same_as_the_original_transaction':\r\n 'Tanggalnya disamakan dengan transaksi asal',\r\n 'financeInvoices.invoice_number': 'Nomor Invoice',\r\n 'financeInvoices.product_name': 'Nama Produk',\r\n 'financeInvoices.code_sku': 'Kode/SKU',\r\n 'financeInvoices.tax_inclusive': 'Termasuk Pajak',\r\n 'financeInvoices.paid': 'Lunas',\r\n 'financeInvoices.paid_account': 'Akun Pembayaran',\r\n 'financeInvoices.row_imported': '{imported} dari {total} baris diproses',\r\n\r\n 'financeInvoices.inventory_account': 'Akun Penyimpanan',\r\n 'financeInvoices.invoices_successfully_imported': '{rowCount} invoice berhasil diimport.',\r\n 'financeInvoices.view_detail': 'Tampilkan detil',\r\n 'financeInvoices.import_another_file': 'Import file lain',\r\n 'financeInvoices.go_to_invoice_list': 'Ke halaman daftar invoice',\r\n 'financeInvoices.success': 'Berhasil',\r\n 'financeInvoices.failed': 'Gagal',\r\n 'financeInvoices.error_cannot_import': 'Gagal import.',\r\n 'financeInvoices.error': 'Error',\r\n 'financeInvoices.import_invoices_in_progress': 'Import sedang berlangsung',\r\n 'financeInvoices.import_invoices_is_still_in_progress': 'Import masih berjalan',\r\n 'financeInvoices.import_warehouse_help_text':\r\n 'Apabila saat melakukan import data dari marketplace diisikan kolom gudang-nya, maka otomatis produk yang terbentuk akibat dari transaksi yang diimport akan \"lacak stok\". Namun jika produk tidak diisi gudang, otomatis produknya akan \"tidak lacak stok\".',\r\n 'financeInvoices.its_ok_to_close_this_page':\r\n 'Tidak apa-apa untuk menutup halaman ini atau mengimport file lain. Ketika import selesai, Anda akan diberitahu melalui email.',\r\n 'financeInvoices.duplicate_to_trans': 'Duplikat ke transaksi',\r\n\r\n 'financeInvoices.you_can_only_upload_up_to': `Anda hanya dapat mengupload maksimum sebanyak {count} file`,\r\n 'financeInvoices.please_select_tag': 'Silahkan pilih tag',\r\n 'financeInvoices.recurring_invoice': 'Tagihan Berulang',\r\n 'financeInvoices.1_download_your_invoices_recurring_template_file':\r\n '1. Download file template tagihan berulang',\r\n 'financeInvoices.start_by_downloading_our_invoices_recurring_csv':\r\n 'Mulai dengan mengunduh file template Excel tagihan berulang. File ini mempunyai kolom header yang yang dibutuhkan Kledo untuk mengimport detail dari tagihan-tagihan berulangmu.',\r\n 'financeInvoices.2_copy_your_invoices_recurring_into_the_template':\r\n '2. Salin detail tagihan berulang ke dalam template',\r\n 'financeInvoices.invoice_recurring_using_excel_or_another_spreadsheet_editor':\r\n 'Menggunakan Excel atau software spreadsheeet lainnya, masukkan detail tagihan berulang ke dalam file template dari Kledo. Pastikan detail tagihan berulang sesuai dengan kolom header yang ada di template.',\r\n 'financeInvoices.cannot_upload_this_photo': 'Tidak bisa mengunggah foto ini.',\r\n\r\n 'financeInvoices.import_invoice_return': 'Import Tagihan Retur',\r\n 'financeInvoices.invoice_return_number': 'Nomor Tagihan Retur',\r\n 'financeInvoices.import_return_product_name_or_code': 'Nama {product} atau Kode/SKU',\r\n 'financeInvoices.1_download_your_invoices_return_template_file':\r\n '1. Download file template tagihan retur',\r\n 'financeInvoices.start_by_downloading_our_invoices_return_csv':\r\n 'Mulai dengan mengunduh file template Excel tagihan retur. File ini mempunyai kolom header yang yang dibutuhkan Kledo untuk mengimport detail dari tagihan-tagihan returmu.',\r\n 'financeInvoices.2_copy_your_invoices_return_into_the_template':\r\n '2. Salin detail tagihan retur ke dalam template',\r\n 'financeInvoices.invoice_return_using_excel_or_another_spreadsheet_editor':\r\n 'Menggunakan Excel atau software spreadsheeet lainnya, masukkan detail tagihan retur ke dalam file template dari Kledo. Pastikan detail tagihan retur sesuai dengan kolom header yang ada di template.',\r\n 'financeInvoices.follow_these_steps_to_import_your_invoices_return':\r\n 'Ikuti langkah berikut untuk mengimport tagihan returmu',\r\n\r\n 'financeBanks.edit_bank_statement': 'Edit Bank Statement',\r\n 'financeBanks.error_load_data': 'Terjadi masalah saat mengambil data transaksi bank',\r\n 'financeBanks.are_you_sure_to_revert': 'Apakah Anda yakin untuk melanjutkan ?',\r\n 'financeBanks.error_cannot_revert': 'Tidak dapat melakukan revert',\r\n 'financeBanks.add_bank': 'Tambah Bank',\r\n 'financeBanks.financeBanks': 'Akun Kas & Bank',\r\n 'financeBanks.manage_account': 'Atur Akun',\r\n 'financeBanks.statement_balance': 'Saldo di bank',\r\n 'financeBanks.balance_in_kledo': 'Saldo di kledo',\r\n 'financeBanks.successfully_added': 'berhasil ditambahkan.',\r\n 'financeBanks.error_cannot_add': 'Tidak dapat menambah bank.',\r\n 'financeBanks.error_cannot_update': 'Tidak dapat mengubah bank.',\r\n 'financeBanks.error_cannot_move': 'Tidak dapat memindah bank.',\r\n 'financeBanks.error_cannot_change_status': 'Tidak dapat mengubah status bank.',\r\n 'financeBanks.edit_bank': 'Ubah bank',\r\n 'financeBanks.max_characters': 'Maks {value} karakter.',\r\n 'financeBanks.min_characters': 'Min {value} karakter.',\r\n 'financeBanks.only_number_allowed': 'Hanya angka yang diperkenankan.',\r\n 'financeBanks.description': 'Deskripsi',\r\n 'financeBanks.tax': 'Pajak',\r\n 'financeBanks.select_tax': 'Pilih pajak',\r\n 'financeBanks.amount': 'Total',\r\n 'financeBanks.please_select_a_contact': 'Silakan pilih kontak',\r\n 'financeBanks.select_contact': 'Pilih kontak',\r\n 'financeBanks.add_contact': 'Tambah kontak',\r\n 'financeBanks.all_contacts': 'Semua kontak',\r\n 'financeBanks.contact': 'Kontak',\r\n 'financeBanks.transaction_date': 'Tanggal Transaksi',\r\n 'financeBanks.please_select_transaction_date': 'Silakan pilih tanggal transaksi',\r\n 'financeBanks.due_date': 'Tanggal Jatuh Tempo',\r\n 'financeBanks.please_select_due_date': 'Silakan pilih tanggal jatuh tempo',\r\n 'financeBanks.term': 'Termin',\r\n 'financeBanks.select_term': 'Pilih termin',\r\n 'financeBanks.add_term': 'Tambah termin',\r\n 'financeBanks.price_include_tax': 'Harga termasuk pajak',\r\n 'financeBanks.add_more': 'Tambah baris',\r\n 'financeBanks.number': 'Nomor',\r\n 'financeBanks.please_input_the_number': 'Silakan isikan nomor.',\r\n 'financeBanks.memo': 'Reference',\r\n 'financeBanks.date': 'Tanggal',\r\n 'financeBanks.status': 'Status',\r\n 'financeBanks.balance_due': 'Sisa Tagihan',\r\n 'financeBanks.please_select_a_account': 'Silakan pilih akun.',\r\n 'financeBanks.search_by_memo': 'Cari',\r\n 'financeBanks.the_due_date_max_higger_than_transaction_date':\r\n 'Tanggal jatuh tempo harus sama atau setelah tanggal transaksi',\r\n 'financeBanks.detail_title': ' Transaksi: {transTypeName}',\r\n 'financeBanks.customer': 'Pelanggan',\r\n 'financeBanks.reference': 'Reference',\r\n 'financeBanks.attachments': 'Attachment',\r\n 'financeBanks.save_&_approve': 'Simpan & setujui',\r\n 'financeBanks.save_as_draft': 'Simpan sbg draft',\r\n 'financeBanks.save_&_submit_for_approval': 'Simpan & ajukan approval',\r\n 'financeBanks.please_input_the_amount': 'Silakan masukkan total.',\r\n 'financeBanks.approve': 'Setujui',\r\n 'financeBanks.are_you_sure_to_approve': 'Apakah Anda yakin untuk menyutujui?',\r\n 'financeBanks.submit_for_approval': 'Ajukan approval',\r\n 'financeBanks.are_you_sure_to_submit_for_approval':\r\n 'Apakah Anda yakin untuk mengajukan approval?',\r\n 'financeBanks.create_bank': 'Buat Bank',\r\n 'financeBanks.amount_paid': 'Total Dibayar',\r\n 'financeBanks.paid_from': 'Dibayar Dari',\r\n 'financeBanks.add_payment': 'Tambah Pembayaran',\r\n 'financeBanks.make_a_payment': 'Buat pembayaran',\r\n 'financeBanks.select_paid_from': 'Pilih dibayar dari',\r\n 'financeBanks.please_select_a_paid_from': 'Silakan pilih dibayar dari.',\r\n 'financeBanks.error_cannot_add_payment': 'Tidak bisa menambah pembayaran.',\r\n 'financeBanks.payment': 'Pembayaran',\r\n 'financeBanks.detail_bank': 'Detil Bank',\r\n 'financeBanks.spent': 'Kirim',\r\n 'financeBanks.received': 'Terima',\r\n 'financeBanks.balance': 'Saldo',\r\n 'financeBanks.transfer_money': 'Transfer Dana',\r\n 'financeBanks.spend_money': 'Kirim Dana',\r\n 'financeBanks.receive_money': 'Terima Dana',\r\n 'financeBanks.auto_import_bank_statement': 'Import Transaksi Bank Otomatis',\r\n 'financeBanks.manually_import_bank_statement': 'Import Transaksi Bank Manual',\r\n 'financeBanks.from': 'Dari',\r\n 'financeBanks.to': 'Ke',\r\n 'financeBanks.bank_account': 'Akun Bank',\r\n 'financeBanks.account_transactions': 'Transaksi di Kledo',\r\n 'financeBanks.bank_statements': 'Transaksi di Bank',\r\n 'financeBanks.reconcile': 'Rekonsiliasi',\r\n 'financeBanks.reconcile_mass_reconcile_title': 'Rekonsiliasi Massal',\r\n 'financeBanks.reconcile_mass_can_be_reconcile': 'Bisa direkonsiliasi',\r\n 'financeBanks.reconcile_mass_cannot_be_reconcile': 'Tidak bisa di rekonsiliasi',\r\n 'financeBanks.reconcile_mass_reconcile_are_you_sure':\r\n 'Apakah Anda yakin untuk merekonsiliasi {count} data transaksi ini?',\r\n 'financeBanks.reconcile_data_progress_deleted':\r\n '{count} data dari total {total} telah terekonsilasi',\r\n 'financeBanks.search_by_reference': 'Cari',\r\n 'financeBanks.please_select_a_from_account': 'Silakan pilih akun asal',\r\n 'financeBanks.please_select_a_to_account': 'Silakan pilih akun tujuan',\r\n 'financeBanks.transfer': 'Transfer',\r\n 'financeBanks.edit_account_transaction': 'Ubah Transaksi Akun',\r\n 'financeBanks.error_cannot_transfer_money': 'Gagal transfer dana',\r\n 'financeBanks.the_to_account_cannot_be_same_with_from_account':\r\n 'Akun tujuan tidak boleh sama dengan akun asal.',\r\n 'financeBanks.the_from_account_cannot_be_same_with_to_account':\r\n 'Akun tujuan tidak boleh sama dengan akun asal.',\r\n 'financeBanks.new_transaction': 'Transaksi Baru',\r\n 'financeBanks.source': 'Sumber',\r\n 'financeBanks.confirm_delete_bank_statement_p1':\r\n 'Tindakan ini akan mengubah saldo rekening Anda di Kledo.',\r\n 'financeBanks.confirm_delete_bank_statement_p2':\r\n 'Pada umumnya tindakan ini hanya dilakukan untuk menghapus transaksi rekening duplikat.',\r\n 'financeBanks.follow_these_steps_to_import_your_transactions':\r\n 'Ikuti langkah-langkah berikut untuk meng-import transaksi',\r\n 'financeBanks.import_bank_transactions': 'Import Transaksi Bank',\r\n 'financeBanks.you_can_only_upload_csv_file': 'Anda hanya dapat mengunggah file csv atau excel',\r\n 'financeBanks.upload_file': 'Upload',\r\n 'financeBanks.set_import_options': 'Opsi Import',\r\n 'financeBanks.import_statement_done': 'Selesai',\r\n 'financeBanks.error_upload_file': 'Gagal mengunggah file.',\r\n 'financeBanks.file_not_found': 'File tidak ditemukan.',\r\n 'financeBanks.statement_heading': 'Header Statement',\r\n 'financeBanks.statement_value': 'Isi Statement',\r\n 'financeBanks.assign_to': 'Assign Ke',\r\n 'financeBanks.please_select_a_assign_to': 'Silakan pilih assign ke.',\r\n 'financeBanks.select_assign_to': 'Pilih assign ke',\r\n 'financeBanks.rows_uploaded_set_the_import_options':\r\n '{rowCount} baris berhasil diunggah. Lakukan setting opsi import di bawah dan klik tombol Import Sekarang untuk melanjutkan.',\r\n 'financeBanks.please_select_a_date_format': 'Silakan pilih format tanggal.',\r\n 'financeBanks.select_date_format': 'Pilih format tanggal',\r\n 'financeBanks.dont_import_the_first_line':\r\n 'Jangan import baris pertama, karena baris pertama merupakan header.',\r\n 'financeBanks.import_now': 'Import Sekarang',\r\n 'financeBanks.date_format': 'Format Tanggal',\r\n 'financeBanks.error_cannot_import': 'Gagal import.',\r\n 'financeBanks.1_in_a_new_window':\r\n '1. Bukan tab browser baru, buka dan login ke internet banking Anda.',\r\n 'financeBanks.2_download_your_bank_statement': '2. Download mutasi bank Anda.',\r\n 'financeBanks.file_type_must_be_csv': 'File harus berupa CSV',\r\n 'financeBanks.3_upload_the_bank_statement_here': '3. Unggah mutasi bank disini.',\r\n 'financeBanks.download_our_csv_template': 'Download template import dalam csv',\r\n 'financeBanks.to_create_your_own_bank_statement_file': ' untuk membuat mutasi bank sendiri.',\r\n 'financeBanks.import_maximum_of_1000_bank_statement_line_at_a_time':\r\n 'Import maksimal 1000 baris mutasi dalam satu waktu.',\r\n 'financeBanks.drop_the_file_to_upload': 'Drag file di sini untuk upload',\r\n 'financeBanks.transaction_lines_successfully_imported':\r\n '{rowCount} baris mutasi berhasil diimport.',\r\n 'financeBanks.view_detail': 'Lihat detil',\r\n 'financeBanks.import_another_file': 'Import file yang lain lagi',\r\n 'financeBanks.go_to_reconciliation': 'Rekonsiliasi sekarang',\r\n 'financeBanks.success': 'Sukses',\r\n 'financeBanks.failed': 'Gagal',\r\n 'financeBanks.invalid_date': 'Tanggal Tidak Valid',\r\n 'financeBanks.invalid_transaction_type': 'Tipe Transaksi Tidak Valid',\r\n 'financeBanks.invalid_amount': 'Total Transaksi Tidak Valid',\r\n 'financeBanks.total': 'Total',\r\n 'financeBanks.review_your_bank_statement': 'Review mutasi bank mu...',\r\n 'financeBanks.then_match_with_your_transactions_in_kledo':\r\n '...kemudian cocokkan dengan transaksi di Kledo',\r\n 'financeBanks.bank_statement': 'Transaksi di bank',\r\n 'financeBanks.go': 'Go',\r\n 'financeBanks.show_received_item': 'Lihat transaksi masuk',\r\n 'financeBanks.find_&_match': 'Cari & Cocokkan',\r\n 'financeBanks.kledo_transaction': 'Transaksi Kledo',\r\n 'financeBanks.subtotal': 'Subtotal',\r\n 'financeBanks.must_match': 'Harus Sesuai',\r\n 'financeBanks.difference': 'Selisih',\r\n 'financeBanks.find_&_select_matching_transactions': '1. Cari dan temukan transaksi yang sesuai',\r\n 'financeBanks.error_cannot_reconcile': 'Gagal tidak dapat merekonsiliasi.',\r\n 'financeBanks.are_you_sure_to_reconcile': 'Apakah Anda yakin akan merekonsiliasi transaksi ini?',\r\n 'financeBanks.difference_must_be_zero': 'Selisih harus 0.',\r\n 'financeBanks.view_your_selected_transactions':\r\n '2. Lihat transaksi yang sudah dipilih, tambah transaksi baru sesuai kebutuhan.',\r\n 'financeBanks.the_sum_of_your_selected_transactions_must_match_the_money_spent':\r\n '3. Jumlah total transaksi yang dipilih harus sesuai dengan mutasi bank. Lakukan penyesuaian sesuai kebutuhan.',\r\n 'financeBanks.show_spent_item': 'Lihat transaksi keluar',\r\n 'financeBanks.to_reconcile': 'Sampai',\r\n 'financeBanks.transactions': 'Transaksi',\r\n 'financeBanks.minimal_value': 'Minimal {value}',\r\n 'financeBanks.maximal_value': 'Maksimal {value}',\r\n 'financeBanks.error_cannot_print_pdf': 'Tidak dapat membuat pdf bank.',\r\n 'financeBanks.print_receipt': 'Cetak Kuitansi',\r\n 'financeBanks.print_remittance_advice': 'Cetak Bukti Kas Keluar',\r\n 'financeBanks.print_cash_receipt': 'Cetak Bukti Kas Masuk',\r\n 'financeBanks.print_expense_slip': 'Cetak Slip Pengeluaran',\r\n 'financeBanks.print_purchase_payment': 'Cetak Pemberitahuan Pembayaran',\r\n 'financeBanks.print_transfer': 'Cetak Bukti Transfer',\r\n 'financeBanks.copy_link_receipt': 'Salin Link Kuitansi',\r\n 'financeBanks.copy_link_remittance_advice': 'Salin Link Bukti Kas Keluar',\r\n 'financeBanks.copy_link_cash_receipt': 'Salin Link Bukti Kas Masuk',\r\n 'financeBanks.copy_link_expense_slip': 'Salin Link Slip Pengeluaran',\r\n 'financeBanks.copy_link_purchase_payment': 'Salin Link Pemberitahuan Pembayaran',\r\n 'financeBanks.copy_link_transfer': 'Salin Link Bukti Transfer',\r\n 'financeBanks.send_email_receipt': 'Kirim Email Kuitansi',\r\n 'financeBanks.send_email_remittance_advice': 'Kirim Email Bukti Kas Keluar',\r\n 'financeBanks.send_email_cash_receipt': 'Kirim Email Bukti Kas Masuk',\r\n 'financeBanks.send_email_expense_slip': 'Kirim Email Slip Pengeluaran',\r\n 'financeBanks.send_email_purchase_payment': 'Kirim Email Pemberitahuan Pembayaran',\r\n 'financeBanks.send_sms_receipt': 'Kirim SMS Kuitansi',\r\n 'financeBanks.send_sms_remittance_advice': 'Kirim SMS Bukti Kas Keluar',\r\n 'financeBanks.send_sms_cash_receipt': 'Kirim SMS Bukti Kas Masuk',\r\n 'financeBanks.send_sms_expense_slip': 'Kirim SMS Slip Pengeluaran',\r\n 'financeBanks.send_sms_purchase_payment': 'Kirim SMS Pemberitahuan Pembayaran',\r\n 'financeBanks.send_wa_receipt': 'Kirim Whatsapp Kuitansi',\r\n 'financeBanks.send_wa_remittance_advice': 'Kirim Whatsapp Bukti Kas Keluar',\r\n 'financeBanks.send_wa_cash_receipt': 'Kirim Whatsapp Bukti Kas Masuk',\r\n 'financeBanks.send_wa_expense_slip': 'Kirim Whatsapp Slip Pengeluaran',\r\n 'financeBanks.send_wa_purchase_payment': 'Kirim Whatsapp Pemberitahuan Pembayaran',\r\n 'financeBanks.1_download_your_bankStatement_template_file':\r\n '1. Download file template mutasi bank',\r\n 'financeBanks.start_by_downloading_our_bankStatement_csv':\r\n 'Mulai dengan mengunduh file template Excel mutasi bank. File ini mempunyai kolom header yang yang dibutuhkan Kledo untuk mengimport detail dari mutasi bank-mu.',\r\n 'financeBanks.2_copy_your_bankStatement_into_the_template':\r\n '2. Salin detail mutasi bank ke dalam template',\r\n 'financeBanks.a_maximum_of_500_bankStatement_can_be_imported_at_a_time':\r\n 'Maksimal 1.000 mutasi bank dapat diimport dalam satu waktu.',\r\n 'financeBanks.import_actions_only_insert_new_bankStatement_cannot_update_or_delete':\r\n 'Saat meng-import, Kledo hanya akan memasukkan data baru, tidak ada data yang dihapus atau diupdate.',\r\n 'financeBanks.bankStatement_successfully_imported':\r\n '{rowCount} baris mutasi bank berhasil diimport.',\r\n 'financeBanks.reconciliation_detail': 'Detil Rekonsiliasi',\r\n 'financeBanks.detail': 'Detil',\r\n 'financeBanks.mutasi_bank': 'Mutasi Bank',\r\n 'financeBanks.transactions_on_kledo': 'Transaksi di Kledo',\r\n 'financeBanks.bank_connect': 'Bank Connect',\r\n 'financeBanks.add_bank_connect': 'Tambah Bank Connect',\r\n 'financeBanks.edit_bank_connect': 'Ubah Bank Connect',\r\n 'financeBanks.choose_bank': 'Pilih bank yang akan dihubungkan ke Kledo',\r\n 'financeBanks.bank_connected': 'Bank yang sudah terhubung ke Kledo',\r\n 'financeBanks.account': 'Akun',\r\n 'financeBanks.fill_out_the_form': 'Isi Formulir',\r\n 'financeBanks.under_review': 'Dalam Peninjauan',\r\n 'financeBanks.signature_and_send': 'Tanda Tangan & Kirim',\r\n 'financeBanks.activation': 'Aktivasi',\r\n 'financeBanks.submission': 'Pengajuan',\r\n 'financeBanks.review': 'Review',\r\n 'financeBanks.active': 'Aktif',\r\n 'financeBanks.cannot_add_bank_connect': 'Tidak dapat menambah bank connect',\r\n 'financeBanks.cannot_update_sort_order': 'Tidak dapat menyimpan pengurutan',\r\n 'financeBanks.cannot_delete_bank_connect': 'Tidak dapat menghapus bank connect',\r\n 'financeBanks.please_select_account': 'Silakan pilih akun',\r\n 'financeBanks.send_submission': 'Kirim Pengajuan',\r\n 'financeBanks.connect_to_account': 'Hubungkan ke Akun',\r\n 'financeBanks.connect_company_desc_1':\r\n 'Untuk dapat terhubung dengan Rekening BCA Bisnis, diperlukan pengaktifan fitur BCA API di rekening BCA Anda.',\r\n 'financeBanks.connect_company_desc_2': 'Berikut langkah-langkah untuk pengaktifan BCA API:',\r\n 'financeBanks.connect_company_desc_3': '- Masukkan data-data Anda pada form di halaman ini.',\r\n 'financeBanks.connect_company_desc_4':\r\n '- Tim Hebat Kledo akan menghubungi Anda melalui WhatsApp untuk konfirmasi dan pengumpulan data lainnya.',\r\n 'financeBanks.connect_company_desc_5':\r\n '- Form pengajuan pengaktifan BCA API akan dikirim Tim Hebat Kledo ke Bank BCA.',\r\n 'financeBanks.connect_company_desc_6':\r\n '- BCA API aktif, dan mutasi rekening Anda akan otomatis terdownload ke Kledo.',\r\n 'financeBanks.connect_company_desc_7': 'Beberapa hal yang perlu Anda ketahui:',\r\n 'financeBanks.connect_company_desc_8':\r\n '- Untuk koneksi BCA API dikenakan biaya dari pihak BCA nya sebesar Rp50.000,- per bulan. Dari pihak Kledo tidak mengenakan biaya sama sekali',\r\n 'financeBanks.connect_company_desc_9':\r\n '- Proses pengajuan pengaktifan dibutuhkan waktu sekitar 2-4 minggu.',\r\n 'financeBanks.connect_company_desc_10':\r\n '- Koneksi BCA API yang dihubungkan dengan Kledo hanya mengambil data mutasi saja, tidak untuk melakukan transfer dana. Sehingga rekening Anda terjamin keamanannya.',\r\n 'financeBanks.account_information': 'Informasi Rekening',\r\n 'financeBanks.bank_account_type': 'Tipe Rekening Bank',\r\n 'financeBanks.internet_banking_username': 'Username Internet Banking',\r\n 'financeBanks.internet_banking_password': 'Password Internet Banking',\r\n 'financeBanks.repeat_internet_banking_password': 'Ulangi Password Internet Banking',\r\n 'financeBanks.please_input_ib_username': 'Silakan masukkan username internet banking',\r\n 'financeBanks.please_input_ib_password': 'Silakan masukkan password internet banking',\r\n 'financeBanks.last_get_data': 'Terakhir Ambil Data',\r\n 'financeBanks.account_owner_name': 'Nama Pemilik Rekening',\r\n 'financeBanks.account_number': 'Nomor Rekening',\r\n 'financeBanks.please_input_account_owner_name': 'Silakan masukkan nama pemilik rekening',\r\n 'financeBanks.please_input_account_number': 'Silakan masukkan nomor rekening',\r\n 'financeBanks.scan_bank_book': 'Scan/Foto Buku Tabungan',\r\n 'financeBanks.please_input_scan_bank_book': 'Silakan masukkan scan/foto buku tabungan',\r\n 'financeBanks.identity_card_information': 'Informasi KTP',\r\n 'financeBanks.company_information': 'Informasi Perusahaan',\r\n 'financeBanks.trade_name': 'Nama Dagang',\r\n 'financeBanks.please_input_trade_name': 'Silakan masukkan Nama Dagang',\r\n 'financeBanks.website': 'Website',\r\n 'financeBanks.please_input_website': 'Silakan masukkan Website',\r\n 'financeBanks.company_email': 'Email Perusahaan',\r\n 'financeBanks.please_input_company_email': 'Silakan masukkan Email Perusahaan',\r\n 'financeBanks.please_input_a_valid_format_email': 'Silakan masukkan format Email yang valid',\r\n 'financeBanks.company_tax_number': 'Nomor NPWP Perusahaan',\r\n 'financeBanks.please_input_company_tax_number': 'Silakan masukkan Nomor NPWP Perusahaan',\r\n 'financeBanks.company_account_number': 'Nomor Rekening Perusahaan',\r\n 'financeBanks.please_input_company_account_number': 'Silakan masukkan Nomor Rekening Perusahaan',\r\n 'financeBanks.office_address': 'Alamat Kantor',\r\n 'financeBanks.please_input_office_address': 'Silakan masukkan Alamat Kantor',\r\n 'financeBanks.corp_id': 'ID Perusahaan',\r\n 'financeBanks.please_input_corp_id': 'Silakan masukkan ID Perusahaan',\r\n 'financeBanks.main_pic': 'PIC Utama',\r\n 'financeBanks.secondary_pic': 'PIC Kedua',\r\n 'financeBanks.position': 'Posisi',\r\n 'financeBanks.please_input_position': 'Silakan masukkan Posisi',\r\n 'financeBanks.id_number': 'NIK',\r\n 'financeBanks.please_input_id_number': 'Silakan masukkan NIK',\r\n 'financeBanks.please_input_email': 'Silakan masukkan Email',\r\n 'financeBanks.phone_number': 'Nomor Telepon',\r\n 'financeBanks.please_input_phone_number': 'Silakan masukkan Nomor Telepon',\r\n 'financeBanks.address_according_to_id_card': 'Alamat sesuai KTP',\r\n 'financeBanks.please_input_address': 'Silakan masukkan Alamat',\r\n 'financeBanks.name_on_bank_account_owner_card': 'Nama Sesuai KTP Pemilik Rekening',\r\n 'financeBanks.identity_card_number': 'Nomor Induk Kependudukan (NIK)',\r\n 'financeBanks.scan_identity_card': 'Scan/Foto KTP',\r\n 'financeBanks.please_input_name_on_bank_account_owner_card': 'Silakan masukkan nama',\r\n 'financeBanks.please_input_identity_card_number': 'Silakan masukkan NIK',\r\n 'financeBanks.please_input_scan_identity_card': 'Silakan masukkan scan/foto KTP',\r\n 'financeBanks.note': 'Catatan',\r\n 'financeBanks.follow_these_steps_to_import_your_bankTrans':\r\n 'Ikuti langkah-langkah berikut untuk meng-import transaksi bank',\r\n 'financeBanks.1_download_your_bankTrans_template_file':\r\n '1. Download file template transaksi bank',\r\n 'financeBanks.start_by_downloading_our_bankTrans_csv':\r\n 'Mulai dengan mengunduh file template dalam format Excel. File ini mempunyai kolom header yang yang dibutuhkan Kledo untuk mengimport detail dari transaksi bank-mu.',\r\n 'financeBanks.download_template_file': 'Download File Template',\r\n 'financeBanks.download_template_data_example_file': 'Download File Contoh',\r\n 'financeBanks.import_bankTrans': 'Import Transaksi Bank',\r\n 'financeBanks.2_copy_your_bankTrans_into_the_template':\r\n '2. Salin detail transaksi bank ke dalam template',\r\n 'financeBanks.using_excel_or_another_spreadsheet_editor':\r\n 'Menggunakan Excel atau software spreadsheeet lainnya, masukkan detail transaksi bank ke dalam file template dari Kledo. Pastikan detail transaksi bank sesuai dengan kolom header yang ada di template.',\r\n 'financeBanks.important': 'PENTING',\r\n 'financeBanks.3_upload_the_updated_template_file_here':\r\n '3. Upload template yang sudah diupdate ke sini',\r\n 'financeBanks.upload': 'Upload',\r\n 'financeBanks.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Simpan file template yang sudah diupdate',\r\n 'financeBanks.a_maximum_of_500_bankTrans_can_be_imported_at_a_time':\r\n 'Maksimal 1.000 transaksi bank dapat diimport dalam satu waktu.',\r\n 'financeBanks.import_actions_only_insert_new_bankTrans_cannot_update_or_delete':\r\n 'Saat meng-import, Kledo hanya akan memasukkan data baru, tidak ada data yang dihapus atau diupdate.',\r\n 'financeBanks.dont_change_the_column_heading_in_the_template_file':\r\n 'Jangan mengubah header kolom di dalam template. Ini dibutuhkan agar import dapat berjalan.',\r\n 'financeBanks.bankTrans_successfully_imported':\r\n '{rowCount} baris transaksi bank berhasil diimport.',\r\n 'financeBanks.go_to_bankTrans_list': 'Ke halaman daftar transaksi bank',\r\n 'financeBanks.revert_reconciliation': 'Batalkan Rekonsiliasi',\r\n 'financeBanks.view_reconciliation': 'Lihat Rekonsiliasi',\r\n 'financeBanks.import_with_bank_template': 'Import dengan format template dari Bank',\r\n 'financeBanks.login_bca_business': '1. Login ke internet banking BCA Bisnis Anda',\r\n 'financeBanks.click_bank_info_mutation_bca': '2. Klik menu Informasi Rekening - Mutasi Rekening',\r\n 'financeBanks.select_format_download_csv':\r\n '3. Pilih format download CSV, dan klik tombol download',\r\n 'financeBanks.upload_downloaded_csv_on_form_below':\r\n '4. Unggah file CSV yang baru saja didownload pada form dibawah',\r\n 'financeBanks.login_mandiri_business': '1. Login ke internet banking Mandiri Bisnis Anda',\r\n 'financeBanks.click_bank_info_mutation_mandiri':\r\n '2. Klik menu Informasi Rekening - Mutasi Rekening',\r\n 'financeBanks.select_excel_click_download': '3. Pilih jenis file Excel, dan klik tombol Unduh',\r\n 'financeBanks.select_download_check_file_download':\r\n '4. Klik menu Unduh Laporan. Centang file yang akan di unduh, kemudian klik tombol Unduh',\r\n 'financeBanks.upload_downloaded_excel_on_form_below':\r\n '5. Unggah file Excel yang baru saja didownload pada form dibawah',\r\n 'financeBanks.the_one_of_accounts_must_be_base_currency': 'Salah satu akun harus mata uang dasar',\r\n 'financeBanks.data_has_been_reconciled': 'Data berhasil di rekonsiliasi.',\r\n 'financeBanks.empty_bank_reconcile_data_message':\r\n 'Untuk merekonsiliasi transaksi bank, silahkan melakukan
import transaksi bank terlebih dahulu.',\r\n 'financeBanks.bank_reconcile_click_here_to_import': 'Klik disini untuk import transaksi bank!',\r\n 'financeBanks.search_bank_statement_at_kledo':\r\n 'Cari mutasi bank yang sesuai dengan transaksi di Kledo',\r\n 'financeBanks.your_selected_transactions':\r\n 'Transaksi yang sudah dipilih, tambah transaksi baru sesuai kebutuhan.',\r\n 'financeBanks.total_transaction_on_kledo_and_bank_mutation_must_be_same':\r\n 'Total transaksi di Kledo harus sama dengan total mutasi',\r\n 'financeBanks.total_transaction_on_kledo': 'Total transaksi di Kledo',\r\n 'financeBanks.total_mutations': 'Total mutasi',\r\n\r\n 'purchases.purchases': 'Ringkasan Pembelian',\r\n 'purchases.purchases_invoices': 'Tagihan Pembelian',\r\n 'purchases.awaiting_payment': 'Menunggu Pembayaran',\r\n 'purchases.overdue': 'Jatuh Tempo',\r\n 'purchases.purchases_total_last_30_days': 'Total Pembelian 30 Hari Terakhir',\r\n 'purchases.purchases_total': 'Total Pembelian',\r\n 'purchases.product': 'Produk',\r\n 'purchases.qty': 'Jml',\r\n 'purchases.value': 'Nilai',\r\n 'purchases.payment_made': 'Pembayaran',\r\n 'purchases.purchases_orders': 'Pesanan Pembelian',\r\n 'purchases.draft': 'Draft',\r\n 'purchases.awaiting_approval': 'Menunggu Approval',\r\n 'purchases.approved': 'Disetujui',\r\n\r\n 'sales.sales': 'Ringkasan Penjualan',\r\n 'sales.invoices': 'Tagihan',\r\n 'sales.awaiting_payment': 'Menunggu Pembayaran',\r\n 'sales.overdue': 'Jatuh Tempo',\r\n 'sales.purchases_total_last_30_days': 'Penjualan 30 Hari Terakhir',\r\n 'sales.product_sales_last_30_days': 'Penjualan Per Produk 30 Hari Terakhir',\r\n 'sales.product_sales': 'Penjualan Per Produk',\r\n 'sales.sales_contact': 'Penjualan Per Pelanggan',\r\n 'sales.purchases_vendor': 'Pembelian Per Vendor',\r\n 'sales.payments.received': 'Pembayaran Diterima',\r\n 'sales.quotes': 'Penawaran',\r\n 'sales.draft': 'Draft',\r\n 'sales.sent': 'Terkirim',\r\n 'sales.accepted': 'Disetujui',\r\n\r\n 'financeNumbers.automatic_sequencing': 'Penomoran Otomatis',\r\n 'financeNumbers.automatic_sequencing_billing': 'Penomoran {title}',\r\n 'financeNumbers.define_the_number_to_be_used':\r\n 'Tentukan nomor yang digunakan untuk membuat penomoran tagihan. Nomor dibawah akan otomatis ditambah setiap dokumen baru dibuat.',\r\n 'financeNumbers.prefix': 'Awalan',\r\n 'financeNumbers.suffix': 'Akhiran',\r\n 'financeNumbers.sequence': 'Nomor saat ini',\r\n 'financeNumbers.please_input_the_next_number': 'Silakan isi nomor saat ini',\r\n 'financeNumbers.sequence_error': 'Nomor saat ini tidak berhasil dibuat.',\r\n 'financeNumbers.error_edit': 'Tidak dapat edit nomor.',\r\n 'financeNumbers.error_check_exist': 'Tidak dapat memeriksa nomor.',\r\n 'financeNumbers.number_is_used': 'Nomor telah di pakai, {link} untuk mendapatkan nomor baru.',\r\n 'financeNumbers.number_format': 'Format Penomoran',\r\n 'financeNumbers.automatic_numbering_output_example': 'Contoh Output Penomoran Otomatis',\r\n 'financeNumbers.reset_number_every': 'Reset Nomor Setiap',\r\n 'financeNumbers.never_reset': 'Tidak pernah reset',\r\n 'financeNumbers.every_month': 'Setiap bulan',\r\n 'financeNumbers.every_year': 'Setiap tahun',\r\n 'financeNumbers.on_date': 'Pada tanggal',\r\n 'financeNumbers.add_numbering_code': 'Tambah Kode Penomoran',\r\n 'financeNumbers.please_input_format': 'Silakan isi format nomor',\r\n 'financeNumbers.please_input_date': 'Silakan isi tanggal',\r\n 'financeNumbers.please_input_month': 'Silakan isi bulan',\r\n 'financeNumbers.trans_number_same_as_original_trans':\r\n 'Nomor transaksi disamakan dengan transaksi asal',\r\n 'financeNumbers.trans_number_same_as_original_trans_desc':\r\n 'Jika aktif, maka saat membuat tagihan dari pemesanan, nomornya akan disamakan dengan pemesanan. Begitu juga untuk transaksi lainnya.',\r\n 'financeNumbers.auto_numbering_lock': 'Nomor transaksi dikunci supaya tidak dapat diubah',\r\n 'financeNumbers.auto_numbering_lock_desc':\r\n 'Jika aktif, maka nomor transaksi akan mengikuti sistem Kledo, tidak dapat diubah oleh pengguna.',\r\n 'financeNumbers.default_settings': 'Pengaturan Default',\r\n 'financeNumbers.add_setting': 'Tambah Pengaturan',\r\n 'financeNumbers.setting_name': 'Nama Pengaturan',\r\n 'financeNumbers.setting_name_is_required': 'Nama Pengaturan wajib diisi!',\r\n 'financeNumbers.valid_for_bank_accounts': 'Berlaku untuk akun bank',\r\n 'financeNumbers.bank_account_is_required': 'Akun bank wajib diisi!',\r\n 'financeNumbers.select_bank_account': 'Pilih Akun Bank',\r\n 'financeNumbers.last_reset_number_log':\r\n 'Terakhir reset nomor pada {date}, [{clickHere}] untuk lihat log',\r\n 'financeNumbers.reset_number_automatic': 'Reset Nomor Otomatis',\r\n\r\n 'financeConversion.your_opening_balances_will_be_set_as_at':\r\n 'Saldo awal akan di set per tanggal {date}',\r\n 'financeConversion.conversion_date': 'Tanggal Konversi',\r\n 'financeConversion.show_zero_balances': 'Tampilkan balance yang nol',\r\n 'financeConversion.conversion_balances': 'Saldo Awal',\r\n 'financeConversion.add_comparative_balances': 'Saldo Pembanding',\r\n 'financeConversion.error_cannot_add_comparative_balances':\r\n 'Tidak dapat menambah saldo pembanding',\r\n 'financeConversion.error_cannot_save_comparative_balances':\r\n 'Tidak dapat menyimpan saldo pembanding',\r\n 'financeConversion.are_you_sure': 'Apakah Anda yakin?',\r\n 'financeConversion.warning': 'Perhatian',\r\n 'financeConversion.reversal_detail': 'Detail Reversal',\r\n 'financeConversion.opening_balance': 'Opening Balance',\r\n 'financeConversion.error_cannot_delete_comparative_balances': 'Gagal menghapus saldo awal',\r\n 'financeConversion.confirm_balances': 'Konfirmasi saldo akun per {endDate}',\r\n 'financeConversion.your_debit_and_credit_total_must_be_balanced':\r\n 'Total debit dan kredi harus sama. Jika kamu tetap ingin menyimpannya, selisih sebesar {diff} akan disimpan sebagai Ekuitas saldo awal.',\r\n 'financeConversion.enter_the_date_that_you_began_processing':\r\n 'Masukkan tanggal Anda memulai memproses transaksi menggunakan Kledo. Akan lebih mudah jika Anda set tanggal konversi sama dengan awal dari periode pajak.',\r\n 'financeConversion.error_cannot_save_conversion_date': 'Tidak dapat menyimpan tanggal konversi',\r\n 'financeConversion.cannot_set_conversion_date':\r\n 'Tidak dapat set tanggal konversi, karena telah dilakukan tutup buku pada bulan ini.',\r\n 'financeConversion.back_to_account_list': 'Back to account list',\r\n 'financeConversion.follow_these_steps_to_import_your_conversion_balance':\r\n 'Ikuti langkah-langkah berikut untuk meng-import saldo awal',\r\n 'financeConversion.1_download_your_conversion_balance_template_file':\r\n '1. Download file template saldo awal',\r\n 'financeConversion.start_by_downloading_our_conversion_balance_csv':\r\n 'Mulai dengan mengunduh file template Excel saldo awal. File ini mempunyai kolom header yang yang dibutuhkan Kledo untuk mengimport detail dari saldo awal-mu.',\r\n 'financeConversion.download_template_file': 'Download File Template',\r\n 'financeConversion.download_template_data_example_file': 'Download File Contoh',\r\n 'financeConversion.import': 'Import Saldo Awal',\r\n 'financeConversion.2_copy_your_conversion_balance_into_the_template':\r\n '2. Salin detail saldo awal ke dalam template',\r\n 'financeConversion.using_excel_or_another_spreadsheet_editor':\r\n 'Menggunakan Excel atau software spreadsheeet lainnya, masukkan detail saldo awal ke dalam file template dari Kledo. Pastikan detail saldo awal sesuai dengan kolom header yang ada di template.',\r\n 'financeConversion.important': 'PENTING',\r\n 'financeConversion.3_upload_the_updated_template_file_here':\r\n '3. Upload template yang sudah diupdate ke sini',\r\n 'financeConversion.upload': 'Upload',\r\n 'financeConversion.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Simpan file template yang sudah diupdate',\r\n 'financeConversion.a_maximum_of_500_conversion_balance_can_be_imported_at_a_time':\r\n 'Maksimal 1.000 saldo awal dapat diimport dalam satu waktu.',\r\n 'financeConversion.import_actions_only_insert_new_conversion_balance_cannot_update_or_delete':\r\n 'Saat meng-import, Kledo hanya akan memasukkan data baru, tidak ada data yang dihapus atau diupdate.',\r\n 'financeConversion.dont_change_the_column_heading_in_the_template_file':\r\n 'Jangan mengubah header kolom di dalam template. Ini dibutuhkan agar import dapat berjalan.',\r\n 'financeConversion.conversion_balance_successfully_imported':\r\n '{rowCount} baris saldo awal berhasil diimport.',\r\n 'financeConversion.go_to_conversion_balance_list': 'Ke halaman daftar saldo awal',\r\n\r\n 'financeManualJournal.add_manual_journal': 'Tambah Jurnal Umum',\r\n 'financeManualJournal.financeManualJournal': 'Jurnal Umum',\r\n 'financeManualJournal.successfully_added': 'berhasil ditambahkan',\r\n 'financeManualJournal.error_cannot_add': 'Tidak dapat menambah jurnal umum',\r\n 'financeManualJournal.error_cannot_update': 'Jurnal umum gagal diperbarui',\r\n 'financeManualJournal.edit_manual_journal': 'Ubah Jurnal Umum',\r\n 'financeManualJournal.max_characters': 'Maks. {value} karakter',\r\n 'financeManualJournal.min_characters': 'Min. {value} karakter',\r\n 'financeManualJournal.only_number_allowed': 'Hanya angka yang diperbolehkan',\r\n 'financeManualJournal.description': 'Deskripsi',\r\n 'financeManualJournal.tax': 'Pajak',\r\n 'financeManualJournal.select_tax': 'Pilih pajak',\r\n 'financeManualJournal.amount': 'Jumlah',\r\n 'financeManualJournal.transaction_date': 'Tanggal Transaksi',\r\n 'financeManualJournal.please_select_transaction_date': 'Silakan pilih tanggal transaksi',\r\n 'financeManualJournal.due_date': 'Jatuh tempo',\r\n 'financeManualJournal.please_select_due_date': 'Silakan isi tanggal jatuh tempo',\r\n 'financeManualJournal.price_include_tax': 'Harga termasuk pajak',\r\n 'financeManualJournal.add_more': 'Tambah baris',\r\n 'financeManualJournal.number': 'Nomor',\r\n 'financeManualJournal.please_input_the_number': 'Silakan masukkan nomor.',\r\n 'financeManualJournal.memo': 'Reference',\r\n 'financeManualJournal.date': 'Tanggal',\r\n 'financeManualJournal.detail_title': 'Jurnal Umum {number}',\r\n 'financeManualJournal.reference': 'Reference',\r\n 'financeManualJournal.attachments': 'Attachment',\r\n 'financeManualJournal.please_input_the_amount': 'Silakan masukkan jumlah',\r\n 'financeManualJournal.follow_these_steps_to_import_your_manualJournal':\r\n 'Ikuti langkah-langkah berikut untuk meng-import jurnal umum',\r\n 'financeManualJournal.1_download_your_manualJournal_template_file':\r\n '1. Download file template jurnal umum',\r\n 'financeManualJournal.start_by_downloading_our_manualJournal_csv':\r\n 'Mulai dengan mengunduh file template Excel jurnal umum. File ini mempunyai kolom header yang yang dibutuhkan Kledo untuk mengimport detail dari jurnal umum-mu.',\r\n 'financeManualJournal.download_template_file': 'Download File Template',\r\n 'financeManualJournal.download_template_data_example_file': 'Download File Contoh',\r\n 'financeManualJournal.import': 'Import Jurnal Umum',\r\n 'financeManualJournal.2_copy_your_manualJournal_into_the_template':\r\n '2. Salin detail jurnal umum ke dalam template',\r\n 'financeManualJournal.using_excel_or_another_spreadsheet_editor':\r\n 'Menggunakan Excel atau software spreadsheeet lainnya, masukkan detail jurnal umum ke dalam file template dari Kledo. Pastikan detail jurnal umum sesuai dengan kolom header yang ada di template.',\r\n 'financeManualJournal.important': 'PENTING',\r\n 'financeManualJournal.3_upload_the_updated_template_file_here':\r\n '3. Upload template yang sudah diupdate ke sini',\r\n 'financeManualJournal.upload': 'Upload',\r\n 'financeManualJournal.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Simpan file template yang sudah diupdate',\r\n 'financeManualJournal.a_maximum_of_500_manualJournal_can_be_imported_at_a_time':\r\n 'Maksimal 1.000 jurnal umum dapat diimport dalam satu waktu.',\r\n 'financeManualJournal.import_actions_only_insert_new_manualJournal_cannot_update_or_delete':\r\n 'Saat meng-import, Kledo hanya akan memasukkan data baru, tidak ada data yang dihapus atau diupdate.',\r\n 'financeManualJournal.dont_change_the_column_heading_in_the_template_file':\r\n 'Jangan mengubah header kolom di dalam template. Ini dibutuhkan agar import dapat berjalan.',\r\n 'financeManualJournal.manualJournal_successfully_imported':\r\n '{rowCount} baris jurnal umum berhasil diimport.',\r\n 'financeManualJournal.go_to_manualJournal_list': 'Ke halaman daftar jurnal umum',\r\n\r\n 'financeManualJournal.status': 'Status',\r\n 'financeManualJournal.balance_due': 'Sisa Tagihan',\r\n 'financeManualJournal.total': 'Total',\r\n 'financeManualJournal.search_by_memo': 'Cari',\r\n 'financeManualJournal.the_due_date_max_higger_than_transaction_date':\r\n 'Tanggal kadaluarsa harus sama atau setelah tanggal transaksi',\r\n 'financeManualJournal.customer': 'Pelanggan',\r\n 'financeManualJournal.detail_manual_journal': 'Detil Jurnal Umum',\r\n 'financeManualJournal.account': 'Akun',\r\n 'financeManualJournal.debit': 'Debit',\r\n 'financeManualJournal.credit': 'Kredit',\r\n 'financeManualJournal.select_account': 'Pilih akun',\r\n 'financeManualJournal.diff': 'Kredit dan debit terdapat selisih sebesar {diff}',\r\n 'financeManualJournal.total_debits_must_equal_total_credits':\r\n 'Total pemasukan harus sama dengan total pengeluaran.',\r\n 'financeManualJournal.debit_or_credit_must_greater_than_0':\r\n 'Debit atau credit harus lebih besar dari 0.',\r\n 'financeManualJournal.total_debit': 'Total Debit',\r\n 'financeManualJournal.total_credit': 'Total Kredit',\r\n\r\n 'financeFixedAssets.register': 'Daftarkan',\r\n 'financeFixedAssets.fixed_assets': 'Aset Tetap',\r\n 'financeFixedAssets.add_fixed_asset': 'Tambah Aset Tetap',\r\n 'financeFixedAssets.asset_name': 'Nama Aset',\r\n 'financeFixedAssets.purchase_invoice': 'Tagihan Pembelian',\r\n 'financeFixedAssets.purchase_date': 'Tanggal Pembelian',\r\n 'financeFixedAssets.purchase_price': 'Harga Beli',\r\n 'financeFixedAssets.book_value': 'Nilai Buku',\r\n 'financeFixedAssets.init_cost': 'Biaya Awal',\r\n 'financeFixedAssets.disposal_date': 'Tanggal Pelepasan',\r\n 'financeFixedAssets.disposal_price': 'Harga Jual',\r\n 'financeFixedAssets.gain': 'Untung/Rugi',\r\n 'financeFixedAssets.number': 'Nomor',\r\n 'financeFixedAssets.purchase_price_from': 'Dari',\r\n 'financeFixedAssets.purchase_price_to': 'Sampai',\r\n 'financeFixedAssets.details': 'Detil',\r\n 'financeFixedAssets.please_input_the_asset_name': 'Silakan isikan nama aset',\r\n 'financeFixedAssets.max_characters': 'Maks {value} karakter.',\r\n 'financeFixedAssets.min_characters': 'Min {value} karakter.',\r\n 'financeFixedAssets.please_select_purchase_date': 'Silakan masukkan tanggal pembelian',\r\n 'financeFixedAssets.please_input_the_purchase_price': 'Silakan masukkan harga pembelian',\r\n 'financeFixedAssets.fixed_asset_account': 'Akun Aset Tetap',\r\n 'financeFixedAssets.please_select_a_fixed_asset_account': 'Silakan pilih akun aset tetap',\r\n 'financeFixedAssets.select_fixed_asset_account': 'Pilih akun aset tetap',\r\n 'financeFixedAssets.credited_from_account': 'Dikreditkan Dari Akun',\r\n 'financeFixedAssets.please_select_a_credit_from_account': 'Silakan pilih dikreditkan dari akun',\r\n 'financeFixedAssets.select_credit_from_account': 'Silakan pilih dikreditkan dari akun',\r\n 'financeFixedAssets.description': 'Deskripsi',\r\n 'financeFixedAssets.must_greater_than_0': 'Harus lebih besar dari 0',\r\n 'financeFixedAssets.depreciation': 'Penyusutan',\r\n 'financeFixedAssets.no_depreciation': 'Tanpa penyusutan',\r\n 'financeFixedAssets.accumulated_depreciation_account': 'Akun Akumulasi Penyusutan',\r\n 'financeFixedAssets.select_accumulated_depreciation_account':\r\n 'Silakan pilih akun akumulasi penyusutan',\r\n 'financeFixedAssets.depreciation_expense_account': 'Akun penyusutan',\r\n 'financeFixedAssets.select_depreciation_expense_account': 'Silakan pilih akubn penyusutan',\r\n 'financeFixedAssets.depreciation_method': 'Metode Penyusutan',\r\n 'financeFixedAssets.select_depreciation_method': 'Silakan pilih metode penyusutan',\r\n 'financeFixedAssets.rate': 'Nilai penyusutan per tahun',\r\n 'financeFixedAssets.effective_life': 'Masa Manfaat (tahun)',\r\n 'financeFixedAssets.show_more_options': 'Tampilkan opsi lainnya',\r\n 'financeFixedAssets.depreciation_start_date': 'Tanggal Mulai Penyusutan',\r\n 'financeFixedAssets.accumulated_depreciation': 'Akumulasi Penyusutan',\r\n 'financeFixedAssets.cost_limit': 'Batas Biaya',\r\n 'financeFixedAssets.residual_value': 'Nilai Residu',\r\n 'financeFixedAssets.hide_more_options': 'Sembunyikan opsi lainnya',\r\n 'financeFixedAssets.please_select_a_accumulated_depreciation_account':\r\n 'Silakan pilih akun akumulasi penyusutan',\r\n 'financeFixedAssets.please_select_a_depreciation_expense_account':\r\n 'Silakan pilih akun penyusutan',\r\n 'financeFixedAssets.please_select_a_depreciation_method': 'Silakan pilih metode penyusutan',\r\n 'financeFixedAssets.must_equal_or_smaller_than_cost_limit_minus_residual_value':\r\n 'Harus sama atau lebih kecil dari batas biaya dikurang nilai residu',\r\n 'financeFixedAssets.must_equal_or_smaller_than_purchase_price':\r\n 'Harus sama atau lebih kecil dari harga pembelian',\r\n 'financeFixedAssets.must_equal_or_smaller_than_cost_limit':\r\n 'Harus sama atau lebih kecil dari batas biaya',\r\n 'financeFixedAssets.transactions': 'Transaksi',\r\n 'financeFixedAssets.detail_fixed_asset': 'Detil Aset Tetap',\r\n 'financeFixedAssets.detail_title': 'Aset Tetap {detail}',\r\n 'financeFixedAssets.date': 'Tanggal',\r\n 'financeFixedAssets.reference': 'Reference',\r\n 'financeFixedAssets.debit': 'Debit',\r\n 'financeFixedAssets.credit': 'Kredit',\r\n 'financeFixedAssets.undo_dispose': 'Kembalikan Pelepasan',\r\n 'financeFixedAssets.dispose': 'Lepas/Jual',\r\n 'financeFixedAssets.rollback_depreciation': 'Kembalikan Penyusutan',\r\n 'financeFixedAssets.error_cannot_add': 'Gagal menambah aset tetap.',\r\n 'financeFixedAssets.error_cannot_update': 'Gagal mengubah aset tetap.',\r\n 'financeFixedAssets.edit_title': 'Ubah Aset Tetap {detail}',\r\n 'financeFixedAssets.dispose_fixed_asset': 'Lepas/Jual Aset Tetap',\r\n 'financeFixedAssets.dispose_title': 'Lepas/Jual {title}',\r\n 'financeFixedAssets.last_depreciation': 'Penyusutan Terakhir',\r\n 'financeFixedAssets.sale_price': 'Harga Penjualan/Pelepasan',\r\n 'financeFixedAssets.journal_entries': 'Entri Journal',\r\n 'financeFixedAssets.name': 'Nama',\r\n 'financeFixedAssets.account': 'Akun',\r\n 'financeFixedAssets.acquisition_const': 'Biaya Akuisisi',\r\n 'financeFixedAssets.gain_on_disposal': 'Untung pada pelepasan/penjualan',\r\n 'financeFixedAssets.loss_on_disposal': 'Kerugian pada pelepasan/penjualan',\r\n 'financeFixedAssets.please_select_disposal_date': 'Silakan pilih tanggal pelepasan',\r\n 'financeFixedAssets.please_input_the_sale_price': 'Silakan isikan harga penjualan/pelepasan',\r\n 'financeFixedAssets.deposit_to': 'Didepositkan ke',\r\n 'financeFixedAssets.deposit_to_account': 'Deposit ke akun',\r\n 'financeFixedAssets.please_select_a_deposit_to_account': 'Silakan pilih deposit ke akun.',\r\n 'financeFixedAssets.must_equal_or_higher_than_purchase_date_and_last_depreciation_date':\r\n 'Harus sama atau setelah tanggal pemnbelian dan tanggal penyusutan terakhir',\r\n 'financeFixedAssets.must_equal_or_higher_than_purchase_date':\r\n 'Harus sama atau setelah tanggal pemnbelian',\r\n 'financeFixedAssets.register_fixed_asset': 'Daftarkan Aset Tetap',\r\n 'financeFixedAssets.run_depreciation': 'Jalankan Penyusutan',\r\n 'financeFixedAssets.period': 'Periode',\r\n 'financeFixedAssets.method': 'Metode',\r\n 'financeFixedAssets.depreciation_amount': 'Jumlah Penyusutan',\r\n 'financeFixedAssets.error_cannot_run_depreciation': 'Gagal menjalankan penyusutan.',\r\n 'financeFixedAssets.please_select_at_least_a_depreciation':\r\n 'Silakan pilih paling tidak satu penyusutan.',\r\n 'financeFixedAssets.depreciation_executed_successfully': 'Penyusutan berhasil dijalankan.',\r\n 'financeFixedAssets.back_to_asset_list': 'Kembali ke daftar aset tetap',\r\n 'financeFixedAssets.apply_depreciation': 'Jalankan Penyusutan',\r\n 'financeFixedAssets.are_u_sure_to_undo_dispose':\r\n 'Apakah kamu yakin akan membatalkan penjualan/pelepasan?',\r\n 'financeFixedAssets.are_u_sure_to_rollback_depreciation':\r\n 'Apakah kamu yakin akan membatalkan/mengembalikan penyusutan?',\r\n 'financeFixedAssets.please_input_the_number': 'Silakan isikan nomor.',\r\n 'financeFixedAssets.select_deposit_to_account': 'Pilih akun pengeluaran',\r\n 'financeFixedAssets.edit_fixed_asset': 'Ubah Aset Tetap',\r\n 'financeFixedAssets.error_cannot_rollback_depreciation':\r\n 'Error tidak dapat mengembalikan penyusutan.',\r\n 'financeFixedAssets.detail_fixed_asset_transaction': 'Detil Transaksi Aset Tetap',\r\n 'financeFixedAssets.dispose_detail': 'Pelepasan/Penjualan',\r\n 'financeFixedAssets.follow_these_steps_to_import_your_fixedAsset':\r\n 'Ikuti langkah-langkah berikut untuk meng-import aset tetap',\r\n 'financeFixedAssets.1_download_your_fixedAsset_template_file':\r\n '1. Download file template aset tetap',\r\n 'financeFixedAssets.start_by_downloading_our_fixedAsset_csv':\r\n 'Mulai dengan mengunduh file template Excel aset tetap. File ini mempunyai kolom header yang yang dibutuhkan Kledo untuk mengimport detail dari aset tetap-mu.',\r\n 'financeFixedAssets.download_template_file': 'Download File Template',\r\n 'financeFixedAssets.download_template_data_example_file': 'Download File Contoh',\r\n 'financeFixedAssets.import': 'Import Aset Tetap',\r\n 'financeFixedAssets.2_copy_your_fixedAsset_into_the_template':\r\n '2. Salin detail aset tetap ke dalam template',\r\n 'financeFixedAssets.using_excel_or_another_spreadsheet_editor':\r\n 'Menggunakan Excel atau software spreadsheeet lainnya, masukkan detail aset tetap ke dalam file template dari Kledo. Pastikan detail aset tetap sesuai dengan kolom header yang ada di template.',\r\n 'financeFixedAssets.important': 'PENTING',\r\n 'financeFixedAssets.3_upload_the_updated_template_file_here':\r\n '3. Upload template yang sudah diupdate ke sini',\r\n 'financeFixedAssets.upload': 'Upload',\r\n 'financeFixedAssets.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Simpan file template yang sudah diupdate',\r\n 'financeFixedAssets.a_maximum_of_500_fixedAsset_can_be_imported_at_a_time':\r\n 'Maksimal 1.000 aset tetap dapat diimport dalam satu waktu.',\r\n 'financeFixedAssets.import_actions_only_insert_new_fixedAsset_cannot_update_or_delete':\r\n 'Saat meng-import, Kledo hanya akan memasukkan data baru, tidak ada data yang dihapus atau diupdate.',\r\n 'financeFixedAssets.dont_change_the_column_heading_in_the_template_file':\r\n 'Jangan mengubah header kolom di dalam template. Ini dibutuhkan agar import dapat berjalan.',\r\n 'financeFixedAssets.fixedAsset_successfully_imported':\r\n '{rowCount} baris aset tetap berhasil diimport.',\r\n 'financeFixedAssets.go_to_fixedAsset_list': 'Ke halaman daftar aset tetap',\r\n 'financeFixedAssets.the_date_this_asset_was_purchased_or_acquired':\r\n 'Tanggal aset ini dibeli atau diperoleh.',\r\n 'financeFixedAssets.the_total_cost_of_acquiring_this_asset':\r\n 'Total biaya untuk memperoleh aset ini, tanpa pajak.',\r\n 'financeFixedAssets.account_to_hold_the_balance_of_this_fixed_asset':\r\n 'Akun untuk menampung saldo aset tetap ini.',\r\n 'financeFixedAssets.account_for_crediting_the_purchase_of_fixed_asset':\r\n 'Akun untuk mengkreditkan pembelian aset tetap. Contohnya Kas, Pinjaman atau Modal.',\r\n 'financeFixedAssets.an_expense_account_to_record_monthly_depreciation':\r\n ' Akun biaya untuk merekam penyusutan setiap bulannya.',\r\n 'financeFixedAssets.accounts_for_contra_assets_to_accommodate_accumulated_depreciation':\r\n 'Akun untuk kontra aset untuk menampung akumulasi penyusutan.',\r\n 'financeFixedAssets.percent_depreciation_value_each_year':\r\n 'Nilai persen penyusutan setiap tahunnya.',\r\n 'financeFixedAssets.the_longevity_of_the_asset_since_purchase_in_years':\r\n 'Panjang usia aset sejak dibeli dalam tahun.',\r\n 'financeFixedAssets.method_of_calculating_assets_each_months':\r\n 'Metode perhitungan aset tiap bulannya{br}Straight Line = Penyusutan secara rata- rata sepanjang masa manfaat aset.{br}Sebagai contoh jika harga beli aset 1000 dan nilai penyusutan 20%, maka depresiasi per tahunnya adalah 1000 * 20% = 200{br}Declining Balance 100% = Penyusutan dengan tingkat penurunan lebih besar diawal usia aset.{br}Sebagai contoh jika harga beli aset 1000 dan nilai penyusutan 20%, maka{br}Penyusutan Tahun Pertama = 1000 x 20% = 200{br}Penyusutan Tahun Kedua = (1000 - 200) x 20% = 160
Penyusutan Tahun Ketiga = (800 - 160) x 20% = 128{br}Declining Balance 150% menghitung penuyutan dengan nilai penyusutan dikali 150%{br}Declining Balance 200% menghitung penuyutan dengan nilai penyusutan dikali 200%',\r\n 'financeFixedAssets.the_commencement_date_of_the_accumulated_depreciation_account_opening_balance':\r\n 'Tanggal dimulainya saldo awal akun akumulasi penyusutan. Bisa diisi sama dengan tanggal pembelian aset, atau lebih baik menggunakan tanggal awal periode atau tanggal migrasi.',\r\n 'financeFixedAssets.beginning_balance_for_accumulated_depreciation_accounts':\r\n 'Saldo awal untuk akun akumulasi penyusutan dari pembukuan atau pencatatan yang lalu.',\r\n 'financeFixedAssets.the_upper_limit_on_the_value_of_the_depreciated_assets':\r\n 'Batas atas nilai aset yang disusutkan. Misalnya aset dibeli dengan harga Rp1000, kemudian diset batas biaya Rp600, maka hanya Rp600 saja yang disusutkan.',\r\n 'financeFixedAssets.the_residual_value_is_the_minimum_amount_of_assets':\r\n 'Nilai residu adalah batas minimal nilai aset yang sudah tidak dapat disusutkan kembali. Misalnya aset dibeli dengan harga Rp1000, kemudian nilai residu diset Rp200. Maka saat aset tersebut disusutkan tiap bulannya, dan nilai aset akhirnya tinggal Rp200, maka aset tersebut sudah tidak disusutkan kembali.',\r\n 'financeFixedAssets.image': 'Gambar Aset Tetap',\r\n 'financeFixedAssets.show_image': 'Tampilkan gambar aset tetap',\r\n 'financeFixedAssets.hide_image': 'Sembunyikan gambar aset tetap',\r\n\r\n 'financeLockDate.lock_date': 'Tanggal Penguncian',\r\n 'financeLockDate.lock_date_will_stop_data_from_being_changed':\r\n 'Dengan tanggal penguncian maka semua transaksi pada dan sebelum tanggal penguncian tidak dapat diubah, dihapus dan ditambah. Kamu bisa mengubah tanggal penguncian setiap saat.',\r\n 'financeLockDate.stop_all_users_making_changes_on_and_before':\r\n 'Cegah semua pengguna untuk membuat perubahan pada tanggal dan sebelum tanggal',\r\n 'financeLockDate.please_select_a_date': 'Silakan pilih tanggal.',\r\n 'financeLockDate.error_cannot_set_lock_date': 'Gagal mengubah tanggal penguncian',\r\n 'financeLockDate.cannot_higher_than_now':\r\n 'Tanggal penguncian harus sebelum atau sama dengan hari ini',\r\n 'financeLockDate.cannot_select_before_lock_date':\r\n 'Tidak dapat memilih tanggal sebelum tanggal penguncian',\r\n 'financeLockDate.this_transaction_is_locked':\r\n 'Transaksi ini dikunci. Silakan buka kunci dengan mengubah tanggal penguncian',\r\n 'financeLockDate.click_button_below_to_remove_the_lock_date':\r\n 'Klik tombol di bawah untuk menghapus tanggal penguncian',\r\n 'financeLockDate.remove_lock_date': 'Hapus Tanggal Penguncian',\r\n 'financeFixedAssets.error_cannot_delete': 'Gagal menghapus tanggal penguncian.',\r\n\r\n 'property.property': 'Properti',\r\n 'property.company': 'Perusahaan',\r\n 'property.property_details': 'Detil Properti',\r\n 'property.company_details': 'Data Perusahaan',\r\n 'property.tax_details': 'Pengaturan Pajak',\r\n 'property.system_settings': 'Pengaturan Sistem',\r\n 'property.property_logo': 'Logo Properti',\r\n 'property.company_logo': 'Logo Perusahaan',\r\n 'property.error_cannot_update_tax_details': 'tipe Gagal',\r\n 'property.property_details_successfully_updated': 'Detil properti berhasil diperbarui.',\r\n 'property.company_details_successfully_updated': 'tipe Perusahaan',\r\n 'property.error_cannot_update_property_details': 'Gagal memperbarui detail properti.',\r\n 'property.error_cannot_update_company_details': 'Tidak dapat mengubah company details.',\r\n 'property.system_details_successfully_updated': 'Detil sistem berhasil diperbarui.',\r\n 'property.error_cannot_update_system_details': 'tipe Gagal',\r\n 'property.tax_details_successfully_updated': 'Rincian pajak berhasil diperbarui.',\r\n 'property.property_name': 'Nama',\r\n 'property.company_name': 'Nama',\r\n 'property.please_input_the_property_name': 'Silakan masukkan nama properti.',\r\n 'property.please_input_the_company_name': 'Silakan masukkan company name.',\r\n 'property.max_100_characters': 'Maks 100 karakter.',\r\n 'property.emai_address': 'Alamat email',\r\n 'property.invalid_email_address_format': 'Format alamat email tidak valid.',\r\n 'property.phone_number': 'Nomor telepon',\r\n 'property.max_20_characters': 'Nomor telepon',\r\n 'property.only_number_allowed': 'Hanya angka yang diizinkan.',\r\n 'property.address': 'Alamat Penagihan',\r\n 'property.address_delivery': 'Alamat Pengiriman',\r\n 'property.country': 'Negara',\r\n 'property.tax_number': 'Nomor NPWP Perusahaan',\r\n 'property.please_select_the_country': 'Silakan pilih negara.',\r\n 'property.select_country': 'Pilih negara',\r\n 'property.arrival_time': 'Jam kedatangan',\r\n 'property.departure_time': 'Jam keberangkatan',\r\n 'property.image_file_size_maximal': 'Ukuran file gambar maksimal',\r\n 'property.language': 'Bahasa',\r\n 'property.select_time_region': 'Pilih zona waktu',\r\n 'property.timezone': 'Zona waktu',\r\n 'property.please_select_the_language': 'Silakan pilih bahasanya.',\r\n 'property.select_timezone': 'Pilih zona waktu',\r\n 'property.please_select-the_timezone': 'Silakan pilih zona waktu.',\r\n 'property.date_format': 'Format tanggal',\r\n 'property.please_select_the_date_format': 'Silakan pilih format tanggal.',\r\n 'property.select_date_format': 'Pilih format tanggal',\r\n 'property.time_format': 'Format waktu',\r\n 'property.please_select_the_time_format': 'Silakan pilih format waktu.',\r\n 'property.select_time_format': 'Pilih format waktu',\r\n 'property.Currency_Format': 'Format mata uang',\r\n 'property.please_select_the_currency_format': 'Silakan pilih format mata uang.',\r\n 'property.select_currency_format': 'Pilih format mata uang ',\r\n 'property.country_tax_identifier_name': 'Nama Pengenal Pajak Negara',\r\n 'property.only_alphanumeric_allowed': 'Hanya alfanumerik yang diizinkan.',\r\n 'property.company_tax_number': 'Nomor Pajak Perusahaan',\r\n 'property.tax_name': 'Nama Pajak',\r\n 'property.tax_rate': 'Persentase pajak',\r\n 'property.image_file_dimension_maximal': 'Dimensi file gambar maksimal',\r\n 'property.click_or_drag_file_to_this_area_to_upload':\r\n 'Klik atau seret file ke area ini untuk mengunggah',\r\n 'property.preview': 'Pratinjau',\r\n 'property.file_uploaded_successfully': 'berkas berhasil diunggah.',\r\n 'property.file_upload_failed': 'gagal unggah file.',\r\n 'property.you_can_only_upload_jpg_or_png_file_': 'Anda hanya dapat mengunggah file JPG / PNG.',\r\n 'property.image_must_smaller_than': 'Gambar harus lebih kecil dari',\r\n 'property.image_width_must_smaller_than': 'Lebar gambar harus lebih kecil dari',\r\n 'property.image_height_must_smaller_than': 'Tinggi gambar harus lebih kecil dari ',\r\n 'property.currency': 'Mata uang',\r\n 'property.please_select_the_currency': 'Silakan pilih mata uang.',\r\n 'property.select_currency': 'Pilih Mata Dana',\r\n 'property.number_after_comma': 'Jumlah angka di belakang koma',\r\n 'property.please_select_the_number_after_comma': 'Silakan pilih jumlah angka di belakang koma.',\r\n 'property.select_number_after_comma': 'Pilih jumlah angka di belakang koma',\r\n\r\n 'financeWareHouses.add_warehouse': 'Tambah Gudang',\r\n 'financeWareHouses.financeWareHouses': 'Gudang',\r\n 'financeWareHouses.warehouse_name': 'Nama Gudang',\r\n 'financeWareHouses.successfully_added': 'berhasil ditambahkan.',\r\n 'financeWareHouses.error_cannot_add': 'Tidak dapat menambah',\r\n 'financeWareHouses.error_cannot_update': 'Tidak dapat mengubah gudang.',\r\n 'financeWareHouses.error_cannot_move': 'Tidak dapat memindah gudang.',\r\n 'financeWareHouses.error_cannot_change_status': 'Tidak dapat mengubah status gudang.',\r\n 'financeWareHouses.error_cannot_load_warehouses': 'Tidak dapat memuat data gudang.',\r\n 'financeWareHouses.edit_warehouse': 'Ubah Gudang',\r\n 'financeWareHouses.please_input_the_name': 'Silakan masukkan nama.',\r\n 'financeWareHouses.please_input_the_code': 'Silakan masukkan kode.',\r\n 'financeWareHouses.name': 'Nama',\r\n 'financeWareHouses.code': 'Kode',\r\n 'financeWareHouses.max_characters': 'Maks {value} karakter.',\r\n 'financeWareHouses.min_characters': 'Min {value} karakter.',\r\n 'financeWareHouses.only_alphanumeric_allowed': 'Hanya huruf dan angka yang diperkenankan.',\r\n 'financeWareHouses.desc': 'Deskripsi',\r\n 'financeWareHouses.total_value': 'Total Nilai',\r\n 'financeWareHouses.stock_adjustment': 'Penyesuaian Stok',\r\n 'financeWareHouses.warehouse_transfer': 'Transfer Gudang',\r\n 'financeWareHouses.import_warehouse_transfer': 'Import Transfer Gudang',\r\n 'financeWareHouses.transfer_in': 'Transfer Masuk',\r\n 'financeWareHouses.transfer_out': 'Transfer Keluar',\r\n 'financeWareHouses.qty': 'Qty',\r\n 'financeWareHouses.value': 'Nilai',\r\n 'financeWareHouses.detail_warehouse': 'Detail Gudang',\r\n 'financeWareHouses.show_transactions': 'Lihat Transaksi',\r\n 'financeWareHouses.hide_transactions': 'Sembunyikan Transaksi',\r\n 'financeWareHouses.purchase_&_sale': 'Pembelian & Penjualan',\r\n 'financeWareHouses.transactions': 'Transaksi',\r\n 'financeWareHouses.date': 'Tanggal',\r\n 'financeWareHouses.type': 'Tipe',\r\n 'financeWareHouses.number': 'Nomor',\r\n 'financeWareHouses.debit': 'Debit',\r\n 'financeWareHouses.credit': 'Kredit',\r\n 'financeWareHouses.from': 'Dari',\r\n 'financeWareHouses.to': 'Ke',\r\n 'financeWareHouses.adjustment_type': 'Tipe penyesuaian stok',\r\n 'financeWareHouses.please_select_date': 'Silakan pilih tanggal',\r\n 'financeWareHouses.warehouse_transfer_out': 'Transfer Keluar Gudang',\r\n 'financeWareHouses.warehouse_transfer_in': 'Transfer Masuk Gudang',\r\n 'financeWareHouses.qty_before': 'Qty Sebelumnya',\r\n 'financeWareHouses.qty_after': 'Qty Setelahnya',\r\n 'financeWareHouses.transfer_qty': 'Transfer Qty',\r\n 'financeWareHouses.add_more': 'Tambah baris',\r\n 'financeWareHouses.attachments': 'Attachments',\r\n 'financeWareHouses.select_warehouse': 'Pilih gudang',\r\n 'financeWareHouses.please_input_the_transfer_qty': 'Silakan masukkan jumlah yang ditransfer.',\r\n 'financeWareHouses.please_select_a_warehouse': 'Silakan pilih gudang.',\r\n 'financeWareHouses.must_greater_than_0': 'Harus lebih dari 0.',\r\n 'financeWareHouses.detail_transfer': 'Transfer Gudang {number}',\r\n 'financeWareHouses.detail_transfer_title': 'Detail Transfer Gudang',\r\n 'financeWareHouses.edit_warehouse_transfer': 'Ubah Transfer Gudang',\r\n 'financeWareHouses.insufficient_stock': 'Stok tidak mencukupi',\r\n 'financeWareHouses.detail_stockadjustment_title': 'Detail Penyesuaian Stok',\r\n 'financeWareHouses.detail_stockadjustment': 'Penyesuaian Stok {number}',\r\n 'financeWareHouses.difference': 'Selisih',\r\n 'financeWareHouses.average_price': 'Harga Rata-rata',\r\n 'financeWareHouses.actual_qty': 'Qty Aktual',\r\n 'financeWareHouses.actual_qty_2': 'Kuantitas Aktual',\r\n 'financeWareHouses.account': 'Akun',\r\n 'financeWareHouses.add_stock_adjustment': 'Tambah Penyesuaian Stok',\r\n 'financeWareHouses.import_stock_adjustment': 'Import Penyesuaian Stok',\r\n 'financeWareHouses.download': 'Download',\r\n 'financeWareHouses.please_select_adjustment_type': 'Silakan pilih tipe penyesuaian stok',\r\n 'financeWareHouses.select_account': 'Pilih akun',\r\n 'financeWareHouses.recorded_qty': 'Qty Tercatat',\r\n 'financeWareHouses.please_input_the_actual_qty': 'Silakan isi kauntiti aktual',\r\n 'financeWareHouses.please_input_the_difference_qty': 'Silakan isi perbedaan kuantiti',\r\n 'financeWareHouses.please_input_the_average_price': 'Silakan isi harga rata-rata',\r\n 'financeWareHouses.error_cannot_update_stock_adjustment': 'Tidak dapat mengubah penyesuaian stok',\r\n 'financeWareHouses.error_cannot_add_stock_adjustment': 'Tidak dapat menambah penyesuaian stok',\r\n 'financeWareHouses.edit_stock_adjustment': 'Ubah Penyesuaian Stok',\r\n 'financeWareHouses.transfer': 'Transfer',\r\n 'financeWareHouses.total_qty': 'Total Kuantitas',\r\n 'financeWareHouses.cannot_less_than_0': 'Tidak boleh kurang dari 0.',\r\n 'financeWareHouses.follow_these_steps_to_import_your_stockAdjustment':\r\n 'Ikuti langkah-langkah berikut untuk menyensuaikan stok',\r\n 'financeWareHouses.1_download_your_stockAdjustment_template_file':\r\n '1. Download file template penyesuaian stok',\r\n 'financeWareHouses.start_by_downloading_our_stockAdjustment_csv':\r\n 'Mulai dengan mengunduh file template Excel penyesuaian stok. File ini mempunyai kolom header yang yang dibutuhkan Kledo untuk mengimport detail dari penyesuaian stok-mu.',\r\n 'financeWareHouses.download_template_file': 'Download File Template',\r\n 'financeWareHouses.download_template_data_example_file': 'Download File Contoh',\r\n 'financeWareHouses.import': 'Import Penyesuaian Stok',\r\n 'financeWareHouses.2_copy_your_stockAdjustment_into_the_template':\r\n '2. Salin detail penyesuaian stok ke dalam template',\r\n 'financeWareHouses.important': 'PENTING',\r\n 'financeWareHouses.3_upload_the_updated_template_file_here':\r\n '3. Upload template yang sudah diupdate ke sini',\r\n 'financeWareHouses.upload': 'Upload',\r\n 'financeWareHouses.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Simpan file template yang sudah diupdate',\r\n 'financeWareHouses.a_maximum_of_500_stockAdjustment_can_be_imported_at_a_time':\r\n 'Maksimal 1.000 penyesuaian stok dapat diimport dalam satu waktu.',\r\n 'financeWareHouses.import_actions_only_insert_new_stockAdjustment_cannot_update_or_delete':\r\n 'Saat meng-import, Kledo hanya akan memasukkan data baru, tidak ada data yang dihapus atau diupdate.',\r\n 'financeWareHouses.dont_change_the_column_heading_in_the_template_file':\r\n 'Jangan mengubah header kolom di dalam template. Ini dibutuhkan agar import dapat berjalan.',\r\n 'financeWareHouses.stockAdjustment_successfully_imported':\r\n '{rowCount} baris penyesuaian stok berhasil diimport.',\r\n 'financeWareHouses.go_to_stockAdjustment_list': 'Ke halaman daftar penyesuaian stok',\r\n 'financeWareHouses.account_id_help': 'Pilih akun penyesuaian stok untuk penjurnalan.',\r\n 'financeWareHouses.count_stock_help':\r\n 'Jika ingin melakukan stok opname, pilih tipe perhitungan stok. Dengan tipe ini, jumlah stok barang akan dikunci sehingga seluruh pergerakan stok sebelum dilakukannya penyesuaian stok ini akan diabaikan.',\r\n 'financeWareHouses.count_stock_in_out_help':\r\n 'Jika ingin menambah atau mengurangi stok dari suatu gudang, pilih tipe Stok Masuk / Keluar.',\r\n 'financeWareHouses.warehouse_transfer_successfully_imported':\r\n '{rowCount} transfer gudang berhasil diimport.',\r\n 'financeWareHouses.go_to_warehouse_page': 'Ke halaman gudang',\r\n 'financeWareHouses.follow_these_steps_to_import_your_warehouse_transfer':\r\n 'Ikuti langkah berikut untuk mengimport transfer gudangmu',\r\n 'financeWareHouses.1_download_your_warehouse_transfer_template_file':\r\n '1. Download file template transfer gudang',\r\n 'financeWareHouses.start_by_downloading_our_warehouse_transfer_csv':\r\n 'Mulai dengan mengunduh file template Excel. File ini mempunyai kolom header yang yang dibutuhkan Kledo untuk mengimport detail dari transfer gudangmu.',\r\n 'financeWareHouses.2_copy_your_warehouse_transfer_into_the_template':\r\n '2. Salin detail transfer gudang ke dalam template',\r\n 'financeWareHouses.using_excel_or_another_spreadsheet_editor':\r\n 'Menggunakan Excel atau software spreadsheeet lainnya, masukkan detail transfer gudang ke dalam file template dari Kledo. Pastikan detail transfer gudang sesuai dengan kolom header yang ada di template.',\r\n 'financeWareHouses.a_maximum_of_500_warehouse_transfer_can_be_imported_at_a_time':\r\n 'Maksimal 1.000 transfer gudang dapat diimport dalam satu waktu.',\r\n 'financeWareHouses.change_access': 'Ubah Hak Akses',\r\n 'financeWareHouses.who_can_access_this_warehouse': 'Siapa yang bisa mengakses gudang ini?',\r\n 'financeWareHouses.all_user': 'Semua Pengguna',\r\n 'financeWareHouses.access': 'Hak Akses',\r\n 'financeWareHouses.recorded_amount': 'Jumlah Yang Tercatat',\r\n 'financeWareHouses.actual_amount': 'Jumlah Sebenarnya',\r\n 'financeWareHouses.difference_2': 'Perbedaan',\r\n\r\n 'approvals.approve': 'Approve',\r\n 'approvals.reject': 'Tolak',\r\n 'approvals.waiting_for_approval': 'Menunggu Persetujuan',\r\n 'approvals.waiting_for_my_approval': 'Menunggu Persetujuanku',\r\n 'approvals.rejected': 'Ditolak',\r\n 'approvals.are_you_sure_to_approve': 'Apakah Anda yakin approve transaksi ini?',\r\n 'approvals.are_you_sure_to_reject': 'Apakah Anda yakin menolak transaksi ini?',\r\n 'approvals.enable_approvals': 'Aktifkan Approval',\r\n 'approvals.approval_levels': 'Berapa jumlah level approval?',\r\n 'approvals.approval_authority': 'Peran yang mempunyai wewenang approval level {level}',\r\n 'approvals.role_is_required': 'Silahkan pilih peran',\r\n 'approvals.approval_progress': 'Progress persetujuan',\r\n 'approvals.and_number_others': 'dan {value} lainnya',\r\n 'approvals.cancel_approval': 'Batalkan persetujuan',\r\n 'approvals.cancel_rejection': 'Batalkan penolakan',\r\n 'approvals.are_you_sure_to_cancel_approval':\r\n 'Apakah Anda yakin untuk batalkan approval di transaksi ini?',\r\n\r\n 'layoutInvoice.layout_invoice': 'Layout Invoice',\r\n 'layoutInvoice.invoice': 'Faktur Penjualan',\r\n 'layoutInvoice.tax_invoice': 'Faktur Pajak',\r\n 'layoutInvoice.delivery': 'Surat Jalan',\r\n 'layoutInvoice.order': 'Pemesanan',\r\n 'layoutInvoice.receipt': 'Kuitansi',\r\n 'layoutInvoice.expense_slip': 'Slip Pengeluaran',\r\n 'layoutInvoice.purchase_payment': 'Pemberitahuan Pembayaran',\r\n 'layoutInvoice.send_receive_money': 'Kirim/Terima Dana',\r\n 'layoutInvoice.remittance_advice': 'Bukti Kas Keluar',\r\n 'layoutInvoice.cash_receipt': 'Bukti Kas Masuk',\r\n 'layoutInvoice.account_code': 'Kode Akun',\r\n 'layoutInvoice.account_name': 'Nama Akun',\r\n 'layoutInvoice.error_cannot_load_data': 'Tidak berhasil mengambil data.',\r\n 'layoutInvoice.error_cannot_save_data': 'Tidak berhasil menyimpan data.',\r\n 'layoutInvoice.error_cannot_reset_data': 'Tidak berhasil mengatur ulang data.',\r\n 'layoutInvoice.sale': 'Penjualan',\r\n 'layoutInvoice.purchase': 'Pembelian',\r\n 'layoutInvoice.company_logo': 'Company Logo',\r\n 'layoutInvoice.signature_logo': 'Signature Logo',\r\n 'layoutInvoice.upload_logo': 'Upload logo',\r\n 'layoutInvoice.change_logo_size': 'Ubah ukuran logo',\r\n 'layoutInvoice.upload_signature': 'Upload signature',\r\n 'layoutInvoice.purchase_order': 'Pesanan Pembelian',\r\n 'layoutInvoice.purchase_invoice': 'Faktur Pembelian',\r\n 'layoutInvoice.purchase_return': 'Retur Pembelian',\r\n 'layoutInvoice.purchase_quote': 'Penawaran Pembelian',\r\n 'layoutInvoice.quote': 'Penawaran',\r\n 'layoutInvoice.sell_invoice': 'Tagihan Penjualan',\r\n 'layoutInvoice.show_discount': 'Tampilkan Diskon',\r\n 'layoutInvoice.show_account': 'Tampilkan Rekening',\r\n 'layoutInvoice.show_price': 'Tampilkan Harga',\r\n 'layoutInvoice.show_tax_total': 'Tampilkan Total Pajak',\r\n 'layoutInvoice.show_subtotal': 'Tampilkan Subtotal',\r\n 'layoutInvoice.show_total': 'Tampilkan Total',\r\n 'layoutInvoice.show_amount_column': 'Tampilkan Kolom Jumlah',\r\n 'layoutInvoice.show_tax': 'Tampilkan Pajak',\r\n 'layoutInvoice.show_product': 'Tampilkan Produk',\r\n 'layoutInvoice.show_ref_code_product': 'Tampilkan SKU Produk',\r\n 'layoutInvoice.show_product_image': 'Tampilkan Gambar Produk',\r\n 'layoutInvoice.show_qty': 'Tampilkan Kuantitas',\r\n 'layoutInvoice.show_total_qty': 'Tampilkan Total Kuantitas',\r\n 'layoutInvoice.show_unit': 'Tampilkan Satuan',\r\n 'layoutInvoice.show_description': 'Tampilkan Deskripsi',\r\n 'layoutInvoice.show_tags': 'Tampilkan Tag',\r\n 'layoutInvoice.show_term': 'Tampilkan Termin',\r\n 'layoutInvoice.show_payment_detail': 'Tampilkan Detail Pembayaran',\r\n 'layoutInvoice.show_sales_person': 'Tampilkan Sales Person',\r\n 'layoutInvoice.show_paid_status': 'Tampilkan Status Lunas',\r\n 'layoutInvoice.show_warehouse': 'Tampilkan Gudang',\r\n 'layoutInvoice.show_amount_in_word': 'Tampilkan Jumlah dalam Kata',\r\n 'layoutInvoice.show_contact_name': 'Tampilkan Nama Kontak',\r\n 'layoutInvoice.show_attention': 'Tampilkan UP/ATTN',\r\n 'layoutInvoice.show_detail_contact': 'Tampilkan Detail Kontak',\r\n 'layoutInvoice.show_manufacturing_product_materials': 'Tampilkan Bahan Produk Manufaktur',\r\n 'layoutInvoice.show_manufacturing_product_materials_only':\r\n 'Tampilkan Bahan Produk Manufaktur Saja',\r\n 'layoutInvoice.show_the_calculated_value_of_the_remaining_bill':\r\n 'Tampilkan Nilai Terbilang dari Sisa Tagihan',\r\n 'layoutInvoice.show_total_after_discount': 'Tampilkan Total Setelah Diskon',\r\n 'layoutInvoice.show_coa': 'Tampilkan COA',\r\n 'layoutInvoice.show_reference': 'Tampilkan Reference',\r\n 'layoutInvoice.change_template': 'Ganti template',\r\n 'layoutInvoice.template': 'Template',\r\n 'layoutInvoice.stamp': 'Stempel',\r\n 'layoutInvoice.change_stamp': 'Ganti Stempel',\r\n 'layoutInvoice.edit_header': 'Ubah Header',\r\n 'layoutInvoice.please_choose_template': 'Silahkan pilih template di bawah :',\r\n 'layoutInvoice.please_choose_stamp': 'Silahkan pilih stempel di bawah :',\r\n 'layoutInvoice.select_this_template': 'Gunakan template ini',\r\n 'layoutInvoice.select_this_stamp': 'Gunakan Stempel ini',\r\n 'layoutInvoice.current_template': 'Template saat ini',\r\n 'layoutInvoice.current_stamp': 'Stempel saat ini',\r\n 'layoutInvoice.name': 'Nama',\r\n 'layoutInvoice.transfer_money': 'Transfer Dana',\r\n 'layoutInvoice.label_delivery': 'Label Pengiriman',\r\n 'layoutInvoice.proof_of_goods_receipt': 'Bukti Terima Barang',\r\n 'layoutInvoice.payment_recap': 'Rekap Pembayaran',\r\n 'layoutInvoice.production_orders': 'Perintah Produksi',\r\n 'layoutInvoice.show_due_date': 'Tampilkan Tanggal Jatuh Tempo',\r\n 'layoutInvoice.show_number': 'Tampilkan Nomor',\r\n 'layoutInvoice.show_expedition': 'Tampilkan Ekspedisi',\r\n 'layoutInvoice.show_message': 'Tampilkan Pesan',\r\n 'layoutInvoice.show_signature': 'Tampilkan Tanda Tangan',\r\n 'layoutInvoice.show_signature_detail': 'Tampilkan TTd Pengirim & Penerima',\r\n 'layoutInvoice.font_size': 'Ukuran Font',\r\n 'layoutInvoice.additional_message': 'Tambahan Pesan',\r\n 'layoutInvoice.additional_message_desc':\r\n 'Pesan pada tambahan pesan ini akan ditempelkan secara otomatis di bagian bawah dari pesan dari transaksi.',\r\n 'layoutInvoice.default_message': 'Pesan Default',\r\n 'layoutInvoice.default_message_desc':\r\n 'Pesan default akan diload secara otomatis pada input pesan saat menambahkan transaksi baru.',\r\n 'layoutInvoice.account': 'Rekening',\r\n 'layoutInvoice.show_due': 'Tampilkan Sisa Tagihan',\r\n 'layoutInvoice.show_payments_received': 'Tampilkan Pembayaran Diterima',\r\n 'layoutInvoice.invoice_show_coa_payment_detail': 'Tampilkan Informasi Kode Akun',\r\n 'layoutInvoice.date_format': 'Format Tanggal',\r\n 'layoutInvoice.show_percentage_number_on_additional_number':\r\n 'Tampilkan Angka Persentase Tambahan Diskon',\r\n 'layoutInvoice.discount_price': 'Harga Diskon',\r\n 'layoutInvoice.show_discount_price': 'Tampilkan Harga Diskon',\r\n 'layoutInvoice.show_total_discount': 'Tampilkan Total Diskon',\r\n 'layoutInvoice.show_qty_actual': 'Tampilkan Kuantitas Aktual',\r\n 'layoutInvoice.show_avg_price': 'Tampilkan Harga Rata - Rata',\r\n\r\n 'layoutReport.layout_report': 'Layout Laporan',\r\n 'layoutReport.manage_your_finance_report_print_pdf_layout_here':\r\n 'Atur tampilan print pdf laporan keuangan Anda di sini',\r\n 'layoutReport.report_logo': 'Logo Laporan',\r\n 'layoutReport.report_setting': 'Setting Laporan',\r\n 'layoutReport.show_logo': 'Tampilkan Logo',\r\n 'layoutReport.logo_position': 'Posisi Logo',\r\n 'layoutReport.logo_position_left': 'Kiri',\r\n 'layoutReport.logo_position_center': 'Tengah',\r\n 'layoutReport.logo_position_right': 'Kanan',\r\n 'layoutReport.show_comp_name': 'Tampilkan Nama Perusahaan',\r\n 'layoutReport.font_family': 'Font Family',\r\n 'layoutReport.font_size': 'Ukuran Font',\r\n 'layoutReport.margin_size': 'Ukuran Margin',\r\n 'layoutReport.margin_top': 'Margin Atas',\r\n 'layoutReport.margin_right': 'Margin Kanan',\r\n 'layoutReport.margin_bottom': 'Margin Bawah',\r\n 'layoutReport.margin_left': 'Margin Kiri',\r\n 'layoutReport.report_text': 'Teks Laporan',\r\n 'layoutReport.comp_name': 'Nama Perusahaan',\r\n 'layoutReport.report_title': 'Judul Laporan',\r\n 'layoutReport.report_date': 'Tanggal Laporan',\r\n 'layoutReport.click_here_to_reset_layout':\r\n 'Klik di sini untuk mengembalikan layout laporan ke default',\r\n 'layoutReport.show_comp_sign': 'Tampilkan Tanda Tangan',\r\n 'layoutReport.show_comp_sign_left': 'Tampilkan Tanda Tangan Bagian Kiri',\r\n 'layoutReport.show_comp_sign_center': 'Tampilkan Tanda Tangan Bagian Tengah',\r\n 'layoutReport.show_comp_sign_right': 'Tampilkan Tanda Tangan Bagian Kanan',\r\n 'layoutReport.signature': 'Tanda Tangan',\r\n\r\n 'financeTag.add_tag': 'Tambah Tag',\r\n 'financeTag.financeTag': 'Tag',\r\n 'financeTag.all_tags': 'Semua tag',\r\n 'financeTag.successfully_added': 'berhasil ditambahkan.',\r\n 'financeTag.error_cannot_add': 'Tidak dapat menambah tag.',\r\n 'financeTag.error_cannot_update': 'Tidak dapat mengubah tag.',\r\n 'financeTag.edit_tag': 'Ubah Tag',\r\n 'financeTag.please_input_the_tag_name': 'Silakan masukkan nama tag.',\r\n 'financeTag.name': 'Nama',\r\n 'financeTag.sale': 'Penjualan',\r\n 'financeTag.purchase': 'Pembelian',\r\n 'financeTag.expense': 'Biaya',\r\n 'financeTag.fixed_asset': 'Aset Tetap',\r\n 'financeTag.other': 'Lain-lain',\r\n 'financeTag.date': 'Tanggal',\r\n 'financeTag.transaction': 'Transaksi',\r\n 'financeTag.desc': 'Deskripsi',\r\n 'financeTag.total': 'Total',\r\n 'financeTag.max_characters': 'Maks {value} karakter.',\r\n 'financeTag.min_characters': 'Min {value} karakter.',\r\n 'financeTag.only_alphanumeric_allowed': 'Hanya huruf dan angka yang diperkenankan.',\r\n 'financeTag.error_cannot_search': 'Tidak dapat mencari tag.',\r\n 'financeTag.select_tag': 'Pilih tag',\r\n 'financeTag.reference': 'Referensi',\r\n\r\n 'financeOrder.default_label_term': 'Order Termin I',\r\n 'financeOrder.message': 'Pesan',\r\n 'financeOrder.add_order': 'Tambah Pemesanan',\r\n 'financeOrder.financeOrder': 'Pemesanan',\r\n 'financeOrder.open_order': 'Pesanan belum selesai',\r\n 'financeOrder.order_waiting_approval': 'Pesanan tunggu approval',\r\n 'financeOrder.order_partial_shipped': 'Pesanan kirim sebagian',\r\n 'financeOrder.error_cannot_print_pdf': 'Tidak dapat membuat pdf pemesanan.',\r\n 'financeOrder.successfully_added': 'berhasil ditambahkan.',\r\n 'financeOrder.error_cannot_add': 'Tidak dapat menambah pemesanan.',\r\n 'financeOrder.error_cannot_update': 'Tidak dapat mengubah pemesanan.',\r\n 'financeOrder.error_cannot_move': 'Tidak dapat memindah pemesanan.',\r\n 'financeOrder.error_cannot_change_status': 'Gagal mengubah status pemesanan.',\r\n 'financeOrder.edit_order': 'Ubah pemesanan',\r\n 'financeOrder.max_characters': 'Maks {value} karakter.',\r\n 'financeOrder.min_characters': 'Min {value} karakter.',\r\n 'financeOrder.only_number_allowed': 'Hanya angka yang diperkenankan.',\r\n 'financeOrder.description': 'Deskripsi',\r\n 'financeOrder.tax': 'Pajak',\r\n 'financeOrder.select_tax': 'Pilih pajak',\r\n 'financeOrder.please_select_a_contact': 'Silakan pilih kontak',\r\n 'financeOrder.select_contact': 'Pilih kontak',\r\n 'financeOrder.add_contact': 'Tambah kontak',\r\n 'financeOrder.all_contacts': 'Semua kontak',\r\n 'financeOrder.transaction_date': 'Tgl Transaksi',\r\n 'financeOrder.please_select_transaction_date': 'Silakan pilih tanggal transaksi',\r\n 'financeOrder.due_date': 'Tanggal Jatuh Tempo',\r\n 'financeOrder.please_select_due_date': 'Silakan pilih tanggal jatuh tempo',\r\n 'financeOrder.term': 'Termin',\r\n 'financeOrder.select_term': 'Pilih termin',\r\n 'financeOrder.add_term': 'Tambah termin',\r\n 'financeOrder.price_include_tax': 'Harga termasuk pajak',\r\n 'financeOrder.add_more': 'Tambah baris',\r\n 'financeOrder.number': 'Nomor',\r\n 'financeOrder.please_input_the_number': 'Silakan isikan nomor.',\r\n 'financeOrder.memo': 'Reference',\r\n 'financeOrder.date': 'Tanggal',\r\n 'financeOrder.status': 'Status',\r\n 'financeOrder.balance_due': 'Sisa Tagihan',\r\n 'financeOrder.total': 'Total',\r\n 'financeOrder.please_select_a_term': 'Silakan pilih termin.',\r\n 'financeOrder.search_by_memo': 'Cari',\r\n 'financeOrder.the_due_date_max_higger_than_transaction_date':\r\n 'Tanggal jatuh tempo harus sama atau setelah tanggal transaksi',\r\n 'financeOrder.detail_title': ' Tagihan {number}',\r\n 'financeOrder.customer': 'Pelanggan',\r\n 'financeOrder.reference': 'Reference',\r\n 'financeOrder.product': 'Produk',\r\n 'financeOrder.qty': 'Kuantitas',\r\n 'financeOrder.not_sent_yet': 'Belum Dikirim',\r\n 'financeOrder.price': 'Harga',\r\n 'financeOrder.add_product': 'Tambah Produk',\r\n 'financeOrder.select_product': 'Pilih produk',\r\n 'financeOrder.attachments': 'Attachment',\r\n 'financeOrder.save_&_approve': 'Simpan & setujui',\r\n 'financeOrder.save_as_draft': 'Simpan sbg draft',\r\n 'financeOrder.save_&_submit_for_approval': 'Simpan & ajukan approval',\r\n 'financeOrder.please_select_a_product': 'Silakan pilih produk.',\r\n 'financeOrder.please_input_the_qty': 'Silakan masukkan kuantitas.',\r\n 'financeOrder.please_input_the_price': 'Silakan masukkan harga.',\r\n 'financeOrder.please_input_the_amount': 'Silakan masukkan total.',\r\n 'financeOrder.approve': 'Setujui',\r\n 'financeOrder.are_you_sure_to_approve': 'Apakah Anda yakin untuk menyutujui?',\r\n 'financeOrder.submit_for_approval': 'Ajukan approval',\r\n 'financeOrder.are_you_sure_to_submit_for_approval':\r\n 'Apakah Anda yakin untuk mengajukan approval?',\r\n 'financeOrder.create_order': 'Buat Tagihan',\r\n 'financeOrder.amount_paid': 'Total Dibayar',\r\n 'financeOrder.paid_from': 'Terima pembayaran ke',\r\n 'financeOrder.add_payment': 'Terima Pembayaran',\r\n 'financeOrder.make_a_payment': 'Terima pembayaran',\r\n 'financeOrder.select_paid_from': 'Pilih tujuan pembayaran',\r\n 'financeOrder.please_select_a_paid_from': 'Silakan pilih terima pembayaran ke.',\r\n 'financeOrder.error_cannot_add_payment': 'Tidak bisa menambah pembayaran.',\r\n 'financeOrder.payment': 'Pembayaran',\r\n 'financeOrder.detail_order': 'Detil Tagihan',\r\n 'financeOrder.number_quotes': 'Nomor Penawaran',\r\n 'financeOrder.amount': 'Jumlah',\r\n 'financeOrder.dp': 'DP',\r\n 'financeOrder.create_delivery': 'Buat Pengiriman',\r\n 'financeOrder.follow_these_steps_to_import_your_order':\r\n 'Ikuti langkah-langkah berikut untuk meng-import pemesanan',\r\n 'financeOrder.1_download_your_order_template_file': '1. Download file template pemesanan',\r\n 'financeOrder.start_by_downloading_our_order_csv':\r\n 'Mulai dengan mengunduh file template Excel pemesanan. File ini mempunyai kolom header yang yang dibutuhkan Kledo untuk mengimport detail dari pemesanan-mu.',\r\n 'financeOrder.download_template_file': 'Download File Template',\r\n 'financeOrder.download_template_data_example_file': 'Download File Contoh',\r\n 'financeOrder.import': 'Import Pemesanan',\r\n 'financeOrder.2_copy_your_order_into_the_template': '2. Salin detail pemesanan ke dalam template',\r\n 'financeOrder.using_excel_or_another_spreadsheet_editor':\r\n 'Menggunakan Excel atau software spreadsheeet lainnya, masukkan detail pemesanan ke dalam file template dari Kledo. Pastikan detail pemesanan sesuai dengan kolom header yang ada di template.',\r\n 'financeOrder.important': 'PENTING',\r\n 'financeOrder.3_upload_the_updated_template_file_here':\r\n '3. Upload template yang sudah diupdate ke sini',\r\n 'financeOrder.upload': 'Upload',\r\n 'financeOrder.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Simpan file template yang sudah diupdate',\r\n 'financeOrder.a_maximum_of_500_order_can_be_imported_at_a_time':\r\n 'Maksimal 1.000 pemesanan dapat diimport dalam satu waktu.',\r\n 'financeOrder.import_actions_only_insert_new_order_cannot_update_or_delete':\r\n 'Saat meng-import, Kledo hanya akan memasukkan data baru, tidak ada data yang dihapus atau diupdate.',\r\n 'financeOrder.dont_change_the_column_heading_in_the_template_file':\r\n 'Jangan mengubah header kolom di dalam template. Ini dibutuhkan agar import dapat berjalan.',\r\n 'financeOrder.order_successfully_imported': '{rowCount} baris pemesanan berhasil diimport.',\r\n 'financeOrder.go_to_order_list': 'Ke halaman daftar pemesanan',\r\n 'financeOrder.print_order': 'Cetak Pemesanan',\r\n 'financeOrder.copy_link': 'Salin Link Pemesanan',\r\n 'financeOrder.send_email': 'Kirim Email Pemesanan',\r\n 'financeOrder.send_sms': 'Kirim SMS Pemesanan',\r\n 'financeOrder.send_wa': 'Kirim Whatsapp Pemesanan',\r\n 'financeOrder.insufficient_stock_warning':\r\n 'Tidak dapat menambah pemesanan, karena terdapat produk yang stok nya kurang.',\r\n\r\n 'financeDelivery.message': 'Pesan',\r\n 'financeDelivery.add_delivery': 'Tambah Pengiriman',\r\n 'financeDelivery.financeDelivery': 'Pengiriman',\r\n 'financeDelivery.open_delivery': 'Pengiriman belum selesai',\r\n 'financeDelivery.error_cannot_print_pdf': 'Tidak dapat membuat pdf pengiriman.',\r\n 'financeDelivery.successfully_added': 'berhasil ditambahkan.',\r\n 'financeDelivery.error_cannot_add': 'Tidak dapat menambah pengiriman.',\r\n 'financeDelivery.error_cannot_update': 'Tidak dapat mengubah pengiriman.',\r\n 'financeDelivery.error_cannot_move': 'Tidak dapat memindah pengiriman.',\r\n 'financeDelivery.error_cannot_change_status': 'Gagal mengubah status pengiriman.',\r\n 'financeDelivery.edit_delivery': 'Ubah pengiriman',\r\n 'financeDelivery.max_characters': 'Maks {value} karakter.',\r\n 'financeDelivery.min_characters': 'Min {value} karakter.',\r\n 'financeDelivery.only_number_allowed': 'Hanya angka yang diperkenankan.',\r\n 'financeDelivery.description': 'Deskripsi',\r\n 'financeDelivery.tax': 'Pajak',\r\n 'financeDelivery.select_tax': 'Pilih pajak',\r\n 'financeDelivery.please_select_a_contact': 'Silakan pilih kontak',\r\n 'financeDelivery.select_contact': 'Pilih kontak',\r\n 'financeDelivery.add_contact': 'Tambah kontak',\r\n 'financeDelivery.all_contacts': 'Semua kontak',\r\n 'financeDelivery.transaction_date': 'Tgl Transaksi',\r\n 'financeDelivery.please_select_transaction_date': 'Silakan pilih tanggal transaksi',\r\n 'financeDelivery.due_date': 'Tanggal Jatuh Tempo',\r\n 'financeDelivery.please_select_due_date': 'Silakan pilih tanggal jatuh tempo',\r\n 'financeDelivery.term': 'Termin',\r\n 'financeDelivery.select_term': 'Pilih termin',\r\n 'financeDelivery.add_term': 'Tambah termin',\r\n 'financeDelivery.price_include_tax': 'Harga termasuk pajak',\r\n 'financeDelivery.add_more': 'Tambah baris',\r\n 'financeDelivery.number': 'Nomor',\r\n 'financeDelivery.please_input_the_number': 'Silakan isikan nomor.',\r\n 'financeDelivery.memo': 'Reference',\r\n 'financeDelivery.date': 'Tanggal',\r\n 'financeDelivery.status': 'Status',\r\n 'financeDelivery.balance_due': 'Sisa Tagihan',\r\n 'financeDelivery.total': 'Total',\r\n 'financeDelivery.please_select_a_term': 'Silakan pilih termin.',\r\n 'financeDelivery.search_by_memo': 'Cari',\r\n 'financeDelivery.the_due_date_max_higger_than_transaction_date':\r\n 'Tanggal jatuh tempo harus sama atau setelah tanggal transaksi',\r\n 'financeDelivery.detail_title': ' Tagihan {number}',\r\n 'financeDelivery.customer': 'Pelanggan',\r\n 'financeDelivery.reference': 'Reference',\r\n 'financeDelivery.product': 'Produk',\r\n 'financeDelivery.qty': 'Kuantitas',\r\n 'financeDelivery.price': 'Harga',\r\n 'financeDelivery.add_product': 'Tambah Produk',\r\n 'financeDelivery.select_product': 'Pilih produk',\r\n 'financeDelivery.attachments': 'Attachment',\r\n 'financeDelivery.save_&_approve': 'Simpan & setujui',\r\n 'financeDelivery.save_as_draft': 'Simpan sbg draft',\r\n 'financeDelivery.save_&_submit_for_approval': 'Simpan & ajukan approval',\r\n 'financeDelivery.please_select_a_product': 'Silakan pilih produk.',\r\n 'financeDelivery.please_input_the_qty': 'Silakan masukkan kuantitas.',\r\n 'financeDelivery.please_input_the_price': 'Silakan masukkan harga.',\r\n 'financeDelivery.please_input_the_amount': 'Silakan masukkan total.',\r\n 'financeDelivery.approve': 'Setujui',\r\n 'financeDelivery.are_you_sure_to_approve': 'Apakah Anda yakin untuk menyutujui?',\r\n 'financeDelivery.submit_for_approval': 'Ajukan approval',\r\n 'financeDelivery.are_you_sure_to_submit_for_approval':\r\n 'Apakah Anda yakin untuk mengajukan approval?',\r\n 'financeDelivery.create_delivery': 'Buat Tagihan',\r\n 'financeDelivery.amount_paid': 'Total Dibayar',\r\n 'financeDelivery.paid_from': 'Terima pembayaran ke',\r\n 'financeDelivery.add_payment': 'Terima Pembayaran',\r\n 'financeDelivery.make_a_payment': 'Terima pembayaran',\r\n 'financeDelivery.select_paid_from': 'Pilih tujuan pembayaran',\r\n 'financeDelivery.please_select_a_paid_from': 'Silakan pilih terima pembayaran ke.',\r\n 'financeDelivery.error_cannot_add_payment': 'Tidak bisa menambah pembayaran.',\r\n 'financeDelivery.payment': 'Pembayaran',\r\n 'financeDelivery.detail_delivery': 'Detil Tagihan',\r\n 'financeDelivery.number_quotes': 'Nomor Penawaran',\r\n 'financeDelivery.amount': 'Jumlah',\r\n 'financeDelivery.shipping_delivery': 'Biaya Pengiriman',\r\n 'financeDelivery.print_delivery': 'Cetak Surat Jalan',\r\n 'financeDelivery.print_delivery_label': 'Cetak Label Pengiriman',\r\n 'financeDelivery.copy_link': 'Salin Link Surat Jalan',\r\n 'financeDelivery.send_email': 'Kirim Email Surat Jalan',\r\n 'financeDelivery.send_sms': 'Kirim SMS Surat Jalan',\r\n 'financeDelivery.send_wa': 'Kirim Whatsapp Surat Jalan',\r\n\r\n 'shipping.show_shipping_information': 'Tampilkan Informasi Pengiriman',\r\n 'shipping.hide_shipping_information': 'Sembunyikan Informasi Pengiriman',\r\n 'shipping.shipping_date': 'Tanggal Pengiriman',\r\n 'shipping.shipping_expedition': 'Ekspedisi',\r\n 'shipping.shipping_tracking': 'No. Resi',\r\n 'shipping.select_expedition': 'Pilih ekspedisi',\r\n 'shipping.add_expedition': 'Tambah ekspedisi',\r\n 'shipping.shipping_cost': 'Biaya pengiriman',\r\n 'shipping.please_select_shipping_date': 'Silahkan pilih tanggal pengiriman.',\r\n 'shipping.shipping_information': 'Informasi pengiriman',\r\n\r\n 'creditMemo.add_credit_memo': 'Tambah Hutang',\r\n 'creditMemo.credit_memo': 'Hutang',\r\n 'creditMemo.add_transactions': 'Tambah Transaksi',\r\n 'creditMemo.successfully_added': 'Berhasil ditambahkan',\r\n 'creditMemo.error_cannot_add': 'Tidak dapat menambah hutang',\r\n 'creditMemo.error_cannot_update': 'Hutang gagal diperbarui',\r\n 'creditMemo.edit_credit_memo': 'Ubah Hutang',\r\n 'creditMemo.max_characters': 'Maks. {value} karakter',\r\n 'creditMemo.min_characters': 'Min. {value} karakter',\r\n 'creditMemo.only_number_allowed': 'Hanya angka yang diperbolehkan',\r\n 'creditMemo.description': 'Deskripsi',\r\n 'creditMemo.message': 'Pesan',\r\n 'creditMemo.amount': 'Jumlah',\r\n 'creditMemo.transaction_date': 'Tanggal Transaksi',\r\n 'creditMemo.please_select_transaction_date': 'Silakan pilih tanggal transaksi',\r\n 'creditMemo.number': 'Nomor',\r\n 'creditMemo.please_input_the_number': 'Silakan masukkan nomor.',\r\n 'creditMemo.memo': 'Reference',\r\n 'creditMemo.date': 'Tanggal',\r\n 'creditMemo.total': 'Total',\r\n 'creditMemo.credit_balance': 'Sisa Hutang',\r\n 'creditMemo.detail_title': 'Hutang {number}',\r\n 'creditMemo.reference': 'Reference',\r\n 'creditMemo.attachments': 'Attachment',\r\n 'creditMemo.please_input_the_amount': 'Silakan masukkan jumlah',\r\n 'creditMemo.status': 'Status',\r\n 'creditMemo.balance_due': 'Sisa Tagihan',\r\n 'creditMemo.search_by_memo': 'Cari',\r\n 'creditMemo.customer': 'Pelanggan',\r\n 'creditMemo.detail_credit_memo': 'Detil Hutang',\r\n 'creditMemo.account': 'Akun',\r\n 'creditMemo.select_account': 'Pilih akun',\r\n 'creditMemo.make_a_payment': 'Buat pembayaran',\r\n 'creditMemo.return_number': 'Nomor Retur',\r\n\r\n 'return.add_return': 'Tambah Retur',\r\n 'return.return': 'Retur',\r\n 'return.detail_return': 'Detail Retur',\r\n 'return.vendor': 'Vendor',\r\n 'return.add_transactions': 'Tambah Transaksi',\r\n 'return.successfully_added': 'Berhasil ditambahkan',\r\n 'return.error_cannot_add': 'Tidak dapat menambah retur',\r\n 'return.error_cannot_update': 'Retur gagal diperbarui',\r\n 'return.edit_return': 'Ubah Retur',\r\n 'return.max_characters': 'Maks. {value} karakter',\r\n 'return.min_characters': 'Min. {value} karakter',\r\n 'return.only_number_allowed': 'Hanya angka yang diperbolehkan',\r\n 'return.description': 'Deskripsi',\r\n 'return.message': 'Pesan',\r\n 'return.amount': 'Jumlah',\r\n 'return.transaction_date': 'Tanggal Retur',\r\n 'return.please_select_transaction_date': 'Silakan pilih tanggal transaksi',\r\n 'return.number': 'Nomor',\r\n 'return.please_input_the_number': 'Silakan masukkan nomor.',\r\n 'return.memo': 'Reference',\r\n 'return.date': 'Tanggal',\r\n 'return.total': 'Total',\r\n 'return.credit_balance': 'Sisa Retur',\r\n 'return.detail_title': 'Retur {number}',\r\n 'return.reference': 'Reference',\r\n 'return.attachments': 'Attachment',\r\n 'return.please_input_the_amount': 'Silakan masukkan jumlah',\r\n 'return.status': 'Status',\r\n 'return.balance_due': 'Sisa Tagihan',\r\n 'return.search_by_memo': 'Cari',\r\n 'return.customer': 'Pelanggan',\r\n 'return.detail_credit_memo': 'Detil Retur',\r\n 'return.account': 'Akun',\r\n 'return.select_account': 'Pilih akun',\r\n 'return.make_a_payment': 'Buat pembayaran',\r\n 'return.invoice': 'Tagihan',\r\n 'return.faktur_balance': 'Jumlah Faktur',\r\n 'return.qty_faktur': 'Qty Faktur',\r\n 'return.available_return': 'Yang Bisa Diretur',\r\n 'return.product': 'Produk',\r\n 'return.discount_percent': 'Diskon',\r\n 'return.tax': 'Pajak',\r\n 'return.qty_return': 'Qty Retur',\r\n 'return.price': 'Price',\r\n 'return.please_input_the_qty': 'Silakan masukkan kuantitas.',\r\n 'return.price_include_tax': 'Harga termasuk pajak',\r\n 'return.cannot_greather_than_available': 'Tidak dapat melebihi jumlah yang tersedia.',\r\n 'return.total_return': 'Total Retur',\r\n\r\n 'financePurchaseQuotes.message': 'Pesan',\r\n 'financePurchaseQuotes.error_cannot_print_pdf': 'Tidak dapat membuat pdf penawaran.',\r\n 'financePurchaseQuotes.add_quote': 'Tambah Penawaran',\r\n 'financePurchaseQuotes.financePurchaseQuotes': 'Penawaran',\r\n 'financePurchaseQuotes.financePurchaseQuotes2': 'Penawaran Pembelian',\r\n 'financePurchaseQuotes.successfully_added': 'berhasil ditambahkan.',\r\n 'financePurchaseQuotes.error_cannot_add': 'Tidak dapat menambah penawaran.',\r\n 'financePurchaseQuotes.error_cannot_update': 'Tidak dapat mengubah penawaran.',\r\n 'financePurchaseQuotes.error_cannot_move': 'Tidak dapat memindah penawaran.',\r\n 'financePurchaseQuotes.error_cannot_change_status': 'Tidak dapat mengubah status penawaran.',\r\n 'financePurchaseQuotes.edit_quote': 'Ubah Penawaran',\r\n 'financePurchaseQuotes.max_characters': 'Maks {value} karakter.',\r\n 'financePurchaseQuotes.min_characters': 'Min {value} karakter.',\r\n 'financePurchaseQuotes.only_number_allowed': 'Hanya angka yang diperkenankan.',\r\n 'financePurchaseQuotes.description': 'Deskripsi',\r\n 'financePurchaseQuotes.tax': 'Pajak',\r\n 'financePurchaseQuotes.select_tax': 'Pilih pajak',\r\n 'financePurchaseQuotes.amount': 'Total',\r\n 'financePurchaseQuotes.please_select_a_contact': 'Silakan pilih kontak',\r\n 'financePurchaseQuotes.select_contact': 'Pilih kontak',\r\n 'financePurchaseQuotes.add_contact': 'Tambah kontak',\r\n 'financePurchaseQuotes.all_contacts': 'Semua kontak',\r\n 'financePurchaseQuotes.transaction_date': 'Tgl Transaksi',\r\n 'financePurchaseQuotes.please_select_transaction_date': 'Silakan pilih tanggal transaksi',\r\n 'financePurchaseQuotes.due_date': 'Kadaluarsa',\r\n 'financePurchaseQuotes.please_select_due_date': 'Silakan pilih tanggal kadaluarsa',\r\n 'financePurchaseQuotes.term': 'Termin',\r\n 'financePurchaseQuotes.select_term': 'Pilih termin',\r\n 'financePurchaseQuotes.add_term': 'Tambah termin',\r\n 'financePurchaseQuotes.price_include_tax': 'Harga termasuk pajak',\r\n 'financePurchaseQuotes.add_more': 'Tambah baris',\r\n 'financePurchaseQuotes.number': 'Nomor',\r\n 'financePurchaseQuotes.please_input_the_number': 'Silakan isikan nomor.',\r\n 'financePurchaseQuotes.memo': 'Reference',\r\n 'financePurchaseQuotes.date': 'Tanggal',\r\n 'financePurchaseQuotes.status': 'Status',\r\n 'financePurchaseQuotes.balance_due': 'Sisa Tagihan',\r\n 'financePurchaseQuotes.please_select_a_term': 'Silakan pilih termin.',\r\n 'financePurchaseQuotes.search_by_memo': 'Cari',\r\n 'financePurchaseQuotes.the_due_date_max_higger_than_transaction_date':\r\n 'Tanggal kadaluarsa harus sama atau setelah tanggal transaksi',\r\n 'financePurchaseQuotes.detail_title': 'Penawaran {number}',\r\n 'financePurchaseQuotes.customer': 'Pelanggan',\r\n 'financePurchaseQuotes.reference': 'Reference',\r\n 'financePurchaseQuotes.product': 'Produk',\r\n 'financePurchaseQuotes.qty': 'Kuantitas',\r\n 'financePurchaseQuotes.price': 'Harga',\r\n 'financePurchaseQuotes.add_product': 'Tambah Produk',\r\n 'financePurchaseQuotes.select_product': 'Pilih produk',\r\n 'financePurchaseQuotes.attachments': 'Attachment',\r\n 'financePurchaseQuotes.save_as_draft': 'Simpan sbg draft',\r\n 'financePurchaseQuotes.save_&_submit_for_approval': 'Simpan & ajukan approval',\r\n 'financePurchaseQuotes.please_select_a_product': 'Silakan pilih produk.',\r\n 'financePurchaseQuotes.please_input_the_qty': 'Silakan masukkan kuantitas.',\r\n 'financePurchaseQuotes.please_input_the_price': 'Silakan masukkan harga.',\r\n 'financePurchaseQuotes.please_input_the_amount': 'Silakan masukkan total.',\r\n 'financePurchaseQuotes.mark_as_sent': 'Tandai sbg terkirim',\r\n 'financePurchaseQuotes.are_you_sure_to_mark_as_sent':\r\n 'Apakah Anda yakin menandai sebagai terkirim?',\r\n 'financePurchaseQuotes.mark_as_accepted': 'Tandai sbg diterima',\r\n 'financePurchaseQuotes.are_you_sure_to_mark_as_accepted':\r\n 'Apakah Anda yakin menandai sebagai diterima?',\r\n 'financePurchaseQuotes.mark_as_declined': 'Tandai sbg ditolak',\r\n 'financePurchaseQuotes.are_you_sure_to_mark_as_declined':\r\n 'Apakah Anda yakin menandai sebagai ditolak?',\r\n 'financePurchaseQuotes.create_invoice': 'Buat Tagihan',\r\n 'financePurchaseQuotes.send': 'Kirim',\r\n 'financePurchaseQuotes.detail_quote': 'Detil Penawaran',\r\n 'financePurchaseQuotes.create_order': 'Buat Pemesanan',\r\n\r\n 'financePurchaseQuotes.follow_these_steps_to_import_your_quotes':\r\n 'Ikuti langkah berikut untuk mengimport penawaranmu',\r\n 'financePurchaseQuotes.1_download_your_quotes_template_file':\r\n '1. Download file template penawaran',\r\n 'financePurchaseQuotes.start_by_downloading_our_quotes_csv':\r\n 'Mulai dengan mengunduh file template Excel penawaran. File ini mempunyai kolom header yang yang dibutuhkan Kledo untuk mengimport detail dari penawaran-penawaranmu.',\r\n 'financePurchaseQuotes.download_template_file': 'Download File Template',\r\n 'financePurchaseQuotes.download_template_data_example_file': 'Download File Contoh',\r\n 'financePurchaseQuotes.import': 'Import Penawaran',\r\n 'financePurchaseQuotes.2_copy_your_quotes_into_the_template':\r\n '2. Salin detail penawaran ke dalam template',\r\n 'financePurchaseQuotes.using_excel_or_another_spreadsheet_editor':\r\n 'Menggunakan Excel atau software spreadsheeet lainnya, masukkan detail penawaran ke dalam file template dari Kledo. Pastikan detail penawaran sesuai dengan kolom header yang ada di template.',\r\n 'financePurchaseQuotes.important': 'PENTING',\r\n 'financePurchaseQuotes.3_upload_the_updated_template_file_here':\r\n '3. Upload template yang sudah diupdate ke sini',\r\n 'financePurchaseQuotes.upload': 'Upload',\r\n 'financePurchaseQuotes.save_your_updated_template_as_.csv_or_.txt_and_you_are_ready_to_go':\r\n 'Simpan file template yang sudah diupdate',\r\n 'financePurchaseQuotes.a_maximum_of_500_quotes_can_be_imported_at_a_time':\r\n 'Maksimal 1.000 penawaran dapat diimport dalam satu waktu.',\r\n 'financePurchaseQuotes.contact_name_that_not_exist_will_be_inserted_as_a_new_contact':\r\n 'Nama kontak yang yang belum ada di Kledo akan dimasukkan sebagai kontak baru.',\r\n 'financePurchaseQuotes.import_actions_only_insert_new_quotes_cannot_update_or_delete':\r\n 'Saat meng-import, Kledo hanya akan memasukkan data baru, tidak ada data yang dihapus atau diupdate.',\r\n 'financePurchaseQuotes.dont_change_the_column_heading_in_the_template_file':\r\n 'Jangan mengubah header kolom di dalam template. Ini dibutuhkan agar import dapat berjalan.',\r\n 'financePurchaseQuotes.you_can_only_upload_csv_file':\r\n 'Anda hanya dapat mengunggah file csv atau excel',\r\n 'financePurchaseQuotes.upload_file': 'Upload File',\r\n 'financePurchaseQuotes.check_the_imported_data': 'Cek Data',\r\n 'financePurchaseQuotes.please_check_the_imported_data': 'Silakan cek data yang diimport',\r\n 'financePurchaseQuotes.import_quotes_done': 'Import Berhasil',\r\n 'financePurchaseQuotes.error_upload_file': 'Gagal mengunggah file.',\r\n 'financePurchaseQuotes.file_not_found': 'File tidak ditemukan.',\r\n 'financePurchaseQuotes.if_you_are_happy_to_continue_with_the_import_please_click_the_import_now_button': `Jika data yang diimport sesuai dengan yang kamu harapkan, silakan klik tombol \"Import Sekarang\".`,\r\n 'financePurchaseQuotes.valid': 'Valid',\r\n 'financePurchaseQuotes.invalid': 'Invalid',\r\n 'financePurchaseQuotes.total': 'Total',\r\n 'financePurchaseQuotes.import_now': 'Import Sekarang',\r\n 'financePurchaseQuotes.contact_name': 'Nama Kontak',\r\n 'financePurchaseQuotes.email': 'Email',\r\n 'financePurchaseQuotes.address': 'Alamat',\r\n 'financePurchaseQuotes.phone': 'Phone',\r\n 'financePurchaseQuotes.quote_date': 'Tanggal Penawaran',\r\n 'financePurchaseQuotes.quote_number': 'Nomor Penawaran',\r\n 'financePurchaseQuotes.product_name': 'Nama Produk',\r\n 'financePurchaseQuotes.code_sku': 'Kode/SKU',\r\n 'financePurchaseQuotes.tax_inclusive': 'Termasuk Pajak',\r\n\r\n 'financePurchaseQuotes.inventory_account': 'Akun Penyimpanan',\r\n 'financePurchaseQuotes.quotes_successfully_imported': '{rowCount} quote berhasil diimport.',\r\n 'financePurchaseQuotes.view_detail': 'Tampilkan detil',\r\n 'financePurchaseQuotes.import_another_file': 'Import file lain',\r\n 'financePurchaseQuotes.go_to_quote_list': 'Ke halaman daftar quote',\r\n 'financePurchaseQuotes.success': 'Berhasil',\r\n 'financePurchaseQuotes.failed': 'Gagal',\r\n 'financePurchaseQuotes.error_cannot_import': 'Gagal import.',\r\n 'financePurchaseQuotes.error': 'Error',\r\n 'financePurchaseQuotes.vendor': 'Vendor',\r\n 'debitMemo.add_debit_memo': 'Tambah Piutang',\r\n 'debitMemo.debit_memo': 'Piutang',\r\n 'debitMemo.add_transactions': 'Tambah Transaksi',\r\n 'debitMemo.successfully_added': 'Berhasil ditambahkan',\r\n 'debitMemo.error_cannot_add': 'Tidak dapat menambah hutang',\r\n 'debitMemo.error_cannot_update': 'Piutang gagal diperbarui',\r\n 'debitMemo.edit_debit_memo': 'Ubah Piutang',\r\n 'debitMemo.max_characters': 'Maks. {value} karakter',\r\n 'debitMemo.min_characters': 'Min. {value} karakter',\r\n 'debitMemo.only_number_allowed': 'Hanya angka yang diperbolehkan',\r\n 'debitMemo.description': 'Deskripsi',\r\n 'debitMemo.message': 'Pesan',\r\n 'debitMemo.amount': 'Jumlah',\r\n 'debitMemo.transaction_date': 'Tanggal Transaksi',\r\n 'debitMemo.please_select_transaction_date': 'Silakan pilih tanggal transaksi',\r\n 'debitMemo.number': 'Nomor',\r\n 'debitMemo.please_input_the_number': 'Silakan masukkan nomor.',\r\n 'debitMemo.memo': 'Reference',\r\n 'debitMemo.date': 'Tanggal',\r\n 'debitMemo.total': 'Total',\r\n 'debitMemo.debit_balance': 'Sisa Piutang',\r\n 'debitMemo.detail_title': 'Piutang {number}',\r\n 'debitMemo.reference': 'Reference',\r\n 'debitMemo.attachments': 'Attachment',\r\n 'debitMemo.please_input_the_amount': 'Silakan masukkan jumlah',\r\n 'debitMemo.status': 'Status',\r\n 'debitMemo.balance_due': 'Sisa Tagihan',\r\n 'debitMemo.search_by_memo': 'Cari',\r\n 'debitMemo.customer': 'Pelanggan',\r\n 'debitMemo.detail_debit_memo': 'Detil Piutang',\r\n 'debitMemo.account': 'Akun',\r\n 'debitMemo.select_account': 'Pilih akun',\r\n 'debitMemo.make_a_payment': 'Terima Pembayaran',\r\n 'debitMemo.return_number': 'Nomor Retur',\r\n\r\n 'financePurchaseDelivery.message': 'Pesan',\r\n 'financePurchaseDelivery.add_delivery': 'Tambah Pengiriman',\r\n 'financePurchaseDelivery.financePurchaseDelivery': 'Pengiriman',\r\n 'financePurchaseDelivery.error_cannot_print_pdf': 'Tidak dapat membuat pdf pengiriman.',\r\n 'financePurchaseDelivery.successfully_added': 'berhasil ditambahkan.',\r\n 'financePurchaseDelivery.error_cannot_add': 'Tidak dapat menambah pengiriman.',\r\n 'financePurchaseDelivery.error_cannot_update': 'Tidak dapat mengubah pengiriman.',\r\n 'financePurchaseDelivery.error_cannot_move': 'Tidak dapat memindah pengiriman.',\r\n 'financePurchaseDelivery.error_cannot_change_status': 'Gagal mengubah status pengiriman.',\r\n 'financePurchaseDelivery.edit_delivery': 'Ubah pengiriman',\r\n 'financePurchaseDelivery.max_characters': 'Maks {value} karakter.',\r\n 'financePurchaseDelivery.min_characters': 'Min {value} karakter.',\r\n 'financePurchaseDelivery.only_number_allowed': 'Hanya angka yang diperkenankan.',\r\n 'financePurchaseDelivery.description': 'Deskripsi',\r\n 'financePurchaseDelivery.tax': 'Pajak',\r\n 'financePurchaseDelivery.select_tax': 'Pilih pajak',\r\n 'financePurchaseDelivery.please_select_a_contact': 'Silakan pilih kontak',\r\n 'financePurchaseDelivery.select_contact': 'Pilih kontak',\r\n 'financePurchaseDelivery.add_contact': 'Tambah kontak',\r\n 'financePurchaseDelivery.all_contacts': 'Semua kontak',\r\n 'financePurchaseDelivery.transaction_date': 'Tgl Transaksi',\r\n 'financePurchaseDelivery.please_select_transaction_date': 'Silakan pilih tanggal transaksi',\r\n 'financePurchaseDelivery.due_date': 'Tanggal Jatuh Tempo',\r\n 'financePurchaseDelivery.please_select_due_date': 'Silakan pilih tanggal jatuh tempo',\r\n 'financePurchaseDelivery.term': 'Termin',\r\n 'financePurchaseDelivery.select_term': 'Pilih termin',\r\n 'financePurchaseDelivery.add_term': 'Tambah termin',\r\n 'financePurchaseDelivery.price_include_tax': 'Harga termasuk pajak',\r\n 'financePurchaseDelivery.add_more': 'Tambah baris',\r\n 'financePurchaseDelivery.number': 'Nomor',\r\n 'financePurchaseDelivery.please_input_the_number': 'Silakan isikan nomor.',\r\n 'financePurchaseDelivery.memo': 'Reference',\r\n 'financePurchaseDelivery.date': 'Tanggal',\r\n 'financePurchaseDelivery.status': 'Status',\r\n 'financePurchaseDelivery.balance_due': 'Sisa Tagihan',\r\n 'financePurchaseDelivery.total': 'Total',\r\n 'financePurchaseDelivery.please_select_a_term': 'Silakan pilih termin.',\r\n 'financePurchaseDelivery.search_by_memo': 'Cari',\r\n 'financePurchaseDelivery.the_due_date_max_higger_than_transaction_date':\r\n 'Tanggal jatuh tempo harus sama atau setelah tanggal transaksi',\r\n 'financePurchaseDelivery.detail_title': ' Tagihan {number}',\r\n 'financePurchaseDelivery.customer': 'Pelanggan',\r\n 'financePurchaseDelivery.reference': 'Reference',\r\n 'financePurchaseDelivery.product': 'Produk',\r\n 'financePurchaseDelivery.qty': 'Kuantitas',\r\n 'financePurchaseDelivery.price': 'Harga',\r\n 'financePurchaseDelivery.add_product': 'Tambah Produk',\r\n 'financePurchaseDelivery.select_product': 'Pilih produk',\r\n 'financePurchaseDelivery.attachments': 'Attachment',\r\n 'financePurchaseDelivery.save_&_approve': 'Simpan & setujui',\r\n 'financePurchaseDelivery.save_as_draft': 'Simpan sbg draft',\r\n 'financePurchaseDelivery.save_&_submit_for_approval': 'Simpan & ajukan approval',\r\n 'financePurchaseDelivery.please_select_a_product': 'Silakan pilih produk.',\r\n 'financePurchaseDelivery.please_input_the_qty': 'Silakan masukkan kuantitas.',\r\n 'financePurchaseDelivery.please_input_the_price': 'Silakan masukkan harga.',\r\n 'financePurchaseDelivery.please_input_the_amount': 'Silakan masukkan total.',\r\n 'financePurchaseDelivery.approve': 'Setujui',\r\n 'financePurchaseDelivery.are_you_sure_to_approve': 'Apakah Anda yakin untuk menyutujui?',\r\n 'financePurchaseDelivery.submit_for_approval': 'Ajukan approval',\r\n 'financePurchaseDelivery.are_you_sure_to_submit_for_approval':\r\n 'Apakah Anda yakin untuk mengajukan approval?',\r\n 'financePurchaseDelivery.create_delivery': 'Buat Tagihan',\r\n 'financePurchaseDelivery.amount_paid': 'Total Dibayar',\r\n 'financePurchaseDelivery.paid_from': 'Terima pembayaran ke',\r\n 'financePurchaseDelivery.add_payment': 'Terima Pembayaran',\r\n 'financePurchaseDelivery.make_a_payment': 'Terima pembayaran',\r\n 'financePurchaseDelivery.select_paid_from': 'Pilih tujuan pembayaran',\r\n 'financePurchaseDelivery.please_select_a_paid_from': 'Silakan pilih terima pembayaran ke.',\r\n 'financePurchaseDelivery.error_cannot_add_payment': 'Tidak bisa menambah pembayaran.',\r\n 'financePurchaseDelivery.payment': 'Pembayaran',\r\n 'financePurchaseDelivery.detail_delivery': 'Detil Tagihan',\r\n 'financePurchaseDelivery.number_quotes': 'Nomor Penawaran',\r\n 'financePurchaseDelivery.amount': 'Jumlah',\r\n 'financePurchaseDelivery.shipping_delivery': 'Biaya Pengiriman',\r\n 'financePurchaseDelivery.vendor': 'Vendor',\r\n 'financePurchaseDelivery.print_receipt_of_goods': 'Cetak Bukti Terima Barang',\r\n\r\n 'businessFlow.businessFlow': 'Pengaturan Alur Bisnis',\r\n 'businessFlow.sales_discount': 'Diskon penjualan',\r\n 'businessFlow.sales_discount_desc': 'Apakah perusahaan Anda dapat memberikan diskon penjualan?',\r\n 'businessFlow.delivery_desc': 'Apakah perusahaan Anda membuat surat jalan saat pengiriman?',\r\n 'businessFlow.order_desc': 'Apakah perusahaan Anda menerima pemesanan penjualan?',\r\n 'businessFlow.quote_desc': 'Apakah perusahaan Anda mengirimkan penawaran penjualan?',\r\n 'businessFlow.down_payment': 'Uang muka',\r\n 'businessFlow.down_payment_desc': 'Apakah perusahaan Anda dapat menerima uang muka penjualan?',\r\n 'businessFlow.purchase_down_payment_desc':\r\n 'Apakah perusahaan Anda dapat membayarkan uang muka pembelian?',\r\n 'businessFlow.purchase_discount': 'Diskon pembelian',\r\n 'businessFlow.purchase_discount_desc': 'Apakah perusahaan Anda dapat menerima diskon pembelian?',\r\n 'businessFlow.purchase_delivery': 'Pengiriman pembelian',\r\n 'businessFlow.purchase_delivery_desc': 'Apakah fitur pengiriman pembelian diaktifkan?',\r\n 'businessFlow.purchase_order': 'Pesanan pembelian',\r\n 'businessFlow.purchase_order_desc': 'Apakah perusahaan Anda melakukan pemesanan pembelian?',\r\n 'businessFlow.purchase_quote': 'Penawaran pembelian',\r\n 'businessFlow.purchase_quote_desc': 'Apakah perusahaan Anda menerima pemesanan pembelian?',\r\n 'businessFlow.reconciliation': 'Rekonsiliasi',\r\n 'businessFlow.reconciliation_desc':\r\n 'Apakah Anda merekonsiliasi transaksi di Kledo dengan mutasi di rekening bank?',\r\n 'businessFlow.tracking_stock': 'Lacak inventori/stok secara default',\r\n 'businessFlow.tracking_stock_desc':\r\n 'Saat menambah produk, secara default set produk untuk melacak stok',\r\n 'businessFlow.error_cannot_update': 'Tidak dapat mengubah pengaturan.',\r\n 'businessFlow.decline_new_sales_if_stock_not_enough': 'Tolak tagihan baru jika stok kurang',\r\n 'businessFlow.decline_new_order_if_stock_not_enough': 'Tolak pemesanan baru jika stok kurang',\r\n 'businessFlow.decline_new_delivery_if_stock_not_enough': 'Tolak pengiriman baru jika stok kurang',\r\n 'businessFlow.show_available_stock_when_making_a_sale':\r\n 'Tampilkan stok tersedia saat membuat penjualan',\r\n 'businessFlow.show_sales_description': 'Tampilkan deskripsi di penjualan',\r\n 'businessFlow.show_sales_description_desc': 'Apakah kolom deskripsi di penjualan ditampilkan?',\r\n 'businessFlow.show_purchases_description': 'Tampilkan deskripsi di pembelian',\r\n 'businessFlow.show_purchases_description_desc':\r\n 'Apakah kolom deskripsi di pembelian ditampilkan?',\r\n 'businessFlow.hide_products_that_are_out_of_stock': 'Sembunyikan produk yang stok habis',\r\n 'businessFlow.hide_products_that_are_out_of_stock_description':\r\n 'Apakah produk yang stok habis disembunyikan saat menambah tagihan?',\r\n 'businessFlow.show_profit_margin_when_making_transaction':\r\n 'Tampilkan profit margin saat membuat transaksi',\r\n 'businessFlow.show_details_of_average_price_and_profit_margin_when_making_a_new_transaction':\r\n 'Menampilkan detail harga rata-rata dan profit margin saat membuat transaksi baru.',\r\n 'businessFlow.whether_stock_is_in_the_warehouse':\r\n 'Apakah stok yang ada di gudang perlu ditampilkan saat membuat penjualan?',\r\n 'businessFlow.show_available_stock_per_warehouse':\r\n 'Perhitungan stok berdasarkan gudang yang dipilih',\r\n 'businessFlow.whether_displayed_stock_needs_per_warehouse':\r\n 'Jika diaktifkan, maka perhitungan stok berdasarkan gudang yang dipilih, bukan berdasarkan kesuluruhan stok',\r\n 'businessFlow.decline_to_add_sales_if_the_total_stock_not_enough':\r\n 'Tolak tambah tagihan jika total stok di gudang tidak mencukupi?',\r\n 'businessFlow.decline_to_add_order_if_the_total_stock_not_enough':\r\n 'Tolak tambah pemesanan jika total stok di gudang tidak mencukupi?',\r\n 'businessFlow.decline_to_add_delivery_if_the_total_stock_not_enough':\r\n 'Tolak tambah pengiriman jika total stok di gudang tidak mencukupi?',\r\n 'businessFlow.discount_in_nominal': 'Input diskon dalam nominal',\r\n 'businessFlow.wether_discount_input_when_add_invoice_in_nominal_format_or_percent_format':\r\n 'Jika aktif maka input diskon saat menambah tagihan akan dalam format nominal, bukan dalam format persen.',\r\n 'businessFlow.product_price_dont_change': 'Harga produk tidak bisa diubah',\r\n 'businessFlow.wether_product_price_can_be_changed_when_add_invoice':\r\n 'Jika aktif maka harga produk saat menambah tagihan tidak dapat diubah.',\r\n 'businessFlow.sales_person': 'Sales person',\r\n 'businessFlow.default_sale_include_tax': 'Default harga penjualan termasuk pajak',\r\n 'businessFlow.wether_create_sale_invoice_include_tax':\r\n 'Apakah saat membuat tagihan defaultnya harga penjualan termasuk pajak?',\r\n 'businessFlow.default_purchase_include_tax': 'Default harga pembelian termasuk pajak',\r\n 'businessFlow.wether_create_purchase_invoice_include_tax':\r\n 'Apakah saat membuat tagihan defaultnya harga pembelian termasuk pajak?',\r\n 'businessFlow.min_stock': 'Stok minimal',\r\n 'businessFlow.when_product_below_min_stock_email_notification':\r\n 'Saat stok produk di bawah stok minimal, akan dikirimkan email notifikasi',\r\n 'businessFlow.decline_product_conv_if_stock_not_enough': 'Tolak konversi produk jika stok kurang',\r\n 'businessFlow.wether_decline_add_product_conv_if_stock_not_enough':\r\n 'Apakah tolak penambahan konversi produk jika stok bahan baku tidak mencukupi?',\r\n 'businessFlow.lang_date_currency': 'Bahasa, Tanggal, & Mata Uang',\r\n 'businessFlow.app_lang': 'Bahasa Invoice',\r\n 'businessFlow.app_lang_desc':\r\n 'Bahasa yang digunakan secara default untuk seluruh staff perusahaan Anda',\r\n 'businessFlow.time_zone': 'Zona waktu',\r\n 'businessFlow.time_zone_desc': 'Zona waktu lokasi perusahaan Anda',\r\n 'businessFlow.date_format': 'Format tanggal',\r\n 'businessFlow.date_format_desc': 'Tampilan tanggal di aplikasi Kledo',\r\n 'businessFlow.time_format': 'Format waktu',\r\n 'businessFlow.time_format_desc': 'Tampilan jam dan menit di aplikasi Kledo',\r\n 'businessFlow.number_after_comma': 'Jumlah angka di belakang koma',\r\n 'businessFlow.number_after_comma_desc':\r\n 'Berapa jumlah angka di belakang koma yang ditampilkan di aplikasi Kledo?',\r\n 'businessFlow.currency_format': 'Format mata uang',\r\n 'businessFlow.currency_format_desc': 'Tampilan mata uang di aplikasi Kledo',\r\n 'businessFlow.activate_multi_currency': 'Aktifkan fitur multi mata uang',\r\n 'businessFlow.activate_multi_currency_desc':\r\n 'Apakah perusahaan Anda menggunakan lebih dari satu mata uang?',\r\n 'businessFlow.base_currency': 'Mata uang dasar',\r\n 'businessFlow.base_currency_desc':\r\n 'Mata uang yang digunakan sebagai mata uang utama di perusahaan Anda',\r\n 'businessFlow.show_coa': 'Tampilkan COA',\r\n 'businessFlow.show_coa_desc': 'Tampilkan COA di laporan laba rugi',\r\n 'businessFlow.show_currency_symbol': 'Tampilkan simbol mata uang',\r\n 'businessFlow.show_currency_symbol_desc':\r\n 'Apakah simbol mata uang akan ditampilkan di tampilan antar muka?',\r\n 'businessFlow.show_reference': 'Tampilkan reference',\r\n 'businessFlow.show_reference_desc': 'Apakah input reference ditampilkan saat membuat invoice?',\r\n 'businessFlow.show_tag': 'Tampilkan tag',\r\n 'businessFlow.show_tag_desc': 'Apakah input tag ditampilkan saat membuat invoice?',\r\n 'businessFlow.input_tag_is_required': 'Input tag wajib diisi',\r\n 'businessFlow.input_tag_is_required_desc':\r\n 'Apakah tag wajib diiisi saat menambahkan transaksi penjualan?',\r\n 'businessFlow.show_delivery_info': 'Tampilkan informasi pengiriman',\r\n 'businessFlow.show_delivery_info_desc':\r\n 'Apakah input informasi pengiriman ditampilkan saat membuat invoice?',\r\n 'businessFlow.lock_price_from_quote': 'Kunci harga dari penawaran',\r\n 'businessFlow.lock_price_from_quote_desc':\r\n 'Apakah saat membuat tagihan dari penawaran, harganya dibuat tidak bisa diubah?',\r\n 'businessFlow.lock_price_from_purchase_quote': 'Kunci harga dari penawaran pembelian',\r\n 'businessFlow.lock_price_from_purchase_quote_desc':\r\n 'Apakah saat membuat tagihan pembelian dari penawaran, harganya dibuat tidak bisa diubah?',\r\n 'businessFlow.use_fifo_method': 'Gunakan metode FIFO untuk perhitungan biaya inventori',\r\n 'businessFlow.use_fifo_method_desc':\r\n 'Metode yang digunakan untuk menghitung HPP. Jika aktif akan menggunakan metode FIFO, jika tidak aktif akan menggunakan metode Averaging. Pengaturan ini tidak dapat diubah jika telah terdapat produk yang aktif lacak stok nya. Pengaturan hanya tersedia di paket Elite.',\r\n 'businessFlow.auto_update_product_buy_price': 'Auto update harga beli produk',\r\n 'businessFlow.auto_update_product_buy_price_desc':\r\n 'Saat melakukan pembelian produk, otomatis harga beli-nya dicatatkan ke produk sebagai harga beli default',\r\n 'businessFlow.auto_update_product_sell_price': 'Auto update harga jual produk',\r\n 'businessFlow.auto_update_product_sell_price_desc':\r\n 'Saat melakukan penjualan produk, otomatis harga jual-nya dicatatkan ke produk sebagai harga jual default',\r\n 'businessFlow.reference_multiline': 'Multiline reference',\r\n 'businessFlow.reference_multiline_desc': 'Apakah reference bisa banyak baris?',\r\n 'businessFlow.show_due_date': 'Tampilkan jatuh tempo',\r\n 'businessFlow.is_the_due_date_shown_on_the_purchase_invoice_form':\r\n 'Apakah tanggal jatuh tempo ditampilkan di form tagihan pembelian ?',\r\n 'businessFlow.is_the_due_date_shown_on_the_invoice_form':\r\n 'Apakah tanggal jatuh tempo ditampilkan di form tagihan ?',\r\n 'businessFlow.show_witholding': 'Tampilkan pemotongan',\r\n 'businessFlow.show_witholding_desc': 'Apakah pemotongan ditampilkan saat membuat tagihan?',\r\n 'businessFlow.show_sequence': 'Tampilkan nomor urut',\r\n 'businessFlow.show_sequence_desc': 'Apakah tampilkan kolom urutan item transaksi?',\r\n 'businessFlow.auto_update_selling_price_from_orders_and_quotes':\r\n 'Auto update harga jual dari pemesanan & penawaran',\r\n 'businessFlow.auto_update_selling_price_from_orders_and_quotes_desc':\r\n 'Jika aktif maka harga produk akan diupdate jika ada pemesanan atau penawaran. Jika tidak aktif maka hanya update harga saat di tagihan saja.',\r\n 'businessFlow.auto_update_purchase_price_from_purchases_orders_and_purchases_quotes':\r\n 'Auto update harga beli dari pembelian pemesanan & pembelian penawaran',\r\n 'businessFlow.auto_update_purchase_price_from_purchases_orders_and_purchases_quotes_desc':\r\n 'Jika aktif maka harga produk akan diupdate jika ada pembelian pemesanan atau pembelian penawaran. Jika tidak aktif maka hanya update harga saat di tagihan pembelian saja.',\r\n 'businessFlow.default_message': 'Gunakan pesan yang sama dengan transaksi asal',\r\n 'businessFlow.default_message_desc':\r\n 'Saat membuat tagihan dari pemesanan, maka isi pesan di tagihan otomatis disamakan dengan pesan di pemesanan.',\r\n 'businessFlow.default_message_delivery':\r\n 'Gunakan pesan pengiriman yang sama dengan transaksi pemesanan',\r\n 'businessFlow.default_message_delivery_desc':\r\n 'Saat membuat pengiriman, maka isi pesan disamakan dengan transaksi pemesanan.',\r\n 'businessFlow.delivery_items_default_zero':\r\n 'Default kuantitas produk dari pemesanan ke pengiriman',\r\n 'businessFlow.delivery_items_default_zero_desc':\r\n 'Kuantitas produk akan diubah ke 0 ketika membuat pengiriman dari pemesanan',\r\n 'businessFlow.input_tax_is_required': 'Input pajak wajib diisi',\r\n 'businessFlow.input_tax_is_required_desc': 'Apakah input pajak wajib diisi saat membuat invoice?',\r\n 'businessFlow.invoice_create_from_shipment_only':\r\n 'Tagihan hanya bisa dibuat dari transaksi pengiriman',\r\n 'businessFlow.invoice_create_from_shipment_only_desc':\r\n 'Apakah untuk membuat tagihan, diwajibkan membuat transaksi pengirimannya terlebih dahulu?',\r\n 'businessFlow.order_create_from_quotation_only':\r\n 'Pemesanan hanya bisa dibuat dari transaksi penawaran',\r\n 'businessFlow.order_create_from_quotation_only_desc':\r\n 'Apakah untuk membuat pemesanan, diwajibkan membuat transaksi penawarannya terlebih dahulu?',\r\n 'businessFlow.invoice_profit_margin_not_minus': 'Tolak tagihan baru jika margin laba minus',\r\n 'businessFlow.invoice_profit_margin_not_minus_desc':\r\n 'Tolak penjualan jika produk dijual dengan margin laba dibawah 0',\r\n 'businessFlow.purchase_invoice_create_from_shipment_only':\r\n 'Tagihan pembelian hanya bisa dibuat dari transaksi pengiriman pembelian',\r\n 'businessFlow.purchase_invoice_create_from_shipment_only_desc':\r\n 'Apakah untuk membuat tagihan pembelian, diwajibkan membuat transaksi pengiriman pembeliannya terlebih dahulu?',\r\n 'businessFlow.purchase_order_create_from_quotation_only':\r\n 'Pemesanan pembelian hanya bisa dibuat dari transaksi penawaran pembelian',\r\n 'businessFlow.purchase_order_create_from_quotation_only_desc':\r\n 'Apakah untuk membuat pemesanan pembelian, diwajibkan membuat transaksi penawaran pembeliannya terlebih dahulu?',\r\n\r\n 'salesPerson.sales_person': 'Sales Person',\r\n 'salesPerson.show_sales_person': 'Tampilkan Sales Person',\r\n 'salesPerson.hide_sales_person': 'Sembunyikan Sales Person',\r\n 'salesPerson.select_sales_person': 'Pilih sales person',\r\n 'salesPerson.sales_name': 'Nama Sales',\r\n 'salesPerson.sales_amount': 'Jumlah Penjualan',\r\n 'salesPerson.sales_value': 'Nilai Penjualan',\r\n 'salesPerson.sales_total': 'Total Penjualan',\r\n 'salesPerson.customer': 'Pelanggan',\r\n 'salesPerson.sales_incentive': 'Insentif Sales',\r\n 'salesPerson.sales_commission': 'Komisi Sales',\r\n 'salesPerson.manage_sales_commission': 'Atur Komisi Sales',\r\n 'salesPerson.commission_rule': 'Aturan Komisi',\r\n 'salesPerson.faq_question_commission_calculated':\r\n 'Bagaimana perhitungan komisi pada laporan ini?',\r\n 'salesPerson.faq_answer_commission_calculated':\r\n 'Komisi dihitung dari total tagihan setelah didiskon. Komponen pajak dan ongkos kirim tidak digunakan untuk menghitung komisi.',\r\n 'salesPerson.faq_question_give_different_commission':\r\n 'Bagaimana untuk memberikan komisi yang berbeda untuk masing-masing sales?',\r\n 'salesPerson.faq_answer_give_different_commission_menu_here': 'menu disini',\r\n 'salesPerson.faq_question_give_commission_progressively':\r\n 'Bagaimana untuk memberikan komisi secara progresif, semakin banyak penjualan maka komisi semakin besar?',\r\n 'salesPerson.faq_answer_give_commission_progressively':\r\n 'Anda dapat mengatur komisi bertingkat dari pengaturan, silakan {here}.',\r\n\r\n 'massEmail.mass_email': 'Kirim Email Massal',\r\n 'massEmail.cannot_mass_email': 'Tidak dapat kirim email massal',\r\n 'massEmail.can_be_sent': 'Dapat dikirim',\r\n 'massEmail.cannot_be_sent': 'Tidak dapat dikirim',\r\n 'massEmail.are_you_sure': 'Apakah Anda yakin akan mengirim {count} email {title}?',\r\n 'massEmail.data_progress_sent': '{count} email dari total {total} telah dikirim',\r\n 'massEmail.data_has_been_sent': 'Total {count} email telah berhasil dikirim',\r\n\r\n 'massDelete.mass_delete': 'Hapus Massal',\r\n 'massDelete.cannot_mass_delete': 'Tidak dapat menghapus massal',\r\n 'massDelete.can_be_deleted': 'Bisa dihapus',\r\n 'massDelete.cannot_be_deleted': 'Tidak bisa dihapus',\r\n 'massDelete.archived': 'Diarsipkan',\r\n 'massDelete.are_you_sure': 'Apakah Anda yakin akan menghapus {count} {title}?',\r\n 'massDelete.are_you_sure_archive':\r\n 'Apakah Anda yakin akan menghapus/mengarsipkan {count} {title}?',\r\n 'massDelete.deleted_data_is_irreversible': 'Data yang dihapus tidak dapat dikembalikan',\r\n 'massDelete.data_progress_deleted': '{count} data dari total {total} telah terhapus',\r\n 'massDelete.data_has_been_deleted': 'Total {count} data telah berhasil dihapus',\r\n 'massDelete.transaction_before_lock_date_and_reconciled_cannot_be_deleted':\r\n '**Transaksi sebelum tanggal penguncian dan transaksi yang sudah direkonsiliasi tidak dapat dihapus',\r\n 'massDelete.transaction_before_lock_date_reconciled_and_related_cannot_be_deleted':\r\n '**Transaksi sebelum tanggal penguncian, transaksi yang telah direkonsiliasi, dan transaksi yang terkait dengan transaksi lainnya tidak dapat dihapus',\r\n\r\n 'massPrint.cannot_mass_print': 'Tidak dapat mencetak massal',\r\n\r\n 'massApproval.mass_approve': 'Approve Massal',\r\n 'massApproval.mass_reject': 'Tolak Massal',\r\n 'massApproval.cannot_mass_approve': 'Tidak dapat approve massal',\r\n 'massApproval.cannot_mass_reject': 'Tidak dapat tolak massal',\r\n 'massApproval.can_be_approved': 'Bisa approve',\r\n 'massApproval.can_be_rejected': 'Bisa ditolak',\r\n 'massApproval.are_you_sure_will_approved':\r\n 'Apakah Anda yakin akan approve {count} transaksi ini?',\r\n 'massApproval.are_you_sure_will_rejected':\r\n 'Apakah Anda yakin akan menolak {count} transaksi ini?',\r\n 'massApproval.approved_data_is_irreversible':\r\n 'Data yang telah di approve tidak dapat dikembalikan',\r\n 'massApproval.rejected_data_is_irreversible': 'Data yang telah ditolak tidak dapat dikembalikan',\r\n 'massApproval.data_progress_approved': '{count} data dari total {total} telah approve',\r\n 'massApproval.data_progress_rejected': '{count} data dari total {total} telah ditolak',\r\n 'massApproval.data_has_been_approved': 'Total {count} data telah berhasil di approve',\r\n 'massApproval.data_has_been_rejected': 'Total {count} data telah berhasil ditolak',\r\n\r\n 'onBoarding.greeting': 'Hallo {name},',\r\n 'onBoarding.welcome_to_kledo': 'Selamat datang di Kledo!',\r\n 'onBoarding.setup_kledo_account': 'Yuk kita setup dulu akun Kledo nya :)',\r\n 'onBoarding.start_to_setup': 'Mulai setup',\r\n 'onBoarding.inventory_question':\r\n 'Apakah Anda ingin mengatur stok dan inventori produk yang dijual ?',\r\n 'onBoarding.quote_question': 'Apakah Anda memerlukan surat penawaran ke pelanggan ?',\r\n 'onBoarding.order_question': 'Apakah Anda melakukan purchase order ke supplier ?',\r\n 'onBoarding.delivery_question': 'Apakah Anda memerlukan surat jalan ?',\r\n 'onBoarding.horee': 'Horee!',\r\n 'onBoarding.checklist_greeting': 'Yuk mulai menggunakan Kledo',\r\n 'onBoarding.setup_complete': 'Setup selesai, sekarang kamu bisa mulai menggunakan Kledo.',\r\n 'onBoarding.go_to_dashboard': 'Masuk ke Dashboard',\r\n 'onBoarding.cannot_access_onboarding': 'Tidak dapat mengakses onboarding',\r\n 'onBoarding.next_step': 'Selanjutnya',\r\n 'onBoarding.prev_step': 'Sebelumnya',\r\n 'onBoarding.step_question': 'Pertanyaan - {step}',\r\n 'onBoarding.company_location_question': 'Dimana lokasi perusahaan {company}?',\r\n 'onBoarding.company_location_question_province': 'Provinsi wajib diisi!',\r\n 'onBoarding.company_location_question_city': 'Kota wajib diisi',\r\n 'onBoarding.role_question': 'Sebagai apakah anda di perusahaan {company}?',\r\n 'onBoarding.role_question_error':\r\n 'Silakan pilih peran atau masukkan peran khusus sebelum melanjutkan',\r\n 'onBoarding.employee_question': 'Berapakah jumlah karyawan di perusahaan Anda?',\r\n\r\n 'recurring.add': 'Tambah {title} Berulang',\r\n 'recurring.edit': 'Ubah {title} Berulang',\r\n 'recurring.add_invoice': 'Tambah tagihan berulang',\r\n 'recurring.edit_invoice': 'Ubah tagihan berulang',\r\n 'recurring.add_order': 'Tambah pemesanan berulang',\r\n 'recurring.edit_order': 'Ubah pemesanan berulang',\r\n 'recurring.add_purchaseinvoice': 'Tambah tagihan pembelian berulang',\r\n 'recurring.edit_purchaseinvoice': 'Ubah tagihan pembelian berulang',\r\n 'recurring.add_purchaseorder': 'Tambah pemesanan pembelian berulang',\r\n 'recurring.edit_purchaseorder': 'Ubah pemesanan pembelian berulang',\r\n 'recurring.add_expense': 'Tambah biaya berulang',\r\n 'recurring.edit_expense': 'Ubah biaya berulang',\r\n 'recurring.add_manualjournal': 'Tambah jurnal manual berulang',\r\n 'recurring.edit_manualjournal': 'Ubah jurnal manual berulang',\r\n 'recurring.add_cashbank': 'Tambah {title} berulang',\r\n 'recurring.edit_cashbank': 'Edit kas & bank berulang',\r\n 'recurring.recurring_transaction_periode': 'Ulang transaksi ini setiap',\r\n 'recurring.start_date': 'Tanggal mulai',\r\n 'recurring.end_date': 'Tanggal selesai (Optional)',\r\n 'recurring.end_date_column': 'Tanggal selesai',\r\n 'recurring.next_date_transaction': 'Tanggal transaksi berikutnya',\r\n 'recurring.automatic_send_email_on_created_transaction':\r\n 'Kirim email ke customer setiap transaksi dibuat',\r\n 'recurring.week': 'Minggu',\r\n 'recurring.month': 'Bulan',\r\n 'recurring.please_input_the_recurring': 'Silahkan isi jumlah pengulangan',\r\n 'recurring.please_select_start_date': 'Silahkan pilih tanggal mulai',\r\n 'recurring.please_select_end_date': 'Silahkan pilih tanggal selesai',\r\n 'recurring.title': 'Transaksi Berulang {name}',\r\n 'recurring.cannot_select_before_start_date': 'Tidak dapat memilih sebelum tanggal mulai',\r\n 'recurring.recurring': 'Transaksi Berulang',\r\n 'recurring.number': 'Nomor',\r\n 'recurring.repeat_every': 'Ulang Setiap',\r\n 'recurring.next_date': 'Transaksi Berikutnya',\r\n 'recurring.total': 'Total',\r\n 'recurring.error_load_data': 'Error saat mengambil data',\r\n 'recurring.error_cannot_recurring': 'Error tidak dapat membuat transaksi berulang',\r\n 'recurring.error_cannot_delete': 'Error tidak dapat membuat transaksi berulang',\r\n 'recurring.error_load_detail': 'Error saat mengambil data detail',\r\n 'recurring.new_transaction': 'Transaksi Berulang Baru',\r\n 'recurring.cannot_select_before_current_date': 'Tidak dapat memilih sebelum tanggal sekarang',\r\n 'recurring.repeat': 'Berulang',\r\n\r\n 'tutorial.video_tutorial': 'Tutorial Video',\r\n\r\n 'report.the_total_number_of_bills_issued_during_this_period':\r\n 'Total jumlah tagihan yang diterbitkan pada periode ini.',\r\n 'report.average_value_of_invoices_issued_during_this_period':\r\n 'Rata-rata nilai tagihan yang diterbitkan pada periode ini.',\r\n 'report.gross_profit_margin_is_the_ratio_of_gross_profit_to_total_revenue':\r\n 'Margin laba kotor merupakan rasio laba kotor terhadap total pendapatan.',\r\n 'report.gross_profit_margin_is_the_ratio_of_net_income_to_total_revenue':\r\n 'Margin laba kotor merupakan rasio dari laba bersih terhadap total pendapatan.',\r\n 'report.roi_is_the_ratio_of_net_income_to_net_assets_per_year':\r\n 'ROI merupakan rasio laba bersih terhadap aset bersih per tahun. Dimana aset bersih merupakan total aset dikurangi liabilitas.
ROI = (Net profit / Net asset) x 12 bulan x 100%',\r\n 'report.the_average_number_of_days_it_takes_your_customer_to_pay_the_bill':\r\n 'Rata-rata jumlah hari yang dibutuhkan pelanggan Anda untuk membayar tagihan.',\r\n 'report.the_average_number_of_days_it_take_you_to_pay_a_bill_to_a_vendor':\r\n 'Rata-rata jumlah hari yang Anda butuhkan untuk membayar tagihan kepada vendor.',\r\n 'report.is_the_percentage_of_liabilities_divided_by_equity':\r\n 'Merupakan persentase liabilitas dibagi ekuitas.',\r\n 'report.is_the_percentage_of_current_assets_divided_by_labilities':\r\n 'Merupakan persentase aset lancar dibagi liabilitas.',\r\n 'report.percentage': 'Persentase',\r\n 'invoicePaymentCreditMemo.invoicePaymentCreditMemo': 'Pembayaran Tagihan dengan Hutang',\r\n 'purchaseInvoicePaymentDebitMemo.purchaseInvoicePaymentDebitMemo':\r\n 'Pembayaran Tagihan Pembelian dengan Piutang',\r\n\r\n 'unrealizedGain.unrealizedGain': 'Laba/Rugi Belum Terealisasi',\r\n 'financeProduct.profit_margin': 'Margin laba',\r\n 'financeProduct.average_purchase_price': 'Harga beli rata-rata',\r\n 'financeProduct.last_purchase_price': 'Harga beli terakhir',\r\n 'financeProduct.this_customer_selling_price': 'Harga jual pelanggan ini',\r\n 'financeProduct.last_sell_price': 'Harga jual terakhir',\r\n 'financeProduct.insufficient_payment': 'Kurang Bayar',\r\n 'settings.menu_cannot_be_found': 'Menu Pengaturan Yang Anda Cari Tidak Ditemukan',\r\n 'report.avg': 'Rata-Rata',\r\n 'reports.stock_adjustment': 'Laporan Penyesuaian Stok',\r\n 'bussinesFlow.default_tracking_stock': 'Default lacak stok',\r\n 'bussinesFlow.desc_default_tracking_stock':\r\n 'Secara default fitur lacak stock aktif saat membuat produk baru',\r\n 'settings.reset': 'Reset',\r\n 'financeContacts.taxable': 'Kena pajak',\r\n 'financeContacts.not_taxable': 'Tidak Kena Pajak',\r\n 'tooltip.next': '{title} Selanjutnya',\r\n 'tooltip.prev': '{title} Sebelumnya',\r\n 'financeBanks.bank_transaction': 'Transaksi Bank',\r\n 'picker.select_year': 'Pilih tahun',\r\n 'picker.select_month': 'Pilih bulan',\r\n 'picker.select_date': 'Pilih tanggal',\r\n 'chart.from_param_to_param': 'dari {from} s/d {to}',\r\n\r\n 'gajihub.hash_tag': '#jadilebihbaik, mudah, dan praktis.',\r\n 'gajihub.head_title_1': 'Proses',\r\n 'gajihub.head_title_2': 'Payroll',\r\n 'gajihub.head_title_3': 'Absensi',\r\n 'gajihub.head_title_4': 'dan',\r\n 'gajihub.head_title_5': 'Akuntansi',\r\n 'gajihub.head_title_6': 'Bisnis Anda Kini Saling Terintegrasi',\r\n 'gajihub.head_desc_1': 'Kini Anda bisa melakukan',\r\n 'gajihub.head_desc_2': 'penghitungan',\r\n 'gajihub.head_desc_3': 'pencatatan gaji',\r\n 'gajihub.head_desc_4': 'tunjangan',\r\n 'gajihub.head_desc_5': 'sampai',\r\n 'gajihub.head_desc_6': 'pajak',\r\n 'gajihub.head_desc_7':\r\n 'seluruh karyawan secara otomatis dalam pembukuan perusahaan dengan integrasi GajiHub dan Kledo.',\r\n 'gajihub.integrate': 'Integrasikan Sekarang',\r\n 'gajihub.footer_note':\r\n 'Dapatkan solusi manajemen SDM dan kemudahan pengelolaan akuntansi perusahaan yang saling terintegrasi secara sempurna.',\r\n 'gajihub.feat_title_1': 'Apa yang Akan',\r\n 'gajihub.feat_title_2': 'Anda Dapatkan',\r\n 'gajihub.feat_title_3': 'Dari Integrasi GajiHub dan Kledo?',\r\n 'gajihub.feat_1_sub_title': 'Integrasi sistem payroll dan akuntansi',\r\n 'gajihub.feat_1_description':\r\n 'Proses pencatatan gaji dan seluruh tunjangan seluruh karyawan bisa tercatat pada sistem pembukuan perusahaan Anda secara otomatis dalam satu platform terintegrasi.',\r\n 'gajihub.feat_2_sub_title': 'Penghitungan PPh 21 otomatis',\r\n 'gajihub.feat_2_description':\r\n 'Tidak perlu pusing menghitung pajak penghasilan seluruh karyawan. Dengan integrasi ini, Kledo akan secara otomatis mencatat PPh 21 karyawan sesuai data yang tersimpan di GajiHub.',\r\n 'gajihub.feat_3_sub_title': 'Melakukan pencatatan presensi melalui smartphone',\r\n 'gajihub.feat_3_description':\r\n 'Seluruh karyawan Anda juga akan mendapatkan kemudahan dalam melakukan presensi kehadiran dan pengajuan cuti dari smartphone melalui aplikasi ESS GajiHub.',\r\n 'gajihub.feat_4_sub_title': 'Pencatatan kasbon dan reimburse karyawan langsung ke pembukuan',\r\n 'gajihub.feat_4_description':\r\n 'Anda dapat mencatat semua nilai kasbon dan reimburse karyawan dalam sistem GajiHub. Kemudian, data tersebut akan otomatis tercatat dalam sistem akuntansi Kledo.',\r\n 'gajihub.feat_5_sub_title': 'Buat dan kirim slip gaji karyawan real time',\r\n 'gajihub.feat_5_description':\r\n 'Buat slip gaji hitungan detik dan kirim langsung ke seluruh karyawan Anda. Slip gaji ini juga bisa diakses melalui aplikasi ESS GajiHub di smartphone karyawan Anda.',\r\n 'gajihub.feat_6_sub_title': 'Iuran BPJS Ketenagakerjaan tercatat otomatis',\r\n 'gajihub.feat_6_description':\r\n 'Anda bisa mengelola BPJS Ketenagakerjaan dan Kesehatan seluruh karyawan Anda di GajiHub. Nantinya, pembayaran iuran akan otomatis tercatat di sistem akuntansi Kledo.',\r\n 'payroll.goto_gajihub': 'Pergi ke GajiHub',\r\n 'payroll.integrate_with_gajihub': 'Integrasikan dengan GajiHub',\r\n 'payroll.payroll': 'Payroll',\r\n 'payroll.perform_employee_payroll_quickly_and_neatly':\r\n 'Melakukan penggajian karyawan dengan cepat dan rapi.',\r\n 'payroll.employee_payroll_is_automatically_recorded_in_kledo_accounting_software':\r\n 'Penggajian karyawan otomatis tercatat pada software akuntansi Kledo.',\r\n 'payroll.automatically_calculating_PPH_21_Tax': 'Otomatis penghitungan Pajak PPH 21.',\r\n 'payroll.automatic_employee_BPJS_calculation': 'Perhitungan BPJS karyawan otomatis.',\r\n 'payroll.employee_attendance_via_mobile_app': 'Absensi karyawan via mobile app.',\r\n 'payroll.application_for_leave_and_permission': 'Pengajuan cuti dan izin.',\r\n 'payroll.employee_cash_account': 'Kasbon Karyawan.',\r\n 'payroll.employee_reimbursement': 'Reimburse Karyawan.',\r\n 'payroll.and_many_more': 'Dan masih banyak lagi.',\r\n 'payroll.click_the_button_below_to_start_the_integration':\r\n 'Klik tombol dibawah untuk memulai integrasi.',\r\n 'payroll.what_benefits_will_you_get_with_this_integration':\r\n 'Apa saja keuntungan yang akan kamu dapatkan dengan integrasi ini ?',\r\n 'payroll.this_feature_is_avilable_for_free': 'Fitur ini tersedia gratis lho.',\r\n 'payroll.kledo_is_now_automatically_integrated_with_gajihub_payroll_software':\r\n 'Kledo kini terintegrasi secara otomatis dengan Software Payroll GajiHub.',\r\n 'payroll.please_wait': 'Mohon tunggu ya!',\r\n 'payroll.integrating_kledo_with_gajihub': 'Sedang mengintegrasikan Kledo dengan GajiHub...',\r\n 'payroll.integrating_success_1': 'Horee!, Akun',\r\n 'payroll.integrating_success_2': 'Kledo',\r\n 'payroll.integrating_success_3': 'sudah berhasil dikoneksikan dengan Software Payroll',\r\n 'payroll.integrating_success_4': 'GajiHub.',\r\n\r\n 'companies.success_message_title': 'Perusahaanmu berhasil dibuat.',\r\n 'companies.success_message_subtitle': 'Silahkan klik tombol di bawah ini untuk melanjutkan.',\r\n 'companies.go_to_dashboard': 'Pergi ke dashboard',\r\n 'message.sorry_you_are_not_authorized_to_access_this_page':\r\n 'Maaf, Anda tidak mempunya akses untuk halaman ini.',\r\n 'message.you_have_some_unsaved_transaction_entries':\r\n 'Anda mempunyai {countTransaction} draft isian transaksi yang belum disimpan, {clickHere} untuk melihat.',\r\n 'message.click_here': 'klik disini',\r\n 'message.click_here_2': 'Klik disini',\r\n 'message.image_is_being_uploaded': 'Gambar sedang diunggah...',\r\n 'message.for_the_detail': 'untuk penjelasan detail.',\r\n\r\n 'emailTemplate.invoice_due_reminder_email': 'Email Pengingat {transType} Jatuh Tempo',\r\n 'emailTemplate.send_email_to_customers_who_have_invoices_due':\r\n 'Kirim email ke pelanggan yang mempunyai {transType} jatuh tempo',\r\n 'emailTemplate.send_email': 'Kirim email',\r\n 'emailTemplate.days_before_due': 'hari sebelum jatuh tempo',\r\n 'emailTemplate.days_after_due': 'hari setelah jatuh tempo',\r\n 'emailTemplate.send_a_due_reminder_email_to_the_group':\r\n 'Kirim email pengingat jatuh tempo ke group kontak pelanggan sebagai berikut',\r\n 'emailTemplate.send_reminder': 'Kirim Pengingat',\r\n\r\n 'report.stock_tracking_product': 'Produk Lacak Stok',\r\n 'report.non_stock_tracking_product': 'Produk Tanpa Lacak Stok',\r\n 'report.package_product': 'Produk Paket',\r\n\r\n 'return.product_not_found_in_this_transaction': 'Product tidak ditemukan di transaksi ini',\r\n 'return.maximum_qty_that_can_be_returned': 'Jumlah maksimal yang dapat di retur {max}',\r\n 'return.the_product_has_met_the_maximum_return_limit':\r\n 'Produk telah memenuhi batas pengembalian maksimum',\r\n 'financeWareHouses.the_product_is_already_on_the_list': 'Produk sudah ada di daftar',\r\n 'report.minimum_stock': 'Stok Minimal',\r\n 'report.control_stock': 'Stok Kontrol',\r\n 'report.control_stock_tooltip': 'Selisih dari stok akhir dan stok minimal',\r\n\r\n 'businessFlow.reject_the_transaction_if_the_balance_is_insufficient':\r\n 'Tolak transaksi jika kurang saldo',\r\n 'businessFlow.reject_the_transaction_if_the_balance_is_insufficient_desc':\r\n 'Tolak tambah transaksi kas dan bank jika saldo kas dan bank tidak mencukupi',\r\n\r\n 'settings.finance_approval_setting': 'Atur alur approval transaksi',\r\n 'businessFlow.journal_desc_include_contact': 'Tampilkan kontak pada deskripsi jurnal',\r\n 'businessFlow.journal_desc_include_contact_desc':\r\n 'Apakah nama kontak akan ditampilkan di deskripsi jurnal?',\r\n 'financeProduct.mass_unarchive_info':\r\n '**Hanya produk yang berstatus arsip yang dapat dibatalkan pengarsipannya.',\r\n 'financeProduct.mass_unarchive': 'Batalkan Archive Massal',\r\n 'financeProduct.can_be_unarchive': 'Bisa diunarchive',\r\n 'financeProduct.cannot_be_unarchive': 'Tidak bisa diunarchive',\r\n 'financeProduct.mass_unarchive_confirm_message':\r\n 'Apakah Anda yakin akan mengunarchivekan {count} produk ?',\r\n 'massDelete.cannot_mass_unarchive': 'Tidak dapat mengunarchivekan massal',\r\n 'massDelete.data_progress_unarchived': '{count} data dari total {total} telah diunarchive',\r\n 'massDelete.data_has_been_unarchived': 'Total {count} data telah berhasil diunarchive',\r\n 'financeContacts.salutation': 'Sapaan',\r\n 'financeContacts.choose_salutation': 'Pilih sapaan',\r\n 'product.the_maximum_number_of_uploads_is_5_photos': 'Jumlah upload maksimal 5 gambar',\r\n 'reports.profitloss_hide_sub_account': 'Sembunyikan Sub Akun',\r\n 'reports.account_view': 'Tampilan Akun',\r\n 'reports.change_account_view_loading': 'Mengubah format tampilan akun...',\r\n 'reports.change_account_view_success': 'Format tampilan akun berhasil diubah',\r\n 'reports.format_account_profit_loss_1': 'Kode - Nama Akun',\r\n 'reports.format_account_profit_loss_2': '(Kode) Nama Akun',\r\n 'reports.format_account_profit_loss_3': 'Nama Akun - Kode',\r\n 'reports.format_account_profit_loss_4': 'Nama Akun (Kode)',\r\n 'reports.format_account_profit_loss_5': 'Nama Akun',\r\n 'reports.separate_others_income_and_expenses': 'Pisah Pendapatan & Biaya Lain-Lain',\r\n 'financeWarehouse.qty_per_unit': 'Qty per Satuan',\r\n\r\n 'faqs.whats_your_question': 'Apa Pertanyaan Anda?',\r\n 'faqs.most_popular': 'Terpopuler',\r\n 'faqs.most_help': 'Paling Membantu',\r\n 'faqs.search_result': 'Hasil Pencarian {value}',\r\n 'faqs.title_by_category': 'Berdasarkan Kategori {value}',\r\n 'faqs.title_by_tag': 'Berdasarkan Tag {value}',\r\n 'faqs.was_this_answer_helpful': 'Apakah jawaban ini membantu?',\r\n 'faqs.last_update': 'Update Terakhir',\r\n 'faqs.copy_raw_text': 'FAQ berhasil disalin',\r\n 'financeProduct.total_cost_summary': 'Total Biaya',\r\n 'financeWareHouses.production_warehouse': 'Gudang produk hasil',\r\n 'financeWareHouses.raw_material_warehouse_is_the_same_as_product_warehouse':\r\n 'Gudang bahan baku sama dengan gudang produk hasil',\r\n 'conversionProduct.avg_price': 'HPP',\r\n 'financeProduct.product_conversion_cost_per_unit_help_text':\r\n 'Total biaya produk untuk setiap unitnya (Biaya bahan baku + Biaya produksi)',\r\n 'layoutInvoice.show_the_print_delivery_on_the_invoice_with_title':\r\n 'Tampilkan surat jalan di {title}',\r\n 'queue.data_is_waiting_to_be_processed': '{value} data sedang menunggu diproses...',\r\n 'billing.using_the_invoicing_feature': 'Penggunaan fitur tagihan',\r\n 'billing.this_month': 'Bulan ini',\r\n 'billing.last_month': 'Bulan lalu',\r\n 'businessFlow.reject_warehouse_transfer_if_stock_is_less_with_title':\r\n 'Tolak {title} Jika Stok Kurang',\r\n 'businessFlow.reject_warehouse_transfer_if_stock_is_less_desc_with_title':\r\n 'Jika ya, maka {title} akan ditolak jika stok kurang',\r\n\r\n 'financeProduct.products_with_stock_tracking_with_title': '{title} dengan lacak stok',\r\n 'financeFixedAssets.run_automatic_deprecation': 'Jalankan Penyusutan Sekarang',\r\n 'financeFixedAssets.automatic_deprecation': 'Penyusutan Otomatis',\r\n 'financeFixedAssets.automatic_depreciation_every_month': 'Penyusutan otomatis setiap bulan',\r\n 'financeFixedAssets.automatic_depreciation_every_month_desc_with_title':\r\n 'Jika fitur ini aktif, maka {title} akan otomatis disusutkan pada tanggal 1 setiap bulannya.',\r\n 'financeProduct.regular_product_with_title': '{title} reguler',\r\n 'financeProduct.package_product_with_title': '{title} paket',\r\n 'financeProduct.manufacturing_product_with_title': '{title} manufaktur',\r\n 'button.void': 'Void',\r\n 'button.unvoid': 'Unvoid',\r\n\r\n 'financeBanks.spend_money_and_receive_money': 'Kirim Dana dan Terima Dana',\r\n 'financeBanks.receive_transfers': 'Terima Transfer',\r\n 'financeBanks.send_transfers': 'Kirim Transfer',\r\n 'financeBanks.expense_payment': 'Pembayaran Biaya',\r\n 'financeBanks.invoice_payment': 'Pembayaran Tagihan',\r\n 'financeBanks.purchase_invoice_payment': 'Pembayaran Tagihan Pembelian',\r\n 'financeBanks.purchase_order_payment': 'Pembayaran Pemesanan Pembelian',\r\n 'financeBanks.credit_memo_payment': 'Pembayaran Hutang',\r\n 'financeBanks.debit_memo_payment': 'Pembayaran Piutang',\r\n 'financeBanks.fixed_asset_payment': 'Pembayaran Aset Tetap',\r\n 'financeBanks.sales_shipping_costs': 'Biaya Pengiriman Penjualan',\r\n 'financeBanks.purchase_shipping_costs': 'Biaya Pengiriman Pembelian',\r\n 'financeBanks.invoice_withholding': 'Pemotongan Penjualan',\r\n 'financeBanks.purchase_invoice_withholding': 'Pemotongan Pembelian',\r\n 'financeBanks.reversal': 'Reversal',\r\n 'financeProduct.product_list_with_title': 'Daftar {title}',\r\n 'financeProduct.product_detail_with_title': 'Detil {title}',\r\n 'financeProduct.print_a_number': 'Print sejumlah',\r\n 'layoutBarcode.label_size': 'Ukuran kertas',\r\n 'layoutBarcode.number_of_columns': 'Jumlah Kolom',\r\n 'layoutBarcode.show_product_name': 'Tampilkan nama produk',\r\n 'layoutBarcode.barcode_show_text': 'Tampilkan angka barcode',\r\n 'layoutBarcode.barcode_show_product_price': 'Tampilkan harga',\r\n 'layoutBarcode.click_here_to_reset_layout':\r\n 'Klik di sini untuk mengembalikan layout barcode ke default',\r\n 'settings.layout_barcode': 'Atur tampilan print barcode',\r\n 'financeContacts.date_of_birth': 'Tanggal Lahir',\r\n 'financeInvoices.witholding_total': 'Total Pemotongan',\r\n 'financeContacts.total_from_value': 'Total dari {value}',\r\n\r\n 'pos.choose_product_favorites_with_title':\r\n 'Pilih {title} yang akan ditampilkan dihalaman depan POS',\r\n 'pos.page_note':\r\n 'Halaman ini untuk mengatur produk yang dijadikan favorit di POS. Jika Anda ingin menambah produk baru, silahkan {clickHere}!',\r\n 'pos.add_product_favorite_with_title': 'Tambah {title} Favorit',\r\n 'pos.save_to_favorite': 'Simpan ke Dalam Favorit',\r\n 'pos.choose_product_to_become_favorite': 'Pilih {title} untuk dijadikan favorit',\r\n 'pos.choose_product_to_become_favorite_with_title': 'Pilih {title} untuk dijadikan favorit',\r\n 'pos.add_outlet': 'Tambah Outlet',\r\n 'pos.edit_outlet': 'Ubah Outlet',\r\n 'pos.name_is_required': 'Nama wajib diisi',\r\n 'pos.name_at_least_3_characters': 'Nama minimal 3 karakter',\r\n 'pos.code_is_required': 'Kode wajib diisi',\r\n 'pos.code_at_least_3_characters': 'Kode minimal 3 karakter',\r\n 'pos.not_yet_connected_to_the_warehouse': 'Belum terhubung ke gudang',\r\n 'pos.connect_now': 'Hubungkan sekarang!',\r\n 'pos.connect_outlets_and_warehouses': 'Hubungkan outlet dan gudang',\r\n 'kledoPos.hash_tag': '#jadilebihbaik, mudah, dan praktis.',\r\n 'kledoPos.head_title_1': 'Tetap Bisa Catat Transaksi Meski',\r\n 'kledoPos.head_title_2': 'Internet Mati',\r\n 'kledoPos.head_title_3': 'dengan Kledo POS',\r\n 'kledoPos.head_title_description':\r\n 'Aplikasi kasir yang terintegrasi secara sempurna dengan software akuntansi Kledo. Solusi terbaik untuk pencatatan transaksi dari berbagai outlet, toko, dan cabang usaha dalam satu platform.',\r\n 'kledoPos.download': 'Download Kledo POS',\r\n 'kledoPos.sales_contact': 'Hubungi Sales',\r\n 'kledoPos.footer_note':\r\n 'Catat setiap transaksi dan lakukan analisa keuangan bisnis lebih mudah menggunakan integrasi Kledo POS dan software akuntansi Kledo sekarang juga.',\r\n 'kledoPos.feat_title_1': 'Apa yang Akan',\r\n 'kledoPos.feat_title_2': 'Anda Dapatkan',\r\n 'kledoPos.feat_title_3': 'Jika Menggunakan Kledo POS?',\r\n 'kledoPos.feat_1_sub_title': 'Menerima berbagai jenis pembayaran',\r\n 'kledoPos.feat_1_description':\r\n 'Dengan Kledo POS, Anda bisa mencatat pembayaran dari berbagai metode pembayaran mulai dari pembayaran tunai, non tunai, e-wallet, dan dari mesin EDC.',\r\n 'kledoPos.feat_2_sub_title': 'Aplikasi kasir yang mudah digunakan',\r\n 'kledoPos.feat_2_description':\r\n 'Kledo POS bisa Anda install di smartphone atau tablet Android dengan mudah dan bisa digunakan secara online dan offline.',\r\n 'kledoPos.feat_3_sub_title': 'Pengaturan promo',\r\n 'kledoPos.feat_3_description':\r\n 'Buat promo yang memanjakan pelanggan Anda dan catat setiap transaksi yang menggunakan promo tersebut tanpa ada satupun yang terlewat.',\r\n 'kledoPos.feat_4_sub_title': 'Implementasi gratis',\r\n 'kledoPos.feat_4_description':\r\n 'Sudah beli software POS mahal tapi masih harus bayar training? Di Kledo POS kami menjanjikan implementasi dan training gratis sampai Anda mahir.',\r\n 'kledoPos.feat_5_sub_title': 'Profil pelanggan',\r\n 'kledoPos.feat_5_description':\r\n 'Data pelanggan merupakan hal penting yang harus dimiliki setiap bisnis. Dengan menggunakan Kledo POS, Anda bisa menyimpan semuanya dengan lebih praktis.',\r\n 'kledoPos.feat_6_sub_title': 'Integrasi dengan sistem akuntansi',\r\n 'kledoPos.feat_6_description':\r\n 'Terintegrasi sempurna dengan ekosistem Kledo sehingga memudahkan Anda dalam mengelola data keuangan dalam satu platform yang optimal.',\r\n 'kledoPos.setting': 'Pengaturan POS',\r\n 'kledoPos.setting_custom_product': 'Custom Produk',\r\n 'kledoPos.setting_custom_product_desc':\r\n 'Anda dapat membuat transaksi di POS untuk produk yang belum tercatat di data, atau disebut custom produk. Untuk transaksi custom produk, sistem Kledo akan mencatatkannya sebagai penjualan untuk produk sesuai pada pengaturan ini.',\r\n 'kledoPos.setting_default_customer': 'Default Pelanggan',\r\n 'kledoPos.setting_default_customer_desc':\r\n 'Anda dapat mencatatkan penjualan di POS dengan tanpa mencatatkan pelanggannya. Apabila transaksi tidak dicatatkan pelanggannya, maka sistem Kledo akan mencatatkannya sebagai transaksi milik `default Pelanggan` pada pengaturan ini.',\r\n 'kledoPos.setting_product_placeholder': 'Pilih Produk',\r\n 'kledoPos.setting_customer_placeholder': 'Pilih Pelanggan',\r\n 'kledoPos.error_cannot_update': 'Gagal simpan pengaturan',\r\n 'kledoPos.setting_default_outlet_placeholder': 'Pilih Outlet',\r\n 'kledoPos.setting_default_spend_account': 'Default Akun Kirim Dana',\r\n 'kledoPos.setting_default_spend_account_placeholder': 'Pilih Akun',\r\n 'kledoPos.setting_default_spend_account_desc':\r\n 'Saat mencatatkan keluar masuk kas di POS, maka di akunting akan dicatatkan pada akun COA ini.',\r\n 'kledoPos.setting_default_receive_account': 'Default Akun Terima Dana',\r\n 'billing.pos_add_outlet_label': 'Berapa Jumlah Outlet yang akan ditambahkan?',\r\n 'billing.pos_current_quota': 'Kuota POS saat ini: {outlet} Outlet',\r\n 'billing.pos_add_outlet': 'Tambah Outlet',\r\n 'billing.pos_please_add_addon': 'Silakan tambah satu addon POS',\r\n 'financeBanks.import_bank_transfer': 'Import Transfer Bank',\r\n 'financeBanks.follow_these_steps_to_import_your_bank_transfer':\r\n 'Ikuti langkah-langkah berikut untuk meng-import transfer bank',\r\n 'financeBanks.1_download_your_bank_transfer_template_file':\r\n '1. Download file template transfer bank',\r\n 'financeBanks.start_by_downloading_our_bank_transfer_csv':\r\n 'Mulai dengan mengunduh file template dalam format Excel. File ini mempunyai kolom header yang yang dibutuhkan Kledo untuk mengimport detail dari transfer bank-mu.',\r\n 'financeBanks.2_copy_your_bank_transfer_into_the_template':\r\n '2. Salin detail transfer bank ke dalam template',\r\n 'financeBanks.bank_transfer_import_using_excel_or_another_spreadsheet_editor':\r\n 'Menggunakan Excel atau software spreadsheeet lainnya, masukkan detail transfer bank ke dalam file template dari Kledo. Pastikan detail transfer bank sesuai dengan kolom header yang ada di template.',\r\n 'financeBanks.a_maximum_of_500_bank_transfer_can_be_imported_at_a_time':\r\n 'Maksimal 1.000 transfer bank dapat diimport dalam satu waktu.',\r\n 'financeBanks.bank_transfer_import_from_account': 'Dari Rekening (Kode Akun)',\r\n 'financeBanks.bank_transfer_import_to_account': 'Ke Rekening (Kode Akun)',\r\n 'financeBanks.bank_transfer_import_transfer_amount': 'Jumlah Transfer',\r\n 'financeBanks.in': 'Masuk',\r\n 'financeBanks.out': 'Keluar',\r\n 'financeAccounts.balance_per_category': 'Saldo Per Kategori',\r\n 'financeAccounts.balance_per_account': 'Saldo Per Akun',\r\n 'reports.show_graph': 'Tampilkan Grafik',\r\n 'reports.hide_graph': 'Sembunyikan Grafik',\r\n 'reports.number_of_transactions_per_source': 'Jumlah transaksi per sumber',\r\n 'massRevertReconcile.mass_unreconciled': 'Batalkan Rekonsiliasi Massal',\r\n 'massRevertReconcile.cannot_mass_unreconciled': 'Tidak dapat membatalkan rekonsiliasi',\r\n 'massRevertReconcile.can_be_unreconciled': 'Bisa membatalkan rekonsiliasi',\r\n 'massRevertReconcile.are_you_sure_want_to_unreconciled':\r\n 'Apakah Anda yakin akan membatalkan {count} rekonsiliasi?',\r\n 'massRevertReconcile.data_progress_unreconciled':\r\n '{count} data dari total {total} telah dibatalkan dari rekonsiliasi',\r\n 'massRevertReconcile.data_has_been_unreconciled':\r\n 'Total {count} data telah berhasil dibatalkan dari rekonsiliasi',\r\n 'billing.downgrade_warning_title': 'Perhatian!!!',\r\n 'billing.downgrade_warning_description_1':\r\n 'Akun yang telah di downgrade tidak dapat dibatalkan. Diperlukan melakukan upgrade dan pembayaran untuk mengembalikan ke paket sebelumnya.',\r\n 'billing.downgrade_warning_description_2':\r\n 'Akun yang telah di downgrade, akan mengikuti harga paket terbaru dan batasan fitur terbaru.',\r\n 'billing.downgrade_warning_description_3':\r\n 'Akun yang lebih lama di Kledo, biasanya mendapatkan harga yang lebih murah, dan fitur yang lebih lengkap dibandingkan dengan akun baru di Kledo.',\r\n 'billing.what_package_will_you_downgrade_to': 'Akan di downgrade ke paket apa?',\r\n 'billing.downgrade_now': 'Downgrade Sekarang',\r\n 'billing.button_confirm_title':\r\n 'Aksi ini tidak dapat dibatalkan, dan Anda akan kehilangan benefit sebagai pemilik akun lama. Apakah Anda yakin untuk mendowngrade paket Anda?',\r\n 'billing.button_downgrade_now': 'Ya, Downgrade Sekarang',\r\n 'financeFixedAssets.asset_value': 'Nilai Aset',\r\n 'financeFixedAssets.asset_depreciation': 'Depresiasi Aset',\r\n 'financeFixedAssets.asset_disposal': 'Laba/Rugi Pelepasan Aset',\r\n 'financeFixedAssets.new_assets': 'Aset Baru',\r\n 'financeFixedAssets.depreciation_chart': 'Depresiasi',\r\n 'financeFixedAssets.profit_and_loss_on_asset_disposal': 'Untung Rugi Pelepasan Aset',\r\n 'financeFixedAssets.highest_value_assets': '{count} Nilai Asset Tertinggi',\r\n 'financeFixedAssets.the_highest_acquisition_costs': '{count} Biaya Akuisisi Tertinggi',\r\n 'financeFixedAssets.profit': 'Untung',\r\n 'financeFixedAssets.loss': 'Rugi',\r\n 'financeProduct.this_product_is_a_package_material_from_with_title':\r\n '{title} ini bahan paket dari',\r\n 'financeProduct.this_product_is_raw_material_from_with_title': '{title} ini bahan baku dari',\r\n 'settings.due_reminder': 'Kirim email ke pelanggan yang mempunyai tagihan jatuh tempo',\r\n 'businessFlow.system': 'Sistem',\r\n 'businessFlow.enable_white_label': 'Aktifkan whitelabel?',\r\n 'businessFlow.enable_white_label_desc':\r\n 'Jika whitelabel aktif, maka web app, konten whatsapp, dan konten email akan dihilangkan teks kledo pada bagian footernya.',\r\n 'financeOrder.amount_unbilled': 'Nominal Belum Ditagih',\r\n 'settings.download_description':\r\n 'Anda dapat mengunduh database Kledo Anda untuk disimpan secara offline di komputer Anda. Data yang diunduh dalam format excel (.xls), dan diperlukan beberapa menit untuk menyiapkan file backupnya.',\r\n 'settings.download_button': 'Mulai Siapkan File Backup Sekarang',\r\n 'settings.please_wait_download_backup':\r\n 'Mohon menunggu beberapa saat, file download database sedang disiapkan.',\r\n 'settings.preparing_data': 'Menyiapkan data {dataName}',\r\n 'settings.backup_auto_delete': '* File backup akan dihapus otomatis dalam 1-4 hari',\r\n 'settings.download_backup_finish':\r\n 'File backup database telah siap, klik tombol dibawah untuk mendownload:',\r\n 'settings.finance_backup_database': 'Mengunduh database Kledo Anda',\r\n 'settings.backup_date': 'Tanggal Backup',\r\n // delete\r\n 'sales_overview.vs_same_date_with_another_date': 'vs tanggal sama {date}',\r\n 'sales_overview.invoices_this_month_with_title': '{title} {date}',\r\n 'sales_overview.of_the_total_unpaid_invoices_with_title': 'dari total {title} belum dibayar',\r\n 'sales_overview.invoices_paid_vs_total_invoices_for_the_month_with_title':\r\n '{title} lunas vs total {title} {date}',\r\n 'sales_overview.paid_ratio': 'Rasio Lunas',\r\n 'sales_overview.sales_flow_not_completed_with_title': 'Alur {title} Belum Selesai',\r\n 'sales_overview.quote_accepted_with_title': '{title} disetujui',\r\n 'sales_overview.order_not_finished_with_title': '{title} belum selesai',\r\n 'sales_overview.delivery_has_not_been_invoiced_with_title': '{title} belum ditagih',\r\n 'sales_overview.invoices_due_with_title': '{title} jatuh tempo',\r\n 'purchases_overview.purchase_payment_sent_with_title': 'Pembayaran {title} dikirim',\r\n 'purchases_overview.payment_purchases_pending_with_title': 'Menunggu Pembayaran {title}',\r\n 'financeProduct.qty_per_warehouse': 'Stok per Gudang',\r\n 'financeProduct.product_value_per_warehouse_with_title': 'Nilai {title} per Gudang',\r\n 'billing.most_chosen': 'Paling Banyak Dipilih',\r\n 'billing.see_more': 'Lihat Selengkapnya',\r\n 'billing.show_less': 'Tampilkan Lebih Sedikit',\r\n 'billing.product_manufacture': 'Produk Manufaktur',\r\n 'billing.contract_length': 'Pilih Lama Kontrak',\r\n 'billing.please_choose_contract_length': 'Silakan Pilih Lama Kontrak',\r\n 'billing.saving': 'Hemat',\r\n 'billing.addon_user_description': 'Tambahkan user untuk terlibat membantu mengelola akun Anda.',\r\n 'billing.addon_warehouse_description':\r\n 'Makin banyak gudang, makin mudah mengkategorikan item atau produk.',\r\n 'billing.addon_marketplace_description':\r\n 'Memberikan Anda untuk melakukan integrasi toko Anda dengan Marketplace',\r\n 'billing.addon_invoice_description':\r\n 'Menambahkan jumlah invoice di akunmu, 1 addons invoice = 5.000 invoice.',\r\n 'billing.addon_product_description':\r\n 'Menambahkan jumlah {products} di akunmu, 1 addons {product} = 1.000 {products}.',\r\n 'billing.addon_bank_connect_description':\r\n 'Mengintegrasikan bisnis yang Anda miliki dengan layanan bank yang Anda punya.',\r\n 'billing.invoices': 'Invoice',\r\n 'billing.employee': 'Karyawan ',\r\n 'billing.select_add_on_hris': 'Pilih Paket Addon Payroll & HRIS',\r\n 'billing.hris_elite': 'Paket Elite',\r\n 'billing.hris_pro': 'Paket Pro',\r\n 'billing.active_package': 'Paket Aktif',\r\n 'billing.expired_date': 'Tanggal expired',\r\n 'billing.at_the_moment': 'Saat Ini',\r\n 'billing.after_extension': 'Setelah Perpanjangan',\r\n 'billing.extend_now': 'Perpanjang Sekarang',\r\n 'billing.upgrade_plan_to': `Upgrade Paket {planName}`,\r\n 'billing.contract': 'Kontrak',\r\n 'billing.per_month': 'Perbulan',\r\n 'billing.calculation_details': 'Rincian Perhitungan',\r\n 'billing.1_year_subs_with_x_discount':\r\n 'Dengan berlangganan 1 tahun, Anda akan mendapatkan diskon sebesar {discount}.',\r\n 'billing.1_year_subs_with_x_discount_warning':\r\n 'Apakah Anda yakin berlangganan {term} bulan dan tidak mendapatkan diskon {discount}?',\r\n 'billing.i_want_discount': 'Saya mau diskon {discount}',\r\n 'billing.i_dont_want_discount': 'Ya, saya tidak mau diskon',\r\n 'financeBanks.bank_connect_less': 'Lebih Sedikit',\r\n 'financeBanks.error_cannot_export': 'Tidak dapat ekspor {bankName}',\r\n 'report.total_due': 'Total Jatuh Tempo',\r\n 'settings.set_roles': 'Atur Peran',\r\n 'settings.set_users': 'Atur Pengguna',\r\n 'report.aged_receivable_from_until_less_than_equal_months':\r\n '{firstMonth} s/d <= {secondMonth} bulan',\r\n 'report.aged_receivable_greater_than_months': '> {month} bulan',\r\n 'financeFixedAssets.last_automatic_depreciation': 'Penyusutan otomatis terakhir pada {dateTime}',\r\n 'financeFixedAssets.see_automatic_depreciation_history': 'Lihat histori penyusutan otomatis',\r\n 'report.downloading_data': 'Sedang mengunduh data...',\r\n 'contacts.info_is_as_employee':\r\n 'Beberapa data tidak bisa diubah karena kontak juga sebagai pegawai.',\r\n 'report.balance_sheet_previous_month': 'bulan sebelumnya',\r\n 'report.balance_sheet_previous_year': 'tahun sebelumnya',\r\n 'report.balance_sheet_vs_1_month_ago': 'vs 1 bulan lalu',\r\n 'report.balance_sheet_structure': 'Struktur Neraca',\r\n 'report.balance_sheet_trend': 'Tren Neraca',\r\n 'report.balance_sheet_component_trend': 'Tren Komponen Neraca',\r\n 'report.balance_sheet_component': 'Komponen Neraca',\r\n 'report.balance_sheet_equity': 'Ekuitas',\r\n 'report.balance_sheet_asset': 'Aset',\r\n 'report.balance_sheet_liability': 'Liabilitas',\r\n 'report.balance_sheet_trend_net_position': 'Tren Posisi Net Neraca',\r\n 'report.quick_ratio_help_1':\r\n 'Quick ratio berfungsi sebagai indikator likuiditas jangka pendek perusahaan, atau kemampuannya untuk memenuhi kewajiban jangka pendeknya. Dengan kata lain, ini menguji seberapa banyak perusahaan memiliki aset untuk melunasi semua kewajibannya.',\r\n 'report.quick_ratio_help_2':\r\n 'Saat nilai dari quick ratio di atas 1, artinya aset lancar perusahaan atau bisnis mampu memenuhi segala kewajiban lancarnya. Hal ini mengindikasikan kondisi keuangan bisnis yang sehat karena mampu melunasi seluruh tanggungannya jika diperlukan.',\r\n 'report.quick_ratio_help_3':\r\n 'Sebaliknya, jika nilai quick ratio kurang dari 1, artinya entitas tersebut tidak mampu melunasi kewajiban lancarnya menggunakan semua aset lancar yang dimiliki.',\r\n 'report.quick_ratio_help_4':\r\n 'Rumus quick ratio : (Aset Lancar – Stok atau Persediaan) / Kewajiban Lancar',\r\n 'report.current_ratio_help_1':\r\n 'Current ratio digunakan untuk mengevaluasi kemampuan perusahaan agar bisa membayar kewajiban jangka pendek, seperti utang dan upah. Current ratio ini dihitung dengan membagi aset lancar dengan kewajiban lancar. Semakin tinggi hasilnya, semakin kuat posisi keuangan perusahaan.',\r\n 'report.current_ratio_help_2':\r\n 'Namun, perlu diingat bahwa rasio lancar yang terlalu tinggi juga dapat menunjukkan bahwa perusahaan tidak mengoptimalkan penggunaan asetnya.',\r\n 'report.current_ratio_help_3': 'Rumus Current Ratio = Total Aset Lancar / Total Kewajiban Lancar',\r\n 'report.debt_equity_ratio_help_1':\r\n 'Debt to Equity Ratio adalah rasio keuangan yang membandingkan jumlah hutang dengan ekuitas.',\r\n 'report.debt_equity_ratio_help_2':\r\n 'Ekuitas dan jumlah hutang piutang yang digunakan untuk operasional perusahaan harus berada dalam jumlah yang proporsional. Debt to Equity Ratio juga sering dikenal sebagai rasio leverage atau rasio pengungkit.',\r\n 'report.debt_equity_ratio_help_3': 'Rumus Debt to Equity Ratio (DER) = Total Hutang / Ekuitas',\r\n 'report.debt_equity_ratio_help_4':\r\n 'Nilai debt to equity ratio di atas 2 atau 200% menunjukkan bahwa kondisi keuangan perusahaan sudah sangat rawan terhadap berbagai jenis risiko.',\r\n 'report.equity_ratio_help_1':\r\n 'Equity Ratio menunjukkan nilai aset yang dibiayai menggunakan ekuitas pemilik. Semakin tinggi proporsi dana dari pemilik, maka dianggap semakin rendah resikonya.',\r\n 'report.equity_ratio_help_2':\r\n 'Rasio ini dihitung dengan membagi total ekuitas perusahaan dengan total asetnya.',\r\n 'report.equity_ratio_help_3': 'Rumus Equity Ratio = Total Ekuitas / Total Aset',\r\n 'birthday.please_input_the_birthday_template_subject':\r\n 'Silakan masukkan judul untuk template ulang tahun.',\r\n 'birthday.send_an_email_to_a_customer_having_a_birthday':\r\n 'Kirim email ke pelanggan yang berulang tahun',\r\n 'birthday.when_email_birthday_sent':\r\n 'Pada hari ulang tahun, pelanggan akan secara otomatis dikirim email ucapan selamat ulang tahun. Pastikan telah mengisi tanggal lahir pelanggan dari masing-masing data kontak pelanggan Anda!',\r\n 'settings.customer_birthday': 'Kirim email ke pelanggan yang sedang berulang tahun',\r\n 'businessFlow.add_format_code': 'Tambahkan kode format',\r\n 'financeInvoices.profit_margin_minus': 'Profit margin minus',\r\n 'financeInvoices.select_name': 'Pilih {name}',\r\n 'financeWareHouses.stock_adjustment_price': 'Harga Penyesuaian Stok',\r\n 'financeWareHouses.recorded_average_price': 'Harga Rata-Rata Tercatat',\r\n 'financeApproval.cannot_approve_transaction': 'Gagal melakukan approve pada transaksi ini.',\r\n 'report.equity_movement_capital_balance': 'Saldo Modal',\r\n 'report.equity_movement_capital_increase': 'Penambahan Modal',\r\n 'report.equity_movement_capital_reduction': 'Pengurangan Modal',\r\n 'report.equity_movement_capital_component_trends': 'Tren Komponen Modal',\r\n 'report.equity_movement_capital_component': 'Komponen Modal',\r\n 'report.receivable_payable_debt_widget': 'Hutang',\r\n 'report.receivable_payable_receivable_widget': 'Piutang',\r\n 'report.receivable_payable_net_debt_receivable_widget': 'Net Hutang Piutang',\r\n 'report.receivable_payable_debt_receivable_contact_widget': 'Kontak',\r\n 'report.receivable_payable_debt': 'Hutang Terbanyak',\r\n 'report.receivable_payable_receivable': 'Piutang Terbanyak',\r\n 'report.receivable_payable_ratio_debt_receivable': 'Rasio Hutang Piutang',\r\n 'report.receivable_payable_trend_debt_receivable': 'Tren Hutang Piutang',\r\n 'report.receivable_payable_transaction': 'transaksi',\r\n 'report.receivable_payable_this_month': 'bulan ini',\r\n 'report.receivable_payable_this_year': 'tahun ini',\r\n 'report.receivable_payable_contact_debt_with_title': 'kontak punya {title}',\r\n 'report.receivable_payable_contact_receivable_with_title': 'kontak punya {title}',\r\n 'report.executive_summary_equity_movement': 'Perubahan Modal',\r\n 'financeProduct.change_column_display': 'Mengubah tampilan kolom...',\r\n 'financeProduct.column_display_changed_successfully': 'Tampilan kolom berhasil diubah',\r\n 'reports.add_menu_to_favorites_menu': 'Tambahkan menu ke menu favorit',\r\n 'reports.remove_from_favorites_menu': 'Hilangkan dari menu favorit',\r\n 'page404.title': 'Halaman tidak ditemukan',\r\n 'page404.description':\r\n 'Halaman tersebut tidak digunakan lagi, dihapus, atau tidak ada sama sekali',\r\n 'page404.fallback': 'Kembali ke halaman beranda',\r\n 'page404.custom_detail_title': 'Halaman detail {title} tidak ditemukan',\r\n 'page404.custom_import_title': 'Halaman import {title} tidak ditemukan',\r\n 'page404.custom_detail_description': '{title} ini telah dihapus atau tidak ada sama sekali',\r\n 'page404.custom_fallback': 'Kembali ke halaman {title}',\r\n 'report.cash_change': 'Perubahan Kas',\r\n 'report.end_period': 'Saldo Penutupan',\r\n 'report.cash_out': 'Kas Keluar',\r\n 'report.cash_in': 'Kas Masuk',\r\n 'report.trend_cash_flow': 'Tren Arus Kas',\r\n 'report.chart_cash_flow': 'Saldo Kas',\r\n 'report.funding_components': 'Komponen Pendanaan',\r\n 'report.investment_components': 'Komponen Investasi',\r\n 'report.operational_components': 'Komponen Operasional',\r\n 'report.vs_1_year_ago': 'vs 1 tahun lalu',\r\n 'report.bank_summary_balance_per_bank': 'Saldo per Bank',\r\n 'report.bank_summary_trend_balance_per_bank': 'Trend Saldo per Bank',\r\n 'report.bank_summary_trend_received_per_bank': 'Trend Kas Masuk per Bank',\r\n 'report.bank_summary_balance_all_bank': 'Saldo Seluruh Bank',\r\n 'report.bank_summary_trend_spent_per_bank': 'Trend Kas Keluar per Bank',\r\n 'report.bank_summary_trend_net_per_bank': 'Trend Net Pergerakan per Bank',\r\n\r\n 'financeContacts.contact_information': 'Informasi Kontak',\r\n 'financeInvoices.void_reason_label': 'Silahkan masukkan alasan void transaksi',\r\n 'financeInvoices.void_reason_placeholder': 'Silahkan masukkan alasan anda',\r\n 'report.profit_loss_net_profit_margin': 'Margin Laba Bersih',\r\n 'report.profit_loss_gross_profit_margin': 'Margin Laba Kotor',\r\n 'report.profit_loss_operating_expense_ratio': 'Rasio Biaya Operasional',\r\n 'report.profit_loss_profit_loss_trend': 'Tren Laba Rugi',\r\n 'report.profit_loss_flow': 'Alur Laba Rugi',\r\n 'report.profit_loss_income_details': 'Rincian Pendapatan',\r\n 'report.profit_loss_expense_details': 'Rincian Biaya',\r\n 'report.profit_loss_component_trends': 'Tren Komponen Laba Rugi',\r\n 'reports.sales_value_per_product_category_graph': 'Nilai Penjualan per Kategori Produk',\r\n 'reports.total_sales_per_product_category_graph': 'Jumlah Penjualan per Kategori Produk',\r\n 'transactionFees.total_transaction_fees': 'Total Biaya Transaksi',\r\n 'settings.fees': 'Atur biaya transaksi penjualan dan pembelian',\r\n 'transactionFees.fees': 'Biaya Transaksi',\r\n 'transactionFees.nominal': 'Nominal',\r\n 'transactionFees.please_input_the_nominal': 'Silahkan masukkan nominal',\r\n 'transactionFees.please_select_transaction_fee': 'Silahkan pilih biaya transaksi',\r\n 'transactionFees.select_transaction_fee': 'Pilih biaya transaksi',\r\n 'reports.total_of_transactions_per_customer': 'Jumlah Transaksi per Pelanggan',\r\n 'reports.total_of_transactions_per_vendor': 'Jumlah Transaksi per Vendor',\r\n 'reports.expense_claim_per_term': 'Klaim Biaya Per Tempo',\r\n 'reports.term_expense_claim': 'Tempo Klaim Biaya',\r\n 'reports.total_due_expense_claim': 'Total Klaim Biaya Jatuh Tempo',\r\n 'financeBanks.bank_statements_empty_title': 'Anda belum mempunyai data transaksi bank',\r\n 'financeBanks.bank_statements_empty_description':\r\n 'Data transaksi bank dapat diimport otomatis dari rekening Bank Anda atau import secara
manual dengan upload filex Excel.',\r\n 'financeBanks.bank_statements_automatic_import': 'Import Otomatis',\r\n 'financeBanks.bank_statements_manual_import': 'Import Manual',\r\n 'financeInvoices.enter_the_number_of_shipping_items': 'Masukkan jumlah item pengiriman',\r\n 'billing.pos_renew_outlet': 'Perpanjang Outlet',\r\n 'billing.pos_length_of_contract': 'Lama Kontrak',\r\n 'billing.add_pos_addon': 'Tambah Addon POS',\r\n 'billing.renew_pos': 'Perpanjang POS',\r\n 'hideFeature.add_pos_addon_or_upgrade':\r\n 'Addon POS anda telah habis masa aktifnya, silahkan order
perpanjangan untuk kembali dapat mengakses POS',\r\n 'report.journal_transaction_value': 'Nilai Transaksi',\r\n 'report.journal_transaction_amount': 'Jumlah Transaksi',\r\n 'report.journal_journal_row': 'Baris Jurnal',\r\n 'report.journal_value_per_transaction_type': 'Nilai Per Tipe Transaksi',\r\n 'report.journal_total_transaction_per_type': 'Jumlah Transaksi Per Tipe',\r\n 'report.journal_total_transaction_value': 'Total Nilai Transaksi',\r\n 'report.journal_total_transaction_amount': 'Total Jumlah Transaksi',\r\n 'report.journal_total_journal_row': 'Total Baris Jurnal',\r\n\r\n 'bankConnect.hash_tag': '#bankconnect',\r\n 'bankConnect.head_title_1': 'Otomatis Download',\r\n 'bankConnect.head_title_2': 'Mutasi Rekening',\r\n 'bankConnect.head_title_3': 'Bank ke Kledo',\r\n 'bankConnect.head_title_description':\r\n 'Kini setiap transaksi di rekening bank mu bisa otomatis masuk ke Kledo dan direkonsiliasi. Tidak ada lagi deh selisih laporan keuangan dengan transaksi riil di bank.',\r\n 'bankConnect.sales_contact': 'Hubungi Tim Hebat Kledo',\r\n 'bankConnect.add_bank_connect': 'Tambah Bank Connect',\r\n 'bankConnect.set_bank_connect': 'Atur Bank Connect',\r\n 'bankConnect.feat_title_1': 'Apa yang',\r\n 'bankConnect.feat_title_2': 'Anda Dapatkan',\r\n 'bankConnect.feat_title_3': 'Dengan Bank Connect',\r\n 'bankConnect.feat_1_sub_title': 'Otomatis Download Mutasi',\r\n 'bankConnect.feat_1_description':\r\n 'Setiap hari, data transaksi mutasi bank akan otomatis terdownload ke aplikasi Kledo. Tak perlu lagi repot export transaksi dari ibanking dan import ke Kledo.',\r\n 'bankConnect.feat_2_sub_title': 'Gratis, Tanpa Biaya',\r\n 'bankConnect.feat_2_description':\r\n 'Kledo tidak mengenakan biaya sepeserpun untuk menggunakan fitur Bank Connect. Tetapi bank akan mengenakan biaya untuk koneksi API, biaya bervariasi untuk masing-masing bank.',\r\n 'bankConnect.feat_3_sub_title': 'Koneksi Langsung via Bank API',\r\n 'bankConnect.feat_3_description':\r\n 'Tanpa menggunakan pihak ke 3, Kledo akan langsung terhubung dengan bank Anda melalui API.',\r\n 'bankConnect.feat_4_sub_title': 'Aman dan Terjamin',\r\n 'bankConnect.feat_4_description':\r\n 'Kerjasama Kledo dan Bank hanya dibatasi pada pengambilan mutasi rekening saja, sehingga tidak memungkinkan adanya transaksi uang keluar dari rekening Anda.',\r\n 'bankConnect.feat_5_sub_title': 'Unlimited',\r\n 'bankConnect.feat_5_description':\r\n 'Tanpa batasan jumlah transaksi tiap harinya, dan tanpa batasan jumlah rekening yang Anda hubungkan. Semuanya gratis!',\r\n 'bankConnect.footer_note': 'Yuk mudahkan proses rekonsiliasi bank mu sekarang juga!',\r\n 'report.number_of_shipments_per_expedition': 'Jumlah Pengiriman per Ekspedisi',\r\n 'report.sales_value_per_expedition': 'Nilai Penjualan per Ekspedisi',\r\n 'reports.product_sales_per_customer': 'Penjualan Produk Per Pelanggan',\r\n 'reports.product_sales_per_customer_group': 'Penjualan Produk Per Grup Pelanggan',\r\n 'reports.product_purchases_per_vendor': 'Pembelian Produk Per Vendor',\r\n 'reports.product_purchases_per_vendor_group': 'Pembelian Produk Per Grup Vendor',\r\n 'reports.cash_movement': 'Pergerakan Kas',\r\n 'reports.account_component': 'Komponen Akun',\r\n 'reports.excluded_accounts': 'Akun yang dikecualikan',\r\n 'reports.select_excluded_accounts': 'Pilih akun yang ingin dikecualikan',\r\n 'kledoPos.setting_default_account_receive_payment': 'Default Akun Terima Pembayaran',\r\n 'kledoPos.setting_default_account_receive_payment_desc':\r\n 'Saat melakukan pembayaran transaksi di POS, maka di akunting akan dicatatkan pada akun COA ini.',\r\n 'billing.show_coupon': 'Tambah Kupon',\r\n 'billing.hide_coupon': 'Sembunyikan Kupon',\r\n 'billing.input_coupon': 'Masukkan Kupon',\r\n 'reports.purchase_per_period_value': 'Nilai Pembelian',\r\n 'reports.purchase_per_period_amount': 'Jumlah Pembelian',\r\n 'layoutInvoice.invoice_show_witholding_detail': 'Tampilkan Detail Pemotongan',\r\n 'financeContacts.new_contact': 'Kontak Baru',\r\n 'financeContacts.total_contact': 'Total Kontak',\r\n 'financeContacts.contact_per_group': 'Kontak Per Grup',\r\n 'financeContacts.contact_per_province': 'Kontak Per Provinsi',\r\n 'reportsImport.date_and_time': 'Tanggal & Waktu',\r\n 'reportsImport.total': 'Jumlah Import',\r\n 'reportsImport.valid': 'Berhasil',\r\n 'reportsImport.invalid': 'Gagal',\r\n 'pos.pos_role': 'Peran POS',\r\n 'approval.financeBanks': 'Kas & Bank',\r\n 'financeWareHouses.change_access_per_contact': 'Ubah Akses Per Kontak',\r\n 'financeWareHouses.per_contact_warehouse_access': 'Akses Gudang Per Kontak',\r\n 'financeWareHouses.per_contact_warehouse_access_desc':\r\n 'Gudang dapat dikhususkan hanya dapat digunakan untuk grup kontak yang terpilih.
Misalnya, Gudang Surabaya hanya bisa digunakan untuk pelanggan dalam grup Surabaya. Sedangkan Gudang Nasional bisa digunakan untuk semua pelanggan',\r\n 'financeWareHouses.warehouse_per_contact_type':\r\n 'Gudang dapat digunakan oleh grup kontak mana saja?',\r\n 'financeWareHouses.all_contact_groups': 'Semua Grup Kontak',\r\n 'financeWareHouses.select_contact_group': 'Pilih Grup Kontak',\r\n 'reports.using_new_table_view': 'Anda sedang menggunakan tampilan tabel baru',\r\n 'reports.using_legacy_table_view': 'Anda sedang menggunakan tampilan tabel lama',\r\n 'reports.switch_to_new_table_view': 'Ganti ke tampilan tabel baru',\r\n 'reports.switch_to_old_table_view': 'Ganti ke tampilan tabel lama',\r\n 'settings.finance_payment_connect': 'Terima pembayaran dari ewallet, kartu kredit, VA',\r\n 'paymentConnect.connection_test': 'Tes Koneksi',\r\n 'paymentConnect.activate_payment_via_provider_name': 'Aktifkan pembayaran melalui {providerName}',\r\n 'paymentConnect.coa_cash_bank_accounts': 'Akun COA Kas & Bank',\r\n 'paymentConnect.coa_cash_bank_accounts_help_text':\r\n 'Pembayaran dari payment gateway akan dicatatkan pada akun bank ini',\r\n 'paymentConnect.coa_expense_account': 'Akun COA Beban',\r\n 'paymentConnect.coa_expense_account_help_text':\r\n 'Biaya Transaksi atas pembayaran akan dicatatkan pada akun COA ini',\r\n 'paymentConnect.tax_coa_account': 'Akun COA Pajak',\r\n 'paymentConnect.tax_coa_account_help_text':\r\n 'Pengenaan pajak transaksi atas pembayaran akan dicatatkan pada akun COA ini',\r\n 'paymentConnect.midtrans_api_key_help_text':\r\n 'Salin API Key dari akun Midtrans Anda, melalui menu Pengaturan >> Access Keys >> Server Key',\r\n 'paymentConnect.xendit_api_key_help_text':\r\n 'Salin API Key dari akun Xendit Anda, melalui menu Pengaturan >> Developer >> API keys >> Buat secret key baru >> Secret API Key',\r\n 'paymentConnect.doku_api_key_help_text':\r\n 'Salin API Key dari akun DOKU Anda, melalui menu Integration >> API Keys >> Secret Key',\r\n 'paymentConnect.token_callback_help_text':\r\n 'Klik tombol salin URL dibawah, kemudian masukkan ke akun {providerName}',\r\n 'invoices.payment_link': 'Link Pembayaran {providerName}',\r\n 'invoices.payment_connect_not_activated':\r\n 'Anda belum mengaktifkan fitur {title}. Dengan {title}, pelanggan Anda dapat melakukan pembayaran melalui berbagai channel pembayaran, seperti GoPay, Kartu Kredit, Virtual Account, Alfamart, Kredivo dan banyak lagi.',\r\n 'invoices.activate': 'Aktifkan',\r\n 'paymentConnect.please_input_api_key': 'Silahkan masukkan API Key',\r\n 'paymentConnect.please_input_tax_coa_account': 'Silahkan masukkan Akun COA Pajak',\r\n 'paymentConnect.please_input_coa_expense_account': 'Silahkan masukkan Akun COA Beban',\r\n 'paymentConnect.please_input_coa_cash_bank_accounts': 'Silahkan masukkan Akun COA Kas & Bank',\r\n 'layoutInvoice.show_reference_as_message_with_title': 'Tampilkan {reference} Sebagai Pesan',\r\n 'tags.choose_a_color': 'Pilih warna',\r\n 'report.profitloss_delta_tooltip':\r\n 'Perbedaan antara pendapatan periode sebelumnya dan pendapatan periode ini.',\r\n 'report.profitloss_delta_percentage_tooltip':\r\n 'Pertumbuhan atau penurunan dari pendapatan periode sebelumnya.',\r\n 'kledoPos.setting_sales_tags': 'Tags Penjualan',\r\n 'kledoPos.setting_sales_tags_description':\r\n 'Penjualan melalui POS akan otomatis menggunakan tags berikut.',\r\n 'sso.please_input_your_code': 'Silakan masukkan kode Anda',\r\n 'sso.verified': 'Diverifikasi',\r\n 'sso.pending_verification': 'Verifikasi Tertunda',\r\n 'sso.domain_verification': 'Verifikasi Domain',\r\n 'sso.domain_verification_successful': 'Verifikasi Domain Berhasil',\r\n 'sso.add_domain': 'Tambah Domain',\r\n 'sso.add_domain_desc':\r\n 'Silahkan masukkan alamat email Anda yang mengandung nama domain perusahaan Anda. Misalnya namaku@namaperusahaan.com',\r\n 'sso.domain_successfully_verified': 'Selamat! Domain {domainName} berhasil diverifikasi.',\r\n 'sso.verify_domain_desc':\r\n 'Kode verifikasi telah dikirim ke alamat email Anda. Silahkan masukkan kode verifikasi pada form di bawah',\r\n 'sso.verification': 'Verifikasi',\r\n 'sso.resend_code': 'Kirim ulang kode',\r\n 'sso.sso_configuration_service_provider_desc':\r\n 'Silahkan masukkan data SP Entity ID dan SP ACS URL di bawah ke dalam halaman administrasi identity provider anda',\r\n 'sso.sso_configuration_identity_provider_desc':\r\n 'Ambil data IDP Entity ID dan SAML Login URL dari identity provider Anda, kemudian masukkan ke form di bawah',\r\n 'sso.sso_please_enter_idp_entity_id': 'Silahkan masukkan IDP Entity ID',\r\n 'sso.sso_please_enter_saml_login_url': 'Silahkan masukkan SAML Login URL',\r\n 'sso.sso_configuration': 'Konfigurasi SSO',\r\n 'settings.sso_setting': 'Login Kledo dengan hanya satu akun',\r\n 'sso.continue_with_sso': 'Lanjutkan dengan SSO',\r\n 'sso.login_with_sso': 'Login dengan SSO',\r\n 'sso.login_sso_desc':\r\n 'Akun Anda telah mengaktifkan Single Sign-On. Lanjutkan dengan SSO
untuk mengakses akun Kledo Anda',\r\n 'sso.return_to_login': 'Kembali ke login',\r\n 'businessFlow.enable_login_with_sso': 'Aktifkan login dengan SSO?',\r\n 'businessFlow.enable_login_with_sso_desc': 'Apakah Anda menggunakan SSO untuk login?',\r\n 'contacts.group_with_title': 'Grup {title}',\r\n 'contacts.who_can_access_this_contact_group': 'Siapa yang bisa mengakses grup ini?',\r\n 'settings.approval_setting': 'Pengaturan Approval',\r\n 'financeExpenseTerms.select_terms': 'Pilih Termin',\r\n 'approval.transfer_money': 'Transfer Dana',\r\n 'dashboard.the_maximum_number_that_can_be_displayed_on_the_dashboard':\r\n 'Jumlah maksimal yang dapat ditampilkan di dashboard adalah 30',\r\n 'sso.faq_question_what_is_sso': 'Apa itu Single Sign On (SSO)?',\r\n 'sso.faq_answer_what_is_sso':\r\n 'SSO memungkinkan pengguna untuk login ke banyak aplikasi dan website menggunakan satu identity provider. Sehingga pengguna tidak perlu menghafal banyak user dan password untuk masing-masing aplikasi atau website.',\r\n 'sso.faq_question_how_does_sso_work': 'Bagaimana cara kerja SSO?',\r\n 'sso.faq_answer_1_how_does_sso_work': 'Pengguna berusaha login ke Kledo menggunakan SSO',\r\n 'sso.faq_answer_2_how_does_sso_work': 'Kledo mengirimkan data pengguna ke Identity Provider',\r\n 'sso.faq_answer_3_how_does_sso_work':\r\n 'Identity Provider melakukan pengecekan kredensial pengguna',\r\n 'sso.faq_answer_4_how_does_sso_work':\r\n 'Identity Provider mengirimkan respon ke Kledo, memberitahukan bahwa pengguna diperbolehkan login',\r\n 'sso.faq_answer_5_how_does_sso_work':\r\n 'Kledo menerima info tersebut dari Identity Provider, dan meloginkan pengguna tersebut ke Kledo',\r\n 'sso.faq_question_how_to_setup_sso_in_kledo': 'Bagaimana cara setup SSO di Kledo?',\r\n 'sso.faq_answer_how_to_setup_sso_in_kledo': 'Klik {here} untuk tutorial cara setup SSO di Kledo.',\r\n 'sso.here': 'di sini',\r\n 'report.average_unit_price': 'Harga Satuan Rata-Rata',\r\n 'report.average_product_value': 'Nilai Produk Rata-Rata',\r\n 'report.total_product_value': 'Total Nilai Produk',\r\n 'billing.payment_balance': 'Saldo Pembayaran',\r\n 'roles.time_access_limit': 'Terapkan batas waktu akses',\r\n 'roles.access_limit': 'Batas waktu akses',\r\n 'roles.restricted_access_type_monday_friday': 'Senin - Jumat Jam Kerja',\r\n 'roles.restricted_access_type_monday_saturday': 'Senin - Sabtu Jam Kerja',\r\n 'roles.restricted_access_type_custom': 'Custom',\r\n 'roles.active_days_monday': 'Senin',\r\n 'roles.active_days_tuesday': 'Selasa',\r\n 'roles.active_days_wednesday': 'Rabu',\r\n 'roles.active_days_thursday': 'Kamis',\r\n 'roles.active_days_friday': 'Jumat',\r\n 'roles.active_days_saturday': 'Sabtu',\r\n 'roles.active_days_sunday': 'Minggu',\r\n 'businessFlow.enable_contact_group_is_required': 'Grup wajib diisi',\r\n 'businessFlow.enable_contact_group_is_required_desc':\r\n 'Apakah saat menambah dan mengubah kontak harus ada grup?',\r\n 'report.unit_price_help':\r\n 'Harga Satuan yang ditampilkan merupakan harga pembelian terakhir (bukan harga rata-rata)',\r\n 'report.product_value_help':\r\n 'Nilai Produk yang ditampilkan merupakan harga satuan terakhir dikalikan kuantitas (bukan nilai produk rata-rata)',\r\n\r\n 'scheduler_lock_date.monday': 'Senin',\r\n 'scheduler_lock_date.tuesday': 'Selasa',\r\n 'scheduler_lock_date.wednesday': 'Rabu',\r\n 'scheduler_lock_date.thursday': 'Kamis',\r\n 'scheduler_lock_date.friday': 'Jumat',\r\n 'scheduler_lock_date.saturday': 'Sabtu',\r\n 'scheduler_lock_date.sunday': 'Minggu',\r\n 'scheduler_lock_date.days': 'Hari',\r\n 'scheduler_lock_date.weeks': 'Minggu',\r\n 'scheduler_lock_date.months': 'Bulan',\r\n 'scheduler_lock_date.create_successfully': 'Opsi berhasil diperbarui',\r\n 'scheduler_lock_date.create_failed': 'Tidak dapat memperbarui opsi',\r\n 'scheduler_lock_date.subtitle_1': 'Kini Anda bisa secara otomatis mengubah tanggal penguncian.',\r\n 'scheduler_lock_date.subtitle_2':\r\n 'Tentukan aturan otomatis perubahannya pada form di bawah, dan nantinya tanggal penguncian akan otomatis terupdate sesuai pengaturanmu.',\r\n 'scheduler_lock_date.is_automatically_changed':\r\n 'Apakah tanggal penguncian otomatis diubah berkala?',\r\n 'scheduler_lock_date.label1': 'Setiap kapan tanggal penguncian diubah?',\r\n 'scheduler_lock_date.label2': 'Setiap tanggal berapa tanggal penguncian diubah?',\r\n 'scheduler_lock_date.label3': 'Setiap hari apa tanggal penguncian diubah?',\r\n 'scheduler_lock_date.label4': 'Ubah tanggal penguncian ke tanggal kapan?',\r\n 'scheduler_lock_date.daily': 'Harian',\r\n 'scheduler_lock_date.weekly': 'Mingguan',\r\n 'scheduler_lock_date.monthly': 'Bulanan',\r\n 'scheduler_lock_date.example': 'Contoh:',\r\n 'scheduler_lock_date.example_sub':\r\n 'Jika tanggal penguncian otomatis diubah pada 1 Maret, dan tanggal penguncian diubah ke 2 bulan sebelumnya, maka tanggal penguncian akan berubah menjadi 1 Januari',\r\n 'scheduler_lock_date.earlier': 'Sebelumnya',\r\n 'scheduler_lock_date.update_successfully': 'Schedule Tanggal Penguncian berhasil diaktifkan.',\r\n 'scheduler_lock_date.update_failed': 'Tidak dapat mengaktifkan Schedule Tanggal Penguncian.',\r\n 'scheduler_lock_date.update_successfully_inactive':\r\n 'Schedule Tanggal Penguncian berhasil dinonaktifkan.',\r\n 'scheduler_lock_date.update_failed_inactive':\r\n 'Tidak dapat menonaktifkan Schedule Tanggal Penguncian.',\r\n 'financeFixedAssets.effective_life_title': 'Masa Manfaat',\r\n 'paymentConnect.faq_question_payment_gateway': 'Apa itu Payment Gateway?',\r\n 'paymentConnect.faq_answer_payment_gateway':\r\n 'Dengan menggunakan payment gateway, pelanggan Anda dapat melakukan pembayaran tagihan yang Anda terbitkan melalui berbagai channel pembayaran, seperti kartu kredit, gopay, virtual account dan sebagainya. \\n\\nKode QR akan disematkan pada tagihan Anda, sehingga pelanggan dapat membayar dengan mudah melalui scan QR Code.',\r\n 'paymentConnect.faq_question_when_customer_pays_through_payment_gateway':\r\n 'Apa yang terjadi saat pelanggan saya membayar melalui Payment Gateway?',\r\n 'paymentConnect.faq_answer_when_customer_pays_through_payment_gateway':\r\n 'Saat pembayaran dilakukan, maka tagihan Anda akan otomatis terupdate status pembayarannya. Sehingga Anda tidak perlu lagi repot mencatatkan setiap pembayaran yang masuk.',\r\n 'paymentConnect.faq_question_payment_gateway_supported_by_kledo':\r\n 'Payment Gateway apa saja yang didukung oleh Kledo?',\r\n 'paymentConnect.faq_answer_payment_gateway_supported_by_kledo':\r\n 'Anda dapat menggunakan Midtrans, Xendit maupun Doku.',\r\n 'paymentConnect.faq_question_charge_a_fee':\r\n 'Apakah Kledo memungut biaya untuk penggunaan Payment Gateway?',\r\n 'paymentConnect.faq_answer_charge_a_fee':\r\n 'Tidak. Namun pihak payment gateway provider akan mengenakan biaya per transaksi. Untuk informasi lebih detailnya, bisa ditanyakan langsung ke pihak Midtrans, Xendit maupun Doku.',\r\n 'paymentConnect.faq_question_how_to_setup': 'Bagaimana cara setup nya?',\r\n 'paymentConnect.faq_answer_how_to_setup': 'Klik tautan berikut:',\r\n 'report.see_report': 'Lihat Laporan',\r\n 'paymentConnect.click_here_to_go_to_tutorial':\r\n '{clickHere} untuk detail cara setup payment connect {providerName}.',\r\n 'kledoPos.service_charge': 'Service Charge Pada Biaya Tagihan',\r\n 'kledoPos.service_charge_desc':\r\n 'Pada penjualan yang terdapat service charge, biaya dicatatkan pada master biaya tagihan ini.',\r\n 'paymentConnect.success_copy_url_callback': 'Url callback berhasil disalin',\r\n 'financeContacts.search_on_google_map': 'Cari di Google Map',\r\n 'users.check_user_quota_availability': 'Cek ketersediaan kuota {title}',\r\n 'businessFlow.duplicate_contact_email': 'Duplikat email kontak',\r\n 'businessFlow.duplicate_contact_email_desc': 'Jika aktif maka email kontak bisa duplikat.',\r\n 'audit.ip_address': 'Alamat IP',\r\n 'audit.enter_ip_address': 'Masukkan alamat IP',\r\n 'topBar.show_dark_mode': 'Tampilkan mode gelap',\r\n 'topBar.show_light_mode': 'Tampilkan mode terang',\r\n 'financeInvoices.reject_reason_label': 'Silahkan masukkan alasan Anda menolak transaksi',\r\n 'massDownload.data_progress_processed': '{count} data dari total {total} telah diproses',\r\n 'billing.enter_coupon_code': 'Masukkan Kode Kupon',\r\n 'approval.receive_invoice_payment': 'Terima Pembayaran Tagihan',\r\n 'approval.receive_sales_order_payment': 'Terima DP Pemesanan Penjualan',\r\n 'approval.purchase_payment': 'Pembayaran Pembelian',\r\n 'approval.purchase_order_payment': 'Pembayaran DP Pemesanan Pembelian',\r\n 'financeInvoices.detail_something': 'Detail {something}',\r\n 'financeInvoices.logistic': 'Logistik',\r\n 'financeInvoices.location': 'Lokasi',\r\n\r\n 'placeholder.attachment': 'Pilih Attachment',\r\n 'option.with_attachment': 'Punya Attachment',\r\n 'option.without_attachment': 'Tanpa Attachment',\r\n 'placeholder.attachment_photo': 'Pilih Foto',\r\n 'option.with_attachment_photo': 'Punya Foto',\r\n 'option.without_attachment_photo': 'Tanpa Foto',\r\n 'title.attachment_photo': 'Foto',\r\n 'layoutInvoice.show_transaction_fee_details': 'Tampilkan Detail Biaya Transaksi',\r\n 'massPrint.data_progress_processed': '{count} data dari total {total} telah diproses',\r\n 'massPrint.mass_print': 'Cetak Massal',\r\n 'uploadImage.image_with_title': 'Gambar {title}',\r\n 'uploadImage.show_image_with_title': 'Tampilkan Gambar {title}',\r\n 'uploadImage.hide_image_with_title': 'Sembunyikan Gambar {title}',\r\n 'financeInvoices.this_customer': '{customer} Ini',\r\n 'financeInvoices.all_customer': 'Seluruh {customer}',\r\n 'financeInvoices.sales_price_history': 'Riwayat Harga Jual',\r\n 'financeInvoices.sales_price_history_of_all_customers': 'Riwayat Harga Jual Seluruh {customer}',\r\n 'financeInvoices.something_has_been_applied': '{something} telah diterapkan',\r\n 'financePurchaseInvoices.transaction_date_must_be_gt_date':\r\n 'Tgl Transaksi harus lebih dari {date}',\r\n 'financeInvoices.failed_to_get_sales_price_history':\r\n 'Gagal mendapatkan riwayat harga jual terakhir',\r\n}\r\n\r\nexport default {\r\n locale: 'id-ID',\r\n antdData,\r\n localeData,\r\n messages,\r\n}\r\n","import theme from './theme'\r\n\r\nexport const styledComponentsTheme = {\r\n ...theme,\r\n responsive: {\r\n xxlMinWidth: '1600px',\r\n xxlMaxWidth: '1599px',\r\n xlMinWidth: '1200px',\r\n xlMaxWidth: '1199px',\r\n mdMinWidth: '992px',\r\n mdMaxWidth: '991px',\r\n smMinWidth: '768px',\r\n smMaxWidth: '767px',\r\n xsMinWidth: '576px',\r\n xsMaxWidth: '575px',\r\n },\r\n}\r\n","import React, { useCallback, useEffect } from 'react'\r\nimport { addLocaleData, IntlProvider } from 'react-intl'\r\nimport { connect, useSelector } from 'react-redux'\r\nimport dayjs from 'dayjs'\r\nimport 'dayjs/locale/id'\r\nimport store from 'store'\r\nimport { ThemeProvider } from 'styled-components'\r\nimport { ConfigProvider as AntdProvider, theme } from 'antd'\r\n\r\nimport english from 'locales/en-US'\r\nimport indonesia from 'locales/id-ID'\r\nimport { styledComponentsTheme } from 'styledComponentsTheme'\r\nimport { optionsSelector } from 'redux/selectors'\r\nimport { allowedLocales } from 'utils/static'\r\n\r\nconst { defaultAlgorithm, darkAlgorithm } = theme\r\n\r\naddLocaleData(english.localeData)\r\naddLocaleData(indonesia.localeData)\r\n\r\nconst locales = {\r\n 'en-US': english,\r\n 'id-ID': indonesia,\r\n}\r\n\r\nconst ConfigProvider = ({ children, settings }) => {\r\n const options = useSelector(optionsSelector)\r\n\r\n const setLocale = useCallback(() => {\r\n if (settings.locale === 'id-ID') {\r\n dayjs.locale('id')\r\n } else {\r\n dayjs.locale('en')\r\n }\r\n }, [settings.locale])\r\n\r\n const setDarkMode = useCallback(() => {\r\n if (options && options?.dark_mode === 1) {\r\n store.set('app.darkMode', 1)\r\n document.documentElement.classList.add('dark')\r\n document.documentElement.setAttribute('data-color-scheme', 'dark')\r\n } else if (options && options?.dark_mode === 0) {\r\n store.remove('app.darkMode')\r\n document.documentElement.classList.remove('dark')\r\n document.documentElement.setAttribute('data-color-scheme', 'light')\r\n }\r\n }, [options])\r\n\r\n useEffect(() => {\r\n setLocale()\r\n }, [setLocale])\r\n\r\n useEffect(() => {\r\n if (options) {\r\n setDarkMode()\r\n }\r\n }, [options, setDarkMode])\r\n\r\n const currentLocale =\r\n locales[allowedLocales.includes(settings.locale) ? settings.locale : 'id-ID']\r\n\r\n const config = Object.freeze({\r\n algorithm: options && options?.dark_mode === 1 ? darkAlgorithm : defaultAlgorithm,\r\n token: {\r\n colorPrimary: '#4677f3',\r\n fontSize: 13,\r\n },\r\n components: {\r\n Table: {\r\n headerBg: options && options?.dark_mode === 1 ? '#424242' : '#F2F4F8',\r\n rowHoverBg: options && options?.dark_mode === 1 ? '#424242' : '#F2F4F8',\r\n },\r\n Tooltip: {\r\n zIndexPopup: 2071,\r\n colorBgSpotlight: 'rgba(0, 0, 0, 0.75)',\r\n },\r\n DatePicker: {\r\n cellHoverWithRangeBg: options && options?.dark_mode === 1 ? '#424242' : '',\r\n },\r\n },\r\n })\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect(({ settings }) => ({ settings }))(ConfigProvider)\r\n","import axios from 'axios'\r\nimport NProgress from 'nprogress'\r\nimport { notification } from 'antd'\r\nimport * as Sentry from '@sentry/react'\r\nimport { push } from 'connected-react-router'\r\nimport _ from 'lodash'\r\n\r\nimport { showLoginForm } from 'redux/user/actions'\r\nimport { setMaintenance } from 'redux/maintenance/actions'\r\nimport { setLoadedInit } from 'redux/inits/actions'\r\nimport { getToken, setToken } from './cookies'\r\nimport { generateBaseUri } from './helper'\r\n\r\nconst customAxios = axios.create({\r\n baseURL: generateBaseUri(),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n timeout: 300000,\r\n withCredentials: true,\r\n})\r\n\r\nconst isAuthorization = (config = {}) => {\r\n // const hasAuthorizationProperty = Object.prototype.hasOwnProperty.call(config, \"authorization\");\r\n return !!config.headers.Authorization\r\n}\r\n\r\nexport const requestHandler = (request) => {\r\n if (isAuthorization(request)) {\r\n request.headers.Authorization = `Bearer ${getToken()}`\r\n } else {\r\n delete request.headers.Authorization\r\n }\r\n return request\r\n}\r\n\r\nexport const errorHandler = (error, store, history) => {\r\n if (axios.isCancel(error)) {\r\n return Promise.reject(error)\r\n }\r\n\r\n const status = error.response?.status\r\n\r\n let errorMessage\r\n\r\n try {\r\n if (_.isArrayBuffer(error?.response?.data)) {\r\n errorMessage = JSON.parse(new TextDecoder().decode(error?.response?.data)).message\r\n } else errorMessage = error?.response?.data?.message || 'Network error'\r\n } catch {\r\n errorMessage = error?.response?.data?.message || 'Network error'\r\n }\r\n\r\n switch (status) {\r\n case 401:\r\n // const currentLocation = history.location.pathname;\r\n if (history.location.pathname !== '/user/login') {\r\n NProgress.done()\r\n store.dispatch(showLoginForm(error?.response?.data?.message))\r\n // localStore.set('app.previousPathname', currentLocation);\r\n // store.dispatch(push('/user/login'));\r\n }\r\n break\r\n\r\n case 521:\r\n NProgress.done()\r\n store.dispatch(setMaintenance(errorMessage))\r\n store.dispatch(setLoadedInit())\r\n store.dispatch(push('/maintenance'))\r\n break\r\n\r\n case 400: // Bad Request\r\n break\r\n case 404: // Not Found\r\n break\r\n case status >= 500: // Server error\r\n break\r\n\r\n case 422:\r\n Sentry.captureException(errorMessage)\r\n break\r\n default:\r\n break\r\n }\r\n notification.warning({\r\n // message: title,\r\n description: errorMessage,\r\n key: errorMessage,\r\n })\r\n\r\n return Promise.reject(error.response)\r\n}\r\n\r\nexport const successHandler = (response) => {\r\n // Jika ada response access_token di set kan ke cookies\r\n const newToken = response.data?.access_token\r\n if (newToken && newToken !== getToken()) {\r\n setToken(response.data?.access_token)\r\n }\r\n return response\r\n}\r\n\r\n// Create custom axios GET with cancellation\r\nexport const makeGetRequestCreator = () => {\r\n let call\r\n return (url) => {\r\n if (call) {\r\n call.cancel('Only one request allowed at a time.')\r\n }\r\n call = axios.CancelToken.source()\r\n return customAxios.get(url, {\r\n cancelToken: call.token,\r\n })\r\n }\r\n}\r\n\r\nexport const getOnce = makeGetRequestCreator()\r\n\r\n// customAxios.interceptors.request.use((request) => requestHandler(request));\r\n// customAxios.interceptors.response.use(\r\n// (response) => successHandler(response),\r\n// (error) => errorHandler(error),\r\n// );\r\n\r\nexport default customAxios\r\n","import {SET_MAINTENANCE} from 'redux/actionTypes'\r\n\r\nexport const setMaintenance = (payload) => {\r\n return {\r\n type: SET_MAINTENANCE,\r\n payload,\r\n }\r\n}\r\n","import { startCase, toLower } from 'lodash'\r\n\r\nimport { appMessage } from 'utils/formatting'\r\nimport { updateObject } from 'redux/utility'\r\nimport * as actionTypes from 'redux/actionTypes'\r\n\r\nconst initialState = {\r\n menuLeftData: [],\r\n}\r\n\r\n// Memastikan format title huruf depan besar\r\nconst formatedTitle = (title) => startCase(toLower(title))\r\n\r\nconst formatedDashboardMenu = (dashboardMenus) => {\r\n return dashboardMenus.map((item, itemIndex) => {\r\n const subMenu = {\r\n key: `${item.title}-${itemIndex}`,\r\n title: item.title,\r\n name: item.name,\r\n icon: item.icon,\r\n }\r\n\r\n if (item.divider) {\r\n subMenu.divider = item.divider\r\n }\r\n\r\n if (item.sub) {\r\n subMenu.children = item.sub.map((row, rowIndex) => {\r\n const subChildrenMenu = {\r\n key: `${row.title}-${itemIndex}-${rowIndex}`,\r\n title: formatedTitle(row.title),\r\n name: row.name,\r\n url: row.url,\r\n icon: row.icon,\r\n }\r\n\r\n if (row.divider) {\r\n subChildrenMenu.divider = row.divider\r\n }\r\n\r\n return subChildrenMenu\r\n })\r\n } else {\r\n subMenu.url = item.url\r\n }\r\n\r\n return subMenu\r\n })\r\n}\r\n\r\nconst formatedSettingMenu = (settingMenus) => {\r\n return settingMenus.map((item, itemIndex) => {\r\n const subMenu = {\r\n key: `${item.title}-${itemIndex}`,\r\n title: item.title,\r\n name: item.name,\r\n icon: item.icon,\r\n group_id: item.group_id,\r\n }\r\n\r\n if (item.divider) {\r\n subMenu.divider = item.divider\r\n }\r\n\r\n if (item.children) {\r\n subMenu.children = item.children.map((row, rowIndex) => {\r\n const subChildrenMenu = {\r\n key: `${row.title}-${rowIndex}`,\r\n title: formatedTitle(row.title),\r\n name: row.name,\r\n url: `/settings${row.url}`,\r\n icon: row.icon,\r\n group_id: row.group_id,\r\n }\r\n\r\n if (row.divider) {\r\n subChildrenMenu.divider = row.divider\r\n }\r\n\r\n return subChildrenMenu\r\n })\r\n } else if (!subMenu.divider) {\r\n subMenu.url = `/settings${item.url}`\r\n }\r\n\r\n return subMenu\r\n })\r\n}\r\n// Ubah struktur menu dari api sesuai kebutuhan client\r\nconst formatedMenu = (menus) => {\r\n let menuLeftData = []\r\n const dashboard = formatedDashboardMenu(menus.dashboard)\r\n menuLeftData = [...dashboard]\r\n const menuSetting = {\r\n title: appMessage('settings'),\r\n name: 'settings',\r\n key: 'Settings',\r\n icon: 'cogs',\r\n children: formatedSettingMenu(menus.settings),\r\n url: '/settings',\r\n }\r\n menuLeftData.push(menuSetting)\r\n if (menus.faq) {\r\n menus.faq.key = menus.faq?.name;\r\n menuLeftData.push(menus.faq)\r\n }\r\n\r\n return menuLeftData\r\n}\r\n\r\nconst setMenu = (state, { payload }) => {\r\n return updateObject(state, {\r\n menuLeftData: formatedMenu(payload),\r\n })\r\n}\r\n\r\nconst editMenu = (state, { payload }) => {\r\n const menuLeftData = state.menuLeftData.map((menu) => {\r\n if (menu.name === payload.name) {\r\n menu.title = payload.value\r\n return menu\r\n }\r\n if (menu.children) {\r\n menu.children = menu.children.map((child) => {\r\n if (child.name === payload.name) {\r\n child.title = payload.value\r\n return child\r\n }\r\n return child\r\n })\r\n }\r\n return menu\r\n })\r\n\r\n return { menuLeftData }\r\n}\r\n\r\nconst resetMenu = (state, { payload }) => {\r\n const menuLeftData = state.menuLeftData.map((menu) => {\r\n let found = false\r\n // eslint-disable-next-line array-callback-return,consistent-return\r\n Object.keys(payload).map((e) => {\r\n if (found) return menu\r\n if (e === menu.name) {\r\n menu.title = payload[e]\r\n found = true\r\n return menu\r\n }\r\n })\r\n if (menu.children) {\r\n menu.children = menu.children.map((child) => {\r\n let foundChild = false\r\n // eslint-disable-next-line array-callback-return,consistent-return\r\n Object.keys(payload).map((e) => {\r\n if (foundChild) return child\r\n if (e === child.name) {\r\n child.title = payload[e]\r\n foundChild = true\r\n return child\r\n }\r\n })\r\n return child\r\n })\r\n }\r\n return menu\r\n })\r\n\r\n return { menuLeftData }\r\n}\r\n\r\nexport default function menuReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case actionTypes.SET_MENU:\r\n return setMenu(state, action)\r\n case actionTypes.EDIT_MENU:\r\n return editMenu(state, action)\r\n case actionTypes.RESET_MENU:\r\n return resetMenu(state, action)\r\n default:\r\n return state\r\n }\r\n}\r\n","import store from 'store'\r\n\r\nimport actions from './actions'\r\n\r\nconst STORED_SETTINGS = (storedSettings) => {\r\n const settings = {}\r\n Object.keys(storedSettings).forEach((key) => {\r\n const item = store.get(`app.settings.${key}`)\r\n settings[key] = typeof item !== 'undefined' ? item : storedSettings[key]\r\n })\r\n return settings\r\n}\r\n\r\nconst initialState = {\r\n ...STORED_SETTINGS({\r\n isMobileView: false,\r\n // isMobileMenuOpen: false,\r\n isLightTheme: true,\r\n isSettingsOpen: false,\r\n isMenuTop: false,\r\n // isMenuCollapsed: false,\r\n isBorderless: true,\r\n isSquaredBorders: false,\r\n isFixedWidth: false,\r\n isMenuShadow: true,\r\n locale: 'en-US',\r\n isTabView: false,\r\n }),\r\n}\r\n\r\nexport default function userReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case actions.SET_STATE:\r\n return { ...state, ...action.payload }\r\n default:\r\n return state\r\n }\r\n}\r\n","import { updateObject } from 'redux/utility'\r\nimport * as actionTypes from 'redux/actionTypes'\r\n\r\nconst initialState = {\r\n countries: [],\r\n bookingTypes: [],\r\n lang: [],\r\n}\r\n\r\nconst setRefs = (state, action) => {\r\n return updateObject(state, {\r\n lang: action.payload.lang,\r\n })\r\n}\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_REFS:\r\n return setRefs(state, action)\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer\r\n","import { updateObject } from 'redux/utility'\r\nimport * as actionTypes from 'redux/actionTypes'\r\n\r\nconst initialState = {\r\n loading: false,\r\n loadedInit: false,\r\n attemp: 1,\r\n announcement: '',\r\n}\r\n\r\nconst startLoading = (state) => {\r\n return updateObject(state, {\r\n loading: true,\r\n })\r\n}\r\n\r\nconst stopLoading = (state) => {\r\n return updateObject(state, {\r\n loading: false,\r\n })\r\n}\r\n\r\nconst startInit = (state) => {\r\n return updateObject(state, {\r\n loading: true,\r\n loadedInit: false,\r\n })\r\n}\r\n\r\nconst stopInit = (state) => {\r\n return updateObject(state, {\r\n loading: false,\r\n })\r\n}\r\n\r\nconst setLoadedInit = (state, payload) => {\r\n return updateObject(state, {\r\n loadedInit: payload,\r\n })\r\n}\r\n\r\nconst increaseAttemp = (state) => {\r\n return updateObject(state, {\r\n attemp: state.attemp + 1,\r\n })\r\n}\r\n\r\nconst resetAttemp = (state) => {\r\n return updateObject(state, {\r\n attemp: 1,\r\n })\r\n}\r\n\r\nconst setAnnouncement = (state, payload) => {\r\n return updateObject(state, {\r\n announcement: payload,\r\n })\r\n}\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_LOADING:\r\n return startLoading(state)\r\n case actionTypes.STOP_LOADING:\r\n return stopLoading(state)\r\n\r\n case actionTypes.START_INIT:\r\n return startInit(state)\r\n case actionTypes.STOP_INIT:\r\n return stopInit(state)\r\n case actionTypes.SET_LOADED_INIT:\r\n return setLoadedInit(state, action.payload)\r\n\r\n case actionTypes.INCREASE_ATTEMP:\r\n return increaseAttemp(state)\r\n case actionTypes.RESET_ATTEMP:\r\n return resetAttemp(state)\r\n case actionTypes.SET_ANNOUNCEMENT:\r\n return setAnnouncement(state, action.payload)\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer\r\n","import { updateObject } from 'redux/utility'\r\nimport * as actionTypes from 'redux/actionTypes'\r\n\r\nconst initialState = {\r\n payments: [],\r\n}\r\n\r\nconst setPayments = (state, { payload }) => {\r\n return updateObject(state, {\r\n payments: payload.payments,\r\n })\r\n}\r\n\r\nconst addPayment = (state, action) => {\r\n const payments = [action.payload, ...state.payments]\r\n return updateObject(state, { payments })\r\n}\r\n\r\nconst editPayment = (state, action) => {\r\n const payments = state.payments.map((item) => {\r\n if (item.id === action.payload.id) {\r\n return action.payload\r\n }\r\n return item\r\n })\r\n return updateObject(state, { payments })\r\n}\r\n\r\nconst deletePayment = (state, action) => {\r\n const payments = state.payments.filter((extra) => extra.id !== action.extraId)\r\n return updateObject(state, { payments })\r\n}\r\n\r\nconst changeStatusPayment = (state, action) => {\r\n const payments = state.payments.map((item) => {\r\n if (item.id === action.payload.id) {\r\n return {\r\n ...item,\r\n is_active: action.payload.checked ? 1 : 0,\r\n }\r\n }\r\n return item\r\n })\r\n return updateObject(state, { payments })\r\n}\r\n\r\nconst movePayment = (state, action) => {\r\n const { dragIndex, hoverIndex } = action.payload\r\n const payments = [...state.payments]\r\n const srcPayment = payments[dragIndex]\r\n // const { data } = this.state;\r\n // const dragRow = payments[action.dragIndex];\r\n // const dstPayment = payments[hoverIndex];\r\n // console.log(\"Move Payment srcPayment\", srcPayment);\r\n // console.log(\"Move Payment state\", state);\r\n // console.log(\"Move Payment reducers BEFORE\", payments);\r\n // console.log(\"dragIndex, dragIndex\");\r\n payments.splice(dragIndex, 1)\r\n payments.splice(hoverIndex, 0, srcPayment)\r\n // console.log(\"Move Payment reducers action\", action);\r\n // console.log(\"Move Payment reducers payments\", payments);\r\n return updateObject(state, { payments })\r\n}\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_PAYMENTS:\r\n return setPayments(state, action)\r\n case actionTypes.ADD_PAYMENT:\r\n return addPayment(state, action)\r\n case actionTypes.EDIT_PAYMENT:\r\n return editPayment(state, action)\r\n case actionTypes.DELETE_PAYMENT:\r\n return deletePayment(state, action)\r\n case actionTypes.MOVE_PAYMENT:\r\n return movePayment(state, action)\r\n case actionTypes.CHANGE_STATUS_PAYMENT:\r\n return changeStatusPayment(state, action)\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer\r\n","import { updateObject } from 'redux/utility'\r\nimport * as actionTypes from 'redux/actionTypes'\r\nimport store from \"store\";\r\n\r\nconst initialState = {\r\n options: {\r\n dark_mode: store.get(\"app.darkMode\")\r\n ? 1\r\n : 0,\r\n property_language: \"id-ID\",\r\n },\r\n}\r\n\r\nconst setOptions = (state, { payload }) => {\r\n // eslint-disable-next-line\r\n const options = payload.options\r\n if (payload.option) {\r\n options.option = payload.option\r\n }\r\n return updateObject(state, {\r\n options,\r\n })\r\n}\r\n\r\nconst editOptions = (state, { payload }) => {\r\n return updateObject(state, {\r\n options: {\r\n ...state.options,\r\n ...payload,\r\n },\r\n })\r\n}\r\n\r\nconst setup = (state, demo) => {\r\n // const setupBtn = setup_button ? { setup_button } : {};\r\n return updateObject(state, {\r\n options: {\r\n ...state.options,\r\n demo,\r\n // ...setupBtn,\r\n },\r\n })\r\n}\r\n\r\nconst removeLockDate = (state) => {\r\n const { lock_date, ...prevOptions } = state.options\r\n return {\r\n options: prevOptions,\r\n }\r\n}\r\n\r\nconst editOption = (state, { payload }) => {\r\n return updateObject(state, {\r\n options: {\r\n ...state.options,\r\n option: {\r\n ...state.options.option,\r\n ...payload,\r\n },\r\n },\r\n })\r\n}\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_OPTIONS:\r\n return setOptions(state, action)\r\n\r\n case actionTypes.SET_LOCK_DATE_OPTION:\r\n case actionTypes.EDIT_OPTIONS:\r\n return editOptions(state, action)\r\n case actionTypes.SETUP_CLEAR_DEMO_DATA:\r\n return setup(state, 2)\r\n case actionTypes.SETUP_FINISH:\r\n return setup(state, 0)\r\n case actionTypes.REMOVE_LOCK_DATE_OPTION:\r\n return removeLockDate(state)\r\n case actionTypes.EDIT_OPTION:\r\n return editOption(state, action)\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer\r\n","import * as actionTypes from 'redux/actionTypes'\r\n\r\nconst initialState = {\r\n loadingOutlets: false,\r\n settingsOutlets: [],\r\n loadingOutletsDetailForm: false,\r\n loadingOutletsDetail: false,\r\n settingsOutletsDetail: {},\r\n posSales: {\r\n pos_id: null,\r\n payment_type_id: null,\r\n booking_room_id: null,\r\n payment_id: null,\r\n table_id: 0,\r\n gross_sales: 0,\r\n net_sales: 0,\r\n tax: 0,\r\n gratuity: 0,\r\n collected: 0,\r\n saved_name: null,\r\n items: [],\r\n total_discount: 0,\r\n service_charge_per: 0,\r\n tax_per: 0,\r\n },\r\n posSalesLoading: false,\r\n posSalesList: {},\r\n listToRoomLoading: false,\r\n listToRoom: {},\r\n}\r\n\r\nconst storePosSettings = (state, action) => ({ ...state, ...action.data })\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.POS_SETTINGS_STORE:\r\n return storePosSettings(state, action)\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer\r\n","import { updateObject } from '../utility'\r\n\r\nimport * as actionTypes from '../actionTypes'\r\n\r\nconst initialState = {\r\n expenseTerms: [],\r\n canDeletedExpenseTerms: [],\r\n filter: {\r\n searchText: '',\r\n },\r\n}\r\n\r\nexport const getActiveFinanceExpenseTerms = (expenseTerms) => {\r\n const filterFinanceExpenseTerms = expenseTerms.filter(\r\n (financeExpenseTerm) => financeExpenseTerm.is_active === 1,\r\n )\r\n\r\n return filterFinanceExpenseTerms\r\n}\r\n\r\nconst getCanDeletedFinanceExpenseTerms = (state, action) => {\r\n return updateObject(state, {\r\n canDeletedExpenseTerms: action.payload,\r\n })\r\n}\r\n\r\nconst setFinanceExpenseTerms = (state, { payload }) => {\r\n return updateObject(state, {\r\n expenseTerms: payload,\r\n })\r\n}\r\n\r\nconst addFinanceExpenseTerm = (state, action) => {\r\n const expenseTerms = [...state.expenseTerms, action.payload]\r\n return updateObject(state, { expenseTerms })\r\n}\r\n\r\nconst editFinanceExpenseTerm = (state, action) => {\r\n const items = state.expenseTerms.map((item) => {\r\n if (item.id === action.payload.id) {\r\n return action.payload\r\n }\r\n return item\r\n })\r\n return updateObject(state, { expenseTerms: items })\r\n}\r\n\r\nconst deleteFinanceExpenseTerm = (state, action) => {\r\n const expenseTerms = state.expenseTerms.filter((data) => data.id !== action.payload)\r\n return updateObject(state, { expenseTerms })\r\n}\r\n\r\nconst moveFinanceExpenseTerm = (state, action) => {\r\n const { dragIndex, hoverIndex } = action.payload\r\n const expenseTerms = [...state.expenseTerms]\r\n const srcFinanceExpenseTerm = expenseTerms[dragIndex]\r\n expenseTerms.splice(dragIndex, 1)\r\n expenseTerms.splice(hoverIndex, 0, srcFinanceExpenseTerm)\r\n return updateObject(state, { expenseTerms })\r\n}\r\n\r\nconst changeStatusFinanceExpenseTerm = (state, action) => {\r\n const expenseTerms = state.expenseTerms.map((item) => {\r\n if (item.id === action.payload.id) {\r\n return {\r\n ...item,\r\n is_active: action.payload.checked ? 1 : 0,\r\n }\r\n }\r\n return item\r\n })\r\n return updateObject(state, { expenseTerms })\r\n}\r\n\r\nconst filterFinanceExpenseTerm = (state, { payload }) => {\r\n return updateObject(state, {\r\n filter: {\r\n ...state.filter,\r\n searchText: payload.searchText,\r\n },\r\n })\r\n}\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_FINANCE_EXPENSE_TERMS:\r\n return setFinanceExpenseTerms(state, action)\r\n case actionTypes.ADD_FINANCE_EXPENSE_TERM:\r\n return addFinanceExpenseTerm(state, action)\r\n case actionTypes.EDIT_FINANCE_EXPENSE_TERM:\r\n return editFinanceExpenseTerm(state, action)\r\n case actionTypes.MOVE_FINANCE_EXPENSE_TERM:\r\n return moveFinanceExpenseTerm(state, action)\r\n case actionTypes.CHANGE_STATUS_FINANCE_EXPENSE_TERM:\r\n return changeStatusFinanceExpenseTerm(state, action)\r\n case actionTypes.FILTER_FINANCE_EXPENSE_TERM:\r\n return filterFinanceExpenseTerm(state, action)\r\n case actionTypes.GET_CAN_DELETED_FINANCE_EXPENSE_TERMS:\r\n return getCanDeletedFinanceExpenseTerms(state, action)\r\n case actionTypes.DELETE_FINANCE_EXPENSE_TERM:\r\n return deleteFinanceExpenseTerm(state, action)\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer\r\n","import { updateObject } from '../utility'\r\n\r\nimport * as actionTypes from '../actionTypes'\r\n\r\nconst initialState = {\r\n taxes: [],\r\n filter: {\r\n searchText: '',\r\n },\r\n}\r\n\r\nexport const getActiveFinanceTaxes = (taxes) => {\r\n const filterFinanceTaxes = taxes.filter((financeTax) => financeTax.is_active === 1)\r\n\r\n return filterFinanceTaxes\r\n}\r\n\r\nconst setFinanceTaxes = (state, { payload }) => {\r\n return updateObject(state, {\r\n taxes: payload,\r\n })\r\n}\r\n\r\nconst addFinanceTax = (state, action) => {\r\n const taxes = [...state.taxes, action.payload]\r\n return updateObject(state, { taxes })\r\n}\r\n\r\nconst editFinanceTax = (state, action) => {\r\n const items = state.taxes.map((item) => {\r\n if (item.id === action.payload.id) {\r\n return action.payload\r\n }\r\n return item\r\n })\r\n return updateObject(state, { taxes: items })\r\n}\r\n\r\nconst moveFinanceTax = (state, action) => {\r\n const { dragIndex, hoverIndex } = action.payload\r\n const taxes = [...state.taxes]\r\n const srcFinanceTax = taxes[dragIndex]\r\n taxes.splice(dragIndex, 1)\r\n taxes.splice(hoverIndex, 0, srcFinanceTax)\r\n return updateObject(state, { taxes })\r\n}\r\n\r\nconst changeStatusFinanceTax = (state, action) => {\r\n const taxes = state.taxes.map((item) => {\r\n if (item.id === action.payload.id) {\r\n return {\r\n ...item,\r\n is_active: action.payload.checked ? 1 : 0,\r\n }\r\n }\r\n return item\r\n })\r\n return updateObject(state, { taxes })\r\n}\r\n\r\nconst filterFinanceTax = (state, { payload }) => {\r\n return updateObject(state, {\r\n filter: {\r\n ...state.filter,\r\n searchText: payload.searchText,\r\n },\r\n })\r\n}\r\n\r\nconst deleteFinanceTax = (state, { payload }) => {\r\n const taxes = state.taxes.filter((tax) => tax.id !== payload.id)\r\n return updateObject(state, { taxes })\r\n}\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_FINANCE_TAXES:\r\n return setFinanceTaxes(state, action)\r\n case actionTypes.ADD_FINANCE_TAX:\r\n return addFinanceTax(state, action)\r\n case actionTypes.EDIT_FINANCE_TAX:\r\n return editFinanceTax(state, action)\r\n case actionTypes.MOVE_FINANCE_TAX:\r\n return moveFinanceTax(state, action)\r\n case actionTypes.CHANGE_STATUS_FINANCE_TAX:\r\n return changeStatusFinanceTax(state, action)\r\n case actionTypes.FILTER_FINANCE_TAX:\r\n return filterFinanceTax(state, action)\r\n case actionTypes.DELETE_FINANCE_TAX:\r\n return deleteFinanceTax(state, action)\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer\r\n","import * as actionTypes from 'redux/actionTypes'\r\n\r\nconst initialState = {\r\n loading: false,\r\n loadingProduct: false,\r\n data: {},\r\n dataProduct: {},\r\n}\r\n\r\nconst storePosSettings = (state, action) => ({ ...state, ...action.data })\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_FINANCE_PRODUCTS:\r\n return storePosSettings(state, action)\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer\r\n","import { updateObject } from '../utility'\r\n\r\nimport * as actionTypes from '../actionTypes'\r\n\r\nconst initialState = {\r\n warehouses: [],\r\n warehouses_has_role: [],\r\n filter: {\r\n searchText: '',\r\n },\r\n adjustmentTypes: [\r\n { id: 1, name: 'Stock Count' },\r\n { id: 2, name: 'Stock In & Out' },\r\n ],\r\n}\r\n\r\nexport const getActiveFinanceWareHouses = (warehouses) => {\r\n const filterFinanceWareHouses = warehouses.filter(\r\n (financeWareHouse) => financeWareHouse.is_active === 1,\r\n )\r\n\r\n return filterFinanceWareHouses\r\n}\r\n\r\nconst setFinanceWareHouses = (state, { payload }) => {\r\n return updateObject(state, {\r\n warehouses: payload,\r\n })\r\n}\r\n\r\nconst addFinanceWareHouse = (state, action) => {\r\n const warehouses = [...state.warehouses, action.payload]\r\n const warehouses_has_role = [...state.warehouses_has_role, action.payload]\r\n return updateObject(state, { warehouses, warehouses_has_role })\r\n}\r\n\r\nconst editFinanceWareHouse = (state, action) => {\r\n const warehouses = state.warehouses.map((item) => {\r\n if (item.id === action.payload.id) {\r\n return action.payload\r\n }\r\n return item\r\n })\r\n\r\n const warehouses_has_role = state.warehouses_has_role.map((item) => {\r\n if (item.id === action.payload.id) {\r\n return action.payload\r\n }\r\n return item\r\n })\r\n\r\n return updateObject(state, { warehouses, warehouses_has_role })\r\n}\r\n\r\nconst moveFinanceWareHouse = (state, action) => {\r\n const { dragIndex, hoverIndex } = action.payload\r\n const warehouses = [...state.warehouses]\r\n const srcFinanceWareHouse = warehouses[dragIndex]\r\n warehouses.splice(dragIndex, 1)\r\n warehouses.splice(hoverIndex, 0, srcFinanceWareHouse)\r\n return updateObject(state, { warehouses })\r\n}\r\n\r\nconst changeStatusFinanceWareHouse = (state, action) => {\r\n const warehouses = state.warehouses.map((item) => {\r\n if (item.id === action.payload.id) {\r\n return {\r\n ...item,\r\n is_active: action.payload.checked ? 1 : 0,\r\n }\r\n }\r\n return item\r\n })\r\n return updateObject(state, { warehouses })\r\n}\r\n\r\nconst filterFinanceWareHouse = (state, { payload }) => {\r\n return updateObject(state, {\r\n filter: {\r\n ...state.filter,\r\n searchText: payload.searchText,\r\n },\r\n })\r\n}\r\n\r\nconst deleteFinanceWareHouse = (state, { payload }) => {\r\n const warehouses = state.warehouses.filter((warehouse) => warehouse.id !== payload.id)\r\n const warehouses_has_role = state.warehouses_has_role.filter(\r\n (warehouse) => warehouse.id !== payload.id,\r\n )\r\n return updateObject(state, { warehouses, warehouses_has_role })\r\n}\r\n\r\nconst archiveFinanceWareHouse = (state, { payload }) => {\r\n const warehouses = state.warehouses.map((warehouse) => ({\r\n ...warehouse,\r\n is_archive: warehouse.id === payload.id ? 1 : warehouse.is_archive || 0,\r\n }))\r\n const warehouses_has_role = state.warehouses_has_role.map((warehouse) => ({\r\n ...warehouse,\r\n is_archive: warehouse.id === payload.id ? 1 : warehouse.is_archive || 0,\r\n }))\r\n return updateObject(state, { warehouses, warehouses_has_role })\r\n}\r\n\r\nconst unarchiveFinanceWareHouse = (state, { payload }) => {\r\n const warehouses = state.warehouses.map((warehouse) => ({\r\n ...warehouse,\r\n is_archive: warehouse.id === payload.id ? 0 : warehouse.is_archive || 0,\r\n }))\r\n const warehouses_has_role = state.warehouses_has_role.map((warehouse) => ({\r\n ...warehouse,\r\n is_archive: warehouse.id === payload.id ? 0 : warehouse.is_archive || 0,\r\n }))\r\n return updateObject(state, { warehouses, warehouses_has_role })\r\n}\r\n\r\nconst setFinanceWareHousesRoles = (state, { payload }) => {\r\n return updateObject(state, {\r\n warehouses_has_role: payload,\r\n })\r\n}\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_FINANCE_WAREHOUSES:\r\n return setFinanceWareHouses(state, action)\r\n case actionTypes.ADD_FINANCE_WAREHOUSE:\r\n return addFinanceWareHouse(state, action)\r\n case actionTypes.EDIT_FINANCE_WAREHOUSE:\r\n return editFinanceWareHouse(state, action)\r\n case actionTypes.MOVE_FINANCE_WAREHOUSE:\r\n return moveFinanceWareHouse(state, action)\r\n case actionTypes.DELETE_FINANCE_WAREHOUSE:\r\n return deleteFinanceWareHouse(state, action)\r\n case actionTypes.ARCHIVE_FINANCE_WAREHOUSE:\r\n return archiveFinanceWareHouse(state, action)\r\n case actionTypes.UNARCHIVE_FINANCE_WAREHOUSE:\r\n return unarchiveFinanceWareHouse(state, action)\r\n case actionTypes.CHANGE_STATUS_FINANCE_WAREHOUSE:\r\n return changeStatusFinanceWareHouse(state, action)\r\n case actionTypes.FILTER_FINANCE_WAREHOUSE:\r\n return filterFinanceWareHouse(state, action)\r\n case actionTypes.SET_FINANCE_WAREHOUSES_ROLES:\r\n return setFinanceWareHousesRoles(state, action)\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer\r\n","import { updateObject } from '../utility'\r\n\r\nimport * as actionTypes from '../actionTypes'\r\n\r\nconst initialState = {\r\n units: [],\r\n canDeletedUnits: [],\r\n filter: {\r\n searchText: '',\r\n },\r\n}\r\n\r\nconst getCanDeletedUnits = (state, action) => {\r\n return updateObject(state, {\r\n canDeletedUnits: action.payload,\r\n })\r\n}\r\n\r\nconst setFinanceUnits = (state, { payload }) => {\r\n return updateObject(state, {\r\n units: payload,\r\n })\r\n}\r\n\r\nconst addFinanceUnit = (state, action) => {\r\n const units = [...state.units, action.payload]\r\n return updateObject(state, { units })\r\n}\r\n\r\nconst editFinanceUnit = (state, action) => {\r\n const items = state.units.map((item) => {\r\n if (item.id === action.payload.id) {\r\n return action.payload\r\n }\r\n return item\r\n })\r\n return updateObject(state, { units: items })\r\n}\r\n\r\nconst moveFinanceUnit = (state, action) => {\r\n const { dragIndex, hoverIndex } = action.payload\r\n const units = [...state.units]\r\n const srcFinanceUnit = units[dragIndex]\r\n units.splice(dragIndex, 1)\r\n units.splice(hoverIndex, 0, srcFinanceUnit)\r\n return updateObject(state, { units })\r\n}\r\n\r\nconst filterFinanceUnit = (state, { payload }) => {\r\n return updateObject(state, {\r\n filter: {\r\n ...state.filter,\r\n searchText: payload.searchText,\r\n },\r\n })\r\n}\r\n\r\nconst deleteFinanceUnit = (state, { payload }) => {\r\n const units = state.units.filter((unit) => unit.id !== payload.id)\r\n return updateObject(state, { units })\r\n}\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_FINANCE_UNITS:\r\n return setFinanceUnits(state, action)\r\n case actionTypes.ADD_FINANCE_UNIT:\r\n return addFinanceUnit(state, action)\r\n case actionTypes.EDIT_FINANCE_UNIT:\r\n return editFinanceUnit(state, action)\r\n case actionTypes.MOVE_FINANCE_UNIT:\r\n return moveFinanceUnit(state, action)\r\n case actionTypes.FILTER_FINANCE_UNIT:\r\n return filterFinanceUnit(state, action)\r\n case actionTypes.GET_CAN_DELETED_FINANCE_UNIT:\r\n return getCanDeletedUnits(state, action)\r\n case actionTypes.DELETE_FINANCE_UNIT:\r\n return deleteFinanceUnit(state, action)\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer\r\n","import { updateObject } from '../utility'\r\n\r\nimport * as actionTypes from '../actionTypes'\r\n\r\nconst initialState = {\r\n shippingComps: [],\r\n canDeletedShippingComps: [],\r\n filter: {\r\n searchText: '',\r\n },\r\n}\r\n\r\nexport const getActiveShippingComps = (shippingComps) => {\r\n const filterShippingComps = shippingComps.filter(\r\n (financeShippingComp) => financeShippingComp.is_active === 1,\r\n )\r\n\r\n return filterShippingComps\r\n}\r\n\r\nconst getCanDeletedShippingComps = (state, action) => {\r\n return updateObject(state, {\r\n canDeletedShippingComps: action.payload,\r\n })\r\n}\r\n\r\nconst setShippingComps = (state, { payload }) => {\r\n return updateObject(state, {\r\n shippingComps: payload,\r\n })\r\n}\r\n\r\nconst addShippingComp = (state, action) => {\r\n const shippingComps = [...state.shippingComps, action.payload]\r\n return updateObject(state, { shippingComps })\r\n}\r\n\r\nconst editShippingComp = (state, action) => {\r\n const items = state.shippingComps.map((item) => {\r\n if (item.id === action.payload.id) {\r\n return action.payload\r\n }\r\n return item\r\n })\r\n return updateObject(state, { shippingComps: items })\r\n}\r\n\r\nconst deleteShippingComp = (state, action) => {\r\n const shippingComps = state.shippingComps.filter((data) => data.id !== action.payload)\r\n return updateObject(state, { shippingComps })\r\n}\r\n\r\nconst moveShippingComp = (state, action) => {\r\n const { dragIndex, hoverIndex } = action.payload\r\n const shippingComps = [...state.shippingComps]\r\n const srcShippingComp = shippingComps[dragIndex]\r\n shippingComps.splice(dragIndex, 1)\r\n shippingComps.splice(hoverIndex, 0, srcShippingComp)\r\n return updateObject(state, { shippingComps })\r\n}\r\n\r\nconst changeStatusShippingComp = (state, action) => {\r\n const shippingComps = state.shippingComps.map((item) => {\r\n if (item.id === action.payload.id) {\r\n return {\r\n ...item,\r\n is_active: action.payload.checked ? 1 : 0,\r\n }\r\n }\r\n return item\r\n })\r\n return updateObject(state, { shippingComps })\r\n}\r\n\r\nconst filterShippingComp = (state, { payload }) => {\r\n return updateObject(state, {\r\n filter: {\r\n ...state.filter,\r\n searchText: payload.searchText,\r\n },\r\n })\r\n}\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_SHIPPING_COMPS:\r\n return setShippingComps(state, action)\r\n case actionTypes.ADD_SHIPPING_COMP:\r\n return addShippingComp(state, action)\r\n case actionTypes.EDIT_SHIPPING_COMP:\r\n return editShippingComp(state, action)\r\n case actionTypes.MOVE_SHIPPING_COMP:\r\n return moveShippingComp(state, action)\r\n case actionTypes.CHANGE_STATUS_SHIPPING_COMP:\r\n return changeStatusShippingComp(state, action)\r\n case actionTypes.FILTER_SHIPPING_COMP:\r\n return filterShippingComp(state, action)\r\n case actionTypes.GET_CAN_DELETED_SHIPPING_COMPS:\r\n return getCanDeletedShippingComps(state, action)\r\n case actionTypes.DELETE_SHIPPING_COMP:\r\n return deleteShippingComp(state, action)\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer\r\n","import _ from 'lodash'\r\nimport * as actionTypes from '../actionTypes'\r\n\r\nconst initialState = []\r\n\r\nconst addFinanceTransactionFee = (state, action) => {\r\n return [...state, action.payload]\r\n}\r\n\r\nconst editFinanceTransactionFee = (state, action) => {\r\n const newState = _.cloneDeep(state)\r\n const fees = newState.map((item) => {\r\n if (item.id === action.payload.id) {\r\n return action.payload\r\n }\r\n return item\r\n })\r\n return fees\r\n}\r\n\r\nconst deleteFinanceTransactionFee = (state, { payload }) => {\r\n const newState = _.cloneDeep(state)\r\n const fees = newState.filter((item) => item.id !== payload.id)\r\n return fees\r\n}\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_TRANSACTION_FEES:\r\n return action.payload\r\n case actionTypes.ADD_TRANSACTION_FEE:\r\n return addFinanceTransactionFee(state, action)\r\n case actionTypes.EDIT_TRANSACTION_FEE:\r\n return editFinanceTransactionFee(state, action)\r\n case actionTypes.DELETE_TRANSACTION_FEE:\r\n return deleteFinanceTransactionFee(state, action)\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer\r\n","import { combineReducers } from 'redux'\r\nimport _ from 'lodash'\r\n\r\nimport { arraymove } from 'utils/helper'\r\nimport { updateObject } from 'redux/utility'\r\nimport * as actionTypes from 'redux/actionTypes'\r\nimport financeExpenseTerms from 'redux/financeExpenseTerms/reducers'\r\nimport financeTaxes from 'redux/financeTaxes/reducers'\r\nimport financeProducts from 'redux/financeProducts/reducers'\r\nimport financeWareHouses from 'redux/financeWareHouses/reducers'\r\nimport financeUnits from 'redux/financeUnits/reducers'\r\nimport shippingComps from 'redux/shippingComps/reducers'\r\nimport fees from 'redux/transactionFees/reducers'\r\n\r\nconst config = (state = {}, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_FINANCE_CONFIG:\r\n return updateObject(state, {\r\n ...action.payload,\r\n })\r\n\r\n case actionTypes.SET_FINANCE_CONFIG_DEFAULT_ACCOUNT:\r\n // eslint-disable-next-line no-case-declarations\r\n const newState = _.cloneDeep(state)\r\n if (newState.product && action.payload && action.payload.mapping_product_purchase) {\r\n newState.product.purchase_account.default = action.payload.mapping_product_purchase.id\r\n newState.product.purchase_account.default_name =\r\n action.payload.mapping_product_purchase.name\r\n newState.product.purchase_account.default_ref_code =\r\n action.payload.mapping_product_purchase.ref_code\r\n }\r\n if (newState.product && action.payload && action.payload.mapping_product_sales) {\r\n newState.product.sell_account.default = action.payload.mapping_product_sales.id\r\n newState.product.sell_account.default_name = action.payload.mapping_product_sales.name\r\n newState.product.sell_account.default_ref_code =\r\n action.payload.mapping_product_sales.ref_code\r\n }\r\n if (newState.product && action.payload && action.payload.mapping_product_inventory) {\r\n newState.product.track_account.default = action.payload.mapping_product_inventory.id\r\n newState.product.track_account.default_name = action.payload.mapping_product_inventory.name\r\n newState.product.track_account.default_ref_code =\r\n action.payload.mapping_product_inventory.ref_code\r\n }\r\n if (newState.contact && action.payload && action.payload.mapping_contact_account_receivable) {\r\n newState.contact.receivable_contact.default =\r\n action.payload.mapping_contact_account_receivable.id\r\n newState.contact.receivable_contact.default_name =\r\n action.payload.mapping_contact_account_receivable.name\r\n newState.contact.receivable_contact.default_ref_code =\r\n action.payload.mapping_contact_account_receivable.ref_code\r\n }\r\n if (newState.contact && action.payload && action.payload.mapping_contact_account_payable) {\r\n newState.contact.payable_account.default = action.payload.mapping_contact_account_payable.id\r\n newState.contact.payable_account.default_name =\r\n action.payload.mapping_contact_account_payable.name\r\n newState.contact.payable_account.default_ref_code =\r\n action.payload.mapping_contact_account_payable.ref_code\r\n }\r\n if (newState.fixed_asset && action.payload && action.payload.mapping_fixed_asset) {\r\n newState.fixed_asset.fixed_asset_account.default = action.payload.mapping_fixed_asset.id\r\n newState.fixed_asset.fixed_asset_account.default_name =\r\n action.payload.mapping_fixed_asset.name\r\n newState.fixed_asset.fixed_asset_account.default_ref_code =\r\n action.payload.mapping_fixed_asset.ref_code\r\n }\r\n if (\r\n newState.stock_adjustment &&\r\n action.payload &&\r\n action.payload.mapping_stock_adjustment_inventory\r\n ) {\r\n newState.stock_adjustment.account.default =\r\n action.payload.mapping_stock_adjustment_inventory.id\r\n newState.stock_adjustment.account.default_name =\r\n action.payload.mapping_stock_adjustment_inventory.name\r\n newState.stock_adjustment.account.default_ref_code =\r\n action.payload.mapping_stock_adjustment_inventory.ref_code\r\n }\r\n return { ...newState }\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst accountCategories = (state = [], action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_FINANCE_ACCOUNT_CATEGORIES:\r\n return [...action.payload]\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst financeBankAccounts = (state = [], action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_FINANCE_BANK_ACCOUNTS:\r\n return [...action.payload]\r\n case actionTypes.ADD_FINANCE_BANK_ACCOUNT:\r\n return [action.payload, ...state.filter((row) => row.id !== action.payload.parent_id)]\r\n case actionTypes.DELETE_FINANCE_BANK_ACCOUNT: {\r\n const accountIds = action.payload.ids || []\r\n const bankAccounts = state.filter((row) => !_.includes(accountIds, row.id))\r\n\r\n return [...bankAccounts]\r\n }\r\n case actionTypes.EDIT_FINANCE_BANK_ACCOUNT: {\r\n const bankAccounts = state.map((item) => {\r\n if (item.id === action.payload.id) {\r\n return { ...item, ...action.payload }\r\n }\r\n return item\r\n })\r\n\r\n return [...bankAccounts.filter((row) => row.id !== action.payload.parent_id)]\r\n }\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst contactGroups = (state = [], action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_FINANCE_CONTACT_GROUP:\r\n return [...action.payload]\r\n\r\n case actionTypes.ADD_FINANCE_CONTACT_GROUP:\r\n return [...state, action.payload]\r\n\r\n case actionTypes.EDIT_FINANCE_CONTACT_GROUP: {\r\n const items = state.map((item) => {\r\n if (item.id === action.payload.id) {\r\n return action.payload\r\n }\r\n return item\r\n })\r\n\r\n return [...items]\r\n }\r\n\r\n case actionTypes.MOVE_FINANCE_CONTACT_GROUP: {\r\n const { dragIndex, hoverIndex } = action.payload\r\n const prevCategories = [...state]\r\n const srcFinanceTax = prevCategories[dragIndex]\r\n prevCategories.splice(dragIndex, 1)\r\n prevCategories.splice(hoverIndex, 0, srcFinanceTax)\r\n\r\n return [...prevCategories]\r\n }\r\n\r\n case actionTypes.DELETE_FINANCE_CONTACT_GROUP: {\r\n const newCategories = state.filter((row) => row.id !== action.payload.id)\r\n\r\n return [...newCategories]\r\n }\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst productCategories = (state = [], action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_FINANCE_PRODUCT_CATEGORIES:\r\n return [...action.payload]\r\n\r\n case actionTypes.DELETE_FINANCE_PRODUCT_CATEGORIES: {\r\n const newCategories = state.filter((row) => row.id !== action.payload.id)\r\n\r\n return [...newCategories]\r\n }\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst financeCategoriesRoles = (state = [], action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_FINANCE_PRODUCT_CATEGORIES_ROLES:\r\n return action.payload\r\n\r\n case actionTypes.MOVE_FINANCE_PRODUCT_CATEGORIES_ROLES: {\r\n const { dragIndex, hoverIndex } = action.payload\r\n\r\n const prevCategories = [...state]\r\n const srcFinanceTax = prevCategories[dragIndex]\r\n prevCategories.splice(dragIndex, 1)\r\n prevCategories.splice(hoverIndex, 0, srcFinanceTax)\r\n\r\n return prevCategories\r\n }\r\n\r\n case actionTypes.ADD_FINANCE_PRODUCT_CATEGORIES:\r\n return [...state, action.payload]\r\n case actionTypes.EDIT_FINANCE_PRODUCT_CATEGORIES: {\r\n const items = state.map((item) => {\r\n if (item.id === action.payload.id) {\r\n return action.payload\r\n }\r\n return item\r\n })\r\n\r\n return [...items]\r\n }\r\n case actionTypes.DELETE_FINANCE_PRODUCT_CATEGORIES_ROLES: {\r\n return state.filter((item) => item.id !== action.payload.id)\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst dashboard = (state = [], action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_DASHBOARD:\r\n return setDashboard(state, action)\r\n case actionTypes.SET_A_DASHBOARD:\r\n return setADashboard(state, action)\r\n case actionTypes.RESET_DASHBOARD:\r\n return resetDashboard(state)\r\n case actionTypes.MOVE_ACCOUNT_WATCH_LIST:\r\n return moveAccountWatchList(state, action)\r\n case actionTypes.ADD_ACCOUNT_WATCH_LIST:\r\n return addMoveAccountWatchList(state, action)\r\n case actionTypes.DELETE_ACCOUNT_WATCH_LIST:\r\n return deleteAccountWatchList(state, action)\r\n case actionTypes.ADD_DASHBOARD:\r\n return addDashboard(state, action)\r\n case actionTypes.DELETE_DASHBOARD:\r\n return deleteDashboard(state, action)\r\n case actionTypes.EDIT_DASHBOARD:\r\n return editDashboard(state, action)\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst accountWatchList = (state = [], action) => {\r\n switch (action.type) {\r\n case actionTypes.FILTER_ACCOUNT_WATCH_LIST:\r\n return filterAccountWatchlist(state, action)\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst filterAccountWatchlist = (state, action) => {\r\n return action.payload\r\n}\r\n\r\nconst setDashboard = (state, action) => {\r\n // eslint-disable-next-line no-shadow\r\n let dashboard = action.payload\r\n if (isLoadedCache(state)) {\r\n dashboard = dashboard.map((row) => {\r\n const findDashboard = state.find((item) => item.id === row.id)\r\n return {\r\n ...findDashboard,\r\n ...row,\r\n }\r\n })\r\n }\r\n\r\n return dashboard\r\n}\r\n\r\nconst addDashboard = (state, action) => {\r\n return [action.payload, ...state]\r\n}\r\n\r\nconst editDashboard = (state, action) => {\r\n const dashboards = state.map((item) => {\r\n if (item.id === action.payload.id) {\r\n return { ...item, ...action.payload }\r\n }\r\n return item\r\n })\r\n return [...dashboards]\r\n}\r\n\r\nconst deleteDashboard = (state, action) => {\r\n const accountIds = action.payload.ids || []\r\n const dashboards = state.filter((row) => !_.includes(accountIds, row.type_id))\r\n return [...dashboards]\r\n}\r\n\r\nconst setADashboard = (state, action) => {\r\n return state.map((e) => {\r\n if (e.id === action.payload.id) {\r\n return { ...e, ...action.payload, loaded: true }\r\n }\r\n return e\r\n })\r\n}\r\n\r\nconst resetDashboard = () => {\r\n return []\r\n}\r\n\r\n// eslint-disable-next-line no-shadow\r\nconst isLoadedCache = (dashboard) => {\r\n let isLoaded = false\r\n for (let i = 0; i < dashboard.length; i += 1) {\r\n if (dashboard[i].data) {\r\n isLoaded = true\r\n } else {\r\n isLoaded = false\r\n break\r\n }\r\n }\r\n\r\n return isLoaded\r\n}\r\n\r\nconst moveAccountWatchList = (state, action) => {\r\n const { dragIndex, hoverIndex } = action.payload\r\n // eslint-disable-next-line no-shadow\r\n const dashboard = [...state]\r\n const findIndex = dashboard.findIndex((row) => row.type === 'account_watchlist')\r\n const data = dashboard[findIndex] ? dashboard[findIndex].data : []\r\n dashboard[findIndex].data = arraymove(data, dragIndex, hoverIndex)\r\n return dashboard\r\n}\r\n\r\nconst addMoveAccountWatchList = (state, action) => {\r\n // eslint-disable-next-line no-shadow\r\n const dashboard = [...state]\r\n const findIndex = dashboard.findIndex((row) => row.type === 'account_watchlist')\r\n const data = dashboard[findIndex] ? dashboard[findIndex].data : []\r\n dashboard[findIndex].data = [...data, action.payload]\r\n return dashboard\r\n}\r\n\r\nconst deleteAccountWatchList = (state, action) => {\r\n // eslint-disable-next-line no-shadow\r\n const dashboard = [...state]\r\n const findIndex = dashboard.findIndex((row) => row.type === 'account_watchlist')\r\n const data = dashboard[findIndex] ? dashboard[findIndex].data : []\r\n dashboard[findIndex].data = data.filter((row) => row.id !== action.payload.id)\r\n return dashboard\r\n}\r\n\r\nconst accountTransactionReport = (state = { show: false, params: {} }, action) => {\r\n switch (action.type) {\r\n case actionTypes.SHOW_ACCOUNTTRANSACTION_REPORT:\r\n return {\r\n ...state,\r\n show: true,\r\n params: { ...action.payload },\r\n }\r\n case actionTypes.HIDE_ACCOUNTTRANSACTION_REPORT:\r\n return {\r\n ...state,\r\n show: false,\r\n params: {},\r\n }\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst auditModal = (\r\n state = {\r\n show: false,\r\n getData: () => {},\r\n },\r\n action,\r\n) => {\r\n switch (action.type) {\r\n case actionTypes.SHOW_AUDIT_MODAL:\r\n return {\r\n ...state,\r\n show: true,\r\n getData: action.payload,\r\n }\r\n case actionTypes.HIDE_AUDIT_MODAL:\r\n return {\r\n ...state,\r\n show: false,\r\n getData: () => {},\r\n }\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst idCardTypes = (state = [], action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_ID_CARD_TYPES:\r\n return [...action.payload]\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst financeApproval = (state = [], action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_FINANCE_APPROVAL:\r\n return action.payload\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst paymentConnectProviders = (state = [], action) => {\r\n if (action.type === actionTypes.SET_PAYMENT_CONNECT_PROVIDERS) {\r\n return action.payload\r\n }\r\n\r\n return state\r\n}\r\n\r\nexport default combineReducers({\r\n expenseTerm: financeExpenseTerms,\r\n tax: financeTaxes,\r\n unit: financeUnits,\r\n config,\r\n accountCategories,\r\n bankAccounts: financeBankAccounts,\r\n products: financeProducts,\r\n contactGroups,\r\n productCategories,\r\n financeApproval,\r\n product_categories_has_role: financeCategoriesRoles,\r\n dashboard,\r\n accountWatchList,\r\n warehouse: financeWareHouses,\r\n shippingComp: shippingComps,\r\n accountTransactionReport,\r\n auditModal,\r\n idCardTypes,\r\n fees,\r\n paymentConnectProviders,\r\n})\r\n","import { updateObject } from 'redux/utility'\r\nimport * as actionTypes from 'redux/actionTypes'\r\n\r\nconst initialState = {}\r\n\r\nconst setBilling = (state, { payload }) => {\r\n return updateObject(state, {\r\n ...payload,\r\n })\r\n}\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_BILLING:\r\n return setBilling(state, action)\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer\r\n","import { updateObject } from 'redux/utility'\r\nimport * as actionTypes from 'redux/actionTypes'\r\n\r\nconst initialState = {}\r\n\r\nconst setBilling = (state, { payload }) => {\r\n return updateObject(state, {\r\n ...payload,\r\n })\r\n}\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_BILLING_POS:\r\n return setBilling(state, action)\r\n case actionTypes.CLEAR_BILLING_POS:\r\n return {}\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer\r\n","import store from 'store'\r\nimport Axios from 'axios'\r\n\r\nimport { updateObject } from 'redux/utility'\r\nimport * as actionTypes from 'redux/actionTypes'\r\nimport { generateBaseUri } from 'utils/helper'\r\n\r\nconst initialState = {\r\n companies: [],\r\n selectedEndpoint: null,\r\n}\r\n\r\nconst setCompanies = (state, { payload }) => {\r\n return updateObject(state, {\r\n ...payload,\r\n })\r\n}\r\n\r\nconst setWebsiteId = (state, { payload }) => {\r\n const { endpoint } = state.companies.filter((e) => e.website_id === payload)[0]\r\n\r\n setSelectedEndpoint(state, { payload: endpoint })\r\n}\r\n\r\nconst setSelectedEndpoint = (state, { payload }) => {\r\n if (payload) {\r\n store.set('app.endpoint', payload)\r\n setEndpoint(state, { payload })\r\n } else {\r\n store.remove('app.endpoint')\r\n }\r\n\r\n return { ...state, selectedEndpoint: payload }\r\n}\r\n\r\nconst editCompanyName = (state, { payload }) => {\r\n const companies = state.companies.map((company) => {\r\n if (company.endpoint === state.selectedEndpoint) {\r\n return { ...company, name: payload }\r\n }\r\n return company\r\n })\r\n\r\n return { ...state, companies }\r\n}\r\n\r\nconst setEndpoint = (state, { payload }) => {\r\n Axios.defaults.baseURL = generateBaseUri()\r\n return { ...state, endpoint: payload }\r\n}\r\n\r\nconst setInitial = () => {\r\n store.remove('app.endpoint')\r\n Axios.defaults.baseURL = generateBaseUri()\r\n return initialState\r\n}\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_COMPANIES:\r\n return setCompanies(state, action)\r\n case actionTypes.SET_WEBSITE_ID:\r\n return setWebsiteId(state, action)\r\n case actionTypes.SET_ENDPOINT:\r\n return setEndpoint(state, action)\r\n case actionTypes.SET_SELECTED_ENDPOINT:\r\n return setSelectedEndpoint(state, action)\r\n case actionTypes.EDIT_COMPANY_NAME:\r\n return editCompanyName(state, action)\r\n case actionTypes.USER_LOGOUT:\r\n return setInitial()\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer\r\n","import { updateObject } from '../utility'\r\n\r\nimport * as actionTypes from '../actionTypes'\r\n\r\nconst initialState = {}\r\n\r\nconst setTranslation = (state, { payload }) => {\r\n return updateObject(state, {\r\n ...payload,\r\n })\r\n}\r\n\r\nconst editTranslation = (state, { payload }) => {\r\n return {\r\n ...state,\r\n [payload.category]: { ...state[payload.category], [payload.name]: payload.value },\r\n }\r\n}\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_TRANSLATION:\r\n return setTranslation(state, action)\r\n case actionTypes.EDIT_TRANSLATION:\r\n return editTranslation(state, action)\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer\r\n","import _ from 'lodash'\r\n\r\nimport { updateObject } from 'redux/utility'\r\nimport * as actionTypes from 'redux/actionTypes'\r\n\r\nconst initialState = {\r\n data: [],\r\n show: false,\r\n}\r\n\r\nconst setBroadcast = (state, { payload }) => {\r\n return updateObject(state, {\r\n data: payload,\r\n })\r\n}\r\n\r\nconst clearBroadcast = (state) => {\r\n return updateObject(state, {\r\n data: [],\r\n })\r\n}\r\n\r\nconst showBroadcast = (state) => {\r\n return updateObject(state, {\r\n show: true,\r\n })\r\n}\r\n\r\nconst hideBroadcast = (state) => {\r\n return updateObject(state, {\r\n show: false,\r\n })\r\n}\r\n\r\nconst markAsReadBroadcast = (state, { payload }) => {\r\n return updateObject(state, {\r\n data: state.data.filter((row) => !_.includes(payload.data, row.id)),\r\n })\r\n}\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_BROADCAST:\r\n return setBroadcast(state, action)\r\n case actionTypes.CLEAR_BROADCAST:\r\n return clearBroadcast(state, action)\r\n case actionTypes.SHOW_BROADCAST:\r\n return showBroadcast(state, action)\r\n case actionTypes.HIDE_BROADCAST:\r\n return hideBroadcast(state, action)\r\n case actionTypes.MARKASREAD_BROADCAST:\r\n return markAsReadBroadcast(state, action)\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer\r\n","import * as actionTypes from 'redux/actionTypes'\r\n\r\nconst reducer = (state = 0, action) => {\r\n switch (action.type) {\r\n case actionTypes.HIDE_NPS:\r\n return 0\r\n case actionTypes.SET_NPS:\r\n return action.payload\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer\r\n","import * as actionTypes from 'redux/actionTypes'\r\n\r\nconst reducer = (state = 0, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_SHOW_HR_ADDON:\r\n return action.payload\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer","import * as actionTypes from 'redux/actionTypes'\r\n\r\nconst setTutorials = (state, action) => {\r\n return action.payload.data\r\n}\r\n\r\nconst reducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_TUTORIALS:\r\n return setTutorials(state, action)\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer\r\n","import * as actionTypes from 'redux/actionTypes'\r\n\r\nconst setReviews = (state, action) => {\r\n return action.payload\r\n}\r\n\r\nconst reducer = (state = [], action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_REVIEWS:\r\n return setReviews(state, action)\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer\r\n","import * as actionTypes from 'redux/actionTypes'\r\n\r\nconst initialState = { showLoginForm: false, error: null, message: '' }\r\n\r\nexport default function loginFormReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case actionTypes.SHOW_LOGIN_FORM:\r\n return { ...state, ...action.payload }\r\n case actionTypes.SET_ERROR_LOGIN_FORM:\r\n return { ...state, error: action.payload }\r\n default:\r\n return state\r\n }\r\n}\r\n","import { updateObject } from 'redux/utility'\r\nimport * as actionTypes from 'redux/actionTypes'\r\n\r\nconst initialState = {\r\n custom_column_types: [],\r\n custom_columns: [],\r\n custom_column_items: [],\r\n}\r\n\r\nconst setCustomColumns = (state, { payload }) => {\r\n return updateObject(state, payload)\r\n}\r\n\r\nconst addCustomColumn = (state, action) => {\r\n const custom_columns = [...state.custom_columns, action.payload]\r\n return updateObject(state, { custom_columns })\r\n}\r\n\r\nconst editCustomColumn = (state, action) => {\r\n const items = state.custom_columns.map((item) => {\r\n if (item.id === action.payload.id) {\r\n return action.payload\r\n }\r\n return item\r\n })\r\n return updateObject(state, { custom_columns: items })\r\n}\r\n\r\nconst deleteCustomColumn = (state, action) => {\r\n const custom_columns = state.custom_columns.filter((data) => data.id !== action.payload)\r\n return updateObject(state, { custom_columns })\r\n}\r\n\r\nconst moveCustomColumn = (state, action) => {\r\n const { dragIndex, hoverIndex } = action.payload\r\n const custom_columns = [...state.custom_columns]\r\n const srcCustomColumn = custom_columns[dragIndex]\r\n custom_columns.splice(dragIndex, 1)\r\n custom_columns.splice(hoverIndex, 0, srcCustomColumn)\r\n return updateObject(state, { custom_columns })\r\n}\r\n\r\nconst changeStatusCustomColumn = (state, action) => {\r\n const custom_columns = state.custom_columns.map((item) => {\r\n if (item.id === action.payload.id) {\r\n const key = action.payload.payload.type === 'purchases' ? 'is_purchase_active' : 'is_active'\r\n return {\r\n ...item,\r\n [key]: action.payload.checked ? 1 : 0,\r\n }\r\n }\r\n return item\r\n })\r\n return updateObject(state, { custom_columns })\r\n}\r\n\r\nconst addCustomColumnItem = (state, action) => {\r\n const custom_column_items = [...state.custom_column_items, action.payload]\r\n return updateObject(state, { custom_column_items })\r\n}\r\n\r\nconst editCustomColumnItem = (state, action) => {\r\n const items = state.custom_column_items.map((item) => {\r\n if (item.id === action.payload.id) {\r\n return action.payload\r\n }\r\n return item\r\n })\r\n return updateObject(state, { custom_column_items: items })\r\n}\r\n\r\nconst deleteCustomColumnItem = (state, action) => {\r\n const custom_column_items = state.custom_column_items.filter((data) => data.id !== action.payload)\r\n return updateObject(state, { custom_column_items })\r\n}\r\n\r\nconst moveCustomColumnItem = (state, action) => {\r\n const { dragIndex, hoverIndex } = action.payload\r\n const custom_column_items = [...state.custom_column_items]\r\n const srcCustomColumn = custom_column_items[dragIndex]\r\n custom_column_items.splice(dragIndex, 1)\r\n custom_column_items.splice(hoverIndex, 0, srcCustomColumn)\r\n return updateObject(state, { custom_column_items })\r\n}\r\n\r\nconst changeStatusCustomColumnItem = (state, action) => {\r\n const custom_column_items = state.custom_column_items.map((item) => {\r\n if (item.id === action.payload.id) {\r\n const key = action.payload.payload.type === 'purchases' ? 'is_purchase_active' : 'is_active'\r\n return {\r\n ...item,\r\n [key]: action.payload.checked ? 1 : 0,\r\n }\r\n }\r\n return item\r\n })\r\n return updateObject(state, { custom_column_items })\r\n}\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_CUSTOM_COLUMNS:\r\n return setCustomColumns(state, action)\r\n case actionTypes.ADD_CUSTOM_COLUMN:\r\n return addCustomColumn(state, action)\r\n case actionTypes.EDIT_CUSTOM_COLUMN:\r\n return editCustomColumn(state, action)\r\n case actionTypes.MOVE_CUSTOM_COLUMN:\r\n return moveCustomColumn(state, action)\r\n case actionTypes.CHANGE_STATUS_CUSTOM_COLUMN:\r\n return changeStatusCustomColumn(state, action)\r\n case actionTypes.DELETE_CUSTOM_COLUMN:\r\n return deleteCustomColumn(state, action)\r\n case actionTypes.ADD_CUSTOM_COLUMN_ITEM:\r\n return addCustomColumnItem(state, action)\r\n case actionTypes.EDIT_CUSTOM_COLUMN_ITEM:\r\n return editCustomColumnItem(state, action)\r\n case actionTypes.MOVE_CUSTOM_COLUMN_ITEM:\r\n return moveCustomColumnItem(state, action)\r\n case actionTypes.CHANGE_STATUS_CUSTOM_COLUMN_ITEM:\r\n return changeStatusCustomColumnItem(state, action)\r\n case actionTypes.DELETE_CUSTOM_COLUMN_ITEM:\r\n return deleteCustomColumnItem(state, action)\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer\r\n","import { updateObject } from 'redux/utility'\r\nimport * as actionTypes from 'redux/actionTypes'\r\n\r\nconst initialState = {}\r\n\r\nconst setDefaultMessage = (state, { payload }) => {\r\n return updateObject(state, { ...payload })\r\n}\r\n\r\nconst editDefaultMessage = (state, { payload }) => {\r\n return updateObject(state, { ...payload })\r\n}\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_DEFAULT_MESSAGE:\r\n return setDefaultMessage(state, action)\r\n case actionTypes.EDIT_DEFAULT_MESSAGE:\r\n return editDefaultMessage(state, action)\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer\r\n","import { updateObject } from '../utility'\r\n\r\nimport * as actionTypes from '../actionTypes'\r\n\r\nconst initialState = {\r\n currencies: [],\r\n multi_currencies: [],\r\n base_currency_editable: 0,\r\n multi_currency_deactive_enabled: 0,\r\n}\r\n\r\nconst setCurrencies = (state, { payload }) => {\r\n return updateObject(state, {\r\n currencies: payload,\r\n })\r\n}\r\n\r\nconst setTenantCurrencies = (state, { payload }) => {\r\n return updateObject(state, {\r\n multi_currencies: payload?.multi_currencies,\r\n base_currency_editable: payload?.base_currency_editable,\r\n multi_currency_deactive_enabled: payload?.multi_currency_deactive_enabled,\r\n })\r\n}\r\n\r\nconst addTenantCurrency = (state, action) => {\r\n const multiCurrencies = [...state.multi_currencies, action.payload]\r\n const currency = action.payload?.currency\r\n const currencies = [\r\n ...state.currencies,\r\n { id: currency?.id, name: currency?.name, code: currency?.code, symbol: currency?.symbol },\r\n ]\r\n return updateObject(state, { multi_currencies: multiCurrencies, currencies })\r\n}\r\n\r\nconst editTenantCurrency = (state, action) => {\r\n const multiCurrencies = state.multi_currencies.map((item) => {\r\n if (item.currency_id === action.payload.currency_id) {\r\n return {\r\n ...item,\r\n ...action.payload,\r\n }\r\n }\r\n return item\r\n })\r\n return updateObject(state, { multi_currencies: multiCurrencies })\r\n}\r\n\r\nconst deleteTenantCurrency = (state, { payload }) => {\r\n const currencies = state.currencies.filter((item) => item.id !== payload.id)\r\n const multiCurrencies = state.multi_currencies.filter((item) => item.currency_id !== payload.id)\r\n return updateObject(state, { currencies, multi_currencies: multiCurrencies })\r\n}\r\n\r\nconst activatedCurrency = (state) => {\r\n return updateObject(state, { multi_currency_deactive_enabled: 1, base_currency_editable: 1 })\r\n}\r\n\r\nconst deactivatedCurrency = (state) => {\r\n return updateObject(state, { ...initialState })\r\n}\r\n\r\nconst setBaseCurrency = (state, action) => {\r\n const multiCurrencies = [action.payload]\r\n const currencies = [action.payload.currency]\r\n return updateObject(state, { multi_currencies: multiCurrencies, currencies })\r\n}\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_CURRENCIES:\r\n return setCurrencies(state, action)\r\n case actionTypes.ADD_CURRENCY:\r\n return addTenantCurrency(state, action)\r\n case actionTypes.EDIT_CURRENCY:\r\n return editTenantCurrency(state, action)\r\n case actionTypes.DELETE_CURRENCY:\r\n return deleteTenantCurrency(state, action)\r\n case actionTypes.ACTIVATED_CURRENCY:\r\n return activatedCurrency(state, action)\r\n case actionTypes.DEACTIVATED_CURRENCY:\r\n return deactivatedCurrency(state, action)\r\n case actionTypes.SET_MULTI_CURRENCIES:\r\n return setTenantCurrencies(state, action)\r\n case actionTypes.SET_BASE_CURRENCY:\r\n return setBaseCurrency(state, action)\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default reducer\r\n","import * as actionTypes from 'redux/actionTypes'\r\nimport { updateObject } from 'redux/utility'\r\n\r\nexport default function salutationReducer(state = [], action) {\r\n switch (action.type) {\r\n case actionTypes.SET_SALUTATIONS:\r\n return updateObject(state, {\r\n salutations: action.payload,\r\n })\r\n default:\r\n return state\r\n }\r\n}\r\n","import * as actionTypes from 'redux/actionTypes'\r\n// import { updateObject } from 'redux/utility'\r\n\r\nexport default function maintenanceReducer(state = '', action) {\r\n switch (action.type) {\r\n case actionTypes.SET_MAINTENANCE:\r\n return action.payload\r\n default:\r\n return state\r\n }\r\n}\r\n","import * as actionTypes from 'redux/actionTypes'\r\n\r\nexport default function salutationReducer(state = [], action) {\r\n switch (action.type) {\r\n case actionTypes.SET_REASONS:\r\n return action.payload\r\n default:\r\n return state\r\n }\r\n}\r\n","import { updateObject } from 'redux/utility'\r\nimport * as actionTypes from 'redux/actionTypes'\r\n\r\nconst initialState = {\r\n onboarding_checklist: null,\r\n}\r\n\r\nconst setOnboardingChecklist = (state, payload) => {\r\n return updateObject(state, {\r\n onboarding_checklist: payload,\r\n })\r\n}\r\n\r\nexport default function onboardingChecklistReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case actionTypes.SET_ONBOARDING_CHECKLIST:\r\n return setOnboardingChecklist(state, action.payload)\r\n default:\r\n return state\r\n }\r\n}\r\n","import * as actionTypes from 'redux/actionTypes'\r\n\r\nconst initialState = []\r\n\r\nexport default function outletsReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case actionTypes.SET_OUTLETS:\r\n return action.payload\r\n case actionTypes.ADD_OUTLET:\r\n return [...state, action.payload]\r\n case actionTypes.EDIT_OUTLET:\r\n return state.map((outlet) => {\r\n if (outlet.id === action.payload.id) return action.payload\r\n return outlet\r\n })\r\n case actionTypes.DELETE_OUTLET:\r\n return state.filter((outlet) => outlet.id !== action.payload.id)\r\n default:\r\n return state\r\n }\r\n}\r\n","import * as actionTypes from 'redux/actionTypes'\r\n\r\nexport default function maxCompaniesReducer(state = 0, action) {\r\n switch (action.type) {\r\n case actionTypes.SET_MAX_COMPANIES:\r\n return action.payload\r\n default:\r\n return state\r\n }\r\n}\r\n","import * as Sentry from '@sentry/react'\r\nimport { routerMiddleware } from 'connected-react-router'\r\nimport thunk from 'redux-thunk'\r\nimport { createStore, applyMiddleware, compose } from 'redux'\r\nimport reducers from 'redux/reducers'\r\n\r\nif (process.env.NODE_ENV === 'development' && true) {\r\n // middlewares.push(logger);\r\n}\r\n\r\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose\r\nconst sentryReduxEnhancer = Sentry.createReduxEnhancer()\r\n\r\nconst configureStore = (history) => {\r\n const routeMiddleware = routerMiddleware(history)\r\n const middlewares = [thunk, routeMiddleware]\r\n const store = createStore(\r\n reducers(history),\r\n composeEnhancers(applyMiddleware(...middlewares), sentryReduxEnhancer),\r\n )\r\n\r\n return store\r\n}\r\n\r\nexport default configureStore\r\n","import { combineReducers } from 'redux'\r\nimport { connectRouter } from 'connected-react-router'\r\nimport user from './user/reducers'\r\nimport menu from './menu/reducers'\r\nimport settings from './settings/reducers'\r\nimport refs from './refs/reducers'\r\nimport inits from './inits/reducers'\r\nimport payments from './payments/reducers'\r\nimport options from './options/reducers'\r\nimport posSettings from './posSettings/reducers'\r\nimport finance from './finance/reducers'\r\nimport billing from './billing/reducers'\r\nimport billingPos from './billingPos/reducers'\r\nimport companies from './companies/reducers'\r\nimport translation from './translation/reducers'\r\nimport broadcast from './broadcast/reducers'\r\nimport show_nps from './nps/reducers'\r\nimport show_hr_addon from './hris/reducers'\r\nimport tutorials from './tutorials/reducers'\r\nimport reviews from './reviews/reducers'\r\nimport loginForm from './loginForm/reducers'\r\nimport customColumn from './customColumn/reducers'\r\nimport defaultMessage from './defaultMessage/reducers'\r\nimport multiCurrency from './currencies/reducers'\r\nimport salutations from './salutations/reducers'\r\nimport maintenance from './maintenance/reducers'\r\nimport reasons from './reasons/reducers'\r\nimport onboardingChecklist from './onboardingChecklist/reducers'\r\nimport outlets from './outlets/reducers'\r\nimport maxCompanies from './maxCompanies/reducers'\r\n\r\nexport default (history) =>\r\n combineReducers({\r\n router: connectRouter(history),\r\n user,\r\n menu,\r\n settings,\r\n refs,\r\n inits,\r\n payments,\r\n options,\r\n posSettings,\r\n finance,\r\n billing,\r\n billingPos,\r\n companies,\r\n translation,\r\n broadcast,\r\n show_nps,\r\n show_hr_addon,\r\n tutorials,\r\n reviews,\r\n loginForm,\r\n customColumn,\r\n defaultMessage,\r\n multiCurrency,\r\n salutations,\r\n reasons,\r\n maintenance,\r\n max_companies: maxCompanies,\r\n onboardingChecklist,\r\n outlets,\r\n })\r\n","import * as Sentry from '@sentry/react'\r\n\r\nexport default () => {\r\n if (process.env.REACT_APP_SENTRY_DSN) {\r\n Sentry.init({\r\n dsn: process.env.REACT_APP_SENTRY_DSN,\r\n release: `${process.env.REACT_APP_NAME}@${process.env.REACT_APP_VERSION}`,\r\n normalizeDepth: 5,\r\n ignoreErrors: [\r\n 'ResizeObserver loop limit exceeded',\r\n 'Cannot redefine property: googletag',\r\n 'ResizeObserver loop completed with undelivered notifications',\r\n /Loading chunk [\\d]+ failed/,\r\n /Loading CSS chunk [\\d]+ failed/,\r\n 'Unexpected token _ in JSON at position 0',\r\n 'SecurityError: The operation is insecure.',\r\n ],\r\n })\r\n }\r\n}\r\n","import 'react-app-polyfill/ie9'\r\nimport 'react-app-polyfill/stable'\r\nimport React, { useEffect } from 'react'\r\nimport ReactDOM from 'react-dom/client'\r\nimport { Provider } from 'react-redux'\r\nimport { QueryClient, QueryClientProvider } from 'react-query'\r\nimport {\r\n ArcElement,\r\n BarElement,\r\n CategoryScale,\r\n Chart,\r\n Filler,\r\n Legend,\r\n LinearScale,\r\n LineElement,\r\n PointElement,\r\n Title,\r\n Tooltip,\r\n} from 'chart.js'\r\n\r\nimport { createHashHistory } from 'history'\r\nimport axios from 'axios'\r\nimport { GoogleOAuthProvider } from '@react-oauth/google'\r\nimport ConfigProvider from 'components/LayoutComponents/ConfigProvider'\r\nimport { generateBaseUri } from 'utils/helper'\r\nimport { errorHandler, requestHandler, successHandler } from 'utils/axios'\r\nimport App from 'app'\r\nimport { getToken } from 'utils/cookies'\r\nimport { storedSettings } from 'utils/localStorage'\r\nimport setupSentry from 'utils/sentry'\r\nimport configureStore from 'redux/store'\r\nimport { AppProvider } from 'components/AppProvider'\r\nimport { initializeFp, initializeTagManager, trackingPage } from 'utils/gtm'\r\nimport createIcons from './iconLibraries'\r\n\r\n// app styles\r\nimport './global.scss'\r\n\r\nsetupSentry()\r\nconst history = createHashHistory()\r\n\r\nif (process.env.NODE_ENV === 'production') {\r\n // Initialize tracker\r\n initializeTagManager()\r\n initializeFp()\r\n}\r\n\r\nexport const store = configureStore(history)\r\n\r\naxios.defaults.baseURL = generateBaseUri()\r\naxios.defaults.headers.Authorization = `Bearer ${getToken()}`\r\naxios.defaults.headers.post['Content-Type'] = 'application/json'\r\naxios.defaults.headers.common['X-App'] = 'finance'\r\naxios.defaults.headers.common['X-Client-Version'] = process.env.REACT_APP_VERSION\r\naxios.defaults.timeout = 300000\r\n\r\naxios.interceptors.request.use((request) => requestHandler(request))\r\n\r\naxios.interceptors.response.use(\r\n (response) => successHandler(response),\r\n (error) => errorHandler(error, store, history),\r\n)\r\n\r\n// Use query client\r\nconst queryClient = new QueryClient({\r\n defaultOptions: {\r\n queries: {\r\n refetchOnWindowFocus: false,\r\n },\r\n },\r\n})\r\n\r\ncreateIcons()\r\n\r\nChart.register(\r\n ArcElement,\r\n BarElement,\r\n CategoryScale,\r\n Filler,\r\n LinearScale,\r\n LineElement,\r\n PointElement,\r\n\r\n Legend,\r\n Title,\r\n Tooltip,\r\n)\r\n\r\nconst AppContainer = () => {\r\n // Ketika di production dipasang tracking\r\n useEffect(() => {\r\n if (process.env.NODE_ENV === 'production') {\r\n history.listen((location) => {\r\n trackingPage(location.pathname)\r\n })\r\n }\r\n }, [])\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst root = ReactDOM.createRoot(document.getElementById('root'))\r\n\r\nroot.render()\r\n\r\nif (window.Cypress) {\r\n window.store = store\r\n}\r\n\r\nexport default { store, history }\r\n","import { library } from '@fortawesome/fontawesome-svg-core';\r\nimport { fas } from '@fortawesome/free-solid-svg-icons';\r\n\r\nexport default () => {\r\n library.add(fas);\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nimport { cleanBlankValue, getOnce } from 'utils/helper'\r\n\r\nexport const getFinanceAccounts = (params) => {\r\n const query = stringify(params)\r\n return axios.get(`/finance/accounts?${query}`)\r\n}\r\n\r\nexport const getFinanceAccountsStats = (params) => {\r\n const query = stringify(params)\r\n return axios.get(`/finance/accounts/stats?${query}`)\r\n}\r\n\r\nexport const addFinanceAccount = (data) => {\r\n return axios.post('/finance/accounts', data)\r\n}\r\n\r\nexport const editFinanceAccount = (data) => {\r\n return axios.put(`/finance/accounts/${data.id}`, data)\r\n}\r\n\r\nexport const moveFinanceAccount = (srcId, destId) => {\r\n return axios.patch(`/finance/accounts/${srcId}/move`, { dest_id: destId })\r\n}\r\n\r\nexport const activateFinanceAccount = (id) => {\r\n return axios.patch(`/finance/accounts/${id}/activate`)\r\n}\r\n\r\nexport const deactivateFinanceAccount = (id) => {\r\n return axios.patch(`/finance/accounts/${id}/deactivate`)\r\n}\r\n\r\nexport const deleteFinanceAccount = (ids) => {\r\n return axios.delete('/finance/accounts/massDelete', { data: { id: ids } })\r\n}\r\n\r\nexport const getSuggestionFinanceAccount = (params, options) => {\r\n const query = stringify(params)\r\n\r\n return getOnce(`/finance/accounts/suggestionPerPage?${query}`, options)\r\n}\r\n\r\nexport const getSuggestionFinanceParentAccount = (params) => {\r\n const query = stringify(params)\r\n\r\n return getOnce(`/finance/accounts/suggestionParentAccountsPerpage?${query}`)\r\n}\r\n\r\nexport const getSuggestionFinanceParentAccountWithPagination = (params) => {\r\n const query = stringify(params)\r\n\r\n return getOnce(`/finance/accounts/suggestion?${query}`)\r\n}\r\n\r\nexport const getFinanceAccount = (id) => {\r\n return axios.get(`/finance/accounts/${id}`)\r\n}\r\n\r\nexport const getFinanceBankAccounts = () => {\r\n return axios.get('/finance/accounts/banks')\r\n}\r\n\r\nexport const getListFinanceBankAccounts = (params) => {\r\n return axios.get('/finance/accounts/banks/list', { params })\r\n}\r\n\r\nexport const uploadImportFinanceAccount = (data) => {\r\n return axios.post('/finance/accounts/uploadImport', data)\r\n}\r\n\r\nexport const executeImportFinanceAccount = (data) => {\r\n return axios.post('/finance/accounts/executeImport', data)\r\n}\r\n\r\nexport const exportAccounts = (params) => {\r\n params = cleanBlankValue(params)\r\n const query = stringify(params)\r\n return axios.get(`/finance/accounts/export?${query}`, { responseType: 'arraybuffer' })\r\n}\r\n\r\nexport const getFinanceAccountRoles = (id) => {\r\n return axios.get(`/finance/accounts/${id}/roles`)\r\n}\r\n\r\nexport const addFinanceAccountRoles = (id, data) => {\r\n return axios.post(`/finance/accounts/${id}/roles`, data)\r\n}\r\n","/* eslint-disable camelcase */\r\nimport axios from 'axios'\r\n\r\nconst resource = 'authentication'\r\n\r\nexport const login = (email, password, remember) => {\r\n const data = {\r\n email,\r\n password,\r\n remember_me: remember,\r\n }\r\n\r\n return axios.post(`/${resource}/login`, data, { headers: { Authorization: false } })\r\n}\r\n\r\nexport const singleLogin = (email, password, remember) => {\r\n const data = {\r\n email,\r\n password,\r\n remember_me: remember,\r\n }\r\n\r\n return axios.post(`/${resource}/singleLogin`, data, { headers: { Authorization: false } })\r\n}\r\n\r\nexport const verifyGoogleToken = (code) => {\r\n return axios.post(`/google-auth/verify`, { code }, { headers: { Authorization: false } })\r\n}\r\n\r\nexport const updateProfile = (data) => {\r\n return axios.put(`/${resource}/user`, data)\r\n}\r\n\r\nexport const changePassword = (data) => {\r\n return axios.put(`/${resource}/password`, data)\r\n}\r\n\r\nexport const revokeLogin = () => {\r\n return axios.post(`/authentication/revoke`)\r\n}\r\n\r\nexport const invite = (data) => {\r\n return axios.post(`/users/register`, data, { headers: { Authorization: false } })\r\n}\r\n\r\nexport const acceptInvitation = (data) => {\r\n return axios.post(`/users/acceptInvitation`, data, { headers: { Authorization: false } })\r\n}\r\n\r\nexport const reset = (data) => {\r\n return axios.post(`/authentication/password/recovery/reset`, data, {\r\n headers: { Authorization: false },\r\n })\r\n}\r\n\r\nexport const changeLanguage = (lang) => {\r\n return axios.patch(`/${resource}/user/lang`, { lang })\r\n}\r\n\r\nexport const logout = () => {\r\n return axios.post(`/${resource}/logout`)\r\n}\r\n\r\nexport const loginWithSso = (data) => {\r\n return axios.post(`/sso/login`, data, { headers: { Authorization: false } })\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nexport const getCustomColumns = () => {\r\n return axios.get('/finance/customColumns/invoices')\r\n}\r\n\r\n// export const getCustomColumn = (id) => {\r\n// return axios.get(`/finance/customColumns/invoices/${id}`)\r\n// }\r\n\r\nexport const addCustomColumn = (data) => {\r\n return axios.post('/finance/customColumns/invoices', data)\r\n}\r\n\r\nexport const editCustomColumn = (data) => {\r\n return axios.put(`/finance/customColumns/invoices/${data.id}`, data)\r\n}\r\n\r\nexport const deleteCustomColumn = (data) => {\r\n return axios.delete(`/finance/customColumns/invoices/${data.id}`)\r\n}\r\n\r\nexport const moveCustomColumn = (srcId, destId) => {\r\n return axios.patch(`/finance/customColumns/invoices/${srcId}/move`, { dest_id: destId })\r\n}\r\n\r\nexport const activateCustomColumn = (id, payload) => {\r\n const query = stringify(payload)\r\n return axios.patch(`/finance/customColumns/invoices/${id}/activate?${query}`)\r\n}\r\n\r\nexport const deactivateCustomColumn = (id, payload) => {\r\n const query = stringify(payload)\r\n return axios.patch(`/finance/customColumns/invoices/${id}/deactivate?${query}`)\r\n}\r\n\r\nexport const getCustomColumnsItem = () => {\r\n return axios.get('/finance/customColumns/invoiceItems')\r\n}\r\n\r\n// export const getCustomColumnItem = (id) => {\r\n// return axios.get(`/finance/customColumns/invoiceItems/${id}`)\r\n// }\r\n\r\nexport const addCustomColumnItem = (data) => {\r\n return axios.post('/finance/customColumns/invoiceItems', data)\r\n}\r\n\r\nexport const editCustomColumnItem = (data) => {\r\n return axios.put(`/finance/customColumns/invoiceItems/${data.id}`, data)\r\n}\r\n\r\nexport const deleteCustomColumnItem = (data) => {\r\n return axios.delete(`/finance/customColumns/invoiceItems/${data.id}`)\r\n}\r\n\r\nexport const moveCustomColumnItem = (srcId, destId) => {\r\n return axios.patch(`/finance/customColumns/invoiceItems/${srcId}/move`, { dest_id: destId })\r\n}\r\n\r\nexport const activateCustomColumnItem = (id, payload) => {\r\n const query = stringify(payload)\r\n return axios.patch(`/finance/customColumns/invoiceItems/${id}/activate?${query}`)\r\n}\r\n\r\nexport const deactivateCustomColumnItem = (id, payload) => {\r\n const query = stringify(payload)\r\n return axios.patch(`/finance/customColumns/invoiceItems/${id}/deactivate?${query}`)\r\n}\r\n","import React from 'react'\r\nimport localStore from 'store'\r\nimport axios from 'axios'\r\nimport dayjs from 'dayjs'\r\nimport _ from 'lodash'\r\n\r\nimport { store as reduxStore } from 'index'\r\n\r\nconst isSameOrBefore = require('dayjs/plugin/isSameOrBefore')\r\n\r\ndayjs.extend(isSameOrBefore)\r\n\r\nexport const nth = (n) => {\r\n const s = ['th', 'st', 'nd', 'rd']\r\n const v = n % 100\r\n\r\n return n + (s[(v - 20) % 10] || s[v] || s[0])\r\n}\r\n\r\nexport const arraymove = (arr, fromIndex, toIndex) => {\r\n const element = arr[fromIndex]\r\n arr.splice(fromIndex, 1)\r\n arr.splice(toIndex, 0, element)\r\n return arr\r\n}\r\n\r\nexport const priceValidator = (rule, value) => {\r\n if (value <= 0) {\r\n return Promise.reject(rule.message)\r\n }\r\n return Promise.resolve()\r\n}\r\n\r\nexport const disabledTransDate = (current) => {\r\n const { options } = reduxStore.getState().options\r\n\r\n if (!options.lock_date) {\r\n return false\r\n }\r\n\r\n return current && current.isSameOrBefore(dayjs(options.lock_date), 'day')\r\n}\r\n\r\nexport const transDateValidator = (rule, value) => {\r\n const { options } = reduxStore.getState().options\r\n // if (!options.lock_date) {\r\n // callback();\r\n // }\r\n\r\n if (value && options.lock_date && value.isSameOrBefore(dayjs(options.lock_date), 'day')) {\r\n return Promise.reject(rule.message)\r\n }\r\n return Promise.resolve()\r\n}\r\n\r\n// Get import template link\r\nexport const getTemplateUrl = (fileName = '') => {\r\n return `${generateBaseUri()}/download/import/${fileName}`\r\n}\r\n\r\nexport const generateBaseUri = () => {\r\n // Jika env base url di bypass\r\n\r\n const byPassEndpoint = localStore.get('app.bypassEndpoint')\r\n if (localStore.get('app.isOverwriteBaseUrl') && !!byPassEndpoint) {\r\n return byPassEndpoint\r\n }\r\n\r\n let apiUrl = byPassEndpoint || process.env.REACT_APP_API_URL\r\n let baseUrl = apiUrl ? apiUrl.replace(/^(?:https?:\\/\\/)?(?:www\\.)?/i, '') : ''\r\n const { hostname } = window.location\r\n if (process.env.NODE_ENV === 'production') {\r\n const splitHostname = hostname.split('.')\r\n if (splitHostname[0] && localStore.get('app.endpoint')) {\r\n baseUrl = `${splitHostname[0]}.${baseUrl}`\r\n }\r\n }\r\n\r\n let protocol = _.includes(apiUrl, 'https://') ? 'https://' : 'http://'\r\n if (_.includes('local.jokolodang.com', hostname)) {\r\n protocol = 'http://'\r\n }\r\n if (localStore.get('app.endpoint')) {\r\n apiUrl = `${protocol}${localStore.get('app.endpoint')}/api/v1`\r\n } else {\r\n apiUrl = `${protocol}${baseUrl}`\r\n if (_.includes('local.jokolodang.com', hostname)) {\r\n apiUrl = `http://app.kledo.test/api/v1`\r\n } else if (_.includes('localssl.jokolodang.com', hostname)) {\r\n apiUrl = `https://app.kledo.test/api/v1`\r\n }\r\n }\r\n return apiUrl\r\n}\r\n\r\nexport const getMax = (arr = []) => {\r\n let max\r\n arr.forEach((e, i) => {\r\n if (i === 0) max = e\r\n if (max < e) max = e\r\n })\r\n return max\r\n}\r\n\r\nexport const cleanBlankValue = (obj) => {\r\n Object.keys(obj).forEach((key) => {\r\n if (obj[key] === null || obj[key] === undefined || obj[key] === '') {\r\n delete obj[key]\r\n }\r\n })\r\n\r\n return obj\r\n}\r\n\r\n// Create custom axios GET with cancellation\r\nexport const makeGetRequestCreator = () => {\r\n let call\r\n let _url\r\n return (url, { forceCancellation, forceCancellationWithURL } = {}) => {\r\n if (call) {\r\n if (\r\n (!forceCancellation && !forceCancellationWithURL) ||\r\n (forceCancellationWithURL && url === _url)\r\n ) {\r\n call.cancel('Only one request allowed at a time.')\r\n }\r\n }\r\n call = axios.CancelToken.source()\r\n _url = url\r\n return axios.get(url, {\r\n cancelToken: call.token,\r\n })\r\n }\r\n}\r\n\r\nexport const getOnce = makeGetRequestCreator()\r\n\r\n// To check layout is desktop\r\nexport const isDesktopLayout = () => {\r\n const { isMobileView, isTabView } = reduxStore.getState().settings\r\n // const isMobileView = localStore.get('app.settings.isMobileView');\r\n // const isTabView = localStore.get('app.settings.isTabView');\r\n\r\n return !isMobileView && !isTabView\r\n}\r\n\r\nexport const discountType = (type) => {\r\n const { options } = reduxStore.getState().options\r\n let isDiscountNumeric\r\n if (type === 'purchase') {\r\n isDiscountNumeric = options.purchase_discount_numeric === 1\r\n } else {\r\n isDiscountNumeric = options.sale_discount_numeric === 1\r\n }\r\n\r\n return isDiscountNumeric ? 'discount_amount' : 'discount_percent'\r\n}\r\n\r\nexport const openNewTabBlobFile = (data) => {\r\n const file = new Blob([data], { type: 'application/pdf' })\r\n // Build a URL from the file\r\n const fileURL = URL.createObjectURL(file)\r\n const tempLink = document.createElement('a')\r\n tempLink.href = fileURL\r\n tempLink.setAttribute('target', '_blank')\r\n tempLink.click()\r\n}\r\n\r\nexport const openNewTab = (moduleUrl = '', withBaseUri = true) => {\r\n const tempLink = document.createElement('a')\r\n if (withBaseUri) tempLink.href = `${generateBaseUri()}${moduleUrl}`\r\n else tempLink.href = moduleUrl\r\n tempLink.setAttribute('target', '_blank')\r\n tempLink.click()\r\n}\r\n\r\nexport const filterOption = (input, option) => {\r\n if (option.children) {\r\n return option.children.toString().toLowerCase().indexOf(input.toLowerCase()) >= 0\r\n }\r\n if (option?.name) {\r\n return option?.name.toLowerCase().indexOf(input.toLowerCase()) >= 0\r\n }\r\n return true\r\n}\r\n\r\nexport const copyclip = (text) => {\r\n const textField = document.createElement('textarea')\r\n textField.innerText = text\r\n document.body.appendChild(textField)\r\n textField.select()\r\n document.execCommand('copy')\r\n textField.remove()\r\n}\r\n\r\nexport const clearCache = (reload = false) => {\r\n if ('caches' in window) {\r\n caches.keys().then((names) => {\r\n const delAll = new Promise((resolve) => {\r\n if (names.length === 0) resolve()\r\n names.forEach(async (name, i) => {\r\n await caches.delete(name)\r\n if (i === names.length - 1) resolve()\r\n })\r\n })\r\n\r\n delAll.then(() => {\r\n if (reload) {\r\n window.location.reload(true)\r\n }\r\n })\r\n })\r\n }\r\n}\r\n\r\n/**\r\n * Determine the mobile operating system.\r\n * This function returns one of 'ios', 'android', 'windows_phone', or 'other'.\r\n *\r\n * @returns {String}\r\n */\r\nexport const getMobileOperatingSystem = () => {\r\n const userAgent = navigator.userAgent || navigator.vendor || window.opera\r\n\r\n // Windows Phone must come first because its UA also contains \"Android\"\r\n if (/windows phone/i.test(userAgent)) {\r\n return 'windows_phone'\r\n }\r\n\r\n if (/android/i.test(userAgent)) {\r\n return 'android'\r\n }\r\n\r\n if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {\r\n return 'ios'\r\n }\r\n\r\n return 'other'\r\n}\r\n\r\nexport const useDebounce = (callback, delay) => {\r\n return React.useCallback(\r\n _.debounce((...args) => callback(...args), delay),\r\n [delay], // will recreate if delay changes\r\n )\r\n}\r\n\r\nexport const parseUrlToFileName = (url) => {\r\n let name = ''\r\n if (url) {\r\n const { pathname } = new URL(url)\r\n if (pathname) {\r\n const splitPath = pathname.split('/')\r\n name = splitPath ? decodeURI(_.last(splitPath)) : ''\r\n }\r\n }\r\n return name\r\n}\r\n\r\n// Replace slash for uri\r\nexport const replaceSlash = (text = '', replaceable = ':slash:') => text.replace(/\\//g, replaceable)\r\n\r\nexport const isPaidFeature = ({ billing, code }) => {\r\n const hiddenFeatures = [\r\n ...(billing.hidden_feature ?? []),\r\n ...(billing.hidden_feature_elite ?? []),\r\n ...(billing.hidden_feature_champion ?? []),\r\n ]\r\n\r\n return hiddenFeatures.filter((feature) => feature === code).length > 0\r\n}\r\nexport const isFeaturePro = ({ billing, code }) =>\r\n billing?.hidden_feature && billing.hidden_feature.filter((e) => e === code).length > 0\r\n\r\nexport const isFeatureElite = ({ billing, code }) =>\r\n billing?.hidden_feature_elite && billing.hidden_feature_elite.filter((e) => e === code).length > 0\r\n\r\nexport const isFeatureChampion = ({ billing, code }) =>\r\n billing?.hidden_feature_champion &&\r\n billing.hidden_feature_champion.filter((e) => e === code).length > 0\r\n\r\nexport const makeYears = (min = 2000) => {\r\n const years = []\r\n for (let i = dayjs().year(); i >= min; i -= 1) {\r\n years.push(i.toString())\r\n }\r\n\r\n return years\r\n}\r\n\r\nexport function getBase64(img, callback) {\r\n const reader = new FileReader()\r\n reader.addEventListener('load', () => callback(reader.result))\r\n reader.readAsDataURL(img)\r\n}\r\n\r\n// export const getBase64 = (file) =>\r\n// new Promise((resolve, reject) => {\r\n// const reader = new FileReader()\r\n// reader.readAsDataURL(file)\r\n// reader.onload = () => resolve(reader.result)\r\n// reader.onerror = (error) => reject(error)\r\n// })\r\n\r\nexport const isValidJson = (str) => {\r\n try {\r\n JSON.parse(str)\r\n } catch (e) {\r\n return false\r\n }\r\n return true\r\n}\r\n\r\nexport function compare(prevProps, nextProps) {\r\n return stringify(prevProps) === stringify(nextProps)\r\n}\r\n\r\nexport const compareWithJSON = (prevProps, nextProps) => {\r\n try {\r\n return JSON.stringify(prevProps) === JSON.stringify(nextProps)\r\n } catch {\r\n return true\r\n }\r\n}\r\n\r\nexport function stringify(obj) {\r\n let cache = []\r\n const str = JSON.stringify(obj, (key, value) => {\r\n if (typeof value === 'object' && value !== null) {\r\n if (cache.indexOf(value) !== -1) {\r\n // Circular reference found, discard key\r\n return\r\n }\r\n // Store value in our collection\r\n cache.push(value)\r\n }\r\n })\r\n cache = null // reset the cache\r\n return str\r\n}\r\n\r\nexport const stripTagsRDW = (blocks) => {\r\n const newBlocks = []\r\n\r\n if (_.isArray(blocks)) {\r\n blocks.forEach((block) => {\r\n newBlocks.push({\r\n ...block,\r\n // prevent link like below to be undefined and still link (can be click like link)\r\n // \r\n entityRanges: [],\r\n text: block?.text?.replace(/(<([^>]+)>)/gi, '')?.replace(' ', ' ') ?? '',\r\n })\r\n })\r\n }\r\n\r\n return newBlocks\r\n}\r\n\r\n/**\r\n *\r\n * @param data {string[]}\r\n * @returns {string[]}\r\n */\r\nexport const sortDate = (data) => {\r\n return data.sort(\r\n (prevDate, nextDate) => new Date(prevDate).getTime() - new Date(nextDate).getTime(),\r\n )\r\n}\r\n\r\n// Reference https://css-tricks.com/converting-color-spaces-in-javascript/#aa-hex-to-rgb\r\n/**\r\n *\r\n * @param h {string}\r\n * @returns {string}\r\n */\r\nexport const hexToRGB = (h) => {\r\n let r = 0\r\n let g = 0\r\n let b = 0\r\n\r\n // 3 digits\r\n if (h.length === 4) {\r\n r = `0x${h[1]}${h[1]}`\r\n g = `0x${h[2]}${h[2]}`\r\n b = `0x${h[3]}${h[3]}`\r\n\r\n // 6 digits\r\n } else if (h.length === 7) {\r\n r = `0x${h[1]}${h[2]}`\r\n g = `0x${h[3]}${h[4]}`\r\n b = `0x${h[5]}${h[6]}`\r\n }\r\n\r\n return `rgb(${+r},${+g},${+b})`\r\n}\r\n\r\n// Check contrast color for tag with background color\r\n// Reference: https://stackoverflow.com/a/9733420\r\n\r\nconst RED = 0.2126\r\nconst GREEN = 0.7152\r\nconst BLUE = 0.0722\r\n\r\nconst GAMMA = 2.4\r\n\r\nconst luminance = (r, g, b) => {\r\n const a = [r, g, b].map((v) => {\r\n v /= 255\r\n return v <= 0.03928 ? v / 12.92 : ((v + 0.055) / 1.055) ** GAMMA\r\n })\r\n return a[0] * RED + a[1] * GREEN + a[2] * BLUE\r\n}\r\n\r\n/**\r\n *\r\n * @param stringRgb {string}\r\n * @returns {number[]}\r\n */\r\nconst extractRgb = (stringRgb) => {\r\n return stringRgb\r\n .split(/[()]/i)[1]\r\n .split(',')\r\n .map((num) => Number(num))\r\n}\r\n\r\nexport const checkContrast = (rgb1, rgb2) => {\r\n const lum1 = luminance(...extractRgb(rgb1))\r\n const lum2 = luminance(...extractRgb(rgb2))\r\n const brightest = Math.max(lum1, lum2)\r\n const darkest = Math.min(lum1, lum2)\r\n return (brightest + 0.05) / (darkest + 0.05)\r\n}\r\n","import {\r\n getInitsFinance,\r\n watchlistsDashboardDelete,\r\n watchlistsDashboardMove,\r\n watchlistsDashboardPost,\r\n} from 'utils/apis'\r\nimport * as actionTypes from 'redux/actionTypes'\r\nimport { setFinanceExpenseTerms } from 'redux/financeExpenseTerms/actions'\r\nimport { setFinanceTaxes } from 'redux/financeTaxes/actions'\r\nimport { setFinanceWareHouses, setFinanceWareHousesRoles } from 'redux/financeWareHouses/actions'\r\nimport { setFinanceUnits } from 'redux/financeUnits/actions'\r\nimport { setShippingComps } from 'redux/shippingComps/actions'\r\nimport { setTransactionFees } from 'redux/transactionFees/actions'\r\n\r\nconst setFinanceConfig = (payload, translation) => {\r\n const contactTypes = []\r\n\r\n ;(payload?.contact_type ?? []).forEach((contactType) => {\r\n if (contactType.id === 1) {\r\n contactTypes.push({\r\n id: 1,\r\n name: translation?.term?.vendor ?? 'Vendor',\r\n })\r\n return null\r\n }\r\n if (contactType.id === 3) {\r\n contactTypes.push({\r\n id: 3,\r\n name: translation?.term?.customer ?? 'Customer',\r\n })\r\n return null\r\n }\r\n contactTypes.push(contactType)\r\n return null\r\n })\r\n\r\n return {\r\n type: actionTypes.SET_FINANCE_CONFIG,\r\n payload: {\r\n ...payload,\r\n contact_type: contactTypes,\r\n },\r\n }\r\n}\r\n\r\nexport const setFinanceConfigDefaultAccount = (payload) => {\r\n return {\r\n type: actionTypes.SET_FINANCE_CONFIG_DEFAULT_ACCOUNT,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setFinanceBankAccounts = (payload) => {\r\n return {\r\n type: actionTypes.SET_FINANCE_BANK_ACCOUNTS,\r\n payload,\r\n }\r\n}\r\n\r\nexport const addFinanceBankAccount = (payload) => {\r\n return {\r\n type: actionTypes.ADD_FINANCE_BANK_ACCOUNT,\r\n payload,\r\n }\r\n}\r\n\r\nexport const editFinanceBankAccount = (payload) => {\r\n return {\r\n type: actionTypes.EDIT_FINANCE_BANK_ACCOUNT,\r\n payload,\r\n }\r\n}\r\n\r\nexport const deleteFinanceBankAccount = (payload) => {\r\n return {\r\n type: actionTypes.DELETE_FINANCE_BANK_ACCOUNT,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setFinanceAccountCategories = (payload) => {\r\n return {\r\n type: actionTypes.SET_FINANCE_ACCOUNT_CATEGORIES,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setFinanceProductCategories = (payload) => {\r\n return {\r\n type: actionTypes.SET_FINANCE_PRODUCT_CATEGORIES,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setFinanceProductCategoriesRoles = (payload) => {\r\n return {\r\n type: actionTypes.SET_FINANCE_PRODUCT_CATEGORIES_ROLES,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setDashboard = (payload) => {\r\n return {\r\n type: actionTypes.SET_DASHBOARD,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setADashboard = (payload) => {\r\n return {\r\n type: actionTypes.SET_A_DASHBOARD,\r\n payload,\r\n }\r\n}\r\n\r\nexport const addDashboard = (payload) => {\r\n return {\r\n type: actionTypes.ADD_DASHBOARD,\r\n payload,\r\n }\r\n}\r\n\r\nexport const editDashboard = (payload) => {\r\n return {\r\n type: actionTypes.EDIT_DASHBOARD,\r\n payload,\r\n }\r\n}\r\n\r\nexport const deleteDashboard = (payload) => {\r\n return {\r\n type: actionTypes.DELETE_DASHBOARD,\r\n payload,\r\n }\r\n}\r\n\r\nexport const resetDashboard = () => {\r\n return {\r\n type: actionTypes.RESET_DASHBOARD,\r\n }\r\n}\r\n\r\nexport const filterAccountWatchList = (payload) => {\r\n return {\r\n type: actionTypes.FILTER_ACCOUNT_WATCH_LIST,\r\n payload,\r\n }\r\n}\r\n\r\nexport const addAccountWatchListRedux = (payload) => {\r\n return {\r\n type: actionTypes.ADD_ACCOUNT_WATCH_LIST,\r\n payload,\r\n }\r\n}\r\n\r\nexport const addAccountWatchList = (payload) => {\r\n return (dispatch) => {\r\n return watchlistsDashboardPost(payload).then((response) => {\r\n dispatch(addAccountWatchListRedux(response.data.data))\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const moveAccountWatchListRedux = (payload) => {\r\n return {\r\n type: actionTypes.MOVE_ACCOUNT_WATCH_LIST,\r\n payload,\r\n }\r\n}\r\n\r\nexport const moveAccountWatchList = (payload) => {\r\n return (dispatch) => {\r\n dispatch(moveAccountWatchListRedux(payload))\r\n\r\n return watchlistsDashboardMove(payload.srcId, payload.destId)\r\n .then((response) => {\r\n return response\r\n })\r\n .catch(() => {\r\n dispatch(\r\n moveAccountWatchListRedux({\r\n dragIndex: payload.hoverIndex,\r\n hoverIndex: payload.dragIndex,\r\n srcId: payload.destId,\r\n destId: payload.srcId,\r\n }),\r\n )\r\n })\r\n }\r\n}\r\n\r\nexport const deleteAccountWatchListRedux = (id) => {\r\n return {\r\n type: actionTypes.DELETE_ACCOUNT_WATCH_LIST,\r\n payload: { id },\r\n }\r\n}\r\n\r\nexport const deleteAccountWatchList = (id) => {\r\n return (dispatch) => {\r\n dispatch(deleteAccountWatchListRedux(id))\r\n return watchlistsDashboardDelete(id).then((response) => {\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const setIDCardTypes = (payload) => {\r\n return {\r\n type: actionTypes.SET_ID_CARD_TYPES,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setFinanceApproval = (payload) => {\r\n return {\r\n type: actionTypes.SET_FINANCE_APPROVAL,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setPaymentConnectProviders = (payload) => {\r\n return {\r\n type: actionTypes.SET_PAYMENT_CONNECT_PROVIDERS,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setFinance = (payload, translation) => {\r\n return (dispatch) => {\r\n dispatch(setFinanceConfig(payload.config, translation))\r\n dispatch(setFinanceAccountCategories(payload.accountCategories))\r\n dispatch(setFinanceWareHouses(payload.warehouses))\r\n dispatch(setFinanceWareHousesRoles(payload.warehouses_has_role))\r\n dispatch(setFinanceExpenseTerms(payload.expenseTerms))\r\n dispatch(setFinanceTaxes(payload.taxes))\r\n dispatch(setFinanceUnits(payload.units))\r\n dispatch(setShippingComps(payload.shippingComps))\r\n dispatch(setFinanceProductCategories(payload.productCategories))\r\n dispatch(setFinanceProductCategoriesRoles(payload.product_categories_has_role))\r\n dispatch(setFinanceBankAccounts(payload.bankAccounts))\r\n dispatch(setIDCardTypes(payload.id_card_types || []))\r\n dispatch(setDashboard(payload.dashboard))\r\n dispatch(setFinanceApproval(payload.finance_approval))\r\n if (payload.payment_connect_providers) {\r\n dispatch(setPaymentConnectProviders(payload.payment_connect_providers))\r\n }\r\n\r\n if (Array.isArray(payload.fees)) {\r\n dispatch(setTransactionFees(payload.fees))\r\n }\r\n }\r\n}\r\n\r\nexport const initsFinance = () => {\r\n return (dispatch, getState) => {\r\n const state = getState()\r\n return getInitsFinance().then((response) => {\r\n if (response.data.success) {\r\n dispatch(setFinance(response.data.data, state.translation))\r\n }\r\n return true\r\n })\r\n }\r\n}\r\n\r\nexport const showAccountTransactionReport = (payload) => {\r\n return {\r\n type: actionTypes.SHOW_ACCOUNTTRANSACTION_REPORT,\r\n payload,\r\n }\r\n}\r\n\r\nexport const hideAccountTransactionReport = (payload) => {\r\n return {\r\n type: actionTypes.HIDE_ACCOUNTTRANSACTION_REPORT,\r\n payload,\r\n }\r\n}\r\n\r\nexport const showAuditModal = (payload) => {\r\n return {\r\n type: actionTypes.SHOW_AUDIT_MODAL,\r\n payload,\r\n }\r\n}\r\n\r\nexport const hideAuditModal = (payload) => {\r\n return {\r\n type: actionTypes.HIDE_AUDIT_MODAL,\r\n payload,\r\n }\r\n}\r\n","import * as actionTypes from 'redux/actionTypes'\r\n\r\nexport const setErrorLoginForm = (payload) => {\r\n return {\r\n type: actionTypes.SET_ERROR_LOGIN_FORM,\r\n payload,\r\n }\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nimport { cleanBlankValue } from 'utils/helper'\r\n\r\nexport const getFinanceWareHouses = (params) => {\r\n return axios.get('/finance/warehouses', { params })\r\n}\r\n\r\nexport const getFinanceWareHouse = (id, params) => {\r\n const query = stringify(params)\r\n return axios.get(`/finance/warehouses/${id}?${query}`)\r\n}\r\n\r\nexport const deleteFinanceWareHousePhoto = (url) => {\r\n return axios.delete('/finance/warehouses/photo', { data: { url } })\r\n}\r\n\r\nexport const deleteFinanceWareHousePhotoOnEdit = ({ url, id }) => {\r\n return axios.delete(`/finance/warehouses/${id}/photo`, { data: { url } })\r\n}\r\n\r\nexport const getFinanceWareHouseLog = (id, params) => {\r\n const query = stringify(params)\r\n return axios.get(`/finance/warehouses/${id}/logs?${query}`)\r\n}\r\n\r\nexport const getFinanceWareHouseTransactions = (id, params) => {\r\n const query = stringify(params)\r\n return axios.get(`/finance/warehouses/${id}/transactions?${query}`)\r\n}\r\n\r\nexport const addFinanceWareHouse = (data) => {\r\n return axios.post('/finance/warehouses', data)\r\n}\r\n\r\nexport const editFinanceWareHouse = (data) => {\r\n return axios.put(`/finance/warehouses/${data.id}`, data)\r\n}\r\n\r\nexport const moveFinanceWareHouse = (srcId, destId) => {\r\n return axios.patch(`/finance/warehouses/${srcId}/move`, { dest_id: destId })\r\n}\r\n\r\nexport const activateFinanceWareHouse = (id) => {\r\n return axios.patch(`/finance/warehouses/${id}/activate`)\r\n}\r\n\r\nexport const deactivateFinanceWareHouse = (id) => {\r\n return axios.patch(`/finance/warehouses/${id}/deactivate`)\r\n}\r\n\r\nexport const getFinanceWareHouseTransfers = (params) => {\r\n const query = stringify(cleanBlankValue(params))\r\n return axios.get(`/finance/warehouses/transfers?${query}`)\r\n}\r\n\r\nexport const exportFinanceWarehouseTransfers = (params) => {\r\n params = cleanBlankValue(params)\r\n const query = stringify(params)\r\n return axios.get(`/finance/warehouses/transfers?${query}`, { responseType: 'arraybuffer' })\r\n}\r\n\r\nexport const getFinanceWareHouseTransfer = (id, includeStockBefore = 0) => {\r\n let query = ''\r\n if (includeStockBefore === 1) {\r\n query = stringify({ include_stock_before: 1 })\r\n }\r\n return axios.get(`/finance/warehouses/transfers/${id}?${query}`)\r\n}\r\n\r\nexport const getFinanceWareHouseTransferLog = (id, params) => {\r\n const query = stringify(params)\r\n return axios.get(`/finance/warehouses/transfers/${id}/logs?${query}`)\r\n}\r\n\r\nexport const addFinanceWareHouseTransfer = (data) => {\r\n return axios.post('/finance/warehouses/transfers', data)\r\n}\r\n\r\nexport const editFinanceWareHouseTransfer = (data) => {\r\n return axios.put(`/finance/warehouses/transfers/${data.id}`, data)\r\n}\r\n\r\nexport const deleteFinanceWareHouseTransfer = (id) => {\r\n return axios.delete(`/finance/warehouses/transfers/${id}`)\r\n}\r\n\r\nexport const deleteOnAddFinanceWareHouseTransferAttachment = (url) => {\r\n return axios.delete('/finance/warehouses/transfers/attachments', { data: { url } })\r\n}\r\n\r\nexport const deleteOnEditFinanceWareHouseTransferAttachment = (id, url) => {\r\n return axios.delete(`/finance/warehouses/transfers/${id}/attachments`, { data: { url } })\r\n}\r\n\r\nexport const uploadImportFinanceWarehouseTransfer = (data) => {\r\n return axios.post('/finance/warehouses/transfers/uploadImport', data)\r\n}\r\n\r\nexport const executeImportFinanceWarehouseTransfer = (data) => {\r\n return axios.post('/finance/warehouses/transfers/executeImport', data)\r\n}\r\n\r\nexport const deleteFinanceWareHouse = (id) => {\r\n return axios.delete(`/finance/warehouses/${id}`)\r\n}\r\n\r\nexport const archiveFinanceWareHouse = (id) => {\r\n return axios.patch(`/finance/warehouses/${id}/archive`)\r\n}\r\n\r\nexport const unarchiveFinanceWareHouse = (id) => {\r\n return axios.patch(`/finance/warehouses/${id}/unarchive`)\r\n}\r\n\r\nexport const getFinanceWarehouseRoles = (id) => {\r\n return axios.get(`/finance/warehouses/${id}/roles`)\r\n}\r\n\r\nexport const addFinanceWarehouseRoles = (id, data) => {\r\n return axios.post(`/finance/warehouses/${id}/roles`, data)\r\n}\r\n\r\nexport const approveWarehouseTransfer = (id) => {\r\n return axios.post(`/finance/warehouses/transfers/${id}/approve`)\r\n}\r\n\r\nexport const rejectWarehouseTransfer = ({ id, body }) => {\r\n return axios.post(`/finance/warehouses/transfers/${id}/reject`, body)\r\n}\r\n\r\nexport const revertWarehouseTransfer = ({ id }) => {\r\n return axios.post(`/finance/warehouses/transfers/${id}/revert`)\r\n}\r\n\r\nexport const addFinanceWarehouseContactGroups = (id, data) => {\r\n return axios.post(`/finance/warehouses/${id}/contactGroups`, data)\r\n}\r\n\r\nexport const getWarehousesSummary = () => {\r\n return axios.get('/finance/warehouses/summary')\r\n}\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"layout\":\"style_layout__Ehmsb\",\"light\":\"style_light__FQ_xM\",\"content\":\"style_content__nzhNf\",\"navigationItems\":\"style_navigationItems__m-bAf\",\"navigationActive\":\"style_navigationActive__flFTw\",\"footer\":\"style_footer__2Eeua\",\"header\":\"style_header__X5rRO\",\"logo\":\"style_logo__3MCw1\",\"logoKledoFooter\":\"style_logoKledoFooter__33f0I\",\"controls\":\"style_controls__p4odg\",\"navigation\":\"style_navigation__HYzHO\",\"inner\":\"style_inner__31evg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"onboarding\":\"style_onboarding__4faF8\",\"onboardingDark\":\"style_onboardingDark__3soCl\",\"onboardingTitle\":\"style_onboardingTitle__UDW4D\",\"progressBarText\":\"style_progressBarText__1oidi\",\"progressBar\":\"style_progressBar__2dDaO\",\"onboardingItem\":\"style_onboardingItem__23GdI\",\"onboardingItemDark\":\"style_onboardingItemDark__2YawN\",\"onboardingChecklist\":\"style_onboardingChecklist__3LZxz\",\"onboardingSubItem\":\"style_onboardingSubItem__3x33m\",\"delete\":\"style_delete__13eMl\"};","import axios from 'axios'\r\n\r\nexport const getDashboards = (id, params, cancelToken) => {\r\n return axios.get(`/dashboards/${id}`, { params, cancelToken })\r\n}\r\n\r\nexport const moveDashboards = (id, destId) => {\r\n return axios.patch(`/dashboards/${id}/move`, { dest_id: destId })\r\n}\r\n\r\nexport const activateDashboards = (id) => {\r\n return axios.patch(`/dashboards/${id}/activate`)\r\n}\r\n\r\nexport const deactivateDashboards = (id) => {\r\n return axios.patch(`/dashboards/${id}/deactivate`)\r\n}\r\n\r\nexport const watchlistsDashboardPost = (data) => {\r\n return axios.post(`/dashboards/watchlists`, data)\r\n}\r\n\r\nexport const watchlistsDashboardDelete = (id) => {\r\n return axios.delete(`/dashboards/watchlists/${id}`)\r\n}\r\n\r\nexport const watchlistsDashboardMove = (id, destId) => {\r\n return axios.patch(`/dashboards/watchlists/${id}/move`, { dest_id: destId })\r\n}\r\n\r\nexport const getAllDashboards = (requests) => {\r\n return axios.all(requests).then(axios.spread((...responses) => responses))\r\n}\r\n\r\nexport const getCaches = (names = [], cancelToken) => {\r\n const nameString = names.join(',')\r\n return axios.get('/caches', { cancelToken, params: { name: nameString } })\r\n}\r\n","import { createSelector } from 'reselect'\r\nimport _ from 'lodash'\r\nimport { parse } from 'query-string'\r\nimport { checkPermission, getModulePermissions } from './user/selectors'\r\n\r\nexport const initsSelector = (state) => state.inits\r\nexport const loadedInitSelector = createSelector(initsSelector, (inits) => inits.loadedInit)\r\nexport const settingsSelector = (state) => state.settings\r\nexport const mobileViewSelector = createSelector(\r\n settingsSelector,\r\n (settings) => settings.isMobileView,\r\n)\r\nconst selectFinance = (state) => state.finance\r\nexport const tabViewSelector = createSelector(settingsSelector, (settings) => settings.isTabView)\r\nexport const warehouseSelector = (state) => state.finance.warehouse\r\nexport const warehousesSelector = createSelector(\r\n warehouseSelector,\r\n (warehouse) => warehouse.warehouses,\r\n)\r\nexport const warehousesHasRoleSelector = createSelector(\r\n warehouseSelector,\r\n (warehouse) => warehouse.warehouses_has_role,\r\n)\r\n\r\nexport const taxesSelector = createSelector(\r\n (state) => state.finance.tax,\r\n (tax) => tax.taxes,\r\n)\r\nexport const activeTaxesSelector = createSelector(taxesSelector, (taxes) =>\r\n taxes.filter((tax) => tax.is_active),\r\n)\r\n\r\nexport const tutorialsSelector = (state) => state.tutorials\r\n\r\nexport const optionsSelector = createSelector(\r\n (state) => state.options,\r\n (options) => options.options,\r\n)\r\nexport const shippingCompSelector = createSelector(selectFinance, (finance) => finance.shippingComp)\r\nexport const shippingCompsSelector = createSelector(\r\n shippingCompSelector,\r\n (shippingComp) => shippingComp.shippingComps,\r\n)\r\n\r\nexport const productCategoriesSelector = createSelector(\r\n selectFinance,\r\n (finance) => finance.productCategories,\r\n)\r\nexport const translationSelector = (state) => state.translation\r\nexport const titleSelector = createSelector(\r\n translationSelector,\r\n (__, name) => name,\r\n (translation, name) => (translation.menu ? translation.menu[name] : ''),\r\n)\r\nexport const reportTitleSelector = createSelector(\r\n translationSelector,\r\n (__, name) => name,\r\n (translation, name) => (translation.reportmenu ? translation.reportmenu[name] : ''),\r\n)\r\nexport const termTitleSelector = createSelector(\r\n translationSelector,\r\n (translation) => translation.term,\r\n)\r\nexport const financeConfigSelector = createSelector(selectFinance, (finance) => finance.config)\r\nexport const bankTransStatusSelector = createSelector(\r\n financeConfigSelector,\r\n (config) => config.bank_tran_status,\r\n)\r\nexport const contactTypeSelector = createSelector(\r\n financeConfigSelector,\r\n (config) => config.contact_type,\r\n)\r\nexport const contactSelector = createSelector(\r\n financeConfigSelector,\r\n (config) => config.contact,\r\n)\r\nexport const desktopLayoutSelector = createSelector(\r\n [mobileViewSelector, tabViewSelector],\r\n (isMobileView, isTabView) => !isMobileView && !isTabView,\r\n)\r\n\r\nexport const auditModalSelector = createSelector(selectFinance, (finance) => finance.auditModal)\r\nexport const accountTransReportSelector = createSelector(\r\n selectFinance,\r\n (finance) => finance.accountTransactionReport,\r\n)\r\nexport const locationSelector = createSelector(\r\n (state) => state.router,\r\n (router) => router.location,\r\n)\r\nexport const parseLocationSearchSelector = createSelector(locationSelector, (location) =>\r\n parse(location.search),\r\n)\r\nexport const termSelector = createSelector(selectFinance, (finance) => finance.expenseTerm)\r\nexport const findTermSelector = createSelector(\r\n termSelector,\r\n (__, id) => id,\r\n (terms, id) => terms.expenseTerms.find((tax) => tax.id === id),\r\n)\r\nexport const activeTermsSelector = createSelector(termSelector, (terms) =>\r\n terms.expenseTerms.filter((term) => term.is_active),\r\n)\r\nexport const countActiveTermSelector = createSelector(activeTermsSelector, (terms) => terms.length)\r\nexport const canDeletedTermsSelector = createSelector(\r\n termSelector,\r\n (term) => term.canDeletedExpenseTerms,\r\n)\r\nexport const firstTermSelector = createSelector(activeTermsSelector, (terms) => _.first(terms))\r\nexport const firstWarehouseSelector = createSelector(warehousesHasRoleSelector, (warehouses) => {\r\n const unArchiveWarehouses = (warehouses || []).filter((row) => row.is_archive !== 1)\r\n if (Array.isArray(unArchiveWarehouses) && unArchiveWarehouses.length > 0) {\r\n return unArchiveWarehouses[0]\r\n }\r\n\r\n return {}\r\n})\r\nexport const unitsSelector = createSelector(selectFinance, (finance) => finance.unit.units)\r\nexport const broadcastSelector = (state) => state.broadcast\r\nexport const showNPSSelector = (state) => state.show_nps\r\nexport const billingSelector = (state) => state.billing\r\n\r\nexport const billingPosSelector = (state) => state.billingPos\r\n\r\nexport const userSelector = (state) => state.user\r\nexport const loginFormSelector = (state) => state.loginForm\r\nconst selectCompanies = (state) => state.companies\r\nexport const companiesSelector = createSelector(selectCompanies, (companies) => companies.companies)\r\nexport const selectedEndpointSelector = createSelector(\r\n selectCompanies,\r\n (companies) => companies.selectedEndpoint,\r\n)\r\nexport const hiddenFeatureSelector = createSelector(\r\n billingSelector,\r\n (billing) => billing.hidden_feature,\r\n)\r\nexport const contactGroupsSelector = createSelector(\r\n selectFinance,\r\n (finance) => finance.contactGroups,\r\n)\r\nexport const defaultMessageSelector = (state) => state.defaultMessage\r\nexport const customColumnSelector = (state) => state.customColumn\r\nexport const hrisSelector = (state) => state.show_hr_addon\r\nexport const multiCurrencySelector = (state) => state.multiCurrency\r\nexport const contactIdCardTypeSelector = createSelector(\r\n selectFinance,\r\n (finance) => finance.idCardTypes,\r\n)\r\nexport const optionSelector = createSelector(optionsSelector, (options) => options.option)\r\nexport const darkModeSelector = createSelector(optionsSelector, (options) => options.dark_mode)\r\nexport const companySelector = (state) => state.companies\r\nexport const bankAccountsSelector = createSelector(\r\n selectFinance,\r\n (finance) => finance.bankAccounts || [],\r\n)\r\n\r\nexport const tempTransKeySelector = createSelector(\r\n parseLocationSearchSelector,\r\n (searchs) => searchs?.tempTransKey || '',\r\n)\r\nexport const websiteIdSelector = createSelector(\r\n selectCompanies,\r\n (companies) => companies.website_id,\r\n)\r\nexport const companyLogoSelector = createSelector(\r\n optionsSelector,\r\n (options) => options.property_logo,\r\n)\r\nexport const companyDetailsSelector = createSelector(optionsSelector, (options) => {\r\n const detail = {\r\n property_name: options.property_name,\r\n property_email: options.property_email,\r\n property_phone: options.property_phone,\r\n property_address: options.property_address,\r\n property_address_delivery: options.property_address_delivery,\r\n property_country_id: options.property_country_id,\r\n property_npwp: options.property_npwp,\r\n }\r\n return detail\r\n})\r\n\r\nexport const productCategoriesHasRolesSelector = createSelector(\r\n selectFinance,\r\n (finance) => finance.product_categories_has_role,\r\n)\r\nexport const financeApprovalSelector = createSelector(\r\n selectFinance,\r\n (finance) => finance.financeApproval,\r\n)\r\nexport const paymentConnectProvidersSelector = createSelector(\r\n selectFinance,\r\n (finance) => finance.paymentConnectProviders,\r\n)\r\nexport const maintenanceSelector = (state) => state.maintenance\r\nexport const maxCompaniesSelector = (state) => state.max_companies\r\nexport const translationReportmenuSelector = createSelector(\r\n translationSelector,\r\n (translation) => translation.reportmenu,\r\n)\r\n\r\nexport const accountCategoriesSelector = createSelector(\r\n selectFinance,\r\n (finance) => finance.accountCategories,\r\n)\r\n\r\nexport const cashBankAccountCategoriesSelector = createSelector(\r\n accountCategoriesSelector,\r\n (accountCategories) => {\r\n const CASH_BANK = 1\r\n const CREDIT_CARD = 17\r\n return accountCategories.filter((row) => _.includes([CASH_BANK, CREDIT_CARD], row.id))\r\n },\r\n)\r\n\r\nexport const isMultiCurrencySelector = createSelector(\r\n optionsSelector,\r\n (options) => options.multi_currency === 1,\r\n)\r\nconst selectCurrencies = (state) => state.multiCurrency.currencies\r\nexport const baseMultiCurrencySelector = createSelector(\r\n [selectCurrencies, optionsSelector],\r\n (currencies, options) => {\r\n if (!Array.isArray(currencies) && options.multi_currency !== 1) {\r\n return {}\r\n }\r\n const findCurrency = currencies.find((item) => item.id === options.property_currency_id)\r\n return findCurrency || {}\r\n },\r\n)\r\n\r\nexport const transactionFeesSelector = createSelector(\r\n selectFinance,\r\n (finance) => finance.fees || [],\r\n)\r\nexport const makeTransactionFeeFilteredResults = () =>\r\n createSelector([transactionFeesSelector], (searchResults) => (search) => {\r\n return searchResults.filter((result) =>\r\n result.name?.toLowerCase()?.includes(search.toLowerCase()),\r\n )\r\n })\r\n\r\nexport const sortByCashBankSelector = createSelector(\r\n optionsSelector,\r\n (options) => options.bank_account_sort_by,\r\n)\r\nexport const dashboardSelector = createSelector(selectFinance, (finance) => finance.dashboard || [])\r\nexport const outletsSelector = (state) => state.outlets\r\n\r\nexport const relatedReportSelector = createSelector(\r\n (state) => state.user.menus?.related_report_menu,\r\n (__, name) => name,\r\n (relatedReportMenu, name) => relatedReportMenu?.[name] || [],\r\n)\r\n\r\nexport const makeCashBanksResults = () =>\r\n createSelector(\r\n [bankAccountsSelector, dashboardSelector, optionsSelector, multiCurrencySelector],\r\n (bankAccounts, dashboard, options, multiCurrency) => (search) => {\r\n const {\r\n bank_account_sort_by: bankAccountSortBy,\r\n multi_currency: multiCurrencyOption,\r\n property_currency_symbol: propertyCurrencySymbol,\r\n } = options\r\n const currencies = multiCurrency?.currencies || []\r\n const isMultiCurrency = multiCurrencyOption === 1\r\n const searchToLowerCase = search.toLowerCase()\r\n // Pertama urutkan bank accounts berdasarkan pengaturan di option\r\n const sortedBankAccounts = _.sortBy(bankAccounts, bankAccountSortBy || 'ref_code')\r\n // Kemudian cari berdasarkan parameter search dan diambil dasboard id nya\r\n const data = sortedBankAccounts\r\n .filter((result) => {\r\n return (\r\n result.name?.toLowerCase()?.includes(searchToLowerCase) ||\r\n result.ref_code?.toLowerCase()?.includes(searchToLowerCase)\r\n )\r\n })\r\n .map((row) => {\r\n // Selanjutnya dicarikan datanya ke dasboard\r\n const findData = dashboard.find((item) => item.id === row.dashboard_id)\r\n const newRow = {\r\n ...row,\r\n currencySymbol: propertyCurrencySymbol,\r\n closing_balance: findData?.data?.closing_balance || 0,\r\n statement_balance: findData?.data?.statement_balance || 0,\r\n graph: findData?.data?.graph || {},\r\n loaded: findData?.loaded || false,\r\n daterange: findData?.daterange || '',\r\n lastCache: findData?.lastCache || 0,\r\n cache: findData?.cache || '',\r\n }\r\n if (isMultiCurrency && !!row.currency_id) {\r\n const findMultiCurrency = currencies.find((currency) => currency.id === row.currency_id)\r\n newRow.currencySymbol = findMultiCurrency?.symbol || propertyCurrencySymbol\r\n }\r\n return newRow\r\n })\r\n const isLoaded = _.some(data, (item) => item.loaded === true)\r\n const newData = { data, bankAccountSortBy, isMultiCurrency, isLoaded }\r\n\r\n return newData\r\n },\r\n )\r\n\r\nexport const makeSelectPermission = () => {\r\n const permissions = createSelector(\r\n [(state) => state, (state, resource) => resource, (state, recursive) => recursive],\r\n (state, resource, recursive) => getModulePermissions(state, resource, recursive),\r\n )\r\n return permissions\r\n}\r\n\r\nexport const makeCheckPermission = () => {\r\n const granted = createSelector(\r\n [(state) => state, (state, permission) => permission],\r\n (state, permission) => checkPermission(state, permission),\r\n )\r\n return granted\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\nimport { getOnce } from 'utils/helper'\r\n\r\nexport const getCanDeletedFinanceExpenseTerm = () => {\r\n return axios.get('/finance/expenses/terms/canBeDeleted')\r\n}\r\n\r\nexport const addFinanceExpenseTerm = (data) => {\r\n return axios.post('/finance/expenses/terms', data)\r\n}\r\n\r\nexport const editFinanceExpenseTerm = (data) => {\r\n return axios.put(`/finance/expenses/terms/${data.id}`, data)\r\n}\r\n\r\nexport const deleteFinanceExpenseTerm = (data) => {\r\n return axios.delete(`/finance/expenses/terms/${data.id}`)\r\n}\r\n\r\nexport const moveFinanceExpenseTerm = (srcId, destId) => {\r\n return axios.patch(`/finance/expenses/terms/${srcId}/move`, { dest_id: destId })\r\n}\r\n\r\nexport const activateFinanceExpenseTerm = (id) => {\r\n return axios.patch(`/finance/expenses/terms/${id}/activate`)\r\n}\r\n\r\nexport const deactivateFinanceExpenseTerm = (id) => {\r\n return axios.patch(`/finance/expenses/terms/${id}/deactivate`)\r\n}\r\n\r\nexport const getSuggestionFinanceExpenseTerm = (params, options) => {\r\n const query = stringify(params)\r\n\r\n return getOnce(`/finance/expenses/terms/suggestionPerPage?${query}`, options)\r\n}\r\n","import axios from 'axios'\r\n\r\nexport const addShippingComp = (data) => {\r\n return axios.post('/finance/shippingComps', data)\r\n}\r\n\r\nexport const editShippingComp = (data) => {\r\n return axios.put(`/finance/shippingComps/${data.id}`, data)\r\n}\r\n\r\nexport const deleteShippingComp = (data) => {\r\n return axios.delete(`/finance/shippingComps/${data.id}`)\r\n}\r\n\r\nexport const moveShippingComp = (srcId, destId) => {\r\n return axios.patch(`/finance/shippingComps/${srcId}/move`, { dest_id: destId })\r\n}\r\n\r\nexport const activateShippingComp = (id) => {\r\n return axios.patch(`/finance/shippingComps/${id}/activate`)\r\n}\r\n\r\nexport const deactivateShippingComp = (id) => {\r\n return axios.patch(`/finance/shippingComps/${id}/deactivate`)\r\n}\r\n\r\nexport const getCanDeletedShippingComp = () => {\r\n return axios.get('/finance/shippingComps/canBeDeleted')\r\n}\r\n","import axios from 'axios'\r\n\r\nexport const getCurrencies = (params) => {\r\n return axios.get('/finance/currencies', { params })\r\n}\r\n\r\nexport const getTenantCurrencies = (params) => {\r\n return axios.get('/finance/tenantCurrencies', { params })\r\n}\r\n\r\nexport const addTenantCurrency = (data) => {\r\n return axios.post('/finance/tenantCurrencies', data)\r\n}\r\n\r\nexport const activateTenantCurrency = (data) => {\r\n return axios.post('/finance/tenantCurrencies/activate', data)\r\n}\r\n\r\nexport const deactivateTenantCurrency = (data) => {\r\n return axios.post('/finance/tenantCurrencies/deactivate', data)\r\n}\r\n\r\nexport const editTenantCurrencySource = (id, data) => {\r\n return axios.put(`/finance/tenantCurrencies/${id}`, data)\r\n}\r\n\r\nexport const deleteTenantCurrency = (id) => {\r\n return axios.delete(`/finance/tenantCurrencies/${id}`)\r\n}\r\n\r\nexport const getTenantCurrencyRate = (id, params) => {\r\n return axios.get(`/finance/tenantCurrencies/${id}/rate`, { params })\r\n}\r\n\r\nexport const editTenantCurrencyRate = (id, data) => {\r\n return axios.put(`/finance/tenantCurrencies/${id}/rate`, data)\r\n}\r\n\r\nexport const getCurrencyRateSource = (id, params) => {\r\n return axios.get(`/finance/tenantCurrencies/${id}/rateAllSource`, { params })\r\n}\r\n\r\nexport const getTenantCurrencyRates = (params) => {\r\n return axios.get('/finance/tenantCurrencies/rates', { params })\r\n}\r\n\r\nexport const editBaseCurrency = (data) => {\r\n return axios.put('/finance/tenantCurrencies/base', data)\r\n}\r\n","import { message } from 'antd'\r\nimport { useInfiniteQuery, useMutation, useQuery } from 'react-query'\r\n\r\nimport {\r\n addFinanceAccount,\r\n addFinanceAccountRoles,\r\n executeImportFinanceAccount,\r\n getFinanceAccount,\r\n getFinanceAccountRoles,\r\n getFinanceAccounts,\r\n getFinanceAccountsStats,\r\n getSuggestionFinanceAccount,\r\n getSuggestionFinanceParentAccountWithPagination,\r\n uploadImportFinanceAccount,\r\n} from 'utils/apis/financeAccount'\r\n\r\nexport const useAccountsSuggestion = (payload, apiOptions, RQOptions) => {\r\n return useQuery(\r\n ['accounts-suggestion', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getSuggestionFinanceAccount(payload, apiOptions)\r\n return data\r\n },\r\n {\r\n ...RQOptions,\r\n keepPreviousData: true,\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport const useInfiniteAccountSuggestion = (payload, withParent, extraQueryKey, options = {}) => {\r\n const request = withParent\r\n ? getSuggestionFinanceParentAccountWithPagination\r\n : getSuggestionFinanceAccount\r\n const queryKey = withParent\r\n ? 'infinite/accounts/parent/suggestion'\r\n : 'infinite/accounts/suggestion'\r\n\r\n return useInfiniteQuery(\r\n [queryKey, payload, extraQueryKey],\r\n async ({ pageParam = 0 }) => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await request({ page: pageParam, ...payload })\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n getNextPageParam: (lastPage) => {\r\n if (!lastPage) {\r\n return undefined\r\n }\r\n return lastPage.current_page < lastPage.last_page ? lastPage.current_page + 1 : undefined\r\n },\r\n onError: (error) => message.error(error.message || 'Failed to load data from server!'),\r\n keepPreviousData: true,\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useAccounts = ({ payload = {}, enabled = false }) => {\r\n return useQuery(\r\n ['account', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinanceAccounts(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n keepPreviousData: true,\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport const useAccountsStats = ({ payload = {}, options }) => {\r\n return useQuery(\r\n ['accounts-stats', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinanceAccountsStats(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport function useAccountDetail({ id, options, extraQueryKey }) {\r\n return useQuery(\r\n ['account_detail', id, extraQueryKey],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getFinanceAccount(id)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n options,\r\n )\r\n}\r\n\r\nexport const useAccount = ({ id = null, enabled = false, onSuccess }) => {\r\n return useQuery(\r\n ['account', id],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinanceAccount(id)\r\n return data\r\n },\r\n {\r\n enabled,\r\n keepPreviousData: true,\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n onSuccess,\r\n },\r\n )\r\n}\r\n\r\nexport const useAccountRoles = (payload, options = {}) => {\r\n return useQuery(\r\n [`/accounts/${payload.id}/roles`],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinanceAccountRoles(payload.id)\r\n return data\r\n },\r\n {\r\n enabled: !!payload.id,\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useAddAccountRoles = () => {\r\n return useMutation((payload) => addFinanceAccountRoles(payload.id, payload))\r\n}\r\n\r\nexport const useAddAccount = () => {\r\n return useMutation((payload) => addFinanceAccount(payload))\r\n}\r\n\r\nexport const useUploadImportFinanceAccountMutation = () => {\r\n return useMutation(uploadImportFinanceAccount)\r\n}\r\n\r\nexport const useExecuteImportFinanceAccountMutation = () => {\r\n return useMutation(executeImportFinanceAccount)\r\n}\r\n","import { message } from 'antd'\r\nimport { useMutation, useQuery } from 'react-query'\r\n\r\nimport { getFinanceBankReconciles, inputMassDeleteFinanceBank } from 'utils/apis'\r\n// import { massReconcileFinanceBank } from 'utils/apis'\r\n\r\nexport const useBankReconciles = ({ payload = {}, enabled = false }) => {\r\n return useQuery(\r\n ['bankReconcile', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinanceBankReconciles(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n keepPreviousData: true,\r\n onError: (error) =>\r\n message.error((error && error.message) || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport const useMassReconcileInfo = ({\r\n intl,\r\n setMassReconciliationInfo,\r\n setLoadingMassReconciliation,\r\n}) => {\r\n return useMutation(inputMassDeleteFinanceBank, {\r\n onSuccess(res) {\r\n if (res.data.success) {\r\n setMassReconciliationInfo(res.data.data)\r\n setLoadingMassReconciliation(false)\r\n } else {\r\n message.error(message.data.message)\r\n setLoadingMassReconciliation(false)\r\n }\r\n },\r\n onError() {\r\n message.error(intl.formatMessage({ id: 'massDelete.cannot_mass_delete' }))\r\n setLoadingMassReconciliation(false)\r\n },\r\n })\r\n}\r\n\r\n// export const useMassDeleteReconcile = ({ intl, setMassDeleteInfo, setLoadingMassDelete }) => {\r\n// return useMutation(massReconcileFinanceBank, {\r\n// onSuccess(res) {\r\n// if (res.data.success) {\r\n// setMassDeleteInfo(res.data.data)\r\n// setLoadingMassDelete(false)\r\n// } else {\r\n// message.error(message.data.message)\r\n// setLoadingMassDelete(false)\r\n// }\r\n// },\r\n// onError() {\r\n// message.error(intl.formatMessage({ id: 'massDelete.cannot_mass_delete' }))\r\n// setLoadingMassDelete(false)\r\n// },\r\n// })\r\n// }\r\n","import { message } from 'antd'\r\nimport { useMutation, useQuery } from 'react-query'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\n\r\nimport { getFinanceBankStatements, multiBankReconciliation } from 'utils/apis'\r\nimport { optionsSelector } from 'redux/selectors'\r\nimport { editOption } from 'redux/options/actions'\r\n\r\nexport const useBankStatements = ({ payload = {}, enabled = false, savePerPage = true }) => {\r\n const options = useSelector(optionsSelector)\r\n const dispatch = useDispatch()\r\n\r\n // prevent user that already setting per_page > 100\r\n if (payload.per_page > 100) {\r\n payload.per_page = 100\r\n }\r\n\r\n if (savePerPage && payload.per_page && payload.per_page !== options.banks_per_page_default) {\r\n dispatch(\r\n editOption({\r\n banks_per_page_default: payload.per_page,\r\n }),\r\n )\r\n }\r\n\r\n return useQuery(\r\n ['bankStatement', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinanceBankStatements(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n onError: (error) => {\r\n message.error(error?.message || 'Failed to load data from server!')\r\n },\r\n },\r\n )\r\n}\r\n\r\nexport const useMultiBankReconciliation = () => {\r\n return useMutation((payload) => multiBankReconciliation(payload))\r\n}\r\n","import { message } from 'antd'\r\nimport { useMutation, useQuery } from 'react-query'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\n\r\nimport {\r\n deleteOnAddFinanceBankTransAttachment,\r\n executeImportFinanceBankTransfer,\r\n getFinanceBankTranses,\r\n getRecurringBankTranses,\r\n invoicePaymentFinanceBankTrans,\r\n purchasePaymentFinanceBankTrans,\r\n uploadImportFinanceBankTransfer,\r\n} from 'utils/apis'\r\nimport { optionsSelector } from 'redux/selectors'\r\nimport { editOption } from 'redux/options/actions'\r\n\r\nexport const useBankTranses = ({ payload = {}, enabled = false }) => {\r\n const options = useSelector(optionsSelector)\r\n const dispatch = useDispatch()\r\n\r\n // prevent user that already setting per_page > 100\r\n if (payload.per_page > 100) {\r\n payload.per_page = 100\r\n }\r\n\r\n if (payload.per_page && payload.per_page !== options.banks_per_page_default) {\r\n dispatch(\r\n editOption({\r\n banks_per_page_default: payload.per_page > 100 ? 100 : payload.per_page,\r\n }),\r\n )\r\n }\r\n\r\n return useQuery(\r\n ['bankTrans', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinanceBankTranses(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n onError: (error) => {\r\n message.error(error?.message || 'Failed to load data from server!')\r\n },\r\n },\r\n )\r\n}\r\n\r\nexport const useRecurringBankTranses = ({ payload = {}, enabled = false }) => {\r\n return useQuery(\r\n ['bankTrans', 'recurring', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getRecurringBankTranses(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n keepPreviousData: true,\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport const useInvoicePayment = () => {\r\n return useMutation((payload) => invoicePaymentFinanceBankTrans(payload))\r\n}\r\n\r\nexport const usePurchaseInvoicePayment = () => {\r\n return useMutation((payload) => purchasePaymentFinanceBankTrans(payload))\r\n}\r\n\r\nexport const useBankTransDeleteAttachment = () => {\r\n return useMutation((payload) => deleteOnAddFinanceBankTransAttachment(payload))\r\n}\r\n\r\nexport const useUploadImportFinanceBankTransfer = () => {\r\n return useMutation((payload) => uploadImportFinanceBankTransfer(payload))\r\n}\r\n\r\nexport const useExecuteImportFinanceBankTransfer = () => {\r\n return useMutation((payload) => executeImportFinanceBankTransfer(payload))\r\n}\r\n","import { message } from 'antd'\r\nimport { useMutation, useQuery, useQueryClient } from 'react-query'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\n\r\nimport {\r\n approveFinanceExpense,\r\n deleteFinanceExpense,\r\n deleteOnAddFinanceBankTransAttachment,\r\n expensePaymentFinanceBankTrans,\r\n getFinanceExpense,\r\n getFinanceExpenses,\r\n getFinanceExpensesAccountChart,\r\n getFinanceExpensesContactChart,\r\n getFinanceExpensesOverview,\r\n getRecurringExpenses,\r\n rejectFinanceExpense,\r\n revertApprovalFinanceExpense,\r\n} from 'utils/apis'\r\nimport { optionsSelector } from 'redux/selectors'\r\nimport { editOption } from 'redux/options/actions'\r\n\r\nexport const useExpenses = ({ payload = {}, enabled = false }) => {\r\n const options = useSelector(optionsSelector)\r\n const dispatch = useDispatch()\r\n\r\n // prevent user that already setting per_page > 100\r\n if (payload.per_page > 100) {\r\n payload.per_page = 100\r\n }\r\n\r\n if (payload.per_page && payload.per_page !== options.expenses_per_page_default) {\r\n dispatch(\r\n editOption({\r\n expenses_per_page_default: payload.per_page,\r\n }),\r\n )\r\n }\r\n\r\n return useQuery(\r\n ['expense', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinanceExpenses(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n onError: (error) => {\r\n message.error(error?.message || 'Failed to load data from server!')\r\n },\r\n },\r\n )\r\n}\r\n\r\nexport const useRecurringExpenses = ({ payload = {}, enabled = false }) => {\r\n return useQuery(\r\n ['expense', 'recurring', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getRecurringExpenses(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n keepPreviousData: true,\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport const useExpenseOverview = ({ payload = {}, enabled = false }) => {\r\n return useQuery(\r\n ['expense', 'overview', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinanceExpensesOverview(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n keepPreviousData: true,\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport function useExpense({ id, enabled = false }) {\r\n return useQuery(\r\n ['expense', id],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getFinanceExpense(id)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n enabled: !!id && enabled,\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport function useExpenseAccountChart(params = {}, options = {}) {\r\n return useQuery(\r\n ['expenseAccountChart', params],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getFinanceExpensesAccountChart(params)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport function useExpenseContactChart(params = {}, options = {}) {\r\n return useQuery(\r\n ['expenseContactChart', params],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getFinanceExpensesContactChart(params)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useApproveExpense = () => {\r\n const queryClient = useQueryClient()\r\n return useMutation(({ id }) => approveFinanceExpense({ id }), {\r\n onSuccess: (response) => {\r\n if (response.data.success) {\r\n message.success(response.data.message)\r\n queryClient.invalidateQueries(['expense', `${response.data.data.id}`])\r\n } else {\r\n message.error(response.data.message)\r\n }\r\n },\r\n onError: (error) => message.error(error.data.message),\r\n })\r\n}\r\n\r\nexport const useRejectExpense = () => {\r\n const queryClient = useQueryClient()\r\n return useMutation((payload) => rejectFinanceExpense(payload), {\r\n onSuccess: (response) => {\r\n if (response.data.success) {\r\n message.success(response.data.message)\r\n queryClient.invalidateQueries(['expense', `${response.data.data.id}`])\r\n } else {\r\n message.error(response.data.message)\r\n }\r\n },\r\n onError: (error) => message.error(error.data.message),\r\n })\r\n}\r\n\r\nexport const useRevertApprovalFinanceExpense = () => {\r\n const queryClient = useQueryClient()\r\n return useMutation(({ id }) => revertApprovalFinanceExpense({ id }), {\r\n onSuccess: (response) => {\r\n if (response.data.success) {\r\n message.success(response.data.message)\r\n queryClient.invalidateQueries(['expense', `${response.data.data.id}`])\r\n } else {\r\n message.error(response.data.message)\r\n }\r\n },\r\n onError: (error) => message.error(error.data.message),\r\n })\r\n}\r\n\r\nexport const useDeleteExpense = () => {\r\n return useMutation((payload) => deleteFinanceExpense(payload.id))\r\n}\r\nexport const useExpensePaymentFinanceBankTrans = () => {\r\n return useMutation((data) => expensePaymentFinanceBankTrans(data))\r\n}\r\nexport const useDeleteOnAddFinanceBankTransAttachment = () => {\r\n return useMutation((url) => deleteOnAddFinanceBankTransAttachment(url))\r\n}\r\n","import { message } from 'antd'\r\nimport { useMutation, useQuery } from 'react-query'\r\n\r\nimport {\r\n deleteFinanceFixedAsset,\r\n executeImportFinanceFixedAsset,\r\n getFinanceFixedAsset,\r\n getFinanceFixedAssetAccumulatedDepreciation,\r\n getFinanceFixedAssets,\r\n getFinanceFixedAssetsAssetDisposalStats,\r\n getFinanceFixedAssetsDepreciationStats,\r\n getFinanceFixedAssetsTopAcquisitionPriceStats,\r\n getFinanceFixedAssetsTopAssetValueStats,\r\n getFinanceFixedAssetValueStats,\r\n revertDisposeFinanceFixedAsset,\r\n rollbackDepreciationFinanceFixedAsset,\r\n uploadImportFinanceFixedAsset,\r\n} from 'utils/apis'\r\n\r\nexport const useFixedAssets = ({ payload = {}, enabled = false }) => {\r\n return useQuery(\r\n ['fixedAsset', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinanceFixedAssets(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n onError: (error) => message.error(error?.data?.message || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport const useFixedAssetAccumulatedDepreciation = (params = {}, options = {}) => {\r\n return useQuery(\r\n ['fixedAssetAccumulatedDepreciation', params],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinanceFixedAssetAccumulatedDepreciation(params)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useFixedAssetsTopAcquisitionPriceStats = ({ options = {} } = {}) => {\r\n return useQuery(\r\n ['fixedAssetTopAcquisitionPriceStats'],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinanceFixedAssetsTopAcquisitionPriceStats()\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useFixedAssetsTopAssetValueStats = ({ options = {} } = {}) => {\r\n return useQuery(\r\n ['fixedAssetTopAssetValueStats'],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinanceFixedAssetsTopAssetValueStats()\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useFixedAssetsAssetValueStats = ({ payload = {}, options = {} } = {}) => {\r\n return useQuery(\r\n ['fixedAssetAssetValueStats', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinanceFixedAssetValueStats(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useFixedAssetsAssetsDepreciationStats = ({ payload = {}, options = {} } = {}) => {\r\n return useQuery(\r\n ['fixedAssetAssetsDepreciationStats', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinanceFixedAssetsDepreciationStats(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useFixedAssetsAssetDisposalStats = ({ payload = {}, options = {} } = {}) => {\r\n return useQuery(\r\n ['fixedAssetAssetDisposalStats', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinanceFixedAssetsAssetDisposalStats(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\n// export function useFixedAsset({ id, enabled = false }) {\r\n// return useQuery(\r\n// ['fixedAsset', id],\r\n// async () => {\r\n// let response\r\n// try {\r\n// const {\r\n// data: { data },\r\n// } = await getFinanceFixedAsset(id)\r\n// response = data\r\n// } catch (error) {\r\n// throw new Error('Failed to load data from server!')\r\n// }\r\n// return response\r\n// },\r\n// {\r\n// enabled: !!id && enabled,\r\n// onError: (error) =>\r\n// message.error((error && error.message) || 'Failed to load data from server!'),\r\n// },\r\n// )\r\n// }\r\n\r\nexport const useUploadImportFinanceFixedAssetMutation = () => {\r\n return useMutation(uploadImportFinanceFixedAsset)\r\n}\r\n\r\nexport const useExecuteImportFinanceFixedAssetMutation = () => {\r\n return useMutation(executeImportFinanceFixedAsset)\r\n}\r\n\r\nexport function useFixedAsset({ id, enabled = false }) {\r\n return useQuery(\r\n ['fixedAsset', id],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getFinanceFixedAsset(id)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n enabled: !!id && enabled,\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport const useDeleteFixedAsset = () => {\r\n return useMutation((id) => deleteFinanceFixedAsset(id))\r\n}\r\nexport const useRevertDisposeFinanceFixedAsset = () => {\r\n return useMutation((id) => revertDisposeFinanceFixedAsset(id))\r\n}\r\nexport const useRollbackDepreciationFinanceFixedAsset = () => {\r\n return useMutation((id) => rollbackDepreciationFinanceFixedAsset(id))\r\n}\r\n","import { message } from 'antd'\r\nimport { useMutation, useQuery } from 'react-query'\r\n\r\nimport {\r\n executeImportFinanceManualJournal,\r\n getRecurringManualJournals,\r\n uploadImportFinanceManualJournal,\r\n} from 'utils/apis'\r\n\r\nexport const useRecurringManualJournals = ({ payload = {}, enabled = false }) => {\r\n return useQuery(\r\n ['manualJournal', 'recurring', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getRecurringManualJournals(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n keepPreviousData: true,\r\n onError: (error) =>\r\n message.error((error && error.message) || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport const useUploadImportFinanceManualJournalMutation = () => {\r\n return useMutation(uploadImportFinanceManualJournal)\r\n}\r\n\r\nexport const useExecuteImportFinanceManualJournalMutation = () => {\r\n return useMutation(executeImportFinanceManualJournal)\r\n}\r\n","import { useQuery } from 'react-query'\r\nimport { message } from 'antd'\r\n\r\nimport { getFinanceInvoiceOverview } from 'utils/apis'\r\n\r\nexport const useSalesOverview = ({ payload = {}, enabled = false }) => {\r\n return useQuery(\r\n ['salesOverview', payload],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getFinanceInvoiceOverview(payload)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n enabled,\r\n onError: (error) =>\r\n message.error((error && error.message) || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n","import { message } from 'antd'\r\nimport { useMutation, useQuery } from 'react-query'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\n\r\nimport {\r\n getFinanceDelivery,\r\n getFinanceDeliverys,\r\n getMinTransDateFinanceDelivery,\r\n inputMassCreateFinanceDelivery,\r\n} from 'utils/apis'\r\nimport { optionsSelector } from 'redux/selectors'\r\nimport { editOption } from 'redux/options/actions'\r\n\r\nexport const useDeliveries = ({\r\n payload = {},\r\n enabled = false,\r\n saveDataPagination = true,\r\n options = {},\r\n}) => {\r\n const optionsState = useSelector(optionsSelector)\r\n const dispatch = useDispatch()\r\n\r\n if (saveDataPagination) {\r\n // prevent user that already setting per_page > 100\r\n if (payload.per_page > 100) {\r\n payload.per_page = 100\r\n }\r\n\r\n if (payload.per_page && payload.per_page !== optionsState.sales_per_page_default) {\r\n dispatch(\r\n editOption({\r\n sales_per_page_default: payload.per_page,\r\n }),\r\n )\r\n }\r\n }\r\n\r\n return useQuery(\r\n ['delivery', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinanceDeliverys(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n onError: (error) => {\r\n message.error(error?.message || 'Failed to load data from server!')\r\n },\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport function useDelivery({ id, payload = {}, enabled = false }) {\r\n return useQuery(\r\n ['delivery', id, payload],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getFinanceDelivery(id, payload)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n enabled: !!id && enabled,\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport const useGetMinTransDateFinanceDeliveryMutation = () => {\r\n return useMutation((payload) =>\r\n getMinTransDateFinanceDelivery({ ...payload, trans_type: 'delivery' }),\r\n )\r\n}\r\n\r\nexport const useInputMassCreateFinanceDeliveryMutation = () => {\r\n return useMutation(inputMassCreateFinanceDelivery)\r\n}\r\n","import { message } from 'antd'\r\nimport { useMutation, useQuery, useQueryClient } from 'react-query'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\n\r\nimport {\r\n approveFinanceInvoice,\r\n changeFinanceInvoiceTaxNumber,\r\n deleteFinanceInvoice,\r\n executeImportFinanceInvoiceRecurring,\r\n executeImportFinanceInvoiceReturn,\r\n executeImportStatusFinanceInvoice,\r\n getFinanceInvoice,\r\n getFinanceInvoicePublicUrl,\r\n getFinanceInvoices,\r\n getMinTransDateFinanceInvoice,\r\n getRecurringInvoices,\r\n inputMassCreateFinanceInvoice,\r\n rejectFinanceInvoice,\r\n revertApprovalFinanceInvoice,\r\n unvoidFinanceInvoice,\r\n uploadImportFinanceInvoiceRecurring,\r\n uploadImportFinanceInvoiceReturn,\r\n uploadImportStatusFinanceInvoice,\r\n voidFinanceInvoice,\r\n} from 'utils/apis'\r\nimport { optionsSelector } from 'redux/selectors'\r\nimport { editOption } from 'redux/options/actions'\r\n\r\nexport const useInvoices = ({\r\n payload = {},\r\n additionalQueryKey,\r\n enabled = false,\r\n saveDataPagination = true,\r\n options = {},\r\n}) => {\r\n const optionsState = useSelector(optionsSelector)\r\n const dispatch = useDispatch()\r\n\r\n if (saveDataPagination) {\r\n // prevent user that already setting per_page > 100\r\n if (payload.per_page > 100) {\r\n payload.per_page = 100\r\n }\r\n if (payload.per_page && payload.per_page !== optionsState.sales_per_page_default) {\r\n dispatch(\r\n editOption({\r\n sales_per_page_default: payload.per_page,\r\n }),\r\n )\r\n }\r\n }\r\n\r\n return useQuery(\r\n ['invoice', payload, additionalQueryKey],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinanceInvoices({ ...payload, per_page: payload.per_page })\r\n return data\r\n },\r\n {\r\n enabled,\r\n onError: (error) => {\r\n message.error(error?.message || 'Failed to load data from server!')\r\n },\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useRecurringInvoices = ({ payload = {}, enabled = false }) => {\r\n return useQuery(\r\n ['invoice', 'recurring', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getRecurringInvoices(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n keepPreviousData: true,\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport function useInvoice({ id, payload = {}, enabled = false }) {\r\n return useQuery(\r\n ['invoice', id, payload],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getFinanceInvoice(id, payload)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n enabled: !!id && enabled,\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport function useInvoicePublicUrl(id, options = {}) {\r\n return useQuery(\r\n ['invoicePublicUrl', id],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getFinanceInvoicePublicUrl(id)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n enabled: !!id,\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useDeleteInvoice = () => {\r\n return useMutation((payload) => deleteFinanceInvoice(payload.id))\r\n}\r\n\r\nexport const useChangeInvoiceTaxNumber = () => {\r\n return useMutation((payload) => changeFinanceInvoiceTaxNumber(payload.id, payload))\r\n}\r\n\r\nexport const useApproveInvoice = () => {\r\n const queryClient = useQueryClient()\r\n return useMutation((id) => approveFinanceInvoice({ id }), {\r\n onSuccess: (response) => {\r\n if (response.data.success) {\r\n message.success(response.data.message)\r\n queryClient.invalidateQueries(['invoice', `${response.data.data.id}`, {}])\r\n } else {\r\n message.error(response.data.message)\r\n }\r\n // queryClient.invalidateQueries(['invoice', `${response.data.data.id}`, {}], response.data.data)\r\n // message.success(response.data.message)\r\n },\r\n onError: (error) => message.error(error.data.message),\r\n })\r\n}\r\n\r\nexport const useRejectInvoice = () => {\r\n const queryClient = useQueryClient()\r\n return useMutation((payload) => rejectFinanceInvoice(payload), {\r\n onSuccess: (response) => {\r\n if (response.data.success) {\r\n message.success(response.data.message)\r\n queryClient.invalidateQueries(['invoice', `${response.data.data.id}`, {}])\r\n } else {\r\n message.error(response.data.message)\r\n }\r\n // recreate object to trigger useMemo rerender on data change\r\n // const oldData = {\r\n // ...queryClient.getQueryData(['invoice', `${response.data.data.id}`, {}]),\r\n // }\r\n // oldData.is_approveable = false\r\n // oldData.approval_status.is_rejected = 1\r\n // queryClient.setQueryData(['invoice', `${oldData.id}`, {}], oldData)\r\n // message.success(response.data.message)\r\n },\r\n onError: (error) => message.error(error.data.message),\r\n })\r\n}\r\n\r\nexport const useRevertApprovalFinanceInvoice = () => {\r\n const queryClient = useQueryClient()\r\n return useMutation((id) => revertApprovalFinanceInvoice({ id }), {\r\n onSuccess: (response) => {\r\n if (response.data.success) {\r\n message.success(response.data.message)\r\n queryClient.invalidateQueries(['invoice', `${response.data.data.id}`, {}])\r\n } else {\r\n message.error(response.data.message)\r\n }\r\n },\r\n onError: (error) => message.error(error.data.message),\r\n })\r\n}\r\n\r\nexport const useUploadImportFinanceInvoiceReturn = () => {\r\n return useMutation((payload) => uploadImportFinanceInvoiceReturn(payload))\r\n}\r\n\r\nexport const useExecuteImportFinanceInvoiceReturn = () => {\r\n return useMutation((payload) => executeImportFinanceInvoiceReturn(payload))\r\n}\r\n\r\nexport const useVoidInvoice = () => {\r\n return useMutation((payload) => voidFinanceInvoice(payload.id, payload.body))\r\n}\r\n\r\nexport const useUnvoidInvoice = () => {\r\n return useMutation((payload) => unvoidFinanceInvoice(payload.id))\r\n}\r\n\r\nexport const useUploadImportFinanceInvoiceRecurringMutation = () => {\r\n return useMutation(uploadImportFinanceInvoiceRecurring)\r\n}\r\n\r\nexport const useExecuteImportFinanceInvoiceRecurringMutation = () => {\r\n return useMutation(executeImportFinanceInvoiceRecurring)\r\n}\r\n\r\nexport const useUploadImportStatusFinanceInvoiceMutation = () => {\r\n return useMutation(uploadImportStatusFinanceInvoice)\r\n}\r\n\r\nexport const useExecuteImportStatusFinanceInvoiceMutation = () => {\r\n return useMutation(executeImportStatusFinanceInvoice)\r\n}\r\n\r\nexport const useGetMinTransDateFinanceInvoiceMutation = () => {\r\n return useMutation((payload) =>\r\n getMinTransDateFinanceInvoice({ ...payload, trans_type: 'invoice' }),\r\n )\r\n}\r\n\r\nexport const useInputMassCreateFinanceInvoiceMutation = () => {\r\n return useMutation(inputMassCreateFinanceInvoice)\r\n}\r\n","import { message } from 'antd'\r\nimport { useMutation, useQuery } from 'react-query'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\n\r\nimport {\r\n executeImportFinanceOrder,\r\n getFinanceOrders,\r\n getMinTransDateFinanceOrder,\r\n getRecurringOrders,\r\n inputMassCreateFinanceOrder,\r\n orderPaymentFinanceBankTrans,\r\n uploadImportFinanceOrder,\r\n} from 'utils/apis'\r\nimport { optionsSelector } from 'redux/selectors'\r\nimport { editOption } from 'redux/options/actions'\r\n\r\nexport const useOrders = ({\r\n payload = {},\r\n enabled = false,\r\n saveDataPagination = true,\r\n options = {},\r\n}) => {\r\n const optionsState = useSelector(optionsSelector)\r\n const dispatch = useDispatch()\r\n\r\n if (saveDataPagination) {\r\n // prevent user that already setting per_page > 100\r\n if (payload.per_page > 100) {\r\n payload.per_page = 100\r\n }\r\n\r\n if (payload.per_page && payload.per_page !== optionsState.sales_per_page_default) {\r\n dispatch(\r\n editOption({\r\n sales_per_page_default: payload.per_page,\r\n }),\r\n )\r\n }\r\n }\r\n\r\n return useQuery(\r\n ['order', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinanceOrders(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n onError: (error) => {\r\n message.error(error?.message || 'Failed to load data from server!')\r\n },\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useRecurringOrders = ({ payload = {}, enabled = false }) => {\r\n return useQuery(\r\n ['order', 'recurring', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getRecurringOrders(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n keepPreviousData: true,\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport function useMutationOrderPaymentFinanceBankTrans({ options } = {}) {\r\n return useMutation((payload) => orderPaymentFinanceBankTrans(payload), options)\r\n}\r\n\r\nexport function useUploadImportFinanceOrderMutation() {\r\n return useMutation(uploadImportFinanceOrder)\r\n}\r\n\r\nexport function useExecuteImportFinanceOrderMutation() {\r\n return useMutation(executeImportFinanceOrder)\r\n}\r\n\r\nexport const useGetMinTransDateFinanceOrderMutation = () => {\r\n return useMutation((payload) => getMinTransDateFinanceOrder({ ...payload, trans_type: 'order' }))\r\n}\r\n\r\nexport const useInputMassCreateFinanceOrderMutation = () => {\r\n return useMutation(inputMassCreateFinanceOrder)\r\n}\r\n","import { message } from 'antd'\r\nimport { useMutation, useQuery } from 'react-query'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\n\r\nimport {\r\n getFinancePurchaseDelivery,\r\n getFinancePurchaseDeliverys,\r\n getMinTransDateFinancePurchaseDelivery,\r\n inputMassCreateFinancePurchaseDelivery,\r\n} from 'utils/apis'\r\nimport { optionsSelector } from 'redux/selectors'\r\nimport { editOption } from 'redux/options/actions'\r\n\r\nexport const usePurchaseDeliveries = ({ payload = {}, enabled = false }) => {\r\n const options = useSelector(optionsSelector)\r\n const dispatch = useDispatch()\r\n\r\n // prevent user that already setting per_page > 100\r\n if (payload.per_page > 100) {\r\n payload.per_page = 100\r\n }\r\n\r\n if (payload.per_page && payload.per_page !== options.purchases_per_page_default) {\r\n dispatch(\r\n editOption({\r\n purchases_per_page_default: payload.per_page,\r\n }),\r\n )\r\n }\r\n\r\n return useQuery(\r\n ['purchaseDelivery', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinancePurchaseDeliverys(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n onError: (error) => {\r\n message.error(error?.message || 'Failed to load data from server!')\r\n },\r\n },\r\n )\r\n}\r\n\r\nexport function usePurchaseDelivery({ id, payload = {}, enabled = false }) {\r\n return useQuery(\r\n ['purchaseDelivery', id, payload],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getFinancePurchaseDelivery(id, payload)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n enabled: !!id && enabled,\r\n onError: (error) =>\r\n message.error((error && error.message) || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport const useGetMinTransDateFinancePurchaseDeliveryMutation = () => {\r\n return useMutation((payload) =>\r\n getMinTransDateFinancePurchaseDelivery({ ...payload, trans_type: 'purchase_delivery' }),\r\n )\r\n}\r\n\r\nexport const useInputMassCreateFinancePurchaseDeliveryMutation = () => {\r\n return useMutation(inputMassCreateFinancePurchaseDelivery)\r\n}\r\n","import { message } from 'antd'\r\nimport { useMutation, useQuery, useQueryClient } from 'react-query'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\n\r\nimport {\r\n approveFinancePurchaseInvoice,\r\n deleteFinancePurchaseInvoice,\r\n executeImportFinancePurchaseInvoice,\r\n executeImportStatusFinancePurchaseInvoice,\r\n getFinancePurchaseInvoice,\r\n getFinancePurchaseInvoicePublicUrl,\r\n getFinancePurchaseInvoices,\r\n getMinTransDateFinancePurchaseInvoice,\r\n getRecurringPurchaseInvoices,\r\n inputMassCreateFinancePurchaseInvoice,\r\n rejectFinancePurchaseInvoice,\r\n revertApprovalFinancePurchaseInvoice,\r\n uploadImportFinancePurchaseInvoice,\r\n uploadImportStatusFinancePurchaseInvoice,\r\n} from 'utils/apis'\r\nimport { optionsSelector } from 'redux/selectors'\r\nimport { editOption } from 'redux/options/actions'\r\n\r\nexport const usePurchaseInvoices = ({ payload = {}, enabled = false }) => {\r\n const options = useSelector(optionsSelector)\r\n const dispatch = useDispatch()\r\n\r\n // prevent user that already setting per_page > 100\r\n if (payload.per_page > 100) {\r\n payload.per_page = 100\r\n }\r\n\r\n if (payload.per_page && payload.per_page !== options.purchases_per_page_default) {\r\n dispatch(\r\n editOption({\r\n purchases_per_page_default: payload.per_page,\r\n }),\r\n )\r\n }\r\n\r\n return useQuery(\r\n ['purchaseInvoice', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinancePurchaseInvoices(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n onError: (error) => {\r\n message.error(error?.message || 'Failed to load data from server!')\r\n },\r\n },\r\n )\r\n}\r\n\r\nexport const useRecurringPurchaseInvoices = ({ payload = {}, enabled = false }) => {\r\n return useQuery(\r\n ['purchaseInvoice', 'recurring', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getRecurringPurchaseInvoices(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n keepPreviousData: true,\r\n onError: (error) =>\r\n message.error((error && error.message) || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport function usePurchaseInvoice({ id, payload = {}, enabled = false }) {\r\n return useQuery(\r\n ['purchaseInvoice', id, payload],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getFinancePurchaseInvoice(id, payload)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n enabled: !!id && enabled,\r\n onError: (error) =>\r\n message.error((error && error.message) || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport function usePurchaseInvoicePublicUrl(id, options = {}) {\r\n return useQuery(\r\n ['purchaseInvoicePublicUrl', id],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getFinancePurchaseInvoicePublicUrl(id)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n enabled: !!id,\r\n onError: (error) =>\r\n message.error((error && error.message) || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useDeletePurchaseInvoice = () => {\r\n return useMutation((payload) => deleteFinancePurchaseInvoice(payload.id))\r\n}\r\n\r\nexport const useApprovePurchaseInvoice = () => {\r\n const queryClient = useQueryClient()\r\n return useMutation((id) => approveFinancePurchaseInvoice({ id }), {\r\n onSuccess: (response) => {\r\n if (response.data.success) {\r\n message.success(response.data.message)\r\n queryClient.invalidateQueries(['purchaseInvoice', `${response.data.data.id}`, {}])\r\n } else {\r\n message.error(response.data.message)\r\n }\r\n // message.success(response.data.message)\r\n // queryClient.setQueryData(\r\n // ['purchaseInvoice', `${response.data.data.id}`, {}],\r\n // response.data.data,\r\n // )\r\n },\r\n onError: (error) => message.error(error.data.message),\r\n })\r\n}\r\n\r\nexport const useRejectPurchaseInvoice = () => {\r\n const queryClient = useQueryClient()\r\n return useMutation((payload) => rejectFinancePurchaseInvoice(payload), {\r\n onSuccess: (response) => {\r\n if (response.data.success) {\r\n message.success(response.data.message)\r\n queryClient.invalidateQueries(['purchaseInvoice', `${response.data.data.id}`, {}])\r\n } else {\r\n message.error(response.data.message)\r\n }\r\n\r\n // recreate object to trigger useMemo rerender on data change\r\n // const oldData = {\r\n // ...queryClient.getQueryData(['purchaseInvoice', `${response.data.data.id}`, {}]),\r\n // }\r\n // oldData.is_approveable = false\r\n // oldData.approval_status.is_rejected = 1\r\n // queryClient.setQueryData(['purchaseInvoice', `${oldData.id}`, {}], oldData)\r\n // message.success(response.data.message)\r\n },\r\n onError: (error) => message.error(error.data.message),\r\n })\r\n}\r\n\r\nexport const useRevertApprovalFinancePurchaseInvoice = () => {\r\n const queryClient = useQueryClient()\r\n return useMutation((id) => revertApprovalFinancePurchaseInvoice({ id }), {\r\n onSuccess: (response) => {\r\n if (response.data.success) {\r\n message.success(response.data.message)\r\n queryClient.invalidateQueries(['purchaseInvoice', `${response.data.data.id}`, {}])\r\n } else {\r\n message.error(response.data.message)\r\n }\r\n },\r\n onError: (error) => message.error(error.data.message),\r\n })\r\n}\r\n\r\nexport function useUploadImportFinancePurchaseInvoiceMutation() {\r\n return useMutation(uploadImportFinancePurchaseInvoice)\r\n}\r\n\r\nexport function useExecuteImportFinancePurchaseInvoiceMutation() {\r\n return useMutation(executeImportFinancePurchaseInvoice)\r\n}\r\n\r\nexport function useUploadImportStatusFinancePurchaseInvoiceMutation() {\r\n return useMutation(uploadImportStatusFinancePurchaseInvoice)\r\n}\r\n\r\nexport function useExecuteImportStatusFinancePurchaseInvoiceMutation() {\r\n return useMutation(executeImportStatusFinancePurchaseInvoice)\r\n}\r\n\r\nexport const useGetMinTransDateFinancePurchaseInvoiceMutation = () => {\r\n return useMutation((payload) =>\r\n getMinTransDateFinancePurchaseInvoice({ ...payload, trans_type: 'purchase_invoice' }),\r\n )\r\n}\r\n\r\nexport const useInputMassCreateFinancePurchaseInvoiceMutation = () => {\r\n return useMutation(inputMassCreateFinancePurchaseInvoice)\r\n}\r\n","import { message } from 'antd'\r\nimport { useMutation, useQuery } from 'react-query'\r\n\r\nimport {\r\n executeImportFinancePurchaseOrder,\r\n getFinancePurchaseOrders,\r\n getMinTransDateFinancePurchaseOrder,\r\n getRecurringPurchaseOrders,\r\n inputMassCreateFinancePurchaseOrder,\r\n purchaseOrderPaymentFinanceBankTrans,\r\n uploadImportFinancePurchaseOrder,\r\n} from 'utils/apis'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { optionsSelector } from 'redux/selectors'\r\nimport { editOption } from 'redux/options/actions'\r\n\r\nexport const usePurchaseOrders = ({ payload = {}, enabled = false }) => {\r\n const options = useSelector(optionsSelector)\r\n const dispatch = useDispatch()\r\n\r\n // prevent user that already setting per_page > 100\r\n if (payload.per_page > 100) {\r\n payload.per_page = 100\r\n }\r\n\r\n if (payload.per_page && payload.per_page !== options.purchases_per_page_default) {\r\n dispatch(\r\n editOption({\r\n purchases_per_page_default: payload.per_page,\r\n }),\r\n )\r\n }\r\n\r\n return useQuery(\r\n ['purchaseOrder', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinancePurchaseOrders(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n onError: (error) => {\r\n message.error(error?.message || 'Failed to load data from server!')\r\n },\r\n },\r\n )\r\n}\r\n\r\nexport const useRecurringPurchaseOrders = ({ payload = {}, enabled = false }) => {\r\n return useQuery(\r\n ['purchaseOrder', 'recurring', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getRecurringPurchaseOrders(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n keepPreviousData: true,\r\n onError: (error) =>\r\n message.error((error && error.message) || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport function useMutationPurchaseOrderPaymentFinanceBankTrans({ options } = {}) {\r\n return useMutation((payload) => purchaseOrderPaymentFinanceBankTrans(payload), options)\r\n}\r\n\r\nexport function useUploadImportFinancePurchaseOrderMutation() {\r\n return useMutation(uploadImportFinancePurchaseOrder)\r\n}\r\n\r\nexport function useExecuteImportFinancePurchaseOrderMutation() {\r\n return useMutation(executeImportFinancePurchaseOrder)\r\n}\r\n\r\nexport const useGetMinTransDateFinancePurchaseOrderMutation = () => {\r\n return useMutation((payload) =>\r\n getMinTransDateFinancePurchaseOrder({ ...payload, trans_type: 'purchase_order' }),\r\n )\r\n}\r\n\r\nexport const useInputMassCreateFinancePurchaseOrderMutation = () => {\r\n return useMutation(inputMassCreateFinancePurchaseOrder)\r\n}\r\n","import { message } from 'antd'\r\nimport { useMutation, useQuery } from 'react-query'\r\n\r\nimport {\r\n executeImportFinancePurchaseQuote,\r\n getFinancePurchaseQuotes,\r\n uploadImportFinancePurchaseQuote,\r\n} from 'utils/apis'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { optionsSelector } from 'redux/selectors'\r\nimport { editOption } from 'redux/options/actions'\r\n\r\nexport const usePurchaseQuotes = ({ payload = {}, enabled = false }) => {\r\n const options = useSelector(optionsSelector)\r\n const dispatch = useDispatch()\r\n\r\n // prevent user that already setting per_page > 100\r\n if (payload.per_page > 100) {\r\n payload.per_page = 100\r\n }\r\n\r\n if (payload.per_page && payload.per_page !== options.purchases_per_page_default) {\r\n dispatch(\r\n editOption({\r\n purchases_per_page_default: payload.per_page,\r\n }),\r\n )\r\n }\r\n\r\n return useQuery(\r\n ['purchaseQuote', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinancePurchaseQuotes(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n onError: (error) => {\r\n message.error(error?.message || 'Failed to load data from server!')\r\n },\r\n },\r\n )\r\n}\r\n\r\nexport function useUploadImportFinancePurchaseQuoteMutation() {\r\n return useMutation(uploadImportFinancePurchaseQuote)\r\n}\r\n\r\nexport function useExecuteImportFinancePurchaseQuoteMutation() {\r\n return useMutation(executeImportFinancePurchaseQuote)\r\n}\r\n","import { message } from 'antd'\r\nimport { useMutation, useQuery } from 'react-query'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\n\r\nimport { executeImportFinanceQuote, getFinanceQuotes, uploadImportFinanceQuote } from 'utils/apis'\r\nimport { optionsSelector } from 'redux/selectors'\r\nimport { editOption } from 'redux/options/actions'\r\n\r\nexport const useQuotes = ({\r\n payload = {},\r\n enabled = false,\r\n saveDataPagination = true,\r\n options = {},\r\n}) => {\r\n const optionsState = useSelector(optionsSelector)\r\n const dispatch = useDispatch()\r\n\r\n if (saveDataPagination) {\r\n // prevent user that already setting per_page > 100\r\n if (payload.per_page > 100) {\r\n payload.per_page = 100\r\n }\r\n\r\n if (payload.per_page && payload.per_page !== optionsState.sales_per_page_default) {\r\n dispatch(\r\n editOption({\r\n sales_per_page_default: payload.per_page,\r\n }),\r\n )\r\n }\r\n }\r\n\r\n return useQuery(\r\n ['quote', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinanceQuotes(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n onError: (error) => {\r\n message.error(error?.message || 'Failed to load data from server!')\r\n },\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport function useUploadImportFinanceQuoteMutation() {\r\n return useMutation(uploadImportFinanceQuote)\r\n}\r\n\r\nexport function useExecuteImportFinanceQuoteMutation() {\r\n return useMutation(executeImportFinanceQuote)\r\n}\r\n","import { message } from 'antd'\r\nimport { useQuery } from 'react-query'\r\nimport { getReturn, getReturns } from 'utils/apis'\r\n\r\nexport const useReturns = ({ payload = {}, enabled = false }) => {\r\n return useQuery(\r\n ['retur', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getReturns(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n keepPreviousData: true,\r\n onError: (error) =>\r\n message.error((error && error.message) || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport function useRetur({ id, payload = {}, enabled = false }) {\r\n return useQuery(\r\n ['retur', id, payload],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getReturn(id, payload)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n enabled: !!id && enabled,\r\n onError: (error) =>\r\n message.error((error && error.message) || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n","import { message } from 'antd'\r\nimport { useQuery } from 'react-query'\r\nimport { getPurchaseReturn, getPurchaseReturns } from 'utils/apis'\r\n\r\nexport const usePurchaseReturns = ({ payload = {}, enabled = false }) => {\r\n return useQuery(\r\n ['purchaseRetur', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getPurchaseReturns(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n keepPreviousData: true,\r\n onError: (error) =>\r\n message.error((error && error.message) || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport function usePurchaseRetur({ id, payload = {}, enabled = false }) {\r\n return useQuery(\r\n ['purchaseRetur', id, payload],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getPurchaseReturn(id, payload)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n enabled: !!id && enabled,\r\n onError: (error) =>\r\n message.error((error && error.message) || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n","import { useMutation, useQuery } from 'react-query'\r\nimport { message } from 'antd'\r\nimport {\r\n addPurchaseInvoicePaymentDebitMemo,\r\n getPurchaseInvoicePaymentDebitMemo,\r\n editPurchaseInvoicePaymentDebitMemo,\r\n deletePurchaseInvoicePaymentDebitMemo,\r\n} from 'utils/apis/purchaseInvoicePaymentDebitMemo'\r\n\r\nexport function usePurchaseInvoicePaymentDebitMemo({ id, payload = {}, enabled = false }) {\r\n return useQuery(\r\n ['purchaseInvoicePaymentDebitMemo', id, payload],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getPurchaseInvoicePaymentDebitMemo(id)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n enabled: !!id && enabled,\r\n onError: (error) =>\r\n message.error((error && error.message) || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport const useEditPurchaseInvoicePaymentDebitMemo = () => {\r\n return useMutation((payload) => editPurchaseInvoicePaymentDebitMemo(payload))\r\n}\r\n\r\nexport const useDeletePurchaseInvoicePaymentDebitMemo = () => {\r\n return useMutation((payload) => deletePurchaseInvoicePaymentDebitMemo(payload.id))\r\n}\r\n\r\nexport const useAddPurchaseInvoicePaymentDebitMemo = () => {\r\n return useMutation((payload) => addPurchaseInvoicePaymentDebitMemo(payload))\r\n}\r\n","import { useMutation, useQuery } from 'react-query'\r\nimport { message } from 'antd'\r\nimport {\r\n addInvoicePaymentCreditMemo,\r\n getInvoicePaymentCreditMemo,\r\n editInvoicePaymentCreditMemo,\r\n deleteInvoicePaymentCreditMemo,\r\n} from 'utils/apis/invoicePaymentCreditMemo'\r\n\r\nexport function useInvoicePaymentCreditMemo({ id, payload = {}, enabled = false }) {\r\n return useQuery(\r\n ['invoicePaymentCreditMemo', id, payload],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getInvoicePaymentCreditMemo(id)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n enabled: !!id && enabled,\r\n onError: (error) =>\r\n message.error((error && error.message) || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport const useAddInvoicePaymentCreditMemo = () => {\r\n return useMutation((payload) => addInvoicePaymentCreditMemo(payload))\r\n}\r\n\r\nexport const useEditInvoicePaymentCreditMemo = () => {\r\n return useMutation((payload) => editInvoicePaymentCreditMemo(payload))\r\n}\r\n\r\nexport const useDeleteInvoicePaymentCreditMemo = () => {\r\n return useMutation((payload) => deleteInvoicePaymentCreditMemo(payload.id))\r\n}\r\n","import { message } from 'antd'\r\nimport { useQuery } from 'react-query'\r\nimport { getCommission, getCommissions, getCommissionTypes } from 'utils/apis'\r\n\r\nexport const useCommissions = ({ payload = {}, config = {} }) => {\r\n return useQuery(\r\n ['commissions', payload],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getCommissions(payload)\r\n\r\n response = data\r\n } catch (error) {\r\n message.error((error && error.message) || 'Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n onError: (error) =>\r\n message.error((error && error.message) || 'Failed to load data from server!'),\r\n ...config,\r\n },\r\n )\r\n}\r\n\r\nexport const useCommission = ({ id, intl, config = {} }) => {\r\n return useQuery(\r\n ['commission', id],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getCommission(id)\r\n\r\n response = data\r\n } catch (error) {\r\n message.error(\r\n error?.data?.message ||\r\n intl.formatMessage({ id: 'salesCommission.cannot_get_commission' }),\r\n )\r\n // This condition is for when the commission is not found,\r\n // maybe in the future we can find the better way to tell that the data is not found\r\n if (error?.status) {\r\n response = {\r\n status: error?.status,\r\n }\r\n }\r\n }\r\n return response\r\n },\r\n {\r\n keepPreviousData: true,\r\n onError: () =>\r\n message.error(intl.formatMessage({ id: 'salesCommission.cannot_get_commission' })),\r\n ...config,\r\n },\r\n )\r\n}\r\n\r\nexport const useCommissionTypes = ({ intl, config = {} }) => {\r\n return useQuery(\r\n ['commission-types'],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getCommissionTypes()\r\n\r\n response = data\r\n } catch (error) {\r\n message.error(intl.formatMessage({ id: 'salesCommission.cannot_get_commission_type' }))\r\n }\r\n return response\r\n },\r\n {\r\n keepPreviousData: true,\r\n onError: () =>\r\n message.error(intl.formatMessage({ id: 'salesCommission.cannot_get_commission_type' })),\r\n ...config,\r\n },\r\n )\r\n}\r\n","import { useQuery } from 'react-query'\r\nimport { message } from 'antd'\r\n\r\nimport { getFinanceTag, getFinanceTagDetail, getFinanceTagRoles } from 'utils/apis'\r\n\r\nexport function useTag({ id, params = {}, enabled = false, options = {} }) {\r\n return useQuery(\r\n ['tag', id, params],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getFinanceTag(id, params)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n enabled: !!id && enabled,\r\n onError: (error) =>\r\n message.error((error && error.message) || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport function useTagRoles({ id, params = {}, enabled = false, options }) {\r\n return useQuery(\r\n ['tag-roles', id, params],\r\n async () => {\r\n let response\r\n try {\r\n response = (await getFinanceTagRoles(id, params)).data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n enabled: !!id && enabled,\r\n onError: (error) =>\r\n message.error((error && error.message) || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport function useTagDetail({ params, options, extraQueryKey }) {\r\n return useQuery(\r\n ['tags', params, extraQueryKey],\r\n async () => {\r\n let response\r\n try {\r\n response = await getFinanceTagDetail(params)\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response.data.data\r\n },\r\n options,\r\n )\r\n}\r\n","import { useQuery } from 'react-query'\r\nimport { message } from 'antd'\r\n\r\nimport { getRole, getRoles } from 'utils/apis'\r\n\r\nexport function useRoles({ enabled = false, options }) {\r\n return useQuery(\r\n ['roles'],\r\n async () => {\r\n let response\r\n try {\r\n response = (await getRoles()).data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n enabled,\r\n onError: (error) =>\r\n message.error((error && error.message) || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport function useRole({ id, options }) {\r\n return useQuery(\r\n ['roles', id],\r\n async () => {\r\n try {\r\n const {\r\n data: { data },\r\n } = await getRole(id)\r\n return data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n },\r\n {\r\n onError: (error) =>\r\n message.error((error && error.message) || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n","import { useMutation, useQuery } from 'react-query'\r\nimport { getPriceRules, addPriceRule, editPriceRule, getPriceRule, deletePriceRule } from 'utils/apis/priceRule'\r\n\r\nexport const usePriceRules = ({ payload = {}, options }) => {\r\n return useQuery(\r\n ['getPriceRules', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getPriceRules(payload)\r\n return data\r\n },\r\n options,\r\n )\r\n}\r\n\r\nexport const useCreatePriceRule = () => {\r\n return useMutation((payload) => addPriceRule(payload))\r\n}\r\n\r\nexport const useEditPriceRule = () => {\r\n return useMutation((payload) => editPriceRule(payload))\r\n}\r\n\r\nexport const useDeletePriceRule = () => {\r\n return useMutation((id) => deletePriceRule(id))\r\n}\r\n\r\nexport const usePriceRule = (id, options) => {\r\n return useQuery(\r\n ['priceRule', id],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getPriceRule(id)\r\n return data\r\n },\r\n {\r\n enabled: !!id,\r\n ...options,\r\n },\r\n )\r\n}\r\n","import axios from 'axios'\r\n\r\nexport const getFinanceLayoutBarcode = () => {\r\n return axios.get('/finance/barcode/layoutBarcode')\r\n}\r\n\r\nexport const editFinanceLayoutBarcode = ({ data }) => {\r\n return axios.put('/finance/barcode/layoutBarcode', data)\r\n}\r\n\r\nexport const resetFinanceLayoutBarcode = () => {\r\n return axios.post('/finance/barcode/layoutBarcode/reset')\r\n}\r\n","import { useMutation, useQuery } from 'react-query'\r\nimport { message } from 'antd'\r\n\r\nimport {\r\n editFinanceLayoutBarcode,\r\n getFinanceLayoutBarcode,\r\n resetFinanceLayoutBarcode,\r\n} from 'utils/apis/financeLayoutBarcode'\r\n\r\nexport const useFinanceLayoutBarcode = ({ options = {} } = {}) => {\r\n return useQuery(\r\n ['layoutBarcode'],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinanceLayoutBarcode()\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error((error && error.message) || 'Failed data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useEditFinanceLayoutBarcode = ({ options = {} } = {}) => {\r\n return useMutation((data) => editFinanceLayoutBarcode({ data }), options)\r\n}\r\n\r\nexport const useResetFinanceLayoutBarcode = ({ options = {} } = {}) => {\r\n return useMutation(() => resetFinanceLayoutBarcode(), options)\r\n}\r\n","import { useMutation, useQuery } from 'react-query'\r\n\r\nimport {\r\n createOutlet,\r\n createProductFavorites,\r\n deleteOutlet,\r\n deleteProductFavorites,\r\n editOutlet,\r\n getOutlets,\r\n getPosUsers,\r\n getProductFavorites,\r\n moveProductFavorite,\r\n} from 'utils/apis'\r\n\r\nexport const useProductFavorites = ({ options }) => {\r\n return useQuery(\r\n ['products-favorites'],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getProductFavorites()\r\n return data\r\n },\r\n { ...options },\r\n )\r\n}\r\n\r\nexport const useCreateProductFavorites = () => {\r\n return useMutation((payload) => createProductFavorites(payload))\r\n}\r\n\r\nexport const useDeleteProductFavorites = () => {\r\n return useMutation(({ id }) => deleteProductFavorites({ id }))\r\n}\r\n\r\nexport const useMoveProductFavorite = () => {\r\n return useMutation(({ id, payload }) => moveProductFavorite({ id, payload }))\r\n}\r\n\r\nexport const useOutlets = ({ options, payload }) => {\r\n return useQuery(\r\n ['outlets', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getOutlets({ payload })\r\n return data\r\n },\r\n { ...options },\r\n )\r\n}\r\n\r\nexport const useCreateOutlet = () => {\r\n return useMutation(({ payload }) => createOutlet({ payload }))\r\n}\r\n\r\nexport const useEditOutlet = () => {\r\n return useMutation(({ id, payload }) => editOutlet({ id, payload }))\r\n}\r\n\r\nexport const useDeleteOutlet = () => {\r\n return useMutation(({ id, payload }) => deleteOutlet({ id, payload }))\r\n}\r\n\r\nexport const usePosUsers = ({ options = {}, payload } = {}) => {\r\n return useQuery(\r\n ['users', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getPosUsers({ payload })\r\n return data\r\n },\r\n { ...options },\r\n )\r\n}\r\n","import { message } from 'antd'\r\nimport { useInfiniteQuery, useMutation, useQuery, useQueryClient } from 'react-query'\r\n\r\nimport { dislikeFaq, getFaqCategory, getFaqDetail, getFaqs, likeFaq } from 'utils/apis'\r\n\r\nexport const useFaqCategory = (options) => {\r\n return useQuery(\r\n ['faqCategory'],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFaqCategory()\r\n return data\r\n },\r\n {\r\n onError: (error) => {\r\n message.error((error && error.message) || 'Failed to load data from server!')\r\n },\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useFaqs = ({ payload = {}, options = {} }) => {\r\n return useQuery(\r\n ['faqs', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFaqs(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => {\r\n message.error((error && error.message) || 'Failed to load data from server!')\r\n },\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useInfiniteFAQs = (payload, options = {}) => {\r\n return useInfiniteQuery(\r\n ['infinite/faqs', payload],\r\n async ({ pageParam = 0 }) => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getFaqs({ page: pageParam, ...payload })\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n getNextPageParam: (lastPage) => {\r\n if (!lastPage) {\r\n return undefined\r\n }\r\n return lastPage.current_page < lastPage.last_page ? lastPage.current_page + 1 : undefined\r\n },\r\n onError: (error) => message.error(error.message || 'Failed to load data from server!'),\r\n keepPreviousData: true,\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useFaqDetail = ({ id, options = {} }) => {\r\n return useQuery(\r\n ['faqDetail', id],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFaqDetail(id)\r\n return data\r\n },\r\n {\r\n onError: (error) => {\r\n message.error((error && error.message) || 'Failed to load data from server!')\r\n },\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useLikeFaq = ({ options = {} } = {}) => {\r\n const queryClient = useQueryClient()\r\n return useMutation((payload) => likeFaq(payload), {\r\n onSuccess: (response) => {\r\n queryClient.setQueryData(['faqDetail', `${response.data.data.id}`], () => response.data.data)\r\n message.success(response.data.message)\r\n },\r\n ...options,\r\n })\r\n}\r\n\r\nexport const useDislikeFaq = ({ options = {} } = {}) => {\r\n const queryClient = useQueryClient()\r\n return useMutation((payload) => dislikeFaq(payload), {\r\n onSuccess: (response) => {\r\n queryClient.setQueryData(['faqDetail', `${response.data.data.id}`], () => response.data.data)\r\n message.success(response.data.message)\r\n },\r\n ...options,\r\n })\r\n}\r\n","import { useQuery } from 'react-query'\r\nimport { message } from 'antd'\r\nimport { getLayoutReportVariable } from 'utils/apis'\r\n\r\nexport const useLayoutReportVariable = ({ payload, options = {} }) => {\r\n return useQuery(\r\n ['layout-report', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getLayoutReportVariable(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error((error && error.message) || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n","import { useMutation, useQuery } from 'react-query'\r\nimport { message } from 'antd'\r\n\r\nimport { getBackupDatabase, prepareBackupDatabase } from 'utils/apis'\r\n\r\nexport const useBackupDatabase = ({ options = {} }) => {\r\n return useQuery(\r\n [`backupDatabase`],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getBackupDatabase()\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error((error && error.message) || 'Failed data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const usePrepareBackupDatabase = () => {\r\n return useMutation((payload) => prepareBackupDatabase(payload))\r\n}\r\n","import { useMutation, useQuery } from 'react-query'\r\nimport { message } from 'antd'\r\n\r\nimport { getEmailTemplateCustomerBirthday, revertEmail, updateEmail } from 'utils/apis'\r\n\r\nexport const useEmailTemplateCustomerBirthday = ({ options = {} }) => {\r\n return useQuery(\r\n ['emailTemplateCustomerBirthday'],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getEmailTemplateCustomerBirthday()\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.message || 'Failed data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useUpdateEmail = () => {\r\n return useMutation((payload) => updateEmail(payload))\r\n}\r\n\r\nexport const useRevertEmail = () => {\r\n return useMutation((payload) => revertEmail(payload))\r\n}\r\n","import {useMutation} from \"react-query\";\r\nimport { addFavoriteReport, deleteFavoriteReport } from 'utils/apis'\r\n\r\nexport const useAddFavoriteReport = ({ options = {} } = {}) => {\r\n return useMutation((payload) => addFavoriteReport(payload), options)\r\n}\r\n\r\nexport const useDeleteFavoriteReport = ({ options = {} } = {}) => {\r\n return useMutation((payload) => deleteFavoriteReport(payload), options)\r\n}\r\n","import { useMutation, useQuery } from 'react-query'\r\nimport { message } from 'antd'\r\n\r\nimport { calculateTaxGroupTotal, getCanDeletedFinanceTax } from 'utils/apis'\r\n\r\nexport const useCanBeDeletedFinanceTax = ({ options = {} } = {}) => {\r\n return useQuery(\r\n ['canBeDeletedFinanceTax'],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getCanDeletedFinanceTax()\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useCalculateTaxGroupTotal = () => {\r\n return useMutation((payload) => calculateTaxGroupTotal(payload))\r\n}\r\n","import { useMutation, useQuery, useQueryClient } from 'react-query'\r\nimport { getOnboarding, getOnboardingStatus, updateOnboardingStatus } from 'utils/apis'\r\nimport { message } from 'antd'\r\n\r\nexport const useOnboarding = ({ options = {} } = {}) => {\r\n return useQuery(\r\n ['onboarding'],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getOnboarding()\r\n response = data\r\n } catch (error) {\r\n message.error(error?.response?.data?.message || 'Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n onError: (error) =>\r\n message.error(error?.response?.data?.message || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useOnboardingStatus = ({ options = {} } = {}) => {\r\n return useQuery(\r\n ['onboarding-status'],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getOnboardingStatus()\r\n response = data\r\n } catch (error) {\r\n message.error(error?.response?.data?.message || 'Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n onError: (error) =>\r\n message.error(error?.response?.data?.message || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useUpdateOnboardingStatus = ({ options = {} } = {}) => {\r\n const queryClient = useQueryClient()\r\n return useMutation((id) => updateOnboardingStatus(id), {\r\n ...options,\r\n onSuccess: (response) => {\r\n queryClient.setQueriesData(['onboarding-status'], (old) => {\r\n const data = {\r\n ...old,\r\n progress: response.data.data.progress,\r\n progress_detail: response.data.data.progress_detail,\r\n }\r\n return data\r\n })\r\n },\r\n onError: (error) => {\r\n message.error(error?.response?.data?.message || 'Failed to load data from server!')\r\n },\r\n })\r\n}\r\n","import { useMutation, useQuery } from 'react-query'\r\nimport { message } from 'antd'\r\n\r\nimport { getUsers } from 'utils/apis/users'\r\nimport { loginWithSso } from 'utils/apis/user'\r\n\r\nexport function useUsers({ payload, options = {} } = {}) {\r\n return useQuery(\r\n ['users', payload],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getUsers(payload)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n onError: (error) => {\r\n message.error(error?.message || 'Failed to load data from server!')\r\n },\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useLoginWithSsoMutation = () => {\r\n return useMutation(loginWithSso)\r\n}\r\n","import { useMutation, useQuery } from 'react-query'\r\nimport { message } from 'antd'\r\n\r\nimport {\r\n getFinancePaymentConnectSetting,\r\n setDefaultPaymentConnectSetting,\r\n testConnectionFinancePaymentConnectSetting,\r\n updatePaymentConnectSetting,\r\n} from 'utils/apis'\r\n\r\nexport const useFinancePaymentConnectSetting = ({ id, options }) => {\r\n return useQuery(\r\n ['paymentConnectSetting', id],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinancePaymentConnectSetting(id)\r\n return data\r\n },\r\n {\r\n onError: (error) => {\r\n message.error(error?.message || 'Failed to load data from server!')\r\n },\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useTestConnectionPaymentConnectSettingMutation = () => {\r\n return useMutation((payload) => testConnectionFinancePaymentConnectSetting(payload))\r\n}\r\n\r\nexport const useUpdatePaymentConnectSettingMutation = () => {\r\n return useMutation((payload) => updatePaymentConnectSetting(payload))\r\n}\r\n\r\nexport const useSetDefaultPaymentConnectSettingMutation = () => {\r\n return useMutation((payload) => setDefaultPaymentConnectSetting(payload.id, payload.data))\r\n}\r\n","import { useQuery } from 'react-query'\r\n\r\nimport { getVideos } from 'utils/apis'\r\n\r\nexport const useVideos = ({ payload, options }) => {\r\n return useQuery(\r\n ['videos', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getVideos(payload)\r\n return data\r\n },\r\n options,\r\n )\r\n}\r\n","import { useMutation, useQuery } from 'react-query'\r\nimport { message } from 'antd'\r\n\r\nimport { addFinanceContactGroupRoles, getFinanceContactGroupRoles } from 'utils/apis'\r\n\r\nexport function useContactGroupRoles({ id, options }) {\r\n return useQuery(\r\n ['contactGroups', id],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getFinanceContactGroupRoles({ id })\r\n response = data\r\n } catch (error) {\r\n throw new Error(error?.data?.message ?? 'Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useAddFinanceContactGroupRoles = () => useMutation(addFinanceContactGroupRoles)\r\n","import React from 'react'\r\nimport { Button } from 'antd'\r\nimport PropTypes from 'prop-types'\r\nimport { injectIntl } from 'react-intl'\r\nimport { PlusOutlined } from '@ant-design/icons'\r\n\r\nfunction Add(props) {\r\n const title =\r\n props.title === 'button.add' ? props.intl.formatMessage({ id: props.title }) : props.title\r\n return (\r\n \r\n )\r\n}\r\n\r\nAdd.propTypes = {\r\n type: PropTypes.string,\r\n icon: PropTypes.object,\r\n title: PropTypes.string,\r\n onClick: PropTypes.func,\r\n id: PropTypes.string,\r\n}\r\n\r\nAdd.defaultProps = {\r\n type: 'primary',\r\n icon: ,\r\n title: 'button.add',\r\n onClick: () => {},\r\n id: 'btn-add',\r\n}\r\n\r\nexport default injectIntl(Add)\r\n","import React from 'react';\r\nimport { Button } from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\nimport { CloseOutlined } from '@ant-design/icons';\r\n\r\nfunction Cancel(props) {\r\n const title = props.title === 'button.cancel' ? props.intl.formatMessage({ id: props.title }) : props.title\r\n return (\r\n \r\n {title}\r\n \r\n )\r\n}\r\n\r\nCancel.propTypes = {\r\n type: PropTypes.string,\r\n icon: PropTypes.object,\r\n title: PropTypes.string,\r\n id: PropTypes.string,\r\n onClick: PropTypes.func,\r\n}\r\n\r\nCancel.defaultProps = {\r\n type: \"default\",\r\n icon: ,\r\n title: \"button.cancel\",\r\n onClick: () => { },\r\n id: \"btn-cancel\"\r\n}\r\n\r\nexport default injectIntl(Cancel);","import React from 'react';\r\nimport { Button } from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\nimport { DeleteOutlined } from '@ant-design/icons';\r\n\r\nfunction Delete(props) {\r\n const title = props.title === 'button.delete' ? props.intl.formatMessage({ id: props.title }) : props.title\r\n return (\r\n \r\n {title}\r\n \r\n )\r\n}\r\n\r\nDelete.propTypes = {\r\n type: PropTypes.string,\r\n icon: PropTypes.object,\r\n title: PropTypes.string,\r\n id: PropTypes.string,\r\n onClick: PropTypes.func,\r\n}\r\n\r\nDelete.defaultProps = {\r\n type: \"primary\",\r\n icon: ,\r\n title: \"button.delete\",\r\n onClick: () => { },\r\n id: \"btn-delete\"\r\n}\r\n\r\nexport default injectIntl(Delete);\r\n","import React from 'react'\r\nimport { Button } from 'antd'\r\nimport PropTypes from 'prop-types'\r\nimport { injectIntl } from 'react-intl'\r\nimport { SaveOutlined } from '@ant-design/icons'\r\n\r\nfunction Save(props) {\r\n const title =\r\n props.title === 'button.save' ? props.intl.formatMessage({ id: props.title }) : props.title\r\n return (\r\n \r\n )\r\n}\r\n\r\nSave.propTypes = {\r\n type: PropTypes.string,\r\n icon: PropTypes.object,\r\n title: PropTypes.string,\r\n id: PropTypes.string,\r\n onClick: PropTypes.func,\r\n}\r\n\r\nSave.defaultProps = {\r\n type: 'primary',\r\n icon: ,\r\n title: 'button.save',\r\n onClick: () => {},\r\n id: 'btn-save',\r\n}\r\n\r\nexport default injectIntl(Save)\r\n","import React, { useMemo } from 'react'\r\nimport { Dropdown } from 'antd'\r\nimport PropTypes from 'prop-types'\r\nimport { injectIntl } from 'react-intl'\r\nimport { DownOutlined, LoadingOutlined, SaveOutlined, CloseOutlined } from '@ant-design/icons'\r\nimport Save from './Save'\r\n\r\nfunction SaveAddNew({ id, loading, onClick, onClickNew, onCancel, ...props }) {\r\n const itemActions = useMemo(() => {\r\n const items = [\r\n {\r\n key: 2,\r\n icon: ,\r\n onClick: () => onClickNew(),\r\n label: props.intl.formatMessage({ id: 'button.save_add_new' }),\r\n },\r\n ]\r\n if (typeof onCancel === 'function') {\r\n items.push({\r\n key: 3,\r\n icon: ,\r\n onClick: onCancel,\r\n label: props.intl.formatMessage({ id: 'button.cancel' }),\r\n })\r\n }\r\n return items\r\n }, [onCancel, onClickNew, props.intl])\r\n\r\n const saveMenu = itemActions\r\n\r\n return (\r\n : }\r\n onClick={() => onClick()}\r\n disabled={loading}\r\n buttonsRender={(btns) => {\r\n return [, btns[1]]\r\n }}\r\n />\r\n )\r\n}\r\n\r\nSaveAddNew.propTypes = {\r\n type: PropTypes.string,\r\n id: PropTypes.string,\r\n onClick: PropTypes.func,\r\n onClickNew: PropTypes.func,\r\n}\r\n\r\nSaveAddNew.defaultProps = {\r\n type: 'primary',\r\n id: 'btn-save',\r\n onClick: () => {},\r\n onClickNew: () => {},\r\n}\r\n\r\nexport default injectIntl(SaveAddNew)\r\n","import React from 'react'\r\nimport { Button } from 'antd'\r\nimport PropTypes from 'prop-types'\r\nimport { injectIntl } from 'react-intl'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { goBack } from 'connected-react-router'\r\nimport { useDispatch } from 'react-redux'\r\nimport { ArrowLeftOutlined } from '@ant-design/icons'\r\n\r\nfunction Back(props) {\r\n const history = useHistory()\r\n const dispatch = useDispatch()\r\n if (history.length < 2 && !props.onClick) {\r\n return null\r\n }\r\n\r\n const clickHandler = () => {\r\n if (props.onClick) {\r\n props.onClick()\r\n } else {\r\n dispatch(goBack())\r\n }\r\n }\r\n\r\n const title =\r\n props.title === 'button.back' ? props.intl.formatMessage({ id: props.title }) : props.title\r\n return (\r\n \r\n )\r\n}\r\n\r\nBack.propTypes = {\r\n icon: PropTypes.object,\r\n title: PropTypes.string,\r\n id: PropTypes.string,\r\n style: PropTypes.object,\r\n}\r\n\r\nBack.defaultProps = {\r\n icon: ,\r\n title: 'button.back',\r\n style: { backgroundColor: '#eb9234', color: '#ffffff' },\r\n id: 'btn-back',\r\n}\r\n\r\nexport default injectIntl(Back)\r\n","import React from 'react'\r\nimport { Button } from 'antd'\r\nimport PropTypes from 'prop-types'\r\nimport { injectIntl } from 'react-intl'\r\nimport { EditOutlined } from '@ant-design/icons'\r\n\r\nfunction Edit(props) {\r\n const title =\r\n props.title === 'button.edit' ? props.intl.formatMessage({ id: props.title }) : props.title\r\n return (\r\n \r\n )\r\n}\r\n\r\nEdit.propTypes = {\r\n type: PropTypes.string,\r\n icon: PropTypes.object,\r\n title: PropTypes.string,\r\n id: PropTypes.string,\r\n onClick: PropTypes.func,\r\n}\r\n\r\nEdit.defaultProps = {\r\n type: 'primary',\r\n icon: ,\r\n title: 'button.edit',\r\n onClick: () => {},\r\n id: 'btn-edit',\r\n}\r\n\r\nexport default injectIntl(Edit)\r\n","import React from 'react';\r\nimport { Button, Space } from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\nimport { CloseOutlined, FilterOutlined } from '@ant-design/icons';\r\n\r\nfunction Filter({ showClearBtn, onClear, ...props }) {\r\n const title = props.title === 'button.filter' ? props.intl.formatMessage({ id: props.title }) : props.title\r\n return (\r\n \r\n \r\n {title}\r\n \r\n {showClearBtn && (\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nFilter.propTypes = {\r\n icon: PropTypes.object,\r\n title: PropTypes.string,\r\n id: PropTypes.string,\r\n onClick: PropTypes.func,\r\n showClearBtn: PropTypes.bool,\r\n onClear: PropTypes.func,\r\n}\r\n\r\nFilter.defaultProps = {\r\n icon: ,\r\n title: \"button.filter\",\r\n onClick: () => { },\r\n id: \"btn-filter\",\r\n showClearBtn: false,\r\n onClear: () => { },\r\n}\r\n\r\nexport default injectIntl(Filter);","import React from 'react'\r\nimport { Button } from 'antd'\r\nimport PropTypes from 'prop-types'\r\nimport { injectIntl } from 'react-intl'\r\nimport { PrinterOutlined } from '@ant-design/icons'\r\n\r\nfunction Print(props) {\r\n const title =\r\n props.title === 'button.print' ? props.intl.formatMessage({ id: props.title }) : props.title\r\n return (\r\n \r\n )\r\n}\r\n\r\nPrint.propTypes = {\r\n type: PropTypes.string,\r\n icon: PropTypes.object,\r\n title: PropTypes.string,\r\n id: PropTypes.string,\r\n onClick: PropTypes.func,\r\n}\r\n\r\nPrint.defaultProps = {\r\n type: 'default',\r\n icon: ,\r\n title: 'button.print',\r\n onClick: () => {},\r\n id: 'btn-print',\r\n}\r\n\r\nexport default injectIntl(Print)\r\n","import React from 'react';\r\nimport { Button } from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\nimport { FilePdfOutlined } from '@ant-design/icons';\r\n\r\nfunction Pdf(props) {\r\n const title = props.title === 'button.pdf' ? props.intl.formatMessage({ id: props.title }) : props.title\r\n return (\r\n \r\n {title}\r\n \r\n )\r\n}\r\n\r\nPdf.propTypes = {\r\n type: PropTypes.string,\r\n icon: PropTypes.object,\r\n title: PropTypes.string,\r\n id: PropTypes.string,\r\n onClick: PropTypes.func,\r\n}\r\n\r\nPdf.defaultProps = {\r\n type: \"default\",\r\n icon: ,\r\n title: \"button.pdf\",\r\n onClick: () => { },\r\n id: \"btn-pdf\"\r\n}\r\n\r\nexport default injectIntl(Pdf);","import React from 'react'\r\nimport { Button } from 'antd'\r\nimport PropTypes from 'prop-types'\r\nimport { injectIntl } from 'react-intl'\r\nimport { ImportOutlined } from '@ant-design/icons'\r\n\r\nfunction Import(props) {\r\n const title =\r\n props.title === 'button.import' ? props.intl.formatMessage({ id: props.title }) : props.title\r\n return (\r\n \r\n )\r\n}\r\n\r\nImport.propTypes = {\r\n type: PropTypes.string,\r\n icon: PropTypes.object,\r\n title: PropTypes.string,\r\n onClick: PropTypes.func,\r\n id: PropTypes.string,\r\n}\r\n\r\nImport.defaultProps = {\r\n type: 'default',\r\n icon: ,\r\n title: 'button.import',\r\n onClick: () => {},\r\n id: 'btn-import',\r\n}\r\n\r\nexport default injectIntl(Import)\r\n","import React from 'react'\r\nimport { Button } from 'antd'\r\nimport PropTypes from 'prop-types'\r\nimport { injectIntl } from 'react-intl'\r\nimport { ExportOutlined } from '@ant-design/icons'\r\n\r\nfunction Export(props) {\r\n const title =\r\n props.title === 'button.export' ? props.intl.formatMessage({ id: props.title }) : props.title\r\n return (\r\n \r\n )\r\n}\r\n\r\nExport.propTypes = {\r\n type: PropTypes.string,\r\n icon: PropTypes.object,\r\n title: PropTypes.string,\r\n onClick: PropTypes.func,\r\n id: PropTypes.string,\r\n}\r\n\r\nExport.defaultProps = {\r\n type: 'default',\r\n icon: ,\r\n title: 'button.export',\r\n onClick: () => {},\r\n id: 'btn-export',\r\n}\r\n\r\nexport default injectIntl(Export)\r\n","import React from 'react'\r\nimport { Button } from 'antd'\r\nimport PropTypes from 'prop-types'\r\nimport { injectIntl } from 'react-intl'\r\nimport { SendOutlined } from '@ant-design/icons'\r\n\r\nfunction Send(props) {\r\n const title =\r\n props.title === 'button.send' ? props.intl.formatMessage({ id: props.title }) : props.title\r\n return (\r\n \r\n )\r\n}\r\n\r\nSend.propTypes = {\r\n icon: PropTypes.object,\r\n type: PropTypes.string,\r\n title: PropTypes.string,\r\n id: PropTypes.string,\r\n onClick: PropTypes.func,\r\n}\r\n\r\nSend.defaultProps = {\r\n icon: ,\r\n type: 'success',\r\n title: 'button.send',\r\n onClick: () => {},\r\n id: 'btn-send',\r\n}\r\n\r\nexport default injectIntl(Send)\r\n","import React from 'react';\r\nimport { Button } from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\nimport { UpCircleOutlined } from '@ant-design/icons';\r\n\r\nfunction Upgrade(props) {\r\n const title = props.title === 'button.upgrade' ? props.intl.formatMessage({ id: props.title }) : props.title\r\n return (\r\n \r\n {title}\r\n \r\n )\r\n}\r\n\r\nUpgrade.propTypes = {\r\n icon: PropTypes.object,\r\n type: PropTypes.string,\r\n title: PropTypes.string,\r\n id: PropTypes.string,\r\n onClick: PropTypes.func,\r\n}\r\n\r\nUpgrade.defaultProps = {\r\n icon: ,\r\n type: \"success\",\r\n title: \"button.upgrade\",\r\n onClick: () => { },\r\n id: \"btn-upgrade\"\r\n}\r\n\r\nexport default injectIntl(Upgrade);","import React from 'react';\r\nimport { Button } from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\nimport { RollbackOutlined } from '@ant-design/icons';\r\n\r\nfunction Reset(props) {\r\n const title = props.title === 'button.reset' ? props.intl.formatMessage({ id: props.title }) : props.title\r\n return (\r\n \r\n {title}\r\n \r\n )\r\n}\r\n\r\nReset.propTypes = {\r\n type: PropTypes.string,\r\n icon: PropTypes.object,\r\n title: PropTypes.string,\r\n onClick: PropTypes.func,\r\n id: PropTypes.string\r\n}\r\n\r\nReset.defaultProps = {\r\n type: \"primary\",\r\n icon: ,\r\n title: \"button.reset\",\r\n onClick: () => { },\r\n id: \"btn-reset\"\r\n}\r\n\r\nexport default injectIntl(Reset);","import React from 'react';\r\nimport { Button } from 'antd';\r\nimport { injectIntl } from 'react-intl';\r\nimport { DoubleLeftOutlined } from '@ant-design/icons';\r\n\r\nconst BackGhost = injectIntl(({ onClick, intl, ...props }) => {\r\n return (\r\n \r\n {intl.formatMessage({ id: 'button.back' })}\r\n \r\n )\r\n});\r\n\r\nexport default BackGhost;","import React from 'react';\r\nimport { Button } from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\nimport { UnorderedListOutlined } from '@ant-design/icons';\r\n\r\nfunction ShowColumn(props) {\r\n return (\r\n \r\n )\r\n}\r\n\r\nUnarchive.propTypes = {\r\n type: PropTypes.string,\r\n icon: PropTypes.object,\r\n id: PropTypes.string,\r\n onClick: PropTypes.func,\r\n}\r\n\r\nUnarchive.defaultProps = {\r\n type: 'default',\r\n icon: ,\r\n onClick: () => {},\r\n id: 'btn-delete',\r\n}\r\n\r\nexport default injectIntl(Unarchive)\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nexport const getBillingTransaction = (params) => {\r\n const query = stringify(params)\r\n return axios.get(`/billings/transactions?${query}`)\r\n}\r\n\r\nexport const getBillingUpgradeInfo = () => {\r\n return axios.get('/billings/upgrade')\r\n}\r\n\r\nexport const getBillingDowngrade = () => {\r\n return axios.get('/billings/downgrade')\r\n}\r\n\r\nexport const postBillingDowngrade = ({ params }) => {\r\n const query = stringify(params)\r\n return axios.post(`/billings/downgrade?${query}`)\r\n}\r\n\r\nexport const getBillingUpgradeAmount = (params) => {\r\n return axios.get(`/billings/upgrade/amount`, { params })\r\n}\r\n\r\nexport const upgradeBillingPlan = (data) => {\r\n return axios.post('/billings/upgrade', data)\r\n}\r\n\r\nexport const getBillingRevewInfo = () => {\r\n return axios.get('/billings/renew')\r\n}\r\n\r\nexport const getBillingRenewAmount = (params) => {\r\n return axios.get(`/billings/renew/amount`, { params })\r\n}\r\n\r\nexport const deleteBilling = (id) => {\r\n return axios.delete(`/billings/transactions/${id}`)\r\n}\r\n\r\nexport const getBillingToken = (id) => {\r\n return axios.get(`/billings/transactions/${id}/checkout`)\r\n}\r\n\r\nexport const renewBillingPlan = (data) => {\r\n return axios.post('/billings/renew', data)\r\n}\r\n\r\nexport const getBillingAddonInfo = () => {\r\n return axios.get('/billings/addon')\r\n}\r\n\r\nexport const getBillingAddonAmount = (params) => {\r\n return axios.get(`/billings/addon/amount`, {\r\n params,\r\n // paramsSerializer: param => {\r\n // console.log(param);\r\n // return stringify(param)\r\n // }\r\n })\r\n}\r\n\r\nexport const upgradeBillingAddon = (data) => {\r\n return axios.post('/billings/addon', data)\r\n}\r\n\r\nexport const getBillingUsage = () => {\r\n return axios.get('/billings/usage')\r\n}\r\n\r\nexport const getBillingPosAddonAmount = ({ params }) => {\r\n const query = stringify(params)\r\n return axios.get(`/billings/pos/addon/amount?${query}`)\r\n}\r\n\r\nexport const upgradeBillingPosAddon = (data) => {\r\n return axios.post('/billings/pos/addon', data)\r\n}\r\n\r\nexport const checkReferralCode = (data) => {\r\n return axios.post('/billings/checkReferralCode', data)\r\n}\r\n","import axios from 'axios'\r\n\r\nexport const getCanDeletedFinanceTax = () => {\r\n return axios.get('/finance/taxes/canBeDeleted')\r\n}\r\n\r\nexport const addFinanceTax = (data) => {\r\n return axios.post('/finance/taxes', data)\r\n}\r\n\r\nexport const editFinanceTax = (data) => {\r\n return axios.put(`/finance/taxes/${data.id}`, data)\r\n}\r\n\r\nexport const moveFinanceTax = (srcId, destId) => {\r\n return axios.patch(`/finance/taxes/${srcId}/move`, { dest_id: destId })\r\n}\r\n\r\nexport const activateFinanceTax = (id) => {\r\n return axios.patch(`/finance/taxes/${id}/activate`)\r\n}\r\n\r\nexport const deactivateFinanceTax = (id) => {\r\n return axios.patch(`/finance/taxes/${id}/deactivate`)\r\n}\r\n\r\nexport const getFinanceTax = (id) => {\r\n return axios.get(`/finance/taxes/${id}`)\r\n}\r\n\r\nexport const deleteFinanceTax = (id) => {\r\n return axios.delete(`/finance/taxes/${id}`)\r\n}\r\n\r\nexport const calculateTaxGroupTotal = (data) => {\r\n return axios.post('/finance/taxes/calculate-tax-group-total', data)\r\n}\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"emptyImageHeight\":\"empty_emptyImageHeight__nXPDB\",\"emptyImage\":\"empty_emptyImage__2CpmN\",\"empty\":\"empty_empty__2Cm0w\",\"emptyTitle\":\"empty_emptyTitle__Hs-xq\",\"emptyDescription\":\"empty_emptyDescription__3eNwo\",\"hasAppendDescription\":\"empty_hasAppendDescription__1VZuW\",\"emptyAddButton\":\"empty_emptyAddButton__jTX7q\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"widget-trend-up-down_container__30AQ6\",\"amount\":\"widget-trend-up-down_amount__1SeZo\",\"amountDark\":\"widget-trend-up-down_amountDark__2nRSH\",\"numOfTransactions\":\"widget-trend-up-down_numOfTransactions__2Uy55\",\"statistic\":\"widget-trend-up-down_statistic__1tz8Y\",\"percent\":\"widget-trend-up-down_percent__mJnJD\",\"descriptionBottomRight\":\"widget-trend-up-down_descriptionBottomRight__1FfCl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"item\":\"style_item__2PjqH\",\"itemSeparator\":\"style_itemSeparator__3yy_8\",\"itemTime\":\"style_itemTime__fbE-M\",\"itemContent\":\"style_itemContent__3JQ93\",\"donut\":\"style_donut__1sE-K\",\"md\":\"style_md__2Jy6V\",\"default\":\"style_default__dCa6j\",\"primary\":\"style_primary__1bY-c\",\"secondary\":\"style_secondary__1j7UP\",\"success\":\"style_success__hswS-\",\"warning\":\"style_warning__36Er_\",\"danger\":\"style_danger__3ntgQ\",\"info\":\"style_info__1YM3x\",\"yellow\":\"style_yellow__1ViRL\",\"orange\":\"style_orange__2kxrU\",\"gray2\":\"style_gray2__2OmfN\"};","import { useSelector } from 'react-redux'\r\n\r\nimport { termTitleSelector, userSelector } from 'redux/selectors'\r\n\r\n/**\r\n * @description use https://www.npmjs.com/package/pluralize\r\n * if the english term is can be change from user\r\n *\r\n * @param intl\r\n * @returns {{reference: string, product: string, vendor: string, tag: string, customer: string}}\r\n */\r\nexport const getPluralize = ({ intl }) => ({\r\n customer: `${intl.formatMessage({ id: 'report.customer' })}s`,\r\n tag: `${intl.formatMessage({ id: 'financeTag.financeTag' })}s`,\r\n reference: `${intl.formatMessage({ id: 'report.reference' })}s`,\r\n vendor: `${intl.formatMessage({ id: 'report.vendor' })}s`,\r\n product: `${intl.formatMessage({ id: 'report.product' })}s`,\r\n sales_person: intl.formatMessage({ id: 'salesPerson.sales_person' }),\r\n payable: intl.formatMessage({ id: 'creditMemo.credit_memo' }),\r\n receivable: intl.formatMessage({ id: 'debitMemo.debit_memo' }),\r\n})\r\n\r\nexport const getTerm = ({ intl, term, plural }) => {\r\n if (plural) {\r\n return getPluralize({ intl })\r\n }\r\n\r\n return {\r\n customer: term?.customer ?? intl.formatMessage({ id: 'report.customer' }),\r\n tag: term?.tag ?? intl.formatMessage({ id: 'financeTag.financeTag' }),\r\n reference: term?.reference ?? intl.formatMessage({ id: 'report.reference' }),\r\n vendor: term?.vendor ?? intl.formatMessage({ id: 'report.vendor' }),\r\n product: term?.product ?? intl.formatMessage({ id: 'report.product' }),\r\n sales_person: term?.sales_person ?? intl.formatMessage({ id: 'salesPerson.sales_person' }),\r\n payable: term?.payable ?? intl.formatMessage({ id: 'creditMemo.credit_memo' }),\r\n receivable: term?.receivable ?? intl.formatMessage({ id: 'debitMemo.debit_memo' }),\r\n }\r\n}\r\n\r\nconst useTerm = ({ intl, plural }) => {\r\n const term = useSelector(termTitleSelector)\r\n const user = useSelector(userSelector)\r\n\r\n return getTerm({ intl, term, plural: plural && user?.lang === 'en-US' })\r\n}\r\n\r\nexport default useTerm\r\n","import React from 'react';\r\nimport { injectIntl } from 'react-intl';\r\nimport YouTube from \"react-youtube\";\r\nimport './style.css';\r\n\r\nconst Player = ({ videoId, options, autoplay = 1, ...props }) => {\r\n const opts = {\r\n height: '100%',\r\n width: '100%',\r\n playerVars: {\r\n // https://developers.google.com/youtube/player_parameters\r\n autoplay,\r\n mute: 0,\r\n },\r\n ...options,\r\n };\r\n\r\n return (\r\n \r\n )\r\n};\r\n\r\nconst Component = injectIntl(Player);\r\nexport default React.memo(Component);\r\n","export const updateObject = (oldObject, updatedProperties) => {\r\n return {\r\n ...oldObject,\r\n ...updatedProperties,\r\n }\r\n}\r\n","import React from 'react'\r\nimport { setSettingsToLocalStorage } from 'utils/localStorage'\r\n\r\nconst AppContext = React.createContext()\r\nconst initialStates = {\r\n isMobileMenuOpen: false,\r\n isMenuCollapsed: false,\r\n};\r\n\r\nfunction AppProvider({value = {settings: {}}, ...props}) {\r\n const [settings, setSettings] = React.useState({...initialStates, ...value?.settings})\r\n\r\n const defaultValue = React.useMemo(\r\n () => ({\r\n settings,\r\n onChangeSettings: (payload) => {\r\n setSettings((prevState) => ({ ...prevState, ...payload }))\r\n setSettingsToLocalStorage(payload)\r\n },\r\n }),\r\n [settings],\r\n )\r\n\r\n return \r\n}\r\n\r\nfunction useApp() {\r\n const context = React.useContext(AppContext)\r\n\r\n if (!context) {\r\n throw new Error('useApp must be used within a AppProvider')\r\n }\r\n\r\n return context\r\n}\r\n\r\nfunction AppConsumer({ children }) {\r\n return (\r\n \r\n {(context) => {\r\n if (context === undefined) {\r\n throw new Error('AppConsumer must be used within a AppProvider')\r\n }\r\n return children(context)\r\n }}\r\n \r\n )\r\n}\r\n\r\nconst withAppConsumer = (WrappedComponent) => {\r\n // eslint-disable-next-line\r\n const HOC = class extends React.Component {\r\n render() {\r\n return (\r\n \r\n {(context) => }\r\n \r\n )\r\n }\r\n }\r\n\r\n return HOC\r\n}\r\n\r\nexport { AppProvider, useApp, withAppConsumer }\r\n","import axios from 'axios'\r\n\r\nexport const getCanDeletedFinanceUnit = () => {\r\n return axios.get('/finance/units/canBeDeleted')\r\n}\r\n\r\nexport const addFinanceUnit = (data) => {\r\n return axios.post('/finance/units', data)\r\n}\r\n\r\nexport const editFinanceUnit = (data) => {\r\n return axios.put(`/finance/units/${data.id}`, data)\r\n}\r\n\r\nexport const moveFinanceUnit = (srcId, destId) => {\r\n return axios.patch(`/finance/units/${srcId}/move`, { dest_id: destId })\r\n}\r\n\r\nexport const getFinanceUnit = (id) => {\r\n return axios.get(`/finance/units/${id}`)\r\n}\r\n\r\nexport const deleteFinanceUnit = (id) => {\r\n return axios.delete(`/finance/units/${id}`)\r\n}\r\n","import axios from 'axios'\r\n\r\nexport const getPriceRules = (params) => {\r\n return axios.get('/finance/priceRules', { params })\r\n}\r\n\r\nexport const addPriceRule = (data) => {\r\n return axios.post('/finance/priceRules', data)\r\n}\r\n\r\nexport const editPriceRule = (data) => {\r\n return axios.put(`/finance/priceRules/${data.id}`, data)\r\n}\r\n\r\nexport const getPriceRule = (id) => {\r\n return axios.get(`/finance/priceRules/${id}`)\r\n}\r\n\r\nexport const deletePriceRule = (id) => {\r\n return axios.delete(`/finance/priceRules/${id}`)\r\n}\r\n","import colors from 'components/apps/FinanceAccounts/Charts/colors'\r\n\r\nconst transType = {\r\n EXPENSE: 1,\r\n PURCHASE_ORDER: 2,\r\n PURCHASE_INVOICE: 3,\r\n QUOTE: 4,\r\n INVOICE: 5,\r\n ORDER: 6,\r\n DELIVERY: 7,\r\n RETURN: 9,\r\n SPEND_MONEY: 11,\r\n RECEIVE_MONEY: 12,\r\n SEND_TRANSFER: 13,\r\n RECEIVE_TRANSFER: 14,\r\n EXPENSE_PAYMENT: 15,\r\n PURCHASE_PAYMENT: 16,\r\n RECEIVE_INVOICE_PAYMENT: 17,\r\n BANK_REVERSAL: 18,\r\n BANK_OPENING_BALANCE: 19,\r\n REGISTER_FIXED_ASSET: 20,\r\n BANK_MANUAL_JOURNAL: 32,\r\n REVERSAL: 21,\r\n OPENING_BALANCE: 22,\r\n RECEIVE_SALES_ORDER_PAYMENT: 23,\r\n CREDIT_MEMO_PAYMENT: 24,\r\n DEBIT_MEMO_PAYMENT: 25,\r\n BANK_CREDIT_MEMO: 26,\r\n BANK_DEBIT_MEMO: 27,\r\n PURCHASE_ORDER_PAYMENT: 28,\r\n PAYMENT_RECAP: 29,\r\n MANUAL_JOURNAL: 31,\r\n INVOICE_WITHOLDING: 33,\r\n PURCHASE_INVOICE_WITHOLDING: 34,\r\n CREATE_FIXED_ASSET: 41,\r\n INITIAL_DEPRECIATION: 42,\r\n DEPRECIATION: 43,\r\n DISPOSAL: 44,\r\n WAREHOUSE_TRANSFER: 51,\r\n STOCK_ADJUSTMENT: 52,\r\n PRODUCT_CONVERSION: 53,\r\n CREDIT_MEMO: 61,\r\n DEBIT_MEMO: 62,\r\n PURCHASE_QUOTE: 63,\r\n PURCHASE_DELIVERY: 8,\r\n PURCHASE_RETURN: 64,\r\n CLOSING: 71,\r\n USER: 1001,\r\n TRANSLATION: 1002,\r\n ROLE: 1003,\r\n OPTION: 1005,\r\n WAREHOUSE: 1006,\r\n TERM: 1007,\r\n TAX: 1008,\r\n PRODUCT: 1009,\r\n PRODUCT_CATEGORY: 1010,\r\n NUMBER: 1011,\r\n LAYOUT_INVOICE: 1012,\r\n FIXED_ASSET: 1013,\r\n CONVERSION_BALANCE: 1014,\r\n CONTACT: 1015,\r\n GROUP_CONTACT: 1020,\r\n ACCOUNT: 1017,\r\n BILLING: 1019,\r\n CASH_BANK: 1100,\r\n RECURRING_INVOICE: 1101,\r\n RECURRING_ORDER: 1102,\r\n RECURRING_PURCHASEINVOICE: 1103,\r\n RECURRING_PURCHASEORDER: 1104,\r\n RECURRING_EXPENSE: 1105,\r\n RECURRING_MANUALJOURNAL: 1106,\r\n RECURRING_CASHBANK: 1107,\r\n TAG: 1108,\r\n INVOICE_PAYMENT_CREDIT_MEMO: 81,\r\n PURCHASE_INVOICE_PAYMENT_DEBIT_MEMO: 82,\r\n UNREALIZED_GAIN: 73,\r\n SALES_SHIPPING_COSTS: 85,\r\n PURCHASE_SHIPPING_COSTS: 86,\r\n // transType from FE\r\n REPORT_SALES_PER_SALES_PERSON: 'REPORT_SALES_PER_SALES_PERSON',\r\n SCHEDULER_LOCK_DATE: 1042,\r\n}\r\n\r\nconst dbFormat = 'YYYY-MM-DD'\r\nconst paymentConst = {\r\n UNPAID: 1,\r\n PARTIAL: 2,\r\n PAID: 3,\r\n}\r\n\r\nconst bankTransStatus = {\r\n RECONCILED: 32,\r\n UNRECONCILED: 31,\r\n VOID: 113,\r\n WAITING: 111,\r\n REJECT: 112,\r\n}\r\n\r\nconst statusColors = [\r\n { id: transType.UNRECONCILED, color: '#CF2A28' },\r\n { id: transType.RECONCILED, color: '#11A428' },\r\n { id: paymentConst.UNPAID, name: 'Unpaid', color: '#CF2A28' },\r\n { id: paymentConst.PARTIAL, name: 'Partial', color: '#EB9234' },\r\n { id: paymentConst.PAID, name: 'Paid', color: '#11A428' },\r\n { id: bankTransStatus.VOID, name: 'Void', color: '#ADC2D0' },\r\n]\r\n\r\nconst permissions = {\r\n INVOICES_ADD: 'invoices_add',\r\n INVOICES_EDIT: 'invoices_edit',\r\n INVOICES_DELETE: 'invoices_delete',\r\n}\r\n\r\nconst productBundleType = {\r\n GENERAL: 0,\r\n PACKAGE: 1,\r\n MANUFACTURE: 2,\r\n}\r\n\r\nconst everyType = {\r\n MONTH: 2,\r\n WEEK: 1,\r\n}\r\n\r\nconst availableTransType = [\r\n transType.INVOICE,\r\n transType.ORDER,\r\n transType.PURCHASE_INVOICE,\r\n transType.PURCHASE_ORDER,\r\n transType.EXPENSE,\r\n transType.MANUAL_JOURNAL,\r\n transType.CASH_BANK,\r\n]\r\n\r\nconst fallbackImage =\r\n 'data:image/png;base64,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'\r\n\r\nconst customColumnTypes = {\r\n TEXT: 1,\r\n NUMBER: 2,\r\n CURRENCY: 3,\r\n DATE: 4,\r\n OPTIONS: 5,\r\n CHECKLIST: 6,\r\n}\r\n\r\nconst priceRuleTypes = {\r\n MIN_QT: 0,\r\n MIN_AMOUNT: 1,\r\n}\r\n\r\n// Default transaction penjualan dan pembelian\r\nconst defaultTransItem = {\r\n finance_account_id: undefined,\r\n qty: 1,\r\n price: 0,\r\n tax_id: '',\r\n desc: null,\r\n amount: 0,\r\n tax_manual: 0,\r\n discount_percent: 0,\r\n unit_id: undefined,\r\n product_units: [],\r\n stock: 0,\r\n}\r\n\r\nconst allowedLocales = ['en-US', 'id-ID']\r\n\r\nconst contactType = {\r\n 1: {\r\n name: 'Vendor',\r\n color: colors[0],\r\n },\r\n 2: {\r\n name: 'Employee',\r\n color: colors[2],\r\n },\r\n 3: {\r\n name: 'Customer',\r\n color: colors[3],\r\n },\r\n 4: {\r\n name: 'Other',\r\n color: colors[12],\r\n },\r\n}\r\n\r\nexport {\r\n allowedLocales,\r\n contactType,\r\n transType,\r\n statusColors,\r\n dbFormat,\r\n paymentConst,\r\n permissions,\r\n productBundleType,\r\n everyType,\r\n availableTransType,\r\n bankTransStatus,\r\n fallbackImage,\r\n customColumnTypes,\r\n priceRuleTypes,\r\n defaultTransItem,\r\n}\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"npsContainer\":\"style_npsContainer__CjA94\",\"closeBtn\":\"style_closeBtn__20TTs\",\"char\":\"style_char__1p6x9\",\"focusedChar\":\"style_focusedChar__3V3bB\",\"tooltipWrapper\":\"style_tooltipWrapper__1NTfN\",\"formWrapper\":\"style_formWrapper__2xjXA\",\"showForm\":\"style_showForm__2HlCG\"};","import axios from 'axios'\r\n\r\nexport const getRoles = () => {\r\n return axios.get(`/roles`)\r\n}\r\n\r\nexport const getDeletableRoles = () => {\r\n return axios.get(`/roles/deletable`)\r\n}\r\n\r\nexport const getRole = (id) => {\r\n return axios.get(`/roles/${id}`)\r\n}\r\n\r\nexport const addRole = (data) => {\r\n return axios.post(`/roles`, data)\r\n}\r\n\r\nexport const updateRole = (data, id) => {\r\n return axios.put(`/roles/${id}`, data)\r\n}\r\n\r\nexport const deleteRole = (id) => {\r\n return axios.delete(`/roles/${id}`)\r\n}\r\n\r\nexport const moveRole = (data) => {\r\n return axios.patch(`/roles/${data.id}/move`, data)\r\n}\r\n","import React from 'react'\r\nimport currencyFormatter from 'currency-formatter'\r\nimport { useSelector } from 'react-redux'\r\nimport { Input, InputNumber } from 'antd'\r\nimport CurrencyInput from 'react-number-format'\r\nimport dayjs from 'dayjs'\r\nimport localStore from 'store'\r\nimport _ from 'lodash'\r\n\r\nimport { optionsSelector } from 'redux/selectors'\r\nimport { store } from 'index'\r\n\r\nexport const currency = (\r\n val,\r\n unformat = false,\r\n symbolNon = false,\r\n ifNull = false,\r\n precision,\r\n symbolDefault,\r\n skipPrefix,\r\n) => {\r\n const { options } = store.getState().options\r\n let symbol = ''\r\n // tidak terpakai, karena sudah menggunakan alurbisnis\r\n if (symbolNon) {\r\n symbol = ''\r\n }\r\n\r\n if (options.show_property_currency_symbol === 1) {\r\n if (symbolDefault) {\r\n symbol = symbolDefault\r\n } else {\r\n symbol = options.property_currency_symbol ? `${options.property_currency_symbol} ` : 'Rp '\r\n }\r\n }\r\n\r\n if (skipPrefix) {\r\n symbol = ''\r\n }\r\n\r\n if (precision === undefined) {\r\n if (options.property_decimal !== null) {\r\n precision = options.property_decimal\r\n } else {\r\n precision = 0\r\n }\r\n }\r\n\r\n let format = { symbol, decimal: '.', precision: 0 }\r\n if (options.property_currency_format === '0.,') {\r\n format = { symbol, thousand: '.', precision: 0 }\r\n } else if (options.property_currency_format === '2-.') {\r\n format = { symbol, thousand: '', decimal: '.', precision }\r\n } else if (options.property_currency_format === '2-,') {\r\n format = { symbol, thousand: '', decimal: ',', precision }\r\n } else if (options.property_currency_format === '2.,') {\r\n format = { symbol, thousand: '.', decimal: ',', precision }\r\n } else if (options.property_currency_format === '2,.') {\r\n format = { symbol, thousand: ',', decimal: '.', precision }\r\n } else if (options.property_currency_format === '2 .') {\r\n format = { symbol, thousand: ' ', decimal: '.', precision }\r\n } else if (options.property_currency_format === '2 ,') {\r\n format = { symbol, thousand: ' ', decimal: ',', precision }\r\n }\r\n let result\r\n if (unformat) {\r\n val = `${val || ''}`.split(format.thousand || '').join('')\r\n result = currencyFormatter.unformat(val || 0, format)\r\n } else {\r\n result = currencyFormatter.format(val || 0, format)\r\n }\r\n\r\n if (ifNull && result === '0') {\r\n return '-'\r\n }\r\n if (unformat === 'format') {\r\n return format\r\n }\r\n return result\r\n}\r\n\r\nexport const InputCurrency = React.forwardRef(\r\n ({ onBlur, onPressEnter, onFocus, onChange, showPrefix, className, ...props }, ref) => {\r\n const options = useSelector(optionsSelector)\r\n let format = currency(0, 'format', !showPrefix, false, 0, '', true)\r\n\r\n const onFocusHandler = React.useCallback(\r\n (e) => {\r\n e.target.select()\r\n if (onFocus) {\r\n onFocus(e)\r\n }\r\n },\r\n [onFocus],\r\n )\r\n\r\n const onKeyDownHandler = React.useCallback(\r\n (e) => {\r\n if (e.keyCode === 13) {\r\n if (onPressEnter) {\r\n onPressEnter(e.target.value, currency(e.target.value, true))\r\n }\r\n }\r\n },\r\n [onPressEnter],\r\n )\r\n\r\n const onBlurHandler = React.useCallback(\r\n (e) => {\r\n if (onBlur) {\r\n onBlur(e.target.value, currency(e.target.value, true))\r\n }\r\n },\r\n [onBlur],\r\n )\r\n\r\n format = {\r\n defaultValue: 0,\r\n decimalSeparator: format.decimal,\r\n thousandSeparator: format.thousand,\r\n prefix: format.symbol,\r\n className: `input-app-currency ${className}`,\r\n style: { paddingTop: 0, paddingBottom: 0, height: 32, textAlign: 'right' },\r\n onKeyDown: onKeyDownHandler,\r\n onBlur: onBlurHandler,\r\n decimalScale: options?.property_currency === 'IDR' ? 4 : 6,\r\n ...props,\r\n onChange: (e) => onChange(e.target.value, currency(e.target.value, true)),\r\n // isNumericString: true,\r\n onFocus: onFocusHandler,\r\n }\r\n\r\n return \r\n },\r\n)\r\n\r\nexport const InputDiscount = React.forwardRef((props, ref) => {\r\n return (\r\n `${value}%`}\r\n parser={(value) => value.replace('%', '')}\r\n {...props}\r\n />\r\n )\r\n})\r\n\r\n// [\r\n// { \"value\": \"2-.\", \"name\": \"1000.00\" },\r\n// { \"value\": \"2-,\", \"name\": \"1000,00\" },\r\n// { \"value\": \"2.,\", \"name\": \"1.000,00\" },\r\n// { \"value\": \"2,.\", \"name\": \"1,000.00\" },\r\n// { \"value\": \"2 .\", \"name\": \"1 000.00\" },\r\n// { \"value\": \"2 ,\", \"name\": \"1 000,00\" },\r\n// { \"value\": \"0.,\", \"name\": \"1.000\" }\r\n// ]\r\n\r\nexport const formatDate = (date = new Date(), format) => {\r\n const { options } = store.getState().options\r\n\r\n return dayjs(date).format(format || options.property_date_format)\r\n}\r\n\r\n/**\r\n *\r\n * @param date\r\n * @returns {string|null}\r\n */\r\nexport const toDbFormat = (date) =>\r\n dayjs(date).isValid() ? dayjs(date).format('YYYY-MM-DD') : null\r\n\r\nexport const formatTime = (date = new Date()) => {\r\n const { options } = store.getState().options\r\n\r\n return dayjs(date).format(options.property_time_format)\r\n}\r\n\r\nexport const stringDateToMoment = (date) => {\r\n const castToMoment = dayjs(date)\r\n return castToMoment.isValid() ? castToMoment : dayjs()\r\n}\r\n\r\nexport const formatDateText = () =>\r\n (store.getState().options &&\r\n store.getState().options.options &&\r\n store.getState().options.options.property_date_format) ||\r\n 'YYYY-MM-DD'\r\n\r\n// export const formatTimeText = () =>\r\n// (store.getState().options &&\r\n// store.getState().options.options &&\r\n// store.getState().options.options.property_time_format) ||\r\n// 'HH:mm'\r\n\r\nexport const isObject = (value) => {\r\n return value && typeof value === 'object' && value.constructor === Object\r\n}\r\n\r\nexport const qtyToCurrency = (props) => {\r\n let value = props\r\n const options = {}\r\n if (_.isObject(props)) {\r\n // eslint-disable-next-line prefer-destructuring\r\n value = props.value\r\n options.precision = props.precision\r\n }\r\n\r\n // angka di belakang koma dibatasi max 10 karna di js 0.1 + 0.2 === 0.30000000000000004\r\n // more info: https://javascript.info/number#imprecise-calculations\r\n const qty = parseFloat(parseFloat(value).toFixed(10))\r\n const result = qty - Math.floor(qty) !== 0\r\n if (result) {\r\n const count = qty.toString().split('.')[1]\r\n let precision = 2\r\n if (count) {\r\n precision = count.length\r\n }\r\n return currency(qty, false, true, false, options.precision || precision, '', true)\r\n }\r\n\r\n return currency(qty, false, true, false, 0, '', true)\r\n}\r\n\r\nexport const qtyToCurrencyAutoComma = ({ value, maxPrecision }) => {\r\n const newValue = parseFloat(parseFloat(value).toFixed(10))\r\n const precision = `${newValue}`.includes('.') ? `${newValue}`.split('.')[1].length : 0\r\n\r\n return currency(\r\n newValue,\r\n false,\r\n true,\r\n false,\r\n typeof maxPrecision === 'number'\r\n ? precision > maxPrecision\r\n ? maxPrecision\r\n : precision\r\n : precision,\r\n '',\r\n true,\r\n )\r\n}\r\n\r\n/**\r\n *\r\n * @param value {string}\r\n * @param lowercaseAllFirst {boolean}\r\n * @returns {string}\r\n */\r\nexport const capitalizeFirstLetter = ({ value, lowercaseAllFirst }) => {\r\n let newValue = value\r\n\r\n if (lowercaseAllFirst) newValue = newValue.toLowerCase()\r\n\r\n return newValue.charAt(0).toUpperCase() + newValue.slice(1)\r\n}\r\n\r\nconst staticTranslation = {\r\n 'id-ID': {\r\n 'email.email_confirmation': 'Konfirmasi Email',\r\n 'email.email_template': 'Template Email',\r\n settings: 'Pengaturan',\r\n add: 'Tambah',\r\n edit: 'Ubah',\r\n detail: 'Detil',\r\n purchase_invoice: 'Tagihan Pembelian',\r\n purchase_order: 'Pesanan Pembelian',\r\n quote: 'Penawaran',\r\n invoice: 'Tagihan',\r\n tax: 'Pajak',\r\n transactions: 'Transaksi',\r\n bankstatements: 'Bank Statement',\r\n reconcile: 'Rekonsiliasi',\r\n 'report.reports': 'Laporan',\r\n 'report.financial': 'Finansial',\r\n 'report.balance_sheet': 'Neraca',\r\n 'report.cash_summary': 'Ringkasan Uang Tunai',\r\n 'report.executive_summary': 'Ringkasan Eksekutif',\r\n 'report.sales_tax_report': 'Laporan Pajak Penjualan',\r\n 'report.accounting': 'Akuntansi',\r\n 'report.aged_receivables': 'Umur Piutang',\r\n 'report.customer_invoice_report': 'Laporan Tagihan Pelanggan',\r\n 'report.aged_payables': 'Umur Hutang',\r\n 'report.supplier_invoice_report': 'Laporan Tagihan Vendor',\r\n 'report.purchases_per_supplier': 'Pembelian per Vendor',\r\n 'report.cash_flow': 'Arus Kas',\r\n 'report.net_cash_flows_from_': 'Arus kas bersih dari ',\r\n 'report.direct_method': 'Metode Langsung',\r\n 'report.indirect_method': 'Metode Tak Langsung',\r\n 'report.please_select': 'Silahkan Pilih',\r\n 'report.cash_and_cash_equivalent': 'Kas dan Setara Kas',\r\n 'report.cash_and_cash_equivalent_at_beginning_period': 'Kas dan setara kas di awal periode',\r\n 'report.cash_and_cash_equivalent_at_end_period': 'Kas dan setara kas di akhir periode',\r\n 'report.net_change_in_cash_for_period': 'Perubahan kas untuk periode',\r\n 'report.net_cash_flows': 'Arus kas bersih',\r\n 'report.equity_movement': 'Pergerakan Ekuitas',\r\n 'report.beginning': 'Awal',\r\n 'report.ending': 'Akhir',\r\n 'report.net_movement': 'Pergerakan Bersih',\r\n 'report.account_transactions': 'Transaksi Akun',\r\n 'approvals.waiting_for_approval': 'Menunggu Persetujuan',\r\n 'approvals.rejected': 'Ditolak',\r\n },\r\n 'en-US': {\r\n 'email.email_confirmation': 'Email Confirmation',\r\n 'email.email_template': 'Email Template',\r\n settings: 'Settings',\r\n add: 'Add',\r\n edit: 'Edit',\r\n detail: 'Detail',\r\n purchase_invoice: 'Purchase Invoice',\r\n purchase_order: 'Purchase Order',\r\n quote: 'Quote',\r\n invoice: 'Invoice',\r\n tax: 'Tax',\r\n transactions: 'Transactions',\r\n bankstatements: 'Bank Statements',\r\n reconcile: 'Reconcile',\r\n 'report.reports': 'Reports',\r\n 'report.financial': 'Financial',\r\n 'report.balance_sheet': 'Balance Sheet',\r\n 'report.cash_summary': 'Cash Summary',\r\n 'report.executive_summary': 'Executive Summary',\r\n 'report.sales_tax_report': 'Sales Tax Report',\r\n 'report.accounting': 'Accounting',\r\n 'report.aged_receivables': 'Aged Receivables',\r\n 'report.customer_invoice_report': 'Customer Invoice Report',\r\n 'report.aged_payables': 'Aged Payables',\r\n 'report.supplier_invoice_report': 'Supplier Invoice Report',\r\n 'report.purchases_per_supplier': 'Purchases per Supplier',\r\n 'report.cash_flow': 'Cash Flow',\r\n 'report.net_cash_flows_from_': 'Net cash flows from ',\r\n 'report.direct_method': 'Direct Method',\r\n 'report.indirect_method': 'Indirect Method',\r\n 'report.please_select': 'Please select',\r\n 'report.cash_and_cash_equivalent': 'Cash and Cash Equivalent',\r\n 'report.cash_and_cash_equivalent_at_beginning_period':\r\n 'Cash and cash equivalent at beginning of period',\r\n 'report.cash_and_cash_equivalent_at_end_period': 'Cash and cash equivalent at end of period',\r\n 'report.net_change_in_cash_for_period': 'Net change in cash for period',\r\n 'report.net_cash_flows': 'Net cash flows',\r\n 'report.equity_movement': 'Movement in Equity',\r\n 'report.beginning': 'Beginning',\r\n 'report.ending': 'Ending',\r\n 'report.net_movement': 'Net Movement',\r\n 'report.account_transactions': 'Account Transaction',\r\n 'approvals.waiting_for_approval': 'Waiting for Approval',\r\n 'approvals.rejected': 'Rejected',\r\n },\r\n}\r\n\r\nexport const appMessage = (id) => {\r\n const locale = localStore.get('app.settings.locale')\r\n if (staticTranslation[locale]) {\r\n return staticTranslation[locale][id] ? staticTranslation[locale][id] : id\r\n }\r\n\r\n return id\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nexport const getUsers = (payload) => {\r\n const query = stringify(payload)\r\n return axios.get(`/users?${query}`)\r\n}\r\n\r\nexport const addUser = (data) => {\r\n return axios.post(`/users`, data)\r\n}\r\n\r\nexport const updateUser = (data, id) => {\r\n return axios.put(`/users/${id}`, data)\r\n}\r\n\r\nexport const deleteUser = (id) => {\r\n return axios.delete(`/users/${id}`)\r\n}\r\n\r\nexport const resendInvitation = ({ id }) => {\r\n return axios.post(`/users/resendInvitation/${id}`)\r\n}\r\n","import axios from 'axios'\r\n\r\n// export const getInvoicePaymentCreditMemos = (params) => {\r\n// return axios.get('/finance/invoicePaymentCreditMemos', { params })\r\n// }\r\n\r\nexport const addInvoicePaymentCreditMemo = (data) => {\r\n return axios.post('/finance/invoicePaymentCreditMemos', data)\r\n}\r\n\r\nexport const editInvoicePaymentCreditMemo = (data) => {\r\n return axios.put(`/finance/invoicePaymentCreditMemos/${data.id}`, data)\r\n}\r\n\r\nexport const getInvoicePaymentCreditMemo = (id) => {\r\n return axios.get(`/finance/invoicePaymentCreditMemos/${id}`)\r\n}\r\n\r\nexport const deleteInvoicePaymentCreditMemo = (id) => {\r\n return axios.delete(`/finance/invoicePaymentCreditMemos/${id}`)\r\n}\r\n\r\nexport const getInvoicePaymentCreditMemoLogs = (id, params) => {\r\n return axios.get(`/finance/invoicePaymentCreditMemos/${id}/logs`, { params })\r\n}\r\n","import axios from 'axios'\r\n\r\n// export const getPurchaseInvoicePaymentDebitMemos = (params) => {\r\n// return axios.get('/finance/purchaseInvoicePaymentDebitMemos', { params })\r\n// }\r\n\r\nexport const addPurchaseInvoicePaymentDebitMemo = (data) => {\r\n return axios.post('/finance/purchaseInvoicePaymentDebitMemos', data)\r\n}\r\n\r\nexport const editPurchaseInvoicePaymentDebitMemo = (data) => {\r\n return axios.put(`/finance/purchaseInvoicePaymentDebitMemos/${data.id}`, data)\r\n}\r\n\r\nexport const getPurchaseInvoicePaymentDebitMemo = (id) => {\r\n return axios.get(`/finance/purchaseInvoicePaymentDebitMemos/${id}`)\r\n}\r\n\r\nexport const deletePurchaseInvoicePaymentDebitMemo = (id) => {\r\n return axios.delete(`/finance/purchaseInvoicePaymentDebitMemos/${id}`)\r\n}\r\n\r\nexport const getPurchaseInvoicePaymentDebitMemoLogs = (id, params) => {\r\n return axios.get(`/finance/purchaseInvoicePaymentDebitMemos/${id}/logs`, { params })\r\n}\r\n","import axios from 'axios'\r\n\r\nimport { markAsRead as markAsReadApi } from 'utils/apis'\r\nimport * as actionTypes from 'redux/actionTypes'\r\n\r\nexport const setBroadcast = (payload) => (dispatch) => {\r\n dispatch({\r\n type: actionTypes.SET_BROADCAST,\r\n payload,\r\n })\r\n}\r\n\r\nexport const clearBroadcast = () => (dispatch) => {\r\n dispatch({\r\n type: actionTypes.CLEAR_BROADCAST,\r\n })\r\n}\r\n\r\nexport const showBroadcast = () => (dispatch) => {\r\n dispatch({\r\n type: actionTypes.SHOW_BROADCAST,\r\n })\r\n}\r\n\r\nexport const hideBroadcast = () => (dispatch) => {\r\n dispatch({\r\n type: actionTypes.HIDE_BROADCAST,\r\n })\r\n}\r\n\r\nexport const markAsReadBroadcastRedux = (payload) => (dispatch) => {\r\n dispatch({\r\n type: actionTypes.MARKASREAD_BROADCAST,\r\n payload,\r\n })\r\n}\r\n\r\nexport const markAsRead = (payload) => {\r\n return (dispatch) => {\r\n dispatch(markAsReadBroadcastRedux(payload))\r\n return axios.all(payload.data.map((id) => markAsReadApi(id)))\r\n }\r\n}\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"footer\":\"style_footer__MUAH5\",\"inner\":\"style_inner__1V-BG\",\"downloadImg\":\"style_downloadImg__2j9_r\",\"bottom\":\"style_bottom__10JjP\",\"copyright\":\"style_copyright__1bpAs\"};","import React, { useEffect } from 'react'\r\nimport { injectIntl } from 'react-intl'\r\nimport { push } from 'connected-react-router'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport _ from 'lodash'\r\nimport { Modal, Typography } from 'antd'\r\nimport { UpCircleOutlined } from '@ant-design/icons'\r\n\r\nimport { checkPermission } from 'redux/user/selectors'\r\nimport { Cancel, Upgrade } from 'components/UI'\r\nimport { isFeatureChampion, isFeatureElite } from 'utils/helper'\r\nimport { billingPosSelector, billingSelector } from 'redux/selectors'\r\nimport './style.scss'\r\n\r\nconst UpgradeBilling = injectIntl(({ label, isPos, intl }) => {\r\n const isHasAccess = useSelector((state) => checkPermission(state, 'billing'))\r\n const dispatch = useDispatch()\r\n\r\n const onPush = (path) => dispatch(push(path))\r\n\r\n return (\r\n
\r\n \r\n {label}\r\n \r\n {isPos && (\r\n onPush('/settings/billing/pos?isRenew=1')}\r\n icon={}\r\n />\r\n )}\r\n {isHasAccess && !isPos && (\r\n onPush('/settings/billing/upgrade')}\r\n className=\"ml-3\"\r\n />\r\n )}\r\n
\r\n )\r\n})\r\n\r\n// Disable hidden feature\r\nconst HideFeature = (props) => {\r\n const {\r\n code = '',\r\n feature = '',\r\n intl,\r\n currentCount,\r\n maxCode,\r\n maxFeature = '',\r\n forceHiddenFeature,\r\n isFeatureOnlyAccess,\r\n asModal,\r\n modalProps = {},\r\n children = null,\r\n center,\r\n onlyPaidPlan,\r\n isPos,\r\n byPassCanBeAddoned = false, // Sementara untuk kebutuhan POS\r\n } = props\r\n\r\n const billing = useSelector(billingSelector)\r\n const billingPos = useSelector(billingPosSelector)\r\n\r\n const dispatch = useDispatch()\r\n\r\n useEffect(() => {\r\n if (isPos && billingPos?.status?.id === 0) {\r\n dispatch(push('/pos'))\r\n }\r\n }, [billingPos, dispatch, isPos])\r\n\r\n if (forceHiddenFeature) return children\r\n\r\n const canBeAdOned = byPassCanBeAddoned || billing.can_be_addoned\r\n\r\n let label = intl.formatMessage(\r\n {\r\n id: isFeatureOnlyAccess\r\n ? 'billing.feature_can_only_be_use_on_pro_plan'\r\n : 'billing.feature_available_in_pro_plan',\r\n },\r\n { feature },\r\n )\r\n let modalTitle = intl.formatMessage({ id: 'billing.pro_plan_features' })\r\n\r\n if (_.isEmpty(billing)) return children\r\n\r\n if (canBeAdOned && maxCode && billing[maxCode] <= currentCount) {\r\n label = intl.formatMessage(\r\n { id: 'billing.quota_is_exhausted_add_an_addon' },\r\n { feature: maxFeature },\r\n )\r\n } else if (onlyPaidPlan) {\r\n label = intl.formatMessage(\r\n { id: 'billing.feature_can_only_be_accessed_on_paid_plan' },\r\n { feature },\r\n )\r\n modalTitle = intl.formatMessage({ id: 'billing.paid_plan_features' })\r\n } else if (isFeatureChampion({ billing, code })) {\r\n label = intl.formatMessage(\r\n {\r\n id: isFeatureOnlyAccess\r\n ? 'billing.feature_can_only_be_use_on_champion_plan'\r\n : 'billing.feature_available_in_champion_plan',\r\n },\r\n { feature },\r\n )\r\n modalTitle = intl.formatMessage({ id: 'billing.champion_plan_features' })\r\n } else if (isFeatureElite({ billing, code })) {\r\n label = intl.formatMessage(\r\n {\r\n id: isFeatureOnlyAccess\r\n ? 'billing.feature_can_only_be_use_on_elite_plan'\r\n : 'billing.feature_available_in_elite_plan',\r\n },\r\n { feature },\r\n )\r\n modalTitle = intl.formatMessage({ id: 'billing.elite_plan_features' })\r\n } else if (billing.hidden_feature?.filter((e) => e === code).length === 0) {\r\n return children\r\n }\r\n\r\n if (asModal) {\r\n return (\r\n modalProps?.onCancel?.()} />]}\r\n maskTransitionName=\"\"\r\n {...modalProps}\r\n >\r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n
\r\n {children}\r\n
\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default injectIntl(HideFeature)\r\n","import dayjs from 'dayjs'\r\nimport _ from 'lodash'\r\n\r\nconst isBetween = require('dayjs/plugin/isBetween')\r\n\r\ndayjs.extend(isBetween)\r\n\r\nexport const onPrevDateChange = ({\r\n date,\r\n monthly,\r\n yearly,\r\n params,\r\n withCustomDaterange,\r\n setParams,\r\n dateTypeKey = 'daterange',\r\n}) => {\r\n let _date = date ? dayjs(date) : null\r\n if (_.includes(monthly, params[dateTypeKey])) {\r\n _date = _date ? dayjs(dayjs(_date).format('YYYY-MM-01')) : null\r\n } else if (_.includes(yearly, params[dateTypeKey])) {\r\n _date = _date ? dayjs(dayjs(_date).format('YYYY-01-01')) : null\r\n }\r\n const newInnerParams = { date_from: _date }\r\n if (!withCustomDaterange && dayjs(_date).isValid()) {\r\n if (\r\n params[dateTypeKey] === 'daily' &&\r\n Math.abs(dayjs(params.date_to).diff(_date, 'days')) > 31\r\n ) {\r\n let nextDate = dayjs(dayjs(_date).add(31, 'days'))\r\n if (nextDate.isAfter(dayjs())) nextDate = dayjs()\r\n\r\n newInnerParams.date_to = nextDate\r\n }\r\n if (\r\n _.includes(monthly, params[dateTypeKey]) &&\r\n Math.abs(dayjs(params.date_to).diff(_date, 'months')) > 12\r\n ) {\r\n let nextDate = dayjs(dayjs(_date).add(12, 'month').endOf('month'))\r\n if (nextDate.isAfter(dayjs())) nextDate = dayjs()\r\n\r\n newInnerParams.date_to = nextDate\r\n }\r\n if (\r\n _.includes(yearly, params[dateTypeKey]) &&\r\n Math.abs(dayjs(params.date_to).diff(_date, 'years')) > 6\r\n ) {\r\n let nextDate = dayjs(dayjs(_date).add(6, 'year').endOf('year'))\r\n if (nextDate.isAfter(dayjs())) nextDate = dayjs()\r\n\r\n newInnerParams.date_to = nextDate\r\n }\r\n }\r\n\r\n setParams((prevState) => {\r\n return { ...prevState, ...newInnerParams }\r\n })\r\n}\r\n\r\nexport const onNextDateChange = ({\r\n date,\r\n monthly,\r\n yearly,\r\n params,\r\n withCustomDaterange,\r\n setParams,\r\n dateTypeKey = 'daterange',\r\n}) => {\r\n let _date = date ? dayjs(date) : null\r\n if (_date) {\r\n if (_.includes(monthly, params[dateTypeKey])) {\r\n if (dayjs(_date).isBetween(dayjs().startOf('month'), dayjs().endOf('month'))) {\r\n _date = dayjs()\r\n } else {\r\n _date = dayjs(dayjs(_date).endOf('month'))\r\n }\r\n } else if (_.includes(yearly, params[dateTypeKey])) {\r\n if (dayjs(_date).year() === dayjs().year()) {\r\n _date = dayjs()\r\n } else {\r\n _date = dayjs(dayjs(_date).endOf('year'))\r\n }\r\n }\r\n }\r\n\r\n const newInnerParams = { date_to: _date }\r\n if (!withCustomDaterange && dayjs(_date).isValid()) {\r\n if (\r\n params[dateTypeKey] === 'daily' &&\r\n Math.abs(dayjs(params.date_from).diff(_date, 'days')) > 31\r\n ) {\r\n // if (nextDate.isAfter(dayjs())) {\r\n // nextDate = dayjs()\r\n // }\r\n newInnerParams.date_from = dayjs(dayjs(_date).subtract(31, 'days'))\r\n }\r\n if (\r\n _.includes(monthly, params[dateTypeKey]) &&\r\n Math.abs(dayjs(params.date_from).diff(_date, 'months')) > 12\r\n ) {\r\n // if (nextDate.isAfter(dayjs())) {\r\n // nextDate = dayjs()\r\n // }\r\n newInnerParams.date_from = dayjs(dayjs(_date).subtract(12, 'month'))\r\n }\r\n if (\r\n _.includes(yearly, params[dateTypeKey]) &&\r\n Math.abs(dayjs(params.date_from).diff(_date, 'years')) > 6\r\n ) {\r\n // if (nextDate.isAfter(dayjs())) {\r\n // nextDate = dayjs()\r\n // }\r\n newInnerParams.date_from = dayjs(dayjs(_date).subtract(6, 'year'))\r\n }\r\n }\r\n\r\n setParams((prevState) => ({\r\n ...prevState,\r\n ...newInnerParams,\r\n }))\r\n}\r\n\r\nexport const getDefaultCustomDate = ({ daterange, monthly, yearly, dateTypeKey = 'daterange' }) => {\r\n const newInnerParams = {}\r\n if (daterange === 'daily') {\r\n newInnerParams.date_to = dayjs()\r\n newInnerParams.date_from = dayjs().subtract(31, 'days')\r\n newInnerParams[dateTypeKey] = 'daily'\r\n } else if (_.includes(monthly, daterange)) {\r\n newInnerParams.date_to = dayjs()\r\n newInnerParams.date_from = dayjs().subtract(12, 'month')\r\n newInnerParams[dateTypeKey] = 'monthly'\r\n } else if (_.includes(yearly, daterange)) {\r\n newInnerParams.date_to = dayjs()\r\n newInnerParams.date_from = dayjs().subtract(6, 'year')\r\n newInnerParams[dateTypeKey] = 'yearly'\r\n } else if (daterange === 'today') {\r\n newInnerParams.date_to = dayjs()\r\n newInnerParams.date_from = dayjs()\r\n newInnerParams[dateTypeKey] = 'daily'\r\n } else if (daterange === 'yesterday') {\r\n newInnerParams.date_to = dayjs().subtract(1, 'day')\r\n newInnerParams.date_from = dayjs().subtract(1, 'day')\r\n newInnerParams[dateTypeKey] = 'daily'\r\n } else if (daterange === 'this_month') {\r\n newInnerParams.date_to = dayjs()\r\n newInnerParams.date_from = dayjs().startOf('month')\r\n newInnerParams[dateTypeKey] = 'monthly'\r\n } else if (daterange === 'last_month') {\r\n newInnerParams.date_to = dayjs().subtract(1, 'month').endOf('month')\r\n newInnerParams.date_from = dayjs().subtract(1, 'month').startOf('month')\r\n newInnerParams[dateTypeKey] = 'monthly'\r\n } else if (daterange === 'this_year') {\r\n newInnerParams.date_to = dayjs()\r\n newInnerParams.date_from = dayjs().startOf('year')\r\n newInnerParams[dateTypeKey] = 'yearly'\r\n } else if (daterange === 'last_year') {\r\n newInnerParams.date_to = dayjs().subtract(1, 'year').endOf('year')\r\n newInnerParams.date_from = dayjs().subtract(1, 'year').startOf('year')\r\n newInnerParams[dateTypeKey] = 'yearly'\r\n }\r\n return newInnerParams\r\n}\r\n","import ReactPixel from 'react-facebook-pixel'\r\nimport TagManager from 'react-gtm-module'\r\n\r\nexport const initializeFp = (email) => {\r\n if (process.env.REACT_APP_FACEBOOK_PIXEL_ID) {\r\n const advancedMatching = email ? { em: email } : {} // optional, more info: https://developers.facebook.com/docs/facebook-pixel/pixel-with-ads/conversion-tracking#advanced_match\r\n const options = {\r\n autoConfig: true, // set pixel's autoConfig\r\n debug: false, // enable logs\r\n }\r\n ReactPixel.init(process.env.REACT_APP_FACEBOOK_PIXEL_ID, advancedMatching, options)\r\n }\r\n}\r\n\r\nexport const initializeTagManager = () => {\r\n if (process.env.REACT_APP_GOOGLE_TAG_ID) {\r\n const tagManagerArgs = {\r\n gtmId: process.env.REACT_APP_GOOGLE_TAG_ID,\r\n }\r\n\r\n TagManager.initialize(tagManagerArgs)\r\n }\r\n}\r\n\r\nexport const trackingPage = (page) => {\r\n if (process.env.NODE_ENV === 'production') {\r\n TagManager.dataLayer({\r\n dataLayer: {\r\n event: 'pageview',\r\n page,\r\n },\r\n dataLayerName: 'PageDataLayer',\r\n })\r\n ReactPixel.pageView(page)\r\n }\r\n}\r\n\r\nexport const trackingEvent = (data = { reactPixel: {}, gtm: {} }) => {\r\n if (process.env.NODE_ENV === 'production') {\r\n TagManager.dataLayer(data.gtm)\r\n ReactPixel.track(data.reactPixel?.eventName, data.reactPixel?.data)\r\n }\r\n}\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dropdown\":\"style_dropdown__1hI-g\",\"avatar\":\"style_avatar__1IJAw\",\"menuIcon\":\"style_menuIcon__4ce0b\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"layout\":\"style_layout__1c14k\",\"light\":\"style_light__1E5cg\",\"content\":\"style_content__1cthg\",\"navigationItems\":\"style_navigationItems__3FNeE\",\"navigationActive\":\"style_navigationActive__19GYN\",\"footer\":\"style_footer__7AGwn\",\"header\":\"style_header__cF9sJ\",\"logo\":\"style_logo__OpuOi\",\"logoKledoFooter\":\"style_logoKledoFooter__1-Q7Z\",\"controls\":\"style_controls__1eILG\",\"navigation\":\"style_navigation__yNh7R\",\"inner\":\"style_inner__2VZ5W\"};","const colors = [\r\n '#FF6384',\r\n '#FFCD56',\r\n '#4BC0C0',\r\n '#36A2EB',\r\n '#CB99C9',\r\n '#EE82EE',\r\n '#FF2C63',\r\n '#00ADB5',\r\n '#08D9D6',\r\n '#F9ED69',\r\n '#F08A5D',\r\n '#B83B5E',\r\n '#6A2C70',\r\n '#FF2E63',\r\n '#112D4E',\r\n '#F38181',\r\n '#95E1D3',\r\n '#3F72AF',\r\n '#A8D8EA',\r\n '#AA96DA',\r\n '#FCBAD3',\r\n '#364F6B',\r\n '#3FC1C9',\r\n '#FC5185',\r\n '#0F4C75',\r\n '#3282B8',\r\n '#AD8B73',\r\n '#CEAB93',\r\n '#FF9494',\r\n '#CCA8E9',\r\n '#7D5A50',\r\n '#B4846C',\r\n '#967E76',\r\n '#30E3CA',\r\n '#11999E',\r\n '#40514E',\r\n '#F67280',\r\n '#C06C84',\r\n '#6C5B7B',\r\n '#355C7D',\r\n '#B1B2FF',\r\n '#E84545',\r\n '#903749',\r\n '#0D7377',\r\n '#14FFEC',\r\n '#99DDCC',\r\n '#769FCD',\r\n '#7895B2',\r\n '#E23E57',\r\n '#88304E',\r\n '#FFCFDF',\r\n '#8675A9',\r\n '#FF9292',\r\n '#7D6E83',\r\n '#9E7676',\r\n '#815B5B',\r\n '#594545',\r\n '#00B8A9',\r\n '#F6416C',\r\n '#FFDE7D',\r\n '#99A799',\r\n '#52616B',\r\n '#A8E6CF',\r\n '#BE9FE1',\r\n '#EA5455',\r\n '#2D4059',\r\n]\r\n\r\nexport default colors\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { Spin } from 'antd';\r\nimport styles from './style.module.css';\r\n\r\nconst Spinner = ({ spinning = true, style = {} }) => (\r\n \r\n)\r\n\r\nexport default Spinner;\r\n","import React from 'react'\r\nimport { injectIntl } from 'react-intl'\r\nimport { SearchOutlined } from '@ant-design/icons'\r\nimport { Input } from 'antd'\r\nimport { escapeRegExp } from 'lodash'\r\nimport { useSelector } from \"react-redux\";\r\nimport { darkModeSelector } from \"redux/selectors\";\r\n\r\nfunction SearchWidget({ intl, onChange = () => {}, escape = false, autoFocus = true, ...props }) {\r\n const darkMode = useSelector(darkModeSelector)\r\n\r\n return (\r\n }\r\n placeholder={intl.formatMessage({ id: 'input.placeholder.search' })}\r\n id=\"input-search\"\r\n onChange={(e) => {\r\n if (escape) {\r\n e.target.value = escapeRegExp(e.target.value)\r\n }\r\n onChange(e)\r\n }}\r\n allowClear\r\n autoFocus={autoFocus}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport default injectIntl(SearchWidget)\r\n","import React from 'react';\r\nimport {Skeleton} from 'antd';\r\nimport { PageHeader as PageHeaderAntd } from '@ant-design/pro-layout';\r\nimport PropTypes from 'prop-types';\r\nimport {darkModeSelector} from \"redux/selectors\";\r\nimport {useSelector} from \"react-redux\";\r\n\r\nfunction PageHeader({loading, ...props}) {\r\n const darkMode = useSelector(darkModeSelector);\r\n\r\n const newExtra = props.extra ? (\r\n
\r\n {props.extra.map(e =>
{e}
)}\r\n
\r\n ) : null;\r\n\r\n return (\r\n :\r\n
\r\n {props.title}\r\n
\r\n }\r\n extra={newExtra}\r\n />\r\n )\r\n}\r\n\r\nPageHeader.propTypes = {\r\n style: PropTypes.object,\r\n loading: PropTypes.bool,\r\n}\r\n\r\nPageHeader.defaultProps = {\r\n style: { padding: 0, marginBottom: 30},\r\n loading: false\r\n}\r\n\r\nexport default PageHeader;\r\n","import React from 'react'\r\nimport { LeftOutlined, RightOutlined } from '@ant-design/icons'\r\nimport { DatePicker } from 'antd'\r\nimport dayjs from 'dayjs'\r\n\r\nclass DateMonth extends React.Component {\r\n state = {\r\n date: dayjs(),\r\n pickerOpen: false,\r\n }\r\n\r\n setDate = (date) => {\r\n this.setState({ date, pickerOpen: false }, () => this.props.onClick && this.props.onClick(date))\r\n }\r\n\r\n togglePicker = () => this.setState((prevState) => ({ pickerOpen: !prevState.pickerOpen }))\r\n\r\n renderNavigation = (navigation) => {\r\n const { disabledDate } = this.props\r\n let date = this.getDate()\r\n date = navigation === 'prev' ? date.subtract(1, 'months') : date.add(1, 'months')\r\n if (typeof disabledDate === 'function') {\r\n if (disabledDate(date)) {\r\n return null\r\n }\r\n }\r\n\r\n if (navigation === 'prev') {\r\n return (\r\n this.setDate(dayjs(this.getDate()).subtract(1, 'months'))} />\r\n )\r\n }\r\n\r\n return this.setDate(dayjs(this.getDate()).add(1, 'months'))} />\r\n }\r\n\r\n getDate = () => {\r\n let { date } = this.state\r\n if (dayjs(this.props.date).isValid()) {\r\n date = dayjs(this.props.date)\r\n }\r\n\r\n return date\r\n }\r\n\r\n render() {\r\n const { 'data-testid': dataTestId, ...props } = this.props\r\n const date = this.getDate()\r\n\r\n return (\r\n
\r\n {this.renderNavigation('prev')}\r\n \r\n {` ${dayjs(date).format('MMMM')} ${dayjs(date).format('YYYY')} `}\r\n \r\n \r\n {this.renderNavigation('next')}\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default DateMonth\r\n","import React from 'react';\r\nimport { Divider } from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport { PlusOutlined } from '@ant-design/icons';\r\n\r\nfunction DropdownItemAction({menu, onClick, icon, title}) {\r\n return (\r\n
\r\n {menu}\r\n \r\n e.preventDefault()}\r\n onClick={onClick}\r\n style={{ marginLeft: 8 }}\r\n >\r\n {icon}{' '}{title}\r\n \r\n
\r\n );\r\n}\r\n\r\nDropdownItemAction.propTypes = {\r\n menu: PropTypes.node,\r\n icon: PropTypes.object,\r\n title: PropTypes.string,\r\n onClick: PropTypes.func,\r\n}\r\n\r\nDropdownItemAction.defaultProps = {\r\n menu: null,\r\n icon: ,\r\n title: \"\",\r\n onClick: () => { }\r\n}\r\n\r\nexport default DropdownItemAction;","import React from 'react'\r\nimport { Select, Space, Spin } from 'antd'\r\nimport { injectIntl } from 'react-intl'\r\n\r\nimport DropdownItemAction from './DropdownItemAction'\r\n\r\nclass SearchInput extends React.Component {\r\n renderLoaderInfinite = () => {\r\n const { infiniteScroll, infiniteData, withExtra } = this.props\r\n if (infiniteScroll && infiniteData && infiniteData.loading) {\r\n return (\r\n \r\n \r\n \r\n \r\n
Loading...
\r\n
\r\n \r\n \r\n )\r\n }\r\n return null\r\n }\r\n\r\n dropdownRender = (menu) => {\r\n const { onExtraClick, extraTitle, withExtra } = this.props\r\n if (!withExtra) {\r\n return (\r\n
\r\n {menu}\r\n {this.renderLoaderInfinite()}\r\n
\r\n )\r\n }\r\n\r\n return (\r\n
\r\n \r\n {this.renderLoaderInfinite()}\r\n
\r\n )\r\n }\r\n\r\n onFocus = () => {\r\n const {onSearch} = this.props\r\n if (typeof onSearch === 'function') {\r\n onSearch('')\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n children,\r\n onExtraClick,\r\n extraIcon,\r\n extraTitle,\r\n intl,\r\n withExtra,\r\n infiniteScroll,\r\n infiniteData,\r\n autoFocus,\r\n innerRef,\r\n ...props\r\n } = this.props\r\n\r\n return (\r\n \r\n {intl.formatMessage({ id: 'suggestion.not_found' })}\r\n \r\n )}\r\n popupClassName={this.props.popupClassName}\r\n {...props}\r\n dropdownRender={this.dropdownRender}\r\n autoFocus={autoFocus}\r\n ref={innerRef}\r\n >\r\n {children}\r\n \r\n )\r\n }\r\n}\r\n\r\nSearchInput.defaultProps = {\r\n showSearch: true,\r\n defaultActiveFirstOption: false,\r\n // suffixIcon: true,\r\n filterOption: false,\r\n extraIcon: 'plus',\r\n extraTitle: '',\r\n withExtra: true,\r\n onExtraClick: () => {},\r\n onBlur: () => {},\r\n popupClassName: 'ant-select-custom',\r\n popupMatchSelectWidth: false,\r\n}\r\n\r\nconst Component = injectIntl(SearchInput)\r\nexport default React.forwardRef((props, ref) => )\r\n","import React from 'react';\r\nimport { Select } from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\nimport { isEmpty } from 'lodash';\r\nimport { filterOption } from 'utils/helper';\r\n\r\nconst {Option} = Select;\r\n\r\nclass AccountDropdown extends React.Component {\r\n getOptions = () => {\r\n const { accounts, filterCategoryIds } = this.props;\r\n let newAccounts = [];\r\n if (!isEmpty(filterCategoryIds)) {\r\n filterCategoryIds.forEach(category => {\r\n const filterAccounts = accounts.filter(item => category === item.finance_account_category_id);\r\n filterAccounts.forEach(account => {\r\n newAccounts.push(account)\r\n })\r\n })\r\n } else {\r\n newAccounts = accounts;\r\n }\r\n\r\n const options = newAccounts.map(item => {\r\n return ;\r\n });\r\n\r\n return options;\r\n }\r\n\r\n render() {\r\n const {intl, accounts, filterCategoryIds, ...props} = this.props;\r\n\r\n return (\r\n \r\n {this.getOptions()}\r\n \r\n );\r\n }\r\n}\r\n\r\nAccountDropdown.propTypes = {\r\n showSearch: PropTypes.bool,\r\n optionFilterProp: PropTypes.string,\r\n filterOption: PropTypes.func,\r\n accounts: PropTypes.array,\r\n filterCategoryIds: PropTypes.array,\r\n}\r\n\r\nAccountDropdown.defaultProps = {\r\n showSearch: true,\r\n optionFilterProp: 'children',\r\n filterOption,\r\n accounts: [],\r\n filterCategoryIds: [],\r\n}\r\n\r\nexport default injectIntl(AccountDropdown);\r\n\r\nexport const getAccountDefaultValue = (accounts, filterCategoryIds, defaultValue) => {\r\n let value;\r\n if (defaultValue >= 0) {\r\n const newAccounts = [];\r\n filterCategoryIds.forEach(category => {\r\n const filterAccounts = accounts.filter(item => category === item.finance_account_category_id);\r\n filterAccounts.forEach(account => {\r\n newAccounts.push(account)\r\n })\r\n })\r\n if (newAccounts.length > 0) {\r\n value = newAccounts[0].id;\r\n const findAccount = newAccounts.find(item => item.id === defaultValue);\r\n if (findAccount) {\r\n value = findAccount.id;\r\n }\r\n }\r\n } else {\r\n value = undefined;\r\n }\r\n\r\n return value;\r\n}\r\n","/* eslint-disable no-lonely-if */\r\nimport React, { useState } from 'react'\r\nimport { Button, Dropdown, Menu, Modal } from 'antd'\r\nimport {\r\n CompressOutlined,\r\n DownOutlined,\r\n ExpandOutlined,\r\n FileExcelOutlined,\r\n MailOutlined,\r\n PrinterOutlined,\r\n SettingOutlined,\r\n ShareAltOutlined,\r\n WhatsAppOutlined,\r\n} from '@ant-design/icons'\r\nimport { injectIntl } from 'react-intl'\r\nimport ReactToPrint, { useReactToPrint } from 'react-to-print'\r\nimport axios from 'axios'\r\n\r\nimport { Cancel, SendWaModal } from 'components/UI'\r\nimport SendEmailModal from 'containers/EmailTemplate/SendEmailModal'\r\n\r\n// Print and export xls/csv Dropdown\r\nconst PrintDropdown = ({\r\n intl,\r\n exportUrl,\r\n content,\r\n removeAfterPrint,\r\n isPrint = true,\r\n noPrintAction = () => {},\r\n goToLayout,\r\n withLandscape,\r\n getEmailTemplate,\r\n sendEmail,\r\n getWaTemplate,\r\n sendWaTitle,\r\n sendTitle,\r\n withoutPrint,\r\n withPrintType,\r\n printTypeModalTitle,\r\n totalData,\r\n onPrintExpanded,\r\n printProps,\r\n printExpandedProps,\r\n printCompactProps,\r\n printPortraitProps,\r\n printLandscapeProps,\r\n printGraph,\r\n contentGraph,\r\n xlsProps,\r\n csvProps,\r\n dropdownMenuPrintProps,\r\n}) => {\r\n const [sendEmailModal, setSendEmailModal] = React.useState(false)\r\n const [emailSent, setEmailSent] = React.useState(false)\r\n const [sendWaModal, setSendWaModal] = React.useState(false)\r\n const [showPrintModal, setShowPrintModal] = useState(false)\r\n\r\n const onCloseEmailModal = () => {\r\n setEmailSent(false)\r\n setSendEmailModal(false)\r\n }\r\n\r\n const exportTo = (exportType) => {\r\n axios.get(`${exportUrl}&export=${exportType}`, { responseType: 'blob' }).then((r) => {\r\n const fileName = r.request.getResponseHeader('Content-Disposition').split('filename=')[1]\r\n const blobURL = URL.createObjectURL(r.data)\r\n const tempLink = document.createElement('a')\r\n tempLink.href = blobURL\r\n tempLink.setAttribute('download', fileName)\r\n tempLink.click()\r\n })\r\n }\r\n\r\n const renderPrintRow = () => {\r\n const rows = []\r\n\r\n let length = totalData\r\n for (let i = 0; length > 0; i += 1) {\r\n length -= 1000\r\n\r\n const lastRow = length <= 0 ? totalData : (i + 1) * 1000\r\n const rowCount = `${i * 1000 + 1} - ${lastRow}`\r\n rows.push(\r\n \r\n \r\n {intl.formatMessage({ id: 'financeProduct.row' })} {rowCount}\r\n \r\n \r\n {\r\n event.preventDefault()\r\n\r\n if (typeof onPrintExpanded === 'function') {\r\n /**\r\n * custom pint expanded, this use if BE not supported change print_type\r\n * directly on print url\r\n */\r\n onPrintExpanded({\r\n event,\r\n per_page: lastRow,\r\n page: i * 1000 + 1,\r\n })\r\n }\r\n }}\r\n >\r\n Print\r\n \r\n \r\n ,\r\n )\r\n }\r\n\r\n return rows\r\n }\r\n\r\n const handlePrintGraph = useReactToPrint({\r\n content: () => contentGraph(),\r\n })\r\n\r\n const items = []\r\n if (getEmailTemplate && sendEmail) {\r\n items.push({\r\n key: '5',\r\n icon: ,\r\n onClick: () => {\r\n setSendEmailModal(true)\r\n },\r\n label:\r\n sendTitle === 'button.send_email' || !sendTitle\r\n ? intl.formatMessage({ id: 'button.send_email' })\r\n : sendTitle,\r\n })\r\n }\r\n if (getWaTemplate) {\r\n items.push({\r\n key: '8',\r\n icon: ,\r\n onClick: () => {\r\n setSendWaModal(true)\r\n },\r\n label:\r\n sendWaTitle === 'button.send_wa' || !sendWaTitle\r\n ? intl.formatMessage({ id: 'button.send_wa' })\r\n : sendWaTitle,\r\n })\r\n }\r\n\r\n const shareMenu = \r\n const menuItems = []\r\n if (isPrint) {\r\n menuItems.push({\r\n key: '1',\r\n icon: ,\r\n label: (\r\n
Print
}\r\n />\r\n ),\r\n })\r\n } else {\r\n if (withLandscape) {\r\n menuItems.push(\r\n {\r\n key: 'potrait',\r\n icon: ,\r\n label: 'Print Potrait',\r\n onClick: () => noPrintAction({ landscape: 0 }),\r\n ...printPortraitProps,\r\n },\r\n {\r\n key: 'landscape',\r\n icon: ,\r\n label: 'Print Landscape',\r\n onClick: () => noPrintAction({ landscape: 1 }),\r\n ...printLandscapeProps,\r\n },\r\n )\r\n } else {\r\n menuItems.push({\r\n key: '0',\r\n icon: ,\r\n label: 'Print',\r\n onClick: withPrintType ? undefined : noPrintAction,\r\n ...printProps,\r\n children: withPrintType\r\n ? [\r\n {\r\n key: '1',\r\n icon: ,\r\n label: 'Expanded',\r\n onClick: () => setShowPrintModal(true),\r\n ...printExpandedProps,\r\n },\r\n {\r\n key: '2',\r\n icon: ,\r\n label: 'Compact',\r\n onClick: () => noPrintAction({ printType: 'compact' }),\r\n ...printCompactProps,\r\n },\r\n ]\r\n : undefined,\r\n })\r\n }\r\n }\r\n if (typeof contentGraph === 'function') {\r\n menuItems.push({\r\n key: 'print-grafik2',\r\n icon: ,\r\n label: 'Print Grafik',\r\n onClick: handlePrintGraph,\r\n })\r\n }\r\n if (typeof printGraph === 'function') {\r\n menuItems.push({\r\n key: 'print-grafik',\r\n icon: ,\r\n label: 'Print Grafik',\r\n onClick: printGraph,\r\n })\r\n }\r\n\r\n if (exportUrl) {\r\n menuItems.push(\r\n {\r\n key: '2',\r\n icon: ,\r\n label: 'XLS',\r\n onClick: () => exportTo('xls'),\r\n ...xlsProps,\r\n },\r\n {\r\n key: '3',\r\n icon: ,\r\n label: 'CSV',\r\n onClick: () => exportTo('csv'),\r\n ...csvProps,\r\n },\r\n )\r\n }\r\n\r\n if (goToLayout) {\r\n menuItems.push({\r\n key: '4',\r\n icon: ,\r\n label: intl.formatMessage({ id: 'button.change_layout' }),\r\n onClick: goToLayout,\r\n })\r\n }\r\n const menu = \r\n\r\n if (!isPrint) {\r\n return (\r\n <>\r\n
\r\n {((getEmailTemplate && sendEmail) || getWaTemplate) && (\r\n shareMenu} trigger={['click']}>\r\n \r\n \r\n )}\r\n {!withoutPrint && (\r\n menu}\r\n trigger={['click']}\r\n icon={}\r\n onClick={() => noPrintAction()}\r\n >\r\n Print\r\n \r\n )}\r\n
\r\n setSendWaModal(false)}\r\n />\r\n (withLandscape ? noPrintAction({ landscape: 0 }) : noPrintAction())}\r\n />\r\n {withPrintType ? (\r\n setShowPrintModal(false)}\r\n footer={[ setShowPrintModal(false)} />]}\r\n maskTransitionName=\"\"\r\n >\r\n \r\n {renderPrintRow()}\r\n
\r\n \r\n ) : null}\r\n \r\n )\r\n }\r\n return (\r\n {\r\n return (\r\n menu}\r\n trigger={['click']}\r\n icon={}\r\n >\r\n Print\r\n \r\n )\r\n }}\r\n />\r\n )\r\n}\r\n\r\nexport default injectIntl(PrintDropdown)\r\n","import React from 'react'\r\nimport { DragSource, DropTarget } from 'react-dnd'\r\n\r\nlet dragingIndex = -1\r\n\r\nexport class BodyRow extends React.Component {\r\n render() {\r\n const { isOver, connectDragSource, connectDropTarget, moveRow, ...restProps } = this.props\r\n const style = { ...restProps.style, cursor: 'move' }\r\n\r\n let { className } = restProps\r\n if (isOver) {\r\n if (restProps.index > dragingIndex) {\r\n className += ' drop-over-downward'\r\n }\r\n if (restProps.index < dragingIndex) {\r\n className += ' drop-over-upward'\r\n }\r\n }\r\n\r\n return connectDragSource(\r\n connectDropTarget(),\r\n )\r\n }\r\n}\r\n\r\nconst rowSource = {\r\n beginDrag(props) {\r\n dragingIndex = props.index\r\n return {\r\n index: props.index,\r\n }\r\n },\r\n}\r\n\r\nconst rowTarget = {\r\n drop(props, monitor) {\r\n const dragIndex = monitor.getItem().index\r\n const hoverIndex = props.index\r\n\r\n // Don't replace items with themselves\r\n if (dragIndex === hoverIndex) {\r\n return\r\n }\r\n\r\n // Time to actually perform the action\r\n if (typeof props.moveRow !== 'function') return\r\n props.moveRow(dragIndex, hoverIndex)\r\n\r\n // Note: we're mutating the monitor item here!\r\n // Generally it's better to avoid mutations,\r\n // but it's good here for the sake of performance\r\n // to avoid expensive index searches.\r\n monitor.getItem().index = hoverIndex\r\n },\r\n}\r\n\r\nconst DragableBodyRow = DropTarget('row', rowTarget, (connect, monitor) => ({\r\n connectDropTarget: connect.dropTarget(),\r\n isOver: monitor.isOver(),\r\n}))(\r\n DragSource('row', rowSource, (connect) => ({\r\n connectDragSource: connect.dragSource(),\r\n }))(BodyRow),\r\n)\r\n\r\nexport default DragableBodyRow\r\n","import React, { Component, } from \"react\";\r\nimport HTML5Backend from 'react-dnd-html5-backend';\r\nimport { DndProvider } from 'react-dnd';\r\nimport DragableBodyRow from './BodyRow';\r\n\r\nconst withDragRow = (WrappedComponent) => {\r\n // eslint-disable-next-line\r\n const HOC = class extends Component {\r\n components = {\r\n body: {\r\n row: DragableBodyRow,\r\n },\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n };\r\n\r\n return HOC;\r\n};\r\n\r\nexport default withDragRow;","import React from 'react';\r\nimport styled from 'styled-components';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst Wrapper = styled.div`\r\n text-align: center;\r\n margin-bottom: 25px;\r\n`;\r\n\r\nconst Value = styled.h3`\r\n margin-bottom: 20px;\r\n`;\r\n\r\nfunction Overview({ title, value }) {\r\n return (\r\n \r\n {value}\r\n {title}\r\n \r\n\r\n )\r\n}\r\n\r\nOverview.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n value: PropTypes.node.isRequired,\r\n}\r\n\r\nexport default Overview;","import React from 'react';\r\nimport { MinusOutlined, PlusOutlined } from '@ant-design/icons';\r\nimport { Space } from 'antd';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction ToggleLabel({ showTitle, hideTitle, show, onToggle }) {\r\n function clickHandler(e) {\r\n e.preventDefault();\r\n onToggle();\r\n }\r\n\r\n return (\r\n \r\n \r\n {!show ? (\r\n \r\n \r\n {showTitle}\r\n \r\n ) : (\r\n \r\n \r\n {hideTitle}\r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nToggleLabel.propTypes = {\r\n showTitle: PropTypes.string.isRequired,\r\n hideTitle: PropTypes.string.isRequired,\r\n onToggle: PropTypes.func.isRequired,\r\n show: PropTypes.bool,\r\n}\r\n\r\nToggleLabel.defaultProps = {\r\n show: false\r\n}\r\n\r\nexport default ToggleLabel;","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29, _path30, _path31, _path32, _path33, _path34, _path35, _path36, _path37, _path38, _path39, _path40, _path41, _path42, _path43, _path44, _path45, _path46;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgEmptyData = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 278,\n height: 224,\n viewBox: \"0 0 278 224\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M277.522 223.128H0.504119C0.268149 223.128 0.0565889 223.305 0.0435698 223.541C0.0305508 223.794 0.230717 224 0.479707 224H277.522C277.763 224 277.958 223.805 277.958 223.564C277.958 223.323 277.763 223.128 277.522 223.128Z\",\n fill: \"#0A3299\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M34.2353 223.121C28.0073 216.978 4.83664 192.354 9.89779 170.466C13.3544 155.521 26.9804 153.956 29.8104 138.164C33.6494 116.734 10.9735 106.135 15.6506 88.6052C19.2862 74.9808 34.053 77.3763 51.492 60.2855C77.0338 35.2531 66.7259 9.16782 84.2366 1.43451C101.362 -6.12794 112.825 18.1135 157.247 29.7542C194.2 39.4371 213.504 29.7981 222.292 43.4714C232.72 59.6948 210.25 80.5903 221.85 99.2239C232.214 115.872 258.425 112.481 260.345 124.888C261.924 135.085 244.875 141.575 247.071 152.322C248.986 161.696 262.933 161.541 267.424 170.464C274.261 184.045 254.552 209.422 239.105 223.12H34.2353V223.121Z\",\n fill: \"#F5F8FE\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M135.285 78.7952C135.73 78.7952 136.091 78.4345 136.091 77.9896C136.091 77.5447 135.73 77.1841 135.285 77.1841C134.84 77.1841 134.479 77.5447 134.479 77.9896C134.479 78.4345 134.84 78.7952 135.285 78.7952Z\",\n fill: \"#4777F3\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M93.0565 29.7947C93.5014 29.7947 93.8621 29.434 93.8621 28.9891C93.8621 28.5442 93.5014 28.1836 93.0565 28.1836C92.6116 28.1836 92.251 28.5442 92.251 28.9891C92.251 29.434 92.6116 29.7947 93.0565 29.7947Z\",\n fill: \"#4777F3\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.841 212.836C32.3255 212.836 32.7182 212.444 32.7182 211.959C32.7182 211.475 32.3255 211.082 31.841 211.082C31.3566 211.082 30.9639 211.475 30.9639 211.959C30.9639 212.444 31.3566 212.836 31.841 212.836Z\",\n fill: \"#4777F3\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M234.741 99.0644C235.226 99.0644 235.619 98.6717 235.619 98.1872C235.619 97.7028 235.226 97.3101 234.741 97.3101C234.257 97.3101 233.864 97.7028 233.864 98.1872C233.864 98.6717 234.257 99.0644 234.741 99.0644Z\",\n fill: \"#4777F3\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M148.539 52.3729H146.292C146.262 52.3729 146.235 52.3566 146.22 52.3322C146.205 52.3062 146.205 52.2753 146.22 52.2492L147.343 50.3029C147.358 50.2769 147.385 50.2622 147.414 50.2622C147.444 50.2622 147.471 50.2785 147.486 50.3029L148.609 52.2492C148.624 52.2753 148.624 52.3062 148.609 52.3322C148.594 52.3583 148.567 52.3729 148.537 52.3729H148.539Z\",\n fill: \"#DC2626\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.1718 174.698H18.9244C18.8951 174.698 18.8674 174.682 18.8528 174.657C18.8381 174.631 18.8381 174.6 18.8528 174.574L19.9757 172.628C19.9903 172.602 20.018 172.587 20.0473 172.587C20.0766 172.587 20.1042 172.604 20.1189 172.628L21.2418 174.574C21.2564 174.6 21.2564 174.631 21.2418 174.657C21.2271 174.683 21.1995 174.698 21.1702 174.698H21.1718Z\",\n fill: \"#DC2626\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M65.7978 60.5619H63.5504C63.5211 60.5619 63.4934 60.5456 63.4788 60.5212C63.4641 60.4952 63.4641 60.4642 63.4788 60.4382L64.6017 58.4919C64.6163 58.4658 64.644 58.4512 64.6733 58.4512C64.7026 58.4512 64.7302 58.4674 64.7449 58.4919L65.8678 60.4382C65.8824 60.4642 65.8824 60.4952 65.8678 60.5212C65.8531 60.5472 65.8254 60.5619 65.7961 60.5619H65.7978Z\",\n fill: \"#DC2626\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M223.361 179.416H221.114C221.085 179.416 221.057 179.4 221.042 179.376C221.028 179.35 221.028 179.319 221.042 179.293L222.165 177.346C222.18 177.32 222.207 177.306 222.237 177.306C222.266 177.306 222.294 177.322 222.308 177.346L223.431 179.293C223.446 179.319 223.446 179.35 223.431 179.376C223.417 179.402 223.389 179.416 223.36 179.416H223.361Z\",\n fill: \"#DC2626\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M75.4422 56.7468C80.9591 56.7468 85.4313 52.2745 85.4313 46.7577C85.4313 41.2408 80.9591 36.7686 75.4422 36.7686C69.9254 36.7686 65.4531 41.2408 65.4531 46.7577C65.4531 52.2745 69.9254 56.7468 75.4422 56.7468Z\",\n fill: \"#DC2626\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M76.3286 46.7579L80.5707 42.5158C80.8152 42.2713 80.8152 41.8737 80.5707 41.6292C80.3262 41.3847 79.9286 41.3847 79.6841 41.6292L75.442 45.8713L71.1999 41.6292C70.9553 41.3847 70.5578 41.3847 70.3133 41.6292C70.0688 41.8737 70.0688 42.2713 70.3133 42.5158L74.5554 46.7579L70.3133 51C70.0688 51.2446 70.0688 51.6421 70.3133 51.8866C70.5578 52.1312 70.9553 52.1312 71.1999 51.8866L75.442 47.6445L79.6841 51.8866C79.9286 52.1312 80.3262 52.1312 80.5707 51.8866C80.8152 51.6421 80.8152 51.2446 80.5707 51L76.3286 46.7579Z\",\n fill: \"white\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M210.496 103.14C214.426 103.14 217.611 99.9546 217.611 96.0253C217.611 92.096 214.426 88.9106 210.496 88.9106C206.567 88.9106 203.382 92.096 203.382 96.0253C203.382 99.9546 206.567 103.14 210.496 103.14Z\",\n fill: \"#DC2626\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M211.127 96.0252L214.149 93.0036C214.324 92.8286 214.324 92.5464 214.149 92.3714C213.974 92.1965 213.691 92.1965 213.516 92.3714L210.495 95.393L207.473 92.3714C207.298 92.1965 207.016 92.1965 206.841 92.3714C206.666 92.5464 206.666 92.8286 206.841 93.0036L209.863 96.0252L206.841 99.0467C206.666 99.2217 206.666 99.5039 206.841 99.6789C207.016 99.8538 207.298 99.8538 207.473 99.6789L210.495 96.6573L213.516 99.6789C213.691 99.8538 213.974 99.8538 214.149 99.6789C214.324 99.5039 214.324 99.2217 214.149 99.0467L211.127 96.0252Z\",\n fill: \"white\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.8525 129.646V203.794H197.653V139.49C197.653 134.96 193.98 131.286 189.449 131.286H161.4C159.434 131.286 157.546 130.519 156.136 129.149L150.409 123.579C149 122.208 147.111 121.442 145.145 121.442H76.0565C71.5261 121.442 67.8525 125.116 67.8525 129.646Z\",\n fill: \"#FC9E00\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M184.583 199.063H81.46V79.5596C81.46 75.1167 85.062 71.5146 89.5049 71.5146H156.562L184.583 98.6532V199.063Z\",\n fill: \"white\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M156.564 71.5146V92.7393C156.564 95.8324 159.053 98.349 162.144 98.3868L184.584 98.6532\",\n fill: \"#CFD9F9\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M207.879 149.022L198.96 216.596C198.469 220.323 195.29 223.108 191.533 223.108H74.6954C71.0118 223.108 67.875 220.431 67.2965 216.795L58.1025 159.061C57.3949 154.622 60.8259 150.6 65.3225 150.6H104.124C106.366 150.6 108.521 149.726 110.129 148.161L115.238 143.194C116.846 141.629 119.001 140.754 121.244 140.754H200.636C205.053 140.754 208.46 144.643 207.883 149.02L207.879 149.022Z\",\n fill: \"#FFC200\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M138.38 202.912C137.346 202.912 136.507 202.067 136.507 201.026C136.507 196.845 130.23 196.845 130.23 201.026C130.23 202.067 129.391 202.912 128.357 202.912C127.322 202.912 126.483 202.067 126.483 201.026C126.483 191.852 140.254 191.862 140.254 201.026C140.254 202.067 139.415 202.912 138.38 202.912Z\",\n fill: \"#1E1E1E\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M155.776 186.041H147.469C146.363 186.041 145.467 185.144 145.467 184.039C145.467 182.933 146.361 182.037 147.469 182.037H155.776C156.881 182.037 157.778 182.933 157.778 184.039C157.778 185.144 156.884 186.041 155.776 186.041Z\",\n fill: \"#1E1E1E\"\n })), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M119.263 186.041H110.959C109.854 186.041 108.957 185.144 108.957 184.039C108.957 182.933 109.854 182.037 110.959 182.037H119.263C120.369 182.037 121.266 182.933 121.266 184.039C121.266 185.144 120.369 186.041 119.263 186.041Z\",\n fill: \"#1E1E1E\"\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M135.491 122.838L147.309 111.02C147.991 110.338 147.991 109.233 147.309 108.551C146.627 107.869 145.522 107.869 144.84 108.551L133.022 120.369L121.204 108.551C120.522 107.869 119.417 107.869 118.735 108.551C118.053 109.233 118.053 110.338 118.735 111.02L130.553 122.838L118.735 134.656C118.053 135.338 118.053 136.443 118.735 137.125C119.417 137.807 120.522 137.807 121.204 137.125L133.022 125.307L144.84 137.125C145.522 137.807 146.627 137.807 147.309 137.125C147.991 136.443 147.991 135.338 147.309 134.656L135.491 122.838Z\",\n fill: \"#DC2626\"\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M114.455 143.805L111.101 140.093L102.923 147.481L106.278 151.194L114.455 143.805Z\",\n fill: \"#4D84FF\"\n })), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M109.292 153.238L75.4427 183.828L74.8821 184.335L73.0433 185.993L72.4847 186.5L67.354 191.133C65.0123 193.251 61.4003 193.068 59.2852 190.726C57.1681 188.384 57.351 184.772 59.6927 182.655L64.8214 178.021L65.382 177.516L67.2168 175.855L67.7774 175.348L101.627 144.758C102.846 143.657 104.728 143.752 105.829 144.971L109.503 149.036C110.604 150.255 110.509 152.137 109.29 153.238H109.292Z\",\n fill: \"#4777F3\"\n })), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.5635 189.732C58.7623 190.082 59.0028 190.416 59.2851 190.728C61.4002 193.072 65.0122 193.253 67.3539 191.136L72.4846 186.502L73.0412 185.995L74.88 184.337L75.4406 183.83L109.292 153.241C110.509 152.139 110.604 150.259 109.505 149.038L108.742 148.193C109.362 149.366 109.133 150.853 108.103 151.783L74.2518 182.373L73.6912 182.88L71.8524 184.538L71.2958 185.045L66.1651 189.678C63.9884 191.648 60.7124 191.629 58.5635 189.73V189.732Z\",\n fill: \"#3359FF\"\n })), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.5,\n d: \"M152.09 142.081C162.626 131.545 162.626 114.463 152.09 103.927C141.553 93.3904 124.471 93.3904 113.935 103.927C103.399 114.463 103.399 131.545 113.935 142.081C124.471 152.617 141.553 152.617 152.09 142.081Z\",\n fill: \"white\"\n })), _path27 || (_path27 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M134.518 93.2384C118.078 92.4075 104.076 105.06 103.245 121.5C102.414 137.94 115.067 151.938 131.506 152.771C147.946 153.602 161.945 140.953 162.778 124.514C163.609 108.074 150.96 94.0713 134.52 93.2404L134.518 93.2384ZM131.648 149.951C116.766 149.197 105.314 136.524 106.066 121.643C106.819 106.762 119.492 95.3098 134.373 96.0612C149.254 96.8146 160.706 109.487 159.955 124.369C159.202 139.25 146.529 150.702 131.648 149.951Z\",\n fill: \"#4777F3\"\n })), _path28 || (_path28 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M73.0431 185.995L72.4846 186.502L64.8213 178.022L65.3839 177.517L73.0431 185.995Z\",\n fill: \"#3359FF\"\n })), _path29 || (_path29 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.7704 175.362L67.21 175.869L74.8718 184.348L75.4323 183.842L67.7704 175.362Z\",\n fill: \"#3359FF\"\n })), _path30 || (_path30 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M210.425 184.14H192.896C191.539 184.14 190.304 183.595 189.404 182.712C188.481 181.81 187.907 180.553 187.901 179.166L187.825 161.637C187.819 160.263 188.37 159.021 189.266 158.12C190.163 157.22 191.403 156.663 192.777 156.663H210.306C211.68 156.663 212.926 157.22 213.829 158.12C214.733 159.021 215.294 160.263 215.3 161.637L215.375 179.166C215.381 180.712 214.682 182.094 213.578 183.006C212.721 183.714 211.622 184.14 210.423 184.14H210.425Z\",\n fill: \"#CFD9F9\"\n })), _path31 || (_path31 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M209.891 178.158H193.381C193.165 178.158 192.962 178.043 192.853 177.854C192.743 177.665 192.741 177.434 192.851 177.246L201.045 162.947C201.152 162.758 201.353 162.643 201.569 162.643C201.786 162.643 201.989 162.758 202.098 162.947L210.413 177.246C210.523 177.434 210.525 177.665 210.415 177.854C210.308 178.043 210.107 178.158 209.891 178.158ZM194.429 176.941H208.831L201.575 164.467L194.427 176.941H194.429Z\",\n fill: \"#DC2626\"\n })), _path32 || (_path32 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M202.369 167.801L202.287 172.858H200.94L200.814 167.801H202.369ZM202.331 173.552L202.339 175.2H200.91L200.902 173.552H202.331Z\",\n fill: \"#DC2626\"\n })), _path33 || (_path33 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63.9661 110.8H27.8166C27.1984 110.8 26.6398 110.551 26.2342 110.148C25.8247 109.74 25.5723 109.178 25.5723 108.555V78.439H66.2124V108.555C66.2124 109.058 66.0475 109.521 65.7691 109.895C65.3596 110.444 64.7056 110.8 63.9681 110.8H63.9661Z\",\n fill: \"white\"\n })), _path34 || (_path34 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.0436 75.6001H27.741C27.1427 75.6001 26.6 75.8426 26.2084 76.2342C25.8167 76.6258 25.5742 77.1685 25.5742 77.7669V78.4348H66.2144V77.7669C66.2144 77.1685 65.9719 76.6258 65.5803 76.2342C65.1887 75.8426 64.646 75.6001 64.0476 75.6001H64.0436Z\",\n fill: \"#4777F3\"\n })), _path35 || (_path35 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M28.2065 77.0193C28.2065 77.4129 27.8885 77.7309 27.4949 77.7309C27.1013 77.7309 26.7832 77.4129 26.7832 77.0193C26.7832 76.6257 27.1013 76.3076 27.4949 76.3076C27.8885 76.3076 28.2065 76.6257 28.2065 77.0193Z\",\n fill: \"#FF6482\"\n })), _path36 || (_path36 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30.5698 77.0193C30.5698 77.4129 30.2517 77.7309 29.8581 77.7309C29.4645 77.7309 29.1465 77.4129 29.1465 77.0193C29.1465 76.6257 29.4645 76.3076 29.8581 76.3076C30.2517 76.3076 30.5698 76.6257 30.5698 77.0193Z\",\n fill: \"#FB9B5B\"\n })), _path37 || (_path37 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.2224 77.7309C32.6154 77.7309 32.9341 77.4123 32.9341 77.0193C32.9341 76.6262 32.6154 76.3076 32.2224 76.3076C31.8294 76.3076 31.5107 76.6262 31.5107 77.0193C31.5107 77.4123 31.8294 77.7309 32.2224 77.7309Z\",\n fill: \"#4ED066\"\n })), _path38 || (_path38 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M65.9898 78.6597V108.553C65.9898 108.993 65.8506 109.41 65.5902 109.76C65.2046 110.279 64.6122 110.575 63.9681 110.575H27.8185C27.2798 110.575 26.7749 110.366 26.3932 109.987C26.0076 109.605 25.7969 109.094 25.7969 108.551V78.6577H65.9918M66.2144 78.4351H25.5742V108.551C25.5742 109.174 25.8267 109.736 26.2362 110.144C26.6417 110.547 27.2023 110.796 27.8185 110.796H63.9681C64.7056 110.796 65.3596 110.44 65.7691 109.891C66.0474 109.518 66.2124 109.052 66.2124 108.551V78.4351H66.2144Z\",\n fill: \"#F2F6FF\"\n })), _path39 || (_path39 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M46.8212 94.6179L51.2701 90.169C51.5265 89.9126 51.5265 89.4971 51.2701 89.2387C51.0136 88.9823 50.5982 88.9823 50.3397 89.2387L45.8909 93.6876L41.442 89.2387C41.1856 88.9823 40.7701 88.9823 40.5117 89.2387C40.2552 89.4952 40.2552 89.9106 40.5117 90.169L44.9605 94.6179L40.5117 99.0668C40.2552 99.3232 40.2552 99.7407 40.5117 99.9971C40.7681 100.254 41.1836 100.254 41.442 99.9971L45.8909 95.5482L50.3397 99.9971C50.5962 100.254 51.0117 100.254 51.2701 99.9971C51.5265 99.7407 51.5265 99.3232 51.2701 99.0668L46.8212 94.6179Z\",\n fill: \"#CFD9F9\"\n })), _path40 || (_path40 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M156.297 55.8505H120.148C119.529 55.8505 118.971 55.602 118.565 55.1984C118.156 54.7909 117.903 54.2284 117.903 53.6062V23.4897H158.544V53.6062C158.544 54.1091 158.379 54.5723 158.1 54.946C157.691 55.4946 157.037 55.8505 156.299 55.8505H156.297Z\",\n fill: \"white\"\n })), _path41 || (_path41 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M156.375 20.6509H120.072C119.474 20.6509 118.931 20.8934 118.539 21.285C118.148 21.6766 117.905 22.2193 117.905 22.8177V23.4856H158.545V22.8177C158.545 22.2193 158.303 21.6766 157.911 21.285C157.52 20.8934 156.977 20.6509 156.379 20.6509H156.375Z\",\n fill: \"#4777F3\"\n })), _path42 || (_path42 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M120.538 22.0701C120.538 22.4637 120.22 22.7817 119.826 22.7817C119.432 22.7817 119.114 22.4637 119.114 22.0701C119.114 21.6765 119.432 21.3584 119.826 21.3584C120.22 21.3584 120.538 21.6765 120.538 22.0701Z\",\n fill: \"#FF6482\"\n })), _path43 || (_path43 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M122.189 22.7817C122.582 22.7817 122.901 22.4631 122.901 22.0701C122.901 21.677 122.582 21.3584 122.189 21.3584C121.796 21.3584 121.478 21.677 121.478 22.0701C121.478 22.4631 121.796 22.7817 122.189 22.7817Z\",\n fill: \"#FB9B5B\"\n })), _path44 || (_path44 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M124.553 22.7817C124.947 22.7817 125.265 22.4631 125.265 22.0701C125.265 21.677 124.947 21.3584 124.553 21.3584C124.16 21.3584 123.842 21.677 123.842 22.0701C123.842 22.4631 124.16 22.7817 124.553 22.7817Z\",\n fill: \"#4ED066\"\n })), _path45 || (_path45 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M158.321 23.7105V53.6042C158.321 54.0435 158.182 54.4609 157.921 54.8108C157.536 55.3296 156.943 55.6258 156.299 55.6258H120.15C119.611 55.6258 119.106 55.4171 118.724 55.0374C118.339 54.6557 118.128 54.1449 118.128 53.6022V23.7085H158.323M158.545 23.4858H117.905V53.6022C117.905 54.2244 118.158 54.7869 118.567 55.1945C118.973 55.598 119.533 55.8465 120.15 55.8465H156.299C157.037 55.8465 157.691 55.4907 158.1 54.942C158.378 54.5683 158.543 54.1031 158.543 53.6022V23.4858H158.545Z\",\n fill: \"#F2F6FF\"\n })), _path46 || (_path46 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M139.152 39.6687L143.601 35.2198C143.858 34.9634 143.858 34.5459 143.601 34.2895C143.345 34.0331 142.929 34.0331 142.671 34.2895L138.222 38.7384L133.773 34.2895C133.517 34.0331 133.101 34.0331 132.843 34.2895C132.586 34.5459 132.586 34.9634 132.843 35.2198L137.292 39.6687L132.843 44.1176C132.586 44.374 132.586 44.7915 132.843 45.0479C133.099 45.3043 133.515 45.3043 133.773 45.0479L138.222 40.599L142.671 45.0479C142.927 45.3043 143.343 45.3043 143.601 45.0479C143.858 44.7915 143.858 44.376 143.601 44.1176L139.152 39.6687Z\",\n fill: \"#CFD9F9\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgEmptyData, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/empty-data.b68ae31b.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react'\r\nimport { injectIntl } from 'react-intl'\r\nimport { Empty as AntdEmpty, Typography } from 'antd'\r\n\r\nimport { Add } from 'components/UI/Button'\r\nimport { ReactComponent as EmptyData } from 'assets/images/empty-data.svg'\r\nimport styles from './empty.module.scss'\r\n\r\nconst { Title } = Typography\r\n\r\nconst Empty = injectIntl(({ title, description, appendDescription, onAdd, intl, name }) => {\r\n return (\r\n \r\n \r\n {title}\r\n \r\n {onAdd === undefined && !!description && (\r\n \r\n {description}\r\n \r\n )}\r\n {appendDescription}\r\n {typeof onAdd === 'function' && (\r\n <>\r\n \r\n {description ??\r\n intl.formatMessage({ id: 'table.lets_create_your_first_x' }, { name })}\r\n \r\n\r\n \r\n \r\n )}\r\n \r\n }\r\n image={}\r\n className={styles.empty}\r\n />\r\n )\r\n})\r\n\r\nexport default Empty\r\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\r\n/* eslint-disable jsx-a11y/click-events-have-key-events */\r\nimport React, { useCallback, useMemo } from 'react'\r\nimport { Card, Col, ConfigProvider, Row, Skeleton, Table, Typography } from 'antd'\r\nimport { connect, useSelector } from 'react-redux'\r\nimport { injectIntl } from 'react-intl'\r\nimport { darkModeSelector } from \"redux/selectors\";\r\n\r\nimport Empty from './Empty'\r\n\r\nconst { Text } = Typography\r\n\r\nconst ResponsiveTableSummary = ({\r\n title,\r\n titleColSpan,\r\n datas = [],\r\n isMobileView,\r\n isTabView,\r\n className,\r\n disableResponsive,\r\n}) => {\r\n const darkMode = useSelector(darkModeSelector)\r\n\r\n const getContent = useCallback(() => {\r\n const content = []\r\n\r\n if (!disableResponsive && (isMobileView || isTabView)) {\r\n content.push(\r\n \r\n {title}\r\n }\r\n size=\"small\"\r\n bodyStyle={{ backgroundColor: darkMode ? '#141414' : '#f1f4f8' }}\r\n headStyle={{ backgroundColor: darkMode ? '#141414' : '#f1f4f8' }}\r\n >\r\n \r\n {datas.map((data, i) => {\r\n if (data.hide) return \r\n return (\r\n \r\n {data.title}\r\n
{data.value}
\r\n \r\n )\r\n })}\r\n
\r\n \r\n
,\r\n )\r\n } else {\r\n content.push(\r\n \r\n {title}\r\n ,\r\n )\r\n datas.forEach((data, i) => {\r\n if (data.hide) return\r\n content.push(\r\n \r\n {typeof data.render === 'function' ? data.render() : {data.value}}\r\n ,\r\n )\r\n })\r\n }\r\n return content\r\n }, [datas, disableResponsive, isMobileView, isTabView, title, titleColSpan, darkMode])\r\n\r\n return (\r\n \r\n {getContent()}\r\n \r\n )\r\n}\r\n\r\n// Responsive table component\r\nconst ResponsiveTable = ({\r\n intl,\r\n name,\r\n onAdd,\r\n withTitle = true,\r\n isMobileView,\r\n isTabView,\r\n rowKey,\r\n columns,\r\n dataSource,\r\n pagination,\r\n footer,\r\n loading,\r\n rowClassName,\r\n onChange,\r\n onRow,\r\n sortDirections,\r\n summary,\r\n rowSelection,\r\n className,\r\n style,\r\n showHeader,\r\n components,\r\n scroll,\r\n expandedRowKeys,\r\n expandedRowRender,\r\n onExpandedRowsChange,\r\n onExpand,\r\n expandRowByClick,\r\n bordered,\r\n mobileTableByPassEmptyValue,\r\n emptyDescription,\r\n emptyTitle,\r\n appendEmptyDescription,\r\n ...props\r\n}) => {\r\n const formattedColumns = useMemo(() => {\r\n const newColumns = columns.map((column) => {\r\n return {\r\n ...column,\r\n dataIndex:\r\n typeof column.dataIndex === 'string' ? column.dataIndex.split('.') : column.dataIndex,\r\n responsive: isMobileView || isTabView ? [] : null,\r\n render: loading ? () => null : column.render,\r\n }\r\n })\r\n\r\n return newColumns\r\n }, [columns, isMobileView, isTabView, loading])\r\n\r\n const renderMobileRow = useCallback(\r\n (row) => {\r\n return formattedColumns.map((column, index) => {\r\n if (withTitle && index === 0) return null\r\n\r\n let val = ''\r\n let colVal = ''\r\n\r\n if (column && column.dataIndex && column.dataIndex.length > 0) {\r\n colVal = row\r\n for (let i = 0; i < column.dataIndex.length; i += 1) {\r\n if (column && (colVal[column.dataIndex[i]] || colVal[column.dataIndex[i]] === 0)) {\r\n colVal = colVal[column.dataIndex[i]]\r\n } else {\r\n colVal = null\r\n break\r\n }\r\n }\r\n }\r\n\r\n val = column.render && column.key !== 'mobileView' ? column.render(colVal, row) : colVal\r\n\r\n if (!val && !mobileTableByPassEmptyValue) return null\r\n\r\n return (\r\n \r\n {column.title}\r\n
{val}
\r\n \r\n )\r\n })\r\n },\r\n [mobileTableByPassEmptyValue, formattedColumns, withTitle],\r\n )\r\n\r\n const responsiveColumns = useMemo(() => {\r\n const newColumns = [...formattedColumns]\r\n if (isMobileView || isTabView) {\r\n newColumns.push({\r\n key: 'mobileView',\r\n render: loading\r\n ? () => null\r\n : (text, row) => {\r\n let val = ''\r\n\r\n if (\r\n withTitle &&\r\n newColumns[0] &&\r\n newColumns[0].dataIndex &&\r\n newColumns[0].dataIndex.length > 0\r\n ) {\r\n val = row\r\n for (let i = 0; i < newColumns[0].dataIndex.length; i += 1) {\r\n if (newColumns[0] && val[newColumns[0].dataIndex[i]]) {\r\n val = val[newColumns[0].dataIndex[i]]\r\n } else {\r\n val = null\r\n break\r\n }\r\n }\r\n\r\n val =\r\n newColumns[0].render && newColumns[0].key !== 'mobileView'\r\n ? newColumns[0].render(val, row)\r\n : val\r\n if (val)\r\n val = (\r\n
{val}
\r\n )\r\n }\r\n\r\n return (\r\n \r\n {renderMobileRow(row)}\r\n \r\n )\r\n },\r\n })\r\n }\r\n\r\n return newColumns\r\n }, [formattedColumns, isMobileView, isTabView, loading, renderMobileRow, withTitle])\r\n\r\n const emptyMessage = useMemo(() => {\r\n return name\r\n ? intl.formatMessage({ id: 'table.data_x_empty' }, { name })\r\n : intl.formatMessage({ id: 'table.data_empty' })\r\n }, [intl, name])\r\n\r\n return (\r\n \r\n loading ? (\r\n
\r\n ) : (\r\n \r\n )\r\n }\r\n >\r\n \r\n \r\n
\r\n ),\r\n style: { left: '-50%', top: 'calc(-50% + 80px)' },\r\n }\r\n }\r\n rowClassName={rowClassName}\r\n onChange={onChange}\r\n onRow={onRow}\r\n sortDirections={sortDirections}\r\n summary={loading ? null : summary}\r\n rowSelection={\r\n rowSelection\r\n ? {\r\n ...rowSelection,\r\n renderCell: (checked, record, index, originNode) => (\r\n e.stopPropagation()}\r\n style={{\r\n position: 'absolute',\r\n height: '100%',\r\n width: '100%',\r\n left: 0,\r\n top: 0,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n cursor: 'default',\r\n }}\r\n >\r\n {originNode}\r\n \r\n ),\r\n }\r\n : undefined\r\n }\r\n // expandedRowKeys={expandedRowKeys}\r\n // expandedRowRender={expandedRowRender}\r\n // onExpandedRowsChange={onExpandedRowsChange}\r\n // onExpand={onExpand}\r\n // expandRowByClick={expandRowByClick}\r\n bordered={bordered}\r\n {...props}\r\n />\r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n isMobileView: state.settings.isMobileView,\r\n isTabView: state.settings.isTabView,\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, {})(injectIntl(ResponsiveTable))\r\n\r\nconst Summary = connect(mapStateToProps, {})(ResponsiveTableSummary)\r\n\r\nexport { Summary, Empty }\r\n","import React from 'react'\r\nimport { Col, Row, Tag } from 'antd'\r\nimport PropTypes from 'prop-types'\r\n\r\nimport { transType } from 'utils/static'\r\nimport { checkContrast, hexToRGB } from 'utils/helper'\r\nimport LinkTransType from '../LinkTransType'\r\nimport styles from './styles.module.scss'\r\n\r\nconst Tags = ({ asLink, data, tagProps }) => {\r\n const { className, style = {} } = tagProps\r\n\r\n return (\r\n \r\n {data?.map?.((tag) => {\r\n if (!tag) return null\r\n\r\n const backgroundColor = hexToRGB(tag.color ?? '#F2F4F8')\r\n const color =\r\n checkContrast(backgroundColor, 'rgb(255, 255, 255)') >= 4.5\r\n ? 'rgb(255, 255, 255)'\r\n : 'rgb(0, 0, 0)'\r\n\r\n return (\r\n \r\n \r\n {asLink ? (\r\n \r\n ) : (\r\n tag.name\r\n )}\r\n \r\n \r\n )\r\n })}\r\n \r\n )\r\n}\r\n\r\nTags.propTypes = {\r\n data: PropTypes.array.isRequired,\r\n goTo: PropTypes.func,\r\n tagProps: PropTypes.object,\r\n asLink: PropTypes.bool,\r\n}\r\n\r\nTags.defaultProps = {\r\n goTo: () => {},\r\n tagProps: {\r\n style: {marginTop: 1, fontSize: 12, padding: '1px 7px'}\r\n },\r\n asLink: true,\r\n}\r\n\r\nexport default Tags\r\n","import React from 'react';\r\nimport { Card as CardAntd, Skeleton } from 'antd';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction Card({loading, ...props}) {\r\n const newExtra = props.extra ? (\r\n
\r\n {props.extra.map(e =>
{e}
)}\r\n
\r\n ) : null;\r\n\r\n return (\r\n : props.title}\r\n extra={newExtra}\r\n />\r\n )\r\n}\r\n\r\nCard.propTypes = {\r\n loading: PropTypes.bool,\r\n}\r\n\r\nCard.defaultProps = {\r\n loading: false\r\n}\r\n\r\nexport default Card;","import React from 'react';\r\nimport {Divider} from 'antd';\r\n\r\nconst InnerDivider = ({style, ...props}) => (\r\n \r\n);\r\n\r\nexport default InnerDivider;","import React from 'react'\r\nimport { Helmet } from 'react-helmet'\r\nimport { useSelector } from 'react-redux'\r\n\r\nconst AppHelmet = (props) => {\r\n const locale = useSelector((state) => state.settings.locale)\r\n const lang = locale === 'en-US' ? 'en' : 'id'\r\n return \r\n}\r\n\r\nexport default AppHelmet\r\n","import React from 'react';\r\nimport { ReactMultiEmail, isEmail } from 'react-multi-email';\r\nimport {Tag} from 'antd';\r\nimport 'react-multi-email/style.css';\r\n\r\nconst MultipleEmailInput = (props) => {\r\n\r\n return (\r\n {\r\n return isEmail(email); // return boolean\r\n }}\r\n getLabel={(\r\n email,\r\n index,\r\n removeEmail,\r\n ) => {\r\n return (\r\n removeEmail(index)}\r\n >\r\n {email}\r\n \r\n );\r\n }}\r\n {...props}\r\n />\r\n );\r\n};\r\n\r\nexport default MultipleEmailInput;\r\n","import React from 'react';\r\n\r\nconst NewTextLine = React.memo(({ text }) => {\r\n if (!text) {\r\n return null;\r\n }\r\n return text.split('\\n').map((str, index) =>
{str}
);\r\n});\r\n\r\nexport default NewTextLine;","import React from 'react'\r\nimport { Dropdown } from 'antd'\r\nimport { injectIntl } from 'react-intl'\r\nimport {\r\n DownOutlined,\r\n SolutionOutlined,\r\n PlayCircleOutlined,\r\n BookOutlined,\r\n QuestionCircleOutlined,\r\n} from '@ant-design/icons'\r\n\r\nconst HelpDropdown = ({\r\n intl,\r\n onClickVideo,\r\n onClickArticle,\r\n onClickTour,\r\n isMobileView,\r\n ...props\r\n}) => {\r\n const [visible, setVisible] = React.useState(false)\r\n\r\n const visibleChangeHandler = (flag) => setVisible(flag)\r\n const toggleHandler = () => setVisible(!visible)\r\n const clickVideoHandler = () => {\r\n setVisible(false)\r\n if (typeof onClickVideo === 'function') {\r\n onClickVideo()\r\n }\r\n }\r\n const clickTourHandler = () => {\r\n setVisible(false)\r\n if (typeof onClickTour === 'function') {\r\n onClickTour()\r\n }\r\n }\r\n const clickArticleHandler = () => {\r\n setVisible(false)\r\n if (typeof onClickArticle === 'function') {\r\n onClickArticle()\r\n }\r\n }\r\n\r\n const items = []\r\n if (typeof onClickTour === 'function') {\r\n items.push({\r\n key: '1',\r\n icon: ,\r\n onClick: clickTourHandler,\r\n label: intl.formatMessage({ id: 'button.tour' }),\r\n })\r\n }\r\n if (typeof onClickVideo === 'function') {\r\n items.push({\r\n key: '2',\r\n icon: ,\r\n onClick: clickVideoHandler,\r\n label: intl.formatMessage({ id: 'button.video' }),\r\n })\r\n }\r\n if (typeof onClickArticle === 'function') {\r\n items.push({\r\n key: '3',\r\n icon: ,\r\n onClick: clickArticleHandler,\r\n label: intl.formatMessage({ id: 'button.article' }),\r\n })\r\n }\r\n\r\n const menu = items\r\n return (\r\n : }\r\n menu={{items: menu}}\r\n trigger={['click']}\r\n onOpenChange={visibleChangeHandler}\r\n onClick={toggleHandler}\r\n open={visible}\r\n {...props}\r\n >\r\n {!isMobileView && (\r\n <>\r\n {intl.formatMessage({ id: 'button.guide' })}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nconst Component = injectIntl(HelpDropdown)\r\nexport default React.memo(Component)\r\n","import React from 'react';\r\nimport { Modal, Spin } from 'antd';\r\nimport { injectIntl } from 'react-intl';\r\nimport Player from \"./Player\";\r\n\r\nconst ModalPlayer = ({ title, videoId, visible, onCancel, afterClose, playerProps, ...props }) => {\r\n const [youTubeApi, setYouTubeApi] = React.useState();\r\n\r\n const afterCloseHandler = React.useCallback(() => {\r\n if (youTubeApi) {\r\n youTubeApi.pauseVideo();\r\n }\r\n if (typeof afterClose === 'function') {\r\n afterClose();\r\n }\r\n // stopVideo('.video-responsive');\r\n }, [afterClose, youTubeApi]);\r\n\r\n const readyHandler = (event) => setYouTubeApi(event.target);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n};\r\n\r\nconst Component = injectIntl(ModalPlayer);\r\nexport default React.memo(Component);\r\n","import React from 'react';\r\nimport Joyride from 'react-joyride';\r\nimport { useSelector } from 'react-redux';\r\nimport { darkModeSelector } from 'redux/selectors';\r\n\r\nconst ProductTour = ({innerRef, ...props}) => {\r\n const darkMode = useSelector(darkModeSelector)\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst Component = React.forwardRef((props, ref) => );\r\nexport default React.memo(Component);\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport { Tooltip } from 'antd'\r\nimport { QuestionCircleOutlined } from '@ant-design/icons'\r\n\r\nconst HelpTooltip = ({ title, isMobileView, questionIconProps = {}, ...props }) => {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nHelpTooltip.propTypes = {\r\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired,\r\n}\r\n\r\nexport default React.memo(HelpTooltip)\r\n","import React from 'react';\r\nimport { injectIntl, FormattedMessage } from 'react-intl';\r\nimport { LinkTransType } from 'components/UI';\r\nimport { transType } from 'utils/static';\r\n\r\nconst RefNumberTitle = ({intl}) => {\r\n return (\r\n \r\n }}\r\n />\r\n )\r\n}\r\n\r\nconst Component = injectIntl(RefNumberTitle);\r\n\r\nexport default React.memo(Component);\r\n","import React from 'react'\r\nimport dayjs from 'dayjs'\r\nimport { connect } from 'react-redux'\r\nimport { injectIntl } from 'react-intl'\r\nimport { DatePicker as DateAntd } from 'antd'\r\nimport { formatDateText } from 'utils/formatting'\r\n\r\nconst DatePicker = ({intl, ...props}) => {\r\n return(\r\n \r\n )\r\n}\r\n\r\nexport default connect()(injectIntl(DatePicker))\r\n","import React from 'react';\r\nimport { Button, Descriptions, Modal, Result, Skeleton, Typography } from 'antd';\r\nimport { injectIntl } from 'react-intl';\r\nimport { Cancel, Send } from '../Button';\r\n\r\nconst { Text } = Typography;\r\n\r\nconst MassSendEmailModal = ({\r\n intl, show, loading, info, title, getMassSendEmailInfo,\r\n onCancel, onExecuteMassSendEmail,\r\n onSendEmailCompleted,\r\n}) => {\r\n const [step, setStep] = React.useState(0);\r\n const [loadingExecute, setLoadingExecute] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n if (show && step === 0) {\r\n getMassSendEmailInfo();\r\n }\r\n }, [getMassSendEmailInfo, show, step]);\r\n\r\n const onMassSendEmail = async () => {\r\n setLoadingExecute(true);\r\n await onExecuteMassSendEmail();\r\n setStep(2);\r\n setLoadingExecute(false);\r\n onSendEmailCompleted();\r\n }\r\n\r\n const onClose = () => {\r\n onCancel();\r\n if (step === 2) {\r\n setLoadingExecute(false);\r\n setStep(0);\r\n }\r\n }\r\n\r\n return (\r\n 0 && step === 0 ? [\r\n ,\r\n ,\r\n ] : null}\r\n >\r\n {step === 0 && (\r\n <>\r\n {loading ? :\r\n <>\r\n \r\n \r\n {info.valid}\r\n \r\n \r\n {info.invalid}\r\n \r\n \r\n {info.valid > 0 && (\r\n \r\n {intl.formatMessage({ id: 'massEmail.are_you_sure' }, { title, count: info.valid })}\r\n \r\n )}\r\n \r\n }\r\n \r\n )}\r\n {step === 2 && (\r\n <>\r\n {intl.formatMessage({ id: 'massEmail.data_has_been_sent' }, { count: info.valid })}\r\n }\r\n />\r\n
\r\n \r\n
\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default injectIntl(MassSendEmailModal);\r\n","import { DatePicker, Form, Skeleton, Space, Switch } from 'antd'\r\nimport dayjs from 'dayjs'\r\nimport React from 'react'\r\nimport { injectIntl } from 'react-intl'\r\n\r\nimport { formatDate, formatDateText } from 'utils/formatting'\r\n\r\nconst MassMinTransDateForm = ({ intl, form, loading, minTransDate, onSubmit }) => {\r\n const transDate = Form.useWatch('trans_date_from_parent_tran', form)\r\n\r\n const getDefaultPaymentDate = () => {\r\n const now = dayjs()\r\n if (dayjs(minTransDate).isAfter(now)) {\r\n return dayjs(minTransDate)\r\n }\r\n return now\r\n }\r\n\r\n const disabledTransDate = (current) => {\r\n return current && current.isSameOrBefore(dayjs(minTransDate), 'day')\r\n }\r\n\r\n if (loading) {\r\n return \r\n }\r\n\r\n return (\r\n \r\n {!transDate ? (\r\n {\r\n if (value < dayjs(minTransDate)) {\r\n return Promise.reject(\r\n intl.formatMessage({\r\n id: 'financePurchaseInvoices.transaction_date_must_be_gt_date',\r\n date: formatDate(minTransDate),\r\n }),\r\n )\r\n }\r\n return Promise.resolve()\r\n },\r\n },\r\n ]}\r\n >\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {intl.formatMessage({\r\n id: 'financeInvoices.date_same_as_the_original_transaction',\r\n })}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default injectIntl(MassMinTransDateForm)\r\n","import { Skeleton, Table } from 'antd'\r\nimport React from 'react'\r\nimport { injectIntl } from 'react-intl'\r\n\r\nimport { LinkTransType } from 'components/UI'\r\nimport { qtyToCurrency } from 'utils/formatting'\r\n\r\nconst InfoTable = ({ intl, loading, title, info, errors, originTransType, originTitle }) => {\r\n if (loading) {\r\n return \r\n }\r\n\r\n const dataSource = [\r\n {\r\n key: 'valid',\r\n label: intl.formatMessage(\r\n { id: 'financeInvoices.can_be_created_to' },\r\n { title: title.toLowerCase() },\r\n ),\r\n count: info.valid,\r\n },\r\n {\r\n key: 'invalid',\r\n label: intl.formatMessage(\r\n { id: 'financeInvoices.cannot_be_created_to' },\r\n { title: title.toLowerCase() },\r\n ),\r\n count: info.invalid,\r\n },\r\n ...errors,\r\n ]\r\n\r\n const columns = [\r\n {\r\n dataIndex: 'label',\r\n className: 'ant-descriptions-item-label',\r\n width: errors.length > 0 ? 200 : undefined,\r\n render: (text, row) => {\r\n if (text) {\r\n return text\r\n }\r\n\r\n return (\r\n \r\n )\r\n },\r\n },\r\n {\r\n dataIndex: 'count',\r\n className: 'text-right ant-descriptions-item-content',\r\n render: (text, row) => {\r\n if (!row.message) {\r\n return qtyToCurrency(text)\r\n }\r\n\r\n return row.message\r\n },\r\n },\r\n ]\r\n\r\n return (\r\n row.key ?? `${row.id}-${row.ref_number}`}\r\n dataSource={dataSource}\r\n columns={columns}\r\n />\r\n )\r\n}\r\n\r\nexport default injectIntl(InfoTable)\r\n","import React, { useCallback, useEffect, useState } from 'react'\r\nimport { injectIntl } from 'react-intl'\r\nimport { Button, Form, Modal, Progress, Result } from 'antd'\r\nimport { useSelector } from 'react-redux'\r\nimport _ from 'lodash'\r\n\r\nimport { transType } from 'utils/static'\r\nimport { titleSelector } from 'redux/selectors'\r\nimport { Cancel } from 'components/UI'\r\nimport { useNotificationProgress } from 'utils/hooks'\r\nimport MassMinTransDateForm from 'components/UI/MassCreateTransModal/MassMinTransDateForm'\r\nimport InfoTable from 'components/UI/MassCreateTransModal/InfoTable'\r\n\r\nconst MassCreateTransModal = ({\r\n intl,\r\n show,\r\n onCancel,\r\n loadingTransDate,\r\n loadingInfo,\r\n getMinTransDate,\r\n getInfo,\r\n onExecute,\r\n onCompleted,\r\n info,\r\n type,\r\n originTransType,\r\n minTransDate,\r\n}) => {\r\n const [formValues, setFormValues] = useState(null)\r\n\r\n const [form] = Form.useForm()\r\n\r\n const {\r\n onSetChannel,\r\n progress: { percentage, total, imported, data: progressData },\r\n onDisconnect,\r\n onResetProgress,\r\n statusImported,\r\n } = useNotificationProgress()\r\n\r\n const titleName = useCallback((currentType) => {\r\n switch (currentType) {\r\n case transType.INVOICE:\r\n return 'invoices'\r\n case transType.DELIVERY:\r\n return 'deliveries'\r\n case transType.ORDER:\r\n return 'orders'\r\n case transType.PURCHASE_INVOICE:\r\n return 'purchase_invoices'\r\n case transType.PURCHASE_DELIVERY:\r\n return 'purchase_deliveries'\r\n case transType.PURCHASE_ORDER:\r\n return 'purchase_orders'\r\n default:\r\n return 'invoices'\r\n }\r\n }, [])\r\n\r\n const title = useSelector((state) => titleSelector(state, titleName(type)))\r\n const originTitle = useSelector((state) => titleSelector(state, titleName(originTransType)))\r\n const [step, setStep] = useState(0)\r\n const [loadingExecute, setLoadingExecute] = useState(false)\r\n\r\n useEffect(() => {\r\n if (statusImported) {\r\n setStep(3)\r\n setLoadingExecute(false)\r\n onCompleted()\r\n onDisconnect()\r\n }\r\n }, [statusImported, onCompleted, onDisconnect])\r\n\r\n useEffect(() => {\r\n if (show && step === 0) {\r\n getMinTransDate()\r\n }\r\n // don't include getMinTransDate or it will infinite loop\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [show, step])\r\n\r\n const setChannel = (data) => {\r\n setLoadingExecute(false)\r\n if (data) {\r\n onSetChannel(data.channel, 'App\\\\Events\\\\MassInvoiceProgress')\r\n setLoadingExecute(false)\r\n setStep(2)\r\n }\r\n }\r\n\r\n const submitHandler = (values) => {\r\n if (!values.trans_date_from_parent_tran) {\r\n values.trans_date = values.trans_date.format('YYYY-MM-DD')\r\n } else {\r\n delete values.trans_date\r\n }\r\n values.trans_date_from_parent_tran = Number(values.trans_date_from_parent_tran)\r\n setFormValues(values)\r\n getInfo({\r\n values,\r\n callback: () => {\r\n form.resetFields()\r\n setStep(1)\r\n },\r\n })\r\n }\r\n\r\n const onClose = () => {\r\n onCancel()\r\n setStep(0)\r\n if (form) {\r\n form.resetFields()\r\n }\r\n if (statusImported) {\r\n setLoadingExecute(false)\r\n onResetProgress()\r\n }\r\n }\r\n\r\n const handleExecute = () => {\r\n setLoadingExecute(true)\r\n onExecute(formValues, setChannel)\r\n }\r\n\r\n const errors = _.isArray(info.errors) ? info.errors : []\r\n\r\n return (\r\n 0 && step === 1) || step === 0\r\n ? [\r\n ,\r\n form.submit()}\r\n >\r\n {intl.formatMessage({ id: 'button.next' })}\r\n ,\r\n ]\r\n : null\r\n }\r\n >\r\n {step === 0 && (\r\n \r\n )}\r\n {step === 1 && (\r\n \r\n )}\r\n {step === 2 && (\r\n <>\r\n \r\n

\r\n {intl.formatMessage(\r\n { id: 'financeInvoices.data_progress_create_trans' },\r\n { count: imported, total, title: title.toLowerCase() },\r\n )}\r\n

\r\n \r\n )}\r\n {step === 3 && (\r\n <>\r\n \r\n {intl.formatMessage(\r\n {\r\n id: 'financeInvoices.data_has_been_create_trans',\r\n },\r\n { count: progressData.valid, title: title.toLowerCase() },\r\n )}\r\n \r\n }\r\n />\r\n
\r\n \r\n
\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default injectIntl(MassCreateTransModal)\r\n","import React, { useCallback } from 'react'\r\nimport { Editor as RdwEditor } from 'react-draft-wysiwyg'\r\n\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css'\r\nimport 'assets/styles/Rdw/rdw.cleanui.scss'\r\n\r\nconst MessageEditor = ({ setRef, editorState, editorStateChangeHandler, ...props }) => {\r\n const pastedTextHandler = useCallback((text) => {\r\n return text\r\n }, [])\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default MessageEditor\r\n","import React, { useState } from 'react'\r\nimport { Button, Form, Input, message, Modal, Select, Skeleton } from 'antd'\r\nimport { EditOutlined } from '@ant-design/icons'\r\n\r\nimport { openNewTab } from 'utils/helper'\r\nimport { Cancel, Send } from 'components/UI'\r\nimport HideFeature from 'containers/Billing/HideFeature'\r\n\r\nconst { TextArea } = Input\r\n\r\nconst SendWaModal = ({\r\n intl,\r\n sendTitle,\r\n getWaTemplate,\r\n show = false,\r\n data = { contact: {} },\r\n onCloseWaModal,\r\n goToWaTamplate,\r\n}) => {\r\n const formRef = React.createRef()\r\n\r\n const [loadingWaTemplate, setLoadingWaTemplate] = React.useState(false)\r\n const [waTemplate, setWaTemplate] = React.useState({ body: '', phone_number: '' })\r\n const [phonesNumber, setPhonesNumber] = useState([])\r\n\r\n React.useEffect(() => {\r\n const getTemplate = async () => {\r\n try {\r\n setLoadingWaTemplate(true)\r\n const response = await getWaTemplate()\r\n setLoadingWaTemplate(false)\r\n const currentData = response.data.data\r\n if (currentData.phones) {\r\n setPhonesNumber(currentData.phones.filter(Boolean))\r\n setWaTemplate({\r\n ...currentData,\r\n phone_number: currentData.phones[0],\r\n })\r\n } else {\r\n setWaTemplate({ ...currentData, phone_number: currentData.phone })\r\n }\r\n } catch (e) {\r\n console.log(e)\r\n message.error(intl.formatMessage({ id: 'sms.cannot_send_wa' }))\r\n }\r\n }\r\n\r\n if (show) {\r\n getTemplate()\r\n }\r\n }, [show, getWaTemplate, intl])\r\n\r\n React.useEffect(() => {\r\n if (formRef.current) {\r\n formRef.current.setFieldsValue({\r\n phone_number: waTemplate.phone_number,\r\n body: waTemplate.body,\r\n })\r\n }\r\n }, [data, waTemplate, formRef])\r\n\r\n const onSendWa = async (values) => {\r\n // use replace with a g flag on regex instead replaceAll to prevent a user cannot send whatsapp\r\n // on a Chrome version under 85\r\n // source: https://caniuse.com/?search=replaceAll\r\n const body = values.body\r\n .replace(/(?:\\r\\n|\\r|\\n)/g, '%0a')\r\n .replace(/#/g, encodeURIComponent('#'))\r\n .replace(/&/g, encodeURIComponent('&'))\r\n\r\n let phone = values.phone_number\r\n if (phone.charAt(0) === '+') {\r\n phone = phone.substring(1)\r\n }\r\n if (phone.charAt(0) === '0') {\r\n phone = phone.substring(1)\r\n phone = `62${phone}`\r\n }\r\n openNewTab(`https://api.whatsapp.com/send?phone=${phone}&text=${body}`, false)\r\n onCloseWaModal()\r\n }\r\n\r\n return (\r\n \r\n {goToWaTamplate && (\r\n \r\n )}\r\n ,\r\n ,\r\n ,\r\n ]}\r\n >\r\n \r\n {loadingWaTemplate ? (\r\n \r\n ) : (\r\n
\r\n \r\n {phonesNumber.length < 2 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default SendWaModal\r\n","/* eslint-disable no-nested-ternary */\r\nimport React from 'react'\r\nimport { Button, Form, Input, message, Modal, Result, Skeleton } from 'antd'\r\nimport { Cancel, Send } from 'components/UI'\r\nimport HideFeature from 'containers/Billing/HideFeature'\r\nimport { useSelector } from 'react-redux'\r\nimport { billingSelector } from 'redux/selectors'\r\n\r\nconst { TextArea } = Input\r\n\r\nconst SendSmsModal = ({\r\n intl,\r\n sendTitle,\r\n getSmsTemplate,\r\n sendSms,\r\n show = false,\r\n data = { contact: {} },\r\n smsSent = false,\r\n setSmsSent,\r\n onCloseSmsModal,\r\n}) => {\r\n const formRef = React.createRef()\r\n const { plan } = useSelector(billingSelector)\r\n\r\n const [loadingSendSms, setLoadingSendSms] = React.useState(false)\r\n const [loadingSmsTemplate, setLoadingSmsTemplate] = React.useState(false)\r\n const [smsTemplate, setSmsTemplate] = React.useState({ body: '', phone_number: '' })\r\n\r\n React.useEffect(() => {\r\n const getTemplate = async () => {\r\n try {\r\n setLoadingSmsTemplate(true)\r\n const response = await getSmsTemplate()\r\n setLoadingSmsTemplate(false)\r\n\r\n setSmsTemplate({ ...response.data.data, phone_number: response.data.data.phone })\r\n } catch (e) {\r\n console.log(e)\r\n message.error(intl.formatMessage({ id: 'sms.cannot_send_sms' }))\r\n }\r\n }\r\n\r\n if (show) {\r\n getTemplate()\r\n }\r\n }, [show, getSmsTemplate, intl])\r\n\r\n React.useEffect(() => {\r\n if (formRef.current && !loadingSendSms) {\r\n formRef.current.setFieldsValue({\r\n phone_number: smsTemplate.phone_number,\r\n body: smsTemplate.body,\r\n })\r\n }\r\n }, [data, smsTemplate, formRef, loadingSendSms])\r\n\r\n const onSendSms = async (values) => {\r\n setLoadingSendSms(true)\r\n\r\n try {\r\n const response = await sendSms(data.id, values)\r\n setLoadingSendSms(false)\r\n\r\n if (response.data.success) {\r\n setSmsSent(true)\r\n setSmsTemplate({ ...smsTemplate, phone_number: values.phone_number })\r\n } else {\r\n message.error(response.data.message)\r\n }\r\n } catch (e) {\r\n setLoadingSendSms(false)\r\n message.error(intl.formatMessage({ id: 'sms.cannot_send_sms' }))\r\n }\r\n }\r\n\r\n return (\r\n \r\n Ok\r\n ,\r\n ]\r\n : [\r\n ,\r\n ,\r\n ]\r\n }\r\n >\r\n \r\n {loadingSmsTemplate ? (\r\n \r\n ) : smsSent ? (\r\n \r\n {intl.formatMessage({ id: 'sms.sms_has_been_sent_to' })} {smsTemplate.phone_number}\r\n \r\n }\r\n />\r\n ) : (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default SendSmsModal\r\n","import React from 'react'\r\nimport { connect } from \"react-redux\";\r\nimport { injectIntl } from \"react-intl\";\r\nimport { TimePicker as TimeAntd } from \"antd\";\r\nimport locale from \"antd/es/date-picker/locale/id_ID\";\r\n\r\nconst idLocale = {\r\n ...locale,\r\n lang: {\r\n ...locale.lang,\r\n now: \"Sekarang\",\r\n ok: \"Ok\",\r\n }\r\n};\r\n\r\nfunction TimePicker({ intl, ...props }) {\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default connect()(injectIntl(TimePicker))\r\n","import React, {useMemo, useState} from 'react'\r\nimport { injectIntl } from 'react-intl'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { translationSelector } from 'redux/selectors'\r\nimport { Dropdown } from 'antd'\r\nimport { DownOutlined } from '@ant-design/icons'\r\nimport { push } from 'connected-react-router'\r\n\r\nconst ReportDropdown = ({ intl, options, ...props }) => {\r\n const [visible, setVisible] = useState(false);\r\n const dispatch = useDispatch();\r\n const { reportmenu } = useSelector(translationSelector);\r\n const pushPath = (path) => dispatch(push(path));\r\n const visibleChangeHandler = (flag) => setVisible(flag);\r\n const toggleHandler = () => setVisible(!visible);\r\n\r\n const items = [\r\n {\r\n key: 'report_balance_sheet',\r\n label: reportmenu.balance_sheet,\r\n onClick: () => pushPath('/reports/balance-sheet'),\r\n permission: 'report_balance_sheet',\r\n },\r\n {\r\n key: 'report_cash_flow',\r\n label: reportmenu.cash_flow,\r\n onClick: () => pushPath('/reports/cash-flow'),\r\n permission: 'report_cash_flow',\r\n },\r\n {\r\n key: 'report_profit_loss',\r\n label: reportmenu.profit_and_loss,\r\n onClick: () => pushPath('/reports/profit-loss'),\r\n permission: 'report_profit_loss',\r\n },\r\n {\r\n key: 'report_equity_movement',\r\n label: reportmenu.equity_movement,\r\n onClick: () => pushPath('/reports/equity-movement'),\r\n permission: 'report_equity_movement',\r\n },\r\n {\r\n key: 'report_executive_summary',\r\n label: reportmenu.executive_summary,\r\n onClick: () => pushPath('/reports/executive-summary'),\r\n permission: 'report_executive_summary',\r\n },\r\n {\r\n key: 'report_receivable_payable',\r\n label: reportmenu.payable_credit_per_contact,\r\n onClick: () => pushPath('/reports/receivable-payable-per-contact'),\r\n permission: 'report_receivable_payable',\r\n },\r\n {\r\n key: 'report_bank_summary',\r\n label: reportmenu.bank_summary,\r\n onClick: () => pushPath('/reports/bank-summary'),\r\n permission: 'report_bank_summary',\r\n },\r\n {\r\n key: 'report_general_ledger',\r\n label: reportmenu.general_ledger,\r\n onClick: () => pushPath('/reports/general-ledger'),\r\n permission: 'report_general_ledger',\r\n },\r\n {\r\n key: 'report_journal',\r\n label: reportmenu.journal,\r\n onClick: () => pushPath('/reports/journal'),\r\n permission: 'report_journal',\r\n },\r\n {\r\n key: 'report_trial_balance',\r\n label: reportmenu.trial_balance,\r\n onClick: () => pushPath('/reports/trial-balance'),\r\n permission: 'report_trial_balance',\r\n },\r\n {\r\n key: 'report_sales_detail',\r\n label: reportmenu.sales_detail,\r\n onClick: () => pushPath('/reports/sales-detail'),\r\n permission: 'report_sales_detail',\r\n },\r\n {\r\n key: 'report_aged_receivables',\r\n label: reportmenu.aged_receivables,\r\n onClick: () => pushPath('/reports/aged-receivable'),\r\n permission: 'report_aged_receivables',\r\n },\r\n {\r\n key: 'report_customer_invoice',\r\n label: reportmenu.customer_invoice,\r\n onClick: () => pushPath('/reports/customer-invoice'),\r\n permission: 'report_customer_invoice',\r\n },\r\n {\r\n key: 'report_profitability_product',\r\n label: reportmenu.profitability_product,\r\n onClick: () => pushPath('/reports/product-profitability'),\r\n permission: 'report_product_profitability',\r\n },\r\n {\r\n key: 'report_profitability_per_invoice',\r\n label: reportmenu.profitability_per_invoice,\r\n onClick: () => pushPath('/reports/profitability-per-invoice'),\r\n permission: 'report_profitability_per_invoice',\r\n },\r\n {\r\n key: 'report_income_per_customer',\r\n label: reportmenu.income_per_customer,\r\n onClick: () => pushPath('/reports/income-per-customer'),\r\n permission: 'report_income_per_customer',\r\n },\r\n {\r\n key: 'report_sales_per_product',\r\n label: reportmenu.sales_per_product,\r\n onClick: () => pushPath('/reports/sales-per-product'),\r\n permission: 'report_sales_per_product',\r\n },\r\n {\r\n key: 'report_order_per_product',\r\n label: reportmenu.order_per_product,\r\n onClick: () => pushPath('/reports/order-per-product'),\r\n permission: 'report_order_per_product',\r\n },\r\n {\r\n key: 'report_sales_per_sales_person',\r\n label: reportmenu.sales_per_sales_person,\r\n onClick: () => pushPath('/reports/sales-per-sales-person'),\r\n permission: 'report_sales_per_sales_person',\r\n },\r\n {\r\n key: 'report_sales_delivery',\r\n label: reportmenu.sales_delivery,\r\n onClick: () => pushPath('/reports/sales-delivery'),\r\n permission: 'report_sales_delivery',\r\n },\r\n {\r\n key: 'report_shipping_cost_per_expedition',\r\n label: reportmenu.shipping_cost_per_expedition,\r\n onClick: () => pushPath('/reports/shipping-cost-per-expedition'),\r\n permission: 'report_shipping_cost_per_expedition',\r\n },\r\n {\r\n key: 'report_invoice_payment',\r\n label: reportmenu.invoice_payment,\r\n onClick: () => pushPath('/reports/invoice-payment'),\r\n permission: 'report_invoice_payment',\r\n },\r\n {\r\n key: 'report_sales_per_product_category',\r\n label: reportmenu.sales_per_product_category,\r\n onClick: () => pushPath('/reports/sales-per-product-category'),\r\n permission: 'report_sales_per_product_category',\r\n },\r\n {\r\n key: 'report_product_sales_per_customer',\r\n label: reportmenu.product_sales_per_customer,\r\n onClick: () => pushPath('/reports/product-sales-per-customer'),\r\n permission: 'report_product_sales_per_customer',\r\n },\r\n {\r\n key: 'report_sales_per_period',\r\n label: reportmenu.sales_per_period,\r\n onClick: () => pushPath('/reports/sales-per-period'),\r\n permission: 'report_sales_per_period',\r\n },\r\n {\r\n key: 'report_purchase_detail',\r\n label: reportmenu.purchase_detail,\r\n onClick: () => pushPath('/reports/purchase-detail'),\r\n permission: 'report_purchase_detail',\r\n },\r\n {\r\n key: 'report_aged_payables',\r\n label: reportmenu.aged_payables,\r\n onClick: () => pushPath('/reports/aged-payable'),\r\n permission: 'report_aged_payables',\r\n },\r\n {\r\n key: 'report_supplier_invoice',\r\n label: reportmenu.supplier_invoice,\r\n onClick: () => pushPath('/reports/supplier-invoice'),\r\n permission: 'report_supplier_invoice',\r\n },\r\n {\r\n key: 'report_purchases_per_product',\r\n label: reportmenu.purchases_per_product,\r\n onClick: () => pushPath('/reports/purchases-per-product'),\r\n permission: 'report_purchases_per_product',\r\n },\r\n {\r\n key: 'report_purchases_per_supplier',\r\n label: reportmenu.purchases_per_supplier,\r\n onClick: () => pushPath('/reports/purchases-per-vendor'),\r\n permission: 'report_purchases_per_supplier',\r\n },\r\n {\r\n key: 'report_purchase_delivery',\r\n label: reportmenu.purchase_delivery,\r\n onClick: () => pushPath('/reports/purchase-delivery'),\r\n permission: 'report_purchase_delivery',\r\n },\r\n {\r\n key: 'report_purchases_invoice_payment',\r\n label: reportmenu.purchases_invoice_payment,\r\n onClick: () => pushPath('/reports/purchase-invoice-payment'),\r\n permission: 'report_purchase_invoice_payment',\r\n },\r\n {\r\n key: 'report_product_purchases_per_supplier',\r\n label: reportmenu.product_purchases_per_supplier,\r\n onClick: () => pushPath('/reports/product-purchases-per-vendor'),\r\n permission: 'report_product_purchases_per_vendor',\r\n },\r\n {\r\n key: 'report_purchases_per_period',\r\n label: reportmenu.purchases_per_period,\r\n onClick: () => pushPath('/reports/purchases-per-period'),\r\n permission: 'report_purchases_per_period',\r\n },\r\n {\r\n key: 'report_expense_per_contact',\r\n label: reportmenu.expense_per_contact,\r\n onClick: () => pushPath('/reports/expense-per-contact'),\r\n permission: 'report_expense_per_contact',\r\n },\r\n {\r\n key: 'report_expense_claim_detail',\r\n label: reportmenu.expense_claim_detail,\r\n onClick: () => pushPath('/reports/expense-claim'),\r\n permission: 'report_expense_claim_detail',\r\n },\r\n {\r\n key: 'report_sales_tax',\r\n label: reportmenu.sales_tax,\r\n onClick: () => pushPath('/reports/sales-tax'),\r\n permission: 'report_sales_tax',\r\n },\r\n {\r\n key: 'report_witholding_tax',\r\n label: reportmenu.witholding_tax,\r\n onClick: () => pushPath('/reports/witholding-tax'),\r\n permission: 'report_witholding_tax',\r\n },\r\n {\r\n key: 'report_inventory_summary',\r\n label: reportmenu.inventory_summary,\r\n onClick: () => pushPath('/reports/inventory-summary'),\r\n permission: 'report_inventory_summary',\r\n },\r\n {\r\n key: 'report_inventory_stock_movement',\r\n label: reportmenu.inventory_stock_movement,\r\n onClick: () => pushPath('/reports/inventory-stock-movement'),\r\n permission: 'report_inventory_stock_movement',\r\n },\r\n {\r\n key: 'report_warehouse_stock_summary',\r\n label: reportmenu.warehouse_stock_summary,\r\n onClick: () => pushPath('/reports/warehouse-stock-summary'),\r\n permission: 'report_warehouse_stock_summary',\r\n },\r\n {\r\n key: 'report_warehouse_stock_movement',\r\n label: reportmenu.warehouse_stock_movement,\r\n onClick: () => pushPath('/reports/warehouse-stock-movement'),\r\n permission: 'report_warehouse_stock_movement',\r\n },\r\n {\r\n key: 'report_production',\r\n label: reportmenu.production,\r\n onClick: () => pushPath('/reports/production'),\r\n permission: 'report_production',\r\n },\r\n {\r\n key: 'report_report_inventory_stock_adjustment',\r\n label: reportmenu.report_inventory_stock_adjustment,\r\n onClick: () => pushPath('/reports/inventory-stock-adjustment'),\r\n permission: 'report_report_inventory_stock_adjustment',\r\n },\r\n {\r\n key: 'report_inventory_warehouse_transfer',\r\n label: reportmenu.inventory_warehouse_transfer,\r\n onClick: () => pushPath('/reports/warehouse-transfer'),\r\n permission: 'report_inventory_warehouse_transfer',\r\n },\r\n {\r\n key: 'report_fixed_asset_summary',\r\n label: reportmenu.fixed_asset_summary,\r\n onClick: () => pushPath('/reports/fixed-asset-summary'),\r\n permission: 'report_fixed_asset_summary',\r\n },\r\n {\r\n key: 'report_fixed_asset_detail',\r\n label: reportmenu.fixed_asset_detail,\r\n onClick: () => pushPath('/reports/fixed-asset-detail'),\r\n permission: 'report_fixed_asset_detail',\r\n },\r\n {\r\n key: 'report_fixed_asset_disposal',\r\n label: reportmenu.fixed_asset_disposal,\r\n onClick: () => pushPath('/reports/fixed-asset-disposal'),\r\n permission: 'report_fixed_asset_disposal',\r\n },\r\n {\r\n key: 'report_budget',\r\n label: reportmenu.budget,\r\n onClick: () => pushPath('/reports/budget-management'),\r\n permission: 'report_budget',\r\n },\r\n {\r\n key: 'report_budget_profit_loss',\r\n label: reportmenu.budget_profit_loss,\r\n onClick: () => pushPath('/reports/budget-profit-loss'),\r\n permission: 'report_budget_profit_loss',\r\n },\r\n {\r\n key: 'report_attachment',\r\n label: reportmenu.attachment,\r\n onClick: () => pushPath('/reports/attachment'),\r\n permission: 'report_attachment',\r\n },\r\n {\r\n key: 'report_export',\r\n label: reportmenu.export,\r\n onClick: () => pushPath('/reports/export'),\r\n permission: 'report_export',\r\n },\r\n {\r\n key: 'report_import',\r\n label: reportmenu.import,\r\n onClick: () => pushPath('/reports/import'),\r\n permission: 'report_import',\r\n },\r\n ];\r\n\r\n const filteredItems = useMemo(() => {\r\n if (!Array.isArray(options)) return [];\r\n return items.filter(item => options.includes(item.key));\r\n }, [items, options]);\r\n\r\n return (\r\n <>\r\n }\r\n menu={{ items: filteredItems }}\r\n trigger={['click']}\r\n onOpenChange={visibleChangeHandler}\r\n onClick={toggleHandler}\r\n open={visible}\r\n {...props}\r\n >\r\n <>\r\n {intl.formatMessage({ id: 'report.see_report' })}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst Component = injectIntl(ReportDropdown);\r\nexport default React.memo(Component);\r\n","import React from 'react'\r\nimport { Modal, Spin, Typography, Row, Col, Space } from 'antd'\r\nimport { LoadingOutlined } from '@ant-design/icons'\r\n\r\nconst { Text } = Typography\r\n\r\nconst BlockLoader = ({ visible, title, message, ...props }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {message}\r\n } size=\"large\" />\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default BlockLoader\r\n","import React, { useCallback, useEffect, useMemo, useRef } from 'react'\r\nimport { injectIntl } from 'react-intl'\r\nimport { Button, Card, Form, Popover, Space, Typography } from 'antd'\r\nimport dayjs from 'dayjs'\r\nimport _ from 'lodash'\r\nimport { CloseOutlined, FilterOutlined } from '@ant-design/icons'\r\nimport { useSelector } from 'react-redux'\r\n\r\nimport { DropdownDate } from 'containers/GridDashboard/DropdownDate'\r\nimport TagSuggestion from 'containers/FinanceTag/TagSuggestion'\r\nimport UserSuggestion from 'containers/Users/UserSuggestion'\r\nimport { cleanBlankValue } from 'utils/helper'\r\nimport { usePrevious } from 'utils/hooks'\r\nimport { LinkTransType } from 'components/UI'\r\nimport { darkModeSelector } from 'redux/selectors'\r\nimport styles from './card-with-with-filter.module.scss'\r\n\r\nconst ComponentLinkTitle = ({ title, ...props }) => {\r\n const darkMode = useSelector(darkModeSelector)\r\n\r\n if (!props.transTypeId) {\r\n return (\r\n \r\n {title}\r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n {title}\r\n \r\n }\r\n className={styles.titleOnPrint}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nconst ChartCardWithFilter = ({\r\n children,\r\n loading,\r\n title,\r\n titleProps,\r\n subtitle,\r\n intl,\r\n withFilter = false,\r\n withDateFilter,\r\n filter = {},\r\n params = {},\r\n initialParams,\r\n onParamsChange,\r\n withCustomDaterange,\r\n withCustomDateType = true,\r\n dateTypes = ['daily', 'monthly', 'yearly'],\r\n cardHeaderMarginBottom = 15,\r\n onRenderTitle,\r\n forceCustomDaterange,\r\n placeholderDateFrom,\r\n formatPickerDateFrom,\r\n pickerTypeDateFrom,\r\n placeholderDateTo,\r\n formatPickerDateTo,\r\n pickerTypeDateTo,\r\n daterangeOnly,\r\n dateOnly,\r\n cardClassName,\r\n cardProps = {},\r\n extra = [],\r\n innerRef,\r\n legacy = false,\r\n customDateType,\r\n customDateTypeKey,\r\n}) => {\r\n const filterFormRef = useRef()\r\n\r\n const prevParams = usePrevious(params)\r\n\r\n const dateTypeKey = legacy ? 'daterange' : 'movement_compare'\r\n\r\n useEffect(() => {\r\n if (filterFormRef.current && !_.isEqual(params, prevParams)) {\r\n filterFormRef.current.setFieldsValue(params)\r\n }\r\n }, [params, prevParams])\r\n\r\n const dropdownDateTypeData = useMemo(() => {\r\n const currentData = {\r\n daily: intl.formatMessage({ id: 'date.daily' }),\r\n monthly: intl.formatMessage({ id: 'date.monthly' }),\r\n yearly: intl.formatMessage({ id: 'date.yearly' }),\r\n today: intl.formatMessage({ id: 'date.today' }),\r\n yesterday: intl.formatMessage({ id: 'date.yesterday' }),\r\n this_month: intl.formatMessage({ id: 'date.this_month' }),\r\n last_month: intl.formatMessage({ id: 'date.last_month' }),\r\n this_year: intl.formatMessage({ id: 'date.this_year' }),\r\n last_year: intl.formatMessage({ id: 'date.last_year' }),\r\n }\r\n\r\n return dateTypes.map((dateKey) => ({\r\n name: dateKey,\r\n title: currentData[dateKey],\r\n }))\r\n }, [dateTypes, intl])\r\n\r\n const renderTitle = () => {\r\n if (typeof onRenderTitle === 'function') {\r\n return onRenderTitle({\r\n LinkTitle: ComponentLinkTitle,\r\n })\r\n }\r\n\r\n return \r\n }\r\n\r\n const changeDateRangeHandler = useCallback(\r\n (value) => {\r\n onParamsChange({\r\n ...value,\r\n [dateTypeKey]: value[dateTypeKey],\r\n custom_daterange: value.custom_daterange,\r\n date_from: value.date_from ? dayjs(value.date_from) : null,\r\n date_to: value.date_to ? dayjs(value.date_to) : null,\r\n })\r\n },\r\n [dateTypeKey, onParamsChange],\r\n )\r\n\r\n const filterVisibleChangeHandler = (visible) => {\r\n if (!visible) {\r\n const form = filterFormRef.current\r\n form.validateFields().then((values) => onParamsChange(values))\r\n }\r\n }\r\n\r\n const renderFilter = useCallback(() => {\r\n const initialValues = {}\r\n if (filter.tag_ids) initialValues.tag_ids = params.tag_ids\r\n if (filter.sales_id) initialValues.sales_id = params.sales_id\r\n\r\n return (\r\n \r\n {filter.tag_ids ? (\r\n \r\n ) : null}\r\n {filter.sales_id ? : null}\r\n \r\n )\r\n }, [filter, params])\r\n\r\n const onClearFilter = useMemo(() => {\r\n const unClearFilter = {\r\n [dateTypeKey]: params[dateTypeKey],\r\n custom_daterange: params.custom_daterange,\r\n date_from: params.date_from ? dayjs(params.date_from).format('DD MM YYYY') : null,\r\n date_to: params.date_to ? dayjs(params.date_to).format('DD MM YYYY') : null,\r\n }\r\n const initialValues = {}\r\n const currentParams = {}\r\n if (filter.tag_ids) {\r\n initialValues.tag_ids = initialParams.tag_ids\r\n currentParams.tag_ids = params.tag_ids\r\n }\r\n if (filter.sales_id) {\r\n initialValues.sales_id = initialParams.sales_id\r\n currentParams.sales_id = params.sales_id\r\n }\r\n return {\r\n showClearFilter: !_.isEqual(\r\n cleanBlankValue({ ...currentParams, ...unClearFilter }),\r\n cleanBlankValue({ ...initialValues, ...unClearFilter }),\r\n ),\r\n onClear: () =>\r\n onParamsChange({\r\n ...initialValues,\r\n ...unClearFilter,\r\n date_from: dayjs(params.date_from),\r\n date_to: dayjs(params.date_to),\r\n }),\r\n }\r\n }, [dateTypeKey, filter, initialParams, onParamsChange, params])\r\n\r\n return (\r\n \r\n \r\n \r\n
{renderTitle()}
\r\n {subtitle}\r\n
\r\n\r\n \r\n {extra.map((_extra) => _extra)}\r\n {withFilter ? (\r\n <>\r\n \r\n \r\n )}\r\n \r\n ) : null}\r\n\r\n {withDateFilter ? (\r\n \r\n ) : null}\r\n \r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nconst Component = injectIntl(ChartCardWithFilter)\r\n\r\nexport default React.forwardRef((props, ref) => )\r\n","import React, { useCallback, useMemo } from 'react'\r\nimport { Spin } from 'antd'\r\nimport { Bar, Chart as ChartJs, Doughnut, Line, Pie } from 'react-chartjs-2'\r\nimport { useSelector } from 'react-redux'\r\nimport _ from 'lodash'\r\n\r\nimport { currency } from 'utils/formatting'\r\nimport { mobileViewSelector } from 'redux/selectors'\r\n\r\nconst Chart = ({\r\n loading,\r\n type,\r\n datasets,\r\n labels,\r\n onRenderLabelsData,\r\n onRenderLabelsTooltips,\r\n onRenderYAxesTicks,\r\n height,\r\n legend = { position: 'bottom' },\r\n wrapperClassName = 'mt-5',\r\n scalesXAxesProps = {},\r\n scalesYAxesProps = {},\r\n}) => {\r\n const isMobileView = useSelector(mobileViewSelector)\r\n\r\n const renderLabelsTooltips = useCallback(\r\n (tooltipItem) => {\r\n if (typeof onRenderLabelsTooltips === 'function') {\r\n return onRenderLabelsTooltips(tooltipItem)\r\n }\r\n return `${tooltipItem.dataset.label}: ${currency(tooltipItem.raw)}`\r\n },\r\n [onRenderLabelsTooltips],\r\n )\r\n\r\n const renderTicks = useCallback(\r\n (value) => {\r\n if (typeof onRenderYAxesTicks === 'function') return onRenderYAxesTicks(value)\r\n if (value) return currency(value)\r\n return value\r\n },\r\n [onRenderYAxesTicks],\r\n )\r\n\r\n const newScalesXAxesProps = useMemo(() => {\r\n return _.merge(scalesXAxesProps, {\r\n stacked: true,\r\n })\r\n }, [scalesXAxesProps])\r\n\r\n const newScalesYAxesProps = useMemo(() => {\r\n return _.merge(scalesYAxesProps, {\r\n ticks: {\r\n callback: renderTicks,\r\n },\r\n })\r\n }, [scalesYAxesProps, renderTicks])\r\n\r\n const ComponentChart = useMemo(() => {\r\n switch (type) {\r\n case 'pie':\r\n return Pie\r\n case 'doughnut':\r\n return Doughnut\r\n case 'bar':\r\n return Bar\r\n case 'line':\r\n return Line\r\n default:\r\n return ChartJs\r\n }\r\n }, [type])\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Chart\r\n","import React from 'react'\r\nimport { Spin, Typography } from 'antd'\r\n\r\nimport { ChartCardWithFilter } from 'components/UI'\r\nimport styles from './ratio-chart.module.scss'\r\n\r\nconst RatioChart = ({\r\n description,\r\n ratio,\r\n rawRatio,\r\n loading,\r\n loadingType = 'spin',\r\n title,\r\n params,\r\n onParamsChange,\r\n cardProps = {},\r\n containerClassName,\r\n ratioSvgWidth = 319 * 0.75,\r\n ratioSvgHeight = 188 * 0.75,\r\n needleClassName,\r\n speedometerClassName,\r\n extra,\r\n cardHeaderMarginBottom,\r\n cardClassName,\r\n titleProps,\r\n ratioClassName,\r\n descriptionClassName,\r\n chartDescription,\r\n chartDescriptionClassName\r\n}) => {\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {chartDescription ?\r\n \r\n {chartDescription}\r\n : null\r\n }\r\n
\r\n
\r\n \r\n {ratio}\r\n \r\n \r\n {description}\r\n \r\n
\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default RatioChart\r\n","import React from 'react'\r\nimport { useSelector } from \"react-redux\";\r\nimport { injectIntl } from 'react-intl'\r\nimport { Typography } from 'antd'\r\n\r\nimport { darkModeSelector } from \"redux/selectors\";\r\nimport { ChartCardWithFilter } from 'components/UI/index'\r\nimport styles from './widget-trend-up-down.module.scss'\r\n\r\nconst WidgetTrendUpDown = ({\r\n title,\r\n params,\r\n onParamsChange,\r\n loading,\r\n amount,\r\n numOfTransaction,\r\n percent,\r\n rawPercent,\r\n descriptionBottomRight,\r\n percentStyle = {},\r\n cardProps = {},\r\n renderCustomChart: CustomChart,\r\n showStatistic = true,\r\n cardHeaderMarginBottom,\r\n extra,\r\n cardClassName,\r\n statisticContainerClassName,\r\n amountClassName,\r\n numOfTransactionClassName,\r\n statisticClassName,\r\n percentClassName,\r\n descriptionClassName,\r\n widgetContainerClassName,\r\n titleProps,\r\n}) => {\r\n const darkMode = useSelector(darkModeSelector)\r\n\r\n return (\r\n \r\n
\r\n
\r\n {amount}\r\n \r\n {numOfTransaction}\r\n \r\n
\r\n {showStatistic ? (\r\n
\r\n {typeof CustomChart === 'function' ? (\r\n \r\n ) : (\r\n \r\n = 0 ? undefined : 'scaleX(-1) rotate(180deg)',\r\n }}\r\n width=\"56\"\r\n height=\"34\"\r\n viewBox=\"0 0 56 34\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n = 0 ? '#219653' : '#E53F6A'}\r\n />\r\n \r\n
\r\n )}\r\n = 0 ? '#219653' : '#E53F6A',\r\n ...percentStyle,\r\n }}\r\n className={[styles.percent, percentClassName].join(' ')}\r\n >\r\n {percent}%\r\n \r\n
\r\n ) : (\r\n
\r\n )}\r\n
\r\n {descriptionBottomRight ? (\r\n \r\n {descriptionBottomRight}\r\n \r\n ) : null}\r\n \r\n )\r\n}\r\n\r\nexport default injectIntl(WidgetTrendUpDown)\r\n","import React from 'react'\r\nimport styled from 'styled-components'\r\n\r\nconst Container = styled.div`\r\n position: relative;\r\n min-height: 160px;\r\n`\r\n\r\nconst Wrapper = styled.div`\r\n z-index: 50;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n min-height: 100%;\r\n background-color: #efefff99;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: flex-start;\r\n align-items: center;\r\n padding-top: 2rem;\r\n padding-bottom: 2rem;\r\n`\r\n\r\nfunction Overlay({ show, children, content }) {\r\n if (!show) {\r\n return children;\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n {content}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default Overlay\r\n","import React from 'react'\r\nimport { FormattedMessage } from 'react-intl'\r\nimport { Link } from 'react-router-dom'\r\nimport { Alert } from 'antd'\r\nimport { useSelector } from 'react-redux'\r\nimport { optionsSelector } from 'redux/selectors'\r\n\r\nfunction DemoWarning({showIcon = true, style, ...props}) {\r\n const { demo } = useSelector(optionsSelector)\r\n\r\n if (demo !== 1) {\r\n return null\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n ),\r\n }}\r\n />\r\n }\r\n type=\"warning\"\r\n showIcon={showIcon}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport default DemoWarning\r\n","import React from 'react';\r\nimport dayjs from 'dayjs'\r\nimport { FormattedMessage } from 'react-intl';\r\nimport { Link } from 'react-router-dom';\r\nimport { Alert } from 'antd';\r\nimport { useSelector } from 'react-redux';\r\nimport { billingSelector, optionsSelector } from 'redux/selectors';\r\n\r\nfunction getTrialMessage(remainingDays) {\r\n const hoursUntilMidnight = dayjs().endOf('day').diff(dayjs(), 'hours');\r\n const upgradeLink = (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n const commonValues = {\r\n setup: upgradeLink,\r\n };\r\n\r\n if (remainingDays === 0) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (remainingDays === 1) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\n\r\nfunction TrialWarning({ showIcon = true, style, ...props }) {\r\n const { plan, expiry_date } = useSelector(billingSelector);\r\n const { demo } = useSelector(optionsSelector);\r\n const remainingDays = dayjs(expiry_date).diff(dayjs(), 'days');\r\n\r\n if (!plan || !expiry_date || (plan && !plan.includes('Trial') || demo === 1) || remainingDays < 0) {\r\n return null;\r\n }\r\n\r\n const alertMessage = getTrialMessage(remainingDays);\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default TrialWarning\r\n","import React from \"react\";\r\nimport dayjs from \"dayjs\";\r\nimport { billingSelector, optionsSelector } from 'redux/selectors';\r\nimport { editOption } from 'redux/options/actions'\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Alert } from \"antd\";\r\nimport { checkPermission } from 'redux/user/selectors';\r\n\r\nconst getTrialMessage = (remainingDays, isHasAccess) => {\r\n const hoursUntilMidnight = dayjs().endOf(\"day\").diff(dayjs(), \"hours\");\r\n const upgradeLink = (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n const commonValues = {\r\n setup: upgradeLink,\r\n };\r\n\r\n if (remainingDays === 0) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (remainingDays === 1) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst SubscriptionWarning = ({ showIcon = true, style, ...props }) => {\r\n const { plan, expiry_date } = useSelector(billingSelector);\r\n const { expired_warning_closed } = useSelector(optionsSelector);\r\n const dispatch = useDispatch()\r\n const remainingDays = dayjs(expiry_date).diff(dayjs(), 'days');\r\n const isHasAccess = useSelector((state) => checkPermission(state, 'billing'));\r\n\r\n if (\r\n !plan\r\n || !expiry_date\r\n || (plan && plan.includes(\"Trial\"))\r\n || (expired_warning_closed === 1 && remainingDays > 3)\r\n || remainingDays < 0\r\n || remainingDays > 14\r\n ) {\r\n return null;\r\n }\r\n\r\n const alertMessage = getTrialMessage(remainingDays, isHasAccess);\r\n\r\n const onAlertClose = () => {\r\n dispatch(\r\n editOption({\r\n expired_warning_closed: 1,\r\n }),\r\n )\r\n }\r\n\r\n return (\r\n 3}\r\n onClose={onAlertClose}\r\n showIcon={showIcon}\r\n {...props}\r\n />\r\n );\r\n};\r\n\r\nexport default SubscriptionWarning;\r\n","import React from 'react'\r\nimport { Row, Col } from 'antd'\r\n\r\nconst RowItemPrint = ({ label, content, style, contentAsHTML }) => {\r\n return (\r\n \r\n \r\n
{label}
\r\n
\r\n {!contentAsHTML ? (\r\n {content}\r\n ) : (\r\n \r\n )}\r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default RowItemPrint\r\n","import React from 'react'\r\nimport { Skeleton } from 'antd'\r\n\r\nconst Placeholder = ({ style, ...props }) => {\r\n return \r\n}\r\n\r\nexport default Placeholder\r\n","import React from 'react'\r\nimport { Row, Col, Space, Skeleton } from 'antd'\r\nimport useResponsive from 'utils/hooks/useResponsive'\r\nimport Placeholder from './Placeholder'\r\n\r\nconst DetailPlaceholder = () => {\r\n const { isMobileView } = useResponsive()\r\n if (isMobileView)\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default DetailPlaceholder\r\n","import React, { useCallback } from 'react'\r\nimport { injectIntl } from 'react-intl'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { Button, Result } from 'antd'\r\nimport { push } from 'connected-react-router'\r\nimport { checkPermission } from 'redux/user/selectors'\r\nimport { useLoadedInit } from 'utils/hooks'\r\n\r\nfunction RestrictedPage({ children, restricted, intl }) {\r\n const dispatch = useDispatch()\r\n const isHasAccessDashboard = useSelector((state) => checkPermission(state, 'dashboard'))\r\n const loadedInit = useLoadedInit()\r\n\r\n const goToDashboard = useCallback(() => dispatch(push('/dashboard')), [dispatch])\r\n\r\n if (loadedInit && restricted) {\r\n return (\r\n \r\n {intl.formatMessage({ id: 'companies.go_to_dashboard' })}\r\n \r\n ) : null\r\n }\r\n />\r\n )\r\n }\r\n return children\r\n}\r\n\r\nexport default injectIntl(RestrictedPage)\r\n","import { Select } from 'antd'\r\nimport React, { useMemo } from 'react'\r\nimport { makeYears } from 'utils/helper'\r\n\r\nconst years = makeYears(2018)\r\n\r\nconst YearSelector = (props) => {\r\n const data = useMemo(() => {\r\n return years.map((year) => ({ value: year, label: year }))\r\n }, [])\r\n return \r\n )\r\n}\r\n\r\nexport default injectIntl(PageSizeChanger)\r\n","import React from 'react'\r\nimport { Pagination as PaginationAntd, Typography } from 'antd'\r\nimport PropTypes from 'prop-types'\r\nimport { useSelector } from 'react-redux'\r\n\r\nimport { settingsSelector } from 'redux/selectors'\r\nimport { qtyToCurrencyAutoComma } from 'utils/formatting'\r\nimport PageSizeChanger from './PageSizeChanger'\r\n\r\nexport const DEFAULT_PER_PAGES = [15, 25, 50, 100]\r\n\r\nfunction Pagination({ showPageSizeChangeOnSinglePage, pageSizeOptions, disableFloat, ...props }) {\r\n const settings = useSelector(settingsSelector)\r\n\r\n const innerPageSizeOptions = pageSizeOptions || DEFAULT_PER_PAGES\r\n\r\n if (props.showSizeChanger && showPageSizeChangeOnSinglePage) {\r\n return (\r\n \r\n {props.total ? (\r\n \r\n Total {qtyToCurrencyAutoComma({ value: props.total, maxPrecision: 0 })} data\r\n \r\n ) : null}\r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n {\r\n if (typeof total === 'number') {\r\n return `Total ${qtyToCurrencyAutoComma({ value: total, maxPrecision: 0 })} data`\r\n }\r\n return ''\r\n }}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nPagination.propTypes = {\r\n current: PropTypes.number,\r\n pageSize: PropTypes.number,\r\n total: PropTypes.number,\r\n onChange: PropTypes.func,\r\n onShowSizeChange: PropTypes.func,\r\n hideOnSinglePage: PropTypes.bool,\r\n showSizeChanger: PropTypes.bool,\r\n showPageSizeChangeOnSinglePage: PropTypes.bool,\r\n}\r\n\r\nPagination.defaultProps = {\r\n current: 1,\r\n pageSize: 15,\r\n onChange: () => {},\r\n onShowSizeChange: () => {},\r\n total: 0,\r\n hideOnSinglePage: true,\r\n showSizeChanger: false,\r\n showPageSizeChangeOnSinglePage: false,\r\n}\r\n\r\nexport default Pagination\r\n","import { updateObject } from 'redux/utility'\r\nimport * as actionTypes from 'redux/actionTypes'\r\n\r\nexport const initialState = {\r\n id: 0,\r\n name: '',\r\n email: '',\r\n is_active: 0,\r\n phone_number: '',\r\n permissions: [],\r\n loading: false,\r\n logout: false,\r\n profile_image: null,\r\n}\r\n\r\nconst setUser = (state, { payload }) => {\r\n delete payload.user.menu\r\n return updateObject(state, {\r\n ...payload.user,\r\n loading: false,\r\n })\r\n}\r\n\r\nconst loginRedux = (state) => {\r\n return updateObject(state, {\r\n loading: true,\r\n })\r\n}\r\n\r\nconst loginReduxFailure = (state) => {\r\n return updateObject(state, {\r\n loading: false,\r\n })\r\n}\r\n\r\nconst updateProfile = (state, { payload }) => {\r\n return updateObject(state, payload)\r\n}\r\n\r\nexport default function userReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case actionTypes.SET_USER:\r\n return setUser(state, action)\r\n case actionTypes.USER_LOGIN:\r\n return loginRedux(state, action)\r\n case actionTypes.USER_LOGIN_FAILURE:\r\n return loginReduxFailure(state, action)\r\n case actionTypes.TOKEN_EXPIRED:\r\n case actionTypes.USER_LOGOUT:\r\n return { ...initialState, logout: true }\r\n case actionTypes.USER_UPDATE_PROFILE:\r\n return updateProfile(state, action)\r\n default:\r\n return state\r\n }\r\n}\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"item\":\"style_item__8bK7V\",\"itemLink\":\"style_itemLink__3VCfm\",\"itemCover\":\"style_itemCover__3DecZ\"};","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read http://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/),\r\n)\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === \"production\" && \"serviceWorker\" in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config)\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit http://bit.ly/CRA-PWA',\r\n )\r\n })\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config)\r\n }\r\n })\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n // setInterval(() => {\r\n // console.log('Checking if service worker was updated in server')\r\n // registration.update()\r\n // }, 24 * 60 * 60 * 1000) // 1 day\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing\r\n if (installingWorker == null) {\r\n return\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.',\r\n )\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration)\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.')\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error)\r\n })\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type')\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload()\r\n })\r\n })\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config)\r\n }\r\n })\r\n .catch(() => {\r\n console.log('No internet connection found. App is running in offline mode.')\r\n })\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister()\r\n })\r\n }\r\n}\r\n","import React from 'react'\r\nimport * as serviceWorker from './serviceWorker'\r\n\r\nconst ServiceWorkerContext = React.createContext()\r\n\r\nfunction ServiceWorkerProvider(props) {\r\n const [waitingServiceWorker, setWaitingServiceWorker] = React.useState(null)\r\n const [assetsUpdateReady, setAssetsUpdateReady] = React.useState(false)\r\n const [assetsCached, setAssetsCached] = React.useState(false)\r\n\r\n const value = React.useMemo(\r\n () => ({\r\n assetsUpdateReady,\r\n assetsCached,\r\n // Call when the user confirm update of application and reload page\r\n updateAssets: (withReload) => {\r\n if (waitingServiceWorker) {\r\n waitingServiceWorker.addEventListener(\"statechange\", event => {\r\n if (event.target.state === \"activated\" && withReload) {\r\n window.location.reload(true);\r\n }\r\n });\r\n\r\n waitingServiceWorker.postMessage({ type: \"SKIP_WAITING\" });\r\n }\r\n },\r\n }),\r\n [assetsUpdateReady, assetsCached, waitingServiceWorker],\r\n )\r\n\r\n // Once on component mounted subscribe to Update and Succes events in\r\n // CRA's service worker wrapper\r\n React.useEffect(() => {\r\n serviceWorker.register({\r\n onUpdate: (registration) => {\r\n setWaitingServiceWorker(registration.waiting)\r\n setAssetsUpdateReady(true)\r\n },\r\n onSuccess: () => {\r\n setAssetsCached(true)\r\n },\r\n })\r\n }, [])\r\n\r\n return \r\n}\r\n\r\nfunction useServiceWorker() {\r\n const context = React.useContext(ServiceWorkerContext)\r\n\r\n if (!context) {\r\n throw new Error('useServiceWorker must be used within a ServiceWorkerProvider')\r\n }\r\n\r\n return context\r\n}\r\n\r\nexport { ServiceWorkerProvider, useServiceWorker }\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttonPickerColor\":\"styles_buttonPickerColor__15qeV\",\"picker\":\"styles_picker__XBq-R\",\"overlay\":\"styles_overlay__1AJ86\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"percentage\":\"ratio-chart_percentage__JHKC_\",\"description\":\"ratio-chart_description__2O4kK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"breadcrumbs\":\"style_breadcrumbs__3ZW1O\",\"path\":\"style_path__3Cfau\",\"arrow\":\"style_arrow__23jIJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loader\":\"style_loader__5caZ_\",\"fullScreen\":\"style_fullScreen__3WJV4\",\"hidden\":\"style_hidden__2nqHB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"request\":\"style_request__MZCjo\",\"title\":\"style_title__1khMP\",\"block\":\"style_block__2nRPL\",\"inner\":\"style_inner__10ZUo\"};","import * as api from 'utils/apis/financeWareHouse'\r\nimport * as actionTypes from 'redux/actionTypes'\r\n\r\nexport const setFinanceWareHouses = (payload) => {\r\n return {\r\n type: actionTypes.SET_FINANCE_WAREHOUSES,\r\n payload,\r\n }\r\n}\r\n\r\nexport const addFinanceWareHouseRedux = (payload) => {\r\n return {\r\n type: actionTypes.ADD_FINANCE_WAREHOUSE,\r\n payload,\r\n }\r\n}\r\n\r\nexport const editFinanceWareHouseRedux = (payload) => {\r\n return {\r\n type: actionTypes.EDIT_FINANCE_WAREHOUSE,\r\n payload,\r\n }\r\n}\r\n\r\nexport const addFinanceWareHouse = (payload) => {\r\n return (dispatch) => {\r\n return api.addFinanceWareHouse(payload).then((response) => {\r\n dispatch(addFinanceWareHouseRedux(response.data.data))\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const editFinanceWareHouse = (payload) => {\r\n return (dispatch) => {\r\n return api.editFinanceWareHouse(payload).then((response) => {\r\n dispatch(editFinanceWareHouseRedux(response.data.data))\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const moveFinanceWareHouseRedux = (payload) => {\r\n return {\r\n type: actionTypes.MOVE_FINANCE_WAREHOUSE,\r\n payload,\r\n }\r\n}\r\n\r\nexport const moveFinanceWareHouse = (payload) => {\r\n return (dispatch) => {\r\n dispatch(moveFinanceWareHouseRedux(payload))\r\n\r\n return api\r\n .moveFinanceWareHouse(payload.srcId, payload.destId)\r\n .then((response) => {\r\n return response\r\n })\r\n .catch(() => {\r\n dispatch(\r\n moveFinanceWareHouseRedux({\r\n dragIndex: payload.hoverIndex,\r\n hoverIndex: payload.dragIndex,\r\n srcId: payload.destId,\r\n destId: payload.srcId,\r\n }),\r\n )\r\n })\r\n }\r\n}\r\n\r\nexport const changeStatusFinanceWareHouseRedux = (payload) => {\r\n return {\r\n type: actionTypes.CHANGE_STATUS_FINANCE_WAREHOUSE,\r\n payload,\r\n }\r\n}\r\n\r\nexport const changeStatusFinanceWareHouse = (payload) => {\r\n return (dispatch) => {\r\n dispatch(changeStatusFinanceWareHouseRedux(payload))\r\n\r\n if (payload.checked) {\r\n return api.activateFinanceWareHouse(payload.id)\r\n }\r\n\r\n return api.deactivateFinanceWareHouse(payload.id)\r\n }\r\n}\r\n\r\nexport const filterFinanceWareHouse = (payload) => {\r\n return {\r\n type: actionTypes.FILTER_FINANCE_WAREHOUSE,\r\n payload,\r\n }\r\n}\r\n\r\nexport const deleteFinanceWareHouseRedux = (payload) => {\r\n return {\r\n type: actionTypes.DELETE_FINANCE_WAREHOUSE,\r\n payload,\r\n }\r\n}\r\n\r\nexport const deleteFinanceWareHouse = (payload) => {\r\n return (dispatch) => {\r\n return api.deleteFinanceWareHouse(payload.id).then((response) => {\r\n dispatch(deleteFinanceWareHouseRedux(payload))\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const archiveFinanceWareHouseRedux = (payload) => {\r\n return {\r\n type: actionTypes.ARCHIVE_FINANCE_WAREHOUSE,\r\n payload,\r\n }\r\n}\r\n\r\nexport const archiveFinanceWareHouse = (payload) => {\r\n return (dispatch) => {\r\n return api.archiveFinanceWareHouse(payload.id).then((response) => {\r\n dispatch(archiveFinanceWareHouseRedux(payload))\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const unarchiveFinanceWareHouseRedux = (payload) => {\r\n return {\r\n type: actionTypes.UNARCHIVE_FINANCE_WAREHOUSE,\r\n payload,\r\n }\r\n}\r\n\r\nexport const unarchiveFinanceWareHouse = (payload) => {\r\n return (dispatch) => {\r\n return api.unarchiveFinanceWareHouse(payload.id).then((response) => {\r\n dispatch(unarchiveFinanceWareHouseRedux(payload))\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const setFinanceWareHousesRoles = (payload) => {\r\n return {\r\n type: actionTypes.SET_FINANCE_WAREHOUSES_ROLES,\r\n payload,\r\n }\r\n}\r\n","const colors = {\r\n background: [\r\n '#FF6384',\r\n '#FFCD56',\r\n '#4BC0C0',\r\n '#36A2EB',\r\n '#CB99C9',\r\n '#EE82EE',\r\n '#FF2C63',\r\n '#FF6384',\r\n '#36A2EB',\r\n '#4BC0C0',\r\n '#CB99C9',\r\n '#EE82EE'\r\n ],\r\n hover: [\r\n '#FF6384',\r\n '#FFCD56',\r\n '#4BC0C0',\r\n '#36A2EB',\r\n '#CB99C9',\r\n '#EE82EE',\r\n '#FF2C63',\r\n '#FF6384',\r\n '#36A2EB',\r\n '#4BC0C0',\r\n '#CB99C9',\r\n '#EE82EE'\r\n ]\r\n }\r\n \r\n export default colors;","import { message } from 'antd'\r\n\r\nimport { editCompanyName } from 'redux/companies/actions'\r\nimport * as actionTypes from 'redux/actionTypes'\r\nimport { confirmsEmail, deleteLockDate, onBoarding, setLockDate, updateOptions } from 'utils/apis'\r\n\r\nexport const setOptions = (payload) => {\r\n return {\r\n type: actionTypes.SET_OPTIONS,\r\n payload,\r\n }\r\n}\r\n\r\nexport const editOptionsRedux = (payload) => {\r\n return {\r\n type: actionTypes.EDIT_OPTIONS,\r\n payload,\r\n }\r\n}\r\n\r\nexport const editOptions = (payload, loadingMessage, successMessage) => {\r\n return (dispatch) => {\r\n let loading\r\n if (loadingMessage) {\r\n loading = message.loading(loadingMessage)\r\n }\r\n return updateOptions(payload).then((response) => {\r\n if (typeof loading === 'function') {\r\n loading()\r\n }\r\n\r\n if (successMessage) {\r\n message.success(successMessage)\r\n }\r\n\r\n dispatch(editOptionsRedux(response.data.data))\r\n if (response.data.data.property_name) {\r\n dispatch(editCompanyName(response.data.data.property_name))\r\n }\r\n\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const editOption = (payload, withEditCompanyName) => {\r\n return async (dispatch, getState) => {\r\n const prevOption = await getState().options.options\r\n dispatch(editOptionsRedux(payload))\r\n if (withEditCompanyName) {\r\n dispatch(editCompanyName(payload.property_name))\r\n }\r\n return updateOptions(payload).catch(() => {\r\n Object.keys(payload).forEach((name) => {\r\n payload[name] = prevOption[name]\r\n })\r\n if (withEditCompanyName) {\r\n dispatch(editCompanyName(prevOption.property_name))\r\n }\r\n dispatch(editOptionsRedux(payload))\r\n })\r\n }\r\n}\r\n\r\nexport const confirmEmail = (payload) => {\r\n return async (dispatch) => {\r\n return confirmsEmail(payload).then((response) => {\r\n dispatch(editOptionsRedux({ email_confirmed: '1' }))\r\n\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const setLockDateRedux = (payload) => {\r\n return {\r\n type: actionTypes.SET_LOCK_DATE_OPTION,\r\n payload,\r\n }\r\n}\r\n\r\nexport const removeLockDateRedux = (payload) => {\r\n return {\r\n type: actionTypes.REMOVE_LOCK_DATE_OPTION,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setLockDateOption = (payload) => {\r\n return (dispatch) => {\r\n return setLockDate(payload).then((response) => {\r\n if (response.data.success) {\r\n dispatch(setLockDateRedux({ lock_date: response.data.data }))\r\n }\r\n\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const removeLockDateOption = () => {\r\n return (dispatch) => {\r\n return deleteLockDate().then((response) => {\r\n if (response.data.success) {\r\n dispatch(removeLockDateRedux())\r\n }\r\n\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const onBoardingProcess = (payload) => {\r\n return (dispatch) => {\r\n return onBoarding(payload.redux).then((response) => {\r\n if (response.data.success) {\r\n dispatch(editOptionsRedux(payload.redux))\r\n }\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const editOptionRedux = (payload) => {\r\n return {\r\n type: actionTypes.EDIT_OPTION,\r\n payload,\r\n }\r\n}\r\n","import * as api from 'utils/apis/customColumn'\r\nimport * as actionTypes from 'redux/actionTypes'\r\n\r\nexport const setCustomColumns = (payload) => {\r\n return {\r\n type: actionTypes.SET_CUSTOM_COLUMNS,\r\n payload,\r\n }\r\n}\r\n\r\nexport const addCustomColumnRedux = (payload) => {\r\n return {\r\n type: actionTypes.ADD_CUSTOM_COLUMN,\r\n payload,\r\n }\r\n}\r\n\r\nexport const editCustomColumnRedux = (payload) => {\r\n return {\r\n type: actionTypes.EDIT_CUSTOM_COLUMN,\r\n payload,\r\n }\r\n}\r\n\r\nexport const addCustomColumn = (payload) => {\r\n return (dispatch) => {\r\n return api.addCustomColumn(payload).then((response) => {\r\n dispatch(addCustomColumnRedux(response.data.data))\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const editCustomColumn = (payload) => {\r\n return (dispatch) => {\r\n return api.editCustomColumn(payload).then((response) => {\r\n dispatch(editCustomColumnRedux(response.data.data))\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const deleteCustomColumnRedux = (payload) => {\r\n return {\r\n type: actionTypes.DELETE_CUSTOM_COLUMN,\r\n payload,\r\n }\r\n}\r\n\r\nexport const deleteCustomColumn = (payload) => {\r\n return (dispatch) => {\r\n return api.deleteCustomColumn(payload).then((response) => {\r\n dispatch(deleteCustomColumnRedux(payload.id))\r\n\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const moveCustomColumnRedux = (payload) => {\r\n return {\r\n type: actionTypes.MOVE_CUSTOM_COLUMN,\r\n payload,\r\n }\r\n}\r\n\r\nexport const moveCustomColumn = (payload) => {\r\n return (dispatch) => {\r\n dispatch(moveCustomColumnRedux(payload))\r\n\r\n return api\r\n .moveCustomColumn(payload.srcId, payload.destId)\r\n .then((response) => {\r\n return response\r\n })\r\n .catch(() => {\r\n dispatch(\r\n moveCustomColumnRedux({\r\n dragIndex: payload.hoverIndex,\r\n hoverIndex: payload.dragIndex,\r\n srcId: payload.destId,\r\n destId: payload.srcId,\r\n }),\r\n )\r\n })\r\n }\r\n}\r\n\r\nexport const changeStatusCustomColumnRedux = (payload) => {\r\n return {\r\n type: actionTypes.CHANGE_STATUS_CUSTOM_COLUMN,\r\n payload,\r\n }\r\n}\r\n\r\nexport const changeStatusCustomColumn = (payload) => {\r\n return (dispatch) => {\r\n dispatch(changeStatusCustomColumnRedux(payload))\r\n\r\n if (payload.checked) {\r\n return api.activateCustomColumn(payload.id, payload.payload)\r\n }\r\n\r\n return api.deactivateCustomColumn(payload.id, payload.payload)\r\n }\r\n}\r\n\r\nexport const addCustomColumnItemRedux = (payload) => {\r\n return {\r\n type: actionTypes.ADD_CUSTOM_COLUMN_ITEM,\r\n payload,\r\n }\r\n}\r\n\r\nexport const editCustomColumnItemRedux = (payload) => {\r\n return {\r\n type: actionTypes.EDIT_CUSTOM_COLUMN_ITEM,\r\n payload,\r\n }\r\n}\r\n\r\nexport const addCustomColumnItem = (payload) => {\r\n return (dispatch) => {\r\n return api.addCustomColumnItem(payload).then((response) => {\r\n dispatch(addCustomColumnItemRedux(response.data.data))\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const editCustomColumnItem = (payload) => {\r\n return (dispatch) => {\r\n return api.editCustomColumnItem(payload).then((response) => {\r\n dispatch(editCustomColumnItemRedux(response.data.data))\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const deleteCustomColumnItemRedux = (payload) => {\r\n return {\r\n type: actionTypes.DELETE_CUSTOM_COLUMN_ITEM,\r\n payload,\r\n }\r\n}\r\n\r\nexport const deleteCustomColumnItem = (payload) => {\r\n return (dispatch) => {\r\n return api.deleteCustomColumnItem(payload).then((response) => {\r\n dispatch(deleteCustomColumnItemRedux(payload.id))\r\n\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const moveCustomColumnItemRedux = (payload) => {\r\n return {\r\n type: actionTypes.MOVE_CUSTOM_COLUMN_ITEM,\r\n payload,\r\n }\r\n}\r\n\r\nexport const moveCustomColumnItem = (payload) => {\r\n return (dispatch) => {\r\n dispatch(moveCustomColumnItemRedux(payload))\r\n\r\n return api\r\n .moveCustomColumnItem(payload.srcId, payload.destId)\r\n .then((response) => {\r\n return response\r\n })\r\n .catch(() => {\r\n dispatch(\r\n moveCustomColumnItemRedux({\r\n dragIndex: payload.hoverIndex,\r\n hoverIndex: payload.dragIndex,\r\n srcId: payload.destId,\r\n destId: payload.srcId,\r\n }),\r\n )\r\n })\r\n }\r\n}\r\n\r\nexport const changeStatusCustomColumnItemRedux = (payload) => {\r\n return {\r\n type: actionTypes.CHANGE_STATUS_CUSTOM_COLUMN_ITEM,\r\n payload,\r\n }\r\n}\r\n\r\nexport const changeStatusCustomColumnItem = (payload) => {\r\n return (dispatch) => {\r\n dispatch(changeStatusCustomColumnItemRedux(payload))\r\n\r\n if (payload.checked) {\r\n return api.activateCustomColumnItem(payload.id, payload.payload)\r\n }\r\n\r\n return api.deactivateCustomColumnItem(payload.id, payload.payload)\r\n }\r\n}\r\n","import { ADD_OUTLET, DELETE_OUTLET, EDIT_OUTLET, SET_OUTLETS } from 'redux/actionTypes'\r\n\r\nexport const setOutlets = (payload) => {\r\n return {\r\n type: SET_OUTLETS,\r\n payload,\r\n }\r\n}\r\n\r\nexport const addOutlet = (payload) => {\r\n return {\r\n type: ADD_OUTLET,\r\n payload,\r\n }\r\n}\r\n\r\nexport const editOutlet = (payload) => {\r\n return {\r\n type: EDIT_OUTLET,\r\n payload,\r\n }\r\n}\r\n\r\nexport const deleteOutlet = (payload) => {\r\n return {\r\n type: DELETE_OUTLET,\r\n payload,\r\n }\r\n}\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"card\":\"sso_card__2TpCF\",\"title\":\"sso_title__3XnUw\",\"desc\":\"sso_desc__iQ1S5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loader\":\"style_loader__3scV0\",\"hidden\":\"style_hidden__3LN4J\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tag\":\"styles_tag__1y08p\",\"tagLink\":\"styles_tagLink__359wm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"titleOnPrint\":\"card-with-with-filter_titleOnPrint__1iC62\",\"textLinkDark\":\"card-with-with-filter_textLinkDark__2rQa6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dropdown\":\"style_dropdown__31Q3R\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dropdown\":\"style_dropdown__3BFNa\",\"icon\":\"style_icon__2GW0G\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dropdown\":\"style_dropdown__3R3XW\",\"icon\":\"style_icon__2jk0v\"};","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\n\r\n// HOC for get translation from redux\r\nconst withTranslation = (WrappedComponent) => {\r\n // eslint-disable-next-line\r\n const HOC = class extends Component {\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n };\r\n\r\n return connect(state => {\r\n return {\r\n translation: state.translation,\r\n }\r\n }, {})(HOC);\r\n};\r\n\r\nexport default withTranslation;\r\n","import React from 'react';\r\nimport {ACTIONS, STATUS} from 'react-joyride';\r\nimport { injectIntl } from 'react-intl';\r\nimport { message, Avatar, Button } from 'antd';\r\nimport { useSelector } from 'react-redux';\r\nimport { loadedInitSelector } from 'redux/selectors';\r\nimport { ProductTour } from 'components/UI';\r\nimport { getTutorial } from 'utils/apis';\r\nimport { useApp } from 'components/AppProvider';\r\n\r\nconst WelcomeModal = ({ scrollBarRef, intl }) => {\r\n const {settings: {isMenuCollapsed}, onChangeSettings} = useApp();\r\n const loadedInit = useSelector(loadedInitSelector);\r\n\r\n const joyrideRef = React.useRef();\r\n const [run, setRun] = React.useState(false);\r\n const [steps, setSteps] = React.useState([]);\r\n\r\n const joyrideCallbackHandler = React.useCallback((data) => {\r\n const {action, index, status} = data;\r\n if (index === 2 && action === ACTIONS.PREV) {\r\n if (scrollBarRef && scrollBarRef.current) {\r\n scrollBarRef.current.scrollToTop();\r\n }\r\n }\r\n if (action === ACTIONS.CLOSE || ([STATUS.FINISHED, STATUS.SKIPPED]).includes(status)) {\r\n setRun(false);\r\n }\r\n if (action === ACTIONS.START && index === 0 && isMenuCollapsed) {\r\n onChangeSettings({isMenuCollapsed: false});\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [scrollBarRef, ACTIONS, isMenuCollapsed, onChangeSettings]);\r\n\r\n const startTourHandler = React.useCallback(() => {\r\n if (joyrideRef && joyrideRef.current) {\r\n joyrideRef.current.helpers.next();\r\n }\r\n }, [joyrideRef]);\r\n\r\n const formatSteps = React.useCallback((data) => {\r\n const newSteps = data.map((row, index) => {\r\n const newRow = { ...row };\r\n if (index === 0) {\r\n newRow.hideFooter = true;\r\n newRow.content = (\r\n <>\r\n \r\n
\r\n
\r\n
\r\n \r\n Start Tour\r\n \r\n
\r\n
\r\n \r\n );\r\n } else {\r\n newRow.content = (
);\r\n }\r\n return newRow;\r\n });\r\n return newSteps;\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const getData = React.useCallback(async () => {\r\n try {\r\n const response = await getTutorial('welcome');\r\n if (response.data.success) {\r\n setSteps(formatSteps(response.data.data));\r\n setTimeout(() => {\r\n setRun(true);\r\n }, 100);\r\n }\r\n } catch (error) {\r\n message.error(error && error.message || intl.formatMessage({ id: 'button.error_data_' }));\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [getTutorial]);\r\n\r\n React.useEffect(() => {\r\n if (loadedInit) {\r\n getData();\r\n }\r\n }, [loadedInit, getData]);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default injectIntl(WelcomeModal);","import React from 'react'\r\nimport { ACTIONS, STATUS, EVENTS } from 'react-joyride'\r\nimport { injectIntl } from 'react-intl'\r\nimport { message } from 'antd'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\n\r\nimport {\r\n tutorialsSelector,\r\n mobileViewSelector,\r\n loadedInitSelector,\r\n optionsSelector,\r\n} from 'redux/selectors'\r\nimport { HelpDropdown, ModalPlayer, ProductTour } from 'components/UI'\r\nimport Player from 'components/UI/ModalPlayer/Player'\r\nimport { getTutorial } from 'utils/apis'\r\nimport { editOption } from 'redux/options/actions'\r\n\r\nconst Module = ({ intl, name, joyrideCallback, joyrideRef, hideOnEmpty, ...props }) => {\r\n const dispatch = useDispatch()\r\n const tutorials = useSelector(tutorialsSelector)\r\n const isMobileView = useSelector(mobileViewSelector)\r\n const loadedInit = useSelector(loadedInitSelector)\r\n const options = useSelector(optionsSelector)\r\n\r\n const [visiblePlayer, setVisiblePlayer] = React.useState(false)\r\n const [run, setRun] = React.useState(false)\r\n const [stepIndex, setStepIndex] = React.useState(0)\r\n const [steps, setSteps] = React.useState([])\r\n\r\n React.useEffect(() => {\r\n if (loadedInit && tutorial.name && options[`tutorial_${name}`]) {\r\n openTourHandler()\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [loadedInit])\r\n\r\n const joyrideCallbackHandler = React.useCallback(\r\n (data) => {\r\n const { action, status, index, type } = data\r\n if (action === ACTIONS.CLOSE || [STATUS.FINISHED, STATUS.SKIPPED].includes(status)) {\r\n setRun(false)\r\n if (options[`tutorial_${name}`]) {\r\n dispatch(editOption({ [`tutorial_${name}`]: 0 }))\r\n }\r\n } else if ([EVENTS.STEP_AFTER, EVENTS.TARGET_NOT_FOUND].includes(type)) {\r\n const stepI = index + (action === ACTIONS.PREV ? -1 : 1)\r\n setStepIndex(stepI)\r\n }\r\n if (typeof joyrideCallback === 'function') {\r\n joyrideCallback(data, { stepIndex, setStepIndex, run, setRun })\r\n }\r\n },\r\n [dispatch, joyrideCallback, name, options, run, stepIndex],\r\n )\r\n\r\n const getData = React.useCallback(async () => {\r\n try {\r\n const response = await getTutorial(name)\r\n if (response.data.success) {\r\n setSteps(formatSteps(response.data.data))\r\n setStepIndex(0)\r\n setTimeout(() => {\r\n setRun(true)\r\n }, 100)\r\n }\r\n } catch (error) {\r\n message.error((error && error.message) || intl.formatMessage({ id: 'button.error_data_' }))\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [getTutorial, name])\r\n\r\n const tutorial = React.useMemo(() => {\r\n return tutorials[name] ? tutorials[name] : {}\r\n }, [tutorials, name])\r\n\r\n const formatSteps = React.useCallback((data) => {\r\n const newSteps = data.map((row) => {\r\n const newRow = { ...row }\r\n if (row.videoId) {\r\n newRow.content = (\r\n <>\r\n
\r\n \r\n \r\n )\r\n } else {\r\n newRow.content =
\r\n }\r\n return newRow\r\n })\r\n return newSteps\r\n }, [])\r\n\r\n const showPlayerHandler = () => setVisiblePlayer(true)\r\n const hidePlayerHandler = () => setVisiblePlayer(false)\r\n const openArticle = () => window.open(tutorial.article, '_blank')\r\n const openTourHandler = React.useCallback(() => {\r\n if (steps.length === 0) {\r\n getData()\r\n } else {\r\n setStepIndex(0)\r\n setRun(true)\r\n }\r\n }, [steps, getData])\r\n\r\n if (hideOnEmpty && Object.keys(tutorial).length === 0) return null\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default injectIntl(Module)\r\n","import { message } from 'antd'\r\nimport { useInfiniteQuery, useMutation, useQuery } from 'react-query'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\n\r\nimport {\r\n archiveFinanceContact,\r\n deleteFinanceContact,\r\n getFinanceContact,\r\n getFinanceContactDetail,\r\n getFinanceContactMoneyInOutStat,\r\n getFinanceContacts,\r\n getFinanceContactSalesStats,\r\n getFinanceContactTransactions,\r\n getSuggestionFinanceContact,\r\n unarchiveFinanceContact,\r\n} from 'utils/apis'\r\nimport { optionsSelector } from 'redux/selectors'\r\nimport { editOption } from 'redux/options/actions'\r\n\r\nexport const useContactsSuggestion = (payload, apiOptions, RQOptions) => {\r\n return useQuery(\r\n ['contacts-suggestion', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getSuggestionFinanceContact(payload, apiOptions)\r\n return data\r\n },\r\n {\r\n ...RQOptions,\r\n keepPreviousData: true,\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport const useContacts = ({ payload = {}, options = {} } = {}) => {\r\n const dispatch = useDispatch()\r\n const optionsState = useSelector(optionsSelector)\r\n\r\n // prevent user that already setting per_page > 100\r\n if (payload.per_page > 100) {\r\n payload.per_page = 100\r\n }\r\n\r\n if (payload.per_page && payload.per_page !== optionsState?.contacts_per_page_default) {\r\n dispatch(\r\n editOption({\r\n contacts_per_page_default: payload.per_page,\r\n }),\r\n )\r\n }\r\n\r\n return useQuery(\r\n ['contact', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinanceContacts(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => {\r\n message.error(error?.message || 'Failed to load data from server!')\r\n },\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport function useContact({ id, enabled = false }) {\r\n return useQuery(\r\n ['contact', id],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getFinanceContact(id)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n enabled: !!id && enabled,\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport function useContactDetail({ id, params = {}, options }) {\r\n return useQuery(\r\n ['contact_detail', id],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getFinanceContactDetail(id, params)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n options,\r\n )\r\n}\r\n\r\nexport function useContactTransaction(params = {}, options = {}) {\r\n const { id } = params\r\n return useQuery(\r\n [`contact/${id}/transactions`, params],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getFinanceContactTransactions(id, params)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n // enabled: !!id && enabled,\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport function useContactMoneyInOut(id, params = {}, options = {}) {\r\n return useQuery(\r\n ['contactMoneyInOut', id, params],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getFinanceContactMoneyInOutStat(id, params)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport function useContactSalesStats({ id, params = {}, options = {} }) {\r\n return useQuery(\r\n ['contactSalesStats', id, params],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getFinanceContactSalesStats(id, params)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useInfiniteContactSuggestion = (payload, options = {}, apiOptions = {}) => {\r\n return useInfiniteQuery(\r\n ['infinite/contacts/suggestion', payload],\r\n async ({ pageParam = 0 }) => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getSuggestionFinanceContact({ page: pageParam, ...payload }, apiOptions)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n getNextPageParam: (lastPage) => {\r\n if (!lastPage) {\r\n return undefined\r\n }\r\n return lastPage.current_page < lastPage.last_page ? lastPage.current_page + 1 : undefined\r\n },\r\n onError: (error) => message.error(error.message || 'Failed to load data from server!'),\r\n keepPreviousData: true,\r\n ...options,\r\n },\r\n )\r\n}\r\nexport const useDeleteContact = () => {\r\n return useMutation((id) => deleteFinanceContact(id))\r\n}\r\nexport const useArchiveContact = () => {\r\n return useMutation((id) => archiveFinanceContact(id))\r\n}\r\nexport const useUnarchiveContact = () => {\r\n return useMutation((id) => unarchiveFinanceContact(id))\r\n}\r\n\r\nexport const useTransactionsContact = ({ name, id, params = {}, options = {} }) => {\r\n return useQuery(\r\n [name, id, params],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getFinanceContactTransactions(id, params)\r\n return data\r\n },\r\n {\r\n onError: (error) => {\r\n message.error(error?.message || 'Failed to load data from server!')\r\n },\r\n ...options,\r\n },\r\n )\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nimport { getOnce } from 'utils/helper'\r\n\r\nexport const getFinanceContactGroups = (params) => {\r\n const query = stringify(params)\r\n return getOnce(`/finance/contactGroups?${query}`)\r\n}\r\n\r\nexport const addFinanceContactGroup = (data) => {\r\n return axios.post('/finance/contactGroups', data)\r\n}\r\n\r\nexport const editFinanceContactGroup = (data) => {\r\n return axios.put(`/finance/contactGroups/${data.id}`, data)\r\n}\r\n\r\nexport const deleteFinanceContactGroup = (id) => {\r\n return axios.delete(`/finance/contactGroups/${id}`)\r\n}\r\n\r\nexport const moveFinanceContactGroup = (srcId, destId) => {\r\n return axios.patch(`/finance/contactGroups/${srcId}/move`, { dest_id: destId })\r\n}\r\n\r\n// export const activateFinanceContactGroup = (id) => {\r\n// return axios.patch(`/finance/contactGroups/${id}/activate`)\r\n// }\r\n\r\n// export const deactivateFinanceContactGroup = (id) => {\r\n// return axios.patch(`/finance/contactGroups/${id}/deactivate`)\r\n// }\r\n\r\nexport const canBeDeletedContactGroup = () => {\r\n return axios.get('/finance/contactGroups/canBeDeleted')\r\n}\r\n\r\nexport const getFinanceContactGroupRoles = ({ id }) => {\r\n return axios.get(`/finance/contactGroups/${id}/roles`)\r\n}\r\n\r\nexport const addFinanceContactGroupRoles = ({ id, payload }) => {\r\n return axios.post(`/finance/contactGroups/${id}/roles`, payload)\r\n}\r\n","import React, { useCallback, useEffect, useMemo, useState } from 'react'\r\nimport { Form, Select } from 'antd'\r\nimport { injectIntl } from 'react-intl'\r\nimport { useSelector } from 'react-redux'\r\nimport _ from 'lodash'\r\nimport { loadedInitSelector, optionsSelector, userSelector } from 'redux/selectors'\r\n// import { getUsers } from 'utils/apis'\r\n// import { filterOption } from 'utils/helper'\r\nimport { useTerm } from 'utils/hooks'\r\nimport { usePosUsers, useUsers } from 'utils/queries'\r\nimport { checkPermission } from 'redux/user/selectors'\r\n\r\nconst UserSuggestion = ({\r\n intl,\r\n mode = 'single',\r\n innerRef,\r\n disabled,\r\n defaultUser,\r\n onSelect,\r\n rules,\r\n hideTagOnFirstLoading,\r\n isReadyToFetch = false,\r\n withPermission = true,\r\n hideLabel,\r\n excludeUsers,\r\n isPos,\r\n ...props\r\n}) => {\r\n const loadedInit = useSelector(loadedInitSelector)\r\n const options = useSelector(optionsSelector)\r\n const activeUser = useSelector(userSelector)\r\n const isOtherSalesPersonAccessPermission = useSelector((state) =>\r\n checkPermission(state, 'other_sales_person_access'),\r\n )\r\n const isOtherSalesPersonAccess = withPermission ? isOtherSalesPersonAccessPermission : true\r\n\r\n const [open, setOpen] = useState(false)\r\n const [enabledQuery, setEnabledQuery] = useState(false)\r\n\r\n useEffect(() => {\r\n if ((open || isReadyToFetch) && isOtherSalesPersonAccess && !enabledQuery) setEnabledQuery(true)\r\n }, [enabledQuery, isOtherSalesPersonAccess, isReadyToFetch, open])\r\n\r\n const fetcher = isPos ? usePosUsers : useUsers\r\n\r\n const { data, isLoading } = fetcher({\r\n options: { enabled: enabledQuery },\r\n })\r\n const term = useTerm({ intl })\r\n\r\n const makeDefaultUser = useMemo(() => {\r\n return _.isEmpty(defaultUser) ? activeUser : defaultUser\r\n }, [activeUser, defaultUser])\r\n\r\n // React.useEffect(() => {\r\n // if (defaultUser) {\r\n // if (mode === 'multiple') {\r\n // setUsers(defaultUser)\r\n // } else {\r\n // setUsers([defaultUser])\r\n // }\r\n // }\r\n // }, [defaultUser, mode])\r\n\r\n const formattedOptions = useMemo(() => {\r\n let filteredData = !_.isEmpty(makeDefaultUser) ? [makeDefaultUser] : []\r\n if (!isOtherSalesPersonAccess || !data?.data) return filteredData\r\n\r\n if (Array.isArray(data?.data)) filteredData = data.data.filter((user) => user.is_active)\r\n\r\n if (excludeUsers) filteredData = filteredData.filter((user) => !excludeUsers.includes(user.id))\r\n\r\n return filteredData\r\n }, [data, excludeUsers, isOtherSalesPersonAccess, makeDefaultUser])\r\n\r\n const selectedHandler = useCallback(\r\n (value) => {\r\n const findData = formattedOptions.find((row) => row.id === value)\r\n if (typeof onSelect === 'function') {\r\n onSelect(value, formattedOptions, findData)\r\n }\r\n },\r\n [formattedOptions, onSelect],\r\n )\r\n\r\n const dropdownVisibleChangeHandler = useCallback((visible) => {\r\n setOpen(visible)\r\n }, [])\r\n\r\n const filterOptionHandler = useCallback((input, option) => {\r\n if (option.name) {\r\n return option.name.toString().toLowerCase().indexOf(input.toLowerCase()) >= 0\r\n }\r\n return false\r\n }, [])\r\n\r\n if (!options.sales_person) return <>\r\n\r\n return (\r\n \r\n null\r\n : undefined\r\n }\r\n options={formattedOptions}\r\n fieldNames={{ label: 'name', value: 'id' }}\r\n filterOption={filterOptionHandler}\r\n {...props}\r\n />\r\n \r\n )\r\n}\r\n\r\nconst Component = injectIntl(UserSuggestion)\r\n\r\nexport default React.forwardRef((props, ref) => )\r\n","import { message } from 'antd'\r\nimport { useMutation, useQuery } from 'react-query'\r\n\r\nimport {\r\n deleteFinanceNumberTrans,\r\n getFinanceNumberDetailLog,\r\n getFinanceNumberNext,\r\n getFinanceNumberTrans,\r\n} from 'utils/apis'\r\n\r\nexport function useNumberNext(payload, options = {}) {\r\n const { name, ...restPayload } = payload\r\n return useQuery(\r\n ['numberNext', payload],\r\n async () => {\r\n let response\r\n try {\r\n const { data } = await getFinanceNumberNext(name, restPayload)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n enabled: !!name,\r\n onError: (error) =>\r\n message.error((error && error.message) || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport function useFinanceNumberTrans({ options = {} } = {}) {\r\n return useQuery(\r\n ['financeNumberTrans'],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getFinanceNumberTrans()\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n onError: (error) =>\r\n message.error((error && error.message) || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useDeleteFinanceNumberTrans = ({ options = {} } = {}) => {\r\n return useMutation((payload) => deleteFinanceNumberTrans(payload), options)\r\n}\r\n\r\nexport function useFinanceNumberDetailLog({\r\n options = {},\r\n payload = {},\r\n justGetOnce = false,\r\n} = {}) {\r\n return useQuery(\r\n ['financeNumberDetailLog', payload],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getFinanceNumberDetailLog(payload.id, payload.params, justGetOnce)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n onError: (error) =>\r\n message.error((error && error.message) || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n","import React from 'react'\r\nimport InfiniteScroll from 'react-infinite-scroller'\r\nimport { Empty, Skeleton } from 'antd'\r\nimport dayjs from 'dayjs'\r\nimport { injectIntl } from 'react-intl'\r\n\r\nimport { LinkTransType, Spinner } from 'components/UI'\r\nimport { formatDate, formatTime } from 'utils/formatting'\r\nimport style from './style.module.scss'\r\n\r\nconst relativeTime = require('dayjs/plugin/relativeTime')\r\n\r\ndayjs.extend(relativeTime)\r\n\r\nconst Timeline = ({\r\n loading,\r\n isPaidFeature,\r\n data,\r\n onLoadMore,\r\n hasMore,\r\n loadingMore,\r\n intl,\r\n onHideParent,\r\n isMain = false,\r\n}) => {\r\n return (\r\n \r\n \r\n {data.length > 0 ? (\r\n
    \r\n {data.slice(0, isPaidFeature ? 4 : data.length).map((item) => {\r\n let desc = ''\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const [key, value] of Object.entries(item.extra)) {\r\n if (key.toLowerCase() !== 'pdf url') {\r\n desc += `${key}: ${value} `\r\n }\r\n }\r\n let typeDonut = style.info\r\n if (item.action_type_cat === 'delete') {\r\n typeDonut = style.danger\r\n } else if (item.action_type_cat === 'add') {\r\n typeDonut = style.success\r\n }\r\n return (\r\n
  • \r\n
    \r\n \r\n {dayjs(item.created_at).fromNow()}\r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {item.action_type_id === 3 ? (\r\n {item.desc.trans_type}\r\n ) : item.trans_type_id === 1025 ? (\r\n {intl.formatMessage({ id: 'report.reports' })}\r\n ) : (\r\n \r\n )}\r\n {` ${item.desc.action}`}\r\n {item.desc.name && intl.formatMessage({ id: 'audit.by' })}\r\n {item.desc.name}\r\n
\r\n {desc}\r\n \r\n {item.remote_addr}\r\n \r\n \r\n {formatDate(item.created_at)} {formatTime(item.created_at)}\r\n \r\n
\r\n \r\n )\r\n })}\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default injectIntl(Timeline)\r\n","import * as api from 'utils/apis/financeUnit'\r\nimport * as actionTypes from 'redux/actionTypes'\r\n\r\nexport const getCanDeletedUnitsRedux = (payload) => {\r\n return {\r\n type: actionTypes.GET_CAN_DELETED_FINANCE_UNIT,\r\n payload,\r\n }\r\n}\r\n\r\nexport const getCanDeletedUnits = () => {\r\n return (dispatch) => {\r\n return api.getCanDeletedFinanceUnit().then((response) => {\r\n dispatch(getCanDeletedUnitsRedux(response.data.data))\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const setFinanceUnits = (payload) => {\r\n return {\r\n type: actionTypes.SET_FINANCE_UNITS,\r\n payload,\r\n }\r\n}\r\n\r\nexport const addFinanceUnitRedux = (payload) => {\r\n return {\r\n type: actionTypes.ADD_FINANCE_UNIT,\r\n payload,\r\n }\r\n}\r\n\r\nexport const editFinanceUnitRedux = (payload) => {\r\n return {\r\n type: actionTypes.EDIT_FINANCE_UNIT,\r\n payload,\r\n }\r\n}\r\n\r\nexport const addFinanceUnit = (payload) => {\r\n return (dispatch) => {\r\n return api.addFinanceUnit(payload).then((response) => {\r\n dispatch(addFinanceUnitRedux(response.data.data))\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const editFinanceUnit = (payload) => {\r\n return (dispatch) => {\r\n return api.editFinanceUnit(payload).then((response) => {\r\n dispatch(editFinanceUnitRedux(response.data.data))\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const moveFinanceUnitRedux = (payload) => {\r\n return {\r\n type: actionTypes.MOVE_FINANCE_UNIT,\r\n payload,\r\n }\r\n}\r\n\r\nexport const moveFinanceUnit = (payload) => {\r\n return (dispatch) => {\r\n dispatch(moveFinanceUnitRedux(payload))\r\n\r\n return api\r\n .moveFinanceUnit(payload.srcId, payload.destId)\r\n .then((response) => {\r\n return response\r\n })\r\n .catch(() => {\r\n dispatch(\r\n moveFinanceUnitRedux({\r\n dragIndex: payload.hoverIndex,\r\n hoverIndex: payload.dragIndex,\r\n srcId: payload.destId,\r\n destId: payload.srcId,\r\n }),\r\n )\r\n })\r\n }\r\n}\r\n\r\nexport const filterFinanceUnit = (payload) => {\r\n return {\r\n type: actionTypes.FILTER_FINANCE_UNIT,\r\n payload,\r\n }\r\n}\r\n\r\nexport const deleteFinanceUnitRedux = (payload) => {\r\n return {\r\n type: actionTypes.DELETE_FINANCE_UNIT,\r\n payload,\r\n }\r\n}\r\n\r\nexport const deleteFinanceUnit = (payload) => {\r\n return (dispatch) => {\r\n return api.deleteFinanceUnit(payload.id).then((response) => {\r\n dispatch(deleteFinanceUnitRedux(payload))\r\n return response\r\n })\r\n }\r\n}\r\n","import axios from 'axios'\r\n\r\nexport const addFinanceProductCategory = (data) => {\r\n return axios.post('/finance/productCategories', data)\r\n}\r\n\r\nexport const editFinanceProductCategory = (data) => {\r\n return axios.put(`/finance/productCategories/${data.id}`, data)\r\n}\r\n\r\nexport const deleteFinanceProductCategory = (id) => {\r\n return axios.delete(`/finance/productCategories/${id}`)\r\n}\r\n\r\nexport const moveFinanceProductCategory = (srcId, destId) => {\r\n return axios.patch(`/finance/productCategories/${srcId}/move`, { dest_id: destId })\r\n}\r\n\r\nexport const activateFinanceProductCategory = (id) => {\r\n return axios.patch(`/finance/productCategories/${id}/activate`)\r\n}\r\n\r\nexport const deactivateFinanceProductCategory = (id) => {\r\n return axios.patch(`/finance/productCategories/${id}/deactivate`)\r\n}\r\n\r\nexport const canBeDeletedProductCategory = () => {\r\n return axios.get('/finance/productCategories/canBeDeleted')\r\n}\r\n\r\nexport const getFinanceProductCategoriesRoles = (id) => {\r\n return axios.get(`/finance/productCategories/${id}/roles`)\r\n}\r\n\r\nexport const addFinanceProductCategoriesRoles = (id, data) => {\r\n return axios.post(`/finance/productCategories/${id}/roles`, data)\r\n}\r\n","import * as api from 'utils/apis/financeExpenseTerm'\r\nimport * as actionTypes from 'redux/actionTypes'\r\n\r\nexport const getCanDeletedExpenseTermsRedux = (payload) => {\r\n return {\r\n type: actionTypes.GET_CAN_DELETED_FINANCE_EXPENSE_TERMS,\r\n payload,\r\n }\r\n}\r\n\r\nexport const getCanDeletedExpenseTerms = () => {\r\n return (dispatch) => {\r\n return api.getCanDeletedFinanceExpenseTerm().then((response) => {\r\n dispatch(getCanDeletedExpenseTermsRedux(response.data.data))\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const setFinanceExpenseTerms = (payload) => {\r\n return {\r\n type: actionTypes.SET_FINANCE_EXPENSE_TERMS,\r\n payload,\r\n }\r\n}\r\n\r\nexport const addFinanceExpenseTermRedux = (payload) => {\r\n return {\r\n type: actionTypes.ADD_FINANCE_EXPENSE_TERM,\r\n payload,\r\n }\r\n}\r\n\r\nexport const editFinanceExpenseTermRedux = (payload) => {\r\n return {\r\n type: actionTypes.EDIT_FINANCE_EXPENSE_TERM,\r\n payload,\r\n }\r\n}\r\n\r\nexport const addFinanceExpenseTerm = (payload) => {\r\n return (dispatch) => {\r\n return api.addFinanceExpenseTerm(payload).then((response) => {\r\n dispatch(addFinanceExpenseTermRedux(response.data.data))\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const editFinanceExpenseTerm = (payload) => {\r\n return (dispatch) => {\r\n return api.editFinanceExpenseTerm(payload).then((response) => {\r\n dispatch(editFinanceExpenseTermRedux(response.data.data))\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const deleteFinanceExpenseTermRedux = (payload) => {\r\n return {\r\n type: actionTypes.DELETE_FINANCE_EXPENSE_TERM,\r\n payload,\r\n }\r\n}\r\n\r\nexport const deleteFinanceExpenseTerm = (payload) => {\r\n return (dispatch) => {\r\n return api.deleteFinanceExpenseTerm(payload).then((response) => {\r\n dispatch(deleteFinanceExpenseTermRedux(payload.id))\r\n\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const moveFinanceExpenseTermRedux = (payload) => {\r\n return {\r\n type: actionTypes.MOVE_FINANCE_EXPENSE_TERM,\r\n payload,\r\n }\r\n}\r\n\r\nexport const moveFinanceExpenseTerm = (payload) => {\r\n return (dispatch) => {\r\n dispatch(moveFinanceExpenseTermRedux(payload))\r\n\r\n return api\r\n .moveFinanceExpenseTerm(payload.srcId, payload.destId)\r\n .then((response) => {\r\n return response\r\n })\r\n .catch(() => {\r\n dispatch(\r\n moveFinanceExpenseTermRedux({\r\n dragIndex: payload.hoverIndex,\r\n hoverIndex: payload.dragIndex,\r\n srcId: payload.destId,\r\n destId: payload.srcId,\r\n }),\r\n )\r\n })\r\n }\r\n}\r\n\r\nexport const changeStatusFinanceExpenseTermRedux = (payload) => {\r\n return {\r\n type: actionTypes.CHANGE_STATUS_FINANCE_EXPENSE_TERM,\r\n payload,\r\n }\r\n}\r\n\r\nexport const changeStatusFinanceExpenseTerm = (payload) => {\r\n return (dispatch) => {\r\n dispatch(changeStatusFinanceExpenseTermRedux(payload))\r\n\r\n if (payload.checked) {\r\n return api.activateFinanceExpenseTerm(payload.id)\r\n }\r\n\r\n return api.deactivateFinanceExpenseTerm(payload.id)\r\n }\r\n}\r\n\r\nexport const filterFinanceExpenseTerm = (payload) => {\r\n return {\r\n type: actionTypes.FILTER_FINANCE_EXPENSE_TERM,\r\n payload,\r\n }\r\n}\r\n","import * as actionTypes from 'redux/actionTypes'\r\n\r\nexport const setTransactionFees = (payload) => {\r\n return {\r\n type: actionTypes.SET_TRANSACTION_FEES,\r\n payload,\r\n }\r\n}\r\n\r\nexport const addTransactionFeeRedux = (payload) => {\r\n return {\r\n type: actionTypes.ADD_TRANSACTION_FEE,\r\n payload,\r\n }\r\n}\r\n\r\nexport const editTransactionFeeRedux = (payload) => {\r\n return {\r\n type: actionTypes.EDIT_TRANSACTION_FEE,\r\n payload,\r\n }\r\n}\r\n\r\nexport const deleteTransactionFeeRedux = (payload) => {\r\n return {\r\n type: actionTypes.DELETE_TRANSACTION_FEE,\r\n payload,\r\n }\r\n}\r\n","import * as api from 'utils/apis/shippingComp'\r\nimport * as actionTypes from 'redux/actionTypes'\r\n\r\nexport const getCanDeletedShippingCompsRedux = (payload) => {\r\n return {\r\n type: actionTypes.GET_CAN_DELETED_SHIPPING_COMPS,\r\n payload,\r\n }\r\n}\r\n\r\nexport const getCanDeletedShippingComps = () => {\r\n return (dispatch) => {\r\n return api.getCanDeletedShippingComp().then((response) => {\r\n dispatch(getCanDeletedShippingCompsRedux(response.data.data))\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const setShippingComps = (payload) => {\r\n return {\r\n type: actionTypes.SET_SHIPPING_COMPS,\r\n payload,\r\n }\r\n}\r\n\r\nexport const addShippingCompRedux = (payload) => {\r\n return {\r\n type: actionTypes.ADD_SHIPPING_COMP,\r\n payload,\r\n }\r\n}\r\n\r\nexport const editShippingCompRedux = (payload) => {\r\n return {\r\n type: actionTypes.EDIT_SHIPPING_COMP,\r\n payload,\r\n }\r\n}\r\n\r\nexport const addShippingComp = (payload) => {\r\n return (dispatch) => {\r\n return api.addShippingComp(payload).then((response) => {\r\n dispatch(addShippingCompRedux(response.data.data))\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const editShippingComp = (payload) => {\r\n return (dispatch) => {\r\n return api.editShippingComp(payload).then((response) => {\r\n dispatch(editShippingCompRedux(response.data.data))\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const deleteShippingCompRedux = (payload) => {\r\n return {\r\n type: actionTypes.DELETE_SHIPPING_COMP,\r\n payload,\r\n }\r\n}\r\n\r\nexport const deleteShippingComp = (payload) => {\r\n return (dispatch) => {\r\n return api.deleteShippingComp(payload).then((response) => {\r\n dispatch(deleteShippingCompRedux(payload.id))\r\n\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const moveShippingCompRedux = (payload) => {\r\n return {\r\n type: actionTypes.MOVE_SHIPPING_COMP,\r\n payload,\r\n }\r\n}\r\n\r\nexport const moveShippingComp = (payload) => {\r\n return (dispatch) => {\r\n dispatch(moveShippingCompRedux(payload))\r\n\r\n return api\r\n .moveShippingComp(payload.srcId, payload.destId)\r\n .then((response) => {\r\n return response\r\n })\r\n .catch(() => {\r\n dispatch(\r\n moveShippingCompRedux({\r\n dragIndex: payload.hoverIndex,\r\n hoverIndex: payload.dragIndex,\r\n srcId: payload.destId,\r\n destId: payload.srcId,\r\n }),\r\n )\r\n })\r\n }\r\n}\r\n\r\nexport const changeStatusShippingCompRedux = (payload) => {\r\n return {\r\n type: actionTypes.CHANGE_STATUS_SHIPPING_COMP,\r\n payload,\r\n }\r\n}\r\n\r\nexport const changeStatusShippingComp = (payload) => {\r\n return (dispatch) => {\r\n dispatch(changeStatusShippingCompRedux(payload))\r\n\r\n if (payload.checked) {\r\n return api.activateShippingComp(payload.id)\r\n }\r\n\r\n return api.deactivateShippingComp(payload.id)\r\n }\r\n}\r\n\r\nexport const filterShippingComp = (payload) => {\r\n return {\r\n type: actionTypes.FILTER_SHIPPING_COMP,\r\n payload,\r\n }\r\n}\r\n","import React, { useMemo, useState } from 'react'\r\nimport { connect, useSelector } from 'react-redux'\r\nimport { EditOutlined, PaperClipOutlined } from '@ant-design/icons'\r\nimport draftToHtml from 'draftjs-to-html'\r\nimport _ from 'lodash'\r\nimport htmlToDraft from 'html-to-draftjs'\r\nimport { ContentState, convertToRaw, EditorState } from 'draft-js'\r\nimport {\r\n Button,\r\n Checkbox,\r\n Form,\r\n Input,\r\n message,\r\n Modal,\r\n Result,\r\n Select,\r\n Skeleton,\r\n Space,\r\n} from 'antd'\r\nimport { push } from 'connected-react-router'\r\n\r\nimport { Cancel, HelpTooltip, MultipleEmailInput, SearchInput, Send } from 'components/UI'\r\nimport Editor from 'components/apps/EmailTemplate/Editor'\r\nimport {darkModeSelector, optionsSelector} from 'redux/selectors'\r\nimport { checkPermission } from 'redux/user/selectors'\r\nimport ConfirmEmailModal from './ConfirmEmailModal'\r\n\r\nconst SendEmailModal = ({\r\n intl,\r\n sendTitle,\r\n getEmailTemplate,\r\n sendEmail,\r\n show = false,\r\n data = { contact: {} },\r\n emailPayment = 0,\r\n emailSent = false,\r\n setEmailSent,\r\n onCloseEmailModal,\r\n onPrintPdf,\r\n goToEmailTamplate,\r\n withRelationAttachment,\r\n pushPath,\r\n ...props\r\n}) => {\r\n const formRef = React.createRef()\r\n const options = useSelector(optionsSelector)\r\n const darkMode = useSelector(darkModeSelector)\r\n\r\n const [loadingSendEmail, setLoadingSendEmail] = React.useState(false)\r\n const [loadingEmailTemplate, setLoadingEmailTemplate] = React.useState(false)\r\n const [emailTemplate, setEmailTemplate] = React.useState({ body: '', subject: '' })\r\n const [editorState, setEditorState] = React.useState(EditorState.createEmpty())\r\n const [emailsTo, setEmailsTo] = React.useState([])\r\n const [searchEmails, setSearchEmails] = useState('')\r\n const [emailOpen, setEmailOpen] = useState(false)\r\n const emailTemplatePermission = useSelector((state) => checkPermission(state, 'email_template'))\r\n\r\n const emails = useMemo(\r\n () =>\r\n [options.reply_email_address, ...(options.reply_email_addresses ?? [])].filter(\r\n (email) => email && email.toLowerCase().includes(searchEmails.toLowerCase()),\r\n ),\r\n [options.reply_email_address, options.reply_email_addresses, searchEmails],\r\n )\r\n\r\n React.useEffect(() => {\r\n const getTemplate = async () => {\r\n try {\r\n setLoadingEmailTemplate(true)\r\n const response = await getEmailTemplate()\r\n const resData = response.data.data\r\n setLoadingEmailTemplate(false)\r\n\r\n if (!_.isEmpty(resData.mail_to_all)) {\r\n resData.mail_to = (resData.mail_to_all || []).filter((mail) => !!mail)\r\n setEmailsTo(resData.mail_to)\r\n } else if (!_.isEmpty(resData.mail_to)) {\r\n resData.mail_to = [resData.mail_to]\r\n setEmailsTo(resData.mail_to)\r\n } else {\r\n setEmailsTo([])\r\n }\r\n const blocksFromHTML = htmlToDraft(!_.isEmpty(resData.body) ? resData.body.toString() : '')\r\n setEditorState(\r\n EditorState.createWithContent(\r\n ContentState.createFromBlockArray(\r\n blocksFromHTML.contentBlocks,\r\n blocksFromHTML.entityMap,\r\n ),\r\n ),\r\n )\r\n setEmailTemplate(resData)\r\n } catch (e) {\r\n console.log(e)\r\n message.error(intl.formatMessage({ id: 'email.cannot_send_email' }))\r\n }\r\n }\r\n\r\n if (show) {\r\n getTemplate()\r\n }\r\n }, [show, getEmailTemplate, intl])\r\n\r\n React.useEffect(() => {\r\n if (formRef.current) {\r\n formRef.current.setFieldsValue({\r\n mail_to: !_.isEmpty(emailTemplate.mail_to) ? emailTemplate.mail_to : [],\r\n subject: emailTemplate.subject,\r\n body: emailTemplate.body,\r\n })\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [data, emailPayment, emailTemplate])\r\n\r\n const onSendEmail = async (values) => {\r\n setLoadingSendEmail(true)\r\n\r\n try {\r\n const rawContentState = convertToRaw(editorState.getCurrentContent())\r\n const body = draftToHtml(rawContentState)\r\n const payload = {\r\n ...values,\r\n body,\r\n mail_to: Array.isArray(emailsTo) ? emailsTo.join(',') : '',\r\n }\r\n const response = await sendEmail(data.id, payload)\r\n setLoadingSendEmail(false)\r\n\r\n if (response.data.success) {\r\n setEmailTemplate({ ...emailTemplate, mail_to: values.mail_to })\r\n setEmailSent(true)\r\n } else {\r\n message.error(response.data.message)\r\n }\r\n } catch (e) {\r\n setLoadingSendEmail(false)\r\n message.error(intl.formatMessage({ id: 'email.cannot_send_email' }))\r\n }\r\n }\r\n\r\n const afterUpdatedOptionHandler = () => {}\r\n\r\n const changeEmailsToHandler = (_mails) => setEmailsTo(_mails)\r\n\r\n if (props.email_confirmed) {\r\n return (\r\n \r\n Ok\r\n ,\r\n ]\r\n : [\r\n \r\n {goToEmailTamplate && (\r\n }\r\n onClick={goToEmailTamplate}\r\n >\r\n {intl.formatMessage({ id: 'wa.change_template' })}\r\n \r\n )}\r\n ,\r\n ,\r\n ,\r\n ]\r\n }\r\n >\r\n <>\r\n {loadingEmailTemplate ? (\r\n \r\n ) : emailSent ? (\r\n \r\n {intl.formatMessage({ id: 'email.email_has_been_sent_to' })}{' '}\r\n {(emailsTo || []).join(', ')}\r\n \r\n }\r\n />\r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n setSearchEmails(value)}\r\n onDropdownVisibleChange={(open) => setEmailOpen(open)}\r\n onExtraClick={(e) => {\r\n e.preventDefault()\r\n pushPath('/settings/email-template')\r\n }}\r\n open={emailOpen}\r\n >\r\n {emails.map((email) => (\r\n \r\n {email}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {withRelationAttachment && (\r\n \r\n \r\n \r\n {intl.formatMessage({\r\n id: 'emails.send_attachment_from_related_transaction',\r\n })}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n email_confirmed: state.options.options.email_confirmed,\r\n property_email: state.options.options.property_email,\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n pushPath: (path) => dispatch(push(path)),\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SendEmailModal)\r\n","import React, { createContext, useContext, useMemo, useReducer } from 'react'\r\n\r\nconst ProductDetailContext = createContext(null)\r\n\r\nconst initialState = {\r\n params: {\r\n 'recent-transactions': {\r\n page: 1,\r\n sort_by: null,\r\n order_by: null,\r\n per_page: null,\r\n date_from: null,\r\n date_to: null,\r\n tags: [],\r\n },\r\n 'stock-movement': {\r\n page: 1,\r\n sort_by: null,\r\n order_by: null,\r\n per_page: null,\r\n date_from: null,\r\n date_to: null,\r\n tags: [],\r\n trans_type_ids: [],\r\n },\r\n 'warehouse-movement': {\r\n page: 1,\r\n sort_by: null,\r\n order_by: null,\r\n per_page: null,\r\n date_from: null,\r\n date_to: null,\r\n },\r\n },\r\n transactionsActiveTab: 'recent-transactions',\r\n}\r\n\r\nconst actions = {\r\n UPDATE_PARAMS: 'UPDATE_PARAMS',\r\n TRANSACTIONS_ACTIVE_TAB: 'TRANSACTIONS_ACTIVE_TAB',\r\n}\r\n\r\nfunction reducer(initial, action) {\r\n if (action.type === actions.UPDATE_PARAMS) {\r\n return {\r\n ...initial,\r\n params: {\r\n ...initial.params,\r\n [action.payload.tableName]: {\r\n ...initial.params[action.payload.tableName],\r\n ...action.payload.params,\r\n },\r\n },\r\n }\r\n }\r\n\r\n if (action.type === actions.TRANSACTIONS_ACTIVE_TAB) {\r\n return {\r\n ...initial,\r\n transactionsActiveTab: action.payload,\r\n }\r\n }\r\n\r\n return initial\r\n}\r\n\r\nexport function ProductDetailProvider({ children }) {\r\n const [state, dispatch] = useReducer(reducer, initialState)\r\n\r\n const value = useMemo(\r\n () => ({\r\n params: state.params,\r\n transactionsActiveTab: state.transactionsActiveTab,\r\n updateParams: ({ tableName, params }) => {\r\n dispatch({\r\n type: actions.UPDATE_PARAMS,\r\n payload: {\r\n tableName,\r\n params,\r\n },\r\n })\r\n },\r\n updateTransactionsActiveTab: ({ key }) => {\r\n dispatch({\r\n type: actions.TRANSACTIONS_ACTIVE_TAB,\r\n payload: key,\r\n })\r\n },\r\n }),\r\n [state.params, state.transactionsActiveTab],\r\n )\r\n\r\n return {children}\r\n}\r\n\r\nexport function useProductDetailContext() {\r\n return useContext(ProductDetailContext)\r\n}\r\n","import React from 'react';\r\nimport { Button } from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\nimport { CopyOutlined } from '@ant-design/icons';\r\n\r\nfunction Copy(props) {\r\n const title = props.title === 'button.copy_to_clipboard' ? props.intl.formatMessage({ id: props.title }) : props.title\r\n return (\r\n \r\n {title}\r\n \r\n )\r\n}\r\n\r\nCopy.propTypes = {\r\n icon: PropTypes.object,\r\n title: PropTypes.string,\r\n id: PropTypes.string,\r\n type: PropTypes.string,\r\n onClick: PropTypes.func,\r\n}\r\n\r\nCopy.defaultProps = {\r\n icon: ,\r\n title: \"button.copy_to_clipboard\",\r\n type: \"success\",\r\n onClick: () => { },\r\n id: \"btn-copy\"\r\n}\r\n\r\nexport default injectIntl(Copy);","import { message } from 'antd'\r\n\r\nexport const onExport = ({ event, payload, fetcher, intl }) => {\r\n if (event?.preventDefault) event.preventDefault()\r\n\r\n let loading = () => null\r\n\r\n if (intl) loading = message.loading(intl.formatMessage({ id: 'report.downloading_data' }))\r\n\r\n fetcher(payload)\r\n .then((response) => {\r\n const downloadLink = document.createElement('a')\r\n const blob = new Blob([response.data], { type: response.headers['content-type'] })\r\n downloadLink.href = URL.createObjectURL(blob)\r\n\r\n const filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/\r\n const matches = filenameRegex.exec(response.headers['content-disposition'])\r\n if (matches?.[1]) downloadLink.download = matches[1].replace(/['\"]/g, '')\r\n loading()\r\n downloadLink.click()\r\n })\r\n .catch((error) => {\r\n loading()\r\n\r\n try {\r\n message.error(JSON.parse(new TextDecoder().decode(error?.data)).message)\r\n } catch {\r\n message.error('Failed from server!')\r\n }\r\n })\r\n}\r\n\r\nconst handleExport = ({ fetcher, intl }) => {\r\n return ({ event, payload }) =>\r\n onExport({\r\n event,\r\n fetcher,\r\n intl,\r\n payload,\r\n })\r\n}\r\n\r\nconst useExport = ({ fetcher, intl }) => {\r\n return handleExport({ fetcher, intl })\r\n}\r\n\r\nexport default useExport\r\n","import dayjs from 'dayjs';\r\nimport _ from 'lodash'\r\n\r\nimport { isValidJson } from 'utils/helper'\r\nimport { DEFAULT_PER_PAGES } from 'components/UI/Pagination'\r\n\r\nexport class ParseURIToParams {\r\n params = {}\r\n\r\n filters = {}\r\n\r\n constructor(filters) {\r\n this.filters = filters\r\n }\r\n\r\n build() {\r\n return this.params\r\n }\r\n\r\n date(name, config = {}) {\r\n const filter = this.filters[name]\r\n\r\n if (!filter || config.pass) return this\r\n\r\n this.params[name] = dayjs(filter).isValid() ? dayjs(filter) : null\r\n\r\n return this\r\n }\r\n\r\n string(name, config = {}) {\r\n const filter = this.filters[name]\r\n\r\n if (typeof filter !== 'string' || !filter || config.pass) return this\r\n\r\n if (_.isArray(config.validValues) && !config.validValues.includes(filter)) {\r\n return this\r\n }\r\n\r\n this.params[name] = filter\r\n\r\n return this\r\n }\r\n\r\n number() {\r\n return this\r\n }\r\n\r\n int(name, config = {}) {\r\n const filter = this.filters[name]\r\n\r\n if (!Number.isInteger(filter) || config.pass) return this\r\n\r\n if (_.isArray(config.validValues) && !config.validValues.includes(filter)) {\r\n return this\r\n }\r\n\r\n if (config.min && filter < config.min) {\r\n return this\r\n }\r\n\r\n if (config.max && filter > config.max) {\r\n return this\r\n }\r\n\r\n this.params[name] = Number(filter)\r\n\r\n return this\r\n }\r\n\r\n array(name, config = {}) {\r\n const filter = this.filters[name]\r\n\r\n if (config.pass) return this\r\n\r\n if (!isValidJson(filter)) {\r\n this.params[name] = []\r\n return this\r\n }\r\n\r\n const parseParam = JSON.parse(filter)\r\n if (config.selectedName) {\r\n this.params[config.selectedName] = parseParam\r\n }\r\n if (config.idOnly) {\r\n this.params[name] = _.isArray(parseParam) ? parseParam.map((row) => row.id) : []\r\n } else {\r\n this.params[name] = parseParam\r\n }\r\n\r\n return this\r\n }\r\n\r\n object(name, config = {}) {\r\n const filter = this.filters[name]\r\n\r\n if (config.pass) return this\r\n\r\n if (!isValidJson(filter)) {\r\n this.params[name] = ''\r\n return this\r\n }\r\n\r\n const parseParam = JSON.parse(filter)\r\n if (config.selectedName) {\r\n this.params[config.selectedName] = parseParam\r\n }\r\n if (config.idOnly) {\r\n this.params[name] = parseParam?.id ?? ''\r\n } else {\r\n this.params[name] = parseParam\r\n }\r\n\r\n return this\r\n }\r\n\r\n showColumns(name, config = {}) {\r\n const filter = this.filters[name]\r\n\r\n if (config.pass) return this\r\n\r\n if ((typeof filter !== 'string' && !filter) || config.pass) return this\r\n\r\n const newShowColumns = []\r\n\r\n filter.split(',').forEach((column) => {\r\n if (_.isArray(config.validValues) && !config.validValues.includes(column)) {\r\n return\r\n }\r\n\r\n newShowColumns.push(column)\r\n })\r\n\r\n this.params[name] = newShowColumns.join(',')\r\n\r\n return this\r\n }\r\n\r\n // common params\r\n\r\n page(config = {}) {\r\n if (config.pass) return this\r\n\r\n this.int('page', {\r\n min: 1,\r\n ...config,\r\n })\r\n\r\n return this\r\n }\r\n\r\n per_page(config = {}) {\r\n if (config.pass) return this\r\n\r\n this.int('per_page', {\r\n validValues: DEFAULT_PER_PAGES,\r\n ...config,\r\n })\r\n\r\n return this\r\n }\r\n\r\n orderBy(config = {}) {\r\n if (config.pass) return this\r\n\r\n this.string('order_by', {\r\n validValues: ['asc', 'desc'],\r\n ...config,\r\n })\r\n\r\n return this\r\n }\r\n}\r\n","import React from 'react'\r\nimport { Link } from 'react-router-dom'\r\nimport { injectIntl } from 'react-intl'\r\n\r\nimport { Helmet } from 'components/UI'\r\n\r\nconst NotFound = ({ intl, title, description, fallbackTitle, fallbackLink }) => {\r\n const pageTitle = title ?? intl.formatMessage({ id: 'page404.title' })\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n

{pageTitle}

\r\n

{description ?? intl.formatMessage({ id: 'page404.description' })}

\r\n

404 —

\r\n \r\n ← {fallbackTitle ?? intl.formatMessage({ id: 'page404.fallback' })}\r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default injectIntl(NotFound)\r\n","import { message } from 'antd'\r\nimport { useMutation, useQuery } from 'react-query'\r\n\r\nimport {\r\n addFinanceWarehouseContactGroups,\r\n executeImportFinanceWarehouseTransfer,\r\n getFinanceWareHouses,\r\n getFinanceWareHouseTransfers,\r\n getWarehousesSummary,\r\n uploadImportFinanceWarehouseTransfer,\r\n} from 'utils/apis'\r\n\r\nexport const useFinanceWareHouseTransfers = (params = {}, options = {}) => {\r\n return useQuery(\r\n ['warehousesTransfer', params],\r\n async () => {\r\n let response\r\n\r\n try {\r\n const {\r\n data: { data },\r\n } = await getFinanceWareHouseTransfers(params)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useUploadImportFinanceWarehouseTransferMutation = () => {\r\n return useMutation(uploadImportFinanceWarehouseTransfer)\r\n}\r\n\r\nexport const useExecuteImportFinanceWarehouseTransferMutation = () => {\r\n return useMutation(executeImportFinanceWarehouseTransfer)\r\n}\r\n\r\nexport const useAddWarehouseContactGroupsMutation = () => {\r\n return useMutation((payload) => addFinanceWarehouseContactGroups(payload.id, payload.data))\r\n}\r\n\r\nexport const useWarehousesSummary = ({ params = {}, options = {} } = {}) => {\r\n return useQuery(\r\n ['warehousesSummary', params],\r\n async () => {\r\n let response\r\n\r\n try {\r\n const {\r\n data: { data },\r\n } = await getWarehousesSummary(params)\r\n response = data\r\n } catch (error) {\r\n throw new Error(error)\r\n }\r\n return response\r\n },\r\n {\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useWarehouses = ({ payload, options = {} }) => {\r\n return useQuery(\r\n ['warehouses', payload],\r\n async () => {\r\n let response\r\n\r\n try {\r\n const {\r\n data: { data },\r\n } = await getFinanceWareHouses(payload)\r\n response = data\r\n } catch (error) {\r\n throw new Error(error)\r\n }\r\n return response\r\n },\r\n {\r\n onError: (error) => message.error(error?.message || 'Failed to load data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n","import React, { createRef, memo, useCallback, useEffect, useMemo, useRef, useState } from 'react'\r\nimport { Form, message, Modal, Popover, Skeleton, Space, Switch } from 'antd'\r\nimport { injectIntl } from 'react-intl'\r\nimport _ from 'lodash'\r\nimport styled from 'styled-components'\r\nimport { push, replace } from 'connected-react-router'\r\nimport { stringify } from 'query-string'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\n\r\nimport { Cancel, Export, Filter as ButtonFilter, LinkTransType, ShowColumn } from 'components/UI'\r\nimport { currency, formatDate, qtyToCurrency } from 'utils/formatting'\r\nimport { useProductStockMovements } from 'utils/queries/product'\r\nimport { cleanBlankValue } from 'utils/helper'\r\nimport { desktopLayoutSelector, financeConfigSelector, locationSelector } from 'redux/selectors'\r\nimport { dbFormat, transType } from 'utils/static'\r\nimport { exportFinanceProductStockMovements } from 'utils/apis'\r\nimport { useTerm } from 'utils/hooks'\r\nimport { editOptions } from 'redux/options/actions'\r\nimport { ParseURIToParams } from 'utils/parseURIToParams'\r\nimport DataTable from './DataTable'\r\nimport FilterForm from './FilterFormTransaction'\r\nimport { useProductDetailContext } from './Context'\r\n\r\nconst prefixQuery = `stock_movements`\r\n\r\nconst TABLE_NAME = 'stock-movement'\r\n\r\nconst DEFAULT_COLUMNS = 'trans_date,trans_type,reference,desc,price,avg_price,qty_movement,qty'\r\n\r\nconst HPPSkeleton = styled(Skeleton)`\r\n .ant-skeleton-content {\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .ant-skeleton-title {\r\n margin: 0;\r\n }\r\n`\r\nconst filterParams = {\r\n date_from: null,\r\n date_to: null,\r\n tags: [],\r\n trans_type_ids: [],\r\n}\r\nconst initialParams = {\r\n page: 1,\r\n sort_by: null,\r\n order_by: null,\r\n per_page: null,\r\n ...filterParams,\r\n}\r\n\r\nexport const LoadingInvalidData = injectIntl(({ intl }) => {\r\n return (\r\n \r\n {Array(3)\r\n .fill(undefined)\r\n .map((__, index) => (\r\n \r\n ))}\r\n \r\n )\r\n})\r\n\r\nconst StockMovements = ({\r\n intl,\r\n permissions,\r\n unit,\r\n id,\r\n isMobileView,\r\n enabledQuery,\r\n editOption,\r\n showColumns = DEFAULT_COLUMNS,\r\n isPrint,\r\n}) => {\r\n const dispatch = useDispatch()\r\n const filterFormRef = useRef()\r\n const showColumnFormRef = createRef()\r\n const location = useSelector(locationSelector)\r\n const [showExport, setShowExport] = useState(false)\r\n\r\n const [isHasInvalid, setIsHasInvalid] = useState(false)\r\n const [selectedTags, setSelectedTags] = useState(() => {\r\n let newTags = []\r\n if (!_.isEmpty(location.query?.stock_movements_tags)) {\r\n newTags = JSON.parse(decodeURIComponent(location.query?.stock_movements_tags))\r\n }\r\n return newTags\r\n })\r\n\r\n const {\r\n params: { [TABLE_NAME]: params },\r\n updateParams,\r\n } = useProductDetailContext()\r\n\r\n const transTypeFromRedux = useSelector(financeConfigSelector)?.trans_type ?? []\r\n\r\n const getTransType = useCallback(\r\n (idOnly) => {\r\n const transTypeIds = [\r\n transType.INVOICE,\r\n transType.RETURN,\r\n transType.DELIVERY,\r\n transType.PURCHASE_INVOICE,\r\n transType.PURCHASE_RETURN,\r\n transType.PURCHASE_DELIVERY,\r\n transType.PRODUCT_CONVERSION,\r\n transType.STOCK_ADJUSTMENT,\r\n transType.WAREHOUSE_TRANSFER,\r\n ]\r\n\r\n return transTypeFromRedux\r\n .filter((_transType) => transTypeIds.includes(_transType.id))\r\n .map((_transType) => {\r\n if (idOnly) {\r\n return _transType.id.toString()\r\n }\r\n\r\n return {\r\n value: _transType.id.toString(),\r\n label: _transType.name,\r\n }\r\n })\r\n },\r\n [transTypeFromRedux],\r\n )\r\n\r\n useEffect(() => {\r\n let newInitialParams = { ...initialParams }\r\n\r\n if (!_.isEmpty(location.query)) {\r\n const query = {}\r\n Object.entries(location.query).forEach(([key, value]) => {\r\n query[_.replace(key, `${prefixQuery}_`, '')] = decodeURIComponent(value)\r\n })\r\n\r\n const newParams = new ParseURIToParams(query)\r\n\r\n newParams.date('date_from')\r\n newParams.date('date_to')\r\n newParams.page()\r\n newParams.per_page()\r\n newParams.orderBy()\r\n newParams.string('sort_by', { validValues: ['trans_date'] })\r\n newParams.array('tags', {\r\n idOnly: true,\r\n })\r\n newParams.array('trans_type_ids')\r\n newParams.showColumns('trans_date,trans_type,desc,reference,price,avg_price,qty_movement,qty')\r\n\r\n newInitialParams = { ...newInitialParams, ...newParams.build() }\r\n }\r\n\r\n updateParams({\r\n tableName: TABLE_NAME,\r\n params: newInitialParams,\r\n })\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n const isDesktopView = useSelector(desktopLayoutSelector)\r\n\r\n const term = useTerm({ intl })\r\n\r\n const parseParams = useMemo(\r\n () =>\r\n cleanBlankValue({\r\n ...params,\r\n tag_ids: Array.isArray(params.tags) ? params.tags.join(',') : [],\r\n trans_type_ids: Array.isArray(params.trans_type_ids) ? params.trans_type_ids.join(',') : [],\r\n tags: null,\r\n }),\r\n [params],\r\n )\r\n\r\n const { data, isLoading: loading } = useProductStockMovements({\r\n payload: { params: parseParams, id },\r\n options: {\r\n enabled: enabledQuery,\r\n refetchInterval: isHasInvalid ? 10 * 1000 : false,\r\n },\r\n showColumns: showColumns || DEFAULT_COLUMNS,\r\n })\r\n\r\n const formattedData = useMemo(() => {\r\n if (!data) return { data: [] }\r\n\r\n return {\r\n ...data,\r\n data: (data.data || []).map((row, index) => ({ ...row, key: `${index + 1}` })),\r\n }\r\n }, [data])\r\n\r\n useEffect(() => {\r\n let _isHasInvalid = false\r\n\r\n // Check if data has invalid counting\r\n formattedData.data.forEach((item) => {\r\n if (!item.valid) _isHasInvalid = true\r\n })\r\n\r\n if (_isHasInvalid) {\r\n setIsHasInvalid(_isHasInvalid)\r\n // setEnabledRN(true)\r\n }\r\n }, [formattedData])\r\n\r\n const parseParamsToUri = useCallback(\r\n (newParams) => {\r\n const mergedParams = { ...params, ...newParams }\r\n if (!_.isEmpty(selectedTags)) {\r\n mergedParams.tags = Array.isArray(selectedTags) ? JSON.stringify(selectedTags) : null\r\n } else {\r\n mergedParams.tags = null\r\n }\r\n\r\n if (_.has(newParams, 'tags') && _.isEmpty(newParams.tags)) {\r\n mergedParams.tags = null\r\n }\r\n\r\n if (mergedParams.page === 1) mergedParams.page = null\r\n\r\n if (mergedParams.per_page === 10) mergedParams.per_page = null\r\n\r\n if (!_.isEmpty(mergedParams.trans_type_ids)) {\r\n mergedParams.trans_type_ids = JSON.stringify(mergedParams.trans_type_ids)\r\n }\r\n\r\n const newObject = {}\r\n Object.keys(mergedParams).forEach((key) => {\r\n newObject[`${prefixQuery}_${key}`] = mergedParams[key]\r\n })\r\n\r\n const otherQuery = {}\r\n if (!_.isEmpty(location.query)) {\r\n Object.keys(location.query).forEach((key) => {\r\n if (!_.includes(key, `${prefixQuery}_`)) {\r\n if (_.includes(key, 'page')) {\r\n otherQuery[key] = parseInt(location.query[key], 10)\r\n } else if (\r\n (_.includes(key, 'tags') || _.includes(key, 'trans_type_ids')) &&\r\n !_.isEmpty(location.query[key])\r\n ) {\r\n otherQuery[key] = decodeURIComponent(location.query[key])\r\n } else otherQuery[key] = location.query[key]\r\n }\r\n })\r\n }\r\n\r\n const payload = cleanBlankValue(newObject)\r\n const stockMovementQuery = !_.isEmpty(payload)\r\n ? stringify(payload, { arrayFormat: 'bracket' })\r\n : ''\r\n const joinQuery = !_.isEmpty(otherQuery)\r\n ? stringify(otherQuery, { arrayFormat: 'bracket' })\r\n : ''\r\n let query = ''\r\n if (!_.isEmpty(stockMovementQuery) || !_.isEmpty(joinQuery)) {\r\n query = '?'\r\n if (!_.isEmpty(stockMovementQuery)) {\r\n query = `${query}${stockMovementQuery}`\r\n }\r\n if (!_.isEmpty(joinQuery)) {\r\n query = `${query}&${joinQuery}`\r\n }\r\n }\r\n dispatch(replace(`${location.pathname}${query}`))\r\n },\r\n [dispatch, location.pathname, location.query, params, selectedTags],\r\n )\r\n\r\n const parseColumns = useMemo(() => {\r\n const columnsArray = showColumns.split(',')\r\n const columnChanges = {\r\n price: 'hpp',\r\n qty: 'quantity',\r\n }\r\n\r\n const updatedColumnsArray = columnsArray.map((columnName) => {\r\n if (columnChanges[columnName]) {\r\n return columnChanges[columnName]\r\n }\r\n return columnName\r\n })\r\n\r\n const newShowColumns = updatedColumnsArray.join(',')\r\n const columns = []\r\n\r\n if (newShowColumns.includes('trans_date')) {\r\n columns.push({\r\n title: intl.formatMessage({ id: 'financeProduct.date' }),\r\n dataIndex: 'trans_date',\r\n key: 'trans_date',\r\n render: (text) => formatDate(text),\r\n sorter: true,\r\n })\r\n }\r\n\r\n if (newShowColumns.includes('trans_type')) {\r\n columns.push({\r\n title: intl.formatMessage({ id: 'financeProduct.transaction' }),\r\n dataIndex: 'trans_type',\r\n key: 'trans_type',\r\n width: '10%',\r\n render: (text, row) => {\r\n if (isPrint) return text\r\n\r\n return (\r\n \r\n )\r\n },\r\n })\r\n }\r\n\r\n if (newShowColumns.includes('desc')) {\r\n columns.push({\r\n title: intl.formatMessage({ id: 'financeProduct.description' }),\r\n dataIndex: 'desc',\r\n key: 'desc',\r\n width: '15%',\r\n render: (text, row) => {\r\n if (isPrint) return text\r\n\r\n return (\r\n \r\n )\r\n },\r\n })\r\n }\r\n\r\n if (newShowColumns.includes('reference')) {\r\n columns.push({\r\n title: term.reference,\r\n dataIndex: 'reference',\r\n key: 'reference',\r\n })\r\n }\r\n\r\n if (permissions.product_show_hpp) {\r\n if (newShowColumns.includes('hpp')) {\r\n columns.push({\r\n title: intl.formatMessage({ id: 'financeProduct.price' }),\r\n dataIndex: 'price',\r\n key: 'price',\r\n render: (text) => currency(text, false, true),\r\n className: 'text-right',\r\n })\r\n }\r\n\r\n if (newShowColumns.includes('avg_price')) {\r\n columns.push({\r\n title: intl.formatMessage({ id: 'financeProduct.avg_base_price' }),\r\n dataIndex: 'avg_price',\r\n key: 'avg_price',\r\n render: (text, row) => {\r\n if (!row.valid) return \r\n return currency(text, false, true)\r\n },\r\n className: 'text-right',\r\n })\r\n }\r\n }\r\n\r\n if (newShowColumns.includes('qty_movement')) {\r\n columns.push({\r\n title: intl.formatMessage({ id: 'financeProduct.stock_movement' }),\r\n dataIndex: 'qty_movement',\r\n key: 'qty_movement',\r\n className: 'text-right',\r\n render: (text) => {\r\n const formatText = qtyToCurrency(text)\r\n if (text < 0) {\r\n return {formatText}\r\n }\r\n\r\n if (text === 0) {\r\n return {formatText}\r\n }\r\n\r\n return {`+${formatText}`}\r\n },\r\n })\r\n }\r\n\r\n if (newShowColumns.includes('quantity')) {\r\n columns.push({\r\n title: intl.formatMessage({ id: 'financeProduct.stock' }),\r\n dataIndex: 'qty',\r\n key: 'qty',\r\n className: 'text-right',\r\n width: '15%',\r\n render: (text) => `${qtyToCurrency(text)} ${unit?.name}`,\r\n })\r\n }\r\n\r\n return columns\r\n }, [intl, isPrint, permissions.product_show_hpp, term, unit.name, showColumns])\r\n\r\n const showExportHandler = useCallback(() => {\r\n setShowExport(true)\r\n }, [])\r\n\r\n const hideExportHandler = useCallback(() => {\r\n setShowExport(false)\r\n }, [])\r\n\r\n const exportStockMovementHandler = useCallback(\r\n (e, payload) => {\r\n e.preventDefault()\r\n exportFinanceProductStockMovements(id, {\r\n ...params,\r\n ...payload,\r\n per_page: 1000,\r\n })\r\n .then((response) => {\r\n const downloadLink = document.createElement('a')\r\n const blob = new Blob([response.data], { type: response.headers['content-type'] })\r\n downloadLink.href = URL.createObjectURL(blob)\r\n\r\n const filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/\r\n const matches = filenameRegex.exec(response.headers['content-disposition'])\r\n if (matches?.[1]) {\r\n downloadLink.download = matches[1].replace(/['\"]/g, '')\r\n }\r\n downloadLink.click()\r\n })\r\n .catch(() => {\r\n message.error(intl.formatMessage({ id: 'financeProduct.error_cannot_export' }))\r\n })\r\n },\r\n [id, intl, params],\r\n )\r\n\r\n const renderExportRow = useCallback(() => {\r\n const rows = []\r\n const total = data?.total || 0\r\n\r\n let length = total\r\n for (let i = 0; length > 0; i += 1) {\r\n length -= 1000\r\n\r\n const lastRow = length <= 0 ? total : (i + 1) * 1000\r\n const rowCount = `${i * 1000 + 1} - ${lastRow}`\r\n rows.push(\r\n \r\n {`${intl.formatMessage({ id: 'financeProduct.row' })} ${rowCount}`}\r\n \r\n exportStockMovementHandler(e, { export: 'xls', page: `${i + 1}` })}\r\n >\r\n Download xls\r\n \r\n \r\n \r\n exportStockMovementHandler(e, { export: 'csv', page: `${i + 1}` })}\r\n >\r\n Download csv\r\n \r\n \r\n ,\r\n )\r\n }\r\n\r\n return rows\r\n }, [data, exportStockMovementHandler, intl])\r\n\r\n const isDirtyFilter = useMemo(() => {\r\n const currentParams = {\r\n tags: params.tags,\r\n date_from: params.date_from,\r\n date_to: params.date_to,\r\n trans_type_ids: params.trans_type_ids,\r\n }\r\n return !_.isEqual(filterParams, currentParams)\r\n }, [params])\r\n\r\n const paramsChangeHandler = useCallback(\r\n (newParams) => {\r\n updateParams({\r\n tableName: TABLE_NAME,\r\n params: {\r\n ...params,\r\n ...newParams,\r\n },\r\n })\r\n parseParamsToUri(newParams)\r\n },\r\n [params, parseParamsToUri, updateParams],\r\n )\r\n\r\n const filterVisibleChangeHandler = useCallback(\r\n (visible) => {\r\n if (!visible) {\r\n const form = filterFormRef.current\r\n form.validateFields().then((values) => {\r\n const newParams = {\r\n tags: values.tags || [],\r\n date_from: !_.isEmpty(values.date) ? values.date[0].format(dbFormat) : null,\r\n date_to: !_.isEmpty(values.date) ? values.date[1].format(dbFormat) : null,\r\n trans_type_ids: values.trans_type_ids || [],\r\n }\r\n\r\n const oldParams = {\r\n tags: params.tags,\r\n date_from: params.date_from,\r\n date_to: params.date_to,\r\n trans_type_ids: params.trans_type_ids,\r\n }\r\n\r\n if (!_.isEqual(oldParams, newParams)) {\r\n paramsChangeHandler({ page: 1, ...newParams })\r\n }\r\n })\r\n }\r\n },\r\n [params.date_from, params.date_to, params.tags, params.trans_type_ids, paramsChangeHandler],\r\n )\r\n\r\n const pageChangeHandler = useCallback(\r\n (page, pageSize) => {\r\n paramsChangeHandler({ page, per_page: pageSize })\r\n },\r\n [paramsChangeHandler],\r\n )\r\n\r\n const pageSizeChangeHandler = useCallback(\r\n (page, size) => {\r\n paramsChangeHandler({ per_page: size })\r\n },\r\n [paramsChangeHandler],\r\n )\r\n\r\n const tableChangeHandler = useCallback(\r\n (pagination, filters, sorter) => {\r\n let orderBy = ''\r\n if (sorter.order === 'ascend') {\r\n orderBy = 'asc'\r\n } else if (sorter.order === 'descend') {\r\n orderBy = 'desc'\r\n }\r\n paramsChangeHandler({ order_by: orderBy, sort_by: sorter.columnKey || '' })\r\n },\r\n [paramsChangeHandler],\r\n )\r\n\r\n const clearFilterHandler = useCallback(() => {\r\n if (!_.isEmpty(selectedTags)) {\r\n setSelectedTags([])\r\n }\r\n paramsChangeHandler(filterParams)\r\n\r\n if (filterFormRef.current) {\r\n filterFormRef.current.setFieldsValue({ tags: [], date: undefined, trans_type_ids: [] })\r\n }\r\n }, [paramsChangeHandler, selectedTags])\r\n\r\n const selectTagHandler = useCallback((value, options, selected) => {\r\n setSelectedTags((prevState) => {\r\n return [...prevState, selected]\r\n })\r\n }, [])\r\n\r\n const deselectTagHandler = useCallback((value) => {\r\n setSelectedTags((prevState) => {\r\n const newFilterdTags = prevState.filter((row) => row.id !== value)\r\n return [...newFilterdTags]\r\n })\r\n }, [])\r\n\r\n const clearTagHandler = useCallback(() => {\r\n setSelectedTags([])\r\n }, [])\r\n\r\n const renderFilter = useMemo(() => {\r\n const _currentParams = {\r\n date_from: params.date_from,\r\n date_to: params.date_to,\r\n tags: params.tags,\r\n trans_type_ids: params.trans_type_ids,\r\n }\r\n return (\r\n \r\n )\r\n }, [\r\n getTransType,\r\n clearTagHandler,\r\n deselectTagHandler,\r\n params.date_from,\r\n params.date_to,\r\n params.tags,\r\n params.trans_type_ids,\r\n selectTagHandler,\r\n selectedTags,\r\n ])\r\n\r\n const onChangeShowColumns = useCallback(\r\n async (payload) => {\r\n if (showColumns !== payload) {\r\n await editOption(\r\n {\r\n show_columns_stock_movements: payload,\r\n },\r\n intl.formatMessage({ id: 'financeProduct.change_column_display' }),\r\n intl.formatMessage({ id: 'financeProduct.column_display_changed_successfully' }),\r\n )\r\n }\r\n },\r\n [editOption, intl, showColumns],\r\n )\r\n\r\n const renderShowColumns = () => {\r\n const columns = [\r\n { label: intl.formatMessage({ id: 'financeProduct.date' }), name: 'trans_date' },\r\n { label: intl.formatMessage({ id: 'financeProduct.transaction' }), name: 'trans_type' },\r\n { label: intl.formatMessage({ id: 'financeProduct.description' }), name: 'desc' },\r\n { label: term.reference, name: 'reference' },\r\n { label: intl.formatMessage({ id: 'financeProduct.price' }), name: 'price' },\r\n { label: intl.formatMessage({ id: 'financeProduct.avg_base_price' }), name: 'avg_price' },\r\n { label: intl.formatMessage({ id: 'financeProduct.stock_movement' }), name: 'qty_movement' },\r\n { label: intl.formatMessage({ id: 'financeProduct.stock' }), name: 'qty' },\r\n ]\r\n\r\n const initialValues = {}\r\n const defaultColumns = showColumns || DEFAULT_COLUMNS\r\n const _showColumns = defaultColumns ? showColumns.split(',') : []\r\n _showColumns.forEach((column) => {\r\n initialValues[column] = true\r\n })\r\n\r\n return (\r\n
\r\n {intl.formatMessage({ id: 'table.show_data' })}\r\n {columns.map((col) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {col.label}\r\n \r\n )\r\n })}\r\n
\r\n )\r\n }\r\n\r\n const showColumnsVisibleChangeHandler = (visible) => {\r\n if (!visible) {\r\n const form = showColumnFormRef.current\r\n form\r\n .validateFields()\r\n .then((values) => {\r\n const newCol = ['id']\r\n Object.keys(values).forEach((val) => {\r\n if (values[val]) {\r\n newCol.push(val)\r\n }\r\n })\r\n if (newCol.length === 1) {\r\n message.warning(intl.formatMessage({ id: 'table.min_one_column' }))\r\n form.resetFields()\r\n return\r\n }\r\n if (onChangeShowColumns) {\r\n onChangeShowColumns(newCol.join(','))\r\n }\r\n })\r\n .catch((info) => {\r\n if (info.errorFields) {\r\n form.scrollToField(info.errorFields[0].name)\r\n }\r\n })\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n 7 && isDesktopView ? { x: 1200 } : undefined}\r\n mobileTableByPassEmptyValue\r\n />\r\n {showExport && (\r\n ]}\r\n destroyOnClose\r\n >\r\n \r\n {renderExportRow()}\r\n
\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n showColumns: state.options.options.show_columns_stock_movements,\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n push: (path) => dispatch(push(path)),\r\n editOption: (payload, loadingMessage, successMessage) =>\r\n dispatch(editOptions(payload, loadingMessage, successMessage)),\r\n }\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(injectIntl(memo(injectIntl(StockMovements))))\r\n","import { store } from 'index'\r\n\r\nconst flowMenus = [\r\n { menuName: 'deliveries', optionName: 'invoice_delivery' },\r\n { menuName: 'orders', optionName: 'invoice_order' },\r\n { menuName: 'quotes', optionName: 'invoice_quote' },\r\n { menuName: 'purchase_deliveries', optionName: 'purchase_delivery' },\r\n { menuName: 'purchase_orders', optionName: 'purchase_order' },\r\n { menuName: 'purchase_quotes', optionName: 'purchase_quote' },\r\n]\r\nexport const checkAlurFlow = (name) => {\r\n const { options } = store.getState().options\r\n const findMenu = flowMenus.find((menu) => menu.menuName === name)\r\n let isShow = true\r\n if (findMenu) {\r\n isShow = false\r\n if (options && options[findMenu.optionName]) {\r\n if (options[findMenu.optionName]) {\r\n isShow = true\r\n }\r\n }\r\n }\r\n\r\n return isShow\r\n}\r\n","import axios from 'axios'\r\n\r\n// export const checkApp = (app) => {\r\n// return axios.get(`/app/connects/check/${app}`)\r\n// }\r\n\r\nexport const appConnect = (app) => {\r\n return axios.post(`/app/connects/${app}`)\r\n}\r\n","import * as api from 'utils/apis/financeTax'\r\nimport * as actionTypes from 'redux/actionTypes'\r\n\r\nexport const setFinanceTaxes = (payload) => {\r\n return {\r\n type: actionTypes.SET_FINANCE_TAXES,\r\n payload,\r\n }\r\n}\r\n\r\nexport const addFinanceTaxRedux = (payload) => {\r\n return {\r\n type: actionTypes.ADD_FINANCE_TAX,\r\n payload,\r\n }\r\n}\r\n\r\nexport const editFinanceTaxRedux = (payload) => {\r\n return {\r\n type: actionTypes.EDIT_FINANCE_TAX,\r\n payload,\r\n }\r\n}\r\n\r\nexport const addFinanceTax = (payload) => {\r\n return (dispatch) => {\r\n return api.addFinanceTax(payload).then((response) => {\r\n // prevent user delete when data still fetch and check if data is_editable aka is_deletable\r\n response.data.data.is_editable = false\r\n dispatch(addFinanceTaxRedux(response.data.data))\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const editFinanceTax = (payload) => {\r\n return (dispatch) => {\r\n return api.editFinanceTax(payload).then((response) => {\r\n // prevent user delete when data still fetch and check if data is_editable aka is_deletable\r\n response.data.data.is_editable = false\r\n dispatch(editFinanceTaxRedux(response.data.data))\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const moveFinanceTaxRedux = (payload) => {\r\n return {\r\n type: actionTypes.MOVE_FINANCE_TAX,\r\n payload,\r\n }\r\n}\r\n\r\nexport const moveFinanceTax = (payload) => {\r\n return (dispatch) => {\r\n dispatch(moveFinanceTaxRedux(payload))\r\n\r\n return api\r\n .moveFinanceTax(payload.srcId, payload.destId)\r\n .then((response) => {\r\n return response\r\n })\r\n .catch(() => {\r\n dispatch(\r\n moveFinanceTaxRedux({\r\n dragIndex: payload.hoverIndex,\r\n hoverIndex: payload.dragIndex,\r\n srcId: payload.destId,\r\n destId: payload.srcId,\r\n }),\r\n )\r\n })\r\n }\r\n}\r\n\r\nexport const changeStatusFinanceTaxRedux = (payload) => {\r\n return {\r\n type: actionTypes.CHANGE_STATUS_FINANCE_TAX,\r\n payload,\r\n }\r\n}\r\n\r\nexport const changeStatusFinanceTax = (payload) => {\r\n return (dispatch) => {\r\n dispatch(changeStatusFinanceTaxRedux(payload))\r\n\r\n if (payload.checked) {\r\n return api.activateFinanceTax(payload.id)\r\n }\r\n\r\n return api.deactivateFinanceTax(payload.id)\r\n }\r\n}\r\n\r\nexport const filterFinanceTax = (payload) => {\r\n return {\r\n type: actionTypes.FILTER_FINANCE_TAX,\r\n payload,\r\n }\r\n}\r\n\r\nexport const deleteFinanceTaxRedux = (payload) => {\r\n return {\r\n type: actionTypes.DELETE_FINANCE_TAX,\r\n payload,\r\n }\r\n}\r\n\r\nexport const deleteFinanceTax = (payload) => {\r\n return (dispatch) => {\r\n return api.deleteFinanceTax(payload.id).then((response) => {\r\n dispatch(deleteFinanceTaxRedux(payload))\r\n return response\r\n })\r\n }\r\n}\r\n","import * as actionTypes from 'redux/actionTypes'\r\n\r\nexport const setDefaultMessage = (payload) => (dispatch) => {\r\n dispatch({\r\n type: actionTypes.SET_DEFAULT_MESSAGE,\r\n payload,\r\n })\r\n}\r\n\r\nexport const editDefaultMessage = (payload) => (dispatch) => {\r\n dispatch({\r\n type: actionTypes.EDIT_DEFAULT_MESSAGE,\r\n payload,\r\n })\r\n}\r\n","import * as api from 'utils/apis/multiCurrency'\r\nimport * as actionTypes from '../actionTypes'\r\nimport { editOptionsRedux } from '../options/actions'\r\n\r\nexport const setCurrencies = (payload) => {\r\n return {\r\n type: actionTypes.SET_CURRENCIES,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setMultiCurrenciesRedux = (payload) => {\r\n return {\r\n type: actionTypes.SET_MULTI_CURRENCIES,\r\n payload,\r\n }\r\n}\r\n\r\nexport const getTenantCurrencies = (payload) => {\r\n return (dispatch) => {\r\n return api.getTenantCurrencies(payload).then((response) => {\r\n if (response.data.success) {\r\n dispatch(setMultiCurrenciesRedux(response.data.data))\r\n const currencies = response.data.data?.multi_currencies?.map((row) => ({\r\n code: row.currency?.code,\r\n name: row.currency?.name,\r\n id: row.currency?.id,\r\n symbol: row.currency?.symbol,\r\n }))\r\n dispatch(setCurrencies(currencies))\r\n }\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const addTenantCurrencyRedux = (payload) => {\r\n return {\r\n type: actionTypes.ADD_CURRENCY,\r\n payload,\r\n }\r\n}\r\n\r\nexport const editTenantCurrencyRedux = (payload) => {\r\n return {\r\n type: actionTypes.EDIT_CURRENCY,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setBaseCurrencyRedux = (payload) => {\r\n return {\r\n type: actionTypes.SET_BASE_CURRENCY,\r\n payload,\r\n }\r\n}\r\n\r\nexport const activatedCurrencyRedux = () => {\r\n return {\r\n type: actionTypes.ACTIVATED_CURRENCY,\r\n }\r\n}\r\n\r\nexport const deactivatedCurrencyRedux = () => {\r\n return {\r\n type: actionTypes.DEACTIVATED_CURRENCY,\r\n }\r\n}\r\n\r\nexport const activatedTenantCurrency = (payload) => {\r\n return (dispatch, getState) => {\r\n return api.activateTenantCurrency(payload).then((response) => {\r\n // dispatch(activatedCurrencyRedux(response.data.data))\r\n if (response.data.success) {\r\n const state = getState()\r\n // Cari currencynya dulu\r\n const currency = state.options?.options?.currency\r\n const findCurrency = currency.find((item) => item.id === payload.base_currency)\r\n if (findCurrency) {\r\n dispatch(\r\n editOptionsRedux({\r\n multi_currency: 1,\r\n property_currency: findCurrency.code,\r\n property_currency_symbol: findCurrency.symbol,\r\n }),\r\n )\r\n }\r\n }\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const deactivatedTenantCurrency = () => {\r\n return (dispatch) => {\r\n return api.deactivateTenantCurrency().then((response) => {\r\n dispatch(deactivatedCurrencyRedux(response.data.data))\r\n dispatch(\r\n editOptionsRedux({\r\n multi_currency: 0,\r\n }),\r\n )\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const addTenantCurrency = (payload) => {\r\n return (dispatch) => {\r\n return api.addTenantCurrency(payload).then((response) => {\r\n if (response.data.success) {\r\n dispatch(addTenantCurrencyRedux(response.data.data))\r\n }\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const editTenantCurrency = (id, payload) => {\r\n return (dispatch) => {\r\n return api.editTenantCurrencySource(id, payload).then((response) => {\r\n if (response.data.success) {\r\n dispatch(editTenantCurrencyRedux(response.data.data))\r\n }\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const setBaseCurrency = (payload) => {\r\n return (dispatch, getState) => {\r\n return api.editBaseCurrency(payload).then((response) => {\r\n if (response.data.success) {\r\n const state = getState()\r\n // Cari currencynya dulu\r\n const currency = state.options?.options?.currency\r\n const findCurrency = currency.find((item) => item.id === payload.base_currency_id)\r\n const param = {\r\n currency: findCurrency || {},\r\n ...response.data.data,\r\n is_deletable: 0,\r\n }\r\n dispatch(setBaseCurrencyRedux(param))\r\n }\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const deleteTenantCurrencyRedux = (payload) => {\r\n return {\r\n type: actionTypes.DELETE_CURRENCY,\r\n payload,\r\n }\r\n}\r\n\r\nexport const deleteTenantCurrency = (payload) => {\r\n return (dispatch) => {\r\n return api.deleteTenantCurrency(payload.id).then((response) => {\r\n dispatch(deleteTenantCurrencyRedux(payload))\r\n return response\r\n })\r\n }\r\n}\r\n","import * as actionTypes from 'redux/actionTypes'\r\n\r\nexport const setMaxCompanies = (payload) => {\r\n return {\r\n type: actionTypes.SET_MAX_COMPANIES,\r\n payload,\r\n }\r\n}\r\n","import { message } from 'antd'\r\nimport { push } from 'connected-react-router'\r\nimport localStore from 'store'\r\nimport _ from 'lodash'\r\n\r\nimport { getInits, getInitsPublic } from 'utils/apis'\r\nimport { removeToken } from 'utils/cookies'\r\nimport * as actionTypes from 'redux/actionTypes'\r\n// import {posStore} from '../posSettings/actions';\r\nimport { setFinance, setPaymentConnectProviders } from 'redux/finance/actions'\r\nimport { setBroadcast } from 'redux/broadcast/actions'\r\nimport { changeSetting } from 'redux/settings/actions'\r\nimport { setTutorials } from 'redux/tutorials/actions'\r\nimport { initialState as initialStateUser } from 'redux/user/reducers'\r\nimport { setSelectedEndpoint } from 'redux/companies/actions'\r\nimport { hideLoginForm } from 'redux/user/actions'\r\nimport { setDefaultMessage } from 'redux/defaultMessage/actions'\r\nimport { setCustomColumns } from 'redux/customColumn/actions'\r\nimport { setCurrencies } from 'redux/currencies/actions'\r\nimport { setOutlets } from 'redux/outlets/actions'\r\nimport { setMaxCompanies } from 'redux/maxCompanies/actions'\r\nimport { allowedLocales } from 'utils/static'\r\n\r\nexport const startLoading = () => {\r\n return {\r\n type: actionTypes.START_LOADING,\r\n }\r\n}\r\n\r\nexport const stopLoading = () => {\r\n return {\r\n type: actionTypes.STOP_LOADING,\r\n }\r\n}\r\n\r\nexport const startInit = () => {\r\n return {\r\n type: actionTypes.START_INIT,\r\n }\r\n}\r\n\r\nexport const stopInit = () => {\r\n return {\r\n type: actionTypes.STOP_INIT,\r\n }\r\n}\r\n\r\nexport const setLoadedInit = (payload = true) => {\r\n return {\r\n type: actionTypes.SET_LOADED_INIT,\r\n payload,\r\n }\r\n}\r\n\r\nexport const increaseAttemp = () => {\r\n return {\r\n type: actionTypes.INCREASE_ATTEMP,\r\n }\r\n}\r\n\r\nexport const resetAttemp = () => {\r\n return {\r\n type: actionTypes.RESET_ATTEMP,\r\n }\r\n}\r\n\r\nexport const setRefs = (payload) => {\r\n return {\r\n type: actionTypes.SET_REFS,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setPayments = (payload) => {\r\n return {\r\n type: actionTypes.SET_PAYMENTS,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setUser = (payload) => {\r\n return {\r\n type: actionTypes.SET_USER,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setMenu = (payload) => {\r\n return {\r\n type: actionTypes.SET_MENU,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setOptions = (payload) => {\r\n return {\r\n type: actionTypes.SET_OPTIONS,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setBilling = (payload) => {\r\n return {\r\n type: actionTypes.SET_BILLING,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setBillingPos = (payload) => {\r\n return {\r\n type: actionTypes.SET_BILLING_POS,\r\n payload,\r\n }\r\n}\r\n\r\nexport const clearBillingPos = (payload) => {\r\n return {\r\n type: actionTypes.CLEAR_BILLING_POS,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setOnboardingChecklist = (payload) => {\r\n return {\r\n type: actionTypes.SET_ONBOARDING_CHECKLIST,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setCompanies = (payload) => {\r\n return {\r\n type: actionTypes.SET_COMPANIES,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setTranslation = (payload) => {\r\n return {\r\n type: actionTypes.SET_TRANSLATION,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setNPS = (payload) => {\r\n return {\r\n type: actionTypes.SET_NPS,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setReviews = (payload) => {\r\n return {\r\n type: actionTypes.SET_REVIEWS,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setAnnouncement = (payload) => {\r\n return {\r\n type: actionTypes.SET_ANNOUNCEMENT,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setSalutations = (payload) => {\r\n return {\r\n type: actionTypes.SET_SALUTATIONS,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setReasons = (payload) => {\r\n return {\r\n type: actionTypes.SET_REASONS,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setHris = (payload) => {\r\n return {\r\n type: actionTypes.SET_SHOW_HR_ADDON,\r\n payload,\r\n }\r\n}\r\n\r\nexport const setInits = (data) => {\r\n return (dispatch, getState) => {\r\n if (data.user) {\r\n dispatch(setUser(data))\r\n }\r\n if (!_.isEmpty(data.companies)) {\r\n dispatch(\r\n changeSetting({\r\n setting: 'locale',\r\n value: data.user.lang,\r\n }),\r\n )\r\n dispatch(setMenu(data.user.menus))\r\n dispatch(\r\n setCompanies({\r\n companies: data.companies,\r\n website_id: data.website_id,\r\n endpoint: data.endpoint,\r\n }),\r\n )\r\n\r\n // Jika belum ada endpoint disetkan dari init\r\n if (\r\n data.endpoint &&\r\n data.endpoint !== localStore.get('app.endpoint') &&\r\n !localStore.get('app.endpoint')\r\n ) {\r\n if (getState()?.router?.location?.pathname !== '/user/select-company') {\r\n dispatch(setSelectedEndpoint(data.endpoint))\r\n }\r\n }\r\n if (typeof data.show_nps !== 'undefined') {\r\n dispatch(setNPS(data.show_nps))\r\n }\r\n\r\n if (typeof data.show_hr_addon !== 'undefined') {\r\n dispatch(setHris(data.show_hr_addon))\r\n }\r\n if (data.tutorials) {\r\n dispatch(setTutorials(data.tutorials))\r\n }\r\n if (data.message_default) {\r\n dispatch(setDefaultMessage(data.message_default))\r\n }\r\n if (data.translation) dispatch(setTranslation(data.translation))\r\n if (data.lang) dispatch(setRefs(data))\r\n if (data.payments) dispatch(setPayments(data))\r\n if (data.options) dispatch(setOptions(data))\r\n if (data.finance) dispatch(setFinance(data.finance, data.translation))\r\n if (data.billing) dispatch(setBilling(data.billing))\r\n if (data.billing_pos) dispatch(setBillingPos(data.billing_pos))\r\n if (data.onboarding_checklist) dispatch(setOnboardingChecklist(data.onboarding_checklist))\r\n if (data.broadcast) {\r\n dispatch(setBroadcast(data.broadcast))\r\n }\r\n if (data.custom_columns) {\r\n dispatch(\r\n setCustomColumns({\r\n custom_column_types: data.custom_column_types,\r\n custom_columns: data.custom_columns,\r\n custom_column_items: data.custom_column_items,\r\n }),\r\n )\r\n }\r\n if (data.currencies) {\r\n dispatch(setCurrencies(data.currencies))\r\n }\r\n if (data.announcement) {\r\n dispatch(setAnnouncement(data.announcement))\r\n }\r\n if (data.max_companies) {\r\n dispatch(setMaxCompanies(data.max_companies))\r\n }\r\n if (data.salutations) {\r\n dispatch(setSalutations(data.salutations))\r\n }\r\n if (data.reasons) {\r\n dispatch(setReasons(data.reasons))\r\n }\r\n if (data.outlets) {\r\n dispatch(setOutlets(data.outlets))\r\n }\r\n }\r\n\r\n dispatch(setLoadedInit())\r\n }\r\n}\r\n\r\nexport const inits = ({ callback } = {}) => {\r\n return async (dispatch, getState) => {\r\n const state = getState()\r\n await dispatch(startInit())\r\n\r\n return getInits()\r\n .then((response) => {\r\n if (response.data.success) {\r\n dispatch(setInits(response.data.data))\r\n dispatch(stopInit())\r\n if (typeof callback === 'function') callback()\r\n } else {\r\n message.error(response.data.message)\r\n dispatch(stopInit())\r\n }\r\n return true\r\n })\r\n .catch((e) => {\r\n if (e?.status !== 521) {\r\n if (e?.status !== 401) {\r\n const maxAttemp = 4\r\n if (state.inits.attemp === maxAttemp) {\r\n dispatch(push('/server-error'))\r\n } else {\r\n dispatch(increaseAttemp())\r\n }\r\n } else {\r\n removeToken()\r\n dispatch(resetInits())\r\n dispatch(push('/user/login'))\r\n dispatch(hideLoginForm())\r\n }\r\n }\r\n\r\n return false\r\n })\r\n .finally(() => {\r\n dispatch(stopInit())\r\n })\r\n }\r\n}\r\n\r\nexport const initsPublic = () => {\r\n return (dispatch) => {\r\n dispatch(startInit())\r\n\r\n return getInitsPublic()\r\n .then((response) => {\r\n if (response.data.success) {\r\n const { data } = response.data\r\n dispatch(setReviews(data.quotes))\r\n\r\n const locale = localStore.get('app.settings.locale')\r\n\r\n if (!allowedLocales.includes(locale)) {\r\n dispatch(\r\n changeSetting({\r\n setting: 'locale',\r\n value: data.options.property_language || 'id-ID',\r\n }),\r\n )\r\n }\r\n\r\n dispatch(setOptions(data))\r\n dispatch(stopInit())\r\n } else {\r\n message.error(response.data.message)\r\n dispatch(stopInit())\r\n }\r\n return true\r\n })\r\n .catch(() => {\r\n dispatch(stopInit())\r\n return false\r\n })\r\n }\r\n}\r\n\r\n// Reset redux ketika logout\r\nexport const resetInits = () => {\r\n return (dispatch) => {\r\n dispatch(setUser({ user: initialStateUser }))\r\n dispatch(setMenu({ dashboard: [], settings: [] }))\r\n dispatch(\r\n setCompanies({\r\n companies: [],\r\n website_id: null,\r\n endpoint: null,\r\n }),\r\n )\r\n dispatch(setSelectedEndpoint(null))\r\n dispatch(setNPS(0))\r\n dispatch(setHris(0))\r\n dispatch(setRefs({ lang: [] }))\r\n dispatch(clearBillingPos())\r\n dispatch(setPayments({ payments: [] }))\r\n dispatch(setMaxCompanies(0))\r\n dispatch(\r\n setCustomColumns({\r\n custom_column_types: [],\r\n custom_columns: [],\r\n custom_column_items: [],\r\n }),\r\n )\r\n dispatch(\r\n setFinance({\r\n accountCategories: [],\r\n bankAccounts: [],\r\n config: {},\r\n finance_approval: {},\r\n dashboard: [],\r\n expenseTerms: [],\r\n productCategories: [],\r\n product_categories_has_role: [],\r\n shippingComps: [],\r\n taxes: [],\r\n units: [],\r\n warehouses: [],\r\n }),\r\n )\r\n dispatch(setSalutations([]))\r\n dispatch(setPaymentConnectProviders([]))\r\n dispatch(setReasons([]))\r\n dispatch(setOutlets([]))\r\n }\r\n}\r\n","import * as actionTypes from 'redux/actionTypes'\r\n\r\nexport const setTutorials = (data) => {\r\n return {\r\n type: actionTypes.SET_TUTORIALS,\r\n payload: { data },\r\n }\r\n}\r\n","import { useHistory } from 'react-router-dom'\r\nimport { goBack, push, replace } from 'connected-react-router'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useCallback } from 'react'\r\n\r\n// Hook untuk handle goBack router\r\n// fallbackUrl diisi jika tidak ada history backnya\r\n// isReplace flag menandakan harus direplace routernya\r\nconst useGoBack = ({ fallBackUrl, isReplace = false }) => {\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n\r\n const goBackHandler = useCallback(() => {\r\n if (history.length < 2 && !!fallBackUrl) {\r\n if (isReplace) {\r\n dispatch(replace(fallBackUrl))\r\n } else {\r\n dispatch(push(fallBackUrl))\r\n }\r\n } else {\r\n dispatch(goBack())\r\n }\r\n }, [dispatch, fallBackUrl, history.length, isReplace])\r\n\r\n return { goBack: goBackHandler }\r\n}\r\n\r\nexport default useGoBack\r\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\r\n/* eslint-disable jsx-a11y/click-events-have-key-events */\r\nimport Icon from '@ant-design/icons'\r\nimport { Button, DatePicker, Menu, Popover, Select, Space } from 'antd'\r\nimport dayjs from 'dayjs'\r\nimport React, { useCallback, useMemo, useState } from 'react'\r\nimport _ from 'lodash'\r\n\r\nimport { formatDateText } from 'utils/formatting'\r\nimport styles from 'containers/Reports/Export/styles.module.scss'\r\nimport { getDefaultCustomDate, onNextDateChange, onPrevDateChange } from './Dropdown.service'\r\n\r\n// const MONTHLY = ['monthly', 'this_month', 'last_month']\r\n// const YEARLY = ['yearly', 'this_year', 'last_year']\r\nconst MONTHLY = ['monthly']\r\nconst YEARLY = ['yearly']\r\n// const DAILY = ['today', 'yesterday']\r\n\r\nconst isSameOrBefore = require('dayjs/plugin/isSameOrBefore')\r\n\r\ndayjs.extend(isSameOrBefore)\r\n\r\nconst ThreeDotsIcon = (props) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport const DropdownDate = ({\r\n intl,\r\n id,\r\n setDateRange,\r\n selectedKeys,\r\n data,\r\n dateType,\r\n // hideDateType,\r\n params,\r\n withCustomDaterange,\r\n withCustomDateType = true,\r\n legacy = true,\r\n forceCustomDaterange = false,\r\n placeholderDateFrom,\r\n formatPickerDateFrom,\r\n pickerTypeDateFrom,\r\n placeholderDateTo,\r\n formatPickerDateTo,\r\n pickerTypeDateTo,\r\n daterangeOnly,\r\n dateOnly,\r\n customDateTypeKey,\r\n customDateType,\r\n keepCustomDateType,\r\n}) => {\r\n // const [customDateType, setCustomDateType] = useState('daily')\r\n const [popoverVisible, setPopoverVisible] = useState(false)\r\n // const [prevDate, setPrevDate] = useState(null)\r\n // const [toDate, setToDate] = useState(null)\r\n const dateTypeKey = legacy ? 'daterange' : 'movement_compare'\r\n const initialParams = useMemo(() => {\r\n const currentInitialParams = {\r\n [dateTypeKey]: dateType,\r\n date_from: params?.date_from || null,\r\n date_to: params?.date_to || null,\r\n }\r\n\r\n if (customDateTypeKey) {\r\n currentInitialParams[customDateTypeKey] = customDateType\r\n }\r\n\r\n return currentInitialParams\r\n }, [customDateType, customDateTypeKey, dateType, dateTypeKey, params])\r\n\r\n const [innerParams, setInnerParams] = useState(initialParams)\r\n\r\n // useEffect(() => {\r\n // setCustomDateType(getCustomDateTypeFromProps({ dateType: dateType || 'daily' }))\r\n // }, [dateType])\r\n\r\n // useEffect(() => {\r\n // if (hideDateType) {\r\n // setPrevDate(\r\n // getPrevDate({\r\n // customDateType,\r\n // dateType,\r\n // hideDateType,\r\n // }),\r\n // )\r\n // setToDate(\r\n // getNextDate({\r\n // customDateType,\r\n // hideDateType,\r\n // }),\r\n // )\r\n // }\r\n // }, [customDateType, dateType, hideDateType])\r\n\r\n const customDateranges = useMemo(() => {\r\n if (withCustomDaterange) {\r\n return [\r\n {\r\n title: intl.formatMessage({ id: 'date.day' }),\r\n name: 'daily',\r\n },\r\n {\r\n title: intl.formatMessage({ id: 'date.month' }),\r\n name: 'monthly',\r\n },\r\n {\r\n title: intl.formatMessage({ id: 'date.year' }),\r\n name: 'yearly',\r\n },\r\n ]\r\n }\r\n return data\r\n }, [data, intl, withCustomDaterange])\r\n\r\n const onSetDateRange = useCallback(\r\n (payload) => {\r\n return () => {\r\n const newPayload = {\r\n id,\r\n [dateTypeKey]: payload[dateTypeKey],\r\n custom_daterange: payload.custom_daterange ? 1 : 0,\r\n }\r\n if (legacy) {\r\n newPayload.date_from = payload.custom_daterange ? payload.date_from : null\r\n newPayload.date_to = payload.custom_daterange ? payload.date_to : null\r\n } else if (!payload.custom_daterange) {\r\n const newParams = getDefaultCustomDate({\r\n daterange: payload[dateTypeKey],\r\n monthly: MONTHLY,\r\n yearly: YEARLY,\r\n dateTypeKey,\r\n })\r\n newPayload.date_from = newParams.date_from\r\n newPayload.date_to = newParams.date_to\r\n } else {\r\n if (!dateOnly) newPayload.date_from = payload.date_from\r\n newPayload.date_to = payload.date_to\r\n }\r\n if (legacy && (payload.selected_daterange || keepCustomDateType)) {\r\n newPayload.selected_daterange =\r\n payload.selected_daterange ?? (keepCustomDateType ? customDateType : null)\r\n }\r\n setDateRange(newPayload)\r\n if (!forceCustomDaterange && newPayload.custom_daterange !== 1 && innerParams.date_from) {\r\n setInnerParams((prevState) => ({\r\n ...prevState,\r\n custom_daterange: 0,\r\n date_from: null,\r\n date_to: null,\r\n }))\r\n } else {\r\n setInnerParams({\r\n ...newPayload,\r\n date_from:\r\n !dateOnly && dayjs(newPayload.date_from).isValid()\r\n ? dayjs(newPayload.date_from)\r\n : null,\r\n date_to: dayjs(newPayload.date_to).isValid() ? dayjs(newPayload.date_to) : null,\r\n })\r\n }\r\n setPopoverVisible(false)\r\n }\r\n },\r\n [\r\n dateOnly,\r\n keepCustomDateType,\r\n dateTypeKey,\r\n forceCustomDaterange,\r\n id,\r\n innerParams.date_from,\r\n legacy,\r\n setDateRange,\r\n customDateType,\r\n ],\r\n )\r\n\r\n const stopPropagation = (e) => e.stopPropagation()\r\n\r\n // const checkPrevDateDaily = useCallback(\r\n // (date = prevDate) => {\r\n // return (\r\n // Number(\r\n // dayjs\r\n // .duration(dayjs(toDate).diff(date.startOf('day')))\r\n // .asDays()\r\n // .toFixed(0),\r\n // ) > 31\r\n // )\r\n // },\r\n // [prevDate, toDate],\r\n // )\r\n\r\n // const checkPrevDateMonthly = useCallback(\r\n // (date = prevDate) => {\r\n // return (\r\n // Number(\r\n // dayjs\r\n // .duration(dayjs(toDate).diff(date.startOf('day')))\r\n // .asMonths()\r\n // .toFixed(0),\r\n // ) > 12\r\n // )\r\n // },\r\n // [prevDate, toDate],\r\n // )\r\n\r\n // const checkPrevDateYearly = useCallback(\r\n // (date = prevDate) => {\r\n // return (\r\n // Number(\r\n // dayjs\r\n // .duration(dayjs(toDate).diff(date.startOf('day')))\r\n // .asYears()\r\n // .toFixed(0),\r\n // ) > 6\r\n // )\r\n // },\r\n // [prevDate, toDate],\r\n // )\r\n\r\n const onChangeDate = useCallback(\r\n (value) => {\r\n setInnerParams((prevState) => ({\r\n ...prevState,\r\n // daterange: value,\r\n ...getDefaultCustomDate({\r\n daterange: value,\r\n monthly: MONTHLY,\r\n yearly: YEARLY,\r\n dateTypeKey: customDateTypeKey ?? dateTypeKey,\r\n }),\r\n }))\r\n },\r\n [customDateTypeKey, dateTypeKey],\r\n )\r\n\r\n const onDateFromDateChange = useCallback(\r\n (dateMoment) => {\r\n onPrevDateChange({\r\n date: dateMoment,\r\n monthly: MONTHLY,\r\n setParams: setInnerParams,\r\n params: innerParams,\r\n withCustomDaterange,\r\n yearly: YEARLY,\r\n dateTypeKey,\r\n })\r\n },\r\n [dateTypeKey, innerParams, withCustomDaterange],\r\n )\r\n\r\n const onDateToChange = useCallback(\r\n (dateMoment) => {\r\n onNextDateChange({\r\n date: dateMoment,\r\n monthly: MONTHLY,\r\n setParams: setInnerParams,\r\n params: innerParams,\r\n withCustomDaterange,\r\n yearly: YEARLY,\r\n dateTypeKey,\r\n })\r\n },\r\n [dateTypeKey, innerParams, withCustomDaterange],\r\n )\r\n\r\n const content = useMemo(() => {\r\n const getPlaceholder = () => {\r\n let placeholder = intl.formatMessage({ id: 'picker.select_date' })\r\n\r\n if (_.includes(MONTHLY, innerParams[dateTypeKey])) {\r\n placeholder = intl.formatMessage({ id: 'picker.select_month' })\r\n } else if (_.includes(YEARLY, innerParams[dateTypeKey])) {\r\n placeholder = intl.formatMessage({ id: 'picker.select_year' })\r\n }\r\n\r\n return placeholder\r\n }\r\n\r\n const placeholder = getPlaceholder()\r\n\r\n let currentFormatDatePickerFrom = formatDateText()\r\n let currentFormatDatePickerTo = formatDateText()\r\n let currentPickerTypeDateFrom\r\n let currentPickerTypeDateTo\r\n\r\n const customDateTypeValue = customDateTypeKey\r\n ? innerParams[customDateTypeKey]\r\n : innerParams[dateTypeKey]\r\n\r\n if (formatPickerDateFrom) currentFormatDatePickerFrom = formatPickerDateFrom\r\n if (formatPickerDateTo) currentFormatDatePickerTo = formatPickerDateTo\r\n if (pickerTypeDateFrom) currentPickerTypeDateFrom = pickerTypeDateFrom\r\n if (pickerTypeDateTo) currentPickerTypeDateTo = pickerTypeDateTo\r\n if (_.includes(MONTHLY, customDateTypeValue)) {\r\n currentFormatDatePickerFrom = 'MMM YYYY'\r\n currentFormatDatePickerTo = 'MMM YYYY'\r\n currentPickerTypeDateFrom = 'month'\r\n currentPickerTypeDateTo = 'month'\r\n }\r\n if (_.includes(YEARLY, customDateTypeValue)) {\r\n currentFormatDatePickerFrom = 'YYYY'\r\n currentFormatDatePickerTo = 'YYYY'\r\n currentPickerTypeDateFrom = 'year'\r\n currentPickerTypeDateTo = 'year'\r\n }\r\n\r\n if (dateOnly) {\r\n return (\r\n \r\n {withCustomDateType ? (\r\n \r\n ) : null}\r\n {\r\n if (dayjs(innerParams.date_from).isValid() && current) {\r\n if (current.isSameOrBefore(dayjs(innerParams.date_from))) {\r\n return true\r\n }\r\n }\r\n return current?.isAfter(dayjs())\r\n }}\r\n placeholder={placeholderDateTo ?? placeholder}\r\n />\r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n {withCustomDateType ? (\r\n <>\r\n \r\n {intl.formatMessage({ id: 'report.from' }).toLowerCase()}\r\n \r\n ) : null}\r\n current?.isAfter(dayjs())}\r\n placeholder={placeholderDateFrom ?? placeholder}\r\n />\r\n {intl.formatMessage({ id: 'report.until' })}\r\n {\r\n if (dayjs(innerParams.date_from).isValid() && current) {\r\n if (current.isSameOrBefore(dayjs(innerParams.date_from))) {\r\n return true\r\n }\r\n }\r\n return current?.isAfter(dayjs())\r\n }}\r\n placeholder={placeholderDateTo ?? placeholder}\r\n />\r\n \r\n )\r\n }, [\r\n customDateTypeKey,\r\n formatPickerDateFrom,\r\n formatPickerDateTo,\r\n pickerTypeDateFrom,\r\n pickerTypeDateTo,\r\n innerParams,\r\n dateTypeKey,\r\n dateOnly,\r\n withCustomDateType,\r\n onChangeDate,\r\n customDateranges,\r\n intl,\r\n onDateFromDateChange,\r\n placeholderDateFrom,\r\n onDateToChange,\r\n placeholderDateTo,\r\n ])\r\n\r\n const items = useMemo(() => {\r\n const newItems = data.map((item, idx) => {\r\n return {\r\n key: item.name || `${idx + 1}`,\r\n onClick: onSetDateRange({\r\n [dateTypeKey]: item.name,\r\n }),\r\n label: item.title,\r\n }\r\n })\r\n\r\n newItems.push({\r\n key: 'filter',\r\n label: (\r\n {\r\n if (!flag && innerParams.date_from && innerParams.date_to) {\r\n const currentParams = {\r\n id,\r\n [dateTypeKey]: withCustomDaterange && legacy ? null : innerParams[dateTypeKey],\r\n custom_daterange: 1,\r\n date_from: dayjs(innerParams.date_from).format('YYYY-MM-DD'),\r\n date_to: dayjs(innerParams.date_to).format('YYYY-MM-DD'),\r\n }\r\n if (legacy) {\r\n currentParams.selected_daterange = innerParams[customDateTypeKey ?? dateTypeKey]\r\n }\r\n\r\n onSetDateRange(currentParams)()\r\n }\r\n if (flag) {\r\n // const daterange = getCustomDateTypeFromProps({ dateType: dateType || 'daily' })\r\n let newInnerParams = {\r\n // daterange,\r\n }\r\n if (!innerParams.date_from && !innerParams.date_to) {\r\n newInnerParams = {\r\n // ...newInnerParams,\r\n ...getDefaultCustomDate({\r\n [dateTypeKey]: dateType,\r\n monthly: MONTHLY,\r\n yearly: YEARLY,\r\n }),\r\n }\r\n }\r\n\r\n setInnerParams((prevState) => ({\r\n ...prevState,\r\n ...newInnerParams,\r\n }))\r\n }\r\n }}\r\n >\r\n {/* For make a text stay like before position absolute */}\r\n \r\n Custom\r\n \r\n \r\n Custom\r\n \r\n \r\n ),\r\n style: {\r\n position: 'relative',\r\n },\r\n })\r\n\r\n return newItems\r\n }, [\r\n customDateTypeKey,\r\n content,\r\n data,\r\n dateType,\r\n dateTypeKey,\r\n id,\r\n innerParams,\r\n legacy,\r\n onSetDateRange,\r\n withCustomDaterange,\r\n ])\r\n\r\n const parseSelectedKeys = params?.custom_daterange === 1 ? ['filter'] : selectedKeys\r\n\r\n const visibleChangeHandler = useCallback(\r\n (visible) => {\r\n setPopoverVisible(visible)\r\n\r\n if (\r\n !visible &&\r\n ((daterangeOnly && innerParams.date_from && innerParams.date_to) || dateOnly)\r\n ) {\r\n const currentParams = {\r\n id,\r\n [dateTypeKey]: withCustomDaterange && legacy ? null : innerParams[dateTypeKey],\r\n custom_daterange: 1,\r\n date_from: innerParams.date_from\r\n ? dayjs(innerParams.date_from).format('YYYY-MM-DD')\r\n : null,\r\n date_to: innerParams.date_to ? dayjs(innerParams.date_to).format('YYYY-MM-DD') : null,\r\n }\r\n if (legacy) currentParams.selected_daterange = innerParams[dateTypeKey]\r\n\r\n onSetDateRange(currentParams)()\r\n }\r\n },\r\n [\r\n dateOnly,\r\n dateTypeKey,\r\n daterangeOnly,\r\n id,\r\n innerParams,\r\n legacy,\r\n onSetDateRange,\r\n withCustomDaterange,\r\n ],\r\n )\r\n\r\n const popoverContent = useMemo(() => {\r\n if (daterangeOnly) return content\r\n if (dateOnly) return content\r\n\r\n return \r\n }, [content, dateOnly, daterangeOnly, items, parseSelectedKeys])\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { message } from 'antd'\r\nimport { useMutation, useQuery } from 'react-query'\r\nimport {\r\n addBudgetReports,\r\n agedPayableDetailReports,\r\n agedPayableReports,\r\n agedReceivableDetailReports,\r\n agedReceivableReports,\r\n attachmentsReports,\r\n budgetDetailReports,\r\n budgetProfitLossDetailReports,\r\n budgetProfitLossReports,\r\n budgetReports,\r\n customerInvoiceDetailReports,\r\n customerInvoiceReports,\r\n deleteBudgetReports,\r\n editBudgetReports,\r\n equityMovementReports,\r\n expenseClaimDetailReports,\r\n expenseClaimReports,\r\n expensePerContactReports,\r\n exportsReports,\r\n financeReportingsGraphs,\r\n fixedAssetDetailReports,\r\n fixedAssetReleaseReports,\r\n fixedAssetReports,\r\n generalLedgerAccountsDetailReports,\r\n generalLedgerAccountsReports,\r\n generalLedgerReports,\r\n generalLedgerStatsReports,\r\n getProductPurchasesContacts,\r\n getProductPurchasesContactsDetails,\r\n getProductSalesContacts,\r\n getProductSalesContactsDetails,\r\n getSalesPerProductCategory,\r\n importsDetailReports,\r\n importsReports,\r\n importsTransactionsReports,\r\n incomePerCustomerDetailReports,\r\n incomePerCustomerReports,\r\n inventoryStockAdjustmentDetailReports,\r\n inventoryStockAdjustmentReports,\r\n inventoryStockMovementDetailFifoReports,\r\n inventoryStockMovementDetailReports,\r\n inventoryStockMovementFifoReports,\r\n inventoryStockMovementReports,\r\n inventorySummaryDetailFifoReports,\r\n inventorySummaryFifoReports,\r\n inventorySummaryReports,\r\n inventoryWarehouseTransferDetailReports,\r\n inventoryWarehouseTransferReports,\r\n invoicePaymentReports,\r\n orderPerProductReports,\r\n productionReports,\r\n productProfitabilityReports,\r\n profitabilityPerInvoiceGrandTotalReports,\r\n profitabilityPerInvoiceReports,\r\n profitLossReports,\r\n purchaseDeliveryReports,\r\n purchaseDetailReports,\r\n purchaseInvoicePaymentReports,\r\n purchasesPerPeriodReports,\r\n purchasesPerProductReports,\r\n purchasesPerVendorDetailReports,\r\n purchasesPerVendorReports,\r\n receivablePayableReports,\r\n salesDeliveryReports,\r\n salesDetailReports,\r\n salesPerPeriodReports,\r\n salesPerPersonDailyReports,\r\n salesPerPersonReports,\r\n salesPerProductReports,\r\n salesTaxDetailReports,\r\n salesTaxReports,\r\n shippingCostPerExpeditionDailyReports,\r\n shippingCostPerExpeditionReports,\r\n supplierInvoiceReports,\r\n warehouseStockSummaryReports,\r\n witholdingTaxReports,\r\n} from 'utils/apis'\r\n\r\nexport const useFinanceReportingsGraphs = ({ payload = {}, extraQueryKey = [], options = {} }) => {\r\n return useQuery(\r\n ['financeReportingsGraphs', payload, ...extraQueryKey],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await financeReportingsGraphs(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useGetProductSalesContactsDetails = ({ payload = {}, enabled = false }) => {\r\n return useQuery(\r\n ['getProductSalesContactDetails', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getProductSalesContactsDetails(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n keepPreviousData: true,\r\n onError: (error) => message.error(error?.data?.message || 'Failed data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport const useGetProductPurchasesContactsDetails = ({ payload = {}, enabled = false }) => {\r\n return useQuery(\r\n [`getProductPurchasesContactDetails`, payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getProductPurchasesContactsDetails(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n keepPreviousData: true,\r\n onError: (error) => message.error(error?.data?.message || 'Failed data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport const useGetProductSalesContacts = ({ payload, enabled = false }) => {\r\n return useQuery(\r\n [`getProductSalesContacts`, payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getProductSalesContacts(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n keepPreviousData: true,\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport const useSalesTaxDetailReport = (payload, options = {}) => {\r\n return useQuery(\r\n [`salesTaxDetailReports`, payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await salesTaxDetailReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useInventoryStockAdjustmentReport = ({ payload, options = {} } = {}) => {\r\n return useQuery(\r\n ['inventoryStockAdjustmentReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await inventoryStockAdjustmentReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useInventoryStockAdjustmentDetailReport = ({ payload, options = {} } = {}) => {\r\n return useQuery(\r\n ['inventoryStockAdjustmentDetailReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await inventoryStockAdjustmentDetailReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useInventoryWarehouseTransferReport = ({ payload, options = {} } = {}) => {\r\n return useQuery(\r\n ['inventoryWarehouseTransferReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await inventoryWarehouseTransferReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useInventoryWarehouseTransferDetailReport = ({ payload, options = {} } = {}) => {\r\n return useQuery(\r\n ['inventoryWarehouseTransferDetailReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await inventoryWarehouseTransferDetailReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed data from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\n// Taxes\r\n\r\nexport const useSalesTaxReport = ({ payload, options = {} }) => {\r\n return useQuery(\r\n ['salesTaxReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await salesTaxReports(payload)\r\n return data\r\n },\r\n {\r\n keepPreviousData: true,\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useWitholdingTaxReport = ({ payload, options = {} }) => {\r\n return useQuery(\r\n ['witholdingTaxReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await witholdingTaxReports(payload)\r\n return data\r\n },\r\n {\r\n keepPreviousData: true,\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\n// Expenses\r\n\r\nexport const useExpensePerContactReport = ({ payload, options = {} }) => {\r\n return useQuery(\r\n ['expensePerContactReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await expensePerContactReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useExpenseClaimReport = ({ payload, options = {} }) => {\r\n return useQuery(\r\n ['expenseClaimReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await expenseClaimReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useExpenseClaimDetailReports = ({ payload, options = {} }) => {\r\n return useQuery(\r\n ['expenseClaimDetailReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await expenseClaimDetailReports(payload.id, payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\n// Fixed Assets\r\n\r\nexport const useFixedAssetReports = ({ payload, options = {} }) => {\r\n return useQuery(\r\n ['fixedAssetReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await fixedAssetReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useFixedAssetDetailReport = ({ payload, options = {} }) => {\r\n return useQuery(\r\n ['fixedAssetDetailReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await fixedAssetDetailReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useFixedAssetReleaseReport = ({ payload, options = {} }) => {\r\n return useQuery(\r\n ['fixedAssetReleaseReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await fixedAssetReleaseReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\n// Others\r\n\r\nexport const useAttachmentsReport = ({ payload, enabled = false }) => {\r\n return useQuery(\r\n ['attachmentsReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await attachmentsReports(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport const useExportsReport = ({ payload, enabled = false }) => {\r\n return useQuery(\r\n ['exportsReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await exportsReports(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport const useImportsReport = ({ payload, enabled = false }) => {\r\n return useQuery(\r\n ['importsReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await importsReports(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport const useImportsDetailReport = ({ payload, enabled = false }) => {\r\n return useQuery(\r\n ['importsDetailReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await importsDetailReports(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport const useImportsTransactionsReport = ({ payload, enabled = false }) => {\r\n return useQuery(\r\n ['importsTransactionsReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await importsTransactionsReports(payload)\r\n return data\r\n },\r\n {\r\n enabled,\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n },\r\n )\r\n}\r\n\r\n// inventory\r\n\r\nexport const useInventorySummaryReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['inventorySummaryReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await inventorySummaryReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useInventorySummaryFifoReports = ({ payload, options }) => {\r\n return useQuery(\r\n ['inventorySummaryFifoReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await inventorySummaryFifoReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useInventorySummaryDetailFifoReports = ({ payload, options }) => {\r\n return useQuery(\r\n ['inventorySummaryDetailFifoReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await inventorySummaryDetailFifoReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useWarehouseStockSummaryReports = ({ payload, options }) => {\r\n return useQuery(\r\n ['warehouseStockSummaryReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await warehouseStockSummaryReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useProductionReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['productionReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await productionReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useInventoryStockMovementReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['inventoryStockMovementReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await inventoryStockMovementReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useInventoryStockMovementDetailReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['inventoryStockMovementDetailReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await inventoryStockMovementDetailReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useInventoryStockMovementFifoReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['inventoryStockMovementFifoReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await inventoryStockMovementFifoReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useInventoryStockMovementDetailFifoReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['inventoryStockMovementDetailFifoReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await inventoryStockMovementDetailFifoReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useBudgetReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['budgetReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await budgetReports(payload)\r\n return data\r\n },\r\n {\r\n keepPreviousData: true,\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useAddBudgetReport = (options = {}) => {\r\n return useMutation((payload) => addBudgetReports(payload), options)\r\n}\r\n\r\nexport const useBudgetDetailReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['budgetDetailReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await budgetDetailReports(payload.id, payload.payload)\r\n return data\r\n },\r\n {\r\n keepPreviousData: true,\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useEditBudgetReport = (options = {}) => {\r\n return useMutation((payload) => editBudgetReports(payload.id, payload.payload), options)\r\n}\r\n\r\nexport const useDeleteBudgetReport = (options = {}) => {\r\n return useMutation((payload) => deleteBudgetReports(payload), options)\r\n}\r\n\r\nexport const useBudgetProfitLossReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['budgetProfitLossReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await budgetProfitLossReports(payload)\r\n return data\r\n },\r\n {\r\n keepPreviousData: true,\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useBudgetProfitLossDetailReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['budgetProfitLossDetailReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await budgetProfitLossDetailReports(payload.id, payload.payload)\r\n return data\r\n },\r\n {\r\n keepPreviousData: true,\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useSalesDetailReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['salesDetailReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await salesDetailReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const usePurchaseDetailReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['purchaseDetailReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await purchaseDetailReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useAgedReceivableReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['agedReceivableReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await agedReceivableReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useAgedReceivableDetailReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['agedReceivableDetailReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await agedReceivableDetailReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useAgedPayableReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['agedPayableReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await agedPayableReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useAgedPayableDetailReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['agedPayableDetailReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await agedPayableDetailReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useCustomerInvoiceReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['customerInvoiceReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await customerInvoiceReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useCustomerInvoiceDetailReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['customerInvoiceDetailReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await customerInvoiceDetailReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useSupplierInvoiceReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['supplierInvoiceReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await supplierInvoiceReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useSalesPerProductReport = ({ payload, additionalKeys, options }) => {\r\n return useQuery(\r\n ['salesPerProductReports', payload, additionalKeys],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await salesPerProductReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useOrderPerProductReport = ({ payload, additionalKeys, options }) => {\r\n return useQuery(\r\n ['orderPerProductReports', payload, additionalKeys],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await orderPerProductReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useProductProfitabilityReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['productProfitabilityReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await productProfitabilityReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const usePurchasesPerProductReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['purchasesPerProductReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await purchasesPerProductReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useIncomePerCustomerReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['incomePerCustomerReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await incomePerCustomerReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useIncomePerCustomerDetailReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['incomePerCustomerDetailReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await incomePerCustomerDetailReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const usePurchasesPerVendorReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['purchasesPerVendorReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await purchasesPerVendorReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const usePurchasesPerVendorDetailReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['purchasesPerVendorDetailReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await purchasesPerVendorDetailReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useProfitabilityPerInvoiceReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['profitabilityPerInvoiceReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await profitabilityPerInvoiceReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useProfitabilityPerInvoiceGrandTotalReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['profitabilityPerInvoiceGrandTotalReports'],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await profitabilityPerInvoiceGrandTotalReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useSalesPerPersonReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['salesPerPersonReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await salesPerPersonReports(payload)\r\n return data\r\n },\r\n {\r\n keepPreviousData: true,\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useSalesPerPersonDailyReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['salesPerPersonDailyReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await salesPerPersonDailyReports(payload)\r\n return data\r\n },\r\n {\r\n keepPreviousData: true,\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useSalesPerPeriodReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['salesPerPeriodReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await salesPerPeriodReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const usePurchasesPerPeriodReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['purchasesPerPeriodReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await purchasesPerPeriodReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useSalesPerProductCategoryReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['getSalesPerProductCategory', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getSalesPerProductCategory(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useProductPurchasesContactsReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['getProductPurchasesContacts', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getProductPurchasesContacts(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useProductSalesContactsReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['getProductSalesContacts', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getProductSalesContacts(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useInvoicePaymentReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['invoicePaymentReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await invoicePaymentReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const usePurchaseInvoicePaymentReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['purchaseInvoicePaymentReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await purchaseInvoicePaymentReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useSalesDeliveryReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['salesDeliveryReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await salesDeliveryReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const usePurchaseDeliveryReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['purchaseDeliveryReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await purchaseDeliveryReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useShippingCostPerExpeditionReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['shippingCostPerExpeditionReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await shippingCostPerExpeditionReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useShippingCostPerExpeditionDailyReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['shippingCostPerExpeditionDailyReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await shippingCostPerExpeditionDailyReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useReceivablePayableReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['receivablePayableReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await receivablePayableReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useEquityMovementReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['equityMovementReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await equityMovementReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useProfitLossReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['profitLossReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await profitLossReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useGeneralLedgerStatsReport = ({ payload, options }) => {\r\n return useQuery(\r\n ['generalLedgerStatsReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await generalLedgerStatsReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useGeneralLedgerReport = ({ payload, options = {} }) => {\r\n return useQuery(\r\n ['generalLedgerReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await generalLedgerReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useGeneralLedgerAccountsReport = ({ payload, options = {} }) => {\r\n return useQuery(\r\n ['generalLedgerAccountsReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await generalLedgerAccountsReports(payload)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n\r\nexport const useGeneralLedgerAccountsDetailReport = ({ payload, options = {} }) => {\r\n return useQuery(\r\n ['generalLedgerAccountsDetailReports', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await generalLedgerAccountsDetailReports(payload.accountId, payload.params)\r\n return data\r\n },\r\n {\r\n onError: (error) => message.error(error?.data?.message || 'Failed from server!'),\r\n ...options,\r\n },\r\n )\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nexport const addFinanceClosing = (data) => {\r\n return axios.post('/finance/closings', data)\r\n}\r\n\r\nexport const getFinanceClosings = (params) => {\r\n return axios.get('/finance/closings', {params})\r\n}\r\n\r\nexport const getFinanceClosing = (id) => {\r\n return axios.get(`/finance/closings/${id}`)\r\n}\r\n\r\nexport const getFinanceClosingPreview = (params) => {\r\n const query = stringify(params)\r\n return axios.get(`/finance/closings/preview?${query}`)\r\n}\r\n\r\nexport const getFinanceClosingPreviewDate = () => {\r\n return axios.get(`/finance/closings/preview/startDate`)\r\n}\r\n\r\nexport const deleteFinanceClosing = (id) => {\r\n return axios.delete(`/finance/closings/${id}`)\r\n}\r\n","import axios from 'axios'\r\n\r\nimport { getOnce } from 'utils/helper'\r\n\r\nexport const getTenants = () => {\r\n return getOnce('/tenants')\r\n}\r\n\r\nexport const getTenantFieldData = () => {\r\n return axios.get('/tenants/fieldData')\r\n}\r\n\r\nexport const deleteTenant = (id) => {\r\n return axios.delete(`/tenants/${id}`)\r\n}\r\n\r\nexport const registerCompany = (data) => {\r\n return axios.post('/tenants/companies', data)\r\n}\r\n\r\nexport const checkTenant = (name) => {\r\n return axios.get(`/tenants/exist/${name}`)\r\n}\r\n\r\nexport const register = (data) => {\r\n return axios.post('/tenants/register', data)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nexport const getFinanceStockAdjustment = (id, includeStockBefore = 0, params = {}) => {\r\n const currentParams = params\r\n if (includeStockBefore === 1) currentParams.include_stock_before = 1\r\n\r\n const query = stringify(currentParams)\r\n return axios.get(`/finance/stockAdjustments/${id}?${query}`)\r\n}\r\n\r\nexport const getFinanceStockAdjustmentLog = (id, params) => {\r\n const query = stringify(params)\r\n return axios.get(`/finance/stockAdjustments/${id}/logs?${query}`)\r\n}\r\n\r\nexport const getFinanceStockAdjustments = (params) => {\r\n const query = stringify(params)\r\n return axios.get(`/finance/stockAdjustments?${query}`)\r\n}\r\n\r\nexport const addFinanceStockAdjustment = (data) => {\r\n return axios.post('/finance/stockAdjustments', data)\r\n}\r\n\r\nexport const editFinanceStockAdjustment = (data) => {\r\n return axios.put(`/finance/stockAdjustments/${data.id}`, data)\r\n}\r\n\r\nexport const deleteFinanceStockAdjustment = (id) => {\r\n return axios.delete(`/finance/stockAdjustments/${id}`)\r\n}\r\n\r\nexport const deleteOnAddFinanceStockAdjustmentAttachment = (url) => {\r\n return axios.delete('/finance/stockAdjustments/attachments', { data: { url } })\r\n}\r\n\r\nexport const deleteOnEditFinanceStockAdjustmentAttachment = (id, url) => {\r\n return axios.delete(`/finance/stockAdjustments/${id}/attachments`, { data: { url } })\r\n}\r\n\r\nexport const generateImportFinanceStockAdjustment = (params) => {\r\n const query = stringify(params)\r\n return axios.get(`/finance/stockAdjustments/generateImport?${query}`, {\r\n responseType: 'arraybuffer',\r\n })\r\n}\r\n\r\nexport const uploadImportFinanceStockAdjustment = (data) => {\r\n return axios.post('/finance/stockAdjustments/uploadImport', data)\r\n}\r\n\r\nexport const executeImportFinanceStockAdjustment = (data) => {\r\n return axios.post('/finance/stockAdjustments/executeImport', data)\r\n}\r\n","import axios from 'axios'\r\nimport { stringify } from 'query-string'\r\n\r\nexport const getFaqsByName = (name) => axios.get(`/faqs/${name}`)\r\n\r\nexport const getFaqCategory = () => axios.get('/faqs/category')\r\n\r\nexport const getFaqs = (payload) => {\r\n const query = stringify(payload)\r\n return axios.get(`/faqs?${query}`)\r\n}\r\n\r\nexport const getFaqDetail = (id) => axios.get(`/faqs/${id}/detail`)\r\n\r\nexport const likeFaq = (id) => axios.post(`/faqs/${id}/like`)\r\n\r\nexport const dislikeFaq = (id) => axios.post(`/faqs/${id}/dislike`)\r\n","import axios from 'axios'\r\n\r\nexport const getVideos = (name) => {\r\n return axios.get(`/videos/${name}`)\r\n}\r\n","import React from 'react'\r\nimport dayjs from 'dayjs';\r\nimport { injectIntl } from 'react-intl'\r\nimport { DatePicker } from 'antd'\r\nimport { formatDateText } from 'utils/formatting'\r\nimport { connect } from 'react-redux'\r\n\r\nconst { RangePicker: RangeAntd } = DatePicker\r\n\r\nexport const getDefaultPresets = (intl) => ([\r\n {\r\n label: intl.formatMessage({ id: 'date.yesterday' }),\r\n value: [\r\n dayjs().subtract(1, 'day'),\r\n dayjs().subtract(1, 'day'),\r\n ],\r\n },\r\n {\r\n label: intl.formatMessage({ id: 'date.today' }),\r\n value: [dayjs(), dayjs()],\r\n },\r\n {\r\n label: intl.formatMessage({ id: 'date.this_month' }),\r\n value: [\r\n dayjs().startOf('month'),\r\n dayjs().endOf('month'),\r\n ],\r\n },\r\n {\r\n label: intl.formatMessage({ id: 'date.last_month' }),\r\n value: [\r\n dayjs().subtract(1, 'month').startOf('month'),\r\n dayjs().subtract(1, 'month').endOf('month'),\r\n ],\r\n },\r\n {\r\n label: intl.formatMessage({ id: 'date.last_7_days' }),\r\n value: [dayjs().subtract(7, 'days'), dayjs()],\r\n },\r\n {\r\n label: intl.formatMessage({ id: 'date.last_30_days' }),\r\n value: [\r\n dayjs().subtract(30, 'days'),\r\n dayjs(),\r\n ],\r\n },\r\n {\r\n label: intl.formatMessage({ id: 'date.this_year' }),\r\n value: [\r\n dayjs().startOf('year'),\r\n dayjs().endOf('year'),\r\n ],\r\n },\r\n {\r\n label: intl.formatMessage({ id: 'date.last_year' }),\r\n value: [\r\n dayjs().subtract(1, 'year').startOf('year'),\r\n dayjs().subtract(1, 'year').endOf('year'),\r\n ],\r\n }\r\n]);\r\n\r\nfunction RangePicker({ intl, presets = [], ...props }) {\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default connect()(injectIntl(RangePicker))\r\n","import { Link } from 'react-router-dom'\r\nimport React from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { showAccountTransactionReport } from 'redux/finance/actions'\r\nimport { checkPermission } from 'redux/user/selectors'\r\n\r\nconst DetailAccountModal = ({ data, ...props }) => {\r\n const dispatch = useDispatch()\r\n const hasAccountPermission = useSelector((state) => checkPermission(state, 'accounts'))\r\n\r\n const showAccountTransHandler = (e, account) => {\r\n e.preventDefault()\r\n if (account) {\r\n dispatch(\r\n showAccountTransactionReport({\r\n id: account?.id,\r\n }),\r\n )\r\n }\r\n }\r\n\r\n const getAccountTransUrl = (account) =>\r\n account ? `/reports/account-transaction/${account.id}` : ''\r\n\r\n return (\r\n <>\r\n {hasAccountPermission ? (\r\n showAccountTransHandler(e, data)}\r\n className=\"text-primary\"\r\n to={getAccountTransUrl(data)}\r\n {...props}\r\n >\r\n {data && `${data?.ref_code} ${data?.name}`}\r\n \r\n ) : (\r\n data && `${data?.ref_code} ${data?.name}`\r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default DetailAccountModal\r\n","import { useQuery } from 'react-query'\r\nimport { message } from 'antd'\r\n\r\nimport { getUnrealizedGain } from 'utils/apis/unrealizedGain'\r\n\r\nexport function useUnrealizedGain({ id, enabled = false }) {\r\n return useQuery(\r\n ['unrealizedGain', id],\r\n async () => {\r\n let response\r\n try {\r\n const {\r\n data: { data },\r\n } = await getUnrealizedGain(id)\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n {\r\n enabled: !!id && enabled,\r\n onError: (error) =>\r\n message.error((error && error.message) || 'Failed to load data from server!'),\r\n },\r\n )\r\n}\r\n","import * as actionTypes from 'redux/actionTypes'\r\n\r\n// export const clearDemoDataRedux = () => {\r\n// return {\r\n// type: actionTypes.SETUP_CLEAR_DEMO_DATA,\r\n// }\r\n// }\r\n\r\nexport const setupFinishRedux = () => {\r\n return {\r\n type: actionTypes.SETUP_FINISH,\r\n }\r\n}\r\n\r\n// export const setupClearDemoDataFinance = () => {\r\n// return (dispatch) => {\r\n// return setup({ demo: 2 }).then((response) => {\r\n// dispatch(clearDemoDataRedux())\r\n// dispatch(inits())\r\n// dispatch(resetDashboard())\r\n//\r\n// updateOptions({ demo: 0 }).then((_response) => {\r\n// dispatch(setupFinishRedux())\r\n//\r\n// return _response\r\n// })\r\n//\r\n// return response\r\n// })\r\n// }\r\n// }\r\n\r\n// export const setupComplete = () => {\r\n// return (dispatch) => {\r\n// return new Promise((resolve) => {\r\n// dispatch(setupFinishRedux())\r\n// dispatch(resetDashboard())\r\n// dispatch(inits())\r\n// resolve(true)\r\n// })\r\n// }\r\n// }\r\n\r\n// export const setupFinish = () => {\r\n// return (dispatch) => {\r\n// return updateOptions({ demo: 0 }).then((response) => {\r\n// dispatch(setupFinishRedux())\r\n//\r\n// return response\r\n// })\r\n// }\r\n// }\r\n","import { useMutation, useQuery } from 'react-query'\r\nimport { message } from 'antd'\r\n\r\nimport {\r\n editOptionsThemeColors,\r\n getOptionsDueReminders,\r\n getOptionsThemeColors,\r\n updateOptions,\r\n updateOptionsDueReminders\r\n} from 'utils/apis'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { editOptionsRedux } from 'redux/options/actions'\r\nimport { optionsSelector } from 'redux/selectors'\r\n\r\nexport const useOptionsDueReminders = ({ payload, options = {} } = {}) => {\r\n return useQuery(\r\n ['getOptionsDueReminders', payload],\r\n async () => {\r\n const {\r\n data: { data },\r\n } = await getOptionsDueReminders(payload)\r\n return data\r\n },\r\n {\r\n ...options,\r\n keepPreviousData: true,\r\n onError: (error) => message.error((error && error.message) || 'Failed data from server!'),\r\n },\r\n )\r\n}\r\n\r\nexport const useOptionsDueRemindersMutation = ({ options = {} } = {}) => {\r\n return useMutation((payload) => updateOptionsDueReminders(payload), {\r\n ...options,\r\n })\r\n}\r\n\r\nexport const useEditOptions = () => {\r\n const dispatch = useDispatch()\r\n const prevOptions = useSelector(optionsSelector)\r\n return useMutation((payload) => updateOptions(payload), {\r\n onMutate: (payload) => {\r\n dispatch(editOptionsRedux(payload))\r\n return { prevOptions }\r\n },\r\n onSuccess: ({ data }) => {\r\n if (data?.success) {\r\n message.success(data?.message)\r\n } else {\r\n message.success(data?.message)\r\n }\r\n },\r\n onError: (error, val, context) => {\r\n dispatch(editOptionsRedux(context.prevOptions))\r\n message.error('Failed save data to server!')\r\n },\r\n })\r\n}\r\n\r\nexport const useOptionsThemeColors = () => {\r\n return useQuery(\r\n \"getOptionsThemeColors\",\r\n async () => {\r\n let response;\r\n try {\r\n const {\r\n data: { data },\r\n } = await getOptionsThemeColors();\r\n response = data;\r\n } catch (error) {\r\n message.error((error && error.message) || 'Failed save data to server!')\r\n }\r\n return response;\r\n },\r\n {\r\n onError: (error) =>\r\n message.error((error && error.message) || 'Failed save data to server!')\r\n }\r\n );\r\n}\r\n\r\nexport const useEditOptionThemeColors = () => {\r\n return useMutation((payload) => editOptionsThemeColors(payload), {\r\n onSuccess: ({ data }) => {\r\n if (data?.success) {\r\n message.success(data?.message)\r\n } else {\r\n message.success(data?.message)\r\n }\r\n },\r\n onError: (error) => {\r\n message.error((error && error.message) || 'Failed save data to server!')\r\n },\r\n })\r\n}\r\n","import React from 'react'\r\nimport { injectIntl } from 'react-intl'\r\n\r\nimport { Pagination, Table } from 'components/UI'\r\n\r\nconst DataTable = ({\r\n data,\r\n columns,\r\n loading,\r\n onTableChange,\r\n onRow,\r\n rowClassName,\r\n onPageChange,\r\n isMobileView,\r\n onPageSizeChange,\r\n ...props\r\n}) => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {!loading ? (\r\n
\r\n
\r\n {data?.last_page > 0 && data?.total > 0 && (\r\n = parseInt(data?.total ?? '0', 10)\r\n }\r\n total={data?.total || 0}\r\n onChange={onPageChange}\r\n onShowSizeChange={onPageSizeChange}\r\n style={{ float: isMobileView ? 'left' : 'right' }}\r\n pageSizeOptions={[10, 15, 25, 50, 100]}\r\n />\r\n )}\r\n
\r\n
\r\n ) : null}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default injectIntl(DataTable)\r\n","import React, { forwardRef, useMemo } from 'react'\r\nimport { Form, Select } from 'antd'\r\nimport { injectIntl } from 'react-intl'\r\nimport dayjs from 'dayjs'\r\n\r\nimport { RangePicker } from 'components/UI'\r\nimport TagSuggestion from 'containers/FinanceTag/TagSuggestion'\r\n\r\nconst FilterFormTransaction = ({\r\n intl,\r\n innerRef,\r\n params,\r\n withTag,\r\n withTransType,\r\n onClearTag,\r\n onDeselectTag,\r\n onSelectTag,\r\n selectedTags,\r\n transType = [],\r\n}) => {\r\n const [form] = Form.useForm()\r\n const initialValues = useMemo(() => {\r\n const values = {\r\n date: params.date_from ? [dayjs(params.date_from), dayjs(params.date_to)] : undefined,\r\n }\r\n\r\n if (withTag) values.tags = params.tags || []\r\n if (withTransType) values.trans_type_ids = params.trans_type_ids || []\r\n\r\n return values\r\n }, [params.date_from, params.date_to, params.tags, params.trans_type_ids, withTag, withTransType])\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {withTag && (\r\n \r\n )}\r\n {withTransType ? (\r\n \r\n \r\n option.label.toLowerCase().includes(inputValue.toLowerCase())\r\n }\r\n />\r\n \r\n ) : null}\r\n \r\n )\r\n}\r\n\r\nconst Component = injectIntl(FilterFormTransaction)\r\n\r\nexport default forwardRef((props, ref) => )\r\n","import Cookies from 'js-cookie'\r\n\r\nexport const setToken = (token) => {\r\n Cookies.set('token', token, { expires: 30 * 12 }) // 1 tahun\r\n}\r\nexport const getToken = () => Cookies.get('token')\r\nexport const isTokenExist = () => !!getToken()\r\nexport const removeToken = () => Cookies.remove('token')\r\n\r\nexport const setSavedEmail = (email) => {\r\n Cookies.set('email', email, { expires: 30 * 12 }) // 1 tahun\r\n}\r\nexport const getSavedEmail = () => Cookies.get('email')\r\nexport const isEmailSavedExist = () => !!getSavedEmail()\r\nexport const removeSavedEmail = () => Cookies.remove('email')\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menu\":\"style_menu__o1iSX\",\"icon\":\"style_icon__2cGkm\",\"logo\":\"style_logo__1ea0y\",\"logoContainer\":\"style_logoContainer__OY4ph\",\"link_title\":\"style_link_title__3q7I0\",\"kledo_pos\":\"style_kledo_pos__34R3N\",\"titleLink\":\"style_titleLink__3WhM6\",\"navigation\":\"style_navigation__Fo5qD\",\"title\":\"style_title__1iW-N\",\"scrollbarDesktop\":\"style_scrollbarDesktop__1FT8K\",\"scrollbarMobile\":\"style_scrollbarMobile___R2u_\",\"light\":\"style_light__2MDKP\",\"buyPro\":\"style_buyPro__BcQXI\"};","import React from 'react'\r\nimport { Editor as RdwEditor } from 'react-draft-wysiwyg'\r\nimport TagsOption from './TagsOption'\r\n\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css'\r\nimport 'assets/styles/Rdw/rdw.cleanui.scss'\r\n\r\nclass Editor extends React.Component {\r\n render() {\r\n const { email, editorState, editorStateChangeHandler, getTagsHandler, tagLoading, tags } =\r\n this.props\r\n\r\n return (\r\n ,\r\n ]\r\n : undefined\r\n }\r\n onEditorStateChange={editorStateChangeHandler}\r\n toolbar={{\r\n options: [\r\n 'inline',\r\n 'blockType',\r\n 'fontSize',\r\n 'fontFamily',\r\n 'list',\r\n 'history',\r\n 'emoji',\r\n 'image',\r\n ],\r\n inline: {\r\n options: ['bold', 'italic', 'underline', 'strikethrough'],\r\n },\r\n list: {\r\n options: ['unordered', 'ordered'],\r\n },\r\n }}\r\n />\r\n )\r\n }\r\n}\r\n\r\nexport default Editor\r\n","import React from 'react'\r\nimport { injectIntl } from 'react-intl'\r\nimport { Select } from 'antd'\r\nimport { EditorState, Modifier } from 'draft-js'\r\nimport { connect } from 'react-redux'\r\n\r\nimport { getTerm } from 'utils/hooks/useTerm'\r\n\r\nconst { Option, OptGroup } = Select\r\n\r\nclass TagsOption extends React.Component {\r\n componentDidMount() {\r\n if (this.props.emailId) {\r\n this.props.getTagsHandler(this.props.emailId)\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.emailId !== prevProps.emailId && this.props.emailId) {\r\n this.props.getTagsHandler(this.props.emailId)\r\n }\r\n }\r\n\r\n changeHandler = (value) => {\r\n const { editorState, onChange } = this.props\r\n const contentState = Modifier.replaceText(\r\n editorState.getCurrentContent(),\r\n editorState.getSelection(),\r\n `[${value}]`,\r\n editorState.getCurrentInlineStyle(),\r\n )\r\n const newEditorState = EditorState.push(editorState, contentState)\r\n\r\n onChange(EditorState.forceSelection(newEditorState, newEditorState.getSelection()))\r\n }\r\n\r\n renderOptionGroups() {\r\n const { tags } = this.props\r\n const options = []\r\n\r\n Object.keys(tags).forEach((field) => {\r\n options.push(\r\n \r\n {tags[field].map((row) => {\r\n return (\r\n \r\n )\r\n })}\r\n ,\r\n )\r\n })\r\n\r\n return options\r\n }\r\n\r\n render() {\r\n const { loading, intl, term, locale } = this.props\r\n const _termPlural = getTerm({ term, intl, plural: locale === 'en-US' })\r\n return (\r\n
\r\n \r\n {this.renderOptionGroups()}\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n term: state.translation.term,\r\n locale: state.settings.locale,\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(injectIntl(TagsOption))\r\n","import React from 'react';\r\nimport { injectIntl } from 'react-intl';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { Modal, message, Typography } from 'antd';\r\nimport { Cancel, Send } from 'components/UI';\r\nimport { sendEmailConfirmation, getOption } from 'utils/apis';\r\nimport {optionsSelector} from 'redux/selectors';\r\nimport {editOptionsRedux} from 'redux/options/actions';\r\n\r\nconst {Text} = Typography;\r\nlet interval;\r\nlet intervalCountDown;\r\nconst ConfirmEmailModal = ({ intl, show, onClose, afterUpdatedOption, closeAfterUpdate}) => {\r\n const dispatch = useDispatch();\r\n const [loading, setLoading] = React.useState(false);\r\n const [emailSent, setEmailSent] = React.useState(false);\r\n const [runInterval, setRunInterval] = React.useState(false);\r\n const [countDown, setCountDown] = React.useState(120);\r\n const [runCountDown, setRunCountDown] = React.useState(false);\r\n const [countCheckOption, setCountCheckOption] = React.useState(0);\r\n\r\n const options = useSelector(optionsSelector);\r\n\r\n const confirmEmailHandler = async () => {\r\n setLoading(true);\r\n try {\r\n const response = await sendEmailConfirmation();\r\n setLoading(false);\r\n if (response.data.success) {\r\n if (emailSent) {\r\n setCountDown(120);\r\n setCountCheckOption(0);\r\n }\r\n setEmailSent(true);\r\n message.success(response.data.message);\r\n setRunInterval(true);\r\n setRunCountDown(true);\r\n } else {\r\n message.error(response.data.message);\r\n }\r\n } catch (e) {\r\n setLoading(false);\r\n message.error(intl.formatMessage({ id: 'email.cannot_send_email' }));\r\n }\r\n }\r\n\r\n const checkOptionHandler = async () => {\r\n try {\r\n const response = await getOption('email_confirmed');\r\n if (response.data.success) {\r\n const {data} = response.data;\r\n if (data) {\r\n dispatch(editOptionsRedux({email_confirmed: data}));\r\n if (closeAfterUpdate) {\r\n onClose();\r\n }\r\n afterUpdatedOption();\r\n }\r\n }\r\n setCountCheckOption(prev => prev + 1);\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n if (runInterval) {\r\n interval = setInterval(() => {\r\n checkOptionHandler();\r\n }, 10000);\r\n return () => clearInterval(interval);\r\n }\r\n return () => {}\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [runInterval]);\r\n\r\n React.useEffect(() => {\r\n if (options.email_confirmed || countCheckOption === 200) {\r\n clearInterval(interval);\r\n }\r\n }, [options.email_confirmed, countCheckOption]);\r\n\r\n React.useEffect(() => {\r\n if (runCountDown) {\r\n intervalCountDown = setInterval(() => {\r\n setCountDown(prev => prev - 1);\r\n }, 1000);\r\n return () => clearInterval(intervalCountDown);\r\n }\r\n return () => {}\r\n }, [runCountDown]);\r\n\r\n React.useEffect(() => {\r\n if (countDown === 0 || options.email_confirmed) {\r\n setRunCountDown(false);\r\n }\r\n }, [countDown, options.email_confirmed]);\r\n\r\n return (\r\n ,\r\n \r\n ]}\r\n >\r\n
\r\n
\r\n \r\n {intl.formatMessage({\r\n id: emailSent ? 'email.we_have_sent_confirmation_email' : 'email.please_confirm_email'\r\n },\r\n { email: options.reply_email_address }\r\n )}\r\n \r\n
\r\n
\r\n\r\n {(runCountDown && countDown > 0) &&\r\n
\r\n
\r\n \r\n {intl.formatMessage({ id: 'email.you_can_resend_an_email_after' }, { countDown})}\r\n \r\n
\r\n
\r\n }\r\n \r\n );\r\n};\r\n\r\nConfirmEmailModal.defaultProps = {\r\n closeAfterUpdate: true\r\n};\r\n\r\nexport default injectIntl(ConfirmEmailModal);\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttonTransparent\":\"styles_buttonTransparent__2ZKOb\"};","import React from 'react';\r\nimport { injectIntl } from 'react-intl';\r\nimport { Modal } from 'antd';\r\nimport { Add, Cancel } from 'components/UI';\r\nimport withTranslation from 'containers/Translation/withTranslation';\r\nimport FinanceTagForm from '../FinanceTagForm';\r\n\r\n\r\nclass AddFinanceTag extends React.Component {\r\n componentDidUpdate(prevProps) {\r\n const { innerRef, show } = this.props;\r\n if (prevProps.show !== show) {\r\n if (innerRef.current) {\r\n innerRef.current.resetFields();\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n intl, show, confirmLoading,\r\n hideHandler, submitHandler, innerRef,\r\n translation,\r\n } = this.props;\r\n\r\n return (\r\n ,\r\n \r\n ]}\r\n >\r\n {show && (\r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nconst Component = withTranslation(injectIntl(AddFinanceTag));\r\n\r\nexport default React.forwardRef((props, ref) => )\r\n","import React from 'react'\r\nimport { Button, Form, Input } from 'antd'\r\nimport { ChromePicker } from 'react-color'\r\nimport _ from 'lodash'\r\nimport { injectIntl } from 'react-intl'\r\n\r\nimport styles from './styles.module.scss'\r\n\r\nclass FinanceTagForm extends React.Component {\r\n state = {\r\n color: '#E4E9F0',\r\n }\r\n\r\n nameRef = React.createRef()\r\n\r\n componentDidMount() {\r\n const { innerRef } = this.props\r\n if (innerRef.current) {\r\n innerRef.current.resetFields()\r\n }\r\n if (this.nameRef.current) {\r\n setTimeout(() => this.nameRef.current.focus(), 200)\r\n }\r\n if (this.props.show && this.props.tag) {\r\n this.setState({ color: this.props.tag?.color ?? '#E4E9F0' })\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.show !== this.props.show) {\r\n if (this.props.show) {\r\n const form = this.props.innerRef.current\r\n if (form) {\r\n form.resetFields()\r\n }\r\n }\r\n }\r\n if (this.props.show && !_.isEqual(this.props.tag, prevProps.tag)) {\r\n this.setState({ color: this.props.tag?.color ?? '#E4E9F0' })\r\n }\r\n }\r\n\r\n render() {\r\n const { tag, intl, innerRef } = this.props\r\n const { color, displayColorPicker } = this.state\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n this.setState((prevState) => ({\r\n ...prevState,\r\n displayColorPicker: !prevState.displayColorPicker,\r\n }))\r\n }\r\n >\r\n
\r\n

{color}

\r\n \r\n {displayColorPicker ? (\r\n
\r\n this.setState({ displayColorPicker: false })}\r\n />\r\n {\r\n innerRef.current.setFieldValue('color', newColor.hex)\r\n this.setState({ color: newColor.hex })\r\n }}\r\n />\r\n
\r\n ) : null}\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nconst Component = injectIntl(FinanceTagForm)\r\n\r\nexport default React.forwardRef((props, ref) => )\r\n","export const getPermissions = (state) => state.user.permissions || []\r\nexport const getMenus = (state) => state.user.menus || {}\r\nexport const getOptions = (state) => state.options.options || {}\r\n\r\n/**\r\n *\r\n * @param recursive {boolean}\r\n * @param permissions {Array}\r\n * @param currentPermissions {Array}\r\n * @param name {string}\r\n * @param actions {Object}\r\n * @return {{isCanAdd: boolean, isCanDelete: boolean, isCanEdit: boolean}}\r\n */\r\nconst getModulePermissionsRecursive = ({\r\n recursive,\r\n permissions,\r\n currentPermissions,\r\n name,\r\n actions = {},\r\n}) => {\r\n const findData = permissions.find((row) => row.name === name)\r\n\r\n let _actions = {\r\n isCanAdd: false,\r\n isCanEdit: false,\r\n isCanDelete: false,\r\n ...actions,\r\n }\r\n\r\n if (currentPermissions || findData?.child) {\r\n Object.keys(currentPermissions || findData.child).forEach((index) => {\r\n const permission = (currentPermissions || findData?.child)[index]\r\n if (permission.name === `${name}_add`) {\r\n _actions.isCanAdd = true\r\n } else if (permission.name === `${name}_edit`) {\r\n _actions.isCanEdit = true\r\n } else if (permission.name === `${name}_delete`) {\r\n _actions.isCanDelete = true\r\n } else if (permission.name === `${name}_reconcile`) {\r\n _actions.isCanReconciliation = true\r\n } else if (permission.name === 'conversion_balance') {\r\n _actions.isCanConversionBalance = true\r\n }\r\n _actions[permission.name] = true\r\n if (permission.child && Object.keys(permission.child).length > 0 && recursive) {\r\n _actions = getModulePermissionsRecursive({\r\n recursive,\r\n permissions,\r\n currentPermissions: permission.child,\r\n name,\r\n actions: _actions,\r\n })\r\n }\r\n })\r\n }\r\n\r\n return _actions\r\n}\r\nexport const getModulePermissions = (state, name, recursive) => {\r\n const permissions = getPermissions(state)\r\n return getModulePermissionsRecursive({\r\n recursive,\r\n permissions,\r\n name,\r\n actions: {},\r\n })\r\n}\r\nconst checkPermissionMain = (permissions, name) => {\r\n let findPermission = false\r\n // eslint-disable-next-line consistent-return\r\n permissions.forEach((perms) => {\r\n if (perms.name === name) findPermission = true\r\n if (findPermission) return findPermission\r\n if (perms.child && Object.keys(perms.child).length > 0) {\r\n const childPerms = Object.keys(perms.child).map((key) => perms.child[key])\r\n findPermission = checkPermissionMain(childPerms, name)\r\n }\r\n })\r\n return findPermission\r\n}\r\nexport const checkPermission = (state, name) => {\r\n const permissions = getPermissions(state)\r\n return checkPermissionMain(permissions, name)\r\n}\r\nexport const getFirstUrl = (data, url) => {\r\n for (let i = 0; i < data.length; i += 1) {\r\n if (data[i].sub) {\r\n url = getFirstUrl(data[i].sub, url)\r\n break\r\n } else if (!data[i].divider && data[i].url && data[i].url !== '/') {\r\n // eslint-disable-next-line prefer-destructuring\r\n url = data[i].url\r\n break\r\n }\r\n }\r\n return url\r\n}\r\nexport const isGrantToDashboard = (state) => {\r\n const menus = getMenus(state)\r\n const dashboard = menus.dashboard || []\r\n const findDashboard = dashboard.find((row) => row.name === 'home')\r\n\r\n return !!findDashboard\r\n}\r\nexport const getRedirectUrl = (menus) => {\r\n if (!menus) {\r\n return '/'\r\n }\r\n const dashboard = menus.dashboard || []\r\n // eslint-disable-next-line no-return-assign\r\n const settings = menus.settings ? menus.settings.map((e) => (e.url = `/settings${e.url}`)) : []\r\n let url = getFirstUrl(dashboard, '')\r\n if (url === '') {\r\n url = getFirstUrl(settings, '')\r\n }\r\n\r\n return url === '' ? '/' : url\r\n}\r\n","import React, { useCallback, useRef, useState } from 'react'\r\nimport { injectIntl } from 'react-intl'\r\nimport { Link } from 'react-router-dom'\r\nimport { Button, Checkbox, Divider, Form, Input, message, Space } from 'antd'\r\nimport { EditOutlined } from '@ant-design/icons'\r\nimport { useGoogleLogin } from '@react-oauth/google'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { push } from 'connected-react-router'\r\n\r\nimport { getSavedEmail } from 'utils/cookies'\r\nimport { hideLoginForm } from 'redux/user/actions'\r\nimport { loginFormSelector } from 'redux/selectors'\r\n\r\nconst UserCircle = () => {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst LoginForm = ({ intl, onSubmit, onGoogleLogin, onSsoLogin, loading, email }) => {\r\n const [form] = Form.useForm()\r\n const [editEmail, setEditEmail] = useState(false)\r\n\r\n const loginForm = useSelector(loginFormSelector)\r\n const dispatch = useDispatch()\r\n const onPush = (payload) => dispatch(push(payload))\r\n\r\n const failureGoogleLoginHandler = useCallback(\r\n (e) => {\r\n message.error(e?.message || intl.formatMessage({ id: 'notification.login_google_failure' }))\r\n },\r\n [intl],\r\n )\r\n const login = useGoogleLogin({\r\n onSuccess: onGoogleLogin,\r\n onFailure: onGoogleLogin,\r\n cookiePolicy: 'single_host_origin',\r\n onError: failureGoogleLoginHandler,\r\n flow: 'auth-code',\r\n })\r\n\r\n const savedEmail = email || getSavedEmail()\r\n const emailRef = useRef()\r\n const passwordRef = useRef()\r\n\r\n const onEmailFocus = useCallback(() => {\r\n setEditEmail(true)\r\n setTimeout(() => {\r\n if (emailRef.current) {\r\n emailRef.current.focus()\r\n emailRef.current.input.setSelectionRange(0, form.getFieldValue('email').length)\r\n }\r\n }, 1)\r\n }, [form])\r\n\r\n const onEmailBlur = useCallback(() => {\r\n form.setFieldsValue({\r\n email: form.getFieldValue('email') ? form.getFieldValue('email').trim() : '',\r\n })\r\n if (form.getFieldsError(['email'])?.[0]?.errors?.length < 1 && passwordRef.current?.focus) {\r\n passwordRef.current.focus()\r\n setEditEmail(false)\r\n }\r\n }, [form])\r\n\r\n const googleLoginHandler = useCallback(() => login(), [login])\r\n\r\n const ssoLoginHandler = () => {\r\n dispatch(hideLoginForm())\r\n onPush('/user/login/sso')\r\n }\r\n\r\n return (\r\n \r\n prevValues.email !== currentValues.email}\r\n label={intl.formatMessage({ id: 'users.email' })}\r\n onClick={editEmail ? undefined : onEmailFocus}\r\n >\r\n {({ getFieldValue }) => {\r\n const currentEmail = getFieldValue('email')\r\n return (\r\n <>\r\n {savedEmail && !editEmail ? (\r\n \r\n {currentEmail || savedEmail}\r\n }\r\n shape=\"circle\"\r\n type=\"text\"\r\n onClick={onEmailFocus}\r\n />\r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n )\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {intl.formatMessage({ id: 'users.remember_me' })}\r\n \r\n \r\n {intl.formatMessage({ id: 'users.forgot_password_' })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {intl.formatMessage({ id: 'users.login_with_google' })}\r\n \r\n \r\n \r\n {intl.formatMessage({ id: 'sso.login_with_sso' })}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default injectIntl(LoginForm)\r\n","import React from 'react'\r\nimport { FormattedHTMLMessage, injectIntl } from 'react-intl'\r\nimport { Button, Form, Input, message, Typography } from 'antd'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { push } from 'connected-react-router'\r\n\r\nimport { useLoginWithSsoMutation } from 'utils/queries'\r\nimport { loginFormSelector } from 'redux/selectors'\r\nimport styles from './sso.module.scss'\r\n\r\nconst Sso = ({ intl, onBackLogin }) => {\r\n const [form] = Form.useForm()\r\n\r\n const loginForm = useSelector(loginFormSelector)\r\n const dispatch = useDispatch()\r\n const onPush = (payload) => dispatch(push(payload))\r\n\r\n const loginWithSsoMutation = useLoginWithSsoMutation()\r\n\r\n const onSubmit = async () => {\r\n try {\r\n const values = await form.validateFields()\r\n\r\n loginWithSsoMutation.mutate(values, {\r\n onSuccess: (response) => {\r\n if (response.data.success) {\r\n window.location.href = response.data.data\r\n } else {\r\n message.error(response.data.message)\r\n }\r\n },\r\n onError: (error) => {\r\n if (error?.data?.message) {\r\n message.error(error.data.message)\r\n }\r\n },\r\n })\r\n } catch {\r\n //\r\n }\r\n }\r\n\r\n const backToLogin = () => onPush('/user/login')\r\n\r\n return (\r\n <>\r\n \r\n {intl.formatMessage({ id: 'sso.continue_with_sso' })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {intl.formatMessage({ id: 'sso.continue_with_sso' })}\r\n \r\n \r\n {intl.formatMessage({ id: 'sso.return_to_login' })}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default injectIntl(Sso)\r\n","import React from 'react'\r\nimport { Button, Form, Popover, Select, Space } from 'antd'\r\nimport { injectIntl } from 'react-intl'\r\nimport { connect } from 'react-redux'\r\nimport { CaretDownOutlined } from '@ant-design/icons'\r\n\r\nimport { formatDateText } from 'utils/formatting'\r\nimport { filterOption } from 'utils/helper'\r\nimport { Filter as ButtonFilter, RangePicker, SearchWidget } from 'components/UI'\r\n\r\nconst { Option } = Select\r\n\r\n// map with name to make easy what are the ids is\r\nexport const excludeTransTypeIdsForAccountTransactions = [\r\n {\r\n id: 2,\r\n name: 'Purchase Order',\r\n },\r\n {\r\n id: 4,\r\n name: 'Quote',\r\n },\r\n {\r\n id: 6,\r\n name: 'Order',\r\n },\r\n {\r\n id: 51,\r\n name: 'Warehouse Transfer',\r\n },\r\n {\r\n id: 63,\r\n name: 'Purchase Quote',\r\n },\r\n]\r\n\r\nclass Filter extends React.Component {\r\n filterFormRef = React.createRef()\r\n\r\n state = {\r\n search: '',\r\n }\r\n\r\n onChange = (value) => this.props.setParams({ date_from: value[0], date_to: value[1] })\r\n\r\n filterVisibleChangeHandler = (visible) => {\r\n if (!visible) {\r\n const { setParams } = this.props\r\n const form = this.filterFormRef.current\r\n form\r\n .validateFields()\r\n .then((values) => setParams(values))\r\n .catch((info) => {\r\n form.scrollToField(info.errorFields[0].name)\r\n })\r\n }\r\n }\r\n\r\n renderFilter = () => {\r\n const { params, intl, transTypeIds } = this.props\r\n\r\n const filteredTransTypeIds = (transTypeIds || []).filter(\r\n (transTypeId) =>\r\n !excludeTransTypeIdsForAccountTransactions.find(\r\n (_transType) => transTypeId.id === _transType.id,\r\n ),\r\n )\r\n\r\n const children = filteredTransTypeIds.map((item) => (\r\n \r\n ))\r\n\r\n return (\r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n clearFilterHandler = () => {\r\n this.props.onClear()\r\n if (this.filterFormRef.current) {\r\n this.filterFormRef.current.setFieldsValue({\r\n ...this.props.initialParams,\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n isMobileView,\r\n params,\r\n showClearBtn,\r\n intl,\r\n onToggleGraph,\r\n onSearch,\r\n showGraph,\r\n showSearch,\r\n } = this.props\r\n const { date_from: dateFrom, date_to: dateTo } = params\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n }\r\n onClick={onToggleGraph}\r\n >\r\n {intl.formatMessage({\r\n id: showGraph ? 'reports.hide_graph' : 'reports.show_graph',\r\n })}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n {showSearch && (\r\n \r\n {\r\n this.setState({ search: event.target.value })\r\n onSearch(event)\r\n }}\r\n placeholder={intl.formatMessage({ id: 'input.placeholder.search' })}\r\n value={this.state.search}\r\n />\r\n
\r\n )}\r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n transTypeIds: state.finance.config.trans_type,\r\n }\r\n}\r\n\r\nconst Component = connect(mapStateToProps)(injectIntl(Filter))\r\n\r\nexport default React.forwardRef((props, ref) => )\r\n","import React, { memo, useMemo } from 'react'\r\nimport { Col, Row, Spin } from 'antd'\r\nimport { injectIntl } from 'react-intl'\r\nimport { Doughnut } from 'react-chartjs-2'\r\nimport { useSelector } from 'react-redux'\r\n\r\nimport { qtyToCurrency } from 'utils/formatting'\r\nimport { financeConfigSelector } from 'redux/selectors'\r\nimport { excludeTransTypeIdsForAccountTransactions } from 'components/apps/Reports/AccountTransactions/Filter'\r\n\r\nconst colors = [\r\n '#FF6384',\r\n '#FFCD56',\r\n '#4BC0C0',\r\n '#36A2EB',\r\n '#CB99C9',\r\n '#EE82EE',\r\n '#FF2C63',\r\n '#00ADB5',\r\n '#08D9D6',\r\n '#F9ED69',\r\n '#F08A5D',\r\n '#B83B5E',\r\n '#6A2C70',\r\n '#FF2E63',\r\n '#112D4E',\r\n '#F38181',\r\n '#95E1D3',\r\n '#3F72AF',\r\n '#A8D8EA',\r\n '#AA96DA',\r\n '#FCBAD3',\r\n '#364F6B',\r\n '#3FC1C9',\r\n '#FC5185',\r\n '#0F4C75',\r\n '#3282B8',\r\n '#AD8B73',\r\n '#CEAB93',\r\n '#FF9494',\r\n '#CCA8E9',\r\n '#7D5A50',\r\n '#B4846C',\r\n '#967E76',\r\n '#30E3CA',\r\n '#11999E',\r\n '#40514E',\r\n '#F67280',\r\n '#C06C84',\r\n '#6C5B7B',\r\n '#355C7D',\r\n '#B1B2FF',\r\n '#E84545',\r\n '#903749',\r\n '#0D7377',\r\n '#14FFEC',\r\n '#99DDCC',\r\n '#769FCD',\r\n '#7895B2',\r\n '#E23E57',\r\n '#88304E',\r\n '#FFCFDF',\r\n '#8675A9',\r\n '#FF9292',\r\n '#7D6E83',\r\n '#9E7676',\r\n '#815B5B',\r\n '#594545',\r\n '#00B8A9',\r\n '#F6416C',\r\n '#FFDE7D',\r\n '#99A799',\r\n '#52616B',\r\n '#A8E6CF',\r\n '#BE9FE1',\r\n '#EA5455',\r\n '#2D4059',\r\n]\r\n\r\nconst PieChart = ({ data, loading, isMobileView }) => {\r\n const transTypeIds = useSelector(financeConfigSelector)?.trans_type ?? []\r\n\r\n const newTransTypeIds = useMemo(() => {\r\n return transTypeIds\r\n .sort((a, b) => a.id - b.id)\r\n .filter(\r\n (transTypeId) =>\r\n !excludeTransTypeIdsForAccountTransactions.find(\r\n (_transType) => transTypeId.id === _transType.id,\r\n ),\r\n )\r\n .map((transTypeId, index) => ({ ...transTypeId, color: colors[index] }))\r\n }, [transTypeIds])\r\n\r\n const newData = useMemo(() => {\r\n return (data?.data || []).map((_data) => {\r\n const transTypeIdWithColor = newTransTypeIds.find(\r\n (transTypeId) => transTypeId.id === _data.trans_type_id,\r\n )\r\n return {\r\n ..._data,\r\n color: transTypeIdWithColor?.color ?? colors[0],\r\n }\r\n })\r\n }, [data, newTransTypeIds])\r\n\r\n return (\r\n \r\n \r\n \r\n v.name),\r\n datasets: [\r\n {\r\n data: newData.map((v) => v.count),\r\n backgroundColor: newData.map((_data) => _data.color),\r\n hoverBackgroundColor: newData.map((_data) => _data.color),\r\n },\r\n ],\r\n }}\r\n options={{\r\n responsive: true,\r\n aspectRatio: 1.92,\r\n plugins: {\r\n legend: { position: 'bottom' },\r\n tooltip: {\r\n mode: 'index',\r\n intersect: true,\r\n callbacks: {\r\n label: (tooltipItem) => {\r\n return `${tooltipItem.label}: ${qtyToCurrency(tooltipItem.raw)}`\r\n },\r\n },\r\n },\r\n },\r\n }}\r\n height={isMobileView ? 300 : null}\r\n />\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default memo(injectIntl(PieChart))\r\n","import React from 'react'\r\nimport { Col, Row, Spin } from 'antd'\r\nimport { injectIntl } from 'react-intl'\r\nimport { Line } from 'react-chartjs-2'\r\nimport dayjs from 'dayjs'\r\n\r\nimport { currency, formatDate } from 'utils/formatting'\r\nimport colors from 'components/apps/Dashboard/colour'\r\n\r\nclass LineChart extends React.Component {\r\n shouldComponentUpdate(nextProps) {\r\n return !(nextProps.data === this.props.data && nextProps.loading === this.props.loading)\r\n }\r\n\r\n dateType = () => {\r\n const { params } = this.props\r\n\r\n const dateFrom = dayjs(params.date_from)\r\n const dateTo = dayjs(params.date_to)\r\n\r\n const diff = dayjs([dateTo.year(), dateTo.month(), dateTo.date()]).diff(\r\n dayjs([dateFrom.year(), dateFrom.month(), dateFrom.date()]),\r\n 'day',\r\n false,\r\n )\r\n\r\n if (diff <= 90) return 'daily'\r\n if (diff <= 365) return 'weekly'\r\n return 'monthly'\r\n }\r\n\r\n render() {\r\n const { isMobileView, data, loading, isSmallMobileScreen } = this.props\r\n\r\n const dateType = this.dateType()\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n return `${tooltipItem.dataset.label}: ${currency(tooltipItem.raw)}`\r\n },\r\n },\r\n },\r\n },\r\n scales: {\r\n x: {\r\n grid: {\r\n display: false,\r\n borderWidth: 0,\r\n },\r\n ticks: {\r\n autoSkip: false,\r\n callback(tickValue, index, arrayData) {\r\n const dataLabel = this.getLabelForValue(tickValue)\r\n\r\n if (dateType === 'daily') {\r\n const day = dayjs(dataLabel)\r\n if (day.format('D') % (isSmallMobileScreen ? 3 : 2) === 0)\r\n return formatDate(day)\r\n }\r\n\r\n if (dateType === 'weekly' && index % 4 === 0) {\r\n return formatDate(dayjs(dataLabel))\r\n }\r\n\r\n if (dateType === 'monthly') {\r\n const day = dayjs(dataLabel)\r\n const lengthOfData = Math.floor(arrayData.length / 4)\r\n const arrayOfNumberLengthData = Array(lengthOfData)\r\n .fill(0)\r\n .map((__, _index) => (_index + 1) * 4)\r\n if (arrayOfNumberLengthData.includes(index)) return day.format('YYYY MMM')\r\n }\r\n\r\n return ''\r\n },\r\n },\r\n },\r\n y: {\r\n grid: {\r\n display: false,\r\n borderWidth: 0,\r\n },\r\n beginAtZero: true,\r\n ticks: {\r\n callback: (value) => (value ? currency(value) : value),\r\n },\r\n },\r\n },\r\n elements: {\r\n point: {\r\n pointStyle: 'dash',\r\n },\r\n },\r\n }}\r\n height={isMobileView ? 300 : null}\r\n />\r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default injectIntl(LineChart)\r\n","import React from 'react'\r\nimport { injectIntl } from 'react-intl'\r\nimport { Card, Col, Row } from 'antd'\r\nimport { useSelector } from 'react-redux'\r\n\r\nimport { useGeneralLedgerStatsReport } from 'utils/queries'\r\nimport { mobileViewSelector } from 'redux/selectors'\r\nimport { useResponsive } from 'utils/hooks'\r\nimport PieChart from './PieChart'\r\nimport LineChart from './LineChart'\r\n\r\nconst NumberOfTransactionPerSource = injectIntl(({ intl, data, status, isPrint }) => {\r\n const isMobileView = useSelector(mobileViewSelector)\r\n\r\n return (\r\n <>\r\n \r\n {intl.formatMessage({ id: 'reports.number_of_transactions_per_source' })}\r\n \r\n \r\n \r\n )\r\n})\r\n\r\nconst RunningBalance = injectIntl(({ intl, params, data, status, isPrint }) => {\r\n const { isMobileView, screenSizes } = useResponsive()\r\n\r\n if (!Object.values(screenSizes).includes(true)) return null\r\n\r\n return (\r\n <>\r\n \r\n {intl.formatMessage({ id: 'report.running_balance' })}\r\n \r\n \r\n \r\n )\r\n})\r\n\r\nconst Charts = ({ params, isPrint }) => {\r\n const { data, status } = useGeneralLedgerStatsReport({\r\n payload: params,\r\n })\r\n\r\n if (isPrint) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default injectIntl(Charts)\r\n","import React from 'react'\r\nimport { injectIntl } from 'react-intl'\r\nimport { Col, Row } from 'antd'\r\n\r\nimport { currency, formatDate } from 'utils/formatting'\r\nimport Charts from 'components/apps/Reports/AccountTransactions/Charts'\r\n\r\nclass PrintAccountTransactionReport extends React.Component {\r\n render() {\r\n const { data, header, columns, intl, journalTotal, params, getParams, showGraph } = this.props\r\n const formattedData = Object.keys(data) || []\r\n const headerColumns = columns.map((item) => {\r\n return (\r\n \r\n {item.title}\r\n \r\n )\r\n })\r\n const body = []\r\n\r\n formattedData.forEach((item, index) => {\r\n body.push(\r\n \r\n {params?.isCategory || params?.cashFlowDetail ? (\r\n \r\n \r\n
\r\n

{data[item].name || '-'}

\r\n

({data[item].ref_code || '-'})

\r\n
\r\n \r\n \r\n ) : (\r\n \r\n \r\n
{intl.formatMessage({ id: 'report.opening_balance' })}
\r\n \r\n \r\n
\r\n {data[item].opening_credit > -1\r\n ? currency(data[item].opening_credit, false, true, true)\r\n : `(${currency(data[item].opening_credit, false, true, true)})`.replace(\r\n '-',\r\n '',\r\n )}\r\n
\r\n \r\n \r\n
\r\n {data[item].opening_debit > -1\r\n ? currency(data[item].opening_debit, false, true, true)\r\n : `(${currency(data[item].opening_debit, false, true, true)})`.replace('-', '')}\r\n
\r\n \r\n \r\n
\r\n {data[item].opening_balance > -1\r\n ? currency(data[item].opening_balance, false, true, true)\r\n : `(${currency(data[item].opening_balance, false, true, true)})`.replace(\r\n '-',\r\n '',\r\n )}\r\n
\r\n \r\n \r\n )}\r\n\r\n {(data[item].data || []).map((v) => {\r\n return (\r\n \r\n {formatDate(v.trans_date)}\r\n {v.source}\r\n {v.desc}\r\n {v.reference}\r\n {v.ref_number}\r\n \r\n {v.debit > -1\r\n ? currency(v.debit, false, true, true)\r\n : `(${currency(v.debit, false, true, true)})`.replace('-', '')}\r\n \r\n \r\n {v.credit > -1\r\n ? currency(v.credit, false, true, true)\r\n : `(${currency(v.credit, false, true, true)})`.replace('-', '')}\r\n \r\n {!params.cashFlowDetail && (\r\n \r\n {v.balance > -1\r\n ? currency(v.balance, false, true, true)\r\n : `(${currency(v.balance, false, true, true)})`.replace('-', '')}\r\n \r\n )}\r\n \r\n )\r\n })}\r\n \r\n \r\n
{intl.formatMessage({ id: 'report.closing_balance' })}
\r\n \r\n \r\n
\r\n {data[item].closing_debit > -1\r\n ? currency(data[item].closing_debit, false, true, true)\r\n : `(${currency(data[item].closing_debit, false, true, true)})`.replace('-', '')}\r\n
\r\n \r\n \r\n
\r\n {data[item].closing_credit > -1\r\n ? currency(data[item].closing_credit, false, true, true)\r\n : `(${currency(data[item].closing_credit, false, true, true)})`.replace('-', '')}\r\n
\r\n \r\n {!params.cashFlowDetail && (\r\n \r\n
\r\n {data[item].closing_balance > -1\r\n ? currency(data[item].closing_balance, false, true, true)\r\n : `(${currency(data[item].closing_balance, false, true, true)})`.replace(\r\n '-',\r\n '',\r\n )}\r\n
\r\n \r\n )}\r\n \r\n {(Object.keys(data) || []).length !== index + 1 && (\r\n \r\n \r\n \r\n )}\r\n
,\r\n )\r\n })\r\n\r\n body.push(\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{intl.formatMessage({ id: 'report.total' })}
\r\n \r\n \r\n
{currency(journalTotal.total_debit || 0, false, true, true)}
\r\n \r\n \r\n
{currency(journalTotal.total_credit || 0, false, true, true)}
\r\n \r\n \r\n \r\n
,\r\n )\r\n\r\n return (\r\n
\r\n
\r\n \r\n {header}\r\n \r\n {showGraph ? : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {headerColumns}\r\n \r\n {body}\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default injectIntl(PrintAccountTransactionReport)\r\n","import React, { Fragment } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport {Col, message, Row, Skeleton, Spin} from 'antd'\r\nimport { injectIntl } from 'react-intl'\r\nimport ReactToPrint from 'react-to-print'\r\nimport dayjs from 'dayjs'\r\nimport _ from 'lodash'\r\n\r\nimport { cashFlowDetailReports, generalLedgerReports } from 'utils/apis'\r\nimport { generalLedgerCategoryReports } from 'utils/apis/reports'\r\nimport { currency, formatDate, formatDateText } from 'utils/formatting'\r\nimport Filter from 'components/apps/Reports/AccountTransactions/Filter'\r\nimport PrintTable from 'components/apps/Reports/AccountTransactions/Print'\r\nimport { cleanBlankValue } from 'utils/helper'\r\nimport { LinkTransType, PageHeader, Pagination, Print } from 'components/UI'\r\nimport Charts from 'components/apps/Reports/AccountTransactions/Charts'\r\nimport { LoadingInvalidData } from 'components/apps/FinanceProducts/FinanceProductDetail/StockMovements'\r\n\r\nconst initialParams = {\r\n date_to: dayjs(),\r\n date_from: dayjs().subtract(1, 'months'),\r\n tags: [],\r\n tags_setting: null,\r\n sources_id: [],\r\n search: '',\r\n}\r\n\r\nclass AccountTransactionsReports extends React.Component {\r\n _isMounted = false\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.state = {\r\n loading: true,\r\n params: initialParams,\r\n page: 1,\r\n total: 0,\r\n data: [],\r\n per_page: 100,\r\n journal_total: {},\r\n summary: true,\r\n isShowFilter: false,\r\n accountName: {},\r\n title_lang: '',\r\n showGraph: false,\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this._isMounted = true\r\n if (this.props.loadedInit) {\r\n this.setParams({\r\n date_to: dayjs(this.props.params.date_to, 'YYYY-MM-DD').isValid()\r\n ? dayjs(this.props.params.date_to, 'YYYY-MM-DD')\r\n : dayjs(),\r\n date_from: dayjs(this.props.params.date_from, 'YYYY-MM-DD').isValid()\r\n ? dayjs(this.props.params.date_from, 'YYYY-MM-DD')\r\n : dayjs().subtract(1, 'months'),\r\n tags: this.parseTags(),\r\n tags_setting: this.props.params.tags_setting,\r\n })\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (!_.isEqual(prevProps.params, this.props.params)) {\r\n this.setParams({\r\n date_to: dayjs(this.props.params.date_to, 'YYYY-MM-DD').isValid()\r\n ? dayjs(this.props.params.date_to, 'YYYY-MM-DD')\r\n : dayjs(),\r\n date_from: dayjs(this.props.params.date_from, 'YYYY-MM-DD').isValid()\r\n ? dayjs(this.props.params.date_from, 'YYYY-MM-DD')\r\n : dayjs().subtract(1, 'months'),\r\n tags: this.parseTags(),\r\n tags_setting: this.props.params.tags_setting,\r\n });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this._isMounted = false\r\n }\r\n\r\n onSearchDebounce = _.debounce((params) => this.setParams(params), 1000)\r\n\r\n getParams = () => {\r\n const { page, per_page } = this.state\r\n const {\r\n date_to,\r\n date_from,\r\n tags,\r\n tags_setting: tagsSetting,\r\n sources_id,\r\n search,\r\n } = this.state.params\r\n\r\n const useGlCatId = this.props.params.isCategory || this.props.params.cashFlowDetail\r\n\r\n const payload = {\r\n [useGlCatId ? 'gl_cat_id' : 'account_id']: this.props.params.id,\r\n date_from: dayjs(date_from).isValid() ? dayjs(date_from).format('YYYY-MM-DD') : null,\r\n date_to: dayjs(date_to).isValid() ? dayjs(date_to).format('YYYY-MM-DD') : null,\r\n tags: Array.isArray(tags) ? tags.join(',') : null,\r\n tags_setting: tagsSetting,\r\n page,\r\n per_page,\r\n }\r\n\r\n if (this.props.params.remove_closing) payload.remove_closing = 1\r\n\r\n if (!this.props.params.isCategory && !this.props.params.cashFlowDetail) {\r\n payload.sources_id = sources_id.join(',')\r\n payload.search = search\r\n }\r\n\r\n return cleanBlankValue(payload)\r\n }\r\n\r\n searchHandler = (event) => {\r\n const search = event.target.value\r\n\r\n this.onSearchDebounce({ search })\r\n }\r\n\r\n loadData = () => {\r\n const payload = this.getParams()\r\n if (!(payload.date_from && payload.date_to)) return\r\n\r\n this.setState({\r\n loading: true,\r\n })\r\n\r\n let getReports\r\n\r\n if (this.props.params.isCategory) {\r\n getReports = generalLedgerCategoryReports\r\n } else if (this.props.params.cashFlowDetail) {\r\n getReports = cashFlowDetailReports\r\n } else {\r\n getReports = generalLedgerReports\r\n }\r\n\r\n getReports(payload)\r\n .then((response) => {\r\n if (this._isMounted) {\r\n if (response.data.success) {\r\n const { data } = response.data\r\n\r\n let isInvalid = false\r\n if (_.isArray(data.data)) {\r\n data.data.forEach((row) => {\r\n if (_.isArray(row.data)) {\r\n row.data.forEach((item) => {\r\n if (item.valid === false) isInvalid = true\r\n })\r\n }\r\n })\r\n }\r\n\r\n if (isInvalid) setTimeout(() => this.loadData(), 10000)\r\n\r\n this.setState({\r\n summary: false,\r\n loading: false,\r\n data: data.data || [],\r\n total: data.total || 0,\r\n page: data.current_page || 1,\r\n per_page: data.per_page || 0,\r\n journal_total: data.journal_total,\r\n accountName: data.account_name,\r\n title_lang: data.title_lang,\r\n })\r\n } else {\r\n message.error(response.data.message)\r\n this.setState({ loading: false, total: 0, page: 1, summary: false })\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n if (this._isMounted) {\r\n message.error(\r\n (error && error.message) || this.props.intl.formatMessage({ id: 'button.error_data_' }),\r\n )\r\n this.setState({\r\n loading: false,\r\n total: 0,\r\n page: 1,\r\n summary: false,\r\n })\r\n }\r\n })\r\n }\r\n\r\n toggleShowFilter = () => {\r\n this.setState((prevState) => ({\r\n isShowFilter: !prevState.isShowFilter,\r\n }))\r\n }\r\n\r\n setParams = (params) => {\r\n this.setState((prevState) => {\r\n return {\r\n params: {\r\n ...prevState.params,\r\n ...params,\r\n },\r\n page: 1,\r\n total: 0,\r\n }\r\n }, this.loadData)\r\n }\r\n\r\n renderLoading = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n getHeader = () => {\r\n const { intl, params } = this.props\r\n const { accountName, title_lang } = this.state\r\n const nameAccount = accountName ? accountName.title : ''\r\n const codeAccount = accountName ? accountName.code : ''\r\n\r\n if (params.isCategory || params.cashFlowDetail) return

{title_lang}

\r\n\r\n return (\r\n \r\n

\r\n {intl.formatMessage(\r\n { id: 'report.account_transactions_title' },\r\n { account: nameAccount },\r\n )}\r\n

\r\n

{codeAccount}

\r\n
\r\n )\r\n }\r\n\r\n parseTags = () => {\r\n let { tags } = this.props.params\r\n if (this.props.params.tags && typeof this.props.params.tags === 'string') {\r\n tags = this.props.params.tags.split(',')\r\n }\r\n\r\n return tags || []\r\n }\r\n\r\n clearFilter = () => {\r\n const { params } = this.state\r\n\r\n const unClearParams = {\r\n date_from: dayjs(params.date_from).format('YYYY-MM-DD'),\r\n date_to: dayjs(params.date_to).format('YYYY-MM-DD'),\r\n tags: params.tags,\r\n tags_setting: params.tags_setting,\r\n search: params.search,\r\n }\r\n\r\n return {\r\n onClear: () => {\r\n this.setParams({\r\n ...initialParams,\r\n ...unClearParams,\r\n date_from: dayjs(params.date_from),\r\n date_to: dayjs(params.date_to),\r\n })\r\n },\r\n showClearBtn: !_.isEqual(\r\n cleanBlankValue({\r\n ...params,\r\n ...unClearParams,\r\n }),\r\n cleanBlankValue({\r\n ...initialParams,\r\n ...unClearParams,\r\n }),\r\n ),\r\n }\r\n }\r\n\r\n getBody = () => {\r\n const { data, journal_total } = this.state\r\n const { intl, params } = this.props\r\n const formattedData = Object.keys(data) || []\r\n const body = []\r\n\r\n if (params.isCategory || params.cashFlowDetail) {\r\n formattedData.forEach((item, index) => {\r\n body.push(\r\n \r\n \r\n \r\n
\r\n

{data[item].name || '-'}

\r\n

({data[item].ref_code || '-'})

\r\n
\r\n \r\n \r\n {(data[item].data || []).map((v) => {\r\n const { trans_type_id } = v\r\n return (\r\n \r\n {formatDate(v.trans_date)}\r\n {v.source}\r\n \r\n \r\n \r\n {/* {link.length ? { e.preventDefault(); history.push(link) }}>{v.desc} : v.desc} */}\r\n {v.reference}\r\n {v.ref_number}\r\n \r\n {v.debit > -1\r\n ? currency(v.debit, false, true, true)\r\n : `(${currency(v.debit, false, true, true)})`.replace('-', '')}\r\n \r\n {currency(v.credit, false, true, true)}\r\n {!params.cashFlowDetail ? (\r\n \r\n {v.balance > -1\r\n ? currency(v.balance, false, true, true)\r\n : `(${currency(v.balance, false, true, true)})`.replace('-', '')}\r\n \r\n ) : null}\r\n \r\n )\r\n })}\r\n \r\n \r\n
{intl.formatMessage({ id: 'report.closing_balance' })}
\r\n \r\n \r\n
\r\n {data[item].closing_debit > -1\r\n ? currency(data[item].closing_debit, false, true, true)\r\n : `(${currency(data[item].closing_debit, false, true, true)})`.replace('-', '')}\r\n
\r\n \r\n \r\n
{currency(data[item].closing_credit, false, true, true)}
\r\n \r\n {!params.cashFlowDetail ? (\r\n \r\n
\r\n {data[item].closing_balance > -1\r\n ? currency(data[item].closing_balance, false, true, true)\r\n : `(${currency(data[item].closing_balance, false, true, true)})`.replace(\r\n '-',\r\n '',\r\n )}\r\n
\r\n \r\n ) : null}\r\n \r\n {(Object.keys(data) || []).length !== index + 1 && (\r\n \r\n \r\n \r\n )}\r\n
,\r\n )\r\n })\r\n body.push(\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{intl.formatMessage({ id: 'report.total' })}
\r\n \r\n \r\n
{currency(journal_total.total_debit || 0, false, true, true)}
\r\n \r\n \r\n
{currency(journal_total.total_credit || 0, false, true, true)}
\r\n \r\n {!params.cashFlowDetail ? : null}\r\n \r\n
,\r\n )\r\n\r\n return body\r\n }\r\n\r\n formattedData.forEach((item, index) => {\r\n body.push(\r\n \r\n \r\n \r\n
{intl.formatMessage({ id: 'report.opening_balance' })}
\r\n \r\n \r\n
\r\n {data[item].opening_debit > -1\r\n ? currency(data[item].opening_debit, false, true, true)\r\n : `(${currency(data[item].opening_debit, false, true, true)})`.replace('-', '')}\r\n
\r\n \r\n \r\n
{currency(data[item].opening_credit, false, true, true)}
\r\n \r\n \r\n
\r\n {data[item].opening_balance > -1\r\n ? currency(data[item].opening_balance, false, true, true)\r\n : `(${currency(data[item].opening_balance, false, true, true)})`.replace('-', '')}\r\n
\r\n \r\n \r\n {(data[item].data || []).map((v) => {\r\n return (\r\n \r\n {dayjs(v.trans_date, 'YYYY-MM-DD').format(formatDateText())}\r\n {v.source}\r\n \r\n \r\n \r\n {v.reference}\r\n {v.ref_number}\r\n \r\n {v.debit > -1\r\n ? currency(v.debit, false, true, true)\r\n : `(${currency(v.debit, false, true, true)})`.replace('-', '')}\r\n \r\n {currency(v.credit, false, true, true)}\r\n \r\n {v.valid === false ? (\r\n
\r\n \r\n
\r\n ) : v.balance > -1 ? (\r\n currency(v.balance, false, true, true)\r\n ) : (\r\n `(${currency(v.balance, false, true, true)})`.replace('-', '')\r\n )}\r\n \r\n \r\n )\r\n })}\r\n \r\n \r\n
{intl.formatMessage({ id: 'report.closing_balance' })}
\r\n \r\n \r\n
\r\n {data[item].closing_debit > -1\r\n ? currency(data[item].closing_debit, false, true, true)\r\n : `(${currency(data[item].closing_debit, false, true, true)})`.replace('-', '')}\r\n
\r\n \r\n \r\n
{currency(data[item].closing_credit, false, true, true)}
\r\n \r\n \r\n
\r\n {data[item].closing_balance > -1\r\n ? currency(data[item].closing_balance, false, true, true)\r\n : `(${currency(data[item].closing_balance, false, true, true)})`.replace('-', '')}\r\n
\r\n \r\n \r\n {(Object.keys(data) || []).length !== index + 1 && (\r\n \r\n \r\n \r\n )}\r\n
,\r\n )\r\n })\r\n body.push(\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{intl.formatMessage({ id: 'report.total' })}
\r\n \r\n \r\n
{currency(journal_total.total_debit || 0, false, true, true)}
\r\n \r\n \r\n
{currency(journal_total.total_credit || 0, false, true, true)}
\r\n \r\n \r\n \r\n
,\r\n )\r\n\r\n return body\r\n }\r\n\r\n toggleGraphHandler = () => {\r\n this.setState((prevState) => ({ showGraph: !prevState.showGraph }))\r\n }\r\n\r\n render() {\r\n const { params, data, page, total, per_page, loading, journal_total, showGraph } = this.state\r\n const { intl, isMobileView } = this.props\r\n\r\n const columns = [\r\n {\r\n title: intl.formatMessage({ id: 'report.date' }),\r\n dataIndex: 'date',\r\n key: 'date',\r\n },\r\n {\r\n title: intl.formatMessage({ id: 'report.source' }),\r\n dataIndex: 'source',\r\n key: 'source',\r\n },\r\n {\r\n title: intl.formatMessage({ id: 'report.description' }),\r\n dataIndex: 'description',\r\n key: 'description',\r\n },\r\n {\r\n title: intl.formatMessage({ id: 'report.reference' }),\r\n dataIndex: 'reference',\r\n key: 'reference',\r\n },\r\n {\r\n title: intl.formatMessage({ id: 'report.number' }),\r\n dataIndex: 'ref_number',\r\n key: 'ref_number',\r\n },\r\n {\r\n title: intl.formatMessage({ id: 'report.debit' }),\r\n dataIndex: 'debit',\r\n key: 'debit',\r\n textAlign: 'right',\r\n },\r\n {\r\n title: intl.formatMessage({ id: 'report.credit' }),\r\n dataIndex: 'credit',\r\n key: 'credit',\r\n textAlign: 'right',\r\n },\r\n ]\r\n\r\n if (!this.props.params.cashFlowDetail) {\r\n columns.push({\r\n title: intl.formatMessage({ id: 'report.running_balance' }),\r\n dataIndex: 'running_balance',\r\n key: 'running_balance',\r\n textAlign: 'right',\r\n })\r\n }\r\n\r\n const header = columns.map((item) => {\r\n return (\r\n \r\n \r\n
\r\n {item.title}\r\n \r\n
\r\n
\r\n \r\n )\r\n })\r\n\r\n const body = this.getBody()\r\n\r\n const pageHeader = this.getHeader()\r\n return (\r\n <>\r\n }\r\n content={() => this.print}\r\n removeAfterPrint\r\n />,\r\n ]}\r\n />\r\n \r\n {showGraph ? : null}\r\n {this.state.summary ? (\r\n this.renderLoading()\r\n ) : (\r\n \r\n
\r\n
\r\n
\r\n {loading && (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {header}\r\n \r\n {body}\r\n
\r\n
\r\n {!body.length && (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n

\r\n {intl.formatMessage({ id: 'report.no_data' })}\r\n

\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {total > per_page && (\r\n
\r\n \r\n this.setState({ page: _page, per_page: _per_page }, this.loadData)\r\n }\r\n total={total || 0}\r\n showSizeChanger\r\n />\r\n
\r\n )}\r\n
\r\n )}\r\n {/* not use display: none to prevent this error */}\r\n {/* Uncaught DOMException: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The image argument is a canvas element with a width or height of 0. */}\r\n
\r\n {\r\n this.print = el\r\n }}\r\n data={data}\r\n columns={columns}\r\n header={pageHeader}\r\n journalTotal={journal_total}\r\n params={this.props.params}\r\n getParams={this.getParams}\r\n showGraph={showGraph}\r\n />\r\n
\r\n \r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n isMobileView: state.settings.isMobileView,\r\n loadedInit: state.inits.loadedInit,\r\n show: state.finance.accountTransactionReport.show,\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(injectIntl(AccountTransactionsReports))\r\n","// antd theme settings\r\n// you should restart dev server after variables changes\r\n// ref: https://github.com/ant-design/ant-design/blob/master/components/style/themes/default.less\r\nmodule.exports = {\r\n '@body-background': '#f2f4f8',\r\n '@font-size-base': '13px',\r\n '@font-size-lg': '15px',\r\n\r\n '@font-family': 'Nunito Sans, sans-serif',\r\n '@code-family': 'Nunito Sans, sans-serif',\r\n\r\n '@border-color-base': '#e4e9f0',\r\n\r\n '@background-color-light': '#f2f4f8',\r\n '@background-color-base': '#f2f4f8',\r\n\r\n '@primary-color': '#0190fe',\r\n '@info-color': '#0887c9',\r\n '@success-color': '#46be8a',\r\n '@error-color': '#fb434a',\r\n '@highlight-color': '#fb434a',\r\n '@warning-color': '#f39834',\r\n '@normal-color': '#e4e9f0',\r\n\r\n '@input-padding-horizontal': '13px',\r\n '@input-padding-vertical-base': '7px',\r\n '@input-padding-vertical-sm': '11px',\r\n '@input-padding-vertical-lg': '11px',\r\n '@input-border-color': '#e4e9f0',\r\n '@input-hover-border-color': '#0190fe',\r\n\r\n '@shadow-color': 'rgba(0,0,0,.15)',\r\n '@box-shadow-base': '0 10px 35px -5px rgba(0,0,0,.15)',\r\n '@shadow-1-up': '0 -10px 35px -5px rgba(0,0,0,.15)',\r\n '@shadow-1-down': '0 10px 35px -5px rgba(0,0,0,.15)',\r\n '@shadow-1-left': '-10px 10px 35px -5px rgba(0,0,0,.15)',\r\n '@shadow-1-right': '10px 0 35px -5px rgba(0,0,0,.15)',\r\n '@shadow-2': '0 0px 35px -5px rgba(0,0,0,.15)',\r\n\r\n '@table-header-bg': '#f2f4f8',\r\n '@table-header-sort-bg': '#f2f4f8',\r\n '@table-row-hover-bg': '#e4e9f0',\r\n '@table-padding-vertical': '12px',\r\n '@table-padding-horizontal': '8px',\r\n\r\n '@modal-mask-bg': 'rgba(15, 12, 41, 0.5)',\r\n}\r\n","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport store from 'store'\r\nimport Router from 'router'\r\nimport { ClearBrowserCacheBoundary } from 'react-clear-browser-cache'\r\nimport SentryErrorBoundary from 'components/SentryErrorBoundary'\r\nimport { initializeFp } from 'utils/gtm'\r\nimport { changeLayoutSetting } from 'redux/settings/actions'\r\nimport InstallPromptWrapper from './InstallPromptWrapper'\r\nimport UpdateAppWrapper from './UpdateAppWrapper'\r\nimport { ServiceWorkerProvider } from './ServiceWorkerProvider'\r\n\r\nclass App extends Component {\r\n async componentDidMount() {\r\n this.setLayoutView(true)\r\n window.addEventListener('resize', () => {\r\n this.setLayoutView()\r\n })\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n // Reinitialize facebook pixel\r\n if (prevProps.user !== this.props.user) {\r\n if (process.env.NODE_ENV === 'production') {\r\n initializeFp(this.props.user.email)\r\n }\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('resize', this.setLayoutView)\r\n }\r\n\r\n setLayoutView = (load = false) => {\r\n const windowWidth = global.window.innerWidth\r\n const currentMobileState = windowWidth < 768\r\n const prevMobileState = store.get('app.settings.isMobileView')\r\n const currentTabState = windowWidth >= 768 && windowWidth <= 992\r\n const prevTabState = store.get('app.settings.isTabView')\r\n\r\n if (currentMobileState !== prevMobileState || currentTabState !== prevTabState || load) {\r\n this.props.onChangeLayoutSetting({\r\n isMobileView: currentMobileState,\r\n isTabView: currentTabState,\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n const { history, user } = this.props\r\n const appComponent = (\r\n <>\r\n \r\n \r\n \r\n \r\n )\r\n\r\n return (\r\n \r\n \r\n {window.Cypress ? (\r\n appComponent\r\n ) : (\r\n {appComponent}\r\n )}\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ user }) => ({\r\n user,\r\n})\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n onChangeLayoutSetting: (payload) => dispatch(changeLayoutSetting(payload)),\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(App)\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"legendText\":\"chart-legend_legendText__1rqCN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tag\":\"tag-suggestion_tag__1AMf4\",\"dark\":\"tag-suggestion_dark__1lXyV\"};","import React from 'react'\r\nimport * as Sentry from '@sentry/react'\r\nimport { Result, Button, Typography } from 'antd'\r\nimport { CloseCircleOutlined } from '@ant-design/icons'\r\n\r\nconst { Paragraph, Text } = Typography\r\n\r\nfunction SentryErrorBoundary({ children, ...props }) {\r\n return (\r\n (\r\n {\r\n window.location.reload()\r\n }}\r\n >\r\n Reload\r\n ,\r\n ,\r\n ]}\r\n >\r\n
\r\n \r\n \r\n Maaf, ditemukan masalah saat Anda menggunakan aplikasi Kledo:\r\n \r\n \r\n \r\n {error.toString()}\r\n \r\n {componentStack}\r\n
\r\n \r\n )}\r\n {...props}\r\n >\r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default SentryErrorBoundary\r\n","import React, { useEffect } from 'react'\r\nimport { injectIntl } from 'react-intl'\r\nimport { Button, Space } from 'antd'\r\n\r\nimport { getMobileOperatingSystem } from 'utils/helper'\r\nimport { useSelector } from \"react-redux\";\r\nimport { darkModeSelector } from \"redux/selectors\";\r\n\r\nconst InstallPromptWrapper = ({ intl }) => {\r\n const [visible, setVisible] = React.useState(false)\r\n const [platform, setPlatform] = React.useState()\r\n const darkMode = useSelector(darkModeSelector)\r\n\r\n useEffect(() => {\r\n if (getMobileOperatingSystem() === 'android') {\r\n setVisible(true)\r\n setPlatform('android')\r\n }\r\n if (getMobileOperatingSystem() === 'ios') {\r\n setVisible(true)\r\n setPlatform('ios')\r\n }\r\n }, [])\r\n\r\n return (\r\n \r\n
\r\n {intl.formatMessage({\r\n id:\r\n platform === 'ios'\r\n ? 'notification.kledo_is_now_on_app_store'\r\n : 'notification.kledo_is_now_on_google_play',\r\n })}\r\n
\r\n \r\n \r\n {intl.formatMessage({ id: 'notification.install_now' })}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default injectIntl(InstallPromptWrapper)\r\n","import React from 'react'\r\nimport { withRouter } from 'react-router-dom'\r\n\r\n@withRouter\r\nclass PublicLayout extends React.PureComponent {\r\n render() {\r\n const { children } = this.props\r\n return children\r\n }\r\n}\r\n\r\nexport default PublicLayout\r\n","import { Checkbox, Form, Input, Modal, message, Typography } from 'antd'\r\nimport Axios from 'axios'\r\nimport { Cancel, Reset, Save } from 'components/UI'\r\nimport React, { useCallback, useMemo } from 'react'\r\nimport { useQueryClient } from 'react-query'\r\nimport localStore from 'store'\r\nimport { generateBaseUri } from 'utils/helper'\r\n\r\nconst ChangeEnvModal = ({ visible, onCancel }) => {\r\n const queryClient = useQueryClient()\r\n\r\n const initialValues = useMemo(() => {\r\n const isOverwriteBaseUrl = localStore.get('app.isOverwriteBaseUrl')\r\n return {\r\n base_url: localStore.get('app.bypassEndpoint') || process.env.REACT_APP_API_URL,\r\n overwrite_baseurl: typeof isOverwriteBaseUrl !== 'undefined' ? isOverwriteBaseUrl : true,\r\n }\r\n }, [])\r\n\r\n const submitHandler = useCallback(\r\n (values) => {\r\n localStore.set('app.bypassEndpoint', values.base_url)\r\n localStore.set('app.isOverwriteBaseUrl', values.overwrite_baseurl)\r\n queryClient.clear()\r\n Axios.defaults.baseURL = values.base_url\r\n message.success('Base URL berhasil diganti')\r\n onCancel()\r\n },\r\n [onCancel, queryClient],\r\n )\r\n\r\n const resetHandler = useCallback(() => {\r\n localStore.set('app.bypassEndpoint', '')\r\n localStore.set('app.isOverwriteBaseUrl', false)\r\n queryClient.clear()\r\n Axios.defaults.baseURL = generateBaseUri()\r\n message.success('Base URL berhasil direset')\r\n onCancel()\r\n }, [onCancel, queryClient])\r\n\r\n return (\r\n ,\r\n ,\r\n ,\r\n ]}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Jika dicentang, hanya berlaku untuk login yang memiliki 1 perusahaan. Overwrite disini\r\n artinyaa baseurl yang diinputkan akan mengganti endpoint di response init.\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ChangeEnvModal\r\n","import React from 'react'\r\nimport { injectIntl } from 'react-intl'\r\nimport { Alert, Layout } from 'antd'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { connect } from 'react-redux'\r\nimport { isEmpty } from 'lodash'\r\nimport store from 'store'\r\nimport NProgress from 'nprogress'\r\nimport dayjs from 'dayjs'\r\n\r\nimport { initsPublic } from 'redux/actions'\r\nimport { changeSetting } from 'redux/settings/actions'\r\nimport { hideLoginForm } from 'redux/user/actions'\r\nimport ChangeEnvModal from 'components/apps/User/ChangeEnvModal'\r\nimport { allowedLocales } from 'utils/static'\r\nimport styles from './style.module.scss'\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n onInits: () => dispatch(initsPublic()),\r\n onChangeSetting: (payload) => dispatch(changeSetting(payload)),\r\n hideLoginModal: () => dispatch(hideLoginForm()),\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ options: { options }, inits: { loading }, settings: { locale } }) => ({\r\n property: options,\r\n loading,\r\n locale,\r\n})\r\n\r\n@withRouter\r\n@connect(mapStateToProps, mapDispatchToProps)\r\nclass LoginLayout extends React.PureComponent {\r\n state = {\r\n backgroundNumber: 7,\r\n backgroundEnabled: false,\r\n networkErr: false,\r\n countClick: 0,\r\n showEnvModal: false,\r\n }\r\n\r\n componentDidMount() {\r\n const { property, locale, onChangeSetting } = this.props\r\n this.props.hideLoginModal()\r\n store.remove('app.endpoint')\r\n this.onInit()\r\n if (!isEmpty(property) && locale !== property.property_language) {\r\n onChangeSetting({\r\n setting: 'locale',\r\n value: locale && allowedLocales.includes(locale) ? locale : property.property_language,\r\n })\r\n }\r\n }\r\n\r\n onInit = async () => {\r\n const { onInits } = this.props\r\n const r = await onInits()\r\n if (r === false) {\r\n this.setState({ networkErr: true })\r\n }\r\n }\r\n\r\n changeBackground = () => {\r\n const { backgroundNumber } = this.state\r\n this.setState({\r\n backgroundEnabled: true,\r\n backgroundNumber: backgroundNumber === 5 ? 1 : backgroundNumber + 1,\r\n })\r\n }\r\n\r\n toggleBackground = () => {\r\n const { backgroundEnabled } = this.state\r\n this.setState({\r\n backgroundEnabled: !backgroundEnabled,\r\n })\r\n }\r\n\r\n renderLogo = () => {\r\n const { backgroundEnabled } = this.state\r\n const { property } = this.props\r\n if (backgroundEnabled) {\r\n if (!isEmpty(property.property_logo)) {\r\n return {property.property_name}\r\n }\r\n\r\n return \"Kledo\"\r\n }\r\n\r\n return \"Kledo\"\r\n }\r\n\r\n clickLayout = () => {\r\n this.setState((prevState) => {\r\n const countClick = prevState.countClick + 1\r\n return { ...prevState, countClick, showEnvModal: countClick > 10 }\r\n })\r\n }\r\n\r\n closeEnvModal = () => this.setState({ countClick: 0, showEnvModal: false })\r\n\r\n render() {\r\n const { children, loading, intl } = this.props\r\n const { backgroundNumber, backgroundEnabled, networkErr, showEnvModal } = this.state\r\n\r\n if (loading) {\r\n NProgress.start()\r\n } else {\r\n NProgress.done()\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n {networkErr ? (\r\n \r\n ) : (\r\n children\r\n )}\r\n
\r\n \r\n
\r\n Powered by\r\n
\r\n \r\n \"Kledo\"\r\n \r\n
\r\n
\r\n\r\n

©{` ${dayjs().format('YYYY')} Kledo. All rights reserved.`}

\r\n \r\n \r\n
\r\n {showEnvModal && }\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default injectIntl(LoginLayout)\r\n","import React from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { UserOutlined } from '@ant-design/icons'\r\nimport { Avatar, Dropdown, Menu } from 'antd'\r\nimport { FormattedMessage, injectIntl } from 'react-intl'\r\nimport { Link } from 'react-router-dom'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { push } from 'connected-react-router'\r\n\r\nimport { logout } from 'redux/user/actions'\r\nimport { checkPermission } from 'redux/user/selectors'\r\nimport { formatDate } from 'utils/formatting'\r\nimport { Upgrade } from 'components/UI/Button'\r\n\r\nimport styles from './style.module.scss'\r\n\r\n@connect(\r\n (state) => {\r\n return {\r\n user: state.user,\r\n billing: state.billing,\r\n hasAccessToBilling: checkPermission(state, 'billing'),\r\n }\r\n },\r\n (dispatch) => {\r\n return {\r\n onLogout: () => dispatch(logout()),\r\n push: (path) => dispatch(push(path)),\r\n }\r\n },\r\n)\r\nclass ProfileMenu extends React.Component {\r\n logout = async (e) => {\r\n e.preventDefault()\r\n await this.props.onLogout()\r\n this.props.push('/user/login')\r\n }\r\n\r\n goToUpgradeHandler = () => {\r\n if (this.props.billing.can_be_renewed) {\r\n this.props.push('/settings/billing/upgrade?isRenew=1')\r\n return\r\n }\r\n this.props.push('/settings/billing/upgrade')\r\n }\r\n\r\n render() {\r\n const { user, billing, intl, hasAccessToBilling } = this.props\r\n const items = [\r\n {\r\n key: 'topBar.profileMenu.hello',\r\n label: (\r\n \r\n \r\n , {user.name || 'Anonymous'}\r\n \r\n \r\n ),\r\n },\r\n {\r\n key: 'divider-1',\r\n type: 'divider',\r\n },\r\n {\r\n key: 'topBar.billing.plan',\r\n label: (\r\n <>\r\n \r\n :{' '}\r\n \r\n {billing.plan}\r\n
\r\n \r\n :{' '}\r\n \r\n {billing.expiry_date ? (\r\n formatDate(new Date(billing.expiry_date).setDate(new Date(billing.expiry_date).getDate() - 1))\r\n ) : (\r\n \r\n )}\r\n
\r\n {(billing.can_be_upgraded || billing.can_be_renewed) && hasAccessToBilling && (\r\n \r\n )}\r\n \r\n ),\r\n },\r\n {\r\n key: 'divider-2',\r\n type: 'divider',\r\n },\r\n {\r\n key: 'topBar.profileMenu.email',\r\n label: (\r\n \r\n
\r\n \r\n :{' '}\r\n \r\n {user.email}\r\n
\r\n \r\n :{' '}\r\n \r\n {user.phone_number || '-'}\r\n
\r\n \r\n ),\r\n },\r\n {\r\n key: 'divider-3',\r\n type: 'divider',\r\n },\r\n {\r\n key: 'referral',\r\n label: (\r\n \r\n \r\n \r\n ),\r\n icon: ,\r\n },\r\n {\r\n key: 'divider-4',\r\n type: 'divider',\r\n },\r\n {\r\n key: 'profile.profile',\r\n label: (\r\n \r\n \r\n \r\n ),\r\n icon: ,\r\n },\r\n {\r\n key: 'divider-5',\r\n type: 'divider',\r\n },\r\n {\r\n key: 'topBar.profileMenu.logout',\r\n label: (\r\n \r\n \r\n \r\n ),\r\n icon: ,\r\n },\r\n ]\r\n const menu = \r\n return (\r\n (menu)} trigger={['click']}>\r\n
\r\n }\r\n src={user.profile_image}\r\n />\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default injectIntl(ProfileMenu)\r\n","import React from 'react'\r\nimport { Dropdown, Menu, Tooltip } from 'antd'\r\nimport { connect } from 'react-redux'\r\nimport { injectIntl } from 'react-intl'\r\n\r\nimport { changeLanguage } from 'redux/settings/actions'\r\nimport styles from './style.module.scss'\r\n\r\n@connect(\r\n ({ settings, refs: { lang } }) => ({ settings, lang }),\r\n (dispatch) => {\r\n return {\r\n onChangeLanguage: (payload) => dispatch(changeLanguage(payload)),\r\n }\r\n },\r\n)\r\nclass LanguageSelector extends React.PureComponent {\r\n state = {\r\n visibleDropdown: false,\r\n }\r\n\r\n changeLang = ({ key }) => {\r\n const {\r\n onChangeLanguage,\r\n settings: { locale },\r\n } = this.props\r\n if (locale !== key) {\r\n onChangeLanguage({\r\n setting: 'locale',\r\n value: key,\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n settings: { locale },\r\n intl,\r\n } = this.props\r\n const language = locale.substr(0, 2)\r\n const items = this.props.lang.map((item) => {\r\n return {\r\n key: item.value,\r\n label: (\r\n <>\r\n \r\n {item.value.substr(0, 2)}\r\n \r\n {item.name}\r\n \r\n ),\r\n }\r\n })\r\n\r\n const langMenu = (\r\n \r\n )\r\n return (\r\n \r\n this.setState({ visibleDropdown: visible })}\r\n dropdownRender={() => (langMenu)}\r\n trigger={['click']}\r\n >\r\n
\r\n {language}\r\n
\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default injectIntl(LanguageSelector)\r\n","import React, { useCallback, useEffect, useMemo } from 'react'\r\nimport { Dropdown, Menu } from 'antd'\r\nimport { injectIntl } from 'react-intl'\r\nimport { useDispatch } from 'react-redux'\r\nimport { push } from 'connected-react-router'\r\nimport { useQueryClient } from 'react-query'\r\n\r\nimport { useResponsive } from 'utils/hooks'\r\nimport styles from './style.module.scss'\r\n\r\nconst CompanySelector = ({ onChangeCompany, companies, intl }) => {\r\n const { isMobileView } = useResponsive()\r\n const dispatch = useDispatch()\r\n const queryClient = useQueryClient()\r\n\r\n useEffect(() => {\r\n const header = document.querySelector('header.ant-layout-header')\r\n\r\n if (!header) return\r\n\r\n if (isMobileView) header.classList.add(styles.lineHeightInherit)\r\n else header.classList.remove(styles.lineHeightInherit)\r\n }, [isMobileView])\r\n\r\n const changeCompany = useCallback(\r\n ({ key }) => {\r\n if (key === 'list') {\r\n dispatch(push('/companies'))\r\n } else if (key === 'add') {\r\n dispatch(push('/companies/add'))\r\n } else if (companies.selectedEndpoint !== key) {\r\n onChangeCompany(key, () => {\r\n // Clear all cache from react-query to prevent sharing cache data between company.\r\n // Sharing cache data will cause current company use last cache data from previous company\r\n // until current fetching success\r\n queryClient.clear()\r\n })\r\n }\r\n },\r\n [companies, dispatch, onChangeCompany, queryClient],\r\n )\r\n\r\n const selectedCompany = useMemo(\r\n () => companies.companies.filter((e) => e.endpoint === companies.selectedEndpoint),\r\n [companies],\r\n )\r\n\r\n const items = useMemo(() => {\r\n const newItems = companies.companies.map((item) => {\r\n return {\r\n key: item.endpoint,\r\n label: item.name,\r\n }\r\n })\r\n newItems.push({\r\n type: 'divider',\r\n key: Math.random(),\r\n })\r\n if (companies.companies.length > 1) {\r\n newItems.push({\r\n key: 'list',\r\n label: intl.formatMessage({ id: 'companies.company_list' }),\r\n })\r\n } else {\r\n newItems.push({\r\n key: 'add',\r\n label: intl.formatMessage({ id: 'companies.add_company' }),\r\n })\r\n }\r\n return newItems\r\n }, [companies, intl])\r\n\r\n const langMenu = (\r\n \r\n )\r\n return (\r\n (langMenu)}\r\n trigger={['click']}\r\n >\r\n
\r\n \r\n {selectedCompany[0] ? selectedCompany[0].name : ''}\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default injectIntl(CompanySelector)\r\n","import React from 'react'\r\nimport { List, Typography, Skeleton } from 'antd'\r\nimport InfiniteScroll from 'react-infinite-scroller'\r\nimport _ from 'lodash'\r\nimport dayjs from 'dayjs'\r\nimport { Spinner } from 'components/UI'\r\nimport Player from 'components/UI/ModalPlayer/Player'\r\nimport style from './style.module.scss'\r\n\r\nconst relativeTime = require('dayjs/plugin/relativeTime')\r\n\r\ndayjs.extend(relativeTime)\r\n\r\nconst Media = ({ videoId, imageUrl, title }) => {\r\n if (!_.isEmpty(videoId)) {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n }\r\n\r\n if (!_.isEmpty(imageUrl) && _.isEmpty(videoId)) {\r\n return (\r\n
\r\n {title}\r\n
\r\n )\r\n }\r\n\r\n return null\r\n}\r\n\r\nconst News = ({ loading, data, onLoadMore, hasMore, loadingMore }) => {\r\n return (\r\n \r\n \r\n (\r\n \r\n
\r\n
\r\n
\r\n
{item.title}
\r\n
\r\n \r\n {dayjs(item.created_at).fromNow()}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{item.desc}
\r\n
\r\n
\r\n \r\n )}\r\n />\r\n
\r\n
\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default News\r\n","import React from 'react';\r\nimport { message } from 'antd';\r\n\r\nimport News from 'components/apps/Notification/News';\r\nimport {getNews} from 'utils/apis';\r\n\r\nconst NewsContainer = () => {\r\n const [data, setData] = React.useState({});\r\n const [loading, setLoading] = React.useState(false);\r\n const [loadingMore, setLoadingMore] = React.useState(false);\r\n const [hasMore, setHasMore] = React.useState(true);\r\n\r\n const loadData = React.useCallback((mounted) => {\r\n setLoading(true);\r\n getNews().then(response => {\r\n if (mounted) {\r\n if (response.data.success) {\r\n setData(response.data.data);\r\n setLoading(false);\r\n } else {\r\n message.error(response.data.message);\r\n }\r\n setLoading(false);\r\n }\r\n }).catch(() => {\r\n if (mounted) {\r\n setLoading(false);\r\n }\r\n });\r\n }, []);\r\n\r\n const onLoadMore = React.useCallback((page) => {\r\n if (page >= data.last_page) {\r\n setHasMore(false);\r\n }\r\n else {\r\n setLoadingMore(true);\r\n getNews({page}).then(response => {\r\n if (response.data.success) {\r\n const resData = response.data.data;\r\n setData({\r\n ...resData,\r\n data: [\r\n ...data.data,\r\n ...resData.data\r\n ]\r\n });\r\n } else {\r\n message.error(response.data.message);\r\n }\r\n setLoadingMore(false);\r\n }).catch(() => {\r\n setLoadingMore(false);\r\n });\r\n }\r\n }, [data]);\r\n\r\n React.useEffect(() => {\r\n let mounted = true;\r\n loadData(mounted);\r\n return () => { mounted = false };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default NewsContainer;","import React from 'react'\r\nimport { Dropdown, Tooltip } from 'antd'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { injectIntl } from 'react-intl'\r\n\r\nimport News from 'containers/Notification/News'\r\nimport { useResponsive } from 'utils/hooks'\r\nimport { useSelector } from \"react-redux\";\r\nimport { darkModeSelector } from \"redux/selectors\";\r\nimport styles from './style.module.scss'\r\n\r\nconst Actions = ({ intl }) => {\r\n const [visible, setVisible] = React.useState(false)\r\n const darkMode = useSelector(darkModeSelector)\r\n\r\n const { isMobileView } = useResponsive()\r\n\r\n const visibleChangeHandler = (flag) => setVisible(flag)\r\n\r\n const stylePane = { height: 400, overflow: 'auto' }\r\n if (!isMobileView) {\r\n stylePane.width = 400\r\n }\r\n\r\n const menu = (\r\n
\r\n
\r\n \r\n
\r\n
\r\n )\r\n return (\r\n \r\n (menu)}\r\n trigger={['click']}\r\n placement=\"bottomLeft\"\r\n open={visible}\r\n onOpenChange={visibleChangeHandler}\r\n >\r\n
\r\n \r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default injectIntl(Actions)\r\n","import { LoadingOutlined } from '@ant-design/icons'\r\nimport { Divider, Space, Typography } from 'antd'\r\nimport React, { memo } from 'react'\r\nimport { injectIntl } from 'react-intl'\r\nimport { useSelector } from 'react-redux'\r\nimport { loadedInitSelector } from 'redux/selectors'\r\nimport { qtyToCurrency } from 'utils/formatting'\r\nimport { useQueues } from 'utils/queries/queue'\r\n\r\nconst { Text } = Typography\r\n\r\nconst QueueStats = ({ enabled, intl }) => {\r\n const loadedInit = useSelector(loadedInitSelector)\r\n // direfetch 2 detik\r\n const { data } = useQueues({ enabled: loadedInit && enabled, refetchInterval: 2000 })\r\n // tidak ditampilkan jika <= 1\r\n if (!data || data?.data <= 1) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {intl.formatMessage(\r\n { id: 'queue.data_is_waiting_to_be_processed' },\r\n { value: qtyToCurrency(data?.data || 0) },\r\n )}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default memo(injectIntl(QueueStats))\r\n","import { useQuery } from 'react-query'\r\n\r\nimport { getQueues } from 'utils/apis/queue'\r\n\r\nexport function useQueues(options = {}) {\r\n return useQuery(\r\n ['queues'],\r\n async () => {\r\n let response\r\n try {\r\n const { data } = await getQueues()\r\n response = data\r\n } catch (error) {\r\n throw new Error('Failed to load data from server!')\r\n }\r\n return response\r\n },\r\n options,\r\n )\r\n}\r\n","import React from 'react'\r\nimport { message } from 'antd'\r\n\r\nimport Timeline from 'components/apps/Notification/Timeline'\r\nimport HideFeature from \"containers/Billing/HideFeature\"\r\nimport { getFinanceLogs } from 'utils/apis'\r\nimport { isFeaturePro } from \"utils/helper\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { billingSelector } from 'redux/selectors'\r\nimport { injectIntl } from \"react-intl\";\r\n\r\nconst TimelineContainer = ({ isReload, onHideParent, isMobileView, intl }) => {\r\n const [data, setData] = React.useState({})\r\n const [loading, setLoading] = React.useState(false)\r\n const [loadingMore, setLoadingMore] = React.useState(false)\r\n const [hasMore, setHasMore] = React.useState(true)\r\n const billing = useSelector(billingSelector)\r\n const isPaidFeature = isFeaturePro({billing, code: 'settings.audit'})\r\n\r\n const loadData = React.useCallback((mounted) => {\r\n setLoading(true)\r\n getFinanceLogs()\r\n .then((response) => {\r\n if (mounted) {\r\n if (response.data.success) {\r\n setData(response.data.data)\r\n setLoading(false)\r\n } else {\r\n message.error(response.data.message)\r\n }\r\n setLoading(false)\r\n }\r\n })\r\n .catch(() => {\r\n if (mounted) {\r\n setLoading(false)\r\n }\r\n })\r\n }, [])\r\n\r\n const onLoadMore = React.useCallback(\r\n (page) => {\r\n if (page >= data.last_page) {\r\n setHasMore(false)\r\n } else {\r\n setLoadingMore(true)\r\n getFinanceLogs({ page })\r\n .then((response) => {\r\n if (response.data.success) {\r\n const resData = response.data.data\r\n setData({\r\n ...resData,\r\n data: [...data.data, ...resData.data],\r\n })\r\n } else {\r\n message.error(response.data.message)\r\n }\r\n setLoadingMore(false)\r\n })\r\n .catch(() => {\r\n setLoadingMore(false)\r\n })\r\n }\r\n },\r\n [data],\r\n )\r\n\r\n React.useEffect(() => {\r\n let mounted = true\r\n if (isReload) {\r\n loadData(mounted)\r\n }\r\n return () => {\r\n mounted = false\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [isReload])\r\n\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n {!loading && }\r\n \r\n )\r\n}\r\n\r\nexport default injectIntl(TimelineContainer)\r\n","import React from 'react'\r\nimport { Dropdown, Tooltip } from 'antd'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { injectIntl } from 'react-intl'\r\n\r\nimport QueueStats from 'components/apps/Notification/QueueStats'\r\nimport Timeline from 'containers/Notification/Timeline'\r\nimport { useResponsive } from 'utils/hooks'\r\nimport { useSelector } from \"react-redux\";\r\nimport { darkModeSelector } from \"redux/selectors\";\r\nimport styles from './style.module.scss'\r\n\r\nconst Timelines = ({ intl }) => {\r\n const [visible, setVisible] = React.useState(false)\r\n const darkMode = useSelector(darkModeSelector)\r\n\r\n const { isMobileView } = useResponsive()\r\n\r\n const visibleChangeHandler = (flag) => setVisible(flag)\r\n const hideHandler = () => setVisible(false)\r\n\r\n const stylePane = { height: 400, overflow: 'auto' }\r\n if (!isMobileView) {\r\n stylePane.width = 400\r\n }\r\n\r\n const menu = (\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n )\r\n return (\r\n \r\n (menu)}\r\n trigger={['click']}\r\n placement=\"bottomLeft\"\r\n open={visible}\r\n onOpenChange={visibleChangeHandler}\r\n >\r\n
\r\n \r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default injectIntl(Timelines)\r\n","import React, { useCallback } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { Switch, Tooltip } from 'antd'\r\nimport { MoonFilled, SunFilled } from '@ant-design/icons'\r\nimport store from 'store'\r\nimport { injectIntl } from 'react-intl'\r\n\r\nimport { optionsSelector } from 'redux/selectors'\r\nimport { useEditOptionThemeColors } from 'utils/queries/options'\r\nimport { editOptionsRedux } from 'redux/options/actions'\r\n\r\nconst ThemeColors = ({ intl }) => {\r\n const dispatch = useDispatch()\r\n const options = useSelector(optionsSelector)\r\n const isDarkMode = options?.dark_mode === 1\r\n\r\n const editOptionThemeColors = useEditOptionThemeColors()\r\n\r\n const changeThemeHandler = useCallback(\r\n (value) => {\r\n dispatch(editOptionsRedux({ dark_mode: value ? 1 : 0 }))\r\n editOptionThemeColors.mutate(\r\n { dark_mode: value ? 1 : 0 },\r\n {\r\n onSuccess: (response) => {\r\n if (response.data.success) {\r\n if (value) {\r\n store.set('app.darkMode', value ? 1 : 0)\r\n } else {\r\n store.remove('app.darkMode')\r\n }\r\n } else {\r\n dispatch(editOptionsRedux({ dark_mode: value ? 0 : 1 }))\r\n }\r\n },\r\n },\r\n )\r\n },\r\n [dispatch, editOptionThemeColors],\r\n )\r\n\r\n return (\r\n <>\r\n \r\n
\r\n }\r\n unCheckedChildren={}\r\n checked={options?.dark_mode === 1}\r\n onChange={changeThemeHandler}\r\n disabled={editOptionThemeColors.isLoading}\r\n loading={editOptionThemeColors.isLoading}\r\n />\r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default injectIntl(ThemeColors)\r\n","import React from 'react'\r\nimport { Button, Space } from 'antd'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { useSelector } from 'react-redux'\r\n\r\nimport { checkPermission } from 'redux/user/selectors'\r\nimport ProfileMenu from './ProfileMenu'\r\nimport LanguageSelector from './LanguageSelector'\r\nimport CompanySelector from './CompanySelector'\r\nimport Actions from './Actions'\r\nimport Timelines from './Timelines'\r\nimport ThemeColors from \"./ThemeColors\";\r\n\r\nimport './style.scss'\r\n\r\nconst CustomTopBar = ({\r\n intl,\r\n translation,\r\n invoicePermissions,\r\n purchaseInvoicePermissions,\r\n expensePermissions,\r\n isMobileView,\r\n companies,\r\n role_id,\r\n onChangeCompany,\r\n push,\r\n darkMode,\r\n}) => {\r\n const isHasAccessAudit = useSelector((state) => checkPermission(state, 'audits'))\r\n\r\n return (\r\n \r\n {!isMobileView && (\r\n \r\n {invoicePermissions.isCanAdd && (\r\n }\r\n >\r\n {intl.formatMessage({ id: 'button.sell' })}\r\n \r\n )}\r\n {purchaseInvoicePermissions.isCanAdd && (\r\n }\r\n >\r\n {intl.formatMessage({ id: 'button.buy' })}\r\n \r\n )}\r\n {expensePermissions.isCanAdd && (\r\n }\r\n >\r\n {translation.menu\r\n ? translation.menu.expenses\r\n : intl.formatMessage({ id: 'financeExpenses.financeExpenses' })}\r\n \r\n )}\r\n  \r\n \r\n )}\r\n \r\n {(companies.companies.length > 1 || role_id === 1) && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n \r\n
\r\n {isHasAccessAudit && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default CustomTopBar\r\n","import React from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { Link, withRouter } from 'react-router-dom'\r\nimport { Layout, Menu, Skeleton, Space } from 'antd'\r\nimport store from 'store'\r\nimport { Scrollbars } from 'react-custom-scrollbars'\r\nimport _ from 'lodash'\r\nimport { stringify } from 'query-string'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\n\r\nimport { changeSetting } from 'redux/settings/actions'\r\nimport { checkAlurFlow } from 'redux/options/selectors'\r\nimport { withAppConsumer } from 'components/AppProvider'\r\nimport { DemoWarning, SubscriptionWarning, TrialWarning } from 'components/UI'\r\nimport { getToken } from 'utils/cookies'\r\nimport styles from './style.module.scss'\r\n\r\nconst { Sider } = Layout\r\n\r\nconst PayrollSvg = ({ darkMode }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = ({\r\n menu,\r\n settings,\r\n options,\r\n translation,\r\n inits,\r\n companies: { selectedEndpoint, website_id: websiteId, endpoint },\r\n}) => ({\r\n menuData: menu.menuLeftData,\r\n // isMenuCollapsed: settings.isMenuCollapsed,\r\n isMobileView: settings.isMobileView,\r\n isSettingsOpen: settings.isSettingsOpen,\r\n isLightTheme: settings.isLightTheme,\r\n // isMobileMenuOpen: settings.isMobileMenuOpen,\r\n property: options.options,\r\n darkMode: options.options?.dark_mode,\r\n translation,\r\n loadedInit: inits?.loadedInit,\r\n selectedEndpoint,\r\n websiteId,\r\n endpoint,\r\n})\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n onChangeSetting: (payload) => dispatch(changeSetting(payload)),\r\n }\r\n}\r\n\r\n@withRouter\r\n@connect(mapStateToProps, mapDispatchToProps)\r\n@withAppConsumer\r\nclass MenuLeft extends React.PureComponent {\r\n state = {\r\n selectedKeys: store.get('app.menu.selectedKeys') || [],\r\n openedKeys: store.get('app.menu.openedKeys') || [],\r\n }\r\n\r\n // componentDidMount() {\r\n // this.setSelectedKeys(this.props)\r\n // }\r\n\r\n // componentWillReceiveProps(newProps) {\r\n // if (newProps.isMenuCollapsed && !newProps.isMobileView) {\r\n // this.setState({\r\n // openedKeys: [],\r\n // })\r\n // }\r\n // this.setSelectedKeys(newProps)\r\n // }\r\n\r\n componentDidUpdate(prevProps) {\r\n const prevAppContext = prevProps.appContext\r\n const { appContext } = this.props\r\n if (prevAppContext?.settings?.isMenuCollapsed !== appContext?.settings?.isMenuCollapsed) {\r\n if (appContext?.settings?.isMenuCollapsed && !this.props.isMobileView) {\r\n this.setState({\r\n openedKeys: [],\r\n })\r\n }\r\n }\r\n\r\n if (\r\n !_.isEqual(prevProps.menuData, this.props.menuData) ||\r\n prevProps.location.pathname !== this.props.location.pathname\r\n ) {\r\n this.setSelectedKeys()\r\n }\r\n }\r\n\r\n flattenItems = (items, key) =>\r\n items.reduce((flattenedItems, item) => {\r\n flattenedItems.push(item)\r\n if (Array.isArray(item[key])) {\r\n return flattenedItems.concat(this.flattenItems(item[key], key))\r\n }\r\n return flattenedItems\r\n }, [])\r\n\r\n setSelectedKeys = () => {\r\n const { menuData, location } = this.props\r\n const pathName = location.pathname === '/dashboard' ? '/' : location.pathname\r\n const flattenData = this.flattenItems(menuData, 'children')\r\n let selectedItem = null\r\n if (pathName === '/') {\r\n selectedItem = _.find(flattenData, { url: pathName })\r\n } else if (pathName.startsWith('/settings')) {\r\n selectedItem = _.find(menuData, { name: 'settings' })\r\n } else {\r\n for (let i = 0; i < flattenData.length; i += 1) {\r\n const item = flattenData[i]\r\n\r\n if (pathName === '/pos/settings' && pathName === item.url) {\r\n selectedItem = item\r\n break\r\n }\r\n\r\n if (item.url !== '/' && item.url !== '' && pathName.includes(item.url)) {\r\n selectedItem = item\r\n }\r\n }\r\n }\r\n\r\n store.set('app.menu.selectedKeys', selectedItem ? [selectedItem.key] : [])\r\n\r\n this.setState({\r\n selectedKeys: selectedItem ? [selectedItem.key] : [],\r\n })\r\n }\r\n\r\n onCollapse = (value, type) => {\r\n const {\r\n appContext: {\r\n onChangeSettings,\r\n settings: { isMenuCollapsed },\r\n },\r\n } = this.props\r\n if (type === 'responsive' && isMenuCollapsed) {\r\n return\r\n }\r\n\r\n // onChangeSetting({\r\n // setting: 'isMenuCollapsed',\r\n // value: !isMenuCollapsed,\r\n // });\r\n onChangeSettings({ isMenuCollapsed: value })\r\n // this.setState({\r\n // openedKeys: [],\r\n // })\r\n }\r\n\r\n onOpenChange = (openedKeys) => {\r\n this.setState({\r\n openedKeys,\r\n })\r\n }\r\n\r\n handleClick = (e) => {\r\n // const { isSettingsOpen, onChangeSetting } = this.props\r\n store.set('app.menu.selectedKeys', [e.key])\r\n if (e.keyPath[1]) {\r\n store.set('app.menu.openedKeys', [e.keyPath[1]])\r\n } else {\r\n store.set('app.menu.openedKeys', [])\r\n }\r\n\r\n // custom action on settings menu item\r\n // if (e.key === 'settings') {\r\n // onChangeSetting({\r\n // setting: 'isSettingsOpen',\r\n // value: !isSettingsOpen,\r\n // });\r\n // return\r\n // }\r\n this.setState({\r\n selectedKeys: [e.key],\r\n openedKeys: e.keyPath[1] ? [e.keyPath[1]] : [],\r\n // openKeys: e.keyPath,\r\n })\r\n }\r\n\r\n generateMenuItems = () => {\r\n const menuData = _.cloneDeep(this.props.menuData || []).filter((menu) => !_.isEmpty(menu))\r\n const menu = menuData.map((item) => {\r\n if (item.name === 'settings') item.children = null\r\n\r\n return { ...item }\r\n })\r\n\r\n const generateItem = (item) => {\r\n const { key, title, url, icon, disabled } = item\r\n const id = `kledo-menu-${item.name}`\r\n if (item.divider) {\r\n return {\r\n type: 'divider',\r\n key: Math.random(),\r\n }\r\n }\r\n if (item.url && item.name === 'pos') {\r\n const linkKledoPos = (\r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n return {\r\n key,\r\n disabled,\r\n label: linkKledoPos,\r\n }\r\n }\r\n if (item.url) {\r\n let linkComponent = item.target ? (\r\n \r\n {icon && (\r\n \r\n )}\r\n {title}\r\n \r\n ) : (\r\n \r\n {item.name === 'payroll' ? (\r\n \r\n ) : (\r\n <>\r\n {icon && (\r\n \r\n )}\r\n \r\n )}\r\n\r\n {title}\r\n \r\n )\r\n if (item.name === 'payroll' && this.props.property?.option?.app_connect_hr) {\r\n const searchs = {\r\n token: getToken(),\r\n website_id: this.props.websiteId,\r\n endpoint: this.props.selectedEndpoint,\r\n }\r\n const urlKledo = `${process.env.REACT_APP_GAJIHUB_URL}/dashboard?${stringify(searchs)}`\r\n linkComponent = (\r\n \r\n \r\n {title}\r\n \r\n )\r\n }\r\n return {\r\n id,\r\n key,\r\n disabled,\r\n label: linkComponent,\r\n }\r\n }\r\n return {\r\n key,\r\n disabled,\r\n label: {title},\r\n icon: icon ? (\r\n \r\n ) : null,\r\n }\r\n }\r\n\r\n const generateSubmenu = (items) => {\r\n return items.map((menuItem) => {\r\n if (!checkAlurFlow(menuItem.name)) {\r\n return null\r\n }\r\n const id = `kledo-menu-${menuItem.name}`\r\n\r\n if (menuItem.children) {\r\n const subMenuTitle = (\r\n \r\n {menuItem.title}\r\n {menuItem.icon && (\r\n \r\n )}\r\n \r\n )\r\n return {\r\n key: menuItem.key,\r\n id,\r\n label: subMenuTitle,\r\n children: generateSubmenu(menuItem.children),\r\n }\r\n }\r\n return generateItem(menuItem)\r\n })\r\n }\r\n\r\n return menu.map((menuItem) => {\r\n const id = `kledo-menu-${menuItem.name}`\r\n if (menuItem.children) {\r\n const subMenuTitle = (\r\n \r\n {!_.isEmpty(menuItem.url) ? (\r\n \r\n {menuItem.icon && (\r\n \r\n )}\r\n {menuItem.title}\r\n \r\n ) : (\r\n <>\r\n
\r\n {menuItem.title}\r\n {menuItem.icon && menuItem.icon !== 'kledo-pos' && (\r\n \r\n )}\r\n {menuItem.icon === 'kledo-pos' && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n )}\r\n
\r\n )\r\n return {\r\n key: menuItem.key,\r\n id,\r\n label: subMenuTitle,\r\n children: generateSubmenu(menuItem.children),\r\n }\r\n }\r\n\r\n return generateItem(menuItem)\r\n })\r\n }\r\n\r\n makeLoader = () => {\r\n const loaders = []\r\n for (let i = 1; i <= 10; i += 1) {\r\n loaders.push(\r\n \r\n \r\n {!this.props.appContext.settings?.isMenuCollapsed && (\r\n \r\n )}\r\n ,\r\n )\r\n }\r\n return loaders\r\n }\r\n\r\n render() {\r\n const { selectedKeys, openedKeys } = this.state\r\n const {\r\n isMobileView,\r\n isLightTheme,\r\n property,\r\n darkMode,\r\n scrollBarRef,\r\n appContext: {\r\n settings: { isMenuCollapsed },\r\n },\r\n } = this.props\r\n const menuSettings = isMobileView\r\n ? {\r\n width: 256,\r\n collapsible: false,\r\n collapsed: false,\r\n collapsedWidth: 0,\r\n onCollapse: this.onCollapse,\r\n }\r\n : {\r\n width: 256,\r\n collapsible: true,\r\n collapsed: isMenuCollapsed,\r\n onCollapse: this.onCollapse,\r\n breakpoint: 'lg',\r\n }\r\n\r\n const menu = this.generateMenuItems()\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n {!_.isEmpty(property.property_logo) ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
\r\n \r\n {\r\n (!isMenuCollapsed || isMobileView) && [\r\n ,\r\n ,\r\n ,\r\n ]\r\n // \r\n // \r\n // \r\n // \r\n // \r\n // ),\r\n // }}\r\n // />\r\n // }\r\n // type=\"warning\"\r\n // showIcon={!isMenuCollapsed || isMobileView}\r\n // />\r\n }\r\n (\r\n \r\n )}\r\n autoHide\r\n >\r\n {!this.props.loadedInit ? (\r\n \r\n {this.makeLoader()}\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {!isMobileView &&
}\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default MenuLeft\r\n","import 'rc-drawer/assets/index.css'\r\nimport React from 'react'\r\nimport DrawerMenu from 'rc-drawer'\r\nimport { connect } from 'react-redux'\r\nimport { withRouter } from 'react-router-dom'\r\n// import { changeSetting } from 'redux/settings/actions'\r\nimport { withAppConsumer } from 'components/AppProvider'\r\nimport MenuLeft from './MenuLeft'\r\n\r\nconst mapStateToProps = ({ settings }) => ({\r\n isMenuTop: settings.isMenuTop,\r\n // isMobileMenuOpen: settings.isMobileMenuOpen,\r\n isMobileView: settings.isMobileView,\r\n isLightTheme: settings.isLightTheme,\r\n})\r\n\r\n// const mapDispatchToProps = dispatch => {\r\n// return {\r\n// onChangeSetting: (payload) => dispatch(changeSetting(payload))\r\n// };\r\n// }\r\n\r\n@withRouter\r\n@connect(mapStateToProps)\r\n@withAppConsumer\r\nclass AppMenu extends React.PureComponent {\r\n componentDidUpdate(prevProps) {\r\n if (\r\n prevProps.isMobileView !== this.props.isMobileView &&\r\n !this.props.isMobileView &&\r\n this.props.appContext.settings.isMobileMenuOpen\r\n ) {\r\n this.toggleOpen()\r\n }\r\n }\r\n\r\n toggleOpen = () => {\r\n const {\r\n appContext: {\r\n settings: { isMobileMenuOpen },\r\n onChangeSettings,\r\n },\r\n } = this.props\r\n document\r\n .querySelector('#root')\r\n .setAttribute(\r\n 'style',\r\n !isMobileMenuOpen ? 'overflow: hidden; width: 100%; height: 100%;' : '',\r\n )\r\n onChangeSettings({ isMobileMenuOpen: !isMobileMenuOpen })\r\n }\r\n\r\n render() {\r\n const {\r\n appContext: {\r\n settings: { isMobileMenuOpen },\r\n },\r\n isMobileView,\r\n isLightTheme,\r\n scrollBarRef,\r\n } = this.props\r\n\r\n const BootstrappedMenu = () => {\r\n if (isMobileView) {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return \r\n }\r\n\r\n return BootstrappedMenu()\r\n }\r\n}\r\n\r\nexport default AppMenu\r\n","import React from 'react'\r\nimport { useSelector } from 'react-redux'\r\n\r\nimport { billingSelector, darkModeSelector, optionsSelector } from 'redux/selectors'\r\nimport { isFeatureChampion } from 'utils/helper'\r\nimport styles from './style.module.scss'\r\n\r\nconst Footer = () => {\r\n const billing = useSelector(billingSelector)\r\n const options = useSelector(optionsSelector)\r\n const darkMode = useSelector(darkModeSelector)\r\n\r\n const isOnChampionPlan = !isFeatureChampion({\r\n billing,\r\n code: 'finance_system_white_label',\r\n })\r\n\r\n const companyName =\r\n options?.finance_system_white_label && isOnChampionPlan ? options.property_name : 'Kledo'\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n © {new Date().getFullYear()}\r\n  \r\n \r\n {`${companyName} Software v${process.env.REACT_APP_VERSION}`}\r\n \r\n  All rights reserved\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Footer\r\n","import { appMessage } from 'utils/formatting';\r\n\r\nconst routes = [\r\n { path: '/banks/detail/:id/transactions', breadcrumb: appMessage('transactions')},\r\n { path: '/banks/detail/:id/bankstatements', breadcrumb: appMessage('bankstatements')},\r\n { path: '/banks/detail/:id/reconcile', breadcrumb: appMessage('reconcile')},\r\n { path: '/banks/detail/:id/waiting_approval', breadcrumb: appMessage('approvals.waiting_for_approval')},\r\n { path: '/banks/detail/:id/rejected', breadcrumb: appMessage('approvals.rejected')},\r\n];\r\n\r\nexport default routes;\r\n","import { lazy } from 'react'\r\nimport { appMessage } from 'utils/formatting'\r\n\r\nconst routes = [\r\n {\r\n path: '/companies',\r\n component: lazy(() => import('pages/companies')),\r\n exact: true,\r\n },\r\n {\r\n path: '/companies/add',\r\n component: lazy(() => import('pages/companies/Add')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/notification',\r\n component: lazy(() => import('pages/notification')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/posConnect',\r\n component: lazy(() => import('pages/posConnect')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/posConnect/add',\r\n component: lazy(() => import('pages/posConnect/Add')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/posConnect/add/:pos',\r\n component: lazy(() => import('pages/posConnect/AddForm')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/posConnect/edit/:id',\r\n component: lazy(() => import('pages/posConnect/Edit')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/settings/marketplaceConnect',\r\n component: lazy(() => import('pages/marketplaceConnect')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/marketplaceConnect/add',\r\n component: lazy(() => import('pages/marketplaceConnect/Add')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/marketplaceConnect/add/:marketplace',\r\n component: lazy(() => import('pages/marketplaceConnect/AddForm')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/marketplaceConnect/edit/:id',\r\n component: lazy(() => import('pages/marketplaceConnect/Edit')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/settings/apps',\r\n component: lazy(() => import('pages/appsSetting')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/apps/add',\r\n component: lazy(() => import('pages/appsSetting/Add')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/apps/detail/:id',\r\n component: lazy(() => import('pages/appsSetting/Detail')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/settings/whatsappTemplate',\r\n component: lazy(() => import('pages/whatsappTemplate')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/email-template',\r\n component: lazy(() => import('pages/emailTemplate')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/account-mapping',\r\n component: lazy(() => import('pages/accountMapping')),\r\n exact: true,\r\n },\r\n {\r\n path: '/confirm/email/:token',\r\n component: lazy(() => import('pages/emailTemplate/confirm')),\r\n exact: true,\r\n breadcrumb: appMessage('email.email_confirmation'),\r\n },\r\n\r\n {\r\n path: '/referral',\r\n component: lazy(() => import('pages/referral')),\r\n exact: true,\r\n },\r\n\r\n {\r\n path: '/settings/custom-columns',\r\n component: lazy(() => import('pages/customColumn')),\r\n exact: true,\r\n },\r\n\r\n {\r\n path: '/settings/shipping-company',\r\n component: lazy(() => import('pages/shippingCompany')),\r\n exact: true,\r\n },\r\n\r\n {\r\n path: '/settings/consolidation',\r\n component: lazy(() => import('pages/consolidation')),\r\n exact: true,\r\n },\r\n\r\n {\r\n path: '/settings/unit',\r\n component: lazy(() => import('pages/financeUnits')),\r\n exact: true,\r\n },\r\n\r\n {\r\n path: '/settings/translation',\r\n component: lazy(() => import('pages/translation')),\r\n exact: true,\r\n },\r\n\r\n {\r\n path: '/settings/audit',\r\n component: lazy(() => import('pages/audit')),\r\n exact: true,\r\n },\r\n\r\n {\r\n path: '/settings/multi-currency',\r\n component: lazy(() => import('pages/multiCurrency')),\r\n exact: true,\r\n },\r\n\r\n {\r\n path: '/user/billing/success',\r\n component: lazy(() => import('pages/billing/Success')),\r\n exact: true,\r\n },\r\n {\r\n path: '/user/billing/failed',\r\n component: lazy(() => import('pages/billing/Failed')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/billing',\r\n component: lazy(() => import('pages/billing')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/billing/upgrade',\r\n component: lazy(() => import('pages/billing/UpgradeBilling')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/billing/downgrade',\r\n component: lazy(() => import('pages/billing/DowngradeBilling')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/billing/addon',\r\n component: lazy(() => import('pages/billing/AddAddon')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/billing/pos',\r\n component: lazy(() => import('pages/billing/POS')),\r\n exact: true,\r\n },\r\n {\r\n path: '/payments',\r\n component: lazy(() => import('pages/payments')),\r\n exact: true,\r\n },\r\n\r\n {\r\n path: '/settings/users',\r\n component: lazy(() => import('pages/users')),\r\n exact: true,\r\n },\r\n\r\n {\r\n path: '/settings/roles',\r\n component: lazy(() => import('pages/roles')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/roles/add',\r\n component: lazy(() => import('pages/roles/AddRole')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/roles/edit/:id',\r\n component: lazy(() => import('pages/roles/EditRole')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n\r\n {\r\n path: '/settings/sales-commissions',\r\n component: lazy(() => import('pages/salesCommission')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/sales-commissions/add',\r\n component: lazy(() => import('pages/salesCommission/AddSalesCommission')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/sales-commissions/detail/:id',\r\n component: lazy(() => import('pages/salesCommission/DetailSalesCommission')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/settings/sales-commissions/edit/:id',\r\n component: lazy(() => import('pages/salesCommission/EditSalesCommission')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n\r\n // System Pages\r\n {\r\n path: '/onboarding',\r\n component: lazy(() => import('pages/onBoarding')),\r\n exact: true,\r\n },\r\n {\r\n path: '/user/login',\r\n component: lazy(() => import('pages/user/login')),\r\n exact: true,\r\n breadcrumb: 'Login',\r\n },\r\n {\r\n path: '/user/login/sso',\r\n component: lazy(() => import('pages/user/login/sso')),\r\n exact: true,\r\n breadcrumb: 'Login',\r\n },\r\n {\r\n path: '/user/select-company',\r\n component: lazy(() => import('pages/user/select-company')),\r\n exact: true,\r\n },\r\n {\r\n path: '/user/forgot',\r\n component: lazy(() => import('pages/user/forgot')),\r\n exact: true,\r\n },\r\n {\r\n path: '/user/register',\r\n component: lazy(() => import('pages/user/register')),\r\n exact: true,\r\n },\r\n {\r\n path: '/user/reset-password/:token',\r\n component: lazy(() => import('pages/user/reset-password')),\r\n exact: true,\r\n },\r\n {\r\n path: '/user/invite/:token',\r\n component: lazy(() => import('pages/user/invite')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/profile',\r\n component: lazy(() => import('pages/user/profile')),\r\n exact: true,\r\n },\r\n\r\n {\r\n path: '/settings/company',\r\n component: lazy(() => import('pages/company')),\r\n exact: true,\r\n },\r\n\r\n // Dashboards\r\n {\r\n path: '/dashboard',\r\n component: lazy(() => import('pages/dashboard')),\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/purchases/overview',\r\n component: lazy(() => import('pages/purchases')),\r\n },\r\n {\r\n path: '/sales/overview',\r\n component: lazy(() => import('pages/sales')),\r\n },\r\n // Reports\r\n {\r\n path: '/reports/sales-per-product-category',\r\n component: lazy(() => import('pages/reports/salesPerProductCategory')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/product-purchases-per-vendor',\r\n component: lazy(() => import('pages/reports/productPurchasesPerVendor')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/product-sales-per-customer',\r\n component: lazy(() => import('pages/reports/productSalesPerCustomer')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/sales-per-period',\r\n component: lazy(() => import('pages/reports/salesPerPeriod')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/purchases-per-period',\r\n component: lazy(() => import('pages/reports/purchasesPerPeriod')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/inventory-summary',\r\n component: lazy(() => import('pages/reports/inventorySummary')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/inventory-stock-movement',\r\n component: lazy(() => import('pages/reports/inventoryStockMovement')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/warehouse-stock-summary',\r\n component: lazy(() => import('pages/reports/warehouseStockSummary')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/warehouse-stock-movement',\r\n component: lazy(() => import('pages/reports/warehouseStockMovement')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/inventory-stock-adjustment',\r\n component: lazy(() => import('pages/reports/inventoryStockAdjustment')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/warehouse-transfer',\r\n component: lazy(() => import('pages/reports/inventoryWarehouseTransfer')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/production',\r\n component: lazy(() => import('pages/reports/production')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/general-ledger',\r\n component: lazy(() => import('pages/reports/generalLedger')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/general-ledger/category/:id',\r\n component: lazy(() => import('pages/reports/generalLedger/Category')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/reports/journal',\r\n component: lazy(() => import('pages/reports/journalReporting')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/bank-summary',\r\n component: lazy(() => import('pages/reports/bankSummary')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/sales-tax',\r\n component: lazy(() => import('pages/reports/salesTax')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/customer-invoice',\r\n component: lazy(() => import('pages/reports/customerInvoice')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/profitability-per-invoice',\r\n component: lazy(() => import('pages/reports/profitabilityPerInvoice')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/supplier-invoice',\r\n component: lazy(() => import('pages/reports/supplierInvoice')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/sales-detail',\r\n component: lazy(() => import('pages/reports/salesDetail')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/purchase-detail',\r\n component: lazy(() => import('pages/reports/purchaseDetail')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/aged-receivable',\r\n component: lazy(() => import('pages/reports/agedReceivable')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/aged-receivable/detail/:id',\r\n component: lazy(() => import('pages/reports/agedReceivableDetail')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/reports/aged-payable',\r\n component: lazy(() => import('pages/reports/agedPayable')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/aged-payable/detail/:id',\r\n component: lazy(() => import('pages/reports/agedPayableDetail')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/reports/expense-claim',\r\n component: lazy(() => import('pages/reports/expenseClaim')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/expense-claim/detail/:id',\r\n component: lazy(() => import('pages/reports/expenseClaimDetail')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/reports/income-per-customer',\r\n component: lazy(() => import('pages/reports/incomePerCustomer')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/trial-balance',\r\n component: lazy(() => import('pages/reports/trialBalance')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/profit-loss',\r\n component: lazy(() => import('pages/reports/profitLoss')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/expense-per-contact',\r\n component: lazy(() => import('pages/reports/expensePerContact')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/sales-per-product',\r\n component: lazy(() => import('pages/reports/salesPerProduct')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/order-per-product',\r\n component: lazy(() => import('pages/reports/orderPerProduct')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/account-transaction/:id',\r\n component: lazy(() => import('pages/reports/accountTransaction')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/reports/purchases-per-vendor',\r\n component: lazy(() => import('pages/reports/purchasesPerVendor')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/purchases-per-product',\r\n component: lazy(() => import('pages/reports/purchasesPerProduct')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports',\r\n component: lazy(() => import('pages/reports/reportingHome')),\r\n exact: true,\r\n breadcrumb: appMessage('report.reports'),\r\n },\r\n {\r\n path: '/reports/cash-flow',\r\n component: lazy(() => import('pages/reports/cashFlow')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/balance-sheet',\r\n component: lazy(() => import('pages/reports/balanceSheet')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/equity-movement',\r\n component: lazy(() => import('pages/reports/equityMovement')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/executive-summary',\r\n component: lazy(() => import('pages/reports/executiveSummary')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/receivable-payable-per-contact',\r\n component: lazy(() => import('pages/reports/receivablePayable')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/fixed-asset-detail',\r\n component: lazy(() => import('pages/reports/fixedAssetDetail')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/fixed-asset-summary',\r\n component: lazy(() => import('pages/reports/fixedAssetSummary')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/fixed-asset-disposal',\r\n component: lazy(() => import('pages/reports/fixedAssetDisposal')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/consolidation-balance-sheet',\r\n component: lazy(() => import('pages/reports/consolidationBalanceSheet')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/consolidation-cash-flow',\r\n component: lazy(() => import('pages/reports/consolidationCashFlow')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/consolidation-profit-loss',\r\n component: lazy(() => import('pages/reports/consolidationProfitLoss')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/consolidation-worksheet',\r\n component: lazy(() => import('pages/reports/consolidationWorksheet')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/sales-delivery',\r\n component: lazy(() => import('pages/reports/salesDelivery')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/purchase-delivery',\r\n component: lazy(() => import('pages/reports/purchaseDelivery')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/budget-management',\r\n component: lazy(() => import('pages/reports/budgetManagement')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/budget-management/add',\r\n component: lazy(() => import('pages/reports/budgetManagement/Add')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/budget-management/edit/:id',\r\n component: lazy(() => import('pages/reports/budgetManagement/Edit')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/reports/budget-profit-loss',\r\n component: lazy(() => import('pages/reports/budgetProfitLoss')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/shipping-cost-per-expedition',\r\n component: lazy(() => import('pages/reports/shippingCostPerExpedition')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/sales-per-sales-person',\r\n component: lazy(() => import('pages/reports/salesPerSalesPerson')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/product-profitability',\r\n component: lazy(() => import('pages/reports/productProfitability')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/invoice-payment',\r\n component: lazy(() => import('pages/reports/invoicePayment')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/purchase-invoice-payment',\r\n component: lazy(() => import('pages/reports/purchaseInvoicePayment')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/attachment',\r\n component: lazy(() => import('pages/reports/attachment')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/export',\r\n component: lazy(() => import('pages/reports/export')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/import',\r\n component: lazy(() => import('pages/reports/import')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/import/:id',\r\n component: lazy(() => import('pages/reports/import/Detail')),\r\n exact: true,\r\n breadcrumb: appMessage('detail'),\r\n },\r\n {\r\n path: '/settings/setup',\r\n component: lazy(() => import('pages/setup')),\r\n },\r\n // {\r\n // path: '/pos/outlets',\r\n // component: lazy(() => componentLoader(() => import('pages/posSettings/outlets'))),\r\n // },\r\n // {\r\n // path: '/pos/products/:id',\r\n // component: lazy(() => componentLoader(() => import('pages/posSettings/products'))),\r\n // },\r\n // {\r\n // path: '/pos/toroom/:id',\r\n // component: lazy(() => componentLoader(() => import('pages/pos/transferToRoom'))),\r\n // },\r\n // {\r\n // path: '/pos/activity/:id',\r\n // component: lazy(() => componentLoader(() => import('pages/pos/activity'))),\r\n // },\r\n // {\r\n // path: '/pos/:id',\r\n // component: lazy(() => componentLoader(() => import('pages/pos'))),\r\n // },\r\n // {\r\n // path: '/reports/pos',\r\n // component: lazy(() => componentLoader(() => import('pages/reports/pos'))),\r\n // exact: true,\r\n // },\r\n {\r\n path: '/accounts',\r\n component: lazy(() => import('pages/financeAccounts')),\r\n exact: true,\r\n },\r\n {\r\n path: '/accounts/import',\r\n component: lazy(() => import('pages/financeAccounts/Import')),\r\n exact: true,\r\n },\r\n {\r\n path: '/contacts/import',\r\n component: lazy(() => import('pages/financeContacts/Import')),\r\n exact: true,\r\n },\r\n {\r\n path: '/contacts/import-accounts-payable',\r\n component: lazy(() => import('pages/financeContacts/ImportAccountsPayable')),\r\n exact: true,\r\n },\r\n {\r\n path: '/contacts',\r\n component: lazy(() => import('pages/financeContacts')),\r\n exact: true,\r\n },\r\n {\r\n path: '/contacts/detail/:id',\r\n component: lazy(() => import('pages/financeContacts/detail')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/contacts/edit/:id',\r\n component: lazy(() => import('pages/financeContacts/edit')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/settings/expenses/terms',\r\n component: lazy(() => import('pages/financeExpenseTerms')),\r\n exact: true,\r\n },\r\n {\r\n path: '/products/detail/:id',\r\n component: lazy(() => import('pages/financeProducts/detail')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/products',\r\n component: lazy(() => import('pages/financeProducts')),\r\n exact: true,\r\n },\r\n {\r\n path: '/products/access/:id',\r\n component: lazy(() => import('pages/financeProducts/ProductAccess')),\r\n exact: true,\r\n },\r\n {\r\n path: '/products/price-rule',\r\n component: lazy(() => import('pages/financeProducts/PriceRule')),\r\n exact: true,\r\n },\r\n {\r\n path: '/products/price-rule/add',\r\n component: lazy(() => import('pages/financeProducts/AddPriceRule')),\r\n exact: true,\r\n },\r\n {\r\n path: '/products/price-rule/detail/:id',\r\n component: lazy(() => import('pages/financeProducts/DetailPriceRule')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/products/price-rule/edit/:id',\r\n component: lazy(() => import('pages/financeProducts/EditPriceRule')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/products/import',\r\n component: lazy(() => import('pages/financeProducts/Import')),\r\n exact: true,\r\n },\r\n {\r\n path: '/products/import-package',\r\n component: lazy(() => import('pages/financeProducts/ImportPackage')),\r\n exact: true,\r\n },\r\n {\r\n path: '/products/import-manufacture',\r\n component: lazy(() => import('pages/financeProducts/ImportManufacture')),\r\n exact: true,\r\n },\r\n {\r\n path: '/products/import-conversion',\r\n component: lazy(() => import('pages/financeProducts/ImportConversion')),\r\n exact: true,\r\n },\r\n {\r\n path: '/products/bundle-package/add/:id?',\r\n component: lazy(() => import('pages/financeProducts/AddBundlePackage')),\r\n exact: true,\r\n },\r\n {\r\n path: '/products/bundle-manufacture/add/:id?',\r\n component: lazy(() => import('pages/financeProducts/AddBundleManufacture')),\r\n exact: true,\r\n },\r\n {\r\n path: '/products/bundle-package/edit/:id',\r\n component: lazy(() => import('pages/financeProducts/EditBundlePackage')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/products/bundle-manufacture/edit/:id',\r\n component: lazy(() => import('pages/financeProducts/EditBundleManufacture')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/products/conversions/:id',\r\n component: lazy(() => import('pages/financeProducts/ConversionProduct')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/products/conversions/detail/:id',\r\n component: lazy(() => import('pages/financeProducts/ConversionProductDetail')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/products/conversions/edit/:id',\r\n component: lazy(() => import('pages/financeProducts/EditConversionProduct')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/settings/taxes',\r\n component: lazy(() => import('pages/financeTaxes')),\r\n exact: true,\r\n },\r\n {\r\n path: '/expenses',\r\n component: lazy(() => import('pages/financeExpenses')),\r\n exact: true,\r\n },\r\n {\r\n path: '/expenses/import',\r\n component: lazy(() => import('pages/financeExpenses/Import')),\r\n exact: true,\r\n },\r\n {\r\n path: '/expenses/add/:id?',\r\n component: lazy(() => import('pages/financeExpenses/AddFinanceExpense')),\r\n exact: true,\r\n breadcrumb: appMessage('add'),\r\n },\r\n {\r\n path: '/expenses/edit/:id',\r\n component: lazy(() => import('pages/financeExpenses/EditFinanceExpense')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/expenses/detail/:id',\r\n component: lazy(() => import('pages/financeExpenses/DetailFinanceExpense')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/purchases/purchaseorders',\r\n component: lazy(() => import('pages/financePurchaseOrders')),\r\n exact: true,\r\n breadcrumb: appMessage('purchase_order'),\r\n },\r\n {\r\n path: '/purchases/purchaseorders/add/:idQuote?',\r\n component: lazy(() => import('pages/financePurchaseOrders/AddFinancePurchaseOrder')),\r\n exact: true,\r\n breadcrumb: appMessage('add'),\r\n },\r\n {\r\n path: '/purchases/purchaseorders/edit/:id',\r\n component: lazy(() => import('pages/financePurchaseOrders/EditFinancePurchaseOrder')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/purchases/purchaseorders/detail/:id',\r\n component: lazy(() => import('pages/financePurchaseOrders/DetailFinancePurchaseOrder')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/purchases/purchaseorders/import',\r\n component: lazy(() => import('pages/financePurchaseOrders/Import')),\r\n exact: true,\r\n },\r\n {\r\n path: '/purchases/purchaseinvoices',\r\n component: lazy(() => import('pages/financePurchaseInvoices')),\r\n exact: true,\r\n breadcrumb: appMessage('purchase_invoice'),\r\n },\r\n {\r\n path: '/purchases/purchaseinvoices/add/:idRelation?',\r\n component: lazy(() => import('pages/financePurchaseInvoices/AddFinancePurchaseInvoice')),\r\n exact: true,\r\n },\r\n {\r\n path: '/purchases/purchaseinvoices/edit/:id',\r\n component: lazy(() => import('pages/financePurchaseInvoices/EditFinancePurchaseInvoice')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/purchases/purchaseinvoices/detail/:id',\r\n component: lazy(() => import('pages/financePurchaseInvoices/DetailFinancePurchaseInvoice')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/purchases/purchaseinvoices/import',\r\n component: lazy(() => import('pages/financePurchaseInvoices/Import')),\r\n exact: true,\r\n },\r\n {\r\n path: '/purchases/purchaseinvoices/importStatus',\r\n component: lazy(() => import('pages/financePurchaseInvoices/ImportStatus')),\r\n exact: true,\r\n },\r\n {\r\n path: '/sales/quotes',\r\n component: lazy(() => import('pages/financeQuotes')),\r\n exact: true,\r\n breadcrumb: appMessage('quote'),\r\n },\r\n {\r\n path: '/sales/quotes/add/:id?',\r\n component: lazy(() => import('pages/financeQuotes/AddFinanceQuote')),\r\n exact: true,\r\n breadcrumb: appMessage('add'),\r\n },\r\n {\r\n path: '/sales/quotes/edit/:id',\r\n component: lazy(() => import('pages/financeQuotes/EditFinanceQuote')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/sales/quotes/detail/:id',\r\n component: lazy(() => import('pages/financeQuotes/DetailFinanceQuote')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/sales/quotes/import',\r\n component: lazy(() => import('pages/financeQuotes/Import')),\r\n exact: true,\r\n },\r\n {\r\n path: '/sales/invoices',\r\n component: lazy(() => import('pages/financeInvoices')),\r\n exact: true,\r\n breadcrumb: appMessage('invoice'),\r\n },\r\n {\r\n path: '/sales/invoices/add/:idRelation?',\r\n component: lazy(() => import('pages/financeInvoices/AddFinanceInvoice')),\r\n exact: true,\r\n },\r\n {\r\n path: '/sales/invoices/edit/:id',\r\n component: lazy(() => import('pages/financeInvoices/EditFinanceInvoice')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/sales/invoices/detail/:id',\r\n component: lazy(() => import('pages/financeInvoices/DetailFinanceInvoice')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/sales/invoices/recurring/add',\r\n component: lazy(() => import('pages/recurring/Add')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/sales/invoices/recurring/edit/:id',\r\n component: lazy(() => import('pages/recurring/Edit')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/sales/invoices/import',\r\n component: lazy(() => import('pages/financeInvoices/Import')),\r\n exact: true,\r\n },\r\n {\r\n path: '/sales/invoices/import-recurring',\r\n component: lazy(() => import('pages/financeInvoices/ImportRecurring')),\r\n exact: true,\r\n },\r\n {\r\n path: '/sales/invoices/import-return',\r\n component: lazy(() => import('pages/financeInvoices/ImportReturn')),\r\n exact: true,\r\n },\r\n {\r\n path: '/sales/invoices/importStatus',\r\n component: lazy(() => import('pages/financeInvoices/ImportStatus')),\r\n exact: true,\r\n },\r\n {\r\n path: '/banks',\r\n component: lazy(() => import('pages/financeBanks')),\r\n exact: true,\r\n breadcrumb: 'Bank',\r\n },\r\n {\r\n path: '/banks/detail/:id',\r\n component: lazy(() => import('pages/financeBanks/DetailFinanceBank')),\r\n },\r\n {\r\n path: '/banks/:id/access',\r\n component: lazy(() => import('pages/financeAccounts/AccountAccess')),\r\n },\r\n {\r\n path: '/banks/transactions/import/:id',\r\n component: lazy(() => import('pages/financeBanks/ImportBankTrans')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/banks/transfer/import/:id',\r\n component: lazy(() => import('pages/financeBanks/ImportBankTransfer')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/banks/:bankAccountId/spend/:id?',\r\n component: lazy(() => import('pages/financeBanks/AddSpendFinanceBankTrans')),\r\n exact: true,\r\n },\r\n {\r\n path: '/banks/:bankAccountId/receive/:id?',\r\n component: lazy(() => import('pages/financeBanks/AddReceiveFinanceBankTrans')),\r\n exact: true,\r\n },\r\n {\r\n path: '/banks/:bankAccountId/transaction/edit/:id',\r\n component: lazy(() => import('pages/financeBanks/EditFinanceBankTrans')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/banks/:bankAccountId/transaction/detail/:id',\r\n component: lazy(() => import('pages/financeBanks/DetailFinanceBankTrans')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/banks/bankstatement/import/:id',\r\n component: lazy(() => import('pages/financeBanks/ImportBankStatement')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/banks/connect',\r\n component: lazy(() => import('pages/financeBanks/Connect')),\r\n exact: true,\r\n },\r\n {\r\n path: '/banks/connect/detail/:id',\r\n component: lazy(() => import('pages/financeBanks/DetailConnect')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/banks/connect/add/:id',\r\n component: lazy(() => import('pages/financeBanks/AddConnect')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/banks/connect/edit/:id',\r\n component: lazy(() => import('pages/financeBanks/EditConnect')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/settings/automatic-sequencing',\r\n component: lazy(() => import('pages/financeNumbers')),\r\n exact: true,\r\n breadcrumb: 'Automatic Sequencing',\r\n },\r\n {\r\n path: '/accounts/conversionbalances',\r\n component: lazy(() => import('pages/financeConversion/ConversionBalances')),\r\n exact: true,\r\n },\r\n {\r\n path: '/accounts/conversionbalances/import',\r\n component: lazy(() => import('pages/financeConversion/Import')),\r\n exact: true,\r\n },\r\n {\r\n path: '/accounts/conversionbalances/conversiondate',\r\n component: lazy(() => import('pages/financeConversion/ConversionDate')),\r\n exact: true,\r\n },\r\n {\r\n path: '/accounts/conversionbalances/reversal_detail/:id',\r\n component: lazy(() => import('pages/financeConversion/ReversalDetail')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/accounts/conversionbalances/opening_balance/:id',\r\n component: lazy(() => import('pages/financeConversion/OpeningBalanceDetail')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/manual-journal',\r\n component: lazy(() => import('pages/financeManualJournal')),\r\n exact: true,\r\n },\r\n {\r\n path: '/manual-journal/import',\r\n component: lazy(() => import('pages/financeManualJournal/ImportManualJournal')),\r\n exact: true,\r\n },\r\n {\r\n path: '/manual-journal/add/:idRelation?',\r\n component: lazy(() => import('pages/financeManualJournal/AddFinanceManualJournal')),\r\n exact: true,\r\n },\r\n {\r\n path: '/manual-journal/edit/:id',\r\n component: lazy(() => import('pages/financeManualJournal/EditFinanceManualJournal')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/manual-journal/detail/:id',\r\n component: lazy(() => import('pages/financeManualJournal/DetailFinanceManualJournal')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/fixed-assets',\r\n component: lazy(() => import('pages/financeFixedAssets')),\r\n exact: true,\r\n },\r\n {\r\n path: '/fixed-assets/import',\r\n component: lazy(() => import('pages/financeFixedAssets/ImportFixedAsset')),\r\n exact: true,\r\n },\r\n {\r\n path: '/fixed-assets/add/:id?',\r\n component: lazy(() => import('pages/financeFixedAssets/AddFinanceFixedAsset')),\r\n exact: true,\r\n },\r\n {\r\n path: '/fixed-assets/detail/:id',\r\n component: lazy(() => import('pages/financeFixedAssets/DetailFinanceFixedAsset')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/fixed-assets/edit/:id',\r\n component: lazy(() => import('pages/financeFixedAssets/EditFinanceFixedAsset')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/fixed-assets/dispose/:id',\r\n component: lazy(() => import('pages/financeFixedAssets/DisposeFixedAsset')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/fixed-assets/register/:id',\r\n component: lazy(() => import('pages/financeFixedAssets/RegisterFixedAsset')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/fixed-assets/run-depreciation',\r\n component: lazy(() => import('pages/financeFixedAssets/RunDepreciation')),\r\n exact: true,\r\n },\r\n {\r\n path: '/fixed-assets/transaction/:tranId',\r\n component: lazy(() => import('pages/financeFixedAssets/DetailFinanceFixedAssetTransaction')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/settings/lock-date',\r\n component: lazy(() => import('pages/financeLockDate')),\r\n exact: true,\r\n },\r\n {\r\n path: '/reports/witholding-tax',\r\n component: lazy(() => import('pages/reports/witholdingTax')),\r\n exact: true,\r\n },\r\n {\r\n path: '/warehouses',\r\n component: lazy(() => import('pages/financeWareHouses')),\r\n exact: true,\r\n },\r\n {\r\n path: '/warehouses/detail/:id',\r\n component: lazy(() => import('pages/financeWareHouses/DetailFinanceWareHouse')),\r\n breadcrumb: null,\r\n exact: true,\r\n },\r\n {\r\n path: '/warehouses/access/:id',\r\n component: lazy(() => import('pages/financeWareHouses/WarehouseAccess')),\r\n breadcrumb: null,\r\n exact: true,\r\n },\r\n {\r\n path: '/warehouses/access-per-contact/:id',\r\n component: lazy(() => import('pages/financeWareHouses/WarehouseAccessPerContact')),\r\n breadcrumb: null,\r\n exact: true,\r\n },\r\n {\r\n path: '/warehouses/:id/transfer-in',\r\n component: lazy(() => import('pages/financeWareHouses/AddTransferIn')),\r\n exact: true,\r\n },\r\n {\r\n path: '/warehouses/:id/transfer-out',\r\n component: lazy(() => import('pages/financeWareHouses/AddTransferOut')),\r\n exact: true,\r\n },\r\n {\r\n path: '/warehouses/:id/transfer/import',\r\n component: lazy(() => import('pages/financeWareHouses/ImportTransfer')),\r\n exact: true,\r\n },\r\n {\r\n path: '/warehouses/:warehouseId/transfer/detail/:id',\r\n component: lazy(() => import('pages/financeWareHouses/DetailFinanceWareHouseTransfer')),\r\n exact: true,\r\n },\r\n {\r\n path: '/warehouses/:warehouseId/transfer/edit/:id',\r\n component: lazy(() => import('pages/financeWareHouses/EditTransferInOut')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/warehouses/:warehouseId/stock-adjustment/detail/:id',\r\n component: lazy(() => import('pages/financeWareHouses/DetailStockAdjustment')),\r\n exact: true,\r\n },\r\n {\r\n path: '/warehouses/:id/stock-adjustment/add/:relationId?',\r\n component: lazy(() => import('pages/financeWareHouses/AddStockAdjustment')),\r\n exact: true,\r\n },\r\n {\r\n path: '/warehouses/:id/stock-adjustment/import',\r\n component: lazy(() => import('pages/financeWareHouses/ImportStockAdjustment')),\r\n exact: true,\r\n },\r\n {\r\n path: '/warehouses/:warehouseId/stock-adjustment/edit/:id',\r\n component: lazy(() => import('pages/financeWareHouses/EditStockAdjustment')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/finance-approval',\r\n component: lazy(() => import('pages/approvals')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/layout-invoice',\r\n component: lazy(() => import('pages/layoutInvoice')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/layout-report',\r\n component: lazy(() => import('pages/layoutReport')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/layout-barcode',\r\n component: lazy(() => import('pages/layoutBarcode')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/tags',\r\n component: lazy(() => import('pages/financeTag')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/tags/detail/:id',\r\n component: lazy(() => import('pages/financeTag/detail')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/settings/tags/access/:id',\r\n component: lazy(() => import('pages/financeTag/TagAccess')),\r\n breadcrumb: null,\r\n exact: true,\r\n },\r\n {\r\n path: '/settings',\r\n component: lazy(() => import('pages/settings')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/approval-setting',\r\n component: lazy(() => import('pages/approvals/ApprovalSettings')),\r\n exact: true,\r\n },\r\n {\r\n path: '/sales/orders',\r\n component: lazy(() => import('pages/financeOrder')),\r\n exact: true,\r\n },\r\n {\r\n path: '/sales/orders/import',\r\n component: lazy(() => import('pages/financeOrder/Import')),\r\n exact: true,\r\n },\r\n {\r\n path: '/sales/orders/detail/:id',\r\n component: lazy(() => import('pages/financeOrder/DetailFinanceOrder')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/sales/orders/add/:idQuote?',\r\n component: lazy(() => import('pages/financeOrder/AddFinanceOrder')),\r\n exact: true,\r\n },\r\n {\r\n path: '/sales/orders/edit/:id',\r\n component: lazy(() => import('pages/financeOrder/EditFinanceOrder')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/sales/orders/recurring/add',\r\n component: lazy(() => import('pages/recurring/Add')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/sales/orders/recurring/edit/:id',\r\n component: lazy(() => import('pages/recurring/Edit')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/sales/deliveries',\r\n component: lazy(() => import('pages/financeDelivery')),\r\n exact: true,\r\n },\r\n {\r\n path: '/sales/deliveries/add/:idOrder?',\r\n component: lazy(() => import('pages/financeDelivery/AddFinanceDelivery')),\r\n exact: true,\r\n },\r\n {\r\n path: '/sales/deliveries/detail/:id',\r\n component: lazy(() => import('pages/financeDelivery/DetailFinanceDelivery')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/sales/deliveries/edit/:id',\r\n component: lazy(() => import('pages/financeDelivery/EditFinanceDelivery')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/credit-memo/add/:idContact',\r\n component: lazy(() => import('pages/creditMemo/AddCreditMemo')),\r\n exact: true,\r\n },\r\n {\r\n path: '/credit-memo/edit/:id',\r\n component: lazy(() => import('pages/creditMemo/EditCreditMemo')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/credit-memo/detail/:id',\r\n component: lazy(() => import('pages/creditMemo/DetailCreditMemo')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/sales/returns/add/:idInvoice?',\r\n component: lazy(() => import('pages/return/AddReturn')),\r\n exact: true,\r\n },\r\n {\r\n path: '/sales/returns/detail/:id',\r\n component: lazy(() => import('pages/return/DetailReturn')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/sales/returns/edit/:id',\r\n component: lazy(() => import('pages/return/EditReturn')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/purchases/quotes',\r\n component: lazy(() => import('pages/financePurchaseQuotes')),\r\n exact: true,\r\n breadcrumb: appMessage('quote'),\r\n },\r\n {\r\n path: '/purchases/quotes/add/:id?',\r\n component: lazy(() => import('pages/financePurchaseQuotes/AddFinancePurchaseQuote')),\r\n exact: true,\r\n breadcrumb: appMessage('add'),\r\n },\r\n {\r\n path: '/purchases/quotes/edit/:id',\r\n component: lazy(() => import('pages/financePurchaseQuotes/EditFinancePurchaseQuote')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/debit-memo/edit/:id',\r\n component: lazy(() => import('pages/debitMemo/EditDebitMemo')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/purchases/quotes/detail/:id',\r\n component: lazy(() => import('pages/financePurchaseQuotes/DetailFinancePurchaseQuote')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/purchases/quotes/import',\r\n component: lazy(() => import('pages/financePurchaseQuotes/Import')),\r\n exact: true,\r\n },\r\n {\r\n path: '/debit-memo/detail/:id',\r\n component: lazy(() => import('pages/debitMemo/DetailDebitMemo')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/debit-memo/add/:idContact',\r\n component: lazy(() => import('pages/debitMemo/AddDebitMemo')),\r\n exact: true,\r\n },\r\n {\r\n path: '/purchases/deliveries',\r\n component: lazy(() => import('pages/financePurchaseDelivery')),\r\n exact: true,\r\n },\r\n {\r\n path: '/purchases/deliveries/add/:idOrder?',\r\n component: lazy(() => import('pages/financePurchaseDelivery/AddFinancePurchaseDelivery')),\r\n exact: true,\r\n },\r\n {\r\n path: '/purchases/deliveries/detail/:id',\r\n component: lazy(() => import('pages/financePurchaseDelivery/DetailFinancePurchaseDelivery')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/purchases/deliveries/edit/:id',\r\n component: lazy(() => import('pages/financePurchaseDelivery/EditFinancePurchaseDelivery')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/purchases/returns/add/:idInvoice?',\r\n component: lazy(() => import('pages/purchaseReturn/AddReturn')),\r\n exact: true,\r\n },\r\n {\r\n path: '/purchases/returns/detail/:id',\r\n component: lazy(() => import('pages/purchaseReturn/DetailReturn')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/purchases/returns/edit/:id',\r\n component: lazy(() => import('pages/purchaseReturn/EditReturn')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/settings/business-flow',\r\n component: lazy(() => import('pages/businessFlow')),\r\n exact: true,\r\n // breadcrumb: 'Automatic Sequencing'\r\n },\r\n {\r\n path: '/purchases/purchaseinvoices/recurring/add',\r\n component: lazy(() => import('pages/recurring/Add')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/purchases/purchaseinvoices/recurring/edit/:id',\r\n component: lazy(() => import('pages/recurring/Edit')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/purchases/purchaseorders/recurring/add',\r\n component: lazy(() => import('pages/recurring/Add')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/purchases/purchaseorders/recurring/edit/:id',\r\n component: lazy(() => import('pages/recurring/Edit')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/expenses/recurring/add',\r\n component: lazy(() => import('pages/recurring/Add')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/expenses/recurring/edit/:id',\r\n component: lazy(() => import('pages/recurring/Edit')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/manual-journal/recurring/add',\r\n component: lazy(() => import('pages/recurring/Add')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/manual-journal/recurring/edit/:id',\r\n component: lazy(() => import('pages/recurring/Edit')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/banks/:bankAccountId/recurring/add',\r\n component: lazy(() => import('pages/recurring/Add')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/banks/:bankAccountId/recurring/edit/:id',\r\n component: lazy(() => import('pages/recurring/Edit')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/closing',\r\n component: lazy(() => import('pages/closing')),\r\n exact: true,\r\n },\r\n {\r\n path: '/closing/add',\r\n component: lazy(() => import('pages/closing/Add')),\r\n // exact: true,\r\n },\r\n {\r\n path: '/closing/detail/:id',\r\n component: lazy(() => import('pages/closing/Detail')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/invoice-payment-credit-memo/detail/:id',\r\n component: lazy(() => import('pages/invoicePaymentCreditMemo/Detail')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/purchaseinvoice-payment-debit-memo/detail/:id',\r\n component: lazy(() => import('pages/purchaseInvoicePaymentDebitMemo/Detail')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/invoice-payment-credit-memo/edit/:id',\r\n component: lazy(() => import('pages/invoicePaymentCreditMemo/Edit')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/purchaseinvoice-payment-debit-memo/edit/:id',\r\n component: lazy(() => import('pages/purchaseInvoicePaymentDebitMemo/Edit')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/unrealized-gain/detail/:id',\r\n component: lazy(() => import('pages/unrealizedGain/Detail')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/payroll',\r\n component: lazy(() => import('pages/payroll')),\r\n exact: true,\r\n // breadcrumb: null,\r\n },\r\n {\r\n path: '/payroll/success',\r\n component: lazy(() => import('pages/payroll/SuccessIntegration')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/faqs',\r\n component: lazy(() => import('pages/faqs')),\r\n exact: true,\r\n },\r\n {\r\n path: '/faqs/detail/:id',\r\n component: lazy(() => import('pages/faqs/Detail')),\r\n exact: true,\r\n breadcrumb: null,\r\n },\r\n {\r\n path: '/pos',\r\n component: lazy(() => import('pages/kledoPos')),\r\n exact: true,\r\n breadcrumb: 'Kledo Pos',\r\n },\r\n {\r\n path: '/pos/settings',\r\n component: lazy(() => import('pages/kledoPos/Settings')),\r\n exact: true,\r\n },\r\n {\r\n path: '/pos/outlets',\r\n component: lazy(() => import('pages/outlets/Outlets')),\r\n exact: true,\r\n },\r\n {\r\n path: '/pos/product-favorites',\r\n component: lazy(() => import('pages/financeProducts/Favorites')),\r\n exact: true,\r\n },\r\n {\r\n path: '/pos/users',\r\n component: lazy(() => import('pages/pos/users')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/due-reminder',\r\n component: lazy(() => import('pages/dueReminder')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/backup-database',\r\n component: lazy(() => import('pages/backupDatabase')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/customer-birthday',\r\n component: lazy(() => import('pages/customerBirthday')),\r\n exact: true,\r\n },\r\n {\r\n path: '/pos/outlets',\r\n component: lazy(() => import('pages/outlets/Outlets')),\r\n exact: true,\r\n },\r\n {\r\n path: '/pos/product-favorites',\r\n component: lazy(() => import('pages/financeProducts/Favorites')),\r\n exact: true,\r\n },\r\n {\r\n path: '/pos/users',\r\n component: lazy(() => import('pages/pos/users')),\r\n exact: true,\r\n },\r\n {\r\n path: '/kledo-pos',\r\n component: lazy(() => import('pages/kledoPos')),\r\n exact: true,\r\n breadcrumb: 'Kledo POS',\r\n },\r\n {\r\n path: '/settings/fees',\r\n component: lazy(() => import('pages/transactionFees')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/sso',\r\n component: lazy(() => import('pages/sso')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/payment-connect',\r\n component: lazy(() => import('pages/paymentConnect')),\r\n exact: true,\r\n },\r\n {\r\n path: '/settings/payment-connect/:id',\r\n component: lazy(() => import('pages/paymentConnect/detail')),\r\n exact: true,\r\n },\r\n]\r\n\r\nexport default routes\r\n","import React from 'react'\r\nimport { Link } from 'react-router-dom'\r\nimport withBreadcrumbs from 'react-router-breadcrumbs-hoc'\r\nimport { injectIntl } from 'react-intl'\r\nimport { Skeleton } from 'antd'\r\nimport { connect } from 'react-redux'\r\nimport dayjs from 'dayjs'\r\n\r\n// import _ from 'lodash';\r\n// import setupRoutes from 'containers/Setup/routes';\r\nimport financeBankRoutes from 'containers/FinanceBanks/routes'\r\nimport { getTerm } from 'utils/hooks/useTerm'\r\nimport routeConfig from '../../../routes'\r\nimport styles from './style.module.scss'\r\n\r\nconst mapStateToProps = ({\r\n inits: { loadedInit },\r\n billing,\r\n menu,\r\n options: { options },\r\n settings,\r\n finance: {\r\n warehouse: { warehouses },\r\n bankAccounts,\r\n paymentConnectProviders,\r\n },\r\n translation,\r\n}) => ({\r\n billing,\r\n menuLeftData: menu.menuLeftData,\r\n isMobileView: settings.isMobileView,\r\n darkMode: options.dark_mode,\r\n warehouses,\r\n accounts: bankAccounts,\r\n translation,\r\n loadedInit,\r\n paymentConnectProviders,\r\n})\r\n\r\n@connect(mapStateToProps)\r\nclass Breadcrumbs extends React.PureComponent {\r\n getWarehouseName = (id) => {\r\n const { warehouses } = this.props\r\n let name = ''\r\n if (id) {\r\n const findWarehouse = warehouses.find((row) => row.id === id)\r\n name = findWarehouse ? findWarehouse.name : ''\r\n }\r\n\r\n return name\r\n }\r\n\r\n getAccountName = (id) => {\r\n const { accounts } = this.props\r\n let name = ''\r\n if (id) {\r\n const findAccount = accounts.find((row) => row.id === id)\r\n name = findAccount ? findAccount.name : ''\r\n }\r\n\r\n return name\r\n }\r\n\r\n render() {\r\n const {\r\n loadedInit,\r\n breadcrumbs,\r\n menuLeftData,\r\n isMobileView,\r\n intl,\r\n billing,\r\n paymentConnectProviders,\r\n darkMode,\r\n translation: { menu = {}, reportmenu = {}, term = {} },\r\n } = this.props\r\n\r\n if (isMobileView) {\r\n return
\r\n }\r\n\r\n const _term = getTerm({ intl, term })\r\n\r\n const countBreadCrumb = breadcrumbs.length\r\n const arrMenuLeft = []\r\n ;(menuLeftData || []).forEach((data) => {\r\n if (data.children) {\r\n ;(data.children || []).forEach((chil) => arrMenuLeft.push(chil))\r\n }\r\n const newData = { ...data }\r\n delete newData.children\r\n arrMenuLeft.push(newData)\r\n })\r\n\r\n return (\r\n \r\n {!loadedInit ? (\r\n \r\n ) : (\r\n
\r\n {breadcrumbs.map((bread, index) => {\r\n const { match, breadcrumb } = bread\r\n const findRoute = arrMenuLeft.find((v) => v.url === match.url)\r\n let link = null\r\n\r\n if (index === breadcrumbs.length - 1) {\r\n link = {breadcrumb}\r\n }\r\n if (typeof breadcrumb.type === 'object') {\r\n link = breadcrumb\r\n }\r\n\r\n if (findRoute) {\r\n if (countBreadCrumb > 1 && index !== breadcrumbs.length - 1) {\r\n link = (\r\n \r\n {findRoute.title}\r\n \r\n )\r\n } else {\r\n link = {findRoute.title}\r\n }\r\n }\r\n\r\n if (match.url === '/sales') {\r\n link = (\r\n \r\n {menu.sales}\r\n \r\n )\r\n }\r\n if (match.url === '/sales/invoices') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {menu.invoices}\r\n } else {\r\n link = (\r\n \r\n {menu.invoices}\r\n \r\n )\r\n }\r\n }\r\n if (match.url === '/sales/quotes') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {menu.quotes}\r\n } else {\r\n link = (\r\n \r\n {menu.quotes}\r\n \r\n )\r\n }\r\n }\r\n if (match.url === '/sales/orders') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {menu.orders}\r\n } else {\r\n link = (\r\n \r\n {menu.orders}\r\n \r\n )\r\n }\r\n }\r\n if (match.url === '/sales/deliveries') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {menu.deliveries}\r\n } else {\r\n link = (\r\n \r\n {menu.deliveries}\r\n \r\n )\r\n }\r\n }\r\n if (match.url === '/sales/overview') {\r\n link = {menu.overview}\r\n }\r\n if (match.url === '/sales/returns') {\r\n link = (\r\n \r\n {menu.returns}\r\n \r\n )\r\n }\r\n\r\n if (match.url === '/purchases') {\r\n link = (\r\n \r\n {menu.purchases}\r\n \r\n )\r\n }\r\n if (match.url === '/purchases/purchaseinvoices') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {menu.purchase_invoices}\r\n } else {\r\n link = (\r\n \r\n {menu.purchase_invoices}\r\n \r\n )\r\n }\r\n }\r\n if (match.url === '/purchases/purchaseorders') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {menu.purchase_orders}\r\n } else {\r\n link = (\r\n \r\n {menu.purchase_orders}\r\n \r\n )\r\n }\r\n }\r\n if (match.url === '/purchases/quotes') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {menu.purchase_quotes}\r\n } else {\r\n link = (\r\n \r\n {menu.purchase_quotes}\r\n \r\n )\r\n }\r\n }\r\n if (match.url === '/purchases/deliveries') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {menu.purchase_deliveries}\r\n } else {\r\n link = (\r\n \r\n {menu.purchase_deliveries}\r\n \r\n )\r\n }\r\n }\r\n if (match.url === '/purchases/overview') {\r\n link = {menu.overview}\r\n }\r\n if (match.url === '/purchases/returns') {\r\n link = (\r\n \r\n {menu.purchase_returns}\r\n \r\n )\r\n }\r\n\r\n if (match.url === '/pos') {\r\n link = (\r\n \r\n {menu.pos}\r\n \r\n )\r\n }\r\n if (match.url === '/pos/product-favorites') {\r\n link = {menu.pos_product_favorites}\r\n }\r\n if (match.url === '/pos/users') link = {menu.pos_cashier_users}\r\n if (match.url === '/pos/outlets') link = {menu.pos_outlets}\r\n\r\n if (match.url === '/accounts/conversionbalances/conversiondate') {\r\n link = {intl.formatMessage({ id: 'breadcrumb.conversiondate' })}\r\n }\r\n if (match.url === '/accounts/conversionbalances') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = (\r\n {intl.formatMessage({ id: 'breadcrumb.conversionbalances' })}\r\n )\r\n } else {\r\n link = (\r\n \r\n {intl.formatMessage({ id: 'breadcrumb.conversionbalances' })}\r\n \r\n )\r\n }\r\n }\r\n\r\n if (match.url === '/dashboard') {\r\n link = {menu.home}\r\n }\r\n\r\n if (match.url === '/billing/upgrade') {\r\n link = (\r\n \r\n {billing.expiry_date &&\r\n dayjs().subtract(1, 'days').isAfter(billing.expiry_date) &&\r\n billing.can_be_renewed\r\n ? intl.formatMessage({ id: 'billing.renew' })\r\n : intl.formatMessage({ id: 'billing.upgrade' })}\r\n \r\n )\r\n }\r\n if (match.url === '/billing') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {menu.billing}\r\n } else {\r\n link = (\r\n \r\n {menu.billing}\r\n \r\n )\r\n }\r\n }\r\n\r\n if (match.url === '/reports') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {menu.reports}\r\n } else {\r\n link = (\r\n \r\n {menu.reports}\r\n \r\n )\r\n }\r\n }\r\n\r\n if (match.url === '/companies') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {intl.formatMessage({ id: 'companies.company_list' })}\r\n } else {\r\n link = (\r\n \r\n {intl.formatMessage({ id: 'companies.company_list' })}\r\n \r\n )\r\n }\r\n }\r\n\r\n if (match.url === '/settings') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {menu.settings}\r\n } else {\r\n link = (\r\n \r\n {menu.settings}\r\n \r\n )\r\n }\r\n }\r\n if (match.url === '/settings/account-mapping') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = (\r\n {intl.formatMessage({ id: 'accountMapping.account_mappinng' })}\r\n )\r\n } else {\r\n link = (\r\n \r\n {intl.formatMessage({ id: 'accountMapping.account_mappinng' })}\r\n \r\n )\r\n }\r\n }\r\n if (match.url === '/settings/apps') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {intl.formatMessage({ id: 'appSetting.apps' })}\r\n } else {\r\n link = (\r\n \r\n {intl.formatMessage({ id: 'appSetting.apps' })}\r\n \r\n )\r\n }\r\n }\r\n if (match.url === '/settings/multi-currency') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = (\r\n {intl.formatMessage({ id: 'multiCurrency.multi_currency' })}\r\n )\r\n } else {\r\n link = (\r\n \r\n {intl.formatMessage({ id: 'multiCurrency.multi_currency' })}\r\n \r\n )\r\n }\r\n }\r\n if (match.url === '/settings/marketplaceConnect') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = Marketplace Connect\r\n } else {\r\n link = (\r\n \r\n Marketplace Connect\r\n \r\n )\r\n }\r\n }\r\n if (match.url === '/settings/sales-commissions') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = (\r\n \r\n {intl.formatMessage({ id: 'salesCommission.sales_commission' })}\r\n \r\n )\r\n } else {\r\n link = (\r\n \r\n {intl.formatMessage({ id: 'salesCommission.sales_commission' })}\r\n \r\n )\r\n }\r\n }\r\n\r\n if (match.url === '/reports/sales-per-period') {\r\n link = {reportmenu.sales_per_period}\r\n }\r\n if (match.url === '/reports/purchases-per-period') {\r\n link = {reportmenu.purchases_per_period}\r\n }\r\n if (match.url === '/reports/receivable-payable-per-contact') {\r\n link = {reportmenu.payable_credit_per_contact}\r\n }\r\n if (match.url === '/accounts/conversionbalances/opening_balance') {\r\n link = (\r\n {intl.formatMessage({ id: 'financeConversion.opening_balance' })}\r\n )\r\n }\r\n if (match.url === '/accounts/conversionbalances/reversal_detail') {\r\n link = (\r\n {intl.formatMessage({ id: 'financeConversion.reversal_detail' })}\r\n )\r\n }\r\n if (match.url === '/reports/inventory-summary') {\r\n link = {reportmenu.inventory_summary}\r\n }\r\n if (match.url === '/reports/inventory-stock-movement') {\r\n link = {reportmenu.inventory_stock_movement}\r\n }\r\n if (match.url === '/reports/warehouse-stock-summary') {\r\n link = {reportmenu.warehouse_stock_summary}\r\n }\r\n if (match.url === '/reports/warehouse-stock-movement') {\r\n link = {reportmenu.warehouse_stock_movement}\r\n }\r\n if (match.url === '/reports/inventory-stock-adjustment') {\r\n link = {reportmenu.report_inventory_stock_adjustment}\r\n }\r\n if (match.url === '/reports/warehouse-transfer') {\r\n link = {reportmenu.inventory_warehouse_transfer}\r\n }\r\n if (match.url === '/reports/production') {\r\n link = {reportmenu.production}\r\n }\r\n if (match.url === '/reports/shipping-cost-per-expedition') {\r\n link = {reportmenu.shipping_cost_per_expedition}\r\n }\r\n if (match.url === '/reports/sales-per-sales-person') {\r\n link = {reportmenu.sales_per_sales_person}\r\n }\r\n if (match.url === '/reports/product-profitability') {\r\n link = {reportmenu.profitability_product}\r\n }\r\n if (match.url === '/reports/profitability-per-invoice') {\r\n link = {reportmenu.profitability_per_invoice}\r\n }\r\n if (match.url === '/reports/invoice-payment') {\r\n link = {reportmenu.invoice_payment}\r\n }\r\n if (match.url === '/reports/product-sales-per-customer') {\r\n link = {reportmenu?.product_sales_per_customer}\r\n }\r\n if (match.url === '/reports/sales-per-product-category') {\r\n link = {reportmenu.sales_per_product_category}\r\n }\r\n if (match.url === '/reports/product-purchases-per-vendor') {\r\n link = {reportmenu?.product_purchases_per_supplier}\r\n }\r\n if (match.url === '/reports/purchase-invoice-payment') {\r\n link = {reportmenu.purchases_invoice_payment}\r\n }\r\n if (match.url === '/reports/general-ledger') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {reportmenu.general_ledger}\r\n } else {\r\n link = (\r\n \r\n {reportmenu.general_ledger}\r\n \r\n )\r\n }\r\n }\r\n if (match.url === '/reports/general-ledger/category') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {intl.formatMessage({ id: 'report.category' })}\r\n } else {\r\n link = (\r\n \r\n {intl.formatMessage({ id: 'report.category' })}\r\n \r\n )\r\n }\r\n }\r\n if (match.url === '/reports/journal') {\r\n link = {reportmenu.journal}\r\n }\r\n if (match.url === '/reports/bank-summary') {\r\n link = {reportmenu.bank_summary}\r\n }\r\n if (match.url === '/reports/sales-tax') {\r\n link = {reportmenu.sales_tax}\r\n }\r\n if (match.url === '/reports/witholding-tax') {\r\n link = {reportmenu.witholding_tax}\r\n }\r\n if (match.url === '/reports/customer-invoice') {\r\n link = {reportmenu.customer_invoice}\r\n }\r\n if (match.url === '/reports/supplier-invoice') {\r\n link = {reportmenu.supplier_invoice}\r\n }\r\n if (match.url === '/reports/sales-detail') {\r\n link = {reportmenu.sales_detail}\r\n }\r\n if (match.url === '/reports/purchase-detail') {\r\n link = {reportmenu.purchase_detail}\r\n }\r\n if (match.url === '/reports/aged-payable') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {reportmenu.aged_payables}\r\n } else {\r\n link = (\r\n \r\n {reportmenu.aged_payables}\r\n \r\n )\r\n }\r\n }\r\n if (match.url === '/reports/aged-receivable') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {reportmenu.aged_receivables}\r\n } else {\r\n link = (\r\n \r\n {reportmenu.aged_receivables}\r\n \r\n )\r\n }\r\n }\r\n if (match.url === '/reports/expense-claim') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {reportmenu.expense_claim_detail}\r\n } else {\r\n link = (\r\n \r\n {reportmenu.expense_claim_detail}\r\n \r\n )\r\n }\r\n }\r\n\r\n if (match.url === '/reports/import') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {intl.formatMessage({ id: 'button.import' })}\r\n } else {\r\n link = (\r\n \r\n {intl.formatMessage({ id: 'button.import' })}\r\n \r\n )\r\n }\r\n }\r\n\r\n if (\r\n match.url === '/sales/invoices/recurring' ||\r\n match.url === '/sales/orders/recurring' ||\r\n match.url === '/purchases/purchaseinvoices/recurring' ||\r\n match.url === '/purchases/purchaseorders/recurring' ||\r\n match.url === '/expenses/recurring' ||\r\n match.url === '/manual-journal/recurring' ||\r\n /banks\\/[0-9]+\\/recurring$/.test(match.url) ||\r\n /banks\\/detail\\/[0-9]+\\/recurring$/.test(match.url)\r\n ) {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {intl.formatMessage({ id: 'recurring.recurring' })}\r\n } else {\r\n link = (\r\n \r\n {intl.formatMessage({ id: 'recurring.recurring' })}\r\n \r\n )\r\n }\r\n }\r\n\r\n if (match.url === '/reports/income-per-customer') {\r\n link = {reportmenu.income_per_customer}\r\n }\r\n if (match.url === '/reports/trial-balance') {\r\n link = {reportmenu.trial_balance}\r\n }\r\n if (match.url === '/reports/profit-loss') {\r\n link = {reportmenu.profit_and_loss}\r\n }\r\n if (match.url === '/reports/expense-per-contact') {\r\n link = {reportmenu.expense_per_contact}\r\n }\r\n if (match.url === '/reports/sales-per-product') {\r\n link = {reportmenu.sales_per_product}\r\n }\r\n if (match.url === '/reports/order-per-product') {\r\n link = {reportmenu.order_per_product}\r\n }\r\n if (match.url === '/reports/purchases-per-vendor') {\r\n link = {reportmenu.purchases_per_supplier}\r\n }\r\n if (match.url === '/reports/purchases-per-product') {\r\n link = {reportmenu.purchases_per_product}\r\n }\r\n if (match.url === '/reports/cash-flow') {\r\n link = {reportmenu.cash_flow}\r\n }\r\n if (match.url === '/reports/balance-sheet') {\r\n link = {reportmenu.balance_sheet}\r\n }\r\n if (match.url === '/reports/equity-movement') {\r\n link = {reportmenu.equity_movement}\r\n }\r\n if (match.url === '/reports/executive-summary') {\r\n link = {reportmenu.executive_summary}\r\n }\r\n if (match.url === '/reports/account-transaction') {\r\n link = (\r\n \r\n {intl.formatMessage(\r\n { id: 'report.account_transactions_title' },\r\n { account: '' },\r\n )}\r\n \r\n )\r\n }\r\n if (match.url === '/reports/fixed-asset-detail') {\r\n link = {reportmenu.fixed_asset_detail}\r\n }\r\n if (match.url === '/reports/fixed-asset-summary') {\r\n link = {reportmenu.fixed_asset_summary}\r\n }\r\n if (match.url === '/reports/fixed-asset-disposal') {\r\n link = {reportmenu.fixed_asset_disposal}\r\n }\r\n if (match.url === '/reports/consolidation-balance-sheet') {\r\n link = {`${reportmenu.balance_sheet} ${menu.consolidation}`}\r\n }\r\n if (match.url === '/reports/consolidation-cash-flow') {\r\n link = {`${reportmenu.cash_flow} ${menu.consolidation}`}\r\n }\r\n if (match.url === '/reports/consolidation-profit-loss') {\r\n link = {`${reportmenu.profit_and_loss} ${menu.consolidation}`}\r\n }\r\n if (match.url === '/reports/consolidation-worksheet') {\r\n link = {`${reportmenu.worksheet} ${menu.consolidation}`}\r\n }\r\n if (match.url === '/reports/sales-delivery') {\r\n link = {reportmenu.sales_delivery}\r\n }\r\n if (match.url === '/reports/purchase-delivery') {\r\n link = {reportmenu.purchase_delivery}\r\n }\r\n if (match.url === '/reports/budget-management') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {reportmenu.budget}\r\n } else {\r\n link = (\r\n \r\n {reportmenu.budget}\r\n \r\n )\r\n }\r\n }\r\n if (match.url === '/reports/budget-profit-loss') {\r\n link = {reportmenu.budget_profit_loss}\r\n }\r\n if (match.url === '/manual-journal') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = (\r\n \r\n {intl.formatMessage({ id: 'financeManualJournal.financeManualJournal' })}\r\n \r\n )\r\n } else {\r\n link = (\r\n \r\n {intl.formatMessage({ id: 'financeManualJournal.financeManualJournal' })}\r\n \r\n )\r\n }\r\n }\r\n if (match.url === '/closing') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {intl.formatMessage({ id: 'financeClosing.closing' })}\r\n } else {\r\n link = (\r\n \r\n {intl.formatMessage({ id: 'financeClosing.closing' })}\r\n \r\n )\r\n }\r\n }\r\n if (match.url === '/fixed-assets/transaction') {\r\n link = (\r\n {intl.formatMessage({ id: 'financeFixedAssets.transactions' })}\r\n )\r\n }\r\n if (match.url === '/fixed-assets/run-depreciation') {\r\n link = (\r\n \r\n {intl.formatMessage({ id: 'financeFixedAssets.run_depreciation' })}\r\n \r\n )\r\n }\r\n\r\n if (match.url === '/layout-invoice') {\r\n link = {menu.layout_invoice}\r\n }\r\n\r\n if (match.url === '/settings/layout-report') {\r\n link = {intl.formatMessage({ id: 'layoutReport.layout_report' })}\r\n }\r\n\r\n if (match.url === '/settings/backup-database') {\r\n link = {menu.finance_backup_database}\r\n }\r\n\r\n const splitUrl = match.url.split('/')\r\n const lastUrl = splitUrl[splitUrl.length - 1]\r\n\r\n // Bank custom breadcrumbs\r\n if (/banks\\/[0-9]+$/.test(match.url) || /banks\\/detail\\/[0-9]+$/.test(match.url)) {\r\n const id = parseInt(lastUrl, 10)\r\n link = (\r\n \r\n {this.getAccountName(id)}\r\n \r\n )\r\n }\r\n\r\n if (/banks\\/[0-9]+\\/spend$/.test(match.url)) {\r\n link = {intl.formatMessage({ id: 'financeBanks.spend_money' })}\r\n }\r\n\r\n if (\r\n /banks\\/[0-9]+\\/spend\\/[0-9]+$/.test(match.url) ||\r\n /banks\\/[0-9]+\\/receive\\/[0-9]+$/.test(match.url)\r\n ) {\r\n link = null\r\n }\r\n\r\n if (/banks\\/[0-9]+\\/receive$/.test(match.url)) {\r\n link = {intl.formatMessage({ id: 'financeBanks.receive_money' })}\r\n }\r\n\r\n if (/banks\\/transaction$/.test(match.url)) {\r\n if (this.props.account.id) {\r\n link = {this.props.account.name}\r\n }\r\n }\r\n\r\n if (/banks\\/detail\\/[0-9]+\\/transactions$/.test(match.url)) {\r\n link = {intl.formatMessage({ id: 'financeBanks.transactions' })}\r\n }\r\n\r\n if (match.url === '/banks') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {menu.cash_bank}\r\n } else {\r\n link = (\r\n \r\n {menu.cash_bank}\r\n \r\n )\r\n }\r\n }\r\n\r\n if (match.url === '/banks/connect') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {intl.formatMessage({ id: 'financeBanks.bank_connect' })}\r\n } else {\r\n link = (\r\n \r\n {intl.formatMessage({ id: 'financeBanks.bank_connect' })}\r\n \r\n )\r\n }\r\n }\r\n\r\n // Warehouse Custom Breadcrumbs\r\n if (/warehouses\\/[0-9]+$/.test(match.url)) {\r\n const id = parseInt(lastUrl, 10)\r\n link = (\r\n \r\n {this.getWarehouseName(id)}\r\n \r\n )\r\n }\r\n\r\n if (match.url === '/warehouses/access' || /banks\\/[0-9]+\\/access$/.test(match.url)) {\r\n link = (\r\n \r\n {intl.formatMessage({ id: 'financeWareHouses.access' })}\r\n \r\n )\r\n }\r\n\r\n if (/warehouses\\/[0-9]+\\/transfer$/.test(match.url)) {\r\n link = (\r\n \r\n {intl.formatMessage({ id: 'financeWareHouses.transfer' })}\r\n \r\n )\r\n }\r\n\r\n if (/warehouses\\/[0-9]+\\/stock-adjustment$/.test(match.url)) {\r\n link = (\r\n \r\n {intl.formatMessage({ id: 'financeWareHouses.stock_adjustment' })}\r\n \r\n )\r\n }\r\n\r\n if (\r\n /warehouses\\/[0-9]+\\/transfer\\/detail\\/[0-9]+$/.test(match.url) ||\r\n /warehouses\\/[0-9]+\\/stock-adjustment\\/detail\\/[0-9]+$/.test(match.url)\r\n ) {\r\n link = {intl.formatMessage({ id: 'breadcrumb.detail' })}\r\n }\r\n\r\n if (lastUrl === 'import-recurring') {\r\n link = (\r\n \r\n {intl.formatMessage({ id: 'button.import' })}{' '}\r\n {intl.formatMessage({\r\n id: 'recurring.repeat',\r\n })}\r\n \r\n )\r\n }\r\n\r\n if (lastUrl === 'import-return') {\r\n link = (\r\n \r\n {intl.formatMessage({\r\n id: 'financeInvoices.import_invoice_return',\r\n })}\r\n \r\n )\r\n }\r\n\r\n if (lastUrl === 'transfer-in') {\r\n link = (\r\n {intl.formatMessage({ id: 'financeWareHouses.transfer_in' })}\r\n )\r\n }\r\n\r\n if (lastUrl === 'transfer-out') {\r\n link = (\r\n {intl.formatMessage({ id: 'financeWareHouses.transfer_out' })}\r\n )\r\n }\r\n\r\n if (lastUrl === 'add') {\r\n link = {intl.formatMessage({ id: 'breadcrumb.add' })}\r\n }\r\n\r\n if (splitUrl[splitUrl.length - 2] === 'add') {\r\n link = ''\r\n }\r\n\r\n if (lastUrl === 'edit') {\r\n link = {intl.formatMessage({ id: 'breadcrumb.edit' })}\r\n }\r\n\r\n if (lastUrl === 'detail' && index === breadcrumbs.length - 1) {\r\n link = {intl.formatMessage({ id: 'breadcrumb.detail' })}\r\n }\r\n\r\n if (lastUrl === 'email-template') {\r\n link = {menu.email_template}\r\n }\r\n\r\n if (lastUrl === 'due-reminder') {\r\n link = {menu.due_reminder}\r\n }\r\n\r\n if (lastUrl === 'taxes') {\r\n link = {menu.taxes}\r\n }\r\n\r\n if (lastUrl === 'unit') {\r\n link = {menu.units}\r\n }\r\n\r\n if (lastUrl === 'shipping-company' && index === breadcrumbs.length - 1) {\r\n link = {menu.shipping_comps}\r\n }\r\n\r\n if (lastUrl === 'expenses' && index === breadcrumbs.length - 1) {\r\n link = {menu.expenses}\r\n }\r\n\r\n if (lastUrl === 'products' && index === breadcrumbs.length - 1) {\r\n link = {menu.products}\r\n }\r\n\r\n if (\r\n index === breadcrumbs.length - 1 &&\r\n breadcrumbs[breadcrumbs.length - 1].match.path === '/products/access/:id'\r\n ) {\r\n link = {intl.formatMessage({ id: 'financeWareHouses.access' })}\r\n }\r\n\r\n if (lastUrl === 'price-rule') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {intl.formatMessage({ id: 'priceRule.price_rule' })}\r\n } else {\r\n link = (\r\n \r\n {intl.formatMessage({ id: 'priceRule.price_rule' })}\r\n \r\n )\r\n }\r\n }\r\n\r\n if (lastUrl === 'import-package') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = (\r\n \r\n {`${intl.formatMessage({ id: 'button.import' })} ${intl.formatMessage({\r\n id: 'financeProduct.package',\r\n })}`}\r\n \r\n )\r\n } else {\r\n link = (\r\n \r\n {`${intl.formatMessage({ id: 'button.import' })} ${intl.formatMessage({\r\n id: 'financeProduct.package',\r\n })}`}\r\n \r\n )\r\n }\r\n }\r\n\r\n if (lastUrl === 'import-manufacture') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = (\r\n \r\n {`${intl.formatMessage({ id: 'button.import' })} ${intl.formatMessage({\r\n id: 'financeProduct.manufacture',\r\n })}`}\r\n \r\n )\r\n } else {\r\n link = (\r\n \r\n {`${intl.formatMessage({ id: 'button.import' })} ${intl.formatMessage({\r\n id: 'financeProduct.manufacture',\r\n })}`}\r\n \r\n )\r\n }\r\n }\r\n\r\n if (lastUrl === 'import-conversion') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = (\r\n \r\n {`${intl.formatMessage({ id: 'button.import' })} ${intl.formatMessage({\r\n id: 'financeProduct.conversion',\r\n })}`}\r\n \r\n )\r\n } else {\r\n link = (\r\n \r\n {`${intl.formatMessage({ id: 'button.import' })} ${intl.formatMessage({\r\n id: 'financeProduct.conversion',\r\n })}`}\r\n \r\n )\r\n }\r\n }\r\n\r\n if (lastUrl === 'conversions' && index === breadcrumbs.length - 1) {\r\n link = (\r\n {intl.formatMessage({ id: 'financeProduct.product_conversion' })}\r\n )\r\n }\r\n\r\n if (lastUrl === 'finance-approval') {\r\n link = {menu?.approval}\r\n }\r\n\r\n if (lastUrl === 'approval-setting') {\r\n link = {menu?.finance_approval_setting}\r\n }\r\n\r\n if (lastUrl === 'tags' && index === breadcrumbs.length - 1) {\r\n link = {menu.tags}\r\n }\r\n\r\n if (match.url.includes('/settings/tags/access')) {\r\n link = {intl.formatMessage({ id: 'financeWareHouses.access' })}\r\n }\r\n\r\n if (lastUrl === 'contacts' && index === breadcrumbs.length - 1) {\r\n link = {menu.contacts}\r\n }\r\n\r\n if (lastUrl === 'import-accounts-payable' && index === breadcrumbs.length - 1) {\r\n link = (\r\n \r\n {intl.formatMessage(\r\n { id: 'financeContacts.import_contact_transactions_with_title' },\r\n {\r\n credit: _term.payable,\r\n debit: _term.receivable,\r\n },\r\n )}\r\n \r\n )\r\n }\r\n\r\n if (lastUrl === 'accounts' && index === breadcrumbs.length - 1) {\r\n link = {menu.accounts}\r\n }\r\n\r\n if (lastUrl === 'warehouses' && index === breadcrumbs.length - 1) {\r\n link = {menu.inventory}\r\n }\r\n\r\n if (lastUrl === 'company') {\r\n link = {menu.company}\r\n }\r\n\r\n if (lastUrl === 'payments') {\r\n link = {intl.formatMessage({ id: 'payments.payment_method' })}\r\n }\r\n\r\n if (lastUrl === 'custom-column') {\r\n link = {menu.custom_columns}\r\n }\r\n\r\n if (lastUrl === 'terms') {\r\n link = {menu.terms}\r\n }\r\n\r\n if (lastUrl === 'business-flow') {\r\n link = {menu.businessflow}\r\n }\r\n\r\n if (lastUrl === 'customer-birthday') {\r\n link = {menu.customer_birthday}\r\n }\r\n\r\n if (lastUrl === 'automatic-sequencing') {\r\n link = {menu.automatic_sequencing}\r\n }\r\n\r\n if (lastUrl === 'users' && match.url !== '/pos/users') {\r\n link = {menu.users}\r\n }\r\n\r\n if (lastUrl === 'roles' && index === breadcrumbs.length - 1) {\r\n link = {menu.roles}\r\n }\r\n\r\n if (lastUrl === 'profile') {\r\n link = {menu.my_profile}\r\n }\r\n\r\n if (lastUrl === 'consolidation') {\r\n link = {menu.consolidation}\r\n }\r\n\r\n if (match.url === '/setup') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = {menu.setup}\r\n } else {\r\n link = (\r\n \r\n {menu.setup}\r\n \r\n )\r\n }\r\n }\r\n\r\n if (lastUrl === 'clear-demo-data') {\r\n link = {intl.formatMessage({ id: 'setup.clear_demo_data' })}\r\n }\r\n\r\n if (lastUrl === 'add-room-types') {\r\n link = (\r\n \r\n {intl.formatMessage({ id: 'setup.setup_add_room_type_and_rooms' })}\r\n \r\n )\r\n }\r\n\r\n if (lastUrl === 'finish') {\r\n link = {intl.formatMessage({ id: 'setup.finish' })}\r\n }\r\n\r\n if (lastUrl === 'fixed-assets' && index === breadcrumbs.length - 1) {\r\n link = {menu.fixed_assets}\r\n }\r\n\r\n if (lastUrl === 'lock-date' && index === breadcrumbs.length - 1) {\r\n link = {menu.lock_date}\r\n }\r\n\r\n if (lastUrl === 'warehouses' && index === breadcrumbs.length - 1) {\r\n link = {menu.inventory}\r\n }\r\n\r\n if (lastUrl === 'credit-memo') {\r\n link = {_term.payable}\r\n }\r\n\r\n if (lastUrl === 'debit-memo') {\r\n link = {_term.receivable}\r\n }\r\n\r\n if (lastUrl === 'importStatus') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = Import Status\r\n } else {\r\n link = (\r\n \r\n Import Status\r\n \r\n )\r\n }\r\n }\r\n if (match.url === '/invoice-payment-credit-memo') {\r\n link = (\r\n \r\n {intl.formatMessage({\r\n id: 'invoicePaymentCreditMemo.invoicePaymentCreditMemo',\r\n })}\r\n \r\n )\r\n }\r\n if (match.url === '/purchaseinvoice-payment-debit-memo') {\r\n link = (\r\n \r\n {intl.formatMessage({\r\n id: 'purchaseInvoicePaymentDebitMemo.purchaseInvoicePaymentDebitMemo',\r\n })}\r\n \r\n )\r\n }\r\n if (match.url === '/unrealized-gain') {\r\n link = (\r\n \r\n {intl.formatMessage({\r\n id: 'unrealizedGain.unrealizedGain',\r\n })}\r\n \r\n )\r\n }\r\n\r\n if (match.url === '/faqs') {\r\n if (index === breadcrumbs.length - 1) {\r\n link = FAQ\r\n } else {\r\n link = (\r\n \r\n FAQ\r\n \r\n )\r\n }\r\n }\r\n\r\n if (lastUrl === 'fees') {\r\n link = (\r\n \r\n {menu.fees ||\r\n intl.formatMessage({\r\n id: 'transactionFees.fees',\r\n })}\r\n \r\n )\r\n }\r\n\r\n if (match.url.includes('/settings/payment-connect/')) {\r\n link = (\r\n \r\n {paymentConnectProviders.find((provider) => provider.id === Number(lastUrl))\r\n ?.name ?? 'Provider'}\r\n \r\n )\r\n }\r\n\r\n if (lastUrl === 'access-per-contact') {\r\n link = (\r\n \r\n {intl.formatMessage({\r\n id: 'financeWareHouses.per_contact_warehouse_access',\r\n })}\r\n \r\n )\r\n }\r\n\r\n if (!link) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n {countBreadCrumb > 1 && index > 0 && (\r\n \r\n )}\r\n {link}\r\n \r\n )\r\n })}\r\n
\r\n )}\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default withBreadcrumbs([\r\n ...routeConfig,\r\n // ...setupRoutes,\r\n ...financeBankRoutes,\r\n])(injectIntl(Breadcrumbs))\r\n","import React from 'react'\r\nimport { Modal } from 'antd'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { accountTransReportSelector } from 'redux/selectors'\r\nimport { hideAccountTransactionReport } from 'redux/finance/actions'\r\nimport { Cancel } from 'components/UI'\r\nimport AccountTransactions from './index'\r\n\r\nconst AccountTransactionModal = () => {\r\n const dispatch = useDispatch()\r\n\r\n const accountTrans = useSelector(accountTransReportSelector)\r\n\r\n const hideHandler = () => dispatch(hideAccountTransactionReport())\r\n return (\r\n ]}\r\n maskTransitionName=\"\"\r\n width=\"90%\"\r\n styles={{ body: { paddingTop: 40 }}}\r\n >\r\n \r\n \r\n )\r\n}\r\n\r\nexport default AccountTransactionModal\r\n","import React, { useMemo, useState, useRef } from \"react\";\r\nimport { Button, Col, Popover, Progress, Row, Space, Spin, Typography } from \"antd\";\r\nimport { injectIntl } from \"react-intl\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { darkModeSelector, mobileViewSelector, optionsSelector } from 'redux/selectors';\r\nimport { CheckOutlined, ExclamationCircleFilled } from \"@ant-design/icons\";\r\nimport { useOnboardingStatus } from \"utils/queries\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Delete } from \"components/UI\";\r\nimport { editOption } from \"redux/options/actions\";\r\nimport { useQueryClient } from \"react-query\";\r\nimport styles from \"./style.module.scss\";\r\n\r\nconst Onboarding = ({ intl }) => {\r\n const [isLoadingOnboarding, setIsLoadingOnboarding] = useState(false)\r\n const [open, setOpen] = useState(false)\r\n const isMobileView = useSelector(mobileViewSelector)\r\n const options = useSelector(optionsSelector)\r\n const darkMode = useSelector(darkModeSelector)\r\n const popoverRef = useRef(null)\r\n const dispatch = useDispatch()\r\n const queryClient = useQueryClient()\r\n\r\n const { data, isLoading } = useOnboardingStatus()\r\n\r\n const visibleChangeHandler = (newOpen) => {\r\n if (newOpen) {\r\n setIsLoadingOnboarding(true); // Set isLoadingOnboarding to true when the popover is opened\r\n queryClient.invalidateQueries(['onboarding-status'])\r\n .then(() => setIsLoadingOnboarding(false)) // Set isLoadingOnboarding to false when the query is completed\r\n .catch(() => setIsLoadingOnboarding(false)); // Handle errors and set isLoadingOnboarding to false\r\n }\r\n setOpen(newOpen);\r\n };\r\n\r\n const formattedData = useMemo(() => {\r\n function isChecklistDone(checklistId) {\r\n const progress = data?.progress_detail.find(item => item.checklist_id === checklistId);\r\n return progress ? progress?.completed_at !== null : false;\r\n }\r\n\r\n const newData = [];\r\n\r\n if (data && data?.checklist && Array.isArray(data?.checklist)) {\r\n (data?.checklist ?? []).forEach((item) => {\r\n newData.push({\r\n id: item.id,\r\n app_id: item.app_id,\r\n title: item.title,\r\n desc: item.desc,\r\n button_text: item.button_text,\r\n button_dest: item.button_dest,\r\n position: item.position,\r\n isDone: isChecklistDone(item.id),\r\n });\r\n });\r\n }\r\n\r\n return newData;\r\n }, [data]);\r\n\r\n const handleNavigationButton = () => {\r\n\r\n };\r\n\r\n const handleDismissButton = () => {\r\n dispatch(\r\n editOption({\r\n dismiss_onboarding_checklist: 1,\r\n }),\r\n )\r\n };\r\n\r\n const renderSubContent = (item) => {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {item.title}\r\n {item.desc}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n };\r\n\r\n const renderContent = () => {\r\n return (\r\n <>\r\n \r\n
\r\n \r\n {intl.formatMessage({ id: 'onBoarding.checklist_greeting' })}\r\n \r\n \r\n {data?.progress?.completed_percentage}%\r\n \r\n \r\n \r\n \r\n \r\n \r\n {formattedData?.map((item) => {\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n {item.title}\r\n \r\n
\r\n
\r\n );\r\n })}\r\n {\r\n (!isLoading && data?.progress?.completed_percentage === 100) &&\r\n handleDismissButton()} />\r\n }\r\n
\r\n
\r\n \r\n );\r\n };\r\n\r\n return (\r\n {\r\n visibleChangeHandler(visible);\r\n if (!visible) {\r\n setOpen(false);\r\n }\r\n }}\r\n ref={popoverRef}\r\n >\r\n \r\n }\r\n style={{\r\n right: \"1rem\",\r\n bottom: options.chat_support ? \"4rem\" : \"1rem\",\r\n position: \"fixed\",\r\n backgroundColor: \"#4777F3\",\r\n borderColor: \"#6C92F5\",\r\n outline: \"none\",\r\n boxShadow: 'none',\r\n zIndex: 15,\r\n height: isMobileView ? '' : 48,\r\n width: isMobileView ? '' : 48,\r\n }}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default injectIntl(Onboarding);\r\n","import React from 'react'\r\nimport { Button, Card, Carousel, Modal } from 'antd'\r\nimport { injectIntl } from 'react-intl'\r\nimport { BackwardOutlined, CloseOutlined, ForwardOutlined } from '@ant-design/icons'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport _ from 'lodash'\r\n\r\nimport Player from 'components/UI/ModalPlayer/Player'\r\nimport { broadcastSelector } from 'redux/selectors'\r\nimport { hideBroadcast, markAsRead } from 'redux/broadcast/actions'\r\n\r\nconst Media = ({ videoId, imageUrl, title }) => {\r\n if (!_.isEmpty(videoId)) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n if (!_.isEmpty(imageUrl) && _.isEmpty(videoId)) {\r\n return {title}\r\n }\r\n\r\n return null\r\n}\r\n\r\nconst BroadcastModal = ({ intl }) => {\r\n const dispatch = useDispatch()\r\n const carouselRef = React.useRef()\r\n const [activeSlide, setActiveSlide] = React.useState(0)\r\n const [viewedSlide, setViewedSlide] = React.useState([0])\r\n\r\n const broadcast = useSelector(broadcastSelector)\r\n const hideHandler = () => dispatch(hideBroadcast())\r\n const afterCloseHandler = () => dispatch(markAsRead({ data: getViewedIds() }))\r\n\r\n const goBackHandler = () => carouselRef.current.prev()\r\n const goNextHandler = () => carouselRef.current.next()\r\n const beforeChangeHandler = (current, next) => {\r\n setActiveSlide(next)\r\n if (!_.includes(viewedSlide, next)) {\r\n setViewedSlide([...viewedSlide, next])\r\n }\r\n }\r\n\r\n const getViewedIds = React.useCallback(() => {\r\n const ids = []\r\n viewedSlide.forEach((i) => {\r\n if (broadcast.data[i] && !_.includes(ids, i)) {\r\n ids.push(broadcast.data[i].id)\r\n }\r\n })\r\n return ids\r\n }, [viewedSlide, broadcast])\r\n\r\n const actions = React.useMemo(() => {\r\n const act = []\r\n if (activeSlide > 0) {\r\n act.push(\r\n }\r\n >\r\n {intl.formatMessage({ id: 'button.prev' })}\r\n ,\r\n )\r\n }\r\n if (activeSlide < broadcast.data.length - 1) {\r\n act.push(\r\n }\r\n >\r\n {intl.formatMessage({ id: 'button.next' })}\r\n ,\r\n )\r\n }\r\n return act\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [broadcast, activeSlide])\r\n\r\n return (\r\n 0 ? actions : null}\r\n closable={false}\r\n width={460}\r\n styles={{ body: { textAlign: 'center', padding: 0 }}}\r\n maskClosable={false}\r\n afterClose={afterCloseHandler}\r\n style={{ paddingBottom: 0 }}\r\n >\r\n }\r\n style={{ top: -6, right: -6 }}\r\n danger\r\n size=\"small\"\r\n onClick={hideHandler}\r\n />\r\n \r\n {broadcast.data.map((row) => {\r\n return (\r\n
\r\n \r\n }\r\n >\r\n \r\n \r\n
\r\n )\r\n })}\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default injectIntl(BroadcastModal)\r\n","import * as api from 'utils/apis/nps'\r\nimport * as actionTypes from 'redux/actionTypes'\r\n\r\nexport const hideNPSRedux = () => {\r\n return {\r\n type: actionTypes.HIDE_NPS,\r\n }\r\n}\r\n\r\nexport const ignoreNPS = () => {\r\n return (dispatch) => {\r\n return api.ignoreNPS().then((response) => {\r\n dispatch(hideNPSRedux())\r\n return response\r\n })\r\n }\r\n}\r\n\r\nexport const postNPS = (payload) => {\r\n return (dispatch) => {\r\n return api.postNPS(payload).then((response) => {\r\n dispatch(hideNPSRedux())\r\n return response\r\n })\r\n }\r\n}\r\n","import axios from 'axios'\r\n\r\nexport const postNPS = (data) => {\r\n return axios.post('/nps', data)\r\n}\r\n\r\nexport const ignoreNPS = () => {\r\n return axios.put('/nps/ignore')\r\n}\r\n","import React, { useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { injectIntl } from 'react-intl';\r\nimport { CloseOutlined, LoadingOutlined } from '@ant-design/icons';\r\nimport { Button, Card, Form, Input, message, Rate } from 'antd';\r\nimport { showNPSSelector } from 'redux/selectors';\r\nimport { ignoreNPS, postNPS } from 'redux/nps/actions';\r\nimport { Send } from 'components/UI';\r\n\r\nimport styles from './style.module.scss'\r\n\r\nconst Character = ({ index, value }) => {\r\n return (\r\n
= index + 1 ? styles.focusedChar : ''}`}>\r\n {index}\r\n
\r\n );\r\n}\r\n\r\nconst NPS = ({ intl }) => {\r\n const [rate, setRate] = useState();\r\n const [loading, setLoading] = useState(false);\r\n const [loadingClose, setLoadingClose] = useState(false);\r\n const [sent, setSent] = useState(false);\r\n\r\n const dispatch = useDispatch();\r\n const showNPS = useSelector(showNPSSelector);\r\n\r\n const closeNPS = async () => {\r\n if (sent) {\r\n setSent(false);\r\n return;\r\n }\r\n if (loadingClose) return;\r\n try {\r\n setLoadingClose(true);\r\n const response = await dispatch(ignoreNPS());\r\n setLoadingClose(false);\r\n if (response.data.success) {\r\n message.success(response.data.message);\r\n } else {\r\n message.error(response.data.message);\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n setLoadingClose(false);\r\n message.error(intl.formatMessage({ id: 'nps.cannot_hide_nps' }));\r\n }\r\n }\r\n\r\n const sendNPS = async (values) => {\r\n try {\r\n setLoading(true);\r\n const response = await dispatch(postNPS({\r\n ...values,\r\n score: rate - 1,\r\n }));\r\n setLoading(false);\r\n if (response.data.success) {\r\n setSent(true);\r\n message.success(response.data.message);\r\n } else {\r\n message.error(response.data.message);\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n setLoading(false);\r\n message.error(intl.formatMessage({ id: 'nps.cannot_send_nps' }));\r\n }\r\n }\r\n\r\n if ((showNPS === 0 || showNPS === null) && !sent) {\r\n return <>;\r\n }\r\n\r\n return (\r\n \r\n : }\r\n onClick={closeNPS}\r\n />\r\n {!sent && (\r\n <>\r\n setRate(val)} value={rate} />\r\n
\r\n 0{` - ${intl.formatMessage({ id: 'nps.not_likely' })}`}\r\n 10{` - ${intl.formatMessage({ id: 'nps.very_likely' })}`}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default injectIntl(NPS);\r\n","import React, { useMemo, useState } from 'react'\r\nimport { Alert, message, Modal } from 'antd'\r\nimport { injectIntl } from 'react-intl'\r\nimport localStore from 'store'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\n\r\nimport { locationSelector, loginFormSelector, userSelector } from 'redux/selectors'\r\nimport { afterLoginHandler, hideLoginForm } from 'redux/user/actions'\r\nimport { setSelectedEndpoint } from 'redux/companies/actions'\r\nimport { singleLogin, verifyGoogleToken } from 'utils/apis'\r\nimport { setSavedEmail, setToken } from 'utils/cookies'\r\nimport { setErrorLoginForm } from 'redux/loginForm/actions'\r\nimport LoginForm from 'components/apps/User/Login'\r\nimport Sso from 'containers/Users/Login/Sso'\r\n\r\nconst LoginModal = ({ intl }) => {\r\n const [showSso, setShowSso] = useState(false)\r\n\r\n const dispatch = useDispatch()\r\n const user = useSelector(userSelector)\r\n const loginForm = useSelector(loginFormSelector)\r\n const location = useSelector(locationSelector)\r\n\r\n const [loading, setLoading] = React.useState(false)\r\n\r\n // Untuk pengecekan posisi halaman di form atau tidak\r\n const isSafeToReload = useMemo(() => {\r\n const avoidUrl = [\r\n 'add',\r\n 'edit',\r\n 'import',\r\n 'transfer',\r\n 'spend',\r\n 'receive',\r\n 'register',\r\n 'dispose',\r\n ]\r\n let safeToReload = true\r\n\r\n avoidUrl.forEach((url) => {\r\n if (location.pathname.includes(url)) {\r\n safeToReload = false\r\n }\r\n })\r\n return safeToReload\r\n }, [location.pathname])\r\n\r\n // Diparsing baseurl nya sesuai di base url axios\r\n const parseBaseUrl = (url) => {\r\n let baseURL = url.replace(/^(?:https?:\\/\\/)?(?:www\\.)?/i, '')\r\n baseURL = baseURL.replace(/\\/api\\/v1+$/, '')\r\n return baseURL\r\n }\r\n\r\n React.useEffect(() => {\r\n if (!loginForm.showLoginForm) {\r\n dispatch(setErrorLoginForm(null))\r\n }\r\n }, [dispatch, loginForm.showLoginForm])\r\n\r\n const hideHandler = () => dispatch(hideLoginForm())\r\n const login = async (values) => {\r\n try {\r\n setLoading(true)\r\n setSavedEmail(values.email)\r\n // dispatch(setErrorLoginForm(null));\r\n const response = await singleLogin(values.email, values.password, values.remember_me)\r\n setLoading(false)\r\n if (response.data.success) {\r\n // Jika dari api tidak ada return endpoint, untuk ambil endpoin dari config\r\n if (!response.data?.data?.init?.endpoint && !localStore.get('app.endpoint')) {\r\n response.data.data.endpoint = parseBaseUrl(response.config?.baseURL)\r\n }\r\n // Sebelum reload dicek dulu apakah posisi input data\r\n if (isSafeToReload) {\r\n dispatch(afterLoginHandler(response, {}, true))\r\n window.location.reload(true)\r\n } else {\r\n if (user.email === response.data?.data?.user?.email) {\r\n setToken(response.data.data.data.access_token, values.remember_me)\r\n // Jika dapat endpoint dari login dan di localstoragenya kosong\r\n if (response.data?.data?.init?.endpoint && !localStore.get('app.endpoint')) {\r\n dispatch(setSelectedEndpoint(response.data?.data?.init.endpoint))\r\n }\r\n } else {\r\n dispatch(afterLoginHandler(response, {}, true))\r\n }\r\n hideHandler()\r\n }\r\n } else {\r\n message.error(response.data.message)\r\n }\r\n } catch (e) {\r\n setLoading(false)\r\n if (e && e.data && e.data.message) {\r\n dispatch(setErrorLoginForm(e.data.message))\r\n }\r\n }\r\n }\r\n\r\n const onGoogleLogin = async (payload) => {\r\n if (payload?.code) {\r\n try {\r\n setLoading(true)\r\n const response = await verifyGoogleToken(payload.code)\r\n setLoading(false)\r\n if (response.data.success) {\r\n // if (user.email === response.data.data.user.email) {\r\n // setSavedEmail(response.data.data.user.email);\r\n // setToken(response.data.data.data.access_token);\r\n // } else {\r\n // dispatch(afterLoginHandler(response, { email: response.data.data.user.email }, true));\r\n // }\r\n // hideHandler();\r\n // Jika dari api tidak ada return endpoint, untuk ambil endpoin dari config\r\n if (!response.data?.data?.init?.endpoint && !localStore.get('app.endpoint')) {\r\n response.data.data.endpoint = parseBaseUrl(response.config?.baseURL)\r\n }\r\n // Sebelum reload dicek dulu apakah posisi input data\r\n if (isSafeToReload) {\r\n dispatch(afterLoginHandler(response, { email: response.data.data.user.email }, true))\r\n window.location.reload(true)\r\n } else {\r\n if (user.email === response.data?.data?.user?.email) {\r\n setToken(response.data.data.data.access_token, payload.remember_me)\r\n // Jika dapat endpoint dari login dan di localstoragenya kosong\r\n if (response.data?.data?.init?.endpoint && !localStore.get('app.endpoint')) {\r\n dispatch(setSelectedEndpoint(response.data?.data?.init.endpoint))\r\n }\r\n } else {\r\n dispatch(afterLoginHandler(response, { email: response.data.data.user.email }, true))\r\n }\r\n hideHandler()\r\n }\r\n } else {\r\n message.error(response.data.message)\r\n }\r\n } catch (e) {\r\n setLoading(false)\r\n if (e && e.data && e.data.message) {\r\n dispatch(setErrorLoginForm(e.data.message))\r\n }\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n {loginForm.message ||\r\n intl.formatMessage({ id: 'users.you_have_logged_out_automatically' })}\r\n \r\n
\r\n {loginForm.error && (\r\n \r\n )}\r\n
\r\n {showSso ? (\r\n setShowSso(false)} />\r\n ) : (\r\n setShowSso(true)}\r\n />\r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default injectIntl(LoginModal)\r\n","import OneSignal from 'react-onesignal'\r\n\r\nconst init = ({ appId, userId, setInizialized }) => {\r\n OneSignal.init({\r\n appId,\r\n allowLocalhostAsSecureOrigin: true,\r\n notificationClickHandlerMatch: 'exact',\r\n notificationClickHandlerAction: 'navigate',\r\n promptOptions: {\r\n slidedown: {\r\n enabled: true,\r\n autoPrompt: true,\r\n timeDelay: 5,\r\n pageViews: 1,\r\n },\r\n },\r\n }).then(() => {\r\n setInizialized()\r\n // OneSignal.showSlidedownPrompt().then(() => {\r\n\r\n // })\r\n if (userId) {\r\n OneSignal.setExternalUserId(userId.toString())\r\n }\r\n\r\n OneSignal.isPushNotificationsEnabled((isEnabled) => {\r\n if (isEnabled) console.log('Push notifications are enabled!')\r\n else console.log('Push notifications are not enabled yet.')\r\n })\r\n\r\n OneSignal.on('notificationDisplay', (event) => {\r\n console.warn('OneSignal notification displayed:', event)\r\n })\r\n\r\n OneSignal.on('notificationDismiss', (event) => {\r\n console.warn('OneSignal notification dismissed:', event)\r\n })\r\n\r\n // OneSignal.addListenerForNotificationOpened((data) => {\r\n // console.log('Received NotificationOpened:')\r\n // onOpenNotification(data)\r\n // console.log(data)\r\n // })\r\n })\r\n\r\n return OneSignal\r\n}\r\n\r\nexport default { init }\r\n","import React from 'react'\r\nimport { Alert, Button, Layout } from 'antd'\r\nimport { connect } from 'react-redux'\r\nimport { Link, withRouter } from 'react-router-dom'\r\nimport { push } from 'connected-react-router'\r\nimport { FormattedMessage, injectIntl } from 'react-intl'\r\nimport { WhatsAppOutlined } from '@ant-design/icons'\r\nimport _ from 'lodash'\r\nimport dayjs from 'dayjs'\r\nimport classNames from 'classnames'\r\nimport NProgress from 'nprogress'\r\nimport TopBar from 'components/LayoutComponents/TopBar'\r\nimport Menu from 'components/LayoutComponents/Menu'\r\nimport Footer from 'components/LayoutComponents/Footer'\r\nimport Breadcrumbs from 'components/LayoutComponents/Breadcrumbs'\r\nimport AccountTransactionModal from 'containers/Reports/AccountTransactions/AccountTransactionModal'\r\nimport Onboarding from 'containers/OnboardingChecklist'\r\nimport BroadcastModal from 'containers/Broadcast'\r\nimport NPS from 'containers/NPS'\r\nimport { Welcome } from 'containers/ProductTour'\r\nimport LoginModal from 'pages/user/login/LoginModal'\r\nimport { inits } from 'redux/actions'\r\nimport { showBroadcast } from 'redux/broadcast/actions'\r\nimport { setSelectedEndpoint } from 'redux/companies/actions'\r\nimport { resetDashboard } from 'redux/finance/actions'\r\nimport { getModulePermissions } from 'redux/user/selectors'\r\nimport OneSignalApp from 'utils/oneSignal'\r\nimport styles from './style.module.scss'\r\n\r\nconst mapStateToProps = ({\r\n settings,\r\n onboardingChecklist: { onboarding_checklist },\r\n user: { id, name, role_id, permissions, email },\r\n inits: { loading, loadedInit, attemp, announcement },\r\n options: { options },\r\n billing,\r\n broadcast: { data: broadcast },\r\n translation,\r\n maintenance,\r\n}) => ({\r\n onboardingChecklist: onboarding_checklist,\r\n darkMode: options.dark_mode,\r\n isBorderless: settings.isBorderless,\r\n isSquaredBorders: settings.isSquaredBorders,\r\n isFixedWidth: settings.isFixedWidth,\r\n isMenuShadow: settings.isMenuShadow,\r\n isMenuTop: settings.isMenuTop,\r\n isMobileView: settings.isMobileView,\r\n id,\r\n name,\r\n role_id,\r\n loading,\r\n company: options.property_name,\r\n chatSupport: options.chat_support,\r\n chatNumber: options.chat_number,\r\n expiryDate: billing.expiry_date,\r\n dismissOnboardingChecklist: options.dismiss_onboarding_checklist,\r\n isProductTour: !options.onboarding && options.product_tour,\r\n broadcast,\r\n loadedInit,\r\n attemp,\r\n translation,\r\n invoicePermissions: getModulePermissions({ user: { permissions } }, 'invoices'),\r\n purchaseInvoicePermissions: getModulePermissions({ user: { permissions } }, 'purchase_invoices'),\r\n expensePermissions: getModulePermissions({ user: { permissions } }, 'expenses'),\r\n announcement,\r\n maintenance,\r\n email,\r\n})\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n onInits: () => dispatch(inits()),\r\n onShowBroadcast: () => dispatch(showBroadcast()),\r\n push: (path) => dispatch(push(path)),\r\n onChangeCompany: (payload, callback) => {\r\n dispatch(resetDashboard())\r\n dispatch(setSelectedEndpoint(payload))\r\n if (typeof callback === 'function') callback()\r\n },\r\n }\r\n}\r\n\r\n@withRouter\r\n@connect(mapStateToProps, mapDispatchToProps)\r\nclass MainLayout extends React.PureComponent {\r\n scrollBarRef = React.createRef()\r\n\r\n state = {\r\n initializeOneSignal: false,\r\n }\r\n\r\n componentDidMount() {\r\n if (\r\n !this.props.id &&\r\n !this.props.loading &&\r\n this.props.attemp <= 4 &&\r\n _.isEmpty(this.props.maintenance)\r\n ) {\r\n this.props.onInits()\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { loadedInit, broadcast, onShowBroadcast, id } = this.props\r\n if (prevProps.loadedInit !== loadedInit && loadedInit && !_.isEmpty(broadcast)) {\r\n onShowBroadcast()\r\n }\r\n if (prevProps.loadedInit !== loadedInit && loadedInit && id) {\r\n if (process.env.REACT_APP_ONESIGNAL_APP_ID && !this.state.initializeOneSignal) {\r\n OneSignalApp.init({\r\n appId: process.env.REACT_APP_ONESIGNAL_APP_ID,\r\n userId: id,\r\n onOpenNotification: (data) => console.log(data),\r\n initialized: this.state.initializeOneSignal,\r\n setInizialized: () => this.setState({ initializeOneSignal: true }),\r\n })\r\n }\r\n }\r\n }\r\n\r\n isDashboard = () => {\r\n return this.props.location.pathname === '/dashboard'\r\n }\r\n\r\n render() {\r\n const {\r\n children,\r\n isBorderless,\r\n isSquaredBorders,\r\n isFixedWidth,\r\n isMenuShadow,\r\n isMenuTop,\r\n loading,\r\n chatSupport,\r\n chatNumber,\r\n expiryDate,\r\n isMobileView,\r\n intl,\r\n name,\r\n company,\r\n isProductTour,\r\n companies,\r\n onChangeCompany,\r\n role_id,\r\n translation,\r\n expensePermissions,\r\n invoicePermissions,\r\n purchaseInvoicePermissions,\r\n announcement,\r\n dismissOnboardingChecklist,\r\n onboardingChecklist,\r\n darkMode,\r\n } = this.props\r\n\r\n if (loading) {\r\n NProgress.start()\r\n } else {\r\n NProgress.done()\r\n }\r\n\r\n let styleCustom = {}\r\n if (this.isDashboard()) {\r\n styleCustom = {\r\n style: {\r\n paddingLeft: 0,\r\n paddingRight: 0,\r\n paddingTop: 0,\r\n },\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {!_.isEmpty(announcement) && (\r\n \r\n )}\r\n {expiryDate && dayjs().subtract(1, 'days').isAfter(expiryDate) && (\r\n \r\n \r\n \r\n \r\n \r\n ),\r\n }}\r\n />\r\n }\r\n type=\"warning\"\r\n showIcon\r\n />\r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {children}\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n {chatSupport === 1 && (\r\n }\r\n className={styles.waBtn}\r\n >\r\n {isMobileView ? null : intl.formatMessage({ id: 'button.hello_can_i_help' })}\r\n \r\n )}\r\n {onboardingChecklist === 1 && dismissOnboardingChecklist !== 1 && }\r\n \r\n \r\n \r\n {isProductTour && }\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default injectIntl(MainLayout)\r\n","import React, { useEffect, useState } from 'react'\r\nimport { injectIntl } from 'react-intl'\r\nimport { Alert, Layout } from 'antd'\r\nimport { push } from 'connected-react-router'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport _ from 'lodash'\r\nimport NProgress from 'nprogress'\r\nimport dayjs from 'dayjs'\r\n\r\nimport { inits } from 'redux/actions'\r\nimport { changeSetting } from 'redux/settings/actions'\r\nimport {\r\n companiesSelector,\r\n initsSelector,\r\n optionsSelector,\r\n settingsSelector,\r\n userSelector,\r\n} from 'redux/selectors'\r\nimport styles from './style.module.scss'\r\n\r\nconst SelectCompanyLayout = ({ intl, children }) => {\r\n const dispatch = useDispatch()\r\n const [backgroundEnabled] = useState(false)\r\n const [networkError, setNetworkError] = useState(false)\r\n const [backgroundNumber] = useState(7)\r\n const options = useSelector(optionsSelector)\r\n const { id } = useSelector(userSelector)\r\n const { locale } = useSelector(settingsSelector)\r\n const { loading, loadedInit } = useSelector(initsSelector)\r\n const companies = useSelector(companiesSelector)\r\n\r\n // Loader init\r\n useEffect(() => {\r\n if (loading) {\r\n NProgress.start()\r\n } else {\r\n NProgress.done()\r\n }\r\n }, [loading])\r\n\r\n useEffect(() => {\r\n // Jika init belum di load, maka di ambil dari api\r\n const loadInits = async () => {\r\n const onInits = () => dispatch(inits())\r\n const response = await onInits()\r\n if (!response) {\r\n setNetworkError(true)\r\n }\r\n }\r\n\r\n if (!id && !loading) {\r\n loadInits()\r\n }\r\n }, [id, dispatch, setNetworkError, loading])\r\n\r\n // Jika tidak mempunya perusahaan di redirect ke tambah perusahaan\r\n useEffect(() => {\r\n if (_.isEmpty(companies) && !!id && loadedInit) {\r\n dispatch(push('/companies/add?from_login=1'))\r\n }\r\n }, [companies, dispatch, id, loadedInit])\r\n\r\n useEffect(() => {\r\n // Jika locale di setting tidak sama dg di init di update\r\n if (locale && options.property_language && locale !== options.property_language) {\r\n dispatch(\r\n changeSetting({\r\n setting: 'locale',\r\n value: options.property_language,\r\n }),\r\n )\r\n }\r\n }, [locale, dispatch, options.property_language])\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n {networkError === true ? (\r\n \r\n ) : (\r\n children\r\n )}\r\n
\r\n
\r\n
\r\n Powered by\r\n
\r\n \r\n \"Kledo\"\r\n \r\n
\r\n
\r\n\r\n

©{` ${dayjs().format('YYYY')} Kledo. All rights reserved.`}

\r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default injectIntl(SelectCompanyLayout)\r\n","import React from 'react'\r\nimport { useSelector } from 'react-redux'\r\n\r\nimport { mobileViewSelector } from 'redux/selectors'\r\n\r\nimport ProfileMenu from './ProfileMenu'\r\n\r\nconst NoCompanyTopBar = () => {\r\n const isMobileView = useSelector(mobileViewSelector)\r\n return (\r\n
\r\n
\r\n {isMobileView ? (\r\n \"Kledo\"\r\n ) : (\r\n \"Kledo\"\r\n )}\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default NoCompanyTopBar\r\n","import React, { useEffect } from 'react'\r\nimport { injectIntl } from 'react-intl'\r\nimport { Layout } from 'antd'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport NProgress from 'nprogress'\r\nimport dayjs from 'dayjs'\r\n\r\nimport { inits } from 'redux/actions'\r\nimport { initsSelector, loadedInitSelector, userSelector } from 'redux/selectors'\r\nimport styles from '../Login/style.module.scss'\r\n\r\nconst InfoLayout = ({ children }) => {\r\n const dispatch = useDispatch()\r\n const { loading } = useSelector(initsSelector)\r\n const loadedInit = useSelector(loadedInitSelector)\r\n const { id } = useSelector(userSelector)\r\n\r\n // Loader init\r\n useEffect(() => {\r\n if (loading) {\r\n NProgress.start()\r\n } else {\r\n NProgress.done()\r\n }\r\n }, [loading])\r\n\r\n useEffect(() => {\r\n // Jika init belum di load, maka di ambil dari api\r\n const loadInits = async () => {\r\n const onInits = () => dispatch(inits())\r\n onInits()\r\n }\r\n\r\n if (!id && !loadedInit) {\r\n loadInits()\r\n }\r\n }, [id, dispatch, loadedInit])\r\n\r\n return (\r\n \r\n \r\n
\r\n
{children}
\r\n
\r\n
\r\n Powered by\r\n
\r\n \r\n \"Kledo\"\r\n \r\n
\r\n
\r\n\r\n

©{` ${dayjs().format('YYYY')} Kledo. All rights reserved.`}

\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default injectIntl(InfoLayout)\r\n","/* eslint-disable no-restricted-globals */\r\nimport React, { Fragment } from 'react'\r\nimport { Redirect, withRouter } from 'react-router-dom'\r\nimport { connect } from 'react-redux'\r\n// import NProgress from 'nprogress'\r\nimport store from 'store'\r\nimport _ from 'lodash'\r\nimport { parse } from 'query-string'\r\nimport { replace } from 'connected-react-router'\r\n\r\n// import Loader from 'components/LayoutComponents/Loader'\r\nimport { Helmet } from 'components/UI'\r\nimport { isTokenExist, removeToken, setToken } from 'utils/cookies'\r\nimport { setSelectedEndpoint } from 'redux/companies/actions'\r\nimport { resetInits } from 'redux/inits/actions'\r\nimport { inits } from 'redux/actions'\r\nimport { hideAccountTransactionReport } from 'redux/finance/actions'\r\nimport { logoutRedux } from 'redux/user/actions'\r\nimport { setErrorLoginForm } from 'redux/loginForm/actions'\r\nimport dayjs from 'dayjs'\r\nimport PublicLayout from './Public'\r\nimport LoginLayout from './Login'\r\nimport MainLayout from './Main'\r\nimport SelectCompanyLayout from './SelectCompany'\r\nimport NoCompanyLayout from './Main/NoCompany'\r\nimport InfoLayout from './Info'\r\n\r\nconst Layouts = {\r\n public: PublicLayout,\r\n login: LoginLayout,\r\n main: MainLayout,\r\n selectCompany: SelectCompanyLayout,\r\n noCompanyLayout: NoCompanyLayout,\r\n info: InfoLayout,\r\n}\r\n\r\nconst avoidRouteWhenAuthorized = [\r\n '/user/select-company',\r\n '/user/billing/success',\r\n '/user/billing/failed',\r\n '/companies/add',\r\n]\r\nconst infoPages = ['/maintenance']\r\nconst execludePreviousPages = ['/', '/user/select-company']\r\nconst publicPages = ['/user/request-delete-account']\r\n\r\n@withRouter\r\n@connect(\r\n ({ user, options: { options }, companies, billing, finance: { accountTransactionReport } }) => ({\r\n user,\r\n options,\r\n companies,\r\n expiryDate: billing.expiry_date,\r\n accountTransactionReport,\r\n }),\r\n {\r\n setSelectedEndpoint,\r\n inits,\r\n hideAccountTransactionReport,\r\n setErrorLoginForm,\r\n resetInits,\r\n logoutRedux,\r\n replacePath: replace,\r\n },\r\n)\r\nclass IndexLayout extends React.PureComponent {\r\n state = {\r\n containerKey: 0,\r\n }\r\n\r\n componentDidMount() {\r\n const searchs = parse(location.search)\r\n\r\n // if there is error params, show error\r\n if (searchs.error) {\r\n this.props.setErrorLoginForm(searchs.error)\r\n // eslint-disable-next-line no-restricted-globals\r\n history.replaceState(null, null, `${location.pathname}${location.hash}`)\r\n }\r\n this.loginFromOtherApp()\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { location, user } = this.props\r\n const { location: prevLocation } = prevProps\r\n\r\n if (location.pathname !== prevLocation.pathname && location.pathname !== '/user/login') {\r\n if (location.state) {\r\n if (location.state.resetscroll) {\r\n window.scrollTo(0, 0)\r\n }\r\n }\r\n // Untuk hide modal report accountTransaction\r\n if (this.props.accountTransactionReport.show) {\r\n this.props.hideAccountTransactionReport()\r\n }\r\n }\r\n\r\n if (prevProps.user.email !== user.email) {\r\n // set inspectlet identity\r\n // eslint-disable-next-line no-underscore-dangle\r\n if (window.__insp) {\r\n // eslint-disable-next-line no-underscore-dangle\r\n window.__insp.push(['identify', user.email])\r\n }\r\n }\r\n }\r\n\r\n getSnapshotBeforeUpdate(prevProps) {\r\n if (\r\n prevProps.companies.selectedEndpoint !== this.props.companies.selectedEndpoint &&\r\n prevProps.companies.selectedEndpoint &&\r\n this.props.companies.selectedEndpoint\r\n ) {\r\n this.props.inits().then(() => {\r\n this.setState({ containerKey: this.props.companies.selectedEndpoint })\r\n })\r\n }\r\n return null\r\n }\r\n\r\n getLayout = () => {\r\n const {\r\n location: { pathname, search },\r\n } = this.props\r\n const searchs = parse(search)\r\n if (_.includes(publicPages, pathname)) {\r\n return 'public'\r\n }\r\n\r\n if (_.includes(infoPages, pathname)) {\r\n return 'info'\r\n }\r\n\r\n if (pathname === '/user/select-company') {\r\n return 'selectCompany'\r\n }\r\n if (/^\\/user(?=\\/|$)/i.test(pathname)) {\r\n return 'login'\r\n }\r\n\r\n if (pathname === '/companies/add' && !!searchs.from_login) {\r\n return 'noCompanyLayout'\r\n }\r\n return 'main'\r\n }\r\n\r\n loginFromOtherApp = () => {\r\n const { search } = location\r\n const searchs = parse(search)\r\n\r\n // if there is token params, set token\r\n if (searchs.token) {\r\n store.remove('app.previousPathname')\r\n store.remove('app.endpoint')\r\n removeToken()\r\n this.props.setSelectedEndpoint(null)\r\n this.props.logoutRedux()\r\n this.props.resetInits()\r\n setToken(searchs.token)\r\n // if there is endpoint params, set endpoint\r\n if (searchs.endpoint) {\r\n store.set('app.endpoint', searchs.endpoint)\r\n this.props.setSelectedEndpoint(searchs.endpoint)\r\n }\r\n // Hilangkan search params token\r\n // eslint-disable-next-line no-restricted-globals\r\n history.replaceState(null, null, `${location.pathname}${location.hash}`)\r\n }\r\n }\r\n\r\n bootstrappedLayout = () => {\r\n const {\r\n children,\r\n location: { pathname },\r\n user,\r\n options,\r\n companies,\r\n expiryDate,\r\n } = this.props\r\n const storeEndpoint = store.get('app.endpoint')\r\n // Layout Rendering\r\n const layout = this.getLayout()\r\n const Container = Layouts[layout]\r\n const currentLayout = (\r\n \r\n {children}\r\n \r\n )\r\n\r\n const isUserAuthorized = isTokenExist()\r\n const isLoginLayout = layout === 'login'\r\n const isPublicLayout = layout === 'public'\r\n\r\n if (isPublicLayout) {\r\n return currentLayout\r\n }\r\n\r\n // redirect to login page if current is not login page and user not authorized\r\n if ((!isLoginLayout || pathname === '/user/select-company') && !isUserAuthorized) {\r\n // Jika tidak ada token dan tidak melakukan logout, hapus localstorage endpoint\r\n if (!user.logout) {\r\n store.remove('app.endpoint')\r\n }\r\n if (!_.includes(execludePreviousPages, pathname)) {\r\n store.set('app.previousPathname', pathname)\r\n } else {\r\n return \r\n }\r\n return currentLayout\r\n }\r\n // Jika sudah login dan belum memilih perushaan (kalau perusahaan lebih dari satu) dan posisinya tidak di billing dan select company\r\n if (\r\n isUserAuthorized &&\r\n !companies.selectedEndpoint &&\r\n !storeEndpoint &&\r\n !_.includes(avoidRouteWhenAuthorized, pathname)\r\n ) {\r\n if (!isLoginLayout && !_.includes(execludePreviousPages, pathname)) {\r\n store.set('app.previousPathname', pathname)\r\n }\r\n\r\n return \r\n }\r\n\r\n if (!companies.selectedEndpoint && storeEndpoint) {\r\n this.props.setSelectedEndpoint(storeEndpoint)\r\n }\r\n\r\n const isExpired = expiryDate ? dayjs(expiryDate).isBefore(dayjs()) : false\r\n // dayjs().subtract(1, 'days').isAfter(expiryDate)\r\n // Jika sudah login dan expired serta sudah ada endpoint\r\n if (isUserAuthorized && !isLoginLayout && (companies.selectedEndpoint || storeEndpoint)) {\r\n if (isExpired && !pathname.includes('/billing')) {\r\n return \r\n }\r\n }\r\n\r\n // Redirect ke onboarding jika onboarding 1\r\n if (\r\n isUserAuthorized &&\r\n !isLoginLayout &&\r\n options.onboarding &&\r\n pathname !== '/onboarding' &&\r\n (companies.selectedEndpoint || storeEndpoint)\r\n ) {\r\n if (!isExpired) {\r\n return \r\n }\r\n }\r\n\r\n // redirect to main dashboard when user on login page or select company page and authorized\r\n if (\r\n (isLoginLayout || pathname === '/user/select-company') &&\r\n !/^\\/user\\/invite(?=\\/|$)/i.test(pathname) &&\r\n pathname !== '/user/billing/success' &&\r\n pathname !== '/user/billing/failed' &&\r\n isUserAuthorized &&\r\n (companies.selectedEndpoint || store.get('app.endpoint'))\r\n ) {\r\n if (store.get('app.previousPathname')) {\r\n return \r\n }\r\n\r\n return \r\n }\r\n\r\n // in other case render previously set layout\r\n return currentLayout\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n {this.bootstrappedLayout()}\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default IndexLayout\r\n","import React, { useState, useEffect } from 'react'\r\nimport { injectIntl, FormattedMessage } from 'react-intl'\r\nimport { Layout, Alert, Button } from 'antd'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport NProgress from 'nprogress'\r\nimport { push } from 'connected-react-router'\r\nimport { WhatsAppOutlined } from '@ant-design/icons'\r\nimport dayjs from 'dayjs'\r\nimport store from 'store'\r\nimport classNames from 'classnames'\r\nimport { Link } from 'react-router-dom'\r\nimport _ from 'lodash'\r\n\r\nimport { inits } from 'redux/actions'\r\nimport {\r\n optionsSelector,\r\n userSelector,\r\n settingsSelector,\r\n initsSelector,\r\n billingSelector,\r\n companiesSelector,\r\n} from 'redux/selectors'\r\nimport TopBar from 'components/LayoutComponents/TopBar/NoCompany'\r\nimport Footer from 'components/LayoutComponents/Footer'\r\nimport styles from './style.module.scss'\r\n\r\nconst NoCompanyLayout = ({ intl, children }) => {\r\n const dispatch = useDispatch()\r\n // const [backgroundEnabled, setBackgroundEnabled] = useState(false)\r\n const [networkError, setNetworkError] = useState(false)\r\n // const [backgroundNumber, setBackgroundNumber] = useState(7)\r\n const {\r\n property_name: company,\r\n chat_support: chatSupport,\r\n chat_number: chatNumber,\r\n } = useSelector(optionsSelector)\r\n const { expiry_date: expiryDate } = useSelector(billingSelector)\r\n const { id, name } = useSelector(userSelector)\r\n\r\n const { isBorderless, isSquaredBorders, isFixedWidth, isMenuShadow, isMenuTop, isMobileView } =\r\n useSelector(settingsSelector)\r\n const { loading } = useSelector(initsSelector)\r\n const companies = useSelector(companiesSelector)\r\n\r\n // Loader init\r\n useEffect(() => {\r\n if (loading) {\r\n NProgress.start()\r\n } else {\r\n NProgress.done()\r\n }\r\n }, [loading])\r\n\r\n useEffect(() => {\r\n if (!_.isEmpty(companies) && !store.get('app.endpoint')) {\r\n dispatch(push('/user/select-company'))\r\n }\r\n }, [dispatch, companies])\r\n\r\n useEffect(() => {\r\n // Jika init belum di load, maka di ambil dari api\r\n const loadInits = async () => {\r\n const onInits = () => dispatch(inits())\r\n const response = await onInits()\r\n if (!response) {\r\n setNetworkError(true)\r\n }\r\n }\r\n\r\n if (!id && !loading) {\r\n loadInits()\r\n }\r\n }, [id, dispatch, setNetworkError, loading])\r\n\r\n return (\r\n <>\r\n \r\n \r\n {expiryDate && dayjs().subtract(1, 'days').isAfter(expiryDate) && (\r\n \r\n \r\n \r\n \r\n \r\n ),\r\n }}\r\n />\r\n }\r\n type=\"warning\"\r\n showIcon\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n {networkError === true ? (\r\n \r\n ) : (\r\n children\r\n )}\r\n
\r\n
\r\n \r\n