{"version":3,"sources":["app/modules/Auth/_redux/authCrud.js","app/modules/Auth/_redux/authRedux.js","app/modules/User/_redux/users/usersSlice.js","app/modules/User/_redux/officeUsers/officeUsersSlice.js","app/modules/Setting/_redux/userRoles/userRolesSlice.js","app/modules/Setting/_redux/codeLists/codeListsSlice.js","app/modules/Customer/_redux/customers/customersSlice.js","app/modules/Setting/_redux/yourCompany/yourCompanySlice.js","app/modules/Setting/_redux/yourProfile/yourProfileSlice.js","app/modules/Admin/_redux/organizations/organizationsSlice.js","app/modules/Admin/_redux/activeUsers/activeUsersSlice.js","app/modules/Item/_redux/itemGroups/itemGroupsSlice.js","app/modules/Item/_redux/items/itemsSlice.js","app/modules/Sales/_redux/ends/endsSlice.js","app/modules/Setting/_redux/cashiers/cashiersSlice.js","_redux/cache/cacheSlice.js","app/modules/Document/_redux/documents/documentsSlice.js","app/modules/Setting/_redux/import/importSlice.js","app/modules/Setting/_redux/export/exportSlice.js","app/modules/Dashboard/_redux/dashboards/dashboardSlice.js","redux/rootReducer.js","redux/store.js","_metronic/_helpers/AssetsHelpers.js","_metronic/_helpers/RouterHelpers.js","_metronic/_helpers/TablePaginationHelpers.js","_metronic/_helpers/TableRowSelectionHelpers.js","_metronic/_helpers/TableSortingHelpers.js","_metronic/layout/_core/HTMLClassService.js","_metronic/layout/_core/MetronicLayout.js","_metronic/layout/_core/LayoutConfig.js","_metronic/_partials/dropdowns/DropdownMenu1.js","_metronic/_partials/dropdowns/DropdownCustomToggler.js","_metronic/_partials/dropdowns/DropdownTopbarItemToggler.js","_metronic/layout/components/extras/dropdowns/search/SearchDropdown.js","_metronic/i18n/Metronici18n.js","_metronic/i18n/I18nProvider.js","_metronic/layout/components/extras/dropdowns/LanguageSelectorDropdown.js","_metronic/layout/components/extras/dropdowns/UserProfileDropdown.js","_metronic/layout/components/extras/QuiclUserToggler.js","_metronic/layout/components/header/Topbar.js","_metronic/layout/components/header/header-menu/HeaderMenu.js","_metronic/layout/components/header/header-menu/HeaderMenuWrapper.js","_metronic/_partials/controls/Card.js","_metronic/_partials/controls/forms/FieldFeedbackLabel.js","_metronic/_partials/controls/forms/Input.js","_metronic/_partials/controls/pagination/PaginationLinks.js","_metronic/_partials/controls/pagination/PaginationToolbar.js","_metronic/_partials/controls/pagination/Pagination.js","_metronic/_partials/controls/AnimateLoading.js","_metronic/_partials/controls/LoadingDialog.js","_metronic/_partials/controls/Notice.js","_metronic/_partials/controls/ModalProgressBar.js","_metronic/layout/components/header/Header.js","_metronic/layout/components/header-mobile/HeaderMobile.js","_metronic/layout/components/brand/Brand.js","_metronic/layout/_core/CheckPermissions.js","app/enum/userFunctionalityE.js","_metronic/layout/components/aside/aside-menu/AsideMenuList.js","_metronic/layout/components/aside/aside-menu/AsideMenu.js","_metronic/layout/components/aside/Aside.js","_metronic/layout/components/footer/Footer.js","_metronic/_assets/js/layout/base/header.js","_metronic/_assets/js/layout/base/header-menu.js","_metronic/_assets/js/layout/base/header-topbar.js","_metronic/_assets/js/layout/base/brand.js","_metronic/_assets/js/layout/base/aside.js","_metronic/_assets/js/layout/base/subheader.js","_metronic/_assets/js/layout/base/sticky-card.js","_metronic/_assets/js/layout/base/aside-menu.js","_metronic/_assets/js/layout/base/aside-toggle.js","_metronic/_assets/js/layout/base/footer.js","_metronic/_assets/js/layout/base/content.js","_metronic/_assets/js/layout/extended/scrolltop.js","_metronic/_assets/js/layout/base/stretched-card.js","_metronic/_assets/js/layout/extended/quick-panel.js","_metronic/_assets/js/layout/extended/quick-user.js","_metronic/layout/components/LayoutInit.js","_metronic/layout/components/subheader/components/QuickActions.js","_metronic/layout/components/subheader/components/BreadCrumbs.js","_metronic/layout/_core/MetronicSubheader.js","_metronic/layout/components/subheader/SubHeader.js","_metronic/layout/components/extras/offcanvas/QuickUser.js","_metronic/layout/components/extras/ScrollTop.js","app/components/Intro.js","_redux/cache/cacheCrud.js","_metronic/layout/components/Layout.js","_metronic/layout/components/content/Content.js","_metronic/layout/components/content/ContentRoute.js","_metronic/layout/_core/MetronicSplashScreen.js","_metronic/layout/_core/MaterialThemeProvider.js","app/modules/Dashboard/_redux/dashboards/dashboardActions.js","app/modules/Dashboard/_redux/dashboards/dashboardCrud.js","app/modules/Dashboard/pages/dashboards/TodayTrafficWidget.js","app/modules/Dashboard/pages/dashboards/LastMonthTrafficWidget.js","app/modules/Dashboard/pages/dashboards/Last12MonthsTrafficWidget.js","app/components/Select5YearBack.js","app/modules/Dashboard/pages/dashboards/SalesByYearsWidget.js","app/modules/Dashboard/pages/dashboards/SalesPurchaseWidget.js","app/modules/Dashboard/pages/dashboards/Dashboard.js","app/modules/Dashboard/pages/DashboardPage.js","app/CheckAxiosRequests.js","_redux/cache/cacheActions.js","app/modules/User/pages/users/users-loading-dialog/UsersLoadingDialog.js","app/modules/User/_redux/users/usersActions.js","app/modules/User/_redux/users/usersCrud.js","app/modules/User/pages/users/user-edit-dialog/UserEditDialogHeader.js","app/modules/Helpers/ErrorPopup.js","app/modules/User/pages/users/user-edit-dialog/UserEditForm.js","app/modules/User/pages/users/UsersUIHelpers.js","app/modules/User/pages/users/UsersUIContext.js","app/modules/User/pages/users/user-edit-dialog/UserEditDialog.js","app/modules/User/pages/users/user-delete-dialog/UserDeleteDialog.js","app/modules/User/pages/users/users-delete-dialog/UsersDeleteDialog.js","app/modules/User/pages/users/users-filter/UsersFilter.js","app/modules/User/pages/users/users-table/column-formatters/ActionsColumnFormatter.js","app/modules/User/pages/users/users-table/UsersTable.js","app/modules/User/pages/users/users-grouping/UsersGrouping.js","app/modules/User/pages/users/UsersCard.js","app/modules/Helpers/InfoPopup.js","app/modules/User/pages/users/UsersPage.js","app/modules/User/pages/officeUsers/officeUsers-loading-dialog/OfficeUsersLoadingDialog.js","app/modules/User/_redux/officeUsers/officeUsersActions.js","app/modules/User/_redux/officeUsers/officeUsersCrud.js","app/modules/User/pages/officeUsers/officeUser-edit-dialog/OfficeUserEditDialogHeader.js","app/modules/User/pages/officeUsers/officeUser-edit-dialog/OfficeUserEditForm.js","app/modules/User/pages/officeUsers/OfficeUsersUIHelpers.js","app/modules/User/pages/officeUsers/OfficeUsersUIContext.js","app/modules/User/pages/officeUsers/officeUser-edit-dialog/OfficeUserEditDialog.js","app/modules/User/pages/officeUsers/officeUser-delete-dialog/OfficeUserDeleteDialog.js","app/modules/User/pages/officeUsers/officeUsers-delete-dialog/OfficeUsersDeleteDialog.js","app/modules/User/pages/officeUsers/officeUsers-filter/OfficeUsersFilter.js","app/modules/User/pages/officeUsers/officeUsers-table/column-formatters/ActionsColumnFormatter.js","app/modules/User/pages/officeUsers/officeUsers-table/OfficeUsersTable.js","app/modules/User/pages/officeUsers/officeUsers-grouping/OfficeUsersGrouping.js","app/modules/User/pages/officeUsers/OfficeUsersCard.js","app/modules/User/pages/officeUsers/OfficeUsersPage.js","app/modules/User/pages/UserPage.js","app/modules/Setting/pages/userRoles/userRoles-loading-dialog/UserRolesLoadingDialog.js","app/modules/Setting/_redux/userRoles/userRolesActions.js","app/modules/Setting/_redux/userRoles/userRolesCrud.js","app/modules/Setting/pages/userRoles/userRole-edit-dialog/UserRoleEditDialogHeader.js","app/modules/Setting/pages/userRoles/userRole-edit-dialog/UserRoleEditForm.js","app/modules/Setting/pages/userRoles/UserRolesUIHelpers.js","app/modules/Setting/pages/userRoles/UserRolesUIContext.js","app/modules/Setting/pages/userRoles/userRole-edit-dialog/UserRoleEditDialog.js","app/modules/Setting/pages/userRoles/userRole-delete-dialog/UserRoleDeleteDialog.js","app/modules/Setting/pages/userRoles/userRoles-filter/UserRolesFilter.js","app/modules/Setting/pages/userRoles/userRoles-table/column-formatters/ActionsColumnFormatterCashier.js","app/modules/Setting/pages/userRoles/userRoles-table/column-formatters/ActionsColumnFormatterOffice.js","app/modules/Setting/pages/userRoles/userRoles-table/UserRolesTable.js","app/modules/Setting/pages/userRoles/userRoles-grouping/UserRolesGrouping.js","app/modules/Setting/pages/userRoles/CashierUserRolesCard.js","app/modules/Setting/pages/userRoles/CashierUserRolesPage.js","app/modules/Setting/pages/userRoles/OfficeUserRolesCard.js","app/modules/Setting/pages/userRoles/OfficeUserRolesPage.js","app/modules/Setting/pages/codeLists/codeLists-loading-dialog/CodeListsLoadingDialog.js","app/modules/Setting/_redux/codeLists/codeListsActions.js","app/modules/Setting/_redux/codeLists/codeListsCrud.js","app/modules/Setting/pages/codeLists/codeList-edit-dialog/CodeListEditDialogHeader.js","app/modules/Setting/pages/codeLists/codeList-edit-dialog/CodeListEditForm.js","app/modules/Setting/pages/codeLists/CodeListsUIHelpers.js","app/modules/Setting/pages/codeLists/CodeListsUIContext.js","app/modules/Setting/pages/codeLists/codeList-edit-dialog/CodeListEditDialog.js","app/modules/Setting/pages/codeLists/codeLists-filter/CodeListsFilter.js","app/modules/Setting/pages/codeLists/codeLists-table/column-formatters/ActionsColumnFormatter.js","app/modules/Setting/pages/codeLists/codeLists-table/column-formatters/ActiveColumnFormatter.js","app/modules/Setting/pages/codeLists/codeLists-table/CodeListsTable.js","app/modules/Setting/pages/codeLists/codeLists-grouping/CodeListsGrouping.js","app/modules/Setting/pages/codeLists/CodeListsCard.js","app/modules/Setting/pages/codeLists/CodeListsPage.js","app/modules/Setting/pages/changePassword/ChangePasswordPage.js","app/modules/Setting/_redux/changePassword/changePasswordCrud.js","app/modules/Setting/_redux/export/exportActions.js","app/modules/Setting/_redux/export/exportCrud.js","app/modules/Setting/pages/export/exports-table/column-formatters/ActionsColumnFormatter.js","app/modules/Setting/pages/export/exports-table/column-formatters/DateColumnFormatter.js","app/modules/Setting/pages/export/exports-table/column-formatters/IntervalColumnFormatter.js","app/modules/Setting/pages/export/exports-table/column-formatters/StatusColumnFormatter.js","app/modules/Setting/pages/export/exports-table/column-formatters/CreatorColumnFormatter.js","app/modules/Setting/pages/export/exports-table/ExportsTable.js","app/modules/Setting/pages/export/ExportPage.js","app/modules/Setting/_redux/yourProfile/yourProfileAction.js","app/modules/Setting/_redux/yourProfile/yourProfileCrud.js","app/modules/Setting/pages/yourProfile/YourProfileForm.js","app/modules/Setting/pages/yourProfile/YourProfilePage.js","app/modules/Setting/_redux/yourCompany/yourCompanyAction.js","app/modules/Setting/_redux/yourCompany/yourCompanyCrud.js","app/components/AutocompletePost.js","app/modules/Setting/pages/yourCompany/CompanyDetails.js","app/components/InputCount.js","app/modules/Setting/pages/yourCompany/CompanyPackage.js","app/modules/Setting/pages/yourCompany/CompanyFurs.js","app/modules/Setting/pages/yourCompany/CompanyEInvoice.js","app/modules/Setting/pages/yourCompany/CompanyPayment.js","app/modules/Setting/pages/yourCompany/CompanyCancelPackage.js","app/modules/Setting/pages/yourCompany/components/Navigation.js","app/modules/Setting/pages/yourCompany/YourCompanyPage.js","app/modules/Setting/pages/cashiers/cashiers-loading-dialog/CashiersLoadingDialog.js","app/util/Util.js","app/modules/Setting/_redux/cashiers/cashiersActions.js","app/modules/Setting/_redux/cashiers/cashiersCrud.js","app/modules/Setting/pages/cashiers/cashier-edit-dialog/CashierEditDialogHeader.js","app/components/AutocompleteWarehouseWithoutConsignment.js","app/modules/Setting/pages/cashiers/cashier-edit-dialog/CashierEditForm.js","app/modules/Setting/pages/cashiers/CashiersUIHelpers.js","app/modules/Setting/pages/cashiers/CashiersUIContext.js","app/modules/Setting/pages/cashiers/cashier-edit-dialog/CashierEditDialog.js","app/modules/Setting/pages/cashiers/cashier-delete-dialog/CashierDeleteDialog.js","app/modules/Setting/pages/cashiers/cashiers-filter/CashiersFilter.js","app/modules/Setting/pages/cashiers/cashiers-table/column-formatters/ActionsColumnFormatter.js","app/modules/Setting/pages/cashiers/cashiers-table/column-formatters/InternAktColumnFormatter.js","app/modules/Setting/pages/cashiers/cashiers-table/CashiersTable.js","app/modules/Setting/pages/cashiers/cashiers-grouping/CashiersGrouping.js","app/modules/Setting/pages/cashiers/CashiersCard.js","app/components/PdfViewer.js","app/modules/Setting/pages/cashiers/cashier-print-dialog/CashierPrintDialog.js","app/modules/Setting/pages/cashiers/cashier-register-dialog/CashierRegisterDialog.js","app/modules/Setting/pages/cashiers/cashier-unregister-dialog/CashierUnregisterDialog.js","app/modules/Setting/pages/cashiers/cashier-connect-dialog/CashierConnectDialog.js","app/modules/Setting/pages/cashiers/cashier-deconnect-dialog/CashierDeconnectDialog.js","app/modules/Setting/pages/cashiers/CashiersPage.js","app/modules/Setting/pages/app/AppPage.js","app/modules/Setting/pages/import/ImportItems.js","app/modules/Setting/_redux/import/importCrud.js","app/modules/Setting/_redux/import/importActions.js","app/modules/Setting/pages/import/ImportStocks.js","app/modules/Setting/pages/import/ImportIPricelists.js","app/modules/Setting/pages/import/components/Navigation.js","app/modules/Setting/pages/import/ImportPage.js","app/modules/Setting/pages/SettingPage.js","app/modules/Admin/pages/organizations/organizations-loading-dialog/OrganizationsLoadingDialog.js","app/modules/Admin/_redux/organizations/organizationsActions.js","app/modules/Admin/_redux/organizations/organizationsCrud.js","app/modules/Admin/pages/organizations/organization-edit-dialog/OrganizationEditDialogHeader.js","app/modules/Admin/pages/organizations/organization-edit-dialog/OrganizationEditForm.js","app/modules/Admin/pages/organizations/OrganizationsUIHelpers.js","app/modules/Admin/pages/organizations/OrganizationsUIContext.js","app/modules/Admin/pages/organizations/organization-edit-dialog/OrganizationEditDialog.js","app/modules/Admin/pages/organizations/organizations-filter/OrganizationsFilter.js","app/modules/Admin/pages/organizations/organizations-table/column-formatters/ActionsColumnFormatter.js","app/modules/Admin/pages/organizations/organizations-table/column-formatters/ActiveColumnFormatter.js","app/modules/Admin/pages/organizations/organizations-table/column-formatters/CreatedDateColumnFormatter.js","app/modules/Admin/pages/organizations/organizations-table/column-formatters/LastLoginColumnFormatter.js","app/modules/Admin/pages/organizations/organizations-table/column-formatters/ConfirmedColumnFormatter.js","app/modules/Admin/pages/organizations/organizations-table/OrganizationsTable.js","app/modules/Admin/pages/organizations/organizations-grouping/OrganizationsGrouping.js","app/modules/Admin/pages/organizations/OrganizationsCard.js","app/modules/Admin/pages/organizations/OrganizationsPage.js","app/modules/Admin/pages/activeUsers/activeUsers-loading-dialog/ActiveUsersLoadingDialog.js","app/modules/Admin/_redux/activeUsers/activeUsersActions.js","app/modules/Admin/_redux/activeUsers/activeUsersCrud.js","app/modules/Admin/pages/activeUsers/activeUser-edit-dialog/ActiveUserEditDialogHeader.js","app/modules/Admin/pages/activeUsers/activeUser-edit-dialog/ActiveUserEditForm.js","app/modules/Admin/pages/activeUsers/ActiveUsersUIHelpers.js","app/modules/Admin/pages/activeUsers/ActiveUsersUIContext.js","app/modules/Admin/pages/activeUsers/activeUser-edit-dialog/ActiveUserEditDialog.js","app/modules/Admin/pages/activeUsers/activeUsers-filter/ActiveUsersFilter.js","app/modules/Admin/pages/activeUsers/activeUsers-table/column-formatters/ActionsColumnFormatter.js","app/modules/Admin/pages/activeUsers/activeUsers-table/ActiveUsersTable.js","app/modules/Admin/pages/activeUsers/activeUsers-grouping/ActiveUsersGrouping.js","app/modules/Admin/pages/activeUsers/ActiveUsersCard.js","app/modules/Admin/pages/activeUsers/ActiveUsersPage.js","app/modules/Admin/pages/AdminPage.js","app/modules/Customer/pages/customers/customers-loading-dialog/CustomersLoadingDialog.js","app/modules/Customer/_redux/customers/customersActions.js","app/modules/Customer/_redux/customers/customersCrud.js","app/modules/Customer/pages/customers/customer-edit-dialog/CustomerEditDialogHeader.js","app/components/AutocompleteCountry.js","app/modules/Customer/pages/customers/customer-edit-dialog/CustomerEditForm.js","app/modules/Customer/pages/customers/CustomersUIHelpers.js","app/modules/Customer/pages/customers/CustomersUIContext.js","app/modules/Customer/pages/customers/customer-edit-dialog/CustomerEditDialog.js","app/modules/Customer/pages/customers/customer-delete-dialog/CustomerDeleteDialog.js","app/modules/Customer/pages/customers/customers-delete-dialog/CustomersDeleteDialog.js","app/modules/Customer/pages/customers/customers-filter/CustomersFilter.js","app/modules/Customer/pages/customers/customers-table/column-formatters/ActionsColumnFormatter.js","app/modules/Customer/pages/customers/customers-table/CustomersTable.js","app/modules/Customer/pages/customers/customers-grouping/CustomersGrouping.js","app/modules/Customer/pages/customers/CustomersCard.js","app/components/DateRange2.js","app/modules/Customer/pages/customers/customer-traffic-print-dialog/CustomerTrafficPrintDialog.js","app/modules/Customer/pages/customers/customer-takeovers-print-dialog/CustomerTakeoversPrintDialog.js","app/modules/Customer/pages/customers/CustomersPage.js","app/modules/Customer/pages/CustomerPage.js","app/modules/Item/pages/itemGroups/itemGroups-loading-dialog/ItemGroupsLoadingDialog.js","app/modules/Item/_redux/itemGroups/itemGroupsActions.js","app/modules/Item/_redux/itemGroups/itemGroupsCrud.js","app/modules/Item/pages/itemGroups/itemGroup-edit-dialog/ItemGroupEditDialogHeader.js","app/modules/Item/pages/itemGroups/itemGroup-edit-dialog/ItemGroupEditForm.js","app/modules/Item/pages/itemGroups/ItemGroupsUIHelpers.js","app/modules/Item/pages/itemGroups/ItemGroupsUIContext.js","app/modules/Item/pages/itemGroups/itemGroup-edit-dialog/ItemGroupEditDialog.js","app/modules/Item/pages/itemGroups/itemGroup-delete-dialog/ItemGroupDeleteDialog.js","app/modules/Item/pages/itemGroups/itemGroups-delete-dialog/ItemGroupsDeleteDialog.js","app/modules/Item/pages/itemGroups/itemGroups-filter/ItemGroupsFilter.js","app/modules/Item/pages/itemGroups/itemGroups-table/column-formatters/ActionsColumnFormatter.js","app/modules/Item/pages/itemGroups/itemGroups-table/ItemGroupsTable.js","app/modules/Item/pages/itemGroups/itemGroups-grouping/ItemGroupsGrouping.js","app/modules/Item/pages/itemGroups/ItemGroupsCard.js","app/modules/Item/pages/itemGroups/ItemGroupsPage.js","app/modules/Item/pages/items/items-loading-dialog/ItemsLoadingDialog.js","app/modules/Item/_redux/items/itemsActions.js","app/modules/Item/_redux/items/itemsCrud.js","app/modules/Item/pages/items/item-edit-dialog/ItemEditDialogHeader.js","app/components/SelectVat.js","app/components/SelectItemType.js","app/components/SelectUnit.js","app/components/AutocompleteItemGroup.js","app/modules/Item/pages/items/item-pricelist/PricelistsUIContext.js","app/modules/Item/pages/items/item-pricelist/column-formatters/ActionsColumnFormatter.js","app/modules/Item/pages/items/item-pricelist/column-formatters/EffectiveDateFromColumnFormatter.js","app/modules/Item/pages/items/item-pricelist/column-formatters/MoneyColumnFormatter.js","app/modules/Item/pages/items/item-pricelist/PricelistsTable.js","app/modules/Item/pages/items/item-pricelist/PricelistDeleteDialog.js","app/modules/Item/pages/items/item-pricelist/pricelist-edit-dialog/PricelistEditForm.js","app/modules/Item/pages/items/item-pricelist/pricelist-edit-dialog/PricelistEditDialog.js","app/modules/Item/pages/items/item-pricelist/Pricelists.js","app/modules/Item/pages/items/item-jigsaw/JigsawsUIContext.js","app/modules/Item/pages/items/item-jigsaw/column-formatters/ActionsColumnFormatter.js","app/modules/Item/pages/items/item-jigsaw/column-formatters/QuantityColumnFormatter.js","app/modules/Item/pages/items/item-jigsaw/JigsawsTable.js","app/modules/Item/pages/items/item-jigsaw/JigsawDeleteDialog.js","app/components/AutocompleteItemGoods.js","app/modules/Item/pages/items/item-jigsaw/jigsaw-edit-dialog/JigsawEditForm.js","app/modules/Item/pages/items/item-jigsaw/jigsaw-edit-dialog/JigsawEditDialog.js","app/modules/Item/pages/items/item-jigsaw/Jigsaws.js","app/modules/Item/pages/items/item-edit-dialog/ItemEditForm.js","app/modules/Item/pages/items/ItemsUIHelpers.js","app/modules/Item/pages/items/ItemsUIContext.js","app/modules/Item/pages/items/item-edit-dialog/ItemEditDialog.js","app/modules/Item/pages/items/item-delete-dialog/ItemDeleteDialog.js","app/modules/Item/pages/items/items-filter/ItemsFilter.js","app/modules/Item/pages/items/items-table/column-formatters/ActionsColumnFormatter.js","app/modules/Item/pages/items/items-table/ItemsTable.js","app/modules/Item/pages/items/items-grouping/ItemsGrouping.js","app/modules/Item/pages/items/ItemsCard.js","app/components/AutocompleteWarehouse.js","app/modules/Item/pages/items/item-stock-movement-print-dialog/ItemStockMovementPrintDialog.js","app/modules/Item/pages/items/ItemsPage.js","app/modules/Item/pages/ItemPage.js","app/modules/Document/pages/documents/documents-loading-dialog/DocumentsLoadingDialog.js","app/modules/Document/_redux/documents/documentsCrud.js","app/modules/Document/_redux/documents/documentsActions.js","app/modules/Document/pages/documents/DocumentsUIContext.js","app/modules/Document/pages/documents/document-edit-dialog/DocumentEditDialogHeader.js","app/components/AutocompleteSupplier.js","app/components/AutocompleteCustomer.js","app/components/AutocompleteItemView.js","app/components/AutocompleteItemViewGoods.js","app/modules/Document/pages/documents/document-edit-dialog/DocumentPositionGrid.js","app/modules/Document/pages/documents/document-edit-dialog/DocumentEditForm.js","app/modules/Document/pages/documents/document-edit-dialog/DocumentEditDialog.js","app/modules/Document/pages/documents/document-delete-dialog/DocumentDeleteDialog.js","app/modules/Document/pages/documents/documents-print-dialog/DocumentsPrintDialog.js","app/modules/Document/pages/documents/documents-print-storno-dialog/DocumentsPrintStornoDialog.js","app/components/MultiSelectCashier.js","app/modules/Document/pages/documents/documents-filter/DocumentsFilter.js","app/modules/Document/pages/documents/DocumentsUIHelpers.js","app/modules/Document/pages/documents/documents-table/column-formatters/ActionsColumnFormatter.js","app/modules/Document/pages/documents/documents-table/column-formatters/AmountForPaymentColumnFormatter.js","app/modules/Document/pages/documents/documents-table/column-formatters/DateColumnFormatter.js","app/modules/Document/pages/documents/documents-table/column-formatters/StornoTalkingNumberColumnFormatter.js","app/modules/Document/pages/documents/documents-table/column-formatters/LinkedDocumentColumnFormatter.js","app/modules/Document/pages/documents/documents-table/column-formatters/DateTimeColumnFormatter.js","app/modules/Document/pages/documents/documents-table/DocumentsTable.js","app/modules/Document/pages/documents/documents-grouping/DocumentsGrouping.js","app/modules/Document/pages/documents/DocumentsCard.js","app/modules/Purchase/pages/takeovers/TakeoversPage.js","app/modules/Purchase/pages/inventories/InventoriesPage.js","app/modules/Purchase/pages/writeoffs/WriteoffsPage.js","app/modules/Purchase/pages/internalStockTransfers/InternalStockTransfersPage.js","app/modules/Purchase/pages/ownConsumptions/OwnConsumptionsPage.js","app/modules/Purchase/pages/refunds/RefundsPage.js","app/modules/Purchase/pages/productionOrders/ProductionOrdersPage.js","app/modules/Purchase/pages/PurchasePage.js","app/modules/Sales/pages/offers/OffersPage.js","app/modules/Sales/pages/deliveryNotes/DeliveryNotesPage.js","app/modules/Document/pages/documents/document-history-dialog/DocumentHistoryDialogHeader.js","app/modules/Document/pages/documents/document-history-dialog/column-formatters/UserColumnFormatter.js","app/modules/Document/pages/documents/document-history-dialog/column-formatters/DateColumnFormatter.js","app/modules/Document/pages/documents/document-history-dialog/DocumentHistoryTable.js","app/modules/Document/pages/documents/document-history-dialog/DocumentHistoryDialog.js","app/modules/Sales/pages/invoices/InvoicesPage.js","app/modules/Sales/pages/credits/CreditsPage.js","app/modules/Sales/pages/expenses/ExpensesPage.js","app/modules/Sales/pages/receipts/ReceiptsPage.js","app/modules/Sales/pages/deliveryNoteInvoices/DeliveryNoteInvoicesPage.js","app/modules/Sales/pages/ends/ends-loading-dialog/EndsLoadingDialog.js","app/modules/Sales/pages/ends/EndsUIContext.js","app/modules/Sales/pages/ends/ends-filter/EndsFilter.js","app/modules/Sales/_redux/ends/endsActions.js","app/modules/Sales/_redux/ends/endsCrud.js","app/modules/Sales/pages/ends/EndsUIHelpers.js","app/modules/Sales/pages/ends/ends-table/column-formatters/ActionsColumnFormatter.js","app/modules/Sales/pages/ends/ends-table/column-formatters/DateColumnFormatter.js","app/modules/Sales/pages/ends/ends-table/column-formatters/AmountFormatter.js","app/modules/Sales/pages/ends/ends-table/column-formatters/FirstLastTalkingNumberFormatter.js","app/modules/Sales/pages/ends/ends-table/EndsTable.js","app/modules/Sales/pages/ends/ends-grouping/EndsGrouping.js","app/modules/Sales/pages/ends/EndsCard.js","app/modules/Sales/pages/ends/ends-print-dialog/EndsPrintDialog.js","app/modules/Sales/pages/ends/EndsPage.js","app/modules/Sales/pages/SalesPage.js","app/modules/Report/pages/reports/ReportByDayPage.js","app/modules/Report/pages/reports/ReportTdrPage.js","app/modules/Report/pages/reports/ReportByItemGroupPage.js","app/modules/Report/pages/reports/ReportByItemPage.js","app/modules/Report/pages/reports/ReportByUserPage.js","app/modules/Report/pages/reports/ReportByDayHourPage.js","app/modules/Report/pages/reports/ReportByDeliveryNotesByDatePage.js","app/modules/Report/pages/reports/ReportByPaymentByDatePage.js","app/modules/Report/pages/reports/ReportTrafficByHourPage.js","app/modules/Report/pages/reports/ReportPurchaseItemBySuppliersPage.js","app/modules/Report/pages/reports/ReportSalesItemByUsersPage.js","app/modules/Report/pages/reports/ReportProfitPage.js","app/modules/Report/pages/reports/ReportByCustomers.js","app/modules/Report/pages/reports/ReportJigsaw.js","app/modules/Report/pages/reports/ReportSpentItemsAndPpPage.js","app/modules/Report/pages/reports/ReportSellBySuppliersPage.js","app/modules/Report/pages/reports/ReportStockItemsPage.js","app/components/SelectDocumentType.js","app/modules/Report/pages/reports/ReportByDocumentsPage.js","app/modules/Report/pages/reports/ReportByUsersByPaymentsPage.js","app/modules/Report/pages/reports/ReportJigsawProfitPage.js","app/modules/Report/pages/reports/ReportSalesByUsersByItemgroupsPage.js","app/modules/Report/pages/reports/ReportByOwnConsumptionsPage.js","app/modules/Report/pages/reports/ReportSpentItemsPage.js","app/modules/Report/pages/reports/ReportFirstLastInvoiceByUsersPage.js","app/modules/Report/pages/reports/ReportPricelistPage.js","app/modules/Report/pages/reports/ReportProfitJigsawWithVatPage.js","app/modules/Report/pages/reports/ReportItemStockFifoPage.js","app/modules/Report/pages/reports/ReportSalesItemsByDatePage.js","app/modules/Report/pages/reports/ReportRvcByItemGroupsPage.js","app/modules/Report/pages/reports/ReportVatCalculatorPage.js","app/modules/Report/pages/reports/ReportSalesItemsByHourPage.js","app/modules/Report/pages/reports/ReportDeliveryNotesByCustomersPage.js","app/modules/Report/pages/ReportPage.js","app/BasePage.js","app/modules/Auth/pages/Login.js","app/modules/Auth/pages/Export.js","app/modules/Auth/_redux/exportCrud.js","app/util/UrlParams.js","app/modules/Auth/pages/ResetPassword.js","app/modules/Auth/pages/Registration.js","app/modules/Auth/pages/ForgotPassword.js","app/modules/Auth/pages/AuthPage.js","app/modules/Auth/pages/Logout.js","app/modules/Auth/pages/Relogin.js","app/modules/ErrorsExamples/ErrorPage1.js","app/modules/ErrorsExamples/ErrorPage2.js","app/modules/ErrorsExamples/ErrorPage3.js","app/modules/ErrorsExamples/ErrorPage4.js","app/modules/ErrorsExamples/ErrorPage5.js","app/modules/ErrorsExamples/ErrorPage6.js","app/modules/ErrorsExamples/ErrorsPage.js","app/Routes.js","app/App.js","redux/setupAxios.js","index.js","_metronic/_assets/js/components/cookie.js","_metronic/_assets/js/components/offcanvas.js","_metronic/_assets/js/components/menu.js","_metronic/_assets/js/components/toggle.js","_metronic/_assets/js/components/util.js","_metronic/_assets/js/components/card.js","_metronic/_assets/js/components/scrolltop.js"],"names":["logot","axios","get","saga","actionTypes","initialAuthState","user","undefined","authToken","reducer","persistReducer","storage","key","whitelist","state","action","type","payload","actions","login","register","logout","requestUser","fulfillUser","takeLatest","loginSaga","put","registerSaga","userRequested","data","initialUsersState","listLoading","actionsLoading","totalCount","entities","userForEdit","lastError","callTypes","usersSlice","createSlice","name","initialState","reducers","catchError","error","callType","startCall","userFetched","usersFetched","userCreated","push","model","userUpdated","map","entity","id","userDeleted","filter","el","usersDeleted","ids","includes","usersStatusUpdated","status","findIndex","userRolesFetched","userRoles","cashiersFetched","cashiers","initialOfficeUsersState","officeUserForEdit","officeUsersSlice","officeUserFetched","officeUsersFetched","officeUserCreated","officeUserUpdated","officeUser","officeUserDeleted","officeUsersDeleted","officeUsersStatusUpdated","initialUserRolesState","userRoleForEdit","userFunctionalities","deleteResult","userRolesSlice","userRoleFetched","userFunctionalitiesFetched","userRoleCreated","userRoleUpdated","userRole","userRoleDeleted","initialCodeListsState","codeListForEdit","codeListsSlice","codeListFetched","codeListSchemasFetched","codelistSchemas","codeListsFetched","codeListCreated","codeListUpdated","codeList","initialCustomersState","customerForEdit","customersSlice","customerFetched","customersFetched","customerCreated","customerUpdated","customer","customerDeleted","customersDeleted","initialOrganizationState","organizationForEdit","fiscalDigitalCertificateForEdit","yourCompanySlice","organizationFetched","organizationUpdated","organization","fiscalDigitalCertificateFetched","initialProfileState","profileForEdit","yourProfileSlice","profileFetched","profileUpdated","profile","initialOrganizationsState","organizationsSlice","organizationsFetched","activeUsersSlice","token","activeUsersFetched","loginFetched","initialItemGroupsState","itemGroupForEdit","itemGroupsSlice","itemGroupFetched","itemGroupsFetched","itemGroupCreated","itemGroupUpdated","itemGroup","itemGroupDeleted","itemGroupsDeleted","initialItemsState","itemForEdit","pricelistForEdit","pricelists","pricelistsRemove","currentVatRateId","jigsawForEdit","jigsaws","jigsawsRemove","itemsSlice","itemFetched","itemsFetched","itemCreated","itemUpdated","item","itemDeleted","itemsDeleted","setCurrentVatRateId","setPricelists","setPricelistsRemove","setPricelistForEdit","setJigsaws","setJigsawsRemove","setJigsawForEdit","initialEndsState","endForEdit","endsSlice","endFetched","endsFetched","endCreated","endUpdated","end","endDeleted","endsDeleted","initialCashiersState","cashierForEdit","cashiersSlice","cashierFetched","cashierCreated","cashierUpdated","cashier","cashierDeleted","cashiersDeleted","initialCacheState","vatRates","itemTypes","units","officeReports","initStepTutorial","documentTypes","cacheSlice","allVatRatesFetched","allItemTypesFetched","allUnitsFetched","allCashiersFetched","allOfficeReportsFetched","initStepTutorialsFetched","allDocumentTypesFetched","initialDocumentsState","historyTotalCount","historyEntities","documentForEdit","documentsSlice","documentFetched","documentsFetched","documentCreated","documentUpdated","document","documentDeleted","historyFetched","importSlice","warehousesFetched","exportSlice","exportDataForEdit","lastExportDataFetched","expertsFetched","dashboardSlice","trafficToday","trafficCurrentMonth","trafficLast12MonthsAmount","salesPurchaseByYears","salesByYears","trafficTodayFetched","trafficCurrentMonthFetched","trafficLast12MonthsFetched","trafficLast12Months","salesPurchaseByYearsFetched","salesByYearsFetched","rootSaga","rootReducer","combineReducers","auth","users","officeUsers","codeLists","organizations","activeUsers","customers","itemGroups","items","cache","documents","ends","import","export","dashboard","all","sagaMiddleware","createSagaMiddleware","middleware","getDefaultMiddleware","immutableCheck","serializableCheck","thunk","store","configureStore","devTools","process","enhancers","reduxBatch","persistor","persistStore","run","toAbsoluteUrl","pathname","checkIsActive","location","url","current","split","getCurrentUrl","indexOf","getHandlerTableChange","setQueryParams","page","sizePerPage","sortField","sortOrder","pageNumber","prev","pageSize","PleaseWaitMessage","NoRecordsFoundMessage","customersList","length","SelectionCheckbox","isSelected","onChange","style","display","className","checked","getSelectRow","props","setIds","mode","clickToSelect","hideSelectAll","selectionHeaderRenderer","allIds","forEach","groupingAllOnSelect","selectionRenderer","rowIndex","some","customerId","newIds","groupingItemOnSelect","sortCaret","order","column","src","headerSortingClasses","isLastSorting","colIndex","HtmlClassService","layoutConfig","this","config","preInit","classes","header","header_container","header_mobile","header_menu","aside","aside_menu","subheader","subheader_container","content","content_container","footer_container","attributes","initLayout","initLoader","initHeader","initSubheader","initContent","initAside","initFooter","initTheme","updatedConfig","Object","assign","headerSelfFixedDesktop","objectPath","fixed","path","toString","Array","isArray","join","logo","getLogo","selfBodyBackgroundImage","body","backgroundImage","_selfBodyClass","cssClass","classList","add","headerMenuSelfLayout","headerMenuLayoutCssClass","subheaderFixed","subheaderStyle","subheaderClass","asideSelfDisplay","asideMenuDropdown","asideSubmenuDHoverTimeout","brandSelfTheme","headerSelfTheme","LAYOUT_CONFIG_KEY","REACT_APP_LAYOUT_CONFIG_KEY","getConfig","ls","localStorage","getItem","JSON","parse","er","console","demo","js","breakpoints","sm","md","lg","xl","xxl","colors","theme","base","light","inverse","gray","fontFamily","loader","enabled","message","toolbar","self","width","desktop","mobile","menu","layout","arrow","toggle","submenu","accordion","displayDesc","displayDaterangepicker","clear","brand","minimize","default","hoverable","footer","dropdown","scroll","extras","search","offcanvas","direction","notifications","directions","languages","cart","chat","scrolltop","HtmlClassServiceContext","createContext","useHtmlClassService","useContext","Consumer","MetronicLayoutProvider","children","lc","useMemo","hcs","service","setConfig","Provider","value","DropdownMenu1","data-toggle","data-placement","title","href","React","forwardRef","ref","onClick","e","preventDefault","DropdownTopbarItemToggler","displayName","I18N_CONFIG_KEY","REACT_APP_I18N_CONFIG_KEY","selectedLang","I18nContext","useLang","MetronicI18nProvider","lang","allMessages","sl","en","enMessages","I18nProvider","locale","messages","flag","LanguageSelectorDropdown","currentLanguage","find","x","Dropdown","drop","alignRight","Toggle","as","OverlayTrigger","placement","overlay","Tooltip","alt","Menu","language","clsx","active","setItem","stringify","window","reload","setLanguage","UserProfileDropdown","useSelector","uiService","layoutProps","fullname","to","QuickUserToggler","firstName","lastName","Topbar","viewSearchDisplay","viewNotificationsDisplay","viewQuickActionsDisplay","viewCartDisplay","viewQuickPanelDisplay","viewLanguagesDisplay","viewUserDisplay","HeaderMenu","useLocation","ktMenuClasses","headerMenuAttributes","ulClasses","aria-hidden","target","HeaderMenuWrapper","getClasses","rootArrowEnabled","menuDesktopToggle","getAttributes","disabledAsideSelfDisplay","result","getHeaderLogo","CardHeaderTitle","CardHeaderToolbar","CardHeader","icon","sticky","labelRef","useState","top","setTop","windowHeight","setWindowHeight","useEffect","handleResize","innerWidth","addEventListener","removeEventListener","headerElement","querySelector","subheaderElement","headerMobileElement","nextMarginTop","getComputedStyle","height","offsetHeight","contains","position","backgroundColor","isFragment","CardBody","fit","fluid","Card","fluidHeight","inputLabel","label","touched","customFeedbackLabel","FieldFeedbackLabel","selectLabel","getFieldCSSClasses","errors","Input","field","form","withFeedbackLabel","PaginationLinks","paginationProps","totalSize","paginationSize","pagesCount","Math","ceil","getPagesCount","pages","i","shiftCount","floor","getPages","disabledClass","onPageChange","handlePrevPage","p","pageNum","handleNextPage","PaginationToolbar","isLoading","sizePerPageList","onSizePerPageChange","text","disabled","event","newSize","option","isSelect","Pagination","AnimateLoading","routeChanged","nextProps","animate","scrollToTop","scrollToTopBtn","getElementById","click","animateTimeout","setTimeout","setState","stopAnimate","clearTimeout","animateInterval","stopAnimateTimeout","ProgressBar","variant","now","Component","withRouter","initCssClasses","LoadingDialog","cssClasses","setCssClasses","timeoutId","node","svg","iconRef","textRef","iconWrapperRef","role","ModalProgressBar","animated","Header","headerClasses","headerAttributes","headerContainerClasses","menuHeaderDisplay","HeaderMobile","headerLogo","getStickyLogo","asideDisplay","headerMenuSelfDisplay","headerMobileCssClasses","headerMobileAttributes","Brand","brandClasses","asideSelfMinimizeToggle","headerStickyLogo","hasRoleForFunctionality","canRender","userFunctionality","index","userRoleForFunctionality","CheckPermissions","UserFunctionalityE","freeze","AsideMenuList","intl","useIntl","reports","setReports","currentState","shallowEqual","getMenuItemActive","hasSubmenu","getReport","PregledPrometaZaDanes","PregledPrometaZaTekociMesec","PregledPrometaVZadnjih12MesecihBrezDdv","PregledProdajePoLetih","PregledProdajeNabavePoLetih","aria-haspopup","PregledStrank","UrediStranke","PregledSkupinIzdelkov","UrediSkupineIzdelkov","PregledIzdelkov","UrediIzdelke","data-menu-toggle","PregledPonudb","UrediPonudbe","PregledDobavnic","UrediDobavnice","PregledRacunov","UrediRacune","PregledDobavniceRacuni","UrediDobavniceRacune","PregledDobropisovOffice","PregledIzdatkovOffice","PregledPrejemkovOffice","PregledZakljuckov","PregledPrevzemnihListov","UrediPrevzemneListe","PregledInventurnihPopisov","UrediInventurnePopise","PregledOdpisov","UrediOdpise","PregledMedskladiscnihPrenosov","UrediMedskladiscnePrenose","PregledLastnihPorab","UrediLastnePorabe","PregledVracil","UrediVracila","PregledProizvodnihNalogov","UrediProizvodneNaloge","PorociloPoDnevih","PorocilaPoSkupinahArtiklov","PorociloPoArtiklih","PorociloPoUporabnikih","PorociloPoDnevihInUrah","PorociloPoDobavnicahPoDnevih","PorociloPoNacinihPlacilaPoDnevih","PorociloPrometaPoUrah","PorociloZalogaNaDan","PorociloNabaveArtiklovPoDobaviteljih","PorociloProdajePoUporabnikihPoArtiklih","PorociloProdajaNabavaInMarza","PorociloPoStrankah","PorociloArtiklovVSestavnicah","PorociloPorabeArtiklovPoNC","PorociloZalogaNaDanPOS","PorociloProdajePoMizah","PorociloProdajePoDobaviteljih","PorociloZalogeNaDanZNCinPC","PorociloObdelavePoMizah","PorociloPoDokumentih","PorociloPoUporabnikihPoNacinuPlacila","TdrPorocilo","PorociloMarzeArtiklovPoSestavnicahGAST","RacuniStornacijeSPopusti","RacuniStornoVezanoNaRacun","PorociloProdajePoUporabnikihPoSkupinah","ObracunLastnePorabe","PrimerjavaProdajePoLetihInMesecih","PorociloPorabeArtiklov","PrviZadnjiIzdanRacunUporabnika","TrenutnoVeljavenCenik","PorociloGastZaNezavezance","PorociloNVzalogeNaDanPoFIFO","ProdajaPoIzbranemArtiklu","RvcPoSkupinahArtiklov","OcenaDdvja","ProdaniArtikliPoUrah","IzdaneDobavnicePoKupcih","placeholder","formatMessage","aria-label","aria-describedby","query","list","report","toLowerCase","searchReports","PregledBlagajniskihUporabnikov","UrediBlagajniskeUporabnike","PregledPisarniskihUporabnikov","UrediPisarniskeUporabnike","PregledVlogZaBlagajniskePravice","UrediVlogeZaBlagajniskePravice","PregledVlogZaPisarniskePravice","UrediVlogeZaPisarniskePravice","UrediSifrante","PregledVasegaPodjetja","UrediVasePodjetje","PregledDavcnihBlagajn","UrediDavcneBlagajne","PregledSifrantov","Izvozi","AktivniUporabniki","Organizacije","AsideMenu","disableScroll","asideMenuAttr","asideClassesFromConfig","data-menu-vertical","Aside","disableAsideSelfDisplay","Footer","today","Date","getFullYear","footerClasses","footerContainerClasses","format","KTLayoutHeader","_element","_elementForMobile","init","idForMobile","KTUtil","getById","isFixed","hasClass","getBody","isFixedForMobile","getElement","getElementForMobile","getHeader","getHeight","actualHeight","_getHeight","getHeightForMobile","KTLayoutHeaderMenu","_menuElement","_menuObject","_offcanvasElement","_offcanvasObject","menuId","offcanvasId","KTOffcanvas","baseClass","closeBy","toggleBy","KTMenu","tablet","slideSpeed","expandAll","on","isBreakpointDown","hide","getMenuElement","getOffcanvasElement","getMenu","pauseDropdownHover","time","getOffcanvas","closeMobileOffcanvas","isMobileDevice","KTLayoutHeaderTopbar","_toggleElement","KTToggle","targetState","toggleState","getToggleElement","KTLayoutBrand","KTLayoutAside","_body","offcanvasClass","_init","isMinimized","isHoverable","KTLayoutSubheader","KTLayoutStickyCard","_object","offset","KTCard","zIndex","pos","isBreakpointUp","left","card","right","cardWidth","parseInt","css","initSticky","addResizeHandler","updateSticky","update","KTLayoutAsideMenu","menuDesktopMode","attr","rememberPosition","getViewPort","insideTm","outsideTm","addEvent","addClass","scrollUpdate","scrollTop","removeClass","_initHover","KTLayoutAsideToggle","_toggleObject","KTCookie","setCookie","getState","getToggle","onToggle","handler","element","KTLayoutFooter","KTLayoutContent","KTLayoutScrolltop","KTScrolltop","speed","KTLayoutStretchedCard","cardBody","cardHeader","KTLayoutQuickPanel","_notificationsElement","_logsElement","_settingsElement","_getContentHeight","scrollInit","mobileNativeScroll","resetHeightOnDestroy","handleWindowResize","KTLayoutQuickUser","disableForMobile","LayoutInit","useLayoutEffect","ready","QuickActionsDropdownToggle","QuickActions","BreadCrumbs","getBreadcrumbsAndTitle","pathName","breadcrumbs","activeLinks","from","getElementsByClassName","tagName","link","titleSpans","titleSpan","t","innerHTML","trim","breadCrumbs","getTitle","SubheaderContext","useSubheader","MetronicSubheaderProvider","setTitle","setBreadcrumbs","SubHeader","subheaderMobileToggle","subheaderCssClasses","subheaderContainerCssClasses","QuickUser","history","useHistory","userName","ScrollTop","Intro","stepsRef","useRef","stepsEnabled","setStepsEnabled","getInitStep","initialStep","nextLabel","prevLabel","doneLabel","showBullets","showProgress","showStepNumbers","showButtons","options","intro","steps","onExit","onBeforeChange","nextStepIndex","updateStepElement","Layout","selfLayout","subheaderDisplay","desktopHeaderDisplay","contentCssClasses","contentContainerClasses","contentExtended","Content","match","useRouteMatch","cssClassesState","setCssClassesState","fullClasses","startAnimation","timeOutId","ContentRoute","component","render","routeProps","createElement","MetronicSplashScreenContext","MetronicSplashScreenProvider","count","setCount","visible","timeout","splashScreen","remove","LayoutSplashScreen","createMuiTheme","typography","palette","primary","main","secondary","MuiButtonBase","disableRipple","MuiPopover","elevation","MaterialThemeProvider","ThemeProvider","fetchTrafficToday","dispatch","then","response","catch","clientMessage","fetchTrafficCurrentMonth","fetchTrafficLast12Months","fetchSalesPurchaseByYears","year","requestFromServer","fetchSalesByYears","TodayTrafficWidget","useDispatch","trafficTodayAmount","todayIsUp","diffTodayYesterday","LastMonthTrafficWidget","trafficCurrentMonthAmount","currentMonthIsUp","diffCurrentMonthLastMonth","Last12MonthsTrafficWidget","start","Select5YearBack","years","dt","setYear","readOnly","MenuItem","SalesByYearsWidget","chartType","y","parseFloat","replace","getChartData","chartArea","legendToggle","SalesPurchaseWidget","val","Dashboard","Promise","DashboardPage","Transition","Slide","CheckAxiosRequests","setMessage","open","setOpen","handleClose","interceptors","use","showError","didError","reject","Dialog","TransitionComponent","keepMounted","onClose","aria-labelledby","DialogTitle","DialogContent","DialogContentText","DialogActions","Button","color","fetchInit","UsersLoadingDialog","fetchUsers","queryParams","post","fetchUser","userId","deleteUser","delete","createUser","userForCreation","updateUser","deleteUsers","fetchUserRoles","fetchCashiers","UserEditDialogHeader","_title","Modal","closeButton","Title","ErrorPopup","UserEditForm","saveUser","cashierUser","onHide","foreignOperator","isForeignOperator","setIsForeignOperator","errorMessage","setErrorMessage","errorOpen","setErrorOpen","setInit","UserEditSchema","Yup","shape","max","required","min","test","resolve","applicationUserId","taxNumber","email","enableReinitialize","initialValues","validateOnChange","validationSchema","onSubmit","values","obj","phone","applicationUserFiscalCashierBusinessUnitUserRole","handleSubmit","Body","scope","arrayHelpers","fiscalCashierBusinessUnit","businessPremiseTitle","defaultSorted","dataField","initialFilter","UsersUIContext","useUsersUIContext","UsersUIProvider","usersUIEvents","setQueryParamsBase","useCallback","nextQueryParams","prevQueryParams","isFunction","isEqual","initUser","newUserButtonClick","openEditUserDialog","openDeleteUserDialog","openDeleteUsersDialog","UserEditDialog","show","usersUIContext","usersUIProps","size","auFcbUr","userRoleId","fiscalCashierBusinessUnitId","getUser","UserDeleteDialog","UsersDeleteDialog","UsersFilter","applyFilter","newQueryParams","searchText","prepareFilter","handleBlur","setFieldValue","handleChange","onBlur","ActionsColumnFormatter","cellContent","row","UsersTable","columns","sort","formatter","columnFormatters","formatExtraData","minWidth","paginationOptions","custom","uiHelpers","paginationTotalRenderer","pagination","paginationFactory","paginationTableProps","wrapperClasses","bordered","bootstrap4","remote","keyField","onTableChange","UsersGrouping","UsersCard","InfoPopup","UsersPage","organizationCashierUserCount","params","OfficeUsersLoadingDialog","fetchOfficeUsers","fetchOfficeUser","changepassword","deleteOfficeUser","createOfficeUser","officeUserForCreation","updateOfficeUser","deleteOfficeUsers","fetchOfficeUserRoles","OfficeUserEditDialogHeader","OfficeUserEditForm","saveOfficeUser","setUserRoleId","password","when","is","oneOf","OfficeUserEditSchema","getInputClasses","OfficeUsersUIContext","useOfficeUsersUIContext","OfficeUsersUIProvider","officeUsersUIEvents","initOfficeUser","newOfficeUserButtonClick","openEditOfficeUserDialog","openDeleteOfficeUserDialog","openDeleteOfficeUsersDialog","OfficeUserEditDialog","officeUsersUIContext","officeUsersUIProps","OfficeUserDeleteDialog","OfficeUsersDeleteDialog","OfficeUsersFilter","OfficeUsersTable","OfficeUsersGrouping","OfficeUsersCard","OfficeUsersPage","organizationOfficeUserCount","UserPage","fallback","exact","UserRolesLoadingDialog","fetchUserRole","deleteUserRole","createUserRole","userRoleForCreation","updateUserRole","fetchUserFunctionalities","UserRoleEditDialogHeader","UserRoleEditForm","saveUserRole","ufList","UserRoleEditSchema","arr","res","module","i2","el2","applicationModule","createModules","rowIndex1","reduce","acc","curr","slice","urRows","userRoleRow","UserRolesUIContext","useUserRolesUIContext","UserRolesUIProvider","userRolesUIEvents","initUserRole","newUserRoleButtonClick","openEditUserRoleDialog","openDeleteUserRoleDialog","openDeleteUserRolesDialog","UserRoleEditDialog","userRolesUIContext","userRolesUIProps","filterUserRoles","UserRoleDeleteDialog","UserRolesFilter","ActionsColumnFormatterCashier","canDelete","ActionsColumnFormatterOffice","UserRolesTable","UserRolesGrouping","CashierUserRolesCard","CashierUserRolesPage","OfficeUserRolesCard","OfficeUserRolesPage","CodeListsLoadingDialog","fetchCodeLists","fetchCodeList","codeListId","createCodeList","codeListForCreation","updateCodeList","fetchCodeListSchemas","CodeListEditDialogHeader","CodeListEditForm","codelistSchemaId","saveCodeList","CodeListEditSchema","code","description","CodeListsUIContext","useCodeListsUIContext","CodeListsUIProvider","codeListsUIEvents","initCodeList","newCodeListButtonClick","openEditCodeListDialog","CodeListEditDialog","codeListsUIContext","codeListsUIProps","CodeListsFilter","setCodelistSchemaId","ActiveColumnFormatter","CodeListsTable","CodeListsGrouping","openDeleteCodeListsDialog","CodeListsCard","CodeListsPage","ChangePasswordPage","loading","setLoading","isError","setIsError","isSuccess","setIsSuccess","setStatus","setSubmitting","changePassword","currentPassword","cPassword","Schema","fieldname","formik","useFormik","resetForm","onReset","handleReset","isSubmitting","isValid","data-dismiss","getFieldProps","fetchLastExportData","exportData","date","toDate","moment","fromDate","setMonth","getMonth","fetchExperts","DateColumnFormatter","IntervalColumnFormatter","StatusColumnFormatter","class","CreatorColumnFormatter","creator","ExportsTable","refeshCount","hidden","ExportPage","setRefeshCount","saveExport","dailyReport","stockReport","zReport","deliveryNoteInvoiceReport","xmlExport","documentsFromCashier","documentsFromOffice","confirmPassword","vodKonto1","vodKonto2","vodKonto3","vodKonto4","vodKonto5","vodKonto6","vodKonto7","vodKonto8","vodKonto9","vodKonto10","vodKonto11","vodKonto12","vodUnknownBuyer","vodCostCenter","yup","fetchProfile","updateProfile","YourProfileForm","signatureUniqueId","setSignatureUniqueId","removeSignature","setRemoveSignature","newSignatureUniqueId","saveProfile","getTime","data-action","formData","FormData","append","files","req","accept","YourProfilePage","fetchOrganization","updateOrganization","fetchFiscalDigitalCertificate","fiscalDigitalCertificate","AutocompletePost","setOptions","setInputValue","setValue","fetch","json","keys","Autocomplete","onOpen","getOptionSelected","getOptionLabel","onInputChange","renderInput","TextField","InputProps","endAdornment","Fragment","CircularProgress","CompanyDetails","logoUniqueId","setLogoUniqueId","removeLogo","setRemoveLogo","postCode","postTitle","setPost","address","appModulePurchase","appModuleSales","registrationNumber","taxDuty","town","bankName","bankIban","bankBic","invoiceSendToMail","invoiceEmail","invoiceAddress","invoicePostCode","invoicePostTitle","officeUserCount","cashierUserCount","cashierCount","minOfficeUserCount","minCashierUserCount","minCashierCount","deactiveReason","deactiveDate","confirmed","contractExpirationDate","newLogoUniqueId","saveOrganization","InputCount","setNewValue","maxValue","minValue","CompanyPackage","setCashierUserCount","setOfficeUserCount","setCashierCount","setAppModulePurchase","cubic","setCubic","Switch","inputProps","CompanyFurs","certificate","setCertificate","file","setFile","isEdit","setIsEdit","saveFurs","certPassword","expiredDate","number","publisherName","getDate","CompanyEInvoice","CompanyPayment","setInvoiceSendToMail","ToggleButtonGroup","currentTarget","reset","ToggleButton","CompanyCancelPackage","isDeactive","setIsDeactive","setContractExpirationDate","cancelDeactive","Navigation","activeClassName","organizationNotSentToFurs","YourCompanyPage","suhbeader","CashiersLoadingDialog","onlyDigits","keyCode","which","keyValue","String","fromCharCode","decimal","onlyPositiveDecimal","fetchCashier","cashierId","premiseType","valid","deleteCashier","createCashier","cashierForCreation","updateCashier","CashierEditDialogHeader","AutocompleteWarehouseWithoutConsignment","CashierEditForm","saveCashier","isRealEstateBP","setIsRealEstateBP","realEstateAddressPostalCode","realEstateAddressCity","warehouse","setWarehouse","errorWarehouse","setErrorWarehouse","errorPost","setErrorPost","businessPremiseId","setBusinessPremiseId","setCashierId","isRegistered","CashierEditSchema","RegExp","validCheckIfCashierExist","realEstatePropertyCadastralNumber","realEstatePropertyBuildingNumber","realEstatePropertyBuildingSectionNumber","realEstateAddressStreet","realEstateAddressHouseNumber","realEstateAddressHouseNumberAdditional","realEstateAddressCommunity","validateForm","checkIfCashierExist","handleChangeIsRealEstateBP","warehouseId","onKeyPress","cashierFunctionalities","CashiersUIContext","useCashiersUIContext","CashiersUIProvider","cashiersUIEvents","initCashier","newCashierButtonClick","openEditCashierDialog","openDeleteCashierDialog","openDeleteCashiersDialog","printInternAktDialog","registerDialog","unregisterDialog","openConnectDialog","openDeconnectDialog","CashierEditDialog","cashiersUIContext","cashiersUIProps","CashierDeleteDialog","CashiersFilter","deviceKey","InternAktColumnFormatter","CashiersTable","CashiersGrouping","CashiersCard","PdfViewer","border","onLoad","CashierPrintDialog","CashierRegisterDialog","messageError","setMessageError","openError","setOpenError","CashierUnregisterDialog","CashierConnectDialog","timer","setTimer","tick","onHideRefresh","setInterval","clearInterval","publicKey","CashierDeconnectDialog","infoMessage","setInfoMessage","infoOpen","setInfoOpen","setActionsLoading","deviceTitle","deviceIpAddress","lastDeviceSynch","CashiersPage","organizationCashierCount","AppPage","ImportItems","setError","fetchWarehouses","ImportStocks","ImportIPricelists","ImportPage","UserRolePage","OrganizationsLoadingDialog","fetchOrganizations","OrganizationEditDialogHeader","OrganizationEditForm","appModuleSetting","appModuleAdministration","contractId","notSentToFurs","organizationFunctionalities","OrganizationsUIContext","useOrganizationsUIContext","OrganizationsUIProvider","organizationsUIEvents","initOrganization","newOrganizationButtonClick","openEditOrganizationDialog","OrganizationEditDialog","organizationsUIContext","organizationsUIProps","OrganizationsFilter","CreatedDateColumnFormatter","LastLoginColumnFormatter","ConfirmedColumnFormatter","OrganizationsTable","OrganizationsGrouping","openDeleteOrganizationsDialog","OrganizationsCard","OrganizationsPage","ActiveUsersLoadingDialog","fetchActiveUsers","reason","ActiveUserEditDialogHeader","activeUserForEdit","ActiveUserEditForm","saveReasonLogin","ActiveUserSchema","activeUserFunctionalities","ActiveUsersUIContext","useActiveUsersUIContext","ActiveUsersUIProvider","activeUsersUIEvents","initReason","newActiveUserButtonClick","openEditActiveUserDialog","ActiveUserEditDialog","activeUsersUIContext","activeUsersUIProps","ActiveUsersFilter","ActiveUsersTable","ActiveUsersGrouping","openDeleteActiveUsersDialog","ActiveUsersCard","ActiveUsersPage","AdminPage","CustomersLoadingDialog","fetchCustomers","fetchCustomer","deleteCustomer","createCustomer","customerForCreation","updateCustomer","deleteCustomers","CustomerEditDialogHeader","AutocompleteCountry","CustomerEditForm","saveCustomer","isForeigner","setIsForeigner","isLoadingAjpes","setIsLoadingAjpes","countryId","countryTitle","isoCode","countryIsoCode","country","setCountry","CustomerEditSchema","nullable","discount","num","paymentDeadline","handleChangeIsForeigner","handlerAjpesClick","taxcode","innerRef","useWholesalePricelist","withoutVatExport","isSupplier","bankBicCode","bankIbanCode","InputGroup","Append","Spinner","animation","CustomersUIContext","useCustomersUIContext","CustomersUIProvider","customersUIEvents","initCustomer","newCustomerButtonClick","openEditCustomerDialog","openDeleteCustomerDialog","openDeleteCustomersDialog","openCustomerTraffictDialog","openCustomerTakeoversDialog","CustomerEditDialog","customersUIContext","customersUIProps","CustomerDeleteDialog","CustomersDeleteDialog","CustomersFilter","CustomersTable","selectRow","CustomersGrouping","PregledPrometaStrank","PregledSeznamovPrevzemov","CustomersCard","DateRange2","setVisible","valueTxt","setValueTxt","startDate","setStartDate","endDate","setEndDate","showDateRange","txt","defaultValue","rdrLocales","editableDateInputs","selection","moveRangeOnFirstSelection","ranges","yesterday","setDate","setYesterday","day","getDay","prevMonday","setLastWeek","firstDay","setLastMonth","CustomerTrafficPrintDialog","itemsUIProps","CustomerTakeoversPrintDialog","CustomersPage","CustomerPage","ItemGroupsLoadingDialog","fetchItemGroups","fetchItemGroup","itemGroupId","deleteItemGroup","createItemGroup","itemGroupForCreation","updateItemGroup","deleteItemGroups","ItemGroupEditDialogHeader","ItemGroupEditForm","saveItemGroup","background","setBackground","displayBackgroundPicker","setDisplayBackgroundPicker","foreground","setForeground","displayForegroundPicker","setDisplayForegroundPicker","ItemGroupEditSchema","fontSize","appearInCashier","padding","borderRadius","cursor","bottom","hex","ItemGroupsUIContext","useItemGroupsUIContext","ItemGroupsUIProvider","itemGroupsUIEvents","initItemGroup","newItemGroupButtonClick","openEditItemGroupDialog","openDeleteItemGroupDialog","openDeleteItemGroupsDialog","openUpItemGroup","openDownItemGroup","ItemGroupEditDialog","itemGroupsUIContext","itemGroupsUIProps","ItemGroupDeleteDialog","ItemGroupsDeleteDialog","ItemGroupsFilter","ItemGroupsTable","ItemGroupsGrouping","ItemGroupsCard","ItemGroupsPage","ItemsLoadingDialog","fetchItems","fetchItem","itemId","maxDiscount","grossWeightPerUnit","pricelist","effectiveDateFrom","jigsaws1","deleteItem","createItem","itemForCreation","updateItem","jigsaw","ItemEditDialogHeader","SelectVat","AutocompleteItemGroup","PricelistsUIContext","usePricelistsUIContext","PricelistsUIProvider","selectedId","setSelectedId","setShowEditPricelistDialog","initPricelist","priceWithoutVat","priceWithVat","showDeletePricelistDialog","setShowDeletePricelistDialog","openEditPricelistDialog","openDeletePricelistDialog","closeDeletePricelistDialog","EffectiveDateFromColumnFormatter","MoneyColumnFormatter","toFixed","PricelistsTable","pricelistsUIContext","pricelistsUIProps","PricelistDeleteDialog","listRemove","PricelistEditForm","savePricelist","currentVatRate","pricelistId","setPricelistId","setEffectiveDateFrom","setPriceWithoutVat","setPriceWithVat","errorEffectiveDateFrom","setErrorEffectiveDateFrom","errorPriceWithoutVat","setErrorPriceWithoutVat","errorPriceWithVat","setErrorPriceWithVat","isValidated","setIsValidated","save","NaN","proc","procent","cal","round","PricelistEditDialog","showEditPricelistDialog","newId","Pricelists","JigsawsUIContext","useJigsawsUIContext","JigsawsUIProvider","setShowEditJigsawDialog","initJigsaw","quantity","item2Id","item2","showDeleteJigsawDialog","setShowDeleteJigsawDialog","openEditJigsawDialog","openDeleteJigsawDialog","closeDeleteJigsawDialog","QuantityColumnFormatter","JigsawsTable","jigsawsUIContext","jigsawsUIProps","JigsawDeleteDialog","AutocompleteItemGoods","JigsawEditForm","saveJigsaw","jigsawId","setJigsawId","setItem2","setQuantity","errorItem2","setErrorItem2","errorQuantity","setErrorQuantity","JigsawEditDialog","showEditJigsawDialog","Jigsaws","ItemEditForm","saveItem","tab","setTab","vatRateId","setVatRateId","itemTypeId","setItemTypeId","unitId","setUnitId","setItemGroup","ItemEditSchema","supplierNumber","eanCode","allowedDiscount","isTdr","isConsignmentStock","exemptForVat","printer1","printer2","printer3","margin","aria-selected","ItemsUIContext","useItemsUIContext","ItemsUIProvider","itemsUIEvents","initItem","newItemButtonClick","openEditItemDialog","openDeleteItemDialog","openItemStockMovementDialog","openUpItem","openDownItem","ItemEditDialog","itemsUIContext","pricelistRemove","ItemDeleteDialog","ItemsFilter","ItemsTable","ItemsGrouping","ItemsCard","PregledGibanjeZaloge","AutocompleteWarehouse","ItemStockMovementPrintDialog","ItemsPage","ItemPage","DocumentsLoadingDialog","checkIfCanCreateERacun","fetchDocuments","fetchDocument","copy","documentId","discountProcent","discountAmount","serviceDate","dateOfServicesRendered","dueDate","linkedDocument","stornoDocument","stornoDocumentId","otherDocumentNumber","documentPosition","fetchSendToDocument","deleteDocument","createDocument","documentForCreation","updateDocument","fetchHistory","DocumentsUIContext","useDocumentsUIContext","DocumentsUIProvider","DocumentEditDialogHeader","documentsUIContext","documentsUIProps","newDocumentButtonClick","translate","newHeader","copyHeader","talkingNumber","viewHeader","editHeader","AutocompleteSupplier","renderOption","AutocompleteCustomer","AutocompleteItemView","AutocompleteItemViewGoods","DocumentPositionGrid","documentType","documentPositions","gridPositionColumnsVisible","gridPositionColumnsTranslate","formFieldsVisible","saveDocumentPositions","getDiscount","recalculate","cloneDocumentPositions","dpList","setDpList","amountForPaymentBase","setAmountForPaymentBase","amountDiscount","setAmountDiscount","amountForPayment","setAmountForPayment","amountForVats","setAmountForVats","calculateTotals","isCustomItem","itemTitle","dp","setColumnValue","columnName","documentPostions","grossWeight","stock","warehouseQuery","getStockByItemId","vat","itemAmountWithoutVat","purchaseAmountWithoutVat","radius","vatProcent","valWithoutVat1","totalAmountWithoutVat","totalAmountWithVat","valWithoutVat2","valWithoutVat","valWithoutVat3","valWithoutVat4","calculatePostionPrice","getColumnValue","totalPriceWithoutVat","totalPriceWithVat","totalAmountDiscount","vatsAmount","vatRate","iDiscountProcent","iDiscountAmount","tmpTotalPriceWithVat","totalVat","itemPriceWithoutVat","tmpAmountForVats","amount","itemGoods","itemAll","stockQuantity","addRows","amountVat","DocumentEditForm","formTranslate","saveDocument","setCustomer","warehouse2","setWarehouse2","errorCustomer","setErrorCustomer","errorSupplier","setErrorSupplier","errorWarehouseId","setErrorWarehouseId","errorWarehouse2Id","setErrorWarehouse2Id","setDiscountProcent","setDiscountAmount","doRecalculate","doSave","linkedDocument2","objValid","paymentDeadlineNumDays","checkIfOtherDocumentNumberYetExist","DocumentEditSchema","supplier","warehouse2Id","note","note2","DocumentEditDialog","sendToDocument","sendToDocumentType","initDocument","DocumentDeleteDialog","deleteFromTranslate","areYouSure","ItemAreDeleting","cancel","storno","DocumentsPrintDialog","DocumentsPrintStornoDialog","getStyles","fontWeight","fontWeightRegular","fontWeightMedium","MultiSelectCashier","useTheme","getCashierById","tmpCashiers","getCashiers","multiple","input","renderValue","selected","Chip","DocumentsFilter","useCookies","cookies","selectCashiers","getSelectCashiers","selectedCashiers","setSelectedCashiers","fromDt","toDt","cashierIds","nextYear","setFullYear","expires","openEditDocumentDialog","openDeleteDocumentDialog","printDocumentDialog","historyDocumentDialog","print","documentStornoId","linkedDocumentIds","AmountForPaymentColumnFormatter","StornoTalkingNumberColumnFormatter","printStornoDocumentsDialog","LinkedDocumentColumnFormatter","linkedDocumentTalkingNumbers","pop","DateTimeColumnFormatter","DocumentsTable","printDocumentsDialog","gridColumnsVisible","fiscalCashierBusinessUnitTitle","documentTypeTitle","customerName","dateTime","creatorId","creatorTitle","endId","endTalkingNumber","documentStornoTalkingNumber","payments","DocumentsGrouping","copyDocumentButtonClick","sendDocumentsToDeliveryNoteDialog","sendDocumentsToDeliveryNoteInvoiceDialog","createEInvoiceButtonClick","createESlogButtonClick","checkIfDocumentsFromSameCustomerAndLinkedDocuments","isSelectedId","success","txtIds","DocumentsCard","TakeoversPage","takeoversUIEvents","amountOfPayment","organizationCubic","InventoriesPage","WriteoffsPage","writeoffsUIEvents","InternalStockTransfersPage","internalStockTransfersUIEvents","OwnConsumptionsPage","ownConsumptionsUIEvents","RefundsPage","refundsUIEvents","ProductionOrdersPage","productionOrdersUIEvents","PurchasePage","OffersPage","DeliveryNotesPage","DocumentHistoryDialogHeader","historyHeader","UserColumnFormatter","DocumentHistoryTable","DocumentHistoryDialog","InvoicesPage","CreditsPage","ExpensesPage","ReceiptsPage","DeliveryNoteInvoicesPage","EndsLoadingDialog","EndsUIContext","useEndsUIContext","EndsUIProvider","endsUIEvents","initEnd","EndsFilter","endsUIContext","endsUIProps","fetchEnds","AmountFormatter","FirstLastTalkingNumberFormatter","documentStart","documentEnd","EndsTable","openEditEndDialog","openDeleteEndDialog","EndsGrouping","EndsCard","newEndButtonClick","EndsPrintDialog","EndsPage","SalesPage","ReportByDayPage","ReportTdrPage","ReportByItemGroupPage","ReportByItemPage","ReportByUserPage","ReportByDayHourPage","ReportByDeliveryNotesByDatePage","ReportByPaymentByDatePage","ReportTrafficByHourPage","ReportPurchaseItemBySuppliersPage","supplierText","setSupplierText","supplierText1","setSupplierText1","intervalSupplierText","setIntervalSupplierText","itemText","setItemText","itemText1","setItemText1","intervalItemText","setIntervalItemText","ReportSalesItemByUsersPage","userText","setUserText","userText1","setUserText1","intervalUserText","setIntervalUserText","ReportProfitPage","ReportByCustomers","customerText","setCustomerText","customerText1","setCustomerText1","intervalCustomerText","setIntervalCustomerText","talkingNumberText","setTalkingNumberText","talkingNumberText1","setTalkingNumberText1","intervalTalkingNumberText","setIntervalTalkingNumberText","ReportJigsaw","purchaseItemText","setPurchaseItemText","purchaseItemText1","setPurchaseItemText1","intervalPurchaseItemText","setIntervalPurchaseItemText","salesItemText","setSalesItemText","salesItemText1","setSalesItemText1","intervalSalesItemText","setIntervalSalesItemText","ReportSpentItemsAndPpPage","ReportSellBySuppliersPage","ReportStockItemsPage","SelectDocumentType","ReportByDocumentsPage","documentTypeId","setDocumentTypeId","ReportByUsersByPaymentsPage","ReportJigsawProfitPage","ReportSalesByUsersByItemgroupsPage","ReportByOwnConsumptionsPage","ReportSpentItemsPage","ReportFirstLastInvoiceByUsersPage","ReportPricelistPage","ReportProfitJigsawWithVatPage","ReportItemStockFifoPage","ReportSalesItemsByDatePage","ReportRvcByItemGroupsPage","ReportVatCalculatorPage","ReportSalesItemsByHourPage","ReportDeliveryNotesByCustomersPage","ReportPage","BasePage","SettingPage","username","injectIntl","connect","LoginSchema","disableLoading","setName","accessKey","ExportSchema","UrlParams","qs","substr","parseQuerstring","a","b","alertClassName","setAlertClassName","showForm","setShowForm","ResetPasswordSchema","resetPassword","firstname","lastname","acceptTerms","setTaxDuty","setTaxNumber","setAddress","setPostCode","setPostTitle","RegistrationSchema","matches","findByTaxCode","rel","setIsRequested","ForgotPasswordSchema","AuthPage","Login","Registration","Export","ForgotPassword","ResetPassword","Logout","hasAuthToken","Boolean","ErrorPage1","ErrorPage2","ErrorPage3","ErrorPage4","ErrorPage5","ErrorPage6","marginTop","ErrorsPage","Routes","isAuthorized","Relogin","App","basename","Suspense","request","headers","Authorization","err","_redux","ReactDOM","getCookie","cookie","decodeURIComponent","toUTCString","updatedCookie","encodeURIComponent","optionKey","hasOwnProperty","optionValue","deleteCookie","exports","elementId","the","defaultOptions","attrCustom","Plugin","construct","has","build","set","events","deepExtend","classBase","classShown","classOverlay","isShown","eventTrigger","toggleClass","classCustom","insertAfter","removeAttr","args","one","call","fired","setDefaults","apply","getByTagName","querySelectorAll","len","closest","parentNode","getSubmenuMode","hideDropdowns","autoScroll","autoScrollSpeed","eventHandlers","pauseDropdownHoverTime","uid","getUniqueID","resetSubmenuProps","handleSubmenuAccordion","isConditionalSubmenuDropdown","handleSubmenuDrodownHoverEnter","handleSubmenuDrodownHoverExit","handleSubmenuDropdownClick","handleSubmenuDropdownTabClick","handleLinkClick","off","scrollDestroy","windowScroll","hasAttr","isset","hasClasses","submenus","findAll","hasAttribute","getAttribute","resumeDropdownHover","removeAttribute","showSubmenuDropdown","hideSubmenuDropdown","setAttribute","hideSubmenuDropdowns","handleSubmenuDropdownClose","shown","li","child","subnav","closables","el_","submenu_","slideUp","slideDown","scrollToItem","scrollTo","classAlso","j","cnt","isOffscreen","createSubmenuDropdownClickDropoff","dropoff","appendChild","stopPropagation","resetActiveItem","parents","i_","len_","setActiveItem","getBreadcrumbs","submenuLink","reverse","getPageTitle","removeEvent","scrollReInit","hideDropdown","toggleElement","targetElement","targetToggleMode","toggleOn","toggleOff","Element","prototype","msMatchesSelector","webkitMatchesSelector","s","ancestor","documentElement","parentElement","elem","removeChild","lastTime","vendors","requestAnimationFrame","cancelAnimationFrame","callback","currTime","timeToCall","Document","DocumentFragment","defineProperty","configurable","enumerable","writable","argArr","arguments","docFrag","createDocumentFragment","argItem","isNode","Node","createTextNode","insertBefore","firstChild","getAttributeNames","KTUtilElementDataStore","KTUtilElementDataStoreID","KTUtilDelegatedEventHandlers","resizeHandlers","_windowResizeHandler","throttle","_runResizeHandlers","settings","removeResizeHandler","runResizeHandlers","resize","Event","dispatchEvent","evt","createEvent","initUIEvent","getURLParam","paramName","substring","unescape","getBreakpoint","navigator","userAgent","isDesktopDevice","isInResponsiveRange","breakpoint","prefix","random","stone","Error","shift","getHighestZindex","isNaN","hasFixedPositionedParent","sleep","milliseconds","getRandomInt","isAngularVersion","Zone","out","extend","getByTag","getElementsByTagName","getByClass","classesArr","classNames","triggerCustomEvent","eventName","CustomEvent","detail","initCustomEvent","triggerEvent","doc","ownerDocument","nodeType","eventClass","bubbles","initEvent","synthetic","fireEvent","createEventObject","c","string","eventTriggered","dataset","triggered","parent","referenceNode","nextSibling","selector","matchesSelector","mozMatchesSelector","oMatchesSelector","log","childNodes","l","f","customDataTag","outerWidth","offsetWidth","rect","win","getClientRects","getBoundingClientRect","defaultView","pageYOffset","pageXOffset","outerHeight","withMargin","marginBottom","duration","easing","done","easings","linear","d","rAF","change","performance","loop","timestamp","actualCss","prop","HTMLElement","cssText","actualWidth","getScroll","method","browserSupportsBoxModel","styleProp","getPropertyValue","currentStyle","str","letter","toUpperCase","oldLeft","oldRsLeft","runtimeStyle","pixelLeft","slide","dir","recalcMaxHeight","calcHeight","calcPaddingTop","calcPaddingBottom","paddingTop","paddingBottom","overflow","eventId","targets","callee","hash","charCodeAt","animateClass","animationName","animations","OAnimation","MozAnimation","WebkitAnimation","msAnimation","transitionEnd","transition","transitions","OTransition","MozTransition","WebkitTransition","msTransition","animationEnd","animateDelay","animateDuration","targetPos","scrollPos","attachEvent","readyState","isEmpty","numberString","nStr","x1","x2","rgx","detectIE","ua","msie","rv","edge","isRTL","html","wheelSpeed","swipeEasing","wheelPropagation","minScrollbarLength","maxScrollbarLength","suppressScrollX","ps","attrs","attrName","optionName","filterBoolean","Function","mobileHeight","desktopNativeScroll","PerfectScrollbar","destroy","scrollUpdateAll","scrollers","resetAll","setProperty","setHTML","getHTML","getDocumentHeight","scrollHeight","clientHeight","getScrollTop","scrollingElement","changeColor","col","amt","usePound","r","g","func","delay","debounce","btnWait","cls","disable","caption","btnRelease","windowWidth","KTAppSettings","onload","toggleSpeed","releseOnReverse","onScrollSticky","st","resetSticky","setContent","getSelf","expand","collapse","destroySticky","handle"],"mappings":"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","file":"static/js/main.365cda0d.chunk.js","sourcesContent":["import axios from \"axios\";\r\n\r\nexport function login(username, password) {\r\n return axios.post(\"/api/account/login\", { username, password });\r\n}\r\n\r\nexport function logot() {\r\n return axios.get(\"/api/account/logout\");\r\n}\r\n\r\nexport function register(firstname, lastname, taxcode, phone, email, username, password) {\r\n return axios.post(\"/api/account/register\", { firstname, lastname, taxcode, phone, email, username, password });\r\n}\r\n\r\nexport function requestPassword(email) {\r\n return axios.post(\"/api/account/forgot-password\", { email });\r\n}\r\n\r\nexport function getUserByToken() {\r\n // Authorization head should be fulfilled in interceptor.\r\n return axios.get(\"/api/account/me\");\r\n}\r\n\r\nexport function findByTaxCode(taxcode) {\r\n return axios.post(\"/api/customer/FindByTaxCode\", { taxcode });\r\n}\r\n\r\nexport function checkIfUserNameIsFree(userName) {\r\n return axios.post(\"/api/account/CheckIfUserNameIsFree\", { userName });\r\n}\r\n\r\nexport function createAccountExistTaxNumber(taxcode) {\r\n return axios.post(\"/api/account/CreateAccountExistTaxNumber\", { taxcode });\r\n}\r\n\r\nexport function forgotPassword(userName) {\r\n return axios.post(\"/api/account/forgotPassword\", { userName });\r\n}\r\n\r\nexport function resetPassword(userId, code, username, password) {\r\n return axios.post(\"/api/account/resetPassword\", { userId, code, username, password });\r\n}\r\n","import { persistReducer } from \"redux-persist\";\r\nimport storage from \"redux-persist/lib/storage\";\r\nimport { put, takeLatest } from \"redux-saga/effects\";\r\nimport { getUserByToken } from \"./authCrud\";\r\n\r\nexport const actionTypes = {\r\n Login: \"[Login] Action\",\r\n Logout: \"[Logout] Action\",\r\n Register: \"[Register] Action\",\r\n UserRequested: \"[Request User] Action\",\r\n UserLoaded: \"[Load User] Auth API\"\r\n};\r\n\r\nconst initialAuthState = {\r\n user: undefined,\r\n authToken: undefined\r\n};\r\n\r\nexport const reducer = persistReducer(\r\n { storage, key: \"v711-demo1-auth\", whitelist: [\"user\", \"authToken\"] },\r\n (state = initialAuthState, action) => {\r\n switch (action.type) {\r\n case actionTypes.Login: {\r\n const { authToken } = action.payload;\r\n\r\n return { authToken, user: undefined };\r\n }\r\n\r\n case actionTypes.Register: {\r\n const { authToken } = action.payload;\r\n\r\n return { authToken, user: undefined };\r\n }\r\n\r\n case actionTypes.Logout: {\r\n // TODO: Change this code. Actions in reducer aren't allowed.\r\n return initialAuthState;\r\n }\r\n\r\n case actionTypes.UserLoaded: {\r\n const { user } = action.payload;\r\n return { ...state, user };\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n }\r\n);\r\n\r\nexport const actions = {\r\n login: authToken => ({ type: actionTypes.Login, payload: { authToken } }),\r\n register: authToken => ({\r\n type: actionTypes.Register,\r\n payload: { authToken }\r\n }),\r\n logout: () => ({ type: actionTypes.Logout }),\r\n requestUser: user => ({ type: actionTypes.UserRequested, payload: { user } }),\r\n fulfillUser: user => ({ type: actionTypes.UserLoaded, payload: { user } })\r\n};\r\n\r\nexport function* saga() {\r\n yield takeLatest(actionTypes.Login, function* loginSaga() {\r\n yield put(actions.requestUser());\r\n });\r\n\r\n yield takeLatest(actionTypes.Register, function* registerSaga() {\r\n yield put(actions.requestUser());\r\n });\r\n\r\n yield takeLatest(actionTypes.UserRequested, function* userRequested() {\r\n const { data: user } = yield getUserByToken();\r\n yield put(actions.fulfillUser(user));\r\n });\r\n}\r\n","import {createSlice} from \"@reduxjs/toolkit\";\r\n\r\nconst initialUsersState = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n totalCount: 0,\r\n entities: null,\r\n userForEdit: undefined,\r\n lastError: null\r\n};\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\nexport const usersSlice = createSlice({\r\n name: \"users\",\r\n initialState: initialUsersState,\r\n reducers: {\r\n catchError: (state, action) => {\r\n state.error = `${action.type}: ${action.payload.error}`;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = false;\r\n } else {\r\n state.actionsLoading = false;\r\n }\r\n },\r\n startCall: (state, action) => {\r\n state.error = null;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = true;\r\n } else {\r\n state.actionsLoading = true;\r\n }\r\n },\r\n // getUserById\r\n userFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.userForEdit = action.payload.userForEdit;\r\n state.error = null;\r\n },\r\n // findUsers\r\n usersFetched: (state, action) => {\r\n const { totalCount, entities } = action.payload;\r\n state.listLoading = false;\r\n state.error = null;\r\n state.entities = entities;\r\n state.totalCount = totalCount;\r\n },\r\n // createUser\r\n userCreated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n state.entities.push(action.payload.model);\r\n state.totalCount++;\r\n },\r\n // updateUser\r\n userUpdated: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.map(entity => {\r\n if (entity.id === action.payload.user.id) {\r\n return action.payload.user;\r\n }\r\n return entity;\r\n });\r\n },\r\n // deleteUser\r\n userDeleted: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.filter(el => el.id !== action.payload.id);\r\n },\r\n // deleteUsers\r\n usersDeleted: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.filter(\r\n el => !action.payload.ids.includes(el.id)\r\n );\r\n },\r\n // usersUpdateState\r\n usersStatusUpdated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n const { ids, status } = action.payload;\r\n state.entities = state.entities.map(entity => {\r\n if (ids.findIndex(id => id === entity.id) > -1) {\r\n entity.status = status;\r\n }\r\n return entity;\r\n });\r\n },\r\n // findUserRoles\r\n userRolesFetched: (state, action) => {\r\n const { entities } = action.payload;\r\n state.listLoading = false;\r\n state.error = null;\r\n state.userRoles = entities;\r\n },\r\n // findCashiers\r\n cashiersFetched: (state, action) => {\r\n const { entities } = action.payload;\r\n state.listLoading = false;\r\n state.error = null;\r\n state.cashiers = entities;\r\n }\r\n }\r\n});\r\n","import {createSlice} from \"@reduxjs/toolkit\";\r\n\r\nconst initialOfficeUsersState = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n totalCount: 0,\r\n entities: null,\r\n officeUserForEdit: undefined,\r\n error: null\r\n};\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\nexport const officeUsersSlice = createSlice({\r\n name: \"officeUsers\",\r\n initialState: initialOfficeUsersState,\r\n reducers: {\r\n catchError: (state, action) => {\r\n state.error = `${action.type}: ${action.payload.error}`;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = false;\r\n } else {\r\n state.actionsLoading = false;\r\n }\r\n },\r\n startCall: (state, action) => {\r\n state.error = null;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = true;\r\n } else {\r\n state.actionsLoading = true;\r\n }\r\n },\r\n // getUserById\r\n officeUserFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.officeUserForEdit = action.payload.officeUserForEdit;\r\n state.error = null;\r\n },\r\n // findUsers\r\n officeUsersFetched: (state, action) => {\r\n const { totalCount, entities } = action.payload;\r\n state.listLoading = false;\r\n state.error = null;\r\n state.entities = entities;\r\n state.totalCount = totalCount;\r\n },\r\n // createUser\r\n officeUserCreated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n state.entities.push(action.payload.model);\r\n state.totalCount++;\r\n\r\n },\r\n // updateUser\r\n officeUserUpdated: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.map(entity => {\r\n if (entity.id === action.payload.officeUser.id) {\r\n return action.payload.officeUser;\r\n }\r\n return entity;\r\n });\r\n },\r\n // deleteUser\r\n officeUserDeleted: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.filter(el => el.id !== action.payload.id);\r\n },\r\n // deleteUsers\r\n officeUsersDeleted: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.filter(\r\n el => !action.payload.ids.includes(el.id)\r\n );\r\n },\r\n // usersUpdateState\r\n officeUsersStatusUpdated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n const { ids, status } = action.payload;\r\n state.entities = state.entities.map(entity => {\r\n if (ids.findIndex(id => id === entity.id) > -1) {\r\n entity.status = status;\r\n }\r\n return entity;\r\n });\r\n },\r\n // findUserRoles\r\n userRolesFetched: (state, action) => {\r\n const { entities } = action.payload;\r\n state.listLoading = false;\r\n state.error = null;\r\n state.userRoles = entities;\r\n },\r\n }\r\n});\r\n","import {createSlice} from \"@reduxjs/toolkit\";\r\n\r\nconst initialUserRolesState = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n totalCount: 0,\r\n entities: null,\r\n userRoleForEdit: undefined,\r\n userFunctionalities: undefined,\r\n lastError: null,\r\n deleteResult : null\r\n};\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\nexport const userRolesSlice = createSlice({\r\n name: \"userRoles\",\r\n initialState: initialUserRolesState,\r\n reducers: {\r\n catchError: (state, action) => {\r\n state.error = `${action.type}: ${action.payload.error}`;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = false;\r\n } else {\r\n state.actionsLoading = false;\r\n }\r\n },\r\n startCall: (state, action) => {\r\n state.error = null;\r\n state.deleteResult = null;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = true;\r\n } else {\r\n state.actionsLoading = true;\r\n }\r\n },\r\n // getUserRoleById\r\n userRoleFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.userRoleForEdit = action.payload.userRoleForEdit;\r\n state.error = null;\r\n },\r\n // userFunctionalities\r\n userFunctionalitiesFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.userFunctionalities = action.payload.userFunctionalities;\r\n state.error = null;\r\n },\r\n // findUserRoles\r\n userRolesFetched: (state, action) => {\r\n const { totalCount, entities } = action.payload;\r\n state.listLoading = false;\r\n state.error = null;\r\n state.entities = entities;\r\n state.totalCount = totalCount;\r\n },\r\n // createUserRole\r\n userRoleCreated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n state.entities.push(action.payload.model);\r\n },\r\n // updateUserRole\r\n userRoleUpdated: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.map(entity => {\r\n if (entity.id === action.payload.userRole.id) {\r\n return action.payload.userRole;\r\n }\r\n return entity;\r\n });\r\n },\r\n // deleteUserRole\r\n userRoleDeleted: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.deleteResult = action.payload.model;\r\n if (action.payload.model == true) {\r\n state.entities = state.entities.filter(el => el.id !== action.payload.id);\r\n }\r\n },\r\n }\r\n});\r\n","import {createSlice} from \"@reduxjs/toolkit\";\r\n\r\nconst initialCodeListsState = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n totalCount: 0,\r\n entities: null,\r\n codeListForEdit: undefined,\r\n userFunctionalities: undefined,\r\n lastError: null,\r\n deleteResult : null\r\n};\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\nexport const codeListsSlice = createSlice({\r\n name: \"codeLists\",\r\n initialState: initialCodeListsState,\r\n reducers: {\r\n catchError: (state, action) => {\r\n state.error = `${action.type}: ${action.payload.error}`;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = false;\r\n } else {\r\n state.actionsLoading = false;\r\n }\r\n },\r\n startCall: (state, action) => {\r\n state.error = null;\r\n state.deleteResult = null;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = true;\r\n } else {\r\n state.actionsLoading = true;\r\n }\r\n },\r\n // getCodeListById\r\n codeListFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.codeListForEdit = action.payload.codeListForEdit;\r\n state.error = null;\r\n },\r\n // codeListSchemasFetched\r\n codeListSchemasFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.codelistSchemas = action.payload.codelistSchemas;\r\n state.error = null;\r\n },\r\n // findCodeLists\r\n codeListsFetched: (state, action) => {\r\n const { totalCount, entities } = action.payload;\r\n state.listLoading = false;\r\n state.error = null;\r\n state.entities = entities;\r\n state.totalCount = totalCount;\r\n },\r\n // createCodeList\r\n codeListCreated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n state.entities.push(action.payload.model);\r\n },\r\n // updateCodeList\r\n codeListUpdated: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.map(entity => {\r\n if (entity.id === action.payload.codeList.id) {\r\n return action.payload.codeList;\r\n }\r\n return entity;\r\n });\r\n }\r\n }\r\n});\r\n","import {createSlice} from \"@reduxjs/toolkit\";\r\n\r\nconst initialCustomersState = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n totalCount: 0,\r\n entities: null,\r\n customerForEdit: undefined,\r\n lastError: null\r\n};\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\nexport const customersSlice = createSlice({\r\n name: \"customers\",\r\n initialState: initialCustomersState,\r\n reducers: {\r\n catchError: (state, action) => {\r\n state.error = `${action.type}: ${action.payload.error}`;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = false;\r\n } else {\r\n state.actionsLoading = false;\r\n }\r\n },\r\n startCall: (state, action) => {\r\n state.error = null;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = true;\r\n } else {\r\n state.actionsLoading = true;\r\n }\r\n },\r\n // getCustomerById\r\n customerFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.customerForEdit = action.payload.customerForEdit;\r\n state.error = null;\r\n },\r\n // findCustomers\r\n customersFetched: (state, action) => {\r\n const { totalCount, entities } = action.payload;\r\n state.listLoading = false;\r\n state.error = null;\r\n state.entities = entities;\r\n state.totalCount = totalCount;\r\n },\r\n // createCustomer\r\n customerCreated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n state.entities.push(action.payload.model);\r\n state.totalCount++;\r\n },\r\n // updateCustomer\r\n customerUpdated: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.map(entity => {\r\n if (entity.id === action.payload.customer.id) {\r\n return action.payload.customer;\r\n }\r\n return entity;\r\n });\r\n },\r\n // deleteCustomer\r\n customerDeleted: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.filter(el => el.id !== action.payload.id);\r\n },\r\n // deleteCustomers\r\n customersDeleted: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.filter(\r\n el => !action.payload.ids.includes(el.id)\r\n );\r\n },\r\n }\r\n});\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\n\r\nconst initialOrganizationState = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n organizationForEdit: undefined,\r\n fiscalDigitalCertificateForEdit: undefined,\r\n lastError: null,\r\n};\r\n\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\nexport const yourCompanySlice = createSlice({\r\n name: \"organization\",\r\n initialState: initialOrganizationState,\r\n reducers: {\r\n catchError: (state, action) => {\r\n state.error = `${action.type}: ${action.payload.error}`;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = false;\r\n } else {\r\n state.actionsLoading = false;\r\n }\r\n },\r\n startCall: (state, action) => {\r\n state.error = null;\r\n state.deleteResult = null;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = true;\r\n } else {\r\n state.actionsLoading = true;\r\n }\r\n },\r\n organizationFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.organizationForEdit = action.payload.organizationForEdit;\r\n state.error = null;\r\n },\r\n organizationUpdated: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.organizationForEdit = action.payload.organization;\r\n },\r\n fiscalDigitalCertificateFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.fiscalDigitalCertificateForEdit = action.payload.fiscalDigitalCertificateForEdit;\r\n state.error = null;\r\n }\r\n }\r\n});\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\n\r\nconst initialProfileState = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n profileForEdit: undefined,\r\n lastError: null,\r\n};\r\n\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\nexport const yourProfileSlice = createSlice({\r\n name: \"profile\",\r\n initialState: initialProfileState,\r\n reducers: {\r\n catchError: (state, action) => {\r\n state.error = `${action.type}: ${action.payload.error}`;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = false;\r\n } else {\r\n state.actionsLoading = false;\r\n }\r\n },\r\n startCall: (state, action) => {\r\n state.error = null;\r\n state.deleteResult = null;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = true;\r\n } else {\r\n state.actionsLoading = true;\r\n }\r\n },\r\n profileFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.profileForEdit = action.payload.profileForEdit;\r\n state.error = null;\r\n },\r\n profileUpdated: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.profileForEdit = action.payload.profile;\r\n }\r\n }\r\n});\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialOrganizationsState = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n totalCount: 0,\r\n entities: null,\r\n officeUserForEdit: undefined,\r\n error: null\r\n};\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\nexport const organizationsSlice = createSlice({\r\n name: \"organizations\",\r\n initialState: initialOrganizationsState,\r\n reducers: {\r\n catchError: (state, action) => {\r\n state.error = `${action.type}: ${action.payload.error}`;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = false;\r\n } else {\r\n state.actionsLoading = false;\r\n }\r\n },\r\n startCall: (state, action) => {\r\n state.error = null;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = true;\r\n } else {\r\n state.actionsLoading = true;\r\n }\r\n },\r\n // getOrganizationById\r\n organizationFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.organizationForEdit = action.payload.organizationForEdit;\r\n state.error = null;\r\n },\r\n // findOrganizations\r\n organizationsFetched: (state, action) => {\r\n const { totalCount, entities } = action.payload;\r\n state.listLoading = false;\r\n state.error = null;\r\n state.entities = entities;\r\n state.totalCount = totalCount;\r\n },\r\n // update organization\r\n organizationUpdated: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.map(entity => {\r\n if (entity.id === action.payload.organization.id) {\r\n return action.payload.organization;\r\n }\r\n return entity;\r\n });\r\n }\r\n }\r\n});\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialActiveUsersState = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n totalCount: 0,\r\n entities: null,\r\n error: null,\r\n token: null\r\n};\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\nexport const activeUsersSlice = createSlice({\r\n name: \"activeUsers\",\r\n initialState: initialActiveUsersState,\r\n reducers: {\r\n catchError: (state, action) => {\r\n state.error = `${action.type}: ${action.payload.error}`;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = false;\r\n } else {\r\n state.actionsLoading = false;\r\n }\r\n },\r\n startCall: (state, action) => {\r\n state.error = null;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = true;\r\n } else {\r\n state.actionsLoading = true;\r\n }\r\n },\r\n // findActiveUsers\r\n activeUsersFetched: (state, action) => {\r\n const { totalCount, entities } = action.payload;\r\n state.listLoading = false;\r\n state.error = null;\r\n state.entities = entities;\r\n state.totalCount = totalCount;\r\n },\r\n loginFetched: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.token = action.payload.token;\r\n }\r\n }\r\n});\r\n","import {createSlice} from \"@reduxjs/toolkit\";\r\n\r\nconst initialItemGroupsState = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n totalCount: 0,\r\n entities: null,\r\n itemGroupForEdit: undefined,\r\n lastError: null\r\n};\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\nexport const itemGroupsSlice = createSlice({\r\n name: \"itemGroups\",\r\n initialState: initialItemGroupsState,\r\n reducers: {\r\n catchError: (state, action) => {\r\n state.error = `${action.type}: ${action.payload.error}`;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = false;\r\n } else {\r\n state.actionsLoading = false;\r\n }\r\n },\r\n startCall: (state, action) => {\r\n state.error = null;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = true;\r\n } else {\r\n state.actionsLoading = true;\r\n }\r\n },\r\n // getItemGroupById\r\n itemGroupFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.itemGroupForEdit = action.payload.itemGroupForEdit;\r\n state.error = null;\r\n },\r\n // findItemGroups\r\n itemGroupsFetched: (state, action) => {\r\n const { totalCount, entities } = action.payload;\r\n state.listLoading = false;\r\n state.error = null;\r\n state.entities = entities;\r\n state.totalCount = totalCount;\r\n },\r\n // createItemGroup\r\n itemGroupCreated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n state.entities.push(action.payload.model);\r\n state.totalCount++;\r\n },\r\n // updateItemGroup\r\n itemGroupUpdated: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.map(entity => {\r\n if (entity.id === action.payload.itemGroup.id) {\r\n return action.payload.itemGroup;\r\n }\r\n return entity;\r\n });\r\n },\r\n // deleteItemGroup\r\n itemGroupDeleted: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.filter(el => el.id !== action.payload.id);\r\n },\r\n // deleteItemGroups\r\n itemGroupsDeleted: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.filter(\r\n el => !action.payload.ids.includes(el.id)\r\n );\r\n },\r\n }\r\n});\r\n","import {createSlice} from \"@reduxjs/toolkit\";\r\n\r\nconst initialItemsState = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n totalCount: 0,\r\n entities: null,\r\n itemForEdit: undefined,\r\n pricelistForEdit: undefined,\r\n pricelists: undefined,\r\n pricelistsRemove: undefined,\r\n lastError: null,\r\n currentVatRateId: null,\r\n jigsawForEdit: undefined,\r\n jigsaws: undefined,\r\n jigsawsRemove: undefined\r\n};\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\nexport const itemsSlice = createSlice({\r\n name: \"items\",\r\n initialState: initialItemsState,\r\n reducers: {\r\n catchError: (state, action) => {\r\n state.error = `${action.type}: ${action.payload.error}`;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = false;\r\n } else {\r\n state.actionsLoading = false;\r\n }\r\n },\r\n startCall: (state, action) => {\r\n state.error = null;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = true;\r\n } else {\r\n state.actionsLoading = true;\r\n }\r\n },\r\n // getItemById\r\n itemFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.itemForEdit = action.payload.itemForEdit;\r\n state.error = null;\r\n },\r\n // findItems\r\n itemsFetched: (state, action) => {\r\n const { totalCount, entities } = action.payload;\r\n state.listLoading = false;\r\n state.error = null;\r\n state.entities = entities;\r\n state.totalCount = totalCount;\r\n },\r\n // createItem\r\n itemCreated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n state.entities.push(action.payload.model);\r\n state.totalCount++;\r\n },\r\n // updateItem\r\n itemUpdated: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.map(entity => {\r\n if (entity.id === action.payload.item.id) {\r\n return action.payload.item;\r\n }\r\n return entity;\r\n });\r\n },\r\n // deleteItem\r\n itemDeleted: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.filter(el => el.id !== action.payload.id);\r\n },\r\n // deleteItems\r\n itemsDeleted: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.filter(\r\n el => !action.payload.ids.includes(el.id)\r\n );\r\n },\r\n setCurrentVatRateId: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.currentVatRateId = action.payload.currentVatRateId;\r\n },\r\n setPricelists: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.pricelists = action.payload.pricelists;\r\n },\r\n setPricelistsRemove: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.pricelistsRemove = action.payload.pricelistsRemove;\r\n },\r\n setPricelistForEdit: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.pricelistForEdit = action.payload.pricelistForEdit;\r\n },\r\n setJigsaws: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.jigsaws = action.payload.jigsaws;\r\n },\r\n setJigsawsRemove: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.jigsawsRemove = action.payload.jigsawsRemove;\r\n },\r\n setJigsawForEdit: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.jigsawForEdit = action.payload.jigsawForEdit;\r\n },\r\n }\r\n});\r\n","import {createSlice} from \"@reduxjs/toolkit\";\r\n\r\nconst initialEndsState = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n totalCount: 0,\r\n entities: null,\r\n endForEdit: undefined,\r\n lastError: null\r\n};\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\nexport const endsSlice = createSlice({\r\n name: \"ends\",\r\n initialState: initialEndsState,\r\n reducers: {\r\n catchError: (state, action) => {\r\n state.error = `${action.type}: ${action.payload.error}`;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = false;\r\n } else {\r\n state.actionsLoading = false;\r\n }\r\n },\r\n startCall: (state, action) => {\r\n state.error = null;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = true;\r\n } else {\r\n state.actionsLoading = true;\r\n }\r\n },\r\n // getEndById\r\n endFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.endForEdit = action.payload.endForEdit;\r\n state.error = null;\r\n },\r\n // findEnds\r\n endsFetched: (state, action) => {\r\n const { totalCount, entities } = action.payload;\r\n state.listLoading = false;\r\n state.error = null;\r\n state.entities = entities;\r\n state.totalCount = totalCount;\r\n },\r\n // createEnd\r\n endCreated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n state.entities.push(action.payload.model);\r\n state.totalCount++;\r\n },\r\n // updateEnd\r\n endUpdated: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.map(entity => {\r\n if (entity.id === action.payload.end.id) {\r\n return action.payload.end;\r\n }\r\n return entity;\r\n });\r\n },\r\n // deleteEnd\r\n endDeleted: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.filter(el => el.id !== action.payload.id);\r\n },\r\n // deleteEnds\r\n endsDeleted: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.filter(\r\n el => !action.payload.ids.includes(el.id)\r\n );\r\n },\r\n }\r\n});\r\n","import {createSlice} from \"@reduxjs/toolkit\";\r\n\r\nconst initialCashiersState = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n totalCount: 0,\r\n entities: null,\r\n cashierForEdit: undefined,\r\n pricelistForEdit: undefined,\r\n pricelists: undefined,\r\n pricelistsRemove: undefined,\r\n lastError: null,\r\n currentVatRateId: null,\r\n jigsawForEdit: undefined,\r\n jigsaws: undefined,\r\n jigsawsRemove: undefined\r\n};\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\nexport const cashiersSlice = createSlice({\r\n name: \"cashiers\",\r\n initialState: initialCashiersState,\r\n reducers: {\r\n catchError: (state, action) => {\r\n state.error = `${action.type}: ${action.payload.error}`;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = false;\r\n } else {\r\n state.actionsLoading = false;\r\n }\r\n },\r\n startCall: (state, action) => {\r\n state.error = null;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = true;\r\n } else {\r\n state.actionsLoading = true;\r\n }\r\n },\r\n // getCashierById\r\n cashierFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.cashierForEdit = action.payload.cashierForEdit;\r\n state.error = null;\r\n },\r\n // findCashiers\r\n cashiersFetched: (state, action) => {\r\n const { totalCount, entities } = action.payload;\r\n state.listLoading = false;\r\n state.error = null;\r\n state.entities = entities;\r\n state.totalCount = totalCount;\r\n },\r\n // createCashier\r\n cashierCreated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n state.entities.push(action.payload.model);\r\n state.totalCount++;\r\n },\r\n // updateCashier\r\n cashierUpdated: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.map(entity => {\r\n if (entity.id === action.payload.cashier.id) {\r\n return action.payload.cashier;\r\n }\r\n return entity;\r\n });\r\n },\r\n // deleteCashier\r\n cashierDeleted: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.filter(el => el.id !== action.payload.id);\r\n },\r\n // deleteCashiers\r\n cashiersDeleted: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.filter(\r\n el => !action.payload.ids.includes(el.id)\r\n );\r\n }\r\n }\r\n});\r\n","import {createSlice} from \"@reduxjs/toolkit\";\r\n\r\nconst initialCacheState = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n vatRates: undefined,\r\n itemTypes: undefined,\r\n units: undefined,\r\n officeReports: undefined,\r\n initStepTutorial: undefined,\r\n documentTypes: undefined,\r\n lastError: null\r\n};\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\nexport const cacheSlice = createSlice({\r\n name: \"cache\",\r\n initialState: initialCacheState,\r\n reducers: {\r\n catchError: (state, action) => {\r\n state.error = `${action.type}: ${action.payload.error}`;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = false;\r\n } else {\r\n state.actionsLoading = false;\r\n }\r\n },\r\n startCall: (state, action) => {\r\n state.error = null;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = true;\r\n } else {\r\n state.actionsLoading = true;\r\n }\r\n },\r\n allVatRatesFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.vatRates = action.payload;\r\n state.error = null;\r\n },\r\n allItemTypesFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.itemTypes = action.payload;\r\n state.error = null;\r\n },\r\n allUnitsFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.units = action.payload;\r\n state.error = null;\r\n },\r\n allCashiersFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.cashiers = action.payload;\r\n state.error = null;\r\n },\r\n allOfficeReportsFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.officeReports = action.payload;\r\n state.error = null;\r\n },\r\n initStepTutorialsFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.initStepTutorial = action.payload;\r\n state.error = null;\r\n },\r\n allDocumentTypesFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.documentTypes = action.payload;\r\n state.error = null;\r\n }\r\n }\r\n});\r\n","import {createSlice} from \"@reduxjs/toolkit\";\r\n\r\nconst initialDocumentsState = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n totalCount: 0,\r\n entities: null,\r\n historyTotalCount:0,\r\n historyEntities: null,\r\n documentForEdit: undefined,\r\n lastError: null\r\n};\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\nexport const documentsSlice = createSlice({\r\n name: \"documents\",\r\n initialState: initialDocumentsState,\r\n reducers: {\r\n catchError: (state, action) => {\r\n state.error = `${action.type}: ${action.payload.error}`;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = false;\r\n } else {\r\n state.actionsLoading = false;\r\n }\r\n },\r\n startCall: (state, action) => {\r\n state.error = null;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = true;\r\n } else {\r\n state.actionsLoading = true;\r\n }\r\n },\r\n documentFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.documentForEdit = action.payload.documentForEdit;\r\n state.error = null;\r\n },\r\n documentsFetched: (state, action) => {\r\n const { totalCount, entities } = action.payload;\r\n state.listLoading = false;\r\n state.error = null;\r\n state.entities = entities;\r\n state.totalCount = totalCount;\r\n },\r\n documentCreated: (state, action) => {\r\n state.actionsLoading = false;\r\n state.error = null;\r\n state.entities.push(action.payload.model);\r\n state.totalCount++;\r\n },\r\n documentUpdated: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.map(entity => {\r\n if (entity.id === action.payload.document.id) {\r\n return action.payload.document;\r\n }\r\n return entity;\r\n });\r\n },\r\n documentDeleted: (state, action) => {\r\n state.error = null;\r\n state.actionsLoading = false;\r\n state.entities = state.entities.filter(el => el.id !== action.payload.id);\r\n },\r\n historyFetched: (state, action) => {\r\n const { totalCount, entities } = action.payload;\r\n state.listLoading = false;\r\n state.error = null;\r\n state.historyEntities = entities;\r\n state.historyTotalCount = totalCount;\r\n }\r\n }\r\n});\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialImportState = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n totalCount: 0,\r\n entities: null,\r\n lastError: null,\r\n deleteResult: null\r\n};\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\nexport const importSlice = createSlice({\r\n name: \"import\",\r\n initialState: initialImportState,\r\n reducers: {\r\n catchError: (state, action) => {\r\n state.error = `${action.type}: ${action.payload.error}`;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = false;\r\n } else {\r\n state.actionsLoading = false;\r\n }\r\n },\r\n startCall: (state, action) => {\r\n state.error = null;\r\n state.deleteResult = null;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = true;\r\n } else {\r\n state.actionsLoading = true;\r\n }\r\n },\r\n // warehousesFetched\r\n warehousesFetched: (state, action) => {\r\n const { totalCount, entities } = action.payload;\r\n state.listLoading = false;\r\n state.error = null;\r\n state.entities = entities;\r\n state.totalCount = totalCount;\r\n }\r\n }\r\n});\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialExportState = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n exportDataForEdit: null,\r\n totalCount: 0,\r\n entities: null,\r\n lastError: null,\r\n deleteResult: null\r\n};\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\nexport const exportSlice = createSlice({\r\n name: \"export\",\r\n initialState: initialExportState,\r\n reducers: {\r\n catchError: (state, action) => {\r\n state.error = `${action.type}: ${action.payload.error}`;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = false;\r\n } else {\r\n state.actionsLoading = false;\r\n }\r\n },\r\n startCall: (state, action) => {\r\n state.error = null;\r\n state.deleteResult = null;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = true;\r\n } else {\r\n state.actionsLoading = true;\r\n }\r\n },\r\n lastExportDataFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.exportDataForEdit = action.payload.exportDataForEdit;\r\n state.error = null;\r\n },\r\n // expertsFetched\r\n expertsFetched: (state, action) => {\r\n const { totalCount, entities } = action.payload;\r\n state.listLoading = false;\r\n state.error = null;\r\n state.entities = entities;\r\n state.totalCount = totalCount;\r\n }\r\n }\r\n});\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialDashboardState = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n trafficToday: null,\r\n trafficCurrentMonth: null,\r\n trafficLast12MonthsAmount: null,\r\n salesPurchaseByYears: null,\r\n salesByYears: null,\r\n lastError: null,\r\n deleteResult: null\r\n};\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\nexport const dashboardSlice = createSlice({\r\n name: \"dashboard\",\r\n initialState: initialDashboardState,\r\n reducers: {\r\n catchError: (state, action) => {\r\n state.error = `${action.type}: ${action.payload.error}`;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = false;\r\n } else {\r\n state.actionsLoading = false;\r\n }\r\n },\r\n startCall: (state, action) => {\r\n state.error = null;\r\n state.deleteResult = null;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = true;\r\n } else {\r\n state.actionsLoading = true;\r\n }\r\n },\r\n trafficTodayFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.trafficToday = action.payload.trafficToday;\r\n state.error = null;\r\n },\r\n trafficCurrentMonthFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.trafficCurrentMonth = action.payload.trafficCurrentMonth;\r\n state.error = null;\r\n },\r\n trafficLast12MonthsFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.trafficLast12Months = action.payload.trafficLast12Months;\r\n state.error = null;\r\n },\r\n salesPurchaseByYearsFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.salesPurchaseByYears = action.payload.salesPurchaseByYears;\r\n state.error = null;\r\n },\r\n salesByYearsFetched: (state, action) => {\r\n state.actionsLoading = false;\r\n state.salesByYears = action.payload.salesByYears;\r\n state.error = null;\r\n }\r\n }\r\n});\r\n","import {all} from \"redux-saga/effects\";\r\nimport {combineReducers} from \"redux\";\r\n\r\nimport * as auth from \"../app/modules/Auth/_redux/authRedux\";\r\nimport { usersSlice } from \"../app/modules/User/_redux/users/usersSlice\";\r\nimport { officeUsersSlice } from \"../app/modules/User/_redux/officeUsers/officeUsersSlice\";\r\nimport { userRolesSlice } from \"../app/modules/Setting/_redux/userRoles/userRolesSlice\";\r\nimport { codeListsSlice } from \"../app/modules/Setting/_redux/codeLists/codeListsSlice\";\r\nimport { customersSlice } from \"../app/modules/Customer/_redux/customers/customersSlice\";\r\nimport { yourCompanySlice } from \"../app/modules/Setting/_redux/yourCompany/yourCompanySlice\";\r\nimport { yourProfileSlice } from \"../app/modules/Setting/_redux/yourProfile/yourProfileSlice\";\r\nimport { organizationsSlice } from \"../app/modules/Admin/_redux/organizations/organizationsSlice\";\r\nimport { activeUsersSlice } from \"../app/modules/Admin/_redux/activeUsers/activeUsersSlice\";\r\nimport { itemGroupsSlice } from \"../app/modules/Item/_redux/itemGroups/itemGroupsSlice\";\r\nimport { itemsSlice } from \"../app/modules/Item/_redux/items/itemsSlice\";\r\nimport { endsSlice } from \"../app/modules/Sales/_redux/ends/endsSlice\";\r\nimport { cashiersSlice } from \"../app/modules/Setting/_redux/cashiers/cashiersSlice\";\r\nimport { cacheSlice } from \"../_redux/cache/cacheSlice\";\r\nimport { documentsSlice } from \"../app/modules/Document/_redux/documents/documentsSlice\";\r\nimport { importSlice } from \"../app/modules/Setting/_redux/import/importSlice\";\r\nimport { exportSlice } from \"../app/modules/Setting/_redux/export/exportSlice\";\r\nimport { dashboardSlice } from \"../app/modules/Dashboard/_redux/dashboards/dashboardSlice\";\r\n\r\n\r\nexport const rootReducer = combineReducers({\r\n auth: auth.reducer,\r\n users: usersSlice.reducer,\r\n officeUsers: officeUsersSlice.reducer,\r\n userRoles: userRolesSlice.reducer,\r\n organization: yourCompanySlice.reducer,\r\n codeLists: codeListsSlice.reducer,\r\n organizations: organizationsSlice.reducer,\r\n activeUsers: activeUsersSlice.reducer,\r\n customers: customersSlice.reducer,\r\n itemGroups: itemGroupsSlice.reducer,\r\n items: itemsSlice.reducer,\r\n profile: yourProfileSlice.reducer,\r\n cache: cacheSlice.reducer,\r\n documents: documentsSlice.reducer,\r\n cashiers: cashiersSlice.reducer,\r\n ends: endsSlice.reducer,\r\n import: importSlice.reducer,\r\n export: exportSlice.reducer,\r\n dashboard: dashboardSlice.reducer\r\n});\r\n\r\nexport function* rootSaga() {\r\n yield all([auth.saga()]);\r\n}\r\n","import {configureStore, getDefaultMiddleware} from \"@reduxjs/toolkit\";\r\nimport createSagaMiddleware from \"redux-saga\";\r\nimport {reduxBatch} from \"@manaflair/redux-batch\";\r\nimport {persistStore} from \"redux-persist\";\r\nimport {rootReducer, rootSaga} from \"./rootReducer\";\r\n\r\nconst sagaMiddleware = createSagaMiddleware();\r\nconst middleware = [\r\n ...getDefaultMiddleware({\r\n immutableCheck: false,\r\n serializableCheck: false,\r\n thunk: true\r\n }),\r\n sagaMiddleware\r\n];\r\n\r\nconst store = configureStore({\r\n reducer: rootReducer,\r\n middleware,\r\n devTools: process.env.NODE_ENV !== \"production\",\r\n enhancers: [reduxBatch]\r\n});\r\n\r\n/**\r\n * @see https://github.com/rt2zz/redux-persist#persiststorestore-config-callback\r\n * @see https://github.com/rt2zz/redux-persist#persistor-object\r\n */\r\nexport const persistor = persistStore(store);\r\n\r\nsagaMiddleware.run(rootSaga);\r\n\r\nexport default store;\r\n","export function removeCSSClass(ele, cls) {\r\n const reg = new RegExp(\"(\\\\s|^)\" + cls + \"(\\\\s|$)\");\r\n ele.className = ele.className.replace(reg, \" \");\r\n}\r\n\r\nexport function addCSSClass(ele, cls) {\r\n ele.classList.add(cls);\r\n}\r\n\r\nexport const toAbsoluteUrl = pathname => process.env.PUBLIC_URL + pathname;\r\n","import * as utils from \"./LocalStorageHelpers\";\r\n\r\nconst localStorageLastLocationKey = \"metronic-lastLocation\";\r\n\r\nfunction acceptLocation(lastLocation) {\r\n if (\r\n lastLocation &&\r\n lastLocation.pathname &&\r\n lastLocation.pathname !== \"/\" &&\r\n lastLocation.pathname.indexOf(\"auth\") === -1 &&\r\n lastLocation.pathname !== \"/logout\"\r\n ) {\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\nexport function saveLastLocation(lastLocation) {\r\n if (acceptLocation(lastLocation)) {\r\n utils.setStorage(\r\n localStorageLastLocationKey,\r\n JSON.stringify(lastLocation),\r\n 120\r\n );\r\n }\r\n}\r\n\r\nexport function forgotLastLocation() {\r\n utils.removeStorage(localStorageLastLocationKey);\r\n}\r\n\r\nexport function getLastLocation() {\r\n const defaultLocation = { pathname: \"/\", title: \"Dashboard\"};\r\n const localStorateLocations = utils.getStorage(localStorageLastLocationKey);\r\n if (!localStorateLocations) {\r\n return { pathname: \"/\", title: \"Dashboard\"};\r\n }\r\n\r\n try {\r\n const result = JSON.parse(localStorateLocations);\r\n return result;\r\n } catch (error) {\r\n console.error(error);\r\n return defaultLocation;\r\n }\r\n}\r\n\r\nexport function getCurrentUrl(location) {\r\n return location.pathname.split(/[?#]/)[0];\r\n}\r\n\r\nexport function checkIsActive(location, url) {\r\n const current = getCurrentUrl(location);\r\n if (!current || !url) {\r\n return false;\r\n }\r\n\r\n if (current === url) {\r\n return true;\r\n }\r\n\r\n if (current.indexOf(url) > -1) {\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n","/* Pagination Helprs */\r\nimport React from \"react\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport const getPagesCount = (totalSize, sizePerPage) => {\r\n return Math.ceil(totalSize / sizePerPage);\r\n};\r\n\r\nexport const getPages = (page, pagesCount, paginationSize) => {\r\n const result = [];\r\n if (!page) {\r\n return result;\r\n }\r\n\r\n if (pagesCount === 1) {\r\n result.push(1);\r\n return result;\r\n }\r\n\r\n if (pagesCount < page) {\r\n return result;\r\n }\r\n\r\n if (pagesCount < paginationSize + 1) {\r\n for (let i = 1; i < pagesCount + 1; i++) {\r\n result.push(i);\r\n }\r\n return result;\r\n }\r\n\r\n if (page === 1) {\r\n for (let i = 1; i < paginationSize + 1; i++) {\r\n if (i < pagesCount) {\r\n result.push(i);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n if (page === pagesCount) {\r\n for (let i = pagesCount - paginationSize + 1; i <= pagesCount; i++) {\r\n if (i <= pagesCount) {\r\n result.push(i);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n const shiftCount = Math.floor(paginationSize / 2);\r\n if (shiftCount < 1) {\r\n result.push(page);\r\n return result;\r\n }\r\n\r\n //\r\n if (page < shiftCount + 2) {\r\n for (let i = 1; i < paginationSize + 1; i++) {\r\n result.push(i);\r\n }\r\n return result;\r\n }\r\n\r\n if (pagesCount - page < shiftCount + 2) {\r\n for (let i = pagesCount - paginationSize; i < pagesCount + 1; i++) {\r\n result.push(i);\r\n }\r\n return result;\r\n }\r\n\r\n for (let i = page - shiftCount; i < page; i++) {\r\n if (i > 0) {\r\n result.push(i);\r\n }\r\n }\r\n result.push(page);\r\n for (let i = page + 1; i < page + shiftCount + 1; i++) {\r\n if (i <= pagesCount) {\r\n result.push(i);\r\n }\r\n }\r\n\r\n return result;\r\n};\r\n\r\nexport function getHandlerTableChange(setQueryParams) {\r\n return (type, { page, sizePerPage, sortField, sortOrder, data }) => {\r\n const pageNumber = page || 1;\r\n setQueryParams((prev) =>\r\n type === \"sort\"\r\n ? { ...prev, sortOrder, sortField }\r\n : type === \"pagination\"\r\n ? { ...prev, pageNumber, pageSize: sizePerPage }\r\n : prev\r\n );\r\n };\r\n}\r\n\r\nexport function PleaseWaitMessage({ entities }) {\r\n return <>{entities === null &&
};\r\n}\r\n\r\nexport function NoRecordsFoundMessage({ entities }) {\r\n const customersList = entities === null ? [] : entities;\r\n return (\r\n <>\r\n {customersList.length === 0 && entities !== null && (\r\n
\r\n )}\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\n\r\nfunction SelectionCheckbox({ isSelected, onChange }) {\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction groupingItemOnSelect(props) {\r\n const { ids, setIds, customerId } = props;\r\n if (ids.some((id) => id === customerId)) {\r\n setIds(ids.filter((id) => id !== customerId));\r\n } else {\r\n const newIds = [...ids];\r\n newIds.push(customerId);\r\n setIds(newIds);\r\n }\r\n}\r\n\r\nfunction groupingAllOnSelect(props) {\r\n const { isSelected, setIds, entities } = props;\r\n if (!isSelected) {\r\n const allIds = [];\r\n entities.forEach((el) => allIds.push(el.id));\r\n setIds(allIds);\r\n } else {\r\n setIds([]);\r\n }\r\n\r\n return isSelected;\r\n}\r\n\r\n// check official documentations: https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Row%20Selection&selectedStory=Custom%20Selection%20Column%20Header%20Style&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\nexport function getSelectRow(props) {\r\n const { entities, ids, setIds } = props;\r\n return {\r\n mode: \"checkbox\",\r\n clickToSelect: true,\r\n hideSelectAll: false,\r\n selectionHeaderRenderer: () => {\r\n const isSelected =\r\n entities && entities.length > 0 && entities.length === ids.length;\r\n const props = { isSelected, entities, setIds };\r\n return (\r\n groupingAllOnSelect(props)}\r\n />\r\n );\r\n },\r\n selectionRenderer: ({ rowIndex }) => {\r\n const isSelected = ids.some((el) => el === entities[rowIndex].id);\r\n const props = { ids, setIds, customerId: entities[rowIndex].id };\r\n return (\r\n groupingItemOnSelect(props)}\r\n />\r\n );\r\n },\r\n };\r\n}\r\n","/* Pagination Helprs */\r\nimport React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"./AssetsHelpers\";\r\n\r\nexport const sortCaret = (order, column) => {\r\n if (!order) return (\r\n \r\n \r\n \r\n );\r\n else if (order === \"asc\")\r\n return (\r\n \r\n \r\n \r\n );\r\n else if (order === \"desc\")\r\n return (\r\n \r\n \r\n \r\n );\r\n return null;\r\n};\r\n\r\nexport const headerSortingClasses = (column, sortOrder, isLastSorting, colIndex) => (\r\n (sortOrder === 'asc' || sortOrder === \"desc\") ? 'sortable-active' : ''\r\n);","import objectPath from \"object-path\";\r\nimport {toAbsoluteUrl} from \"../../_helpers\";\r\n\r\nexport class HtmlClassService {\r\n // Public properties\r\n config;\r\n classes;\r\n attributes;\r\n\r\n /**\r\n * Build html element classes from layout config\r\n * @param layoutConfig\r\n */\r\n setConfig(layoutConfig) {\r\n this.config = this.preInit(layoutConfig);\r\n\r\n // scope list of classes\r\n this.classes = {\r\n header: [],\r\n header_container: [],\r\n header_mobile: [],\r\n header_menu: [],\r\n aside: [],\r\n aside_menu: [],\r\n subheader: [],\r\n subheader_container: [],\r\n content: [],\r\n content_container: [],\r\n footer_container: []\r\n };\r\n\r\n this.attributes = {\r\n aside_menu: {},\r\n header_mobile: {},\r\n header_menu: {}\r\n };\r\n\r\n // init base layout\r\n this.initLayout();\r\n this.initLoader();\r\n\r\n // init header and subheader menu\r\n this.initHeader();\r\n this.initSubheader();\r\n\r\n this.initContent();\r\n // init aside and aside menu\r\n this.initAside();\r\n\r\n // init footer\r\n this.initFooter();\r\n\r\n // init theme\r\n this.initTheme();\r\n }\r\n\r\n preInit(layoutConfig) {\r\n const updatedConfig = Object.assign({}, layoutConfig);\r\n const headerSelfFixedDesktop = objectPath.get(updatedConfig, \"header.self.fixed.desktop\");\r\n const subheaderFixed = objectPath.get(updatedConfig, \"subheader.fixed\");\r\n if (subheaderFixed && headerSelfFixedDesktop) {\r\n // Page::setOption('layout', 'subheader/style', 'solid');\r\n updatedConfig.subheader.style = \"solid\"; \r\n } else {\r\n // Page::setOption('layout', 'subheader/fixed', false);\r\n updatedConfig.subheader.fixed = false;\r\n }\r\n return updatedConfig;\r\n }\r\n\r\n /**\r\n * Returns Classes\r\n *\r\n * @param path: string\r\n * @param toString boolean\r\n */\r\n getClasses(path, toString) {\r\n if (path) {\r\n const classes = objectPath.get(this.classes, path) || \"\";\r\n if (toString && Array.isArray(classes)) {\r\n return classes.join(\" \");\r\n }\r\n return classes.toString();\r\n }\r\n return this.classes;\r\n }\r\n\r\n getAttributes(path) {\r\n if (path) {\r\n const attributes = objectPath.get(this.attributes, path) || [];\r\n return attributes;\r\n }\r\n return [];\r\n }\r\n\r\n getLogo() {\r\n const brandSkin = objectPath.get(this.config, \"brand.self.theme\");\r\n if (brandSkin === \"light\") {\r\n return toAbsoluteUrl(\"/media/logos/mikropos-logo.png\");\r\n } else {\r\n return toAbsoluteUrl(\"/media/logos/mikropos-logo.png\");\r\n }\r\n }\r\n\r\n getStickyLogo() {\r\n let logo = objectPath.get(this.config, \"self.logo.sticky\");\r\n if (typeof logo === \"undefined\") {\r\n logo = this.getLogo();\r\n }\r\n return logo + \"\";\r\n }\r\n\r\n /**\r\n * Init Layout\r\n */\r\n initLayout() {\r\n const selfBodyBackgroundImage = objectPath.get(this.config, \"self.body.background-image\");\r\n if (selfBodyBackgroundImage) {\r\n document.body.style.backgroundImage = `url(\"${selfBodyBackgroundImage}'\")`;\r\n }\r\n\r\n const _selfBodyClass = objectPath.get(this.config, \"self.body.class\");\r\n if (_selfBodyClass) {\r\n const bodyClasses = _selfBodyClass.toString().split(\" \");\r\n bodyClasses.forEach(cssClass => document.body.classList.add(cssClass));\r\n }\r\n\r\n // Offcanvas directions\r\n document.body.classList.add(\"quick-panel-right\");\r\n document.body.classList.add(\"demo-panel-right\");\r\n document.body.classList.add(\"offcanvas-right\");\r\n }\r\n\r\n /**\r\n * Init Loader\r\n */\r\n initLoader() {}\r\n\r\n /**\r\n * Init Header\r\n */\r\n initHeader() {\r\n // Fixed header\r\n const headerSelfFixedDesktop = objectPath.get(this.config, \"header.self.fixed.desktop\");\r\n if (headerSelfFixedDesktop) {\r\n document.body.classList.add(\"header-fixed\");\r\n objectPath.push(this.classes, \"header\", \"header-fixed\");\r\n } else {\r\n document.body.classList.add(\"header-static\");\r\n }\r\n\r\n const headerSelfFixedMobile = objectPath.get(this.config, \"header.self.fixed.mobile\");\r\n if (headerSelfFixedMobile) {\r\n document.body.classList.add(\"header-mobile-fixed\");\r\n objectPath.push(this.classes, \"header_mobile\", \"header-mobile-fixed\");\r\n }\r\n\r\n // Menu\r\n const headerMenuSelfDisplay = objectPath.get(this.config, \"header.menu.self.display\");\r\n if (headerMenuSelfDisplay) {\r\n const headerMenuSelfLayout = objectPath.get(this.config, \"header.menu.self.layout\");\r\n const headerMenuLayoutCssClass = `header-menu-layout-${headerMenuSelfLayout}`;\r\n objectPath.push(this.classes, \"header_menu\", headerMenuLayoutCssClass);\r\n\r\n if (objectPath.get(this.config, \"header.menu.self.root-arrow\")) {\r\n objectPath.push(this.classes, \"header_menu\", \"header-menu-root-arrow\");\r\n }\r\n }\r\n\r\n const headerSelfWidth = objectPath.get(this.config, \"header.self.width\");\r\n if (headerSelfWidth === \"fluid\") {\r\n objectPath.push(this.classes, \"header_container\", \"container-fluid\");\r\n } else {\r\n objectPath.push(this.classes, \"header_container\", \"container\");\r\n }\r\n }\r\n\r\n /**\r\n * Init Subheader\r\n */\r\n initSubheader() {\r\n const subheaderDisplay = objectPath.get(this.config, \"subheader.display\");\r\n if (subheaderDisplay) {\r\n document.body.classList.add(\"subheader-enabled\");\r\n } else {\r\n return;\r\n }\r\n\r\n // Fixed content head\r\n const subheaderFixed = objectPath.get(this.config, \"subheader.fixed\");\r\n const headerSelfFixedDesktop = objectPath.get(this.config, \"header.self.fixed.desktop\");\r\n if (subheaderFixed && headerSelfFixedDesktop) {\r\n document.body.classList.add(\"subheader-fixed\");\r\n // Page::setOption('layout', 'subheader/style', 'solid'); => See preInit()\r\n } else {\r\n // Page::setOption('layout', 'subheader/fixed', false); => See preInit()\r\n }\r\n\r\n const subheaderStyle = objectPath.get(this.config, \"subheader.style\");\r\n if (subheaderStyle) {\r\n const subheaderClass = `subheader-${subheaderStyle}`;\r\n objectPath.push(this.classes, \"subheader\", subheaderClass);\r\n }\r\n\r\n const subheaderWidth = objectPath.get(this.config, \"subheader.width\");\r\n if (subheaderWidth === \"fluid\") {\r\n objectPath.push(this.classes, \"subheader_container\", \"container-fluid\");\r\n } else {\r\n objectPath.push(this.classes, \"subheader_container\", \"container\");\r\n }\r\n\r\n if (objectPath.get(this.config, \"subheader.clear\")) {\r\n objectPath.push(this.classes, \"subheader\", \"mb-0\");\r\n }\r\n }\r\n\r\n /**\r\n * Init Content\r\n */\r\n initContent() {\r\n if (objectPath.get(this.config, \"content.fit-top\")) {\r\n objectPath.push(this.classes, \"content\", \"pt-0\");\r\n }\r\n\r\n if (objectPath.get(this.config, \"content.fit-bottom\")) {\r\n objectPath.push(this.classes, \"content\", \"pb-0\");\r\n }\r\n\r\n if (objectPath.get(this.config, \"content.width\") === \"fluid\") {\r\n objectPath.push(this.classes, \"content_container\", \"container-fluid\");\r\n } else {\r\n objectPath.push(this.classes, \"content_container\", \"container\");\r\n }\r\n }\r\n\r\n /**\r\n * Init Aside\r\n */\r\n initAside() {\r\n // Check Aside\r\n const asideSelfDisplay = objectPath.get(this.config, \"aside.self.display\");\r\n if (!asideSelfDisplay) {\r\n return;\r\n }\r\n\r\n // Enable Aside\r\n document.body.classList.add(\"aside-enabled\");\r\n\r\n // Fixed Aside\r\n const asideSelfFixed = objectPath.get(this.config, \"aside.self.fixed\");\r\n if (asideSelfFixed) {\r\n document.body.classList.add(\"aside-fixed\");\r\n objectPath.push(this.classes, \"aside\", \"aside-fixed\");\r\n } else {\r\n document.body.classList.add(\"aside-static\");\r\n }\r\n\r\n // Check Aside\r\n if (!asideSelfDisplay) {\r\n return;\r\n }\r\n\r\n // Default fixed\r\n if (objectPath.get(this.config, \"aside.self.minimize.default\")) {\r\n document.body.classList.add(\"aside-minimize\");\r\n }\r\n\r\n if (objectPath.get(this.config, \"aside.self.minimize.hoverable\")) {\r\n document.body.classList.add(\"aside-minimize-hoverable\");\r\n }\r\n\r\n // Menu\r\n // Dropdown Submenu\r\n const asideMenuDropdown = objectPath.get(this.config, \"aside.menu.dropdown\");\r\n if (asideMenuDropdown) {\r\n objectPath.push(this.classes, \"aside_menu\", \"aside-menu-dropdown\");\r\n this.attributes.aside_menu[\"data-menu-dropdown\"] = \"1\";\r\n }\r\n\r\n // Scrollable Menu\r\n this.attributes.aside_menu[\"data-menu-scroll\"] = asideMenuDropdown ? \"0\" : \"1\";\r\n\r\n const asideSubmenuDHoverTimeout = objectPath.get(\r\n this.config,\r\n \"aside.menu.submenu.dropdown.hover-timeout\"\r\n );\r\n if (asideSubmenuDHoverTimeout) {\r\n this.attributes.aside_menu[\r\n \"data-menu-dropdown-timeout\"\r\n ] = asideSubmenuDHoverTimeout;\r\n }\r\n }\r\n\r\n /**\r\n * Init Footer\r\n */\r\n initFooter() {\r\n // Fixed header\r\n if (objectPath.get(this.config, \"footer.fixed\")) {\r\n document.body.classList.add(\"footer-fixed\");\r\n }\r\n\r\n if (objectPath.get(this.config, \"footer.self.width\") === \"fluid\") {\r\n objectPath.push(this.classes, \"footer_container\", \"container-fluid\");\r\n } else {\r\n objectPath.push(this.classes, \"footer_container\", \"container\");\r\n }\r\n }\r\n\r\n /** Init Theme */\r\n initTheme() {\r\n const asideSelfDisplay = objectPath.get(this.config, \"aside.self.display\");\r\n if (!asideSelfDisplay) {\r\n const headerSelfTheme = objectPath.get(this.config, \"header.self.theme\");\r\n document.body.classList.add(`brand-${headerSelfTheme}`);\r\n } else {\r\n const brandSelfTheme = objectPath.get(this.config, \"brand.self.theme\");\r\n document.body.classList.add(`brand-${brandSelfTheme}`);\r\n }\r\n }\r\n}\r\n","import React, { createContext, useContext, useMemo } from \"react\";\r\nimport { getInitLayoutConfig } from \"./LayoutConfig\";\r\nimport { HtmlClassService } from \"./HTMLClassService\";\r\n\r\nconst LAYOUT_CONFIG_KEY =\r\n process.env.REACT_APP_LAYOUT_CONFIG_KEY || \"LayoutConfig\";\r\n\r\nfunction getConfig() {\r\n const ls = localStorage.getItem(LAYOUT_CONFIG_KEY);\r\n if (ls) {\r\n try {\r\n return JSON.parse(ls);\r\n } catch (er) {\r\n console.error(er);\r\n }\r\n }\r\n return getInitLayoutConfig();\r\n}\r\n\r\n// Side effect\r\nexport function setLayoutConfig(config) {\r\n localStorage.setItem(LAYOUT_CONFIG_KEY, JSON.stringify(config));\r\n window.location.reload();\r\n}\r\n\r\nconst HtmlClassServiceContext = createContext();\r\n\r\n/**\r\n *\r\n *\r\n * @export\r\n * @returns Layout context from 'localStorage'\r\n */\r\nexport function useHtmlClassService() {\r\n return useContext(HtmlClassServiceContext);\r\n}\r\n\r\nexport function withHtmlClassService(Component) {\r\n class WithHtmlClassService extends React.Component {\r\n static displayName = `WithHtmlClassService(${Component.displayName ||\r\n Component.name})`;\r\n\r\n static contextType = HtmlClassServiceContext;\r\n\r\n render() {\r\n return ;\r\n }\r\n }\r\n\r\n return WithHtmlClassService;\r\n}\r\n\r\nexport const HtmlClassServiceConsumer = HtmlClassServiceContext.Consumer;\r\n\r\nexport function MetronicLayoutProvider({ children }) {\r\n const lc = useMemo(getConfig, []);\r\n const hcs = useMemo(() => {\r\n const service = new HtmlClassService();\r\n\r\n service.setConfig(lc);\r\n\r\n return service;\r\n }, [lc]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n","import {toAbsoluteUrl} from \"../../_helpers\";\r\nexport function getInitLayoutConfig() {\r\n return {\r\n demo: \"demo1\",\r\n js: {\r\n breakpoints : {\r\n sm: \"576\",\r\n md: \"768\",\r\n lg: \"992\",\r\n xl: \"1200\",\r\n xxl: \"1200\"\r\n },\r\n colors: {\r\n theme: {\r\n base: {\r\n \"white\": \"#ffffff\",\r\n \"primary\": \"#6993FF\",\r\n \"secondary\": \"#E5EAEE\",\r\n \"success\": \"#1BC5BD\",\r\n \"info\": \"#8950FC\",\r\n \"warning\": \"#FFA800\",\r\n \"danger\": \"#F64E60\",\r\n \"light\": \"#F3F6F9\",\r\n \"dark\": \"#212121\"\r\n },\r\n light: {\r\n \"white\": \"#ffffff\",\r\n \"primary\": \"#E1E9FF\",\r\n \"secondary\": \"#ECF0F3\",\r\n \"success\": \"#C9F7F5\",\r\n \"info\": \"#EEE5FF\",\r\n \"warning\": \"#FFF4DE\",\r\n \"danger\": \"#FFE2E5\",\r\n \"light\": \"#F3F6F9\",\r\n \"dark\": \"#D6D6E0\"\r\n },\r\n inverse: {\r\n \"white\": \"#ffffff\",\r\n \"primary\": \"#ffffff\",\r\n \"secondary\": \"#212121\",\r\n \"success\": \"#ffffff\",\r\n \"info\": \"#ffffff\",\r\n \"warning\": \"#ffffff\",\r\n \"danger\": \"#ffffff\",\r\n \"light\": \"#464E5F\",\r\n \"dark\": \"#ffffff\"\r\n }\r\n },\r\n gray: {\r\n \"gray100\": \"#F3F6F9\",\r\n \"gray200\": \"#ECF0F3\",\r\n \"gray300\": \"#E5EAEE\",\r\n \"gray400\": \"#D6D6E0\",\r\n \"gray500\": \"#B5B5C3\",\r\n \"gray600\": \"#80808F\",\r\n \"gray700\": \"#464E5F\",\r\n \"gray800\": \"#1B283F\",\r\n \"gray900\": \"#212121\"\r\n }\r\n },\r\n fontFamily: \"Poppins\"\r\n },\r\n // == Page Splash Screen loading\r\n loader: {\r\n enabled: true,\r\n type: \"\", // default|spinner-message|spinner-logo\r\n logo: toAbsoluteUrl(\"/media/logos/mikropos-logo.png\"),\r\n message: \"Please wait...\"\r\n },\r\n // page toolbar\r\n toolbar: {\r\n display: true\r\n },\r\n header: {\r\n self: {\r\n width: \"fluid\", // fixed|fluid\r\n theme: \"light\", // light|dark\r\n fixed: {\r\n desktop: true,\r\n mobile: true\r\n }\r\n },\r\n menu: {\r\n self: {\r\n display: true,\r\n layout: \"default\", // tab/default\r\n \"root-arrow\": false,\r\n \"icon-style\": \"duotone\" // duotone, line, bold, solid\r\n },\r\n desktop: {\r\n arrow: true,\r\n toggle: \"click\",\r\n submenu: {\r\n theme: \"light\", // light|dark\r\n arrow: true\r\n }\r\n },\r\n mobile: {\r\n submenu: {\r\n theme: \"dark\",\r\n accordion: true\r\n }\r\n }\r\n }\r\n },\r\n subheader: {\r\n display: false,\r\n displayDesc: false,\r\n displayDaterangepicker: true,\r\n layout: \"subheader-v1\",\r\n fixed: true,\r\n width: \"fluid\", // fixed/fluid,\r\n clear: false,\r\n style: \"solid\" // solid/transparent\r\n },\r\n content: {\r\n width: \"fixed\" // fluid|fixed\r\n },\r\n brand: {\r\n self: {\r\n theme: \"dark\" // light/dark\r\n }\r\n },\r\n aside: {\r\n self: {\r\n theme: \"dark\", // light/dark\r\n display: true,\r\n fixed: true,\r\n minimize: {\r\n toggle: true, // allow toggle\r\n default: false, // default state\r\n hoverable: true // allow hover\r\n }\r\n },\r\n footer: {\r\n self: {\r\n display: true\r\n }\r\n },\r\n menu: {\r\n dropdown: false, // ok\r\n scroll: true, // ok\r\n \"icon-style\": \"duotone\", // duotone, line, bold, solid\r\n submenu: {\r\n accordion: true,\r\n dropdown: {\r\n arrow: true,\r\n \"hover-timeout\": 500 // in milliseconds\r\n }\r\n }\r\n }\r\n },\r\n footer: {\r\n self: {\r\n fixed: true,\r\n width: \"fluid\"\r\n }\r\n },\r\n extras: {\r\n search: {\r\n display: true,\r\n layout: \"dropdown\", // offcanvas, dropdown\r\n offcanvas: {\r\n direction: \"right\"\r\n }\r\n },\r\n notifications: {\r\n display: true,\r\n layout: \"dropdown\", // offcanvas, dropdown\r\n dropdown: {\r\n style: \"dark\" // light, dark\r\n },\r\n offcanvas: {\r\n directions: \"right\"\r\n }\r\n },\r\n \"quick-actions\": {\r\n display: true,\r\n layout: \"dropdown\", // offcanvas, dropdown,\r\n dropdown: {\r\n style: \"dark\", // light, dark\r\n },\r\n offcanvas: {\r\n directions: \"right\"\r\n }\r\n },\r\n user: {\r\n display: true,\r\n layout: \"offcanvas\", // offcanvas, dropdown\r\n dropdown: {\r\n style: \"dark\"\r\n },\r\n offcanvas: {\r\n directions: \"right\"\r\n }\r\n },\r\n languages: {\r\n display: true\r\n },\r\n cart: {\r\n display: true,\r\n dropdown: {\r\n style: \"dark\", // ligth, dark\r\n }\r\n },\r\n \"quick-panel\": {\r\n display: true,\r\n offcanvas: {\r\n directions: \"right\"\r\n }\r\n },\r\n chat: {\r\n display: true\r\n },\r\n toolbar: {\r\n display: true\r\n },\r\n scrolltop: {\r\n display: true\r\n }\r\n }\r\n };\r\n}\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\n\r\nexport function DropdownMenu1() {\r\n return (<>\r\n {/*begin::Navigation*/}\r\n \r\n {/*end::Navigation*/}\r\n );\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\n\r\nexport const DropdownCustomToggler = React.forwardRef((props, ref) => {\r\n return (\r\n {\r\n e.preventDefault();\r\n props.onClick(e);\r\n }}\r\n >\r\n {props.children}\r\n \r\n );\r\n});\r\n","import React from \"react\";\r\n\r\nexport const DropdownTopbarItemToggler = React.forwardRef((props, ref) => {\r\n return (\r\n {\r\n e.preventDefault();\r\n props.onClick(e);\r\n }}\r\n >\r\n {props.children}\r\n \r\n );\r\n});\r\n\r\nDropdownTopbarItemToggler.displayName = 'DropdownTopbarItemToggler';\r\n","import React, { useEffect, useState, useMemo } from \"react\";\r\nimport clsx from \"clsx\";\r\nimport { Dropdown, OverlayTrigger, Tooltip } from \"react-bootstrap\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport objectPath from \"object-path\";\r\nimport { useHtmlClassService } from \"../../../../_core/MetronicLayout\";\r\nimport { SearchResult } from \"./SearchResult\";\r\nimport { toAbsoluteUrl } from \"../../../../../_helpers\";\r\nimport { DropdownTopbarItemToggler } from \"../../../../../_partials/dropdowns\";\r\nconst fakeData = [\r\n {\r\n type: 0,\r\n text: \"Reports\",\r\n },\r\n {\r\n type: 1,\r\n text: \"AirPlus Requirements\",\r\n description: \"by Grog John\",\r\n iconImage: toAbsoluteUrl(\"/media/files/doc.svg\"),\r\n },\r\n {\r\n type: 1,\r\n text: \"TechNav Documentation\",\r\n description: \"by Mary Brown\",\r\n iconImage: toAbsoluteUrl(\"/media/files/pdf.svg\"),\r\n },\r\n {\r\n type: 1,\r\n text: \"All Framework Docs\",\r\n description: \"by Grog John\",\r\n iconImage: toAbsoluteUrl(\"/media/files/zip.svg\"),\r\n },\r\n {\r\n type: 1,\r\n text: \"AirPlus Requirements\",\r\n description: \"by Tim Hardy\",\r\n iconImage: toAbsoluteUrl(\"/media/files/xml.svg\"),\r\n },\r\n {\r\n text: \"Customers\",\r\n type: 0,\r\n },\r\n {\r\n type: 1,\r\n text: \"Jimmy Curry\",\r\n description: \"Software Developer\",\r\n iconImage: toAbsoluteUrl(\"/media/users/300_11.jpg\"),\r\n },\r\n {\r\n type: 1,\r\n text: \"Milena Gibson\",\r\n description: \"UI Designer\",\r\n iconImage: toAbsoluteUrl(\"/media/users/300_16.jpg\"),\r\n },\r\n {\r\n type: 1,\r\n text: \"Stefan JohnStefan\",\r\n description: \"Marketing Manager\",\r\n iconImage: toAbsoluteUrl(\"/media/users/300_22.jpg\"),\r\n },\r\n {\r\n type: 1,\r\n text: \"Anna Strong\",\r\n description: \"Software Developer\",\r\n iconImage: toAbsoluteUrl(\"/media/users/300_5.jpg\"),\r\n },\r\n {\r\n type: 0,\r\n text: \"Files\",\r\n },\r\n {\r\n type: 1,\r\n text: \"2 New items submitted\",\r\n description: \"Marketing Manager\",\r\n iconClassName: \"flaticon2-box font-danger\",\r\n },\r\n {\r\n type: 1,\r\n text: \"79 PSD files generated\",\r\n description: \"by Grog John\",\r\n iconClassName: \"flaticon-psd font-brand\",\r\n },\r\n {\r\n type: 1,\r\n text: \"$2900 worth products sold\",\r\n description: \"Total 234 items\",\r\n iconClassName: \"flaticon2-supermarket font-warning\",\r\n },\r\n {\r\n type: 1,\r\n text: \"4 New items submitted\",\r\n description: \"Marketing Manager\",\r\n iconClassName: \"flaticon-safe-shield-protection font-info\",\r\n },\r\n];\r\n\r\nexport function SearchDropdown() {\r\n const [loading, setLoading] = useState(false);\r\n const [data, setData] = useState(null);\r\n const [searchValue, setSearchValue] = useState(\"\");\r\n let timeoutId;\r\n\r\n const clearTimeout = () => {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId);\r\n timeoutId = undefined;\r\n }\r\n };\r\n\r\n const handleSearchChange = (event) => {\r\n setData(null);\r\n setSearchValue(event.target.value);\r\n\r\n if (event.target.value.length > 2) {\r\n clearTimeout();\r\n\r\n setLoading(true);\r\n\r\n // simulate getting search result\r\n timeoutId = setTimeout(() => {\r\n setData(fakeData);\r\n setLoading(false);\r\n }, 500);\r\n }\r\n };\r\n\r\n const clear = () => {\r\n setData(null);\r\n setSearchValue(\"\");\r\n };\r\n\r\n useEffect(() => {\r\n return () => {\r\n clearTimeout();\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const uiService = useHtmlClassService();\r\n const layoutProps = useMemo(() => {\r\n return {\r\n offcanvas:\r\n objectPath.get(uiService.config, \"extras.search.layout\") ===\r\n \"offcanvas\",\r\n };\r\n }, [uiService]);\r\n\r\n return (\r\n <>\r\n {layoutProps.offcanvas && (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n )}\r\n {!layoutProps.offcanvas && (\r\n {\r\n setData(null);\r\n setLoading(false);\r\n setSearchValue(\"\");\r\n }}\r\n id=\"kt_quick_search_toggle\"\r\n >\r\n \r\n Quick search}\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 0\r\n ? \"none\"\r\n : \"flex\",\r\n }}\r\n onClick={clear}\r\n className=\"quick-search-close ki ki-close icon-sm text-muted\"\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","import React, {createContext} from \"react\";\r\nimport {useMemo} from \"react\";\r\nimport {useContext} from \"react\";\r\n\r\nconst I18N_CONFIG_KEY = process.env.REACT_APP_I18N_CONFIG_KEY || \"i18nConfig\";\r\nconst initialState = {\r\n selectedLang: \"sl\"\r\n };\r\n\r\nfunction getConfig() {\r\n const ls = localStorage.getItem(I18N_CONFIG_KEY);\r\n if (ls) {\r\n try {\r\n return JSON.parse(ls);\r\n } catch (er) {\r\n console.error(er);\r\n }\r\n }\r\n return initialState;\r\n}\r\n\r\n// Side effect\r\nexport function setLanguage(lang) {\r\n localStorage.setItem(I18N_CONFIG_KEY, JSON.stringify({ selectedLang: lang }));\r\n window.location.reload();\r\n}\r\n\r\nconst I18nContext = createContext();\r\n\r\nexport function useLang() {\r\n return useContext(I18nContext).selectedLang;\r\n}\r\n\r\nexport function withI18n(Component) {\r\n class WithI18n extends React.Component {\r\n static displayName = `WithI18n(${Component.displayName || Component.name})`;\r\n\r\n static contextType = I18nContext;\r\n\r\n render() {\r\n return ;\r\n }\r\n }\r\n\r\n return WithI18n;\r\n}\r\n\r\nexport const I18nConsumer = I18nContext.Consumer;\r\n\r\nexport function MetronicI18nProvider({ children }) {\r\n const lang = useMemo(getConfig, []);\r\n\r\n return {children};\r\n}\r\n","import React from \"react\";\r\nimport {useLang} from \"./Metronici18n\";\r\nimport {IntlProvider} from \"react-intl\";\r\nimport \"@formatjs/intl-relativetimeformat/polyfill\";\r\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/en\";\r\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/de\";\r\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/es\";\r\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/fr\";\r\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/ja\";\r\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/zh\";\r\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/sl\";\r\n\r\nimport deMessages from \"./messages/de\";\r\nimport enMessages from \"./messages/en\";\r\nimport esMessages from \"./messages/es\";\r\nimport frMessages from \"./messages/fr\";\r\nimport jaMessages from \"./messages/ja\";\r\nimport zhMessages from \"./messages/zh\";\r\nimport slMessages from \"./messages/sl\";\r\n\r\nconst allMessages = {\r\n sl: slMessages,\r\n en: enMessages\r\n};\r\n\r\nexport function I18nProvider({ children }) {\r\n const locale = useLang();\r\n const messages = allMessages[locale];\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport clsx from \"clsx\";\r\nimport { Dropdown } from \"react-bootstrap\";\r\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\r\nimport { toAbsoluteUrl } from \"../../../../_helpers\";\r\nimport { useLang, setLanguage } from \"../../../../i18n\";\r\nimport { DropdownTopbarItemToggler } from \"../../../../_partials/dropdowns\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nconst languages = [\r\n {\r\n lang: \"sl\",\r\n name: \"Slovensko\",\r\n flag: toAbsoluteUrl(\"/media/svg/flags/010-slovenia.svg\"),\r\n },\r\n {\r\n lang: \"en\",\r\n name: \"English\",\r\n flag: toAbsoluteUrl(\"/media/svg/flags/216-england.svg\"),\r\n },\r\n];\r\n\r\nexport function LanguageSelectorDropdown() {\r\n const lang = useLang();\r\n const currentLanguage = languages.find((x) => x.lang === lang);\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 {languages.map((language) => (\r\n \r\n setLanguage(language.lang)}\r\n className=\"navi-link\"\r\n >\r\n \r\n {language.name}\r\n \r\n {language.name}\r\n \r\n \r\n ))}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","/* eslint-disable no-restricted-imports */\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, { useMemo } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Dropdown from \"react-bootstrap/Dropdown\";\r\nimport { useSelector } from \"react-redux\";\r\nimport objectPath from \"object-path\";\r\nimport { useHtmlClassService } from \"../../../_core/MetronicLayout\";\r\nimport { toAbsoluteUrl } from \"../../../../_helpers\";\r\nimport { DropdownTopbarItemToggler } from \"../../../../_partials/dropdowns\";\r\n\r\nexport function UserProfileDropdown() {\r\n const { user } = useSelector((state) => state.auth);\r\n\r\n const uiService = useHtmlClassService();\r\n const layoutProps = useMemo(() => {\r\n return {\r\n light:\r\n objectPath.get(uiService.config, \"extras.user.dropdown.style\") ===\r\n \"light\",\r\n };\r\n }, [uiService]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Hi,\r\n {\" \"}\r\n \r\n {user.fullname}\r\n \r\n \r\n \r\n {user.fullname[0]}\r\n \r\n \r\n \r\n \r\n \r\n <>\r\n {/** ClassName should be 'dropdown-menu p-0 m-0 dropdown-menu-right dropdown-menu-anim dropdown-menu-top-unround dropdown-menu-xl' */}\r\n {layoutProps.light && (\r\n <>\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n Sean Stone\r\n
\r\n \r\n 3 messages\r\n \r\n
\r\n
\r\n \r\n )}\r\n\r\n {!layoutProps.light && (\r\n \r\n
\r\n \r\n S\r\n \r\n {/*\"Pic\"*/}\r\n
\r\n
\r\n Sean Stone\r\n
\r\n \r\n 3 messages\r\n \r\n \r\n )}\r\n \r\n\r\n \r\n
\r\n
\r\n );\r\n}\r\n","/* eslint-disable no-restricted-imports */\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, {useMemo} from \"react\";\r\nimport {OverlayTrigger, Tooltip} from \"react-bootstrap\";\r\nimport {useSelector} from \"react-redux\";\r\nimport objectPath from \"object-path\";\r\nimport {useHtmlClassService} from \"../../_core/MetronicLayout\";\r\nimport {UserProfileDropdown} from \"./dropdowns/UserProfileDropdown\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport function QuickUserToggler() {\r\n const {user} = useSelector(state => state.auth);\r\n const uiService = useHtmlClassService();\r\n const layoutProps = useMemo(() => {\r\n return {\r\n offcanvas: objectPath.get(uiService.config, \"extras.user.layout\") === \"offcanvas\",\r\n };\r\n }, [uiService]);\r\n\r\n return (<>\r\n {layoutProps.offcanvas && (}\r\n >\r\n
\r\n
\r\n <>\r\n\r\n ,\r\n \r\n {user.firstName} {user.lastName}\r\n \r\n \r\n {user.firstName[0]}\r\n \r\n \r\n
\r\n
\r\n )}\r\n\r\n {!layoutProps.offcanvas && ()}\r\n \r\n );\r\n}\r\n","import React, { useMemo } from \"react\";\r\nimport objectPath from \"object-path\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\r\nimport { toAbsoluteUrl } from \"../../../_helpers\";\r\nimport { useHtmlClassService } from \"../../_core/MetronicLayout\";\r\nimport { SearchDropdown } from \"../extras/dropdowns/search/SearchDropdown\";\r\nimport { UserNotificationsDropdown } from \"../extras/dropdowns/UserNotificationsDropdown\";\r\nimport { QuickActionsDropdown } from \"../extras/dropdowns/QuickActionsDropdown\";\r\nimport { MyCartDropdown } from \"../extras/dropdowns/MyCartDropdown\";\r\nimport { LanguageSelectorDropdown } from \"../extras/dropdowns/LanguageSelectorDropdown\";\r\nimport { QuickUserToggler } from \"../extras/QuiclUserToggler\";\r\n\r\nexport function Topbar() {\r\n const uiService = useHtmlClassService();\r\n\r\n const layoutProps = useMemo(() => {\r\n return {\r\n viewSearchDisplay: objectPath.get(\r\n uiService.config,\r\n \"extras.search.display\"\r\n ),\r\n viewNotificationsDisplay: objectPath.get(\r\n uiService.config,\r\n \"extras.notifications.display\"\r\n ),\r\n viewQuickActionsDisplay: objectPath.get(\r\n uiService.config,\r\n \"extras.quick-actions.display\"\r\n ),\r\n viewCartDisplay: objectPath.get(uiService.config, \"extras.cart.display\"),\r\n viewQuickPanelDisplay: objectPath.get(\r\n uiService.config,\r\n \"extras.quick-panel.display\"\r\n ),\r\n viewLanguagesDisplay: objectPath.get(\r\n uiService.config,\r\n \"extras.languages.display\"\r\n ),\r\n viewUserDisplay: objectPath.get(uiService.config, \"extras.user.display\"),\r\n };\r\n }, [uiService]);\r\n\r\n return (\r\n
\r\n {layoutProps.viewLanguagesDisplay && }\r\n\r\n {layoutProps.viewUserDisplay && }\r\n
\r\n );\r\n}\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { useLocation } from \"react-router\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl, checkIsActive } from \"../../../../_helpers\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport function HeaderMenu({ layoutProps }) {\r\n const location = useLocation();\r\n const getMenuItemActive = (url) => {\r\n return checkIsActive(location, url) ? \"menu-item-active\" : \"\";\r\n }\r\n\r\n return \r\n {/*begin::Header Nav*/}\r\n \r\n {/*end::Header Nav*/}\r\n ;\r\n}\r\n","import React, {useMemo} from \"react\";\r\nimport objectPath from \"object-path\";\r\nimport {Link} from \"react-router-dom\";\r\nimport {toAbsoluteUrl} from \"../../../../_helpers\";\r\nimport {useHtmlClassService} from \"../../../_core/MetronicLayout\";\r\nimport {HeaderMenu} from \"./HeaderMenu\";\r\n\r\nexport function HeaderMenuWrapper() {\r\n const uiService = useHtmlClassService();\r\n const layoutProps = useMemo(() => {\r\n return {\r\n config: uiService.config,\r\n ktMenuClasses: uiService.getClasses(\"header_menu\", true),\r\n rootArrowEnabled: objectPath.get(\r\n uiService.config,\r\n \"header.menu.self.root-arrow\"\r\n ),\r\n menuDesktopToggle: objectPath.get(uiService.config, \"header.menu.desktop.toggle\"),\r\n headerMenuAttributes: uiService.getAttributes(\"header_menu\"),\r\n headerSelfTheme: objectPath.get(uiService.config, \"header.self.theme\"),\r\n ulClasses: uiService.getClasses(\"header_menu_nav\", true),\r\n disabledAsideSelfDisplay:\r\n objectPath.get(uiService.config, \"aside.self.display\") === false\r\n };\r\n }, [uiService]);\r\n const getHeaderLogo = () => {\r\n let result = \"logo-light.png\";\r\n if (layoutProps.headerSelfTheme && layoutProps.headerSelfTheme !== \"dark\") {\r\n result = \"logo-dark.png\";\r\n }\r\n return toAbsoluteUrl(`/media/logos/${result}`);\r\n };\r\n\r\n return <>\r\n {/*begin::Header Menu Wrapper*/}\r\n
\r\n {layoutProps.disabledAsideSelfDisplay && (\r\n <>\r\n {/*begin::Header Logo*/}\r\n
\r\n \r\n \"logo\"\r\n \r\n
\r\n {/*end::Header Logo*/}\r\n \r\n )}\r\n {/*begin::Header Menu*/}\r\n \r\n {/*end::Header Menu*/}\r\n
\r\n {/*Header Menu Wrapper*/}\r\n \r\n}\r\n","import React, { forwardRef, useEffect, useState } from \"react\";\r\nimport clsx from \"clsx\";\r\nimport {isFragment} from \"react-is\";\r\n\r\nexport const CardHeaderIcon = forwardRef(({ className }, ref) => (\r\n \r\n));\r\n\r\nexport const CardHeaderTitle = forwardRef(({ className, ...props }, ref) => (\r\n // eslint-disable-next-line jsx-a11y/heading-has-content\r\n

\r\n));\r\n\r\nexport const CardHeaderToolbar = forwardRef(\r\n ({ children, className, ...props }, ref) => (\r\n
\r\n {children}\r\n
\r\n )\r\n);\r\n\r\nexport const CardHeader = forwardRef(\r\n (\r\n {\r\n children,\r\n icon,\r\n title,\r\n toolbar,\r\n className,\r\n sticky = false,\r\n labelRef,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const [top, setTop] = useState(0);\r\n const [windowHeight, setWindowHeight] = useState(0);\r\n\r\n useEffect(() => {\r\n handleResize();\r\n\r\n function handleResize() {\r\n setWindowHeight(window.innerWidth);\r\n }\r\n\r\n window.addEventListener(\"resize\", handleResize);\r\n\r\n return () => {\r\n window.removeEventListener(\"resize\", handleResize);\r\n };\r\n });\r\n\r\n useEffect(() => {\r\n // Skip if sticky is disabled or on initial render when we don't know about window height.\r\n if (!sticky || windowHeight === 0) {\r\n return;\r\n }\r\n\r\n const headerElement = document.querySelector(\".header\");\r\n const subheaderElement = document.querySelector(\".subheader\");\r\n const headerMobileElement = document.querySelector(\".header-mobile\");\r\n\r\n let nextMarginTop = 0;\r\n\r\n // mobile header\r\n if (window.getComputedStyle(headerElement).height === \"0px\") {\r\n nextMarginTop = headerMobileElement.offsetHeight;\r\n } else {\r\n // desktop header\r\n if (document.body.classList.contains(\"header-minimize-topbar\")) {\r\n // hardcoded minimized header height\r\n nextMarginTop = 60;\r\n } else {\r\n // normal fixed header\r\n if (document.body.classList.contains(\"header-fixed\")) {\r\n nextMarginTop += headerElement.offsetHeight;\r\n }\r\n\r\n if (document.body.classList.contains(\"subheader-fixed\")) {\r\n nextMarginTop += subheaderElement.offsetHeight;\r\n }\r\n }\r\n }\r\n\r\n setTop(nextMarginTop);\r\n }, [sticky, windowHeight]);\r\n\r\n return (\r\n \r\n {title != null && (\r\n
\r\n {icon}\r\n\r\n {/* Wrap string and fragments in CardHeaderTitle */\r\n typeof title === \"string\" || isFragment(title) ? (\r\n {title}\r\n ) : (\r\n title\r\n )}\r\n
\r\n )}\r\n\r\n {toolbar}\r\n {children}\r\n \r\n );\r\n }\r\n);\r\n\r\nexport const CardBody = forwardRef(\r\n ({ fit, fluid, className, ...props }, ref) => (\r\n \r\n )\r\n);\r\n\r\nexport const CardFooter = forwardRef(({ className, ...props }, ref) => (\r\n
\r\n));\r\n\r\nexport const Card = forwardRef(({ fluidHeight, className, ...props }, ref) => (\r\n \r\n));\r\n\r\n// Set display names for debugging.\r\nif (process.env.NODE_ENV !== \"production\") {\r\n Card.displayName = \"Card\";\r\n\r\n CardHeader.displayName = \"CardHeader\";\r\n CardHeaderIcon.displayName = \"CardHeaderIcon\";\r\n CardHeaderTitle.displayName = \"CardHeaderTitle\";\r\n CardHeaderToolbar.displayName = \"CardHeaderToolbar\";\r\n\r\n CardBody.displayName = \"CardBody\";\r\n CardFooter.displayName = \"CardFooter\";\r\n}\r\n","import React from \"react\";\r\n\r\nconst inputLabel = ({ label, touched, error, customFeedbackLabel }) => {\r\n if (touched && error) {\r\n return
{error}
;\r\n }\r\n\r\n if (touched && !error && label) {\r\n return
{label} was entered correct
;\r\n }\r\n\r\n return (\r\n
\r\n {customFeedbackLabel && <>{customFeedbackLabel}}\r\n {!customFeedbackLabel && (\r\n <>\r\n Please enter {label}\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nconst selectLabel = ({ label, touched, error, customFeedbackLabel }) => {\r\n if (touched && error) {\r\n return
{error}
;\r\n }\r\n\r\n return (\r\n
\r\n {customFeedbackLabel && <>{customFeedbackLabel}}\r\n {!customFeedbackLabel && label && (\r\n <>\r\n Please select {label}\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport function FieldFeedbackLabel({\r\n label,\r\n touched,\r\n error,\r\n type,\r\n customFeedbackLabel\r\n}) {\r\n switch (type) {\r\n case \"text\":\r\n return inputLabel({ label, touched, error, customFeedbackLabel });\r\n case \"email\":\r\n return inputLabel({ label, touched, error, customFeedbackLabel });\r\n case \"password\":\r\n return inputLabel({ label, touched, error, customFeedbackLabel });\r\n default:\r\n return selectLabel({ label, touched, error, customFeedbackLabel });\r\n }\r\n}\r\n","import React from \"react\";\r\nimport {FieldFeedbackLabel} from \"./FieldFeedbackLabel\";\r\n\r\nconst getFieldCSSClasses = (touched, errors) => {\r\n const classes = [\"form-control\"];\r\n if (touched && errors) {\r\n classes.push(\"is-invalid\");\r\n }\r\n\r\n if (touched && !errors) {\r\n classes.push(\"is-valid\");\r\n }\r\n\r\n return classes.join(\" \");\r\n};\r\n\r\nexport function Input({\r\n field, // { name, value, onChange, onBlur }\r\n form: { touched, errors }, // also values, setXXXX, handleXXXX, dirty, isValid, status, etc.\r\n label,\r\n withFeedbackLabel = true,\r\n customFeedbackLabel,\r\n type = \"text\",\r\n ...props\r\n}) {\r\n return (\r\n <>\r\n {label && }\r\n \r\n {withFeedbackLabel && (\r\n \r\n )}\r\n \r\n );\r\n}\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { getPages, getPagesCount } from \"../../../_helpers\";\r\n\r\nexport function PaginationLinks({ paginationProps }) {\r\n const { totalSize, sizePerPage, page, paginationSize } = paginationProps;\r\n const pagesCount = getPagesCount(totalSize, sizePerPage);\r\n const pages = getPages(page, pagesCount, paginationSize);\r\n const handleFirstPage = ({ onPageChange }) => {\r\n onPageChange(1);\r\n };\r\n\r\n const handlePrevPage = ({ page, onPageChange }) => {\r\n onPageChange(page - 1);\r\n };\r\n\r\n const handleNextPage = ({ page, onPageChange }) => {\r\n if (page < pagesCount) {\r\n onPageChange(page + 1);\r\n }\r\n };\r\n\r\n const handleLastPage = ({ onPageChange }) => {\r\n onPageChange(pagesCount);\r\n };\r\n\r\n const handleSelectedPage = ({ onPageChange }, pageNum) => {\r\n onPageChange(pageNum);\r\n };\r\n\r\n const disabledClass = pagesCount > 1 ? \"\" : \"disabled\";\r\n return (\r\n <>\r\n {pagesCount < 2 && <>}\r\n {pagesCount > 1 && (\r\n <>\r\n
\r\n handleFirstPage(paginationProps)}\r\n className=\"btn btn-icon btn-sm btn-light btn-hover-primary mr-2 my-1\"\r\n >\r\n \r\n \r\n handlePrevPage(paginationProps)}\r\n className=\"btn btn-icon btn-sm btn-light btn-hover-primary mr-2 my-1\"\r\n >\r\n \r\n \r\n\r\n {page > 1 && (\r\n \r\n ...\r\n \r\n )}\r\n {pages.map((p) => (\r\n handleSelectedPage(paginationProps, p)}\r\n className={`btn btn-icon btn-sm border-0 btn-light ${\r\n page === p ? \" btn-hover-primary active\" : \"\"\r\n } mr-2 my-1`}\r\n >\r\n {p}\r\n \r\n ))}\r\n {page < pagesCount && (\r\n \r\n ...\r\n \r\n )}\r\n handleNextPage(paginationProps)}\r\n className=\"btn btn-icon btn-sm btn-light btn-hover-primary mr-2 my-1\"\r\n >\r\n \r\n \r\n handleLastPage(paginationProps)}\r\n className=\"btn btn-icon btn-sm btn-light btn-hover-primary mr-2 my-1\"\r\n >\r\n \r\n \r\n
\r\n \r\n )}\r\n \r\n );\r\n}\r\n","/* eslint-disable no-unused-vars */\r\nimport React from \"react\";\r\nimport {PaginationTotalStandalone} from \"react-bootstrap-table2-paginator\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport function PaginationToolbar(props) {\r\n const { isLoading, paginationProps } = props;\r\n const {\r\n sizePerPageList,\r\n sizePerPage,\r\n totalSize,\r\n onSizePerPageChange = [\r\n { text: \"3\", value: 3 },\r\n { text: \"5\", value: 5 },\r\n { text: \"10\", value: 10 }\r\n ]\r\n } = paginationProps;\r\n const style = {\r\n width: \"75px\"\r\n };\r\n\r\n const onSizeChange = event => {\r\n const newSize = +event.target.value;\r\n onSizePerPageChange(newSize);\r\n };\r\n\r\n return (\r\n
\r\n {isLoading && (\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n \r\n {sizePerPageList.map(option => {\r\n const isSelect = sizePerPage === `${option.page}`;\r\n return (\r\n \r\n {option.text}\r\n \r\n );\r\n })}\r\n \r\n \r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport {PaginationLinks} from \"./PaginationLinks\";\r\nimport {PaginationToolbar} from \"./PaginationToolbar\";\r\n\r\nexport function Pagination(props) {\r\n const { children, isLoading, paginationProps } = props;\r\n return (\r\n <>\r\n {children}\r\n
\r\n \r\n \r\n
\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport {withRouter} from \"react-router-dom\";\r\nimport {ProgressBar} from \"react-bootstrap\";\r\n\r\n// TODO: Should be rewrited to pure function\r\nclass AnimateLoading extends React.Component {\r\n animateTimeout;\r\n stopAnimateTimeout;\r\n state = {\r\n width: 0,\r\n routeChanged: false\r\n };\r\n\r\n componentDidUpdate(nextProps) {\r\n if (this.props.location.pathname !== nextProps.location.pathname) {\r\n this.animate();\r\n this.scrollToTop();\r\n }\r\n }\r\n\r\n scrollToTop() {\r\n const scrollToTopBtn = document.getElementById(\"kt_scrolltop\");\r\n if (scrollToTopBtn) {\r\n scrollToTopBtn.click();\r\n }\r\n }\r\n\r\n animate() {\r\n this.animateTimeout = setTimeout(() => {\r\n if (this.state.width <= 100) {\r\n this.setState({ width: this.state.width + 10 });\r\n this.animate();\r\n } else {\r\n this.stopAnimate();\r\n }\r\n }, 30);\r\n }\r\n stopAnimate() {\r\n clearTimeout(this.animateInterval);\r\n this.stopAnimateTimeout = setTimeout(() => {\r\n this.setState({ width: 0 });\r\n }, 300);\r\n }\r\n componentWillUnmount() {\r\n if (this.stopAnimateTimeout) {\r\n clearTimeout(this.stopAnimateTimeout);\r\n }\r\n if (this.animateTimeout) {\r\n clearTimeout(this.animateTimeout);\r\n }\r\n }\r\n render() {\r\n return (\r\n \r\n {this.state.width > 0 && (\r\n \r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AnimateLoading);\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {Portal} from \"react-portal\";\r\n\r\nconst animationStartClass = \"dialog-shown\";\r\nconst animationEndClass = \"dialog-hidden\";\r\nconst initCssClasses = [\r\n \"dialog\",\r\n \"dialog-default\",\r\n \"dialog-loader\",\r\n \"dialog-top-center\"\r\n];\r\n\r\nexport function LoadingDialog({ isLoading, text }) {\r\n const [cssClasses, setCssClasses] = useState(initCssClasses);\r\n\r\n useEffect(() => {\r\n // for animation start should toggle 'dialog-hidden' css class\r\n setCssClasses(initCssClasses);\r\n const timeoutId = setTimeout(() => {\r\n const cssClassForAdding = isLoading\r\n ? animationStartClass\r\n : animationEndClass;\r\n setCssClasses([...initCssClasses, cssClassForAdding]);\r\n }, 200);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n return () => {\r\n clearTimeout(timeoutId);\r\n };\r\n }, [isLoading]);\r\n\r\n return (\r\n \r\n
{text}
\r\n
\r\n );\r\n}\r\n","import React, { forwardRef } from \"react\";\r\nimport clsx from \"clsx\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport {toAbsoluteUrl} from \"../../_helpers\";\r\n\r\nexport const Notice = forwardRef(\r\n (\r\n {\r\n icon,\r\n svg,\r\n iconRef,\r\n textRef,\r\n iconWrapperRef,\r\n className,\r\n children,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n return (\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// Set display name for debugging.\r\nif (process.env.NODE_ENV !== \"production\") {\r\n Notice.displayName = \"Notice\";\r\n}\r\n","import React from \"react\";\r\nimport { ProgressBar } from \"react-bootstrap\";\r\n\r\nexport function ModalProgressBar({variant = \"success\"}) {\r\n return (\r\n \r\n );\r\n}\r\n","import React, {useMemo} from \"react\";\r\nimport objectPath from \"object-path\";\r\nimport {useHtmlClassService} from \"../../_core/MetronicLayout\";\r\nimport {Topbar} from \"./Topbar\";\r\nimport {HeaderMenuWrapper} from \"./header-menu/HeaderMenuWrapper\";\r\nimport {AnimateLoading} from \"../../../_partials/controls\";\r\n\r\nexport function Header() {\r\n const uiService = useHtmlClassService();\r\n\r\n const layoutProps = useMemo(() => {\r\n return {\r\n headerClasses: uiService.getClasses(\"header\", true),\r\n headerAttributes: uiService.getAttributes(\"header\"),\r\n headerContainerClasses: uiService.getClasses(\"header_container\", true),\r\n menuHeaderDisplay: objectPath.get(\r\n uiService.config,\r\n \"header.menu.self.display\"\r\n )\r\n };\r\n }, [uiService]);\r\n\r\n return (\r\n <>\r\n {/*begin::Header*/}\r\n \r\n {/*begin::Container*/}\r\n
\r\n \r\n {/*begin::Header Menu Wrapper*/}\r\n {layoutProps.menuHeaderDisplay && }\r\n {!layoutProps.menuHeaderDisplay &&
}\r\n {/*end::Header Menu Wrapper*/}\r\n\r\n {/*begin::Topbar*/}\r\n \r\n {/*end::Topbar*/}\r\n
\r\n {/*end::Container*/}\r\n
\r\n {/*end::Header*/}\r\n \r\n );\r\n}\r\n","import React, {useMemo} from \"react\";\r\nimport {Link} from \"react-router-dom\";\r\nimport objectPath from \"object-path\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport {toAbsoluteUrl} from \"../../../_helpers\";\r\nimport {useHtmlClassService} from \"../../_core/MetronicLayout\";\r\n\r\nexport function HeaderMobile() {\r\n const uiService = useHtmlClassService();\r\n\r\n const layoutProps = useMemo(() => {\r\n return {\r\n headerLogo: uiService.getStickyLogo(),\r\n asideDisplay: objectPath.get(uiService.config, \"aside.self.display\"),\r\n headerMenuSelfDisplay:\r\n objectPath.get(uiService.config, \"header.menu.self.display\") === true,\r\n headerMobileCssClasses: uiService.getClasses(\"header_mobile\", true),\r\n headerMobileAttributes: uiService.getAttributes(\"header_mobile\")\r\n };\r\n }, [uiService]);\r\n\r\n return (\r\n <>\r\n {/*begin::Header Mobile*/}\r\n \r\n {/*begin::Logo*/}\r\n \r\n \"logo\"\r\n \r\n {/*end::Logo*/}\r\n\r\n {/*begin::Toolbar*/}\r\n
\r\n {layoutProps.asideDisplay && (\r\n <>\r\n {/*begin::Aside Mobile Toggle*/}\r\n \r\n {/*end::Aside Mobile Toggle*/}\r\n \r\n )}\r\n\r\n {layoutProps.headerMenuSelfDisplay && (\r\n <>\r\n {/*begin::Header Menu Mobile Toggle*/}\r\n \r\n {/*end::Header Menu Mobile Toggle*/}\r\n \r\n )}\r\n\r\n {/*begin::Topbar Mobile Toggle*/}\r\n \r\n \r\n \r\n \r\n \r\n {/*end::Topbar Mobile Toggle*/}\r\n
\r\n {/*end::Toolbar*/}\r\n \r\n {/*end::Header Mobile*/}\r\n \r\n );\r\n}\r\n","import React, {useMemo} from \"react\";\r\nimport {Link} from \"react-router-dom\";\r\nimport objectPath from \"object-path\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport {useHtmlClassService} from \"../../_core/MetronicLayout\";\r\nimport {toAbsoluteUrl} from \"../../../_helpers\";\r\n\r\nexport function Brand() {\r\n const uiService = useHtmlClassService();\r\n\r\n const layoutProps = useMemo(() => {\r\n return {\r\n brandClasses: uiService.getClasses(\"brand\", true),\r\n asideSelfMinimizeToggle: objectPath.get(\r\n uiService.config,\r\n \"aside.self.minimize.toggle\"\r\n ),\r\n headerLogo: uiService.getLogo(),\r\n headerStickyLogo: uiService.getStickyLogo()\r\n };\r\n }, [uiService]);\r\n\r\n return (\r\n <>\r\n {/* begin::Brand */}\r\n \r\n {/* begin::Logo */}\r\n \r\n \"logo\"\r\n \r\n {/* end::Logo */}\r\n\r\n {layoutProps.asideSelfMinimizeToggle && (\r\n <>\r\n {/* begin::Toggle */}\r\n \r\n {/* end::Toolbar */}\r\n \r\n )}\r\n \r\n {/* end::Brand */}\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\n\r\nexport function hasRoleForFunctionality(user, userFunctionalities) {\r\n var canRender = false;\r\n\r\n for (var x = 0; x < userFunctionalities.length; x++) {\r\n var userFunctionality = userFunctionalities[x];\r\n\r\n for (var index = 0; index < user.userRoleForFunctionality.length; index++) {\r\n\r\n if (userFunctionality == user.userRoleForFunctionality[index]) {\r\n canRender = true;\r\n break;\r\n }\r\n }\r\n if (canRender) {\r\n break;\r\n }\r\n }\r\n\r\n return canRender;\r\n\r\n\r\n}\r\n\r\n\r\nexport const CheckPermissions = (props) => {\r\n /**\r\n * userPermissions: list of permissions the current user has\r\n * route: the current route the user is in (route here is a\r\n * react-router path)\r\n * perms: the list of permissions, having any one of which \r\n * should should render the component\r\n */\r\n const { user } = useSelector(state => state.auth);\r\n let { userFunctionalities, children } = props\r\n\r\n // prevent any exceptions from crashing the app\r\n // this is a crude approach and better approaches should be used\r\n try {\r\n var canRender = false;\r\n if (userFunctionalities == undefined && userFunctionalities == null && user != undefined && user != null) {\r\n canRender = true;\r\n } else if (user != undefined && user != null) {\r\n canRender = hasRoleForFunctionality(user, userFunctionalities);\r\n }\r\n \r\n if (canRender) {\r\n return (\r\n <>\r\n {children}\r\n \r\n )\r\n }\r\n } catch {\r\n return null\r\n }\r\n return null\r\n}","export const UserFunctionalityE = Object.freeze(\r\n {\r\n \"PregledBlagajniskihUporabnikov\" : 11,\r\n \"UrediBlagajniskeUporabnike\": 12,\r\n \"PregledPisarniskihUporabnikov\": 13,\r\n \"UrediPisarniskeUporabnike\": 14,\r\n \"PregledVlogZaBlagajniskePravice\": 15,\r\n \"UrediVlogeZaBlagajniskePravice\": 16,\r\n \"PregledVlogZaPisarniskePravice\": 17,\r\n \"UrediVlogeZaPisarniskePravice\": 18,\r\n \"PregledSifrantov\": 19,\r\n \"UrediSifrante\": 20,\r\n \"PregledVasegaPodjetja\": 21,\r\n \"UrediVasePodjetje\": 22,\r\n \"AktivniUporabniki\": 23,\r\n \"Organizacije\": 24,\r\n \"PregledStrank\": 25,\r\n \"UrediStranke\": 26,\r\n \"PregledSkupinIzdelkov\": 27,\r\n \"UrediSkupineIzdelkov\": 28,\r\n \"PregledIzdelkov\": 29,\r\n \"UrediIzdelke\": 30,\r\n \"PregledPrevzemnihListov\": 31,\r\n \"UrediPrevzemneListe\": 32,\r\n \"PregledInventurnihPopisov\": 33,\r\n \"UrediInventurnePopise\": 34,\r\n \"PregledOdpisov\": 35,\r\n \"UrediOdpise\": 36,\r\n \"PregledMedskladiscnihPrenosov\": 37,\r\n \"UrediMedskladiscnePrenose\": 38,\r\n \"PregledLastnihPorab\": 39,\r\n \"UrediLastnePorabe\": 40,\r\n \"PregledVracil\": 41,\r\n \"UrediVracila\": 42,\r\n \"PregledProizvodnihNalogov\": 43,\r\n \"UrediProizvodneNaloge\": 44,\r\n \"PregledDavcnihBlagajn\": 45,\r\n \"UrediDavcneBlagajne\": 46,\r\n \"PregledPonudb\": 47,\r\n \"UrediPonudbe\": 48,\r\n \"PregledDobavnic\": 49,\r\n \"UrediDobavnice\": 50,\r\n \"PregledRacunov\": 51,\r\n //\"UrediRacune\": 52\r\n \"PregledDobavniceRacuni\": 69,\r\n \"UrediDobavniceRacune\": 70,\r\n \"PregledDobropisovOffice\": 71,\r\n \"PregledIzdatkovOffice\": 72,\r\n \"PregledPrejemkovOffice\": 73,\r\n \"PregledZakljuckov\": 74,\r\n \"Izvozi\": 75,\r\n \"PregledPrometaZaDanes\": 76,\r\n \"PregledPrometaZaTekociMesec\": 77,\r\n \"PregledPrometaVZadnjih12MesecihBrezDdv\": 78,\r\n \"PregledProdajePoLetih\": 79,\r\n \"PregledProdajeNabavePoLetih\": 80,\r\n \"PregledGibanjeZaloge\": 81,\r\n \"PregledPrometaStrank\": 82,\r\n \"PregledSeznamovPrevzemov\": 83,\r\n\r\n //REPORTS\r\n \"PorociloPoDnevih\": 300,\r\n \"PorocilaPoSkupinahArtiklov\": 301,\r\n \"PorociloPoArtiklih\": 302,\r\n \"PorociloPoUporabnikih\": 303,\r\n \"PorociloPoDnevihInUrah\": 304,\r\n \"PorociloPoDobavnicahPoDnevih\": 305,\r\n \"PorociloPoNacinihPlacilaPoDnevih\": 306,\r\n \"PorociloPrometaPoUrah\": 307,\r\n \"PorociloZalogaNaDan\": 308,\r\n \"PorociloNabaveArtiklovPoDobaviteljih\": 309,\r\n \"PorociloProdajePoUporabnikihPoArtiklih\": 310,\r\n \"PorociloProdajaNabavaInMarza\": 311,\r\n \"PorociloPoStrankah\": 312,\r\n \"PorociloArtiklovVSestavnicah\": 313,\r\n \"PorociloPorabeArtiklovPoNC\": 314,\r\n \"PorociloZalogaNaDanPOS\": 315,\r\n \"PorociloProdajePoMizah\": 316,\r\n \"PorociloProdajePoDobaviteljih\": 317,\r\n \"PorociloZalogeNaDanZNCinPC\": 318,\r\n \"PorociloObdelavePoMizah\": 319,\r\n \"PorociloPoDokumentih\": 320,\r\n \"PorociloPoUporabnikihPoNacinuPlacila\": 321,\r\n \"TdrPorocilo\": 322,\r\n \"PorociloMarzeArtiklovPoSestavnicahGAST\": 323,\r\n \"RacuniStornacijeSPopusti\": 324,\r\n \"RacuniStornoVezanoNaRacun\": 325,\r\n \"PorociloProdajePoUporabnikihPoSkupinah\": 326,\r\n \"ObracunLastnePorabe\": 327,\r\n \"PrimerjavaProdajePoLetihInMesecih\": 328,\r\n \"PorociloPorabeArtiklov\": 329,\r\n \"PrviZadnjiIzdanRacunUporabnika\": 330,\r\n \"TrenutnoVeljavenCenik\": 331,\r\n \"PorociloGastZaNezavezance\": 332,\r\n \"PorociloNVzalogeNaDanPoFIFO\": 333,\r\n \"ProdajaPoIzbranemArtiklu\": 334,\r\n \"RvcPoSkupinahArtiklov\": 335,\r\n \"OcenaDdvja\": 336,\r\n \"ProdaniArtikliPoUrah\": 337,\r\n \"IzdaneDobavnicePoKupcih\": 338\r\n });\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, { useState, useEffect} from \"react\";\r\nimport {useLocation} from \"react-router\";\r\nimport {NavLink} from \"react-router-dom\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl, checkIsActive } from \"../../../../_helpers\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { CheckPermissions } from \"../../../_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../app/enum/userFunctionalityE\"\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\n\r\nexport function AsideMenuList({ layoutProps }) {\r\n const intl = useIntl();\r\n const [reports, setReports] = useState(officeReports == undefined ? [] : officeReports);\r\n const location = useLocation();\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.cache }),\r\n shallowEqual\r\n );\r\n const { officeReports } = currentState;\r\n\r\n useEffect(() => {\r\n setReports(officeReports == undefined ? [] : officeReports)\r\n }, [officeReports]);\r\n\r\n const getMenuItemActive = (url, hasSubmenu = false) => {\r\n return checkIsActive(location, url)\r\n ? ` ${!hasSubmenu && \"menu-item-active\"} menu-item-open `\r\n : \"\";\r\n };\r\n\r\n const getReport = () => {\r\n if (officeReports == undefined) {\r\n return [];\r\n }\r\n\r\n return officeReports\r\n };\r\n \r\n\r\n const searchReports = (query) => {\r\n if (query == null || query == undefined || query == \"\") {\r\n setReports(getReport(\"\"));\r\n }\r\n var reports = getReport(\"\");\r\n var list = [];\r\n for (var x = 0; x < reports.length; x++) {\r\n var report = reports[x];\r\n if (report.title.toLowerCase().includes(query.toLowerCase())) {\r\n list.push(report);\r\n }\r\n }\r\n setReports(list);\r\n };\r\n \r\n\r\n return (\r\n <>\r\n {/* begin::Menu Nav */}\r\n
    \r\n\r\n \r\n {/*begi::DashBoard*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*end::DashBoard*/}\r\n \r\n\r\n \r\n {/*begi::Customer*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*end::DashBoard*/}\r\n \r\n\r\n {/* ITEMS */}\r\n {/*begin::1 Level*/}\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 {/*begin::3 Level*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*end::3 Level*/}\r\n \r\n \r\n {/*begin::3 Level*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*end::3 Level*/}\r\n \r\n
    \r\n
    \r\n \r\n {/*end::ITEMS*/}\r\n \r\n\r\n\r\n {/*start::SALES*/}\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\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\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\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 {/*end::SALES*/}\r\n\r\n\r\n\r\n {/*start::PURCHASE*/}\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\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\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 {/*end::PURCHASE*/}\r\n\r\n {/* REPORTS */}\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 searchReports(e.target.value);\r\n }}\r\n\r\n />\r\n
      \r\n
    • \r\n \r\n {reports.map(option => (\r\n \r\n {/*begin::3 Level*/}\r\n \r\n \r\n \r\n \r\n \r\n {option.title}\r\n \r\n \r\n {/*end::3 Level*/}\r\n \r\n ))}\r\n {reports.length == 0 &&
    • \r\n \r\n
    • } \r\n
    \r\n
    \r\n \r\n {/*end::REPORTS*/}\r\n \r\n\r\n {/* USERS */}\r\n {/*begin::1 Level*/}\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 {/*begin::3 Level*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*end::3 Level*/}\r\n \r\n \r\n {/*begin::3 Level*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*end::3 Level*/}\r\n \r\n
    \r\n
    \r\n \r\n {/*end::USERS*/}\r\n \r\n\r\n \r\n {/* SETTINGS */}\r\n {/*begin::1 Level*/}\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 {/*begin::3 Level*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*end::3 Level*/}\r\n \r\n\r\n\r\n \r\n {/*begin::3 Level*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*end::3 Level*/}\r\n \r\n\r\n \r\n {/*begin::3 Level*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*end::3 Level*/}\r\n \r\n\r\n \r\n {/*begin::3 Level*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*end::3 Level*/}\r\n \r\n\r\n \r\n {/*begin::3 Level*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*end::3 Level*/}\r\n \r\n\r\n \r\n {/*begin::3 Level*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*end::3 Level*/}\r\n \r\n\r\n \r\n {/*begin::3 Level*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*end::3 Level*/}\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 {/*end::SETTINGS*/}\r\n \r\n\r\n {/* ADMINISTRATION */}\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 {/*begin::3 Level*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*end::3 Level*/}\r\n \r\n \r\n {/*begin::3 Level*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*end::3 Level*/}\r\n \r\n
    \r\n
    \r\n \r\n {/*end::ADMINISTRATION*/}\r\n \r\n\r\n {/*end::1 Level*/}\r\n
\r\n\r\n {/* end::Menu Nav */}\r\n \r\n );\r\n}\r\n","import React, {useMemo} from \"react\";\r\nimport {AsideMenuList} from \"./AsideMenuList\";\r\nimport {useHtmlClassService} from \"../../../_core/MetronicLayout\";\r\n\r\nexport function AsideMenu({disableScroll}) {\r\n const uiService = useHtmlClassService();\r\n const layoutProps = useMemo(() => {\r\n return {\r\n layoutConfig: uiService.config,\r\n asideMenuAttr: uiService.getAttributes(\"aside_menu\"),\r\n ulClasses: uiService.getClasses(\"aside_menu_nav\", true),\r\n asideClassesFromConfig: uiService.getClasses(\"aside_menu\", true)\r\n };\r\n }, [uiService]);\r\n\r\n return (\r\n <>\r\n {/* begin::Menu Container */}\r\n \r\n \r\n \r\n {/* end::Menu Container */}\r\n \r\n );\r\n}\r\n","import React, {useMemo} from \"react\";\r\nimport {Link} from \"react-router-dom\";\r\nimport objectPath from \"object-path\";\r\nimport {Brand} from \"../brand/Brand\";\r\nimport {AsideMenu} from \"./aside-menu/AsideMenu\";\r\nimport {useHtmlClassService} from \"../../_core/MetronicLayout\";\r\n\r\nexport function Aside() {\r\n const uiService = useHtmlClassService();\r\n\r\n const layoutProps = useMemo(() => {\r\n return {\r\n disableScroll:\r\n objectPath.get(uiService.config, \"aside.menu.dropdown\") === \"true\" ||\r\n false,\r\n asideClassesFromConfig: uiService.getClasses(\"aside\", true),\r\n disableAsideSelfDisplay:\r\n objectPath.get(uiService.config, \"aside.self.display\") === false,\r\n headerLogo: uiService.getLogo()\r\n };\r\n }, [uiService]);\r\n\r\n return (\r\n <>\r\n {/* begin::Aside */}\r\n
\r\n \r\n\r\n {/* begin::Aside Menu */}\r\n
\r\n {layoutProps.disableAsideSelfDisplay && (\r\n <>\r\n {/* begin::Header Logo */}\r\n
\r\n \r\n \"logo\"\r\n \r\n
\r\n {/* end::Header Logo */}\r\n \r\n )}\r\n \r\n
\r\n {/* end::Aside Menu */}\r\n
\r\n {/* end::Aside */}\r\n \r\n );\r\n}\r\n","import React, {useMemo} from \"react\";\r\nimport {useHtmlClassService} from \"../../_core/MetronicLayout\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport Moment from 'react-moment';\r\n\r\nexport function Footer() {\r\n const today = new Date().getFullYear();\r\n const uiService = useHtmlClassService();\r\n\r\n const layoutProps = useMemo(() => {\r\n return {\r\n footerClasses: uiService.getClasses(\"footer\", true),\r\n footerContainerClasses: uiService.getClasses(\"footer_container\", true)\r\n };\r\n }, [uiService]);\r\n\r\n return (\r\n \r\n \r\n
\r\n 2020 - {today.toString()} ©\r\n SkupinaCOMP d.o.o., \r\n
\r\n
\r\n \r\n {new Date()}\r\n \r\n
\r\n \r\n \r\n );\r\n}\r\n","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./../../components/util.js\";\r\n\r\nvar KTLayoutHeader = function() {\r\n // Private properties\r\n var _element;\r\n var _elementForMobile;\r\n var _object;\r\n\r\n\t// Private functions\r\n // Get Height\r\n var _getHeight = function() {\r\n var height = 0;\r\n\r\n if (_element) {\r\n height = KTUtil.actualHeight(_element) + 1;\r\n }\r\n\r\n return height;\r\n }\r\n\r\n // Get Height\r\n var _getHeightForMobile = function() {\r\n var height;\r\n\r\n height = KTUtil.actualHeight(_elementForMobile);\r\n\r\n return height;\r\n }\r\n\r\n // Public Methods\r\n\treturn {\r\n\t\tinit: function(id, idForMobile) {\r\n _element = KTUtil.getById(id);\r\n _elementForMobile = KTUtil.getById(idForMobile);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\t\t},\r\n\r\n isFixed: function() {\r\n return KTUtil.hasClass(KTUtil.getBody(), 'header-fixed')\r\n },\r\n\r\n isFixedForMobile: function() {\r\n return KTUtil.hasClass(KTUtil.getBody(), 'header-mobile-fixed')\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n },\r\n\r\n getElementForMobile: function() {\r\n return _elementForMobile;\r\n },\r\n\r\n getHeader: function() {\r\n return _object;\r\n },\r\n\r\n getHeight: function() {\r\n return _getHeight();\r\n },\r\n\r\n getHeightForMobile: function() {\r\n return _getHeightForMobile();\r\n }\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutHeader;\r\n}\r\n\nexport default KTLayoutHeader;","/* eslint-disable */\n\"use strict\";\n\nimport KTOffcanvas from \"./../../components/offcanvas.js\";\nimport KTMenu from \"./../../components/menu.js\";\nimport { KTUtil } from \"./../../components/util.js\";\r\n\r\nvar KTLayoutHeaderMenu = function() {\r\n // Private properties\r\n\tvar _menuElement;\r\n var _menuObject;\r\n var _offcanvasElement;\r\n var _offcanvasObject;\r\n\r\n // Private functions\r\n\tvar _init = function() {\r\n\t\t_offcanvasObject = new KTOffcanvas(_offcanvasElement, {\r\n\t\t\toverlay: true,\r\n\t\t\tbaseClass: 'header-menu-wrapper',\r\n\t\t\tcloseBy: 'kt_header_menu_mobile_close_btn',\r\n\t\t\ttoggleBy: {\r\n\t\t\t\ttarget: 'kt_header_mobile_toggle',\r\n\t\t\t\tstate: 'mobile-toggle-active'\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\t\t_menuObject = new KTMenu(_menuElement, {\r\n\t\t\tsubmenu: {\r\n\t\t\t\tdesktop: 'dropdown',\r\n\t\t\t\ttablet: 'accordion',\r\n\t\t\t\tmobile: 'accordion'\r\n\t\t\t},\r\n\t\t\taccordion: {\r\n\t\t\t\tslideSpeed: 200, // accordion toggle slide speed in milliseconds\r\n\t\t\t\texpandAll: false // allow having multiple expanded accordions in the menu\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Close aside offcanvas panel before page reload On tablet and mobile\r\n _menuObject.on('linkClick', function(menu) {\r\n if (KTUtil.isBreakpointDown('lg')) { // Tablet and mobile mode\r\n _offcanvasObject.hide(); // Hide offcanvas after general link click\r\n }\r\n });\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n init: function(menuId, offcanvasId) {\r\n _menuElement = KTUtil.getById(menuId);\r\n _offcanvasElement = KTUtil.getById(offcanvasId);\r\n\r\n if (!_menuElement) {\r\n return;\r\n }\r\n\r\n // Initialize menu\r\n _init();\r\n\t\t},\r\n\r\n\t\tgetMenuElement: function() {\r\n\t\t\treturn _menuElement;\r\n\t\t},\r\n\r\n getOffcanvasElement: function() {\r\n\t\t\treturn _offcanvasElement;\r\n\t\t},\r\n\r\n getMenu: function() {\r\n\t\t\treturn _menuObject;\r\n\t\t},\r\n\r\n\t\tpauseDropdownHover: function(time) {\r\n\t\t\tif (_menuObject) {\r\n\t\t\t\t_menuObject.pauseDropdownHover(time);\r\n\t\t\t}\r\n\t\t},\r\n\r\n getOffcanvas: function() {\r\n\t\t\treturn _offcanvasObject;\r\n\t\t},\r\n\r\n\t\tcloseMobileOffcanvas: function() {\r\n\t\t\tif (_menuObject && KTUtil.isMobileDevice()) {\r\n\t\t\t\t_offcanvasObject.hide();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutHeaderMenu;\r\n}\r\n\nexport default KTLayoutHeaderMenu;","/* eslint-disable */\n\"use strict\";\n\nimport KTToggle from \"./../../components/toggle.js\";\nimport { KTUtil } from \"./../../components/util.js\";\r\n\r\nvar KTLayoutHeaderTopbar = function() {\r\n // Private properties\r\n\tvar _toggleElement;\r\n var _toggleObject;\r\n\r\n // Private functions\r\n var _init = function() {\r\n\t\t\t_toggleObject = new KTToggle(_toggleElement, KTUtil.getBody(), {\r\n\t\t\t\ttargetState: 'topbar-mobile-on',\r\n\t\t\t\ttoggleState: 'active',\r\n\t\t\t});\r\n }\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _toggleElement = KTUtil.getById(id);\r\n\r\n\t\t\tif (!_toggleElement) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n\t\t},\r\n\r\n getToggleElement: function() {\r\n return _toggleElement;\r\n }\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutHeaderTopbar;\r\n}\r\n\nexport default KTLayoutHeaderTopbar;","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./../../components/util.js\";\r\n\r\nvar KTLayoutBrand = function() {\r\n // Private properties\r\n var _element;\r\n\r\n // Private functions\r\n var _getHeight = function() {\r\n var height = 0;\r\n\r\n if (_element) {\r\n height = KTUtil.actualHeight(_element);\r\n }\r\n\r\n return height;\r\n }\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\t\t},\r\n\r\n getElement: function() {\r\n return _element;\r\n },\r\n\r\n getHeight: function() {\r\n return _getHeight();\r\n }\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutBrand;\r\n}\r\n\nexport default KTLayoutBrand;","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./../../components/util.js\";\nimport KTOffcanvas from \"./../../components/offcanvas.js\";\r\n\r\nvar KTLayoutAside = function() {\r\n // Private properties\r\n var _body;\r\n var _element;\r\n var _offcanvasObject;\r\n\r\n // Private functions\r\n\t// Initialize\r\n\tvar _init = function() {\r\n\t\tvar offcanvasClass = KTUtil.hasClass(_element, 'aside-offcanvas-default') ? 'aside-offcanvas-default' : 'aside';\r\n\r\n // Initialize mobile aside offcanvas\r\n\t\t_offcanvasObject = new KTOffcanvas(_element, {\r\n\t\t\tbaseClass: offcanvasClass,\r\n\t\t\toverlay: true,\r\n\t\t\tcloseBy: 'kt_aside_close_btn',\r\n\t\t\ttoggleBy: {\r\n\t\t\t\ttarget: 'kt_aside_mobile_toggle',\r\n\t\t\t\tstate: 'mobile-toggle-active'\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n _body = KTUtil.getBody();\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n },\r\n\r\n getOffcanvas: function() {\r\n return _offcanvasObject;\r\n },\r\n\r\n isFixed: function() {\r\n return KTUtil.hasClass(_body, 'aside-fixed');\r\n },\r\n\r\n isMinimized: function() {\r\n return (KTUtil.hasClass(_body, 'aside-fixed') && KTUtil.hasClass(_body, 'aside-minimize'));\r\n },\r\n\r\n isHoverable: function() {\r\n return (KTUtil.hasClass(_body, 'aside-fixed') && KTUtil.hasClass(_body, 'aside-minimize-hoverable'));\r\n }\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutAside;\r\n}\r\n\nexport default KTLayoutAside;","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./../../components/util.js\";\r\n\r\nvar KTLayoutSubheader = function() {\r\n // Private properties\r\n var _element;\r\n\r\n // Private functions\r\n var _getHeight = function() {\r\n var height = 0;\r\n\r\n if (_element) {\r\n height = KTUtil.actualHeight(_element);\r\n }\r\n\r\n return height;\r\n }\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\t\t},\r\n\r\n isFixed: function() {\r\n return KTUtil.hasClass(KTUtil.getBody(), 'subheader-fixed');\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n },\r\n\r\n getHeight: function() {\r\n return _getHeight();\r\n }\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutSubheader;\r\n}\r\n\nexport default KTLayoutSubheader;","/* eslint-disable */\n\"use strict\";\n\nimport KTLayoutHeader from \"./header.js\";\nimport KTCard from \"./../../components/card.js\";\nimport { KTUtil } from \"./../../components/util.js\";\nimport KTLayoutSubheader from \"./subheader.js\";\r\n\r\nvar KTLayoutStickyCard = function() {\r\n // Private properties\r\n\tvar _element;\r\n var _object;\r\n\r\n\t// Private functions\r\n\tvar _init = function() {\r\n\t\tvar offset = 300;\r\n\r\n\t\tif (typeof KTLayoutHeader !== 'undefined') {\r\n\t\t\toffset = KTLayoutHeader.getHeight();\r\n\t\t}\r\n\r\n _object = new KTCard(_element, {\r\n\t\t\tsticky: {\r\n\t\t\t\toffset: offset,\r\n\t\t\t\tzIndex: 90,\r\n\t\t\t\tposition: {\r\n\t\t\t\t\ttop: function() {\r\n\t\t\t\t\t\tvar pos = 0;\r\n var body = KTUtil.getBody();\r\n\r\n\t\t\t\t\t\tif (KTUtil.isBreakpointUp('lg')) {\r\n\t\t\t\t\t\t\tif (typeof KTLayoutHeader !== 'undefined' && KTLayoutHeader.isFixed()) {\r\n\t\t\t\t\t\t\t\tpos = pos + KTLayoutHeader.getHeight();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (typeof KTLayoutSubheader !== 'undefined' && KTLayoutSubheader.isFixed()) {\r\n\t\t\t\t\t\t\t\tpos = pos + KTLayoutSubheader.getHeight();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (typeof KTLayoutHeader !== 'undefined' && KTLayoutHeader.isFixedForMobile()) {\r\n\t\t\t\t\t\t\t\tpos = pos + KTLayoutHeader.getHeightForMobile();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tpos = pos - 1; // remove header border width\r\n\r\n\t\t\t\t\t\treturn pos;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tleft: function(card) {\r\n\t\t\t\t\t\treturn KTUtil.offset(_element).left;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tright: function(card) {\r\n\t\t\t\t\t\tvar body = KTUtil.getBody();\r\n\r\n\t\t\t\t\t\tvar cardWidth = parseInt(KTUtil.css(_element, 'width'));\r\n\t\t\t\t\t\tvar bodyWidth = parseInt(KTUtil.css(body, 'width'));\r\n\t\t\t\t\t\tvar cardOffsetLeft = KTUtil.offset(_element).left;\r\n\r\n\t\t\t\t\t\treturn bodyWidth - cardWidth - cardOffsetLeft;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t_object.initSticky();\r\n\r\n\t\tKTUtil.addResizeHandler(function() {\r\n\t\t\t_object.updateSticky();\r\n\t\t});\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n\t\t\t_init();\r\n\t\t},\r\n\r\n\t\tupdate: function() {\r\n\t\t\tif (_object) {\r\n\t\t\t\t_object.updateSticky();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutStickyCard;\r\n}\r\n\nexport default KTLayoutStickyCard;","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./../../components/util.js\";\nimport KTLayoutBrand from \"./brand.js\";\nimport KTMenu from \"./../../components/menu.js\";\nimport KTLayoutAside from \"./aside.js\";\r\n\r\nvar KTLayoutAsideMenu = function() {\r\n // Private properties\r\n var _body;\r\n var _element;\r\n var _menuObject;\r\n\r\n\t// Initialize\r\n\tvar _init = function() {\r\n\t\tvar menuDesktopMode = (KTUtil.attr(_element, 'data-menu-dropdown') === '1' ? 'dropdown' : 'accordion');\r\n var scroll;\r\n\r\n\t\tif (KTUtil.attr(_element, 'data-menu-scroll') === '1') {\r\n\t\t\tscroll = {\r\n\t\t\t\trememberPosition: true, // remember position on page reload\r\n\t\t\t\theight: function() { // calculate available scrollable area height\r\n\t\t\t\t\tvar height = parseInt(KTUtil.getViewPort().height);\r\n\r\n\t\t\t\t\tif (KTUtil.isBreakpointUp('lg')) {\r\n\t\t\t\t\t\theight = height - KTLayoutBrand.getHeight();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\theight = height - (parseInt(KTUtil.css(_element, 'marginBottom')) + parseInt(KTUtil.css(_element, 'marginTop')));\r\n\r\n\t\t\t\t\treturn height;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t_menuObject = new KTMenu(_element, {\r\n\t\t\t// Vertical scroll\r\n\t\t\tscroll: scroll,\r\n\r\n\t\t\t// Submenu setup\r\n\t\t\tsubmenu: {\r\n\t\t\t\tdesktop: menuDesktopMode,\r\n\t\t\t\ttablet: 'accordion', // menu set to accordion in tablet mode\r\n\t\t\t\tmobile: 'accordion' // menu set to accordion in mobile mode\r\n\t\t\t},\r\n\r\n\t\t\t// Accordion setup\r\n\t\t\taccordion: {\r\n\t\t\t\texpandAll: false // allow having multiple expanded accordions in the menu\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n var _initHover = function() {\r\n // Handle Minimized Aside Hover\r\n\t\tif (KTUtil.hasClass(_body, 'aside-fixed') && KTUtil.hasClass(_body, 'aside-minimize-hoverable')) {\r\n\t\t\tvar insideTm;\r\n\t\t\tvar outsideTm;\r\n\r\n // Handle Aside Hover Mode\r\n\t\t\tKTUtil.addEvent(_element, 'mouseenter', function(e) {\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tif (KTUtil.isBreakpointUp('lg') === false) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (outsideTm) {\r\n\t\t\t\t\tclearTimeout(outsideTm);\r\n\t\t\t\t\toutsideTm = null;\r\n\t\t\t\t}\r\n\r\n if (insideTm) {\r\n\t\t\t\t\tclearTimeout(insideTm);\r\n\t\t\t\t\tinsideTm = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tinsideTm = setTimeout(function() {\r\n\t\t\t\t\tif (KTUtil.hasClass(_body, 'aside-minimize') && KTUtil.isBreakpointUp('lg')) {\r\n\t\t\t\t\t\t// Hover class\r\n\t\t\t\t\t\tKTUtil.addClass(_body, 'aside-minimize-hover');\r\n\r\n\t\t\t\t\t\tKTLayoutAsideMenu.getMenu().scrollUpdate();\r\n\t\t\t\t\t\tKTLayoutAsideMenu.getMenu().scrollTop();\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 50);\r\n\t\t\t});\r\n\r\n\t\t\tKTUtil.addEvent(KTLayoutAside.getElement(), 'mouseleave', function(e) {\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tif (KTUtil.isBreakpointUp('lg') === false) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (insideTm) {\r\n\t\t\t\t\tclearTimeout(insideTm);\r\n\t\t\t\t\tinsideTm = null;\r\n\t\t\t\t}\r\n\r\n if (outsideTm) {\r\n\t\t\t\t\tclearTimeout(outsideTm);\r\n\t\t\t\t\toutsideTm = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toutsideTm = setTimeout(function() {\r\n\t\t\t\t if (KTUtil.hasClass(_body, 'aside-minimize-hover') && KTUtil.isBreakpointUp('lg')) {\r\n\t\t\t\t\t KTUtil.removeClass(_body, 'aside-minimize-hover');\r\n\r\n\t\t\t\t\t\t// Hover class\r\n KTLayoutAsideMenu.getMenu().scrollUpdate();\r\n\t\t\t\t\t\tKTLayoutAsideMenu.getMenu().scrollTop();\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 100);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _body = KTUtil.getBody();\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize menu\r\n _init();\r\n _initHover();\r\n\t\t},\r\n\r\n\t\tgetElement: function() {\r\n\t\t\treturn _element;\r\n\t\t},\r\n\r\n getMenu: function() {\r\n\t\t\treturn _menuObject;\r\n\t\t},\r\n\r\n pauseDropdownHover: function(time) {\r\n\t\t\tif (_menuObject) {\r\n\t\t\t\t_menuObject.pauseDropdownHover(time);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tcloseMobileOffcanvas: function() {\r\n\t\t\tif (_menuObject && KTUtil.isMobileDevice()) {\r\n\t\t\t\t_menuObject.hide();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutAsideMenu;\r\n}\r\n\nexport default KTLayoutAsideMenu;","/* eslint-disable */\n\"use strict\";\n\nimport KTToggle from \"./../../components/toggle.js\";\nimport KTLayoutStickyCard from \"./sticky-card.js\";\nimport KTLayoutHeaderMenu from \"./header-menu.js\";\nimport KTLayoutAsideMenu from \"./aside-menu.js\";\nimport { KTCookie } from \"./../../components/cookie.js\";\nimport { KTUtil } from \"./../../components/util.js\";\r\n\r\nvar KTLayoutAsideToggle = function() {\r\n // Private properties\r\n var _body;\r\n var _element;\r\n var _toggleObject;\r\n\r\n\t// Initialize\r\n\tvar _init = function() {\r\n\t\t_toggleObject = new KTToggle(_element, _body, {\r\n\t\t\ttargetState: 'aside-minimize',\r\n\t\t\ttoggleState: 'active'\r\n\t\t});\r\n\r\n\t\t_toggleObject.on('toggle', function(toggle) {\r\n // Update sticky card\r\n if (typeof KTLayoutStickyCard !== 'undefined') {\r\n KTLayoutStickyCard.update();\r\n }\r\n\r\n // Pause header menu dropdowns\r\n if (typeof KTLayoutHeaderMenu !== 'undefined') {\r\n KTLayoutHeaderMenu.pauseDropdownHover(800);\r\n }\r\n\r\n // Pause aside menu dropdowns\r\n if (typeof KTLayoutAsideMenu !== 'undefined') {\r\n KTLayoutAsideMenu.pauseDropdownHover(800);\r\n }\r\n\r\n // Remember state in cookie\r\n\t\t\tKTCookie.setCookie('kt_aside_toggle_state', toggle.getState());\r\n\t\t\t// to set default minimized left aside use this cookie value in your\r\n\t\t\t// server side code and add \"kt-primary--minimize aside-minimize\" classes to\r\n\t\t\t// the body tag in order to initialize the minimized left aside mode during page loading.\r\n\t\t});\r\n\r\n\t\t_toggleObject.on('beforeToggle', function(toggle) {\r\n\t\t\tif (KTUtil.hasClass(_body, 'aside-minimize') === false && KTUtil.hasClass(_body, 'aside-minimize-hover')) {\r\n\t\t\t\tKTUtil.removeClass(_body, 'aside-minimize-hover');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n _body = KTUtil.getBody();\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n\t\t},\r\n\r\n getElement: function() {\r\n return _element;\r\n },\r\n\r\n getToggle: function() {\r\n\t\t\treturn _toggleObject;\r\n\t\t},\r\n\r\n\t\tonToggle: function(handler) {\r\n\t\t\tif (typeof _toggleObject.element !== 'undefined') {\r\n\t\t\t\t_toggleObject.on('toggle', handler);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutAsideToggle;\r\n}\r\n\nexport default KTLayoutAsideToggle;","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./../../components/util.js\";\r\n\r\nvar KTLayoutFooter = function() {\r\n // Private properties\r\n var _element;\r\n\r\n\t// Private functions\r\n\tvar _getHeight = function() {\r\n\t\tvar height = 0;\r\n\r\n if (_element) {\r\n height = KTUtil.actualHeight(_element);\r\n }\r\n\r\n\t\treturn height;\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\t\t},\r\n\r\n\t\tgetHeight: function() {\r\n\t\t\treturn _getHeight();\r\n\t\t},\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutFooter;\r\n}\r\n\nexport default KTLayoutFooter;","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./../../components/util.js\";\nimport KTLayoutHeader from \"./header.js\";\nimport KTLayoutSubheader from \"./subheader.js\";\nimport KTLayoutFooter from \"./footer.js\";\r\n\r\nvar KTLayoutContent = function() {\r\n // Private properties\r\n var _element;\r\n\r\n\t// Private functions\r\n\tvar _getHeight = function() {\r\n\t\tvar height;\r\n\r\n\t\theight = KTUtil.getViewPort().height;\r\n\r\n if (_element) {\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop')) - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n }\r\n\r\n height = height - KTLayoutHeader.getHeight();\r\n height = height - KTLayoutSubheader.getHeight();\r\n height = height - KTLayoutFooter.getHeight();\r\n\r\n\t\treturn height;\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\t\t},\r\n\r\n\t\tgetHeight: function() {\r\n\t\t\treturn _getHeight();\r\n\t\t},\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutContent;\r\n}\r\n\nexport default KTLayoutContent;","/* eslint-disable */\n\"use strict\";\n\nimport KTScrolltop from \"./../../components/scrolltop.js\";\nimport { KTUtil } from \"./../../components/util.js\";\r\n\r\nvar KTLayoutScrolltop = function() {\r\n // Private properties\r\n var _element;\r\n var _object;\r\n\r\n // Private functions\r\n var _init = function() {\r\n _object = new KTScrolltop(_element, {\r\n offset: 300,\r\n speed: 600,\r\n });\r\n }\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n\t\t},\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutScrolltop;\r\n}\r\n\nexport default KTLayoutScrolltop;","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./../../components/util.js\";\nimport KTLayoutContent from \"./content.js\";\r\n\r\nvar KTLayoutStretchedCard = function() {\r\n // Private properties\r\n\tvar _element;\r\n\r\n\t// Private functions\r\n\tvar _init = function() {\r\n\t\tvar scroll = KTUtil.find(_element, '.card-scroll');\r\n\t\tvar cardBody = KTUtil.find(_element, '.card-body');\r\n\t\tvar cardHeader = KTUtil.find(_element, '.card-header');\r\n\r\n\t\tvar height = KTLayoutContent.getHeight();\r\n\r\n\t\theight = height - parseInt(KTUtil.actualHeight(cardHeader));\r\n\r\n\t\theight = height - parseInt(KTUtil.css(_element, 'marginTop')) - parseInt(KTUtil.css(_element, 'marginBottom'));\r\n\t\theight = height - parseInt(KTUtil.css(_element, 'paddingTop')) - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n\t\theight = height - parseInt(KTUtil.css(cardBody, 'paddingTop')) - parseInt(KTUtil.css(cardBody, 'paddingBottom'));\r\n\t\theight = height - parseInt(KTUtil.css(cardBody, 'marginTop')) - parseInt(KTUtil.css(cardBody, 'marginBottom'));\r\n\r\n\t\theight = height - 3;\r\n\r\n\t\tKTUtil.css(scroll, 'height', height + 'px');\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n\t\t\t_init();\r\n\r\n // Re-calculate on window resize\r\n KTUtil.addResizeHandler(function() {\r\n\t\t\t\t_init();\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tupdate: function() {\r\n\t\t\t_init();\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutStretchedCard;\r\n}\r\n\nexport default KTLayoutStretchedCard;","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./../../components/util.js\";\nimport KTOffcanvas from \"./../../components/offcanvas.js\";\r\n\r\nvar KTLayoutQuickPanel = function() {\r\n // Private properties\r\n var _element;\r\n var _offcanvasObject;\r\n var _notificationsElement;\r\n var _logsElement;\r\n var _settingsElement;\r\n\r\n // Private functions\r\n var _getContentHeight = function() {\r\n var height;\r\n\r\n var header = KTUtil.find(_element, '.offcanvas-header');\r\n var content = KTUtil.find(_element, '.offcanvas-content');\r\n\r\n var height = parseInt(KTUtil.getViewPort().height);\r\n\r\n if (header) {\r\n height = height - parseInt(KTUtil.actualHeight(header));\r\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\r\n }\r\n\r\n if (content) {\r\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\r\n }\r\n\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\r\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n height = height - 2;\r\n\r\n return height;\r\n }\r\n\r\n var _init = function() {\r\n _offcanvasObject = new KTOffcanvas(_element, {\r\n overlay: true,\r\n baseClass: 'offcanvas',\r\n placement: 'right',\r\n closeBy: 'kt_quick_panel_close',\r\n toggleBy: 'kt_quick_panel_toggle'\r\n });\r\n }\r\n\r\n var _initNotifications = function() {\r\n KTUtil.scrollInit(_notificationsElement, {\r\n mobileNativeScroll: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n return _getContentHeight();\r\n }\r\n });\r\n }\r\n\r\n var _initLogs = function() {\r\n KTUtil.scrollInit(_logsElement, {\r\n mobileNativeScroll: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n return _getContentHeight();\r\n }\r\n });\r\n }\r\n\r\n var _initSettings = function() {\r\n KTUtil.scrollInit(_settingsElement, {\r\n mobileNativeScroll: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n return _getContentHeight();\r\n }\r\n });\r\n }\r\n\r\n var _updateScrollbars = function() {\r\n $(_element).find('a[data-toggle=\"tab\"]').on('shown.bs.tab', function (e) {\r\n KTUtil.scrollUpdate(_notificationsElement);\r\n KTUtil.scrollUpdate(_logsElement);\r\n KTUtil.scrollUpdate(_settingsElement);\r\n });\r\n }\r\n\r\n // Public methods\r\n return {\r\n init: function(id) {\r\n _element = KTUtil.getById(id);\r\n _notificationsElement = KTUtil.getById('kt_quick_panel_notifications');\r\n _logsElement = KTUtil.getById('kt_quick_panel_logs');\r\n _settingsElement = KTUtil.getById('kt_quick_panel_settings');\r\n\r\n _init();\r\n _initNotifications();\r\n _initLogs();\r\n _initSettings();\r\n\r\n \r\n }\r\n };\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutQuickPanel;\r\n}\r\n\nexport default KTLayoutQuickPanel;","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./../../components/util.js\";\nimport KTOffcanvas from \"./../../components/offcanvas.js\";\r\n\r\nvar KTLayoutQuickUser = function() {\r\n // Private properties\r\n var _element;\r\n var _offcanvasObject;\r\n\r\n // Private functions\r\n var _init = function() {\r\n var header = KTUtil.find(_element, '.offcanvas-header');\r\n var content = KTUtil.find(_element, '.offcanvas-content');\r\n\r\n _offcanvasObject = new KTOffcanvas(_element, {\r\n overlay: true,\r\n baseClass: 'offcanvas',\r\n placement: 'right',\r\n closeBy: 'kt_quick_user_close',\r\n toggleBy: 'kt_quick_user_toggle'\r\n });\r\n\r\n KTUtil.scrollInit(content, {\r\n disableForMobile: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n var height = parseInt(KTUtil.getViewPort().height);\r\n\r\n if (header) {\r\n height = height - parseInt(KTUtil.actualHeight(header));\r\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\r\n }\r\n\r\n if (content) {\r\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\r\n }\r\n\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\r\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n height = height - 2;\r\n\r\n return height;\r\n }\r\n });\r\n }\r\n\r\n // Public methods\r\n return {\r\n init: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n };\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutQuickUser;\r\n}\r\n\nexport default KTLayoutQuickUser;","import React, {useLayoutEffect} from \"react\";\r\nimport {KTUtil} from \"../../_assets/js/components/util\";\r\nimport KTLayoutHeader from \"../../_assets/js/layout/base/header\";\r\nimport KTLayoutHeaderMenu from \"../../_assets/js/layout/base/header-menu\";\r\nimport KTLayoutHeaderTopbar from \"../../_assets/js/layout/base/header-topbar\";\r\nimport KTLayoutBrand from \"../../_assets/js/layout/base/brand\";\r\nimport KTLayoutAside from \"../../_assets/js/layout/base/aside\";\r\nimport KTLayoutAsideToggle from \"../../_assets/js/layout/base/aside-toggle\";\r\nimport KTLayoutAsideMenu from \"../../_assets/js/layout/base/aside-menu\";\r\nimport KTLayoutContent from \"../../_assets/js/layout/base/content\";\r\nimport KTLayoutFooter from \"../../_assets/js/layout/base/footer\";\r\nimport KTLayoutSubheader from \"../../_assets/js/layout/base/subheader\";\r\nimport KTLayoutScrolltop from \"../../_assets/js/layout/extended/scrolltop\";\r\nimport KTLayoutStickyCard from \"../../_assets/js/layout/base/sticky-card\";\r\nimport KTLayoutStretchedCard from \"../../_assets/js/layout/base/stretched-card\";\r\nimport KTLayoutQuickPanel from \"../../_assets/js/layout/extended/quick-panel\";\r\nimport KTLayoutQuickUser from \"../../_assets/js/layout/extended/quick-user\";\r\n\r\nexport function LayoutInit() {\r\n useLayoutEffect(() => {\r\n // Initialization\r\n KTUtil.ready(function () {\r\n ////////////////////////////////////////////////////\r\n // Layout Base Partials(mandatory for core layout)//\r\n ////////////////////////////////////////////////////\r\n // Init Desktop & Mobile Headers\r\n KTLayoutHeader.init('kt_header', 'kt_header_mobile');\r\n\r\n // Init Header Menu\r\n KTLayoutHeaderMenu.init('kt_header_menu', 'kt_header_menu_wrapper');\r\n // Init Header Topbar For Mobile Mode\r\n KTLayoutHeaderTopbar.init('kt_header_mobile_topbar_toggle');\r\n // Init Brand Panel For Logo\r\n KTLayoutBrand.init('kt_brand');\r\n // Init Aside\r\n KTLayoutAside.init('kt_aside');\r\n\r\n // Init Aside Menu Toggle\r\n KTLayoutAsideToggle.init('kt_aside_toggle');\r\n //\r\n // Init Aside Menu\r\n KTLayoutAsideMenu.init('kt_aside_menu');\r\n\r\n // Init Content\r\n KTLayoutContent.init('kt_content');\r\n\r\n // Init Footer\r\n KTLayoutFooter.init('kt_footer');\r\n\r\n\r\n //////////////////////////////////////////////\r\n // Layout Extended Partials(optional to use)//\r\n //////////////////////////////////////////////\r\n KTLayoutSubheader.init('kt_subheader');\r\n\r\n // Init Scrolltop\r\n KTLayoutScrolltop.init('kt_scrolltop');\r\n\r\n // Init Sticky Card\r\n KTLayoutStickyCard.init('kt_page_sticky_card');\r\n\r\n // Init Stretched Card\r\n KTLayoutStretchedCard.init('kt_page_stretched_card');\r\n\r\n // Init Quick Offcanvas Panel\r\n KTLayoutQuickPanel.init('kt_quick_panel');\r\n\r\n // Init Quick User Panel\r\n KTLayoutQuickUser.init('kt_quick_user');\r\n });\r\n }, []);\r\n return <>;\r\n}\r\n","/* eslint-disable no-restricted-imports */\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, {forwardRef} from \"react\";\r\nimport {OverlayTrigger, Tooltip} from \"react-bootstrap\";\r\nimport Dropdown from \"react-bootstrap/Dropdown\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport {DropdownMenu1} from \"../../../../_partials/dropdowns\";\r\nimport {toAbsoluteUrl} from \"../../../../_helpers\";\r\n\r\nconst QuickActionsDropdownToggle = forwardRef((props, ref) => {\r\n return (\r\n {\r\n e.preventDefault();\r\n props.onClick(e);\r\n }}\r\n id=\"kt_subheader_quick_actions\"\r\n className=\"btn btn-sm btn-clean btn-icon\"\r\n >\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n});\r\n\r\nexport function QuickActions() {\r\n return (\r\n <>\r\n Quick actions}\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","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport {Link} from \"react-router-dom\";\r\n\r\nexport function BreadCrumbs({items}) {\r\n if (!items || !items.length) {\r\n return \"\";\r\n }\r\n\r\n return (\r\n
    \r\n
  • \r\n \r\n \r\n \r\n
  • \r\n {items.map((item, index) => (\r\n
  • \r\n \r\n {item.title}\r\n \r\n
  • \r\n ))}\r\n
\r\n );\r\n}\r\n","import React, { createContext, useState, useContext } from \"react\";\r\n\r\nexport function getBreadcrumbsAndTitle(menuId, pathName) {\r\n const result = {\r\n breadcrumbs: [],\r\n title: \"\",\r\n };\r\n\r\n const menu = document.getElementById(menuId);\r\n if (!menu) {\r\n return result;\r\n }\r\n\r\n const activeLinksArray = Array.from(\r\n menu.getElementsByClassName(\"active\") || []\r\n );\r\n const activeLinks = activeLinksArray.filter((el) => el.tagName === \"A\");\r\n if (!activeLinks) {\r\n return result;\r\n }\r\n\r\n activeLinks.forEach((link) => {\r\n const titleSpans = link.getElementsByClassName(\"menu-text\");\r\n if (titleSpans) {\r\n const titleSpan = Array.from(titleSpans).find(\r\n (t) => t.innerHTML && t.innerHTML.trim().length > 0\r\n );\r\n if (titleSpan) {\r\n result.breadcrumbs.push({\r\n pathname: link.pathname,\r\n title: titleSpan.innerHTML,\r\n });\r\n }\r\n }\r\n });\r\n result.title = getTitle(result.breadcrumbs, pathName);\r\n return result;\r\n}\r\n\r\nexport function getTitle(breadCrumbs, pathname) {\r\n if (!breadCrumbs || !pathname) {\r\n return \"\";\r\n }\r\n\r\n const length = breadCrumbs.length;\r\n if (!length) {\r\n return \"\";\r\n }\r\n\r\n return breadCrumbs[length - 1].title;\r\n}\r\n\r\nconst SubheaderContext = createContext();\r\n\r\nexport function useSubheader() {\r\n return useContext(SubheaderContext);\r\n}\r\n\r\nexport const SubheaderConsumer = SubheaderContext.Consumer;\r\n\r\nexport function MetronicSubheaderProvider({ children }) {\r\n const [title, setTitle] = useState(\"\");\r\n const [breadcrumbs, setBreadcrumbs] = useState([]);\r\n const value = { title, setTitle, breadcrumbs, setBreadcrumbs };\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, {useMemo, useLayoutEffect, useEffect} from \"react\";\r\nimport objectPath from \"object-path\";\r\nimport {useLocation} from \"react-router-dom\";\r\nimport {QuickActions} from \"./components/QuickActions\";\r\nimport {BreadCrumbs} from \"./components/BreadCrumbs\";\r\nimport {getBreadcrumbsAndTitle, useSubheader} from \"../../_core/MetronicSubheader\";\r\nimport {useHtmlClassService} from \"../../_core/MetronicLayout\"\r\n\r\nexport function SubHeader() {\r\n const uiService = useHtmlClassService();\r\n const location = useLocation();\r\n const subheader = useSubheader();\r\n\r\n const layoutProps = useMemo(() => {\r\n return {\r\n config: uiService.config,\r\n subheaderMobileToggle: objectPath.get(\r\n uiService.config,\r\n \"subheader.mobile-toggle\"\r\n ),\r\n subheaderCssClasses: uiService.getClasses(\"subheader\", true),\r\n subheaderContainerCssClasses: uiService.getClasses(\r\n \"subheader_container\",\r\n true\r\n )\r\n };\r\n }, [uiService]);\r\n\r\n useLayoutEffect(() => {\r\n const aside = getBreadcrumbsAndTitle(\"kt_aside_menu\", location.pathname);\r\n const header = getBreadcrumbsAndTitle(\"kt_header_menu\", location.pathname);\r\n const breadcrumbs = (aside && aside.breadcrumbs.length > 0) ? aside.breadcrumbs : header.breadcrumbs;\r\n subheader.setBreadcrumbs(breadcrumbs);\r\n subheader.setTitle((aside && aside.title && aside.title.length > 0) ? aside.title : header.title);\r\n // eslint-disable-next-line\r\n }, [location.pathname]);\r\n\r\n // Do not remove this useEffect, need from update title/breadcrumbs outside (from the page)\r\n useEffect(() => {}, [subheader]);\r\n\r\n return (\r\n \r\n \r\n {/* Info */}\r\n
\r\n {layoutProps.subheaderMobileToggle && (\r\n \r\n \r\n \r\n )}\r\n\r\n
\r\n
\r\n <>\r\n {subheader.title}\r\n \r\n {/**/}\r\n
\r\n\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n {/* Toolbar */}\r\n \r\n \r\n \r\n );\r\n}\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid,no-undef */\r\nimport React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport {toAbsoluteUrl} from \"../../../../_helpers\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport function QuickUser() {\r\n const history = useHistory();\r\n const { user } = useSelector(state => state.auth);\r\n\r\n const logoutClick = () => {\r\n const toggle = document.getElementById(\"kt_quick_user_toggle\");\r\n if (toggle) {\r\n toggle.click();\r\n }\r\n history.push(\"/logout\");\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 {user.firstName} {user.lastName}\r\n \r\n \r\n {/* \r\n Sign Out\r\n */}\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport {toAbsoluteUrl} from \"../../../_helpers\";\r\n\r\nexport function ScrollTop() {\r\n return (\r\n
\r\n \r\n \r\n {\" \"}\r\n
\r\n );\r\n}\r\n","// *https://www.registers.service.gov.uk/registers/country/use-the-api*\r\nimport React, { useEffect, useState, useRef } from \"react\";\r\nimport { Steps } from 'intro.js-react';\r\nimport \"intro.js/introjs.css\";\r\nimport \"intro.js/themes/introjs-modern.css\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport { exitInitStepTutorial } from \"../../../src/_redux/cache/cacheCrud\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { BrowserView, MobileView } from 'react-device-detect';\r\n\r\nexport default function Intro(props) {\r\n const stepsRef = useRef();\r\n const intl = useIntl();\r\n const history = useHistory();\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.cache }),\r\n shallowEqual\r\n );\r\n const { initStepTutorial } = currentState;\r\n const [stepsEnabled, setStepsEnabled] = useState(false);\r\n const [initialStep, setInitialStep] = useState(getInitStep());\r\n const [options, setOptions] = useState({\r\n nextLabel: intl.formatMessage({ id: 'AUTH.GENERAL.NEXT' }),\r\n prevLabel: intl.formatMessage({ id: 'AUTH.GENERAL.PREV' }),\r\n doneLabel: intl.formatMessage({ id: 'AUTH.GENERAL.DONE' }),\r\n showBullets: true,\r\n showProgress: true,\r\n showStepNumbers: false,\r\n showButtons: true\r\n });\r\n const [steps, setSteps] = useState([\r\n {\r\n intro:
\r\n

Dobrodošli v zaledni pisarni mikroPOS

\r\n

V čarovniku vas bomo popeljali skozi stvari, ki jih je potrebno nastaviti v aplikaciji preden lahko pričnete z uporabo.

\r\n
    \r\n
  • Vnos FURSovega certifikata za davčno potrjevanje računov
  • \r\n
  • Vnos izdelkov
  • \r\n
  • Registracija blagajne
  • \r\n
  • Vnos blagajniškega uporabnika
  • \r\n
  • Povezovanje blagajne
  • \r\n
\r\n
\r\n },\r\n {\r\n element: \".nSettings\",\r\n intro:
\r\n

Vnos certifikata za davčno potrjevanje računov

\r\n
    \r\n
  • V meniju izberete Nastavitve \\ Vaše podjetje
  • \r\n
  • Nato \"Certifikat za davčno potrjevanje\"
  • \r\n
\r\n
\r\n },\r\n {\r\n element: \".nYourCompany\",\r\n intro:
\r\n

Vnos certifikata za davčno potrjevanje računov

\r\n
    \r\n
  • V meniju izberete Nastavitve \\ Vaše podjetje
  • \r\n
  • Nato \"Certifikat za davčno potrjevanje\"
  • \r\n
\r\n
\r\n },\r\n {\r\n element: \"#kt_company_aside\",\r\n intro:
\r\n

Vnos certifikata za davčno potrjevanje računov

\r\n
    \r\n
  • V meniju izberete Nastavitve \\ Vaše podjetje
  • \r\n
  • Nato \"Certifikat za davčno potrjevanje\"
  • \r\n
\r\n
\r\n },\r\n {\r\n element: \"#hCompanyFurs\",\r\n intro:
\r\n

Vnos certifikata za davčno potrjevanje računov

\r\n
    \r\n
  • Kliknete na ikono
  • \r\n
  • in izberete certifikat za davčno potrjevanje tipa: p12
  • \r\n
  • Vnesete geslo certifikata
  • \r\n
  • Shranite podatke z klikom na gumb \"Shrani spremembe\"
  • \r\n
\r\n
\r\n },\r\n {\r\n element: \".nItemsHeader\",\r\n intro:
\r\n

Vnos skupine izdelkov

\r\n
    \r\n
  • V meniju izberete Izdelki \\ Skupina izdelkov
  • \r\n
\r\n
\r\n },\r\n {\r\n element: \".nItemsGroups\",\r\n intro:
\r\n

Vnos skupine izdelkov

\r\n
    \r\n
  • V meniju izberete Izdelki \\ Skupina izdelkov
  • \r\n
\r\n
\r\n },\r\n {\r\n element: \".chtItemGroups\",\r\n intro:
\r\n

Vnos skupine izdelkov

\r\n
    \r\n
  • Za vnos skupine izdelka kliknite na gumb \"Nova skupina izdelkov\"
  • \r\n
\r\n
\r\n },\r\n {\r\n element: \".mEditItemGroup\",\r\n intro:
\r\n

Vnos nove skupine izdelkov

\r\n
    \r\n
  • Izpolnite polje naziv
  • \r\n
  • Ostala polja izpolnite po želji
  • \r\n
  • in kliknite shrani
  • \r\n
\r\n
\r\n },\r\n {\r\n element: \".nItems\",\r\n intro:
\r\n

Vnos izdelkov

\r\n
    \r\n
  • V meniju izberete Izdelki \\ Izdelki
  • \r\n
\r\n
\r\n },\r\n {\r\n element: \".chtItems\",\r\n intro:
\r\n

Vnos izdelkov

\r\n
    \r\n
  • Za vnos izdelkov kliknite na gumb \"Nov izdelek\"
  • \r\n
\r\n
\r\n },\r\n {\r\n element: \".mEditItem\",\r\n intro:
\r\n

Vnos novega izdelka

\r\n
    \r\n
  • Izpolnite polje naziv
  • \r\n
  • Izpolnite polje skupina artiklov
  • \r\n
  • Bodite prividni pri določitvi DDV stopnje izdelka
  • \r\n
  • in kliknite shrani
  • \r\n
\r\n
\r\n },\r\n {\r\n element: \".nCashiers\",\r\n intro:
\r\n

Vnos davčne blagajne

\r\n
    \r\n
  • V meniju izberete Nastavitve \\ Davčne blagajne
  • \r\n
\r\n
\r\n },\r\n {\r\n element: \".chtCashiers\",\r\n intro:
\r\n

Vnos davčne blagajne

\r\n
    \r\n
  • Za vnos davčne blagajne kliknite na gumb \"Nova davčna blagajna\"
  • \r\n
\r\n
\r\n },\r\n {\r\n element: \".mEditCashier\",\r\n intro:
\r\n

Vnos nove davčne blagajne

\r\n
    \r\n
  • Izpolnite vsa polja
  • \r\n
  • in kliknite shrani
  • \r\n
  • Nato je potrebno še registrirati davčno blagajno pri FURSu
  • \r\n
  • in nato povezti z vašo napravo
  • \r\n
\r\n
\r\n },\r\n {\r\n intro:
\r\n

Hvala za vašo pozornost

\r\n

Želimo vam uspešno uporabo sistema mikroPOS.

\r\n
\r\n }\r\n ]);\r\n\r\n useEffect(() => {\r\n if (initStepTutorial == undefined) {\r\n setStepsEnabled(false);\r\n } else {\r\n setStepsEnabled(!initStepTutorial);\r\n }\r\n }, [initStepTutorial]);\r\n\r\n\r\n function getInitStep() {\r\n var url = window.location.href;\r\n if (url.toLowerCase().indexOf(\"/dashboard\") > 0) {\r\n return 0;\r\n }\r\n if (url.toLowerCase().indexOf(\"/settings/company/furs\") > 0) {\r\n return 1;\r\n }\r\n if (url.toLowerCase().indexOf(\"/itemgroups/new\") > 0) {\r\n return 8;\r\n }\r\n if (url.toLowerCase().indexOf(\"/itemgroups\") > 0) {\r\n return 5;\r\n }\r\n if (url.toLowerCase().indexOf(\"/items/new\") > 0) {\r\n return 11;\r\n }\r\n if (url.toLowerCase().indexOf(\"/items\") > 0) {\r\n return 9;\r\n }\r\n if (url.toLowerCase().indexOf(\"/settings/cashiers/new\") > 0) {\r\n return 14;\r\n }\r\n if (url.toLowerCase().indexOf(\"/settings/cashiers\") > 0) {\r\n return 12;\r\n }\r\n if (url.toLowerCase().indexOf(\"/dashboard\") > 0) {\r\n return 15;\r\n }\r\n return 0;\r\n }\r\n\r\n function onExit() {\r\n exitInitStepTutorial();\r\n }\r\n\r\n\r\n function onBeforeChange(nextStepIndex) {\r\n if (stepsEnabled == false) {\r\n return;\r\n }\r\n var url = window.location.href;\r\n switch (nextStepIndex) {\r\n case 0:\r\n case 15:\r\n if (url.toLowerCase().indexOf(\"/dashboard\") < 0) {\r\n history.push(\"/dashboard\");\r\n }\r\n break;\r\n case 1:\r\n case 2:\r\n case 3:\r\n case 4:\r\n if (url.toLowerCase().indexOf(\"/settings/company/furs\") < 0) {\r\n history.push(\"/settings/company/furs\");\r\n }\r\n stepsRef.current.updateStepElement(nextStepIndex);\r\n break;\r\n case 5:\r\n case 6:\r\n case 7:\r\n if (url.toLowerCase().indexOf(\"/itemgroups/new\") > 0 || url.toLowerCase().indexOf(\"/itemgroups\") < 0) {\r\n history.push(\"/itemGroups\");\r\n }\r\n stepsRef.current.updateStepElement(nextStepIndex);\r\n break;\r\n case 8:\r\n if (url.toLowerCase().indexOf(\"/itemgroups/new\") < 0) {\r\n history.push(\"/itemGroups/new\");\r\n }\r\n stepsRef.current.updateStepElement(nextStepIndex);\r\n break;\r\n case 9:\r\n case 10:\r\n if (url.toLowerCase().indexOf(\"/items/new\") > 0 || url.toLowerCase().indexOf(\"/items\") < 0) {\r\n history.push(\"/items\");\r\n }\r\n stepsRef.current.updateStepElement(nextStepIndex);\r\n break;\r\n case 11:\r\n if (url.toLowerCase().indexOf(\"/items/new\") < 0) {\r\n history.push(\"/items/new\");\r\n }\r\n stepsRef.current.updateStepElement(nextStepIndex);\r\n break;\r\n case 12:\r\n case 13:\r\n if (url.toLowerCase().indexOf(\"/settings/cashiers\") < 0) {\r\n history.push(\"/settings/cashiers\");\r\n }\r\n stepsRef.current.updateStepElement(nextStepIndex);\r\n break;\r\n case 14:\r\n if (url.toLowerCase().indexOf(\"/settings/cashiers/new\") < 0) {\r\n history.push(\"/settings/cashiers/new\");\r\n }\r\n stepsRef.current.updateStepElement(nextStepIndex);\r\n break;\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n );\r\n}","import axios from \"axios\";\r\n\r\nexport function getInit() {\r\n return axios.get(\"/api/account/init\" );\r\n}\r\n\r\nexport function exitInitStepTutorial() {\r\n return axios.get(\"/api/account/exitInitStepTutorial\");\r\n}\r\n","import React, {useMemo} from \"react\";\r\nimport objectPath from \"object-path\";\r\n// LayoutContext\r\nimport {useHtmlClassService} from \"../_core/MetronicLayout\";\r\n// Import Layout components\r\nimport {Header} from \"./header/Header\";\r\nimport {HeaderMobile} from \"./header-mobile/HeaderMobile\";\r\nimport {Aside} from \"./aside/Aside\";\r\nimport {Footer} from \"./footer/Footer\";\r\nimport {LayoutInit} from \"./LayoutInit\";\r\nimport {SubHeader} from \"./subheader/SubHeader\";\r\nimport {QuickPanel} from \"./extras/offcanvas/QuickPanel\";\r\nimport {QuickUser} from \"./extras/offcanvas/QuickUser\";\r\nimport { ScrollTop } from \"./extras/ScrollTop\";\r\nimport Intro from \"../../../app/components/Intro\";\r\n\r\nexport function Layout({ children }) {\r\n const uiService = useHtmlClassService();\r\n // Layout settings (cssClasses/cssAttributes)\r\n const layoutProps = useMemo(() => {\r\n return {\r\n layoutConfig: uiService.config,\r\n selfLayout: objectPath.get(uiService.config, \"self.layout\"),\r\n asideDisplay: objectPath.get(uiService.config, \"aside.self.display\"),\r\n subheaderDisplay: objectPath.get(uiService.config, \"subheader.display\"),\r\n desktopHeaderDisplay: objectPath.get(\r\n uiService.config,\r\n \"header.self.fixed.desktop\"\r\n ),\r\n contentCssClasses: uiService.getClasses(\"content\", true),\r\n contentContainerClasses: uiService.getClasses(\"content_container\", true),\r\n contentExtended: objectPath.get(uiService.config, \"content.extended\")\r\n };\r\n }, [uiService]);\r\n\r\n return layoutProps.selfLayout !== \"blank\" ? (\r\n <>\r\n \r\n {/*begin::Main*/}\r\n \r\n
\r\n {/*begin::Page*/}\r\n
\r\n {layoutProps.asideDisplay && (
\r\n {/*end::Wrapper*/}\r\n
\r\n {/*end::Page*/}\r\n \r\n \r\n \r\n {/*end::Main*/}\r\n \r\n \r\n ) : (\r\n // BLANK LAYOUT\r\n
{children}
\r\n );\r\n}\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {useRouteMatch} from \"react-router-dom\";\r\n\r\nexport function Content({ children }) {\r\n const match = useRouteMatch() || {};\r\n const animationEndClass = \"grid-animateContent-finished\";\r\n const [cssClassesState, setCssClassesState] = useState([\r\n \"grid-animateContent\",\r\n animationEndClass\r\n ]);\r\n\r\n useEffect(() => {\r\n // for animation start should toggle 'grid-animateContent-finished' css class\r\n // TODO: change useMemo\r\n const fullClasses = [...cssClassesState];\r\n const startAnimation = fullClasses.filter(el => el !== animationEndClass);\r\n setCssClassesState(startAnimation);\r\n const timeOutId = setTimeout(() => {\r\n setCssClassesState(fullClasses);\r\n }, 200);\r\n\r\n return () => {\r\n clearTimeout(timeOutId);\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [match.url]);\r\n\r\n return <>{children};\r\n}\r\n","import React from \"react\";\r\nimport {Route} from \"react-router-dom\";\r\nimport {Content} from \"./Content\";\r\n\r\nexport function ContentRoute({ children, component, render, ...props }) {\r\n return (\r\n \r\n {routeProps => {\r\n if (typeof children === \"function\") {\r\n return {children(routeProps)};\r\n }\r\n\r\n if (!routeProps.match) {\r\n return null;\r\n }\r\n\r\n if (children) {\r\n return {children};\r\n }\r\n\r\n if (component) {\r\n return (\r\n {React.createElement(component, routeProps)}\r\n );\r\n }\r\n\r\n if (render) {\r\n return {render(routeProps)};\r\n }\r\n\r\n return null;\r\n }}\r\n \r\n );\r\n}\r\n","import React, {createContext, useContext, useState, useEffect} from \"react\";\r\n\r\nconst MetronicSplashScreenContext = createContext();\r\n\r\nexport function MetronicSplashScreenProvider({ children }) {\r\n const [count, setCount] = useState(0);\r\n let visible = count > 0;\r\n\r\n useEffect(() => {\r\n const splashScreen = document.getElementById(\"splash-screen\");\r\n\r\n // Show SplashScreen\r\n if (splashScreen && visible) {\r\n splashScreen.classList.remove(\"hidden\");\r\n\r\n return () => {\r\n splashScreen.classList.add(\"hidden\");\r\n };\r\n }\r\n\r\n // Hide SplashScreen\r\n let timeout;\r\n if (splashScreen && !visible) {\r\n timeout = setTimeout(() => {\r\n splashScreen.classList.add(\"hidden\");\r\n }, 3000);\r\n }\r\n\r\n return () => {\r\n clearTimeout(timeout);\r\n };\r\n }, [visible]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport function LayoutSplashScreen({ visible = true }) {\r\n // Everything are ready - remove splashscreen\r\n const setCount = useContext(MetronicSplashScreenContext);\r\n\r\n useEffect(() => {\r\n if (!visible) {\r\n return;\r\n }\r\n\r\n setCount(prev => {\r\n return prev + 1;\r\n });\r\n\r\n return () => {\r\n setCount(prev => {\r\n return prev - 1;\r\n });\r\n };\r\n }, [setCount, visible]);\r\n\r\n return null;\r\n}\r\n","import React from \"react\";\r\nimport {createMuiTheme, ThemeProvider} from \"@material-ui/core\";\r\n\r\nconst theme = createMuiTheme(\r\n /**\r\n * @see https://material-ui.com/customization/themes/#theme-configuration-variables\r\n */\r\n {\r\n // direction: \"rtl\",\r\n typography: {\r\n fontFamily: [\"Poppins\"].join(\",\")\r\n },\r\n\r\n palette: {\r\n primary: {\r\n // light: will be calculated from palette.primary.main,\r\n main: \"#17c191\",\r\n // dark: will be calculated from palette.primary.main,\r\n // contrastText: \"#fff\" //will be calculated to contrast with palette.primary.main\r\n },\r\n secondary: {\r\n // light: will be calculated from palette.primary.main,\r\n main: \"#3783e7\",\r\n // dark: will be calculated from palette.primary.main,\r\n // contrastText: \"#fff\" //will be calculated to contrast with palette.primary.main\r\n },\r\n error: {\r\n // light: will be calculated from palette.primary.main,\r\n main: \"#f018a6\",\r\n // dark: will be calculated from palette.primary.main,\r\n // contrastText: \"#fff\" //will be calculated to contrast with palette.primary.main\r\n }\r\n },\r\n\r\n /**\r\n * @see https://material-ui.com/customization/globals/#default-props\r\n */\r\n props: {\r\n // Name of the component ⚛️\r\n MuiButtonBase: {\r\n // The properties to apply\r\n disableRipple: false // No more ripple, on the whole application 💣!\r\n },\r\n\r\n // Set default elevation to 1 for popovers.\r\n MuiPopover: {\r\n elevation: 1\r\n }\r\n }\r\n }\r\n);\r\n\r\nexport function MaterialThemeProvider(props) {\r\n const { children } = props;\r\n\r\n return {children};\r\n}\r\n","import * as requestFromServer from \"./dashboardCrud\";\r\nimport { dashboardSlice, callTypes } from \"./dashboardSlice\";\r\nimport moment from 'moment';\r\n\r\nconst { actions } = dashboardSlice;\r\n\r\nexport const fetchTrafficToday = () => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .getTrafficToday()\r\n .then(response => {\r\n const trafficToday = response.data.model;\r\n dispatch(actions.trafficTodayFetched({ trafficToday: trafficToday }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find traffic today\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\n\r\nexport const fetchTrafficCurrentMonth = () => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .getTrafficCurrentMonth()\r\n .then(response => {\r\n const trafficCurrentMonth = response.data.model;\r\n dispatch(actions.trafficCurrentMonthFetched({ trafficCurrentMonth: trafficCurrentMonth }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find traffic current month\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const fetchTrafficLast12Months = () => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .getTrafficLast12Months()\r\n .then(response => {\r\n const trafficLast12Months = response.data.model;\r\n dispatch(actions.trafficLast12MonthsFetched({ trafficLast12Months: trafficLast12Months }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find traffic last 12 months\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const fetchSalesPurchaseByYears = (year) => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .getSalesPurchaseByYears(year)\r\n .then(response => {\r\n const salesPurchaseByYears = response.data.entities;\r\n dispatch(actions.salesPurchaseByYearsFetched({ salesPurchaseByYears: salesPurchaseByYears }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find sales purchase by years\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const fetchSalesByYears = () => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .getSalesByYears()\r\n .then(response => {\r\n const salesByYears = response.data.entities;\r\n dispatch(actions.salesByYearsFetched({ salesByYears: salesByYears }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find sales by years\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};","import axios from \"axios\";\r\n\r\nexport function getTrafficToday() {\r\n return axios.get(\"/api/document/trafficToday\");\r\n}\r\n\r\nexport function getTrafficCurrentMonth() {\r\n return axios.get(\"/api/document/trafficCurrentMonth\");\r\n}\r\n\r\nexport function getTrafficLast12Months() {\r\n return axios.get(\"/api/document/trafficLast12Months\");\r\n}\r\n\r\nexport function getSalesPurchaseByYears(year) {\r\n return axios.get(\"/api/document/salesPurchaseByYears/\" + year);\r\n}\r\n\r\nexport function getSalesByYears() {\r\n return axios.get(\"/api/document/salesByYears\");\r\n}\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, { useMemo, useEffect } from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../_metronic/_helpers\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { useSelector, shallowEqual, useDispatch } from \"react-redux\";\r\nimport * as actions from \"../../_redux/dashboards/dashboardActions\"\r\n\r\nexport function TodayTrafficWidget({ className }) {\r\n const intl = useIntl();\r\n const dispatch = useDispatch();\r\n const user = useSelector((state) => state.auth.user, shallowEqual);\r\n\r\n useEffect(() => { }, [user]);\r\n\r\n const { currentState } = useSelector(\r\n (state) => ({\r\n currentState: state.dashboard\r\n }),\r\n shallowEqual\r\n );\r\n const { trafficToday, listLoading } = currentState;\r\n\r\n return (\r\n
\r\n
\r\n {listLoading && (\r\n
\r\n
\r\n
\r\n )}\r\n {!listLoading && (\r\n <>\r\n
\r\n
\r\n
\r\n {trafficToday && trafficToday.trafficTodayAmount} \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 {trafficToday && trafficToday.todayIsUp && (\r\n \r\n )}\r\n {trafficToday && !trafficToday.todayIsUp && (\r\n \r\n )}\r\n\r\n {trafficToday && trafficToday.diffTodayYesterday}%\r\n \r\n

\r\n \r\n )}\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, { useMemo, useEffect } from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../_metronic/_helpers\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { useSelector, shallowEqual, useDispatch } from \"react-redux\";\r\nimport * as actions from \"../../_redux/dashboards/dashboardActions\"\r\n\r\nexport function LastMonthTrafficWidget({ className }) {\r\n const intl = useIntl();\r\n const dispatch = useDispatch();\r\n const user = useSelector((state) => state.auth.user, shallowEqual);\r\n\r\n useEffect(() => { }, [user]);\r\n\r\n const { currentState } = useSelector(\r\n (state) => ({\r\n currentState: state.dashboard\r\n }),\r\n shallowEqual\r\n );\r\n const { trafficCurrentMonth, listLoading } = currentState;\r\n\r\n return (\r\n
\r\n
\r\n {listLoading && (\r\n
\r\n
\r\n
\r\n )}\r\n {!listLoading && (\r\n <>\r\n
\r\n
\r\n
\r\n {trafficCurrentMonth && trafficCurrentMonth.trafficCurrentMonthAmount} \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 {trafficCurrentMonth && trafficCurrentMonth.currentMonthIsUp && (\r\n \r\n )}\r\n {trafficCurrentMonth && !trafficCurrentMonth.currentMonthIsUp && (\r\n \r\n )}\r\n\r\n {trafficCurrentMonth && trafficCurrentMonth.diffCurrentMonthLastMonth}%\r\n \r\n

\r\n \r\n )}\r\n
\r\n
\r\n );\r\n}\r\n\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, { useMemo, useEffect } from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../_metronic/_helpers\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { useSelector, shallowEqual, useDispatch } from \"react-redux\";\r\nimport * as actions from \"../../_redux/dashboards/dashboardActions\"\r\n\r\nexport function Last12MonthsTrafficWidget({ className }) {\r\n const intl = useIntl();\r\n const dispatch = useDispatch();\r\n const user = useSelector((state) => state.auth.user, shallowEqual);\r\n\r\n useEffect(() => { }, [user]);\r\n\r\n const { currentState } = useSelector(\r\n (state) => ({\r\n currentState: state.dashboard\r\n }),\r\n shallowEqual\r\n );\r\n const { trafficLast12Months, listLoading } = currentState;\r\n\r\n return (\r\n
\r\n
\r\n {listLoading && (\r\n
\r\n
\r\n
\r\n )}\r\n {!listLoading && (\r\n <>\r\n
\r\n
\r\n
\r\n {trafficLast12Months && trafficLast12Months.trafficLast12MonthsAmount} \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

\r\n\r\n Od {trafficLast12Months && trafficLast12Months.start} do {trafficLast12Months && trafficLast12Months.end}.\r\n

\r\n \r\n )}\r\n
\r\n
\r\n );\r\n}\r\n\r\n","// *https://www.registers.service.gov.uk/registers/country/use-the-api*\r\nimport React from 'react';\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Select from '@material-ui/core/Select';\r\n\r\nexport default function Select5YearBack(props) {\r\n var years = [];\r\n var dt = new Date();\r\n for (var i = 0; i < 5; i++) {\r\n years.push(dt.getFullYear());\r\n dt.setYear(dt.getFullYear() - 1);\r\n }\r\n\r\n return (\r\n <>\r\n { props.onChange(event.target.value); }}\r\n >\r\n {years.map(option => (\r\n \r\n {option}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../_metronic/_helpers\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { useSelector, shallowEqual, useDispatch } from \"react-redux\";\r\nimport * as actions from \"../../_redux/dashboards/dashboardActions\"\r\nimport { Chart } from \"react-google-charts\";\r\nimport Select5YearBack from '../../../../components/Select5YearBack';\r\n\r\n\r\nexport function SalesByYearsWidget({ className }) {\r\n const intl = useIntl();\r\n const dispatch = useDispatch();\r\n const user = useSelector((state) => state.auth.user, shallowEqual);\r\n\r\n useEffect(() => { }, [user]);\r\n\r\n const { currentState } = useSelector(\r\n (state) => ({\r\n currentState: state.dashboard\r\n }),\r\n shallowEqual\r\n );\r\n const { salesByYears, listLoading } = currentState;\r\n\r\n function getChartData(list) {\r\n if (list == null) {\r\n return null;\r\n }\r\n var result = [];\r\n for (var index = 0; index < list.length; index++) {\r\n for (var y = 0; y < list[index].length; y++) {\r\n if (y == 0) {\r\n result.push([]);\r\n }\r\n var data = list[index][y];\r\n if (index > 0 && y > 0) {\r\n result[index].push(parseFloat(data.replace(\".\", \"\").replace(\",\", \".\")));\r\n } else {\r\n result[index].push(data);\r\n }\r\n \r\n }\r\n }\r\n\r\n return result;\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 {listLoading && (\r\n
\r\n
\r\n
\r\n )}\r\n {!listLoading && (\r\n <>\r\n Loading Chart
}\r\n data={getChartData(salesByYears)}\r\n options={{\r\n chartArea: { width: '65%' }\r\n\r\n }}\r\n legendToggle\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","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../_metronic/_helpers\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { useSelector, shallowEqual, useDispatch } from \"react-redux\";\r\nimport * as actions from \"../../_redux/dashboards/dashboardActions\"\r\nimport { Chart } from \"react-google-charts\";\r\nimport Select5YearBack from '../../../../components/Select5YearBack';\r\n\r\n\r\nexport function SalesPurchaseWidget({ className }) {\r\n const intl = useIntl();\r\n const dispatch = useDispatch();\r\n const user = useSelector((state) => state.auth.user, shallowEqual);\r\n const [year, setYear] = useState(new Date().getFullYear());\r\n\r\n useEffect(() => { }, [user]);\r\n\r\n\r\n const { currentState } = useSelector(\r\n (state) => ({\r\n currentState: state.dashboard\r\n }),\r\n shallowEqual\r\n );\r\n const { salesPurchaseByYears, listLoading } = currentState;\r\n\r\n function getChartData(list) {\r\n if (list == null) {\r\n return null;\r\n }\r\n var result = [];\r\n for (var index = 0; index < list.length; index++) {\r\n for (var y = 0; y < list[index].length; y++) {\r\n if (y == 0) {\r\n result.push([]);\r\n }\r\n var data = list[index][y];\r\n if (index > 0 && y > 0) {\r\n result[index].push(parseFloat(data.replace(\".\", \"\").replace(\",\", \".\")));\r\n } else {\r\n result[index].push(data);\r\n }\r\n \r\n }\r\n }\r\n\r\n return result;\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 setYear(val);\r\n dispatch(actions.fetchSalesPurchaseByYears(val));\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {listLoading && (\r\n
\r\n
\r\n
\r\n )}\r\n {!listLoading && (\r\n <>\r\n Loading Chart
}\r\n data={getChartData(salesPurchaseByYears)}\r\n options={{\r\n chartArea: { width: '65%' }\r\n\r\n }}\r\n legendToggle\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","import React, { useEffect } from \"react\";\r\nimport { TodayTrafficWidget} from \"../dashboards/TodayTrafficWidget\";\r\nimport { LastMonthTrafficWidget } from \"../dashboards/LastMonthTrafficWidget\";\r\nimport { Last12MonthsTrafficWidget } from \"../dashboards/Last12MonthsTrafficWidget\";\r\nimport { SalesByYearsWidget } from \"../dashboards/SalesByYearsWidget\";\r\nimport { SalesPurchaseWidget } from \"../dashboards/SalesPurchaseWidget\";\r\nimport { CheckPermissions } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../app/enum/userFunctionalityE\"\r\nimport * as actions from \"../../_redux/dashboards/dashboardActions\"\r\nimport { useSelector, shallowEqual, useDispatch } from \"react-redux\";\r\nimport { BrowserView, MobileView } from 'react-device-detect';\r\n\r\nexport function Dashboard() {\r\n const dispatch = useDispatch();\r\n\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.cache }),\r\n shallowEqual\r\n );\r\n\r\n useEffect(() => {\r\n if (currentState.vatRates != null && currentState.vatRates != undefined) {\r\n Promise.all([\r\n dispatch(actions.fetchTrafficLast12Months()),\r\n dispatch(actions.fetchTrafficCurrentMonth()),\r\n dispatch(actions.fetchSalesByYears()),\r\n dispatch(actions.fetchTrafficToday()),\r\n dispatch(actions.fetchSalesPurchaseByYears(new Date().getFullYear()))\r\n ]);\r\n }\r\n }, [currentState.vatRates]);\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\n ;\r\n}\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Dashboard } from \"./dashboards/Dashboard\";\r\nimport { CheckPermissions, hasRoleForFunctionality } from \"../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../app/enum/userFunctionalityE\"\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nexport function DashboardPage() {\r\n const { user } = useSelector(state => state.auth);\r\n\r\n var url = \"\";\r\n \r\n if (!hasRoleForFunctionality(user, [UserFunctionalityE.PregledPrometaZaDanes, UserFunctionalityE.PregledPrometaZaTekociMesec,\r\n UserFunctionalityE.PregledPrometaVZadnjih12MesecihBrezDdv, UserFunctionalityE.PregledProdajePoLetih,\r\n UserFunctionalityE.PregledProdajeNabavePoLetih])) {\r\n\r\n if (hasRoleForFunctionality(user, [UserFunctionalityE.PregledStrank, UserFunctionalityE.UrediStranke])) {\r\n url = \"/customers\";\r\n } else if (hasRoleForFunctionality(user, [UserFunctionalityE.PregledSkupinIzdelkov, UserFunctionalityE.UrediSkupineIzdelkov])) {\r\n url = \"/itemGroups\";\r\n } else if (hasRoleForFunctionality(user, [UserFunctionalityE.PregledIzdelkov, UserFunctionalityE.UrediIzdelke])) {\r\n url = \"/items\";\r\n } else if (hasRoleForFunctionality(user, [UserFunctionalityE.PregledDobavniceRacuni, UserFunctionalityE.UrediDobavniceRacune])) {\r\n url = \"/sales/delivery_note_invoices\";\r\n } else if (hasRoleForFunctionality(user, [UserFunctionalityE.PregledPonudb, UserFunctionalityE.UrediPonudbe])) {\r\n url = \"/sales/offers\";\r\n } else if (hasRoleForFunctionality(user, [UserFunctionalityE.PregledDobavnic, UserFunctionalityE.UrediDobavnice])) {\r\n url = \"/sales/delivery_notes\";\r\n } else if (hasRoleForFunctionality(user, [UserFunctionalityE.PregledRacunov])) {\r\n url = \"/sales/invoices\";\r\n } else if (hasRoleForFunctionality(user, [UserFunctionalityE.PregledDobropisovOffice])) {\r\n url = \"/sales/credits\";\r\n } else if (hasRoleForFunctionality(user, [UserFunctionalityE.PregledIzdatkovOffice])) {\r\n url = \"/sales/expenses\";\r\n } else if (hasRoleForFunctionality(user, [UserFunctionalityE.PregledPrejemkovOffice])) {\r\n url = \"/sales/receipts\";\r\n } else if (hasRoleForFunctionality(user, [UserFunctionalityE.PregledZakljuckov])) {\r\n url = \"/sales/ends\";\r\n } else if (hasRoleForFunctionality(user, [UserFunctionalityE.PregledPrevzemnihListov, UserFunctionalityE.UrediPrevzemneListe])) {\r\n url = \"/purchase/takeovers\";\r\n } else {\r\n url = \"/settings/profile\";\r\n }\r\n }\r\n\r\n return <>\r\n {url == \"\" ? : }\r\n ;\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport axios from \"axios\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nexport function CheckAxiosRequests() {\r\n const intl = useIntl();\r\n const [message, setMessage] = useState(\"\");\r\n const history = useHistory();\r\n const [open, setOpen] = useState(false);\r\n\r\n useEffect(() => {\r\n axios.interceptors.response.use(function (response) {\r\n return response;\r\n }, function (error) {\r\n var showError = false;\r\n var text = intl.formatMessage({ id: 'AUTH.OPS_CONNECTION_PROBLEM' });\r\n switch (error.response.status) {\r\n case 500:\r\n showError = !(error.response.data != undefined && error.response.data.didError == true);\r\n break;\r\n case 401:\r\n history.push(\"/logout\");\r\n break;\r\n default:\r\n showError = true;\r\n break;\r\n }\r\n if (showError == true) {\r\n setMessage(text);\r\n setOpen(true);\r\n }\r\n // Do something with response error\r\n return Promise.reject(error);\r\n });\r\n })\r\n\r\n function handleClose() {\r\n setOpen(false);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {message}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import * as requestFromServer from \"./cacheCrud\";\r\nimport { cacheSlice, callTypes } from \"./cacheSlice\";\r\n\r\nconst { actions } = cacheSlice;\r\n\r\n\r\nexport const fetchInit = () => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .getInit()\r\n .then(response => {\r\n const { model } = response.data;\r\n dispatch(actions.allVatRatesFetched(model.vatRates ));\r\n dispatch(actions.allItemTypesFetched(model.itemTypes));\r\n dispatch(actions.allUnitsFetched(model.units));\r\n dispatch(actions.allCashiersFetched(model.cashiers));\r\n dispatch(actions.allOfficeReportsFetched(model.officeReports));\r\n dispatch(actions.initStepTutorialsFetched(model.initStepTutorial));\r\n dispatch(actions.allDocumentTypesFetched(model.documentTypes));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't load init data\";\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n","import React, { useEffect } from \"react\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { LoadingDialog } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function UsersLoadingDialog() {\r\n const intl = useIntl();\r\n // Users Redux state\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.users.listLoading }),\r\n shallowEqual\r\n );\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading]);\r\n return ;\r\n}\r\n","import * as requestFromServer from \"./usersCrud\";\r\nimport { usersSlice, callTypes } from \"./usersSlice\";\r\n\r\nconst {actions} = usersSlice;\r\nexport const fetchUsers = queryParams => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .findUsers(queryParams)\r\n .then(response => {\r\n const { totalCount, entities } = response.data;\r\n dispatch(actions.usersFetched({ totalCount, entities }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find users\";\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\nexport const fetchUser = id => dispatch => {\r\n if (!id) {\r\n return dispatch(actions.userFetched({ userForEdit: undefined }));\r\n }\r\n\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .getUserById(id)\r\n .then(response => {\r\n const user = response.data.model;\r\n dispatch(actions.userFetched({ userForEdit: user }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find user\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const deleteUser = id => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .deleteUser(id)\r\n .then(response => {\r\n dispatch(actions.userDeleted({ id }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't delete user\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const createUser = userForCreation => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .createUser(userForCreation)\r\n .then(response => {\r\n const { model } = response.data;\r\n dispatch(actions.userCreated({ model }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't create user\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const updateUser = user => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .updateUser(user)\r\n .then(() => {\r\n dispatch(actions.userUpdated({ user }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't update user\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const deleteUsers = ids => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .deleteUsers(ids)\r\n .then(() => {\r\n dispatch(actions.usersDeleted({ ids }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't delete users\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const fetchUserRoles = type => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .getUserRoles(type)\r\n .then(response => {\r\n const { totalCount, entities } = response.data;\r\n dispatch(actions.userRolesFetched({ totalCount, entities }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find userRoles\";\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\nexport const fetchCashiers = () => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .findCashiers()\r\n .then(response => {\r\n const { totalCount, entities } = response.data;\r\n dispatch(actions.cashiersFetched({ totalCount, entities }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find cashiers\";\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\n","import axios from \"axios\";\r\n\r\nexport function checkIfCashierUserNameIsFree(applicationUserId, userName) {\r\n applicationUserId = (applicationUserId == undefined || applicationUserId == null) ? -1 : applicationUserId;\r\n return axios.post(\"/api/user/CheckIfCashierUserNameIsFree\", { applicationUserId, userName });\r\n}\r\n\r\n// Method from server should return QueryResultsModel(items: any[], totalsCount: number)\r\n// items => filtered/sorted result\r\nexport function findUsers(queryParams) {\r\n return axios.post(\"/api/user/find\", queryParams );\r\n}\r\n\r\n// CREATE => POST: add a new user to the server\r\nexport function createUser(user) {\r\n return axios.post(\"/api/user\", user );\r\n}\r\n\r\nexport function getUserById(userId) {\r\n return axios.get(\"/api/user/\" + userId );\r\n}\r\n\r\n// UPDATE => PUT: update the user on the server\r\nexport function updateUser(user) {\r\n return axios.put(\"/api/user/\" + user.id, user);\r\n}\r\n\r\n// DELETE => delete the user from the server\r\nexport function deleteUser(userId) {\r\n return axios.delete(\"/api/user/\" + userId );\r\n}\r\n\r\n// DELETE Users by ids\r\nexport function deleteUsers(ids) {\r\n return axios.post(\"/api/user/deleteUsers\", { ids });\r\n}\r\n\r\nexport function getUserRoles() {\r\n return axios.get(\"/api/userRole/cashier\");\r\n}\r\n\r\nexport function findCashiers() {\r\n var queryParams = {\r\n pageNumber: 1,\r\n pageSize: 10000,\r\n query: \"\",\r\n sortField: \"businessPremiseTitle\",\r\n sortOrder: \"asc\",\r\n status: 1\r\n\r\n };\r\n return axios.post(\"/api/cashier/find\", queryParams);\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useIntl } from \"react-intl\";\r\n\r\nexport function UserEditDialogHeader({ id }) {\r\n const intl = useIntl();\r\n // Users Redux state\r\n const { userForEdit, actionsLoading } = useSelector(\r\n (state) => ({\r\n userForEdit: state.users.userForEdit,\r\n actionsLoading: state.users.actionsLoading,\r\n }),\r\n shallowEqual\r\n );\r\n\r\n const [title, setTitle] = useState(\"\");\r\n // Title couting\r\n useEffect(() => {\r\n let _title = id ? \"\" : intl.formatMessage({ id: \"AUTH.USER.NEW\" }) ;\r\n if (userForEdit && id) {\r\n _title = intl.formatMessage({ id: \"AUTH.USER.EDIT\" }) + ` '${userForEdit.firstName} ${userForEdit.lastName}'`;\r\n }\r\n\r\n setTitle(_title);\r\n // eslint-disable-next-line\r\n }, [userForEdit, actionsLoading]);\r\n\r\n return (\r\n <>\r\n {actionsLoading && }\r\n \r\n {title}\r\n \r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\n\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nexport default function ErrorPopup(props) {\r\n const { message, open } = props;\r\n\r\n function handleClose() {\r\n props.onClose();\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n { message }\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","// Form is based on Formik\r\n// Data validation is based on Yup\r\n// Please, be familiar with article first:\r\n// https://hackernoon.com/react-form-validation-with-formik-and-yup-8b76bda62e10\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { Formik, Form, Field, FieldArray } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport {\r\n Input,\r\n} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { checkIfCashierUserNameIsFree } from \"../../../_redux/users/usersCrud\";\r\nimport ErrorPopup from \"../../../../Helpers/ErrorPopup\"\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Select from '@material-ui/core/Select';\r\nimport { CheckPermissions, hasRoleForFunctionality } from \"../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../enum/userFunctionalityE\"\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport function UserEditForm({\r\n userRoles,\r\n saveUser,\r\n cashierUser,\r\n actionsLoading,\r\n onHide,\r\n}) {\r\n const { user } = useSelector(state => state.auth);\r\n const intl = useIntl();\r\n const [isForeignOperator, setIsForeignOperator] = useState(cashierUser.foreignOperator);\r\n const [errorMessage, setErrorMessage] = useState(\"\");\r\n const [errorOpen, setErrorOpen] = useState(false);\r\n const [init, setInit] = useState(false);\r\n \r\n useEffect(() => {\r\n if (cashierUser.id > 0 && !init) {\r\n setIsForeignOperator(cashierUser.foreignOperator);\r\n setInit(true);\r\n }\r\n });\r\n var readOnly = !hasRoleForFunctionality(user, [UserFunctionalityE.UrediBlagajniskeUporabnike]);\r\n // Validation schema\r\n const UserEditSchema = Yup.object().shape({\r\n firstName: Yup.string()\r\n .max(50, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_50_SYMBOLS' }))\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })),\r\n userName: Yup.string()\r\n .min(1, intl.formatMessage({ id: 'AUTH.GENERAL.MINIMUM_1_SYMBOLS' }))\r\n .max(50, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_50_SYMBOLS' }))\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n }))\r\n .test('validator', intl.formatMessage({ id: 'AUTH.GENERAL.CASHIER_USERNAME_ONLY_DIGIT' }), value => {\r\n return new Promise((resolve, reject) => {\r\n if (/^[0-9]{1,50}$/.test(value)) {\r\n resolve(true);\r\n } else {\r\n resolve(false);\r\n }\r\n })\r\n })\r\n .test('validator', intl.formatMessage({ id: 'AUTH.GENERAL.CASHIER_USERNAME_EXISTS_YET' }), value => {\r\n return new Promise((resolve, reject) => {\r\n if (/^[0-9]{1,50}$/.test(value)) {\r\n\r\n checkIfCashierUserNameIsFree(cashierUser.id, value)\r\n .then(({ data }) => {\r\n if (!data.didError) {\r\n resolve(data.model);\r\n } else {\r\n setErrorMessage(data.message);\r\n setErrorOpen(true);\r\n resolve(false);\r\n }\r\n })\r\n .catch((e) => {\r\n resolve(false);\r\n });\r\n } else {\r\n resolve(false);\r\n }\r\n })\r\n }),\r\n taxNumber: Yup.string().test('validator', intl.formatMessage({ id: 'AUTH.GENERAL.INVALID_TAXNUMBER' }), value => {\r\n return new Promise((resolve, reject) => {\r\n if (isForeignOperator) {\r\n resolve(true);\r\n } else {\r\n if (/^[0-9]{8}$/.test(value)) {\r\n resolve(true);\r\n } else {\r\n resolve(false);\r\n }\r\n }\r\n })\r\n }),\r\n email: Yup.string()\r\n .email(intl.formatMessage({ id: 'AUTH.GENERAL.WRONG_EMAIL_FORMAT' }))\r\n \r\n });\r\n\r\n\r\n\r\n\r\n\r\n return (\r\n <>\r\n {\r\n var obj = {\r\n email: values.email,\r\n firstName: values.firstName,\r\n foreignOperator: values.foreignOperator,\r\n id: values.id,\r\n lastName: values.lastName,\r\n phone: values.phone,\r\n taxNumber: values.taxNumber,\r\n userName: values.userName,\r\n applicationUserFiscalCashierBusinessUnitUserRole: values.applicationUserFiscalCashierBusinessUnitUserRole\r\n }\r\n\r\n saveUser(obj);\r\n }}\r\n >\r\n {({ handleSubmit, errors, values }) => (\r\n <>\r\n \r\n {actionsLoading && (\r\n
\r\n
\r\n
\r\n )}\r\n {!actionsLoading && (\r\n
\r\n
\r\n {/* Login */}\r\n
\r\n \r\n \r\n
\r\n {/* First Name */}\r\n
\r\n \r\n \r\n
\r\n {/* Last Name */}\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 {values.applicationUserFiscalCashierBusinessUnitUserRole.map((cashier, index) => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n )}\r\n />\r\n \r\n
{cashier.fiscalCashierBusinessUnit.businessPremiseTitle}\r\n \r\n {userRoles.map(option => (\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 {!actionsLoading && (\r\n \r\n handleSubmit()}\r\n className=\"btn btn-primary btn-elevate\"\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n setErrorOpen(false)} />\r\n \r\n );\r\n}\r\n","export const defaultSorted = [{ dataField: \"id\", order: \"asc\" }];\r\nexport const sizePerPageList = [\r\n { text: \"10\", value: 10 },\r\n { text: \"25\", value: 25 },\r\n { text: \"50\", value: 50 }\r\n];\r\nexport const initialFilter = {\r\n status: 1,\r\n query: \"\",\r\n sortOrder: \"asc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25\r\n};\r\n","import React, {createContext, useContext, useState, useCallback} from \"react\";\r\nimport {isEqual, isFunction} from \"lodash\";\r\nimport {initialFilter} from \"./UsersUIHelpers\";\r\n\r\nconst UsersUIContext = createContext();\r\n\r\nexport function useUsersUIContext() {\r\n return useContext(UsersUIContext);\r\n}\r\n\r\nexport const UsersUIConsumer = UsersUIContext.Consumer;\r\n\r\nexport function UsersUIProvider({usersUIEvents, children}) {\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n const initUser = {\r\n id: undefined,\r\n userName : \"\",\r\n firstName: \"\",\r\n lastName: \"\",\r\n phone: \"\",\r\n email: \"\",\r\n taxNumber: \"\",\r\n foreignOperator: false,\r\n applicationUserFiscalCashierBusinessUnitUserRole: []\r\n };\r\n\r\n const value = {\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initUser,\r\n newUserButtonClick: usersUIEvents.newUserButtonClick,\r\n openEditUserDialog: usersUIEvents.openEditUserDialog,\r\n openDeleteUserDialog: usersUIEvents.openDeleteUserDialog,\r\n openDeleteUsersDialog: usersUIEvents.openDeleteUsersDialog\r\n };\r\n\r\n return {children};\r\n}","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/users/usersActions\";\r\nimport { UserEditDialogHeader } from \"./UserEditDialogHeader\";\r\nimport { UserEditForm } from \"./UserEditForm\";\r\nimport { useUsersUIContext } from \"../UsersUIContext\";\r\n\r\nexport function UserEditDialog({ id, show, onHide }) {\r\n // Users UI Context\r\n const usersUIContext = useUsersUIContext();\r\n const usersUIProps = useMemo(() => {\r\n return {\r\n initUser: usersUIContext.initUser,\r\n };\r\n }, [usersUIContext]);\r\n\r\n // Users Redux state\r\n const dispatch = useDispatch();\r\n const { actionsLoading, userForEdit, userRoles, cashiers } = useSelector(\r\n (state) => ({\r\n actionsLoading: state.users.actionsLoading,\r\n userForEdit: state.users.userForEdit,\r\n userRoles: state.users.userRoles,\r\n cashiers: state.users.cashiers\r\n }),\r\n shallowEqual\r\n );\r\n\r\n useEffect(() => {\r\n dispatch(actions.fetchCashiers());\r\n dispatch(actions.fetchUserRoles(1));\r\n dispatch(actions.fetchUser(id));\r\n }, [id, dispatch]);\r\n\r\n // server request for saving user\r\n const saveUser = (user) => {\r\n if (!id) {\r\n // server request for creating user\r\n dispatch(actions.createUser(user)).then(() => onHide());\r\n } else {\r\n // server request for updating user\r\n dispatch(actions.updateUser(user)).then(() => onHide());\r\n }\r\n };\r\n\r\n function getUser() {\r\n if (userForEdit == null || userForEdit == undefined) {\r\n var user = usersUIProps.initUser;\r\n if (cashiers != undefined || cashiers != null) {\r\n user.applicationUserFiscalCashierBusinessUnitUserRole = [];\r\n for (var x = 0; x < cashiers.length; x++) {\r\n var cashier = cashiers[x];\r\n\r\n var auFcbUr = {};\r\n auFcbUr.id = x * -1;\r\n auFcbUr.userRole = null;\r\n auFcbUr.userRoleId = -1;\r\n auFcbUr.fiscalCashierBusinessUnit = cashier;\r\n auFcbUr.fiscalCashierBusinessUnitId = cashier.id;\r\n\r\n user.applicationUserFiscalCashierBusinessUnitUserRole.push(auFcbUr);\r\n }\r\n }\r\n \r\n return user;\r\n }\r\n return userForEdit;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport * as actions from \"../../../_redux/users/usersActions\";\r\nimport { useUsersUIContext } from \"../UsersUIContext\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport function UserDeleteDialog({ id, show, onHide }) {\r\n // Users UI Context\r\n const usersUIContext = useUsersUIContext();\r\n const usersUIProps = useMemo(() => {\r\n return {\r\n setIds: usersUIContext.setIds,\r\n queryParams: usersUIContext.queryParams\r\n };\r\n }, [usersUIContext]);\r\n\r\n // Users Redux state\r\n const dispatch = useDispatch();\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.users.actionsLoading }),\r\n shallowEqual\r\n );\r\n\r\n // if !id we should close modal\r\n useEffect(() => {\r\n if (!id) {\r\n onHide();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [id]);\r\n\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading, dispatch]);\r\n\r\n const deleteUser = () => {\r\n // server request for deleting user by id\r\n dispatch(actions.deleteUser(id)).then(() => {\r\n // refresh list after deletion\r\n dispatch(actions.fetchUsers(usersUIProps.queryParams));\r\n // clear selections list\r\n usersUIProps.setIds([]);\r\n // closing delete modal\r\n onHide();\r\n });\r\n };\r\n\r\n return (\r\n \r\n {/*begin::Loading*/}\r\n {isLoading && }\r\n {/*end::Loading*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isLoading && (\r\n \r\n )}\r\n {isLoading && }\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","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/users/usersActions\";\r\nimport { useUsersUIContext } from \"../UsersUIContext\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport function UsersDeleteDialog({ show, onHide }) {\r\n // Users UI Context\r\n const usersUIContext = useUsersUIContext();\r\n const usersUIProps = useMemo(() => {\r\n return {\r\n ids: usersUIContext.ids,\r\n setIds: usersUIContext.setIds,\r\n queryParams: usersUIContext.queryParams,\r\n };\r\n }, [usersUIContext]);\r\n\r\n // Users Redux state\r\n const dispatch = useDispatch();\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.users.actionsLoading }),\r\n shallowEqual\r\n );\r\n\r\n // if users weren't selected we should close modal\r\n useEffect(() => {\r\n if (!usersUIProps.ids || usersUIProps.ids.length === 0) {\r\n onHide();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [usersUIProps.ids]);\r\n\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading, dispatch]);\r\n\r\n const deleteUsers = () => {\r\n // server request for deleting user by selected ids\r\n dispatch(actions.deleteUsers(usersUIProps.ids)).then(() => {\r\n // refresh list after deletion\r\n dispatch(actions.fetchUsers(usersUIProps.queryParams)).then(\r\n () => {\r\n // clear selections list\r\n usersUIProps.setIds([]);\r\n // closing delete modal\r\n onHide();\r\n }\r\n );\r\n });\r\n };\r\n\r\n return (\r\n \r\n {/*begin::Loading*/}\r\n {isLoading && }\r\n {/*end::Loading*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isLoading && (\r\n \r\n )}\r\n {isLoading && }\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","import React, { useMemo } from \"react\";\r\nimport { Formik } from \"formik\";\r\nimport { isEqual } from \"lodash\";\r\nimport { useUsersUIContext } from \"../UsersUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nconst prepareFilter = (queryParams, values) => {\r\n const { searchText } = values;\r\n const newQueryParams = { ...queryParams };\r\n \r\n newQueryParams.query = searchText;\r\n return newQueryParams;\r\n};\r\n\r\nexport function UsersFilter({ listLoading }) {\r\n const intl = useIntl();\r\n\r\n // Users UI Context\r\n const usersUIContext = useUsersUIContext();\r\n const usersUIProps = useMemo(() => {\r\n return {\r\n queryParams: usersUIContext.queryParams,\r\n setQueryParams: usersUIContext.setQueryParams,\r\n };\r\n }, [usersUIContext]);\r\n\r\n // queryParams, setQueryParams,\r\n const applyFilter = (values) => {\r\n const newQueryParams = prepareFilter(usersUIProps.queryParams, values);\r\n if (!isEqual(newQueryParams, usersUIProps.queryParams)) {\r\n newQueryParams.pageNumber = 1;\r\n // update list by queryParams\r\n usersUIProps.setQueryParams(newQueryParams);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {\r\n applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n setFieldValue(\"searchText\", e.target.value);\r\n handleSubmit();\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","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../../../_metronic/_helpers\";\r\nimport { CheckPermissions } from \"../../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../../enum/userFunctionalityE\"\r\n\r\n\r\nexport function ActionsColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n { openEditUserDialog, openDeleteUserDialog }\r\n) {\r\n return (\r\n <>\r\n openEditUserDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n <> \r\n\r\n \r\n openDeleteUserDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","// React bootstrap table next =>\r\n// DOCS: https://react-bootstrap-table.github.io/react-bootstrap-table2/docs/\r\n// STORYBOOK: https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html\r\nimport React, { useEffect, useMemo } from \"react\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory, {\r\n PaginationProvider,\r\n} from \"react-bootstrap-table2-paginator\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/users/usersActions\";\r\nimport {\r\n getSelectRow,\r\n getHandlerTableChange,\r\n NoRecordsFoundMessage,\r\n PleaseWaitMessage,\r\n sortCaret,\r\n headerSortingClasses,\r\n} from \"../../../../../../_metronic/_helpers\";\r\nimport * as uiHelpers from \"../UsersUIHelpers\";\r\nimport * as columnFormatters from \"./column-formatters\";\r\nimport { Pagination } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useUsersUIContext } from \"../UsersUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function UsersTable() {\r\n const intl = useIntl();\r\n // Users UI Context\r\n const usersUIContext = useUsersUIContext();\r\n const usersUIProps = useMemo(() => {\r\n return {\r\n ids: usersUIContext.ids,\r\n setIds: usersUIContext.setIds,\r\n queryParams: usersUIContext.queryParams,\r\n setQueryParams: usersUIContext.setQueryParams,\r\n openEditUserDialog: usersUIContext.openEditUserDialog,\r\n openDeleteUserDialog: usersUIContext.openDeleteUserDialog,\r\n };\r\n }, [usersUIContext]);\r\n\r\n // Getting curret state of users list from store (Redux)\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.users }),\r\n shallowEqual\r\n );\r\n const { totalCount, entities, listLoading } = currentState;\r\n\r\n // Users Redux state\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n // clear selections list\r\n usersUIProps.setIds([]);\r\n // server call by queryParams\r\n dispatch(actions.fetchUsers(usersUIProps.queryParams));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [usersUIProps.queryParams, dispatch]);\r\n\r\n // Table columns\r\n const columns = [\r\n {\r\n dataField: \"id\",\r\n text: \"#\",\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"firstName\",\r\n text: intl.formatMessage({ id: \"AUTH.INPUT.FULLNAME\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"lastName\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.LASTNAME\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"action\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.ACTIONS\" }),\r\n formatter: columnFormatters.ActionsColumnFormatter,\r\n formatExtraData: {\r\n openEditUserDialog: usersUIProps.openEditUserDialog,\r\n openDeleteUserDialog: usersUIProps.openDeleteUserDialog,\r\n },\r\n classes: \"text-right pr-0\",\r\n headerClasses: \"text-right pr-3\",\r\n style: {\r\n minWidth: \"100px\",\r\n },\r\n },\r\n ];\r\n\r\n const customTotal = (from, to, size) => (\r\n \r\n {from} - { to} {size} \r\n \r\n );\r\n\r\n // Table pagination properties\r\n const paginationOptions = {\r\n custom: true,\r\n totalSize: totalCount,\r\n sizePerPageList: uiHelpers.sizePerPageList,\r\n sizePerPage: usersUIProps.queryParams.pageSize,\r\n page: usersUIProps.queryParams.pageNumber,\r\n paginationTotalRenderer: customTotal,\r\n };\r\n return (\r\n <>\r\n \r\n {({ paginationProps, paginationTableProps }) => {\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","import React, { useMemo } from \"react\";\r\nimport { useUsersUIContext } from \"../UsersUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function UsersGrouping() {\r\n const intl = useIntl();\r\n\r\n // Users UI Context\r\n const usersUIContext = useUsersUIContext();\r\n const usersUIProps = useMemo(() => {\r\n return {\r\n ids: usersUIContext.ids,\r\n setIds: usersUIContext.setIds,\r\n openDeleteUsersDialog: usersUIContext.openDeleteUsersDialog\r\n };\r\n }, [usersUIContext]);\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","import React, { useMemo } from \"react\";\r\nimport {\r\n Card,\r\n CardBody,\r\n CardHeader,\r\n CardHeaderToolbar,\r\n} from \"../../../../../_metronic/_partials/controls\";\r\nimport { UsersFilter } from \"./users-filter/UsersFilter\";\r\nimport { UsersTable } from \"./users-table/UsersTable\";\r\nimport { UsersGrouping } from \"./users-grouping/UsersGrouping\";\r\nimport { useUsersUIContext } from \"./UsersUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { CheckPermissions } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\n\r\nexport function UsersCard() {\r\n const intl = useIntl();\r\n const usersUIContext = useUsersUIContext();\r\n const usersUIProps = useMemo(() => {\r\n return {\r\n ids: usersUIContext.ids,\r\n newUserButtonClick: usersUIContext.newUserButtonClick,\r\n };\r\n }, [usersUIContext]);\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 {usersUIProps.ids.length > 0 && }\r\n \r\n \r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\n\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nexport default function InfoPopup(props) {\r\n const { message, open } = props;\r\n\r\n function handleClose() {\r\n props.onClose();\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n { message }\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\nimport { UsersLoadingDialog } from \"./users-loading-dialog/UsersLoadingDialog\";\r\nimport { UserEditDialog } from \"./user-edit-dialog/UserEditDialog\";\r\nimport { UserDeleteDialog } from \"./user-delete-dialog/UserDeleteDialog\";\r\nimport { UsersDeleteDialog } from \"./users-delete-dialog/UsersDeleteDialog\";\r\nimport { UsersUIProvider } from \"./UsersUIContext\";\r\nimport { UsersCard } from \"./UsersCard\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport InfoPopup from \"../../../Helpers/InfoPopup\"\r\nimport { useIntl } from \"react-intl\";\r\n\r\nexport function UsersPage({ history }) {\r\n const intl = useIntl();\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n const { user } = useSelector(state => state.auth);\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.users }),\r\n shallowEqual\r\n );\r\n const { totalCount } = currentState;\r\n\r\n\r\n const usersUIEvents = {\r\n newUserButtonClick: () => {\r\n if (totalCount < user.organizationCashierUserCount) {\r\n history.push(\"/users/cashier/new\");\r\n } else {\r\n setOpen(true);\r\n setMessage(intl.formatMessage({\r\n id: \"GENERAL.CAN_NOT_ADDED_USERS\",\r\n }));\r\n }\r\n },\r\n openEditUserDialog: (id) => {\r\n history.push(`/users/cashier/${id}/edit`);\r\n },\r\n openDeleteUserDialog: (id) => {\r\n history.push(`/users/cashier/${id}/delete`);\r\n },\r\n openDeleteUsersDialog: () => {\r\n history.push(`/users/cashier/deleteUsers`);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/users/cashier\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/users/cashier\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/users/cashier\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/users/cashier\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n { setOpen(false); }} />\r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { LoadingDialog } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function OfficeUsersLoadingDialog() {\r\n const intl = useIntl();\r\n // Office users Redux state\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.officeUsers.listLoading }),\r\n shallowEqual\r\n );\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading]);\r\n return ;\r\n}\r\n","import * as requestFromServer from \"./officeUsersCrud\";\r\nimport { officeUsersSlice, callTypes } from \"./officeUsersSlice\";\r\n\r\nconst { actions } = officeUsersSlice;\r\n\r\nexport const fetchOfficeUsers = queryParams => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .findOfficeUsers(queryParams)\r\n .then(response => {\r\n const { totalCount, entities } = response.data;\r\n dispatch(actions.officeUsersFetched({ totalCount, entities }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find office users\";\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\nexport const fetchOfficeUser = id => dispatch => {\r\n if (!id) {\r\n return dispatch(actions.officeUserFetched({ officeUserForEdit: undefined }));\r\n }\r\n\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .getOfficeUserById(id)\r\n .then(response => {\r\n const officeUser = response.data.model;\r\n if (officeUser.taxNumber == null) {\r\n officeUser.taxNumber = \"\";\r\n }\r\n officeUser.changepassword = \"\";\r\n dispatch(actions.officeUserFetched({ officeUserForEdit: officeUser }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find office user\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const deleteOfficeUser = id => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .deleteOfficeUser(id)\r\n .then(response => {\r\n dispatch(actions.officeUserDeleted({ id }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't delete office user\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const createOfficeUser = officeUserForCreation => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .createOfficeUser(officeUserForCreation)\r\n .then(response => {\r\n const { model } = response.data;\r\n dispatch(actions.officeUserCreated({ model }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't create office user\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const updateOfficeUser = officeUser => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .updateOfficeUser(officeUser)\r\n .then(() => {\r\n dispatch(actions.officeUserUpdated({ officeUser }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't update office user\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const deleteOfficeUsers = ids => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .deleteOfficeUsers(ids)\r\n .then(() => {\r\n dispatch(actions.officeUsersDeleted({ ids }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't delete office users\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const fetchOfficeUserRoles = type => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .getOfficeUserRoles(type)\r\n .then(response => {\r\n const { totalCount, entities } = response.data;\r\n dispatch(actions.userRolesFetched({ totalCount, entities }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find userRoles\";\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n","import axios from \"axios\";\r\n\r\nexport function checkIfOfficeUserNameIsFree(applicationUserId, userName) {\r\n applicationUserId = (applicationUserId == undefined || applicationUserId == null) ? -1 : applicationUserId;\r\n return axios.post(\"/api/officeUser/CheckIfOfficeUserNameIsFree\", { applicationUserId, userName });\r\n}\r\n\r\n// Method from server should return QueryResultsModel(items: any[], totalsCount: number)\r\n// items => filtered/sorted result\r\nexport function findOfficeUsers(queryParams) {\r\n return axios.post(\"/api/officeUser/find\", queryParams );\r\n}\r\n\r\n// CREATE => POST: add a new user to the server\r\nexport function createOfficeUser(user) {\r\n return axios.post(\"/api/officeUser\", user );\r\n}\r\n\r\nexport function getOfficeUserById(userId) {\r\n return axios.get(\"/api/officeUser/\" + userId );\r\n}\r\n\r\n// UPDATE => PUT: update the user on the server\r\nexport function updateOfficeUser(user) {\r\n return axios.put(\"/api/officeUser/\" + user.id, user);\r\n}\r\n\r\n// DELETE => delete the user from the server\r\nexport function deleteOfficeUser(userId) {\r\n return axios.delete(\"/api/officeUser/\" + userId );\r\n}\r\n\r\n// DELETE Users by ids\r\nexport function deleteOfficeUsers(ids) {\r\n return axios.post(\"/api/officeUser/deleteUsers\", { ids });\r\n}\r\n\r\nexport function getOfficeUserRoles(type) {\r\n var queryParams = {\r\n query: \"\",\r\n sortOrder: \"asc\",\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 10000,\r\n type: type\r\n };\r\n return axios.post(\"/api/userRole/find\", queryParams);\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useIntl } from \"react-intl\";\r\n\r\nexport function OfficeUserEditDialogHeader({ id }) {\r\n const intl = useIntl();\r\n // Office users Redux state\r\n const { officeUserForEdit, actionsLoading } = useSelector(\r\n (state) => ({\r\n officeUserForEdit: state.officeUsers.officeUserForEdit,\r\n actionsLoading: state.officeUsers.actionsLoading,\r\n }),\r\n shallowEqual\r\n );\r\n\r\n const [title, setTitle] = useState(\"\");\r\n // Title couting\r\n useEffect(() => {\r\n let _title = id ? \"\" : intl.formatMessage({ id: \"AUTH.USER.NEW\" }) ;\r\n if (officeUserForEdit && id) {\r\n _title = intl.formatMessage({ id: \"AUTH.USER.EDIT\" }) + ` '${officeUserForEdit.firstName} ${officeUserForEdit.lastName}'`;\r\n }\r\n\r\n setTitle(_title);\r\n // eslint-disable-next-line\r\n }, [officeUserForEdit, actionsLoading]);\r\n\r\n return (\r\n <>\r\n {actionsLoading && }\r\n \r\n {title}\r\n \r\n \r\n );\r\n}\r\n","// Form is based on Formik\r\n// Data validation is based on Yup\r\n// Please, be familiar with article first:\r\n// https://hackernoon.com/react-form-validation-with-formik-and-yup-8b76bda62e10\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { Formik, Form, Field } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport {\r\n Input,\r\n} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { checkIfOfficeUserNameIsFree } from \"../../../_redux/officeUsers/officeUsersCrud\";\r\nimport ErrorPopup from \"../../../../Helpers/ErrorPopup\"\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Select from '@material-ui/core/Select';\r\nimport { CheckPermissions, hasRoleForFunctionality } from \"../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../enum/userFunctionalityE\"\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport function OfficeUserEditForm({\r\n userRoles,\r\n saveOfficeUser,\r\n officeUser,\r\n actionsLoading,\r\n onHide,\r\n}) {\r\n const { user } = useSelector(state => state.auth);\r\n const intl = useIntl();\r\n const [isForeignOperator, setIsForeignOperator] = useState(officeUser.foreignOperator);\r\n const [errorMessage, setErrorMessage] = useState(\"\");\r\n const [errorOpen, setErrorOpen] = useState(false);\r\n const [init, setInit] = useState(false);\r\n const [userRoleId, setUserRoleId] = useState(officeUser.userRoleId > 0 ? officeUser.userRoleId : userRoles[0].id);\r\n \r\n useEffect(() => {\r\n if (officeUser.id > 0 && !init) {\r\n setIsForeignOperator(officeUser.foreignOperator);\r\n setUserRoleId(officeUser.userRoleId);\r\n setInit(true);\r\n }\r\n });\r\n var readOnly = !hasRoleForFunctionality(user, [UserFunctionalityE.UrediPisarniskeUporabnike]);\r\n var password = undefined;\r\n var changepassword = undefined;\r\n if (officeUser.id == undefined) {\r\n password = Yup.string()\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n )\r\n .min(3, intl.formatMessage({ id: 'AUTH.GENERAL.MINIMUM_3_SYMBOLS' }))\r\n .max(50, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_50_SYMBOLS' }));\r\n changepassword = Yup.string()\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n )\r\n .when(\"password\", {\r\n is: (val) => (val && val.length > 0 ? true : false),\r\n then: Yup.string().oneOf(\r\n [Yup.ref(\"password\")],\r\n intl.formatMessage({ id: 'AUTH.GENERAL.PASSWORD_AND_CONFIRM_PASSWORD_DIDNT_MATCH' })\r\n ),\r\n });\r\n }\r\n\r\n // Validation schema\r\n const OfficeUserEditSchema = Yup.object().shape({\r\n firstName: Yup.string()\r\n .max(50, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_50_SYMBOLS' }))\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })),\r\n userName: Yup.string()\r\n .min(3, intl.formatMessage({ id: 'AUTH.GENERAL.MINIMUM_3_SYMBOLS' }))\r\n .max(50, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_50_SYMBOLS' }))\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n }))\r\n .test('validator', intl.formatMessage({ id: 'AUTH.GENERAL.USERNAME_EXISTS_YET' }), value => {\r\n return new Promise((resolve, reject) => {\r\n checkIfOfficeUserNameIsFree(officeUser.id, value)\r\n .then(({ data }) => {\r\n if (!data.didError) {\r\n resolve(data.model);\r\n } else {\r\n setErrorMessage(data.message);\r\n setErrorOpen(true);\r\n }\r\n })\r\n .catch((e) => {\r\n resolve(false);\r\n });\r\n })\r\n }),\r\n taxNumber: Yup.string().test('validator', intl.formatMessage({ id: 'AUTH.GENERAL.INVALID_TAXNUMBER' }), value => {\r\n return new Promise((resolve, reject) => {\r\n if (isForeignOperator) {\r\n resolve(true);\r\n } else {\r\n if (/^[0-9]{8}$/.test(value)) {\r\n resolve(true);\r\n } else {\r\n resolve(false);\r\n }\r\n }\r\n })\r\n }),\r\n email: Yup.string()\r\n .email(intl.formatMessage({ id: 'AUTH.GENERAL.WRONG_EMAIL_FORMAT' })),\r\n userRoleId: Yup.string().test('validator', intl.formatMessage({ id: 'AUTH.VALIDATION.REQUIRED_FIELD' }), value => {\r\n return new Promise((resolve, reject) => {\r\n resolve(value != undefined && value != null && value != \"\");\r\n })\r\n }),\r\n password: password,\r\n changepassword: changepassword\r\n });\r\n\r\n const getInputClasses = (errors) => {\r\n if (errors == undefined) {\r\n return \"\";\r\n }\r\n if (errors) {\r\n return \"is-invalid\";\r\n }\r\n if (!errors) {\r\n return \"is-valid\";\r\n }\r\n return \"\";\r\n };\r\n\r\n function handleChange(event) {\r\n setUserRoleId(event.target.value);\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n var obj = {\r\n email: values.email,\r\n firstName: values.firstName,\r\n foreignOperator: values.foreignOperator,\r\n id: values.id,\r\n lastName: values.lastName,\r\n phone: values.phone,\r\n taxNumber: values.taxNumber,\r\n userName: values.userName,\r\n userRoleId: userRoleId,\r\n password: values.password,\r\n }\r\n saveOfficeUser(obj);\r\n }}\r\n >\r\n {({ handleSubmit, errors, values }) => (\r\n <>\r\n \r\n {actionsLoading && (\r\n
\r\n
\r\n
\r\n )}\r\n {!actionsLoading && (\r\n
\r\n
\r\n {/* Login */}\r\n
\r\n \r\n \r\n
\r\n {/* First Name */}\r\n
\r\n \r\n \r\n
\r\n {/* Last Name */}\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 {userRoles.map(option => (\r\n \r\n {option.title}\r\n \r\n ))}\r\n \r\n {errors.userRoleId ? (\r\n
{errors.userRoleId}
\r\n ) : null}\r\n
\r\n
\r\n {officeUser.id == undefined && (\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\n \r\n \r\n <> \r\n {!actionsLoading && (\r\n \r\n handleSubmit()}\r\n className=\"btn btn-primary btn-elevate\"\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n setErrorOpen(false)} />\r\n \r\n );\r\n}\r\n","export const defaultSorted = [{ dataField: \"id\", order: \"asc\" }];\r\nexport const sizePerPageList = [\r\n { text: \"10\", value: 10 },\r\n { text: \"25\", value: 25 },\r\n { text: \"50\", value: 50 }\r\n];\r\nexport const initialFilter = {\r\n status: 1,\r\n query: \"\",\r\n sortOrder: \"asc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25\r\n};\r\n","import React, {createContext, useContext, useState, useCallback} from \"react\";\r\nimport {isEqual, isFunction} from \"lodash\";\r\nimport {initialFilter} from \"./OfficeUsersUIHelpers\";\r\n\r\nconst OfficeUsersUIContext = createContext();\r\n\r\nexport function useOfficeUsersUIContext() {\r\n return useContext(OfficeUsersUIContext);\r\n}\r\n\r\nexport const OfficeUsersUIConsumer = OfficeUsersUIContext.Consumer;\r\n\r\nexport function OfficeUsersUIProvider({officeUsersUIEvents, children}) {\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n const initOfficeUser = {\r\n id: undefined,\r\n userName : \"\",\r\n firstName: \"\",\r\n lastName: \"\",\r\n phone: \"\",\r\n email: \"\",\r\n taxNumber: \"\",\r\n foreignOperator: false,\r\n userRoleId: -1,\r\n password: \"\",\r\n changepassword: \"\"\r\n };\r\n\r\n const value = {\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initOfficeUser,\r\n newOfficeUserButtonClick: officeUsersUIEvents.newOfficeUserButtonClick,\r\n openEditOfficeUserDialog: officeUsersUIEvents.openEditOfficeUserDialog,\r\n openDeleteOfficeUserDialog: officeUsersUIEvents.openDeleteOfficeUserDialog,\r\n openDeleteOfficeUsersDialog: officeUsersUIEvents.openDeleteOfficeUsersDialog\r\n };\r\n\r\n return {children};\r\n}","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/officeUsers/officeUsersActions\";\r\nimport { OfficeUserEditDialogHeader } from \"./OfficeUserEditDialogHeader\";\r\nimport { OfficeUserEditForm } from \"./OfficeUserEditForm\";\r\nimport { useOfficeUsersUIContext } from \"../OfficeUsersUIContext\";\r\n\r\nexport function OfficeUserEditDialog({ id, show, onHide }) {\r\n // Office users UI Context\r\n const officeUsersUIContext = useOfficeUsersUIContext();\r\n const officeUsersUIProps = useMemo(() => {\r\n return {\r\n initOfficeUser: officeUsersUIContext.initOfficeUser,\r\n };\r\n }, [officeUsersUIContext]);\r\n\r\n // Users Redux state\r\n const dispatch = useDispatch();\r\n const { actionsLoading, officeUserForEdit, userRoles } = useSelector(\r\n (state) => ({\r\n actionsLoading: state.officeUsers.actionsLoading,\r\n officeUserForEdit: state.officeUsers.officeUserForEdit,\r\n userRoles: state.officeUsers.userRoles\r\n }),\r\n shallowEqual\r\n );\r\n\r\n useEffect(() => {\r\n dispatch(actions.fetchOfficeUserRoles(2));\r\n dispatch(actions.fetchOfficeUser(id));\r\n }, [id, dispatch]);\r\n\r\n // server request for saving user\r\n const saveOfficeUser = (officeUser) => {\r\n if (!id) {\r\n // server request for creating user\r\n dispatch(actions.createOfficeUser(officeUser)).then(() => onHide());\r\n } else {\r\n // server request for updating officeUser\r\n dispatch(actions.updateOfficeUser(officeUser)).then(() => onHide());\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport * as actions from \"../../../_redux/officeUsers/officeUsersActions\";\r\nimport { useOfficeUsersUIContext } from \"../OfficeUsersUIContext\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport function OfficeUserDeleteDialog({ id, show, onHide }) {\r\n // Office users UI Context\r\n const officeUsersUIContext = useOfficeUsersUIContext();\r\n const officeUsersUIProps = useMemo(() => {\r\n return {\r\n setIds: officeUsersUIContext.setIds,\r\n queryParams: officeUsersUIContext.queryParams\r\n };\r\n }, [officeUsersUIContext]);\r\n\r\n // Office users Redux state\r\n const dispatch = useDispatch();\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.officeUsers.actionsLoading }),\r\n shallowEqual\r\n );\r\n\r\n // if !id we should close modal\r\n useEffect(() => {\r\n if (!id) {\r\n onHide();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [id]);\r\n\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading, dispatch]);\r\n\r\n const deleteOfficeUser = () => {\r\n // server request for deleting office user by id\r\n dispatch(actions.deleteOfficeUser(id)).then(() => {\r\n // refresh list after deletion\r\n dispatch(actions.fetchOfficeUsers(officeUsersUIProps.queryParams));\r\n // clear selections list\r\n officeUsersUIProps.setIds([]);\r\n // closing delete modal\r\n onHide();\r\n });\r\n };\r\n\r\n return (\r\n \r\n {/*begin::Loading*/}\r\n {isLoading && }\r\n {/*end::Loading*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isLoading && (\r\n \r\n )}\r\n {isLoading && }\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","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/officeUsers/officeUsersActions\";\r\nimport { useOfficeUsersUIContext } from \"../OfficeUsersUIContext\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport function OfficeUsersDeleteDialog({ show, onHide }) {\r\n // Office users UI Context\r\n const officeUsersUIContext = useOfficeUsersUIContext();\r\n const officeUsersUIProps = useMemo(() => {\r\n return {\r\n ids: officeUsersUIContext.ids,\r\n setIds: officeUsersUIContext.setIds,\r\n queryParams: officeUsersUIContext.queryParams,\r\n };\r\n }, [officeUsersUIContext]);\r\n\r\n // Office users Redux state\r\n const dispatch = useDispatch();\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.officeUsers.actionsLoading }),\r\n shallowEqual\r\n );\r\n\r\n // if office users weren't selected we should close modal\r\n useEffect(() => {\r\n if (!officeUsersUIProps.ids || officeUsersUIProps.ids.length === 0) {\r\n onHide();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [officeUsersUIProps.ids]);\r\n\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading, dispatch]);\r\n\r\n const deleteOfficeUsers = () => {\r\n // server request for deleting user by selected ids\r\n dispatch(actions.deleteOfficeUsers(officeUsersUIProps.ids)).then(() => {\r\n // refresh list after deletion\r\n dispatch(actions.fetchOfficeUsers(officeUsersUIProps.queryParams)).then(\r\n () => {\r\n // clear selections list\r\n officeUsersUIProps.setIds([]);\r\n // closing delete modal\r\n onHide();\r\n }\r\n );\r\n });\r\n };\r\n\r\n return (\r\n \r\n {/*begin::Loading*/}\r\n {isLoading && }\r\n {/*end::Loading*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isLoading && (\r\n \r\n )}\r\n {isLoading && }\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","import React, { useMemo } from \"react\";\r\nimport { Formik } from \"formik\";\r\nimport { isEqual } from \"lodash\";\r\nimport { useOfficeUsersUIContext } from \"../OfficeUsersUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nconst prepareFilter = (queryParams, values) => {\r\n const { searchText } = values;\r\n const newQueryParams = { ...queryParams };\r\n \r\n newQueryParams.query = searchText;\r\n return newQueryParams;\r\n};\r\n\r\nexport function OfficeUsersFilter({ listLoading }) {\r\n const intl = useIntl();\r\n\r\n // Office users UI Context\r\n const officeUsersUIContext = useOfficeUsersUIContext();\r\n const officeUsersUIProps = useMemo(() => {\r\n return {\r\n queryParams: officeUsersUIContext.queryParams,\r\n setQueryParams: officeUsersUIContext.setQueryParams,\r\n };\r\n }, [officeUsersUIContext]);\r\n\r\n // queryParams, setQueryParams,\r\n const applyFilter = (values) => {\r\n const newQueryParams = prepareFilter(officeUsersUIProps.queryParams, values);\r\n if (!isEqual(newQueryParams, officeUsersUIProps.queryParams)) {\r\n newQueryParams.pageNumber = 1;\r\n // update list by queryParams\r\n officeUsersUIProps.setQueryParams(newQueryParams);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {\r\n applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n setFieldValue(\"searchText\", e.target.value);\r\n handleSubmit();\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","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../../../_metronic/_helpers\";\r\nimport { CheckPermissions } from \"../../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../../enum/userFunctionalityE\"\r\n\r\nexport function ActionsColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n { openEditOfficeUserDialog, openDeleteOfficeUserDialog }\r\n) {\r\n return (\r\n <>\r\n openEditOfficeUserDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n <> \r\n \r\n openDeleteOfficeUserDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","// React bootstrap table next =>\r\n// DOCS: https://react-bootstrap-table.github.io/react-bootstrap-table2/docs/\r\n// STORYBOOK: https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html\r\nimport React, { useEffect, useMemo } from \"react\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory, {\r\n PaginationProvider,\r\n} from \"react-bootstrap-table2-paginator\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/officeUsers/officeUsersActions\";\r\nimport {\r\n getSelectRow,\r\n getHandlerTableChange,\r\n NoRecordsFoundMessage,\r\n PleaseWaitMessage,\r\n sortCaret,\r\n headerSortingClasses,\r\n} from \"../../../../../../_metronic/_helpers\";\r\nimport * as uiHelpers from \"../OfficeUsersUIHelpers\";\r\nimport * as columnFormatters from \"./column-formatters\";\r\nimport { Pagination } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useOfficeUsersUIContext } from \"../OfficeUsersUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function OfficeUsersTable() {\r\n const intl = useIntl();\r\n // Office users UI Context\r\n const officeUsersUIContext = useOfficeUsersUIContext();\r\n const officeUsersUIProps = useMemo(() => {\r\n return {\r\n ids: officeUsersUIContext.ids,\r\n setIds: officeUsersUIContext.setIds,\r\n queryParams: officeUsersUIContext.queryParams,\r\n setQueryParams: officeUsersUIContext.setQueryParams,\r\n openEditOfficeUserDialog: officeUsersUIContext.openEditOfficeUserDialog,\r\n openDeleteOfficeUserDialog: officeUsersUIContext.openDeleteOfficeUserDialog,\r\n };\r\n }, [officeUsersUIContext]);\r\n\r\n // Getting curret state of office users list from store (Redux)\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.officeUsers }),\r\n shallowEqual\r\n );\r\n const { totalCount, entities, listLoading } = currentState;\r\n\r\n // Office Users Redux state\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n // clear selections list\r\n officeUsersUIProps.setIds([]);\r\n // server call by queryParams\r\n dispatch(actions.fetchOfficeUsers(officeUsersUIProps.queryParams));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [officeUsersUIProps.queryParams, dispatch]);\r\n\r\n // Table columns\r\n const columns = [\r\n {\r\n dataField: \"id\",\r\n text: \"#\",\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"userName\",\r\n text: intl.formatMessage({ id: \"AUTH.INPUT.USERNAME\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"firstName\",\r\n text: intl.formatMessage({ id: \"AUTH.INPUT.FULLNAME\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"lastName\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.LASTNAME\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"action\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.ACTIONS\" }),\r\n formatter: columnFormatters.ActionsColumnFormatter,\r\n formatExtraData: {\r\n openEditOfficeUserDialog: officeUsersUIProps.openEditOfficeUserDialog,\r\n openDeleteOfficeUserDialog: officeUsersUIProps.openDeleteOfficeUserDialog,\r\n },\r\n classes: \"text-right pr-0\",\r\n headerClasses: \"text-right pr-3\",\r\n style: {\r\n minWidth: \"100px\",\r\n },\r\n },\r\n ];\r\n\r\n const customTotal = (from, to, size) => (\r\n \r\n {from} - { to} {size} \r\n \r\n );\r\n\r\n // Table pagination properties\r\n const paginationOptions = {\r\n custom: true,\r\n totalSize: totalCount,\r\n sizePerPageList: uiHelpers.sizePerPageList,\r\n sizePerPage: officeUsersUIProps.queryParams.pageSize,\r\n page: officeUsersUIProps.queryParams.pageNumber,\r\n paginationTotalRenderer: customTotal,\r\n };\r\n return (\r\n <>\r\n \r\n {({ paginationProps, paginationTableProps }) => {\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","import React, { useMemo } from \"react\";\r\nimport { useOfficeUsersUIContext } from \"../OfficeUsersUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function OfficeUsersGrouping() {\r\n const intl = useIntl();\r\n\r\n // Office Users UI Context\r\n const officeUsersUIContext = useOfficeUsersUIContext();\r\n const officeUsersUIProps = useMemo(() => {\r\n return {\r\n ids: officeUsersUIContext.ids,\r\n setIds: officeUsersUIContext.setIds,\r\n openDeleteOfficeUsersDialog: officeUsersUIContext.openDeleteOfficeUsersDialog\r\n };\r\n }, [officeUsersUIContext]);\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","import React, { useMemo } from \"react\";\r\nimport {\r\n Card,\r\n CardBody,\r\n CardHeader,\r\n CardHeaderToolbar,\r\n} from \"../../../../../_metronic/_partials/controls\";\r\nimport { OfficeUsersFilter } from \"./officeUsers-filter/OfficeUsersFilter\";\r\nimport { OfficeUsersTable } from \"./officeUsers-table/OfficeUsersTable\";\r\nimport { OfficeUsersGrouping } from \"./officeUsers-grouping/OfficeUsersGrouping\";\r\nimport { useOfficeUsersUIContext } from \"./OfficeUsersUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { CheckPermissions } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\n\r\nexport function OfficeUsersCard() {\r\n const intl = useIntl();\r\n const officeUsersUIContext = useOfficeUsersUIContext();\r\n const officeUsersUIProps = useMemo(() => {\r\n return {\r\n ids: officeUsersUIContext.ids,\r\n newOfficeUserButtonClick: officeUsersUIContext.newOfficeUserButtonClick,\r\n };\r\n }, [officeUsersUIContext]);\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 {officeUsersUIProps.ids.length > 0 && }\r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\nimport { OfficeUsersLoadingDialog } from \"./officeUsers-loading-dialog/OfficeUsersLoadingDialog\";\r\nimport { OfficeUserEditDialog } from \"./officeUser-edit-dialog/OfficeUserEditDialog\";\r\nimport { OfficeUserDeleteDialog } from \"./officeUser-delete-dialog/OfficeUserDeleteDialog\";\r\nimport { OfficeUsersDeleteDialog } from \"./officeUsers-delete-dialog/OfficeUsersDeleteDialog\";\r\nimport { OfficeUsersUIProvider } from \"./OfficeUsersUIContext\";\r\nimport { OfficeUsersCard } from \"./OfficeUsersCard\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport InfoPopup from \"../../../Helpers/InfoPopup\"\r\nimport { useIntl } from \"react-intl\";\r\n\r\n\r\nexport function OfficeUsersPage({ history }) {\r\n const intl = useIntl();\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n const { user } = useSelector(state => state.auth);\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.officeUsers }),\r\n shallowEqual\r\n );\r\n const { totalCount } = currentState;\r\n\r\n const officeUsersUIEvents = {\r\n newOfficeUserButtonClick: () => {\r\n if (totalCount < user.organizationOfficeUserCount) {\r\n history.push(\"/users/office/new\");\r\n } else {\r\n setOpen(true);\r\n setMessage(intl.formatMessage({\r\n id: \"GENERAL.CAN_NOT_ADDED_USERS\",\r\n }));\r\n }\r\n },\r\n openEditOfficeUserDialog: (id) => {\r\n history.push(`/users/office/${id}/edit`);\r\n },\r\n openDeleteOfficeUserDialog: (id) => {\r\n history.push(`/users/office/${id}/delete`);\r\n },\r\n openDeleteOfficeUsersDialog: () => {\r\n history.push(`/users/office/deleteUsers`);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/users/office\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/users/office\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/users/office\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/users/office\");\r\n }}\r\n />\r\n )}\r\n \r\n { setOpen(false);}} />\r\n \r\n \r\n );\r\n}\r\n","import React, { Suspense } from \"react\";\r\nimport { Redirect, Switch } from \"react-router-dom\";\r\nimport { UsersPage } from \"./users/UsersPage\";\r\nimport { OfficeUsersPage } from \"./officeUsers/OfficeUsersPage\";\r\nimport { LayoutSplashScreen, ContentRoute } from \"../../../../_metronic/layout\";\r\nimport { hasRoleForFunctionality } from \"../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../enum/userFunctionalityE\"\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport default function UserPage() {\r\n const { user } = useSelector(state => state.auth);\r\n\r\n return (\r\n }>\r\n \r\n {\r\n /* Redirect from eCommerce root URL to /customers */\r\n \r\n }\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.PregledBlagajniskihUporabnikov, UserFunctionalityE.UrediBlagajniskeUporabnike]) && (\r\n \r\n\r\n )}\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.PregledPisarniskihUporabnikov, UserFunctionalityE.UrediPisarniskeUporabnike]) && (\r\n \r\n\r\n )}\r\n\r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { LoadingDialog } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function UserRolesLoadingDialog() {\r\n const intl = useIntl();\r\n \r\n // Users Redux state\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.userRoles.listLoading }),\r\n shallowEqual\r\n );\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading]);\r\n return ;\r\n}\r\n","import * as requestFromServer from \"./userRolesCrud\";\r\nimport { userRolesSlice, callTypes } from \"./userRolesSlice\";\r\n\r\nconst { actions } = userRolesSlice;\r\n\r\nexport const fetchUserRoles = queryParams => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .findUserRoles(queryParams)\r\n .then(response => {\r\n const { totalCount, entities } = response.data;\r\n dispatch(actions.userRolesFetched({ totalCount, entities }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find userRoles\";\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\nexport const fetchUserRole = id => dispatch => {\r\n if (!id) {\r\n return dispatch(actions.userRoleFetched({ userRoleForEdit: undefined }));\r\n }\r\n\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .getUserRoleById(id)\r\n .then(response => {\r\n const userRole = response.data.model;\r\n dispatch(actions.userRoleFetched({ userRoleForEdit: userRole }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find userRole\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const deleteUserRole = id => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .deleteUserRole(id)\r\n .then(response => {\r\n var { model } = response.data;\r\n dispatch(actions.userRoleDeleted({ model, id }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't delete userRole\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const createUserRole = userRoleForCreation => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .createUserRole(userRoleForCreation)\r\n .then(response => {\r\n const { model } = response.data;\r\n dispatch(actions.userRoleCreated({ model }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't create userRole\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const updateUserRole = userRole => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .updateUserRole(userRole)\r\n .then(() => {\r\n dispatch(actions.userRoleUpdated({ userRole }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't update userRole\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const fetchUserFunctionalities = type => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .getAllUserFunctionalities(type)\r\n .then(response => {\r\n const userFunctionalities = response.data.entities;\r\n dispatch(actions.userFunctionalitiesFetched({ userFunctionalities: userFunctionalities }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't get user functionalities\";\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n","import axios from \"axios\";\r\n\r\n// Method from server should return QueryResultsModel(items: any[], totalsCount: number)\r\n// items => filtered/sorted result\r\nexport function findUserRoles(queryParams) {\r\n return axios.post(\"/api/userRole/find\", queryParams );\r\n}\r\n\r\n// CREATE => POST: add a new user to the server\r\nexport function createUserRole(userRole) {\r\n return axios.post(\"/api/userRole\", userRole );\r\n}\r\n\r\nexport function getUserRoleById(userRoleId) {\r\n return axios.get(\"/api/userRole/\" + userRoleId );\r\n}\r\n\r\n// UPDATE => PUT: update the user on the server\r\nexport function updateUserRole(userRole) {\r\n return axios.put(\"/api/userRole/\" + userRole.id, userRole);\r\n}\r\n\r\n// DELETE => delete the user from the server\r\nexport function deleteUserRole(userRoleId) {\r\n return axios.delete(\"/api/userRole/\" + userRoleId );\r\n}\r\n\r\nexport function getAllUserFunctionalities() {\r\n return axios.get(\"/api/userRole/userFunctionalities\");\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useIntl } from \"react-intl\";\r\n\r\nexport function UserRoleEditDialogHeader({ id }) {\r\n const intl = useIntl();\r\n // UserRoles Redux state\r\n const { userRoleForEdit, actionsLoading } = useSelector(\r\n (state) => ({\r\n userRoleForEdit: state.userRoles.userRoleForEdit,\r\n actionsLoading: state.userRoles.actionsLoading,\r\n }),\r\n shallowEqual\r\n );\r\n\r\n const [title, setTitle] = useState(\"\");\r\n // Title couting\r\n useEffect(() => {\r\n let _title = id ? \"\" : intl.formatMessage({ id: \"SETTING.USER_ROLE.NEW\" }) ;\r\n if (userRoleForEdit && id) {\r\n _title = intl.formatMessage({ id: \"SETTING.USER_ROLE.EDIT\" }) + ` '${userRoleForEdit.title}'`;\r\n }\r\n\r\n setTitle(_title);\r\n // eslint-disable-next-line\r\n }, [userRoleForEdit, actionsLoading]);\r\n\r\n return (\r\n <>\r\n {actionsLoading && }\r\n \r\n {title}\r\n \r\n \r\n );\r\n}\r\n","// Form is based on Formik\r\n// Data validation is based on Yup\r\n// Please, be familiar with article first:\r\n// https://hackernoon.com/react-form-validation-with-formik-and-yup-8b76bda62e10\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { Formik, Form, Field, FieldArray } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport {\r\n Input,\r\n} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { CheckPermissions, hasRoleForFunctionality } from \"../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../enum/userFunctionalityE\"\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport function UserRoleEditForm({\r\n type,\r\n userFunctionalities,\r\n saveUserRole,\r\n userRole,\r\n actionsLoading,\r\n onHide,\r\n}) {\r\n const { user } = useSelector(state => state.auth);\r\n const intl = useIntl();\r\n \r\n var ufList = [];\r\n switch (type) {\r\n case 1:\r\n ufList = [UserFunctionalityE.UrediVlogeZaBlagajniskePravice];\r\n break;\r\n case 2:\r\n ufList = [UserFunctionalityE.UrediVlogeZaPisarniskePravice];\r\n break;\r\n }\r\n\r\n var readOnly = !hasRoleForFunctionality(user, ufList);\r\n\r\n function createRows(arr, size) {\r\n var res = arr.reduce((acc, curr, i) => {\r\n if (!(i % size)) { // if index is 0 or can be divided by the `size`...\r\n acc.push(arr.slice(i, i + size)); // ..push a chunk of the original array to the accumulator\r\n }\r\n return acc;\r\n }, []);\r\n return res;\r\n }\r\n\r\n function createModules(arr) {\r\n var res = [];\r\n\r\n for (var i = 0; i < arr.length; i++) {\r\n var el = arr[i];\r\n\r\n var module = null;\r\n for (var i2 = 0; i2 < res.length; i2++) {\r\n var el2 = res[i2];\r\n if (el2.id == el.applicationModule) {\r\n module = el2;\r\n break;\r\n }\r\n }\r\n\r\n if (module == null) {\r\n module = {};\r\n module.id = el.applicationModule;\r\n module.list = [];\r\n res.push(module);\r\n }\r\n module.list.push(el);\r\n }\r\n\r\n return res;\r\n }\r\n\r\n // Validation schema\r\n const UserRoleEditSchema = Yup.object().shape({\r\n title: Yup.string()\r\n .min(1, intl.formatMessage({ id: 'AUTH.GENERAL.MINIMUM_1_SYMBOLS' }))\r\n .max(50, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_50_SYMBOLS' }))\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n }))\r\n });\r\n\r\n\r\n return (\r\n <>\r\n {\r\n saveUserRole(values);\r\n }}\r\n >\r\n {({ values, handleSubmit }) => (\r\n <>\r\n \r\n {actionsLoading && (\r\n
\r\n
\r\n
\r\n )}\r\n {!actionsLoading && (\r\n
\r\n
\r\n\r\n {/* First Name */}\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n (\r\n <>\r\n {userFunctionalities && userFunctionalities.length > 0 ? (\r\n createModules(userFunctionalities).map((module, rowIndex1) =>\r\n
\r\n

{intl.formatMessage({ id: 'SETTING.ROLES.MODULE.' + module.id })}

\r\n
\r\n {\r\n createRows(module.list, 3).map((urRows, rowIndex) =>\r\n
\r\n {\r\n urRows.map((userRoleRow, index) => (\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 {!actionsLoading && (\r\n \r\n handleSubmit()}\r\n className=\"btn btn-primary btn-elevate\"\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","export const defaultSorted = [{ dataField: \"id\", order: \"asc\" }];\r\nexport const sizePerPageList = [\r\n { text: \"10\", value: 10 },\r\n { text: \"25\", value: 25 },\r\n { text: \"50\", value: 50 }\r\n];\r\nexport const initialFilter = {\r\n type: 1,\r\n query: \"\",\r\n sortOrder: \"asc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25\r\n};\r\n","import React, {createContext, useContext, useState, useCallback} from \"react\";\r\nimport {isEqual, isFunction} from \"lodash\";\r\nimport { initialFilter } from \"./UserRolesUIHelpers\";\r\n\r\nconst UserRolesUIContext = createContext();\r\n\r\nexport function useUserRolesUIContext() {\r\n return useContext(UserRolesUIContext);\r\n}\r\n\r\nexport const UserRolesUIConsumer = UserRolesUIContext.Consumer;\r\n\r\nexport function UserRolesUIProvider({ type, userRolesUIEvents, children }) {\r\n initialFilter.type = type; \r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n const initUserRole = {\r\n id: undefined,\r\n title: \"\",\r\n type: type\r\n };\r\n\r\n const value = {\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initUserRole,\r\n newUserRoleButtonClick: userRolesUIEvents.newUserRoleButtonClick,\r\n openEditUserRoleDialog: userRolesUIEvents.openEditUserRoleDialog,\r\n openDeleteUserRoleDialog: userRolesUIEvents.openDeleteUserRoleDialog,\r\n openDeleteUserRolesDialog: userRolesUIEvents.openDeleteUserRolesDialog\r\n };\r\n\r\n return {children};\r\n}","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/userRoles/userRolesActions\";\r\nimport { UserRoleEditDialogHeader } from \"./UserRoleEditDialogHeader\";\r\nimport { UserRoleEditForm } from \"./UserRoleEditForm\";\r\nimport { useUserRolesUIContext } from \"../UserRolesUIContext\";\r\n\r\nexport function UserRoleEditDialog({ type, id, show, onHide }) {\r\n // UserRoles UI Context\r\n const userRolesUIContext = useUserRolesUIContext();\r\n const userRolesUIProps = useMemo(() => {\r\n return {\r\n initUserRole: userRolesUIContext.initUserRole,\r\n };\r\n }, [userRolesUIContext]);\r\n\r\n // UserRoles Redux state\r\n const dispatch = useDispatch();\r\n const { actionsLoading, userRoleForEdit, userFunctionalities } = useSelector(\r\n (state) => ({\r\n actionsLoading: state.userRoles.actionsLoading,\r\n userRoleForEdit: state.userRoles.userRoleForEdit,\r\n userFunctionalities: filterUserRoles(state.userRoles.userFunctionalities, type)\r\n }),\r\n shallowEqual\r\n );\r\n\r\n useEffect(() => {\r\n // server call for getting UserRole by id\r\n dispatch(actions.fetchUserRole(id));\r\n \r\n if (!userFunctionalities) {\r\n dispatch(actions.fetchUserFunctionalities(type));\r\n }\r\n }, [id, dispatch, type]);\r\n\r\n function filterUserRoles(userFunctionalities, type) {\r\n if (userFunctionalities != undefined && userFunctionalities != null) {\r\n var res = [];\r\n for (var index = 0; index < userFunctionalities.length; index++) {\r\n var el = userFunctionalities[index];\r\n if (el.type == type) {\r\n res.push(el);\r\n }\r\n }\r\n return res;\r\n }\r\n return undefined;\r\n }\r\n\r\n // server request for saving userRole\r\n const saveUserRole = (userRole) => {\r\n if (!id) {\r\n // server request for creating userRole\r\n dispatch(actions.createUserRole(userRole)).then(() => onHide());\r\n } else {\r\n // server request for updating userRole\r\n dispatch(actions.updateUserRole(userRole)).then(() => onHide());\r\n }\r\n };\r\n \r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport { ModalProgressBar } from \"../../../../../../_metronic/_partials/controls\";\r\nimport * as actions from \"../../../_redux/userRoles/userRolesActions\";\r\nimport { useUserRolesUIContext } from \"../UserRolesUIContext\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport function UserRoleDeleteDialog({ id, show, onHide }) {\r\n // UserRoles UI Context\r\n const userRolesUIContext = useUserRolesUIContext();\r\n const userRolesUIProps = useMemo(() => {\r\n return {\r\n setIds: userRolesUIContext.setIds,\r\n queryParams: userRolesUIContext.queryParams\r\n };\r\n }, [userRolesUIContext]);\r\n\r\n // UserRoles Redux state\r\n const dispatch = useDispatch();\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.userRoles.actionsLoading }),\r\n shallowEqual\r\n );\r\n\r\n // if !id we should close modal\r\n useEffect(() => {\r\n if (!id) {\r\n onHide();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [id]);\r\n\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading, dispatch]);\r\n\r\n const deleteUserRole = () => {\r\n // server request for deleting userRole by id\r\n dispatch(actions.deleteUserRole(id)).then(() => {\r\n // refresh list after deletion\r\n dispatch(actions.fetchUserRoles(userRolesUIProps.queryParams));\r\n // clear selections list\r\n userRolesUIProps.setIds([]);\r\n // closing delete modal\r\n onHide();\r\n });\r\n };\r\n\r\n return (\r\n \r\n {/*begin::Loading*/}\r\n {isLoading && }\r\n {/*end::Loading*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isLoading && (\r\n \r\n )}\r\n {isLoading && }\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","import React, { useMemo } from \"react\";\r\nimport { Formik } from \"formik\";\r\nimport { isEqual } from \"lodash\";\r\nimport { useUserRolesUIContext } from \"../UserRolesUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nconst prepareFilter = (queryParams, values) => {\r\n const { searchText } = values;\r\n const newQueryParams = { ...queryParams };\r\n \r\n newQueryParams.query = searchText;\r\n return newQueryParams;\r\n};\r\n\r\nexport function UserRolesFilter({ listLoading }) {\r\n const intl = useIntl();\r\n\r\n // UserRoles UI Context\r\n const userRolesUIContext = useUserRolesUIContext();\r\n const userRolesUIProps = useMemo(() => {\r\n return {\r\n queryParams: userRolesUIContext.queryParams,\r\n setQueryParams: userRolesUIContext.setQueryParams,\r\n };\r\n }, [userRolesUIContext]);\r\n\r\n // queryParams, setQueryParams,\r\n const applyFilter = (values) => {\r\n const newQueryParams = prepareFilter(userRolesUIProps.queryParams, values);\r\n if (!isEqual(newQueryParams, userRolesUIProps.queryParams)) {\r\n newQueryParams.pageNumber = 1;\r\n // update list by queryParams\r\n userRolesUIProps.setQueryParams(newQueryParams);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {\r\n applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n setFieldValue(\"searchText\", e.target.value);\r\n handleSubmit();\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","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../../../_metronic/_helpers\";\r\nimport { CheckPermissions } from \"../../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../../enum/userFunctionalityE\"\r\n\r\nexport function ActionsColumnFormatterCashier(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n { openEditUserRoleDialog, openDeleteUserRoleDialog }\r\n) {\r\n\r\n return (\r\n <>\r\n openEditUserRoleDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n {row.canDelete && (\r\n\r\n \r\n openDeleteUserRoleDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../../../_metronic/_helpers\";\r\nimport { CheckPermissions } from \"../../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../../enum/userFunctionalityE\"\r\n\r\nexport function ActionsColumnFormatterOffice(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n { openEditUserRoleDialog, openDeleteUserRoleDialog }\r\n) {\r\n\r\n return (\r\n <>\r\n openEditUserRoleDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n {row.canDelete && (\r\n\r\n \r\n openDeleteUserRoleDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n","// React bootstrap table next =>\r\n// DOCS: https://react-bootstrap-table.github.io/react-bootstrap-table2/docs/\r\n// STORYBOOK: https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html\r\nimport React, { useEffect, useMemo } from \"react\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory, {\r\n PaginationProvider,\r\n} from \"react-bootstrap-table2-paginator\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/userRoles/userRolesActions\";\r\nimport {\r\n getHandlerTableChange,\r\n NoRecordsFoundMessage,\r\n PleaseWaitMessage,\r\n sortCaret,\r\n headerSortingClasses,\r\n} from \"../../../../../../_metronic/_helpers\";\r\nimport * as uiHelpers from \"../UserRolesUIHelpers\";\r\nimport * as columnFormatters from \"./column-formatters\";\r\nimport { Pagination } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useUserRolesUIContext } from \"../UserRolesUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function UserRolesTable({ type }) {\r\n const intl = useIntl();\r\n // Users UI Context\r\n const userRolesUIContext = useUserRolesUIContext();\r\n const userRolesUIProps = useMemo(() => {\r\n return {\r\n ids: userRolesUIContext.ids,\r\n setIds: userRolesUIContext.setIds,\r\n queryParams: userRolesUIContext.queryParams,\r\n setQueryParams: userRolesUIContext.setQueryParams,\r\n openEditUserRoleDialog: userRolesUIContext.openEditUserRoleDialog,\r\n openDeleteUserRoleDialog: userRolesUIContext.openDeleteUserRoleDialog,\r\n };\r\n }, [userRolesUIContext]);\r\n\r\n // Getting curret state of userRoles list from store (Redux)\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.userRoles }),\r\n shallowEqual\r\n );\r\n const { totalCount, entities, listLoading } = currentState;\r\n\r\n // UserRoles Redux state\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n // clear selections list\r\n userRolesUIProps.setIds([]);\r\n // server call by queryParams\r\n dispatch(actions.fetchUserRoles(userRolesUIProps.queryParams));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [userRolesUIProps.queryParams, dispatch]);\r\n\r\n // Table columns\r\n const columns = [\r\n {\r\n dataField: \"id\",\r\n text: \"#\",\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"title\",\r\n text: intl.formatMessage({ id: \"AUTH.INPUT.TITLE\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"action\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.ACTIONS\" }),\r\n formatter: type == 1 ? columnFormatters.ActionsColumnFormatterCashier : columnFormatters.ActionsColumnFormatterOffice,\r\n formatExtraData: {\r\n openEditUserRoleDialog: userRolesUIProps.openEditUserRoleDialog,\r\n openDeleteUserRoleDialog: userRolesUIProps.openDeleteUserRoleDialog,\r\n },\r\n classes: \"text-right pr-0\",\r\n headerClasses: \"text-right pr-3\",\r\n style: {\r\n minWidth: \"100px\",\r\n },\r\n },\r\n ];\r\n\r\n const customTotal = (from, to, size) => (\r\n \r\n {from} - { to} {size} \r\n \r\n );\r\n\r\n // Table pagination properties\r\n const paginationOptions = {\r\n custom: true,\r\n totalSize: totalCount,\r\n sizePerPageList: uiHelpers.sizePerPageList,\r\n sizePerPage: userRolesUIProps.queryParams.pageSize,\r\n page: userRolesUIProps.queryParams.pageNumber,\r\n paginationTotalRenderer: customTotal,\r\n };\r\n return (\r\n <>\r\n \r\n {({ paginationProps, paginationTableProps }) => {\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","import React, { useMemo } from \"react\";\r\nimport { useUserRolesUIContext } from \"../UserRolesUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function UserRolesGrouping() {\r\n const intl = useIntl();\r\n\r\n // UserRoles UI Context\r\n const userRolesUIContext = useUserRolesUIContext();\r\n const userRolesUIProps = useMemo(() => {\r\n return {\r\n ids: userRolesUIContext.ids,\r\n setIds: userRolesUIContext.setIds,\r\n openDeleteUserRolesDialog: userRolesUIContext.openDeleteUserRolesDialog\r\n };\r\n }, [userRolesUIContext]);\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","import React, { useMemo } from \"react\";\r\nimport {\r\n Card,\r\n CardBody,\r\n CardHeader,\r\n CardHeaderToolbar,\r\n} from \"../../../../../_metronic/_partials/controls\";\r\nimport { UserRolesFilter } from \"./userRoles-filter/UserRolesFilter\";\r\nimport { UserRolesTable } from \"./userRoles-table/UserRolesTable\";\r\nimport { UserRolesGrouping } from \"./userRoles-grouping/UserRolesGrouping\";\r\nimport { useUserRolesUIContext } from \"./UserRolesUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { CheckPermissions } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\n\r\nexport function CashierUserRolesCard() {\r\n const intl = useIntl();\r\n const userRolesUIContext = useUserRolesUIContext();\r\n const userRolesUIProps = useMemo(() => {\r\n return {\r\n ids: userRolesUIContext.ids,\r\n newUserRoleButtonClick: userRolesUIContext.newUserRoleButtonClick,\r\n };\r\n }, [userRolesUIContext]);\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 {userRolesUIProps.ids.length > 0 && }\r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\nimport { UserRolesLoadingDialog } from \"./userRoles-loading-dialog/UserRolesLoadingDialog\";\r\nimport { UserRoleEditDialog } from \"./userRole-edit-dialog/UserRoleEditDialog\";\r\nimport { UserRoleDeleteDialog } from \"./userRole-delete-dialog/UserRoleDeleteDialog\";\r\nimport { UserRolesUIProvider } from \"./UserRolesUIContext\";\r\nimport { CashierUserRolesCard } from \"./CashierUserRolesCard\";\r\n\r\nexport function CashierUserRolesPage({ history }) {\r\n const type = 1;\r\n const userRolesUIEvents = {\r\n newUserRoleButtonClick: () => {\r\n history.push(\"/settings/roles_cashier/new\");\r\n },\r\n openEditUserRoleDialog: (id) => {\r\n history.push(`/settings/roles_cashier/${id}/edit`);\r\n },\r\n openDeleteUserRoleDialog: (id) => {\r\n history.push(`/settings/roles_cashier/${id}/delete`);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/settings/roles_cashier\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/settings/roles_cashier\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/settings/roles_cashier\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useMemo } from \"react\";\r\nimport {\r\n Card,\r\n CardBody,\r\n CardHeader,\r\n CardHeaderToolbar,\r\n} from \"../../../../../_metronic/_partials/controls\";\r\nimport { UserRolesFilter } from \"./userRoles-filter/UserRolesFilter\";\r\nimport { UserRolesTable } from \"./userRoles-table/UserRolesTable\";\r\nimport { UserRolesGrouping } from \"./userRoles-grouping/UserRolesGrouping\";\r\nimport { useUserRolesUIContext } from \"./UserRolesUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { CheckPermissions } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\n\r\nexport function OfficeUserRolesCard() {\r\n const intl = useIntl();\r\n const userRolesUIContext = useUserRolesUIContext();\r\n const userRolesUIProps = useMemo(() => {\r\n return {\r\n ids: userRolesUIContext.ids,\r\n newUserRoleButtonClick: userRolesUIContext.newUserRoleButtonClick,\r\n };\r\n }, [userRolesUIContext]);\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 {userRolesUIProps.ids.length > 0 && }\r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\nimport { UserRolesLoadingDialog } from \"./userRoles-loading-dialog/UserRolesLoadingDialog\";\r\nimport { UserRoleEditDialog } from \"./userRole-edit-dialog/UserRoleEditDialog\";\r\nimport { UserRoleDeleteDialog } from \"./userRole-delete-dialog/UserRoleDeleteDialog\";\r\nimport { UserRolesUIProvider } from \"./UserRolesUIContext\";\r\nimport { OfficeUserRolesCard } from \"./OfficeUserRolesCard\";\r\n\r\nexport function OfficeUserRolesPage({ history }) {\r\n const type = 2;\r\n const userRolesUIEvents = {\r\n newUserRoleButtonClick: () => {\r\n history.push(\"/settings/roles_office/new\");\r\n },\r\n openEditUserRoleDialog: (id) => {\r\n history.push(`/settings/roles_office/${id}/edit`);\r\n },\r\n openDeleteUserRoleDialog: (id) => {\r\n history.push(`/settings/roles_office/${id}/delete`);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/settings/roles_office\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/settings/roles_office\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/settings/roles_office\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { LoadingDialog } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function CodeListsLoadingDialog() {\r\n const intl = useIntl();\r\n \r\n // Users Redux state\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.codeLists.listLoading }),\r\n shallowEqual\r\n );\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading]);\r\n return ;\r\n}\r\n","import * as requestFromServer from \"./codeListsCrud\";\r\nimport { codeListsSlice, callTypes } from \"./codeListsSlice\";\r\n\r\nconst { actions } = codeListsSlice;\r\n\r\nexport const fetchCodeLists = queryParams => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .findCodeLists(queryParams)\r\n .then(response => {\r\n const { totalCount, entities } = response.data;\r\n dispatch(actions.codeListsFetched({ totalCount, entities }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find codeLists\";\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\nexport const fetchCodeList = id => dispatch => {\r\n if (!id) {\r\n return dispatch(actions.codeListFetched({ codeListForEdit: undefined }));\r\n }\r\n\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .getCodeListById(id)\r\n .then(response => {\r\n const codeList = response.data.model;\r\n dispatch(actions.codeListFetched({ codeListForEdit: codeList }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find codeList\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const createCodeList = codeListForCreation => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .createCodeList(codeListForCreation)\r\n .then(response => {\r\n const { model } = response.data;\r\n dispatch(actions.codeListCreated({ model }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't create codeList\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const updateCodeList = codeList => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .updateCodeList(codeList)\r\n .then(() => {\r\n dispatch(actions.codeListUpdated({ codeList }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't update codeList\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const fetchCodeListSchemas = () => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .getCodeListSchemas()\r\n .then(response => {\r\n const codelistSchemas = response.data.entities;\r\n dispatch(actions.codeListSchemasFetched({ codelistSchemas: codelistSchemas }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't get codelist schemas\";\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n","import axios from \"axios\";\r\n\r\n// Method from server should return QueryResultsModel(items: any[], totalsCount: number)\r\n// items => filtered/sorted result\r\nexport function findCodeLists(queryParams) {\r\n return axios.post(\"/api/codeList/find\", queryParams );\r\n}\r\n\r\n// CREATE => POST: add a new user to the server\r\nexport function createCodeList(codeList) {\r\n return axios.post(\"/api/codeList\", codeList );\r\n}\r\n\r\nexport function getCodeListById(codeListId) {\r\n return axios.get(\"/api/codeList/\" + codeListId );\r\n}\r\n\r\n// UPDATE => PUT: update the user on the server\r\nexport function updateCodeList(codeList) {\r\n return axios.put(\"/api/codeList/\" + codeList.id, codeList);\r\n}\r\n\r\nexport function getCodeListSchemas() {\r\n return axios.get(\"/api/codelistSchema\");\r\n}\r\n\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useIntl } from \"react-intl\";\r\n\r\nexport function CodeListEditDialogHeader({ id }) {\r\n const intl = useIntl();\r\n // CodeLists Redux state\r\n const { codeListForEdit, actionsLoading } = useSelector(\r\n (state) => ({\r\n codeListForEdit: state.codeLists.codeListForEdit,\r\n actionsLoading: state.codeLists.actionsLoading,\r\n }),\r\n shallowEqual\r\n );\r\n\r\n const [title, setTitle] = useState(\"\");\r\n // Title couting\r\n useEffect(() => {\r\n let _title = id ? \"\" : intl.formatMessage({ id: \"SETTING.CODELIST.NEW\" }) ;\r\n if (codeListForEdit && id) {\r\n _title = intl.formatMessage({ id: \"SETTING.CODELIST.EDIT\" }) + ` '${codeListForEdit.name}'`;\r\n }\r\n\r\n setTitle(_title);\r\n // eslint-disable-next-line\r\n }, [codeListForEdit, actionsLoading]);\r\n\r\n return (\r\n <>\r\n {actionsLoading && }\r\n \r\n {title}\r\n \r\n \r\n );\r\n}\r\n","// Form is based on Formik\r\n// Data validation is based on Yup\r\n// Please, be familiar with article first:\r\n// https://hackernoon.com/react-form-validation-with-formik-and-yup-8b76bda62e10\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { Formik, Form, Field, FieldArray } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport {\r\n Input,\r\n} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { CheckPermissions, hasRoleForFunctionality } from \"../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../enum/userFunctionalityE\"\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport function CodeListEditForm({\r\n codelistSchemaId,\r\n saveCodeList,\r\n codeList,\r\n actionsLoading,\r\n onHide,\r\n}) {\r\n const { user } = useSelector(state => state.auth);\r\n const intl = useIntl();\r\n\r\n\r\n var readOnly = !hasRoleForFunctionality(user, [UserFunctionalityE.UrediSifrante]);\r\n\r\n // Validation schema\r\n const CodeListEditSchema = Yup.object().shape({\r\n code: Yup.string()\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })),\r\n name: Yup.string()\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })),\r\n });\r\n\r\n return (\r\n <>\r\n {\r\n var obj = {\r\n active: values.active,\r\n code: values.code,\r\n codelistSchemaId: codelistSchemaId,\r\n description: values.description,\r\n id: values.id,\r\n name: values.name\r\n };\r\n saveCodeList(obj);\r\n }}\r\n >\r\n {({ values, handleSubmit }) => (\r\n <>\r\n \r\n {actionsLoading && (\r\n
\r\n
\r\n
\r\n )}\r\n {!actionsLoading && (\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\n\r\n
\r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n <> \r\n {!actionsLoading && (\r\n \r\n handleSubmit()}\r\n className=\"btn btn-primary btn-elevate\"\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","export const defaultSorted = [{ dataField: \"id\", order: \"asc\" }];\r\nexport const sizePerPageList = [\r\n { text: \"10\", value: 10 },\r\n { text: \"25\", value: 25 },\r\n { text: \"50\", value: 50 }\r\n];\r\nexport const initialFilter = {\r\n id:1,\r\n query: \"\",\r\n sortOrder: \"asc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25\r\n};\r\n","import React, {createContext, useContext, useState, useCallback} from \"react\";\r\nimport {isEqual, isFunction} from \"lodash\";\r\nimport { initialFilter } from \"./CodeListsUIHelpers\";\r\n\r\nconst CodeListsUIContext = createContext();\r\n\r\nexport function useCodeListsUIContext() {\r\n return useContext(CodeListsUIContext);\r\n}\r\n\r\nexport const CodeListsUIConsumer = CodeListsUIContext.Consumer;\r\n\r\nexport function CodeListsUIProvider({ codeListsUIEvents, children }) {\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n const initCodeList = {\r\n id: undefined,\r\n code: \"\",\r\n name: \"\",\r\n description: \"\",\r\n active: true,\r\n codelistSchemaId: -1\r\n };\r\n\r\n const value = {\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initCodeList,\r\n newCodeListButtonClick: codeListsUIEvents.newCodeListButtonClick,\r\n openEditCodeListDialog: codeListsUIEvents.openEditCodeListDialog\r\n };\r\n\r\n return {children};\r\n}","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/codeLists/codeListsActions\";\r\nimport { CodeListEditDialogHeader } from \"./CodeListEditDialogHeader\";\r\nimport { CodeListEditForm } from \"./CodeListEditForm\";\r\nimport { useCodeListsUIContext } from \"../CodeListsUIContext\";\r\n\r\nexport function CodeListEditDialog({id, show, onHide }) {\r\n // CodeLists UI Context\r\n const codeListsUIContext = useCodeListsUIContext();\r\n const codeListsUIProps = useMemo(() => {\r\n return {\r\n initCodeList: codeListsUIContext.initCodeList,\r\n queryParams: codeListsUIContext.queryParams\r\n };\r\n }, [codeListsUIContext]);\r\n // CodeLists Redux state\r\n const dispatch = useDispatch();\r\n const { actionsLoading, codeListForEdit } = useSelector(\r\n (state) => ({\r\n actionsLoading: state.codeLists.actionsLoading,\r\n codeListForEdit: state.codeLists.codeListForEdit\r\n }),\r\n shallowEqual\r\n );\r\n\r\n useEffect(() => {\r\n // server call for getting CodeList by id\r\n dispatch(actions.fetchCodeList(id));\r\n \r\n \r\n }, [id, dispatch]);\r\n\r\n \r\n\r\n // server request for saving codeList\r\n const saveCodeList = (codeList) => {\r\n if (!id) {\r\n // server request for creating codeList\r\n dispatch(actions.createCodeList(codeList)).then(() => onHide());\r\n } else {\r\n // server request for updating codeList\r\n dispatch(actions.updateCodeList(codeList)).then(() => onHide());\r\n }\r\n };\r\n \r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useMemo, useState } from \"react\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport { Formik } from \"formik\";\r\nimport { isEqual } from \"lodash\";\r\nimport { useCodeListsUIContext } from \"../CodeListsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport Select from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport * as actions from \"../../../_redux/codeLists/codeListsActions\";\r\n\r\n\r\nexport function CodeListsFilter({ listLoading }) {\r\n const intl = useIntl();\r\n const [codelistSchemaId, setCodelistSchemaId] = useState(1);\r\n\r\n const prepareFilter = (queryParams, values) => {\r\n const newQueryParams = { ...queryParams };\r\n\r\n newQueryParams.id = codelistSchemaId;\r\n return newQueryParams;\r\n };\r\n\r\n // CodeLists UI Context\r\n const codeListsUIContext = useCodeListsUIContext();\r\n const codeListsUIProps = useMemo(() => {\r\n return {\r\n queryParams: codeListsUIContext.queryParams,\r\n setQueryParams: codeListsUIContext.setQueryParams,\r\n };\r\n }, [codeListsUIContext]);\r\n\r\n // Getting curret state of codeLists list from store (Redux)\r\n const { codelistSchemas } = useSelector(\r\n (state) => ({\r\n codelistSchemas: state.codeLists.codelistSchemas\r\n }),\r\n shallowEqual\r\n );\r\n\r\n // CodeLists Redux state\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n if (!codelistSchemas) {\r\n dispatch(actions.fetchCodeListSchemas());\r\n } \r\n }, [dispatch]);\r\n\r\n // queryParams, setQueryParams,\r\n const applyFilter = (values) => {\r\n const newQueryParams = prepareFilter(codeListsUIProps.queryParams, values);\r\n if (!isEqual(newQueryParams, codeListsUIProps.queryParams)) {\r\n newQueryParams.pageNumber = 1;\r\n // update list by queryParams\r\n codeListsUIProps.setQueryParams(newQueryParams);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {\r\n applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n setCodelistSchemaId(e.target.value);\r\n handleSubmit();\r\n }}\r\n >\r\n {codelistSchemas && codelistSchemas.map(option => (\r\n \r\n {option.name}\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","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../../../_metronic/_helpers\";\r\nimport { CheckPermissions } from \"../../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../../enum/userFunctionalityE\"\r\n\r\nexport function ActionsColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n { openEditCodeListDialog }\r\n) {\r\n\r\n return (\r\n <>\r\n {!row.readOnly && (\r\n \r\n openEditCodeListDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport function ActiveColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n) {\r\n\r\n return (\r\n <>\r\n {cellContent &&\r\n }\r\n\r\n {!cellContent &&\r\n }\r\n \r\n \r\n );\r\n}\r\n","// React bootstrap table next =>\r\n// DOCS: https://react-bootstrap-table.github.io/react-bootstrap-table2/docs/\r\n// STORYBOOK: https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html\r\nimport React, { useEffect, useMemo } from \"react\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory, {\r\n PaginationProvider,\r\n} from \"react-bootstrap-table2-paginator\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/codeLists/codeListsActions\";\r\nimport {\r\n getHandlerTableChange,\r\n NoRecordsFoundMessage,\r\n PleaseWaitMessage,\r\n sortCaret,\r\n headerSortingClasses,\r\n} from \"../../../../../../_metronic/_helpers\";\r\nimport * as uiHelpers from \"../CodeListsUIHelpers\";\r\nimport * as columnFormatters from \"./column-formatters\";\r\nimport { Pagination } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useCodeListsUIContext } from \"../CodeListsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function CodeListsTable() {\r\n const intl = useIntl();\r\n // Users UI Context\r\n const codeListsUIContext = useCodeListsUIContext();\r\n const codeListsUIProps = useMemo(() => {\r\n return {\r\n ids: codeListsUIContext.ids,\r\n setIds: codeListsUIContext.setIds,\r\n queryParams: codeListsUIContext.queryParams,\r\n setQueryParams: codeListsUIContext.setQueryParams,\r\n openEditCodeListDialog: codeListsUIContext.openEditCodeListDialog\r\n };\r\n }, [codeListsUIContext]);\r\n\r\n // Getting curret state of codeLists list from store (Redux)\r\n const { currentState } = useSelector(\r\n (state) => ({\r\n currentState: state.codeLists\r\n }),\r\n shallowEqual\r\n );\r\n const { totalCount, entities, listLoading } = currentState;\r\n\r\n // CodeLists Redux state\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n // clear selections list\r\n codeListsUIProps.setIds([]);\r\n // server call by queryParams\r\n dispatch(actions.fetchCodeLists(codeListsUIProps.queryParams));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [codeListsUIProps.queryParams, dispatch]);\r\n\r\n // Table columns\r\n const columns = [\r\n {\r\n dataField: \"id\",\r\n text: \"#\",\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"code\",\r\n text: intl.formatMessage({ id: \"CODE\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"name\",\r\n text: intl.formatMessage({ id: \"AUTH.INPUT.TITLE\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"active\",\r\n text: intl.formatMessage({ id: \"ECOMMERCE.COMMON.ACTIVE\" }),\r\n formatter: columnFormatters.ActiveColumnFormatter,\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"action\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.ACTIONS\" }),\r\n formatter: columnFormatters.ActionsColumnFormatter,\r\n formatExtraData: {\r\n openEditCodeListDialog: codeListsUIProps.openEditCodeListDialog\r\n },\r\n classes: \"text-right pr-0\",\r\n headerClasses: \"text-right pr-3\",\r\n style: {\r\n minWidth: \"100px\",\r\n },\r\n },\r\n ];\r\n\r\n const customTotal = (from, to, size) => (\r\n \r\n {from} - { to} {size} \r\n \r\n );\r\n\r\n // Table pagination properties\r\n const paginationOptions = {\r\n custom: true,\r\n totalSize: totalCount,\r\n sizePerPageList: uiHelpers.sizePerPageList,\r\n sizePerPage: codeListsUIProps.queryParams.pageSize,\r\n page: codeListsUIProps.queryParams.pageNumber,\r\n paginationTotalRenderer: customTotal,\r\n };\r\n return (\r\n <>\r\n \r\n {({ paginationProps, paginationTableProps }) => {\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","import React, { useMemo } from \"react\";\r\nimport { useCodeListsUIContext } from \"../CodeListsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function CodeListsGrouping() {\r\n const intl = useIntl();\r\n\r\n // CodeLists UI Context\r\n const codeListsUIContext = useCodeListsUIContext();\r\n const codeListsUIProps = useMemo(() => {\r\n return {\r\n ids: codeListsUIContext.ids,\r\n setIds: codeListsUIContext.setIds,\r\n openDeleteCodeListsDialog: codeListsUIContext.openDeleteCodeListsDialog\r\n };\r\n }, [codeListsUIContext]);\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","import React, { useMemo } from \"react\";\r\nimport {\r\n Card,\r\n CardBody,\r\n CardHeader,\r\n CardHeaderToolbar,\r\n} from \"../../../../../_metronic/_partials/controls\";\r\nimport { CodeListsFilter } from \"./codeLists-filter/CodeListsFilter\";\r\nimport { CodeListsTable } from \"./codeLists-table/CodeListsTable\";\r\nimport { CodeListsGrouping } from \"./codeLists-grouping/CodeListsGrouping\";\r\nimport { useCodeListsUIContext } from \"./CodeListsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { CheckPermissions } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\n\r\n\r\nexport function CodeListsCard() {\r\n const intl = useIntl();\r\n const codeListsUIContext = useCodeListsUIContext();\r\n const codeListsUIProps = useMemo(() => {\r\n return {\r\n ids: codeListsUIContext.ids,\r\n newCodeListButtonClick: codeListsUIContext.newCodeListButtonClick,\r\n };\r\n }, [codeListsUIContext]);\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 {codeListsUIProps.ids.length > 0 && }\r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\nimport { CodeListsLoadingDialog } from \"./codeLists-loading-dialog/CodeListsLoadingDialog\";\r\nimport { CodeListEditDialog } from \"./codeList-edit-dialog/CodeListEditDialog\";\r\nimport { CodeListsUIProvider } from \"./CodeListsUIContext\";\r\nimport { CodeListsCard } from \"./CodeListsCard\";\r\n\r\nexport function CodeListsPage({ history }) {\r\n const codeListsUIEvents = {\r\n newCodeListButtonClick: () => {\r\n history.push(\"/settings/codelist/new\");\r\n },\r\n openEditCodeListDialog: (id) => {\r\n history.push(`/settings/codelist/${id}/edit`);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/settings/codelist\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/settings/codelist\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { useSelector, shallowEqual, connect, useDispatch } from \"react-redux\";\r\nimport { useFormik } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { ModalProgressBar } from \"../../../../../_metronic/_partials/controls\";\r\nimport { toAbsoluteUrl } from \"../../../../../_metronic/_helpers\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { changePassword } from \"../../_redux/changePassword/changePasswordCrud\"\r\n\r\nexport function ChangePasswordPage(props) {\r\n const intl = useIntl();\r\n // Fields\r\n const [loading, setLoading] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n const [isSuccess, setIsSuccess] = useState(false);\r\n const dispatch = useDispatch();\r\n const user = useSelector((state) => state.auth.user, shallowEqual);\r\n useEffect(() => { }, [user]);\r\n // Methods\r\n const saveUser = (values, setStatus, setSubmitting) => {\r\n setLoading(true);\r\n setIsError(false);\r\n setIsSuccess(false);\r\n const updatedUser = {\r\n id: user.id,\r\n currentPassword: values.currentPassword,\r\n password: values.password\r\n };\r\n\r\n changePassword(updatedUser).then(({ data }) => {\r\n if (data.didError) {\r\n setIsError(true);\r\n } else {\r\n setIsSuccess(data.model);\r\n setIsError(!data.model);\r\n }\r\n setLoading(false);\r\n setSubmitting(false);\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n setSubmitting(false);\r\n setIsError(true);\r\n });\r\n };\r\n // UI Helpers\r\n const initialValues = {\r\n currentPassword: \"\",\r\n password: \"\",\r\n cPassword: \"\",\r\n };\r\n const Schema = Yup.object().shape({\r\n currentPassword: Yup.string().required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })),\r\n password: Yup.string()\r\n .min(3, intl.formatMessage({ id: 'AUTH.GENERAL.MINIMUM_3_SYMBOLS' }))\r\n .max(50, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_50_SYMBOLS' }))\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })),\r\n cPassword: Yup.string()\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n }))\r\n .when(\"password\", {\r\n is: (val) => (val && val.length > 0 ? true : false),\r\n then: Yup.string().oneOf(\r\n [Yup.ref(\"password\")],\r\n intl.formatMessage({ id: 'AUTH.GENERAL.PASSWORD_AND_CONFIRM_PASSWORD_DIDNT_MATCH' })\r\n ),\r\n }),\r\n });\r\n const getInputClasses = (fieldname) => {\r\n if (formik.touched[fieldname] && formik.errors[fieldname]) {\r\n return \"is-invalid\";\r\n }\r\n\r\n if (formik.touched[fieldname] && !formik.errors[fieldname]) {\r\n return \"is-valid\";\r\n }\r\n\r\n return \"\";\r\n };\r\n const formik = useFormik({\r\n initialValues,\r\n validationSchema: Schema,\r\n onSubmit: (values, { setStatus, setSubmitting, resetForm }) => {\r\n saveUser(values, setStatus, setSubmitting);\r\n resetForm(initialValues);\r\n }\r\n });\r\n\r\n return (\r\n
\r\n {loading && }\r\n\r\n {/* begin::Header */}\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 {formik.isSubmitting}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {/* end::Header */}\r\n {/* begin::Form */}\r\n
\r\n
\r\n {/* begin::Alert */}\r\n {isSuccess && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n \r\n
\r\n
setIsSuccess(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n\r\n {isError && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
setIsError(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n {/* end::Alert */}\r\n
\r\n \r\n
\r\n \r\n {formik.touched.currentPassword &&\r\n formik.errors.currentPassword ? (\r\n
\r\n {formik.errors.currentPassword}\r\n
\r\n ) : null}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {formik.touched.password && formik.errors.password ? (\r\n
{formik.errors.password}
\r\n ) : null}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {formik.touched.cPassword && formik.errors.cPassword ? (\r\n
\r\n {formik.errors.cPassword}\r\n
\r\n ) : null}\r\n
\r\n
\r\n
\r\n
\r\n {/* end::Form */}\r\n \r\n );\r\n}\r\n\r\n","import axios from \"axios\";\r\n\r\nexport function changePassword(user) {\r\n return axios.post(\"/api/officeUser/changePassword\", user);\r\n}\r\n","import * as requestFromServer from \"./exportCrud\";\r\nimport { exportSlice, callTypes } from \"./exportSlice\";\r\nimport moment from 'moment';\r\n\r\nconst { actions } = exportSlice;\r\n\r\nexport const fetchLastExportData = () => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .getLastExportData()\r\n .then(response => {\r\n const exportData = response.data.model;\r\n var date = new Date();\r\n exportData.toDate = moment(date).format(\"YYYY-MM-DD\");\r\n exportData.fromDate = moment(date.setMonth(date.getMonth() - 1)).format(\"YYYY-MM-DD\");\r\n dispatch(actions.lastExportDataFetched({ exportDataForEdit: exportData }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find last export data\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const fetchExperts = queryParams => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .findExports(queryParams)\r\n .then(response => {\r\n const { totalCount, entities } = response.data;\r\n dispatch(actions.expertsFetched({ totalCount, entities }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find experts\";\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};","import axios from \"axios\";\r\n\r\nexport function saveExportData(data) {\r\n return axios.post(\"/api/export\", data);\r\n}\r\n\r\nexport function getLastExportData() {\r\n return axios.get(\"/api/export/getLastExportData\");\r\n}\r\n\r\nexport function findExports(queryParams) {\r\n return axios.post(\"/api/export/find\", queryParams);\r\n}\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../../../_metronic/_helpers\";\r\n\r\n\r\nexport function ActionsColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex\r\n) {\r\n return (\r\n <>\r\n {row.status == 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","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport Moment from 'react-moment';\r\n\r\n\r\nexport function DateColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex\r\n) {\r\n return (\r\n <>\r\n \r\n {cellContent}\r\n \r\n \r\n \r\n );\r\n}\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport Moment from 'react-moment';\r\n\r\nexport function IntervalColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex\r\n) {\r\n\r\n return (\r\n <>\r\n \r\n {row.fromDate}\r\n \r\n -\r\n \r\n {row.toDate}\r\n \r\n \r\n );\r\n}\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport function StatusColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex\r\n) {\r\n return (\r\n <>\r\n {cellContent == 1 && }\r\n {cellContent == 2 && }\r\n {cellContent == 3 && }\r\n \r\n );\r\n}\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport function CreatorColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex\r\n) {\r\n return (\r\n <>\r\n {row.creator.firstName} {row.creator.lastName}\r\n \r\n );\r\n}\r\n","// React bootstrap table next =>\r\n// DOCS: https://react-bootstrap-table.github.io/react-bootstrap-table2/docs/\r\n// STORYBOOK: https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html\r\nimport React, { useEffect, useState, useMemo } from \"react\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory, {\r\n PaginationProvider,\r\n} from \"react-bootstrap-table2-paginator\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/export/exportActions\";\r\nimport {\r\n getSelectRow,\r\n getHandlerTableChange,\r\n NoRecordsFoundMessage,\r\n PleaseWaitMessage,\r\n sortCaret,\r\n headerSortingClasses,\r\n} from \"../../../../../../_metronic/_helpers\";\r\nimport * as columnFormatters from \"./column-formatters\";\r\nimport { Pagination } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function ExportsTable(refeshCount) {\r\n const intl = useIntl();\r\n const defaultSorted = [{ dataField: \"id\", order: \"asc\" }];\r\n const sizePerPageList = [\r\n { text: \"10\", value: 10 },\r\n { text: \"25\", value: 25 },\r\n { text: \"50\", value: 50 }\r\n ];\r\n const [queryParams, setQueryParams] = useState({\r\n status: 1,\r\n query: \"\",\r\n sortOrder: \"asc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25\r\n });\r\n\r\n // Getting curret state of customers list from store (Redux)\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.export }),\r\n shallowEqual\r\n );\r\n const { totalCount, entities, listLoading } = currentState;\r\n\r\n // Customers Redux state\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n dispatch(actions.fetchExperts(queryParams));\r\n }, [dispatch, refeshCount.refeshCount]);\r\n\r\n // Table columns\r\n const columns = [\r\n {\r\n dataField: \"id\",\r\n text: \"#\",\r\n hidden: true,\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"date\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n sort: false,\r\n formatter: columnFormatters.DateColumnFormatter,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"creatorId\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.CREATOR2\" }),\r\n formatter: columnFormatters.CreatorColumnFormatter,\r\n sort: false,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"fromDate\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.INTERVAL\" }),\r\n formatter: columnFormatters.IntervalColumnFormatter,\r\n sort: false,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"email\",\r\n text: intl.formatMessage({ id: \"AUTH.INPUT.EMAIL\" }),\r\n sort: false,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"status\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.STATUS\" }),\r\n formatter: columnFormatters.StatusColumnFormatter,\r\n sort: false,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"action\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.ACTIONS\" }),\r\n formatter: columnFormatters.ActionsColumnFormatter,\r\n classes: \"text-right pr-0\",\r\n headerClasses: \"text-right pr-3\",\r\n style: {\r\n minWidth: \"100px\",\r\n },\r\n }\r\n ];\r\n\r\n const customTotal = (from, to, size) => (\r\n \r\n {from} - { to} {size} \r\n \r\n );\r\n\r\n // Table pagination properties\r\n const paginationOptions = {\r\n custom: true,\r\n totalSize: totalCount,\r\n sizePerPageList: sizePerPageList,\r\n sizePerPage: queryParams.pageSize,\r\n page: queryParams.pageNumber,\r\n paginationTotalRenderer: customTotal,\r\n };\r\n return (\r\n <>\r\n \r\n {({ paginationProps, paginationTableProps }) => {\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","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { useSelector, shallowEqual, connect, useDispatch } from \"react-redux\";\r\nimport { useFormik } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { ModalProgressBar } from \"../../../../../_metronic/_partials/controls\";\r\nimport { toAbsoluteUrl } from \"../../../../../_metronic/_helpers\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { saveExportData } from \"../../_redux/export/exportCrud\"\r\nimport moment from 'moment'\r\nimport InfoPopup from \"../../../Helpers/InfoPopup\"\r\nimport * as actions from \"../../_redux/export/exportActions\"\r\nimport { ExportsTable } from \"./exports-table/ExportsTable\";\r\n\r\nexport function ExportPage(props) {\r\n const intl = useIntl();\r\n // Fields\r\n const [loading, setLoading] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n const [isSuccess, setIsSuccess] = useState(false);\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n const [refeshCount, setRefeshCount] = useState(0);\r\n const dispatch = useDispatch();\r\n const user = useSelector((state) => state.auth.user, shallowEqual);\r\n useEffect(() => { }, [user]);\r\n\r\n useEffect(() => {\r\n dispatch(actions.fetchLastExportData());\r\n\r\n }, [dispatch]);\r\n\r\n const { currentState } = useSelector(\r\n (state) => ({\r\n currentState: state.export\r\n }),\r\n shallowEqual\r\n );\r\n const { totalCount, entities, listLoading, exportDataForEdit } = currentState;\r\n\r\n // Methods\r\n const saveExport = (values, setStatus, setSubmitting) => {\r\n\r\n if (!values.dailyReport &&\r\n !values.stockReport &&\r\n !values.zReport &&\r\n !values.deliveryNoteInvoiceReport &&\r\n !values.xmlExport &&\r\n !values.documentsFromCashier &&\r\n !values.documentsFromOffice)\r\n {\r\n setLoading(false);\r\n setSubmitting(false);\r\n setMessage(intl.formatMessage({ id: 'AUTH.OPS_CAN_NOT_EXPORT' }));\r\n setOpen(true);\r\n return;\r\n }\r\n \r\n setLoading(true);\r\n setIsError(false);\r\n setIsSuccess(false);\r\n\r\n saveExportData(values).then(({ data }) => {\r\n if (data.didError) {\r\n setIsError(true);\r\n } else {\r\n setIsSuccess(data.model);\r\n setIsError(!data.model);\r\n }\r\n setLoading(false);\r\n setSubmitting(false);\r\n setRefeshCount(refeshCount + 1);\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n setSubmitting(false);\r\n setIsError(true);\r\n });\r\n };\r\n\r\n var date = new Date();\r\n // UI Helpers\r\n const initialValues = {\r\n toDate: moment(date).format(\"YYYY-MM-DD\"),\r\n fromDate: moment(date.setMonth(date.getMonth() - 1)).format(\"YYYY-MM-DD\"),\r\n email: \"\",\r\n password: \"\",\r\n confirmPassword: \"\",\r\n dailyReport: true,\r\n stockReport: false,\r\n zReport: false,\r\n deliveryNoteInvoiceReport: false,\r\n xmlExport: true,\r\n documentsFromCashier: false,\r\n documentsFromOffice: false,\r\n vodKonto1: \"\",\r\n vodKonto2: \"\",\r\n vodKonto3: \"\",\r\n vodKonto4: \"\",\r\n vodKonto5: \"\",\r\n vodKonto6: \"\",\r\n vodKonto7: \"\",\r\n vodKonto8: \"\",\r\n vodKonto9: \"\",\r\n vodKonto10: \"\",\r\n vodKonto11: \"\",\r\n vodKonto12: \"\",\r\n vodUnknownBuyer: \"\",\r\n vodCostCenter: \"\"\r\n };\r\n\r\n const Schema = Yup.object().shape({\r\n password: Yup.string()\r\n .min(3, intl.formatMessage({ id: 'AUTH.GENERAL.MINIMUM_3_SYMBOLS' }))\r\n .max(50, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_50_SYMBOLS' }))\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })),\r\n confirmPassword: Yup.string()\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n }))\r\n .when(\"password\", {\r\n is: (val) => (val && val.length > 0 ? true : false),\r\n then: Yup.string().oneOf(\r\n [Yup.ref(\"password\")],\r\n intl.formatMessage({ id: 'AUTH.GENERAL.PASSWORD_AND_CONFIRM_PASSWORD_DIDNT_MATCH' })\r\n ),\r\n }),\r\n email: Yup.string()\r\n .email(intl.formatMessage({ id: 'AUTH.GENERAL.WRONG_EMAIL_FORMAT' }))\r\n .min(3, intl.formatMessage({ id: 'AUTH.GENERAL.MINIMUM_3_SYMBOLS' }))\r\n .max(50, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_50_SYMBOLS' }))\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n fromDate: Yup.string()\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n toDate: Yup.string()\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n toDate: Yup.date().default(null)\r\n .when(\"fromDate\",\r\n (fromDate, yup) => fromDate && yup.min(fromDate, intl.formatMessage({ id: 'AUTH.GENERAL.FROM_DATE_GREATER_THAN_TO_DATE' })))\r\n });\r\n\r\n const getInputClasses = (fieldname) => {\r\n if (formik.touched[fieldname] && formik.errors[fieldname]) {\r\n return \"is-invalid\";\r\n }\r\n\r\n if (formik.touched[fieldname] && !formik.errors[fieldname]) {\r\n return \"is-valid\";\r\n }\r\n\r\n return \"\";\r\n };\r\n \r\n const formik = useFormik({\r\n initialValues: exportDataForEdit || initialValues,\r\n validationSchema: Schema,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setStatus, setSubmitting, resetForm }) => {\r\n saveExport(values, setStatus, setSubmitting);\r\n }\r\n });\r\n\r\n return (\r\n
\r\n {loading && }\r\n\r\n {/* begin::Header */}\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 {formik.isSubmitting}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {/* end::Header */}\r\n {/* begin::Form */}\r\n
\r\n
\r\n {/* begin::Alert */}\r\n {isSuccess && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n \r\n
\r\n
setIsSuccess(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n\r\n {isError && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
setIsError(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n {/* end::Alert */}\r\n\r\n
\r\n
\r\n \r\n \r\n {formik.touched.fromDate &&\r\n formik.errors.fromDate ? (\r\n
\r\n {formik.errors.fromDate}\r\n
\r\n ) : null}\r\n
\r\n \r\n
\r\n \r\n \r\n {formik.touched.toDate &&\r\n formik.errors.toDate ? (\r\n
\r\n {formik.errors.toDate}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n \r\n \r\n {formik.touched.email &&\r\n formik.errors.email ? (\r\n
\r\n {formik.errors.email}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n {formik.touched.password &&\r\n formik.errors.password ? (\r\n
\r\n {formik.errors.password}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n \r\n \r\n {formik.touched.confirmPassword &&\r\n formik.errors.confirmPassword ? (\r\n
\r\n {formik.errors.confirmPassword}\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\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\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 {formik.values.xmlExport && <>\r\n
\r\n

\r\n
\r\n
\r\n
\r\n \r\n \r\n {formik.touched.vodKonto2 &&\r\n formik.errors.vodKonto2 ? (\r\n
\r\n {formik.errors.vodKonto2}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n \r\n \r\n {formik.touched.vodKonto4 &&\r\n formik.errors.vodKonto4 ? (\r\n
\r\n {formik.errors.vodKonto4}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n \r\n \r\n {formik.touched.vodKonto3 &&\r\n formik.errors.vodKonto3 ? (\r\n
\r\n {formik.errors.vodKonto3}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n {formik.touched.vodKonto5 &&\r\n formik.errors.vodKonto5 ? (\r\n
\r\n {formik.errors.vodKonto5}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n \r\n \r\n {formik.touched.vodKonto10 &&\r\n formik.errors.vodKonto10 ? (\r\n
\r\n {formik.errors.vodKonto10}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n \r\n \r\n {formik.touched.vodKonto11 &&\r\n formik.errors.vodKonto11 ? (\r\n
\r\n {formik.errors.vodKonto11}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n {formik.touched.vodKonto1 &&\r\n formik.errors.vodKonto1 ? (\r\n
\r\n {formik.errors.vodKonto1}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n \r\n \r\n {formik.touched.vodKonto6 &&\r\n formik.errors.vodKonto6 ? (\r\n
\r\n {formik.errors.vodKonto6}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n \r\n \r\n {formik.touched.vodKonto8 &&\r\n formik.errors.vodKonto8 ? (\r\n
\r\n {formik.errors.vodKonto8}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n {formik.touched.vodKonto7 &&\r\n formik.errors.vodKonto7 ? (\r\n
\r\n {formik.errors.vodKonto7}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n \r\n \r\n {formik.touched.vodKonto9 &&\r\n formik.errors.vodKonto9 ? (\r\n
\r\n {formik.errors.vodKonto9}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n \r\n \r\n {formik.touched.vodKonto12 &&\r\n formik.errors.vodKonto12 ? (\r\n
\r\n {formik.errors.vodKonto12}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n {formik.touched.vodUnknownBuyer &&\r\n formik.errors.vodUnknownBuyer ? (\r\n
\r\n {formik.errors.vodUnknownBuyer}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n \r\n \r\n {formik.touched.vodCostCenter &&\r\n formik.errors.vodCostCenter ? (\r\n
\r\n {formik.errors.vodCostCenter}\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 setRefeshCount(refeshCount + 1);\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 {/* end::Form */}\r\n setOpen(false)} />\r\n \r\n );\r\n}\r\n\r\n","import * as requestFromServer from \"./yourProfileCrud\";\r\nimport { yourProfileSlice, callTypes } from \"./yourProfileSlice\";\r\n\r\nconst { actions } = yourProfileSlice;\r\n\r\nexport const fetchProfile = id => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .getProfile()\r\n .then(response => {\r\n const profile = response.data.model;\r\n dispatch(actions.profileFetched({ profileForEdit: profile }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find profile\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const updateProfile = profile => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .updateProfile(profile)\r\n .then(() => {\r\n dispatch(actions.profileUpdated({ profile }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't update profile\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n","import axios from \"axios\";\r\n\r\nexport function getProfile() {\r\n return axios.get(\"/api/profile\");\r\n}\r\n\r\nexport function updateProfile(profile) {\r\n return axios.post(\"/api/profile/\", profile);\r\n}\r\n\r\nexport function updateSignatureProfile(data) {\r\n return axios.post(\"/api/profile/signature\", data);\r\n}\r\n\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { useSelector, shallowEqual, connect, useDispatch } from \"react-redux\";\r\nimport { useFormik } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { ModalProgressBar } from \"../../../../../_metronic/_partials/controls\";\r\nimport { toAbsoluteUrl } from \"../../../../../_metronic/_helpers\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport * as actions from \"../../../Setting/_redux/yourProfile/yourProfileAction\";\r\nimport { updateSignatureProfile } from \"../../_redux/yourProfile/yourProfileCrud\";\r\n\r\n\r\nexport function YourProfileForm() {\r\n const intl = useIntl();\r\n // Fields\r\n const [loading, setLoading] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n const [isSuccess, setIsSuccess] = useState(false);\r\n const [signatureUniqueId, setSignatureUniqueId] = useState(\"\");\r\n const [removeSignature, setRemoveSignature] = useState(false);\r\n const dispatch = useDispatch();\r\n const user = useSelector((state) => state.auth.user, shallowEqual);\r\n const { profile, error } = useSelector(\r\n (state) => ({\r\n profile: state.profile.profileForEdit,\r\n error: state.profile.error\r\n }),\r\n shallowEqual\r\n );\r\n // CodeLists Redux state\r\n\r\n useEffect(() => {\r\n }, [user, profile]);\r\n\r\n // Methods\r\n const saveProfile = (values, setStatus, setSubmitting) => {\r\n setLoading(true);\r\n setIsError(false);\r\n setIsSuccess(false);\r\n\r\n var newSignatureUniqueId = values.signatureUniqueId;\r\n if (removeSignature == true) {\r\n newSignatureUniqueId = \"\";\r\n } else if (signatureUniqueId != \"\" && newSignatureUniqueId != signatureUniqueId) {\r\n newSignatureUniqueId = signatureUniqueId;\r\n }\r\n\r\n var obj = {\r\n firstName: values.firstName,\r\n lastName: values.lastName,\r\n phone: values.phone,\r\n email: values.email,\r\n signatureUniqueId: newSignatureUniqueId\r\n };\r\n\r\n dispatch(actions.updateProfile(obj)).then(() => {\r\n setIsError(error != null);\r\n setIsSuccess(error == null);\r\n setLoading(false);\r\n setSubmitting(false);\r\n setRemoveSignature(false);\r\n setSignatureUniqueId(\"\");\r\n });\r\n };\r\n\r\n const getSignature = () => {\r\n if (removeSignature) {\r\n return \"none\"\r\n }\r\n return \"url(/api/profile/signature?uniqueId=\" + signatureUniqueId + \"&\" + new Date().getTime() + \")\";\r\n };\r\n const onClickRemoveSignature = () => {\r\n setSignatureUniqueId(\"\");\r\n setRemoveSignature(true);\r\n };\r\n\r\n const onChangeSignature = event => {\r\n const formData = new FormData();\r\n formData.append(\r\n \"signature\",\r\n event.target.files[0],\r\n event.target.files[0].name\r\n );\r\n updateSignatureProfile(formData).then((req) => {\r\n if (!req.data.didError) {\r\n setSignatureUniqueId(req.data.model);\r\n setRemoveSignature(false);\r\n } else {\r\n setSignatureUniqueId(\"\");\r\n }\r\n }).catch(() => {\r\n setSignatureUniqueId(\"\");\r\n });\r\n }\r\n\r\n // UI Helpers\r\n const initialValues = {\r\n firstName: profile != undefined ? profile.firstName : \"\",\r\n lastName: profile != undefined ? profile.lastName : \"\",\r\n phone: profile != undefined ? profile.phone : \"\",\r\n email: profile != undefined ? profile.email : \"\",\r\n signatureUniqueId: profile != undefined ? profile.signatureUniqueId : \"\"\r\n };\r\n\r\n const Schema = Yup.object().shape({\r\n firstName: Yup.string()\r\n .max(50, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_50_SYMBOLS' }))\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })),\r\n email: Yup.string()\r\n .email(intl.formatMessage({ id: 'AUTH.GENERAL.WRONG_EMAIL_FORMAT' })),\r\n });\r\n\r\n const getInputClasses = (fieldname) => {\r\n if (formik.touched[fieldname] && formik.errors[fieldname]) {\r\n return \"is-invalid\";\r\n }\r\n\r\n if (formik.touched[fieldname] && !formik.errors[fieldname]) {\r\n return \"is-valid\";\r\n }\r\n\r\n return \"\";\r\n };\r\n const formik = useFormik({\r\n initialValues,\r\n enableReinitialize: true,\r\n validationSchema: Schema,\r\n onSubmit: (values, { setStatus, setSubmitting, resetForm }) => {\r\n saveProfile(values, setStatus, setSubmitting);\r\n resetForm(initialValues);\r\n setSignatureUniqueId(\"\");\r\n }\r\n });\r\n\r\n return (\r\n
\r\n {loading && }\r\n\r\n {/* begin::Header */}\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 {formik.isSubmitting}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {/* end::Header */}\r\n {/* begin::Form */}\r\n
\r\n
\r\n {/* begin::Alert */}\r\n {isSuccess && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n \r\n
\r\n
setIsSuccess(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n\r\n {isError && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
setIsError(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n {/* end::Alert */}\r\n
\r\n \r\n
\r\n \r\n {formik.touched.firstName &&\r\n formik.errors.firstName ? (\r\n
\r\n {formik.errors.firstName}\r\n
\r\n ) : null}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {formik.touched.lastName && formik.errors.lastName ? (\r\n
{formik.errors.lastName}
\r\n ) : null}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {formik.touched.phone && formik.errors.phone ? (\r\n
\r\n {formik.errors.phone}\r\n
\r\n ) : null}\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n {formik.touched.email && formik.errors.email ? (\r\n
\r\n {formik.errors.email}\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 \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 {/* end::Form */}\r\n \r\n );\r\n}\r\n\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { useSelector, shallowEqual, useDispatch } from \"react-redux\";\r\nimport { ModalProgressBar } from \"../../../../../_metronic/_partials/controls\";\r\nimport * as actions from \"../../../Setting/_redux/yourProfile/yourProfileAction\";\r\nimport { YourProfileForm } from \"./YourProfileForm\"\r\n\r\n\r\n\r\nexport function YourProfilePage() {\r\n // Fields\r\n const [loading, setLoading] = useState(false);\r\n const dispatch = useDispatch();\r\n const user = useSelector((state) => state.auth.user, shallowEqual);\r\n\r\n // CodeLists Redux state\r\n useEffect(() => {\r\n setLoading(true);\r\n dispatch(actions.fetchProfile()).then(() => {\r\n setLoading(false);\r\n });\r\n }, [dispatch]);\r\n\r\n\r\n useEffect(() => {\r\n }, [user]);\r\n\r\n return (\r\n <>\r\n {loading && }\r\n \r\n \r\n );\r\n}\r\n\r\n","import * as requestFromServer from \"./yourCompanyCrud\";\r\nimport { yourCompanySlice, callTypes } from \"./yourCompanySlice\";\r\n\r\nconst { actions } = yourCompanySlice;\r\n\r\nexport const fetchOrganization = id => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .getOrganization()\r\n .then(response => {\r\n const organization = response.data.model;\r\n dispatch(actions.organizationFetched({ organizationForEdit: organization }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find organization\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const updateOrganization = organization => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .updateOrganization(organization)\r\n .then(() => {\r\n dispatch(actions.organizationUpdated({ organization }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't update organization\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const fetchFiscalDigitalCertificate = id => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .getFiscalDigitalCertificate()\r\n .then(response => {\r\n const fiscalDigitalCertificate = response.data.model.name == null ? null : response.data.model;\r\n dispatch(actions.fiscalDigitalCertificateFetched({ fiscalDigitalCertificateForEdit: fiscalDigitalCertificate }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find fiscal digital Certificate\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const updateFiscalDigitalCertificate = fiscalDigitalCertificate => dispatch => {\r\n dispatch(actions.fiscalDigitalCertificateFetched({ fiscalDigitalCertificateForEdit: fiscalDigitalCertificate }));\r\n};\r\n","import axios from \"axios\";\r\n\r\nexport function getOrganization() {\r\n return axios.get(\"/api/organization\");\r\n}\r\n\r\n// UPDATE => PUT: update the user on the server\r\nexport function updateOrganization(organization) {\r\n return axios.put(\"/api/organization/yourOrganization\", organization);\r\n}\r\n\r\nexport function updateLogoOrganization(data) {\r\n return axios.post(\"/api/organization/logo\", data);\r\n}\r\n\r\nexport function updateFiscalDigitalCertificate(data) {\r\n return axios.post(\"/api/fiscalDigitalCertificate\", data);\r\n}\r\n\r\nexport function getFiscalDigitalCertificate() {\r\n return axios.get(\"/api/fiscalDigitalCertificate\");\r\n}","// *https://www.registers.service.gov.uk/registers/country/use-the-api*\r\nimport React, { useState, useEffect } from 'react';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport default function AutocompletePost(props) {\r\n const intl = useIntl();\r\n const [open, setOpen] = useState(false);\r\n const [options, setOptions] = useState([]);\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [value, setValue] = useState(props.value);\r\n const loading = open && options.length === 0;\r\n\r\n useEffect(() => {\r\n let active = true;\r\n \r\n if (!loading) {\r\n return undefined;\r\n }\r\n\r\n (async () => {\r\n const response = await fetch('/api/post/all');\r\n const result = await response.json();\r\n\r\n if (active) {\r\n setOptions(Object.keys(result.entities).map((key) => result.entities[key]));\r\n }\r\n })();\r\n\r\n return () => {\r\n active = false;\r\n };\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (!open) {\r\n setOptions([]);\r\n }\r\n }, [open]);\r\n\r\n\r\n return (\r\n <>\r\n {\r\n setOpen(true);\r\n }}\r\n onClose={() => {\r\n setOpen(false);\r\n }}\r\n value={props.value}\r\n getOptionSelected={(option, value) => option.code === value.code}\r\n getOptionLabel={(option) => option.code + \" \" + option.title}\r\n options={options}\r\n loading={loading}\r\n onChange={(event, value) => { setValue(value); props.onChange(value); }}\r\n onInputChange={(event, value) => { setInputValue(value); }}\r\n renderInput={(params) => (\r\n \r\n {loading ? : null}\r\n {params.InputProps.endAdornment}\r\n \r\n ),\r\n }}\r\n />\r\n )}\r\n />\r\n \r\n );\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { useSelector, shallowEqual, useDispatch } from \"react-redux\";\r\nimport { useFormik } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { ModalProgressBar } from \"../../../../../_metronic/_partials/controls\";\r\nimport { toAbsoluteUrl } from \"../../../../../_metronic/_helpers\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport * as actions from \"../../../Setting/_redux/yourCompany/yourCompanyAction\";\r\nimport { CheckPermissions, hasRoleForFunctionality } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\nimport AutocompletePost from '../../../../components/AutocompletePost'\r\nimport { updateLogoOrganization } from \"../../_redux/yourCompany/yourCompanyCrud\";\r\n\r\nexport default function CompanyDetails(props) {\r\n const intl = useIntl();\r\n // Fields\r\n const [loading, setLoading] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n const [isSuccess, setIsSuccess] = useState(false);\r\n const [logoUniqueId, setLogoUniqueId] = useState(\"\");\r\n const [removeLogo, setRemoveLogo] = useState(false);\r\n const dispatch = useDispatch();\r\n const user = useSelector((state) => state.auth.user, shallowEqual);\r\n const { organization, error } = useSelector(\r\n (state) => ({\r\n organization: state.organization.organizationForEdit,\r\n error: state.organization.error\r\n }),\r\n shallowEqual\r\n );\r\n\r\n const [post, setPost] = useState(organization != undefined && organization.postCode != null ?\r\n { code: organization.postCode, title: organization.postTitle } : null);\r\n\r\n var readOnly = !hasRoleForFunctionality(user, [UserFunctionalityE.UrediVasePodjetje]);\r\n\r\n useEffect(() => {\r\n setPost(organization != undefined && organization.postCode != null ?\r\n { code: organization.postCode, title: organization.postTitle } : null);\r\n }, [user, organization]);\r\n // Methods\r\n const saveOrganization = (values, setStatus, setSubmitting) => {\r\n setLoading(true);\r\n setIsError(false);\r\n setIsSuccess(false);\r\n\r\n var newLogoUniqueId = values.logoUniqueId;\r\n if (removeLogo == true) {\r\n newLogoUniqueId = \"\";\r\n } else if (logoUniqueId != \"\" && newLogoUniqueId != logoUniqueId) {\r\n newLogoUniqueId = logoUniqueId;\r\n }\r\n \r\n var obj = {\r\n address: values.address,\r\n appModulePurchase: values.appModulePurchase,\r\n appModuleSales: values.appModuleSales,\r\n description: values.description,\r\n id: values.id,\r\n name: values.name,\r\n postCode: post.code,\r\n postTitle: post.title,\r\n registrationNumber: values.registrationNumber,\r\n taxDuty: values.taxDuty,\r\n taxNumber: values.taxNumber,\r\n town: values.town,\r\n bankName: values.bankName,\r\n bankIban: values.bankIban,\r\n bankBic: values.bankBic,\r\n invoiceSendToMail: values.invoiceSendToMail,\r\n invoiceEmail: values.invoiceEmail,\r\n invoiceAddress: values.invoiceAddress,\r\n invoicePostCode: values.invoicePostCode,\r\n invoicePostTitle: values.invoicePostTitle,\r\n logoUniqueId: newLogoUniqueId,\r\n officeUserCount: values.officeUserCount,\r\n cashierUserCount: values.cashierUserCount,\r\n cashierCount: values.cashierCount,\r\n minOfficeUserCount: values.minOfficeUserCount,\r\n minCashierUserCount: values.minCashierUserCount,\r\n minCashierCount: values.minCashierCount,\r\n deactiveReason: values.deactiveReason,\r\n deactiveDate: values.deactiveDate,\r\n confirmed: values.confirmed,\r\n contractExpirationDate: values.contractExpirationDate\r\n };\r\n \r\n dispatch(actions.updateOrganization(obj)).then(() => {\r\n setIsError(error != null);\r\n setIsSuccess(error == null);\r\n setLoading(false);\r\n setSubmitting(false);\r\n setRemoveLogo(false);\r\n setLogoUniqueId(\"\");\r\n });\r\n };\r\n // UI Helpers\r\n const initialValues = {\r\n address: organization != undefined && organization != null ? organization.address : \"\",\r\n appModulePurchase: organization && organization != null != undefined ? organization.appModulePurchase : false,\r\n appModuleSales: organization && organization != null != undefined ? organization.appModuleSales : false,\r\n description: organization && organization != null != undefined ? organization.description : \"\",\r\n id: organization && organization != null != undefined ? organization.id : -1,\r\n name: organization && organization != null != undefined ? organization.name : \"\",\r\n postCode: organization && organization != null != undefined ? organization.postCode : 0,\r\n postTitle: organization && organization != null != undefined ? organization.postTitle : \"\",\r\n registrationNumber: organization && organization != null != undefined ? organization.registrationNumber : \"\",\r\n taxDuty: organization != undefined && organization != null ? organization.taxDuty : false,\r\n taxNumber: organization != undefined && organization != null ? organization.taxNumber : \"\",\r\n town: organization != undefined && organization != null ? organization.town : \"\",\r\n bankName: organization != undefined && organization != null && organization.bankName != null ? organization.bankName : \"\",\r\n bankIban: organization != undefined && organization != null && organization.bankIban != null ? organization.bankIban : \"\",\r\n bankBic: organization != undefined && organization != null && organization.bankBic != null ? organization.bankBic : \"\",\r\n invoiceSendToMail: organization && organization != null != undefined ? organization.invoiceSendToMail : false,\r\n invoiceEmail: organization && organization != null != undefined ? organization.invoiceEmail : \"\",\r\n invoiceAddress: organization && organization != null != undefined ? organization.invoiceAddress : \"\",\r\n invoicePostCode: organization && organization != null != undefined ? organization.invoicePostCode : 0,\r\n invoicePostTitle: organization && organization != null != undefined ? organization.invoicePostTitle : \"\",\r\n logoUniqueId: organization && organization != null != undefined ? organization.logoUniqueId : \"\",\r\n officeUserCount: organization != undefined && organization != null ? organization.officeUserCount : 1,\r\n cashierUserCount: organization != undefined && organization != null ? organization.cashierUserCount : 1,\r\n cashierCount: organization != undefined && organization != null ? organization.cashierCount : 1,\r\n minOfficeUserCount: organization != undefined && organization != null ? organization.minOfficeUserCount : 1,\r\n minCashierUserCount: organization != undefined && organization != null ? organization.minCashierUserCount : 1,\r\n minCashierCount: organization != undefined && organization != null ? organization.minCashierCount : 1,\r\n deactiveReason: organization != undefined && organization != null && organization.deactiveReason != null ? organization.deactiveReason : \"\",\r\n deactiveDate: organization != undefined && organization != null && organization.deactiveDate != null ? organization.deactiveDate : \"\",\r\n confirmed: organization && organization != null != undefined ? organization.confirmed : false,\r\n contractExpirationDate: organization != undefined && organization != null && organization.contractExpirationDate != null ? organization.contractExpirationDate : null\r\n };\r\n\r\n const Schema = Yup.object().shape({\r\n name: Yup.string().required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })),\r\n town: Yup.string().required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })),\r\n \r\n });\r\n const getInputClasses = (fieldname) => {\r\n if (formik.touched[fieldname] && formik.errors[fieldname]) {\r\n return \"is-invalid\";\r\n }\r\n\r\n if (formik.touched[fieldname] && !formik.errors[fieldname]) {\r\n return \"is-valid\";\r\n }\r\n\r\n return \"\";\r\n };\r\n\r\n const getLogo = () => {\r\n if (removeLogo) {\r\n return \"none\"\r\n }\r\n return \"url(/api/organization/logo?uniqueId=\" + logoUniqueId + \"&\" + new Date().getTime() + \")\";\r\n };\r\n const onClickRemoveLogo = () => {\r\n setLogoUniqueId(\"\");\r\n setRemoveLogo(true);\r\n };\r\n\r\n const onChangeLogo = event => {\r\n const formData = new FormData();\r\n formData.append(\r\n \"logo\",\r\n event.target.files[0],\r\n event.target.files[0].name\r\n );\r\n updateLogoOrganization(formData).then((req) => {\r\n if (!req.data.didError) {\r\n setLogoUniqueId(req.data.model);\r\n setRemoveLogo(false);\r\n } else {\r\n setLogoUniqueId(\"\");\r\n }\r\n }).catch(() => {\r\n setLogoUniqueId(\"\");\r\n });\r\n }\r\n\r\n const formik = useFormik({\r\n initialValues,\r\n validationSchema: Schema,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setStatus, setSubmitting, resetForm }) => {\r\n saveOrganization(values, setStatus, setSubmitting);\r\n },\r\n onReset: () => {\r\n setIsError(false);\r\n setIsSuccess(false);\r\n setLogoUniqueId(\"\");\r\n }\r\n });\r\n\r\n return (\r\n
\r\n {loading && }\r\n\r\n {/* begin::Header */}\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 {formik.isSubmitting}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n\r\n
\r\n {/* end::Header */}\r\n {/* begin::Form */}\r\n
\r\n
\r\n {/* begin::Alert */}\r\n {isSuccess && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n \r\n
\r\n
setIsSuccess(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n\r\n {isError && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
setIsError(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n {/* end::Alert */}\r\n
\r\n \r\n \r\n
\r\n \r\n {formik.touched.taxNumber &&\r\n formik.errors.taxNumber ? (\r\n
\r\n {formik.errors.taxNumber}\r\n
\r\n ) : null}\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n {formik.touched.name &&\r\n formik.errors.name ? (\r\n
\r\n {formik.errors.name}\r\n
\r\n ) : null}\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n {formik.touched.description &&\r\n formik.errors.description ? (\r\n
\r\n {formik.errors.description}\r\n
\r\n ) : null}\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n \r\n {formik.touched.address &&\r\n formik.errors.address ? (\r\n
\r\n {formik.errors.address}\r\n
\r\n ) : null}\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n { setPost(val); }}\r\n />\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n \r\n {formik.touched.town &&\r\n formik.errors.town ? (\r\n
\r\n {formik.errors.town}\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 \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 {/* end::Form */}\r\n \r\n );\r\n}\r\n\r\n","// *https://www.registers.service.gov.uk/registers/country/use-the-api*\r\nimport React, { useState, useEffect } from 'react';\r\n\r\nexport default function InputCount(props) {\r\n const [value, setValue] = useState(props.value);\r\n\r\n const setNewValue = value => {\r\n if (props.disabled == true) {\r\n return;\r\n }\r\n if ((props.maxValue == undefined || props.maxValue >= value) &&\r\n (props.minValue == undefined || props.minValue <= value)) {\r\n setValue(value);\r\n if (props.onChange != undefined) {\r\n props.onChange(this, value);\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n { setNewValue(props.value - 1); }}\r\n >\r\n \r\n \r\n\r\n \r\n {props.value}\r\n \r\n { setNewValue(props.value+1); }}\r\n >\r\n \r\n \r\n \r\n );\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { useSelector, shallowEqual, useDispatch } from \"react-redux\";\r\nimport { useFormik } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { ModalProgressBar } from \"../../../../../_metronic/_partials/controls\";\r\nimport { toAbsoluteUrl } from \"../../../../../_metronic/_helpers\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport * as actions from \"../../../Setting/_redux/yourCompany/yourCompanyAction\";\r\nimport { CheckPermissions, hasRoleForFunctionality } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\nimport Switch from '@material-ui/core/Switch';\r\nimport InputCount from '../../../../components/InputCount'\r\n\r\nexport default function CompanyPackage(props) {\r\n const intl = useIntl();\r\n // Fields\r\n const [loading, setLoading] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n const [isSuccess, setIsSuccess] = useState(false);\r\n const dispatch = useDispatch();\r\n const user = useSelector((state) => state.auth.user, shallowEqual);\r\n const { organization, error } = useSelector(\r\n (state) => ({\r\n organization: state.organization.organizationForEdit,\r\n error: state.organization.error\r\n }),\r\n shallowEqual\r\n );\r\n const [cashierUserCount, setCashierUserCount] = useState(organization != undefined && organization != null ? organization.cashierUserCount : 1);\r\n const [officeUserCount, setOfficeUserCount] = useState(organization != undefined && organization != null ? organization.officeUserCount : 1);\r\n const [cashierCount, setCashierCount] = useState(organization != undefined && organization != null ? organization.cashierCount : 1);\r\n const [appModulePurchase, setAppModulePurchase] = useState(organization && organization != null != undefined ? organization.appModulePurchase : false);\r\n const [cubic, setCubic] = useState(organization && organization != null != undefined ? organization.cubic : false);\r\n var readOnly = !hasRoleForFunctionality(user, [UserFunctionalityE.UrediVasePodjetje]);\r\n\r\n useEffect(() => {\r\n setCashierUserCount(organization != undefined && organization != null ? organization.cashierUserCount : 1);\r\n setOfficeUserCount(organization != undefined && organization != null ? organization.officeUserCount : 1);\r\n setCashierCount(organization != undefined && organization != null ? organization.cashierCount : 1);\r\n setAppModulePurchase(organization && organization != null != undefined ? organization.appModulePurchase : false);\r\n setCubic(organization && organization != null != undefined ? organization.cubic : false);\r\n }, [user, organization]);\r\n // Methods\r\n const saveOrganization = (values, setStatus, setSubmitting) => {\r\n setLoading(true);\r\n setIsError(false);\r\n setIsSuccess(false);\r\n\r\n var obj = {\r\n address: values.address,\r\n appModulePurchase: appModulePurchase,\r\n appModuleSales: values.appModuleSales,\r\n description: values.description,\r\n id: values.id,\r\n name: values.name,\r\n postCode: values.postCode,\r\n postTitle: values.postTitle,\r\n registrationNumber: values.registrationNumber,\r\n taxDuty: values.taxDuty,\r\n taxNumber: values.taxNumber,\r\n town: values.town,\r\n bankName: values.bankName,\r\n bankIban: values.bankIban,\r\n bankBic: values.bankBic,\r\n cubic: cubic,\r\n invoiceSendToMail: values.invoiceSendToMail,\r\n invoiceEmail: values.invoiceEmail,\r\n invoiceAddress: values.invoiceAddress,\r\n invoicePostCode: values.invoicePostCode,\r\n invoicePostTitle: values.invoicePostTitle,\r\n logoUniqueId: values.logoUniqueId,\r\n officeUserCount: officeUserCount,\r\n cashierUserCount: cashierUserCount,\r\n cashierCount: cashierCount,\r\n minOfficeUserCount: values.minOfficeUserCount,\r\n minCashierUserCount: values.minCashierUserCount,\r\n minCashierCount: values.minCashierCount,\r\n deactiveReason: values.deactiveReason,\r\n deactiveDate: values.deactiveDate,\r\n confirmed: values.confirmed,\r\n contractExpirationDate: values.contractExpirationDate\r\n };\r\n \r\n dispatch(actions.updateOrganization(obj)).then(() => {\r\n setIsError(error != null);\r\n setIsSuccess(error == null);\r\n setLoading(false);\r\n setSubmitting(false);\r\n });\r\n };\r\n // UI Helpers\r\n const initialValues = {\r\n address: organization != undefined && organization != null ? organization.address : \"\",\r\n appModulePurchase: organization && organization != null != undefined ? organization.appModulePurchase : false,\r\n appModuleSales: organization && organization != null != undefined ? organization.appModuleSales : false,\r\n cubic: organization && organization != null != undefined ? organization.cubic : false,\r\n description: organization && organization != null != undefined ? organization.description : \"\",\r\n id: organization && organization != null != undefined ? organization.id : -1,\r\n name: organization && organization != null != undefined ? organization.name : \"\",\r\n postCode: organization && organization != null != undefined ? organization.postCode : 0,\r\n postTitle: organization && organization != null != undefined ? organization.postTitle : \"\",\r\n registrationNumber: organization && organization != null != undefined ? organization.registrationNumber : \"\",\r\n taxDuty: organization != undefined && organization != null ? organization.taxDuty : false,\r\n taxNumber: organization != undefined && organization != null ? organization.taxNumber : \"\",\r\n town: organization != undefined && organization != null ? organization.town : \"\",\r\n bankName: organization != undefined && organization != null && organization.bankName != null ? organization.bankName : \"\",\r\n bankIban: organization != undefined && organization != null && organization.bankIban != null ? organization.bankIban : \"\",\r\n bankBic: organization != undefined && organization != null && organization.bankBic != null ? organization.bankBic : \"\",\r\n invoiceSendToMail: organization && organization != null != undefined ? organization.invoiceSendToMail : false,\r\n invoiceEmail: organization && organization != null != undefined ? organization.invoiceEmail : \"\",\r\n invoiceAddress: organization && organization != null != undefined ? organization.invoiceAddress : \"\",\r\n invoicePostCode: organization && organization != null != undefined ? organization.invoicePostCode : 0,\r\n invoicePostTitle: organization && organization != null != undefined ? organization.invoicePostTitle : \"\",\r\n logoUniqueId: organization && organization != null != undefined ? organization.logoUniqueId : \"\",\r\n officeUserCount: organization != undefined && organization != null ? organization.officeUserCount : 1,\r\n cashierUserCount: organization != undefined && organization != null ? organization.cashierUserCount : 1,\r\n cashierCount: organization != undefined && organization != null ? organization.cashierCount : 1,\r\n minOfficeUserCount: organization != undefined && organization != null ? organization.minOfficeUserCount : 1,\r\n minCashierUserCount: organization != undefined && organization != null ? organization.minCashierUserCount : 1,\r\n minCashierCount: organization != undefined && organization != null ? organization.minCashierCount : 1,\r\n deactiveReason: organization != undefined && organization != null && organization.deactiveReason != null ? organization.deactiveReason : \"\",\r\n deactiveDate: organization != undefined && organization != null && organization.deactiveDate != null ? organization.deactiveDate : \"\",\r\n contractExpirationDate: organization != undefined && organization != null && organization.contractExpirationDate != null ? organization.contractExpirationDate : null,\r\n confirmed: organization != undefined && organization != null ? organization.confirmed : false\r\n };\r\n\r\n const Schema = Yup.object().shape({\r\n name: Yup.string().required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })),\r\n town: Yup.string().required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })),\r\n \r\n });\r\n const getInputClasses = (fieldname) => {\r\n if (formik.touched[fieldname] && formik.errors[fieldname]) {\r\n return \"is-invalid\";\r\n }\r\n\r\n if (formik.touched[fieldname] && !formik.errors[fieldname]) {\r\n return \"is-valid\";\r\n }\r\n\r\n return \"\";\r\n };\r\n \r\n const formik = useFormik({\r\n initialValues,\r\n validationSchema: Schema,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setStatus, setSubmitting, resetForm }) => {\r\n saveOrganization(values, setStatus, setSubmitting);\r\n },\r\n onReset: (values) => {\r\n setIsError(false);\r\n setIsSuccess(false);\r\n setCashierUserCount(values.cashierUserCount);\r\n setOfficeUserCount(values.officeUserCount);\r\n setAppModulePurchase(values.appModulePurchase);\r\n }\r\n });\r\n\r\n return (\r\n
\r\n {loading && }\r\n\r\n {/* begin::Header */}\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 {formik.isSubmitting}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n\r\n
\r\n {/* end::Header */}\r\n {/* begin::Form */}\r\n
\r\n
\r\n {/* begin::Alert */}\r\n {isSuccess && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n \r\n
\r\n
setIsSuccess(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n\r\n {isError && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
setIsError(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n {/* end::Alert */}\r\n
\r\n \r\n \r\n
\r\n\r\n { setAppModulePurchase(!appModulePurchase); }}\r\n value={true}\r\n inputProps={{ 'aria-label': 'secondary checkbox' }}\r\n disabled={readOnly}\r\n />\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n\r\n { setCubic(!cubic); }}\r\n value={true}\r\n inputProps={{ 'aria-label': 'secondary checkbox' }}\r\n disabled={readOnly}\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 setCashierCount(val);\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 setOfficeUserCount(val);\r\n }}\r\n />\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n\r\n {\r\n setCashierUserCount(val);\r\n }}\r\n />\r\n\r\n
\r\n
\r\n \r\n\r\n\r\n \r\n\r\n \r\n {/* end::Form */}\r\n \r\n );\r\n}\r\n\r\n","import React, { useState, useEffect } from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { useSelector, shallowEqual, connect, useDispatch } from \"react-redux\";\r\nimport { useFormik } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport { ModalProgressBar } from \"../../../../../_metronic/_partials/controls\";\r\nimport { toAbsoluteUrl } from \"../../../../../_metronic/_helpers\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { CheckPermissions, hasRoleForFunctionality } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\nimport { updateFiscalDigitalCertificate } from \"../../_redux/yourCompany/yourCompanyCrud\";\r\nimport * as actions from \"../../../Setting/_redux/yourCompany/yourCompanyAction\";\r\n\r\n\r\nexport default function CompanyFurs(props) {\r\n const intl = useIntl();\r\n // Fields\r\n const [loading, setLoading] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n const [isSuccess, setIsSuccess] = useState(false);\r\n const [certificate, setCertificate] = useState(null);\r\n const [file, setFile] = useState(undefined);\r\n\r\n const dispatch = useDispatch();\r\n const user = useSelector((state) => state.auth.user, shallowEqual);\r\n const { fiscalDigitalCertificate } = useSelector(\r\n (state) => ({\r\n fiscalDigitalCertificate: state.organization.fiscalDigitalCertificateForEdit\r\n }),\r\n shallowEqual\r\n );\r\n const [isEdit, setIsEdit] = useState(fiscalDigitalCertificate == null);\r\n\r\n useEffect(() => {\r\n setIsEdit(fiscalDigitalCertificate == null);\r\n }, [fiscalDigitalCertificate]);\r\n // Methods\r\n const saveFurs = (values, setStatus, setSubmitting) => {\r\n setLoading(true);\r\n setIsError(false);\r\n setIsSuccess(false);\r\n const formData = new FormData();\r\n formData.append(\r\n \"certFile\",\r\n certificate,\r\n certificate.name\r\n ); \r\n formData.append(\r\n \"password\",\r\n values.certPassword,\r\n );\r\n updateFiscalDigitalCertificate(formData)\r\n .then(({ data }) => {\r\n if (data.didError) {\r\n setIsError(true);\r\n } else {\r\n dispatch(actions.updateFiscalDigitalCertificate(data.model));\r\n setIsSuccess(true);\r\n setIsEdit(false);\r\n }\r\n setLoading(false);\r\n setSubmitting(false);\r\n })\r\n .catch((e) => {\r\n setIsError(true);\r\n setLoading(false);\r\n setSubmitting(false);\r\n });\r\n };\r\n\r\n const changedCertificate = e => {\r\n setIsEdit(true);\r\n };\r\n\r\n const resetFormCert = e => {\r\n setIsEdit(false);\r\n };\r\n // UI Helpers\r\n const initialValues = {\r\n certPassword: '',\r\n };\r\n const Schema = Yup.object().shape({\r\n certPassword: Yup.string().required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n }))\r\n });\r\n const getInputClasses = (fieldname) => {\r\n if (formik.touched[fieldname] && formik.errors[fieldname]) {\r\n return \"is-invalid\";\r\n }\r\n\r\n if (formik.touched[fieldname] && !formik.errors[fieldname]) {\r\n return \"is-valid\";\r\n }\r\n\r\n return \"\";\r\n };\r\n const formik = useFormik({\r\n initialValues,\r\n validationSchema: Schema,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n saveFurs(values, setStatus, setSubmitting);\r\n },\r\n onReset: (values, { resetForm }) => {\r\n setIsError(false);\r\n setIsSuccess(false);\r\n setCertificate(null);\r\n resetFormCert();\r\n },\r\n });\r\n\r\n return (\r\n
\r\n \r\n {loading && }\r\n\r\n {/* begin::Header */}\r\n
\r\n
\r\n

\r\n \r\n

\r\n \r\n \r\n \r\n
\r\n {isEdit == true && (\r\n \r\n
\r\n \r\n \r\n {formik.isSubmitting}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n )}\r\n \r\n
\r\n {/* end::Header */}\r\n {/* begin::Form */}\r\n
\r\n {/* begin::Body */}\r\n
\r\n\r\n {/* begin::Alert */}\r\n {isSuccess && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n \r\n
\r\n
setIsSuccess(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n\r\n {isError && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
setIsError(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n {( isEdit == true) && (\r\n <>\r\n
\r\n \r\n
\r\n \r\n \r\n {certificate != null ? certificate.name : \"\"}\r\n
\r\n \r\n \r\n { setCertificate(event.target.files[0]); }}\r\n accept=\".p12\"\r\n />\r\n \r\n \r\n \r\n \r\n { setCertificate(null); setFile(''); }}\r\n className=\"btn btn-xs btn-icon btn-circle btn-white btn-hover-text-primary btn-shadow\"\r\n data-action=\"remove\"\r\n data-toggle=\"tooltip\"\r\n title=\"\"\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 {formik.touched.certPassword &&\r\n formik.errors.certPassword ? (\r\n
\r\n {formik.errors.certPassword}\r\n
\r\n ) : null}\r\n
\r\n
\r\n \r\n )}\r\n \r\n {(fiscalDigitalCertificate != null && isEdit == false) && (\r\n <>\r\n {new Date(fiscalDigitalCertificate.expiredDate) < new Date() && (\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\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 {/* end::Body */}\r\n \r\n {/* end::Form */}\r\n \r\n \r\n );\r\n}\r\n\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { useSelector, shallowEqual, useDispatch } from \"react-redux\";\r\nimport { useFormik } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { ModalProgressBar } from \"../../../../../_metronic/_partials/controls\";\r\nimport { toAbsoluteUrl } from \"../../../../../_metronic/_helpers\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport * as actions from \"../../../Setting/_redux/yourCompany/yourCompanyAction\";\r\nimport { CheckPermissions, hasRoleForFunctionality } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\n\r\nexport default function CompanyEInvoice(props) {\r\n const intl = useIntl();\r\n // Fields\r\n const [loading, setLoading] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n const [isSuccess, setIsSuccess] = useState(false);\r\n const dispatch = useDispatch();\r\n const user = useSelector((state) => state.auth.user, shallowEqual);\r\n const { organization, error } = useSelector(\r\n (state) => ({\r\n organization: state.organization.organizationForEdit,\r\n error: state.organization.error\r\n }),\r\n shallowEqual\r\n );\r\n\r\n var readOnly = !hasRoleForFunctionality(user, [UserFunctionalityE.UrediVasePodjetje]);\r\n\r\n useEffect(() => { }, [user, organization]);\r\n // Methods\r\n const saveOrganization = (values, setStatus, setSubmitting) => {\r\n setLoading(true);\r\n setIsError(false);\r\n setIsSuccess(false);\r\n \r\n dispatch(actions.updateOrganization(values)).then(() => {\r\n setIsError(error != null);\r\n setIsSuccess(error == null);\r\n setLoading(false);\r\n setSubmitting(false);\r\n });\r\n };\r\n // UI Helpers\r\n const initialValues = {\r\n address: organization != undefined && organization != null ? organization.address : \"\",\r\n appModulePurchase: organization && organization != null != undefined ? organization.appModulePurchase : false,\r\n appModuleSales: organization && organization != null != undefined ? organization.appModuleSales : false,\r\n description: organization && organization != null != undefined ? organization.description : \"\",\r\n id: organization && organization != null != undefined ? organization.id : -1,\r\n name: organization && organization != null != undefined ? organization.name : \"\",\r\n postCode: organization && organization != null != undefined ? organization.postCode : 0,\r\n postTitle: organization && organization != null != undefined ? organization.postTitle : \"\",\r\n registrationNumber: organization && organization != null != undefined ? organization.registrationNumber : \"\",\r\n taxDuty: organization != undefined && organization != null ? organization.taxDuty : false,\r\n taxNumber: organization != undefined && organization != null ? organization.taxNumber : \"\",\r\n town: organization != undefined && organization != null ? organization.town : \"\",\r\n bankName: organization != undefined && organization != null && organization.bankName != null ? organization.bankName : \"\",\r\n bankIban: organization != undefined && organization != null && organization.bankIban != null ? organization.bankIban : \"\",\r\n bankBic: organization != undefined && organization != null && organization.bankBic != null ? organization.bankBic : \"\",\r\n invoiceSendToMail: organization && organization != null != undefined ? organization.invoiceSendToMail : false,\r\n invoiceEmail: organization && organization != null != undefined ? organization.invoiceEmail : \"\",\r\n invoiceAddress: organization && organization != null != undefined ? organization.invoiceAddress : \"\",\r\n invoicePostCode: organization && organization != null != undefined ? organization.invoicePostCode : 0,\r\n invoicePostTitle: organization && organization != null != undefined ? organization.invoicePostTitle : \"\",\r\n logoUniqueId: organization && organization != null != undefined ? organization.logoUniqueId : \"\",\r\n officeUserCount: organization != undefined && organization != null ? organization.officeUserCount : 1,\r\n cashierUserCount: organization != undefined && organization != null ? organization.cashierUserCount : 1,\r\n cashierCount: organization != undefined && organization != null ? organization.cashierCount : 1,\r\n minOfficeUserCount: organization != undefined && organization != null ? organization.minOfficeUserCount : 1,\r\n minCashierUserCount: organization != undefined && organization != null ? organization.minCashierUserCount : 1,\r\n minCashierCount: organization != undefined && organization != null ? organization.minCashierCount : 1,\r\n deactiveReason: organization != undefined && organization != null && organization.deactiveReason != null ? organization.deactiveReason : \"\",\r\n deactiveDate: organization != undefined && organization != null && organization.deactiveDate != null ? organization.deactiveDate : \"\",\r\n contractExpirationDate: organization != undefined && organization != null && organization.contractExpirationDate != null ? organization.contractExpirationDate : null,\r\n confirmed: organization != undefined && organization != null ? organization.confirmed : false\r\n };\r\n\r\n const Schema = Yup.object().shape({\r\n registrationNumber: Yup.string().required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })),\r\n bankName: Yup.string().required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })),\r\n bankIban: Yup.string().required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })),\r\n bankBic: Yup.string().required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })),\r\n \r\n });\r\n\r\n const getInputClasses = (fieldname) => {\r\n if (formik.touched[fieldname] && formik.errors[fieldname]) {\r\n return \"is-invalid\";\r\n }\r\n\r\n if (formik.touched[fieldname] && !formik.errors[fieldname]) {\r\n return \"is-valid\";\r\n }\r\n\r\n return \"\";\r\n };\r\n\r\n const formik = useFormik({\r\n initialValues,\r\n validationSchema: Schema,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setStatus, setSubmitting, resetForm }) => {\r\n saveOrganization(values, setStatus, setSubmitting);\r\n },\r\n onReset: () => {\r\n setIsError(false);\r\n setIsSuccess(false);\r\n }\r\n });\r\n\r\n return (\r\n
\r\n {loading && }\r\n\r\n {/* begin::Header */}\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 {formik.isSubmitting}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n\r\n
\r\n {/* end::Header */}\r\n {/* begin::Form */}\r\n
\r\n
\r\n {/* begin::Alert */}\r\n {isSuccess && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n \r\n
\r\n
setIsSuccess(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n\r\n {isError && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
setIsError(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n {/* end::Alert */}\r\n
\r\n \r\n \r\n
\r\n \r\n {formik.touched.registrationNumber &&\r\n formik.errors.registrationNumber ? (\r\n
\r\n {formik.errors.registrationNumber}\r\n
\r\n ) : null}\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n \r\n {formik.touched.bankName &&\r\n formik.errors.bankName ? (\r\n
\r\n {formik.errors.bankName}\r\n
\r\n ) : null}\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n \r\n {formik.touched.bankIban &&\r\n formik.errors.bankIban ? (\r\n
\r\n {formik.errors.bankIban}\r\n
\r\n ) : null}\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n \r\n {formik.touched.bankBic &&\r\n formik.errors.bankBic ? (\r\n
\r\n {formik.errors.bankBic}\r\n
\r\n ) : null}\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n {/* end::Form */}\r\n \r\n );\r\n}\r\n\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { useSelector, shallowEqual, useDispatch } from \"react-redux\";\r\nimport { useFormik } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { ModalProgressBar } from \"../../../../../_metronic/_partials/controls\";\r\nimport { toAbsoluteUrl } from \"../../../../../_metronic/_helpers\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport * as actions from \"../../../Setting/_redux/yourCompany/yourCompanyAction\";\r\nimport { CheckPermissions, hasRoleForFunctionality } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\nimport ToggleButton from \"@material-ui/lab/ToggleButton\";\r\nimport ToggleButtonGroup from \"@material-ui/lab/ToggleButtonGroup\";\r\nimport AutocompletePost from '../../../../components/AutocompletePost'\r\n\r\nexport default function CompanyPayment(props) {\r\n const intl = useIntl();\r\n // Fields\r\n const [loading, setLoading] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n const [isSuccess, setIsSuccess] = useState(false);\r\n const dispatch = useDispatch();\r\n const user = useSelector((state) => state.auth.user, shallowEqual);\r\n const { organization, error } = useSelector(\r\n (state) => ({\r\n organization: state.organization.organizationForEdit,\r\n error: state.organization.error\r\n }),\r\n shallowEqual\r\n );\r\n const [invoiceSendToMail, setInvoiceSendToMail] = useState([0]);\r\n const [post, setPost] = useState(organization != undefined && organization.invoicePostCode != null ?\r\n { code: organization.invoicePostCode, title: organization.invoicePostTitle } : null);\r\n\r\n var readOnly = !hasRoleForFunctionality(user, [UserFunctionalityE.UrediVasePodjetje]);\r\n\r\n useEffect(() => {\r\n setPost(organization != undefined && organization.invoicePostCode != null ?\r\n { code: organization.invoicePostCode, title: organization.invoicePostTitle } : null);\r\n setInvoiceSendToMail(organization != undefined && organization.invoiceSendToMail == true ? [1] : [0]);\r\n }, [organization]);\r\n // Methods\r\n const saveOrganization = (values, setStatus, setSubmitting) => {\r\n setLoading(true);\r\n setIsError(false);\r\n setIsSuccess(false);\r\n\r\n var obj = {\r\n address: values.address,\r\n appModulePurchase: values.appModulePurchase,\r\n appModuleSales: values.appModuleSales,\r\n description: values.description,\r\n id: values.id,\r\n name: values.name,\r\n postCode: values.postCode,\r\n postTitle: values.postTitle,\r\n registrationNumber: values.registrationNumber,\r\n taxDuty: values.taxDuty,\r\n taxNumber: values.taxNumber,\r\n town: values.town,\r\n bankName: values.bankName,\r\n bankIban: values.bankIban,\r\n bankBic: values.bankBic,\r\n invoiceSendToMail: invoiceSendToMail[0] == 1,\r\n invoiceEmail: values.invoiceEmail,\r\n invoiceAddress: values.invoiceAddress,\r\n invoicePostCode: post.code,\r\n invoicePostTitle: post.title,\r\n logoUniqueId: values.logoUniqueId,\r\n officeUserCount: values.officeUserCount,\r\n cashierUserCount: values.cashierUserCount,\r\n cashierCount: values.cashierCount,\r\n minOfficeUserCount: values.minOfficeUserCount,\r\n minCashierUserCount: values.minCashierUserCount,\r\n minCashierCount: values.minCashierCount,\r\n deactiveReason: values.deactiveReason,\r\n deactiveDate: values.deactiveDate,\r\n confirmed: values.confirmed,\r\n contractExpirationDate: values.contractExpirationDate\r\n };\r\n \r\n dispatch(actions.updateOrganization(obj)).then(() => {\r\n setIsError(error != null);\r\n setIsSuccess(error == null);\r\n setLoading(false);\r\n setSubmitting(false);\r\n });\r\n };\r\n // UI Helpers\r\n const initialValues = {\r\n address: organization != undefined && organization != null ? organization.address : \"\",\r\n appModulePurchase: organization && organization != null != undefined ? organization.appModulePurchase : false,\r\n appModuleSales: organization && organization != null != undefined ? organization.appModuleSales : false,\r\n description: organization && organization != null != undefined ? organization.description : \"\",\r\n id: organization && organization != null != undefined ? organization.id : -1,\r\n name: organization && organization != null != undefined ? organization.name : \"\",\r\n postCode: organization && organization != null != undefined ? organization.postCode : 0,\r\n postTitle: organization && organization != null != undefined ? organization.postTitle : \"\",\r\n registrationNumber: organization && organization != null != undefined ? organization.registrationNumber : \"\",\r\n taxDuty: organization != undefined && organization != null ? organization.taxDuty : false,\r\n taxNumber: organization != undefined && organization != null ? organization.taxNumber : \"\",\r\n town: organization != undefined && organization != null ? organization.town : \"\",\r\n bankName: organization != undefined && organization != null && organization.bankName != null ? organization.bankName : \"\",\r\n bankIban: organization != undefined && organization != null && organization.bankIban != null ? organization.bankIban : \"\",\r\n bankBic: organization != undefined && organization != null && organization.bankBic != null ? organization.bankBic : \"\",\r\n invoiceSendToMail: organization && organization != null != undefined ? organization.invoiceSendToMail : false,\r\n invoiceEmail: organization && organization != null != undefined && organization.invoiceEmail != null ? organization.invoiceEmail : \"\",\r\n invoiceAddress: organization && organization != null != undefined && organization.invoiceAddress != null ? organization.invoiceAddress : \"\",\r\n invoicePostCode: organization && organization != null != undefined && organization.invoicePostCode != null ? organization.invoicePostCode : 0,\r\n invoicePostTitle: organization && organization != null != undefined && organization.invoicePostTitle != null ? organization.invoicePostTitle : \"\",\r\n logoUniqueId: organization && organization != null != undefined ? organization.logoUniqueId : \"\",\r\n officeUserCount: organization != undefined && organization != null ? organization.officeUserCount : 1,\r\n cashierUserCount: organization != undefined && organization != null ? organization.cashierUserCount : 1,\r\n cashierCount: organization != undefined && organization != null ? organization.cashierCount : 1,\r\n minOfficeUserCount: organization != undefined && organization != null ? organization.minOfficeUserCount : 1,\r\n minCashierUserCount: organization != undefined && organization != null ? organization.minCashierUserCount : 1,\r\n minCashierCount: organization != undefined && organization != null ? organization.minCashierCount : 1,\r\n deactiveReason: organization != undefined && organization != null && organization.deactiveReason != null ? organization.deactiveReason : \"\",\r\n deactiveDate: organization != undefined && organization != null && organization.deactiveDate != null ? organization.deactiveDate : \"\",\r\n contractExpirationDate: organization != undefined && organization != null && organization.contractExpirationDate != null ? organization.contractExpirationDate : null,\r\n confirmed: organization != undefined && organization != null ? organization.confirmed : false\r\n };\r\n\r\n const Schema = Yup.object().shape({\r\n invoiceEmail: Yup.string()\r\n .email(intl.formatMessage({ id: 'AUTH.GENERAL.WRONG_EMAIL_FORMAT' }))\r\n .test('validator', intl.formatMessage({ id: 'AUTH.VALIDATION.REQUIRED_FIELD' }), value => {\r\n if (invoiceSendToMail[0] == 1) {\r\n return value != undefined && value != null && value.length > 0;\r\n }\r\n return true;\r\n }),\r\n invoiceAddress: Yup.string()\r\n .test('validator', intl.formatMessage({ id: 'AUTH.VALIDATION.REQUIRED_FIELD' }), value => {\r\n if (invoiceSendToMail[0] == 0) {\r\n return value != undefined && value != null && value.length > 0;\r\n }\r\n return true;\r\n })\r\n });\r\n\r\n const getInputClasses = (fieldname) => {\r\n if (formik.touched[fieldname] && formik.errors[fieldname]) {\r\n return \"is-invalid\";\r\n }\r\n\r\n if (formik.touched[fieldname] && !formik.errors[fieldname]) {\r\n return \"is-valid\";\r\n }\r\n\r\n return \"\";\r\n };\r\n\r\n function handleChangeInvoiceSendToMail(event, value) {\r\n setInvoiceSendToMail([parseInt(event.currentTarget.value)]);\r\n document.getElementById(\"frmCompanyPayment\").reset();\r\n }\r\n\r\n const formik = useFormik({\r\n initialValues,\r\n validationSchema: Schema,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setStatus, setSubmitting, resetForm }) => {\r\n saveOrganization(values, setStatus, setSubmitting);\r\n },\r\n onReset: () => {\r\n setIsError(false);\r\n setIsSuccess(false);\r\n setPost(organization != undefined && organization.invoicePostCode != null ?\r\n { code: organization.invoicePostCode, title: organization.invoicePostTitle } : null);\r\n }\r\n });\r\n\r\n return (\r\n
\r\n {loading && }\r\n\r\n {/* begin::Header */}\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 {formik.isSubmitting}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n\r\n
\r\n {/* end::Header */}\r\n {/* begin::Form */}\r\n
\r\n
\r\n {/* begin::Alert */}\r\n {isSuccess && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n \r\n
\r\n
setIsSuccess(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n\r\n {isError && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
setIsError(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n {/* end::Alert */}\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 {invoiceSendToMail[0] == 1 && (\r\n <>\r\n
\r\n

\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n {formik.touched.invoiceEmail &&\r\n formik.errors.invoiceEmail ? (\r\n
\r\n {formik.errors.invoiceEmail}\r\n
\r\n ) : null}\r\n
\r\n
\r\n \r\n )}\r\n\r\n {invoiceSendToMail[0] == 0 && (\r\n <>\r\n
\r\n

\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n {formik.touched.invoiceAddress &&\r\n formik.errors.invoiceAddress ? (\r\n
\r\n {formik.errors.invoiceAddress}\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 { setPost(val); }}\r\n />\r\n\r\n
\r\n
\r\n\r\n \r\n )}\r\n \r\n \r\n {/* end::Form */}\r\n \r\n );\r\n}\r\n\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { useSelector, shallowEqual, useDispatch } from \"react-redux\";\r\nimport { useFormik } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { ModalProgressBar } from \"../../../../../_metronic/_partials/controls\";\r\nimport { toAbsoluteUrl } from \"../../../../../_metronic/_helpers\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport * as actions from \"../../../Setting/_redux/yourCompany/yourCompanyAction\";\r\nimport { CheckPermissions, hasRoleForFunctionality } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\nimport moment from 'moment'\r\n\r\nexport default function CompanyCancelPackage(props) {\r\n const intl = useIntl();\r\n // Fields\r\n const [loading, setLoading] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n const [isSuccess, setIsSuccess] = useState(false);\r\n const [isDeactive, setIsDeactive] = useState(organization != undefined && organization != null && organization.deactiveDate != null);\r\n const [contractExpirationDate, setContractExpirationDate] = useState(organization != undefined && organization != null && organization.contractExpirationDate != null ? organization.contractExpirationDate : null);\r\n const dispatch = useDispatch();\r\n const user = useSelector((state) => state.auth.user, shallowEqual);\r\n const { organization, error } = useSelector(\r\n (state) => ({\r\n organization: state.organization.organizationForEdit,\r\n error: state.organization.error\r\n }),\r\n shallowEqual\r\n );\r\n var readOnly = !hasRoleForFunctionality(user, [UserFunctionalityE.UrediVasePodjetje]);\r\n\r\n useEffect(() => {\r\n if (contractExpirationDate == null) {\r\n setContractExpirationDate(organization != undefined && organization != null && organization.contractExpirationDate != null ? organization.contractExpirationDate : null);\r\n }\r\n setIsDeactive(organization != undefined && organization != null && organization.deactiveDate != null);\r\n }, [user, organization]);\r\n // Methods\r\n const saveOrganization = (values, setStatus, setSubmitting) => {\r\n setLoading(true);\r\n setIsError(false);\r\n setIsSuccess(false);\r\n\r\n var obj = {\r\n address: values.address,\r\n appModulePurchase: values.appModulePurchase,\r\n appModuleSales: values.appModuleSales,\r\n description: values.description,\r\n id: values.id,\r\n name: values.name,\r\n postCode: values.postCode,\r\n postTitle: values.postTitle,\r\n registrationNumber: values.registrationNumber,\r\n taxDuty: values.taxDuty,\r\n taxNumber: values.taxNumber,\r\n town: values.town,\r\n bankName: values.bankName,\r\n bankIban: values.bankIban,\r\n bankBic: values.bankBic,\r\n cubic: values.cubic,\r\n invoiceSendToMail: values.invoiceSendToMail,\r\n invoiceEmail: values.invoiceEmail,\r\n invoiceAddress: values.invoiceAddress,\r\n invoicePostCode: values.invoicePostCode,\r\n invoicePostTitle: values.invoicePostTitle,\r\n logoUniqueId: values.logoUniqueId,\r\n officeUserCount: values.officeUserCount,\r\n cashierUserCount: values.cashierUserCount,\r\n cashierCount: values.cashierCount,\r\n minOfficeUserCount: values.minOfficeUserCount,\r\n minCashierUserCount: values.minCashierUserCount,\r\n minCashierCount: values.minCashierCount,\r\n deactiveReason: isDeactive ? null : values.deactiveReason,\r\n deactiveDate: isDeactive ? null : values.contractExpirationDate,\r\n cancelDeactive: isDeactive,\r\n confirmed: values.confirmed,\r\n contractExpirationDate: values.contractExpirationDate\r\n };\r\n \r\n dispatch(actions.updateOrganization(obj)).then(() => {\r\n setIsError(error != null);\r\n setIsSuccess(error == null);\r\n setLoading(false);\r\n setSubmitting(false);\r\n });\r\n };\r\n // UI Helpers\r\n const initialValues = {\r\n address: organization != undefined && organization != null ? organization.address : \"\",\r\n appModulePurchase: organization && organization != null != undefined ? organization.appModulePurchase : false,\r\n appModuleSales: organization && organization != null != undefined ? organization.appModuleSales : false,\r\n cubic: organization && organization != null != undefined ? organization.cubic : false,\r\n description: organization && organization != null != undefined ? organization.description : \"\",\r\n id: organization && organization != null != undefined ? organization.id : -1,\r\n name: organization && organization != null != undefined ? organization.name : \"\",\r\n postCode: organization && organization != null != undefined ? organization.postCode : 0,\r\n postTitle: organization && organization != null != undefined ? organization.postTitle : \"\",\r\n registrationNumber: organization && organization != null != undefined ? organization.registrationNumber : \"\",\r\n taxDuty: organization != undefined && organization != null ? organization.taxDuty : false,\r\n taxNumber: organization != undefined && organization != null ? organization.taxNumber : \"\",\r\n town: organization != undefined && organization != null ? organization.town : \"\",\r\n bankName: organization != undefined && organization != null && organization.bankName != null ? organization.bankName : \"\",\r\n bankIban: organization != undefined && organization != null && organization.bankIban != null ? organization.bankIban : \"\",\r\n bankBic: organization != undefined && organization != null && organization.bankBic != null ? organization.bankBic : \"\",\r\n invoiceSendToMail: organization && organization != null != undefined ? organization.invoiceSendToMail : false,\r\n invoiceEmail: organization && organization != null != undefined ? organization.invoiceEmail : \"\",\r\n invoiceAddress: organization && organization != null != undefined ? organization.invoiceAddress : \"\",\r\n invoicePostCode: organization && organization != null != undefined ? organization.invoicePostCode : 0,\r\n invoicePostTitle: organization && organization != null != undefined ? organization.invoicePostTitle : \"\",\r\n logoUniqueId: organization && organization != null != undefined ? organization.logoUniqueId : \"\",\r\n officeUserCount: organization != undefined && organization != null ? organization.officeUserCount : 1,\r\n cashierUserCount: organization != undefined && organization != null ? organization.cashierUserCount : 1,\r\n cashierCount: organization != undefined && organization != null ? organization.cashierCount : 1,\r\n minOfficeUserCount: organization != undefined && organization != null ? organization.minOfficeUserCount : 1,\r\n minCashierUserCount: organization != undefined && organization != null ? organization.minCashierUserCount : 1,\r\n minCashierCount: organization != undefined && organization != null ? organization.minCashierCount : 1,\r\n deactiveReason: organization != undefined && organization != null && organization.deactiveReason != null ? organization.deactiveReason : \"\",\r\n deactiveDate: organization != undefined && organization != null && organization.deactiveDate != null ? organization.deactiveDate : \"\",\r\n contractExpirationDate: organization != undefined && organization != null && organization.contractExpirationDate != null ? organization.contractExpirationDate : null,\r\n confirmed: organization != undefined && organization != null ? organization.confirmed : false\r\n };\r\n\r\n const Schema = Yup.object().shape({\r\n deactiveReason: Yup.string().required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n }))\r\n });\r\n const getInputClasses = (fieldname) => {\r\n if (formik.touched[fieldname] && formik.errors[fieldname]) {\r\n return \"is-invalid\";\r\n }\r\n\r\n if (formik.touched[fieldname] && !formik.errors[fieldname]) {\r\n return \"is-valid\";\r\n }\r\n\r\n return \"\";\r\n };\r\n \r\n const formik = useFormik({\r\n initialValues,\r\n validationSchema: Schema,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setStatus, setSubmitting, resetForm }) => {\r\n\r\n saveOrganization(values, setStatus, setSubmitting);\r\n },\r\n onReset: (values) => {\r\n setIsError(false);\r\n setIsSuccess(false);\r\n }\r\n });\r\n\r\n return (\r\n
\r\n {loading && }\r\n\r\n\r\n {isDeactive == false && (\r\n <>\r\n {/* begin::Header */}\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 {formik.isSubmitting}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n\r\n
\r\n {/* end::Header */}\r\n {/* begin::Form */}\r\n
\r\n
\r\n {/* begin::Alert */}\r\n {isSuccess && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n {intl.formatMessage({\r\n id: \"AUTH.GENERAL.SUCCESS_CANCEL_PACKAGE\",\r\n }).replace(\"{date}\", moment(contractExpirationDate).format(\"DD.MM.YYYY\"))}\r\n
\r\n
setIsSuccess(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n\r\n {isError && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
setIsError(false)}>\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({\r\n id: \"AUTH.CANCEL_PACKAGE_TEXT\",\r\n }).replace(\"{date}\", moment(initialValues.contractExpirationDate).format(\"DD.MM.YYYY\"))}\r\n
\r\n\r\n \r\n {/* end::Alert */}\r\n
\r\n \r\n\r\n
\r\n \r\n {formik.touched.deactiveReason &&\r\n formik.errors.deactiveReason ? (\r\n
\r\n {formik.errors.deactiveReason}\r\n
\r\n ) : null}\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n {/* end::Form */}\r\n \r\n )}\r\n\r\n {isDeactive == true && (\r\n <>\r\n {/* begin::Header */}\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 {formik.isSubmitting}\r\n \r\n
\r\n \r\n\r\n
\r\n {/* end::Header */}\r\n {/* begin::Form */}\r\n
\r\n
\r\n {/* begin::Alert */}\r\n {isSuccess && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n\r\n {intl.formatMessage({\r\n id: \"AUTH.GENERAL.SUCCESS_CANCEL_PACKAGE\",\r\n }).replace(\"{date}\", moment(contractExpirationDate).format(\"DD.MM.YYYY\"))}\r\n\r\n
\r\n
setIsSuccess(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n\r\n {isError && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
setIsError(false)}>\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({\r\n id: \"AUTH.CANCEL_CANCEL_PACKAGE_TEXT\",\r\n }).replace(\"{date}\", moment(initialValues.deactiveDate).format(\"DD.MM.YYYY\"))}\r\n
\r\n\r\n \r\n {/* end::Alert */}\r\n\r\n \r\n\r\n \r\n {/* end::Form */}\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useEffect } from \"react\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../../_metronic/_helpers\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport { CheckPermissions } from \"../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../enum/userFunctionalityE\"\r\n\r\nexport function Navigation() {\r\n const user = useSelector(({ auth }) => auth.user, shallowEqual);\r\n const { organization } = useSelector(\r\n (state) => ({\r\n organization: state.organization.organizationForEdit,\r\n }),\r\n shallowEqual\r\n );\r\n\r\n\r\n useEffect(() => {\r\n return () => { };\r\n }, [user]);\r\n\r\n return (\r\n <>\r\n {user && (\r\n \r\n
\r\n {/* begin::Body */}\r\n
\r\n {/* begin::Nav */}\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 {user.organizationNotSentToFurs == false && (\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\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 {organization != null && organization.confirmed == true && (\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 {/* end::Nav */}\r\n
\r\n {/* end::Body */}\r\n
\r\n \r\n )}\r\n \r\n );\r\n}\r\n","import React, { useEffect, useState }from \"react\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport { Redirect, Route, Switch } from \"react-router-dom\";\r\nimport { useSubheader } from \"../../../../../_metronic/layout\";\r\nimport CompanyDetails from \"../yourCompany/CompanyDetails\";\r\nimport CompanyPackage from \"../yourCompany/CompanyPackage\";\r\nimport CompanyFurs from \"../yourCompany/CompanyFurs\";\r\nimport CompanyEInvoice from \"../yourCompany/CompanyEInvoice\";\r\nimport CompanyPayment from \"../yourCompany/CompanyPayment\";\r\nimport CompanyCancelPackage from \"../yourCompany/CompanyCancelPackage\";\r\nimport { Navigation } from \"../yourCompany/components/Navigation\";\r\nimport { useIntl } from \"react-intl\";\r\nimport * as actions from \"../../../Setting/_redux/yourCompany/yourCompanyAction\";\r\nimport { hasRoleForFunctionality } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\n\r\nexport default function YourCompanyPage() {\r\n const intl = useIntl();\r\n const suhbeader = useSubheader();\r\n const { user } = useSelector(state => state.auth);\r\n suhbeader.setTitle(intl.formatMessage({ id: 'AUTH.GENERAL.YOUR_COMPANY' }));\r\n\r\n // CodeLists Redux state\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n dispatch(actions.fetchOrganization())\r\n dispatch(actions.fetchFiscalDigitalCertificate())\r\n }, [dispatch]);\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 {hasRoleForFunctionality(user, [UserFunctionalityE.UrediVasePodjetje]) && (\r\n <>\r\n {user.organizationNotSentToFurs == false && (\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","import React, { useEffect } from \"react\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { LoadingDialog } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function CashiersLoadingDialog() {\r\n const intl = useIntl();\r\n // Cashiers Redux state\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.cashiers.listLoading }),\r\n shallowEqual\r\n );\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading]);\r\n return ;\r\n}\r\n","export function onlyDigits(event) {\r\n const keyCode = event.keyCode || event.which;\r\n const keyValue = String.fromCharCode(keyCode);\r\n if (!/\\d/.test(keyValue)) {\r\n event.preventDefault();\r\n }\r\n}\r\n\r\nexport function decimal(event) {\r\n const keyCode = event.keyCode || event.which;\r\n const keyValue = String.fromCharCode(keyCode);\r\n if (!/\\d|,|-/.test(keyValue)) {\r\n event.preventDefault();\r\n }\r\n}\r\n\r\nexport function convertToDateTime(dt) {\r\n return (dt.getMonth() + 1) + \"/\" + dt.getDate() + \"/\" + dt.getFullYear();\r\n}\r\n\r\nexport function onlyPositiveDecimal(event) {\r\n const keyCode = event.keyCode || event.which;\r\n const keyValue = String.fromCharCode(keyCode);\r\n if (!/\\d|,/.test(keyValue)) {\r\n event.preventDefault();\r\n }\r\n}\r\n","import * as requestFromServer from \"./cashiersCrud\";\r\nimport { cashiersSlice, callTypes } from \"./cashiersSlice\";\r\n\r\nconst {actions} = cashiersSlice;\r\n\r\nexport const fetchCashiers = queryParams => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .findCashiers(queryParams)\r\n .then(response => {\r\n const { totalCount, entities } = response.data;\r\n dispatch(actions.cashiersFetched({ totalCount, entities }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find cashiers\";\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\nexport const fetchCashier = id => dispatch => {\r\n if (!id) {\r\n return dispatch(actions.cashierFetched({ cashierForEdit: undefined }));\r\n }\r\n\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .getCashierById(id)\r\n .then(response => {\r\n response.data.model.premiseType = response.data.model.premiseType + \"\";\r\n response.data.model.valid = \"\";\r\n const cashier = response.data.model;\r\n dispatch(actions.cashierFetched({ cashierForEdit: cashier }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find cashier\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const deleteCashier = id => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .deleteCashier(id)\r\n .then(response => {\r\n dispatch(actions.cashierDeleted({ id }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't delete cashier\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const createCashier = cashierForCreation => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .createCashier(cashierForCreation)\r\n .then(response => {\r\n const { model } = response.data;\r\n dispatch(actions.cashierCreated({ model }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't create cashier\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const updateCashier = cashier => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .updateCashier(cashier)\r\n .then(() => {\r\n dispatch(actions.cashierUpdated({ cashier }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't update cashier\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const deleteCashiers = ids => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .deleteCashiers(ids)\r\n .then(() => {\r\n dispatch(actions.cashiersDeleted({ ids }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't delete cashiers\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\n","import axios from \"axios\";\r\nimport { convertToDateTime } from \"../../../../util/Util\";\r\n\r\n// Method from server should return QueryResultsModel(cashiers: any[], totalsCount: number)\r\n// cashiers => filtered/sorted result\r\nexport function findCashiers(queryParams) {\r\n return axios.post(\"/api/cashier/find\", queryParams );\r\n}\r\n\r\n// CREATE => POST: add a new cashier to the server\r\nexport function createCashier(cashier) {\r\n return axios.post(\"/api/cashier\", cashier );\r\n}\r\n\r\nexport function getCashierById(cashierId) {\r\n return axios.get(\"/api/cashier/\" + cashierId );\r\n}\r\n\r\n// UPDATE => PUT: update the cashier on the server\r\nexport function updateCashier(cashier) {\r\n return axios.put(\"/api/cashier/\" + cashier.id, cashier);\r\n}\r\n\r\n// DELETE => delete the cashier from the server\r\nexport function deleteCashier(cashierId) {\r\n return axios.delete(\"/api/cashier/\" + cashierId );\r\n}\r\n\r\n// DELETE Cashiers by ids\r\nexport function deleteCashiers(ids) {\r\n return axios.post(\"/api/cashier/deleteCashiers\", { ids });\r\n}\r\n\r\nexport function checkIfCashierExist(id, businessPremiseId, cashierId) {\r\n return axios.post(\"/api/cashier/checkIfCashierExist\", {\r\n id: id == undefined ? -1 : id,\r\n businessPremiseId: businessPremiseId,\r\n cashierId: cashierId\r\n });\r\n}\r\n\r\nexport function registerCashierById(cashierId) {\r\n return axios.get(\"/api/cashier/register/\" + cashierId);\r\n}\r\n\r\nexport function unregisterCashierById(cashierId) {\r\n return axios.get(\"/api/cashier/unregister/\" + cashierId);\r\n}\r\n\r\nexport function deconnectCashierById(cashierId) {\r\n return axios.get(\"/api/cashier/deconnect/\" + cashierId);\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useIntl } from \"react-intl\";\r\n\r\nexport function CashierEditDialogHeader({ id }) {\r\n const intl = useIntl();\r\n // Cashiers Redux state\r\n const { cashierForEdit, actionsLoading } = useSelector(\r\n (state) => ({\r\n cashierForEdit: state.cashiers.cashierForEdit,\r\n actionsLoading: state.cashiers.actionsLoading,\r\n }),\r\n shallowEqual\r\n );\r\n\r\n const [title, setTitle] = useState(\"\");\r\n // Title couting\r\n useEffect(() => {\r\n let _title = id ? \"\" : intl.formatMessage({ id: \"AUTH.CASHIER.NEW\" }) ;\r\n if (cashierForEdit && id) {\r\n _title = intl.formatMessage({ id: \"AUTH.CASHIER.EDIT\" }) + ` '${cashierForEdit.businessPremiseTitle}'`;\r\n }\r\n\r\n setTitle(_title);\r\n // eslint-disable-next-line\r\n }, [cashierForEdit, actionsLoading]);\r\n\r\n return (\r\n <>\r\n {actionsLoading && }\r\n \r\n {title}\r\n \r\n \r\n );\r\n}\r\n","// *https://www.registers.service.gov.uk/registers/country/use-the-api*\r\nimport React, { useState, useEffect } from 'react';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport default function AutocompleteWarehouseWithoutConsignment(props) {\r\n const intl = useIntl();\r\n const [open, setOpen] = useState(false);\r\n const [options, setOptions] = useState([]);\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [value, setValue] = useState(props.value);\r\n const loading = open && options.length === 0;\r\n\r\n useEffect(() => {\r\n let active = true;\r\n \r\n if (!loading) {\r\n return undefined;\r\n }\r\n\r\n (async () => {\r\n const response = await fetch('/api/warehouse/allWithoutConsignment');\r\n const result = await response.json();\r\n\r\n if (active) {\r\n setOptions(Object.keys(result.entities).map((key) => result.entities[key]));\r\n }\r\n })();\r\n\r\n return () => {\r\n active = false;\r\n };\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (!open) {\r\n setOptions([]);\r\n }\r\n }, [open]);\r\n\r\n\r\n return (\r\n <>\r\n {\r\n setOpen(true);\r\n }}\r\n onClose={() => {\r\n setOpen(false);\r\n }}\r\n value={props.value}\r\n getOptionSelected={(option, value) => option.id === value.id}\r\n getOptionLabel={(option) => option.name}\r\n options={options}\r\n loading={loading}\r\n onChange={(event, value) => { setValue(value); props.onChange(value); }}\r\n onInputChange={(event, value) => { setInputValue(value); }}\r\n renderInput={(params) => (\r\n \r\n {loading ? : null}\r\n {params.InputProps.endAdornment}\r\n \r\n ),\r\n }}\r\n />\r\n )}\r\n />\r\n \r\n );\r\n}\r\n","// Form is based on Formik\r\n// Data validation is based on Yup\r\n// Please, be familiar with article first:\r\n// https://hackernoon.com/react-form-validation-with-formik-and-yup-8b76bda62e10\r\nimport React, { useEffect, useState, useRef } from \"react\";\r\nimport { Modal, Button, InputGroup, Spinner } from \"react-bootstrap\";\r\nimport { Formik, Form, Field } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport {\r\n Input,\r\n} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport ErrorPopup from \"../../../../Helpers/ErrorPopup\"\r\nimport InfoPopup from \"../../../../Helpers/InfoPopup\"\r\nimport { CheckPermissions, hasRoleForFunctionality } from \"../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../enum/userFunctionalityE\"\r\nimport { useSelector } from \"react-redux\";\r\nimport { onlyDigits, onlyPositiveDecimal } from \"../../../../../util/Util\";\r\nimport { checkIfCashierExist } from \"../../../_redux/cashiers/cashiersCrud\";\r\nimport * as actions from \"../../../_redux/cashiers/cashiersActions\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport ToggleButton from \"@material-ui/lab/ToggleButton\";\r\nimport ToggleButtonGroup from \"@material-ui/lab/ToggleButtonGroup\";\r\nimport AutocompletePost from '../../../../../components/AutocompletePost'\r\nimport AutocompleteWarehouseWithoutConsignment from \"../../../../../components/AutocompleteWarehouseWithoutConsignment\"\r\n\r\nexport function CashierEditForm({\r\n saveCashier,\r\n cashier,\r\n actionsLoading,\r\n onHide,\r\n}) {\r\n const { user } = useSelector(state => state.auth);\r\n const intl = useIntl();\r\n const [errorMessage, setErrorMessage] = useState(\"\");\r\n const [errorOpen, setErrorOpen] = useState(false);\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n const [isRealEstateBP, setIsRealEstateBP] = useState([cashier != undefined ? cashier.isRealEstateBP : false]);\r\n const [post, setPost] = useState(cashier != undefined && cashier.realEstateAddressPostalCode != null ?\r\n { code: cashier.realEstateAddressPostalCode, title: cashier.realEstateAddressCity } : null);\r\n const [warehouse, setWarehouse] = useState(cashier != undefined ? cashier.warehouse : null);\r\n const [errorWarehouse, setErrorWarehouse] = useState(\"\");\r\n const [errorPost, setErrorPost] = useState(\"\");\r\n const [businessPremiseId, setBusinessPremiseId] = useState(cashier != undefined ? cashier.businessPremiseId : \"\");\r\n const [cashierId, setCashierId] = useState(cashier != undefined ? cashier.cashierId : \"\");\r\n\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n setIsRealEstateBP([cashier != undefined ? cashier.isRealEstateBP : false]);\r\n setPost(cashier != undefined && cashier.realEstateAddressPostalCode != null ?\r\n { code: cashier.realEstateAddressPostalCode, title: cashier.realEstateAddressCity } : null);\r\n setWarehouse(cashier != undefined ? cashier.warehouse : null);\r\n setBusinessPremiseId(cashier != undefined ? cashier.businessPremiseId : null);\r\n setCashierId(cashier != undefined ? cashier.cashierId : null);\r\n }, [user, cashier]);\r\n\r\n var readOnly = !hasRoleForFunctionality(user, [UserFunctionalityE.UrediDavcneBlagajne]) || cashier.isRegistered;\r\n\r\n // Validation schema\r\n const CashierEditSchema = Yup.object().shape({\r\n businessPremiseTitle: Yup.string()\r\n .max(250, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_250_SYMBOLS' }))\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })),\r\n businessPremiseId: Yup.string()\r\n .test('validator', intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_20_SYMBOLS' }), value => {\r\n return new Promise((resolve, reject) => {\r\n resolve(businessPremiseId != null && businessPremiseId != undefined && businessPremiseId.length < 21);\r\n })\r\n })\r\n .test('validator', intl.formatMessage({ id: 'AUTH.VALIDATION.REQUIRED_FIELD' }), value => {\r\n return new Promise((resolve, reject) => {\r\n resolve(businessPremiseId != null && businessPremiseId != undefined && businessPremiseId.trim().length > 0);\r\n })\r\n })\r\n .test('validator', intl.formatMessage({ id: 'AUTH.GENERAL.ONLY_CHAR' }), value => {\r\n return new Promise((resolve, reject) => {\r\n resolve(new RegExp(/^[A-Za-z0-9 ]+$/).test(businessPremiseId));\r\n })\r\n })\r\n .test('validator', intl.formatMessage({ id: 'CASHIER.GENERAL.CASHIER_EXISTS_YET' }), value => {\r\n return validCheckIfCashierExist();\r\n }),\r\n cashierId: Yup.string()\r\n .test('validator', intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_20_SYMBOLS' }), value => {\r\n return new Promise((resolve, reject) => {\r\n resolve(cashierId != null && cashierId != undefined && cashierId.length < 21);\r\n })\r\n })\r\n .test('validator', intl.formatMessage({ id: 'AUTH.VALIDATION.REQUIRED_FIELD' }), value => {\r\n return new Promise((resolve, reject) => {\r\n resolve(cashierId != null && cashierId != undefined && cashierId.trim().length > 0);\r\n })\r\n })\r\n .test('validator', intl.formatMessage({ id: 'AUTH.GENERAL.ONLY_CHAR' }), value => {\r\n return new Promise((resolve, reject) => {\r\n resolve( new RegExp(/^[A-Za-z0-9 ]+$/).test(cashierId));\r\n })\r\n })\r\n .test('validator', intl.formatMessage({ id: 'CASHIER.GENERAL.CASHIER_EXISTS_YET' }), value => {\r\n return validCheckIfCashierExist();\r\n }),\r\n realEstatePropertyCadastralNumber: Yup.string()\r\n .max(10, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_10_SYMBOLS' }))\r\n .test('validator', intl.formatMessage({ id: 'AUTH.VALIDATION.REQUIRED_FIELD' }), value => {\r\n return new Promise((resolve, reject) => {\r\n if (isRealEstateBP[0] && (value == undefined || value == \"\" || value == null || value.trim() == \"\")) {\r\n resolve(false);\r\n } else {\r\n resolve(true);\r\n }\r\n })\r\n }),\r\n realEstatePropertyBuildingNumber: Yup.string()\r\n .max(10, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_10_SYMBOLS' }))\r\n .test('validator', intl.formatMessage({ id: 'AUTH.VALIDATION.REQUIRED_FIELD' }), value => {\r\n return new Promise((resolve, reject) => {\r\n if (isRealEstateBP[0] && (value == undefined || value == \"\" || value == null || value.trim() == \"\")) {\r\n resolve(false);\r\n } else {\r\n resolve(true);\r\n }\r\n })\r\n }),\r\n realEstatePropertyBuildingSectionNumber: Yup.string()\r\n .max(10, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_10_SYMBOLS' }))\r\n .test('validator', intl.formatMessage({ id: 'AUTH.VALIDATION.REQUIRED_FIELD' }), value => {\r\n return new Promise((resolve, reject) => {\r\n if (isRealEstateBP[0] && (value == undefined || value == \"\" || value == null || value.trim() == \"\")) {\r\n resolve(false);\r\n } else {\r\n resolve(true);\r\n }\r\n })\r\n }),\r\n realEstateAddressStreet: Yup.string()\r\n .max(100, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_100_SYMBOLS' }))\r\n .test('validator', intl.formatMessage({ id: 'AUTH.VALIDATION.REQUIRED_FIELD' }), value => {\r\n return new Promise((resolve, reject) => {\r\n if (isRealEstateBP[0] && (value == undefined || value == \"\" || value == null || value.trim() == \"\")) {\r\n resolve(false);\r\n } else {\r\n resolve(true);\r\n }\r\n })\r\n }),\r\n realEstateAddressHouseNumber: Yup.string()\r\n .max(10, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_10_SYMBOLS' }))\r\n .test('validator', intl.formatMessage({ id: 'AUTH.VALIDATION.REQUIRED_FIELD' }), value => {\r\n return new Promise((resolve, reject) => {\r\n if (isRealEstateBP[0] && (value == undefined || value == \"\" || value == null || value.trim() == \"\")) {\r\n resolve(false);\r\n } else {\r\n resolve(true);\r\n }\r\n })\r\n }),\r\n realEstateAddressHouseNumberAdditional: Yup.string()\r\n .max(10, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_10_SYMBOLS' })),\r\n realEstateAddressCommunity: Yup.string()\r\n .max(100, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_100_SYMBOLS' }))\r\n .test('validator', intl.formatMessage({ id: 'AUTH.VALIDATION.REQUIRED_FIELD' }), value => {\r\n return new Promise((resolve, reject) => {\r\n if (isRealEstateBP[0] && (value == undefined || value == \"\" || value == null || value.trim() == \"\")) {\r\n resolve(false);\r\n } else {\r\n resolve(true);\r\n }\r\n })\r\n }),\r\n valid: Yup.string()\r\n .test('validator', \"Error\", value => {\r\n return new Promise((resolve, reject) => {\r\n resolve(validateForm());\r\n })\r\n })\r\n \r\n });\r\n\r\n function validCheckIfCashierExist() {\r\n return new Promise((resolve, reject) => {\r\n if (businessPremiseId != undefined && businessPremiseId != \"\" && businessPremiseId != null &&\r\n cashierId != undefined && cashierId != \"\" && cashierId != null) {\r\n checkIfCashierExist(cashier.id, businessPremiseId, cashierId)\r\n .then(({ data }) => {\r\n if (!data.didError) {\r\n resolve(!data.model);\r\n } else {\r\n resolve(false);\r\n }\r\n })\r\n .catch((e) => {\r\n resolve(false);\r\n });\r\n } else {\r\n resolve(true);\r\n }\r\n });\r\n }\r\n\r\n function handleChangeIsRealEstateBP(event, value) {\r\n var res = event.currentTarget.value == \"true\";\r\n setIsRealEstateBP([res]);\r\n }\r\n\r\n function validateForm() {\r\n var res = true;\r\n if (isRealEstateBP[0]) {\r\n if (post == undefined) {\r\n setErrorPost(intl.formatMessage({ id: 'AUTH.VALIDATION.REQUIRED_FIELD' }));\r\n res = false;\r\n } else {\r\n setErrorPost(\"\");\r\n }\r\n } else {\r\n setErrorPost(\"\");\r\n }\r\n if (warehouse == undefined) {\r\n setErrorWarehouse(intl.formatMessage({ id: 'AUTH.VALIDATION.REQUIRED_FIELD' }));\r\n res = false;\r\n } else {\r\n setErrorWarehouse(\"\");\r\n }\r\n\r\n return res;\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n var obj = {\r\n id: values.id,\r\n businessPremiseTitle: values.businessPremiseTitle,\r\n businessPremiseId: businessPremiseId,\r\n cashierId: cashierId,\r\n isRealEstateBP: isRealEstateBP[0],\r\n realEstatePropertyCadastralNumber: values.realEstatePropertyCadastralNumber,\r\n realEstatePropertyBuildingNumber: values.realEstatePropertyBuildingNumber,\r\n realEstatePropertyBuildingSectionNumber: values.realEstatePropertyBuildingSectionNumber,\r\n realEstateAddressStreet: values.realEstateAddressStreet,\r\n realEstateAddressHouseNumber: values.realEstateAddressHouseNumber,\r\n realEstateAddressHouseNumberAdditional: values.realEstateAddressHouseNumberAdditional,\r\n realEstateAddressCommunity: values.realEstateAddressCommunity,\r\n realEstateAddressCity: post != null ? post.title : \"\",\r\n realEstateAddressPostalCode: post != null ? post.code : \"\",\r\n premiseType: values.premiseType,\r\n warehouse: warehouse,\r\n warehouseId: warehouse.id,\r\n };\r\n saveCashier(obj);\r\n }\r\n }\r\n >\r\n {({ handleSubmit, errors, values }) => (\r\n <>\r\n \r\n {actionsLoading && (\r\n
\r\n
\r\n
\r\n )}\r\n\r\n {!actionsLoading && (\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 setBusinessPremiseId(e.target.value);\r\n }}\r\n />\r\n
\r\n \r\n
\r\n \r\n {\r\n setCashierId(e.target.value);\r\n }}\r\n />\r\n
\r\n\r\n
\r\n \r\n {\r\n setWarehouse(val);\r\n }}\r\n />\r\n {errorWarehouse.length > 0 ? (\r\n
\r\n
{errorWarehouse}
\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\r\n {!readOnly && (\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n {(readOnly && isRealEstateBP[0]) && (\r\n

\r\n \r\n

\r\n )}\r\n\r\n {(readOnly && !isRealEstateBP[0]) && (\r\n

\r\n \r\n

\r\n )}\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n {isRealEstateBP[0] && (\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\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 { setPost(val); }}\r\n />\r\n {errorPost.length > 0 ? (\r\n
\r\n
{errorPost}
\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n \r\n )}\r\n\r\n {!isRealEstateBP[0] && (\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 {!readOnly && (\r\n \r\n )}\r\n {readOnly && (\r\n \r\n )}\r\n \r\n <> \r\n\r\n {!readOnly && !actionsLoading && (\r\n \r\n handleSubmit()}\r\n className=\"btn btn-primary btn-elevate\"\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n setErrorOpen(false)} />\r\n { setOpen(false); }} />\r\n \r\n );\r\n}\r\n","export const defaultSorted = [{ dataField: \"id\", order: \"asc\" }];\r\nexport const sizePerPageList = [\r\n { text: \"10\", value: 10 },\r\n { text: \"25\", value: 25 },\r\n { text: \"50\", value: 50 }\r\n];\r\nexport const initialFilter = {\r\n status: 1,\r\n query: \"\",\r\n sortOrder: \"asc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25\r\n};\r\n","import React, {createContext, useContext, useState, useCallback} from \"react\";\r\nimport {isEqual, isFunction} from \"lodash\";\r\nimport {initialFilter} from \"./CashiersUIHelpers\";\r\n\r\nconst CashiersUIContext = createContext();\r\n\r\nexport function useCashiersUIContext() {\r\n return useContext(CashiersUIContext);\r\n}\r\n\r\nexport const CashiersUIConsumer = CashiersUIContext.Consumer;\r\n\r\nexport function CashiersUIProvider({cashiersUIEvents, children}) {\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n const initCashier = {\r\n id: undefined,\r\n businessPremiseTitle: \"\",\r\n businessPremiseId: \"\",\r\n cashierId: \"\",\r\n isRealEstateBP: true,\r\n realEstatePropertyCadastralNumber: \"\",\r\n realEstatePropertyBuildingNumber: \"\",\r\n realEstatePropertyBuildingSectionNumber: \"\",\r\n realEstateAddressStreet: \"\",\r\n realEstateAddressHouseNumber: \"\",\r\n realEstateAddressHouseNumberAdditional: \"\",\r\n realEstateAddressCommunity: \"\",\r\n realEstateAddressCity: \"\",\r\n realEstateAddressPostalCode: \"\",\r\n premiseType: \"1\",\r\n isRegistered: false,\r\n warehouse: null,\r\n warehouseId: null,\r\n valid: \"\"\r\n };\r\n\r\n const value = {\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initCashier,\r\n newCashierButtonClick: cashiersUIEvents.newCashierButtonClick,\r\n openEditCashierDialog: cashiersUIEvents.openEditCashierDialog,\r\n openDeleteCashierDialog: cashiersUIEvents.openDeleteCashierDialog,\r\n openDeleteCashiersDialog: cashiersUIEvents.openDeleteCashiersDialog,\r\n printInternAktDialog: cashiersUIEvents.printInternAktDialog,\r\n registerDialog: cashiersUIEvents.registerDialog,\r\n unregisterDialog: cashiersUIEvents.unregisterDialog,\r\n openConnectDialog: cashiersUIEvents.openConnectDialog,\r\n openDeconnectDialog: cashiersUIEvents.openDeconnectDialog\r\n };\r\n\r\n return {children};\r\n}","import React, { useEffect, useMemo, useState, useRef } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/cashiers/cashiersActions\";\r\nimport { CashierEditDialogHeader } from \"./CashierEditDialogHeader\";\r\nimport { CashierEditForm } from \"./CashierEditForm\";\r\nimport { useCashiersUIContext } from \"../CashiersUIContext\";\r\n\r\nexport function CashierEditDialog({ id, show, onHide }) {\r\n // Cashiers UI Context\r\n const cashiersUIContext = useCashiersUIContext();\r\n const cashiersUIProps = useMemo(() => {\r\n return {\r\n initCashier: cashiersUIContext.initCashier,\r\n };\r\n }, [cashiersUIContext]);\r\n\r\n // Cashiers Redux state\r\n const dispatch = useDispatch();\r\n const { actionsLoading, cashierForEdit, pricelists, pricelistsRemove,\r\n jigsaws, jigsawsRemove } = useSelector(\r\n (state) => ({\r\n actionsLoading: state.cashiers.actionsLoading,\r\n cashierForEdit: state.cashiers.cashierForEdit,\r\n }),\r\n shallowEqual\r\n );\r\n\r\n useEffect(() => {\r\n dispatch(actions.fetchCashier(id));\r\n }, [id, dispatch]);\r\n\r\n// server request for saving cashier\r\nconst saveCashier = (cashier) => {\r\n if (!id) {\r\n // server request for creating cashier\r\n dispatch(actions.createCashier(cashier)).then(() => onHide());\r\n } else {\r\n // server request for updating cashier\r\n dispatch(actions.updateCashier(cashier)).then(() => onHide());\r\n }\r\n};\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport * as actions from \"../../../_redux/cashiers/cashiersActions\";\r\nimport { useCashiersUIContext } from \"../CashiersUIContext\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport function CashierDeleteDialog({ id, show, onHide }) {\r\n // Cashiers UI Context\r\n const cashiersUIContext = useCashiersUIContext();\r\n const cashiersUIProps = useMemo(() => {\r\n return {\r\n setIds: cashiersUIContext.setIds,\r\n queryParams: cashiersUIContext.queryParams\r\n };\r\n }, [cashiersUIContext]);\r\n\r\n // Cashiers Redux state\r\n const dispatch = useDispatch();\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.cashiers.actionsLoading }),\r\n shallowEqual\r\n );\r\n\r\n // if !id we should close modal\r\n useEffect(() => {\r\n if (!id) {\r\n onHide();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [id]);\r\n\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading, dispatch]);\r\n\r\n const deleteCashier = () => {\r\n // server request for deleting cashier by id\r\n dispatch(actions.deleteCashier(id)).then(() => {\r\n // refresh list after deletion\r\n dispatch(actions.fetchCashiers(cashiersUIProps.queryParams));\r\n // clear selections list\r\n cashiersUIProps.setIds([]);\r\n // closing delete modal\r\n onHide();\r\n });\r\n };\r\n\r\n return (\r\n \r\n {/*begin::Loading*/}\r\n {isLoading && }\r\n {/*end::Loading*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isLoading && (\r\n \r\n )}\r\n {isLoading && }\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","import React, { useMemo } from \"react\";\r\nimport { Formik, Field } from \"formik\";\r\nimport { isEqual } from \"lodash\";\r\nimport { useCashiersUIContext } from \"../CashiersUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport {\r\n Input,\r\n} from \"../../../../../../_metronic/_partials/controls\";\r\n\r\nconst prepareFilter = (queryParams, values) => {\r\n\r\n const { searchText } = values;\r\n const newQueryParams = { ...queryParams };\r\n \r\n newQueryParams.query = searchText;\r\n return newQueryParams;\r\n};\r\n\r\nexport function CashiersFilter({ listLoading }) {\r\n const intl = useIntl();\r\n\r\n // Cashiers UI Context\r\n const cashiersUIContext = useCashiersUIContext();\r\n const cashiersUIProps = useMemo(() => {\r\n return {\r\n queryParams: cashiersUIContext.queryParams,\r\n setQueryParams: cashiersUIContext.setQueryParams,\r\n };\r\n }, [cashiersUIContext]);\r\n\r\n // queryParams, setQueryParams,\r\n const applyFilter = (values) => {\r\n const newQueryParams = prepareFilter(cashiersUIProps.queryParams, values);\r\n if (!isEqual(newQueryParams, cashiersUIProps.queryParams)) {\r\n newQueryParams.pageNumber = 1;\r\n // update list by queryParams\r\n cashiersUIProps.setQueryParams(newQueryParams);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {\r\n applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n setFieldValue(\"searchText\", e.target.value);\r\n handleSubmit();\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","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../../../_metronic/_helpers\";\r\nimport { CheckPermissions } from \"../../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../../enum/userFunctionalityE\"\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function ActionsColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n { user, openEditCashierDialog, openDeleteCashierDialog, registerDialog, unregisterDialog, openConnectDialog, openDeconnectDialog}\r\n) {\r\n return (\r\n \r\n {(row.isRegistered && user.organizationNotSentToFurs == false) && (\r\n unregisterDialog(row.id)}\r\n >\r\n \r\n \r\n )}\r\n\r\n {(!row.isRegistered && user.organizationNotSentToFurs == false) && (\r\n registerDialog(row.id)}\r\n >\r\n \r\n \r\n )}\r\n \r\n\r\n \r\n {!row.isRegistered && (\r\n <>\r\n openEditCashierDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n <> \r\n \r\n openDeleteCashierDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {(row.isRegistered || user.organizationNotSentToFurs == true) && row.deviceKey == null && (\r\n <>\r\n\r\n openConnectDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n )}\r\n\r\n {(row.isRegistered || user.organizationNotSentToFurs == true) && row.deviceKey != null && (\r\n <>\r\n\r\n openDeconnectDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function InternAktColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n { printInternAktDialog }\r\n) {\r\n return (\r\n <>\r\n printInternAktDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n );\r\n}\r\n","// React bootstrap table next =>\r\n// DOCS: https://react-bootstrap-table.github.io/react-bootstrap-table2/docs/\r\n// STORYBOOK: https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html\r\nimport React, { useEffect, useMemo, useState } from \"react\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory, {\r\n PaginationProvider,\r\n} from \"react-bootstrap-table2-paginator\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/cashiers/cashiersActions\";\r\nimport {\r\n getSelectRow,\r\n getHandlerTableChange,\r\n NoRecordsFoundMessage,\r\n PleaseWaitMessage,\r\n sortCaret,\r\n headerSortingClasses,\r\n} from \"../../../../../../_metronic/_helpers\";\r\nimport * as uiHelpers from \"../CashiersUIHelpers\";\r\nimport * as columnFormatters from \"./column-formatters\";\r\nimport { Pagination } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useCashiersUIContext } from \"../CashiersUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport InfoPopup from \"../../../../Helpers/InfoPopup\"\r\n\r\nexport function CashiersTable() {\r\n const intl = useIntl();\r\n const user = useSelector(({ auth }) => auth.user, shallowEqual);\r\n\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n // Cashiers UI Context\r\n const cashiersUIContext = useCashiersUIContext();\r\n const cashiersUIProps = useMemo(() => {\r\n return {\r\n ids: cashiersUIContext.ids,\r\n setIds: cashiersUIContext.setIds,\r\n queryParams: cashiersUIContext.queryParams,\r\n setQueryParams: cashiersUIContext.setQueryParams,\r\n openEditCashierDialog: cashiersUIContext.openEditCashierDialog,\r\n openDeleteCashierDialog: cashiersUIContext.openDeleteCashierDialog,\r\n printInternAktDialog: cashiersUIContext.printInternAktDialog,\r\n registerDialog: cashiersUIContext.registerDialog,\r\n unregisterDialog: cashiersUIContext.unregisterDialog,\r\n openConnectDialog: cashiersUIContext.openConnectDialog,\r\n openDeconnectDialog: cashiersUIContext.openDeconnectDialog\r\n };\r\n }, [cashiersUIContext]);\r\n\r\n // Getting curret state of cashiers list from store (Redux)\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.cashiers }),\r\n shallowEqual\r\n );\r\n const { totalCount, entities, listLoading } = currentState;\r\n\r\n // Cashiers Redux state\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n // clear selections list\r\n cashiersUIProps.setIds([]);\r\n // server call by queryParams\r\n dispatch(actions.fetchCashiers(cashiersUIProps.queryParams));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [cashiersUIProps.queryParams, dispatch]);\r\n\r\n // Table columns\r\n const columns = [\r\n {\r\n dataField: \"id\",\r\n text: \"#\",\r\n sort: false,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"businessPremiseTitle\",\r\n text: intl.formatMessage({ id: \"AUTH.INPUT.BUSINESS_PREMISE\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"businessPremiseId\",\r\n text: intl.formatMessage({ id: \"AUTH.INPUT.BUSINESS_PREMISE_ID\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"cashierId\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.CASHIER_ID\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"premiseType\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.INTERNI_AKT\" }),\r\n formatter: columnFormatters.InternAktColumnFormatter,\r\n formatExtraData: {\r\n printInternAktDialog: cashiersUIProps.printInternAktDialog\r\n },\r\n sort: false,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"action\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.ACTIONS\" }),\r\n formatter: columnFormatters.ActionsColumnFormatter,\r\n formatExtraData: {\r\n user: user,\r\n openEditCashierDialog: cashiersUIProps.openEditCashierDialog,\r\n openDeleteCashierDialog: cashiersUIProps.openDeleteCashierDialog,\r\n registerDialog: cashiersUIProps.registerDialog,\r\n unregisterDialog: cashiersUIProps.unregisterDialog,\r\n openConnectDialog: cashiersUIProps.openConnectDialog,\r\n openDeconnectDialog: cashiersUIProps.openDeconnectDialog\r\n },\r\n classes: \"text-right pr-0\",\r\n headerClasses: \"text-right pr-3\",\r\n style: {\r\n minWidth: \"100px\",\r\n },\r\n }\r\n ];\r\n\r\n const customTotal = (from, to, size) => (\r\n \r\n {from} - { to} {size} \r\n \r\n );\r\n\r\n\r\n // Table pagination properties\r\n const paginationOptions = {\r\n custom: true,\r\n totalSize: totalCount,\r\n sizePerPageList: uiHelpers.sizePerPageList,\r\n sizePerPage: cashiersUIProps.queryParams.pageSize,\r\n page: cashiersUIProps.queryParams.pageNumber,\r\n paginationTotalRenderer: customTotal,\r\n };\r\n return (\r\n <>\r\n \r\n {({ paginationProps, paginationTableProps }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }}\r\n \r\n { setOpen(false); }} />\r\n \r\n );\r\n}\r\n","import React, { useMemo } from \"react\";\r\nimport { useCashiersUIContext } from \"../CashiersUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function CashiersGrouping() {\r\n const intl = useIntl();\r\n\r\n // Cashiers UI Context\r\n const cashiersUIContext = useCashiersUIContext();\r\n const cashiersUIProps = useMemo(() => {\r\n return {\r\n ids: cashiersUIContext.ids,\r\n setIds: cashiersUIContext.setIds,\r\n openDeleteCashiersDialog: cashiersUIContext.openDeleteCashiersDialog\r\n };\r\n }, [cashiersUIContext]);\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","import React, { useMemo } from \"react\";\r\nimport {\r\n Card,\r\n CardBody,\r\n CardHeader,\r\n CardHeaderToolbar,\r\n} from \"../../../../../_metronic/_partials/controls\";\r\nimport { CashiersFilter } from \"./cashiers-filter/CashiersFilter\";\r\nimport { CashiersTable } from \"./cashiers-table/CashiersTable\";\r\nimport { CashiersGrouping } from \"./cashiers-grouping/CashiersGrouping\";\r\nimport { useCashiersUIContext } from \"./CashiersUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { CheckPermissions } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\n\r\nexport function CashiersCard() {\r\n const intl = useIntl();\r\n const cashiersUIContext = useCashiersUIContext();\r\n const cashiersUIProps = useMemo(() => {\r\n return {\r\n ids: cashiersUIContext.ids,\r\n newCashierButtonClick: cashiersUIContext.newCashierButtonClick,\r\n };\r\n }, [cashiersUIContext]);\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 {cashiersUIProps.ids.length > 0 && }\r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useState } from 'react';\r\n\r\nexport default function PdfViewer(props) {\r\n const [loading, setLoading] = useState(true);\r\n\r\n\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
\r\n
\r\n )}\r\n { setLoading(false); }}\r\n />\r\n \r\n );\r\n}\r\n","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/cashiers/cashiersActions\";\r\nimport { useCashiersUIContext } from \"../CashiersUIContext\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport PdfViewer from \"../../../../../components/PdfViewer\"\r\n\r\nexport function CashierPrintDialog({ id, show, onHide }) {\r\n // Office users UI Context\r\n const cashiersUIContext = useCashiersUIContext();\r\n const cashiersUIProps = useMemo(() => {\r\n return {\r\n queryParams: cashiersUIContext.queryParams,\r\n };\r\n }, [cashiersUIContext]);\r\n\r\n // Office users Redux state\r\n const dispatch = useDispatch();\r\n \r\n\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [dispatch]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {id > 0 && (\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","import React, { useEffect, useMemo, useState } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport * as actions from \"../../../_redux/cashiers/cashiersActions\";\r\nimport { useCashiersUIContext } from \"../CashiersUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { registerCashierById } from \"../../../_redux/cashiers/cashiersCrud\";\r\nimport InfoPopup from \"../../../../Helpers/InfoPopup\"\r\nimport ErrorPopup from \"../../../../Helpers/ErrorPopup\"\r\n\r\nexport function CashierRegisterDialog({ id, show, onHide }) {\r\n const intl = useIntl();\r\n // Cashiers UI Context\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n const [messageError, setMessageError] = useState(\"\");\r\n const [openError, setOpenError] = useState(false);\r\n\r\n const cashiersUIContext = useCashiersUIContext();\r\n const cashiersUIProps = useMemo(() => {\r\n return {\r\n setIds: cashiersUIContext.setIds,\r\n queryParams: cashiersUIContext.queryParams\r\n };\r\n }, [cashiersUIContext]);\r\n\r\n // Cashiers Redux state\r\n const dispatch = useDispatch();\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.cashiers.actionsLoading }),\r\n shallowEqual\r\n );\r\n\r\n // if !id we should close modal\r\n useEffect(() => {\r\n if (!id) {\r\n onHide();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [id]);\r\n\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading, dispatch]);\r\n\r\n const registerCashier = () => {\r\n registerCashierById(id).then(({ data }) => {\r\n if (!data.didError && data.model) {\r\n setMessage(intl.formatMessage({ id: \"AUTH.REGISTER.SUCCESS.FURS\" }));\r\n setOpen(true);\r\n dispatch(actions.fetchCashiers(cashiersUIProps.queryParams));\r\n cashiersUIProps.setIds([]);\r\n }\r\n else {\r\n setMessageError(data.errorMessage);\r\n setOpenError(true);\r\n }\r\n onHide();\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {/*begin::Loading*/}\r\n {isLoading && }\r\n {/*end::Loading*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isLoading && (\r\n \r\n )}\r\n {isLoading && }\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 { setOpen(false); }} />\r\n { setOpenError(false); }} />\r\n \r\n );\r\n}\r\n","import React, { useEffect, useMemo, useState } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport * as actions from \"../../../_redux/cashiers/cashiersActions\";\r\nimport { useCashiersUIContext } from \"../CashiersUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { unregisterCashierById } from \"../../../_redux/cashiers/cashiersCrud\";\r\nimport InfoPopup from \"../../../../Helpers/InfoPopup\"\r\nimport ErrorPopup from \"../../../../Helpers/ErrorPopup\"\r\n\r\nexport function CashierUnregisterDialog({ id, show, onHide }) {\r\n const intl = useIntl();\r\n // Cashiers UI Context\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n const [messageError, setMessageError] = useState(\"\");\r\n const [openError, setOpenError] = useState(false);\r\n const cashiersUIContext = useCashiersUIContext();\r\n const cashiersUIProps = useMemo(() => {\r\n return {\r\n setIds: cashiersUIContext.setIds,\r\n queryParams: cashiersUIContext.queryParams\r\n };\r\n }, [cashiersUIContext]);\r\n\r\n // Cashiers Redux state\r\n const dispatch = useDispatch();\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.cashiers.actionsLoading }),\r\n shallowEqual\r\n );\r\n\r\n // if !id we should close modal\r\n useEffect(() => {\r\n if (!id) {\r\n onHide();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [id]);\r\n\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading, dispatch]);\r\n\r\n const unregisterCashier = () => {\r\n unregisterCashierById(id).then(({ data }) => {\r\n if (!data.didError && data.model) {\r\n setMessage(intl.formatMessage({ id: \"AUTH.UNREGISTER.SUCCESS.FURS\" }));\r\n setOpen(true);\r\n dispatch(actions.fetchCashiers(cashiersUIProps.queryParams));\r\n cashiersUIProps.setIds([]);\r\n }\r\n else {\r\n setMessageError(data.errorMessage);\r\n setOpenError(true);\r\n }\r\n onHide();\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {/*begin::Loading*/}\r\n {isLoading && }\r\n {/*end::Loading*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isLoading && (\r\n \r\n )}\r\n {isLoading && }\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 { setOpen(false); }} />\r\n { setOpenError(false); }} />\r\n \r\n );\r\n}\r\n","import React, { useEffect, useMemo, useState } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport * as actions from \"../../../_redux/cashiers/cashiersActions\";\r\nimport { useCashiersUIContext } from \"../CashiersUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport QRCode from \"qrcode.react\";\r\n\r\n\r\nexport function CashierConnectDialog({ id, show, onHide }) {\r\n // Cashiers UI Context\r\n const [timer, setTimer] = useState(null);\r\n const cashiersUIContext = useCashiersUIContext();\r\n const cashiersUIProps = useMemo(() => {\r\n return {\r\n initCashier: cashiersUIContext.initCashier,\r\n setIds: cashiersUIContext.setIds,\r\n queryParams: cashiersUIContext.queryParams\r\n };\r\n }, [cashiersUIContext]);\r\n\r\n // Cashiers Redux state\r\n const dispatch = useDispatch();\r\n const { actionsLoading, cashierForEdit} = useSelector(\r\n (state) => ({\r\n actionsLoading: state.cashiers.actionsLoading,\r\n cashierForEdit: state.cashiers.cashierForEdit,\r\n }),\r\n shallowEqual\r\n );\r\n\r\n useEffect(() => {\r\n dispatch(actions.fetchCashier(id));\r\n }, [id, dispatch]);\r\n\r\n function tick() {\r\n dispatch(actions.fetchCashier(id));\r\n }\r\n\r\n useEffect(() => {\r\n if (show) {\r\n var id = setInterval(() => tick(), 4000);\r\n setTimer(id);\r\n } else {\r\n clearInterval(timer);\r\n }\r\n }, [show]);\r\n\r\n function onHideRefresh() {\r\n onHide();\r\n cashiersUIProps.setIds([]);\r\n dispatch(actions.fetchCashiers(cashiersUIProps.queryParams));\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 {cashierForEdit != undefined && cashierForEdit.deviceKey == 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\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n )}\r\n\r\n\r\n {cashierForEdit != undefined && cashierForEdit.deviceKey != 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
\r\n
\r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useMemo, useState } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/cashiers/cashiersActions\";\r\nimport { useCashiersUIContext } from \"../CashiersUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { deconnectCashierById } from \"../../../_redux/cashiers/cashiersCrud\";\r\nimport InfoPopup from \"../../../../Helpers/InfoPopup\"\r\n\r\nexport function CashierDeconnectDialog({ id, show, onHide }) {\r\n // Cashiers UI Context\r\n const intl = useIntl();\r\n const [infoMessage, setInfoMessage] = useState(\"\");\r\n const [infoOpen, setInfoOpen] = useState(false);\r\n const [actionsLoading, setActionsLoading] = useState(false);\r\n const [timer, setTimer] = useState(null);\r\n const cashiersUIContext = useCashiersUIContext();\r\n const cashiersUIProps = useMemo(() => {\r\n return {\r\n initCashier: cashiersUIContext.initCashier,\r\n setIds: cashiersUIContext.setIds,\r\n queryParams: cashiersUIContext.queryParams\r\n };\r\n }, [cashiersUIContext]);\r\n\r\n // Cashiers Redux state\r\n const dispatch = useDispatch();\r\n const { cashierForEdit } = useSelector(\r\n (state) => ({\r\n cashierForEdit: state.cashiers.cashierForEdit\r\n }),\r\n shallowEqual\r\n );\r\n\r\n useEffect(() => {\r\n dispatch(actions.fetchCashier(id));\r\n }, [id, dispatch]);\r\n\r\n function tick() {\r\n dispatch(actions.fetchCashier(id));\r\n }\r\n\r\n useEffect(() => {\r\n if (show) {\r\n var id = setInterval(() => tick(), 4000);\r\n setTimer(id);\r\n } else {\r\n clearInterval(timer);\r\n }\r\n }, [show]);\r\n\r\n\r\n function deconnectDevice() {\r\n setActionsLoading(true);\r\n deconnectCashierById(cashierForEdit.id)\r\n .then(({ data }) => {\r\n onHide();\r\n setInfoMessage(intl.formatMessage({ id: 'DECONNECT.DEVICE.SUCCESS' }));\r\n setInfoOpen(true);\r\n setActionsLoading(false);\r\n\r\n cashiersUIProps.setIds([]);\r\n dispatch(actions.fetchCashiers(cashiersUIProps.queryParams));\r\n }).catch((e) => {\r\n setActionsLoading(false);\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 {actionsLoading && (\r\n
\r\n
\r\n
\r\n )}\r\n\r\n {!actionsLoading && cashierForEdit != undefined && cashierForEdit.deviceKey != 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 \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 {cashierForEdit != undefined && !actionsLoading && (\r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n \r\n setInfoOpen(false)} />\r\n \r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\nimport { CashiersLoadingDialog } from \"./cashiers-loading-dialog/CashiersLoadingDialog\";\r\nimport { CashierEditDialog } from \"./cashier-edit-dialog/CashierEditDialog\";\r\nimport { CashierDeleteDialog } from \"./cashier-delete-dialog/CashierDeleteDialog\";\r\nimport { CashiersUIProvider } from \"./CashiersUIContext\";\r\nimport { CashiersCard } from \"./CashiersCard\";\r\nimport { CashierPrintDialog } from \"./cashier-print-dialog/CashierPrintDialog\";\r\nimport { CashierRegisterDialog } from \"./cashier-register-dialog/CashierRegisterDialog\";\r\nimport { CashierUnregisterDialog } from \"./cashier-unregister-dialog/CashierUnregisterDialog\";\r\nimport { CashierConnectDialog } from \"./cashier-connect-dialog/CashierConnectDialog\";\r\nimport { CashierDeconnectDialog } from \"./cashier-deconnect-dialog/CashierDeconnectDialog\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport InfoPopup from \"../../../Helpers/InfoPopup\"\r\nimport { useIntl } from \"react-intl\";\r\n\r\nexport function CashiersPage({ history }) {\r\n const intl = useIntl();\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n const { user } = useSelector(state => state.auth);\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.cashiers }),\r\n shallowEqual\r\n );\r\n const { totalCount } = currentState;\r\n\r\n\r\n const cashiersUIEvents = {\r\n newCashierButtonClick: () => {\r\n if (totalCount < user.organizationCashierCount) {\r\n history.push(\"/settings/cashiers/new\");\r\n } else {\r\n setOpen(true);\r\n setMessage(intl.formatMessage({\r\n id: \"GENERAL.CAN_NOT_ADDED_CASHIERS\",\r\n }));\r\n }\r\n },\r\n openEditCashierDialog: (id) => {\r\n history.push(`/settings/cashiers/${id}/edit`);\r\n },\r\n openDeleteCashierDialog: (id) => {\r\n history.push(`/settings/cashiers/${id}/delete`);\r\n },\r\n openDeleteCashiersDialog: () => {\r\n history.push(`/settings/cashiers/deleteCashiers`);\r\n },\r\n printInternAktDialog: (id) => {\r\n history.push(`/settings/cashiers/${id}/print/`);\r\n },\r\n registerDialog: (id) => {\r\n history.push(`/settings/cashiers/${id}/register`);\r\n },\r\n unregisterDialog: (id) => {\r\n history.push(`/settings/cashiers/${id}/unregister`);\r\n },\r\n openConnectDialog: (id) => {\r\n history.push(`/settings/cashiers/${id}/connect`);\r\n },\r\n openDeconnectDialog: (id) => {\r\n history.push(`/settings/cashiers/${id}/deconnect`);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/settings/cashiers\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/settings/cashiers\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/settings/cashiers\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/settings/cashiers\");\r\n }}\r\n />\r\n )\r\n }\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/settings/cashiers\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/settings/cashiers\");\r\n }}\r\n />\r\n )}\r\n \r\n\r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/settings/cashiers\");\r\n }}\r\n />\r\n )}\r\n \r\n\r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/settings/cashiers\");\r\n }}\r\n />\r\n )}\r\n \r\n\r\n\r\n { setOpen(false); }} />\r\n \r\n \r\n );\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { useSelector, shallowEqual, connect, useDispatch } from \"react-redux\";\r\nimport * as Yup from \"yup\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { ModalProgressBar } from \"../../../../../_metronic/_partials/controls\";\r\nimport { toAbsoluteUrl } from \"../../../../../_metronic/_helpers\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { changePassword } from \"../../_redux/changePassword/changePasswordCrud\"\r\n\r\nexport function AppPage(props) {\r\n const intl = useIntl();\r\n // Fields\r\n const dispatch = useDispatch();\r\n const user = useSelector((state) => state.auth.user, shallowEqual);\r\n useEffect(() => { }, [user]);\r\n \r\n\r\n return (\r\n
\r\n\r\n {/* begin::Header */}\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 {/* end::Header */}\r\n {/* begin::Form */}\r\n
\r\n
\r\n

Navodila za namestitev Android aplikacije

\r\n
    \r\n
  • 1. Na Android napravi kliknite tukaj in shranite APK datoteko.
  • \r\n
  • 2. Zaženite preneseno datoteko com.skupinacomp.pos.mobile.app.apk.
  • \r\n
  • 3. Omogoči namestitev aplikacij iz neznanih virov.
  • \r\n
  • 4. In nadaljujte namestitev.
  • \r\n
\r\n
\r\n
\r\n {/* end::Form */}\r\n\r\n\r\n {/* begin::Form */}\r\n
\r\n
\r\n

Navodila za namestitev Android vtičnika aplikacije

\r\n
    \r\n
  • 1. Na Android napravi kliknite tukaj in shranite APK datoteko.
  • \r\n
  • 2. Zaženite preneseno datoteko com.mikropos.wrapper.apk.
  • \r\n
  • 3. Omogoči namestitev aplikacij iz neznanih virov.
  • \r\n
  • 4. In nadaljujte namestitev.
  • \r\n
  • 5. Natolahko uporabite vtičnik v mikroPOS aplikaciji.
  • \r\n
\r\n
\r\n
\r\n {/* end::Form */}\r\n
\r\n );\r\n}\r\n\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { useSelector, shallowEqual, useDispatch } from \"react-redux\";\r\nimport { useFormik } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { ModalProgressBar } from \"../../../../../_metronic/_partials/controls\";\r\nimport { toAbsoluteUrl } from \"../../../../../_metronic/_helpers\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { importItemsExcel } from \"../../_redux/import/importCrud\";\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nexport default function ImportItems(props) {\r\n const intl = useIntl();\r\n // Fields\r\n const [loading, setLoading] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n const [isSuccess, setIsSuccess] = useState(false);\r\n const dispatch = useDispatch();\r\n const user = useSelector((state) => state.auth.user, shallowEqual);\r\n\r\n useEffect(() => {\r\n \r\n }, [user]);\r\n\r\n const onChangeImportData = event => {\r\n setIsSuccess(false);\r\n setIsError(false);\r\n setLoading(true);\r\n const formData = new FormData();\r\n formData.append(\r\n \"data\",\r\n event.target.files[0],\r\n event.target.files[0].name\r\n );\r\n event.target.value = null;\r\n importItemsExcel(formData).then((req) => {\r\n if (!req.data.didError) {\r\n setIsSuccess(true);\r\n } else {\r\n setIsError(true);\r\n setError(req.errorMessage);\r\n }\r\n setLoading(false);\r\n }).catch((e) => {\r\n setIsError(true);\r\n setError(e.response.data.errorMessage);\r\n setLoading(false);\r\n });\r\n }\r\n\r\n return (\r\n
\r\n {loading && }\r\n\r\n {/* begin::Header */}\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 {/* end::Header */}\r\n {/* begin::Form */}\r\n
\r\n
\r\n {/* begin::Alert */}\r\n {isSuccess && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n \r\n
\r\n
setIsSuccess(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n\r\n {isError && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n\r\n { error}\r\n\r\n
\r\n
setIsError(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n {/* end::Alert */}\r\n \r\n
\r\n
\r\n

\r\n

\r\n
    \r\n
  1. \r\n
  2. \r\n
  3. ).
  4. \r\n
  5. \r\n
  6. \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {!loading ? : null}\r\n {loading ? : null}\r\n {!loading ? \r\n \r\n : null}\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n {/* end::Form */}\r\n \r\n );\r\n}\r\n\r\n","import axios from \"axios\";\r\n\r\nexport function importItemsExcel(data) {\r\n return axios.post(\"/api/import/importItemsExcel\", data);\r\n}\r\n\r\n\r\nexport function importPricelistsExcel(data) {\r\n return axios.post(\"/api/import/importPricelistsExcel\", data);\r\n}\r\n\r\nexport function importStocksExcel(data) {\r\n return axios.post(\"/api/import/importStocksExcel\", data);\r\n}\r\n\r\nexport function getWarehouses() {\r\n return axios.get(\"/api/warehouse/all\");\r\n}\r\n","import * as requestFromServer from \"./importCrud\";\r\nimport { importSlice, callTypes } from \"./importSlice\";\r\n\r\nconst { actions } = importSlice;\r\n\r\nexport const fetchWarehouses = () => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .getWarehouses()\r\n .then(response => {\r\n const { totalCount, entities } = response.data;\r\n dispatch(actions.warehousesFetched({ totalCount, entities }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find warehouses\";\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { useSelector, shallowEqual, useDispatch } from \"react-redux\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { ModalProgressBar } from \"../../../../../_metronic/_partials/controls\";\r\nimport { toAbsoluteUrl } from \"../../../../../_metronic/_helpers\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { importStocksExcel } from \"../../_redux/import/importCrud\";\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport * as actions from \"../../_redux/import/importActions\";\r\n\r\nexport default function ImportStocks(props) {\r\n const intl = useIntl();\r\n // Fields\r\n const [loading, setLoading] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n const [isSuccess, setIsSuccess] = useState(false);\r\n const dispatch = useDispatch();\r\n const user = useSelector((state) => state.auth.user, shallowEqual);\r\n\r\n useEffect(() => {\r\n\r\n }, [user]);\r\n\r\n // Warehouses Redux state\r\n useEffect(() => {\r\n dispatch(actions.fetchWarehouses());\r\n \r\n }, [dispatch]);\r\n\r\n const { currentState } = useSelector(\r\n (state) => ({\r\n currentState: state.import\r\n }),\r\n shallowEqual\r\n );\r\n const { totalCount, entities, listLoading } = currentState;\r\n\r\n const onChangeImportData = event => {\r\n setIsSuccess(false);\r\n setIsError(false);\r\n setLoading(true);\r\n const formData = new FormData();\r\n formData.append(\r\n \"data\",\r\n event.target.files[0],\r\n event.target.files[0].name\r\n );\r\n event.target.value = null;\r\n importStocksExcel(formData).then((req) => {\r\n if (!req.data.didError) {\r\n setIsSuccess(true);\r\n } else {\r\n setIsError(true);\r\n setError(req.errorMessage);\r\n }\r\n setLoading(false);\r\n }).catch((e) => {\r\n setIsError(true);\r\n setError(e.response.data.errorMessage);\r\n setLoading(false);\r\n });\r\n }\r\n\r\n return (\r\n
\r\n {loading && }\r\n\r\n {/* begin::Header */}\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 {/* end::Header */}\r\n {/* begin::Form */}\r\n
\r\n
\r\n {/* begin::Alert */}\r\n {isSuccess && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n \r\n
\r\n
setIsSuccess(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n\r\n {isError && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n\r\n {error}\r\n\r\n
\r\n
setIsError(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n {/* end::Alert */}\r\n\r\n
\r\n
\r\n

\r\n

\r\n
    \r\n
  1. \r\n
  2. \r\n \r\n {entities != null && entities.map((warehouse, index) => (\r\n <>\r\n {index > 0 && <>, }\r\n {warehouse.name}\r\n \r\n ))}\r\n .\r\n
  3. \r\n
  4. ).
  5. \r\n
  6. \r\n
  7. \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n {!loading ? : null}\r\n {loading ? : null}\r\n {!loading ? \r\n \r\n : null}\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n {/* end::Form */}\r\n \r\n );\r\n}\r\n\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { useSelector, shallowEqual, useDispatch } from \"react-redux\";\r\nimport { useFormik } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { ModalProgressBar } from \"../../../../../_metronic/_partials/controls\";\r\nimport { toAbsoluteUrl } from \"../../../../../_metronic/_helpers\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { importItemsExcel } from \"../../_redux/import/importCrud\";\r\nimport { importPricelistsExcel } from \"../../_redux/import/importCrud\";\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nexport default function ImportIPricelists(props) {\r\n const intl = useIntl();\r\n // Fields\r\n const [loading, setLoading] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n const [isSuccess, setIsSuccess] = useState(false);\r\n const dispatch = useDispatch();\r\n const user = useSelector((state) => state.auth.user, shallowEqual);\r\n\r\n useEffect(() => {\r\n \r\n }, [user]);\r\n\r\n const onChangeImportData = event => {\r\n setIsSuccess(false);\r\n setIsError(false);\r\n setLoading(true);\r\n const formData = new FormData();\r\n formData.append(\r\n \"data\",\r\n event.target.files[0],\r\n event.target.files[0].name\r\n );\r\n event.target.value = null;\r\n importPricelistsExcel(formData).then((req) => {\r\n if (!req.data.didError) {\r\n setIsSuccess(true);\r\n } else {\r\n setIsError(true);\r\n setError(req.errorMessage);\r\n }\r\n setLoading(false);\r\n }).catch((e) => {\r\n setIsError(true);\r\n setError(e.response.data.errorMessage);\r\n setLoading(false);\r\n });\r\n }\r\n\r\n return (\r\n
\r\n {loading && }\r\n\r\n {/* begin::Header */}\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 {/* end::Header */}\r\n {/* begin::Form */}\r\n
\r\n
\r\n {/* begin::Alert */}\r\n {isSuccess && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n \r\n
\r\n
setIsSuccess(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n\r\n {isError && (\r\n \r\n
\r\n \r\n {\" \"}\r\n \r\n
\r\n
\r\n\r\n { error}\r\n\r\n
\r\n
setIsError(false)}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n {/* end::Alert */}\r\n \r\n
\r\n
\r\n

\r\n

\r\n
    \r\n
  1. \r\n
  2. \r\n
  3. ).
  4. \r\n
  5. \r\n
  6. \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {!loading ? : null}\r\n {loading ? : null}\r\n {!loading ? \r\n \r\n : null}\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n \r\n {/* end::Form */}\r\n \r\n );\r\n}\r\n\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useEffect } from \"react\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../../_metronic/_helpers\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport { CheckPermissions } from \"../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../enum/userFunctionalityE\"\r\n\r\nexport function Navigation() {\r\n const user = useSelector(({ auth }) => auth.user, shallowEqual);\r\n\r\n useEffect(() => {\r\n return () => { };\r\n }, [user]);\r\n\r\n return (\r\n <>\r\n {user && (\r\n \r\n
\r\n {/* begin::Body */}\r\n
\r\n {/* begin::Nav */}\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\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 {/* end::Nav */}\r\n
\r\n {/* end::Body */}\r\n
\r\n \r\n )}\r\n \r\n );\r\n}\r\n","import React, { useEffect, useState }from \"react\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport { Redirect, Route, Switch } from \"react-router-dom\";\r\nimport { useSubheader } from \"../../../../../_metronic/layout\";\r\nimport ImportItems from \"../import/ImportItems\";\r\nimport ImportStocks from \"../import/ImportStocks\";\r\nimport ImportIPricelists from \"../import/ImportIPricelists\";\r\nimport { Navigation } from \"../import/components/Navigation\";\r\nimport { useIntl } from \"react-intl\";\r\nimport { hasRoleForFunctionality } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\n\r\nexport default function ImportPage() {\r\n const intl = useIntl();\r\n const suhbeader = useSubheader();\r\n const { user } = useSelector(state => state.auth);\r\n suhbeader.setTitle(intl.formatMessage({ id: 'AUTH.GENERAL.YOUR_COMPANY' }));\r\n\r\n // CodeLists Redux state\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n\r\n\r\n }, [dispatch]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.UrediInventurnePopise]) && (\r\n \r\n )}\r\n \r\n {hasRoleForFunctionality(user, [UserFunctionalityE.UrediIzdelke]) && (\r\n \r\n )}\r\n\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.UrediIzdelke]) && (\r\n \r\n )}\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Suspense } from \"react\";\r\nimport { Redirect, Switch } from \"react-router-dom\";\r\nimport { CashierUserRolesPage } from \"./userRoles/CashierUserRolesPage\";\r\nimport { OfficeUserRolesPage } from \"./userRoles/OfficeUserRolesPage\";\r\nimport { CodeListsPage } from \"./codeLists/CodeListsPage\";\r\nimport { ChangePasswordPage } from \"./changePassword/ChangePasswordPage\";\r\nimport { ExportPage } from \"./export/ExportPage\";\r\nimport { YourProfilePage } from \"./yourProfile/YourProfilePage\";\r\nimport YourCompanyPage from \"./yourCompany/YourCompanyPage\";\r\nimport { CashiersPage } from \"./cashiers/CashiersPage\";\r\nimport { AppPage } from \"./app/AppPage\";\r\nimport ImportPage from \"./import/ImportPage\";\r\nimport { LayoutSplashScreen, ContentRoute } from \"../../../../_metronic/layout\";\r\nimport { hasRoleForFunctionality } from \"../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../enum/userFunctionalityE\"\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport default function UserRolePage() {\r\n const { user } = useSelector(state => state.auth);\r\n\r\n return (\r\n }>\r\n \r\n {\r\n /* Redirect from eCommerce root URL to /customers */\r\n \r\n }\r\n\r\n \r\n\r\n \r\n\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.PregledVlogZaBlagajniskePravice, UserFunctionalityE.UrediVlogeZaBlagajniskePravice]) && (\r\n \r\n )}\r\n \r\n {hasRoleForFunctionality(user, [UserFunctionalityE.PregledVlogZaPisarniskePravice, UserFunctionalityE.UrediVlogeZaPisarniskePravice]) && (\r\n \r\n )}\r\n\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.PregledSifrantov, UserFunctionalityE.UrediSifrante]) && (\r\n \r\n )}\r\n\r\n \r\n\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.PregledVasegaPodjetja, UserFunctionalityE.UrediVasePodjetje]) && (\r\n \r\n )}\r\n\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.PregledDavcnihBlagajn, UserFunctionalityE.UrediDavcneBlagajne]) && (\r\n \r\n )}\r\n\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.UrediIzdelke, UserFunctionalityE.UrediInventurnePopise]) && (\r\n \r\n )}\r\n\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.Izvozi]) && (\r\n \r\n )}\r\n\r\n\r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { LoadingDialog } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function OrganizationsLoadingDialog() {\r\n const intl = useIntl();\r\n // Organizations Redux state\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.organizations.listLoading }),\r\n shallowEqual\r\n );\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading]);\r\n return ;\r\n}\r\n","import * as requestFromServer from \"./organizationsCrud\";\r\nimport { organizationsSlice, callTypes } from \"./organizationsSlice\";\r\n\r\nconst { actions } = organizationsSlice;\r\n\r\nexport const fetchOrganizations = queryParams => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .findOrganizations(queryParams)\r\n .then(response => {\r\n const { totalCount, entities } = response.data;\r\n dispatch(actions.organizationsFetched({ totalCount, entities }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find organizations\";\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\nexport const fetchOrganization = id => dispatch => {\r\n if (!id) {\r\n return dispatch(actions.organizationFetched({ organizationForEdit: undefined }));\r\n }\r\n\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .getOrganizationById(id)\r\n .then(response => {\r\n const organization = response.data.model;\r\n dispatch(actions.organizationFetched({ organizationForEdit: organization }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find organization\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\n\r\nexport const updateOrganization = organization => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .updateOrganization(organization)\r\n .then(() => {\r\n dispatch(actions.organizationUpdated({ organization }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't update organization\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\n","import axios from \"axios\";\r\n\r\n// Method from server should return QueryResultsModel(items: any[], totalsCount: number)\r\n// items => filtered/sorted result\r\nexport function findOrganizations(queryParams) {\r\n return axios.post(\"/api/organization/find\", queryParams);\r\n}\r\n\r\nexport function getOrganizationById(id) {\r\n return axios.get(\"/api/organization/\" + id);\r\n}\r\n\r\n// UPDATE => PUT: update the user on the server\r\nexport function updateOrganization(organization) {\r\n return axios.put(\"/api/organization/\" + organization.id, organization);\r\n}\r\n\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useIntl } from \"react-intl\";\r\n\r\nexport function OrganizationEditDialogHeader({ id }) {\r\n const intl = useIntl();\r\n // Organizations Redux state\r\n const { organizationForEdit, actionsLoading } = useSelector(\r\n (state) => ({\r\n organizationForEdit: state.organizations.organizationForEdit,\r\n actionsLoading: state.organizations.actionsLoading,\r\n }),\r\n shallowEqual\r\n );\r\n\r\n const [title, setTitle] = useState(\"\");\r\n // Title couting\r\n useEffect(() => {\r\n let _title = id ? \"\" : intl.formatMessage({ id: \"AUTH.ORGANIZATION.NEW\" }) ;\r\n if (organizationForEdit && id) {\r\n _title = intl.formatMessage({ id: \"AUTH.ORGANIZATION.EDIT\" }) + ` '${organizationForEdit.name}'`;\r\n }\r\n\r\n setTitle(_title);\r\n // eslint-disable-next-line\r\n }, [organizationForEdit, actionsLoading]);\r\n\r\n return (\r\n <>\r\n {actionsLoading && }\r\n \r\n {title}\r\n \r\n \r\n );\r\n}\r\n","// Form is based on Formik\r\n// Data validation is based on Yup\r\n// Please, be familiar with article first:\r\n// https://hackernoon.com/react-form-validation-with-formik-and-yup-8b76bda62e10\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { Formik, Form, Field } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport {\r\n Input,\r\n} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport ErrorPopup from \"../../../../Helpers/ErrorPopup\"\r\nimport InputCount from '../../../../../components/InputCount'\r\nimport { CheckPermissions, hasRoleForFunctionality } from \"../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../enum/userFunctionalityE\"\r\nimport { useSelector } from \"react-redux\";\r\nimport { onlyDigits } from \"../../../../../util/Util\";\r\n\r\nexport function OrganizationEditForm({\r\n saveOrganization,\r\n organization,\r\n actionsLoading,\r\n onHide,\r\n}) {\r\n const { user } = useSelector(state => state.auth);\r\n const intl = useIntl();\r\n const [errorMessage, setErrorMessage] = useState(\"\");\r\n const [errorOpen, setErrorOpen] = useState(false);\r\n const [init, setInit] = useState(false);\r\n const [cashierUserCount, setCashierUserCount] = useState(organization != undefined && organization != null ? organization.cashierUserCount : 1);\r\n const [officeUserCount, setOfficeUserCount] = useState(organization != undefined && organization != null ? organization.officeUserCount : 1);\r\n const [cashierCount, setCashierCount] = useState(organization != undefined && organization != null ? organization.cashierCount : 1);\r\n useEffect(() => {\r\n setCashierUserCount(organization != undefined && organization != null ? organization.cashierUserCount : 1);\r\n setOfficeUserCount(organization != undefined && organization != null ? organization.officeUserCount : 1);\r\n setCashierCount(organization != undefined && organization != null ? organization.cashierCount : 1);\r\n }, [user, organization]);\r\n var readOnly = !hasRoleForFunctionality(user, [UserFunctionalityE.Organizacije]);\r\n\r\n\r\n return (\r\n <>\r\n {\r\n var obj = {\r\n id: values.id,\r\n appModuleSales: values.appModuleSales,\r\n appModulePurchase: values.appModulePurchase,\r\n appModuleSetting: values.appModuleSetting,\r\n appModuleAdministration: values.appModuleAdministration,\r\n officeUserCount: officeUserCount,\r\n cashierUserCount: cashierUserCount,\r\n cashierCount: cashierCount,\r\n active: values.active,\r\n confirmed: values.confirmed,\r\n //not save\r\n name: values.name,\r\n taxNumber: values.taxNumber,\r\n taxDuty: values.taxDuty,\r\n address: values.address,\r\n postCode: values.postCode,\r\n postTitle: values.postTitle,\r\n invoiceSendToMail: values.invoiceSendToMail,\r\n readOnly: values.readOnly,\r\n cubic: values.cubic,\r\n contractId: values.contractId,\r\n notSentToFurs: values.notSentToFurs\r\n };\r\n saveOrganization(obj);\r\n }}\r\n >\r\n {({ handleSubmit, errors, values }) => (\r\n <>\r\n \r\n {actionsLoading && (\r\n
\r\n
\r\n
\r\n )}\r\n {!actionsLoading && (\r\n
\r\n
\r\n {/* Login */}\r\n
\r\n \r\n \r\n
\r\n {/* First Name */}\r\n
\r\n \r\n \r\n
\r\n {/* Last Name */}\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n {/* Login */}\r\n
\r\n \r\n \r\n
\r\n {/* First Name */}\r\n
\r\n \r\n \r\n
\r\n {/* Last Name */}\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n {/* Login */}\r\n
\r\n \r\n \r\n
\r\n {/* First Name */}\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n

\r\n {values.invoiceSendToMail && (\r\n \r\n )}\r\n {!values.invoiceSendToMail && (\r\n \r\n )}\r\n\r\n

\r\n\r\n {values.invoiceSendToMail && (\r\n
\r\n {/* Login */}\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n )}\r\n\r\n {!values.invoiceSendToMail && (\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\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 setOfficeUserCount(val);\r\n }}\r\n />\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n {\r\n setCashierUserCount(val);\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 setCashierCount(val);\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\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 {!actionsLoading && (\r\n \r\n handleSubmit()}\r\n className=\"btn btn-primary btn-elevate\"\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n setErrorOpen(false)} />\r\n \r\n );\r\n}\r\n","export const defaultSorted = [{ dataField: \"id\", order: \"asc\" }];\r\nexport const sizePerPageList = [\r\n { text: \"10\", value: 10 },\r\n { text: \"25\", value: 25 },\r\n { text: \"50\", value: 50 }\r\n];\r\nexport const initialFilter = {\r\n status: 0,\r\n query: \"\",\r\n sortOrder: \"asc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25\r\n};\r\n","import React, {createContext, useContext, useState, useCallback} from \"react\";\r\nimport {isEqual, isFunction} from \"lodash\";\r\nimport {initialFilter} from \"./OrganizationsUIHelpers\";\r\n\r\nconst OrganizationsUIContext = createContext();\r\n\r\nexport function useOrganizationsUIContext() {\r\n return useContext(OrganizationsUIContext);\r\n}\r\n\r\nexport const OrganizationsUIConsumer = OrganizationsUIContext.Consumer;\r\n\r\nexport function OrganizationsUIProvider({organizationsUIEvents, children}) {\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n const initOrganization = {\r\n id:-1,\r\n appModuleSales: false,\r\n appModulePurchase: false,\r\n appModuleSetting: false,\r\n appModuleAdministration: false,\r\n officeUserCount: 0,\r\n cashierUserCount: 0,\r\n cashierCount: 0,\r\n active: false,\r\n confirmed: false,\r\n //not save\r\n name: '',\r\n town: '',\r\n taxNumber: '',\r\n taxDuty: false,\r\n address: '',\r\n postCode: '',\r\n postTitle: '',\r\n registrationNumber: '',\r\n invoiceSendToMail: false,\r\n readOnly: false,\r\n contractId: '',\r\n invoiceAddress: '',\r\n invoicePostCode: '',\r\n invoicePostTitle:''\r\n };\r\n\r\n const value = {\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initOrganization,\r\n newOrganizationButtonClick: organizationsUIEvents.newOrganizationButtonClick,\r\n openEditOrganizationDialog: organizationsUIEvents.openEditOrganizationDialog\r\n };\r\n\r\n return {children};\r\n}","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/organizations/organizationsActions\";\r\nimport { OrganizationEditDialogHeader } from \"./OrganizationEditDialogHeader\";\r\nimport { OrganizationEditForm } from \"./OrganizationEditForm\";\r\nimport { useOrganizationsUIContext } from \"../OrganizationsUIContext\";\r\n\r\nexport function OrganizationEditDialog({ id, show, onHide }) {\r\n // Organizations UI Context\r\n const organizationsUIContext = useOrganizationsUIContext();\r\n const organizationsUIProps = useMemo(() => {\r\n return {\r\n initOrganization: organizationsUIContext.initOrganization,\r\n };\r\n }, [organizationsUIContext]);\r\n\r\n // Organizations Redux state\r\n const dispatch = useDispatch();\r\n const { actionsLoading, organizationForEdit } = useSelector(\r\n (state) => ({\r\n actionsLoading: state.organizations.actionsLoading,\r\n organizationForEdit: state.organizations.organizationForEdit\r\n }),\r\n shallowEqual\r\n );\r\n\r\n useEffect(() => {\r\n dispatch(actions.fetchOrganization(id));\r\n }, [id, dispatch]);\r\n\r\n // server request for saving organization\r\n const saveOrganization = (organization) => {\r\n if (!id) {\r\n } else {\r\n // server request for updating organization\r\n dispatch(actions.updateOrganization(organization)).then(() => onHide());\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useMemo } from \"react\";\r\nimport { Formik } from \"formik\";\r\nimport { isEqual } from \"lodash\";\r\nimport { useOrganizationsUIContext } from \"../OrganizationsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nconst prepareFilter = (queryParams, values) => {\r\n const { searchText, status } = values;\r\n const newQueryParams = { ...queryParams };\r\n \r\n newQueryParams.query = searchText;\r\n newQueryParams.status = status !== \"\" ? +status : undefined;\r\n return newQueryParams;\r\n};\r\n\r\nexport function OrganizationsFilter({ listLoading }) {\r\n const intl = useIntl();\r\n\r\n // Organizations UI Context\r\n const organizationsUIContext = useOrganizationsUIContext();\r\n const organizationsUIProps = useMemo(() => {\r\n return {\r\n queryParams: organizationsUIContext.queryParams,\r\n setQueryParams: organizationsUIContext.setQueryParams,\r\n };\r\n }, [organizationsUIContext]);\r\n\r\n // queryParams, setQueryParams,\r\n const applyFilter = (values) => {\r\n const newQueryParams = prepareFilter(organizationsUIProps.queryParams, values);\r\n if (!isEqual(newQueryParams, organizationsUIProps.queryParams)) {\r\n newQueryParams.pageNumber = 1;\r\n // update list by queryParams\r\n organizationsUIProps.setQueryParams(newQueryParams);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {\r\n applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n\r\n
\r\n {\r\n setFieldValue(\"status\", e.target.value);\r\n handleSubmit();\r\n }}\r\n onBlur={handleBlur}\r\n value={values.status}\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 setFieldValue(\"searchText\", e.target.value);\r\n handleSubmit();\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","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../../../_metronic/_helpers\";\r\nimport { CheckPermissions } from \"../../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../../enum/userFunctionalityE\"\r\n\r\n\r\nexport function ActionsColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n { openEditOrganizationDialog }\r\n) {\r\n return (\r\n <>\r\n openEditOrganizationDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n <> \r\n \r\n );\r\n}\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport function ActiveColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n) {\r\n\r\n return (\r\n <>\r\n {cellContent &&\r\n }\r\n\r\n {!cellContent &&\r\n }\r\n \r\n \r\n );\r\n}\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport Moment from 'react-moment';\r\n\r\nexport function CreatedDateColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n) {\r\n return (\r\n <>\r\n \r\n {cellContent}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport Moment from 'react-moment';\r\n\r\nexport function LastLoginColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n) {\r\n var date = new Date(cellContent);\r\n return (\r\n <>\r\n \r\n {cellContent}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport function ConfirmedColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n) {\r\n\r\n return (\r\n <>\r\n {cellContent &&\r\n }\r\n\r\n {!cellContent &&\r\n }\r\n \r\n \r\n );\r\n}\r\n","// React bootstrap table next =>\r\n// DOCS: https://react-bootstrap-table.github.io/react-bootstrap-table2/docs/\r\n// STORYBOOK: https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html\r\nimport React, { useEffect, useMemo } from \"react\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory, {\r\n PaginationProvider,\r\n} from \"react-bootstrap-table2-paginator\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/organizations/organizationsActions\";\r\nimport {\r\n getSelectRow,\r\n getHandlerTableChange,\r\n NoRecordsFoundMessage,\r\n PleaseWaitMessage,\r\n sortCaret,\r\n headerSortingClasses,\r\n} from \"../../../../../../_metronic/_helpers\";\r\nimport * as uiHelpers from \"../OrganizationsUIHelpers\";\r\nimport * as columnFormatters from \"./column-formatters\";\r\nimport { Pagination } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useOrganizationsUIContext } from \"../OrganizationsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function OrganizationsTable() {\r\n const intl = useIntl();\r\n // Organizations UI Context\r\n const organizationsUIContext = useOrganizationsUIContext();\r\n const organizationsUIProps = useMemo(() => {\r\n return {\r\n ids: organizationsUIContext.ids,\r\n setIds: organizationsUIContext.setIds,\r\n queryParams: organizationsUIContext.queryParams,\r\n setQueryParams: organizationsUIContext.setQueryParams,\r\n openEditOrganizationDialog: organizationsUIContext.openEditOrganizationDialog\r\n };\r\n }, [organizationsUIContext]);\r\n\r\n // Getting curret state of organizations list from store (Redux)\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.organizations }),\r\n shallowEqual\r\n );\r\n const { totalCount, entities, listLoading } = currentState;\r\n // Organizations Redux state\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n // clear selections list\r\n organizationsUIProps.setIds([]);\r\n // server call by queryParams\r\n dispatch(actions.fetchOrganizations(organizationsUIProps.queryParams));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [organizationsUIProps.queryParams, dispatch]);\r\n\r\n // Table columns\r\n const columns = [\r\n {\r\n dataField: \"id\",\r\n text: \"#\",\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"name\",\r\n text: intl.formatMessage({ id: \"AUTH.INPUT.TITLE\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"taxNumber\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.TAXCODE\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"confirmed\",\r\n text: intl.formatMessage({ id: \"ECOMMERCE.COMMON.CONFIRMED\" }),\r\n formatter: columnFormatters.ConfirmedColumnFormatter,\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"lastLogin\",\r\n text: intl.formatMessage({ id: \"ECOMMERCE.COMMON.LAST_LOGIN\" }),\r\n formatter: columnFormatters.LastLoginColumnFormatter,\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"active\",\r\n text: intl.formatMessage({ id: \"ECOMMERCE.COMMON.ACTIVE\" }),\r\n formatter: columnFormatters.ActiveColumnFormatter,\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"createdDate\",\r\n text: intl.formatMessage({ id: \"ECOMMERCE.COMMON.CREATED_DATE\" }),\r\n formatter: columnFormatters.CreatedDateColumnFormatter,\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"action\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.ACTIONS\" }),\r\n formatter: columnFormatters.ActionsColumnFormatter,\r\n formatExtraData: {\r\n openEditOrganizationDialog: organizationsUIProps.openEditOrganizationDialog\r\n },\r\n classes: \"text-right pr-0\",\r\n headerClasses: \"text-right pr-3\",\r\n style: {\r\n minWidth: \"100px\",\r\n },\r\n },\r\n ];\r\n\r\n const customTotal = (from, to, size) => (\r\n \r\n {from} - { to} {size} \r\n \r\n );\r\n\r\n // Table pagination properties\r\n const paginationOptions = {\r\n custom: true,\r\n totalSize: totalCount,\r\n sizePerPageList: uiHelpers.sizePerPageList,\r\n sizePerPage: organizationsUIProps.queryParams.pageSize,\r\n page: organizationsUIProps.queryParams.pageNumber,\r\n paginationTotalRenderer: customTotal,\r\n };\r\n return (\r\n <>\r\n \r\n {({ paginationProps, paginationTableProps }) => {\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","import React, { useMemo } from \"react\";\r\nimport { useOrganizationsUIContext } from \"../OrganizationsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function OrganizationsGrouping() {\r\n const intl = useIntl();\r\n\r\n // Organizations UI Context\r\n const organizationsUIContext = useOrganizationsUIContext();\r\n const organizationsUIProps = useMemo(() => {\r\n return {\r\n ids: organizationsUIContext.ids,\r\n setIds: organizationsUIContext.setIds,\r\n openDeleteOrganizationsDialog: organizationsUIContext.openDeleteOrganizationsDialog\r\n };\r\n }, [organizationsUIContext]);\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","import React, { useMemo } from \"react\";\r\nimport {\r\n Card,\r\n CardBody,\r\n CardHeader,\r\n CardHeaderToolbar,\r\n} from \"../../../../../_metronic/_partials/controls\";\r\nimport { OrganizationsFilter } from \"./organizations-filter/OrganizationsFilter\";\r\nimport { OrganizationsTable } from \"./organizations-table/OrganizationsTable\";\r\nimport { OrganizationsGrouping } from \"./organizations-grouping/OrganizationsGrouping\";\r\nimport { useOrganizationsUIContext } from \"./OrganizationsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function OrganizationsCard() {\r\n const intl = useIntl();\r\n const organizationsUIContext = useOrganizationsUIContext();\r\n const organizationsUIProps = useMemo(() => {\r\n return {\r\n ids: organizationsUIContext.ids,\r\n newOrganizationButtonClick: organizationsUIContext.newOrganizationButtonClick,\r\n };\r\n }, [organizationsUIContext]);\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 {organizationsUIProps.ids.length > 0 && }\r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\nimport { OrganizationsLoadingDialog } from \"./organizations-loading-dialog/OrganizationsLoadingDialog\";\r\nimport { OrganizationEditDialog } from \"./organization-edit-dialog/OrganizationEditDialog\";\r\nimport { OrganizationsUIProvider } from \"./OrganizationsUIContext\";\r\nimport { OrganizationsCard } from \"./OrganizationsCard\";\r\n\r\nexport function OrganizationsPage({ history }) {\r\n const organizationsUIEvents = {\r\n openEditOrganizationDialog: (id) => {\r\n history.push(`/admin/organizations/${id}/edit`);\r\n },\r\n }\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/admin/organizations\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { LoadingDialog } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function ActiveUsersLoadingDialog() {\r\n const intl = useIntl();\r\n // ActiveUsers Redux state\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.activeUsers.listLoading }),\r\n shallowEqual\r\n );\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading]);\r\n return ;\r\n}\r\n","import * as requestFromServer from \"./activeUsersCrud\";\r\nimport { activeUsersSlice, callTypes } from \"./activeUsersSlice\";\r\n\r\nconst { actions } = activeUsersSlice;\r\n\r\nexport const fetchActiveUsers = queryParams => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .findActiveUsers(queryParams)\r\n .then(response => {\r\n const { totalCount, entities } = response.data;\r\n dispatch(actions.activeUsersFetched({ totalCount, entities }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find activeUsers\";\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\n\r\nexport const login = reason => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .login(reason).then(response => {\r\n const { token } = response.data;\r\n dispatch(actions.loginFetched({ token }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't update activeUser\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\n","import axios from \"axios\";\r\n\r\n// Method from server should return QueryResultsModel(items: any[], totalsCount: number)\r\n// items => filtered/sorted result\r\nexport function findActiveUsers(queryParams) {\r\n return axios.post(\"/api/activeUser/find\", queryParams);\r\n}\r\n\r\nexport function login(reason) {\r\n return axios.post(\"/api/activeUser/login/\", reason);\r\n}\r\n\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useIntl } from \"react-intl\";\r\n\r\nexport function ActiveUserEditDialogHeader({ id }) {\r\n const intl = useIntl();\r\n // ActiveUsers Redux state\r\n const { activeUserForEdit, actionsLoading } = useSelector(\r\n (state) => ({\r\n activeUserForEdit: state.activeUsers.activeUserForEdit,\r\n actionsLoading: state.activeUsers.actionsLoading,\r\n }),\r\n shallowEqual\r\n );\r\n\r\n const [title, setTitle] = useState(\"\");\r\n // Title couting\r\n useEffect(() => {\r\n \r\n setTitle(intl.formatMessage({ id: \"REASON_FOR_LOGIN\" }));\r\n\r\n // eslint-disable-next-line\r\n }, [activeUserForEdit, actionsLoading]);\r\n\r\n return (\r\n <>\r\n {actionsLoading && }\r\n \r\n {title}\r\n \r\n \r\n );\r\n}\r\n","// Form is based on Formik\r\n// Data validation is based on Yup\r\n// Please, be familiar with article first:\r\n// https://hackernoon.com/react-form-validation-with-formik-and-yup-8b76bda62e10\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { Formik, Form, Field } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport {\r\n Input,\r\n} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport ErrorPopup from \"../../../../Helpers/ErrorPopup\"\r\nimport InputCount from '../../../../../components/InputCount'\r\nimport { CheckPermissions, hasRoleForFunctionality } from \"../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../enum/userFunctionalityE\"\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport function ActiveUserEditForm({\r\n saveReasonLogin,\r\n reason,\r\n actionsLoading,\r\n onHide,\r\n}) {\r\n const { user } = useSelector(state => state.auth);\r\n const intl = useIntl();\r\n \r\n useEffect(() => {\r\n \r\n }, [user]);\r\n\r\n var readOnly = !hasRoleForFunctionality(user, [UserFunctionalityE.AktivniUporabniki]);\r\n\r\n // Validation schema\r\n const ActiveUserSchema = Yup.object().shape({\r\n reason: Yup.string()\r\n .max(500, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_500_SYMBOLS' }))\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n }))\r\n });\r\n\r\n return (\r\n <>\r\n {\r\n \r\n saveReasonLogin(values);\r\n }}\r\n >\r\n {({ handleSubmit, errors, values }) => (\r\n <>\r\n \r\n {actionsLoading && (\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 handleSubmit()}\r\n className=\"btn btn-primary btn-elevate\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\n","export const defaultSorted = [{ dataField: \"id\", order: \"asc\" }];\r\nexport const sizePerPageList = [\r\n { text: \"10\", value: 10 },\r\n { text: \"25\", value: 25 },\r\n { text: \"50\", value: 50 }\r\n];\r\nexport const initialFilter = {\r\n status: 0,\r\n query: \"\",\r\n sortOrder: \"asc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25\r\n};\r\n","import React, {createContext, useContext, useState, useCallback} from \"react\";\r\nimport {isEqual, isFunction} from \"lodash\";\r\nimport {initialFilter} from \"./ActiveUsersUIHelpers\";\r\n\r\nconst ActiveUsersUIContext = createContext();\r\n\r\nexport function useActiveUsersUIContext() {\r\n return useContext(ActiveUsersUIContext);\r\n}\r\n\r\nexport const ActiveUsersUIConsumer = ActiveUsersUIContext.Consumer;\r\n\r\nexport function ActiveUsersUIProvider({activeUsersUIEvents, children}) {\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\nconst initReason = {\r\n id: -1,\r\n reason : \"\"\r\n };\r\n\r\n const value = {\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initReason,\r\n newActiveUserButtonClick: activeUsersUIEvents.newActiveUserButtonClick,\r\n openEditActiveUserDialog: activeUsersUIEvents.openEditActiveUserDialog\r\n };\r\n\r\n return {children};\r\n}","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/activeUsers/activeUsersActions\";\r\nimport { ActiveUserEditDialogHeader } from \"./ActiveUserEditDialogHeader\";\r\nimport { ActiveUserEditForm } from \"./ActiveUserEditForm\";\r\nimport { useActiveUsersUIContext } from \"../ActiveUsersUIContext\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nexport function ActiveUserEditDialog({ id, show, onHide }) {\r\n // ActiveUsers UI Context\r\n const activeUsersUIContext = useActiveUsersUIContext();\r\n const activeUsersUIProps = useMemo(() => {\r\n return {\r\n initReason: activeUsersUIContext.initReason,\r\n };\r\n }, [activeUsersUIContext]);\r\n const history = useHistory();\r\n\r\n // ActiveUsers Redux state\r\n const dispatch = useDispatch();\r\n const { actionsLoading, token } = useSelector(\r\n (state) => ({\r\n actionsLoading: state.activeUsers.actionsLoading,\r\n token: state.activeUsers.token\r\n }),\r\n shallowEqual\r\n );\r\n\r\n\r\n // server request for saving activeUser\r\n const saveReasonLogin = (reason) => {\r\n reason.id = id;\r\n dispatch(actions.login(reason)).then(() => {\r\n onHide();\r\n history.push(\"/relogin\");\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","import React, { useMemo } from \"react\";\r\nimport { Formik } from \"formik\";\r\nimport { isEqual } from \"lodash\";\r\nimport { useActiveUsersUIContext } from \"../ActiveUsersUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nconst prepareFilter = (queryParams, values) => {\r\n const { searchText } = values;\r\n const newQueryParams = { ...queryParams };\r\n \r\n newQueryParams.query = searchText;\r\n return newQueryParams;\r\n};\r\n\r\nexport function ActiveUsersFilter({ listLoading }) {\r\n const intl = useIntl();\r\n\r\n // ActiveUsers UI Context\r\n const activeUsersUIContext = useActiveUsersUIContext();\r\n const activeUsersUIProps = useMemo(() => {\r\n return {\r\n queryParams: activeUsersUIContext.queryParams,\r\n setQueryParams: activeUsersUIContext.setQueryParams,\r\n };\r\n }, [activeUsersUIContext]);\r\n\r\n // queryParams, setQueryParams,\r\n const applyFilter = (values) => {\r\n const newQueryParams = prepareFilter(activeUsersUIProps.queryParams, values);\r\n if (!isEqual(newQueryParams, activeUsersUIProps.queryParams)) {\r\n newQueryParams.pageNumber = 1;\r\n // update list by queryParams\r\n activeUsersUIProps.setQueryParams(newQueryParams);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {\r\n applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n\r\n
\r\n {\r\n setFieldValue(\"searchText\", e.target.value);\r\n handleSubmit();\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","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../../../_metronic/_helpers\";\r\nimport { CheckPermissions } from \"../../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../../enum/userFunctionalityE\"\r\n\r\n\r\nexport function ActionsColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n { openEditActiveUserDialog }\r\n) {\r\n return (\r\n <>\r\n openEditActiveUserDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n <> \r\n \r\n );\r\n}\r\n","// React bootstrap table next =>\r\n// DOCS: https://react-bootstrap-table.github.io/react-bootstrap-table2/docs/\r\n// STORYBOOK: https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html\r\nimport React, { useEffect, useMemo } from \"react\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory, {\r\n PaginationProvider,\r\n} from \"react-bootstrap-table2-paginator\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/activeUsers/activeUsersActions\";\r\nimport {\r\n getSelectRow,\r\n getHandlerTableChange,\r\n NoRecordsFoundMessage,\r\n PleaseWaitMessage,\r\n sortCaret,\r\n headerSortingClasses,\r\n} from \"../../../../../../_metronic/_helpers\";\r\nimport * as uiHelpers from \"../ActiveUsersUIHelpers\";\r\nimport * as columnFormatters from \"./column-formatters\";\r\nimport { Pagination } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useActiveUsersUIContext } from \"../ActiveUsersUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function ActiveUsersTable() {\r\n const intl = useIntl();\r\n // ActiveUsers UI Context\r\n const activeUsersUIContext = useActiveUsersUIContext();\r\n const activeUsersUIProps = useMemo(() => {\r\n return {\r\n ids: activeUsersUIContext.ids,\r\n setIds: activeUsersUIContext.setIds,\r\n queryParams: activeUsersUIContext.queryParams,\r\n setQueryParams: activeUsersUIContext.setQueryParams,\r\n openEditActiveUserDialog: activeUsersUIContext.openEditActiveUserDialog\r\n };\r\n }, [activeUsersUIContext]);\r\n\r\n // Getting curret state of activeUsers list from store (Redux)\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.activeUsers }),\r\n shallowEqual\r\n );\r\n const { totalCount, entities, listLoading } = currentState;\r\n // ActiveUsers Redux state\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n // clear selections list\r\n activeUsersUIProps.setIds([]);\r\n // server call by queryParams\r\n dispatch(actions.fetchActiveUsers(activeUsersUIProps.queryParams));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [activeUsersUIProps.queryParams, dispatch]);\r\n\r\n // Table columns\r\n const columns = [\r\n {\r\n dataField: \"id\",\r\n text: \"#\",\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"userName\",\r\n text: intl.formatMessage({ id: \"AUTH.INPUT.USERNAME\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"firstName\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.FIRSTNAME\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"lastName\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.LASTNAME\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"phone\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.PHONE\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"companyName\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.COMPANY\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"taxNumber\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.TAXCODE\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"action\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.ACTIONS\" }),\r\n formatter: columnFormatters.ActionsColumnFormatter,\r\n formatExtraData: {\r\n openEditActiveUserDialog: activeUsersUIProps.openEditActiveUserDialog\r\n },\r\n classes: \"text-right pr-0\",\r\n headerClasses: \"text-right pr-3\",\r\n style: {\r\n minWidth: \"100px\",\r\n },\r\n },\r\n ];\r\n\r\n const customTotal = (from, to, size) => (\r\n \r\n {from} - { to} {size} \r\n \r\n );\r\n\r\n // Table pagination properties\r\n const paginationOptions = {\r\n custom: true,\r\n totalSize: totalCount,\r\n sizePerPageList: uiHelpers.sizePerPageList,\r\n sizePerPage: activeUsersUIProps.queryParams.pageSize,\r\n page: activeUsersUIProps.queryParams.pageNumber,\r\n paginationTotalRenderer: customTotal,\r\n };\r\n return (\r\n <>\r\n \r\n {({ paginationProps, paginationTableProps }) => {\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","import React, { useMemo } from \"react\";\r\nimport { useActiveUsersUIContext } from \"../ActiveUsersUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function ActiveUsersGrouping() {\r\n const intl = useIntl();\r\n\r\n // ActiveUsers UI Context\r\n const activeUsersUIContext = useActiveUsersUIContext();\r\n const activeUsersUIProps = useMemo(() => {\r\n return {\r\n ids: activeUsersUIContext.ids,\r\n setIds: activeUsersUIContext.setIds,\r\n openDeleteActiveUsersDialog: activeUsersUIContext.openDeleteActiveUsersDialog\r\n };\r\n }, [activeUsersUIContext]);\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","import React, { useMemo } from \"react\";\r\nimport {\r\n Card,\r\n CardBody,\r\n CardHeader,\r\n CardHeaderToolbar,\r\n} from \"../../../../../_metronic/_partials/controls\";\r\nimport { ActiveUsersFilter } from \"./activeUsers-filter/ActiveUsersFilter\";\r\nimport { ActiveUsersTable } from \"./activeUsers-table/ActiveUsersTable\";\r\nimport { ActiveUsersGrouping } from \"./activeUsers-grouping/ActiveUsersGrouping\";\r\nimport { useActiveUsersUIContext } from \"./ActiveUsersUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function ActiveUsersCard() {\r\n const intl = useIntl();\r\n const activeUsersUIContext = useActiveUsersUIContext();\r\n const activeUsersUIProps = useMemo(() => {\r\n return {\r\n ids: activeUsersUIContext.ids,\r\n newActiveUserButtonClick: activeUsersUIContext.newActiveUserButtonClick,\r\n };\r\n }, [activeUsersUIContext]);\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 {activeUsersUIProps.ids.length > 0 && }\r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\nimport { ActiveUsersLoadingDialog } from \"./activeUsers-loading-dialog/ActiveUsersLoadingDialog\";\r\nimport { ActiveUserEditDialog } from \"./activeUser-edit-dialog/ActiveUserEditDialog\";\r\nimport { ActiveUsersUIProvider } from \"./ActiveUsersUIContext\";\r\nimport { ActiveUsersCard } from \"./ActiveUsersCard\";\r\n\r\nexport function ActiveUsersPage({ history }) {\r\n const activeUsersUIEvents = {\r\n openEditActiveUserDialog: (id) => {\r\n history.push(`/admin/active_users/${id}/connect`);\r\n },\r\n }\r\n return (\r\n \r\n \r\n\r\n \r\n {({ history, match }) => (\r\n\r\n {\r\n history.push(\"/admin/active_users\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { Suspense } from \"react\";\r\nimport { Redirect, Switch } from \"react-router-dom\";\r\nimport { OrganizationsPage } from \"./organizations/OrganizationsPage\";\r\nimport { ActiveUsersPage } from \"./activeUsers/ActiveUsersPage\";\r\nimport { LayoutSplashScreen, ContentRoute } from \"../../../../_metronic/layout\";\r\nimport { hasRoleForFunctionality } from \"../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../enum/userFunctionalityE\"\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport default function AdminPage() {\r\n const { user } = useSelector(state => state.auth);\r\n\r\n return (\r\n }>\r\n \r\n {\r\n /* Redirect from eCommerce root URL to /customers */\r\n \r\n }\r\n\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.AktivniUporabniki]) && (\r\n \r\n )}\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.Organizacije]) && (\r\n \r\n )}\r\n\r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { LoadingDialog } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function CustomersLoadingDialog() {\r\n const intl = useIntl();\r\n // Customers Redux state\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.customers.listLoading }),\r\n shallowEqual\r\n );\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading]);\r\n return ;\r\n}\r\n","import * as requestFromServer from \"./customersCrud\";\r\nimport { customersSlice, callTypes } from \"./customersSlice\";\r\n\r\nconst {actions} = customersSlice;\r\n\r\nexport const fetchCustomers = queryParams => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .findCustomers(queryParams)\r\n .then(response => {\r\n const { totalCount, entities } = response.data;\r\n dispatch(actions.customersFetched({ totalCount, entities }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find customers\";\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\nexport const fetchCustomer = id => dispatch => {\r\n if (!id) {\r\n return dispatch(actions.customerFetched({ customerForEdit: undefined }));\r\n }\r\n\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .getCustomerById(id)\r\n .then(response => {\r\n const customer = response.data.model;\r\n dispatch(actions.customerFetched({ customerForEdit: customer }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find customer\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const deleteCustomer = id => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .deleteCustomer(id)\r\n .then(response => {\r\n dispatch(actions.customerDeleted({ id }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't delete customer\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const createCustomer = customerForCreation => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .createCustomer(customerForCreation)\r\n .then(response => {\r\n const { model } = response.data;\r\n dispatch(actions.customerCreated({ model }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't create customer\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const updateCustomer = customer => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .updateCustomer(customer)\r\n .then(() => {\r\n dispatch(actions.customerUpdated({ customer }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't update customer\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const deleteCustomers = ids => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .deleteCustomers(ids)\r\n .then(() => {\r\n dispatch(actions.customersDeleted({ ids }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't delete customers\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};","import axios from \"axios\";\r\n\r\nexport function checkIfCashierCustomerNameIsFree(applicationCustomerId, customerName) {\r\n applicationCustomerId = (applicationCustomerId == undefined || applicationCustomerId == null) ? -1 : applicationCustomerId;\r\n return axios.post(\"/api/customer/CheckIfCashierCustomerNameIsFree\", { applicationCustomerId, customerName });\r\n}\r\n\r\n// Method from server should return QueryResultsModel(items: any[], totalsCount: number)\r\n// items => filtered/sorted result\r\nexport function findCustomers(queryParams) {\r\n return axios.post(\"/api/customer/find\", queryParams );\r\n}\r\n\r\n// CREATE => POST: add a new customer to the server\r\nexport function createCustomer(customer) {\r\n return axios.post(\"/api/customer\", customer );\r\n}\r\n\r\nexport function getCustomerById(customerId) {\r\n return axios.get(\"/api/customer/\" + customerId );\r\n}\r\n\r\n// UPDATE => PUT: update the customer on the server\r\nexport function updateCustomer(customer) {\r\n return axios.put(\"/api/customer/\" + customer.id, customer);\r\n}\r\n\r\n// DELETE => delete the customer from the server\r\nexport function deleteCustomer(customerId) {\r\n return axios.delete(\"/api/customer/\" + customerId );\r\n}\r\n\r\n// DELETE Customers by ids\r\nexport function deleteCustomers(ids) {\r\n return axios.post(\"/api/customer/deleteCustomers\", { ids });\r\n}\r\n\r\nexport function findByTaxCode(taxcode) {\r\n return axios.post(\"/api/customer/FindByTaxCode\", { taxcode });\r\n}\r\n\r\nexport function checkIfCustomerYetExist(id, taxNumber) {\r\n return axios.post(\"/api/customer/checkIfCustomerYetExist\", {\r\n id: id == undefined ? -1 : id,\r\n taxNumber: taxNumber\r\n });\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useIntl } from \"react-intl\";\r\n\r\nexport function CustomerEditDialogHeader({ id }) {\r\n const intl = useIntl();\r\n // Customers Redux state\r\n const { customerForEdit, actionsLoading } = useSelector(\r\n (state) => ({\r\n customerForEdit: state.customers.customerForEdit,\r\n actionsLoading: state.customers.actionsLoading,\r\n }),\r\n shallowEqual\r\n );\r\n\r\n const [title, setTitle] = useState(\"\");\r\n // Title couting\r\n useEffect(() => {\r\n let _title = id ? \"\" : intl.formatMessage({ id: \"AUTH.CUSTOMER.NEW\" }) ;\r\n if (customerForEdit && id) {\r\n _title = intl.formatMessage({ id: \"AUTH.CUSTOMER.EDIT\" }) + ` '${customerForEdit.name}'`;\r\n }\r\n\r\n setTitle(_title);\r\n // eslint-disable-next-line\r\n }, [customerForEdit, actionsLoading]);\r\n\r\n return (\r\n <>\r\n {actionsLoading && }\r\n \r\n {title}\r\n \r\n \r\n );\r\n}\r\n","// *https://www.registers.service.gov.uk/registers/country/use-the-api*\r\nimport React, { useState, useEffect } from 'react';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport default function AutocompleteCountry(props) {\r\n const intl = useIntl();\r\n const [open, setOpen] = useState(false);\r\n const [options, setOptions] = useState([]);\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [value, setValue] = useState(props.value);\r\n const loading = open && options.length === 0;\r\n\r\n useEffect(() => {\r\n let active = true;\r\n \r\n if (!loading) {\r\n return undefined;\r\n }\r\n\r\n (async () => {\r\n const response = await fetch('/api/country/all');\r\n const result = await response.json();\r\n\r\n if (active) {\r\n setOptions(Object.keys(result.entities).map((key) => result.entities[key]));\r\n }\r\n })();\r\n\r\n return () => {\r\n active = false;\r\n };\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (!open) {\r\n setOptions([]);\r\n }\r\n }, [open]);\r\n\r\n\r\n return (\r\n <>\r\n {\r\n setOpen(true);\r\n }}\r\n onClose={() => {\r\n setOpen(false);\r\n }}\r\n value={props.value}\r\n getOptionSelected={(option, value) => option.id === value.id}\r\n getOptionLabel={(option) => option.title}\r\n options={options}\r\n loading={loading}\r\n onChange={(event, value) => { setValue(value); props.onChange(value); }}\r\n onInputChange={(event, value) => { setInputValue(value); }}\r\n renderInput={(params) => (\r\n \r\n {loading ? : null}\r\n {params.InputProps.endAdornment}\r\n \r\n ),\r\n }}\r\n />\r\n )}\r\n />\r\n \r\n );\r\n}\r\n","// Form is based on Formik\r\n// Data validation is based on Yup\r\n// Please, be familiar with article first:\r\n// https://hackernoon.com/react-form-validation-with-formik-and-yup-8b76bda62e10\r\nimport React, { useEffect, useState, useRef } from \"react\";\r\nimport { Modal, Button, InputGroup, Spinner } from \"react-bootstrap\";\r\nimport { Formik, Form, Field } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport {\r\n Input,\r\n} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport ErrorPopup from \"../../../../Helpers/ErrorPopup\"\r\nimport InfoPopup from \"../../../../Helpers/InfoPopup\"\r\nimport { CheckPermissions, hasRoleForFunctionality } from \"../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../enum/userFunctionalityE\"\r\nimport { useSelector } from \"react-redux\";\r\nimport ToggleButton from \"@material-ui/lab/ToggleButton\";\r\nimport ToggleButtonGroup from \"@material-ui/lab/ToggleButtonGroup\";\r\nimport AutocompletePost from '../../../../../components/AutocompletePost'\r\nimport AutocompleteCountry from '../../../../../components/AutocompleteCountry'\r\nimport { findByTaxCode, checkIfCustomerYetExist } from \"../../../_redux/customers/customersCrud\";\r\nimport { onlyDigits, decimal } from \"../../../../../util/Util\";\r\n\r\nexport function CustomerEditForm({\r\n saveCustomer,\r\n customer,\r\n actionsLoading,\r\n onHide,\r\n}) {\r\n const { user } = useSelector(state => state.auth);\r\n const intl = useIntl();\r\n const [isForeigner, setIsForeigner] = useState([customer != undefined ? customer.isForeigner : false]);\r\n const [errorMessage, setErrorMessage] = useState(\"\");\r\n const [errorOpen, setErrorOpen] = useState(false);\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n const [isLoadingAjpes, setIsLoadingAjpes] = useState(false);\r\n const ref = useRef(null);\r\n\r\n const [post, setPost] = useState(customer != undefined && customer.postCode != null ?\r\n { code: customer.postCode, title: customer.postTitle } : null);\r\n const [country, setCountry] = useState(customer != undefined && customer.countryId != null ?\r\n { id: customer.countryId, title: customer.countryTitle, isoCode: customer.countryIsoCode } : null);\r\n\r\n useEffect(() => {\r\n setPost(customer != undefined && customer.postCode != null ?\r\n { code: customer.postCode, title: customer.postTitle } : null);\r\n setCountry(customer != undefined && customer.countryId != null ?\r\n { id: customer.countryId, title: customer.countryTitle, isoCode: customer.countryIsoCode } : null);\r\n setIsForeigner([customer != undefined ? customer.isForeigner : false]);\r\n }, [user, customer]);\r\n\r\n var readOnly = !hasRoleForFunctionality(user, [UserFunctionalityE.UrediStranke]);\r\n\r\n // Validation schema\r\n const CustomerEditSchema = Yup.object().shape({\r\n name: Yup.string()\r\n .max(250, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_250_SYMBOLS' }))\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })),\r\n address: Yup.string()\r\n .max(250, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_250_SYMBOLS' }))\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })),\r\n registrationNumber: Yup.string()\r\n .max(10, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_10_SYMBOLS' })).nullable(),\r\n taxNumber: Yup.string()\r\n .max(50, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_50_SYMBOLS' }))\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n }))\r\n .test('validator', intl.formatMessage({ id: 'AJPES.GENERAL.COMPANY_EXISTS_YET' }), value => {\r\n return new Promise((resolve, reject) => {\r\n if (!isForeigner[0] && value != undefined && value != \"\" && value != null) {\r\n checkIfCustomerYetExist(customer.id, value)\r\n .then(({ data }) => {\r\n if (!data.didError) {\r\n resolve(!data.model);\r\n } else {\r\n resolve(false);\r\n }\r\n })\r\n .catch((e) => {\r\n resolve(false);\r\n });\r\n } else {\r\n resolve(true);\r\n }\r\n })\r\n }),\r\n discount: Yup.number()\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n }))\r\n .test('validator', intl.formatMessage({ id: 'DISCOUNT.BETWEEM_0_AND_100' }), value => {\r\n return new Promise((resolve, reject) => {\r\n var num = parseFloat(value);\r\n resolve(num >= 0 && num <= 100);\r\n })\r\n })\r\n ,\r\n paymentDeadline: Yup.number()\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n }))\r\n .test('validator', intl.formatMessage({ id: 'PAYMENT_DEADLINE.MORE_THEN_0' }), value => {\r\n return new Promise((resolve, reject) => {\r\n var num = parseFloat(value);\r\n resolve(num >= 0);\r\n })\r\n })\r\n });\r\n\r\n function handleChangeIsForeigner(event, value) {\r\n var res = event.currentTarget.value == \"true\";\r\n setIsForeigner([res]);\r\n }\r\n\r\n function validateForm(values) {\r\n if (isForeigner[0]) {\r\n if (country != null) {\r\n return true;\r\n } else {\r\n setMessage(intl.formatMessage({ id: 'AUTH.INFO_SELECT_COUNTRY' }));\r\n setOpen(true);\r\n return false;\r\n }\r\n } else {\r\n \r\n if (post != null) {\r\n return true;\r\n } else {\r\n setMessage(intl.formatMessage({ id: 'AUTH.INFO_SELECT_POST' }));\r\n setOpen(true);\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n \r\n function handlerAjpesClick(e) {\r\n var taxNumber = ref.current.values.taxNumber;\r\n if (taxNumber == \"\") {\r\n return;\r\n }\r\n setIsLoadingAjpes(true);\r\n findByTaxCode(taxNumber)\r\n .then(({ data }) => {\r\n if (data.model.id > -1) {\r\n ref.current.setFieldValue(\"name\", data.model.name);\r\n ref.current.setFieldValue(\"taxDuty\", data.model.taxDuty);\r\n ref.current.setFieldValue(\"taxNumber\", data.model.taxNumber);\r\n ref.current.setFieldValue(\"address\", data.model.address);\r\n ref.current.setFieldValue(\"active\", true);\r\n ref.current.setFieldValue(\"isSupplier\", true);\r\n setPost({ code: data.model.postCode, title: data.model.postTitle });\r\n } else {\r\n setMessage(intl.formatMessage({ id: 'AUTH.AJPES_NOT_EXISTS_COMPANY' }));\r\n setOpen(true);\r\n }\r\n setIsLoadingAjpes(false);\r\n })\r\n .catch((e) => {\r\n setErrorMessage(intl.formatMessage({ id: 'AUTH.OPS_CONNECTION_PROBLEM' }));\r\n setErrorOpen(true);\r\n setIsLoadingAjpes(false);\r\n });\r\n\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n if (validateForm(values)) {\r\n var obj = {\r\n taxDuty: values.taxDuty,\r\n taxNumber: values.taxNumber,\r\n id: values.id,\r\n name: values.name,\r\n address: values.address,\r\n postCode: post != null ? post.code : null,\r\n postTitle: post != null ? post.title : null,\r\n isForeigner: isForeigner[0],\r\n useWholesalePricelist: values.useWholesalePricelist,\r\n withoutVatExport: values.withoutVatExport,\r\n discount: values.discount,\r\n paymentDeadline: values.paymentDeadline,\r\n isSupplier: values.isSupplier,\r\n active: values.active,\r\n bankBicCode: values.bankBicCode,\r\n bankIbanCode: values.bankIbanCode,\r\n countryId: country != null ? country.id : null,\r\n registrationNumber: values.registrationNumber\r\n };\r\n saveCustomer(obj);\r\n }\r\n }}\r\n >\r\n {({ handleSubmit, errors, values }) => (\r\n <>\r\n \r\n {actionsLoading && (\r\n
\r\n
\r\n
\r\n )}\r\n {!actionsLoading && (\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 {/* Login */}\r\n
\r\n \r\n \r\n
\r\n {/* First Name */}\r\n
\r\n \r\n \r\n
\r\n {!isForeigner[0] && (\r\n
\r\n \r\n\r\n { setPost(val); }}\r\n />\r\n
\r\n )}\r\n {isForeigner[0] && (\r\n
\r\n \r\n\r\n { setCountry(val); }}\r\n />\r\n
\r\n )}\r\n
\r\n
\r\n {!isForeigner[0] && (\r\n
\r\n \r\n {values.id == undefined && (\r\n \r\n \r\n \r\n \r\n {isLoadingAjpes && (\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n )}\r\n {values.id != undefined && (\r\n \r\n )}\r\n
\r\n )}\r\n\r\n {isForeigner[0] && (\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\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\n \r\n \r\n \r\n <> \r\n {!actionsLoading && (\r\n \r\n handleSubmit()}\r\n className=\"btn btn-primary btn-elevate\"\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n setErrorOpen(false)} />\r\n { setOpen(false); }} />\r\n \r\n );\r\n}\r\n","export const defaultSorted = [{ dataField: \"id\", order: \"asc\" }];\r\nexport const sizePerPageList = [\r\n { text: \"10\", value: 10 },\r\n { text: \"25\", value: 25 },\r\n { text: \"50\", value: 50 }\r\n];\r\nexport const initialFilter = {\r\n status: 1,\r\n query: \"\",\r\n sortOrder: \"asc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25\r\n};\r\n","import React, {createContext, useContext, useState, useCallback} from \"react\";\r\nimport {isEqual, isFunction} from \"lodash\";\r\nimport {initialFilter} from \"./CustomersUIHelpers\";\r\n\r\nconst CustomersUIContext = createContext();\r\n\r\nexport function useCustomersUIContext() {\r\n return useContext(CustomersUIContext);\r\n}\r\n\r\nexport const CustomersUIConsumer = CustomersUIContext.Consumer;\r\n\r\nexport function CustomersUIProvider({customersUIEvents, children}) {\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n const initCustomer = {\r\n id: undefined,\r\n taxDuty: false,\r\n taxNumber: \"\",\r\n name: \"\",\r\n address: \"\",\r\n postCode: null,\r\n postTitle: null,\r\n isForeigner: false,\r\n useWholesalePricelist: false,\r\n withoutVatExport: false,\r\n discount: 0,\r\n paymentDeadline: 8,\r\n isSupplier: false,\r\n active: true,\r\n bankBicCode: \"\",\r\n bankIbanCode: \"\",\r\n countryId: null\r\n };\r\n\r\n const value = {\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initCustomer,\r\n newCustomerButtonClick: customersUIEvents.newCustomerButtonClick,\r\n openEditCustomerDialog: customersUIEvents.openEditCustomerDialog,\r\n openDeleteCustomerDialog: customersUIEvents.openDeleteCustomerDialog,\r\n openDeleteCustomersDialog: customersUIEvents.openDeleteCustomersDialog,\r\n openCustomerTraffictDialog: customersUIEvents.openCustomerTraffictDialog,\r\n openCustomerTakeoversDialog: customersUIEvents.openCustomerTakeoversDialog\r\n };\r\n\r\n return {children};\r\n}","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/customers/customersActions\";\r\nimport { CustomerEditDialogHeader } from \"./CustomerEditDialogHeader\";\r\nimport { CustomerEditForm } from \"./CustomerEditForm\";\r\nimport { useCustomersUIContext } from \"../CustomersUIContext\";\r\n\r\nexport function CustomerEditDialog({ id, show, onHide }) {\r\n // Customers UI Context\r\n const customersUIContext = useCustomersUIContext();\r\n const customersUIProps = useMemo(() => {\r\n return {\r\n initCustomer: customersUIContext.initCustomer,\r\n };\r\n }, [customersUIContext]);\r\n\r\n // Customers Redux state\r\n const dispatch = useDispatch();\r\n const { actionsLoading, customerForEdit } = useSelector(\r\n (state) => ({\r\n actionsLoading: state.customers.actionsLoading,\r\n customerForEdit: state.customers.customerForEdit\r\n }),\r\n shallowEqual\r\n );\r\n\r\n useEffect(() => {\r\n dispatch(actions.fetchCustomer(id));\r\n }, [id, dispatch]);\r\n\r\n // server request for saving customer\r\n const saveCustomer = (customer) => {\r\n if (!id) {\r\n // server request for creating customer\r\n dispatch(actions.createCustomer(customer)).then(() => onHide());\r\n } else {\r\n // server request for updating customer\r\n dispatch(actions.updateCustomer(customer)).then(() => onHide());\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport * as actions from \"../../../_redux/customers/customersActions\";\r\nimport { useCustomersUIContext } from \"../CustomersUIContext\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport function CustomerDeleteDialog({ id, show, onHide }) {\r\n // Customers UI Context\r\n const customersUIContext = useCustomersUIContext();\r\n const customersUIProps = useMemo(() => {\r\n return {\r\n setIds: customersUIContext.setIds,\r\n queryParams: customersUIContext.queryParams\r\n };\r\n }, [customersUIContext]);\r\n\r\n // Customers Redux state\r\n const dispatch = useDispatch();\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.customers.actionsLoading }),\r\n shallowEqual\r\n );\r\n\r\n // if !id we should close modal\r\n useEffect(() => {\r\n if (!id) {\r\n onHide();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [id]);\r\n\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading, dispatch]);\r\n\r\n const deleteCustomer = () => {\r\n // server request for deleting customer by id\r\n dispatch(actions.deleteCustomer(id)).then(() => {\r\n // refresh list after deletion\r\n dispatch(actions.fetchCustomers(customersUIProps.queryParams));\r\n // clear selections list\r\n customersUIProps.setIds([]);\r\n // closing delete modal\r\n onHide();\r\n });\r\n };\r\n\r\n return (\r\n \r\n {/*begin::Loading*/}\r\n {isLoading && }\r\n {/*end::Loading*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isLoading && (\r\n \r\n )}\r\n {isLoading && }\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","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/customers/customersActions\";\r\nimport { useCustomersUIContext } from \"../CustomersUIContext\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport function CustomersDeleteDialog({ show, onHide }) {\r\n // Customers UI Context\r\n const customersUIContext = useCustomersUIContext();\r\n const customersUIProps = useMemo(() => {\r\n return {\r\n ids: customersUIContext.ids,\r\n setIds: customersUIContext.setIds,\r\n queryParams: customersUIContext.queryParams,\r\n };\r\n }, [customersUIContext]);\r\n\r\n // Customers Redux state\r\n const dispatch = useDispatch();\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.customers.actionsLoading }),\r\n shallowEqual\r\n );\r\n\r\n // if customers weren't selected we should close modal\r\n useEffect(() => {\r\n if (!customersUIProps.ids || customersUIProps.ids.length === 0) {\r\n onHide();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [customersUIProps.ids]);\r\n\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading, dispatch]);\r\n\r\n const deleteCustomers = () => {\r\n // server request for deleting customer by selected ids\r\n dispatch(actions.deleteCustomers(customersUIProps.ids)).then(() => {\r\n // refresh list after deletion\r\n dispatch(actions.fetchCustomers(customersUIProps.queryParams)).then(\r\n () => {\r\n // clear selections list\r\n customersUIProps.setIds([]);\r\n // closing delete modal\r\n onHide();\r\n }\r\n );\r\n });\r\n };\r\n\r\n return (\r\n \r\n {/*begin::Loading*/}\r\n {isLoading && }\r\n {/*end::Loading*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isLoading && (\r\n \r\n )}\r\n {isLoading && }\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","import React, { useMemo } from \"react\";\r\nimport { Formik } from \"formik\";\r\nimport { isEqual } from \"lodash\";\r\nimport { useCustomersUIContext } from \"../CustomersUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nconst prepareFilter = (queryParams, values) => {\r\n const { searchText, status } = values;\r\n const newQueryParams = { ...queryParams };\r\n \r\n newQueryParams.query = searchText;\r\n newQueryParams.status = status !== \"\" ? + status : undefined;\r\n return newQueryParams;\r\n};\r\n\r\nexport function CustomersFilter({ listLoading }) {\r\n const intl = useIntl();\r\n\r\n // Customers UI Context\r\n const customersUIContext = useCustomersUIContext();\r\n const customersUIProps = useMemo(() => {\r\n return {\r\n queryParams: customersUIContext.queryParams,\r\n setQueryParams: customersUIContext.setQueryParams,\r\n };\r\n }, [customersUIContext]);\r\n\r\n // queryParams, setQueryParams,\r\n const applyFilter = (values) => {\r\n const newQueryParams = prepareFilter(customersUIProps.queryParams, values);\r\n if (!isEqual(newQueryParams, customersUIProps.queryParams)) {\r\n newQueryParams.pageNumber = 1;\r\n // update list by queryParams\r\n customersUIProps.setQueryParams(newQueryParams);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {\r\n applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n setFieldValue(\"status\", e.target.value);\r\n handleSubmit();\r\n }}\r\n onBlur={handleBlur}\r\n value={values.status}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setFieldValue(\"searchText\", e.target.value);\r\n handleSubmit();\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","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../../../_metronic/_helpers\";\r\nimport { CheckPermissions } from \"../../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../../enum/userFunctionalityE\"\r\n\r\n\r\nexport function ActionsColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n { openEditCustomerDialog, openDeleteCustomerDialog }\r\n) {\r\n return (\r\n <>\r\n openEditCustomerDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n <> \r\n {row.active && (\r\n \r\n openDeleteCustomerDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\n","// React bootstrap table next =>\r\n// DOCS: https://react-bootstrap-table.github.io/react-bootstrap-table2/docs/\r\n// STORYBOOK: https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html\r\nimport React, { useEffect, useMemo } from \"react\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory, {\r\n PaginationProvider,\r\n} from \"react-bootstrap-table2-paginator\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/customers/customersActions\";\r\nimport {\r\n getSelectRow,\r\n getHandlerTableChange,\r\n NoRecordsFoundMessage,\r\n PleaseWaitMessage,\r\n sortCaret,\r\n headerSortingClasses,\r\n} from \"../../../../../../_metronic/_helpers\";\r\nimport * as uiHelpers from \"../CustomersUIHelpers\";\r\nimport * as columnFormatters from \"./column-formatters\";\r\nimport { Pagination } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useCustomersUIContext } from \"../CustomersUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function CustomersTable() {\r\n const intl = useIntl();\r\n // Customers UI Context\r\n const customersUIContext = useCustomersUIContext();\r\n const customersUIProps = useMemo(() => {\r\n return {\r\n ids: customersUIContext.ids,\r\n setIds: customersUIContext.setIds,\r\n queryParams: customersUIContext.queryParams,\r\n setQueryParams: customersUIContext.setQueryParams,\r\n openEditCustomerDialog: customersUIContext.openEditCustomerDialog,\r\n openDeleteCustomerDialog: customersUIContext.openDeleteCustomerDialog,\r\n };\r\n }, [customersUIContext]);\r\n\r\n // Getting curret state of customers list from store (Redux)\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.customers }),\r\n shallowEqual\r\n );\r\n const { totalCount, entities, listLoading } = currentState;\r\n\r\n // Customers Redux state\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n // clear selections list\r\n customersUIProps.setIds([]);\r\n // server call by queryParams\r\n dispatch(actions.fetchCustomers(customersUIProps.queryParams));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [customersUIProps.queryParams, dispatch]);\r\n\r\n // Table columns\r\n const columns = [\r\n {\r\n dataField: \"id\",\r\n text: \"#\",\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"name\",\r\n text: intl.formatMessage({ id: \"AUTH.INPUT.COMPANY_TITLE\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"address\",\r\n text: intl.formatMessage({ id: \"AUTH.INPUT.ADDRESS\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"taxNumber\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.TAXCODE\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"postFull\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.POST_COUNTRY\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"action\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.ACTIONS\" }),\r\n formatter: columnFormatters.ActionsColumnFormatter,\r\n formatExtraData: {\r\n openEditCustomerDialog: customersUIProps.openEditCustomerDialog,\r\n openDeleteCustomerDialog: customersUIProps.openDeleteCustomerDialog,\r\n },\r\n classes: \"text-right pr-0\",\r\n headerClasses: \"text-right pr-3\",\r\n style: {\r\n minWidth: \"100px\",\r\n },\r\n },\r\n ];\r\n\r\n const customTotal = (from, to, size) => (\r\n \r\n {from} - { to} {size} \r\n \r\n );\r\n\r\n // Table pagination properties\r\n const paginationOptions = {\r\n custom: true,\r\n totalSize: totalCount,\r\n sizePerPageList: uiHelpers.sizePerPageList,\r\n sizePerPage: customersUIProps.queryParams.pageSize,\r\n page: customersUIProps.queryParams.pageNumber,\r\n paginationTotalRenderer: customTotal,\r\n };\r\n return (\r\n <>\r\n \r\n {({ paginationProps, paginationTableProps }) => {\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","import React, { useMemo } from \"react\";\r\nimport { useCustomersUIContext } from \"../CustomersUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { CheckPermissions } from \"../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../enum/userFunctionalityE\"\r\n\r\nexport function CustomersGrouping() {\r\n const intl = useIntl();\r\n\r\n // Customers UI Context\r\n const customersUIContext = useCustomersUIContext();\r\n const customersUIProps = useMemo(() => {\r\n return {\r\n ids: customersUIContext.ids,\r\n setIds: customersUIContext.setIds,\r\n openCustomerTraffictDialog: customersUIContext.openCustomerTraffictDialog,\r\n openCustomerTakeoversDialog: customersUIContext.openCustomerTakeoversDialog\r\n };\r\n }, [customersUIContext]);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {customersUIProps.ids.length == 1 &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n {customersUIProps.ids.length == 1 &&\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","import React, { useMemo } from \"react\";\r\nimport {\r\n Card,\r\n CardBody,\r\n CardHeader,\r\n CardHeaderToolbar,\r\n} from \"../../../../../_metronic/_partials/controls\";\r\nimport { CustomersFilter } from \"./customers-filter/CustomersFilter\";\r\nimport { CustomersTable } from \"./customers-table/CustomersTable\";\r\nimport { CustomersGrouping } from \"./customers-grouping/CustomersGrouping\";\r\nimport { useCustomersUIContext } from \"./CustomersUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { CheckPermissions } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\n\r\nexport function CustomersCard() {\r\n const intl = useIntl();\r\n const customersUIContext = useCustomersUIContext();\r\n const customersUIProps = useMemo(() => {\r\n return {\r\n ids: customersUIContext.ids,\r\n newCustomerButtonClick: customersUIContext.newCustomerButtonClick,\r\n };\r\n }, [customersUIContext]);\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 {customersUIProps.ids.length > 0 && }\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport 'react-date-range/dist/styles.css'; // main style file\r\nimport 'react-date-range/dist/theme/default.css'; // theme css file\r\nimport { DateRange } from 'react-date-range';\r\nimport * as rdrLocales from 'react-date-range/dist/locale';\r\nimport moment from 'moment';\r\n\r\nexport default function DateRange2(props) {\r\n const intl = useIntl();\r\n const [visible, setVisible] = useState(false);\r\n const [valueTxt, setValueTxt] = useState(\"\");\r\n\r\n const [startDate, setStartDate] = useState(props.startDate);\r\n const [endDate, setEndDate] = useState(props.endDate);\r\n \r\n const [state, setState] = useState([\r\n {\r\n startDate: startDate,\r\n endDate: endDate,\r\n key: 'selection'\r\n }\r\n ]);\r\n\r\n useEffect(() => {\r\n var txt = \"\";\r\n txt = intl.formatMessage({ id: \"AUTH.GENERAL.FROM\" }) + \" \" +\r\n moment(state[0].startDate).format(\"DD.MM.YYYY\") + \" \" +\r\n intl.formatMessage({ id: \"AUTH.GENERAL.TO\" }) + \" \" +\r\n moment(state[0].endDate).format(\"DD.MM.YYYY\");\r\n setValueTxt(txt);\r\n }, [state]);\r\n\r\n\r\n function showDateRange() {\r\n setState([\r\n {\r\n startDate: startDate,\r\n endDate: endDate,\r\n key: 'selection'\r\n }\r\n ]);\r\n setVisible(!visible);\r\n }\r\n\r\n function setToday() {\r\n setState([\r\n {\r\n startDate: new Date(),\r\n endDate: new Date(),\r\n key: 'selection'\r\n }\r\n ]);\r\n }\r\n\r\n function setYesterday() {\r\n var yesterday = new Date()\r\n yesterday.setDate(yesterday.getDate() - 1)\r\n setState([\r\n {\r\n startDate: yesterday,\r\n endDate: yesterday,\r\n key: 'selection'\r\n }\r\n ]);\r\n }\r\n\r\n function setLastWeek() {\r\n var date = new Date();\r\n var day = date.getDay();\r\n var prevMonday = new Date();\r\n if (date.getDay() == 0) {\r\n prevMonday.setDate(date.getDate() - 7);\r\n }\r\n else {\r\n prevMonday.setDate(date.getDate() - (day - 1));\r\n }\r\n setState([\r\n {\r\n startDate: prevMonday,\r\n endDate: date,\r\n key: 'selection'\r\n }\r\n ]);\r\n }\r\n\r\n function setLastMonth() {\r\n var date = new Date();\r\n var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);\r\n setState([\r\n {\r\n startDate: firstDay,\r\n endDate: date,\r\n key: 'selection'\r\n }\r\n ]);\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n {\r\n showDateRange();\r\n }}\r\n />\r\n
\r\n {\r\n showDateRange();\r\n }}\r\n >\r\n \r\n \r\n
\r\n
\r\n {visible && (\r\n
\r\n\r\n
\r\n
\r\n setState([item.selection])}\r\n moveRangeOnFirstSelection={false}\r\n ranges={state}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n { setToday(); }}\r\n className=\"btn btn-link btn-elevate\"\r\n >\r\n \r\n \r\n <> \r\n { setYesterday(); }}\r\n className=\"btn btn-link btn-elevate\"\r\n >\r\n \r\n \r\n <> \r\n { setLastWeek(); }}\r\n className=\"btn btn-link btn-elevate\"\r\n >\r\n \r\n \r\n <> \r\n { setLastMonth(); }}\r\n className=\"btn btn-link btn-elevate\"\r\n >\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { showDateRange(); }}\r\n className=\"btn btn-light btn-elevate\"\r\n >\r\n \r\n \r\n <> \r\n {\r\n setVisible(false);\r\n setStartDate(state[0].startDate);\r\n setEndDate(state[0].endDate);\r\n if (props.onChange != null) {\r\n props.onChange(state[0].startDate, state[0].endDate);\r\n }\r\n }}\r\n className=\"btn btn-primary btn-elevate\"\r\n >\r\n \r\n \r\n
\r\n
\r\n
\r\n )}\r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useMemo, useState } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useCustomersUIContext } from \"../CustomersUIContext\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport PdfViewer from \"../../../../../components/PdfViewer\"\r\nimport { Formik } from \"formik\";\r\nimport DateRange2 from '../../../../../components/DateRange2';\r\nimport moment from 'moment'\r\n\r\nexport function CustomerTrafficPrintDialog({ show, onHide }) {\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n // Office users UI Context\r\n const customersUIContext = useCustomersUIContext();\r\n const itemsUIProps = useMemo(() => {\r\n return {\r\n ids: customersUIContext.ids,\r\n setIds: customersUIContext.setIds,\r\n queryParams: customersUIContext.queryParams\r\n };\r\n }, [customersUIContext]);\r\n\r\n // Office users Redux state\r\n const dispatch = useDispatch();\r\n \r\n\r\n // if office users weren't selected we should close modal\r\n useEffect(() => {\r\n if (!itemsUIProps.ids || itemsUIProps.ids.length === 0) {\r\n onHide();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [itemsUIProps.ids]);\r\n\r\n // looking for loading/dispatch\r\n useEffect(() => { }, [dispatch]);\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 { itemsUIProps.ids != undefined && itemsUIProps.ids != null && itemsUIProps.ids.length > 0 && (\r\n {\r\n return {\r\n ids: customersUIContext.ids,\r\n setIds: customersUIContext.setIds,\r\n queryParams: customersUIContext.queryParams\r\n };\r\n }, [customersUIContext]);\r\n\r\n // Office users Redux state\r\n const dispatch = useDispatch();\r\n \r\n\r\n // if office users weren't selected we should close modal\r\n useEffect(() => {\r\n if (!itemsUIProps.ids || itemsUIProps.ids.length === 0) {\r\n onHide();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [itemsUIProps.ids]);\r\n\r\n // looking for loading/dispatch\r\n useEffect(() => { }, [dispatch]);\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 { itemsUIProps.ids != undefined && itemsUIProps.ids != null && itemsUIProps.ids.length > 0 && (\r\n dispatch => {\r\n if (!id) {\r\n return dispatch(actions.itemGroupFetched({ itemGroupForEdit: undefined }));\r\n }\r\n\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .getItemGroupById(id)\r\n .then(response => {\r\n const itemGroup = response.data.model;\r\n dispatch(actions.itemGroupFetched({ itemGroupForEdit: itemGroup }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find itemGroup\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const deleteItemGroup = id => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .deleteItemGroup(id)\r\n .then(response => {\r\n dispatch(actions.itemGroupDeleted({ id }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't delete itemGroup\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const createItemGroup = itemGroupForCreation => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .createItemGroup(itemGroupForCreation)\r\n .then(response => {\r\n const { model } = response.data;\r\n dispatch(actions.itemGroupCreated({ model }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't create itemGroup\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const updateItemGroup = itemGroup => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .updateItemGroup(itemGroup)\r\n .then(() => {\r\n dispatch(actions.itemGroupUpdated({ itemGroup }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't update itemGroup\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const deleteItemGroups = ids => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .deleteItemGroups(ids)\r\n .then(() => {\r\n dispatch(actions.itemGroupsDeleted({ ids }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't delete itemGroups\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};","import axios from \"axios\";\r\n\r\n\r\n// Method from server should return QueryResultsModel(items: any[], totalsCount: number)\r\n// items => filtered/sorted result\r\nexport function findItemGroups(queryParams) {\r\n return axios.post(\"/api/itemGroup/find\", queryParams );\r\n}\r\n\r\n// CREATE => POST: add a new itemGroup to the server\r\nexport function createItemGroup(itemGroup) {\r\n return axios.post(\"/api/itemGroup\", itemGroup );\r\n}\r\n\r\nexport function getItemGroupById(itemGroupId) {\r\n return axios.get(\"/api/itemGroup/\" + itemGroupId );\r\n}\r\n\r\n// UPDATE => PUT: update the itemGroup on the server\r\nexport function updateItemGroup(itemGroup) {\r\n return axios.put(\"/api/itemGroup/\" + itemGroup.id, itemGroup);\r\n}\r\n\r\n// DELETE => delete the itemGroup from the server\r\nexport function deleteItemGroup(itemGroupId) {\r\n return axios.delete(\"/api/itemGroup/\" + itemGroupId );\r\n}\r\n\r\n// DELETE ItemGroups by ids\r\nexport function deleteItemGroups(ids) {\r\n return axios.post(\"/api/itemGroup/deleteItemGroups\", { ids });\r\n}\r\n\r\nexport function upItemGroupById(itemGroupId) {\r\n return axios.get(\"/api/itemGroup/up/\" + itemGroupId);\r\n}\r\n\r\nexport function downItemGroupById(itemGroupId) {\r\n return axios.get(\"/api/itemGroup/down/\" + itemGroupId);\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useIntl } from \"react-intl\";\r\n\r\nexport function ItemGroupEditDialogHeader({ id }) {\r\n const intl = useIntl();\r\n // ItemGroups Redux state\r\n const { itemGroupForEdit, actionsLoading } = useSelector(\r\n (state) => ({\r\n itemGroupForEdit: state.itemGroups.itemGroupForEdit,\r\n actionsLoading: state.itemGroups.actionsLoading,\r\n }),\r\n shallowEqual\r\n );\r\n\r\n const [title, setTitle] = useState(\"\");\r\n // Title couting\r\n useEffect(() => {\r\n let _title = id ? \"\" : intl.formatMessage({ id: \"AUTH.ITEM_GROUP.NEW\" }) ;\r\n if (itemGroupForEdit && id) {\r\n _title = intl.formatMessage({ id: \"AUTH.ITEM_GROUP.EDIT\" }) + ` '${itemGroupForEdit.title}'`;\r\n }\r\n\r\n setTitle(_title);\r\n // eslint-disable-next-line\r\n }, [itemGroupForEdit, actionsLoading]);\r\n\r\n return (\r\n <>\r\n {actionsLoading && }\r\n \r\n {title}\r\n \r\n \r\n );\r\n}\r\n","// Form is based on Formik\r\n// Data validation is based on Yup\r\n// Please, be familiar with article first:\r\n// https://hackernoon.com/react-form-validation-with-formik-and-yup-8b76bda62e10\r\nimport React, { useEffect, useState, useRef } from \"react\";\r\nimport { Modal, Button, InputGroup, Spinner } from \"react-bootstrap\";\r\nimport { Formik, Form, Field } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport {\r\n Input,\r\n} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport ErrorPopup from \"../../../../Helpers/ErrorPopup\"\r\nimport InfoPopup from \"../../../../Helpers/InfoPopup\"\r\nimport { CheckPermissions, hasRoleForFunctionality } from \"../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../enum/userFunctionalityE\"\r\nimport { useSelector } from \"react-redux\";\r\nimport { SketchPicker } from 'react-color'\r\nimport { onlyDigits } from \"../../../../../util/Util\";\r\n\r\nexport function ItemGroupEditForm({\r\n saveItemGroup,\r\n itemGroup,\r\n actionsLoading,\r\n onHide,\r\n}) {\r\n const { user } = useSelector(state => state.auth);\r\n const intl = useIntl();\r\n const [errorMessage, setErrorMessage] = useState(\"\");\r\n const [errorOpen, setErrorOpen] = useState(false);\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n const [background, setBackground] = useState(itemGroup != undefined ? itemGroup.background : \"#ffffff\");\r\n const [displayBackgroundPicker, setDisplayBackgroundPicker] = useState(false);\r\n const [foreground, setForeground] = useState(itemGroup != undefined ? itemGroup.foreground : \"#ffffff\");\r\n const [displayForegroundPicker, setDisplayForegroundPicker] = useState(false);\r\n\r\n useEffect(() => {\r\n setBackground(itemGroup != undefined ? itemGroup.background : \"#ffffff\");\r\n setForeground(itemGroup != undefined ? itemGroup.foreground : \"#ffffff\");\r\n }, [user, itemGroup]);\r\n\r\n useEffect(() => {\r\n\r\n });\r\n\r\n var readOnly = !hasRoleForFunctionality(user, [UserFunctionalityE.UrediSkupineIzdelkov]);\r\n\r\n // Validation schema\r\n const ItemGroupEditSchema = Yup.object().shape({\r\n title: Yup.string()\r\n .max(250, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_250_SYMBOLS' }))\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })),\r\n fontSize: Yup.number()\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n }))\r\n .test('validator', intl.formatMessage({ id: 'FONT_SIZE.MORE_THEN_6' }), value => {\r\n return new Promise((resolve, reject) => {\r\n var num = parseFloat(value);\r\n resolve(num >= 7);\r\n })\r\n })\r\n });\r\n\r\n return (\r\n <>\r\n {\r\n var obj = {\r\n id: values.id,\r\n title: values.title,\r\n background: background,\r\n foreground: foreground,\r\n fontSize: values.fontSize,\r\n order: values.order,\r\n active: values.active,\r\n appearInCashier: values.appearInCashier\r\n };\r\n saveItemGroup(obj);\r\n }\r\n }\r\n >\r\n {({ handleSubmit, errors, values }) => (\r\n <>\r\n \r\n {actionsLoading && (\r\n
\r\n
\r\n
\r\n )}\r\n\r\n {!actionsLoading && (\r\n
\r\n\r\n
\r\n {/* Login */}\r\n
\r\n \r\n \r\n
\r\n {/* Background */}\r\n
\r\n \r\n
\r\n
{ if (readOnly) return; setDisplayBackgroundPicker(!displayBackgroundPicker); }}>\r\n
\r\n
\r\n {displayBackgroundPicker ?
\r\n { setDisplayBackgroundPicker(false); }} />\r\n { setBackground(color.hex); }} />\r\n
: null}\r\n
\r\n {/* Foreground */}\r\n
\r\n \r\n
\r\n
{ if (readOnly) return; setDisplayForegroundPicker(!displayForegroundPicker); }}>\r\n
\r\n
\r\n {displayForegroundPicker ?
\r\n { setDisplayForegroundPicker(false); }} />\r\n { setForeground(color.hex); }} />\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\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 {!actionsLoading && (\r\n \r\n handleSubmit()}\r\n className=\"btn btn-primary btn-elevate\"\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n setErrorOpen(false)} />\r\n { setOpen(false); }} />\r\n \r\n );\r\n}\r\n","export const defaultSorted = [{ dataField: \"id\", order: \"asc\" }];\r\nexport const sizePerPageList = [\r\n { text: \"10\", value: 10 },\r\n { text: \"25\", value: 25 },\r\n { text: \"50\", value: 50 }\r\n];\r\nexport const initialFilter = {\r\n status: 1,\r\n query: \"\",\r\n sortOrder: \"asc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25\r\n};\r\n","import React, {createContext, useContext, useState, useCallback} from \"react\";\r\nimport {isEqual, isFunction} from \"lodash\";\r\nimport {initialFilter} from \"./ItemGroupsUIHelpers\";\r\n\r\nconst ItemGroupsUIContext = createContext();\r\n\r\nexport function useItemGroupsUIContext() {\r\n return useContext(ItemGroupsUIContext);\r\n}\r\n\r\nexport const ItemGroupsUIConsumer = ItemGroupsUIContext.Consumer;\r\n\r\nexport function ItemGroupsUIProvider({itemGroupsUIEvents, children}) {\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n\r\n const initItemGroup = {\r\n id: undefined,\r\n title: \"\",\r\n background: \"#96BAF6\",\r\n foreground: \"#EFDCDC\",\r\n fontSize: 14,\r\n order: -1,\r\n active: true,\r\n appearInCashier: true\r\n };\r\n \r\n const value = {\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initItemGroup,\r\n newItemGroupButtonClick: itemGroupsUIEvents.newItemGroupButtonClick,\r\n openEditItemGroupDialog: itemGroupsUIEvents.openEditItemGroupDialog,\r\n openDeleteItemGroupDialog: itemGroupsUIEvents.openDeleteItemGroupDialog,\r\n openDeleteItemGroupsDialog: itemGroupsUIEvents.openDeleteItemGroupsDialog,\r\n openUpItemGroup: itemGroupsUIEvents.openUpItemGroup,\r\n openDownItemGroup: itemGroupsUIEvents.openDownItemGroup\r\n };\r\n\r\n return {children};\r\n}","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/itemGroups/itemGroupsActions\";\r\nimport { ItemGroupEditDialogHeader } from \"./ItemGroupEditDialogHeader\";\r\nimport { ItemGroupEditForm } from \"./ItemGroupEditForm\";\r\nimport { useItemGroupsUIContext } from \"../ItemGroupsUIContext\";\r\n\r\nexport function ItemGroupEditDialog({ id, show, onHide }) {\r\n // ItemGroups UI Context\r\n const itemGroupsUIContext = useItemGroupsUIContext();\r\n const itemGroupsUIProps = useMemo(() => {\r\n return {\r\n initItemGroup: itemGroupsUIContext.initItemGroup,\r\n };\r\n }, [itemGroupsUIContext]);\r\n\r\n // ItemGroups Redux state\r\n const dispatch = useDispatch();\r\n const { actionsLoading, itemGroupForEdit } = useSelector(\r\n (state) => ({\r\n actionsLoading: state.itemGroups.actionsLoading,\r\n itemGroupForEdit: state.itemGroups.itemGroupForEdit\r\n }),\r\n shallowEqual\r\n );\r\n\r\n useEffect(() => {\r\n dispatch(actions.fetchItemGroup(id));\r\n }, [id, dispatch]);\r\n\r\n // server request for saving itemGroup\r\n const saveItemGroup = (itemGroup) => {\r\n if (!id) {\r\n // server request for creating itemGroup\r\n dispatch(actions.createItemGroup(itemGroup)).then(() => onHide());\r\n } else {\r\n // server request for updating itemGroup\r\n dispatch(actions.updateItemGroup(itemGroup)).then(() => onHide());\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport * as actions from \"../../../_redux/itemGroups/itemGroupsActions\";\r\nimport { useItemGroupsUIContext } from \"../ItemGroupsUIContext\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport function ItemGroupDeleteDialog({ id, show, onHide }) {\r\n // ItemGroups UI Context\r\n const itemGroupsUIContext = useItemGroupsUIContext();\r\n const itemGroupsUIProps = useMemo(() => {\r\n return {\r\n setIds: itemGroupsUIContext.setIds,\r\n queryParams: itemGroupsUIContext.queryParams\r\n };\r\n }, [itemGroupsUIContext]);\r\n\r\n // ItemGroups Redux state\r\n const dispatch = useDispatch();\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.itemGroups.actionsLoading }),\r\n shallowEqual\r\n );\r\n\r\n // if !id we should close modal\r\n useEffect(() => {\r\n if (!id) {\r\n onHide();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [id]);\r\n\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading, dispatch]);\r\n\r\n const deleteItemGroup = () => {\r\n // server request for deleting itemGroup by id\r\n dispatch(actions.deleteItemGroup(id)).then(() => {\r\n // refresh list after deletion\r\n dispatch(actions.fetchItemGroups(itemGroupsUIProps.queryParams));\r\n // clear selections list\r\n itemGroupsUIProps.setIds([]);\r\n // closing delete modal\r\n onHide();\r\n });\r\n };\r\n\r\n return (\r\n \r\n {/*begin::Loading*/}\r\n {isLoading && }\r\n {/*end::Loading*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isLoading && (\r\n \r\n )}\r\n {isLoading && }\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","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/itemGroups/itemGroupsActions\";\r\nimport { useItemGroupsUIContext } from \"../ItemGroupsUIContext\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport function ItemGroupsDeleteDialog({ show, onHide }) {\r\n // ItemGroups UI Context\r\n const itemGroupsUIContext = useItemGroupsUIContext();\r\n const itemGroupsUIProps = useMemo(() => {\r\n return {\r\n ids: itemGroupsUIContext.ids,\r\n setIds: itemGroupsUIContext.setIds,\r\n queryParams: itemGroupsUIContext.queryParams,\r\n };\r\n }, [itemGroupsUIContext]);\r\n\r\n // ItemGroups Redux state\r\n const dispatch = useDispatch();\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.itemGroups.actionsLoading }),\r\n shallowEqual\r\n );\r\n\r\n // if itemGroups weren't selected we should close modal\r\n useEffect(() => {\r\n if (!itemGroupsUIProps.ids || itemGroupsUIProps.ids.length === 0) {\r\n onHide();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [itemGroupsUIProps.ids]);\r\n\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading, dispatch]);\r\n\r\n const deleteItemGroups = () => {\r\n // server request for deleting itemGroup by selected ids\r\n dispatch(actions.deleteItemGroups(itemGroupsUIProps.ids)).then(() => {\r\n // refresh list after deletion\r\n dispatch(actions.fetchItemGroups(itemGroupsUIProps.queryParams)).then(\r\n () => {\r\n // clear selections list\r\n itemGroupsUIProps.setIds([]);\r\n // closing delete modal\r\n onHide();\r\n }\r\n );\r\n });\r\n };\r\n\r\n return (\r\n \r\n {/*begin::Loading*/}\r\n {isLoading && }\r\n {/*end::Loading*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isLoading && (\r\n \r\n )}\r\n {isLoading && }\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","import React, { useMemo } from \"react\";\r\nimport { Formik } from \"formik\";\r\nimport { isEqual } from \"lodash\";\r\nimport { useItemGroupsUIContext } from \"../ItemGroupsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nconst prepareFilter = (queryParams, values) => {\r\n const { searchText, status } = values;\r\n const newQueryParams = { ...queryParams };\r\n \r\n newQueryParams.query = searchText;\r\n newQueryParams.status = status !== \"\" ? + status : undefined;\r\n return newQueryParams;\r\n};\r\n\r\nexport function ItemGroupsFilter({ listLoading }) {\r\n const intl = useIntl();\r\n\r\n // ItemGroups UI Context\r\n const itemGroupsUIContext = useItemGroupsUIContext();\r\n const itemGroupsUIProps = useMemo(() => {\r\n return {\r\n queryParams: itemGroupsUIContext.queryParams,\r\n setQueryParams: itemGroupsUIContext.setQueryParams,\r\n };\r\n }, [itemGroupsUIContext]);\r\n\r\n // queryParams, setQueryParams,\r\n const applyFilter = (values) => {\r\n const newQueryParams = prepareFilter(itemGroupsUIProps.queryParams, values);\r\n if (!isEqual(newQueryParams, itemGroupsUIProps.queryParams)) {\r\n newQueryParams.pageNumber = 1;\r\n // update list by queryParams\r\n itemGroupsUIProps.setQueryParams(newQueryParams);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {\r\n applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n setFieldValue(\"status\", e.target.value);\r\n handleSubmit();\r\n }}\r\n onBlur={handleBlur}\r\n value={values.status}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setFieldValue(\"searchText\", e.target.value);\r\n handleSubmit();\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","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../../../_metronic/_helpers\";\r\nimport { CheckPermissions } from \"../../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../../enum/userFunctionalityE\"\r\n\r\n\r\nexport function ActionsColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n { openEditItemGroupDialog, openDeleteItemGroupDialog, openUpItemGroup, openDownItemGroup }\r\n) {\r\n return (\r\n <>\r\n openEditItemGroupDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n <> \r\n {row.active && (\r\n \r\n openDeleteItemGroupDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n\r\n openUpItemGroup(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n\r\n openDownItemGroup(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\n","// React bootstrap table next =>\r\n// DOCS: https://react-bootstrap-table.github.io/react-bootstrap-table2/docs/\r\n// STORYBOOK: https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html\r\nimport React, { useEffect, useMemo, useState } from \"react\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory, {\r\n PaginationProvider,\r\n} from \"react-bootstrap-table2-paginator\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/itemGroups/itemGroupsActions\";\r\nimport {\r\n getSelectRow,\r\n getHandlerTableChange,\r\n NoRecordsFoundMessage,\r\n PleaseWaitMessage,\r\n sortCaret,\r\n headerSortingClasses,\r\n} from \"../../../../../../_metronic/_helpers\";\r\nimport * as uiHelpers from \"../ItemGroupsUIHelpers\";\r\nimport * as columnFormatters from \"./column-formatters\";\r\nimport { Pagination } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useItemGroupsUIContext } from \"../ItemGroupsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { upItemGroupById, downItemGroupById } from \"../../../_redux/itemGroups/itemGroupsCrud\";\r\nimport InfoPopup from \"../../../../Helpers/InfoPopup\"\r\n\r\nexport function ItemGroupsTable() {\r\n const intl = useIntl();\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n // ItemGroups UI Context\r\n const itemGroupsUIContext = useItemGroupsUIContext();\r\n const itemGroupsUIProps = useMemo(() => {\r\n return {\r\n ids: itemGroupsUIContext.ids,\r\n setIds: itemGroupsUIContext.setIds,\r\n queryParams: itemGroupsUIContext.queryParams,\r\n setQueryParams: itemGroupsUIContext.setQueryParams,\r\n openEditItemGroupDialog: itemGroupsUIContext.openEditItemGroupDialog,\r\n openDeleteItemGroupDialog: itemGroupsUIContext.openDeleteItemGroupDialog,\r\n openUpItemGroup: openUpItemGroup,\r\n openDownItemGroup: openDownItemGroup\r\n };\r\n }, [itemGroupsUIContext]);\r\n\r\n // Getting curret state of itemGroups list from store (Redux)\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.itemGroups }),\r\n shallowEqual\r\n );\r\n const { totalCount, entities, listLoading } = currentState;\r\n\r\n // ItemGroups Redux state\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n // clear selections list\r\n itemGroupsUIProps.setIds([]);\r\n // server call by queryParams\r\n dispatch(actions.fetchItemGroups(itemGroupsUIProps.queryParams));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [itemGroupsUIProps.queryParams, dispatch]);\r\n\r\n // Table columns\r\n const columns = [\r\n {\r\n dataField: \"id\",\r\n text: \"#\",\r\n sort: false,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"title\",\r\n text: intl.formatMessage({ id: \"AUTH.INPUT.TITLE\" }),\r\n sort: false,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"action\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.ACTIONS\" }),\r\n formatter: columnFormatters.ActionsColumnFormatter,\r\n formatExtraData: {\r\n openEditItemGroupDialog: itemGroupsUIProps.openEditItemGroupDialog,\r\n openDeleteItemGroupDialog: itemGroupsUIProps.openDeleteItemGroupDialog,\r\n openUpItemGroup: itemGroupsUIProps.openUpItemGroup,\r\n openDownItemGroup: itemGroupsUIProps.openDownItemGroup\r\n },\r\n classes: \"text-right pr-0\",\r\n headerClasses: \"text-right pr-3\",\r\n style: {\r\n minWidth: \"100px\",\r\n },\r\n },\r\n ];\r\n\r\n const customTotal = (from, to, size) => (\r\n \r\n {from} - { to} {size} \r\n \r\n );\r\n\r\n function openUpItemGroup(id) {\r\n upItemGroupById(id).then(({ data }) => {\r\n if (!data.didError && data.model) {\r\n dispatch(actions.fetchItemGroups(itemGroupsUIProps.queryParams));\r\n }\r\n else {\r\n setMessage(intl.formatMessage({ id: \"AUTH.ITEM_GROUP.CAN_NOT_UP\" }));\r\n setOpen(true);\r\n }\r\n });\r\n }\r\n\r\n function openDownItemGroup (id) {\r\n downItemGroupById(id).then(({ data }) => {\r\n if (!data.didError && data.model) {\r\n dispatch(actions.fetchItemGroups(itemGroupsUIProps.queryParams));\r\n }\r\n else {\r\n setMessage(intl.formatMessage({ id: \"AUTH.ITEM_GROUP.CAN_NOT_DOWN\" }));\r\n setOpen(true);\r\n }\r\n });\r\n }\r\n\r\n // Table pagination properties\r\n const paginationOptions = {\r\n custom: true,\r\n totalSize: totalCount,\r\n sizePerPageList: uiHelpers.sizePerPageList,\r\n sizePerPage: itemGroupsUIProps.queryParams.pageSize,\r\n page: itemGroupsUIProps.queryParams.pageNumber,\r\n paginationTotalRenderer: customTotal,\r\n };\r\n return (\r\n <>\r\n \r\n {({ paginationProps, paginationTableProps }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }}\r\n \r\n { setOpen(false); }} />\r\n \r\n );\r\n}\r\n","import React, { useMemo } from \"react\";\r\nimport { useItemGroupsUIContext } from \"../ItemGroupsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function ItemGroupsGrouping() {\r\n const intl = useIntl();\r\n\r\n // ItemGroups UI Context\r\n const itemGroupsUIContext = useItemGroupsUIContext();\r\n const itemGroupsUIProps = useMemo(() => {\r\n return {\r\n ids: itemGroupsUIContext.ids,\r\n setIds: itemGroupsUIContext.setIds,\r\n openDeleteItemGroupsDialog: itemGroupsUIContext.openDeleteItemGroupsDialog\r\n };\r\n }, [itemGroupsUIContext]);\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","import React, { useMemo } from \"react\";\r\nimport {\r\n Card,\r\n CardBody,\r\n CardHeader,\r\n CardHeaderToolbar,\r\n} from \"../../../../../_metronic/_partials/controls\";\r\nimport { ItemGroupsFilter } from \"./itemGroups-filter/ItemGroupsFilter\";\r\nimport { ItemGroupsTable } from \"./itemGroups-table/ItemGroupsTable\";\r\nimport { ItemGroupsGrouping } from \"./itemGroups-grouping/ItemGroupsGrouping\";\r\nimport { useItemGroupsUIContext } from \"./ItemGroupsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { CheckPermissions } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\n\r\nexport function ItemGroupsCard() {\r\n const intl = useIntl();\r\n const itemGroupsUIContext = useItemGroupsUIContext();\r\n const itemGroupsUIProps = useMemo(() => {\r\n return {\r\n ids: itemGroupsUIContext.ids,\r\n newItemGroupButtonClick: itemGroupsUIContext.newItemGroupButtonClick,\r\n };\r\n }, [itemGroupsUIContext]);\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 {itemGroupsUIProps.ids.length > 0 && }\r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\nimport { ItemGroupsLoadingDialog } from \"./itemGroups-loading-dialog/ItemGroupsLoadingDialog\";\r\nimport { ItemGroupEditDialog } from \"./itemGroup-edit-dialog/ItemGroupEditDialog\";\r\nimport { ItemGroupDeleteDialog } from \"./itemGroup-delete-dialog/ItemGroupDeleteDialog\";\r\nimport { ItemGroupsDeleteDialog } from \"./itemGroups-delete-dialog/ItemGroupsDeleteDialog\";\r\nimport { ItemGroupsUIProvider } from \"./ItemGroupsUIContext\";\r\nimport { ItemGroupsCard } from \"./ItemGroupsCard\";\r\n\r\nexport function ItemGroupsPage({ history }) {\r\n\r\n const itemGroupsUIEvents = {\r\n newItemGroupButtonClick: () => {\r\n history.push(\"/itemGroups/new\");\r\n \r\n },\r\n openEditItemGroupDialog: (id) => {\r\n history.push(`/itemGroups/${id}/edit`);\r\n },\r\n openDeleteItemGroupDialog: (id) => {\r\n history.push(`/itemGroups/${id}/delete`);\r\n },\r\n openDeleteItemGroupsDialog: () => {\r\n history.push(`/itemGroups/deleteItemGroups`);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/itemGroups\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/itemGroups\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/itemGroups\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/itemGroups\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { LoadingDialog } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function ItemsLoadingDialog() {\r\n const intl = useIntl();\r\n // Items Redux state\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.items.listLoading }),\r\n shallowEqual\r\n );\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading]);\r\n return ;\r\n}\r\n","import * as requestFromServer from \"./itemsCrud\";\r\nimport { itemsSlice, callTypes } from \"./itemsSlice\";\r\n\r\nconst {actions} = itemsSlice;\r\n\r\nexport const fetchItems = queryParams => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .findItems(queryParams)\r\n .then(response => {\r\n const { totalCount, entities } = response.data;\r\n dispatch(actions.itemsFetched({ totalCount, entities }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find items\";\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\nexport const fetchItem = id => dispatch => {\r\n if (!id) {\r\n dispatch(actions.setPricelists({ pricelists: [] }));\r\n dispatch(actions.setPricelistsRemove({ pricelistsRemove: [] }));\r\n dispatch(actions.setJigsaws({ jigsaws: [] }));\r\n dispatch(actions.setJigsawsRemove({ jigsawsRemove: [] }));\r\n return dispatch(actions.itemFetched({ itemForEdit: undefined }));\r\n }\r\n\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .getItemById(id)\r\n .then(response => {\r\n response.data.model.maxDiscount = response.data.model.maxDiscount == null ? \"\" : response.data.model.maxDiscount;\r\n response.data.model.grossWeightPerUnit = response.data.model.grossWeightPerUnit == null ? \"\" : response.data.model.grossWeightPerUnit;\r\n const item = response.data.model;\r\n dispatch(actions.itemFetched({ itemForEdit: item }));\r\n var pricelists = [];\r\n item.pricelist.forEach(el => {\r\n var pricelist = { ...el };\r\n pricelist.effectiveDateFrom = new Date(el.effectiveDateFrom);\r\n pricelists.push(pricelist);\r\n\r\n });\r\n dispatch(actions.setPricelists({ pricelists: pricelists }));\r\n dispatch(actions.setPricelistsRemove({ pricelistsRemove: [] }));\r\n dispatch(actions.setJigsaws({ jigsaws: [...item.jigsaws1] }));\r\n dispatch(actions.setJigsawsRemove({ jigsawsRemove: [] }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find item\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const deleteItem = id => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .deleteItem(id)\r\n .then(response => {\r\n dispatch(actions.itemDeleted({ id }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't delete item\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const createItem = itemForCreation => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .createItem(itemForCreation)\r\n .then(response => {\r\n const { model } = response.data;\r\n dispatch(actions.itemCreated({ model }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't create item\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const updateItem = item => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .updateItem(item)\r\n .then(() => {\r\n dispatch(actions.itemUpdated({ item }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't update item\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const deleteItems = ids => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .deleteItems(ids)\r\n .then(() => {\r\n dispatch(actions.itemsDeleted({ ids }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't delete items\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const setCurrentVatRateId = id => dispatch => {\r\n if (!id) {\r\n dispatch(actions.setCurrentVatRateId({ setCurrentVatRateId: undefined }));\r\n }\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n dispatch(actions.setCurrentVatRateId({ currentVatRateId: id }));\r\n};\r\n\r\nexport const setPricelists = pricelists => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n dispatch(actions.setPricelists({ pricelists: pricelists }));\r\n};\r\n\r\nexport const setPricelistsRemove = pricelists => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n dispatch(actions.setPricelistsRemove({ pricelistsRemove: pricelists }));\r\n};\r\n\r\nexport const setPricelistForEdit = pricelist => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n dispatch(actions.setPricelistForEdit({ pricelistForEdit: pricelist }));\r\n};\r\n\r\nexport const setJigsaws = jigsaws => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n dispatch(actions.setJigsaws({ jigsaws: jigsaws }));\r\n};\r\n\r\nexport const setJigsawsRemove = jigsaws => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n dispatch(actions.setJigsawsRemove({ jigsawsRemove: jigsaws }));\r\n};\r\n\r\nexport const setJigsawForEdit = jigsaw => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n dispatch(actions.setJigsawForEdit({ jigsawForEdit: jigsaw }));\r\n};","import axios from \"axios\";\r\nimport { convertToDateTime } from \"../../../../util/Util\";\r\n\r\n// Method from server should return QueryResultsModel(items: any[], totalsCount: number)\r\n// items => filtered/sorted result\r\nexport function findItems(queryParams) {\r\n return axios.post(\"/api/item/find\", queryParams );\r\n}\r\n\r\n// CREATE => POST: add a new item to the server\r\nexport function createItem(item) {\r\n return axios.post(\"/api/item\", item );\r\n}\r\n\r\nexport function getItemById(itemId) {\r\n return axios.get(\"/api/item/\" + itemId );\r\n}\r\n\r\n// UPDATE => PUT: update the item on the server\r\nexport function updateItem(item) {\r\n var pricelists = [];\r\n item.pricelist.forEach(el => {\r\n var obj = { ...el };\r\n obj.effectiveDateFrom = convertToDateTime(el.effectiveDateFrom);\r\n pricelists.push(obj);\r\n });\r\n item.pricelist = pricelists;\r\n return axios.put(\"/api/item/\" + item.id, item);\r\n}\r\n\r\n// DELETE => delete the item from the server\r\nexport function deleteItem(itemId) {\r\n return axios.delete(\"/api/item/\" + itemId );\r\n}\r\n\r\n// DELETE Items by ids\r\nexport function deleteItems(ids) {\r\n return axios.post(\"/api/item/deleteItems\", { ids });\r\n}\r\n\r\nexport function upItemById(itemId) {\r\n return axios.get(\"/api/item/up/\" + itemId);\r\n}\r\n\r\nexport function downItemById(itemId) {\r\n return axios.get(\"/api/item/down/\" + itemId);\r\n}\r\n\r\nexport function checkIfEanCodeExist(itemId, eanCode) {\r\n return axios.post(\"/api/item/checkIfEanCodeExist\", {\r\n id: itemId == undefined ? -1 : itemId,\r\n eanCode: eanCode\r\n });\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useIntl } from \"react-intl\";\r\n\r\nexport function ItemEditDialogHeader({ id }) {\r\n const intl = useIntl();\r\n // Items Redux state\r\n const { itemForEdit, actionsLoading } = useSelector(\r\n (state) => ({\r\n itemForEdit: state.items.itemForEdit,\r\n actionsLoading: state.items.actionsLoading,\r\n }),\r\n shallowEqual\r\n );\r\n\r\n const [title, setTitle] = useState(\"\");\r\n // Title couting\r\n useEffect(() => {\r\n let _title = id ? \"\" : intl.formatMessage({ id: \"AUTH.ITEM.NEW\" }) ;\r\n if (itemForEdit && id) {\r\n _title = intl.formatMessage({ id: \"AUTH.ITEM.EDIT\" }) + ` '${itemForEdit.title}'`;\r\n }\r\n\r\n setTitle(_title);\r\n // eslint-disable-next-line\r\n }, [itemForEdit, actionsLoading]);\r\n\r\n return (\r\n <>\r\n {actionsLoading && }\r\n \r\n {title}\r\n \r\n \r\n );\r\n}\r\n","// *https://www.registers.service.gov.uk/registers/country/use-the-api*\r\nimport React from 'react';\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Select from '@material-ui/core/Select';\r\n\r\nexport default function SelectVat(props) {\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.cache }),\r\n shallowEqual\r\n );\r\n const { vatRates } = currentState;\r\n\r\n if ((props.value == null || props.value == undefined) && vatRates.length > 0) {\r\n props.onChange(vatRates[0].id);\r\n }\r\n\r\n return (\r\n <>\r\n { props.onChange(event.target.value); }}\r\n >\r\n {vatRates.map(option => (\r\n \r\n {option.title}\r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n","// *https://www.registers.service.gov.uk/registers/country/use-the-api*\r\nimport React, { useState, useEffect } from 'react';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Select from '@material-ui/core/Select';\r\n\r\n\r\nexport default function SelectVat(props) {\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.cache }),\r\n shallowEqual\r\n );\r\n const { itemTypes } = currentState;\r\n\r\n return (\r\n <>\r\n { props.onChange(event.target.value); }}\r\n >\r\n {itemTypes.map(option => (\r\n \r\n {option.title}\r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n","// *https://www.registers.service.gov.uk/registers/country/use-the-api*\r\nimport React, { useState, useEffect } from 'react';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Select from '@material-ui/core/Select';\r\n\r\nexport default function SelectVat(props) {\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.cache }),\r\n shallowEqual\r\n );\r\n const { units } = currentState;\r\n\r\n if ((props.value == null || props.value == undefined) && units.length > 0) {\r\n props.onChange(units[0].id);\r\n }\r\n\r\n return (\r\n <>\r\n { props.onChange(event.target.value); }}\r\n >\r\n {units.map(option => (\r\n \r\n {option.name}\r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n","// *https://www.registers.service.gov.uk/registers/country/use-the-api*\r\nimport React, { useState, useEffect } from 'react';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport default function AutocompleteItemGroup(props) {\r\n const intl = useIntl();\r\n const [open, setOpen] = useState(false);\r\n const [options, setOptions] = useState([]);\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [value, setValue] = useState(props.value);\r\n const loading = open && options.length === 0;\r\n\r\n useEffect(() => {\r\n let active = true;\r\n \r\n if (!loading) {\r\n return undefined;\r\n }\r\n\r\n (async () => {\r\n const response = await fetch('/api/itemgroup/all');\r\n const result = await response.json();\r\n\r\n if (active) {\r\n setOptions(Object.keys(result.entities).map((key) => result.entities[key]));\r\n }\r\n })();\r\n\r\n return () => {\r\n active = false;\r\n };\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (!open) {\r\n setOptions([]);\r\n }\r\n }, [open]);\r\n\r\n\r\n return (\r\n <>\r\n {\r\n setOpen(true);\r\n }}\r\n onClose={() => {\r\n setOpen(false);\r\n }}\r\n value={props.value}\r\n getOptionSelected={(option, value) => option.id === value.id}\r\n getOptionLabel={(option) => option.title}\r\n options={options}\r\n loading={loading}\r\n onChange={(event, value) => { setValue(value); props.onChange(value); }}\r\n onInputChange={(event, value) => { setInputValue(value); }}\r\n renderInput={(params) => (\r\n \r\n {loading ? : null}\r\n {params.InputProps.endAdornment}\r\n \r\n ),\r\n }}\r\n />\r\n )}\r\n />\r\n \r\n );\r\n}\r\n","/* eslint-disable no-unused-vars */\r\nimport React, { useEffect, useContext, createContext, useState, useCallback } from \"react\";\r\n\r\nconst PricelistsUIContext = createContext();\r\nexport function usePricelistsUIContext() {\r\n return useContext(PricelistsUIContext);\r\n}\r\n\r\nexport const PricelistsUIConsumer = PricelistsUIContext.Consumer;\r\nexport function PricelistsUIProvider({ readOnly, children }) {\r\n\r\n const [selectedId, setSelectedId] = useState(null);\r\n const [showEditPricelistDialog, setShowEditPricelistDialog] = useState(false);\r\n const initPricelist = {\r\n id: undefined,\r\n priceWithoutVat: 0,\r\n priceWithVat: 0,\r\n effectiveDateFrom: new Date()\r\n };\r\n\r\n\r\n const openEditPricelistDialog = id => {\r\n setSelectedId(id);\r\n setShowEditPricelistDialog(true);\r\n setShowDeletePricelistDialog(false);\r\n };\r\n\r\n const [showDeletePricelistDialog, setShowDeletePricelistDialog] = useState(false);\r\n const openDeletePricelistDialog = id => {\r\n setSelectedId(id);\r\n setShowDeletePricelistDialog(true);\r\n setShowEditPricelistDialog(false);\r\n };\r\n const closeDeletePricelistDialog = () => {\r\n setSelectedId(undefined);\r\n setShowDeletePricelistDialog(false);\r\n };\r\n\r\n const value = {\r\n initPricelist,\r\n selectedId,\r\n readOnly,\r\n openEditPricelistDialog,\r\n showDeletePricelistDialog,\r\n openDeletePricelistDialog,\r\n closeDeletePricelistDialog,\r\n };\r\n \r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../../../_metronic/_helpers\";\r\n\r\nexport const ActionsColumnFormatter = (\r\n cellContent,\r\n row,\r\n rowIndex,\r\n { openEditPricelistDialog, openDeletePricelistDialog }\r\n) => (\r\n <>\r\n {(row.id < 0 || row.effectiveDateFrom.getTime() > new Date().getTime()) && (\r\n <>\r\n }\r\n >\r\n openEditPricelistDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n\r\n <> \r\n }\r\n >\r\n openDeletePricelistDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n);\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport Moment from 'react-moment';\r\n\r\nexport function EffectiveDateFromColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n) {\r\n return (\r\n <>\r\n \r\n {cellContent}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport Moment from 'react-moment';\r\n\r\nexport function MoneyColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n) {\r\n return (\r\n <>\r\n {parseFloat(cellContent.toString()).toFixed(2).replace('.',',')}\r\n \r\n \r\n );\r\n}\r\n","// React bootstrap table next =>\r\n// DOCS: https://react-bootstrap-table.github.io/react-bootstrap-table2/docs/\r\n// STORYBOOK: https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html\r\nimport React, { useEffect, useMemo } from \"react\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory, {\r\n PaginationProvider,\r\n} from \"react-bootstrap-table2-paginator\";\r\n//import * as actions from \"../../../_redux/pricelists/pricelistsActions\";\r\nimport { ActionsColumnFormatter } from \"./column-formatters/ActionsColumnFormatter\";\r\nimport { EffectiveDateFromColumnFormatter } from \"./column-formatters/EffectiveDateFromColumnFormatter\";\r\nimport { MoneyColumnFormatter } from \"./column-formatters/MoneyColumnFormatter\";\r\nimport * as uiHelpers from \"./PricelistsUIHelper\";\r\nimport { Pagination } from \"../../../../../../_metronic/_partials/controls\";\r\nimport {\r\n getSelectRow,\r\n getHandlerTableChange,\r\n NoRecordsFoundMessage,\r\n PleaseWaitMessage,\r\n sortCaret,\r\n} from \"../../../../../../_metronic/_helpers\";\r\nimport { usePricelistsUIContext } from \"./PricelistsUIContext\";\r\nimport { useIntl } from \"react-intl\";\r\n\r\n\r\nexport function PricelistsTable() {\r\n const intl = useIntl();\r\n\r\n // Pricelists UI Context\r\n const pricelistsUIContext = usePricelistsUIContext();\r\n const pricelistsUIProps = useMemo(() => {\r\n return {\r\n openEditPricelistDialog: pricelistsUIContext.openEditPricelistDialog,\r\n openDeletePricelistDialog: pricelistsUIContext.openDeletePricelistDialog,\r\n readOnly: pricelistsUIContext.readOnly\r\n };\r\n }, [pricelistsUIContext]);\r\n\r\n // Getting curret state of products list from store (Redux)\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.items }),\r\n shallowEqual\r\n );\r\n const { pricelists } = currentState;\r\n\r\n\r\n const columns = [\r\n {\r\n dataField: \"effectiveDateFrom\",\r\n text: intl.formatMessage({ id: \"AUTH.INPUT.PRICE_DATE\" }),\r\n sort: false,\r\n formatter: EffectiveDateFromColumnFormatter\r\n },\r\n {\r\n dataField: \"priceWithoutVat\",\r\n text: intl.formatMessage({ id: \"AUTH.INPUT.PRICE_WITHOUT_VAT\" }),\r\n sort: false,\r\n formatter: MoneyColumnFormatter\r\n },\r\n {\r\n dataField: \"priceWithVat\",\r\n text: intl.formatMessage({ id: \"AUTH.INPUT.PRICE_WITH_VAT\" }),\r\n sort: false,\r\n formatter: MoneyColumnFormatter\r\n },\r\n {\r\n hidden: pricelistsUIProps.readOnly,\r\n dataField: \"action\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.ACTIONS\" }),\r\n formatter: ActionsColumnFormatter,\r\n formatExtraData: {\r\n openEditPricelistDialog: pricelistsUIProps.openEditPricelistDialog,\r\n openDeletePricelistDialog: pricelistsUIProps.openDeletePricelistDialog,\r\n },\r\n classes: \"text-right pr-0\",\r\n headerClasses: \"text-right pr-3\",\r\n style: {\r\n minWidth: \"100px\",\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","/* eslint-disable no-restricted-imports */\r\nimport React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport { ModalProgressBar } from \"../../../../../../_metronic/_partials/controls\";\r\nimport * as actions from \"../../../_redux/items/itemsActions\";\r\nimport { usePricelistsUIContext } from \"./PricelistsUIContext\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport function PricelistDeleteDialog() {\r\n // Pricelists UI Context\r\n const pricelistsUIContext = usePricelistsUIContext();\r\n const pricelistsUIProps = useMemo(() => {\r\n return {\r\n id: pricelistsUIContext.selectedId,\r\n setIds: pricelistsUIContext.setIds,\r\n showDeletePricelistDialog: pricelistsUIContext.showDeletePricelistDialog,\r\n closeDeletePricelistDialog: pricelistsUIContext.closeDeletePricelistDialog,\r\n };\r\n }, [pricelistsUIContext]);\r\n\r\n // Pricelists Redux state\r\n const dispatch = useDispatch();\r\n const { pricelists, pricelistsRemove } = useSelector(\r\n (state) => ({\r\n pricelists: state.items.pricelists,\r\n pricelistsRemove: state.items.pricelistsRemove\r\n }),\r\n shallowEqual\r\n );\r\n\r\n // if !id we should close modal\r\n useEffect(() => {\r\n if (!pricelistsUIProps.id) {\r\n pricelistsUIProps.closeDeletePricelistDialog();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [pricelistsUIProps.id]);\r\n\r\n const deletePricelist = () => {\r\n var el = pricelists.find(el => el.id == pricelistsUIProps.id);\r\n var list = pricelists.filter(x => x.id !== el.id);\r\n dispatch(actions.setPricelists(list));\r\n if (el.id > 0) {\r\n var listRemove = [...pricelistsRemove];\r\n listRemove.push(el);\r\n dispatch(actions.setPricelistsRemove(listRemove));\r\n }\r\n pricelistsUIProps.closeDeletePricelistDialog();\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","// Form is based on Formik\r\n// Data validation is based on Yup\r\n// Please, be familiar with article first:\r\n// https://hackernoon.com/react-form-validation-with-formik-and-yup-8b76bda62e10\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { decimal } from \"../../../../../../../../src/app/util/Util\";\r\nimport moment from 'moment'\r\n\r\nexport function PricelistEditForm({ savePricelist, pricelist, currentVatRate, readOnly }) {\r\n const intl = useIntl();\r\n\r\n const [pricelistId, setPricelistId] = useState(pricelist.id);\r\n const [effectiveDateFrom, setEffectiveDateFrom] = useState(moment(pricelist.effectiveDateFrom).format(\"YYYY-MM-DD\"));\r\n const [priceWithoutVat, setPriceWithoutVat] = useState(pricelist.priceWithoutVat);\r\n const [priceWithVat, setPriceWithVat] = useState(pricelist.priceWithVat);\r\n\r\n const [errorEffectiveDateFrom, setErrorEffectiveDateFrom] = useState(\"\");\r\n const [errorPriceWithoutVat, setErrorPriceWithoutVat] = useState(\"\");\r\n const [errorPriceWithVat, setErrorPriceWithVat] = useState(\"\");\r\n\r\n const [isValidated, setIsValidated] = useState(false);\r\n\r\n\r\n useEffect(() => {\r\n setPricelistId(pricelist.id);\r\n setEffectiveDateFrom(moment(pricelist.effectiveDateFrom).format(\"YYYY-MM-DD\"));\r\n setPriceWithoutVat(pricelist.priceWithoutVat);\r\n setPriceWithVat(pricelist.priceWithVat);\r\n }, [pricelist]);\r\n\r\n const getInputClasses = (fieldname) => {\r\n if (!isValidated) {\r\n return \"\";\r\n }\r\n switch (fieldname) {\r\n case \"effectiveDateFrom\":\r\n return errorEffectiveDateFrom.length > 0 ? \"is-invalid\" : \"is-valid\";\r\n case \"priceWithoutVat\":\r\n return errorPriceWithoutVat.length > 0 ? \"is-invalid\" : \"is-valid\";\r\n case \"priceWithVat\":\r\n return errorPriceWithVat.length > 0 ? \"is-invalid\" : \"is-valid\";\r\n }\r\n return \"\";\r\n };\r\n\r\n function release() {\r\n setPricelistId(undefined);\r\n setEffectiveDateFrom(moment(new Date()).format(\"YYYY-MM-DD\"));\r\n setPriceWithoutVat(0);\r\n setPriceWithVat(0);\r\n setIsValidated(false);\r\n setErrorEffectiveDateFrom(\"\");\r\n setErrorPriceWithoutVat(\"\");\r\n setErrorPriceWithVat(\"\");\r\n }\r\n\r\n function save() {\r\n if (validateForm()) {\r\n var obj = {\r\n id: pricelistId,\r\n priceWithoutVat: priceWithoutVat,\r\n priceWithVat: priceWithVat,\r\n effectiveDateFrom: moment(effectiveDateFrom).toDate(),\r\n };\r\n savePricelist(obj);\r\n }\r\n }\r\n\r\n function validateForm() {\r\n var res = true;\r\n if (effectiveDateFrom == undefined) {\r\n setErrorEffectiveDateFrom(intl.formatMessage({ id: 'AUTH.VALIDATION.REQUIRED_FIELD' }));\r\n res = false;\r\n } else {\r\n setErrorEffectiveDateFrom(\"\");\r\n }\r\n if (priceWithoutVat === undefined || priceWithoutVat === \"\" || priceWithoutVat === NaN) {\r\n setErrorPriceWithoutVat(intl.formatMessage({ id: 'AUTH.VALIDATION.REQUIRED_FIELD' }));\r\n res = false;\r\n } else {\r\n setErrorPriceWithoutVat(\"\");\r\n }\r\n\r\n if (priceWithVat === undefined || priceWithVat === \"\" || priceWithVat === NaN) {\r\n setErrorPriceWithVat(intl.formatMessage({ id: 'AUTH.VALIDATION.REQUIRED_FIELD' }));\r\n res = false;\r\n } else {\r\n setErrorPriceWithVat(\"\");\r\n }\r\n return res;\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n {\r\n var dt = new Date(event.target.value);\r\n\r\n var now = new Date();\r\n now.setDate(now.getDate() - 1);\r\n\r\n if (dt.getTime() > now.getTime()) {\r\n setEffectiveDateFrom(event.target.value);\r\n }\r\n }}\r\n />\r\n {errorEffectiveDateFrom.length > 0 ? (\r\n
\r\n
{errorEffectiveDateFrom}
\r\n
\r\n ) : null}\r\n
\r\n
\r\n \r\n {\r\n setPriceWithoutVat(event.target.value);\r\n var proc = (parseFloat('100') + parseFloat(currentVatRate.procent.toString().replace(',', '.'))) / parseFloat('100');\r\n var cal = parseFloat(event.target.value.replace(',', '.')) * parseFloat(proc.toString().replace(',', '.'));\r\n setPriceWithVat(Math.round(cal * 100000000) / 100000000);\r\n }}\r\n />\r\n {errorPriceWithoutVat.length > 0 ? (\r\n
\r\n
{errorPriceWithoutVat}
\r\n
\r\n ) : null}\r\n
\r\n
\r\n \r\n\r\n {\r\n setPriceWithVat(event.target.value);\r\n var proc = parseFloat('100') + parseFloat(currentVatRate.procent.toString().replace(',', '.'));\r\n var cal = (parseFloat(event.target.value.replace(',', '.')) * parseFloat('100')) / parseFloat(proc.toString().replace(',', '.'));\r\n setPriceWithoutVat(Math.round(cal * 100000000) / 100000000);\r\n }}\r\n />\r\n {errorPriceWithoutVat.length > 0 ? (\r\n
\r\n
{errorPriceWithVat}
\r\n
\r\n ) : null}\r\n\r\n
\r\n\r\n
\r\n
\r\n release()}\r\n >\r\n \r\n \r\n <> \r\n save()}\r\n >\r\n {pricelistId == undefined && }\r\n {pricelistId != undefined && }\r\n \r\n
\r\n
\r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport { PricelistEditForm } from \"./PricelistEditForm\";\r\nimport { usePricelistsUIContext } from \"../PricelistsUIContext\";\r\nimport * as actions from \"../../../../_redux/items/itemsActions\";\r\n\r\nexport function PricelistEditDialog() {\r\n // Pricelists UI Context\r\n const pricelistsUIContext = usePricelistsUIContext();\r\n const pricelistsUIProps = useMemo(() => {\r\n return {\r\n id: pricelistsUIContext.selectedId,\r\n showEditPricelistDialog: pricelistsUIContext.showEditPricelistDialog,\r\n initPricelist: pricelistsUIContext.initPricelist,\r\n readOnly: pricelistsUIContext.readOnly\r\n };\r\n }, [pricelistsUIContext]);\r\n\r\n // Pricelists Redux state\r\n const dispatch = useDispatch();\r\n const { pricelistForEdit, currentVatRate, pricelists } = useSelector(\r\n (state) => ({\r\n pricelistForEdit: state.items.pricelistForEdit,\r\n currentVatRate: state.cache.vatRates.find(el => el.id == state.items.currentVatRateId),\r\n pricelists: state.items.pricelists,\r\n pricelistsRemove: state.items.pricelistsRemove\r\n }),\r\n shallowEqual\r\n );\r\n\r\n // if !id we should close modal\r\n useEffect(() => {\r\n if (!pricelistsUIProps.showEditPricelistDialog && !pricelistsUIProps.id) {\r\n\r\n }\r\n var el = pricelists.find(el => el.id == pricelistsUIProps.id);\r\n dispatch(actions.setPricelistForEdit(el));\r\n }, [pricelistsUIProps.id]);\r\n\r\n const savePricelist = (pricelist) => {\r\n var list = [...pricelists];\r\n if (!pricelist.id) {\r\n var newId = 0;\r\n list.forEach(el => {\r\n if (el.id < newId) {\r\n newId = el.id;\r\n }\r\n });\r\n newId--;\r\n pricelist.id = newId;\r\n list.push(pricelist);\r\n } else {\r\n var index = list.findIndex(el => el.id == pricelist.id);\r\n list[index] = pricelist;\r\n dispatch(actions.setPricelistForEdit(undefined));\r\n }\r\n dispatch(actions.setPricelists(list));\r\n };\r\n \r\n return (\r\n \r\n );\r\n}\r\n","import React, { useMemo } from \"react\";\r\nimport { PricelistsTable } from \"./PricelistsTable\";\r\nimport { PricelistDeleteDialog } from \"./PricelistDeleteDialog\";\r\nimport { PricelistEditDialog } from \"./pricelist-edit-dialog/PricelistEditDialog\";\r\nimport { usePricelistsUIContext } from \"./PricelistsUIContext\";\r\n\r\nexport function Pricelists() {\r\n // Pricelists UI Context\r\n const pricelistsUIContext = usePricelistsUIContext();\r\n const pricelistsUIProps = useMemo(() => {\r\n return { ids: pricelistsUIContext.ids };\r\n }, [pricelistsUIContext]);\r\n return (\r\n <>\r\n \r\n \r\n
\r\n \r\n \r\n );\r\n}\r\n","/* eslint-disable no-unused-vars */\r\nimport React, { useEffect, useContext, createContext, useState, useCallback } from \"react\";\r\n\r\nconst JigsawsUIContext = createContext();\r\nexport function useJigsawsUIContext() {\r\n return useContext(JigsawsUIContext);\r\n}\r\n\r\nexport const JigsawsUIConsumer = JigsawsUIContext.Consumer;\r\nexport function JigsawsUIProvider({ readOnly, children }) {\r\n\r\n const [selectedId, setSelectedId] = useState(null);\r\n const [showEditJigsawDialog, setShowEditJigsawDialog] = useState(false);\r\n const initJigsaw = {\r\n id: undefined,\r\n quantity: 0,\r\n item2Id: null,\r\n item2: null\r\n };\r\n\r\n const openEditJigsawDialog = id => {\r\n setSelectedId(id);\r\n setShowEditJigsawDialog(true);\r\n setShowDeleteJigsawDialog(false);\r\n };\r\n\r\n const [showDeleteJigsawDialog, setShowDeleteJigsawDialog] = useState(false);\r\n const openDeleteJigsawDialog = id => {\r\n setSelectedId(id);\r\n setShowDeleteJigsawDialog(true);\r\n setShowEditJigsawDialog(false);\r\n };\r\n const closeDeleteJigsawDialog = () => {\r\n setSelectedId(undefined);\r\n setShowDeleteJigsawDialog(false);\r\n };\r\n\r\n const value = {\r\n initJigsaw,\r\n selectedId,\r\n readOnly,\r\n openEditJigsawDialog,\r\n showDeleteJigsawDialog,\r\n openDeleteJigsawDialog,\r\n closeDeleteJigsawDialog,\r\n };\r\n \r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../../../_metronic/_helpers\";\r\n\r\nexport const ActionsColumnFormatter = (\r\n cellContent,\r\n row,\r\n rowIndex,\r\n { openEditJigsawDialog, openDeleteJigsawDialog }\r\n) => (\r\n <>\r\n }\r\n >\r\n openEditJigsawDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n\r\n <> \r\n }\r\n >\r\n openDeleteJigsawDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport Moment from 'react-moment';\r\n\r\nexport function QuantityColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n) {\r\n return (\r\n <>\r\n {parseFloat(cellContent.toString()).toFixed(4).replace('.',',')}\r\n \r\n \r\n );\r\n}\r\n","// React bootstrap table next =>\r\n// DOCS: https://react-bootstrap-table.github.io/react-bootstrap-table2/docs/\r\n// STORYBOOK: https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html\r\nimport React, { useEffect, useMemo } from \"react\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport { ActionsColumnFormatter } from \"./column-formatters/ActionsColumnFormatter\";\r\nimport { QuantityColumnFormatter } from \"./column-formatters/QuantityColumnFormatter\";\r\nimport {\r\n getSelectRow,\r\n getHandlerTableChange,\r\n NoRecordsFoundMessage,\r\n PleaseWaitMessage,\r\n sortCaret,\r\n} from \"../../../../../../_metronic/_helpers\";\r\nimport { useJigsawsUIContext } from \"./JigsawsUIContext\";\r\nimport { useIntl } from \"react-intl\";\r\n\r\n\r\nexport function JigsawsTable() {\r\n const intl = useIntl();\r\n\r\n // Jigsaws UI Context\r\n const jigsawsUIContext = useJigsawsUIContext();\r\n const jigsawsUIProps = useMemo(() => {\r\n return {\r\n openEditJigsawDialog: jigsawsUIContext.openEditJigsawDialog,\r\n openDeleteJigsawDialog: jigsawsUIContext.openDeleteJigsawDialog,\r\n readOnly: jigsawsUIContext.readOnly\r\n };\r\n }, [jigsawsUIContext]);\r\n\r\n // Getting curret state of products list from store (Redux)\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.items }),\r\n shallowEqual\r\n );\r\nconst { jigsaws } = currentState;\r\n\r\n const columns = [\r\n {\r\n dataField: \"item2.title\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM\" }),\r\n sort: false,\r\n },\r\n {\r\n dataField: \"quantity\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.QUANTITY\" }),\r\n sort: false,\r\n formatter: QuantityColumnFormatter\r\n },\r\n {\r\n hidden: jigsawsUIProps.readOnly,\r\n dataField: \"action\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.ACTIONS\" }),\r\n formatter: ActionsColumnFormatter,\r\n formatExtraData: {\r\n openEditJigsawDialog: jigsawsUIProps.openEditJigsawDialog,\r\n openDeleteJigsawDialog: jigsawsUIProps.openDeleteJigsawDialog,\r\n },\r\n classes: \"text-right pr-0\",\r\n headerClasses: \"text-right pr-3\",\r\n style: {\r\n minWidth: \"100px\",\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","/* eslint-disable no-restricted-imports */\r\nimport React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport { ModalProgressBar } from \"../../../../../../_metronic/_partials/controls\";\r\nimport * as actions from \"../../../_redux/items/itemsActions\";\r\nimport { useJigsawsUIContext } from \"./JigsawsUIContext\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport function JigsawDeleteDialog() {\r\n // Jigsaws UI Context\r\n const jigsawsUIContext = useJigsawsUIContext();\r\n const jigsawsUIProps = useMemo(() => {\r\n return {\r\n id: jigsawsUIContext.selectedId,\r\n setIds: jigsawsUIContext.setIds,\r\n showDeleteJigsawDialog: jigsawsUIContext.showDeleteJigsawDialog,\r\n closeDeleteJigsawDialog: jigsawsUIContext.closeDeleteJigsawDialog,\r\n };\r\n }, [jigsawsUIContext]);\r\n\r\n // Jigsaws Redux state\r\n const dispatch = useDispatch();\r\n const { jigsaws, jigsawsRemove } = useSelector(\r\n (state) => ({\r\n jigsaws: state.items.jigsaws,\r\n jigsawsRemove: state.items.jigsawsRemove\r\n }),\r\n shallowEqual\r\n );\r\n\r\n // if !id we should close modal\r\n useEffect(() => {\r\n if (!jigsawsUIProps.id) {\r\n jigsawsUIProps.closeDeleteJigsawDialog();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [jigsawsUIProps.id]);\r\n\r\n const deleteJigsaw = () => {\r\n var el = jigsaws.find(el => el.id == jigsawsUIProps.id);\r\n var list = jigsaws.filter(x => x.id !== el.id);\r\n dispatch(actions.setJigsaws(list));\r\n if (el.id > 0) {\r\n var listRemove = [...jigsawsRemove];\r\n listRemove.push(el);\r\n dispatch(actions.setJigsawsRemove(listRemove));\r\n }\r\n jigsawsUIProps.closeDeleteJigsawDialog();\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","// *https://www.registers.service.gov.uk/registers/country/use-the-api*\r\nimport React, { useState, useEffect } from 'react';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport default function AutocompleteItemGoods(props) {\r\n const intl = useIntl();\r\n const [open, setOpen] = useState(false);\r\n const [options, setOptions] = useState([]);\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [value, setValue] = useState(props.value);\r\n const loading = open && options.length === 0;\r\n\r\n useEffect(() => {\r\n let active = true;\r\n \r\n if (!loading) {\r\n return undefined;\r\n }\r\n\r\n (async () => {\r\n const response = await fetch('/api/item/goodsAll');\r\n const result = await response.json();\r\n\r\n if (active) {\r\n setOptions(Object.keys(result.entities).map((key) => result.entities[key]));\r\n }\r\n })();\r\n\r\n return () => {\r\n active = false;\r\n };\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (!open) {\r\n setOptions([]);\r\n }\r\n }, [open]);\r\n\r\n\r\n return (\r\n <>\r\n {\r\n setOpen(true);\r\n }}\r\n onClose={() => {\r\n setOpen(false);\r\n }}\r\n value={props.value}\r\n getOptionSelected={(option, value) => option.id === value.id}\r\n getOptionLabel={(option) => option.title}\r\n options={options}\r\n loading={loading}\r\n onChange={(event, value) => { setValue(value); props.onChange(value); }}\r\n onInputChange={(event, value) => { setInputValue(value); }}\r\n renderInput={(params) => (\r\n \r\n {loading ? : null}\r\n {params.InputProps.endAdornment}\r\n \r\n ),\r\n }}\r\n />\r\n )}\r\n />\r\n \r\n );\r\n}\r\n","// Form is based on Formik\r\n// Data validation is based on Yup\r\n// Please, be familiar with article first:\r\n// https://hackernoon.com/react-form-validation-with-formik-and-yup-8b76bda62e10\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { decimal } from \"../../../../../../../../src/app/util/Util\";\r\nimport AutocompleteItemGoods from \"../../../../../../components/AutocompleteItemGoods\"\r\n\r\nexport function JigsawEditForm({ saveJigsaw, jigsaw, currentVatRate, readOnly }) {\r\n const intl = useIntl();\r\n\r\n const [jigsawId, setJigsawId] = useState(jigsaw.id);\r\n const [item2, setItem2] = useState(jigsaw.item2);\r\n const [quantity, setQuantity] = useState(jigsaw.quantity);\r\n const [errorItem2, setErrorItem2] = useState(\"\");\r\n const [errorQuantity, setErrorQuantity] = useState(\"\");\r\n const [isValidated, setIsValidated] = useState(false);\r\n\r\n useEffect(() => {\r\n setJigsawId(jigsaw.id);\r\n setItem2(jigsaw.item2);\r\n setQuantity(jigsaw.quantity);\r\n }, [jigsaw]);\r\n\r\n const getInputClasses = (fieldname) => {\r\n if (!isValidated) {\r\n return \"\";\r\n }\r\n switch (fieldname) {\r\n case \"item2\":\r\n return errorItem2.length > 0 ? \"is-invalid\" : \"is-valid\";\r\n case \"quantity\":\r\n return errorQuantity.length > 0 ? \"is-invalid\" : \"is-valid\";\r\n }\r\n return \"\";\r\n };\r\n\r\n function release() {\r\n setJigsawId(undefined);\r\n setItem2(null);\r\n setQuantity(0);\r\n setIsValidated(false);\r\n setErrorItem2(\"\");\r\n setErrorQuantity(\"\");\r\n }\r\n\r\n function save() {\r\n if (validateForm()) {\r\n var obj = {\r\n id: jigsawId,\r\n quantity: quantity,\r\n item2Id: item2.id,\r\n item2: item2\r\n };\r\n saveJigsaw(obj);\r\n }\r\n }\r\n\r\n function validateForm() {\r\n var res = true;\r\n if (item2 == undefined) {\r\n setErrorItem2(intl.formatMessage({ id: 'AUTH.VALIDATION.REQUIRED_FIELD' }));\r\n res = false;\r\n } else {\r\n setErrorItem2(\"\");\r\n }\r\n if (quantity === undefined || quantity === \"\" || quantity === NaN) {\r\n setErrorQuantity(intl.formatMessage({ id: 'AUTH.VALIDATION.REQUIRED_FIELD' }));\r\n res = false;\r\n } else {\r\n setErrorQuantity(\"\");\r\n }\r\n \r\n return res;\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n {\r\n setItem2(val);\r\n }}\r\n />\r\n {errorItem2.length > 0 ? (\r\n
\r\n
{errorItem2}
\r\n
\r\n ) : null}\r\n
\r\n
\r\n \r\n {\r\n setQuantity(event.target.value);\r\n }}\r\n />\r\n {errorQuantity.length > 0 ? (\r\n
\r\n
{errorQuantity}
\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n
\r\n release()}\r\n >\r\n \r\n \r\n <> \r\n save()}\r\n >\r\n {jigsawId == undefined && }\r\n {jigsawId != undefined && }\r\n \r\n
\r\n
\r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport { JigsawEditForm } from \"./JigsawEditForm\";\r\nimport { useJigsawsUIContext } from \"../JigsawsUIContext\";\r\nimport * as actions from \"../../../../_redux/items/itemsActions\";\r\n\r\nexport function JigsawEditDialog() {\r\n // Jigsaws UI Context\r\n const jigsawsUIContext = useJigsawsUIContext();\r\n const jigsawsUIProps = useMemo(() => {\r\n return {\r\n id: jigsawsUIContext.selectedId,\r\n showEditJigsawDialog: jigsawsUIContext.showEditJigsawDialog,\r\n initJigsaw: jigsawsUIContext.initJigsaw,\r\n readOnly: jigsawsUIContext.readOnly\r\n };\r\n }, [jigsawsUIContext]);\r\n\r\n // Jigsaws Redux state\r\n const dispatch = useDispatch();\r\n const { jigsawForEdit, currentVatRate, jigsaws } = useSelector(\r\n (state) => ({\r\n jigsawForEdit: state.items.jigsawForEdit,\r\n currentVatRate: state.cache.vatRates.find(el => el.id == state.items.currentVatRateId),\r\n jigsaws: state.items.jigsaws,\r\n jigsawsRemove: state.items.jigsawsRemove\r\n }),\r\n shallowEqual\r\n );\r\n\r\n // if !id we should close modal\r\n useEffect(() => {\r\n if (!jigsawsUIProps.showEditJigsawDialog && !jigsawsUIProps.id) {\r\n\r\n }\r\n var el = jigsaws.find(el => el.id == jigsawsUIProps.id);\r\n dispatch(actions.setJigsawForEdit(el));\r\n }, [jigsawsUIProps.id]);\r\n\r\n const saveJigsaw = (jigsaw) => {\r\n var list = [...jigsaws];\r\n if (!jigsaw.id) {\r\n var newId = 0;\r\n list.forEach(el => {\r\n if (el.id < newId) {\r\n newId = el.id;\r\n }\r\n });\r\n newId--;\r\n jigsaw.id = newId;\r\n list.push(jigsaw);\r\n } else {\r\n var index = list.findIndex(el => el.id == jigsaw.id);\r\n list[index] = jigsaw;\r\n dispatch(actions.setJigsawForEdit(undefined));\r\n }\r\n dispatch(actions.setJigsaws(list));\r\n };\r\n \r\n return (\r\n \r\n );\r\n}\r\n","import React, { useMemo } from \"react\";\r\nimport { JigsawsTable } from \"./JigsawsTable\";\r\nimport { JigsawDeleteDialog } from \"./JigsawDeleteDialog\";\r\nimport { JigsawEditDialog } from \"./jigsaw-edit-dialog/JigsawEditDialog\";\r\nimport { useJigsawsUIContext } from \"./JigsawsUIContext\";\r\n\r\nexport function Jigsaws() {\r\n // Jigsaws UI Context\r\n const jigsawsUIContext = useJigsawsUIContext();\r\n const jigsawsUIProps = useMemo(() => {\r\n return { ids: jigsawsUIContext.ids };\r\n }, [jigsawsUIContext]);\r\n \r\n return (\r\n <>\r\n \r\n \r\n
\r\n \r\n \r\n );\r\n}\r\n","// Form is based on Formik\r\n// Data validation is based on Yup\r\n// Please, be familiar with article first:\r\n// https://hackernoon.com/react-form-validation-with-formik-and-yup-8b76bda62e10\r\nimport React, { useEffect, useState, useRef } from \"react\";\r\nimport { Modal, Button, InputGroup, Spinner } from \"react-bootstrap\";\r\nimport { Formik, Form, Field } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport {\r\n Input,\r\n} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport ErrorPopup from \"../../../../Helpers/ErrorPopup\"\r\nimport InfoPopup from \"../../../../Helpers/InfoPopup\"\r\nimport { CheckPermissions, hasRoleForFunctionality } from \"../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../enum/userFunctionalityE\"\r\nimport { useSelector } from \"react-redux\";\r\nimport { SketchPicker } from 'react-color'\r\nimport { onlyDigits, onlyPositiveDecimal } from \"../../../../../util/Util\";\r\nimport SelectVat from \"../../../../../components/SelectVat\"\r\nimport SelectItemType from \"../../../../../components/SelectItemType\"\r\nimport SelectUnit from \"../../../../../components/SelectUnit\"\r\nimport AutocompleteItemGroup from \"../../../../../components/AutocompleteItemGroup\"\r\nimport { checkIfEanCodeExist } from \"../../../_redux/items/itemsCrud\";\r\nimport { PricelistsUIProvider } from \"../item-pricelist/PricelistsUIContext\";\r\nimport { Pricelists } from \"../item-pricelist/Pricelists\";\r\nimport * as actions from \"../../../_redux/items/itemsActions\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { JigsawsUIProvider } from \"../item-jigsaw/JigsawsUIContext\";\r\nimport { Jigsaws } from \"../item-jigsaw/Jigsaws\";\r\n\r\n\r\nexport function ItemEditForm({\r\n saveItem,\r\n item,\r\n actionsLoading,\r\n onHide,\r\n}) {\r\n const [tab, setTab] = useState(\"details\");\r\n const { user } = useSelector(state => state.auth);\r\n const intl = useIntl();\r\n const [errorMessage, setErrorMessage] = useState(\"\");\r\n const [errorOpen, setErrorOpen] = useState(false);\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n const [background, setBackground] = useState(item != undefined ? item.background : \"#ffffff\");\r\n const [displayBackgroundPicker, setDisplayBackgroundPicker] = useState(false);\r\n const [foreground, setForeground] = useState(item != undefined ? item.foreground : \"#ffffff\");\r\n const [displayForegroundPicker, setDisplayForegroundPicker] = useState(false);\r\n const [vatRateId, setVatRateId] = useState(item != undefined ? item.vatRateId : 1);\r\n const [itemTypeId, setItemTypeId] = useState(item != undefined ? item.itemTypeId : 1);\r\n const [unitId, setUnitId] = useState(item != undefined ? item.unitId : null);\r\n const [itemGroup, setItemGroup] = useState(item != undefined ? item.itemGroup : null);\r\n\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n setBackground(item != undefined ? item.background : \"#ffffff\");\r\n setForeground(item != undefined ? item.foreground : \"#ffffff\");\r\n setItemGroup(item != undefined ? item.itemGroup : null);\r\n setVatRateId(item != undefined ? item.vatRateId : 1);\r\n setItemTypeId(item != undefined ? item.itemTypeId : 1);\r\n setUnitId(item != undefined ? item.unitId : null);\r\n dispatch(actions.setCurrentVatRateId(item != undefined ? item.vatRateId : 1));\r\n }, [user, item]);\r\n\r\n var readOnly = !hasRoleForFunctionality(user, [UserFunctionalityE.UrediSkupineIzdelkov]);\r\n\r\n // Validation schema\r\n const ItemEditSchema = Yup.object().shape({\r\n title: Yup.string()\r\n .max(250, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_250_SYMBOLS' }))\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })),\r\n fontSize: Yup.number()\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n }))\r\n .test('validator', intl.formatMessage({ id: 'FONT_SIZE.MORE_THEN_6' }), value => {\r\n return new Promise((resolve, reject) => {\r\n var num = parseFloat(value);\r\n resolve(num >= 7);\r\n })\r\n }),\r\n supplierNumber: Yup.string()\r\n .max(200, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_200_SYMBOLS' })),\r\n maxDiscount: Yup.number()\r\n .test('validator', intl.formatMessage({ id: 'MAX_DISCOUNT.MORE_0_TO_100' }), value => {\r\n return new Promise((resolve, reject) => {\r\n if (value == undefined) {\r\n resolve(true);\r\n }\r\n var num = parseFloat(value);\r\n resolve(num >= 0 && num <= 100);\r\n })\r\n }),\r\n eanCode: Yup.string()\r\n .max(50, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_30_SYMBOLS' }))\r\n .test('validator', intl.formatMessage({ id: 'ITEM.GENERAL.ITEM_EAN_CODE_EXISTS_YET' }), value => {\r\n return new Promise((resolve, reject) => {\r\n if (value != undefined && value != \"\" && value != null) {\r\n checkIfEanCodeExist(item.id, value)\r\n .then(({ data }) => {\r\n if (!data.didError) {\r\n resolve(!data.model);\r\n } else {\r\n resolve(false);\r\n }\r\n })\r\n .catch((e) => {\r\n resolve(false);\r\n });\r\n } else {\r\n resolve(true);\r\n }\r\n })\r\n }),\r\n });\r\n\r\n function validateForm(values) {\r\n if (itemGroup != null) {\r\n return true;\r\n } else {\r\n setMessage(intl.formatMessage({ id: 'AUTH.INFO_SELECT_ITEM_GROUP' }));\r\n setOpen(true);\r\n return false;\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n if (validateForm(values)) {\r\n var obj = {\r\n id: values.id,\r\n title: values.title,\r\n description: values.description,\r\n eanCode: values.eanCode,\r\n supplierNumber: values.supplierNumber,\r\n allowedDiscount: values.allowedDiscount,\r\n appearInCashier: values.appearInCashier,\r\n isTdr: values.isTdr,\r\n isConsignmentStock: values.isConsignmentStock,\r\n exemptForVat: values.exemptForVat,\r\n background: background,\r\n foreground: foreground,\r\n fontSize: values.fontSize,\r\n order: values.order,\r\n active: values.active,\r\n maxDiscount: values.maxDiscount,\r\n grossWeightPerUnit: values.grossWeightPerUnit,\r\n itemGroupId: itemGroup.id,\r\n itemGroup: itemGroup,\r\n vatRateId: vatRateId,\r\n unitId: unitId,\r\n itemTypeId: itemTypeId,\r\n printer1: values.printer1,\r\n printer2: values.printer2,\r\n printer3: values.printer3\r\n };\r\n saveItem(obj);\r\n }\r\n }\r\n }\r\n >\r\n {({ handleSubmit, errors, values }) => (\r\n <>\r\n {!actionsLoading && (\r\n
    \r\n
  • setTab(\"details\")}>\r\n \r\n \r\n \r\n
  • \r\n
  • setTab(\"price\")}>\r\n \r\n \r\n \r\n
  • \r\n {itemTypeId == 2 && (\r\n
  • setTab(\"jigsaw\")}>\r\n \r\n \r\n \r\n
  • \r\n )}\r\n
  • setTab(\"shape\")}>\r\n \r\n \r\n \r\n
  • \r\n
\r\n )}\r\n \r\n \r\n {actionsLoading && (\r\n
\r\n
\r\n
\r\n )}\r\n\r\n {!actionsLoading && (\r\n
\r\n {tab === \"details\" && (\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 { setVatRateId(val); dispatch(actions.setCurrentVatRateId(val)); }}\r\n />\r\n
\r\n\r\n
\r\n \r\n { setItemTypeId(val); }}\r\n />\r\n
\r\n\r\n
\r\n \r\n { setUnitId(val); }}\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n {\r\n setItemGroup(val);\r\n setBackground(val.background);\r\n setForeground(val.foreground);\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 {itemTypeId == 1 && (\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\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 {tab === \"price\" && (\r\n \r\n \r\n \r\n )}\r\n\r\n {tab === \"jigsaw\" && (\r\n \r\n \r\n \r\n )}\r\n\r\n {tab === \"shape\" && (\r\n <>\r\n
\r\n
\r\n \r\n
\r\n
{ if (readOnly) return; setDisplayBackgroundPicker(!displayBackgroundPicker); }}>\r\n
\r\n
\r\n {displayBackgroundPicker ?
\r\n { setDisplayBackgroundPicker(false); }} />\r\n { setBackground(color.hex); }} />\r\n
: null}\r\n
\r\n {/* Foreground */}\r\n
\r\n \r\n
\r\n
{ if (readOnly) return; setDisplayForegroundPicker(!displayForegroundPicker); }}>\r\n
\r\n
\r\n {displayForegroundPicker ?
\r\n { setDisplayForegroundPicker(false); }} />\r\n { setForeground(color.hex); }} />\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 \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 {!actionsLoading && (\r\n \r\n handleSubmit()}\r\n className=\"btn btn-primary btn-elevate\"\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n setErrorOpen(false)} />\r\n { setOpen(false); }} />\r\n \r\n );\r\n}\r\n","export const defaultSorted = [{ dataField: \"id\", order: \"asc\" }];\r\nexport const sizePerPageList = [\r\n { text: \"10\", value: 10 },\r\n { text: \"25\", value: 25 },\r\n { text: \"50\", value: 50 }\r\n];\r\nexport const initialFilter = {\r\n status: 1,\r\n query: \"\",\r\n sortOrder: \"asc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25\r\n};\r\n","import React, {createContext, useContext, useState, useCallback} from \"react\";\r\nimport {isEqual, isFunction} from \"lodash\";\r\nimport {initialFilter} from \"./ItemsUIHelpers\";\r\n\r\nconst ItemsUIContext = createContext();\r\n\r\nexport function useItemsUIContext() {\r\n return useContext(ItemsUIContext);\r\n}\r\n\r\nexport const ItemsUIConsumer = ItemsUIContext.Consumer;\r\n\r\nexport function ItemsUIProvider({itemsUIEvents, children}) {\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n const initItem = {\r\n id: undefined,\r\n title: \"\",\r\n description: \"\",\r\n eanCode: \"\",\r\n supplierNumber: \"\",\r\n allowedDiscount: true,\r\n appearInCashier: true,\r\n isTdr: false,\r\n isConsignmentStock: false,\r\n exemptForVat: false,\r\n background: \"#96BAF6\",\r\n foreground: \"#EFDCDC\",\r\n fontSize: 14,\r\n order: -1,\r\n maxDiscount: \"\",\r\n grossWeightPerUnit: \"\",\r\n itemGroup: null,\r\n itemGroupId: undefined,\r\n vatRateId: 1,\r\n unitId: null,\r\n itemTypeId: 1,\r\n active: true,\r\n printer1: true,\r\n printer2: false,\r\n printer3: false,\r\n pricelist: [],\r\n jigsaws1: []\r\n };\r\n \r\n const value = {\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initItem,\r\n newItemButtonClick: itemsUIEvents.newItemButtonClick,\r\n openEditItemDialog: itemsUIEvents.openEditItemDialog,\r\n openDeleteItemDialog: itemsUIEvents.openDeleteItemDialog,\r\n openItemStockMovementDialog: itemsUIEvents.openItemStockMovementDialog,\r\n openUpItem: itemsUIEvents.openUpItem,\r\n openDownItem: itemsUIEvents.openDownItem\r\n };\r\n\r\n return {children};\r\n}","import React, { useEffect, useMemo, useState, useRef } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/items/itemsActions\";\r\nimport { ItemEditDialogHeader } from \"./ItemEditDialogHeader\";\r\nimport { ItemEditForm } from \"./ItemEditForm\";\r\nimport { useItemsUIContext } from \"../ItemsUIContext\";\r\n\r\nexport function ItemEditDialog({ id, show, onHide }) {\r\n // Items UI Context\r\n const itemsUIContext = useItemsUIContext();\r\n const itemsUIProps = useMemo(() => {\r\n return {\r\n initItem: itemsUIContext.initItem,\r\n };\r\n }, [itemsUIContext]);\r\n\r\n // Items Redux state\r\n const dispatch = useDispatch();\r\n const { actionsLoading, itemForEdit, pricelists, pricelistsRemove,\r\n jigsaws, jigsawsRemove } = useSelector(\r\n (state) => ({\r\n actionsLoading: state.items.actionsLoading,\r\n itemForEdit: state.items.itemForEdit,\r\n pricelists: state.items.pricelists,\r\n pricelistsRemove: state.items.pricelistsRemove,\r\n jigsaws: state.items.jigsaws,\r\n jigsawsRemove: state.items.jigsawsRemove\r\n }),\r\n shallowEqual\r\n );\r\n\r\n useEffect(() => {\r\n dispatch(actions.fetchItem(id));\r\n }, [id, dispatch]);\r\n\r\n// server request for saving item\r\n const saveItem = (item) => {\r\n\r\n item.pricelist = [...pricelists];\r\n item.pricelistRemove = [...pricelistsRemove];\r\n item.jigsaws1 = [...jigsaws];\r\n item.jigsawsRemove = [...jigsawsRemove];\r\n\r\n if (!id) {\r\n // server request for creating item\r\n dispatch(actions.createItem(item)).then(() => { dispatch(actions.fetchItem(null)); onHide(); });\r\n } else {\r\n // server request for updating item\r\n dispatch(actions.updateItem(item)).then(() => { dispatch(actions.fetchItem(null)); onHide(); });\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","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport * as actions from \"../../../_redux/items/itemsActions\";\r\nimport { useItemsUIContext } from \"../ItemsUIContext\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport function ItemDeleteDialog({ id, show, onHide }) {\r\n // Items UI Context\r\n const itemsUIContext = useItemsUIContext();\r\n const itemsUIProps = useMemo(() => {\r\n return {\r\n setIds: itemsUIContext.setIds,\r\n queryParams: itemsUIContext.queryParams\r\n };\r\n }, [itemsUIContext]);\r\n\r\n // Items Redux state\r\n const dispatch = useDispatch();\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.items.actionsLoading }),\r\n shallowEqual\r\n );\r\n\r\n // if !id we should close modal\r\n useEffect(() => {\r\n if (!id) {\r\n onHide();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [id]);\r\n\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading, dispatch]);\r\n\r\n const deleteItem = () => {\r\n // server request for deleting item by id\r\n dispatch(actions.deleteItem(id)).then(() => {\r\n // refresh list after deletion\r\n dispatch(actions.fetchItems(itemsUIProps.queryParams));\r\n // clear selections list\r\n itemsUIProps.setIds([]);\r\n // closing delete modal\r\n onHide();\r\n });\r\n };\r\n\r\n return (\r\n \r\n {/*begin::Loading*/}\r\n {isLoading && }\r\n {/*end::Loading*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isLoading && (\r\n \r\n )}\r\n {isLoading && }\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","import React, { useMemo } from \"react\";\r\nimport { Formik, Field } from \"formik\";\r\nimport { isEqual } from \"lodash\";\r\nimport { useItemsUIContext } from \"../ItemsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport AutocompleteItemGroup from \"../../../../../components/AutocompleteItemGroup\"\r\nimport {\r\n Input,\r\n} from \"../../../../../../_metronic/_partials/controls\";\r\n\r\nconst prepareFilter = (queryParams, values) => {\r\n\r\n const { searchText, status, itemGroupId } = values;\r\n const newQueryParams = { ...queryParams };\r\n \r\n newQueryParams.query = searchText;\r\n newQueryParams.status = status !== \"\" ? + status : undefined;\r\n newQueryParams.itemGroupId = itemGroupId !== \"\" ? + itemGroupId : undefined;\r\n return newQueryParams;\r\n};\r\n\r\nexport function ItemsFilter({ listLoading }) {\r\n const intl = useIntl();\r\n\r\n // Items UI Context\r\n const itemsUIContext = useItemsUIContext();\r\n const itemsUIProps = useMemo(() => {\r\n return {\r\n queryParams: itemsUIContext.queryParams,\r\n setQueryParams: itemsUIContext.setQueryParams,\r\n };\r\n }, [itemsUIContext]);\r\n\r\n // queryParams, setQueryParams,\r\n const applyFilter = (values) => {\r\n const newQueryParams = prepareFilter(itemsUIProps.queryParams, values);\r\n if (!isEqual(newQueryParams, itemsUIProps.queryParams)) {\r\n newQueryParams.pageNumber = 1;\r\n // update list by queryParams\r\n itemsUIProps.setQueryParams(newQueryParams);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {\r\n applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n if (val == null) {\r\n setFieldValue(\"itemGroupId\", \"\");\r\n } else {\r\n setFieldValue(\"itemGroupId\", val.id);\r\n }\r\n handleSubmit();\r\n }}\r\n /> \r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setFieldValue(\"status\", e.target.value);\r\n handleSubmit();\r\n }}\r\n onBlur={handleBlur}\r\n value={values.status}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setFieldValue(\"searchText\", e.target.value);\r\n handleSubmit();\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","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../../../_metronic/_helpers\";\r\nimport { CheckPermissions } from \"../../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../../enum/userFunctionalityE\"\r\n\r\n\r\nexport function ActionsColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n { openEditItemDialog, openDeleteItemDialog, openUpItem, openDownItem, itemGroupId }\r\n) {\r\n return (\r\n <>\r\n openEditItemDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n <> \r\n {row.active && (\r\n \r\n openDeleteItemDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n {itemGroupId > 0 && (\r\n <>\r\n openUpItem(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n\r\n openDownItem(row.id)}\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","// React bootstrap table next =>\r\n// DOCS: https://react-bootstrap-table.github.io/react-bootstrap-table2/docs/\r\n// STORYBOOK: https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html\r\nimport React, { useEffect, useMemo, useState } from \"react\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory, {\r\n PaginationProvider,\r\n} from \"react-bootstrap-table2-paginator\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/items/itemsActions\";\r\nimport {\r\n getSelectRow,\r\n getHandlerTableChange,\r\n NoRecordsFoundMessage,\r\n PleaseWaitMessage,\r\n sortCaret,\r\n headerSortingClasses,\r\n} from \"../../../../../../_metronic/_helpers\";\r\nimport * as uiHelpers from \"../ItemsUIHelpers\";\r\nimport * as columnFormatters from \"./column-formatters\";\r\nimport { Pagination } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useItemsUIContext } from \"../ItemsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { upItemById, downItemById } from \"../../../_redux/items/itemsCrud\";\r\nimport InfoPopup from \"../../../../Helpers/InfoPopup\"\r\n\r\nexport function ItemsTable() {\r\n const intl = useIntl();\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n // Items UI Context\r\n const itemsUIContext = useItemsUIContext();\r\n const itemsUIProps = useMemo(() => {\r\n return {\r\n ids: itemsUIContext.ids,\r\n setIds: itemsUIContext.setIds,\r\n queryParams: itemsUIContext.queryParams,\r\n setQueryParams: itemsUIContext.setQueryParams,\r\n openEditItemDialog: itemsUIContext.openEditItemDialog,\r\n openDeleteItemDialog: itemsUIContext.openDeleteItemDialog,\r\n openUpItem: openUpItem,\r\n openDownItem: openDownItem\r\n };\r\n }, [itemsUIContext]);\r\n\r\n // Getting curret state of items list from store (Redux)\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.items }),\r\n shallowEqual\r\n );\r\n const { totalCount, entities, listLoading } = currentState;\r\n\r\n // Items Redux state\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n // clear selections list\r\n itemsUIProps.setIds([]);\r\n // server call by queryParams\r\n dispatch(actions.fetchItems(itemsUIProps.queryParams));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [itemsUIProps.queryParams, dispatch]);\r\n\r\n // Table columns\r\n const columns = [\r\n {\r\n dataField: \"id\",\r\n text: \"#\",\r\n sort: false,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"title\",\r\n text: intl.formatMessage({ id: \"AUTH.INPUT.TITLE\" }),\r\n sort: false,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"itemGroup.title\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM_GROUP\" }),\r\n sort: false,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"action\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.ACTIONS\" }),\r\n formatter: columnFormatters.ActionsColumnFormatter,\r\n formatExtraData: {\r\n openEditItemDialog: itemsUIProps.openEditItemDialog,\r\n openDeleteItemDialog: itemsUIProps.openDeleteItemDialog,\r\n openUpItem: itemsUIProps.openUpItem,\r\n openDownItem: itemsUIProps.openDownItem,\r\n itemGroupId: itemsUIProps.queryParams.itemGroupId,\r\n\r\n },\r\n classes: \"text-right pr-0\",\r\n headerClasses: \"text-right pr-3\",\r\n style: {\r\n minWidth: \"100px\",\r\n },\r\n },\r\n ];\r\n\r\n const customTotal = (from, to, size) => (\r\n \r\n {from} - { to} {size} \r\n \r\n );\r\n\r\n function openUpItem(id) {\r\n upItemById(id).then(({ data }) => {\r\n if (!data.didError && data.model) {\r\n dispatch(actions.fetchItems(itemsUIProps.queryParams));\r\n }\r\n else {\r\n setMessage(intl.formatMessage({ id: \"AUTH.ITEM_GROUP.CAN_NOT_UP\" }));\r\n setOpen(true);\r\n }\r\n });\r\n }\r\n\r\n function openDownItem (id) {\r\n downItemById(id).then(({ data }) => {\r\n if (!data.didError && data.model) {\r\n dispatch(actions.fetchItems(itemsUIProps.queryParams));\r\n }\r\n else {\r\n setMessage(intl.formatMessage({ id: \"AUTH.ITEM_GROUP.CAN_NOT_DOWN\" }));\r\n setOpen(true);\r\n }\r\n });\r\n }\r\n\r\n // Table pagination properties\r\n const paginationOptions = {\r\n custom: true,\r\n totalSize: totalCount,\r\n sizePerPageList: uiHelpers.sizePerPageList,\r\n sizePerPage: itemsUIProps.queryParams.pageSize,\r\n page: itemsUIProps.queryParams.pageNumber,\r\n paginationTotalRenderer: customTotal,\r\n };\r\n return (\r\n <>\r\n \r\n {({ paginationProps, paginationTableProps }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }}\r\n \r\n { setOpen(false); }} />\r\n \r\n );\r\n}\r\n","import React, { useMemo } from \"react\";\r\nimport { useItemsUIContext } from \"../ItemsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function ItemsGrouping() {\r\n const intl = useIntl();\r\n\r\n // Items UI Context\r\n const itemsUIContext = useItemsUIContext();\r\n const itemsUIProps = useMemo(() => {\r\n return {\r\n ids: itemsUIContext.ids,\r\n setIds: itemsUIContext.setIds,\r\n openItemStockMovementDialog: itemsUIContext.openItemStockMovementDialog\r\n };\r\n }, [itemsUIContext]);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {itemsUIProps.ids.length == 1 &&\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","import React, { useMemo } from \"react\";\r\nimport {\r\n Card,\r\n CardBody,\r\n CardHeader,\r\n CardHeaderToolbar,\r\n} from \"../../../../../_metronic/_partials/controls\";\r\nimport { ItemsFilter } from \"./items-filter/ItemsFilter\";\r\nimport { ItemsTable } from \"./items-table/ItemsTable\";\r\nimport { ItemsGrouping } from \"./items-grouping/ItemsGrouping\";\r\nimport { useItemsUIContext } from \"./ItemsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { CheckPermissions } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\n\r\nexport function ItemsCard() {\r\n const intl = useIntl();\r\n const itemsUIContext = useItemsUIContext();\r\n const itemsUIProps = useMemo(() => {\r\n return {\r\n ids: itemsUIContext.ids,\r\n newItemButtonClick: itemsUIContext.newItemButtonClick,\r\n };\r\n }, [itemsUIContext]);\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 {itemsUIProps.ids.length > 0 && }\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","// *https://www.registers.service.gov.uk/registers/country/use-the-api*\r\nimport React, { useState, useEffect } from 'react';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport default function AutocompleteWarehouse(props) {\r\n const intl = useIntl();\r\n const [open, setOpen] = useState(false);\r\n const [options, setOptions] = useState([]);\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [value, setValue] = useState(props.value);\r\n const loading = open && options.length === 0;\r\n\r\n useEffect(() => {\r\n let active = true;\r\n \r\n if (!loading) {\r\n return undefined;\r\n }\r\n\r\n (async () => {\r\n const response = await fetch('/api/warehouse/all');\r\n const result = await response.json();\r\n\r\n if (active) {\r\n setOptions(Object.keys(result.entities).map((key) => result.entities[key]));\r\n }\r\n })();\r\n\r\n return () => {\r\n active = false;\r\n };\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (!open) {\r\n setOptions([]);\r\n }\r\n }, [open]);\r\n\r\n\r\n return (\r\n <>\r\n {\r\n setOpen(true);\r\n }}\r\n onClose={() => {\r\n setOpen(false);\r\n }}\r\n value={props.value}\r\n getOptionSelected={(option, value) => option.id === value.id}\r\n getOptionLabel={(option) => option.name}\r\n options={options}\r\n loading={loading}\r\n onChange={(event, value) => { setValue(value); props.onChange(value); }}\r\n onInputChange={(event, value) => { setInputValue(value); }}\r\n renderInput={(params) => (\r\n \r\n {loading ? : null}\r\n {params.InputProps.endAdornment}\r\n \r\n ),\r\n }}\r\n />\r\n )}\r\n />\r\n \r\n );\r\n}\r\n","import React, { useEffect, useMemo, useState } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/items/itemsActions\";\r\nimport { useItemsUIContext } from \"../ItemsUIContext\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport PdfViewer from \"../../../../../components/PdfViewer\"\r\nimport { Formik } from \"formik\";\r\nimport DateRange2 from '../../../../../components/DateRange2';\r\nimport AutocompleteWarehouse from '../../../../../components/AutocompleteWarehouse';\r\nimport moment from 'moment'\r\n\r\nexport function ItemStockMovementPrintDialog({ show, onHide }) {\r\n const [warehouse, setWarehouse] = useState(null);\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n // Office users UI Context\r\n const itemsUIContext = useItemsUIContext();\r\n const itemsUIProps = useMemo(() => {\r\n return {\r\n ids: itemsUIContext.ids,\r\n setIds: itemsUIContext.setIds,\r\n queryParams: itemsUIContext.queryParams\r\n };\r\n }, [itemsUIContext]);\r\n\r\n // Office users Redux state\r\n const dispatch = useDispatch();\r\n \r\n\r\n // if office users weren't selected we should close modal\r\n useEffect(() => {\r\n if (!itemsUIProps.ids || itemsUIProps.ids.length === 0) {\r\n onHide();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [itemsUIProps.ids]);\r\n\r\n // looking for loading/dispatch\r\n useEffect(() => { }, [dispatch]);\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n setWarehouse(val);\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 { itemsUIProps.ids != undefined && itemsUIProps.ids != null && itemsUIProps.ids.length > 0 && (\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","import React, { useState } from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\nimport { ItemsLoadingDialog } from \"./items-loading-dialog/ItemsLoadingDialog\";\r\nimport { ItemEditDialog } from \"./item-edit-dialog/ItemEditDialog\";\r\nimport { ItemDeleteDialog } from \"./item-delete-dialog/ItemDeleteDialog\";\r\nimport { ItemsDeleteDialog } from \"./items-delete-dialog/ItemsDeleteDialog\";\r\nimport { ItemsUIProvider } from \"./ItemsUIContext\";\r\nimport { ItemsCard } from \"./ItemsCard\";\r\nimport { ItemStockMovementPrintDialog } from \"./item-stock-movement-print-dialog/ItemStockMovementPrintDialog\";\r\n\r\nexport function ItemsPage({ history }) {\r\n\r\n const itemsUIEvents = {\r\n newItemButtonClick: () => {\r\n history.push(\"/items/new\");\r\n \r\n },\r\n openEditItemDialog: (id) => {\r\n history.push(`/items/${id}/edit`);\r\n },\r\n openDeleteItemDialog: (id) => {\r\n history.push(`/items/${id}/delete`);\r\n },\r\n openItemStockMovementDialog: () => {\r\n history.push(`/items/printItemStockMovement`);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/items\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/items\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/items\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/items\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { Suspense } from \"react\";\r\nimport { Redirect, Switch } from \"react-router-dom\";\r\nimport { ItemGroupsPage } from \"./itemGroups/ItemGroupsPage\";\r\nimport { ItemsPage } from \"./items/ItemsPage\";\r\nimport { LayoutSplashScreen, ContentRoute } from \"../../../../_metronic/layout\";\r\nimport { hasRoleForFunctionality } from \"../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../enum/userFunctionalityE\"\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport default function ItemPage() {\r\n const { user } = useSelector(state => state.auth);\r\n\r\n return (\r\n }>\r\n \r\n\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.PregledSkupinIzdelkov, UserFunctionalityE.UrediSkupineIzdelkov]) && (\r\n \r\n )}\r\n\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.PregledIzdelkov, UserFunctionalityE.UrediIzdelke]) && (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { LoadingDialog } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function DocumentsLoadingDialog() {\r\n const intl = useIntl();\r\n // Office users Redux state\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.documents.listLoading }),\r\n shallowEqual\r\n );\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading]);\r\n return ;\r\n}\r\n","import axios from \"axios\";\r\n\r\n\r\n// Method from server should return QueryResultsModel(items: any[], totalsCount: number)\r\n// items => filtered/sorted result\r\nexport function findDocuments(queryParams) {\r\n return axios.post(\"/api/document/find\", queryParams );\r\n}\r\n\r\n// CREATE => POST: add a new user to the server\r\nexport function createDocument(document) {\r\n return axios.post(\"/api/document\", document );\r\n}\r\n\r\nexport function getDocumentById(documentId) {\r\n return axios.get(\"/api/document/\" + documentId );\r\n}\r\nexport function getDocumentByIds(ids, type) {\r\n return axios.post(\"/api/document/send\", { ids: ids, type: type});\r\n}\r\n\r\n// UPDATE => PUT: update the user on the server\r\nexport function updateDocument(document) {\r\n return axios.put(\"/api/document/\" + document.id, document);\r\n}\r\n\r\n// DELETE => delete the user from the server\r\nexport function deleteDocument(documentId) {\r\n return axios.delete(\"/api/document/\" + documentId );\r\n}\r\n\r\nexport function checkIfOtherDocumentNumberYetExist(id, number, documentType) {\r\n return axios.post(\"/api/document/checkIfOtherDocumentNumberYetExist\", {\r\n id: id == undefined ? -1 : id,\r\n number: number,\r\n documentType: documentType\r\n });\r\n}\r\n\r\nexport function getStockByItemId(id, warehouse) {\r\n var warehouseQuery = \"\";\r\n if (warehouse != undefined && warehouse != null) {\r\n warehouseQuery = \"?warehouseId=\" + warehouse.id;\r\n }\r\n return axios.get(\"/api/item/getStockByItemId/\" + id + warehouseQuery);\r\n}\r\n\r\n// Method from server should return QueryResultsModel(items: any[], totalsCount: number)\r\n// items => filtered/sorted result\r\nexport function findHistory(queryParams) {\r\n return axios.post(\"/api/document/history\", queryParams);\r\n}\r\n\r\nexport function checkIfCanCreateERacun(ids) {\r\n return axios.post(\"/api/document/checkIfCanCreateERacun\", { ids });\r\n}","import * as requestFromServer from \"./documentsCrud\";\r\nimport { documentsSlice, callTypes } from \"./documentsSlice\";\r\nimport moment from 'moment'\r\n\r\nconst { actions } = documentsSlice;\r\n\r\nexport const fetchDocuments = queryParams => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .findDocuments(queryParams)\r\n .then(response => {\r\n const { totalCount, entities } = response.data;\r\n dispatch(actions.documentsFetched({ totalCount, entities }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find documents\";\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\nexport const fetchDocument = (id, copy) => dispatch => {\r\n if (!id) {\r\n return dispatch(actions.documentFetched({ documentForEdit: undefined }));\r\n }\r\n\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .getDocumentById(id)\r\n .then(response => {\r\n const document = response.data.model;\r\n document.valid = \"\";\r\n document.discountProcent = document.discountProcent == null ? \"\" : document.discountProcent;\r\n document.discountAmount = document.discountAmount == null ? \"\" : document.discountAmount;\r\n var date = document.date;\r\n document.date = date == null ? \"\" : moment(new Date(date)).format(\"YYYY-MM-DD\");\r\n document.time = date == null ? \"\" : moment(new Date(date)).format(\"HH:mm\");\r\n document.serviceDate = document.serviceDate == null ? \"\" : moment(new Date(document.serviceDate)).format(\"YYYY-MM-DD\");\r\n document.dateOfServicesRendered = document.dateOfServicesRendered == null ? \"\" : moment(new Date(document.dateOfServicesRendered)).format(\"YYYY-MM-DD\");\r\n document.dueDate = document.dueDate == null ? \"\" : moment(new Date(document.dueDate)).format(\"YYYY-MM-DD\");\r\n\r\n if (copy) {\r\n document.id = undefined;\r\n document.linkedDocument = null;\r\n document.stornoDocument = null;\r\n document.stornoDocumentId = null;\r\n document.otherDocumentNumber = \"\";\r\n for (var index = 0; index < document.documentPosition.length; index++) {\r\n document.documentPosition[index].id = undefined;\r\n }\r\n }\r\n\r\n dispatch(actions.documentFetched({ documentForEdit: document }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find document\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const fetchSendToDocument = (ids, type) => dispatch => {\r\n if (!ids || ids.length == 0) {\r\n return dispatch(actions.documentFetched({ documentForEdit: undefined }));\r\n }\r\n\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .getDocumentByIds(ids, type)\r\n .then(response => {\r\n const document = response.data.model;\r\n document.valid = \"\";\r\n document.discountProcent = document.discountProcent == null ? \"\" : document.discountProcent;\r\n document.discountAmount = document.discountAmount == null ? \"\" : document.discountAmount;\r\n var date = document.date;\r\n document.date = date == null ? \"\" : moment(new Date(date)).format(\"YYYY-MM-DD\");\r\n document.time = date == null ? \"\" : moment(new Date(date)).format(\"HH:mm\");\r\n document.serviceDate = document.serviceDate == null ? \"\" : moment(new Date(document.serviceDate)).format(\"YYYY-MM-DD\");\r\n document.dateOfServicesRendered = document.dateOfServicesRendered == null ? \"\" : moment(new Date(document.dateOfServicesRendered)).format(\"YYYY-MM-DD\");\r\n document.dueDate = document.dueDate == null ? \"\" : moment(new Date(document.dueDate)).format(\"YYYY-MM-DD\");\r\n document.type = type;\r\n document.id = undefined;\r\n document.stornoDocument = null;\r\n document.stornoDocumentId = null;\r\n document.otherDocumentNumber = \"\";\r\n for (var index = 0; index < document.documentPosition.length; index++) {\r\n document.documentPosition[index].id = undefined;\r\n }\r\n\r\n dispatch(actions.documentFetched({ documentForEdit: document }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find documents\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\n\r\nexport const deleteDocument = id => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .deleteDocument(id)\r\n .then(response => {\r\n dispatch(actions.documentDeleted({ id }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't delete document\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const createDocument = documentForCreation => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .createDocument(documentForCreation)\r\n .then(response => {\r\n const { model } = response.data;\r\n dispatch(actions.documentCreated({ model }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't create document\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const updateDocument = document => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return requestFromServer\r\n .updateDocument(document)\r\n .then(() => {\r\n dispatch(actions.documentUpdated({ document }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't update document\";\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const fetchHistory = queryParams => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .findHistory(queryParams)\r\n .then(response => {\r\n const { totalCount, entities } = response.data;\r\n dispatch(actions.historyFetched({ totalCount, entities }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find history\";\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\n","import React, {createContext, useContext} from \"react\";\r\n\r\nconst DocumentsUIContext = createContext();\r\n\r\nexport function useDocumentsUIContext() {\r\n return useContext(DocumentsUIContext);\r\n}\r\n\r\nexport const DocumentsUIConsumer = DocumentsUIContext.Consumer;\r\n\r\nexport function DocumentsUIProvider({ value, children }) {\r\n return {children};\r\n}","import React, { useState, useEffect, useMemo } from \"react\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useDocumentsUIContext } from \"../DocumentsUIContext\";\r\n\r\nexport function DocumentEditDialogHeader({ id, copy, document }) {\r\n const documentsUIContext = useDocumentsUIContext();\r\n // Office users Redux state\r\n const { documentForEdit, actionsLoading } = useSelector(\r\n (state) => ({\r\n documentForEdit: state.documents.documentForEdit,\r\n actionsLoading: state.documents.actionsLoading,\r\n }),\r\n shallowEqual\r\n );\r\n\r\n const documentsUIProps = useMemo(() => {\r\n return {\r\n ids: documentsUIContext.ids,\r\n newDocumentButtonClick: documentsUIContext.newDocumentButtonClick,\r\n translate: documentsUIContext.translate,\r\n readOnly: documentsUIContext.readOnly\r\n };\r\n }, [documentsUIContext]);\r\n\r\n const [title, setTitle] = useState(\"\");\r\n // Title couting\r\n useEffect(() => {\r\n let _title = id ? \"\" : documentsUIProps.translate.newHeader;\r\n var readOnly = documentsUIProps.readOnly;\r\n if (document.stornoDocumentId != null) {\r\n readOnly = true;\r\n }\r\n if (documentForEdit && id) {\r\n if (copy) {\r\n _title = documentsUIProps.translate.copyHeader + ` '${documentForEdit.talkingNumber}'`;\r\n } else if (readOnly) {\r\n _title = documentsUIProps.translate.viewHeader + ` '${documentForEdit.talkingNumber}'`;\r\n } else {\r\n _title = documentsUIProps.translate.editHeader + ` '${documentForEdit.talkingNumber}'`;\r\n }\r\n \r\n }\r\n\r\n setTitle(_title);\r\n // eslint-disable-next-line\r\n }, [documentForEdit, actionsLoading]);\r\n\r\n return (\r\n <>\r\n {actionsLoading && }\r\n \r\n {title}\r\n \r\n \r\n );\r\n}\r\n","// *https://www.registers.service.gov.uk/registers/country/use-the-api*\r\nimport React, { useState, useEffect } from 'react';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport default function AutocompleteSupplier(props) {\r\n const intl = useIntl();\r\n const [open, setOpen] = useState(false);\r\n const [options, setOptions] = useState([]);\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [value, setValue] = useState(props.value);\r\n const loading = open && options.length === 0;\r\n\r\n useEffect(() => {\r\n let active = true;\r\n\r\n if (!loading) {\r\n return undefined;\r\n }\r\n\r\n (async () => {\r\n const response = await fetch('/api/customer/allSuppliers');\r\n const result = await response.json();\r\n\r\n if (active) {\r\n setOptions(Object.keys(result.entities).map((key) => result.entities[key]));\r\n }\r\n })();\r\n\r\n return () => {\r\n active = false;\r\n };\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (!open) {\r\n setOptions([]);\r\n }\r\n }, [open]);\r\n\r\n\r\n return (\r\n <>\r\n {\r\n setOpen(true);\r\n }}\r\n onClose={() => {\r\n setOpen(false);\r\n }}\r\n value={props.value}\r\n getOptionSelected={(option, value) => option.id === value.id}\r\n getOptionLabel={(option) => option.name + \",\" + option.taxNumber}\r\n renderOption={(option) => {option.taxNumber} {option.name}}\r\n options={options}\r\n loading={loading}\r\n onChange={(event, value) => { setValue(value); props.onChange(value); }}\r\n onInputChange={(event, value) => { setInputValue(value); }}\r\n renderInput={(params) => (\r\n \r\n {loading ? : null}\r\n {params.InputProps.endAdornment}\r\n \r\n ),\r\n }}\r\n />\r\n )}\r\n />\r\n \r\n );\r\n}\r\n","// *https://www.registers.service.gov.uk/registers/country/use-the-api*\r\nimport React, { useState, useEffect } from 'react';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport default function AutocompleteCustomer(props) {\r\n const intl = useIntl();\r\n const [open, setOpen] = useState(false);\r\n const [options, setOptions] = useState([]);\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [value, setValue] = useState(props.value);\r\n const loading = open && options.length === 0;\r\n\r\n useEffect(() => {\r\n let active = true;\r\n\r\n if (!loading) {\r\n return undefined;\r\n }\r\n\r\n (async () => {\r\n const response = await fetch('/api/customer/all');\r\n const result = await response.json();\r\n\r\n if (active) {\r\n setOptions(Object.keys(result.entities).map((key) => result.entities[key]));\r\n }\r\n })();\r\n\r\n return () => {\r\n active = false;\r\n };\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (!open) {\r\n setOptions([]);\r\n }\r\n }, [open]);\r\n\r\n\r\n return (\r\n <>\r\n {\r\n setOpen(true);\r\n }}\r\n onClose={() => {\r\n setOpen(false);\r\n }}\r\n value={props.value}\r\n getOptionSelected={(option, value) => option.id === value.id}\r\n getOptionLabel={(option) => option.name + \",\" + option.taxNumber}\r\n renderOption={(option) => {option.taxNumber} {option.name}}\r\n options={options}\r\n loading={loading}\r\n onChange={(event, value) => { setValue(value); props.onChange(value); }}\r\n onInputChange={(event, value) => { setInputValue(value); }}\r\n renderInput={(params) => (\r\n \r\n {loading ? : null}\r\n {params.InputProps.endAdornment}\r\n \r\n ),\r\n }}\r\n />\r\n )}\r\n />\r\n \r\n );\r\n}\r\n","// *https://www.registers.service.gov.uk/registers/country/use-the-api*\r\nimport React, { useState, useEffect } from 'react';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { sizing } from '@material-ui/system';\r\n\r\nexport default function AutocompleteItemView(props) {\r\n const intl = useIntl();\r\n const [open, setOpen] = useState(false);\r\n const [options, setOptions] = useState([]);\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [value, setValue] = useState(props.value);\r\n const loading = open && options.length === 0;\r\n\r\n useEffect(() => {\r\n let active = true;\r\n \r\n if (!loading) {\r\n return undefined;\r\n }\r\n\r\n (async () => {\r\n const response = await fetch('/api/item/allWithDetails');\r\n const result = await response.json();\r\n\r\n if (active) {\r\n setOptions(Object.keys(result.entities).map((key) => result.entities[key]));\r\n }\r\n })();\r\n\r\n return () => {\r\n active = false;\r\n };\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (!open) {\r\n setOptions([]);\r\n }\r\n }, [open]);\r\n\r\n\r\n return (\r\n <>\r\n {\r\n setOpen(true);\r\n }}\r\n onClose={() => {\r\n setOpen(false);\r\n }}\r\n value={props.value}\r\n getOptionSelected={(option, value) => option.id === value.id}\r\n getOptionLabel={(option) => option.title}\r\n options={options}\r\n loading={loading}\r\n onChange={(event, value) => { setValue(value); props.onChange(value); }}\r\n onInputChange={(event, value) => { setInputValue(value); }}\r\n renderInput={(params) => (\r\n \r\n {loading ? : null}\r\n {params.InputProps.endAdornment}\r\n \r\n ),\r\n }}\r\n />\r\n )}\r\n\r\n />\r\n \r\n );\r\n}\r\n","// *https://www.registers.service.gov.uk/registers/country/use-the-api*\r\nimport React, { useState, useEffect } from 'react';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport default function AutocompleteItemViewGoods(props) {\r\n const intl = useIntl();\r\n const [open, setOpen] = useState(false);\r\n const [options, setOptions] = useState([]);\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [value, setValue] = useState(props.value);\r\n const loading = open && options.length === 0;\r\n\r\n useEffect(() => {\r\n let active = true;\r\n \r\n if (!loading) {\r\n return undefined;\r\n }\r\n\r\n (async () => {\r\n const response = await fetch('/api/item/goodsAllWithDetails');\r\n const result = await response.json();\r\n\r\n if (active) {\r\n setOptions(Object.keys(result.entities).map((key) => result.entities[key]));\r\n }\r\n })();\r\n\r\n return () => {\r\n active = false;\r\n };\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n if (!open) {\r\n setOptions([]);\r\n }\r\n }, [open]);\r\n\r\n\r\n return (\r\n <>\r\n {\r\n setOpen(true);\r\n }}\r\n onClose={() => {\r\n setOpen(false);\r\n }}\r\n value={props.value}\r\n getOptionSelected={(option, value) => option.id === value.id}\r\n getOptionLabel={(option) => option.title}\r\n options={options}\r\n loading={loading}\r\n onChange={(event, value) => { setValue(value); props.onChange(value); }}\r\n onInputChange={(event, value) => { setInputValue(value); }}\r\n renderInput={(params) => (\r\n \r\n {loading ? : null}\r\n {params.InputProps.endAdornment}\r\n \r\n ),\r\n }}\r\n />\r\n )}\r\n />\r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport AutocompleteItemView from \"../../../../../components/AutocompleteItemView\"\r\nimport AutocompleteItemViewGoods from \"../../../../../components/AutocompleteItemViewGoods\"\r\nimport SelectUnit from \"../../../../../components/SelectUnit\"\r\nimport SelectVat from \"../../../../../components/SelectVat\"\r\nimport { decimal, onlyPositiveDecimal } from \"../../../../../util/Util\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { getStockByItemId } from \"../../../_redux/documents/documentsCrud\";\r\nimport { Field } from \"formik\";\r\nimport {\r\n Input,\r\n} from \"../../../../../../_metronic/_partials/controls\";\r\n\r\nexport function DocumentPositionGrid({\r\n warehouse,\r\n readOnly,\r\n documentType,\r\n documentPositions,\r\n gridPositionColumnsVisible,\r\n gridPositionColumnsTranslate,\r\n formFieldsVisible,\r\n saveDocumentPositions,\r\n getDiscount,\r\n recalculate,\r\n save\r\n}) {\r\n const [dpList, setDpList] = useState(documentPositions == undefined ? [] : cloneDocumentPositions(documentPositions));\r\n const [amountForPaymentBase, setAmountForPaymentBase] = useState(0);\r\n const [amountDiscount, setAmountDiscount] = useState(0);\r\n const [amountForPayment, setAmountForPayment] = useState(0);\r\n const [amountForVats, setAmountForVats] = useState([]);\r\n const [init, setInit] = useState(true);\r\n\r\n const intl = useIntl();\r\n\r\n useEffect(() => {\r\n calculateTotals();\r\n }, [recalculate]);\r\n\r\n useEffect(() => {\r\n setDpList(documentPositions == undefined ? [] : cloneDocumentPositions(documentPositions));\r\n }, [documentPositions]);\r\n\r\n useEffect(() => {\r\n calculateTotals();\r\n }, [dpList]);\r\n\r\n useEffect(() => {\r\n if (init) {\r\n setInit(false);\r\n return;\r\n }\r\n var documentPositions = [];\r\n for (var index = 0; index < dpList.length; index++) {\r\n var row = dpList[index];\r\n if ((row.item != null || (row.isCustomItem == true && row.itemTitle != null && row.itemTitle != undefined && row.itemTitle != \"\")) && (row.quantity != 0 || documentType == 13)) {\r\n documentPositions.push(row);\r\n }\r\n }\r\n saveDocumentPositions(documentPositions);\r\n }, [save]);\r\n\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.cache }),\r\n shallowEqual\r\n );\r\n const { vatRates } = currentState;\r\n\r\n function cloneDocumentPositions(documentPositions) {\r\n var list = [];\r\n for (var x = 0; x < documentPositions.length; x++) {\r\n var dp = { ...documentPositions[x] };\r\n if (dp.item != null && dp.item.itemTypeId == 1) {\r\n dp[\"grossWeightPerUnit\"] = dp.item.grossWeightPerUnit;\r\n }\r\n list.push(dp);\r\n }\r\n return list;\r\n }\r\n\r\n function addRows() {\r\n var documentPostions = dpList.slice();\r\n for (var x = 0; x < 5; x++) {\r\n documentPostions.push({\r\n item: null,\r\n vatRateId: 1,\r\n quantity: 0,\r\n discount: 0,\r\n itemAmountWithoutVat: 0,\r\n totalAmountWithoutVat: 0,\r\n totalAmountWithVat: 0,\r\n grossWeight: 0,\r\n isCustomItem: false,\r\n itemTitle: \"\",\r\n unitId: null,\r\n length: 0,\r\n radius: 0,\r\n cubic: 0\r\n });\r\n }\r\n setDpList(documentPostions);\r\n }\r\n\r\n function setColumnValue(index, columnName, value) {\r\n if (dpList.length <= index) {\r\n return;\r\n }\r\n\r\n var documentPostions = dpList.slice();\r\n\r\n documentPostions[index][columnName] = value;\r\n switch (columnName) {\r\n case \"item\":\r\n if (value != null && value.itemTypeId == 1 && gridPositionColumnsVisible.grossWeight) {\r\n documentPostions[index][\"grossWeightPerUnit\"] = value.grossWeightPerUnit;\r\n }\r\n if (value != null && value.itemTypeId == 1 && gridPositionColumnsVisible.stock) {\r\n getStockByItemId(value.id, warehouse)\r\n .then(({ data }) => {\r\n if (!data.didError) {\r\n documentPostions[index][\"stockQuantity\"] = data.model;\r\n } else {\r\n documentPostions[index][\"stockQuantity\"] = undefined;\r\n }\r\n setDpList(documentPostions);\r\n })\r\n .catch((e) => {\r\n documentPostions[index][\"stockQuantity\"] = undefined;\r\n setDpList(documentPostions);\r\n });\r\n return;\r\n }\r\n if (value != null && gridPositionColumnsVisible.vat) {\r\n documentPostions[index][\"vatRateId\"] = value.vatRateId;\r\n }\r\n if (value != null && gridPositionColumnsVisible.itemAmountWithoutVat) {\r\n switch (documentType) {\r\n case 12:\r\n case 18:\r\n documentPostions[index][\"itemAmountWithoutVat\"] = value.purchaseAmountWithoutVat ?? 0;\r\n break;\r\n default:\r\n documentPostions[index][\"itemAmountWithoutVat\"] = value.priceWithoutVat ?? 0;\r\n break;\r\n }\r\n }\r\n break;\r\n case \"grossWeight\":\r\n if (documentPostions[index][\"grossWeightPerUnit\"] != undefined &&\r\n documentPostions[index][\"grossWeightPerUnit\"] != null) {\r\n var val = parseFloat(value);\r\n var grossWeightPerUnit = parseFloat(documentPostions[index][\"grossWeightPerUnit\"]);\r\n var quantity = val / grossWeightPerUnit;\r\n documentPostions[index][\"quantity\"] = quantity;\r\n }\r\n case \"length\":\r\n if (documentPostions[index][\"radius\"] != undefined &&\r\n documentPostions[index][\"radius\"] != null &&\r\n documentPostions[index][\"cubic\"] != undefined &&\r\n documentPostions[index][\"cubic\"] != null) {\r\n var val = parseFloat(value);\r\n var radius = parseFloat(documentPostions[index][\"radius\"]);\r\n var cubic = parseFloat(documentPostions[index][\"cubic\"]);\r\n var quantity = ((3.14 * ((radius/ 100) * (radius / 100))) * val) * cubic;\r\n documentPostions[index][\"quantity\"] = quantity;\r\n }\r\n break;\r\n case \"radius\":\r\n if (documentPostions[index][\"length\"] != undefined &&\r\n documentPostions[index][\"length\"] != null &&\r\n documentPostions[index][\"cubic\"] != undefined &&\r\n documentPostions[index][\"cubic\"] != null) {\r\n var val = parseFloat(value);\r\n var length = parseFloat(documentPostions[index][\"length\"]);\r\n var cubic = parseFloat(documentPostions[index][\"cubic\"]);\r\n var quantity = ((3.14 * ((val / 100) * (val / 100))) * length) * cubic;\r\n documentPostions[index][\"quantity\"] = quantity;\r\n }\r\n break;\r\n case \"cubic\":\r\n if (documentPostions[index][\"length\"] != undefined &&\r\n documentPostions[index][\"length\"] != null &&\r\n documentPostions[index][\"radius\"] != undefined &&\r\n documentPostions[index][\"radius\"] != null) {\r\n var val = parseFloat(value);\r\n var length = parseFloat(documentPostions[index][\"length\"]);\r\n var radius = parseFloat(documentPostions[index][\"radius\"]);\r\n var quantity = ((3.14 * ((radius / 100) * (radius / 100))) * length) * val;\r\n documentPostions[index][\"quantity\"] = quantity;\r\n }\r\n break;\r\n }\r\n calculatePostionPrice(documentPostions[index], columnName);\r\n setDpList(documentPostions);\r\n }\r\n\r\n function getColumnValue(index, columnName) {\r\n if (dpList.length <= index) {\r\n return \"\";\r\n }\r\n return dpList[index][columnName];\r\n }\r\n\r\n function calculatePostionPrice(documentPosition, columnName)\r\n {\r\n switch (columnName) {\r\n case \"quantity\":\r\n var itemAmountWithoutVat = parseFloat(documentPosition.itemAmountWithoutVat.toString().replace(',', '.'));\r\n var quantity = parseFloat(documentPosition.quantity.toString().replace(',', '.'));\r\n var discount = parseFloat(documentPosition.discount.toString().replace(',', '.'));\r\n var vatProcent = parseFloat(vatRates.find(el => el.id == documentPosition.vatRateId).procent.toString().replace(',', '.'));\r\n \r\n var valWithoutVat1 = itemAmountWithoutVat * quantity * ((parseFloat('100') - discount) / parseFloat('100'));\r\n documentPosition.totalAmountWithoutVat = valWithoutVat1;\r\n documentPosition.totalAmountWithVat = ((vatProcent + parseFloat('100')) / parseFloat('100')) * valWithoutVat1;\r\n break;\r\n case \"discount\":\r\n var itemAmountWithoutVat = parseFloat(documentPosition.itemAmountWithoutVat.toString().replace(',', '.'));\r\n var quantity = parseFloat(documentPosition.quantity.toString().replace(',', '.'));\r\n var discount = parseFloat(documentPosition.discount.toString().replace(',', '.'));\r\n var vatProcent = parseFloat(vatRates.find(el => el.id == documentPosition.vatRateId).procent.toString().replace(',', '.'));\r\n\r\n var valWithoutVat2 = itemAmountWithoutVat * quantity * ((parseFloat('100') - discount) / parseFloat('100'));\r\n documentPosition.totalAmountWithoutVat = valWithoutVat2;\r\n documentPosition.totalAmountWithVat = ((vatProcent + parseFloat('100')) / parseFloat('100')) * valWithoutVat2;\r\n break;\r\n case \"vatRateId\":\r\n var totalAmountWithoutVat = parseFloat(documentPosition.totalAmountWithoutVat.toString().replace(',', '.'));\r\n var vatProcent = parseFloat(vatRates.find(el => el.id == documentPosition.vatRateId).procent.toString().replace(',', '.'));\r\n documentPosition.totalAmountWithVat = ((vatProcent + parseFloat('100')) / parseFloat('100')) * totalAmountWithoutVat;\r\n break;\r\n case \"itemAmountWithoutVat\":\r\n var itemAmountWithoutVat = parseFloat(documentPosition.itemAmountWithoutVat.toString().replace(',', '.'));\r\n var quantity = parseFloat(documentPosition.quantity.toString().replace(',', '.'));\r\n var discount = parseFloat(documentPosition.discount.toString().replace(',', '.'));\r\n var vatProcent = parseFloat(vatRates.find(el => el.id == documentPosition.vatRateId).procent.toString().replace(',', '.'));\r\n\r\n var valWithoutVat = itemAmountWithoutVat * quantity * ((parseFloat('100') - discount) / parseFloat('100'));\r\n documentPosition.totalAmountWithoutVat = valWithoutVat;\r\n documentPosition.totalAmountWithVat = ((vatProcent + parseFloat('100')) / parseFloat('100')) * valWithoutVat;\r\n break;\r\n case \"totalAmountWithoutVat\":\r\n var quantity = parseFloat(documentPosition.quantity.toString().replace(',', '.'));\r\n var itemAmountWithoutVat = parseFloat(documentPosition.itemAmountWithoutVat.toString().replace(',', '.'));\r\n var totalAmountWithoutVat = parseFloat(documentPosition.totalAmountWithoutVat.toString().replace(',', '.'));\r\n var vatProcent = parseFloat(vatRates.find(el => el.id == documentPosition.vatRateId).procent.toString().replace(',', '.'));\r\n var discount = parseFloat(documentPosition.discount.toString().replace(',', '.'));\r\n\r\n if (quantity > 0) {\r\n documentPosition.itemAmountWithoutVat = totalAmountWithoutVat / quantity;\r\n var valWithoutVat3 = documentPosition.itemAmountWithoutVat * quantity * ((parseFloat('100') - discount) / parseFloat('100'));\r\n //documentPosition.totalAmountWithoutVat = valWithoutVat3;\r\n documentPosition.totalAmountWithVat = ((vatProcent + parseFloat('100')) / parseFloat('100')) * valWithoutVat3;\r\n }\r\n else {\r\n documentPosition.itemAmountWithoutVat = 0;\r\n documentPosition.totalAmountWithoutVat = 0;\r\n documentPosition.totalAmountWithVat = 0;\r\n }\r\n break;\r\n case \"totalAmountWithVat\":\r\n var quantity = parseFloat(documentPosition.quantity.toString().replace(',', '.'));\r\n var totalAmountWithVat = parseFloat(documentPosition.totalAmountWithVat.toString().replace(',', '.'));\r\n var vatProcent = parseFloat(vatRates.find(el => el.id == documentPosition.vatRateId).procent.toString().replace(',', '.'));\r\n var itemAmountWithoutVat = parseFloat(documentPosition.itemAmountWithoutVat.toString().replace(',', '.'));\r\n var discount = parseFloat(documentPosition.discount.toString().replace(',', '.'));\r\n\r\n if (quantity > 0) {\r\n var val = (totalAmountWithVat * parseFloat('100')) / (parseFloat('100') + vatProcent);\r\n documentPosition.itemAmountWithoutVat = val / quantity;\r\n var valWithoutVat4 = documentPosition.itemAmountWithoutVat * quantity * ((parseFloat('100') - discount) / parseFloat('100'));\r\n documentPosition.totalAmountWithoutVat = valWithoutVat4;\r\n //documentPosition.totalAmountWithVat = ((vatProcent + 100) / 100) * valWithoutVat4;\r\n }\r\n else {\r\n documentPosition.itemAmountWithoutVat = 0;\r\n documentPosition.totalAmountWithoutVat = 0;\r\n documentPosition.totalAmountWithVat = 0;\r\n }\r\n break;\r\n }\r\n calculateTotals();\r\n }\r\n\r\n function calculateTotals() {\r\n var totalPriceWithoutVat = 0;\r\n var totalPriceWithVat = 0;\r\n var totalAmountDiscount = 0;\r\n var vatsAmount = [];\r\n\r\n for (var index in vatRates) {\r\n var vatRate = vatRates[index];\r\n vatsAmount[vatRate.id] = 0;\r\n }\r\n\r\n var iDiscountProcent = 0;\r\n var discount = getDiscount();\r\n \r\n if (discount.discountProcent != '') {\r\n iDiscountProcent = parseFloat(discount.discountProcent.toString().replace(',', '.'));\r\n }\r\n if (discount.discountAmount != '') {\r\n var iDiscountAmount = parseFloat(discount.discountAmount.toString().replace(',', '.'));\r\n var tmpTotalPriceWithVat = 0;\r\n\r\n for (var index = 0; index < dpList.length; index++) {\r\n var row = dpList[index];\r\n if (row.item != null ||\r\n (row.isCustomItem == true && row.itemTitle != null && row.itemTitle != undefined && row.itemTitle != \"\")) {\r\n tmpTotalPriceWithVat += row.totalAmountWithVat;\r\n }\r\n }\r\n iDiscountProcent = parseFloat((parseFloat('100') - (((tmpTotalPriceWithVat - iDiscountAmount) / tmpTotalPriceWithVat) * parseFloat('100'))).toFixed(8));\r\n }\r\n\r\n for (var index = 0; index < dpList.length; index++) {\r\n var row = dpList[index];\r\n if (row.item != null ||\r\n (row.isCustomItem == true && row.itemTitle != null && row.itemTitle != undefined && row.itemTitle != \"\")) {\r\n var vatProcent = parseFloat(vatRates.find(el => el.id == row.vatRateId).procent.toString().replace(',', '.'));\r\n\r\n row.totalAmountWithoutVat = row.totalAmountWithVat / ((parseFloat('100') + vatProcent) / parseFloat('100'));\r\n\r\n var totalVat = (row.totalAmountWithVat - row.totalAmountWithoutVat) * ((parseFloat('100') - iDiscountProcent) / parseFloat('100'));\r\n vatsAmount[row.vatRateId] += totalVat;\r\n\r\n var itemPriceWithoutVat = row.totalAmountWithoutVat * ((parseFloat('100') - iDiscountProcent) / parseFloat('100'));\r\n var itemPriceWithVat = itemPriceWithoutVat * ((parseFloat('100') + vatProcent) / parseFloat('100'));\r\n var itemAmountDiscount = ((row.itemAmountWithoutVat * row.quantity) - row.totalAmountWithoutVat) + (row.totalAmountWithoutVat - itemPriceWithoutVat);\r\n totalPriceWithoutVat += itemPriceWithoutVat;\r\n totalPriceWithVat += itemPriceWithVat;\r\n totalAmountDiscount += itemAmountDiscount;\r\n }\r\n }\r\n\r\n setAmountForPaymentBase(totalPriceWithoutVat);\r\n setAmountDiscount(totalAmountDiscount);\r\n setAmountForPayment(totalPriceWithVat);\r\n\r\n var tmpAmountForVats = [];\r\n for (var index in vatRates) {\r\n var vatRate = vatRates[index];\r\n if (vatsAmount[vatRate.id] != 0) {\r\n tmpAmountForVats.push({\r\n id: vatRate.id,\r\n procent: vatRate.procent,\r\n amount: vatsAmount[vatRate.id]\r\n });\r\n }\r\n }\r\n setAmountForVats(tmpAmountForVats);\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 {gridPositionColumnsVisible.isCustomItem && (\r\n \r\n )}\r\n {gridPositionColumnsVisible.itemGoods && (\r\n \r\n )}\r\n {gridPositionColumnsVisible.itemAll && (\r\n \r\n )}\r\n {gridPositionColumnsVisible.vat && (\r\n \r\n )}\r\n {gridPositionColumnsVisible.cubic && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {!gridPositionColumnsVisible.cubic && gridPositionColumnsVisible.quantity && (\r\n \r\n )}\r\n {gridPositionColumnsVisible.discount && (\r\n \r\n )}\r\n {gridPositionColumnsVisible.itemAmountWithoutVat && (\r\n \r\n )}\r\n {gridPositionColumnsVisible.totalAmountWithoutVat && (\r\n \r\n )}\r\n {gridPositionColumnsVisible.totalAmountWithVat && (\r\n \r\n )}\r\n {gridPositionColumnsVisible.grossWeight && (\r\n \r\n )}\r\n {gridPositionColumnsVisible.stock && (\r\n \r\n )}\r\n \r\n \r\n \r\n {dpList.map((dp, i) => {\r\n\r\n return (\r\n \r\n \r\n {gridPositionColumnsVisible.isCustomItem && (\r\n \r\n )}\r\n {gridPositionColumnsVisible.itemGoods && (\r\n \r\n )}\r\n {gridPositionColumnsVisible.itemAll && (\r\n \r\n )}\r\n {gridPositionColumnsVisible.vat && (\r\n \r\n )}\r\n {gridPositionColumnsVisible.cubic && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {!gridPositionColumnsVisible.cubic && gridPositionColumnsVisible.quantity && (\r\n <>\r\n \r\n \r\n )}\r\n {gridPositionColumnsVisible.discount && (\r\n \r\n )}\r\n {gridPositionColumnsVisible.itemAmountWithoutVat && (\r\n \r\n )}\r\n {gridPositionColumnsVisible.totalAmountWithoutVat && (\r\n \r\n )}\r\n {gridPositionColumnsVisible.totalAmountWithVat && (\r\n \r\n )}\r\n {gridPositionColumnsVisible.grossWeight && (\r\n \r\n )}\r\n {gridPositionColumnsVisible.stock && (\r\n \r\n )}\r\n )\r\n })}\r\n \r\n \r\n \r\n \r\n
#{gridPositionColumnsTranslate.isCustomItem}{gridPositionColumnsTranslate.item}{gridPositionColumnsTranslate.item}{gridPositionColumnsTranslate.vat}{gridPositionColumnsTranslate.length}{gridPositionColumnsTranslate.radius}{gridPositionColumnsTranslate.cubic}{gridPositionColumnsTranslate.quantity}{gridPositionColumnsTranslate.quantity}{gridPositionColumnsTranslate.discount}{gridPositionColumnsTranslate.itemAmountWithoutVat}{gridPositionColumnsTranslate.totalAmountWithoutVat}{gridPositionColumnsTranslate.totalAmountWithVat}{gridPositionColumnsTranslate.grossWeight}{gridPositionColumnsTranslate.stock}
{i + 1}\r\n {getColumnValue(i, \"isCustomItem\")}\r\n {\r\n setColumnValue(i, \"isCustomItem\", !getColumnValue(i, \"isCustomItem\"));\r\n }}\r\n />\r\n \r\n {!getColumnValue(i, \"isCustomItem\") && (\r\n {\r\n setColumnValue(i, \"item\", val);\r\n }}\r\n />\r\n )}\r\n {getColumnValue(i, \"isCustomItem\") && (\r\n
\r\n
\r\n {\r\n setColumnValue(i, \"itemTitle\", el.target.value);\r\n }}\r\n />\r\n
\r\n
\r\n {\r\n setColumnValue(i, \"unitId\", val);\r\n }}\r\n />\r\n
\r\n
\r\n )}\r\n
\r\n {!getColumnValue(i, \"isCustomItem\") && (\r\n {\r\n setColumnValue(i, \"item\", val);\r\n }}\r\n />\r\n )}\r\n \r\n {getColumnValue(i, \"isCustomItem\") && (\r\n
\r\n
\r\n {\r\n setColumnValue(i, \"itemTitle\", el.target.value);\r\n }}\r\n />\r\n
\r\n
\r\n {\r\n setColumnValue(i, \"unitId\", val);\r\n }}\r\n />\r\n
\r\n
\r\n )}\r\n
\r\n {\r\n setColumnValue(i, \"vatRateId\", val);\r\n }}\r\n />\r\n \r\n {\r\n if (event.target.value >= 0) {\r\n setColumnValue(i, \"length\", event.target.value);\r\n }\r\n }}\r\n onBlur={(event) => {\r\n if (event.target.value == \"\") {\r\n setColumnValue(i, \"length\", 0);\r\n }\r\n }}\r\n />\r\n \r\n {\r\n if (event.target.value >= 0) {\r\n setColumnValue(i, \"radius\", event.target.value);\r\n }\r\n }}\r\n onBlur={(event) => {\r\n if (event.target.value == \"\") {\r\n setColumnValue(i, \"radius\", 0);\r\n }\r\n }}\r\n />\r\n \r\n {\r\n if (event.target.value >= 0) {\r\n setColumnValue(i, \"cubic\", event.target.value);\r\n }\r\n }}\r\n onBlur={(event) => {\r\n if (event.target.value == \"\") {\r\n setColumnValue(i, \"cubic\", 0);\r\n }\r\n }}\r\n />\r\n \r\n {\r\n if (event.target.value >= 0) {\r\n setColumnValue(i, \"quantity\", event.target.value);\r\n }\r\n }}\r\n onBlur={(event) => {\r\n if (event.target.value == \"\") {\r\n setColumnValue(i, \"quantity\", 0);\r\n }\r\n }}\r\n />\r\n \r\n {\r\n if (event.target.value >= 0) {\r\n setColumnValue(i, \"quantity\", event.target.value);\r\n }\r\n }}\r\n onBlur={(event) => {\r\n if (event.target.value == \"\") {\r\n setColumnValue(i, \"quantity\", 0);\r\n }\r\n }}\r\n />\r\n \r\n {\r\n if (event.target.value >= 0) {\r\n setColumnValue(i, \"discount\", event.target.value);\r\n }\r\n }}\r\n onBlur={(event) => {\r\n if (event.target.value == \"\") {\r\n setColumnValue(i, \"discount\", 0);\r\n }\r\n }}\r\n />\r\n \r\n {\r\n if (event.target.value >= 0) {\r\n setColumnValue(i, \"itemAmountWithoutVat\", event.target.value);\r\n }\r\n }}\r\n onBlur={(event) => {\r\n if (event.target.value == \"\") {\r\n setColumnValue(i, \"itemAmountWithoutVat\", 0);\r\n }\r\n }}\r\n />\r\n \r\n {\r\n if (event.target.value >= 0) {\r\n setColumnValue(i, \"totalAmountWithoutVat\", event.target.value);\r\n }\r\n }}\r\n onBlur={(event) => {\r\n if (event.target.value == \"\") {\r\n setColumnValue(i, \"totalAmountWithoutVat\", 0);\r\n }\r\n }}\r\n />\r\n \r\n {\r\n if (event.target.value >= 0) {\r\n setColumnValue(i, \"totalAmountWithVat\", event.target.value);\r\n }\r\n }}\r\n onBlur={(event) => {\r\n if (event.target.value == \"\") {\r\n setColumnValue(i, \"totalAmountWithVat\", 0);\r\n }\r\n }}\r\n />\r\n \r\n {\r\n if (event.target.value >= 0) {\r\n setColumnValue(i, \"grossWeight\", event.target.value);\r\n }\r\n }}\r\n />\r\n {dp.stockQuantity == undefined ? intl.formatMessage({ id: \"NO_DATA\" }) : dp.stockQuantity.toFixed(2).replace(\".\", \",\")}
\r\n
\r\n
\r\n\r\n
\r\n
\r\n {!readOnly && (\r\n addRows()}\r\n className=\"btn btn-danger btn-elevate\"\r\n >\r\n \r\n \r\n\r\n )}\r\n
\r\n
\r\n \r\n \r\n {formFieldsVisible.amountForPaymentBase && (\r\n \r\n \r\n \r\n \r\n )}\r\n {formFieldsVisible.amountDiscount && (\r\n \r\n \r\n \r\n \r\n )}\r\n {formFieldsVisible.amountVat && (\r\n <>\r\n {amountForVats.map((vat, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n )}\r\n {formFieldsVisible.amountForPayment && (\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n (EUR) :\r\n {amountForPaymentBase.toFixed(2).replace(\".\", \",\")}
\r\n (EUR) :\r\n {amountDiscount.toFixed(2).replace(\".\", \",\")}
\r\n {vat.procent.toFixed(2).replace(\".\", \",\")}% (EUR) :\r\n {vat.amount.toFixed(2).replace(\".\", \",\")}
\r\n (EUR) :\r\n {amountForPayment.toFixed(2).replace(\".\", \",\")}
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n );\r\n}","// Form is based on Formik\r\n// Data validation is based on Yup\r\n// Please, be familiar with article first:\r\n// https://hackernoon.com/react-form-validation-with-formik-and-yup-8b76bda62e10\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { Formik, Form, Field } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport {\r\n Input,\r\n} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { decimal, onlyDigits } from \"../../../../../util/Util\";\r\nimport AutocompleteSupplier from \"../../../../../components/AutocompleteSupplier\"\r\nimport AutocompleteWarehouseWithoutConsignment from \"../../../../../components/AutocompleteWarehouseWithoutConsignment\"\r\nimport AutocompleteCustomer from \"../../../../../components/AutocompleteCustomer\"\r\nimport { checkIfOtherDocumentNumberYetExist } from \"../../../_redux/documents/documentsCrud\";\r\nimport { DocumentPositionGrid } from \"./DocumentPositionGrid\";\r\nimport InfoPopup from \"../../../../Helpers/InfoPopup\"\r\n\r\nexport function DocumentEditForm({\r\n documentType,\r\n formFieldsVisible,\r\n formTranslate,\r\n gridPositionColumnsVisible,\r\n gridPositionColumnsTranslate,\r\n saveDocument,\r\n document,\r\n actionsLoading,\r\n onHide,\r\n readOnly\r\n}) {\r\n const intl = useIntl();\r\n const [customer, setCustomer] = useState(document != undefined ? document.customer : null);\r\n const [warehouse, setWarehouse] = useState(document != undefined ? document.warehouse : null);\r\n const [warehouse2, setWarehouse2] = useState(document != undefined ? document.warehouse2 : null);\r\n const [errorCustomer, setErrorCustomer] = useState(\"\");\r\n const [errorSupplier, setErrorSupplier] = useState(\"\");\r\n const [errorWarehouseId, setErrorWarehouseId] = useState(\"\");\r\n const [errorWarehouse2Id, setErrorWarehouse2Id] = useState(\"\");\r\n const [discountProcent, setDiscountProcent] = useState(document != undefined ? document.discountProcent : \"\");\r\n const [discountAmount, setDiscountAmount] = useState(document != undefined ? document.discountAmount : \"\");\r\n const [recalculate, doRecalculate] = useState(0);\r\n const [save, doSave] = useState(0);\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n\r\n useEffect(() => {\r\n setCustomer(document != undefined ? document.customer : null);\r\n setWarehouse(document != undefined ? document.warehouse : null);\r\n setWarehouse2(document != undefined ? document.warehouse2 : null);\r\n setDiscountProcent(document != undefined ? document.discountProcent : \"\");\r\n setDiscountAmount(document != undefined ? document.discountAmount : \"\");\r\n }, [document]);\r\n\r\n useEffect(() => {\r\n validateForm();\r\n }, [warehouse, warehouse2, customer]);\r\n\r\n if (document.stornoDocumentId != null) {\r\n readOnly = true;\r\n }\r\n\r\n if (document.linkedDocument2 != null &&\r\n document.linkedDocument2.length > 0) {\r\n readOnly = true;\r\n }\r\n\r\n var objValid = {};\r\n\r\n if (formFieldsVisible.date) {\r\n objValid.date = Yup.string()\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n }));\r\n }\r\n if (formFieldsVisible.time) {\r\n objValid.time = Yup.string()\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n }));\r\n }\r\n if (formFieldsVisible.serviceDate) {\r\n objValid.serviceDate = Yup.string()\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n }));\r\n }\r\n if (formFieldsVisible.dateOfServicesRendered) {\r\n objValid.dateOfServicesRendered = Yup.string()\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n }));\r\n }\r\n if (formFieldsVisible.dueDate) {\r\n objValid.dueDate = Yup.string()\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n }));\r\n }\r\n if (formFieldsVisible.paymentDeadlineNumDays) {\r\n objValid.paymentDeadlineNumDays = Yup.string()\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n }));\r\n }\r\n if (formFieldsVisible.otherDocumentNumber) {\r\n objValid.otherDocumentNumber = Yup.string()\r\n .required(intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n }))\r\n .test('validator', intl.formatMessage({\r\n id: \"AUTH.VALIDATION.DOCUMENT.EXIST_OTHER_DOC_NUM\",\r\n }), value => {\r\n return new Promise((resolve, reject) => {\r\n checkIfOtherDocumentNumberYetExist(document.id, value, documentType)\r\n .then(({ data }) => {\r\n if (!data.didError) {\r\n resolve(!data.model);\r\n } else {\r\n resolve(false);\r\n }\r\n })\r\n .catch((e) => {\r\n resolve(false);\r\n });\r\n })\r\n });\r\n }\r\n objValid.valid = Yup.string()\r\n .test('validator', \"Error\", value => {\r\n return new Promise((resolve, reject) => {\r\n resolve(validateForm());\r\n })\r\n });\r\n\r\n // Validation schema\r\n const DocumentEditSchema = Yup.object().shape(objValid);\r\n\r\n function validateForm() {\r\n var res = true;\r\n if (formFieldsVisible.customer) {\r\n if (customer == undefined) {\r\n setErrorCustomer(intl.formatMessage({ id: 'AUTH.VALIDATION.REQUIRED_FIELD' }));\r\n res = false;\r\n } else {\r\n setErrorCustomer(\"\");\r\n }\r\n }\r\n if (formFieldsVisible.supplier) {\r\n if (customer == undefined) {\r\n setErrorSupplier(intl.formatMessage({ id: 'AUTH.VALIDATION.REQUIRED_FIELD' }));\r\n res = false;\r\n } else {\r\n setErrorSupplier(\"\");\r\n }\r\n }\r\n if (formFieldsVisible.warehouseId) {\r\n if (warehouse == undefined) {\r\n setErrorWarehouseId(intl.formatMessage({ id: 'AUTH.VALIDATION.REQUIRED_FIELD' }));\r\n res = false;\r\n } else {\r\n setErrorWarehouseId(\"\");\r\n }\r\n }\r\n if (formFieldsVisible.warehouse2Id) {\r\n if (warehouse2 == undefined) {\r\n setErrorWarehouse2Id(intl.formatMessage({ id: 'AUTH.VALIDATION.REQUIRED_FIELD' }));\r\n res = false;\r\n } else if (warehouse != undefined && warehouse.id == warehouse2.id) {\r\n setErrorWarehouse2Id(intl.formatMessage({ id: 'WAREHOUSE.VALIDATION.SAME' }));\r\n res = false;\r\n }\r\n else {\r\n setErrorWarehouse2Id(\"\");\r\n }\r\n }\r\n\r\n return res;\r\n }\r\n\r\n var documentPosition = null;\r\n function saveDocumentPositions(documentPositions) {\r\n documentPosition = documentPositions;\r\n }\r\n\r\n function getDiscount() {\r\n return {\r\n discountProcent: discountProcent,\r\n discountAmount: discountAmount\r\n };\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n if (documentPosition.length > 0) {\r\n var date = values.date;\r\n if (formFieldsVisible.time) {\r\n date = date + \" \" + values.time + \":00\";\r\n }\r\n var obj = {\r\n id: values.id,\r\n type: documentType,\r\n date: date,\r\n serviceDate: values.serviceDate,\r\n dateOfServicesRendered: values.dateOfServicesRendered,\r\n dueDate: values.dueDate,\r\n customer: customer,\r\n customerId: customer != null ? customer.id : -1,\r\n discountProcent: discountProcent,\r\n discountAmount: discountAmount,\r\n note: values.note,\r\n note2: values.note2,\r\n warehouse: warehouse,\r\n warehouseId: warehouse != null ? warehouse.id : -1,\r\n warehouse2: warehouse2,\r\n warehouse2Id: warehouse2 != null ? warehouse2.id : -1,\r\n otherDocumentNumber: values.otherDocumentNumber,\r\n paymentDeadlineNumDays: values.paymentDeadlineNumDays,\r\n documentPosition: documentPosition,\r\n linkedDocument: values.linkedDocument\r\n }\r\n saveDocument(obj);\r\n } else {\r\n setMessage(intl.formatMessage({ id: 'AUTH.DOCUMENT_POSITIONS.ZERO' }));\r\n setOpen(true);\r\n }\r\n }}\r\n >\r\n {({ handleSubmit, errors, values }) => (\r\n <>\r\n \r\n {actionsLoading && (\r\n
\r\n
\r\n
\r\n )}\r\n\r\n {!actionsLoading && (\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n {formFieldsVisible.date && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n\r\n {formFieldsVisible.time && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n\r\n {formFieldsVisible.serviceDate && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n\r\n {formFieldsVisible.dateOfServicesRendered && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n\r\n {formFieldsVisible.dueDate && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n\r\n {formFieldsVisible.paymentDeadlineNumDays && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n \r\n\r\n {formFieldsVisible.customer && (\r\n
\r\n \r\n {\r\n setCustomer(val);\r\n }}\r\n />\r\n {errorCustomer.length > 0 ? (\r\n
\r\n
{errorCustomer}
\r\n
\r\n ) : null}\r\n
\r\n )}\r\n\r\n {formFieldsVisible.supplier && (\r\n
\r\n \r\n {\r\n setCustomer(val);\r\n }}\r\n />\r\n {errorSupplier.length > 0 ? (\r\n
\r\n
{errorSupplier}
\r\n
\r\n ) : null}\r\n
\r\n )}\r\n\r\n {formFieldsVisible.otherDocumentNumber && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n\r\n {formFieldsVisible.discountProcent && (\r\n
\r\n \r\n {\r\n setDiscountProcent(event.target.value);\r\n setDiscountAmount(\"\");\r\n doRecalculate(prev => prev + 1);\r\n }}\r\n />\r\n
\r\n )}\r\n\r\n {formFieldsVisible.discountAmount && (\r\n
\r\n \r\n {\r\n setDiscountProcent(\"\");\r\n setDiscountAmount(event.target.value);\r\n doRecalculate(prev => prev + 1);\r\n }}\r\n />\r\n
\r\n )}\r\n\r\n {formFieldsVisible.warehouseId && (\r\n
\r\n \r\n {\r\n setWarehouse(val);\r\n }}\r\n />\r\n {errorWarehouseId.length > 0 ? (\r\n
\r\n
{errorWarehouseId}
\r\n
\r\n ) : null}\r\n
\r\n )}\r\n\r\n {formFieldsVisible.warehouse2Id && (\r\n
\r\n \r\n {\r\n setWarehouse2(val);\r\n }}\r\n />\r\n {errorWarehouse2Id.length > 0 ? (\r\n
\r\n
{errorWarehouse2Id}
\r\n
\r\n ) : null}\r\n
\r\n )}\r\n\r\n\r\n
\r\n\r\n {formFieldsVisible.note && (\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 {!readOnly && (\r\n \r\n )}\r\n {readOnly && (\r\n \r\n )}\r\n \r\n <> \r\n {!actionsLoading && !readOnly && (\r\n {\r\n doSave(prev => prev + 1);\r\n handleSubmit();\r\n }}\r\n className=\"btn btn-primary btn-elevate\"\r\n >\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n { setOpen(false); }} />\r\n \r\n );\r\n}\r\n","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/documents/documentsActions\";\r\nimport { DocumentEditDialogHeader } from \"./DocumentEditDialogHeader\";\r\nimport { DocumentEditForm } from \"./DocumentEditForm\";\r\nimport { useDocumentsUIContext } from \"../DocumentsUIContext\";\r\n\r\nexport function DocumentEditDialog({ id, show, onHide, copy, sendToDocument, sendToDocumentType }) {\r\n // Office users UI Context\r\n const documentsUIContext = useDocumentsUIContext();\r\n const documentsUIProps = useMemo(() => {\r\n return {\r\n initDocument: documentsUIContext.initDocument,\r\n formFieldsVisible: documentsUIContext.formFieldsVisible,\r\n formTranslate: documentsUIContext.formTranslate,\r\n documentType: documentsUIContext.documentType,\r\n setIds: documentsUIContext.setIds,\r\n queryParams: documentsUIContext.queryParams,\r\n gridPositionColumnsVisible: documentsUIContext.gridPositionColumnsVisible,\r\n gridPositionColumnsTranslate: documentsUIContext.gridPositionColumnsTranslate,\r\n readOnly: documentsUIContext.readOnly\r\n };\r\n }, [documentsUIContext]);\r\n\r\n\r\n // Users Redux state\r\n const dispatch = useDispatch();\r\n const { actionsLoading, documentForEdit } = useSelector(\r\n (state) => ({\r\n actionsLoading: state.documents.actionsLoading,\r\n documentForEdit: state.documents.documentForEdit\r\n }),\r\n shallowEqual\r\n );\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n return;\r\n }\r\n if (sendToDocument) {\r\n dispatch(actions.fetchSendToDocument(id, sendToDocumentType));\r\n } else {\r\n dispatch(actions.fetchDocument(id, copy));\r\n }\r\n }, [id, show, dispatch]);\r\n\r\n // server request for saving user\r\n const saveDocument = (document) => {\r\n if (!document.id) {\r\n dispatch(actions.createDocument(document)).then(() => {\r\n documentsUIProps.setIds([]);\r\n dispatch(actions.fetchDocuments(documentsUIProps.queryParams));\r\n // clear selections list\r\n onHide();\r\n });\r\n } else {\r\n dispatch(actions.updateDocument(document)).then(() => {\r\n documentsUIProps.setIds([]);\r\n dispatch(actions.fetchDocuments(documentsUIProps.queryParams));\r\n // clear selections list\r\n onHide();\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","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport * as actions from \"../../../_redux/documents/documentsActions\";\r\nimport { useDocumentsUIContext } from \"../DocumentsUIContext\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nexport function DocumentDeleteDialog({ id, show, onHide }) {\r\n // Office users UI Context\r\n const documentsUIContext = useDocumentsUIContext();\r\n const documentsUIProps = useMemo(() => {\r\n return {\r\n setIds: documentsUIContext.setIds,\r\n queryParams: documentsUIContext.queryParams,\r\n deleteFromTranslate: documentsUIContext.deleteFromTranslate\r\n };\r\n }, [documentsUIContext]);\r\n\r\n // Office users Redux state\r\n const dispatch = useDispatch();\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.documents.actionsLoading }),\r\n shallowEqual\r\n );\r\n\r\n // if !id we should close modal\r\n useEffect(() => {\r\n if (!id) {\r\n onHide();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [id]);\r\n\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading, dispatch]);\r\n\r\n const deleteDocument = () => {\r\n // server request for deleting office user by id\r\n dispatch(actions.deleteDocument(id)).then(() => {\r\n // refresh list after deletion\r\n dispatch(actions.fetchDocuments(documentsUIProps.queryParams));\r\n // clear selections list\r\n documentsUIProps.setIds([]);\r\n // closing delete modal\r\n onHide();\r\n });\r\n };\r\n\r\n return (\r\n \r\n {/*begin::Loading*/}\r\n {isLoading && }\r\n {/*end::Loading*/}\r\n \r\n \r\n {documentsUIProps.deleteFromTranslate.delete }\r\n \r\n \r\n \r\n {!isLoading && (\r\n {documentsUIProps.deleteFromTranslate.areYouSure}\r\n )}\r\n {isLoading && {documentsUIProps.deleteFromTranslate.ItemAreDeleting}}\r\n \r\n \r\n
\r\n \r\n {documentsUIProps.deleteFromTranslate.cancel}\r\n \r\n <> \r\n \r\n {documentsUIProps.deleteFromTranslate.storno}\r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/documents/documentsActions\";\r\nimport { useDocumentsUIContext } from \"../DocumentsUIContext\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport PdfViewer from \"../../../../../components/PdfViewer\"\r\n\r\nexport function DocumentsPrintDialog({ show, id, onHide }) {\r\n // Office users UI Context\r\n const documentsUIContext = useDocumentsUIContext();\r\n const documentsUIProps = useMemo(() => {\r\n return {\r\n ids: documentsUIContext.ids,\r\n setIds: documentsUIContext.setIds,\r\n queryParams: documentsUIContext.queryParams,\r\n };\r\n }, [documentsUIContext]);\r\n\r\n // Office users Redux state\r\n const dispatch = useDispatch();\r\n \r\n\r\n // if office users weren't selected we should close modal\r\n useEffect(() => {\r\n if (!id|| !documentsUIProps.ids || documentsUIProps.ids.length === 0) {\r\n onHide();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [documentsUIProps.ids]);\r\n\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [dispatch]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {id != undefined && id != null && (\r\n \r\n \r\n )} \r\n\r\n {(id == undefined || id == null) && documentsUIProps.ids != undefined && documentsUIProps.ids != null && documentsUIProps.ids.length > 0 && (\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","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/documents/documentsActions\";\r\nimport { useDocumentsUIContext } from \"../DocumentsUIContext\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport PdfViewer from \"../../../../../components/PdfViewer\"\r\n\r\nexport function DocumentsPrintStornoDialog({ id, show, onHide }) {\r\n // Office users UI Context\r\n const documentsUIContext = useDocumentsUIContext();\r\n const documentsUIProps = useMemo(() => {\r\n return {\r\n queryParams: documentsUIContext.queryParams,\r\n };\r\n }, [documentsUIContext]);\r\n\r\n // Office users Redux state\r\n const dispatch = useDispatch();\r\n \r\n\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [dispatch]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {id > 0 && (\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","// *https://www.registers.service.gov.uk/registers/country/use-the-api*\r\nimport React from 'react';\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Select from '@material-ui/core/Select';\r\nimport Chip from '@material-ui/core/Chip';\r\nimport Input from '@material-ui/core/Input';\r\nimport { useTheme } from '@material-ui/core/styles';\r\nimport { useIntl } from \"react-intl\";\r\n\r\nfunction getStyles(option, value, theme) {\r\n return {\r\n fontWeight:\r\n value.indexOf(option.id) === -1\r\n ? theme.typography.fontWeightRegular\r\n : theme.typography.fontWeightMedium,\r\n };\r\n}\r\n\r\nexport default function MultiSelectCashier(props) {\r\n const theme = useTheme();\r\n const intl = useIntl();\r\n\r\n function getCashierById(id) {\r\n var tmpCashiers = getCashiers();\r\n for (var index = 0; index < tmpCashiers.length; index++) {\r\n var el = tmpCashiers[index];\r\n if (el.id == id) {\r\n return el;\r\n }\r\n }\r\n return tmpCashiers[0];\r\n }\r\n\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.cache }),\r\n shallowEqual\r\n );\r\n const { cashiers } = currentState;\r\n\r\n function getCashiers() {\r\n var list = [];\r\n\r\n list.push({\r\n id: -1,\r\n businessPremiseTitle: intl.formatMessage({ id: 'AUTH.INPUT.WITHOUT_CASHIER' })\r\n });\r\n\r\n if (cashiers != undefined && cashiers != null) {\r\n for (var x = 0; x < cashiers.length; x++) {\r\n list.push(cashiers[x]);\r\n }\r\n }\r\n\r\n return list;\r\n }\r\n\r\n return (\r\n <>\r\n { props.onChange(event.target.value); }}\r\n className={`form-control form-control-solid }`}\r\n input={}\r\n renderValue={selected => (\r\n
\r\n {selected.map(value => (\r\n \r\n ))}\r\n
\r\n )}\r\n >\r\n {getCashiers().map(option => (\r\n \r\n {option.businessPremiseTitle}\r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n","import React, { useMemo, useState } from \"react\";\r\nimport { Formik } from \"formik\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { isEqual } from \"lodash\";\r\nimport { useDocumentsUIContext } from \"../DocumentsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport DateRange2 from '../../../../../components/DateRange2';\r\nimport MultiSelectCashier from '../../../../../components/MultiSelectCashier';\r\nimport moment from 'moment';\r\nimport { useCookies } from \"react-cookie\";\r\n\r\nconst prepareFilter = (queryParams, values, fromDt, toDt, selectedCashiers) => {\r\n const { searchText } = values;\r\n const newQueryParams = { ...queryParams };\r\n\r\n newQueryParams.startDate = moment(fromDt).format(\"YYYY-MM-DD\");\r\n newQueryParams.endDate = moment(toDt).format(\"YYYY-MM-DD\");\r\n newQueryParams.query = searchText;\r\n\r\n if ((queryParams.documentType == 1) ||\r\n (queryParams.documentType == 2) ||\r\n (queryParams.documentType == 3) ||\r\n (queryParams.documentType == 4) ||\r\n (queryParams.documentType == 5) ||\r\n (queryParams.documentType == 6) ||\r\n (queryParams.documentType == 9) ||\r\n (queryParams.documentType == 10) ||\r\n (queryParams.documentType == 11)) {\r\n var ids = \"\";\r\n for (var index = 0; index < selectedCashiers.length; index++) {\r\n if (ids != \"\") {\r\n ids += \",\";\r\n }\r\n ids += selectedCashiers[index];\r\n }\r\n newQueryParams.cashierIds = ids;\r\n }\r\n return newQueryParams;\r\n};\r\n\r\nexport function DocumentsFilter({ listLoading }) {\r\n const intl = useIntl();\r\n const [cookies, setCookie] = useCookies();\r\n\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.cache }),\r\n shallowEqual\r\n );\r\n const { cashiers } = currentState;\r\n const { user } = useSelector(state => state.auth);\r\n\r\n // Office users UI Context\r\n const documentsUIContext = useDocumentsUIContext();\r\n const documentsUIProps = useMemo(() => {\r\n return {\r\n queryParams: documentsUIContext.queryParams,\r\n setQueryParams: documentsUIContext.setQueryParams,\r\n documentType: documentsUIContext.documentType\r\n };\r\n }, [documentsUIContext]);\r\n\r\n const [selectedCashiers, setSelectedCashiers] = useState(cookies['filter_dt_' + documentsUIProps.documentType + '_' + user.id] != undefined ? getSelectCashiers(cookies['filter_dt_' + documentsUIProps.documentType + '_' + user.id]) : []);\r\n\r\n // queryParams, setQueryParams,\r\n const applyFilter = (values) => {\r\n const newQueryParams = prepareFilter(documentsUIProps.queryParams, values, startDate, endDate, selectedCashiers);\r\n if (!isEqual(newQueryParams, documentsUIProps.queryParams)) {\r\n newQueryParams.pageNumber = 1;\r\n // update list by queryParams\r\n documentsUIProps.setQueryParams(newQueryParams);\r\n }\r\n };\r\n\r\n function getSelectCashiers(selectCashiers) {\r\n if (cashiers == undefined || cashiers == null) {\r\n return [];\r\n }\r\n var list = [];\r\n for (var index = 0; index < selectCashiers.length; index++) {\r\n for (var x = 0; x < cashiers.length; x++) {\r\n if (cashiers[x].id == selectCashiers[index] || selectCashiers[index] < 0) {\r\n list.push(selectCashiers[index]);\r\n break;\r\n }\r\n }\r\n\r\n }\r\n return list;\r\n }\r\n\r\n\r\n return (\r\n <>\r\n {\r\n applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n {\r\n ((documentsUIProps.documentType == 1) ||\r\n (documentsUIProps.documentType == 2) ||\r\n (documentsUIProps.documentType == 3) ||\r\n (documentsUIProps.documentType == 4) ||\r\n (documentsUIProps.documentType == 5) ||\r\n (documentsUIProps.documentType == 6) ||\r\n (documentsUIProps.documentType == 9) ||\r\n (documentsUIProps.documentType == 10) ||\r\n (documentsUIProps.documentType == 11))\r\n && (\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_' + documentsUIProps.documentType + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear\r\n });\r\n setSelectedCashiers(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n )}\r\n\r\n
\r\n {\r\n setFieldValue(\"searchText\", e.target.value);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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","export const defaultSorted = [{ dataField: \"date\", order: \"desc\" }];\r\nexport const sizePerPageList = [\r\n { text: \"10\", value: 10 },\r\n { text: \"25\", value: 25 },\r\n { text: \"50\", value: 50 }\r\n];\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../../../_metronic/_helpers\";\r\n\r\nexport function ActionsColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n { openEditDocumentDialog, openDeleteDocumentDialog, printDocumentDialog, historyDocumentDialog, readOnly, print, history }\r\n) {\r\n return (\r\n <>\r\n {print && (\r\n printDocumentDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {history && (\r\n <>\r\n <> \r\n\r\n\r\n historyDocumentDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n\r\n \r\n )}\r\n\r\n {!print && (\r\n <>\r\n openEditDocumentDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n <> \r\n {!readOnly && !(row.documentStornoId > 0) && row.linkedDocumentIds == null && (\r\n openDeleteDocumentDialog(row.id)}\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","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\n\r\nexport function AmountForPaymentColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n) {\r\n return (\r\n <>\r\n {cellContent != null ? cellContent.toFixed(2).replace(\".\", \",\") : \"\"}\r\n \r\n );\r\n}\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport Moment from 'react-moment';\r\n\r\n\r\nexport function DateColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex\r\n) {\r\n return (\r\n <>\r\n \r\n {cellContent}\r\n \r\n \r\n \r\n );\r\n}\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\n\r\nexport function StornoTalkingNumberColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n { printStornoDocumentsDialog }\r\n) {\r\n return (\r\n <>\r\n {row.documentStornoId != null && (\r\n printStornoDocumentsDialog(row.documentStornoId)}\r\n >\r\n {cellContent}\r\n \r\n )}\r\n \r\n );\r\n}\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\n\r\nexport function LinkedDocumentColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n { printStornoDocumentsDialog }\r\n) {\r\n var linkedDocumentIds ;\r\n var linkedDocumentTalkingNumbers;\r\n if (row.linkedDocumentIds != null) {\r\n linkedDocumentIds = row.linkedDocumentIds.split(',');\r\n linkedDocumentTalkingNumbers = row.linkedDocumentTalkingNumbers.split(',');\r\n linkedDocumentIds.pop();\r\n linkedDocumentTalkingNumbers.pop();\r\n }\r\n\r\n return (\r\n <>\r\n {row.linkedDocumentIds != null && (\r\n linkedDocumentIds.map((documentId, index) =>\r\n <>\r\n printStornoDocumentsDialog(documentId)}\r\n >\r\n {linkedDocumentTalkingNumbers[index]}\r\n \r\n
\r\n \r\n )\r\n )}\r\n \r\n );\r\n}\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport Moment from 'react-moment';\r\n\r\n\r\nexport function DateTimeColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex\r\n) {\r\n return (\r\n <>\r\n \r\n {cellContent}\r\n \r\n \r\n \r\n );\r\n}\r\n","// React bootstrap table next =>\r\n// DOCS: https://react-bootstrap-table.github.io/react-bootstrap-table2/docs/\r\n// STORYBOOK: https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html\r\nimport React, { useEffect, useMemo } from \"react\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory, {\r\n PaginationProvider,\r\n} from \"react-bootstrap-table2-paginator\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/documents/documentsActions\";\r\nimport {\r\n getSelectRow,\r\n getHandlerTableChange,\r\n NoRecordsFoundMessage,\r\n PleaseWaitMessage,\r\n sortCaret,\r\n headerSortingClasses,\r\n} from \"../../../../../../_metronic/_helpers\";\r\nimport * as uiHelpers from \"../DocumentsUIHelpers\";\r\nimport * as columnFormatters from \"./column-formatters\";\r\nimport { Pagination } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useDocumentsUIContext } from \"../DocumentsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function DocumentsTable() {\r\n const intl = useIntl();\r\n // Office users UI Context\r\n const documentsUIContext = useDocumentsUIContext();\r\n const documentsUIProps = useMemo(() => {\r\n return {\r\n ids: documentsUIContext.ids,\r\n setIds: documentsUIContext.setIds,\r\n queryParams: documentsUIContext.queryParams,\r\n setQueryParams: documentsUIContext.setQueryParams,\r\n openEditDocumentDialog: documentsUIContext.openEditDocumentDialog,\r\n openDeleteDocumentDialog: documentsUIContext.openDeleteDocumentDialog,\r\n printStornoDocumentsDialog: documentsUIContext.printStornoDocumentsDialog,\r\n printDocumentsDialog: documentsUIContext.printDocumentsDialog,\r\n printDocumentDialog: documentsUIContext.printDocumentDialog,\r\n historyDocumentDialog: documentsUIContext.historyDocumentDialog,\r\n gridColumnsVisible: documentsUIContext.gridColumnsVisible,\r\n readOnly: documentsUIContext.readOnly,\r\n };\r\n }, [documentsUIContext]);\r\n\r\n // Getting curret state of office users list from store (Redux)\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.documents }),\r\n shallowEqual\r\n );\r\n const { totalCount, entities, listLoading } = currentState;\r\n\r\n // Office Users Redux state\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n // clear selections list\r\n documentsUIProps.setIds([]);\r\n // server call by queryParams\r\n dispatch(actions.fetchDocuments(documentsUIProps.queryParams));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [documentsUIProps.queryParams, dispatch]);\r\n\r\n // Table columns\r\n var columns = [];\r\n if (documentsUIProps.gridColumnsVisible.id) {\r\n columns.push({\r\n dataField: \"id\",\r\n text: \"#\",\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n });\r\n }\r\n\r\n if (documentsUIProps.gridColumnsVisible.fiscalCashierBusinessUnitTitle) {\r\n columns.push({\r\n dataField: \"fiscalCashierBusinessUnitTitle\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.FISCAL_CASHIER\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n });\r\n }\r\n\r\n if (documentsUIProps.gridColumnsVisible.talkingNumber) {\r\n columns.push({\r\n dataField: \"talkingNumber\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.TALKING_NUMBER\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n });\r\n }\r\n if (documentsUIProps.gridColumnsVisible.type) {\r\n columns.push({\r\n dataField: \"type\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.TYPE\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n });\r\n }\r\n if (documentsUIProps.gridColumnsVisible.documentTypeTitle) {\r\n columns.push({\r\n dataField: \"documentTypeTitle\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.DOCUMENT_TYPE.TITLE\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n });\r\n }\r\n if (documentsUIProps.gridColumnsVisible.customerName) {\r\n columns.push({\r\n dataField: \"customerName\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.CUSTOMER\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n });\r\n }\r\n\r\n if (documentsUIProps.gridColumnsVisible.linkedDocumentIds) {\r\n columns.push({\r\n dataField: \"linkedDocumentIds\",\r\n formatter: columnFormatters.LinkedDocumentColumnFormatter,\r\n formatExtraData: {\r\n printStornoDocumentsDialog: documentsUIProps.printStornoDocumentsDialog\r\n },\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.LINKED_DOCUMENT\" }),\r\n sort: false,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n });\r\n }\r\n if (documentsUIProps.gridColumnsVisible.dateTime) {\r\n columns.push({\r\n dataField: \"date\",\r\n formatter: columnFormatters.DateTimeColumnFormatter,\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n });\r\n }\r\n\r\n if (documentsUIProps.gridColumnsVisible.date) {\r\n columns.push({\r\n dataField: \"date\",\r\n formatter: columnFormatters.DateColumnFormatter,\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n });\r\n }\r\n if (documentsUIProps.gridColumnsVisible.creatorId) {\r\n columns.push({\r\n dataField: \"creatorId\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.CREATOR.ID\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n });\r\n }\r\n if (documentsUIProps.gridColumnsVisible.creatorTitle) {\r\n columns.push({\r\n dataField: \"creatorTitle\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.CREATOR\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n });\r\n }\r\n if (documentsUIProps.gridColumnsVisible.amountForPayment) {\r\n columns.push({\r\n dataField: \"amountForPayment\",\r\n formatter: columnFormatters.AmountForPaymentColumnFormatter,\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n });\r\n }\r\n if (documentsUIProps.gridColumnsVisible.endId) {\r\n columns.push({\r\n dataField: \"endId\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.END.ID\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n });\r\n }\r\n if (documentsUIProps.gridColumnsVisible.endTalkingNumber) {\r\n columns.push({\r\n dataField: \"endTalkingNumber\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.END.TALKING_NUMBER\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n });\r\n }\r\n if (documentsUIProps.gridColumnsVisible.documentStornoId) {\r\n columns.push({\r\n dataField: \"documentStornoId\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.DOCUMENT_STORNO.ID\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n });\r\n }\r\n if (documentsUIProps.gridColumnsVisible.documentStornoTalkingNumber) {\r\n columns.push({\r\n dataField: \"documentStornoTalkingNumber\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.DOCUMENT_STORNO.TALKING_NUMBER\" }),\r\n formatter: columnFormatters.StornoTalkingNumberColumnFormatter,\r\n formatExtraData: {\r\n printStornoDocumentsDialog: documentsUIProps.printStornoDocumentsDialog\r\n },\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n });\r\n }\r\n if (documentsUIProps.gridColumnsVisible.payments) {\r\n columns.push({\r\n dataField: \"payments\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.DOCUMENT_STORNO.PAYMENTS\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n });\r\n }\r\n columns.push({\r\n dataField: \"action\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.ACTIONS\" }),\r\n formatter: columnFormatters.ActionsColumnFormatter,\r\n formatExtraData: {\r\n openEditDocumentDialog: documentsUIProps.openEditDocumentDialog,\r\n openDeleteDocumentDialog: documentsUIProps.openDeleteDocumentDialog,\r\n printDocumentDialog: documentsUIProps.printDocumentDialog,\r\n historyDocumentDialog: documentsUIProps.historyDocumentDialog,\r\n readOnly: documentsUIProps.readOnly,\r\n print: documentsUIProps.gridColumnsVisible.print,\r\n history: documentsUIProps.gridColumnsVisible.history\r\n },\r\n classes: \"text-right pr-0\",\r\n headerClasses: \"text-right pr-3\",\r\n style: {\r\n minWidth: \"100px\",\r\n },\r\n });\r\n\r\n const customTotal = (from, to, size) => (\r\n \r\n {from} - { to} {size} \r\n \r\n );\r\n\r\n // Table pagination properties\r\n const paginationOptions = {\r\n custom: true,\r\n totalSize: totalCount,\r\n sizePerPageList: uiHelpers.sizePerPageList,\r\n sizePerPage: documentsUIProps.queryParams.pageSize,\r\n page: documentsUIProps.queryParams.pageNumber,\r\n paginationTotalRenderer: customTotal\r\n };\r\n return (\r\n <>\r\n \r\n {({ paginationProps, paginationTableProps }) => {\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","import React, { useMemo, useState } from \"react\";\r\nimport { useDocumentsUIContext } from \"../DocumentsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport { checkIfCanCreateERacun } from \"../../../_redux/documents/documentsCrud\"\r\nimport InfoPopup from \"../../../../Helpers/InfoPopup\"\r\n\r\nexport function DocumentsGrouping() {\r\n const intl = useIntl();\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n\r\n\r\n // Office Users UI Context\r\n const documentsUIContext = useDocumentsUIContext();\r\n const documentsUIProps = useMemo(() => {\r\n return {\r\n ids: documentsUIContext.ids,\r\n setIds: documentsUIContext.setIds,\r\n copyDocumentButtonClick: documentsUIContext.copyDocumentButtonClick,\r\n printDocumentsDialog: documentsUIContext.printDocumentsDialog,\r\n sendDocumentsToDeliveryNoteDialog: documentsUIContext.sendDocumentsToDeliveryNoteDialog,\r\n sendDocumentsToDeliveryNoteInvoiceDialog: documentsUIContext.sendDocumentsToDeliveryNoteInvoiceDialog,\r\n createEInvoiceButtonClick: documentsUIContext.createEInvoiceButtonClick,\r\n createESlogButtonClick: documentsUIContext.createESlogButtonClick,\r\n readOnly: documentsUIContext.readOnly,\r\n documentType: documentsUIContext.documentType\r\n };\r\n }, [documentsUIContext]);\r\n\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.documents }),\r\n shallowEqual\r\n );\r\n const { entities } = currentState;\r\n\r\n function checkIfDocumentsFromSameCustomerAndLinkedDocuments() {\r\n if (documentsUIProps.ids.length == 0) {\r\n return true;\r\n }\r\n var customerId = null;\r\n for (var index = 0; index < entities.length; ++index) {\r\n var row = entities[index];\r\n\r\n if (isSelectedId(row.id)) {\r\n if (customerId == null) {\r\n customerId = row.customerId;\r\n }\r\n\r\n if (customerId != row.customerId) {\r\n return false;\r\n }\r\n if (row.linkedDocumentIds != null ||\r\n row.documentStornoId > 0) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n function isSelectedId(id) {\r\n for (var index = 0; index < documentsUIProps.ids.length; ++index) {\r\n var rowId = documentsUIProps.ids[index];\r\n if (id == rowId) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n function createEInvoiceButtonClick(ids) {\r\n checkIfCanCreateERacun(ids).then(({ data }) => {\r\n if (data.model.success) {\r\n var txtIds = \"\";\r\n for (var index = 0; index < ids.length; index++) {\r\n if (txtIds == \"\") {\r\n txtIds = ids[index];\r\n } else {\r\n txtIds += \",\" + ids[index];\r\n }\r\n }\r\n window.location = \"/api/document/DownloadERacun/\" + txtIds;\r\n } else {\r\n setMessage(data.model.message);\r\n setOpen(true);\r\n }\r\n });\r\n }\r\n\r\n function createESlogButtonClick(ids){\r\n checkIfCanCreateERacun(ids).then(({ data }) => {\r\n if (data.model.success) {\r\n var txtIds = \"\";\r\n for (var index = 0; index < ids.length; index++) {\r\n if (txtIds == \"\") {\r\n txtIds = ids[index];\r\n } else {\r\n txtIds += \",\" + ids[index];\r\n }\r\n }\r\n window.location = \"/api/document/DownloadESlog/\" + txtIds;\r\n } else {\r\n setMessage(data.model.message);\r\n setOpen(true);\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 {documentsUIProps.ids.length == 1 && !documentsUIProps.readOnly && (\r\n documentsUIProps.copyDocumentButtonClick(documentsUIProps.ids)}\r\n >\r\n \r\n \r\n )}\r\n  \r\n \r\n \r\n \r\n\r\n {!documentsUIProps.readOnly && documentsUIProps.documentType == 11 && checkIfDocumentsFromSameCustomerAndLinkedDocuments() && (\r\n <>\r\n  \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n\r\n {!documentsUIProps.readOnly &&\r\n (documentsUIProps.documentType == 1) &&\r\n checkIfDocumentsFromSameCustomerAndLinkedDocuments()\r\n && (\r\n <>\r\n  \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {(documentsUIProps.documentType == 3 ||\r\n documentsUIProps.documentType == 5 ||\r\n documentsUIProps.documentType == 7\r\n ) &&\r\n documentsUIProps.ids.length > 0\r\n && (\r\n <>\r\n  \r\n createEInvoiceButtonClick(documentsUIProps.ids)}\r\n >\r\n \r\n \r\n  \r\n createESlogButtonClick(documentsUIProps.ids)}\r\n >\r\n \r\n \r\n \r\n )}\r\n\r\n
\r\n
\r\n
\r\n
\r\n {/* end::Form */}\r\n setOpen(false)} />\r\n
\r\n );\r\n}\r\n","import React, { useMemo } from \"react\";\r\nimport {\r\n Card,\r\n CardBody,\r\n CardHeader,\r\n CardHeaderToolbar,\r\n} from \"../../../../../_metronic/_partials/controls\";\r\nimport { DocumentsFilter } from \"./documents-filter/DocumentsFilter\";\r\nimport { DocumentsTable } from \"./documents-table/DocumentsTable\";\r\nimport { DocumentsGrouping } from \"./documents-grouping/DocumentsGrouping\";\r\nimport { useDocumentsUIContext } from \"./DocumentsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function DocumentsCard() {\r\n const intl = useIntl();\r\n const documentsUIContext = useDocumentsUIContext();\r\n const documentsUIProps = useMemo(() => {\r\n return {\r\n ids: documentsUIContext.ids,\r\n newDocumentButtonClick: documentsUIContext.newDocumentButtonClick,\r\n translate: documentsUIContext.translate,\r\n readOnly: documentsUIContext.readOnly\r\n };\r\n }, [documentsUIContext]);\r\n\r\n return (\r\n \r\n \r\n \r\n {!documentsUIProps.readOnly && (\r\n \r\n {documentsUIProps.translate.newHeader}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {documentsUIProps.ids.length > 0 && }\r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useState, useCallback } from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\nimport { DocumentsLoadingDialog } from \"../../../Document/pages/documents/documents-loading-dialog/DocumentsLoadingDialog\";\r\nimport { DocumentEditDialog } from \"../../../Document/pages/documents/document-edit-dialog/DocumentEditDialog\";\r\nimport { DocumentDeleteDialog } from \"../../../Document/pages/documents/document-delete-dialog/DocumentDeleteDialog\";\r\nimport { DocumentsPrintDialog } from \"../../../Document/pages/documents/documents-print-dialog/DocumentsPrintDialog\";\r\nimport { DocumentsPrintStornoDialog } from \"../../../Document/pages/documents/documents-print-storno-dialog/DocumentsPrintStornoDialog\";\r\nimport { DocumentsCard } from \"../../../Document/pages/documents/DocumentsCard\";\r\nimport { DocumentsUIProvider } from \"../../../Document/pages/documents/DocumentsUIContext\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport InfoPopup from \"../../../Helpers/InfoPopup\"\r\nimport { useIntl } from \"react-intl\";\r\nimport { isEqual, isFunction } from \"lodash\";\r\nimport moment from 'moment'\r\nimport { hasRoleForFunctionality } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\n\r\nexport function TakeoversPage({ history }) {\r\n const intl = useIntl();\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.documents }),\r\n shallowEqual\r\n );\r\n\r\n const takeoversUIEvents = {\r\n newDocumentButtonClick: () => {\r\n history.push(\"/purchase/takeovers/new\");\r\n },\r\n openEditDocumentDialog: (id) => {\r\n history.push(`/purchase/takeovers/${id}/edit`);\r\n },\r\n openDeleteDocumentDialog: (id) => {\r\n history.push(`/purchase/takeovers/${id}/delete`);\r\n },\r\n printDocumentsDialog: () => {\r\n history.push(`/purchase/takeovers/printTakeovers`);\r\n },\r\n printStornoDocumentsDialog: (id) => {\r\n history.push(`/purchase/takeovers/${id}/printStornoTakeovers/`);\r\n },\r\n copyDocumentButtonClick: (id) => {\r\n history.push(`/purchase/takeovers/${id}/copy`);\r\n }\r\n }\r\n\r\n const documentType = 12;\r\n const { user } = useSelector(state => state.auth);\r\n\r\n const initialFilter = {\r\n documentType: documentType,\r\n query: \"\",\r\n sortOrder: \"asc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25,\r\n startDate: moment(new Date(new Date().setMonth(new Date().getMonth() - 1))).format(\"YYYY-MM-DD\"),\r\n endDate: moment(new Date()).format(\"YYYY-MM-DD\")\r\n };\r\n\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n const initDocument = {\r\n id: undefined,\r\n type: \"\",\r\n date: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n time: moment(new Date()).format(\"HH:mm\"),\r\n serviceDate: \"\",\r\n dateOfServicesRendered: \"\",\r\n dueDate: \"\",\r\n customer: null,\r\n customerId: null,\r\n discountProcent: \"\",\r\n discountAmount: \"\",\r\n note: \"\",\r\n note2: \"\",\r\n warehouseId: null,\r\n warehouse: null,\r\n warehouse2Id: null,\r\n warehouse2: null,\r\n otherDocumentNumber: \"\",\r\n documentPosition: [],\r\n stornoDocument: null,\r\n stornoDocumentId: null,\r\n paymentDeadlineNumDays: \"\",\r\n valid: \"\"\r\n };\r\n\r\n for (var x = 0; x < 5; x++) {\r\n initDocument.documentPosition.push({\r\n item: null,\r\n vatRateId: 1,\r\n quantity: 0,\r\n discount: 0,\r\n itemAmountWithoutVat: 0,\r\n totalAmountWithoutVat: 0,\r\n totalAmountWithVat: 0,\r\n grossWeight: 0,\r\n isCustomItem: false,\r\n itemTitle: \"\",\r\n unitId: null,\r\n length: 0,\r\n radius: 0,\r\n cubic: 0\r\n });\r\n }\r\n\r\n const translate = {\r\n header: intl.formatMessage({ id: \"TAKEOVER.HEADER\" }),\r\n newHeader: intl.formatMessage({ id: \"TAKEOVER.NEW.HEADER\" }),\r\n editHeader: intl.formatMessage({ id: \"TAKEOVER.EDIT.HEADER\" }),\r\n copyHeader: intl.formatMessage({ id: \"TAKEOVER.COPY.HEADER\" }),\r\n viewHeader: intl.formatMessage({ id: \"TAKEOVER.VIEW.HEADER\" }),\r\n };\r\n\r\n const gridColumnsVisible = {\r\n id: true,\r\n fiscalCashierBusinessUnitTitle: false,\r\n talkingNumber: true,\r\n type: false,\r\n documentTypeTitle: false,\r\n customerName: true,\r\n date: true,\r\n creatorId: false,\r\n creatorTitle: true,\r\n amountForPayment: true,\r\n endId: false,\r\n endTalkingNumber: false,\r\n documentStornoId: false,\r\n documentStornoTalkingNumber: true,\r\n payments: false\r\n };\r\n\r\n const formFieldsVisible = {\r\n date: true,\r\n time: false,\r\n serviceDate: false,\r\n dateOfServicesRendered: false,\r\n dueDate: false,\r\n customer: false,\r\n supplier: true,\r\n discountProcent: true,\r\n discountAmount: true,\r\n note: true,\r\n warehouseId: true,\r\n warehouse2Id: false,\r\n paymentDeadlineNumDays: false,\r\n otherDocumentNumber: true,\r\n //result fields\r\n amountForPaymentBase: true,\r\n amountVat: true,\r\n amountForPayment: true,\r\n amountDiscount: true,\r\n };\r\n\r\n const formTranslate = {\r\n date: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n time: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n serviceDate: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dateOfServicesRendered: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dueDate: intl.formatMessage({ id: \"AUTH.GENERAL.DUE_DATE\" }),\r\n customer: intl.formatMessage({ id: \"AUTH.GENERAL.CUSTOMER\" }),\r\n supplier: intl.formatMessage({ id: \"AUTH.GENERAL.SUPPLIER\" }),\r\n discountProcent: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n discountAmount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_AMOUNT\" }),\r\n note: intl.formatMessage({ id: \"AUTH.GENERAL.NOTE\" }),\r\n warehouseId: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE\" }),\r\n warehouse2Id: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE2\" }),\r\n //result fields\r\n amountForPaymentBase: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT_BASE\" }),\r\n amountVat: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_VAT\" }),\r\n amountForPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT\" }),\r\n amountDiscount: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_DISCOUNT\" }),\r\n amountOfPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_OF_PAYMENT\" }),\r\n otherDocumentNumber: intl.formatMessage({ id: \"AUTH.GENERAL.OTHER_DOCUMENT_NUMBER\" }),\r\n paymentDeadlineNumDays: intl.formatMessage({ id: \"AUTH.GENERAL.PAYMENT_DEADLINE_NUM_DAYS\" })\r\n };\r\n\r\n const gridPositionColumnsVisible = {\r\n itemGoods: true,\r\n itemAll: false,\r\n vat: true,\r\n quantity: true,\r\n discount: true,\r\n itemAmountWithoutVat: true,\r\n totalAmountWithoutVat: true,\r\n totalAmountWithVat: true,\r\n grossWeight: false,\r\n stock: false,\r\n isCustomItem: false,\r\n cubic: user.organizationCubic\r\n };\r\n\r\n const gridPositionColumnsTranslate = {\r\n item: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM\" }),\r\n vat: intl.formatMessage({ id: \"AUTH.GENERAL.VAT_RATE\" }),\r\n quantity: intl.formatMessage({ id: \"AUTH.GENERAL.QUANTITY\" }),\r\n discount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n itemAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITH_VAT\" }),\r\n grossWeight: intl.formatMessage({ id: \"AUTH.GENERAL.GROSS_WEIGHT\" }),\r\n stock: intl.formatMessage({ id: \"AUTH.GENERAL.STOCK\" }),\r\n isCustomItem: intl.formatMessage({ id: \"AUTH.GENERAL.IS_CUSTOM_ITEM\" }),\r\n length: intl.formatMessage({ id: \"AUTH.GENERAL.LENGTH\" }),\r\n radius: intl.formatMessage({ id: \"AUTH.GENERAL.RADIUS\" }),\r\n cubic: intl.formatMessage({ id: \"AUTH.GENERAL.CUBIC\" })\r\n };\r\n\r\n const deleteFromTranslate = {\r\n delete: intl.formatMessage({ id: \"TAKEOVER.DELETE\" }),\r\n areYouSure: intl.formatMessage({ id: \"TAKEOVER.ARE_YOU_SURE_TO_PERMANTLY_DELETE_THIS_ITEM\" }),\r\n ItemAreDeleting: intl.formatMessage({ id: \"TAKEOVER.ITEM_ARE_DELETING\" }),\r\n cancel: intl.formatMessage({ id: \"TAKEOVER.CANCEL\" }),\r\n storno: intl.formatMessage({ id: \"TAKEOVER.STORNO\" })\r\n };\r\n\r\n const value = {\r\n documentType,\r\n translate,\r\n gridColumnsVisible,\r\n formFieldsVisible,\r\n gridPositionColumnsVisible,\r\n gridPositionColumnsTranslate,\r\n deleteFromTranslate,\r\n formTranslate,\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initDocument,\r\n readOnly: !hasRoleForFunctionality(user, [UserFunctionalityE.UrediPrevzemneListe]),\r\n newDocumentButtonClick: takeoversUIEvents.newDocumentButtonClick,\r\n openEditDocumentDialog: takeoversUIEvents.openEditDocumentDialog,\r\n openDeleteDocumentDialog: takeoversUIEvents.openDeleteDocumentDialog,\r\n printDocumentsDialog: takeoversUIEvents.printDocumentsDialog,\r\n printStornoDocumentsDialog: takeoversUIEvents.printStornoDocumentsDialog,\r\n copyDocumentButtonClick: takeoversUIEvents.copyDocumentButtonClick\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/takeovers\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/takeovers\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/takeovers\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/takeovers\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/takeovers\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/takeovers\");\r\n }}\r\n />\r\n )}\r\n \r\n { setOpen(false);}} />\r\n \r\n \r\n );\r\n}\r\n","import React, { useState, useCallback } from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\nimport { DocumentsLoadingDialog } from \"../../../Document/pages/documents/documents-loading-dialog/DocumentsLoadingDialog\";\r\nimport { DocumentEditDialog } from \"../../../Document/pages/documents/document-edit-dialog/DocumentEditDialog\";\r\nimport { DocumentDeleteDialog } from \"../../../Document/pages/documents/document-delete-dialog/DocumentDeleteDialog\";\r\nimport { DocumentsPrintDialog } from \"../../../Document/pages/documents/documents-print-dialog/DocumentsPrintDialog\";\r\nimport { DocumentsPrintStornoDialog } from \"../../../Document/pages/documents/documents-print-storno-dialog/DocumentsPrintStornoDialog\";\r\nimport { DocumentsCard } from \"../../../Document/pages/documents/DocumentsCard\";\r\nimport { DocumentsUIProvider } from \"../../../Document/pages/documents/DocumentsUIContext\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport InfoPopup from \"../../../Helpers/InfoPopup\"\r\nimport { useIntl } from \"react-intl\";\r\nimport { isEqual, isFunction } from \"lodash\";\r\nimport moment from 'moment'\r\nimport { hasRoleForFunctionality } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\n\r\nexport function InventoriesPage({ history }) {\r\n const intl = useIntl();\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.documents }),\r\n shallowEqual\r\n );\r\n\r\n const takeoversUIEvents = {\r\n newDocumentButtonClick: () => {\r\n history.push(\"/purchase/inventories/new\");\r\n },\r\n openEditDocumentDialog: (id) => {\r\n history.push(`/purchase/inventories/${id}/edit`);\r\n },\r\n openDeleteDocumentDialog: (id) => {\r\n history.push(`/purchase/inventories/${id}/delete`);\r\n },\r\n printDocumentsDialog: () => {\r\n history.push(`/purchase/inventories/printInventories`);\r\n },\r\n printStornoDocumentsDialog: (id) => {\r\n history.push(`/purchase/inventories/${id}/printStornoInventories/`);\r\n },\r\n copyDocumentButtonClick: (id) => {\r\n history.push(`/purchase/inventories/${id}/copy`);\r\n }\r\n }\r\n\r\n const documentType = 13;\r\n const { user } = useSelector(state => state.auth);\r\n\r\n const initialFilter = {\r\n documentType: documentType,\r\n query: \"\",\r\n sortOrder: \"asc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25,\r\n startDate: moment(new Date(new Date().setMonth(new Date().getMonth() - 1))).format(\"YYYY-MM-DD\"),\r\n endDate: moment(new Date()).format(\"YYYY-MM-DD\")\r\n };\r\n\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n const initDocument = {\r\n id: undefined,\r\n type: \"\",\r\n date: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n time: moment(new Date()).format(\"HH:mm\"),\r\n serviceDate: \"\",\r\n dateOfServicesRendered: \"\",\r\n dueDate: \"\",\r\n customer: null,\r\n customerId: null,\r\n discountProcent: \"\",\r\n discountAmount: \"\",\r\n note: \"\",\r\n note2: \"\",\r\n warehouseId: null,\r\n warehouse: null,\r\n warehouse2Id: null,\r\n warehouse2: null,\r\n otherDocumentNumber: \"\",\r\n documentPosition: [],\r\n stornoDocument: null,\r\n stornoDocumentId: null,\r\n paymentDeadlineNumDays: \"\",\r\n valid: \"\"\r\n };\r\n\r\n for (var x = 0; x < 5; x++) {\r\n initDocument.documentPosition.push({\r\n item: null,\r\n vatRateId: 1,\r\n quantity: 0,\r\n discount: 0,\r\n itemAmountWithoutVat: 0,\r\n totalAmountWithoutVat: 0,\r\n totalAmountWithVat: 0,\r\n grossWeight: 0,\r\n stockQuantity: undefined,\r\n isCustomItem: false,\r\n itemTitle: \"\",\r\n unitId: null,\r\n length: 0,\r\n radius: 0,\r\n cubic: 0\r\n });\r\n }\r\n\r\n const translate = {\r\n header: intl.formatMessage({ id: \"INVENTORY.HEADER\" }),\r\n newHeader: intl.formatMessage({ id: \"INVENTORY.NEW.HEADER\" }),\r\n editHeader: intl.formatMessage({ id: \"INVENTORY.EDIT.HEADER\" }),\r\n copyHeader: intl.formatMessage({ id: \"INVENTORY.COPY.HEADER\" }),\r\n viewHeader: intl.formatMessage({ id: \"INVENTORY.VIEW.HEADER\" }),\r\n };\r\n\r\n const gridColumnsVisible = {\r\n id: true,\r\n fiscalCashierBusinessUnitTitle: false,\r\n talkingNumber: true,\r\n type: false,\r\n documentTypeTitle: false,\r\n customerName: false,\r\n date: true,\r\n creatorId: false,\r\n creatorTitle: true,\r\n amountForPayment: true,\r\n endId: false,\r\n endTalkingNumber: false,\r\n documentStornoId: false,\r\n documentStornoTalkingNumber: false,\r\n payments: false\r\n };\r\n\r\n const formFieldsVisible = {\r\n date: true,\r\n time: true,\r\n serviceDate: false,\r\n dateOfServicesRendered: false,\r\n dueDate: false,\r\n customer: false,\r\n supplier: false,\r\n discountProcent: false,\r\n discountAmount: false,\r\n note: true,\r\n warehouseId: true,\r\n warehouse2Id: false,\r\n otherDocumentNumber: false,\r\n paymentDeadlineNumDays: false,\r\n //result fields\r\n amountForPaymentBase: false,\r\n amountVat: false,\r\n amountForPayment: false,\r\n amountDiscount: false,\r\n };\r\n\r\n const formTranslate = {\r\n date: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n time: intl.formatMessage({ id: \"AUTH.GENERAL.TIME\" }),\r\n serviceDate: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dateOfServicesRendered: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dueDate: intl.formatMessage({ id: \"AUTH.GENERAL.DUE_DATE\" }),\r\n customer: intl.formatMessage({ id: \"AUTH.GENERAL.CUSTOMER\" }),\r\n supplier: intl.formatMessage({ id: \"AUTH.GENERAL.SUPPLIER\" }),\r\n discountProcent: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n discountAmount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_AMOUNT\" }),\r\n note: intl.formatMessage({ id: \"AUTH.GENERAL.NOTE\" }),\r\n warehouseId: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE\" }),\r\n warehouse2Id: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE2\" }),\r\n //result fields\r\n amountForPaymentBase: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT_BASE\" }),\r\n amountVat: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_VAT\" }),\r\n amountForPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT\" }),\r\n amountDiscount: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_DISCOUNT\" }),\r\n amountOfPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_OF_PAYMENT\" }),\r\n otherDocumentNumber: intl.formatMessage({ id: \"AUTH.GENERAL.OTHER_DOCUMENT_NUMBER\" }),\r\n paymentDeadlineNumDays: intl.formatMessage({ id: \"AUTH.GENERAL.PAYMENT_DEADLINE_NUM_DAYS\" })\r\n };\r\n\r\n const gridPositionColumnsVisible = {\r\n itemGoods: true,\r\n itemAll: false,\r\n vat: false,\r\n quantity: true,\r\n discount: false,\r\n itemAmountWithoutVat: false,\r\n totalAmountWithoutVat: false,\r\n totalAmountWithVat: false,\r\n grossWeight: true,\r\n stock: true,\r\n isCustomItem: false,\r\n cubic: user.organizationCubic\r\n };\r\n\r\n const gridPositionColumnsTranslate = {\r\n item: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM\" }),\r\n vat: intl.formatMessage({ id: \"AUTH.GENERAL.VAT_RATE\" }),\r\n quantity: intl.formatMessage({ id: \"AUTH.GENERAL.QUANTITY\" }),\r\n discount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n itemAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITH_VAT\" }),\r\n grossWeight: intl.formatMessage({ id: \"AUTH.GENERAL.GROSS_WEIGHT\" }),\r\n stock: intl.formatMessage({ id: \"AUTH.GENERAL.STOCK\" }),\r\n isCustomItem: intl.formatMessage({ id: \"AUTH.GENERAL.IS_CUSTOM_ITEM\" }),\r\n length: intl.formatMessage({ id: \"AUTH.GENERAL.LENGTH\" }),\r\n radius: intl.formatMessage({ id: \"AUTH.GENERAL.RADIUS\" }),\r\n cubic: intl.formatMessage({ id: \"AUTH.GENERAL.CUBIC\" })\r\n };\r\n\r\n const deleteFromTranslate = {\r\n delete: intl.formatMessage({ id: \"INVENTORY.DELETE\" }),\r\n areYouSure: intl.formatMessage({ id: \"INVENTORY.ARE_YOU_SURE_TO_PERMANTLY_DELETE_THIS_ITEM\" }),\r\n ItemAreDeleting: intl.formatMessage({ id: \"INVENTORY.ITEM_ARE_DELETING\" }),\r\n cancel: intl.formatMessage({ id: \"INVENTORY.CANCEL\" }),\r\n storno: intl.formatMessage({ id: \"INVENTORY.STORNO\" })\r\n };\r\n\r\n const value = {\r\n documentType,\r\n translate,\r\n gridColumnsVisible,\r\n formFieldsVisible,\r\n gridPositionColumnsVisible,\r\n gridPositionColumnsTranslate,\r\n deleteFromTranslate,\r\n formTranslate,\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initDocument,\r\n readOnly: !hasRoleForFunctionality(user, [UserFunctionalityE.UrediPrevzemneListe]),\r\n newDocumentButtonClick: takeoversUIEvents.newDocumentButtonClick,\r\n openEditDocumentDialog: takeoversUIEvents.openEditDocumentDialog,\r\n openDeleteDocumentDialog: takeoversUIEvents.openDeleteDocumentDialog,\r\n printDocumentsDialog: takeoversUIEvents.printDocumentsDialog,\r\n printStornoDocumentsDialog: takeoversUIEvents.printStornoDocumentsDialog,\r\n copyDocumentButtonClick: takeoversUIEvents.copyDocumentButtonClick\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/inventories\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/inventories\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/inventories\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/inventories\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/inventories\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/inventories\");\r\n }}\r\n />\r\n )}\r\n \r\n { setOpen(false);}} />\r\n \r\n \r\n );\r\n}\r\n","import React, { useState, useCallback } from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\nimport { DocumentsLoadingDialog } from \"../../../Document/pages/documents/documents-loading-dialog/DocumentsLoadingDialog\";\r\nimport { DocumentEditDialog } from \"../../../Document/pages/documents/document-edit-dialog/DocumentEditDialog\";\r\nimport { DocumentDeleteDialog } from \"../../../Document/pages/documents/document-delete-dialog/DocumentDeleteDialog\";\r\nimport { DocumentsPrintDialog } from \"../../../Document/pages/documents/documents-print-dialog/DocumentsPrintDialog\";\r\nimport { DocumentsPrintStornoDialog } from \"../../../Document/pages/documents/documents-print-storno-dialog/DocumentsPrintStornoDialog\";\r\nimport { DocumentsCard } from \"../../../Document/pages/documents/DocumentsCard\";\r\nimport { DocumentsUIProvider } from \"../../../Document/pages/documents/DocumentsUIContext\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport InfoPopup from \"../../../Helpers/InfoPopup\"\r\nimport { useIntl } from \"react-intl\";\r\nimport { isEqual, isFunction } from \"lodash\";\r\nimport moment from 'moment'\r\nimport { hasRoleForFunctionality } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\n\r\nexport function WriteoffsPage({ history }) {\r\n const intl = useIntl();\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.documents }),\r\n shallowEqual\r\n );\r\n\r\n const writeoffsUIEvents = {\r\n newDocumentButtonClick: () => {\r\n history.push(\"/purchase/writeoffs/new\");\r\n },\r\n openEditDocumentDialog: (id) => {\r\n history.push(`/purchase/writeoffs/${id}/edit`);\r\n },\r\n openDeleteDocumentDialog: (id) => {\r\n history.push(`/purchase/writeoffs/${id}/delete`);\r\n },\r\n printDocumentsDialog: () => {\r\n history.push(`/purchase/writeoffs/printWriteoffs`);\r\n },\r\n printStornoDocumentsDialog: (id) => {\r\n history.push(`/purchase/writeoffs/${id}/printStornoWriteoffs/`);\r\n },\r\n copyDocumentButtonClick: (id) => {\r\n history.push(`/purchase/writeoffs/${id}/copy`);\r\n }\r\n }\r\n\r\n const documentType = 14;\r\n const { user } = useSelector(state => state.auth);\r\n\r\n const initialFilter = {\r\n documentType: documentType,\r\n query: \"\",\r\n sortOrder: \"asc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25,\r\n startDate: moment(new Date(new Date().setMonth(new Date().getMonth() - 1))).format(\"YYYY-MM-DD\"),\r\n endDate: moment(new Date()).format(\"YYYY-MM-DD\")\r\n };\r\n\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n const initDocument = {\r\n id: undefined,\r\n type: \"\",\r\n date: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n time: moment(new Date()).format(\"HH:mm\"),\r\n serviceDate: \"\",\r\n dateOfServicesRendered: \"\",\r\n dueDate: \"\",\r\n customer: null,\r\n customerId: null,\r\n discountProcent: \"\",\r\n discountAmount: \"\",\r\n note: \"\",\r\n note2: \"\",\r\n warehouseId: null,\r\n warehouse: null,\r\n warehouse2Id: null,\r\n warehouse2: null,\r\n otherDocumentNumber: \"\",\r\n documentPosition: [],\r\n stornoDocument: null,\r\n stornoDocumentId: null,\r\n paymentDeadlineNumDays: \"\",\r\n valid: \"\"\r\n };\r\n\r\n for (var x = 0; x < 5; x++) {\r\n initDocument.documentPosition.push({\r\n item: null,\r\n vatRateId: 1,\r\n quantity: 0,\r\n discount: 0,\r\n itemAmountWithoutVat: 0,\r\n totalAmountWithoutVat: 0,\r\n totalAmountWithVat: 0,\r\n grossWeight: 0,\r\n isCustomItem: false,\r\n itemTitle: \"\",\r\n unitId: null,\r\n length: 0,\r\n radius: 0,\r\n cubic: 0\r\n });\r\n }\r\n\r\n const translate = {\r\n header: intl.formatMessage({ id: \"WRITEOFF.HEADER\" }),\r\n newHeader: intl.formatMessage({ id: \"WRITEOFF.NEW.HEADER\" }),\r\n editHeader: intl.formatMessage({ id: \"WRITEOFF.EDIT.HEADER\" }),\r\n copyHeader: intl.formatMessage({ id: \"WRITEOFF.COPY.HEADER\" }),\r\n viewHeader: intl.formatMessage({ id: \"WRITEOFF.VIEW.HEADER\" }),\r\n };\r\n\r\n const gridColumnsVisible = {\r\n id: true,\r\n fiscalCashierBusinessUnitTitle: false,\r\n talkingNumber: true,\r\n type: false,\r\n documentTypeTitle: false,\r\n customerName: false,\r\n date: true,\r\n creatorId: false,\r\n creatorTitle: true,\r\n amountForPayment: true,\r\n endId: false,\r\n endTalkingNumber: false,\r\n documentStornoId: false,\r\n documentStornoTalkingNumber: true,\r\n payments: false\r\n };\r\n\r\n const formFieldsVisible = {\r\n date: true,\r\n time: false,\r\n serviceDate: false,\r\n dateOfServicesRendered: false,\r\n dueDate: false,\r\n customer: false,\r\n supplier: false,\r\n discountProcent: false,\r\n discountAmount: false,\r\n note: true,\r\n warehouseId: true,\r\n warehouse2Id: false,\r\n otherDocumentNumber: false,\r\n paymentDeadlineNumDays: false,\r\n //result fields\r\n amountForPaymentBase: false,\r\n amountVat: false,\r\n amountForPayment: false,\r\n amountDiscount: false,\r\n };\r\n\r\n const formTranslate = {\r\n date: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n time: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n serviceDate: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dateOfServicesRendered: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dueDate: intl.formatMessage({ id: \"AUTH.GENERAL.DUE_DATE\" }),\r\n customer: intl.formatMessage({ id: \"AUTH.GENERAL.CUSTOMER\" }),\r\n supplier: intl.formatMessage({ id: \"AUTH.GENERAL.SUPPLIER\" }),\r\n discountProcent: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n discountAmount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_AMOUNT\" }),\r\n note: intl.formatMessage({ id: \"AUTH.GENERAL.NOTE\" }),\r\n warehouseId: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE\" }),\r\n warehouse2Id: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE2\" }),\r\n //result fields\r\n amountForPaymentBase: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT_BASE\" }),\r\n amountVat: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_VAT\" }),\r\n amountForPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT\" }),\r\n amountDiscount: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_DISCOUNT\" }),\r\n amountOfPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_OF_PAYMENT\" }),\r\n otherDocumentNumber: intl.formatMessage({ id: \"AUTH.GENERAL.OTHER_DOCUMENT_NUMBER\" }),\r\n paymentDeadlineNumDays: intl.formatMessage({ id: \"AUTH.GENERAL.PAYMENT_DEADLINE_NUM_DAYS\" })\r\n };\r\n\r\n const gridPositionColumnsVisible = {\r\n itemGoods: true,\r\n itemAll: false,\r\n vat: false,\r\n quantity: true,\r\n discount: false,\r\n itemAmountWithoutVat: false,\r\n totalAmountWithoutVat: false,\r\n totalAmountWithVat: false,\r\n grossWeight: false,\r\n stock: false,\r\n isCustomItem: false,\r\n cubic: user.organizationCubic\r\n };\r\n\r\n const gridPositionColumnsTranslate = {\r\n item: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM\" }),\r\n vat: intl.formatMessage({ id: \"AUTH.GENERAL.VAT_RATE\" }),\r\n quantity: intl.formatMessage({ id: \"AUTH.GENERAL.QUANTITY\" }),\r\n discount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n itemAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITH_VAT\" }),\r\n grossWeight: intl.formatMessage({ id: \"AUTH.GENERAL.GROSS_WEIGHT\" }),\r\n stock: intl.formatMessage({ id: \"AUTH.GENERAL.STOCK\" }),\r\n isCustomItem: intl.formatMessage({ id: \"AUTH.GENERAL.IS_CUSTOM_ITEM\" }),\r\n length: intl.formatMessage({ id: \"AUTH.GENERAL.LENGTH\" }),\r\n radius: intl.formatMessage({ id: \"AUTH.GENERAL.RADIUS\" }),\r\n cubic: intl.formatMessage({ id: \"AUTH.GENERAL.CUBIC\" })\r\n };\r\n\r\n const deleteFromTranslate = {\r\n delete: intl.formatMessage({ id: \"WRITEOFF.DELETE\" }),\r\n areYouSure: intl.formatMessage({ id: \"WRITEOFF.ARE_YOU_SURE_TO_PERMANTLY_DELETE_THIS_ITEM\" }),\r\n ItemAreDeleting: intl.formatMessage({ id: \"WRITEOFF.ITEM_ARE_DELETING\" }),\r\n cancel: intl.formatMessage({ id: \"TAKEOVER.CANCEL\" }),\r\n storno: intl.formatMessage({ id: \"TAKEOVER.STORNO\" })\r\n };\r\n\r\n const value = {\r\n documentType,\r\n translate,\r\n gridColumnsVisible,\r\n formFieldsVisible,\r\n gridPositionColumnsVisible,\r\n gridPositionColumnsTranslate,\r\n deleteFromTranslate,\r\n formTranslate,\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initDocument,\r\n readOnly: !hasRoleForFunctionality(user, [UserFunctionalityE.UrediPrevzemneListe]),\r\n newDocumentButtonClick: writeoffsUIEvents.newDocumentButtonClick,\r\n openEditDocumentDialog: writeoffsUIEvents.openEditDocumentDialog,\r\n openDeleteDocumentDialog: writeoffsUIEvents.openDeleteDocumentDialog,\r\n printDocumentsDialog: writeoffsUIEvents.printDocumentsDialog,\r\n printStornoDocumentsDialog: writeoffsUIEvents.printStornoDocumentsDialog,\r\n copyDocumentButtonClick: writeoffsUIEvents.copyDocumentButtonClick\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/writeoffs\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/writeoffs\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/writeoffs\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/writeoffs\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/writeoffs\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/writeoffs\");\r\n }}\r\n />\r\n )}\r\n \r\n { setOpen(false);}} />\r\n \r\n \r\n );\r\n}\r\n","import React, { useState, useCallback } from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\nimport { DocumentsLoadingDialog } from \"../../../Document/pages/documents/documents-loading-dialog/DocumentsLoadingDialog\";\r\nimport { DocumentEditDialog } from \"../../../Document/pages/documents/document-edit-dialog/DocumentEditDialog\";\r\nimport { DocumentDeleteDialog } from \"../../../Document/pages/documents/document-delete-dialog/DocumentDeleteDialog\";\r\nimport { DocumentsPrintDialog } from \"../../../Document/pages/documents/documents-print-dialog/DocumentsPrintDialog\";\r\nimport { DocumentsPrintStornoDialog } from \"../../../Document/pages/documents/documents-print-storno-dialog/DocumentsPrintStornoDialog\";\r\nimport { DocumentsCard } from \"../../../Document/pages/documents/DocumentsCard\";\r\nimport { DocumentsUIProvider } from \"../../../Document/pages/documents/DocumentsUIContext\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport InfoPopup from \"../../../Helpers/InfoPopup\"\r\nimport { useIntl } from \"react-intl\";\r\nimport { isEqual, isFunction } from \"lodash\";\r\nimport moment from 'moment'\r\nimport { hasRoleForFunctionality } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\n\r\nexport function InternalStockTransfersPage({ history }) {\r\n const intl = useIntl();\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.documents }),\r\n shallowEqual\r\n );\r\n\r\n const internalStockTransfersUIEvents = {\r\n newDocumentButtonClick: () => {\r\n history.push(\"/purchase/internalStockTransfers/new\");\r\n },\r\n openEditDocumentDialog: (id) => {\r\n history.push(`/purchase/internalStockTransfers/${id}/edit`);\r\n },\r\n openDeleteDocumentDialog: (id) => {\r\n history.push(`/purchase/internalStockTransfers/${id}/delete`);\r\n },\r\n printDocumentsDialog: () => {\r\n history.push(`/purchase/internalStockTransfers/printInternalStockTransfers`);\r\n },\r\n printStornoDocumentsDialog: (id) => {\r\n history.push(`/purchase/internalStockTransfers/${id}/printStornoInternalStockTransfers/`);\r\n },\r\n copyDocumentButtonClick: (id) => {\r\n history.push(`/purchase/internalStockTransfers/${id}/copy`);\r\n }\r\n }\r\n\r\n const documentType = 15;\r\n const { user } = useSelector(state => state.auth);\r\n\r\n const initialFilter = {\r\n documentType: documentType,\r\n query: \"\",\r\n sortOrder: \"asc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25,\r\n startDate: moment(new Date(new Date().setMonth(new Date().getMonth() - 1))).format(\"YYYY-MM-DD\"),\r\n endDate: moment(new Date()).format(\"YYYY-MM-DD\")\r\n };\r\n\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n const initDocument = {\r\n id: undefined,\r\n type: \"\",\r\n date: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n time: moment(new Date()).format(\"HH:mm\"),\r\n serviceDate: \"\",\r\n dateOfServicesRendered: \"\",\r\n dueDate: \"\",\r\n customer: null,\r\n customerId: null,\r\n discountProcent: \"\",\r\n discountAmount: \"\",\r\n note: \"\",\r\n note2: \"\",\r\n warehouseId: null,\r\n warehouse: null,\r\n warehouse2Id: null,\r\n warehouse2: null,\r\n otherDocumentNumber: \"\",\r\n documentPosition: [],\r\n stornoDocument: null,\r\n stornoDocumentId: null,\r\n valid: \"\"\r\n };\r\n\r\n for (var x = 0; x < 5; x++) {\r\n initDocument.documentPosition.push({\r\n item: null,\r\n vatRateId: 1,\r\n quantity: 0,\r\n discount: 0,\r\n itemAmountWithoutVat: 0,\r\n totalAmountWithoutVat: 0,\r\n totalAmountWithVat: 0,\r\n grossWeight: 0,\r\n isCustomItem: false,\r\n itemTitle: \"\",\r\n unitId: null,\r\n length: 0,\r\n radius: 0,\r\n cubic: 0\r\n });\r\n }\r\n\r\n const translate = {\r\n header: intl.formatMessage({ id: \"INTERNAL_STOCK_TRANSFER.HEADER\" }),\r\n newHeader: intl.formatMessage({ id: \"INTERNAL_STOCK_TRANSFER.NEW.HEADER\" }),\r\n editHeader: intl.formatMessage({ id: \"INTERNAL_STOCK_TRANSFER.EDIT.HEADER\" }),\r\n copyHeader: intl.formatMessage({ id: \"INTERNAL_STOCK_TRANSFER.COPY.HEADER\" }),\r\n viewHeader: intl.formatMessage({ id: \"INTERNAL_STOCK_TRANSFER.VIEW.HEADER\" }),\r\n };\r\n\r\n const gridColumnsVisible = {\r\n id: true,\r\n fiscalCashierBusinessUnitTitle: false,\r\n talkingNumber: true,\r\n type: false,\r\n documentTypeTitle: false,\r\n customerName: false,\r\n date: true,\r\n creatorId: false,\r\n creatorTitle: true,\r\n amountForPayment: false,\r\n endId: false,\r\n endTalkingNumber: false,\r\n documentStornoId: false,\r\n documentStornoTalkingNumber: false,\r\n payments: false\r\n };\r\n\r\n const formFieldsVisible = {\r\n date: true,\r\n time: false,\r\n serviceDate: false,\r\n dateOfServicesRendered: false,\r\n dueDate: false,\r\n customer: false,\r\n supplier: false,\r\n discountProcent: false,\r\n discountAmount: false,\r\n note: true,\r\n warehouseId: true,\r\n warehouse2Id: true,\r\n otherDocumentNumber: false,\r\n //result fields\r\n amountForPaymentBase: false,\r\n amountVat: false,\r\n amountForPayment: false,\r\n amountDiscount: false\r\n };\r\n\r\n const formTranslate = {\r\n date: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n time: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n serviceDate: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dateOfServicesRendered: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dueDate: intl.formatMessage({ id: \"AUTH.GENERAL.DUE_DATE\" }),\r\n customer: intl.formatMessage({ id: \"AUTH.GENERAL.CUSTOMER\" }),\r\n supplier: intl.formatMessage({ id: \"AUTH.GENERAL.SUPPLIER\" }),\r\n discountProcent: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n discountAmount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_AMOUNT\" }),\r\n note: intl.formatMessage({ id: \"AUTH.GENERAL.NOTE\" }),\r\n warehouseId: intl.formatMessage({ id: \"AUTH.GENERAL.OUT_WAREHOUSE\" }),\r\n warehouse2Id: intl.formatMessage({ id: \"AUTH.GENERAL.IN_WAREHOUSE\" }),\r\n //result fields\r\n amountForPaymentBase: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT_BASE\" }),\r\n amountVat: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_VAT\" }),\r\n amountForPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT\" }),\r\n amountDiscount: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_DISCOUNT\" }),\r\n amountOfPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_OF_PAYMENT\" }),\r\n otherDocumentNumber: intl.formatMessage({ id: \"AUTH.GENERAL.OTHER_DOCUMENT_NUMBER\" })\r\n };\r\n\r\n const gridPositionColumnsVisible = {\r\n itemGoods: true,\r\n itemAll: false,\r\n vat: false,\r\n quantity: true,\r\n discount: false,\r\n itemAmountWithoutVat: false,\r\n totalAmountWithoutVat: false,\r\n totalAmountWithVat: false,\r\n grossWeight: false,\r\n stock: false,\r\n isCustomItem: false,\r\n cubic: user.organizationCubic\r\n };\r\n\r\n const gridPositionColumnsTranslate = {\r\n item: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM\" }),\r\n vat: intl.formatMessage({ id: \"AUTH.GENERAL.VAT_RATE\" }),\r\n quantity: intl.formatMessage({ id: \"AUTH.GENERAL.QUANTITY\" }),\r\n discount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n itemAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITH_VAT\" }),\r\n grossWeight: intl.formatMessage({ id: \"AUTH.GENERAL.GROSS_WEIGHT\" }),\r\n stock: intl.formatMessage({ id: \"AUTH.GENERAL.STOCK\" }),\r\n isCustomItem: intl.formatMessage({ id: \"AUTH.GENERAL.IS_CUSTOM_ITEM\" }),\r\n length: intl.formatMessage({ id: \"AUTH.GENERAL.LENGTH\" }),\r\n radius: intl.formatMessage({ id: \"AUTH.GENERAL.RADIUS\" }),\r\n cubic: intl.formatMessage({ id: \"AUTH.GENERAL.CUBIC\" })\r\n };\r\n\r\n const deleteFromTranslate = {\r\n delete: intl.formatMessage({ id: \"INTERNAL_STOCK_TRANSFER.DELETE\" }),\r\n areYouSure: intl.formatMessage({ id: \"INTERNAL_STOCK_TRANSFER.ARE_YOU_SURE_TO_PERMANTLY_DELETE_THIS_ITEM\" }),\r\n ItemAreDeleting: intl.formatMessage({ id: \"INTERNAL_STOCK_TRANSFER.ITEM_ARE_DELETING\" }),\r\n cancel: intl.formatMessage({ id: \"TAKEOVER.CANCEL\" }),\r\n storno: intl.formatMessage({ id: \"INVENTORY.STORNO\" })\r\n };\r\n\r\n const value = {\r\n documentType,\r\n translate,\r\n gridColumnsVisible,\r\n formFieldsVisible,\r\n gridPositionColumnsVisible,\r\n gridPositionColumnsTranslate,\r\n deleteFromTranslate,\r\n formTranslate,\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initDocument,\r\n readOnly: !hasRoleForFunctionality(user, [UserFunctionalityE.UrediPrevzemneListe]),\r\n newDocumentButtonClick: internalStockTransfersUIEvents.newDocumentButtonClick,\r\n openEditDocumentDialog: internalStockTransfersUIEvents.openEditDocumentDialog,\r\n openDeleteDocumentDialog: internalStockTransfersUIEvents.openDeleteDocumentDialog,\r\n printDocumentsDialog: internalStockTransfersUIEvents.printDocumentsDialog,\r\n printStornoDocumentsDialog: internalStockTransfersUIEvents.printStornoDocumentsDialog,\r\n copyDocumentButtonClick: internalStockTransfersUIEvents.copyDocumentButtonClick\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/internalStockTransfers\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/internalStockTransfers\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/internalStockTransfers\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/internalStockTransfers\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/internalStockTransfers\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/internalStockTransfers\");\r\n }}\r\n />\r\n )}\r\n \r\n { setOpen(false);}} />\r\n \r\n \r\n );\r\n}\r\n","import React, { useState, useCallback } from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\nimport { DocumentsLoadingDialog } from \"../../../Document/pages/documents/documents-loading-dialog/DocumentsLoadingDialog\";\r\nimport { DocumentEditDialog } from \"../../../Document/pages/documents/document-edit-dialog/DocumentEditDialog\";\r\nimport { DocumentDeleteDialog } from \"../../../Document/pages/documents/document-delete-dialog/DocumentDeleteDialog\";\r\nimport { DocumentsPrintDialog } from \"../../../Document/pages/documents/documents-print-dialog/DocumentsPrintDialog\";\r\nimport { DocumentsPrintStornoDialog } from \"../../../Document/pages/documents/documents-print-storno-dialog/DocumentsPrintStornoDialog\";\r\nimport { DocumentsCard } from \"../../../Document/pages/documents/DocumentsCard\";\r\nimport { DocumentsUIProvider } from \"../../../Document/pages/documents/DocumentsUIContext\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport InfoPopup from \"../../../Helpers/InfoPopup\"\r\nimport { useIntl } from \"react-intl\";\r\nimport { isEqual, isFunction } from \"lodash\";\r\nimport moment from 'moment'\r\nimport { hasRoleForFunctionality } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\n\r\nexport function OwnConsumptionsPage({ history }) {\r\n const intl = useIntl();\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.documents }),\r\n shallowEqual\r\n );\r\n\r\n const ownConsumptionsUIEvents = {\r\n newDocumentButtonClick: () => {\r\n history.push(\"/purchase/ownConsumptions/new\");\r\n },\r\n openEditDocumentDialog: (id) => {\r\n history.push(`/purchase/ownConsumptions/${id}/edit`);\r\n },\r\n openDeleteDocumentDialog: (id) => {\r\n history.push(`/purchase/ownConsumptions/${id}/delete`);\r\n },\r\n printDocumentsDialog: () => {\r\n history.push(`/purchase/ownConsumptions/printOwnConsumptions`);\r\n },\r\n printStornoDocumentsDialog: (id) => {\r\n history.push(`/purchase/ownConsumptions/${id}/printStornoOwnConsumptions/`);\r\n },\r\n copyDocumentButtonClick: (id) => {\r\n history.push(`/purchase/ownConsumptions/${id}/copy`);\r\n }\r\n }\r\n\r\n const documentType = 16;\r\n const { user } = useSelector(state => state.auth);\r\n\r\n const initialFilter = {\r\n documentType: documentType,\r\n query: \"\",\r\n sortOrder: \"asc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25,\r\n startDate: moment(new Date(new Date().setMonth(new Date().getMonth() - 1))).format(\"YYYY-MM-DD\"),\r\n endDate: moment(new Date()).format(\"YYYY-MM-DD\")\r\n };\r\n\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n const initDocument = {\r\n id: undefined,\r\n type: \"\",\r\n date: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n time: moment(new Date()).format(\"HH:mm\"),\r\n serviceDate: \"\",\r\n dateOfServicesRendered: \"\",\r\n dueDate: \"\",\r\n customer: null,\r\n customerId: null,\r\n discountProcent: \"\",\r\n discountAmount: \"\",\r\n note: \"\",\r\n note2: \"\",\r\n warehouseId: null,\r\n warehouse: null,\r\n warehouse2Id: null,\r\n warehouse2: null,\r\n otherDocumentNumber: \"\",\r\n documentPosition: [],\r\n stornoDocument: null,\r\n stornoDocumentId: null,\r\n paymentDeadlineNumDays: \"\",\r\n valid: \"\"\r\n };\r\n\r\n for (var x = 0; x < 5; x++) {\r\n initDocument.documentPosition.push({\r\n item: null,\r\n vatRateId: 1,\r\n quantity: 0,\r\n discount: 0,\r\n itemAmountWithoutVat: 0,\r\n totalAmountWithoutVat: 0,\r\n totalAmountWithVat: 0,\r\n grossWeight: 0,\r\n isCustomItem: false,\r\n itemTitle: \"\",\r\n unitId: null,\r\n length: 0,\r\n radius: 0,\r\n cubic: 0\r\n });\r\n }\r\n\r\n const translate = {\r\n header: intl.formatMessage({ id: \"AUTH.GENERAL.OWN_CONSUMPTIONS\" }),\r\n newHeader: intl.formatMessage({ id: \"OWN_CONSUMPTION.NEW.HEADER\" }),\r\n editHeader: intl.formatMessage({ id: \"OWN_CONSUMPTION.EDIT.HEADER\" }),\r\n copyHeader: intl.formatMessage({ id: \"OWN_CONSUMPTION.COPY.HEADER\" }),\r\n viewHeader: intl.formatMessage({ id: \"OWN_CONSUMPTION.VIEW.HEADER\" }),\r\n };\r\n\r\n const gridColumnsVisible = {\r\n id: true,\r\n fiscalCashierBusinessUnitTitle: false,\r\n talkingNumber: true,\r\n type: false,\r\n documentTypeTitle: false,\r\n customerName: false,\r\n date: true,\r\n creatorId: false,\r\n creatorTitle: true,\r\n amountForPayment: false,\r\n endId: false,\r\n endTalkingNumber: false,\r\n documentStornoId: false,\r\n documentStornoTalkingNumber: true,\r\n payments: false\r\n };\r\n\r\n const formFieldsVisible = {\r\n date: true,\r\n time: false,\r\n serviceDate: false,\r\n dateOfServicesRendered: false,\r\n dueDate: false,\r\n customer: false,\r\n supplier: false,\r\n discountProcent: false,\r\n discountAmount: false,\r\n note: true,\r\n warehouseId: true,\r\n warehouse2Id: false,\r\n otherDocumentNumber: false,\r\n paymentDeadlineNumDays: false,\r\n //result fields\r\n amountForPaymentBase: false,\r\n amountVat: false,\r\n amountForPayment: false,\r\n amountDiscount: false,\r\n };\r\n\r\n const formTranslate = {\r\n date: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n time: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n serviceDate: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dateOfServicesRendered: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dueDate: intl.formatMessage({ id: \"AUTH.GENERAL.DUE_DATE\" }),\r\n customer: intl.formatMessage({ id: \"AUTH.GENERAL.CUSTOMER\" }),\r\n supplier: intl.formatMessage({ id: \"AUTH.GENERAL.SUPPLIER\" }),\r\n discountProcent: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n discountAmount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_AMOUNT\" }),\r\n note: intl.formatMessage({ id: \"AUTH.GENERAL.NOTE\" }),\r\n warehouseId: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE\" }),\r\n warehouse2Id: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE2\" }),\r\n //result fields\r\n amountForPaymentBase: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT_BASE\" }),\r\n amountVat: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_VAT\" }),\r\n amountForPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT\" }),\r\n amountDiscount: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_DISCOUNT\" }),\r\n amountOfPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_OF_PAYMENT\" }),\r\n otherDocumentNumber: intl.formatMessage({ id: \"AUTH.GENERAL.OTHER_DOCUMENT_NUMBER\" }),\r\n paymentDeadlineNumDays: intl.formatMessage({ id: \"AUTH.GENERAL.PAYMENT_DEADLINE_NUM_DAYS\" })\r\n };\r\n\r\n const gridPositionColumnsVisible = {\r\n itemGoods: false,\r\n itemAll: true,\r\n vat: false,\r\n quantity: true,\r\n discount: false,\r\n itemAmountWithoutVat: false,\r\n totalAmountWithoutVat: false,\r\n totalAmountWithVat: false,\r\n grossWeight: false,\r\n stock: false,\r\n isCustomItem: false,\r\n cubic: user.organizationCubic\r\n };\r\n\r\n const gridPositionColumnsTranslate = {\r\n item: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM\" }),\r\n vat: intl.formatMessage({ id: \"AUTH.GENERAL.VAT_RATE\" }),\r\n quantity: intl.formatMessage({ id: \"AUTH.GENERAL.QUANTITY\" }),\r\n discount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n itemAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITH_VAT\" }),\r\n grossWeight: intl.formatMessage({ id: \"AUTH.GENERAL.GROSS_WEIGHT\" }),\r\n stock: intl.formatMessage({ id: \"AUTH.GENERAL.STOCK\" }),\r\n isCustomItem: intl.formatMessage({ id: \"AUTH.GENERAL.IS_CUSTOM_ITEM\" }),\r\n length: intl.formatMessage({ id: \"AUTH.GENERAL.LENGTH\" }),\r\n radius: intl.formatMessage({ id: \"AUTH.GENERAL.RADIUS\" }),\r\n cubic: intl.formatMessage({ id: \"AUTH.GENERAL.CUBIC\" })\r\n };\r\n\r\n const deleteFromTranslate = {\r\n delete: intl.formatMessage({ id: \"OWN_CONSUMPTION.DELETE\" }),\r\n areYouSure: intl.formatMessage({ id: \"OWN_CONSUMPTION.ARE_YOU_SURE_TO_PERMANTLY_DELETE_THIS_ITEM\" }),\r\n ItemAreDeleting: intl.formatMessage({ id: \"OWN_CONSUMPTION.ITEM_ARE_DELETING\" }),\r\n cancel: intl.formatMessage({ id: \"TAKEOVER.CANCEL\" }),\r\n storno: intl.formatMessage({ id: \"TAKEOVER.STORNO\" })\r\n };\r\n\r\n const value = {\r\n documentType,\r\n translate,\r\n gridColumnsVisible,\r\n formFieldsVisible,\r\n gridPositionColumnsVisible,\r\n gridPositionColumnsTranslate,\r\n deleteFromTranslate,\r\n formTranslate,\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initDocument,\r\n readOnly: !hasRoleForFunctionality(user, [UserFunctionalityE.UrediPrevzemneListe]),\r\n newDocumentButtonClick: ownConsumptionsUIEvents.newDocumentButtonClick,\r\n openEditDocumentDialog: ownConsumptionsUIEvents.openEditDocumentDialog,\r\n openDeleteDocumentDialog: ownConsumptionsUIEvents.openDeleteDocumentDialog,\r\n printDocumentsDialog: ownConsumptionsUIEvents.printDocumentsDialog,\r\n printStornoDocumentsDialog: ownConsumptionsUIEvents.printStornoDocumentsDialog,\r\n copyDocumentButtonClick: ownConsumptionsUIEvents.copyDocumentButtonClick\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/ownConsumptions\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/ownConsumptions\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/ownConsumptions\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/ownConsumptions\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/ownConsumptions\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/ownConsumptions\");\r\n }}\r\n />\r\n )}\r\n \r\n { setOpen(false);}} />\r\n \r\n \r\n );\r\n}\r\n","import React, { useState, useCallback } from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\nimport { DocumentsLoadingDialog } from \"../../../Document/pages/documents/documents-loading-dialog/DocumentsLoadingDialog\";\r\nimport { DocumentEditDialog } from \"../../../Document/pages/documents/document-edit-dialog/DocumentEditDialog\";\r\nimport { DocumentDeleteDialog } from \"../../../Document/pages/documents/document-delete-dialog/DocumentDeleteDialog\";\r\nimport { DocumentsPrintDialog } from \"../../../Document/pages/documents/documents-print-dialog/DocumentsPrintDialog\";\r\nimport { DocumentsPrintStornoDialog } from \"../../../Document/pages/documents/documents-print-storno-dialog/DocumentsPrintStornoDialog\";\r\nimport { DocumentsCard } from \"../../../Document/pages/documents/DocumentsCard\";\r\nimport { DocumentsUIProvider } from \"../../../Document/pages/documents/DocumentsUIContext\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport InfoPopup from \"../../../Helpers/InfoPopup\"\r\nimport { useIntl } from \"react-intl\";\r\nimport { isEqual, isFunction } from \"lodash\";\r\nimport moment from 'moment'\r\nimport { hasRoleForFunctionality } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\n\r\nexport function RefundsPage({ history }) {\r\n const intl = useIntl();\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.documents }),\r\n shallowEqual\r\n );\r\n\r\n const refundsUIEvents = {\r\n newDocumentButtonClick: () => {\r\n history.push(\"/purchase/refunds/new\");\r\n },\r\n openEditDocumentDialog: (id) => {\r\n history.push(`/purchase/refunds/${id}/edit`);\r\n },\r\n openDeleteDocumentDialog: (id) => {\r\n history.push(`/purchase/refunds/${id}/delete`);\r\n },\r\n printDocumentsDialog: () => {\r\n history.push(`/purchase/refunds/printRefunds`);\r\n },\r\n printStornoDocumentsDialog: (id) => {\r\n history.push(`/purchase/refunds/${id}/printStornoRefunds/`);\r\n },\r\n copyDocumentButtonClick: (id) => {\r\n history.push(`/purchase/refunds/${id}/copy`);\r\n }\r\n }\r\n\r\n const documentType = 18;\r\n const { user } = useSelector(state => state.auth);\r\n\r\n const initialFilter = {\r\n documentType: documentType,\r\n query: \"\",\r\n sortOrder: \"asc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25,\r\n startDate: moment(new Date(new Date().setMonth(new Date().getMonth() - 1))).format(\"YYYY-MM-DD\"),\r\n endDate: moment(new Date()).format(\"YYYY-MM-DD\")\r\n };\r\n\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n const initDocument = {\r\n id: undefined,\r\n type: \"\",\r\n date: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n time: moment(new Date()).format(\"HH:mm\"),\r\n serviceDate: \"\",\r\n dateOfServicesRendered: \"\",\r\n dueDate: \"\",\r\n customer: null,\r\n customerId: null,\r\n discountProcent: \"\",\r\n discountAmount: \"\",\r\n note: \"\",\r\n note2: \"\",\r\n warehouseId: null,\r\n warehouse: null,\r\n warehouse2Id: null,\r\n warehouse2: null,\r\n otherDocumentNumber: \"\",\r\n documentPosition: [],\r\n stornoDocument: null,\r\n stornoDocumentId: null,\r\n paymentDeadlineNumDays: \"\",\r\n valid: \"\"\r\n };\r\n\r\n for (var x = 0; x < 5; x++) {\r\n initDocument.documentPosition.push({\r\n item: null,\r\n vatRateId: 1,\r\n quantity: 0,\r\n discount: 0,\r\n itemAmountWithoutVat: 0,\r\n totalAmountWithoutVat: 0,\r\n totalAmountWithVat: 0,\r\n grossWeight: 0,\r\n isCustomItem: false,\r\n itemTitle: \"\",\r\n unitId: null,\r\n length: 0,\r\n radius: 0,\r\n cubic: 0\r\n });\r\n }\r\n\r\n const translate = {\r\n header: intl.formatMessage({ id: \"AUTH.GENERAL.REFUNDS\" }),\r\n newHeader: intl.formatMessage({ id: \"REFUND.NEW.HEADER\" }),\r\n editHeader: intl.formatMessage({ id: \"REFUND.EDIT.HEADER\" }),\r\n copyHeader: intl.formatMessage({ id: \"REFUND.COPY.HEADER\" }),\r\n viewHeader: intl.formatMessage({ id: \"REFUND.VIEW.HEADER\" }),\r\n };\r\n\r\n const gridColumnsVisible = {\r\n id: true,\r\n fiscalCashierBusinessUnitTitle: false,\r\n talkingNumber: true,\r\n type: false,\r\n documentTypeTitle: false,\r\n customerName: true,\r\n date: true,\r\n creatorId: false,\r\n creatorTitle: true,\r\n amountForPayment: true,\r\n endId: false,\r\n endTalkingNumber: false,\r\n documentStornoId: false,\r\n documentStornoTalkingNumber: true,\r\n payments: false\r\n };\r\n\r\n const formFieldsVisible = {\r\n date: true,\r\n time: false,\r\n serviceDate: false,\r\n dateOfServicesRendered: false,\r\n dueDate: false,\r\n customer: false,\r\n supplier: true,\r\n discountProcent: true,\r\n discountAmount: true,\r\n note: true,\r\n warehouseId: true,\r\n warehouse2Id: false,\r\n otherDocumentNumber: false,\r\n paymentDeadlineNumDays: false,\r\n //result fields\r\n amountForPaymentBase: true,\r\n amountVat: true,\r\n amountForPayment: true,\r\n amountDiscount: true,\r\n };\r\n\r\n const formTranslate = {\r\n date: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n time: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n serviceDate: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dateOfServicesRendered: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dueDate: intl.formatMessage({ id: \"AUTH.GENERAL.DUE_DATE\" }),\r\n customer: intl.formatMessage({ id: \"AUTH.GENERAL.CUSTOMER\" }),\r\n supplier: intl.formatMessage({ id: \"AUTH.GENERAL.SUPPLIER\" }),\r\n discountProcent: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n discountAmount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_AMOUNT\" }),\r\n note: intl.formatMessage({ id: \"AUTH.GENERAL.NOTE\" }),\r\n warehouseId: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE\" }),\r\n warehouse2Id: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE2\" }),\r\n //result fields\r\n amountForPaymentBase: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT_BASE\" }),\r\n amountVat: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_VAT\" }),\r\n amountForPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT\" }),\r\n amountDiscount: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_DISCOUNT\" }),\r\n amountOfPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_OF_PAYMENT\" }),\r\n otherDocumentNumber: intl.formatMessage({ id: \"AUTH.GENERAL.OTHER_DOCUMENT_NUMBER\" }),\r\n paymentDeadlineNumDays: intl.formatMessage({ id: \"AUTH.GENERAL.PAYMENT_DEADLINE_NUM_DAYS\" })\r\n };\r\n\r\n const gridPositionColumnsVisible = {\r\n itemGoods: true,\r\n itemAll: false,\r\n vat: true,\r\n quantity: true,\r\n discount: true,\r\n itemAmountWithoutVat: true,\r\n totalAmountWithoutVat: true,\r\n totalAmountWithVat: true,\r\n grossWeight: false,\r\n stock: false,\r\n isCustomItem: false,\r\n cubic: user.organizationCubic\r\n };\r\n\r\n const gridPositionColumnsTranslate = {\r\n item: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM\" }),\r\n vat: intl.formatMessage({ id: \"AUTH.GENERAL.VAT_RATE\" }),\r\n quantity: intl.formatMessage({ id: \"AUTH.GENERAL.QUANTITY\" }),\r\n discount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n itemAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITH_VAT\" }),\r\n grossWeight: intl.formatMessage({ id: \"AUTH.GENERAL.GROSS_WEIGHT\" }),\r\n stock: intl.formatMessage({ id: \"AUTH.GENERAL.STOCK\" }),\r\n isCustomItem: intl.formatMessage({ id: \"AUTH.GENERAL.IS_CUSTOM_ITEM\" }),\r\n length: intl.formatMessage({ id: \"AUTH.GENERAL.LENGTH\" }),\r\n radius: intl.formatMessage({ id: \"AUTH.GENERAL.RADIUS\" }),\r\n cubic: intl.formatMessage({ id: \"AUTH.GENERAL.CUBIC\" })\r\n };\r\n\r\n const deleteFromTranslate = {\r\n delete: intl.formatMessage({ id: \"REFUND.DELETE\" }),\r\n areYouSure: intl.formatMessage({ id: \"REFUND.ARE_YOU_SURE_TO_PERMANTLY_DELETE_THIS_ITEM\" }),\r\n ItemAreDeleting: intl.formatMessage({ id: \"REFUND.ITEM_ARE_DELETING\" }),\r\n cancel: intl.formatMessage({ id: \"TAKEOVER.CANCEL\" }),\r\n storno: intl.formatMessage({ id: \"TAKEOVER.STORNO\" })\r\n };\r\n\r\n const value = {\r\n documentType,\r\n translate,\r\n gridColumnsVisible,\r\n formFieldsVisible,\r\n gridPositionColumnsVisible,\r\n gridPositionColumnsTranslate,\r\n deleteFromTranslate,\r\n formTranslate,\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initDocument,\r\n readOnly: !hasRoleForFunctionality(user, [UserFunctionalityE.UrediPrevzemneListe]),\r\n newDocumentButtonClick: refundsUIEvents.newDocumentButtonClick,\r\n openEditDocumentDialog: refundsUIEvents.openEditDocumentDialog,\r\n openDeleteDocumentDialog: refundsUIEvents.openDeleteDocumentDialog,\r\n printDocumentsDialog: refundsUIEvents.printDocumentsDialog,\r\n printStornoDocumentsDialog: refundsUIEvents.printStornoDocumentsDialog,\r\n copyDocumentButtonClick: refundsUIEvents.copyDocumentButtonClick\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/refunds\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/refunds\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/refunds\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/refunds\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/refunds\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/refunds\");\r\n }}\r\n />\r\n )}\r\n \r\n { setOpen(false);}} />\r\n \r\n \r\n );\r\n}\r\n","import React, { useState, useCallback } from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\nimport { DocumentsLoadingDialog } from \"../../../Document/pages/documents/documents-loading-dialog/DocumentsLoadingDialog\";\r\nimport { DocumentEditDialog } from \"../../../Document/pages/documents/document-edit-dialog/DocumentEditDialog\";\r\nimport { DocumentDeleteDialog } from \"../../../Document/pages/documents/document-delete-dialog/DocumentDeleteDialog\";\r\nimport { DocumentsPrintDialog } from \"../../../Document/pages/documents/documents-print-dialog/DocumentsPrintDialog\";\r\nimport { DocumentsPrintStornoDialog } from \"../../../Document/pages/documents/documents-print-storno-dialog/DocumentsPrintStornoDialog\";\r\nimport { DocumentsCard } from \"../../../Document/pages/documents/DocumentsCard\";\r\nimport { DocumentsUIProvider } from \"../../../Document/pages/documents/DocumentsUIContext\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport InfoPopup from \"../../../Helpers/InfoPopup\"\r\nimport { useIntl } from \"react-intl\";\r\nimport { isEqual, isFunction } from \"lodash\";\r\nimport moment from 'moment'\r\nimport { hasRoleForFunctionality } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\n\r\nexport function ProductionOrdersPage({ history }) {\r\n const intl = useIntl();\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.documents }),\r\n shallowEqual\r\n );\r\n\r\n const productionOrdersUIEvents = {\r\n newDocumentButtonClick: () => {\r\n history.push(\"/purchase/productionOrders/new\");\r\n },\r\n openEditDocumentDialog: (id) => {\r\n history.push(`/purchase/productionOrders/${id}/edit`);\r\n },\r\n openDeleteDocumentDialog: (id) => {\r\n history.push(`/purchase/productionOrders/${id}/delete`);\r\n },\r\n printDocumentsDialog: () => {\r\n history.push(`/purchase/productionOrders/printProductionOrders`);\r\n },\r\n printStornoDocumentsDialog: (id) => {\r\n history.push(`/purchase/productionOrders/${id}/printStornoProductionOrders/`);\r\n },\r\n copyDocumentButtonClick: (id) => {\r\n history.push(`/purchase/productionOrders/${id}/copy`);\r\n }\r\n }\r\n\r\n const documentType = 17;\r\n const { user } = useSelector(state => state.auth);\r\n\r\n const initialFilter = {\r\n documentType: documentType,\r\n query: \"\",\r\n sortOrder: \"asc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25,\r\n startDate: moment(new Date(new Date().setMonth(new Date().getMonth() - 1))).format(\"YYYY-MM-DD\"),\r\n endDate: moment(new Date()).format(\"YYYY-MM-DD\")\r\n };\r\n\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n const initDocument = {\r\n id: undefined,\r\n type: \"\",\r\n date: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n time: moment(new Date()).format(\"HH:mm\"),\r\n serviceDate: \"\",\r\n dateOfServicesRendered: \"\",\r\n dueDate: \"\",\r\n customer: null,\r\n customerId: null,\r\n discountProcent: \"\",\r\n discountAmount: \"\",\r\n note: \"\",\r\n note2: \"\",\r\n warehouseId: null,\r\n warehouse: null,\r\n warehouse2Id: null,\r\n warehouse2: null,\r\n otherDocumentNumber: \"\",\r\n documentPosition: [],\r\n stornoDocument: null,\r\n stornoDocumentId: null,\r\n paymentDeadlineNumDays: \"\",\r\n valid: \"\"\r\n };\r\n\r\n for (var x = 0; x < 5; x++) {\r\n initDocument.documentPosition.push({\r\n item: null,\r\n vatRateId: 1,\r\n quantity: 0,\r\n discount: 0,\r\n itemAmountWithoutVat: 0,\r\n totalAmountWithoutVat: 0,\r\n totalAmountWithVat: 0,\r\n grossWeight: 0,\r\n isCustomItem: false,\r\n itemTitle: \"\",\r\n unitId: null,\r\n length: 0,\r\n radius: 0,\r\n cubic: 0\r\n });\r\n }\r\n\r\n const translate = {\r\n header: intl.formatMessage({ id: \"AUTH.GENERAL.PRODUCTION_ORDERS\" }),\r\n newHeader: intl.formatMessage({ id: \"PRODUCTION_ORDER.NEW.HEADER\" }),\r\n editHeader: intl.formatMessage({ id: \"PRODUCTION_ORDER.EDIT.HEADER\" }),\r\n copyHeader: intl.formatMessage({ id: \"PRODUCTION_ORDER.COPY.HEADER\" }),\r\n viewHeader: intl.formatMessage({ id: \"PRODUCTION_ORDER.VIEW.HEADER\" }),\r\n };\r\n\r\n const gridColumnsVisible = {\r\n id: true,\r\n fiscalCashierBusinessUnitTitle: false,\r\n talkingNumber: true,\r\n type: false,\r\n documentTypeTitle: false,\r\n customerName: false,\r\n date: true,\r\n creatorId: false,\r\n creatorTitle: true,\r\n amountForPayment: false,\r\n endId: false,\r\n endTalkingNumber: false,\r\n documentStornoId: false,\r\n documentStornoTalkingNumber: true,\r\n payments: false\r\n };\r\n\r\n const formFieldsVisible = {\r\n date: true,\r\n time: false,\r\n serviceDate: false,\r\n dateOfServicesRendered: false,\r\n dueDate: false,\r\n customer: false,\r\n supplier: false,\r\n discountProcent: false,\r\n discountAmount: false,\r\n note: true,\r\n warehouseId: true,\r\n warehouse2Id: false,\r\n otherDocumentNumber: false,\r\n paymentDeadlineNumDays: false,\r\n //result fields\r\n amountForPaymentBase: false,\r\n amountVat: false,\r\n amountForPayment: false,\r\n amountDiscount: false,\r\n };\r\n\r\n const formTranslate = {\r\n date: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n time: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n serviceDate: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dateOfServicesRendered: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dueDate: intl.formatMessage({ id: \"AUTH.GENERAL.DUE_DATE\" }),\r\n customer: intl.formatMessage({ id: \"AUTH.GENERAL.CUSTOMER\" }),\r\n supplier: intl.formatMessage({ id: \"AUTH.GENERAL.SUPPLIER\" }),\r\n discountProcent: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n discountAmount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_AMOUNT\" }),\r\n note: intl.formatMessage({ id: \"AUTH.GENERAL.NOTE\" }),\r\n warehouseId: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE\" }),\r\n warehouse2Id: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE2\" }),\r\n //result fields\r\n amountForPaymentBase: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT_BASE\" }),\r\n amountVat: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_VAT\" }),\r\n amountForPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT\" }),\r\n amountDiscount: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_DISCOUNT\" }),\r\n amountOfPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_OF_PAYMENT\" }),\r\n otherDocumentNumber: intl.formatMessage({ id: \"AUTH.GENERAL.OTHER_DOCUMENT_NUMBER\" }),\r\n paymentDeadlineNumDays: intl.formatMessage({ id: \"AUTH.GENERAL.PAYMENT_DEADLINE_NUM_DAYS\" })\r\n };\r\n\r\n const gridPositionColumnsVisible = {\r\n itemGoods: true,\r\n itemAll: false,\r\n vat: false,\r\n quantity: true,\r\n discount: false,\r\n itemAmountWithoutVat: false,\r\n totalAmountWithoutVat: false,\r\n totalAmountWithVat: false,\r\n grossWeight: false,\r\n stock: false,\r\n isCustomItem: false,\r\n cubic: user.organizationCubic\r\n };\r\n\r\n const gridPositionColumnsTranslate = {\r\n item: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM\" }),\r\n vat: intl.formatMessage({ id: \"AUTH.GENERAL.VAT_RATE\" }),\r\n quantity: intl.formatMessage({ id: \"AUTH.GENERAL.QUANTITY\" }),\r\n discount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n itemAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITH_VAT\" }),\r\n grossWeight: intl.formatMessage({ id: \"AUTH.GENERAL.GROSS_WEIGHT\" }),\r\n stock: intl.formatMessage({ id: \"AUTH.GENERAL.STOCK\" }),\r\n isCustomItem: intl.formatMessage({ id: \"AUTH.GENERAL.IS_CUSTOM_ITEM\" }),\r\n length: intl.formatMessage({ id: \"AUTH.GENERAL.LENGTH\" }),\r\n radius: intl.formatMessage({ id: \"AUTH.GENERAL.RADIUS\" }),\r\n cubic: intl.formatMessage({ id: \"AUTH.GENERAL.CUBIC\" })\r\n };\r\n\r\n const deleteFromTranslate = {\r\n delete: intl.formatMessage({ id: \"PRODUCTION_ORDER.DELETE\" }),\r\n areYouSure: intl.formatMessage({ id: \"PRODUCTION_ORDER.ARE_YOU_SURE_TO_PERMANTLY_DELETE_THIS_ITEM\" }),\r\n ItemAreDeleting: intl.formatMessage({ id: \"PRODUCTION_ORDER.ITEM_ARE_DELETING\" }),\r\n cancel: intl.formatMessage({ id: \"TAKEOVER.CANCEL\" }),\r\n storno: intl.formatMessage({ id: \"TAKEOVER.STORNO\" })\r\n };\r\n\r\n const value = {\r\n documentType,\r\n translate,\r\n gridColumnsVisible,\r\n formFieldsVisible,\r\n gridPositionColumnsVisible,\r\n gridPositionColumnsTranslate,\r\n deleteFromTranslate,\r\n formTranslate,\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initDocument,\r\n readOnly: !hasRoleForFunctionality(user, [UserFunctionalityE.UrediPrevzemneListe]),\r\n newDocumentButtonClick: productionOrdersUIEvents.newDocumentButtonClick,\r\n openEditDocumentDialog: productionOrdersUIEvents.openEditDocumentDialog,\r\n openDeleteDocumentDialog: productionOrdersUIEvents.openDeleteDocumentDialog,\r\n printDocumentsDialog: productionOrdersUIEvents.printDocumentsDialog,\r\n printStornoDocumentsDialog: productionOrdersUIEvents.printStornoDocumentsDialog,\r\n copyDocumentButtonClick: productionOrdersUIEvents.copyDocumentButtonClick\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/productionOrders\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/productionOrders\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/productionOrders\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/productionOrders\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/productionOrders\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/purchase/productionOrders\");\r\n }}\r\n />\r\n )}\r\n \r\n { setOpen(false);}} />\r\n \r\n \r\n );\r\n}\r\n","import React, { Suspense } from \"react\";\r\nimport { Redirect, Switch } from \"react-router-dom\";\r\nimport { TakeoversPage } from \"./takeovers/TakeoversPage\";\r\nimport { InventoriesPage } from \"./inventories/InventoriesPage\";\r\nimport { WriteoffsPage } from \"./writeoffs/WriteoffsPage\";\r\nimport { InternalStockTransfersPage } from \"./internalStockTransfers/InternalStockTransfersPage\";\r\nimport { OwnConsumptionsPage } from \"./ownConsumptions/OwnConsumptionsPage\";\r\nimport { RefundsPage } from \"./refunds/RefundsPage\";\r\nimport { ProductionOrdersPage } from \"./productionOrders/ProductionOrdersPage\";\r\nimport { LayoutSplashScreen, ContentRoute } from \"../../../../_metronic/layout\";\r\nimport { hasRoleForFunctionality } from \"../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../enum/userFunctionalityE\"\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport default function PurchasePage() {\r\n const { user } = useSelector(state => state.auth);\r\n\r\n return (\r\n }>\r\n \r\n {\r\n \r\n }\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.PregledPrevzemnihListov, UserFunctionalityE.UrediPrevzemneListe]) && (\r\n \r\n )}\r\n\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.PregledInventurnihPopisov, UserFunctionalityE.UrediInventurnePopise]) && (\r\n \r\n )}\r\n\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.PregledOdpisov, UserFunctionalityE.UrediOdpise]) && (\r\n \r\n )}\r\n\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.PregledMedskladiscnihPrenosov, UserFunctionalityE.UrediMedskladiscnePrenose]) && (\r\n \r\n )}\r\n\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.PregledLastnihPorab, UserFunctionalityE.UrediLastnePorabe]) && (\r\n \r\n )}\r\n\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.PregledVracil, UserFunctionalityE.UrediVracila]) && (\r\n \r\n )}\r\n\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.PregledProizvodnihNalogov, UserFunctionalityE.UrediProizvodneNaloge]) && (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useState, useCallback } from \"react\";\r\nimport { Route, Redirect } from \"react-router-dom\";\r\nimport { DocumentsLoadingDialog } from \"../../../Document/pages/documents/documents-loading-dialog/DocumentsLoadingDialog\";\r\nimport { DocumentEditDialog } from \"../../../Document/pages/documents/document-edit-dialog/DocumentEditDialog\";\r\nimport { DocumentDeleteDialog } from \"../../../Document/pages/documents/document-delete-dialog/DocumentDeleteDialog\";\r\nimport { DocumentsPrintDialog } from \"../../../Document/pages/documents/documents-print-dialog/DocumentsPrintDialog\";\r\nimport { DocumentsPrintStornoDialog } from \"../../../Document/pages/documents/documents-print-storno-dialog/DocumentsPrintStornoDialog\";\r\nimport { DocumentsCard } from \"../../../Document/pages/documents/DocumentsCard\";\r\nimport { DocumentsUIProvider } from \"../../../Document/pages/documents/DocumentsUIContext\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport InfoPopup from \"../../../Helpers/InfoPopup\"\r\nimport { useIntl } from \"react-intl\";\r\nimport { isEqual, isFunction } from \"lodash\";\r\nimport moment from 'moment'\r\nimport { hasRoleForFunctionality } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\nimport { useCookies } from \"react-cookie\";\r\n\r\nexport function OffersPage({ history }) {\r\n const intl = useIntl();\r\n const [cookies, setCookie] = useCookies();\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.documents }),\r\n shallowEqual\r\n );\r\n\r\n const takeoversUIEvents = {\r\n newDocumentButtonClick: () => {\r\n history.push(\"/sales/offers/new\");\r\n },\r\n openEditDocumentDialog: (id) => {\r\n history.push(`/sales/offers/${id}/edit`);\r\n },\r\n openDeleteDocumentDialog: (id) => {\r\n history.push(`/sales/offers/${id}/delete`);\r\n },\r\n printDocumentsDialog: () => {\r\n history.push(`/sales/offers/printOffers`);\r\n },\r\n printStornoDocumentsDialog: (id) => {\r\n history.push(`/sales/offers/${id}/printStornoOffers/`);\r\n },\r\n copyDocumentButtonClick: (id) => {\r\n history.push(`/sales/offers/${id}/copy`);\r\n },\r\n sendDocumentsToDeliveryNoteDialog: () => {\r\n history.push({\r\n pathname: '/sales/delivery_notes/',\r\n state: { ids: ids }\r\n });\r\n },\r\n sendDocumentsToDeliveryNoteInvoiceDialog: () => {\r\n history.push({\r\n pathname: '/sales/delivery_note_invoices/',\r\n state: { ids: ids }\r\n });\r\n }\r\n }\r\n\r\n const documentType = 11;\r\n const { user } = useSelector(state => state.auth);\r\n\r\n const initialFilter = {\r\n documentType: documentType,\r\n query: \"\",\r\n sortOrder: \"desc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25,\r\n startDate: moment(new Date(new Date().setMonth(new Date().getMonth() - 1))).format(\"YYYY-MM-DD\"),\r\n endDate: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n cashierIds: function () {\r\n var list = cookies['filter_dt_' + documentType + '_' + user.id] != undefined ? cookies['filter_dt_' + documentType + '_' + user.id] : [];\r\n var ids = \"\";\r\n for (var index = 0; index < list.length; index++) {\r\n if (ids != \"\") {\r\n ids += \",\";\r\n }\r\n ids += list[index];\r\n }\r\n return ids;\r\n }()\r\n };\r\n\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n const initDocument = {\r\n id: undefined,\r\n type: \"\",\r\n date: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n time: moment(new Date()).format(\"HH:mm\"),\r\n serviceDate: \"\",\r\n dateOfServicesRendered: \"\",\r\n dueDate: \"\",\r\n customer: null,\r\n customerId: null,\r\n discountProcent: \"\",\r\n discountAmount: \"\",\r\n note: \"\",\r\n note2: \"\",\r\n warehouseId: null,\r\n warehouse: null,\r\n warehouse2Id: null,\r\n warehouse2: null,\r\n otherDocumentNumber: \"\",\r\n documentPosition: [],\r\n stornoDocument: null,\r\n stornoDocumentId: null,\r\n paymentDeadlineNumDays: \"8\",\r\n valid: \"\"\r\n };\r\n\r\n for (var x = 0; x < 5; x++) {\r\n initDocument.documentPosition.push({\r\n item: null,\r\n vatRateId: 1,\r\n quantity: 0,\r\n discount: 0,\r\n itemAmountWithoutVat: 0,\r\n totalAmountWithoutVat: 0,\r\n totalAmountWithVat: 0,\r\n grossWeight: 0,\r\n isCustomItem: false,\r\n itemTitle: \"\",\r\n unitId: null,\r\n length: 0,\r\n radius: 0,\r\n cubic: 0\r\n });\r\n }\r\n\r\n const translate = {\r\n header: intl.formatMessage({ id: \"OFFER.HEADER\" }),\r\n newHeader: intl.formatMessage({ id: \"OFFER.NEW.HEADER\" }),\r\n editHeader: intl.formatMessage({ id: \"OFFER.EDIT.HEADER\" }),\r\n copyHeader: intl.formatMessage({ id: \"OFFER.COPY.HEADER\" }),\r\n viewHeader: intl.formatMessage({ id: \"OFFER.VIEW.HEADER\" }),\r\n };\r\n\r\n const gridColumnsVisible = {\r\n id: true,\r\n talkingNumber: true,\r\n fiscalCashierBusinessUnitTitle: true,\r\n type: false,\r\n documentTypeTitle: false,\r\n customerName: true,\r\n date: true,\r\n creatorId: false,\r\n creatorTitle: true,\r\n amountForPayment: true,\r\n endId: false,\r\n endTalkingNumber: false,\r\n documentStornoId: false,\r\n documentStornoTalkingNumber: false,\r\n payments: false,\r\n linkedDocumentIds: true\r\n };\r\n\r\n const formFieldsVisible = {\r\n date: true,\r\n time: false,\r\n serviceDate: false,\r\n dateOfServicesRendered: false,\r\n dueDate: false,\r\n customer: true,\r\n supplier: false,\r\n discountProcent: true,\r\n discountAmount: true,\r\n note: true,\r\n warehouseId: false,\r\n warehouse2Id: false,\r\n otherDocumentNumber: false,\r\n paymentDeadlineNumDays: true,\r\n //result fields\r\n amountForPaymentBase: true,\r\n amountVat: true,\r\n amountForPayment: true,\r\n amountDiscount: true,\r\n };\r\n\r\n const formTranslate = {\r\n date: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n time: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n serviceDate: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dateOfServicesRendered: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dueDate: intl.formatMessage({ id: \"AUTH.GENERAL.DUE_DATE\" }),\r\n customer: intl.formatMessage({ id: \"AUTH.GENERAL.BUYER\" }),\r\n supplier: intl.formatMessage({ id: \"AUTH.GENERAL.SUPPLIER\" }),\r\n discountProcent: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n discountAmount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_AMOUNT\" }),\r\n note: intl.formatMessage({ id: \"AUTH.GENERAL.NOTE\" }),\r\n warehouseId: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE\" }),\r\n warehouse2Id: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE2\" }),\r\n //result fields\r\n amountForPaymentBase: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT_BASE\" }),\r\n amountVat: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_VAT\" }),\r\n amountForPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT\" }),\r\n amountDiscount: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_DISCOUNT\" }),\r\n amountOfPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_OF_PAYMENT\" }),\r\n otherDocumentNumber: intl.formatMessage({ id: \"AUTH.GENERAL.OTHER_DOCUMENT_NUMBER\" }),\r\n paymentDeadlineNumDays: intl.formatMessage({ id: \"AUTH.GENERAL.PAYMENT_DEADLINE_NUM_DAYS\" })\r\n };\r\n\r\n const gridPositionColumnsVisible = {\r\n itemGoods: false,\r\n itemAll: true,\r\n vat: true,\r\n quantity: true,\r\n discount: true,\r\n itemAmountWithoutVat: true,\r\n totalAmountWithoutVat: true,\r\n totalAmountWithVat: true,\r\n grossWeight: false,\r\n stock: false,\r\n isCustomItem: true,\r\n cubic: user.organizationCubic\r\n };\r\n\r\n const gridPositionColumnsTranslate = {\r\n item: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM\" }),\r\n vat: intl.formatMessage({ id: \"AUTH.GENERAL.VAT_RATE\" }),\r\n quantity: intl.formatMessage({ id: \"AUTH.GENERAL.QUANTITY\" }),\r\n discount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n itemAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITH_VAT\" }),\r\n grossWeight: intl.formatMessage({ id: \"AUTH.GENERAL.GROSS_WEIGHT\" }),\r\n stock: intl.formatMessage({ id: \"AUTH.GENERAL.STOCK\" }),\r\n isCustomItem: intl.formatMessage({ id: \"AUTH.GENERAL.IS_CUSTOM_ITEM\" }),\r\n length: intl.formatMessage({ id: \"AUTH.GENERAL.LENGTH\" }),\r\n radius: intl.formatMessage({ id: \"AUTH.GENERAL.RADIUS\" }),\r\n cubic: intl.formatMessage({ id: \"AUTH.GENERAL.CUBIC\" })\r\n };\r\n\r\n const deleteFromTranslate = {\r\n delete: intl.formatMessage({ id: \"OFFER.DELETE\" }),\r\n areYouSure: intl.formatMessage({ id: \"OFFER.ARE_YOU_SURE_TO_PERMANTLY_DELETE_THIS_ITEM\" }),\r\n ItemAreDeleting: intl.formatMessage({ id: \"OFFER.ITEM_ARE_DELETING\" }),\r\n cancel: intl.formatMessage({ id: \"TAKEOVER.CANCEL\" }),\r\n storno: intl.formatMessage({ id: \"INVENTORY.STORNO\" })\r\n };\r\n\r\n const value = {\r\n documentType,\r\n translate,\r\n gridColumnsVisible,\r\n formFieldsVisible,\r\n gridPositionColumnsVisible,\r\n gridPositionColumnsTranslate,\r\n deleteFromTranslate,\r\n formTranslate,\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initDocument,\r\n readOnly: !hasRoleForFunctionality(user, [UserFunctionalityE.UrediPrevzemneListe]),\r\n newDocumentButtonClick: takeoversUIEvents.newDocumentButtonClick,\r\n openEditDocumentDialog: takeoversUIEvents.openEditDocumentDialog,\r\n openDeleteDocumentDialog: takeoversUIEvents.openDeleteDocumentDialog,\r\n printDocumentsDialog: takeoversUIEvents.printDocumentsDialog,\r\n printStornoDocumentsDialog: takeoversUIEvents.printStornoDocumentsDialog,\r\n copyDocumentButtonClick: takeoversUIEvents.copyDocumentButtonClick,\r\n sendDocumentsToDeliveryNoteDialog: takeoversUIEvents.sendDocumentsToDeliveryNoteDialog,\r\n sendDocumentsToDeliveryNoteInvoiceDialog: takeoversUIEvents.sendDocumentsToDeliveryNoteInvoiceDialog\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/offers\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/offers\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/offers\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/offers\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/offers\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/offers\");\r\n }}\r\n />\r\n )}\r\n \r\n { setOpen(false);}} />\r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useState, useCallback } from \"react\";\r\nimport { Route, useLocation } from \"react-router-dom\";\r\nimport { DocumentsLoadingDialog } from \"../../../Document/pages/documents/documents-loading-dialog/DocumentsLoadingDialog\";\r\nimport { DocumentEditDialog } from \"../../../Document/pages/documents/document-edit-dialog/DocumentEditDialog\";\r\nimport { DocumentDeleteDialog } from \"../../../Document/pages/documents/document-delete-dialog/DocumentDeleteDialog\";\r\nimport { DocumentsPrintDialog } from \"../../../Document/pages/documents/documents-print-dialog/DocumentsPrintDialog\";\r\nimport { DocumentsPrintStornoDialog } from \"../../../Document/pages/documents/documents-print-storno-dialog/DocumentsPrintStornoDialog\";\r\nimport { DocumentsCard } from \"../../../Document/pages/documents/DocumentsCard\";\r\nimport { DocumentsUIProvider } from \"../../../Document/pages/documents/DocumentsUIContext\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport InfoPopup from \"../../../Helpers/InfoPopup\"\r\nimport { useIntl } from \"react-intl\";\r\nimport { isEqual, isFunction } from \"lodash\";\r\nimport moment from 'moment'\r\nimport { hasRoleForFunctionality } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\nimport { useCookies } from \"react-cookie\";\r\nimport { func } from \"prop-types\";\r\n\r\nexport function DeliveryNotesPage({ history }) {\r\n const location = useLocation();\r\n const intl = useIntl();\r\n const [cookies, setCookie] = useCookies();\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.documents }),\r\n shallowEqual\r\n );\r\n\r\n useEffect(() => {\r\n if (location.state != undefined && location.state.ids != undefined && location.state.ids.length > 0) {\r\n setTimeout(function () {\r\n history.push(`/sales/delivery_notes/send`, location.state);\r\n }, 0);\r\n }\r\n }, []);\r\n \r\n const takeoversUIEvents = {\r\n newDocumentButtonClick: () => {\r\n history.push(\"/sales/delivery_notes/new\");\r\n },\r\n openEditDocumentDialog: (id) => {\r\n history.push(`/sales/delivery_notes/${id}/edit`);\r\n },\r\n openDeleteDocumentDialog: (id) => {\r\n history.push(`/sales/delivery_notes/${id}/delete`);\r\n },\r\n printDocumentsDialog: () => {\r\n history.push(`/sales/delivery_notes/printDeliveryNotes`);\r\n },\r\n printStornoDocumentsDialog: (id) => {\r\n history.push(`/sales/delivery_notes/${id}/printStornoDeliveryNotes/`);\r\n },\r\n copyDocumentButtonClick: (id) => {\r\n history.push(`/sales/delivery_notes/${id}/copy`);\r\n },\r\n sendDocumentsToDeliveryNoteInvoiceDialog: () => {\r\n history.push({\r\n pathname: '/sales/delivery_note_invoices/',\r\n state: { ids: ids }\r\n });\r\n }\r\n }\r\n\r\n const documentType = 1;\r\n const { user } = useSelector(state => state.auth);\r\n\r\n const initialFilter = {\r\n documentType: documentType,\r\n query: \"\",\r\n sortOrder: \"desc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25,\r\n startDate: moment(new Date(new Date().setMonth(new Date().getMonth() - 1))).format(\"YYYY-MM-DD\"),\r\n endDate: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n cashierIds: function () {\r\n var list = cookies['filter_dt_' + documentType + '_' + user.id] != undefined ? cookies['filter_dt_' + documentType + '_' + user.id] : [];\r\n var ids = \"\";\r\n for (var index = 0; index < list.length; index++) {\r\n if (ids != \"\") {\r\n ids += \",\";\r\n }\r\n ids += list[index];\r\n }\r\n return ids;\r\n }()\r\n };\r\n\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n const initDocument = {\r\n id: undefined,\r\n type: \"\",\r\n date: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n time: moment(new Date()).format(\"HH:mm\"),\r\n serviceDate: \"\",\r\n dateOfServicesRendered: \"\",\r\n dueDate: \"\",\r\n customer: null,\r\n customerId: null,\r\n discountProcent: \"\",\r\n discountAmount: \"\",\r\n note: \"\",\r\n note2: \"\",\r\n warehouseId: null,\r\n warehouse: null,\r\n warehouse2Id: null,\r\n warehouse2: null,\r\n otherDocumentNumber: \"\",\r\n documentPosition: [],\r\n stornoDocument: null,\r\n stornoDocumentId: null,\r\n paymentDeadlineNumDays: \"8\",\r\n valid: \"\"\r\n };\r\n\r\n for (var x = 0; x < 5; x++) {\r\n initDocument.documentPosition.push({\r\n item: null,\r\n vatRateId: 1,\r\n quantity: 0,\r\n discount: 0,\r\n itemAmountWithoutVat: 0,\r\n totalAmountWithoutVat: 0,\r\n totalAmountWithVat: 0,\r\n grossWeight: 0,\r\n isCustomItem: false,\r\n itemTitle: \"\",\r\n unitId: null,\r\n length: 0,\r\n radius: 0,\r\n cubic: 0\r\n });\r\n }\r\n\r\n const translate = {\r\n header: intl.formatMessage({ id: \"DELIVERY_NOTE.HEADER\" }),\r\n newHeader: intl.formatMessage({ id: \"DELIVERY_NOTE.NEW.HEADER\" }),\r\n editHeader: intl.formatMessage({ id: \"DELIVERY_NOTE.EDIT.HEADER\" }),\r\n copyHeader: intl.formatMessage({ id: \"DELIVERY_NOTE.COPY.HEADER\" }),\r\n viewHeader: intl.formatMessage({ id: \"DELIVERY_NOTE.VIEW.HEADER\" }),\r\n };\r\n\r\n const gridColumnsVisible = {\r\n id: true,\r\n fiscalCashierBusinessUnitTitle: true,\r\n talkingNumber: true,\r\n type: false,\r\n documentTypeTitle: false,\r\n customerName: true,\r\n date: true,\r\n creatorId: false,\r\n creatorTitle: true,\r\n amountForPayment: true,\r\n endId: false,\r\n endTalkingNumber: false,\r\n documentStornoId: false,\r\n documentStornoTalkingNumber: true,\r\n payments: false,\r\n linkedDocumentIds: true\r\n };\r\n\r\n const formFieldsVisible = {\r\n date: true,\r\n time: false,\r\n serviceDate: false,\r\n dateOfServicesRendered: false,\r\n dueDate: false,\r\n customer: true,\r\n supplier: false,\r\n discountProcent: true,\r\n discountAmount: true,\r\n note: true,\r\n warehouseId: true,\r\n warehouse2Id: false,\r\n otherDocumentNumber: false,\r\n paymentDeadlineNumDays: false,\r\n //result fields\r\n amountForPaymentBase: true,\r\n amountVat: true,\r\n amountForPayment: true,\r\n amountDiscount: true,\r\n };\r\n\r\n const formTranslate = {\r\n date: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n time: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n serviceDate: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dateOfServicesRendered: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dueDate: intl.formatMessage({ id: \"AUTH.GENERAL.DUE_DATE\" }),\r\n customer: intl.formatMessage({ id: \"AUTH.GENERAL.BUYER\" }),\r\n supplier: intl.formatMessage({ id: \"AUTH.GENERAL.SUPPLIER\" }),\r\n discountProcent: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n discountAmount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_AMOUNT\" }),\r\n note: intl.formatMessage({ id: \"AUTH.GENERAL.NOTE\" }),\r\n warehouseId: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE\" }),\r\n warehouse2Id: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE2\" }),\r\n //result fields\r\n amountForPaymentBase: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT_BASE\" }),\r\n amountVat: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_VAT\" }),\r\n amountForPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT\" }),\r\n amountDiscount: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_DISCOUNT\" }),\r\n amountOfPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_OF_PAYMENT\" }),\r\n otherDocumentNumber: intl.formatMessage({ id: \"AUTH.GENERAL.OTHER_DOCUMENT_NUMBER\" }),\r\n paymentDeadlineNumDays: intl.formatMessage({ id: \"AUTH.GENERAL.PAYMENT_DEADLINE_NUM_DAYS\" })\r\n };\r\n\r\n const gridPositionColumnsVisible = {\r\n itemGoods: true,\r\n itemAll: false,\r\n vat: true,\r\n quantity: true,\r\n discount: true,\r\n itemAmountWithoutVat: true,\r\n totalAmountWithoutVat: true,\r\n totalAmountWithVat: true,\r\n grossWeight: false,\r\n stock: false,\r\n isCustomItem: false,\r\n cubic: user.organizationCubic\r\n };\r\n\r\n const gridPositionColumnsTranslate = {\r\n item: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM\" }),\r\n vat: intl.formatMessage({ id: \"AUTH.GENERAL.VAT_RATE\" }),\r\n quantity: intl.formatMessage({ id: \"AUTH.GENERAL.QUANTITY\" }),\r\n discount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n itemAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITH_VAT\" }),\r\n grossWeight: intl.formatMessage({ id: \"AUTH.GENERAL.GROSS_WEIGHT\" }),\r\n stock: intl.formatMessage({ id: \"AUTH.GENERAL.STOCK\" }),\r\n isCustomItem: intl.formatMessage({ id: \"AUTH.GENERAL.IS_CUSTOM_ITEM\" }),\r\n length: intl.formatMessage({ id: \"AUTH.GENERAL.LENGTH\" }),\r\n radius: intl.formatMessage({ id: \"AUTH.GENERAL.RADIUS\" }),\r\n cubic: intl.formatMessage({ id: \"AUTH.GENERAL.CUBIC\" })\r\n };\r\n\r\n const deleteFromTranslate = {\r\n delete: intl.formatMessage({ id: \"DELIVERY_NOTE.DELETE\" }),\r\n areYouSure: intl.formatMessage({ id: \"DELIVERY_NOTE.ARE_YOU_SURE_TO_PERMANTLY_DELETE_THIS_ITEM\" }),\r\n ItemAreDeleting: intl.formatMessage({ id: \"DELIVERY_NOTE.ITEM_ARE_DELETING\" }),\r\n cancel: intl.formatMessage({ id: \"TAKEOVER.CANCEL\" }),\r\n storno: intl.formatMessage({ id: \"TAKEOVER.STORNO\" })\r\n };\r\n\r\n const value = {\r\n documentType,\r\n translate,\r\n gridColumnsVisible,\r\n formFieldsVisible,\r\n gridPositionColumnsVisible,\r\n gridPositionColumnsTranslate,\r\n deleteFromTranslate,\r\n formTranslate,\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initDocument,\r\n readOnly: !hasRoleForFunctionality(user, [UserFunctionalityE.UrediPrevzemneListe]),\r\n newDocumentButtonClick: takeoversUIEvents.newDocumentButtonClick,\r\n openEditDocumentDialog: takeoversUIEvents.openEditDocumentDialog,\r\n openDeleteDocumentDialog: takeoversUIEvents.openDeleteDocumentDialog,\r\n printDocumentsDialog: takeoversUIEvents.printDocumentsDialog,\r\n printStornoDocumentsDialog: takeoversUIEvents.printStornoDocumentsDialog,\r\n copyDocumentButtonClick: takeoversUIEvents.copyDocumentButtonClick,\r\n sendDocumentsToDeliveryNoteInvoiceDialog: takeoversUIEvents.sendDocumentsToDeliveryNoteInvoiceDialog\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/delivery_notes\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/delivery_notes\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/delivery_notes\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/delivery_notes\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/delivery_notes\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/delivery_notes\");\r\n }}\r\n />\r\n )}\r\n \r\n\r\n\r\n \r\n {({ history, match }) => (\r\n 0 ? location.state.ids : undefined}\r\n onHide={() => {\r\n history.push(\"/sales/delivery_notes\");\r\n }}\r\n />\r\n )}\r\n \r\n\r\n\r\n { setOpen(false);}} />\r\n \r\n \r\n );\r\n}\r\n","import React, { useState, useEffect, useMemo } from \"react\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport {ModalProgressBar} from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useDocumentsUIContext } from \"../DocumentsUIContext\";\r\n\r\nexport function DocumentHistoryDialogHeader({ id, document }) {\r\n const documentsUIContext = useDocumentsUIContext();\r\n // Office users Redux state\r\n const { documentForEdit, actionsLoading } = useSelector(\r\n (state) => ({\r\n documentForEdit: state.documents.documentForEdit,\r\n actionsLoading: state.documents.actionsLoading,\r\n }),\r\n shallowEqual\r\n );\r\n\r\n const documentsUIProps = useMemo(() => {\r\n return {\r\n ids: documentsUIContext.ids,\r\n newDocumentButtonClick: documentsUIContext.newDocumentButtonClick,\r\n translate: documentsUIContext.translate,\r\n readOnly: documentsUIContext.readOnly\r\n };\r\n }, [documentsUIContext]);\r\n\r\n const [title, setTitle] = useState(\"\");\r\n // Title couting\r\n useEffect(() => {\r\n let _title = id ? \"\" : documentsUIProps.translate.newHeader;\r\n var readOnly = documentsUIProps.readOnly;\r\n if (document.stornoDocumentId != null) {\r\n readOnly = true;\r\n }\r\n if (documentForEdit && id) {\r\n _title = documentsUIProps.translate.historyHeader + ` '${documentForEdit.talkingNumber}'`;\r\n }\r\n\r\n setTitle(_title);\r\n // eslint-disable-next-line\r\n }, [documentForEdit, actionsLoading]);\r\n\r\n return (\r\n <>\r\n {actionsLoading && }\r\n \r\n {title}\r\n \r\n \r\n );\r\n}\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\n\r\nexport function UserColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n) {\r\n return (\r\n <>\r\n {row != null ? (row.firstName + \" \" + row.lastName) : \"\"}\r\n \r\n );\r\n}\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport Moment from 'react-moment';\r\n\r\n\r\nexport function DateColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex\r\n) {\r\n return (\r\n <>\r\n \r\n {cellContent}\r\n \r\n \r\n \r\n );\r\n}\r\n","// React bootstrap table next =>\r\n// DOCS: https://react-bootstrap-table.github.io/react-bootstrap-table2/docs/\r\n// STORYBOOK: https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html\r\nimport React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory, {\r\n PaginationProvider,\r\n} from \"react-bootstrap-table2-paginator\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/documents/documentsActions\";\r\nimport {\r\n getSelectRow,\r\n getHandlerTableChange,\r\n NoRecordsFoundMessage,\r\n PleaseWaitMessage,\r\n sortCaret,\r\n headerSortingClasses,\r\n} from \"../../../../../../_metronic/_helpers\";\r\nimport * as uiHelpers from \"../DocumentsUIHelpers\";\r\nimport * as columnFormatters from \"./column-formatters\";\r\nimport { Pagination } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useDocumentsUIContext } from \"../DocumentsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function DocumentHistoryTable({ onHide, setQueryParams, queryParams }) {\r\n const intl = useIntl();\r\n\r\n // Getting curret state of office users list from store (Redux)\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.documents }),\r\n shallowEqual\r\n );\r\n const { historyTotalCount, historyEntities, listLoading } = currentState;\r\n\r\n // Office Users Redux state\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n // server call by queryParams\r\n dispatch(actions.fetchHistory(queryParams));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [queryParams, dispatch]);\r\n\r\n const customTotal = (from, to, size) => (\r\n \r\n {from} - { to} {size} \r\n \r\n );\r\n\r\n // Table pagination properties\r\n const paginationOptions = {\r\n custom: true,\r\n totalSize: historyTotalCount,\r\n sizePerPageList: uiHelpers.sizePerPageList,\r\n sizePerPage: queryParams.pageSize,\r\n page: queryParams.pageNumber,\r\n paginationTotalRenderer: customTotal\r\n };\r\n return (\r\n <>\r\n \r\n \r\n {({ paginationProps, paginationTableProps }) => {\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","import React, { useEffect, useMemo, useCallback, useState} from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/documents/documentsActions\";\r\nimport { DocumentHistoryDialogHeader } from \"./DocumentHistoryDialogHeader\";\r\nimport { DocumentHistoryTable } from \"./DocumentHistoryTable\";\r\nimport { useDocumentsUIContext } from \"../DocumentsUIContext\";\r\nimport { isEqual, isFunction } from \"lodash\";\r\n\r\nexport function DocumentHistoryDialog({ id, show, onHide }) {\r\n const initialFilter = {\r\n id: id,\r\n query: \"\",\r\n sortOrder: \"desc\", // asc||desc\r\n sortField: \"createdDate\",\r\n pageNumber: 1,\r\n pageSize: 25\r\n };\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n // Office users UI Context\r\n const documentsUIContext = useDocumentsUIContext();\r\n const documentsUIProps = useMemo(() => {\r\n return {\r\n initDocument: documentsUIContext.initDocument\r\n };\r\n }, [documentsUIContext]);\r\n\r\n\r\n // Users Redux state\r\n const dispatch = useDispatch();\r\n const { actionsLoading, documentForEdit } = useSelector(\r\n (state) => ({\r\n actionsLoading: state.documents.actionsLoading,\r\n documentForEdit: state.documents.documentForEdit\r\n }),\r\n shallowEqual\r\n );\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n return;\r\n }\r\n \r\n dispatch(actions.fetchDocument(id));\r\n queryParams.id = id;\r\n dispatch(actions.fetchHistory(queryParams));\r\n }, [id, show, dispatch]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useState, useCallback } from \"react\";\r\nimport { Route, useLocation } from \"react-router-dom\";\r\nimport { DocumentsLoadingDialog } from \"../../../Document/pages/documents/documents-loading-dialog/DocumentsLoadingDialog\";\r\nimport { DocumentEditDialog } from \"../../../Document/pages/documents/document-edit-dialog/DocumentEditDialog\";\r\nimport { DocumentHistoryDialog } from \"../../../Document/pages/documents/document-history-dialog/DocumentHistoryDialog\";\r\nimport { DocumentDeleteDialog } from \"../../../Document/pages/documents/document-delete-dialog/DocumentDeleteDialog\";\r\nimport { DocumentsPrintDialog } from \"../../../Document/pages/documents/documents-print-dialog/DocumentsPrintDialog\";\r\nimport { DocumentsPrintStornoDialog } from \"../../../Document/pages/documents/documents-print-storno-dialog/DocumentsPrintStornoDialog\";\r\nimport { DocumentsCard } from \"../../../Document/pages/documents/DocumentsCard\";\r\nimport { DocumentsUIProvider } from \"../../../Document/pages/documents/DocumentsUIContext\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport InfoPopup from \"../../../Helpers/InfoPopup\"\r\nimport { useIntl } from \"react-intl\";\r\nimport { isEqual, isFunction } from \"lodash\";\r\nimport moment from 'moment'\r\nimport { hasRoleForFunctionality } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\nimport { useCookies } from \"react-cookie\";\r\n\r\nexport function InvoicesPage({ history }) {\r\n const location = useLocation();\r\n const intl = useIntl();\r\n const [cookies, setCookie] = useCookies();\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.documents }),\r\n shallowEqual\r\n );\r\n\r\n useEffect(() => {\r\n if (location.state != undefined && location.state.ids != undefined && location.state.ids.length > 0) {\r\n setTimeout(function () {\r\n history.push(`/sales/invoices/send`, location.state);\r\n }, 0);\r\n }\r\n }, []);\r\n\r\n const takeoversUIEvents = {\r\n newDocumentButtonClick: () => {\r\n history.push(\"/sales/invoices/new\");\r\n },\r\n openEditDocumentDialog: (id) => {\r\n history.push(`/sales/invoices/${id}/edit`);\r\n },\r\n openDeleteDocumentDialog: (id) => {\r\n history.push(`/sales/invoices/${id}/delete`);\r\n },\r\n printDocumentsDialog: () => {\r\n history.push(`/sales/invoices/printInvoices`);\r\n },\r\n printDocumentDialog: (id) => {\r\n history.push(`/sales/invoices/${id}/printInvoice`);\r\n },\r\n printStornoDocumentsDialog: (id) => {\r\n history.push(`/sales/invoices/${id}/printStornoInvoices/`);\r\n },\r\n copyDocumentButtonClick: (id) => {\r\n history.push(`/sales/invoices/${id}/copy`);\r\n },\r\n historyDocumentDialog: (id) => {\r\n history.push(`/sales/invoices/${id}/history`);\r\n }\r\n }\r\n\r\n const documentType = 3;\r\n const { user } = useSelector(state => state.auth);\r\n\r\n const initialFilter = {\r\n documentType: documentType,\r\n query: \"\",\r\n sortOrder: \"desc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25,\r\n startDate: moment(new Date(new Date().setMonth(new Date().getMonth() - 1))).format(\"YYYY-MM-DD\"),\r\n endDate: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n cashierIds: function () {\r\n var list = cookies['filter_dt_' + documentType + '_' + user.id] != undefined ? cookies['filter_dt_' + documentType + '_' + user.id] : [];\r\n var ids = \"\";\r\n for (var index = 0; index < list.length; index++) {\r\n if (ids != \"\") {\r\n ids += \",\";\r\n }\r\n ids += list[index];\r\n }\r\n return ids;\r\n }()\r\n };\r\n\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n const initDocument = {\r\n id: undefined,\r\n type: \"\",\r\n date: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n time: moment(new Date()).format(\"HH:mm\"),\r\n serviceDate: \"\",\r\n dateOfServicesRendered: \"\",\r\n dueDate: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n customer: null,\r\n customerId: null,\r\n discountProcent: \"\",\r\n discountAmount: \"\",\r\n note: \"\",\r\n note2: \"\",\r\n warehouseId: null,\r\n warehouse: null,\r\n warehouse2Id: null,\r\n warehouse2: null,\r\n otherDocumentNumber: \"\",\r\n documentPosition: [],\r\n stornoDocument: null,\r\n stornoDocumentId: null,\r\n paymentDeadlineNumDays: \"8\",\r\n valid: \"\"\r\n };\r\n\r\n for (var x = 0; x < 5; x++) {\r\n initDocument.documentPosition.push({\r\n item: null,\r\n vatRateId: 1,\r\n quantity: 0,\r\n discount: 0,\r\n itemAmountWithoutVat: 0,\r\n totalAmountWithoutVat: 0,\r\n totalAmountWithVat: 0,\r\n grossWeight: 0,\r\n isCustomItem: false,\r\n itemTitle: \"\",\r\n unitId: null,\r\n length: 0,\r\n radius: 0,\r\n cubic: 0\r\n });\r\n }\r\n\r\n const translate = {\r\n header: intl.formatMessage({ id: \"INVOICE.HEADER\" }),\r\n newHeader: intl.formatMessage({ id: \"INVOICE.NEW.HEADER\" }),\r\n editHeader: intl.formatMessage({ id: \"INVOICE.EDIT.HEADER\" }),\r\n copyHeader: intl.formatMessage({ id: \"INVOICE.COPY.HEADER\" }),\r\n viewHeader: intl.formatMessage({ id: \"INVOICE.VIEW.HEADER\" }),\r\n historyHeader: intl.formatMessage({ id: \"INVOICE.HISTORY.HEADER\" })\r\n };\r\n\r\n const gridColumnsVisible = {\r\n id: true,\r\n fiscalCashierBusinessUnitTitle: true,\r\n talkingNumber: true,\r\n type: false,\r\n documentTypeTitle: false,\r\n customerName: true,\r\n dateTime: true,\r\n creatorId: false,\r\n creatorTitle: true,\r\n amountForPayment: true,\r\n endId: false,\r\n endTalkingNumber: false,\r\n documentStornoId: false,\r\n documentStornoTalkingNumber: true,\r\n payments: false,\r\n print: true,\r\n history: true\r\n };\r\n\r\n const formFieldsVisible = {\r\n date: true,\r\n time: false,\r\n serviceDate: false,\r\n dateOfServicesRendered: false,\r\n dueDate: false,\r\n customer: true,\r\n supplier: false,\r\n discountProcent: true,\r\n discountAmount: false,\r\n note: false,\r\n warehouseId: true,\r\n warehouse2Id: false,\r\n otherDocumentNumber: false,\r\n paymentDeadlineNumDays: false,\r\n //result fields\r\n amountForPaymentBase: true,\r\n amountVat: true,\r\n amountForPayment: true,\r\n amountDiscount: true,\r\n };\r\n\r\n const formTranslate = {\r\n date: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n time: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n serviceDate: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dateOfServicesRendered: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dueDate: intl.formatMessage({ id: \"AUTH.GENERAL.DUE_DATE\" }),\r\n customer: intl.formatMessage({ id: \"AUTH.GENERAL.BUYER\" }),\r\n supplier: intl.formatMessage({ id: \"AUTH.GENERAL.SUPPLIER\" }),\r\n discountProcent: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n discountAmount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_AMOUNT\" }),\r\n note: intl.formatMessage({ id: \"AUTH.GENERAL.NOTE\" }),\r\n warehouseId: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE\" }),\r\n warehouse2Id: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE2\" }),\r\n //result fields\r\n amountForPaymentBase: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT_BASE\" }),\r\n amountVat: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_VAT\" }),\r\n amountForPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT\" }),\r\n amountDiscount: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_DISCOUNT\" }),\r\n amountOfPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_OF_PAYMENT\" }),\r\n otherDocumentNumber: intl.formatMessage({ id: \"AUTH.GENERAL.OTHER_DOCUMENT_NUMBER\" }),\r\n paymentDeadlineNumDays: intl.formatMessage({ id: \"AUTH.GENERAL.PAYMENT_DEADLINE_NUM_DAYS\" })\r\n };\r\n\r\n const gridPositionColumnsVisible = {\r\n itemGoods: false,\r\n itemAll: true,\r\n vat: true,\r\n quantity: true,\r\n discount: true,\r\n itemAmountWithoutVat: true,\r\n totalAmountWithoutVat: true,\r\n totalAmountWithVat: true,\r\n grossWeight: false,\r\n stock: false,\r\n isCustomItem: true,\r\n cubic: user.organizationCubic\r\n };\r\n\r\n const gridPositionColumnsTranslate = {\r\n item: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM\" }),\r\n vat: intl.formatMessage({ id: \"AUTH.GENERAL.VAT_RATE\" }),\r\n quantity: intl.formatMessage({ id: \"AUTH.GENERAL.QUANTITY\" }),\r\n discount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n itemAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITH_VAT\" }),\r\n grossWeight: intl.formatMessage({ id: \"AUTH.GENERAL.GROSS_WEIGHT\" }),\r\n stock: intl.formatMessage({ id: \"AUTH.GENERAL.STOCK\" }),\r\n isCustomItem: intl.formatMessage({ id: \"AUTH.GENERAL.IS_CUSTOM_ITEM\" }),\r\n length: intl.formatMessage({ id: \"AUTH.GENERAL.LENGTH\" }),\r\n radius: intl.formatMessage({ id: \"AUTH.GENERAL.RADIUS\" }),\r\n cubic: intl.formatMessage({ id: \"AUTH.GENERAL.CUBIC\" })\r\n };\r\n\r\n const deleteFromTranslate = {\r\n delete: intl.formatMessage({ id: \"INVOICE.DELETE\" }),\r\n areYouSure: intl.formatMessage({ id: \"INVOICE.ARE_YOU_SURE_TO_PERMANTLY_DELETE_THIS_ITEM\" }),\r\n ItemAreDeleting: intl.formatMessage({ id: \"INVOICE.ITEM_ARE_DELETING\" }),\r\n cancel: intl.formatMessage({ id: \"TAKEOVER.CANCEL\" }),\r\n storno: intl.formatMessage({ id: \"TAKEOVER.STORNO\" })\r\n };\r\n\r\n const value = {\r\n documentType,\r\n translate,\r\n gridColumnsVisible,\r\n formFieldsVisible,\r\n gridPositionColumnsVisible,\r\n gridPositionColumnsTranslate,\r\n deleteFromTranslate,\r\n formTranslate,\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initDocument,\r\n readOnly: true,\r\n newDocumentButtonClick: takeoversUIEvents.newDocumentButtonClick,\r\n openEditDocumentDialog: takeoversUIEvents.openEditDocumentDialog,\r\n openDeleteDocumentDialog: takeoversUIEvents.openDeleteDocumentDialog,\r\n printDocumentsDialog: takeoversUIEvents.printDocumentsDialog,\r\n printDocumentDialog: takeoversUIEvents.printDocumentDialog,\r\n printStornoDocumentsDialog: takeoversUIEvents.printStornoDocumentsDialog,\r\n copyDocumentButtonClick: takeoversUIEvents.copyDocumentButtonClick,\r\n historyDocumentDialog: takeoversUIEvents.historyDocumentDialog\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/invoices\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/invoices\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/invoices\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/invoices\");\r\n }}\r\n />\r\n )}\r\n \r\n\r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/invoices\");\r\n }}\r\n />\r\n )}\r\n \r\n\r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/invoices\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/invoices\");\r\n }}\r\n />\r\n )}\r\n \r\n\r\n \r\n {({ history, match }) => (\r\n 0 ? location.state.ids : undefined}\r\n onHide={() => {\r\n history.push(\"/sales/invoices\");\r\n }}\r\n />\r\n )}\r\n \r\n\r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/invoices\");\r\n }}\r\n />\r\n )}\r\n \r\n\r\n { setOpen(false);}} />\r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useState, useCallback } from \"react\";\r\nimport { Route, useLocation } from \"react-router-dom\";\r\nimport { DocumentsLoadingDialog } from \"../../../Document/pages/documents/documents-loading-dialog/DocumentsLoadingDialog\";\r\nimport { DocumentEditDialog } from \"../../../Document/pages/documents/document-edit-dialog/DocumentEditDialog\";\r\nimport { DocumentHistoryDialog } from \"../../../Document/pages/documents/document-history-dialog/DocumentHistoryDialog\";\r\nimport { DocumentDeleteDialog } from \"../../../Document/pages/documents/document-delete-dialog/DocumentDeleteDialog\";\r\nimport { DocumentsPrintDialog } from \"../../../Document/pages/documents/documents-print-dialog/DocumentsPrintDialog\";\r\nimport { DocumentsPrintStornoDialog } from \"../../../Document/pages/documents/documents-print-storno-dialog/DocumentsPrintStornoDialog\";\r\nimport { DocumentsCard } from \"../../../Document/pages/documents/DocumentsCard\";\r\nimport { DocumentsUIProvider } from \"../../../Document/pages/documents/DocumentsUIContext\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport InfoPopup from \"../../../Helpers/InfoPopup\"\r\nimport { useIntl } from \"react-intl\";\r\nimport { isEqual, isFunction } from \"lodash\";\r\nimport moment from 'moment'\r\nimport { hasRoleForFunctionality } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\nimport { useCookies } from \"react-cookie\";\r\n\r\nexport function CreditsPage({ history }) {\r\n const location = useLocation();\r\n const intl = useIntl();\r\n const [cookies, setCookie] = useCookies();\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.documents }),\r\n shallowEqual\r\n );\r\n\r\n useEffect(() => {\r\n if (location.state != undefined && location.state.ids != undefined && location.state.ids.length > 0) {\r\n setTimeout(function () {\r\n history.push(`/sales/credits/send`, location.state);\r\n }, 0);\r\n }\r\n }, []);\r\n\r\n const takeoversUIEvents = {\r\n newDocumentButtonClick: () => {\r\n history.push(\"/sales/credits/new\");\r\n },\r\n openEditDocumentDialog: (id) => {\r\n history.push(`/sales/credits/${id}/edit`);\r\n },\r\n openDeleteDocumentDialog: (id) => {\r\n history.push(`/sales/credits/${id}/delete`);\r\n },\r\n printDocumentsDialog: () => {\r\n history.push(`/sales/credits/printCredits`);\r\n },\r\n printDocumentDialog: (id) => {\r\n history.push(`/sales/credits/${id}/printCredit`);\r\n },\r\n printStornoDocumentsDialog: (id) => {\r\n history.push(`/sales/credits/${id}/printStornoCredits/`);\r\n },\r\n copyDocumentButtonClick: (id) => {\r\n history.push(`/sales/credits/${id}/copy`);\r\n },\r\n historyDocumentDialog: (id) => {\r\n history.push(`/sales/credits/${id}/history`);\r\n }\r\n }\r\n\r\n const documentType = 5;\r\n const { user } = useSelector(state => state.auth);\r\n\r\n const initialFilter = {\r\n documentType: documentType,\r\n query: \"\",\r\n sortOrder: \"desc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25,\r\n startDate: moment(new Date(new Date().setMonth(new Date().getMonth() - 1))).format(\"YYYY-MM-DD\"),\r\n endDate: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n cashierIds: function () {\r\n var list = cookies['filter_dt_' + documentType + '_' + user.id] != undefined ? cookies['filter_dt_' + documentType + '_' + user.id] : [];\r\n var ids = \"\";\r\n for (var index = 0; index < list.length; index++) {\r\n if (ids != \"\") {\r\n ids += \",\";\r\n }\r\n ids += list[index];\r\n }\r\n return ids;\r\n }()\r\n };\r\n\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n const initDocument = {\r\n id: undefined,\r\n type: \"\",\r\n date: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n time: moment(new Date()).format(\"HH:mm\"),\r\n serviceDate: \"\",\r\n dateOfServicesRendered: \"\",\r\n dueDate: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n customer: null,\r\n customerId: null,\r\n discountProcent: \"\",\r\n discountAmount: \"\",\r\n note: \"\",\r\n note2: \"\",\r\n warehouseId: null,\r\n warehouse: null,\r\n warehouse2Id: null,\r\n warehouse2: null,\r\n otherDocumentNumber: \"\",\r\n documentPosition: [],\r\n stornoDocument: null,\r\n stornoDocumentId: null,\r\n paymentDeadlineNumDays: \"8\",\r\n valid: \"\"\r\n };\r\n\r\n for (var x = 0; x < 5; x++) {\r\n initDocument.documentPosition.push({\r\n item: null,\r\n vatRateId: 1,\r\n quantity: 0,\r\n discount: 0,\r\n itemAmountWithoutVat: 0,\r\n totalAmountWithoutVat: 0,\r\n totalAmountWithVat: 0,\r\n grossWeight: 0,\r\n isCustomItem: false,\r\n itemTitle: \"\",\r\n unitId: null,\r\n length: 0,\r\n radius: 0,\r\n cubic: 0\r\n });\r\n }\r\n\r\n const translate = {\r\n header: intl.formatMessage({ id: \"CREDIT.HEADER\" }),\r\n newHeader: intl.formatMessage({ id: \"CREDIT.NEW.HEADER\" }),\r\n editHeader: intl.formatMessage({ id: \"CREDIT.EDIT.HEADER\" }),\r\n copyHeader: intl.formatMessage({ id: \"CREDIT.COPY.HEADER\" }),\r\n viewHeader: intl.formatMessage({ id: \"CREDIT.VIEW.HEADER\" }),\r\n historyHeader: intl.formatMessage({ id: \"CREDIT.HISTORY.HEADER\" })\r\n };\r\n\r\n const gridColumnsVisible = {\r\n id: true,\r\n fiscalCashierBusinessUnitTitle: true,\r\n talkingNumber: true,\r\n type: false,\r\n documentTypeTitle: false,\r\n customerName: true,\r\n dateTime: true,\r\n creatorId: false,\r\n creatorTitle: true,\r\n amountForPayment: true,\r\n endId: false,\r\n endTalkingNumber: false,\r\n documentStornoId: false,\r\n documentStornoTalkingNumber: true,\r\n payments: false,\r\n print: true,\r\n history: true\r\n };\r\n\r\n const formFieldsVisible = {\r\n date: true,\r\n time: false,\r\n serviceDate: false,\r\n dateOfServicesRendered: false,\r\n dueDate: false,\r\n customer: true,\r\n supplier: false,\r\n discountProcent: true,\r\n discountAmount: false,\r\n note: false,\r\n warehouseId: true,\r\n warehouse2Id: false,\r\n otherDocumentNumber: false,\r\n paymentDeadlineNumDays: false,\r\n //result fields\r\n amountForPaymentBase: true,\r\n amountVat: true,\r\n amountForPayment: true,\r\n amountDiscount: true,\r\n };\r\n\r\n const formTranslate = {\r\n date: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n time: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n serviceDate: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dateOfServicesRendered: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dueDate: intl.formatMessage({ id: \"AUTH.GENERAL.DUE_DATE\" }),\r\n customer: intl.formatMessage({ id: \"AUTH.GENERAL.BUYER\" }),\r\n supplier: intl.formatMessage({ id: \"AUTH.GENERAL.SUPPLIER\" }),\r\n discountProcent: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n discountAmount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_AMOUNT\" }),\r\n note: intl.formatMessage({ id: \"AUTH.GENERAL.NOTE\" }),\r\n warehouseId: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE\" }),\r\n warehouse2Id: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE2\" }),\r\n //result fields\r\n amountForPaymentBase: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT_BASE\" }),\r\n amountVat: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_VAT\" }),\r\n amountForPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT\" }),\r\n amountDiscount: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_DISCOUNT\" }),\r\n amountOfPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_OF_PAYMENT\" }),\r\n otherDocumentNumber: intl.formatMessage({ id: \"AUTH.GENERAL.OTHER_DOCUMENT_NUMBER\" }),\r\n paymentDeadlineNumDays: intl.formatMessage({ id: \"AUTH.GENERAL.PAYMENT_DEADLINE_NUM_DAYS\" })\r\n };\r\n\r\n const gridPositionColumnsVisible = {\r\n itemGoods: false,\r\n itemAll: true,\r\n vat: true,\r\n quantity: true,\r\n discount: true,\r\n itemAmountWithoutVat: true,\r\n totalAmountWithoutVat: true,\r\n totalAmountWithVat: true,\r\n grossWeight: false,\r\n stock: false,\r\n isCustomItem: true,\r\n cubic: user.organizationCubic\r\n };\r\n\r\n const gridPositionColumnsTranslate = {\r\n item: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM\" }),\r\n vat: intl.formatMessage({ id: \"AUTH.GENERAL.VAT_RATE\" }),\r\n quantity: intl.formatMessage({ id: \"AUTH.GENERAL.QUANTITY\" }),\r\n discount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n itemAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITH_VAT\" }),\r\n grossWeight: intl.formatMessage({ id: \"AUTH.GENERAL.GROSS_WEIGHT\" }),\r\n stock: intl.formatMessage({ id: \"AUTH.GENERAL.STOCK\" }),\r\n isCustomItem: intl.formatMessage({ id: \"AUTH.GENERAL.IS_CUSTOM_ITEM\" }),\r\n length: intl.formatMessage({ id: \"AUTH.GENERAL.LENGTH\" }),\r\n radius: intl.formatMessage({ id: \"AUTH.GENERAL.RADIUS\" }),\r\n cubic: intl.formatMessage({ id: \"AUTH.GENERAL.CUBIC\" })\r\n };\r\n\r\n const deleteFromTranslate = {\r\n delete: intl.formatMessage({ id: \"CREDIT.DELETE\" }),\r\n areYouSure: intl.formatMessage({ id: \"CREDIT.ARE_YOU_SURE_TO_PERMANTLY_DELETE_THIS_ITEM\" }),\r\n ItemAreDeleting: intl.formatMessage({ id: \"CREDIT.ITEM_ARE_DELETING\" }),\r\n cancel: intl.formatMessage({ id: \"TAKEOVER.CANCEL\" }),\r\n storno: intl.formatMessage({ id: \"TAKEOVER.STORNO\" })\r\n };\r\n\r\n const value = {\r\n documentType,\r\n translate,\r\n gridColumnsVisible,\r\n formFieldsVisible,\r\n gridPositionColumnsVisible,\r\n gridPositionColumnsTranslate,\r\n deleteFromTranslate,\r\n formTranslate,\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initDocument,\r\n readOnly: true,\r\n newDocumentButtonClick: takeoversUIEvents.newDocumentButtonClick,\r\n openEditDocumentDialog: takeoversUIEvents.openEditDocumentDialog,\r\n openDeleteDocumentDialog: takeoversUIEvents.openDeleteDocumentDialog,\r\n printDocumentsDialog: takeoversUIEvents.printDocumentsDialog,\r\n printDocumentDialog: takeoversUIEvents.printDocumentDialog,\r\n printStornoDocumentsDialog: takeoversUIEvents.printStornoDocumentsDialog,\r\n copyDocumentButtonClick: takeoversUIEvents.copyDocumentButtonClick,\r\n historyDocumentDialog: takeoversUIEvents.historyDocumentDialog\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/credits\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/credits\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/credits\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/credits\");\r\n }}\r\n />\r\n )}\r\n \r\n\r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/credits\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/credits\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/credits\");\r\n }}\r\n />\r\n )}\r\n \r\n\r\n \r\n {({ history, match }) => (\r\n 0 ? location.state.ids : undefined}\r\n onHide={() => {\r\n history.push(\"/sales/credits\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/credits\");\r\n }}\r\n />\r\n )}\r\n \r\n { setOpen(false);}} />\r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useState, useCallback } from \"react\";\r\nimport { Route, useLocation } from \"react-router-dom\";\r\nimport { DocumentsLoadingDialog } from \"../../../Document/pages/documents/documents-loading-dialog/DocumentsLoadingDialog\";\r\nimport { DocumentEditDialog } from \"../../../Document/pages/documents/document-edit-dialog/DocumentEditDialog\";\r\nimport { DocumentDeleteDialog } from \"../../../Document/pages/documents/document-delete-dialog/DocumentDeleteDialog\";\r\nimport { DocumentsPrintDialog } from \"../../../Document/pages/documents/documents-print-dialog/DocumentsPrintDialog\";\r\nimport { DocumentsPrintStornoDialog } from \"../../../Document/pages/documents/documents-print-storno-dialog/DocumentsPrintStornoDialog\";\r\nimport { DocumentsCard } from \"../../../Document/pages/documents/DocumentsCard\";\r\nimport { DocumentsUIProvider } from \"../../../Document/pages/documents/DocumentsUIContext\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport InfoPopup from \"../../../Helpers/InfoPopup\"\r\nimport { useIntl } from \"react-intl\";\r\nimport { isEqual, isFunction } from \"lodash\";\r\nimport moment from 'moment'\r\nimport { hasRoleForFunctionality } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\nimport { useCookies } from \"react-cookie\";\r\n\r\nexport function ExpensesPage({ history }) {\r\n const location = useLocation();\r\n const intl = useIntl();\r\n const [cookies, setCookie] = useCookies();\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.documents }),\r\n shallowEqual\r\n );\r\n\r\n useEffect(() => {\r\n if (location.state != undefined && location.state.ids != undefined && location.state.ids.length > 0) {\r\n setTimeout(function () {\r\n history.push(`/sales/expenses/send`, location.state);\r\n }, 0);\r\n }\r\n }, []);\r\n\r\n const takeoversUIEvents = {\r\n newDocumentButtonClick: () => {\r\n history.push(\"/sales/expenses/new\");\r\n },\r\n openEditDocumentDialog: (id) => {\r\n history.push(`/sales/expenses/${id}/edit`);\r\n },\r\n openDeleteDocumentDialog: (id) => {\r\n history.push(`/sales/expenses/${id}/delete`);\r\n },\r\n printDocumentsDialog: () => {\r\n history.push(`/sales/expenses/printExpenses`);\r\n },\r\n printDocumentDialog: (id) => {\r\n history.push(`/sales/expenses/${id}/printExpense`);\r\n },\r\n printStornoDocumentsDialog: (id) => {\r\n history.push(`/sales/expenses/${id}/printStornoExpenses/`);\r\n },\r\n copyDocumentButtonClick: (id) => {\r\n history.push(`/sales/expenses/${id}/copy`);\r\n }\r\n }\r\n\r\n const documentType = 9;\r\n const { user } = useSelector(state => state.auth);\r\n\r\n const initialFilter = {\r\n documentType: documentType,\r\n query: \"\",\r\n sortOrder: \"desc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25,\r\n startDate: moment(new Date(new Date().setMonth(new Date().getMonth() - 1))).format(\"YYYY-MM-DD\"),\r\n endDate: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n cashierIds: function () {\r\n var list = cookies['filter_dt_' + documentType + '_' + user.id] != undefined ? cookies['filter_dt_' + documentType + '_' + user.id] : [];\r\n var ids = \"\";\r\n for (var index = 0; index < list.length; index++) {\r\n if (ids != \"\") {\r\n ids += \",\";\r\n }\r\n ids += list[index];\r\n }\r\n return ids;\r\n }()\r\n };\r\n\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n const initDocument = {\r\n id: undefined,\r\n type: \"\",\r\n date: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n time: moment(new Date()).format(\"HH:mm\"),\r\n serviceDate: \"\",\r\n dateOfServicesRendered: \"\",\r\n dueDate: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n customer: null,\r\n customerId: null,\r\n discountProcent: \"\",\r\n discountAmount: \"\",\r\n note: \"\",\r\n note2: \"\",\r\n warehouseId: null,\r\n warehouse: null,\r\n warehouse2Id: null,\r\n warehouse2: null,\r\n otherDocumentNumber: \"\",\r\n documentPosition: [],\r\n stornoDocument: null,\r\n stornoDocumentId: null,\r\n paymentDeadlineNumDays: \"8\",\r\n valid: \"\"\r\n };\r\n\r\n for (var x = 0; x < 5; x++) {\r\n initDocument.documentPosition.push({\r\n item: null,\r\n vatRateId: 1,\r\n quantity: 0,\r\n discount: 0,\r\n itemAmountWithoutVat: 0,\r\n totalAmountWithoutVat: 0,\r\n totalAmountWithVat: 0,\r\n grossWeight: 0,\r\n isCustomItem: false,\r\n itemTitle: \"\",\r\n unitId: null,\r\n length: 0,\r\n radius: 0,\r\n cubic: 0\r\n });\r\n }\r\n\r\n const translate = {\r\n header: intl.formatMessage({ id: \"EXPENSE.HEADER\" }),\r\n newHeader: intl.formatMessage({ id: \"EXPENSE.NEW.HEADER\" }),\r\n editHeader: intl.formatMessage({ id: \"EXPENSE.EDIT.HEADER\" }),\r\n copyHeader: intl.formatMessage({ id: \"EXPENSE.COPY.HEADER\" }),\r\n viewHeader: intl.formatMessage({ id: \"EXPENSE.VIEW.HEADER\" }),\r\n };\r\n\r\n const gridColumnsVisible = {\r\n id: true,\r\n fiscalCashierBusinessUnitTitle: true,\r\n talkingNumber: true,\r\n type: false,\r\n documentTypeTitle: false,\r\n customerName: false,\r\n dateTime: true,\r\n creatorId: false,\r\n creatorTitle: true,\r\n amountForPayment: false,\r\n endId: false,\r\n endTalkingNumber: false,\r\n documentStornoId: false,\r\n documentStornoTalkingNumber: false,\r\n payments: false,\r\n print: true\r\n };\r\n\r\n const formFieldsVisible = {\r\n date: true,\r\n time: false,\r\n serviceDate: false,\r\n dateOfServicesRendered: false,\r\n dueDate: false,\r\n customer: true,\r\n supplier: false,\r\n discountProcent: true,\r\n discountAmount: false,\r\n note: false,\r\n warehouseId: true,\r\n warehouse2Id: false,\r\n otherDocumentNumber: false,\r\n paymentDeadlineNumDays: false,\r\n //result fields\r\n amountForPaymentBase: true,\r\n amountVat: true,\r\n amountForPayment: true,\r\n amountDiscount: true,\r\n };\r\n\r\n const formTranslate = {\r\n date: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n time: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n serviceDate: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dateOfServicesRendered: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dueDate: intl.formatMessage({ id: \"AUTH.GENERAL.DUE_DATE\" }),\r\n customer: intl.formatMessage({ id: \"AUTH.GENERAL.BUYER\" }),\r\n supplier: intl.formatMessage({ id: \"AUTH.GENERAL.SUPPLIER\" }),\r\n discountProcent: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n discountAmount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_AMOUNT\" }),\r\n note: intl.formatMessage({ id: \"AUTH.GENERAL.NOTE\" }),\r\n warehouseId: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE\" }),\r\n warehouse2Id: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE2\" }),\r\n //result fields\r\n amountForPaymentBase: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT_BASE\" }),\r\n amountVat: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_VAT\" }),\r\n amountForPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT\" }),\r\n amountDiscount: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_DISCOUNT\" }),\r\n amountOfPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_OF_PAYMENT\" }),\r\n otherDocumentNumber: intl.formatMessage({ id: \"AUTH.GENERAL.OTHER_DOCUMENT_NUMBER\" }),\r\n paymentDeadlineNumDays: intl.formatMessage({ id: \"AUTH.GENERAL.PAYMENT_DEADLINE_NUM_DAYS\" })\r\n };\r\n\r\n const gridPositionColumnsVisible = {\r\n itemGoods: false,\r\n itemAll: true,\r\n vat: true,\r\n quantity: true,\r\n discount: true,\r\n itemAmountWithoutVat: true,\r\n totalAmountWithoutVat: true,\r\n totalAmountWithVat: true,\r\n grossWeight: false,\r\n stock: false,\r\n isCustomItem: true,\r\n cubic: user.organizationCubic\r\n };\r\n\r\n const gridPositionColumnsTranslate = {\r\n item: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM\" }),\r\n vat: intl.formatMessage({ id: \"AUTH.GENERAL.VAT_RATE\" }),\r\n quantity: intl.formatMessage({ id: \"AUTH.GENERAL.QUANTITY\" }),\r\n discount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n itemAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITH_VAT\" }),\r\n grossWeight: intl.formatMessage({ id: \"AUTH.GENERAL.GROSS_WEIGHT\" }),\r\n stock: intl.formatMessage({ id: \"AUTH.GENERAL.STOCK\" }),\r\n isCustomItem: intl.formatMessage({ id: \"AUTH.GENERAL.IS_CUSTOM_ITEM\" }),\r\n length: intl.formatMessage({ id: \"AUTH.GENERAL.LENGTH\" }),\r\n radius: intl.formatMessage({ id: \"AUTH.GENERAL.RADIUS\" }),\r\n cubic: intl.formatMessage({ id: \"AUTH.GENERAL.CUBIC\" })\r\n };\r\n\r\n const deleteFromTranslate = {\r\n delete: intl.formatMessage({ id: \"EXPENSE.DELETE\" }),\r\n areYouSure: intl.formatMessage({ id: \"EXPENSE.ARE_YOU_SURE_TO_PERMANTLY_DELETE_THIS_ITEM\" }),\r\n ItemAreDeleting: intl.formatMessage({ id: \"EXPENSE.ITEM_ARE_DELETING\" }),\r\n cancel: intl.formatMessage({ id: \"TAKEOVER.CANCEL\" }),\r\n storno: intl.formatMessage({ id: \"TAKEOVER.STORNO\" })\r\n };\r\n\r\n const value = {\r\n documentType,\r\n translate,\r\n gridColumnsVisible,\r\n formFieldsVisible,\r\n gridPositionColumnsVisible,\r\n gridPositionColumnsTranslate,\r\n deleteFromTranslate,\r\n formTranslate,\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initDocument,\r\n readOnly: true,\r\n newDocumentButtonClick: takeoversUIEvents.newDocumentButtonClick,\r\n openEditDocumentDialog: takeoversUIEvents.openEditDocumentDialog,\r\n openDeleteDocumentDialog: takeoversUIEvents.openDeleteDocumentDialog,\r\n printDocumentsDialog: takeoversUIEvents.printDocumentsDialog,\r\n printDocumentDialog: takeoversUIEvents.printDocumentDialog,\r\n printStornoDocumentsDialog: takeoversUIEvents.printStornoDocumentsDialog,\r\n copyDocumentButtonClick: takeoversUIEvents.copyDocumentButtonClick\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/expenses\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/expenses\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/expenses\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/expenses\");\r\n }}\r\n />\r\n )}\r\n \r\n\r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/expenses\");\r\n }}\r\n />\r\n )}\r\n \r\n\r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/expenses\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/expenses\");\r\n }}\r\n />\r\n )}\r\n \r\n\r\n \r\n {({ history, match }) => (\r\n 0 ? location.state.ids : undefined}\r\n onHide={() => {\r\n history.push(\"/sales/expenses\");\r\n }}\r\n />\r\n )}\r\n \r\n\r\n { setOpen(false);}} />\r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useState, useCallback } from \"react\";\r\nimport { Route, useLocation } from \"react-router-dom\";\r\nimport { DocumentsLoadingDialog } from \"../../../Document/pages/documents/documents-loading-dialog/DocumentsLoadingDialog\";\r\nimport { DocumentEditDialog } from \"../../../Document/pages/documents/document-edit-dialog/DocumentEditDialog\";\r\nimport { DocumentDeleteDialog } from \"../../../Document/pages/documents/document-delete-dialog/DocumentDeleteDialog\";\r\nimport { DocumentsPrintDialog } from \"../../../Document/pages/documents/documents-print-dialog/DocumentsPrintDialog\";\r\nimport { DocumentsPrintStornoDialog } from \"../../../Document/pages/documents/documents-print-storno-dialog/DocumentsPrintStornoDialog\";\r\nimport { DocumentsCard } from \"../../../Document/pages/documents/DocumentsCard\";\r\nimport { DocumentsUIProvider } from \"../../../Document/pages/documents/DocumentsUIContext\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport InfoPopup from \"../../../Helpers/InfoPopup\"\r\nimport { useIntl } from \"react-intl\";\r\nimport { isEqual, isFunction } from \"lodash\";\r\nimport moment from 'moment'\r\nimport { hasRoleForFunctionality } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\nimport { useCookies } from \"react-cookie\";\r\n\r\nexport function ReceiptsPage({ history }) {\r\n const location = useLocation();\r\n const intl = useIntl();\r\n const [cookies, setCookie] = useCookies();\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.documents }),\r\n shallowEqual\r\n );\r\n\r\n useEffect(() => {\r\n if (location.state != undefined && location.state.ids != undefined && location.state.ids.length > 0) {\r\n setTimeout(function () {\r\n history.push(`/sales/receipts/send`, location.state);\r\n }, 0);\r\n }\r\n }, []);\r\n\r\n const takeoversUIEvents = {\r\n newDocumentButtonClick: () => {\r\n history.push(\"/sales/receipts/new\");\r\n },\r\n openEditDocumentDialog: (id) => {\r\n history.push(`/sales/receipts/${id}/edit`);\r\n },\r\n openDeleteDocumentDialog: (id) => {\r\n history.push(`/sales/receipts/${id}/delete`);\r\n },\r\n printDocumentsDialog: () => {\r\n history.push(`/sales/receipts/printReceipts`);\r\n },\r\n printDocumentDialog: (id) => {\r\n history.push(`/sales/receipts/${id}/printReceipt`);\r\n },\r\n printStornoDocumentsDialog: (id) => {\r\n history.push(`/sales/receipts/${id}/printStornoReceipts/`);\r\n },\r\n copyDocumentButtonClick: (id) => {\r\n history.push(`/sales/receipts/${id}/copy`);\r\n }\r\n }\r\n\r\n const documentType = 10;\r\n const { user } = useSelector(state => state.auth);\r\n\r\n const initialFilter = {\r\n documentType: documentType,\r\n query: \"\",\r\n sortOrder: \"desc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25,\r\n startDate: moment(new Date(new Date().setMonth(new Date().getMonth() - 1))).format(\"YYYY-MM-DD\"),\r\n endDate: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n cashierIds: function () {\r\n var list = cookies['filter_dt_' + documentType + '_' + user.id] != undefined ? cookies['filter_dt_' + documentType + '_' + user.id] : [];\r\n var ids = \"\";\r\n for (var index = 0; index < list.length; index++) {\r\n if (ids != \"\") {\r\n ids += \",\";\r\n }\r\n ids += list[index];\r\n }\r\n return ids;\r\n }()\r\n };\r\n\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n const initDocument = {\r\n id: undefined,\r\n type: \"\",\r\n date: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n time: moment(new Date()).format(\"HH:mm\"),\r\n serviceDate: \"\",\r\n dateOfServicesRendered: \"\",\r\n dueDate: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n customer: null,\r\n customerId: null,\r\n discountProcent: \"\",\r\n discountAmount: \"\",\r\n note: \"\",\r\n note2: \"\",\r\n warehouseId: null,\r\n warehouse: null,\r\n warehouse2Id: null,\r\n warehouse2: null,\r\n otherDocumentNumber: \"\",\r\n documentPosition: [],\r\n stornoDocument: null,\r\n stornoDocumentId: null,\r\n paymentDeadlineNumDays: \"8\",\r\n valid: \"\"\r\n };\r\n\r\n for (var x = 0; x < 5; x++) {\r\n initDocument.documentPosition.push({\r\n item: null,\r\n vatRateId: 1,\r\n quantity: 0,\r\n discount: 0,\r\n itemAmountWithoutVat: 0,\r\n totalAmountWithoutVat: 0,\r\n totalAmountWithVat: 0,\r\n grossWeight: 0,\r\n isCustomItem: false,\r\n itemTitle: \"\",\r\n unitId: null,\r\n length: 0,\r\n radius: 0,\r\n cubic: 0\r\n });\r\n }\r\n\r\n const translate = {\r\n header: intl.formatMessage({ id: \"RECEIPT.HEADER\" }),\r\n newHeader: intl.formatMessage({ id: \"RECEIPT.NEW.HEADER\" }),\r\n editHeader: intl.formatMessage({ id: \"RECEIPT.EDIT.HEADER\" }),\r\n copyHeader: intl.formatMessage({ id: \"RECEIPT.COPY.HEADER\" }),\r\n viewHeader: intl.formatMessage({ id: \"RECEIPT.VIEW.HEADER\" }),\r\n };\r\n\r\n const gridColumnsVisible = {\r\n id: true,\r\n fiscalCashierBusinessUnitTitle: true,\r\n talkingNumber: true,\r\n type: false,\r\n documentTypeTitle: false,\r\n customerName: false,\r\n dateTime: true,\r\n creatorId: false,\r\n creatorTitle: true,\r\n amountForPayment: false,\r\n endId: false,\r\n endTalkingNumber: false,\r\n documentStornoId: false,\r\n documentStornoTalkingNumber: false,\r\n payments: false,\r\n print: true\r\n };\r\n\r\n const formFieldsVisible = {\r\n date: true,\r\n time: false,\r\n serviceDate: false,\r\n dateOfServicesRendered: false,\r\n dueDate: false,\r\n customer: true,\r\n supplier: false,\r\n discountProcent: true,\r\n discountAmount: false,\r\n note: false,\r\n warehouseId: true,\r\n warehouse2Id: false,\r\n otherDocumentNumber: false,\r\n paymentDeadlineNumDays: false,\r\n //result fields\r\n amountForPaymentBase: true,\r\n amountVat: true,\r\n amountForPayment: true,\r\n amountDiscount: true,\r\n };\r\n\r\n const formTranslate = {\r\n date: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n time: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n serviceDate: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dateOfServicesRendered: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dueDate: intl.formatMessage({ id: \"AUTH.GENERAL.DUE_DATE\" }),\r\n customer: intl.formatMessage({ id: \"AUTH.GENERAL.BUYER\" }),\r\n supplier: intl.formatMessage({ id: \"AUTH.GENERAL.SUPPLIER\" }),\r\n discountProcent: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n discountAmount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_AMOUNT\" }),\r\n note: intl.formatMessage({ id: \"AUTH.GENERAL.NOTE\" }),\r\n warehouseId: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE\" }),\r\n warehouse2Id: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE2\" }),\r\n //result fields\r\n amountForPaymentBase: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT_BASE\" }),\r\n amountVat: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_VAT\" }),\r\n amountForPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT\" }),\r\n amountDiscount: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_DISCOUNT\" }),\r\n amountOfPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_OF_PAYMENT\" }),\r\n otherDocumentNumber: intl.formatMessage({ id: \"AUTH.GENERAL.OTHER_DOCUMENT_NUMBER\" }),\r\n paymentDeadlineNumDays: intl.formatMessage({ id: \"AUTH.GENERAL.PAYMENT_DEADLINE_NUM_DAYS\" })\r\n };\r\n\r\n const gridPositionColumnsVisible = {\r\n itemGoods: false,\r\n itemAll: true,\r\n vat: true,\r\n quantity: true,\r\n discount: true,\r\n itemAmountWithoutVat: true,\r\n totalAmountWithoutVat: true,\r\n totalAmountWithVat: true,\r\n grossWeight: false,\r\n stock: false,\r\n isCustomItem: true,\r\n cubic: user.organizationCubic\r\n };\r\n\r\n const gridPositionColumnsTranslate = {\r\n item: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM\" }),\r\n vat: intl.formatMessage({ id: \"AUTH.GENERAL.VAT_RATE\" }),\r\n quantity: intl.formatMessage({ id: \"AUTH.GENERAL.QUANTITY\" }),\r\n discount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n itemAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITH_VAT\" }),\r\n grossWeight: intl.formatMessage({ id: \"AUTH.GENERAL.GROSS_WEIGHT\" }),\r\n stock: intl.formatMessage({ id: \"AUTH.GENERAL.STOCK\" }),\r\n isCustomItem: intl.formatMessage({ id: \"AUTH.GENERAL.IS_CUSTOM_ITEM\" }),\r\n length: intl.formatMessage({ id: \"AUTH.GENERAL.LENGTH\" }),\r\n radius: intl.formatMessage({ id: \"AUTH.GENERAL.RADIUS\" }),\r\n cubic: intl.formatMessage({ id: \"AUTH.GENERAL.CUBIC\" })\r\n };\r\n\r\n const deleteFromTranslate = {\r\n delete: intl.formatMessage({ id: \"RECEIPT.DELETE\" }),\r\n areYouSure: intl.formatMessage({ id: \"RECEIPT.ARE_YOU_SURE_TO_PERMANTLY_DELETE_THIS_ITEM\" }),\r\n ItemAreDeleting: intl.formatMessage({ id: \"RECEIPT.ITEM_ARE_DELETING\" }),\r\n cancel: intl.formatMessage({ id: \"TAKEOVER.CANCEL\" }),\r\n storno: intl.formatMessage({ id: \"TAKEOVER.STORNO\" })\r\n };\r\n\r\n const value = {\r\n documentType,\r\n translate,\r\n gridColumnsVisible,\r\n formFieldsVisible,\r\n gridPositionColumnsVisible,\r\n gridPositionColumnsTranslate,\r\n deleteFromTranslate,\r\n formTranslate,\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initDocument,\r\n readOnly: true,\r\n newDocumentButtonClick: takeoversUIEvents.newDocumentButtonClick,\r\n openEditDocumentDialog: takeoversUIEvents.openEditDocumentDialog,\r\n openDeleteDocumentDialog: takeoversUIEvents.openDeleteDocumentDialog,\r\n printDocumentsDialog: takeoversUIEvents.printDocumentsDialog,\r\n printDocumentDialog: takeoversUIEvents.printDocumentDialog,\r\n printStornoDocumentsDialog: takeoversUIEvents.printStornoDocumentsDialog,\r\n copyDocumentButtonClick: takeoversUIEvents.copyDocumentButtonClick\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/receipts\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/receipts\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/receipts\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/receipts\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/receipts\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/receipts\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/receipts\");\r\n }}\r\n />\r\n )}\r\n \r\n\r\n \r\n {({ history, match }) => (\r\n 0 ? location.state.ids : undefined}\r\n onHide={() => {\r\n history.push(\"/sales/receipts\");\r\n }}\r\n />\r\n )}\r\n \r\n\r\n { setOpen(false);}} />\r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useState, useCallback } from \"react\";\r\nimport { Route, useLocation } from \"react-router-dom\";\r\nimport { DocumentsLoadingDialog } from \"../../../Document/pages/documents/documents-loading-dialog/DocumentsLoadingDialog\";\r\nimport { DocumentEditDialog } from \"../../../Document/pages/documents/document-edit-dialog/DocumentEditDialog\";\r\nimport { DocumentDeleteDialog } from \"../../../Document/pages/documents/document-delete-dialog/DocumentDeleteDialog\";\r\nimport { DocumentsPrintDialog } from \"../../../Document/pages/documents/documents-print-dialog/DocumentsPrintDialog\";\r\nimport { DocumentsPrintStornoDialog } from \"../../../Document/pages/documents/documents-print-storno-dialog/DocumentsPrintStornoDialog\";\r\nimport { DocumentsCard } from \"../../../Document/pages/documents/DocumentsCard\";\r\nimport { DocumentsUIProvider } from \"../../../Document/pages/documents/DocumentsUIContext\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport InfoPopup from \"../../../Helpers/InfoPopup\"\r\nimport { useIntl } from \"react-intl\";\r\nimport { isEqual, isFunction } from \"lodash\";\r\nimport moment from 'moment'\r\nimport { hasRoleForFunctionality } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\nimport { useCookies } from \"react-cookie\";\r\n\r\nexport function DeliveryNoteInvoicesPage({ history }) {\r\n const location = useLocation();\r\n const intl = useIntl();\r\n const [cookies, setCookie] = useCookies();\r\n const [message, setMessage] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.documents }),\r\n shallowEqual\r\n );\r\n\r\n useEffect(() => {\r\n if (location.state != undefined && location.state.ids != undefined && location.state.ids.length > 0) {\r\n setTimeout(function () {\r\n history.push(`/sales/delivery_note_invoices/send`, location.state);\r\n }, 0);\r\n }\r\n }, []);\r\n\r\n const takeoversUIEvents = {\r\n newDocumentButtonClick: () => {\r\n history.push(\"/sales/delivery_note_invoices/new\");\r\n },\r\n openEditDocumentDialog: (id) => {\r\n history.push(`/sales/delivery_note_invoices/${id}/edit`);\r\n },\r\n openDeleteDocumentDialog: (id) => {\r\n history.push(`/sales/delivery_note_invoices/${id}/delete`);\r\n },\r\n printDocumentsDialog: () => {\r\n history.push(`/sales/delivery_note_invoices/printDeliveryNoteInvoices`);\r\n },\r\n printStornoDocumentsDialog: (id) => {\r\n history.push(`/sales/delivery_note_invoices/${id}/printStornoDeliveryNoteInvoices/`);\r\n },\r\n copyDocumentButtonClick: (id) => {\r\n history.push(`/sales/delivery_note_invoices/${id}/copy`);\r\n }\r\n }\r\n\r\n const documentType = 7;\r\n const { user } = useSelector(state => state.auth);\r\n\r\n const initialFilter = {\r\n documentType: documentType,\r\n query: \"\",\r\n sortOrder: \"desc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25,\r\n startDate: moment(new Date(new Date().setMonth(new Date().getMonth() - 1))).format(\"YYYY-MM-DD\"),\r\n endDate: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n };\r\n\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n const initDocument = {\r\n id: undefined,\r\n type: \"\",\r\n date: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n time: moment(new Date()).format(\"HH:mm\"),\r\n serviceDate: \"\",\r\n dateOfServicesRendered: \"\",\r\n dueDate: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n customer: null,\r\n customerId: null,\r\n discountProcent: \"\",\r\n discountAmount: \"\",\r\n note: \"\",\r\n note2: \"\",\r\n warehouseId: null,\r\n warehouse: null,\r\n warehouse2Id: null,\r\n warehouse2: null,\r\n otherDocumentNumber: \"\",\r\n documentPosition: [],\r\n stornoDocument: null,\r\n stornoDocumentId: null,\r\n paymentDeadlineNumDays: \"8\",\r\n valid: \"\"\r\n };\r\n\r\n for (var x = 0; x < 5; x++) {\r\n initDocument.documentPosition.push({\r\n item: null,\r\n vatRateId: 1,\r\n quantity: 0,\r\n discount: 0,\r\n itemAmountWithoutVat: 0,\r\n totalAmountWithoutVat: 0,\r\n totalAmountWithVat: 0,\r\n grossWeight: 0,\r\n isCustomItem: false,\r\n itemTitle: \"\",\r\n unitId: null,\r\n length: 0,\r\n radius: 0,\r\n cubic: 0\r\n });\r\n }\r\n\r\n const translate = {\r\n header: intl.formatMessage({ id: \"DELIVERY_NOTE_INVOICES.HEADER\" }),\r\n newHeader: intl.formatMessage({ id: \"DELIVERY_NOTE_INVOICES.NEW.HEADER\" }),\r\n editHeader: intl.formatMessage({ id: \"DELIVERY_NOTE_INVOICES.EDIT.HEADER\" }),\r\n copyHeader: intl.formatMessage({ id: \"DELIVERY_NOTE_INVOICES.COPY.HEADER\" }),\r\n viewHeader: intl.formatMessage({ id: \"DELIVERY_NOTE_INVOICES.VIEW.HEADER\" }),\r\n };\r\n\r\n const gridColumnsVisible = {\r\n id: true,\r\n fiscalCashierBusinessUnitTitle: false,\r\n talkingNumber: true,\r\n type: false,\r\n documentTypeTitle: false,\r\n customerName: true,\r\n date: true,\r\n creatorId: false,\r\n creatorTitle: true,\r\n amountForPayment: true,\r\n endId: false,\r\n endTalkingNumber: false,\r\n documentStornoId: false,\r\n documentStornoTalkingNumber: true,\r\n payments: false\r\n };\r\n\r\n const formFieldsVisible = {\r\n date: true,\r\n time: false,\r\n serviceDate: false,\r\n dateOfServicesRendered: false,\r\n dueDate: false,\r\n customer: true,\r\n supplier: false,\r\n discountProcent: true,\r\n discountAmount: false,\r\n note: false,\r\n warehouseId: true,\r\n warehouse2Id: false,\r\n otherDocumentNumber: false,\r\n paymentDeadlineNumDays: false,\r\n //result fields\r\n amountForPaymentBase: true,\r\n amountVat: true,\r\n amountForPayment: true,\r\n amountDiscount: true,\r\n };\r\n\r\n const formTranslate = {\r\n date: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n time: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n serviceDate: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dateOfServicesRendered: intl.formatMessage({ id: \"AUTH.GENERAL.SERVICE_DATE\" }),\r\n dueDate: intl.formatMessage({ id: \"AUTH.GENERAL.DUE_DATE\" }),\r\n customer: intl.formatMessage({ id: \"AUTH.GENERAL.BUYER\" }),\r\n supplier: intl.formatMessage({ id: \"AUTH.GENERAL.SUPPLIER\" }),\r\n discountProcent: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n discountAmount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_AMOUNT\" }),\r\n note: intl.formatMessage({ id: \"AUTH.GENERAL.NOTE\" }),\r\n warehouseId: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE\" }),\r\n warehouse2Id: intl.formatMessage({ id: \"AUTH.GENERAL.WAREHOUSE2\" }),\r\n //result fields\r\n amountForPaymentBase: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT_BASE\" }),\r\n amountVat: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_VAT\" }),\r\n amountForPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT\" }),\r\n amountDiscount: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_DISCOUNT\" }),\r\n amountOfPayment: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_OF_PAYMENT\" }),\r\n otherDocumentNumber: intl.formatMessage({ id: \"AUTH.GENERAL.OTHER_DOCUMENT_NUMBER\" }),\r\n paymentDeadlineNumDays: intl.formatMessage({ id: \"AUTH.GENERAL.PAYMENT_DEADLINE_NUM_DAYS\" })\r\n };\r\n\r\n const gridPositionColumnsVisible = {\r\n itemGoods: false,\r\n itemAll: true,\r\n vat: true,\r\n quantity: true,\r\n discount: true,\r\n itemAmountWithoutVat: true,\r\n totalAmountWithoutVat: true,\r\n totalAmountWithVat: true,\r\n grossWeight: false,\r\n stock: false,\r\n isCustomItem: true,\r\n cubic: user.organizationCubic\r\n };\r\n\r\n const gridPositionColumnsTranslate = {\r\n item: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM\" }),\r\n vat: intl.formatMessage({ id: \"AUTH.GENERAL.VAT_RATE\" }),\r\n quantity: intl.formatMessage({ id: \"AUTH.GENERAL.QUANTITY\" }),\r\n discount: intl.formatMessage({ id: \"AUTH.GENERAL.DISCOUNT_PROCENT\" }),\r\n itemAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.ITEM_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithoutVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITHOUT_VAT\" }),\r\n totalAmountWithVat: intl.formatMessage({ id: \"AUTH.GENERAL.TOTAL_AMOUNT_WITH_VAT\" }),\r\n grossWeight: intl.formatMessage({ id: \"AUTH.GENERAL.GROSS_WEIGHT\" }),\r\n stock: intl.formatMessage({ id: \"AUTH.GENERAL.STOCK\" }),\r\n isCustomItem: intl.formatMessage({ id: \"AUTH.GENERAL.IS_CUSTOM_ITEM\" }),\r\n length: intl.formatMessage({ id: \"AUTH.GENERAL.LENGTH\" }),\r\n radius: intl.formatMessage({ id: \"AUTH.GENERAL.RADIUS\" }),\r\n cubic: intl.formatMessage({ id: \"AUTH.GENERAL.CUBIC\" })\r\n };\r\n\r\n const deleteFromTranslate = {\r\n delete: intl.formatMessage({ id: \"DELIVERY_NOTE_INVOICES.DELETE\" }),\r\n areYouSure: intl.formatMessage({ id: \"DELIVERY_NOTE_INVOICES.ARE_YOU_SURE_TO_PERMANTLY_DELETE_THIS_ITEM\" }),\r\n ItemAreDeleting: intl.formatMessage({ id: \"DELIVERY_NOTE_INVOICES.ITEM_ARE_DELETING\" }),\r\n cancel: intl.formatMessage({ id: \"TAKEOVER.CANCEL\" }),\r\n storno: intl.formatMessage({ id: \"TAKEOVER.STORNO\" })\r\n };\r\n\r\n const value = {\r\n documentType,\r\n translate,\r\n gridColumnsVisible,\r\n formFieldsVisible,\r\n gridPositionColumnsVisible,\r\n gridPositionColumnsTranslate,\r\n deleteFromTranslate,\r\n formTranslate,\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initDocument,\r\n readOnly: !hasRoleForFunctionality(user, [UserFunctionalityE.UrediDobavniceRacune]),\r\n newDocumentButtonClick: takeoversUIEvents.newDocumentButtonClick,\r\n openEditDocumentDialog: takeoversUIEvents.openEditDocumentDialog,\r\n openDeleteDocumentDialog: takeoversUIEvents.openDeleteDocumentDialog,\r\n printDocumentsDialog: takeoversUIEvents.printDocumentsDialog,\r\n printStornoDocumentsDialog: takeoversUIEvents.printStornoDocumentsDialog,\r\n copyDocumentButtonClick: takeoversUIEvents.copyDocumentButtonClick\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/delivery_note_invoices\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/delivery_note_invoices\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/delivery_note_invoices\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/delivery_note_invoices\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/delivery_note_invoices\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/delivery_note_invoices\");\r\n }}\r\n />\r\n )}\r\n \r\n\r\n \r\n {({ history, match }) => (\r\n 0 ? location.state.ids : undefined}\r\n onHide={() => {\r\n history.push(\"/sales/delivery_note_invoices\");\r\n }}\r\n />\r\n )}\r\n \r\n\r\n { setOpen(false);}} />\r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { LoadingDialog } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function EndsLoadingDialog() {\r\n const intl = useIntl();\r\n // Ends Redux state\r\n const { isLoading } = useSelector(\r\n (state) => ({ isLoading: state.ends.listLoading }),\r\n shallowEqual\r\n );\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [isLoading]);\r\n return ;\r\n}\r\n","import React, { createContext, useContext, useState, useCallback } from \"react\";\r\nimport { useCookies } from \"react-cookie\";\r\nimport {isEqual, isFunction} from \"lodash\";\r\nimport moment from 'moment'\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\n\r\nconst EndsUIContext = createContext();\r\n\r\nexport function useEndsUIContext() {\r\n return useContext(EndsUIContext);\r\n}\r\n\r\nexport const EndsUIConsumer = EndsUIContext.Consumer;\r\n\r\nexport function EndsUIProvider({ endsUIEvents, children }) {\r\n const [cookies, setCookie] = useCookies();\r\n const { user } = useSelector(state => state.auth);\r\n\r\n const initialFilter = {\r\n status: 1,\r\n query: \"\",\r\n sortOrder: \"asc\", // asc||desc\r\n sortField: \"id\",\r\n pageNumber: 1,\r\n pageSize: 25,\r\n startDate: moment(new Date(new Date().setMonth(new Date().getMonth() - 1))).format(\"YYYY-MM-DD\"),\r\n endDate: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n cashierIds: function () {\r\n var list = cookies['filter_dt_ends' + '_' + user.id] != undefined ? cookies['filter_dt_ends' + '_' + user.id] : [];\r\n var ids = \"\";\r\n for (var index = 0; index < list.length; index++) {\r\n if (ids != \"\") {\r\n ids += \",\";\r\n }\r\n ids += list[index];\r\n }\r\n return ids;\r\n }()\r\n };\r\n\r\n\r\n\r\n const [queryParams, setQueryParamsBase] = useState(initialFilter);\r\n const [ids, setIds] = useState([]);\r\n const setQueryParams = useCallback(nextQueryParams => {\r\n setQueryParamsBase(prevQueryParams => {\r\n if (isFunction(nextQueryParams)) {\r\n nextQueryParams = nextQueryParams(prevQueryParams);\r\n }\r\n\r\n if (isEqual(prevQueryParams, nextQueryParams)) {\r\n return prevQueryParams;\r\n }\r\n\r\n return nextQueryParams;\r\n });\r\n }, []);\r\n\r\n const initEnd = {\r\n id: undefined,\r\n taxDuty: false,\r\n taxNumber: \"\",\r\n name: \"\",\r\n address: \"\",\r\n postCode: null,\r\n postTitle: null,\r\n isForeigner: false,\r\n useWholesalePricelist: false,\r\n withoutVatExport: false,\r\n discount: 0,\r\n paymentDeadline: 8,\r\n isSupplier: false,\r\n active: true,\r\n bankBicCode: \"\",\r\n bankIbanCode: \"\",\r\n countryId: null\r\n };\r\n\r\n const value = {\r\n queryParams,\r\n setQueryParamsBase,\r\n ids,\r\n setIds,\r\n setQueryParams,\r\n initEnd,\r\n printDocumentsDialog: endsUIEvents.printDocumentsDialog,\r\n printDocumentDialog: endsUIEvents.printDocumentDialog\r\n };\r\n\r\n return {children};\r\n}","import React, { useMemo, useState } from \"react\";\r\nimport { Formik } from \"formik\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { isEqual } from \"lodash\";\r\nimport { useEndsUIContext } from \"../EndsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { useCookies } from \"react-cookie\";\r\nimport moment from 'moment';\r\nimport MultiSelectCashier from '../../../../../components/MultiSelectCashier';\r\nimport DateRange2 from '../../../../../components/DateRange2';\r\n\r\nconst prepareFilter = (queryParams, values, fromDt, toDt, selectedCashiers) => {\r\n const { searchText } = values;\r\n const newQueryParams = { ...queryParams };\r\n newQueryParams.startDate = moment(fromDt).format(\"YYYY-MM-DD\");\r\n newQueryParams.endDate = moment(toDt).format(\"YYYY-MM-DD\");\r\n newQueryParams.query = searchText;\r\n var ids = \"\";\r\n for (var index = 0; index < selectedCashiers.length; index++) {\r\n if (ids != \"\") {\r\n ids += \",\";\r\n }\r\n ids += selectedCashiers[index];\r\n }\r\n newQueryParams.cashierIds = ids;\r\n return newQueryParams;\r\n};\r\n\r\nexport function EndsFilter({ listLoading }) {\r\n const intl = useIntl();\r\n const [cookies, setCookie] = useCookies();\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.cache }),\r\n shallowEqual\r\n );\r\n const { cashiers } = currentState;\r\n const { user } = useSelector(state => state.auth);\r\n\r\n const [selectedCashiers, setSelectedCashiers] = useState(cookies['filter_dt_ends' + '_' + user.id] != undefined ? getSelectCashiers(cookies['filter_dt_ends' + '_' + user.id]) : []);\r\n // Ends UI Context\r\n const endsUIContext = useEndsUIContext();\r\n const endsUIProps = useMemo(() => {\r\n return {\r\n queryParams: endsUIContext.queryParams,\r\n setQueryParams: endsUIContext.setQueryParams,\r\n };\r\n }, [endsUIContext]);\r\n\r\n // queryParams, setQueryParams,\r\n const applyFilter = (values) => {\r\n const newQueryParams = prepareFilter(endsUIProps.queryParams, values, startDate, endDate, selectedCashiers);\r\n if (!isEqual(newQueryParams, endsUIProps.queryParams)) {\r\n newQueryParams.pageNumber = 1;\r\n // update list by queryParams\r\n endsUIProps.setQueryParams(newQueryParams);\r\n }\r\n };\r\n\r\n function getSelectCashiers(selectCashiers) {\r\n var list = [];\r\n for (var index = 0; index < selectCashiers.length; index++) {\r\n for (var x = 0; x < cashiers.length; x++) {\r\n if (cashiers[x].id == selectCashiers[index]) {\r\n list.push(selectCashiers[index]);\r\n break;\r\n }\r\n }\r\n\r\n }\r\n return list;\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_ends' + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear });\r\n setSelectedCashiers(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setFieldValue(\"searchText\", e.target.value);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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","import * as requestFromServer from \"./endsCrud\";\r\nimport { endsSlice, callTypes } from \"./endsSlice\";\r\n\r\nconst {actions} = endsSlice;\r\n\r\nexport const fetchEnds = queryParams => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .findEnds(queryParams)\r\n .then(response => {\r\n const { totalCount, entities } = response.data;\r\n dispatch(actions.endsFetched({ totalCount, entities }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't find ends\";\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n","import axios from \"axios\";\r\n\r\n// Method from server should return QueryResultsModel(items: any[], totalsCount: number)\r\n// items => filtered/sorted result\r\nexport function findEnds(queryParams) {\r\n return axios.post(\"/api/end/find\", queryParams );\r\n}\r\n","export const defaultSorted = [{ dataField: \"id\", order: \"asc\" }];\r\n\r\nexport const sizePerPageList = [\r\n { text: \"10\", value: 10 },\r\n { text: \"25\", value: 25 },\r\n { text: \"50\", value: 50 }\r\n];\r\n\r\n\r\n\r\n\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../../../../../_metronic/_helpers\";\r\nimport { CheckPermissions } from \"../../../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../../../enum/userFunctionalityE\"\r\n\r\n\r\nexport function ActionsColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n { printDocumentDialog }\r\n) {\r\n return (\r\n <>\r\n printDocumentDialog(row.id)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport Moment from 'react-moment';\r\n\r\n\r\nexport function DateColumnFormatter(\r\n cellContent,\r\n row,\r\n rowIndex\r\n) {\r\n return (\r\n <>\r\n \r\n {cellContent}\r\n \r\n \r\n \r\n );\r\n}\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\n\r\nexport function AmountFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n) {\r\n return (\r\n <>\r\n {cellContent != null ? cellContent.toFixed(2).replace(\".\", \",\") : \"\"}\r\n \r\n );\r\n}\r\n","// please be familiar with react-bootstrap-table-next column formaters\r\n// https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Work%20on%20Columns&selectedStory=Column%20Formatter&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\n\r\nexport function FirstLastTalkingNumberFormatter(\r\n cellContent,\r\n row,\r\n rowIndex,\r\n) {\r\n return (\r\n <>\r\n {row.documentStart} - {row.documentEnd}\r\n \r\n );\r\n}\r\n","// React bootstrap table next =>\r\n// DOCS: https://react-bootstrap-table.github.io/react-bootstrap-table2/docs/\r\n// STORYBOOK: https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html\r\nimport React, { useEffect, useMemo } from \"react\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory, {\r\n PaginationProvider,\r\n} from \"react-bootstrap-table2-paginator\";\r\nimport { shallowEqual, useDispatch, useSelector } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/ends/endsActions\";\r\nimport {\r\n getSelectRow,\r\n getHandlerTableChange,\r\n NoRecordsFoundMessage,\r\n PleaseWaitMessage,\r\n sortCaret,\r\n headerSortingClasses,\r\n} from \"../../../../../../_metronic/_helpers\";\r\nimport * as uiHelpers from \"../EndsUIHelpers\";\r\nimport * as columnFormatters from \"./column-formatters\";\r\nimport { Pagination } from \"../../../../../../_metronic/_partials/controls\";\r\nimport { useEndsUIContext } from \"../EndsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function EndsTable() {\r\n const intl = useIntl();\r\n // Ends UI Context\r\n const endsUIContext = useEndsUIContext();\r\n const endsUIProps = useMemo(() => {\r\n return {\r\n ids: endsUIContext.ids,\r\n setIds: endsUIContext.setIds,\r\n queryParams: endsUIContext.queryParams,\r\n setQueryParams: endsUIContext.setQueryParams,\r\n openEditEndDialog: endsUIContext.openEditEndDialog,\r\n openDeleteEndDialog: endsUIContext.openDeleteEndDialog,\r\n printDocumentDialog: endsUIContext.printDocumentDialog\r\n };\r\n }, [endsUIContext]);\r\n\r\n // Getting curret state of ends list from store (Redux)\r\n const { currentState } = useSelector(\r\n (state) => ({ currentState: state.ends }),\r\n shallowEqual\r\n );\r\n const { totalCount, entities, listLoading } = currentState;\r\n\r\n // Ends Redux state\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n // clear selections list\r\n endsUIProps.setIds([]);\r\n // server call by queryParams\r\n dispatch(actions.fetchEnds(endsUIProps.queryParams));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [endsUIProps.queryParams, dispatch]);\r\n\r\n // Table columns\r\n const columns = [\r\n {\r\n dataField: \"id\",\r\n text: \"#\",\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"fiscalCashierBusinessUnit.businessPremiseTitle\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.FISCAL_CASHIER\" }),\r\n sort: false,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"talkingNumber\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.TALKING_NUMBER\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"dateFirstDocument\",\r\n formatter: columnFormatters.DateColumnFormatter,\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.DATE\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"dateLastDocument\",\r\n formatter: columnFormatters.FirstLastTalkingNumberFormatter,\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.TO_FROM_TALKING_NUMBER\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"totalPaymentTypes\",\r\n formatter: columnFormatters.AmountFormatter,\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.AMOUNT_FOR_PAYMENT\" }),\r\n sort: true,\r\n sortCaret: sortCaret,\r\n headerSortingClasses,\r\n },\r\n {\r\n dataField: \"action\",\r\n text: intl.formatMessage({ id: \"AUTH.GENERAL.ACTIONS\" }),\r\n formatter: columnFormatters.ActionsColumnFormatter,\r\n formatExtraData: {\r\n printDocumentDialog: endsUIProps.printDocumentDialog,\r\n },\r\n classes: \"text-right pr-0\",\r\n headerClasses: \"text-right pr-3\",\r\n style: {\r\n minWidth: \"100px\",\r\n },\r\n },\r\n ];\r\n\r\n const customTotal = (from, to, size) => (\r\n \r\n {from} - { to} {size} \r\n \r\n );\r\n\r\n // Table pagination properties\r\n const paginationOptions = {\r\n custom: true,\r\n totalSize: totalCount,\r\n sizePerPageList: uiHelpers.sizePerPageList,\r\n sizePerPage: endsUIProps.queryParams.pageSize,\r\n page: endsUIProps.queryParams.pageNumber,\r\n paginationTotalRenderer: customTotal,\r\n };\r\n return (\r\n <>\r\n \r\n {({ paginationProps, paginationTableProps }) => {\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","import React, { useMemo } from \"react\";\r\nimport { useEndsUIContext } from \"../EndsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\n\r\nexport function EndsGrouping() {\r\n const intl = useIntl();\r\n\r\n // Ends UI Context\r\n const endsUIContext = useEndsUIContext();\r\n const endsUIProps = useMemo(() => {\r\n return {\r\n ids: endsUIContext.ids,\r\n setIds: endsUIContext.setIds,\r\n printDocumentsDialog: endsUIContext.printDocumentsDialog\r\n };\r\n }, [endsUIContext]);\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","import React, { useMemo } from \"react\";\r\nimport {\r\n Card,\r\n CardBody,\r\n CardHeader,\r\n CardHeaderToolbar,\r\n} from \"../../../../../_metronic/_partials/controls\";\r\nimport { EndsFilter } from \"./ends-filter/EndsFilter\";\r\nimport { EndsTable } from \"./ends-table/EndsTable\";\r\nimport { EndsGrouping } from \"./ends-grouping/EndsGrouping\";\r\nimport { useEndsUIContext } from \"./EndsUIContext\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { CheckPermissions } from \"../../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../../enum/userFunctionalityE\"\r\n\r\nexport function EndsCard() {\r\n const intl = useIntl();\r\n const endsUIContext = useEndsUIContext();\r\n const endsUIProps = useMemo(() => {\r\n return {\r\n ids: endsUIContext.ids,\r\n newEndButtonClick: endsUIContext.newEndButtonClick,\r\n };\r\n }, [endsUIContext]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {endsUIProps.ids.length > 0 && }\r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport * as actions from \"../../../_redux/ends/endsActions\";\r\nimport { useEndsUIContext } from \"../EndsUIContext\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport PdfViewer from \"../../../../../components/PdfViewer\"\r\n\r\nexport function EndsPrintDialog({ show, id, onHide }) {\r\n // Office users UI Context\r\n const endsUIContext = useEndsUIContext();\r\n const endsUIProps = useMemo(() => {\r\n return {\r\n ids: endsUIContext.ids,\r\n setIds: endsUIContext.setIds,\r\n queryParams: endsUIContext.queryParams,\r\n };\r\n }, [endsUIContext]);\r\n\r\n // Office users Redux state\r\n const dispatch = useDispatch();\r\n \r\n\r\n // if office users weren't selected we should close modal\r\n useEffect(() => {\r\n if (!id|| !endsUIProps.ids || endsUIProps.ids.length === 0) {\r\n onHide();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [endsUIProps.ids]);\r\n\r\n // looking for loading/dispatch\r\n useEffect(() => {}, [dispatch]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {id != undefined && id != null && (\r\n \r\n \r\n )} \r\n\r\n {(id == undefined || id == null) && endsUIProps.ids != undefined && endsUIProps.ids != null && endsUIProps.ids.length > 0 && (\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","import React, { useState } from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\nimport { EndsLoadingDialog } from \"./ends-loading-dialog/EndsLoadingDialog\";\r\nimport { EndsUIProvider } from \"./EndsUIContext\";\r\nimport { EndsCard } from \"./EndsCard\";\r\nimport { EndsPrintDialog } from \"./ends-print-dialog/EndsPrintDialog\";\r\n\r\nexport function EndsPage({ history }) {\r\n\r\n const endsUIEvents = {\r\n printDocumentsDialog: () => {\r\n history.push(`/sales/ends/printEnds`);\r\n },\r\n printDocumentDialog: (id) => {\r\n history.push(`/sales/ends/${id}/printEnd`);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/ends\");\r\n }}\r\n />\r\n )}\r\n \r\n\r\n \r\n {({ history, match }) => (\r\n {\r\n history.push(\"/sales/ends\");\r\n }}\r\n />\r\n )}\r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { Suspense } from \"react\";\r\nimport { Redirect, Switch } from \"react-router-dom\";\r\nimport { OffersPage } from \"./offers/OffersPage\";\r\nimport { DeliveryNotesPage } from \"./deliveryNotes/DeliveryNotesPage\";\r\nimport { InvoicesPage } from \"./invoices/InvoicesPage\";\r\nimport { CreditsPage } from \"./credits/CreditsPage\";\r\nimport { ExpensesPage } from \"./expenses/ExpensesPage\";\r\nimport { ReceiptsPage } from \"./receipts/ReceiptsPage\";\r\nimport { DeliveryNoteInvoicesPage } from \"./deliveryNoteInvoices/DeliveryNoteInvoicesPage\";\r\nimport { EndsPage } from \"./ends/EndsPage\";\r\nimport { LayoutSplashScreen, ContentRoute } from \"../../../../_metronic/layout\";\r\nimport { hasRoleForFunctionality } from \"../../../../_metronic/layout/_core/CheckPermissions\"\r\nimport { UserFunctionalityE } from \"../../../enum/userFunctionalityE\"\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport default function SalesPage() {\r\n const { user } = useSelector(state => state.auth);\r\n\r\n return (\r\n }>\r\n \r\n {\r\n \r\n }\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.PregledPonudb, UserFunctionalityE.UrediPonudbe]) && (\r\n \r\n )}\r\n\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.PregledDobavnic, UserFunctionalityE.UrediDobavnice]) && (\r\n \r\n )}\r\n\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.PregledRacunov]) && (\r\n \r\n )}\r\n\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.PregledDobropisovOffice]) && (\r\n \r\n )}\r\n\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.PregledIzdatkovOffice]) && (\r\n \r\n )}\r\n\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.PregledPrejemkovOffice]) && (\r\n \r\n )}\r\n\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.PregledDobavniceRacuni, UserFunctionalityE.UrediDobavniceRacune]) && (\r\n \r\n )}\r\n\r\n {hasRoleForFunctionality(user, [UserFunctionalityE.PregledZakljuckov]) && (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { isEqual, isFunction } from \"lodash\";\r\nimport moment from 'moment'\r\nimport { useCookies } from \"react-cookie\";\r\nimport {\r\n Card,\r\n CardBody,\r\n CardHeader,\r\n CardHeaderToolbar,\r\n} from \"../../../../../_metronic/_partials/controls\";\r\nimport { Formik } from \"formik\";\r\nimport MultiSelectCashier from '../../../../components/MultiSelectCashier';\r\nimport DateRange2 from '../../../../components/DateRange2';\r\nimport PdfViewer from \"../../../../components/PdfViewer\"\r\n\r\nexport function ReportByDayPage({ history }) {\r\n const intl = useIntl();\r\n const { user } = useSelector(state => state.auth);\r\n const [cookies, setCookie] = useCookies();\r\n const [selectedCashiers, setSelectedCashiers] = useState(cookies['filter_dt_reportByDayPage1' + '_' + user.id] != undefined ? cookies['filter_dt_reportByDayPage1' + '_' + user.id] : []);\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_reportByDayPage1' + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear\r\n });\r\n setSelectedCashiers(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 state.auth);\r\n const [cookies, setCookie] = useCookies();\r\n const [selectedCashiers, setSelectedCashiers] = useState(cookies['filter_dt_reportByItemGroup' + '_' + user.id] != undefined ? cookies['filter_dt_reportByItemGroup' + '_' + user.id] : []);\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_reportByItemGroup' + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear\r\n });\r\n setSelectedCashiers(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 state.auth);\r\n const [cookies, setCookie] = useCookies();\r\n const [selectedCashiers, setSelectedCashiers] = useState(cookies['filter_dt_reportByItem' + '_' + user.id] != undefined ? cookies['filter_dt_reportByItem' + '_' + user.id] : []);\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_reportByItem' + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear\r\n });\r\n setSelectedCashiers(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 state.auth);\r\n const [cookies, setCookie] = useCookies();\r\n const [selectedCashiers, setSelectedCashiers] = useState(cookies['filter_dt_reportByUser' + '_' + user.id] != undefined ? cookies['filter_dt_reportByUser' + '_' + user.id] : []);\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_reportByUser' + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear\r\n });\r\n setSelectedCashiers(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 state.auth);\r\n const [cookies, setCookie] = useCookies();\r\n const [selectedCashiers, setSelectedCashiers] = useState(cookies['filter_dt_reportByDayHour' + '_' + user.id] != undefined ? cookies['filter_dt_reportByDayHour' + '_' + user.id] : []);\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_reportByDayHour' + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear\r\n });\r\n setSelectedCashiers(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 state.auth);\r\n const [cookies, setCookie] = useCookies();\r\n const [selectedCashiers, setSelectedCashiers] = useState(cookies['filter_dt_reportByDeliveryNotesByDate' + '_' + user.id] != undefined ? cookies['filter_dt_reportByDeliveryNotesByDate' + '_' + user.id] : []);\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_reportByDeliveryNotesByDate' + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear\r\n });\r\n setSelectedCashiers(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 state.auth);\r\n const [cookies, setCookie] = useCookies();\r\n const [selectedCashiers, setSelectedCashiers] = useState(cookies['filter_dt_reportByPaymentByDatePage' + '_' + user.id] != undefined ? cookies['filter_dt_reportByPaymentByDatePage' + '_' + user.id] : []);\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_reportByPaymentByDatePage' + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear\r\n });\r\n setSelectedCashiers(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 state.auth);\r\n const [cookies, setCookie] = useCookies();\r\n const [selectedCashiers, setSelectedCashiers] = useState(cookies['filter_dt_reporTrafficByHour' + '_' + user.id] != undefined ? cookies['filter_dt_reporTrafficByHour' + '_' + user.id] : []);\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_reporTrafficByHour' + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear\r\n });\r\n setSelectedCashiers(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var value = e.target.value;\r\n setSupplierText1(e.target.value);\r\n if (intervalSupplierText > 0) {\r\n \r\n clearTimeout(intervalSupplierText);\r\n }\r\n setIntervalSupplierText(setTimeout(function () {\r\n setSupplierText(value);\r\n }, 600));\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n {\r\n var value = e.target.value;\r\n setItemText1(e.target.value);\r\n if (intervalItemText > 0) {\r\n\r\n clearTimeout(intervalItemText);\r\n }\r\n setIntervalItemText(setTimeout(function () {\r\n setItemText(value);\r\n }, 600));\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 state.auth);\r\n const [cookies, setCookie] = useCookies();\r\n const [selectedCashiers, setSelectedCashiers] = useState(cookies['filter_dt_reportSalesItemByUsers' + '_' + user.id] != undefined ? cookies['filter_dt_reportSalesItemByUsers' + '_' + user.id] : []);\r\n const [userText, setUserText] = useState(\"\");\r\n const [userText1, setUserText1] = useState(\"\");\r\n const [intervalUserText, setIntervalUserText] = useState(-1);\r\n const [itemText, setItemText] = useState(\"\");\r\n const [itemText1, setItemText1] = useState(\"\");\r\n const [intervalItemText, setIntervalItemText] = useState(-1);\r\n\r\n\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_reportSalesItemByUsers' + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear\r\n });\r\n setSelectedCashiers(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n var value = e.target.value;\r\n setUserText1(e.target.value);\r\n if (intervalUserText > 0) {\r\n\r\n clearTimeout(intervalUserText);\r\n }\r\n setIntervalUserText(setTimeout(function () {\r\n setUserText(value);\r\n }, 600));\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n {\r\n var value = e.target.value;\r\n setItemText1(e.target.value);\r\n if (intervalItemText > 0) {\r\n\r\n clearTimeout(intervalItemText);\r\n }\r\n setIntervalItemText(setTimeout(function () {\r\n setItemText(value);\r\n }, 600));\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var value = e.target.value;\r\n setItemText1(e.target.value);\r\n if (intervalItemText > 0) {\r\n\r\n clearTimeout(intervalItemText);\r\n }\r\n setIntervalItemText(setTimeout(function () {\r\n setItemText(value);\r\n }, 600));\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 state.auth);\r\n const [cookies, setCookie] = useCookies();\r\n const [selectedCashiers, setSelectedCashiers] = useState(cookies['filter_dt_reportByCustomers' + '_' + user.id] != undefined ? cookies['filter_dt_reportByCustomers' + '_' + user.id] : []);\r\n const [customerText, setCustomerText] = useState(\"\");\r\n const [customerText1, setCustomerText1] = useState(\"\");\r\n const [intervalCustomerText, setIntervalCustomerText] = useState(-1);\r\n const [talkingNumberText, setTalkingNumberText] = useState(\"\");\r\n const [talkingNumberText1, setTalkingNumberText1] = useState(\"\");\r\n const [intervalTalkingNumberText, setIntervalTalkingNumberText] = useState(-1);\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_reportByCustomers' + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear\r\n });\r\n setSelectedCashiers(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n {\r\n var value = e.target.value;\r\n setCustomerText1(e.target.value);\r\n if (intervalCustomerText > 0) {\r\n\r\n clearTimeout(intervalCustomerText);\r\n }\r\n setIntervalCustomerText(setTimeout(function () {\r\n setCustomerText(value);\r\n }, 600));\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n {\r\n var value = e.target.value;\r\n setTalkingNumberText1(e.target.value);\r\n if (intervalTalkingNumberText > 0) {\r\n\r\n clearTimeout(intervalTalkingNumberText);\r\n }\r\n setIntervalTalkingNumberText(setTimeout(function () {\r\n setTalkingNumberText(value);\r\n }, 600));\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var value = e.target.value;\r\n setPurchaseItemText1(e.target.value);\r\n if (intervalPurchaseItemText > 0) {\r\n \r\n clearTimeout(intervalPurchaseItemText);\r\n }\r\n setIntervalPurchaseItemText(setTimeout(function () {\r\n setPurchaseItemText(value);\r\n }, 600));\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n {\r\n var value = e.target.value;\r\n setSalesItemText1(e.target.value);\r\n if (intervalSalesItemText > 0) {\r\n\r\n clearTimeout(intervalSalesItemText);\r\n }\r\n setIntervalSalesItemText(setTimeout(function () {\r\n setSalesItemText(value);\r\n }, 600));\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 state.auth);\r\n const [cookies, setCookie] = useCookies();\r\n const [selectedCashiers, setSelectedCashiers] = useState(cookies['filter_dt_reportSpentItemsAndPp' + '_' + user.id] != undefined ? cookies['filter_dt_reportSpentItemsAndPp' + '_' + user.id] : []);\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_reportSpentItemsAndPp' + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear\r\n });\r\n setSelectedCashiers(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 state.auth);\r\n const [cookies, setCookie] = useCookies();\r\n const [selectedCashiers, setSelectedCashiers] = useState(cookies['filter_dt_reportSellBySuppliers' + '_' + user.id] != undefined ? cookies['filter_dt_reportSellBySuppliers' + '_' + user.id] : []);\r\n const [supplierText, setSupplierText] = useState(\"\");\r\n const [supplierText1, setSupplierText1] = useState(\"\");\r\n const [intervalSupplierText, setIntervalSupplierText] = useState(-1);\r\n\r\n const [itemText, setItemText] = useState(\"\");\r\n const [itemText1, setItemText1] = useState(\"\");\r\n const [intervalItemText, setIntervalItemText] = useState(-1);\r\n\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_reportSellBySuppliers' + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear\r\n });\r\n setSelectedCashiers(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n var value = e.target.value;\r\n setSupplierText1(e.target.value);\r\n if (intervalSupplierText > 0) {\r\n \r\n clearTimeout(intervalSupplierText);\r\n }\r\n setIntervalSupplierText(setTimeout(function () {\r\n setSupplierText(value);\r\n }, 600));\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n {\r\n var value = e.target.value;\r\n setItemText1(e.target.value);\r\n if (intervalItemText > 0) {\r\n\r\n clearTimeout(intervalItemText);\r\n }\r\n setIntervalItemText(setTimeout(function () {\r\n setItemText(value);\r\n }, 600));\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 state.auth);\r\n const [cookies, setCookie] = useCookies();\r\n const [warehouse, setWarehouse] = useState(cookies['filter_dt_reportStockItemsPage' + '_' + user.id] != undefined ? cookies['filter_dt_reportStockItemsPage' + '_' + user.id] : []);\r\n\r\n const [itemText, setItemText] = useState(\"\");\r\n const [itemText1, setItemText1] = useState(\"\");\r\n const [intervalItemText, setIntervalItemText] = useState(-1);\r\n\r\n const [endDate, setEndDate] = useState(moment(new Date()).format(\"YYYY-MM-DD\"));\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_reportStockItemsPage' + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear\r\n });\r\n setWarehouse(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n var value = e.target.value;\r\n setItemText1(e.target.value);\r\n if (intervalItemText > 0) {\r\n\r\n clearTimeout(intervalItemText);\r\n }\r\n setIntervalItemText(setTimeout(function () {\r\n setItemText(value);\r\n }, 600));\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setEndDate(event.target.value);\r\n handleSubmit();\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 ({ currentState: state.cache }),\r\n shallowEqual\r\n );\r\n const { documentTypes } = currentState;\r\n\r\n return (\r\n <>\r\n { props.onChange(event.target.value); }}\r\n >\r\n {documentTypes != undefined && documentTypes.map(option => (\r\n \r\n {option.title}\r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { isEqual, isFunction } from \"lodash\";\r\nimport moment from 'moment'\r\nimport { useCookies } from \"react-cookie\";\r\nimport {\r\n Card,\r\n CardBody,\r\n CardHeader,\r\n CardHeaderToolbar,\r\n} from \"../../../../../_metronic/_partials/controls\";\r\nimport { Formik } from \"formik\";\r\nimport SelectDocumentType from '../../../../components/SelectDocumentType';\r\nimport DateRange2 from '../../../../components/DateRange2';\r\nimport PdfViewer from \"../../../../components/PdfViewer\"\r\n\r\nexport function ReportByDocumentsPage({ history }) {\r\n const intl = useIntl();\r\n const { user } = useSelector(state => state.auth);\r\n const [cookies, setCookie] = useCookies();\r\n const [documentTypeId, setDocumentTypeId] = useState(cookies['filter_dt_reportByDocuments1' + '_' + user.id] != undefined ? cookies['filter_dt_reportByDocuments1' + '_' + user.id] : []);\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_reportByDocuments1' + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear\r\n });\r\n setDocumentTypeId(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 state.auth);\r\n const [cookies, setCookie] = useCookies();\r\n const [selectedCashiers, setSelectedCashiers] = useState(cookies['filter_dt_reportByUsersByPayments' + '_' + user.id] != undefined ? cookies['filter_dt_reportByUsersByPayments' + '_' + user.id] : []);\r\n\r\n const [userText, setUserText] = useState(\"\");\r\n const [userText1, setUserText1] = useState(\"\");\r\n const [intervalUserText, setIntervalUserText] = useState(-1);\r\n\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_reportByUsersByPayments' + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear\r\n });\r\n setSelectedCashiers(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n var value = e.target.value;\r\n setUserText1(e.target.value);\r\n if (intervalUserText > 0) {\r\n\r\n clearTimeout(intervalUserText);\r\n }\r\n setIntervalUserText(setTimeout(function () {\r\n setUserText(value);\r\n }, 600));\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var value = e.target.value;\r\n setItemText1(e.target.value);\r\n if (intervalItemText > 0) {\r\n\r\n clearTimeout(intervalItemText);\r\n }\r\n setIntervalItemText(setTimeout(function () {\r\n setItemText(value);\r\n }, 600));\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 state.auth);\r\n const [cookies, setCookie] = useCookies();\r\n const [selectedCashiers, setSelectedCashiers] = useState(cookies['filter_dt_reportSalesByUsersByItemgroups' + '_' + user.id] != undefined ? cookies['filter_dt_reportSalesByUsersByItemgroups' + '_' + user.id] : []);\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_reportSalesByUsersByItemgroups' + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear\r\n });\r\n setSelectedCashiers(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 state.auth);\r\n const [cookies, setCookie] = useCookies();\r\n const [selectedCashiers, setSelectedCashiers] = useState(cookies['filter_dt_reportByOwnConsumptions' + '_' + user.id] != undefined ? cookies['filter_dt_reportByOwnConsumptions' + '_' + user.id] : []);\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_reportByOwnConsumptions' + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear\r\n });\r\n setSelectedCashiers(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 state.auth);\r\n const [cookies, setCookie] = useCookies();\r\n const [selectedCashiers, setSelectedCashiers] = useState(cookies['filter_dt_reportSpentItems' + '_' + user.id] != undefined ? cookies['filter_dt_reportSpentItems' + '_' + user.id] : []);\r\n const [itemText, setItemText] = useState(\"\");\r\n const [itemText1, setItemText1] = useState(\"\");\r\n const [intervalItemText, setIntervalItemText] = useState(-1);\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_reportSpentItems' + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear\r\n });\r\n setSelectedCashiers(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n var value = e.target.value;\r\n setItemText1(e.target.value);\r\n if (intervalItemText > 0) {\r\n\r\n clearTimeout(intervalItemText);\r\n }\r\n setIntervalItemText(setTimeout(function () {\r\n setItemText(value);\r\n }, 600));\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 state.auth);\r\n const [cookies, setCookie] = useCookies();\r\n const [selectedCashiers, setSelectedCashiers] = useState(cookies['filter_dt_reportFirstLastInvoiceByUsers' + '_' + user.id] != undefined ? cookies['filter_dt_reportFirstLastInvoiceByUsers' + '_' + user.id] : []);\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_reportFirstLastInvoiceByUsers' + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear\r\n });\r\n setSelectedCashiers(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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","import React, { useEffect, useState } from \"react\";\r\nimport { FormattedMessage, useIntl } from \"react-intl\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { isEqual, isFunction } from \"lodash\";\r\nimport moment from 'moment'\r\nimport { useCookies } from \"react-cookie\";\r\nimport {\r\n Card,\r\n CardBody,\r\n CardHeader,\r\n CardHeaderToolbar,\r\n} from \"../../../../../_metronic/_partials/controls\";\r\nimport { Formik } from \"formik\";\r\nimport MultiSelectCashier from '../../../../components/MultiSelectCashier';\r\nimport DateRange2 from '../../../../components/DateRange2';\r\nimport PdfViewer from \"../../../../components/PdfViewer\"\r\n\r\nexport function ReportProfitJigsawWithVatPage({ history }) {\r\n const intl = useIntl();\r\n\r\n const [itemText, setItemText] = useState(\"\");\r\n const [itemText1, setItemText1] = useState(\"\");\r\n const [intervalItemText, setIntervalItemText] = useState(-1);\r\n\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var value = e.target.value;\r\n setItemText1(e.target.value);\r\n if (intervalItemText > 0) {\r\n\r\n clearTimeout(intervalItemText);\r\n }\r\n setIntervalItemText(setTimeout(function () {\r\n setItemText(value);\r\n }, 600));\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 state.auth);\r\n const [cookies, setCookie] = useCookies();\r\n const [warehouse, setWarehouse] = useState(cookies['filter_dt_reportItemStockFifo' + '_' + user.id] != undefined ? cookies['filter_dt_reportItemStockFifo' + '_' + user.id] : []);\r\n\r\n const [itemText, setItemText] = useState(\"\");\r\n const [itemText1, setItemText1] = useState(\"\");\r\n const [intervalItemText, setIntervalItemText] = useState(-1);\r\n\r\n const [endDate, setEndDate] = useState(moment(new Date()).format(\"YYYY-MM-DD\"));\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_reportItemStockFifo' + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear\r\n });\r\n setWarehouse(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n var value = e.target.value;\r\n setItemText1(e.target.value);\r\n if (intervalItemText > 0) {\r\n\r\n clearTimeout(intervalItemText);\r\n }\r\n setIntervalItemText(setTimeout(function () {\r\n setItemText(value);\r\n }, 600));\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setEndDate(event.target.value);\r\n handleSubmit();\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 state.auth);\r\n const [cookies, setCookie] = useCookies();\r\n const [selectedCashiers, setSelectedCashiers] = useState(cookies['filter_dt_reportSalesItemsByDate' + '_' + user.id] != undefined ? cookies['filter_dt_reportSalesItemsByDate' + '_' + user.id] : []);\r\n const [itemText, setItemText] = useState(\"\");\r\n const [itemText1, setItemText1] = useState(\"\");\r\n const [intervalItemText, setIntervalItemText] = useState(-1);\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_reportSalesItemsByDate' + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear\r\n });\r\n setSelectedCashiers(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n var value = e.target.value;\r\n setItemText1(e.target.value);\r\n if (intervalItemText > 0) {\r\n\r\n clearTimeout(intervalItemText);\r\n }\r\n setIntervalItemText(setTimeout(function () {\r\n setItemText(value);\r\n }, 600));\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 state.auth);\r\n const [cookies, setCookie] = useCookies();\r\n const [selectedCashiers, setSelectedCashiers] = useState(cookies['filter_dt_reportSalesItemsByHour' + '_' + user.id] != undefined ? cookies['filter_dt_reportSalesItemsByHour' + '_' + user.id] : []);\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_reportSalesItemsByHour' + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear\r\n });\r\n setSelectedCashiers(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 state.auth);\r\n const [cookies, setCookie] = useCookies();\r\n const [selectedCashiers, setSelectedCashiers] = useState(cookies['filter_dt_reportDeliveryNotesByCustomers' + '_' + user.id] != undefined ? cookies['filter_dt_reportDeliveryNotesByCustomers' + '_' + user.id] : []);\r\n const [startDate, setStartDate] = useState(new Date(new Date().setMonth(new Date().getMonth() - 1)));\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const applyFilter = (values) => {\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 applyFilter(values);\r\n }}\r\n >\r\n {({\r\n values,\r\n handleSubmit,\r\n handleBlur,\r\n handleChange,\r\n setFieldValue,\r\n }) => (\r\n
\r\n
\r\n
\r\n {\r\n var current = new Date();\r\n var nextYear = new Date();\r\n nextYear.setFullYear(current.getFullYear() + 5);\r\n\r\n setCookie('filter_dt_reportDeliveryNotesByCustomers' + '_' + user.id, val, {\r\n path: '/',\r\n expires: nextYear\r\n });\r\n setSelectedCashiers(val);\r\n handleSubmit();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n handleSubmit();\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 setLoading(true);\r\n };\r\n\r\n const disableLoading = () => {\r\n setLoading(false);\r\n };\r\n\r\n const getInputClasses = (fieldname) => {\r\n if (formik.touched[fieldname] && formik.errors[fieldname]) {\r\n return \"is-invalid\";\r\n }\r\n\r\n if (formik.touched[fieldname] && !formik.errors[fieldname]) {\r\n return \"is-valid\";\r\n }\r\n\r\n return \"\";\r\n };\r\n\r\n const formik = useFormik({\r\n initialValues,\r\n validationSchema: LoginSchema,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n enableLoading();\r\n login(values.username, values.password)\r\n .then(({ data: { token } }) => {\r\n disableLoading();\r\n props.login(token);\r\n })\r\n .catch(() => {\r\n disableLoading();\r\n setSubmitting(false);\r\n setStatus(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.INVALID_LOGIN\",\r\n })\r\n );\r\n });\r\n },\r\n });\r\n\r\n return (\r\n
\r\n {/*begin::Content header*/ }\r\n < div className = \"position-absolute top-0 right-0 text-right mt-5 mb-15 mb-lg-0 flex-column-auto justify-content-center py-5 px-10\" >\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {/*end::Content header*/ }\r\n\r\n\r\n
\r\n {/* begin::Head */}\r\n
\r\n

\r\n \r\n

\r\n

\r\n \r\n

\r\n
\r\n {/* end::Head */}\r\n\r\n {/*begin::Form*/}\r\n \r\n {formik.status && \r\n
\r\n
{formik.status}
\r\n
\r\n }\r\n\r\n
\r\n \r\n {formik.touched.username && formik.errors.username ? (\r\n
\r\n
{formik.errors.username}
\r\n
\r\n ) : null}\r\n
\r\n
\r\n \r\n {formik.touched.password && formik.errors.password ? (\r\n
\r\n
{formik.errors.password}
\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 {loading && }\r\n \r\n
\r\n \r\n {/*end::Form*/}\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default injectIntl(connect(null, auth.actions)(Login));\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { useFormik } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport { connect } from \"react-redux\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport { getExportOrganization } from \"../_redux/exportCrud\";\r\nimport { login } from \"../_redux/exportCrud\";\r\n\r\n/*\r\n INTL (i18n) docs:\r\n https://github.com/formatjs/react-intl/blob/master/docs/Components.md#formattedmessage\r\n*/\r\n\r\n/*\r\n Formik+YUP:\r\n https://jaredpalmer.com/formik/docs/tutorial#getfieldprops\r\n*/\r\n\r\nconst initialValues = {\r\n password: \"\",\r\n};\r\n\r\nfunction Export(props) {\r\n const { intl } = props;\r\n const [loading, setLoading] = useState(false);\r\n const [name, setName] = useState(\"\");\r\n\r\n\r\n useEffect(() => {\r\n getExportOrganization(props.match.params.accessKey)\r\n .then(({ data: { model } }) => {\r\n if (model == \"\") {\r\n props.history.push('/auth/login')\r\n } else {\r\n setName(model);\r\n }\r\n disableLoading();\r\n })\r\n .catch(() => {\r\n disableLoading();\r\n \r\n });\r\n }, []);\r\n\r\n const ExportSchema = Yup.object().shape({\r\n password: Yup.string()\r\n .min(3, intl.formatMessage({ id: 'AUTH.GENERAL.MINIMUM_3_SYMBOLS' }))\r\n .max(50, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_50_SYMBOLS' }))\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n });\r\n \r\n const enableLoading = () => {\r\n setLoading(true);\r\n };\r\n\r\n const disableLoading = () => {\r\n setLoading(false);\r\n };\r\n\r\n const getInputClasses = (fieldname) => {\r\n if (formik.touched[fieldname] && formik.errors[fieldname]) {\r\n return \"is-invalid\";\r\n }\r\n\r\n if (formik.touched[fieldname] && !formik.errors[fieldname]) {\r\n return \"is-valid\";\r\n }\r\n\r\n return \"\";\r\n };\r\n\r\n const formik = useFormik({\r\n initialValues,\r\n validationSchema: ExportSchema,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n enableLoading();\r\n login(props.match.params.accessKey, values.password)\r\n .then(({ data: { model } }) => {\r\n disableLoading();\r\n setSubmitting(false);\r\n if (model == true) {\r\n window.location = \"/api/export/DownloadExportDataPublic?accessKey=\" + props.match.params.accessKey + \"&password=\" + values.password;\r\n } else {\r\n setStatus(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.INVALID_LOGIN_EXPORT\",\r\n })\r\n );\r\n } \r\n })\r\n .catch(() => {\r\n disableLoading();\r\n setSubmitting(false);\r\n setStatus(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.INVALID_LOGIN_EXPORT\",\r\n })\r\n );\r\n });\r\n },\r\n });\r\n\r\n return (\r\n
\r\n
\r\n {/* begin::Head */}\r\n
\r\n

\r\n - {name}\r\n

\r\n

\r\n \r\n

\r\n
\r\n {/* end::Head */}\r\n\r\n {/*begin::Form*/}\r\n \r\n {formik.status ? (\r\n
\r\n
{formik.status}
\r\n
\r\n ) : (\r\n
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n\r\n
\r\n \r\n {formik.touched.password && formik.errors.password ? (\r\n
\r\n
{formik.errors.password}
\r\n
\r\n ) : null}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {loading && }\r\n \r\n
\r\n \r\n {/*end::Form*/}\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default injectIntl(connect()(Export));\r\n","import axios from \"axios\";\r\n\r\nexport function getExportOrganization(accessKey) {\r\n return axios.post(\"/api/export/checkExportOrganization\", { accessKey });\r\n}\r\n\r\nexport function login(accessKey, password) {\r\n return axios.post(\"/api/export/login\", { accessKey, password });\r\n}\r\n","class UrlParams {\r\n constructor(search) {\r\n this.qs = (search || window.location.search).substr(1);\r\n this.params = {};\r\n this.parseQuerstring();\r\n }\r\n parseQuerstring() {\r\n this.qs.split('&').reduce((a, b) => {\r\n let [key, val] = b.split(/=(.+)/);\r\n a[key] = val;\r\n return a;\r\n }, this.params);\r\n }\r\n get(key) {\r\n return this.params[key];\r\n }\r\n}\r\n\r\nexport default UrlParams; ","import React, { useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { useFormik } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport { connect } from \"react-redux\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport * as auth from \"../_redux/authRedux\";\r\nimport { resetPassword } from \"../_redux/authCrud\";\r\nimport ErrorPopup from \"../../Helpers/ErrorPopup\"\r\nimport UrlParams from \"../../../util/UrlParams\"\r\n\r\n/*\r\n INTL (i18n) docs:\r\n https://github.com/formatjs/react-intl/blob/master/docs/Components.md#formattedmessage\r\n*/\r\n\r\n/*\r\n Formik+YUP:\r\n https://jaredpalmer.com/formik/docs/tutorial#getfieldprops\r\n*/\r\n\r\nconst initialValues = {\r\n username: \"\",\r\n password: \"\",\r\n confirmPassword: \"\"\r\n};\r\n\r\nfunction ResetPassword(props) {\r\n const { intl } = props;\r\n const [loading, setLoading] = useState(false);\r\n const [errorMessage, setErrorMessage] = useState(\"\");\r\n const [errorOpen, setErrorOpen] = useState(false);\r\n const [alertClassName, setAlertClassName] = useState(\"mb-10 alert alert-custom alert-light-danger alert-dismissible\");\r\n const [showForm, setShowForm] = useState(true);\r\n\r\n const ResetPasswordSchema = Yup.object().shape({\r\n username: Yup.string()\r\n .min(3, intl.formatMessage({ id: 'AUTH.GENERAL.MINIMUM_3_SYMBOLS' }))\r\n .max(50, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_50_SYMBOLS' }))\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n password: Yup.string()\r\n .min(3, intl.formatMessage({ id: 'AUTH.GENERAL.MINIMUM_3_SYMBOLS' }))\r\n .max(50, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_50_SYMBOLS' }))\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n confirmPassword: Yup.string()\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n )\r\n .when(\"password\", {\r\n is: (val) => (val && val.length > 0 ? true : false),\r\n then: Yup.string().oneOf(\r\n [Yup.ref(\"password\")],\r\n intl.formatMessage({ id: 'AUTH.GENERAL.PASSWORD_AND_CONFIRM_PASSWORD_DIDNT_MATCH' })\r\n ),\r\n })\r\n });\r\n\r\n const enableLoading = () => {\r\n setLoading(true);\r\n };\r\n\r\n const disableLoading = () => {\r\n setLoading(false);\r\n };\r\n\r\n const getInputClasses = (fieldname) => {\r\n if (formik.touched[fieldname] && formik.errors[fieldname]) {\r\n return \"is-invalid\";\r\n }\r\n\r\n if (formik.touched[fieldname] && !formik.errors[fieldname]) {\r\n return \"is-valid\";\r\n }\r\n\r\n return \"\";\r\n };\r\n\r\n const formik = useFormik({\r\n initialValues,\r\n validationSchema: ResetPasswordSchema,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n enableLoading();\r\n let params = new UrlParams(window.location.search);\r\n let id = params.get('id');\r\n let code = params.get('code');\r\n\r\n resetPassword(id, code, values.username, values.password)\r\n .then(({ data }) => {\r\n disableLoading();\r\n if (data.didError) {\r\n setErrorMessage(intl.formatMessage({ id: 'AUTH.OPS_CONNECTION_PROBLEM' }));\r\n setErrorOpen(true);\r\n } else {\r\n if (data.model) {\r\n setShowForm(false);\r\n setAlertClassName(\"mb-10 alert alert-custom alert-success alert-dismissible\");\r\n setStatus(\r\n intl.formatMessage(\r\n { id: \"AUTH.RESETPASSWORD.SUCCESS\" }\r\n ));\r\n } else {\r\n setSubmitting(false);\r\n setShowForm(true);\r\n setStatus(\r\n intl.formatMessage(\r\n { id: \"AUTH.RESETPASSWORD.UNSUCCESS\" }\r\n ));\r\n }\r\n }\r\n })\r\n .catch(() => {\r\n disableLoading();\r\n setSubmitting(false);\r\n });\r\n },\r\n });\r\n\r\n return (\r\n
\r\n {/*begin::Content header*/}\r\n < div className=\"position-absolute top-0 right-0 text-right mt-5 mb-15 mb-lg-0 flex-column-auto justify-content-center py-5 px-10\" >\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {/*end::Content header*/}\r\n
\r\n {/* begin::Head */}\r\n
\r\n

\r\n \r\n

\r\n

\r\n \r\n

\r\n
\r\n {/* end::Head */}\r\n\r\n {/*begin::Form*/}\r\n \r\n {formik.status && (\r\n
\r\n
\r\n {formik.status}\r\n
\r\n
\r\n )}\r\n\r\n {showForm && (\r\n
\r\n
\r\n \r\n {formik.touched.username && formik.errors.username ? (\r\n
\r\n
{formik.errors.username}
\r\n
\r\n ) : null}\r\n
\r\n
\r\n \r\n {formik.touched.password && formik.errors.password ? (\r\n
\r\n
{formik.errors.password}
\r\n
\r\n ) : null}\r\n
\r\n
\r\n \r\n {formik.touched.confirmPassword && formik.errors.confirmPassword ? (\r\n
\r\n
{formik.errors.confirmPassword}
\r\n
\r\n ) : null}\r\n
\r\n\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 {/*end::Form*/}\r\n setErrorOpen(false)} />\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default injectIntl(connect(null, auth.actions)(ResetPassword));\r\n","import React, { useState } from \"react\";\r\nimport { useFormik } from \"formik\";\r\nimport { connect } from \"react-redux\";\r\nimport * as Yup from \"yup\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport * as auth from \"../_redux/authRedux\";\r\nimport { register, findByTaxCode, checkIfUserNameIsFree, createAccountExistTaxNumber } from \"../_redux/authCrud\";\r\nimport ErrorPopup from \"../../Helpers/ErrorPopup\"\r\nimport { BrowserView, MobileView } from 'react-device-detect';\r\n\r\nconst initialValues = {\r\n firstname: \"\",\r\n lastname: \"\",\r\n taxcode: \"\",\r\n phone: \"\",\r\n email: \"\",\r\n username: \"\",\r\n password: \"\",\r\n changepassword: \"\",\r\n acceptTerms: false,\r\n};\r\n\r\nfunction Registration(props) {\r\n const { intl } = props;\r\n const [loading, setLoading] = useState(false);\r\n const [errorMessage, setErrorMessage] = useState(\"\");\r\n const [errorOpen, setErrorOpen] = useState(false);\r\n const [taxDuty, setTaxDuty] = useState(\"\");\r\n const [taxNumber, setTaxNumber] = useState(\"\");\r\n const [name, setName] = useState(\"\");\r\n const [address, setAddress] = useState(\"\");\r\n const [postCode, setPostCode] = useState(\"\");\r\n const [postTitle, setPostTitle] = useState(\"\");\r\n\r\n const RegistrationSchema = Yup.object().shape({\r\n firstname: Yup.string()\r\n .min(3, intl.formatMessage({ id: 'AUTH.GENERAL.MINIMUM_3_SYMBOLS' }))\r\n .max(50, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_50_SYMBOLS' }))\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n lastname: Yup.string()\r\n .min(3, intl.formatMessage({ id: 'AUTH.GENERAL.MINIMUM_3_SYMBOLS' }))\r\n .max(50, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_50_SYMBOLS' }))\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n taxcode: Yup.string()\r\n .required()\r\n .matches(/^[0-9]+$/, intl.formatMessage({ id: 'AUTH.GENERAL.ONLY_DIGIT' }))\r\n .min(8, intl.formatMessage({ id: 'AUTH.GENERAL.ONLY_8_NUMBER' }))\r\n .max(8, intl.formatMessage({ id: 'AUTH.GENERAL.ONLY_8_NUMBER' }))\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n )\r\n .test('validator', intl.formatMessage({ id: 'AUTH.GENERAL.NOT_FOUND_COMPANY' }), value => {\r\n return new Promise((resolve, reject) => {\r\n var taxcode = value;\r\n if (taxNumber != taxcode) {\r\n setTimeout(function () {\r\n setTaxDuty(\"\");\r\n setTaxNumber(\"\");\r\n setName(\"\");\r\n setAddress(\"\");\r\n setPostCode(\"\");\r\n setPostTitle(\"\");\r\n }, 0);\r\n }\r\n if (taxcode.length >= 8) {\r\n findByTaxCode(taxcode)\r\n .then(({ data }) => {\r\n if (data.model.id > -1) {\r\n if (taxDuty != data.model.taxDuty) {\r\n setTaxDuty(data.model.taxDuty);\r\n }\r\n if (taxNumber != data.model.taxNumber) {\r\n setTaxNumber(data.model.taxNumber);\r\n }\r\n if (name != data.model.name) {\r\n setName(data.model.name);\r\n }\r\n if(address != data.model.address) {\r\n setAddress(data.model.address);\r\n }\r\n if (postCode != data.model.postCode) {\r\n setPostCode(data.model.postCode);\r\n }\r\n if (postTitle != data.model.postTitle) {\r\n setPostTitle(data.model.postTitle);\r\n }\r\n resolve(true);\r\n } else {\r\n resolve(false);\r\n setErrorMessage(data.message);\r\n setErrorOpen(true);\r\n }\r\n })\r\n .catch((e) => {\r\n resolve(false);\r\n });\r\n } else {\r\n resolve(false);\r\n }\r\n })\r\n })\r\n .test('validator', intl.formatMessage({ id: 'AUTH.GENERAL.COMPANY_EXISTS_YET' }), value => {\r\n return new Promise((resolve, reject) => {\r\n createAccountExistTaxNumber(formik.values.taxcode)\r\n .then(({ data }) => {\r\n if (!data.didError) {\r\n resolve(!data.model);\r\n } else {\r\n resolve(false);\r\n setErrorMessage(data.message);\r\n setErrorOpen(true);\r\n }\r\n })\r\n .catch((e) => {\r\n resolve(false);\r\n });\r\n })\r\n })\r\n ,\r\n phone: Yup.string()\r\n .min(3, intl.formatMessage({ id: 'AUTH.GENERAL.MINIMUM_3_SYMBOLS' }))\r\n .max(50, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_50_SYMBOLS' }))\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n email: Yup.string()\r\n .email(intl.formatMessage({ id: 'AUTH.GENERAL.WRONG_EMAIL_FORMAT' }))\r\n .min(3, intl.formatMessage({ id: 'AUTH.GENERAL.MINIMUM_3_SYMBOLS' }))\r\n .max(50, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_50_SYMBOLS' }))\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n username: Yup.string()\r\n .min(3, intl.formatMessage({ id: 'AUTH.GENERAL.MINIMUM_3_SYMBOLS' }))\r\n .max(50, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_50_SYMBOLS' }))\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n )\r\n .test('validator', intl.formatMessage({ id: 'AUTH.GENERAL.USERNAME_EXISTS_YET' }), value => {\r\n return new Promise((resolve, reject) => {\r\n checkIfUserNameIsFree(formik.values.username)\r\n .then(({ data }) => {\r\n if (!data.didError) {\r\n resolve(data.model);\r\n } else {\r\n resolve(false);\r\n setErrorMessage(data.message);\r\n setErrorOpen(true);\r\n }\r\n })\r\n .catch((e) => {\r\n resolve(false);\r\n });\r\n })\r\n })\r\n ,\r\n password: Yup.string()\r\n .min(3, intl.formatMessage({ id: 'AUTH.GENERAL.MINIMUM_3_SYMBOLS' }))\r\n .max(50, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_50_SYMBOLS' }))\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n changepassword: Yup.string()\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n )\r\n .when(\"password\", {\r\n is: (val) => (val && val.length > 0 ? true : false),\r\n then: Yup.string().oneOf(\r\n [Yup.ref(\"password\")],\r\n intl.formatMessage({ id: 'AUTH.GENERAL.PASSWORD_AND_CONFIRM_PASSWORD_DIDNT_MATCH' })\r\n ),\r\n }),\r\n acceptTerms: Yup.bool().required(\r\n intl.formatMessage({ id: 'AUTH.GENERAL.YOU_MUST_ACCEPT_THE_TERMS_AND_CONDITIONS' })\r\n )\r\n });\r\n\r\n const enableLoading = () => {\r\n setLoading(true);\r\n };\r\n\r\n const disableLoading = () => {\r\n setLoading(false);\r\n };\r\n\r\n const getInputClasses = (fieldname) => {\r\n if (formik.touched[fieldname] && formik.errors[fieldname]) {\r\n return \"is-invalid\";\r\n }\r\n\r\n if (formik.touched[fieldname] && !formik.errors[fieldname]) {\r\n return \"is-valid\";\r\n }\r\n\r\n return \"\";\r\n };\r\n\r\n const formik = useFormik({\r\n initialValues,\r\n validationSchema: RegistrationSchema,\r\n validateOnChange: false,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n setSubmitting(true);\r\n enableLoading();\r\n register(values.firstname, values.lastname, values.taxcode, values.phone, values.email, values.username, values.password)\r\n .then(({ data }) => {\r\n if (data.didError) {\r\n setErrorMessage(intl.formatMessage({\r\n id: data.errorMessage,\r\n }));\r\n setErrorOpen(true);\r\n } else {\r\n props.register(data.token);\r\n }\r\n disableLoading();\r\n setSubmitting(false);\r\n })\r\n .catch((e) => {\r\n setSubmitting(false);\r\n disableLoading();\r\n if (e != null && e.response != null && e.response.data != null) {\r\n setErrorMessage(intl.formatMessage({\r\n id: e.response.data.message,\r\n }));\r\n setErrorOpen(true);\r\n } else {\r\n setStatus(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.INVALID_LOGIN\",\r\n })\r\n );\r\n }\r\n });\r\n },\r\n });\r\n\r\n function onTermsAndConditionsClick() {\r\n window.open('/api/account/TermsAndConditions', '_blank');\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/*end::Content header*/}\r\n
\r\n
\r\n

\r\n \r\n

\r\n

\r\n \r\n

\r\n
\r\n\r\n \r\n {/* begin: Alert */}\r\n {formik.status && (\r\n
\r\n
{formik.status}
\r\n
\r\n )}\r\n {/* end: Alert */}\r\n\r\n {/* begin: TaxCode */}\r\n
\r\n \r\n {formik.touched.taxcode && formik.errors.taxcode ? (\r\n
\r\n
{formik.errors.taxcode}
\r\n
\r\n ) : null}\r\n
\r\n {name}\r\n
\r\n {address} {postCode} {postTitle}\r\n
\r\n
\r\n\r\n {/* end: TaxCode */}\r\n\r\n {/* begin: Firstname and Lastname */}\r\n
\r\n\r\n
\r\n
\r\n \r\n {formik.touched.firstname && formik.errors.firstname ? (\r\n
\r\n
{formik.errors.firstname}
\r\n
\r\n ) : null}\r\n
\r\n
\r\n \r\n {formik.touched.lastname && formik.errors.lastname ? (\r\n
\r\n
{formik.errors.lastname}
\r\n
\r\n ) : null}\r\n
\r\n
\r\n
\r\n\r\n {/* end: Fullname */}\r\n\r\n\r\n {/* begin: Phone */}\r\n
\r\n \r\n {formik.touched.email && formik.errors.phone ? (\r\n
\r\n
{formik.errors.phone}
\r\n
\r\n ) : null}\r\n
\r\n {/* end: Phone */}\r\n\r\n {/* begin: Email */}\r\n
\r\n \r\n {formik.touched.email && formik.errors.email ? (\r\n
\r\n
{formik.errors.email}
\r\n
\r\n ) : null}\r\n
\r\n {/* end: Email */}\r\n\r\n {/* begin: Username */}\r\n
\r\n \r\n {formik.touched.username && formik.errors.username ? (\r\n
\r\n
{formik.errors.username}
\r\n
\r\n ) : null}\r\n
\r\n {/* end: Username */}\r\n\r\n {/* begin: Password */}\r\n
\r\n \r\n {formik.touched.password && formik.errors.password ? (\r\n
\r\n
{formik.errors.password}
\r\n
\r\n ) : null}\r\n
\r\n {/* end: Password */}\r\n\r\n {/* begin: Confirm Password */}\r\n
\r\n \r\n {formik.touched.changepassword && formik.errors.changepassword ? (\r\n
\r\n
\r\n {formik.errors.changepassword}\r\n
\r\n
\r\n ) : null}\r\n
\r\n {/* end: Confirm Password */}\r\n\r\n {/* begin: Terms and Conditions */}\r\n
\r\n \r\n {formik.touched.acceptTerms && formik.errors.acceptTerms ? (\r\n
\r\n
{formik.errors.acceptTerms}
\r\n
\r\n ) : null}\r\n
\r\n {/* end: Terms and Conditions */}\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 setErrorOpen(false)} />\r\n\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default injectIntl(connect(null, auth.actions)(Registration));\r\n","import React, { useState } from \"react\";\r\nimport { useFormik } from \"formik\";\r\nimport { connect } from \"react-redux\";\r\nimport { Link, Redirect } from \"react-router-dom\";\r\nimport * as Yup from \"yup\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport * as auth from \"../_redux/authRedux\";\r\nimport { forgotPassword } from \"../_redux/authCrud\";\r\nimport ErrorPopup from \"../../Helpers/ErrorPopup\"\r\n\r\nconst initialValues = {\r\n username: \"\",\r\n};\r\n\r\nfunction ForgotPassword(props) {\r\n const { intl } = props;\r\nconst [isRequested, setIsRequested] = useState(false);\r\n const [errorMessage, setErrorMessage] = useState(\"\");\r\n const [errorOpen, setErrorOpen] = useState(false);\r\n\r\n const ForgotPasswordSchema = Yup.object().shape({\r\n username: Yup.string()\r\n .min(3, intl.formatMessage({ id: 'AUTH.GENERAL.MINIMUM_3_SYMBOLS' }))\r\n .max(50, intl.formatMessage({ id: 'AUTH.GENERAL.MAXIMUM_50_SYMBOLS' }))\r\n .required(\r\n intl.formatMessage({\r\n id: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n })\r\n ),\r\n });\r\n\r\n const getInputClasses = (fieldname) => {\r\n if (formik.touched[fieldname] && formik.errors[fieldname]) {\r\n return \"is-invalid\";\r\n }\r\n\r\n if (formik.touched[fieldname] && !formik.errors[fieldname]) {\r\n return \"is-valid\";\r\n }\r\n\r\n return \"\";\r\n };\r\n\r\n const formik = useFormik({\r\n initialValues,\r\n validationSchema: ForgotPasswordSchema,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n forgotPassword(values.username)\r\n .then(({ data }) => {\r\n if (data.didError) {\r\n setErrorMessage(intl.formatMessage({\r\n id: data.errorMessage,\r\n }));\r\n setErrorOpen(true);\r\n } else {\r\n setStatus(\r\n intl.formatMessage(\r\n { id: \"AUTH.FORGOT.SUCCESS_MAIL\" }\r\n )\r\n );\r\n }\r\n setIsRequested(true);\r\n setSubmitting(false);\r\n })\r\n .catch(() => {\r\n setIsRequested(false);\r\n setSubmitting(false);\r\n });\r\n },\r\n });\r\n\r\n return (\r\n <>\r\n
\r\n {/*begin::Content header*/}\r\n < div className=\"position-absolute top-0 right-0 text-right mt-5 mb-15 mb-lg-0 flex-column-auto justify-content-center py-5 px-10\" >\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {/*end::Content header*/}\r\n
\r\n
\r\n

\r\n \r\n

\r\n
\r\n \r\n
\r\n
\r\n \r\n {formik.status && (\r\n
\r\n
\r\n {formik.status}\r\n
\r\n
\r\n )}\r\n
\r\n \r\n {formik.touched.username && formik.errors.username ? (\r\n
\r\n
{formik.errors.username}
\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 setErrorOpen(false)} />\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default injectIntl(connect(null, auth.actions)(ForgotPassword));\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport {Link, Switch, Redirect} from \"react-router-dom\";\r\nimport {toAbsoluteUrl} from \"../../../../_metronic/_helpers\";\r\nimport {ContentRoute} from \"../../../../_metronic/layout\"\r\nimport Login from \"./Login\";\r\nimport Export from \"./Export\";\r\nimport ResetPassword from \"./ResetPassword\";\r\nimport Registration from \"./Registration\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport { useIntl } from \"react-intl\";\r\nimport ForgotPassword from \"./ForgotPassword\";\r\nimport \"../../../../_metronic/_assets/sass/pages/login/classic/login-1.scss\";\r\nimport { BrowserView, MobileView } from 'react-device-detect';\r\n\r\nexport function AuthPage() {\r\n const intl = useIntl();\r\n\r\n return (\r\n <>\r\n
\r\n {/*begin::Login*/}\r\n \r\n {/*begin::Aside*/}\r\n \r\n {/*begin: Aside Container*/}\r\n
\r\n {/* start:: Aside header */}\r\n \r\n \r\n \r\n {/* end:: Aside header */}\r\n\r\n {/* start:: Aside content */}\r\n
\r\n

\r\n \r\n

\r\n

\r\n \r\n

\r\n
\r\n {/* end:: Aside content */}\r\n\r\n {/* start:: Aside footer for desktop */}\r\n
\r\n
\r\n {intl.formatMessage({\r\n id: \"AUTH.GENERAL.FOOTER\"\r\n }, { year: new Date().getFullYear() })}\r\n
\r\n
\r\n {/* end:: Aside footer for desktop */}\r\n
\r\n {/*end: Aside Container*/}\r\n
\r\n {/*begin::Aside*/}\r\n\r\n {/*begin::Content*/}\r\n
\r\n\r\n {/* begin::Content body */}\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 {/*end::Content body*/}\r\n\r\n {/* begin::Mobile footer */}\r\n \r\n
\r\n {intl.formatMessage({\r\n id: \"AUTH.GENERAL.FOOTER\"\r\n }, { year: new Date().getFullYear() })}\r\n
\r\n
\r\n {/* end::Mobile footer */}\r\n
\r\n {/*end::Content*/}\r\n
\r\n {/*end::Login*/}\r\n
\r\n \r\n );\r\n}\r\n","import React, {Component} from \"react\";\r\nimport {connect} from \"react-redux\";\r\nimport {Redirect} from \"react-router-dom\";\r\nimport {LayoutSplashScreen} from \"../../../../_metronic/layout\";\r\nimport * as auth from \"../_redux/authRedux\";\r\nimport { logot } from \"../_redux/authCrud\";\r\n\r\n\r\nclass Logout extends Component {\r\n componentDidMount() {\r\n this.props.logout();\r\n logot();\r\n }\r\n\r\n render() {\r\n const { hasAuthToken } = this.props;\r\n return hasAuthToken ? : ;\r\n }\r\n}\r\n\r\nexport default connect(\r\n ({ auth }) => ({ hasAuthToken: Boolean(auth.authToken) }),\r\n auth.actions\r\n)(Logout);\r\n","import React, {useEffect, Component} from \"react\";\r\nimport {connect} from \"react-redux\";\r\nimport {Redirect} from \"react-router-dom\";\r\nimport {LayoutSplashScreen} from \"../../../../_metronic/layout\";\r\nimport * as auth from \"../_redux/authRedux\";\r\nimport { logot } from \"../_redux/authCrud\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\n\r\n\r\nfunction Relogin(props) {\r\n const { hasAuthToken } = props;\r\n const { token } = useSelector(\r\n (state) => ({\r\n token: state.activeUsers.token\r\n }),\r\n shallowEqual\r\n );\r\n\r\n useEffect(() => {\r\n props.logout();\r\n logot().then(() => {\r\n props.login(token);\r\n });\r\n });\r\n\r\n return (<>\r\n {hasAuthToken ? : }\r\n );\r\n}\r\n\r\nexport default connect(\r\n ({ auth }) => ({ hasAuthToken: Boolean(auth.authToken) }),\r\n auth.actions\r\n)(Relogin);\r\n","import React from \"react\";\r\nimport {toAbsoluteUrl} from \"../../../_metronic/_helpers\";\r\n\r\nexport function ErrorPage1() {\r\n return (\r\n
\r\n \r\n \r\n 404\r\n

\r\n

\r\n OOPS! Something went wrong here\r\n

\r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport {toAbsoluteUrl} from \"../../../_metronic/_helpers\";\r\n\r\nexport function ErrorPage2() {\r\n return (\r\n
\r\n \r\n
\r\n

OOPS!

\r\n \r\n Something went wrong here\r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport {toAbsoluteUrl} from \"../../../_metronic/_helpers\";\r\nimport \"../../../_metronic/_assets/sass/pages/error/error-3.scss\";\r\n\r\nexport function ErrorPage3() {\r\n return (\r\n
\r\n \r\n
\r\n

404

\r\n

\r\n How did you get here\r\n

\r\n

\r\n Sorry we can't seem to find the page you're looking for.\r\n

\r\n

\r\n There may be a misspelling in the URL entered,\r\n
\r\n or the page you are looking for may no longer exist.\r\n

\r\n
\r\n
\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { toAbsoluteUrl } from \"../../../_metronic/_helpers\";\r\nimport \"../../../_metronic/_assets/sass/pages/error/error-4.scss\";\r\n\r\nexport function ErrorPage4() {\r\n return (\r\n
\r\n \r\n
\r\n

\r\n 404\r\n

\r\n

\r\n ERROR\r\n

\r\n

\r\n Nothing left to do here.\r\n

\r\n
\r\n
\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { toAbsoluteUrl } from \"../../../_metronic/_helpers\";\r\nimport \"../../../_metronic/_assets/sass/pages/error/error-5.scss\";\r\n\r\nexport function ErrorPage5() {\r\n return (\r\n
\r\n \r\n
\r\n

\r\n Oops!\r\n

\r\n

\r\n Something went wrong here.\r\n

\r\n

\r\n We're working on it and we'll get it fixed\r\n
\r\n as soon possible.\r\n
\r\n You can back or use our Help Center.\r\n

\r\n
\r\n
\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { toAbsoluteUrl } from \"../../../_metronic/_helpers\";\r\nimport \"../../../_metronic/_assets/sass/pages/error/error-6.scss\";\r\n\r\nexport function ErrorPage6() {\r\n return (\r\n
\r\n \r\n
\r\n \r\n Oops...\r\n \r\n

\r\n Looks like something went wrong.\r\n
\r\n We're working on it\r\n

\r\n
\r\n
\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { Redirect, Route, Switch } from \"react-router-dom\";\r\nimport { ErrorPage1 } from \"./ErrorPage1\";\r\nimport { ErrorPage2 } from \"./ErrorPage2\";\r\nimport { ErrorPage3 } from \"./ErrorPage3\";\r\nimport { ErrorPage4 } from \"./ErrorPage4\";\r\nimport { ErrorPage5 } from \"./ErrorPage5\";\r\nimport { ErrorPage6 } from \"./ErrorPage6\";\r\n\r\nexport default function ErrorsPage() {\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 * High level router.\r\n *\r\n * Note: It's recommended to compose related routes in internal router\r\n * components (e.g: `src/app/modules/Auth/pages/AuthPage`, `src/app/BasePage`).\r\n */\r\n\r\nimport React from \"react\";\r\nimport { Redirect, Switch, Route } from \"react-router-dom\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport {Layout} from \"../_metronic/layout\";\r\nimport BasePage from \"./BasePage\";\r\nimport { Logout, AuthPage, Relogin } from \"./modules/Auth\";\r\nimport ErrorsPage from \"./modules/ErrorsExamples/ErrorsPage\";\r\n\r\nexport function Routes() {\r\n const {isAuthorized} = useSelector(\r\n ({auth}) => ({\r\n isAuthorized: auth.user != null,\r\n }),\r\n shallowEqual\r\n );\r\n\r\n return (\r\n \r\n {!isAuthorized ? (\r\n /*Render auth page when user at `/auth` and not authorized.*/\r\n \r\n \r\n \r\n ) : (\r\n /*Otherwise redirect to root page (`/`)*/\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n\r\n {!isAuthorized ? (\r\n /*Redirect to `/auth` when user is not authorized*/\r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n","/**\r\n * Entry application component used to compose providers and render Routes.\r\n * */\r\n\r\nimport React from \"react\";\r\nimport { Provider } from \"react-redux\";\r\nimport { BrowserRouter } from \"react-router-dom\";\r\nimport { PersistGate } from \"redux-persist/integration/react\";\r\nimport { Routes } from \"../app/Routes\";\r\nimport { I18nProvider } from \"../_metronic/i18n\";\r\nimport { LayoutSplashScreen, MaterialThemeProvider } from \"../_metronic/layout\";\r\n\r\nexport default function App({ store, persistor, basename }) {\r\n return (\r\n /* Provide Redux store */\r\n \r\n {/* Asynchronously persist redux stores and show `SplashScreen` while it's loading. */}\r\n }>\r\n {/* Add high level `Suspense` in case if was not handled inside the React tree. */}\r\n }>\r\n {/* Override `basename` (e.g: `homepage` in `package.json`) */}\r\n \r\n {/*This library only returns the location that has been active before the recent location change in the current window lifetime.*/}\r\n \r\n {/* Provide `react-intl` context synchronized with Redux state. */}\r\n \r\n {/* Render routes with provided `Layout`. */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","export default function setupAxios(axios, store) {\r\n axios.interceptors.request.use(\r\n config => {\r\n const {\r\n auth: { authToken }\r\n } = store.getState();\r\n\r\n if (authToken) {\r\n config.headers.Authorization = `Bearer ${authToken}`;\r\n }\r\n\r\n return config;\r\n },\r\n err => Promise.reject(err)\r\n );\r\n}\r\n","/**\r\n * Create React App entry point. This and `public/index.html` files can not be\r\n * changed or moved.\r\n */\r\nimport \"react-app-polyfill/ie11\";\r\nimport \"react-app-polyfill/stable\";\r\nimport React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport axios from \"axios\";\r\nimport * as _redux from \"./redux\";\r\nimport store, { persistor } from \"./redux/store\";\r\nimport App from \"./app/App\";\r\nimport \"./index.scss\"; // Standard version\r\n// import \"./sass/style.react.rtl.css\"; // RTL version\r\nimport \"./_metronic/_assets/plugins/keenthemes-icons/font/ki.css\";\r\nimport \"socicon/css/socicon.css\";\r\nimport \"@fortawesome/fontawesome-free/css/all.min.css\";\r\nimport \"./_metronic/_assets/plugins/flaticon/flaticon.css\";\r\nimport \"./_metronic/_assets/plugins/flaticon2/flaticon.css\";\r\n// Datepicker\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport {\r\n MetronicLayoutProvider,\r\n MetronicSplashScreenProvider,\r\n MetronicSubheaderProvider\r\n} from \"./_metronic/layout\";\r\nimport {MetronicI18nProvider} from \"./_metronic/i18n\";\r\n\r\n/**\r\n * Base URL of the website.\r\n *\r\n * @see https://facebook.github.io/create-react-app/docs/using-the-public-folder\r\n */\r\nconst { PUBLIC_URL } = process.env;\r\n\r\n/**\r\n * Inject metronic interceptors for axios.\r\n *\r\n * @see https://github.com/axios/axios#interceptors\r\n */\r\n_redux.setupAxios(axios, store);\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n","/* eslint-disable */\n\"use strict\";\r\n// DOCS: https://javascript.info/cookie\r\n\r\n// Component Definition\r\nexport var KTCookie = function() {\r\n return {\r\n // returns the cookie with the given name,\r\n // or undefined if not found\r\n getCookie: function(name) {\r\n var matches = document.cookie.match(new RegExp(\r\n \"(?:^|; )\" + name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, '\\\\$1') + \"=([^;]*)\"\r\n ));\r\n return matches ? decodeURIComponent(matches[1]) : undefined;\r\n },\r\n // Please note that a cookie value is encoded,\r\n // so getCookie uses a built-in decodeURIComponent function to decode it.\r\n setCookie: function(name, value, options) {\r\n if (!options) {\r\n options = {};\r\n }\r\n\r\n options = Object.assign({}, {path: '/'}, options);\r\n\r\n if (options.expires instanceof Date) {\r\n options.expires = options.expires.toUTCString();\r\n }\r\n\r\n var updatedCookie = encodeURIComponent(name) + \"=\" + encodeURIComponent(value);\r\n\r\n for (var optionKey in options) {\r\n if (!options.hasOwnProperty(optionKey)) {\r\n continue;\r\n }\r\n updatedCookie += \"; \" + optionKey;\r\n var optionValue = options[optionKey];\r\n if (optionValue !== true) {\r\n updatedCookie += \"=\" + optionValue;\r\n }\r\n }\r\n\r\n document.cookie = updatedCookie;\r\n },\r\n // To delete a cookie, we can call it with a negative expiration date:\r\n deleteCookie: function(name) {\r\n setCookie(name, \"\", {\r\n 'max-age': -1\r\n })\r\n }\r\n }\r\n}();\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n // module.exports = KTCookie;\r\n}\r\n","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./util\";\r\n\r\n// Component Definition\r\nvar KTOffcanvas = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n attrCustom: ''\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('offcanvas')) {\r\n the = KTUtil.data(element).get('offcanvas');\r\n } else {\r\n // Reset offcanvas\r\n Plugin.init(options);\r\n\r\n // Build offcanvas\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('offcanvas', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n init: function(options) {\r\n the.events = [];\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n\r\n the.classBase = the.options.baseClass;\r\n the.attrCustom = the.options.attrCustom;\r\n the.classShown = the.classBase + '-on';\r\n the.classOverlay = the.classBase + '-overlay';\r\n the.target;\r\n\r\n the.state = KTUtil.hasClass(element, the.classShown) ? 'shown' : 'hidden';\r\n },\r\n\r\n build: function() {\r\n // offcanvas toggle\r\n if (the.options.toggleBy) {\r\n if (typeof the.options.toggleBy === 'string') {\r\n KTUtil.addEvent(KTUtil.getById(the.options.toggleBy), 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.toggle();\r\n });\r\n } else if (the.options.toggleBy && the.options.toggleBy[0]) {\r\n if (the.options.toggleBy[0].target) {\r\n for (var i in the.options.toggleBy) {\r\n KTUtil.addEvent(KTUtil.getById(the.options.toggleBy[i].target), 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.toggle();\r\n });\r\n }\r\n } else {\r\n for (var i in the.options.toggleBy) {\r\n KTUtil.addEvent(KTUtil.getById(the.options.toggleBy[i]), 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.toggle();\r\n });\r\n }\r\n }\r\n\r\n } else if (the.options.toggleBy && the.options.toggleBy.target) {\r\n KTUtil.addEvent( KTUtil.getById(the.options.toggleBy.target), 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.toggle();\r\n });\r\n }\r\n }\r\n\r\n // offcanvas close\r\n var closeBy = KTUtil.getById(the.options.closeBy);\r\n if (closeBy) {\r\n KTUtil.addEvent(closeBy, 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.hide();\r\n });\r\n }\r\n },\r\n\r\n isShown: function() {\r\n return (the.state == 'shown' ? true : false);\r\n },\r\n\r\n toggle: function() {;\r\n Plugin.eventTrigger('toggle');\r\n\r\n if (the.state == 'shown') {\r\n Plugin.hide();\r\n } else {\r\n Plugin.show();\r\n }\r\n },\r\n\r\n show: function() {\r\n if (the.state == 'shown') {\r\n return;\r\n }\r\n\r\n Plugin.eventTrigger('beforeShow');\r\n\r\n Plugin.toggleClass('show');\r\n\r\n // Offcanvas panel\r\n KTUtil.attr(body, 'data-offcanvas-' + the.classBase, 'on');\r\n KTUtil.addClass(element, the.classShown);\r\n\r\n if (the.attrCustom.length > 0) {\r\n KTUtil.attr(body, 'data-offcanvas-' + the.classCustom, 'on');\r\n //KTUtil.addClass(body, the.classCustom);\r\n }\r\n\r\n the.state = 'shown';\r\n\r\n if (the.options.overlay) {\r\n the.overlay = KTUtil.insertAfter(document.createElement('DIV') , element );\r\n KTUtil.addClass(the.overlay, the.classOverlay);\r\n\r\n KTUtil.addEvent(the.overlay, 'click', function(e) {\r\n //e.stopPropagation();\r\n e.preventDefault();\r\n Plugin.hide(the.target);\r\n });\r\n }\r\n\r\n Plugin.eventTrigger('afterShow');\r\n },\r\n\r\n hide: function() {\r\n if (the.state == 'hidden') {\r\n return;\r\n }\r\n\r\n Plugin.eventTrigger('beforeHide');\r\n\r\n Plugin.toggleClass('hide');\r\n\r\n KTUtil.removeAttr(body, 'data-offcanvas-' + the.classBase);\r\n KTUtil.removeClass(element, the.classShown);\r\n\r\n if (the.attrCustom.length > 0) {\r\n KTUtil.removeAttr(body, 'data-offcanvas-' + the.attrCustom);\r\n }\r\n\r\n the.state = 'hidden';\r\n\r\n if (the.options.overlay && the.overlay) {\r\n KTUtil.remove(the.overlay);\r\n }\r\n\r\n Plugin.eventTrigger('afterHide');\r\n },\r\n\r\n toggleClass: function(mode) {\r\n var id = KTUtil.attr(the.target, 'id');\r\n var toggleBy;\r\n\r\n if (the.options.toggleBy && the.options.toggleBy[0] && the.options.toggleBy[0].target) {\r\n for (var i in the.options.toggleBy) {\r\n if (the.options.toggleBy[i].target === id) {\r\n toggleBy = the.options.toggleBy[i];\r\n }\r\n }\r\n } else if (the.options.toggleBy && the.options.toggleBy.target) {\r\n toggleBy = the.options.toggleBy;\r\n }\r\n\r\n if (toggleBy) {\r\n var el = KTUtil.getById(toggleBy.target);\r\n\r\n if (mode === 'show') {\r\n KTUtil.addClass(el, toggleBy.state);\r\n }\r\n\r\n if (mode === 'hide') {\r\n KTUtil.removeClass(el, toggleBy.state);\r\n }\r\n }\r\n },\r\n\r\n eventTrigger: function(name, args) {\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the, args);\r\n }\r\n } else {\r\n return event.handler.call(this, the, args);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n * @param options\r\n */\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Check if canvas is shown\r\n * @returns {boolean}\r\n */\r\n the.isShown = function() {\r\n return Plugin.isShown();\r\n };\r\n\r\n /**\r\n * Set to hide the canvas\r\n */\r\n the.hide = function() {\r\n return Plugin.hide();\r\n };\r\n\r\n /**\r\n * Set to show the canvas\r\n */\r\n the.show = function() {\r\n return Plugin.show();\r\n };\r\n\r\n /**\r\n * Attach event\r\n * @param name\r\n * @param handler\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n /**\r\n * Attach event that will be fired once\r\n * @param name\r\n * @param handler\r\n */\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n ///////////////////////////////\r\n // ** Plugin Construction ** //\r\n ///////////////////////////////\r\n\r\n // Run plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n // Init done\r\n init = true;\r\n\r\n // Return plugin instance\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n // module.exports = KTOffcanvas;\r\n}\r\n\nexport default KTOffcanvas;","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./util\";\r\n\r\n// Component Definition\r\nvar KTMenu = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n // scrollable area with Perfect Scroll\r\n scroll: {\r\n rememberPosition: false\r\n },\r\n\r\n // accordion submenu mode\r\n accordion: {\r\n slideSpeed: 200, // accordion toggle slide speed in milliseconds\r\n autoScroll: false, // enable auto scrolling(focus) to the clicked menu item\r\n autoScrollSpeed: 1200,\r\n expandAll: true // allow having multiple expanded accordions in the menu\r\n },\r\n\r\n // dropdown submenu mode\r\n dropdown: {\r\n timeout: 500 // timeout in milliseconds to show and hide the hoverable submenu dropdown\r\n }\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Run plugin\r\n * @returns {KTMenu}\r\n */\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('menu')) {\r\n the = KTUtil.data(element).get('menu');\r\n } else {\r\n // reset menu\r\n Plugin.init(options);\r\n\r\n // reset menu\r\n Plugin.reset();\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('menu', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles submenu click toggle\r\n * @returns {KTMenu}\r\n */\r\n init: function(options) {\r\n the.events = [];\r\n\r\n the.eventHandlers = {};\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n\r\n // pause menu\r\n the.pauseDropdownHoverTime = 0;\r\n\r\n the.uid = KTUtil.getUniqueID();\r\n },\r\n\r\n update: function(options) {\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n\r\n // pause menu\r\n the.pauseDropdownHoverTime = 0;\r\n\r\n // reset menu\r\n Plugin.reset();\r\n\r\n the.eventHandlers = {};\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('menu', the);\r\n },\r\n\r\n reload: function() {\r\n // reset menu\r\n Plugin.reset();\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n // reset submenu props\r\n Plugin.resetSubmenuProps();\r\n },\r\n\r\n /**\r\n * Reset menu\r\n * @returns {KTMenu}\r\n */\r\n build: function() {\r\n // General accordion submenu toggle\r\n the.eventHandlers['event_1'] = KTUtil.on( element, '.menu-toggle', 'click', Plugin.handleSubmenuAccordion);\r\n\r\n // Dropdown mode(hoverable)\r\n if (Plugin.getSubmenuMode() === 'dropdown' || Plugin.isConditionalSubmenuDropdown()) {\r\n // dropdown submenu - hover toggle\r\n the.eventHandlers['event_2'] = KTUtil.on( element, '[data-menu-toggle=\"hover\"]', 'mouseover', Plugin.handleSubmenuDrodownHoverEnter);\r\n the.eventHandlers['event_3'] = KTUtil.on( element, '[data-menu-toggle=\"hover\"]', 'mouseout', Plugin.handleSubmenuDrodownHoverExit);\r\n\r\n // dropdown submenu - click toggle\r\n the.eventHandlers['event_4'] = KTUtil.on( element, '[data-menu-toggle=\"click\"] > .menu-toggle, [data-menu-toggle=\"click\"] > .menu-link .menu-toggle', 'click', Plugin.handleSubmenuDropdownClick);\r\n the.eventHandlers['event_5'] = KTUtil.on( element, '[data-menu-toggle=\"tab\"] > .menu-toggle, [data-menu-toggle=\"tab\"] > .menu-link .menu-toggle', 'click', Plugin.handleSubmenuDropdownTabClick);\r\n }\r\n\r\n // Handle general link click\r\n the.eventHandlers['event_6'] = KTUtil.on(element, '.menu-item > .menu-link:not(.menu-toggle):not(.menu-link-toggle-skip)', 'click', Plugin.handleLinkClick);\r\n\r\n // Init scrollable menu\r\n if (the.options.scroll && the.options.scroll.height) {\r\n Plugin.scrollInit();\r\n }\r\n },\r\n\r\n /**\r\n * Reset menu\r\n * @returns {KTMenu}\r\n */\r\n reset: function() {\r\n KTUtil.off( element, 'click', the.eventHandlers['event_1']);\r\n\r\n // dropdown submenu - hover toggle\r\n KTUtil.off( element, 'mouseover', the.eventHandlers['event_2']);\r\n KTUtil.off( element, 'mouseout', the.eventHandlers['event_3']);\r\n\r\n // dropdown submenu - click toggle\r\n KTUtil.off( element, 'click', the.eventHandlers['event_4']);\r\n KTUtil.off( element, 'click', the.eventHandlers['event_5']);\r\n\r\n // handle link click\r\n KTUtil.off(element, 'click', the.eventHandlers['event_6']);\r\n },\r\n\r\n /**\r\n * Init scroll menu\r\n *\r\n */\r\n scrollInit: function() {\r\n if ( the.options.scroll && the.options.scroll.height ) {\r\n KTUtil.scrollDestroy(element, true);\r\n KTUtil.scrollInit(element, {mobileNativeScroll: true, windowScroll: false, resetHeightOnDestroy: true, handleWindowResize: true, height: the.options.scroll.height, rememberPosition: the.options.scroll.rememberPosition});\r\n } else {\r\n KTUtil.scrollDestroy(element, true);\r\n }\r\n },\r\n\r\n /**\r\n * Update scroll menu\r\n */\r\n scrollUpdate: function() {\r\n if ( the.options.scroll && the.options.scroll.height ) {\r\n KTUtil.scrollUpdate(element);\r\n }\r\n },\r\n\r\n /**\r\n * Scroll top\r\n */\r\n scrollTop: function() {\r\n if ( the.options.scroll && the.options.scroll.height ) {\r\n KTUtil.scrollTop(element);\r\n }\r\n },\r\n\r\n /**\r\n * Get submenu mode for current breakpoint and menu state\r\n * @returns {KTMenu}\r\n */\r\n getSubmenuMode: function(el) {\r\n if ( KTUtil.isBreakpointUp('lg') ) {\r\n if (el && KTUtil.hasAttr(el, 'data-menu-toggle') && KTUtil.attr(el, 'data-menu-toggle') == 'hover') {\r\n return 'dropdown';\r\n }\r\n\r\n if ( KTUtil.isset(the.options.submenu, 'desktop.state.body') ) {\r\n if ( KTUtil.hasClasses(body, the.options.submenu.desktop.state.body) ) {\r\n return the.options.submenu.desktop.state.mode;\r\n } else {\r\n return the.options.submenu.desktop.default;\r\n }\r\n } else if ( KTUtil.isset(the.options.submenu, 'desktop') ) {\r\n return the.options.submenu.desktop;\r\n }\r\n } else if ( KTUtil.isBreakpointUp('md') && KTUtil.isBreakpointDown('lg') && KTUtil.isset(the.options.submenu, 'tablet') ) {\r\n return the.options.submenu.tablet;\r\n } else if ( KTUtil.isBreakpointDown('md') && KTUtil.isset(the.options.submenu, 'mobile') ) {\r\n return the.options.submenu.mobile;\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n /**\r\n * Get submenu mode for current breakpoint and menu state\r\n * @returns {KTMenu}\r\n */\r\n isConditionalSubmenuDropdown: function() {\r\n if ( KTUtil.isBreakpointUp('lg') && KTUtil.isset(the.options.submenu, 'desktop.state.body') ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n\r\n /**\r\n * Reset submenu attributes\r\n * @returns {KTMenu}\r\n */\r\n resetSubmenuProps: function(e) {\r\n var submenus = KTUtil.findAll(element, '.menu-submenu');\r\n if ( submenus ) {\r\n for (var i = 0, len = submenus.length; i < len; i++) {\r\n var submenu = submenus[0];\r\n\r\n KTUtil.css(submenu, 'display', '');\r\n KTUtil.css(submenu, 'overflow', '');\r\n\r\n if (submenu.hasAttribute('data-hor-direction')) {\r\n KTUtil.removeClass(submenu, 'menu-submenu-left');\r\n KTUtil.removeClass(submenu, 'menu-submenu-right');\r\n KTUtil.addClass(submenu, submenu.getAttribute('data-hor-direction'));\r\n }\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Handles submenu hover toggle\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDrodownHoverEnter: function(e) {\r\n if ( Plugin.getSubmenuMode(this) === 'accordion' ) {\r\n return;\r\n }\r\n\r\n if ( the.resumeDropdownHover() === false ) {\r\n return;\r\n }\r\n\r\n var item = this;\r\n\r\n if ( item.getAttribute('data-hover') == '1' ) {\r\n item.removeAttribute('data-hover');\r\n clearTimeout( item.getAttribute('data-timeout') );\r\n item.removeAttribute('data-timeout');\r\n }\r\n\r\n Plugin.showSubmenuDropdown(item);\r\n },\r\n\r\n /**\r\n * Handles submenu hover toggle\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDrodownHoverExit: function(e) {\r\n if ( the.resumeDropdownHover() === false ) {\r\n return;\r\n }\r\n\r\n if ( Plugin.getSubmenuMode(this) === 'accordion' ) {\r\n return;\r\n }\r\n\r\n var item = this;\r\n var time = the.options.dropdown.timeout;\r\n\r\n var timeout = setTimeout(function() {\r\n if ( item.getAttribute('data-hover') == '1' ) {\r\n Plugin.hideSubmenuDropdown(item, true);\r\n }\r\n }, time);\r\n\r\n item.setAttribute('data-hover', '1');\r\n item.setAttribute('data-timeout', timeout);\r\n },\r\n\r\n /**\r\n * Handles submenu click toggle\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDropdownClick: function(e) {\r\n if ( Plugin.getSubmenuMode(this) === 'accordion' ) {\r\n return;\r\n }\r\n\r\n var item = this.closest('.menu-item');\r\n\r\n // Trigger click event handlers\r\n var result = Plugin.eventTrigger('submenuToggle', this, e);\r\n if (result === false) {\r\n return;\r\n }\r\n\r\n if ( item.getAttribute('data-menu-submenu-mode') == 'accordion' ) {\r\n return;\r\n }\r\n\r\n if ( KTUtil.hasClass(item, 'menu-item-hover') === false ) {\r\n KTUtil.addClass(item, 'menu-item-open-dropdown');\r\n Plugin.showSubmenuDropdown(item);\r\n } else {\r\n KTUtil.removeClass(item, 'menu-item-open-dropdown' );\r\n Plugin.hideSubmenuDropdown(item, true);\r\n }\r\n\r\n e.preventDefault();\r\n },\r\n\r\n /**\r\n * Handles tab click toggle\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDropdownTabClick: function(e) {\r\n if (Plugin.getSubmenuMode(this) === 'accordion') {\r\n return;\r\n }\r\n var item = this.closest('.menu-item');\r\n\r\n // Trigger click event handlers\r\n var result = Plugin.eventTrigger('submenuToggle', this, e);\r\n if (result === false) {\r\n return;\r\n }\r\n\r\n if (item.getAttribute('data-menu-submenu-mode') == 'accordion') {\r\n return;\r\n }\r\n\r\n if (KTUtil.hasClass(item, 'menu-item-hover') == false) {\r\n KTUtil.addClass(item, 'menu-item-open-dropdown');\r\n Plugin.showSubmenuDropdown(item);\r\n }\r\n\r\n e.preventDefault();\r\n },\r\n\r\n /**\r\n * Handles link click\r\n * @returns {KTMenu}\r\n */\r\n handleLinkClick: function(e) {\r\n var submenu = this.closest('.menu-item.menu-item-submenu');\r\n\r\n // Trigger click event handlers\r\n var result = Plugin.eventTrigger('linkClick', this, e);\r\n if (result === false) {\r\n return;\r\n }\r\n\r\n if ( submenu && Plugin.getSubmenuMode(submenu) === 'dropdown' ) {\r\n Plugin.hideSubmenuDropdowns();\r\n }\r\n },\r\n\r\n /**\r\n * Handles submenu dropdown close on link click\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDropdownClose: function(e, el) {\r\n // exit if its not submenu dropdown mode\r\n if (Plugin.getSubmenuMode(el) === 'accordion') {\r\n return;\r\n }\r\n\r\n var shown = element.querySelectorAll('.menu-item.menu-item-submenu.menu-item-hover:not(.menu-item-tabs)');\r\n\r\n // check if currently clicked link's parent item ha\r\n if (shown.length > 0 && KTUtil.hasClass(el, 'menu-toggle') === false && el.querySelectorAll('.menu-toggle').length === 0) {\r\n // close opened dropdown menus\r\n for (var i = 0, len = shown.length; i < len; i++) {\r\n Plugin.hideSubmenuDropdown(shown[0], true);\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * helper functions\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuAccordion: function(e, el) {\r\n var query;\r\n var item = el ? el : this;\r\n\r\n // Trigger click event handlers\r\n var result = Plugin.eventTrigger('submenuToggle', this, e);\r\n if (result === false) {\r\n return;\r\n }\r\n\r\n if ( Plugin.getSubmenuMode(el) === 'dropdown' && (query = item.closest('.menu-item') ) ) {\r\n if (query.getAttribute('data-menu-submenu-mode') != 'accordion' ) {\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n var li = item.closest('.menu-item');\r\n var submenu = KTUtil.child(li, '.menu-submenu, .menu-inner');\r\n\r\n if (KTUtil.hasClass(item.closest('.menu-item'), 'menu-item-open-always')) {\r\n return;\r\n }\r\n\r\n if ( li && submenu ) {\r\n e.preventDefault();\r\n var speed = the.options.accordion.slideSpeed;\r\n var hasClosables = false;\r\n\r\n if ( KTUtil.hasClass(li, 'menu-item-open') === false ) {\r\n // hide other accordions\r\n if ( the.options.accordion.expandAll === false ) {\r\n var subnav = item.closest('.menu-nav, .menu-subnav');\r\n var closables = KTUtil.children(subnav, '.menu-item.menu-item-open.menu-item-submenu:not(.menu-item-here):not(.menu-item-open-always)');\r\n\r\n if ( subnav && closables ) {\r\n for (var i = 0, len = closables.length; i < len; i++) {\r\n var el_ = closables[0];\r\n var submenu_ = KTUtil.child(el_, '.menu-submenu');\r\n if ( submenu_ ) {\r\n KTUtil.slideUp(submenu_, speed, function() {\r\n Plugin.scrollUpdate();\r\n KTUtil.removeClass(el_, 'menu-item-open');\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n KTUtil.slideDown(submenu, speed, function() {\r\n Plugin.scrollToItem(item);\r\n Plugin.scrollUpdate();\r\n\r\n Plugin.eventTrigger('submenuToggle', submenu, e);\r\n });\r\n\r\n KTUtil.addClass(li, 'menu-item-open');\r\n\r\n } else {\r\n KTUtil.slideUp(submenu, speed, function() {\r\n Plugin.scrollToItem(item);\r\n Plugin.eventTrigger('submenuToggle', submenu, e);\r\n });\r\n\r\n KTUtil.removeClass(li, 'menu-item-open');\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * scroll to item function\r\n * @returns {KTMenu}\r\n */\r\n scrollToItem: function(item) {\r\n // handle auto scroll for accordion submenus\r\n if ( KTUtil.isBreakpointUp('lg') && the.options.accordion.autoScroll && element.getAttribute('data-menu-scroll') !== '1' ) {\r\n KTUtil.scrollTo(item, the.options.accordion.autoScrollSpeed);\r\n }\r\n },\r\n\r\n /**\r\n * Hide submenu dropdown\r\n * @returns {KTMenu}\r\n */\r\n hideSubmenuDropdown: function(item, classAlso) {\r\n // remove submenu activation class\r\n if ( classAlso ) {\r\n KTUtil.removeClass(item, 'menu-item-hover');\r\n KTUtil.removeClass(item, 'menu-item-active-tab');\r\n }\r\n\r\n // clear timeout\r\n item.removeAttribute('data-hover');\r\n\r\n if ( item.getAttribute('data-menu-toggle-class') ) {\r\n KTUtil.removeClass(body, item.getAttribute('data-menu-toggle-class'));\r\n }\r\n\r\n var timeout = item.getAttribute('data-timeout');\r\n item.removeAttribute('data-timeout');\r\n clearTimeout(timeout);\r\n },\r\n\r\n /**\r\n * Hide submenu dropdowns\r\n * @returns {KTMenu}\r\n */\r\n hideSubmenuDropdowns: function() {\r\n var items;\r\n if ( items = element.querySelectorAll('.menu-item-submenu.menu-item-hover:not(.menu-item-tabs):not([data-menu-toggle=\"tab\"])') ) {\r\n for (var j = 0, cnt = items.length; j < cnt; j++) {\r\n Plugin.hideSubmenuDropdown(items[j], true);\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * helper functions\r\n * @returns {KTMenu}\r\n */\r\n showSubmenuDropdown: function(item) {\r\n // close active submenus\r\n var list = element.querySelectorAll('.menu-item-submenu.menu-item-hover, .menu-item-submenu.menu-item-active-tab');\r\n\r\n if ( list ) {\r\n for (var i = 0, len = list.length; i < len; i++) {\r\n var el = list[i];\r\n if ( item !== el && el.contains(item) === false && item.contains(el) === false ) {\r\n Plugin.hideSubmenuDropdown(el, true);\r\n }\r\n }\r\n }\r\n\r\n // add submenu activation class\r\n KTUtil.addClass(item, 'menu-item-hover');\r\n\r\n // Change the alignment of submenu is offscreen.\r\n var submenu = KTUtil.find(item, '.menu-submenu');\r\n\r\n if (submenu && submenu.hasAttribute('data-hor-direction') === false) {\r\n if (KTUtil.hasClass(submenu, 'menu-submenu-left')) {\r\n submenu.setAttribute('data-hor-direction', 'menu-submenu-left');\r\n } else if (KTUtil.hasClass(submenu, 'menu-submenu-right')) {\r\n submenu.setAttribute('data-hor-direction', 'menu-submenu-right');\r\n }\r\n }\r\n\r\n if ( submenu && KTUtil.isOffscreen(submenu, 'left', 15) === true ) {\r\n KTUtil.removeClass(submenu, 'menu-submenu-left');\r\n KTUtil.addClass(submenu, 'menu-submenu-right');\r\n } else if ( submenu && KTUtil.isOffscreen(submenu, 'right', 15) === true ) {\r\n KTUtil.removeClass(submenu, 'menu-submenu-right');\r\n KTUtil.addClass(submenu, 'menu-submenu-left');\r\n }\r\n\r\n if ( item.getAttribute('data-menu-toggle-class') ) {\r\n KTUtil.addClass(body, item.getAttribute('data-menu-toggle-class'));\r\n }\r\n },\r\n\r\n /**\r\n * Handles submenu slide toggle\r\n * @returns {KTMenu}\r\n */\r\n createSubmenuDropdownClickDropoff: function(el) {\r\n var query;\r\n var zIndex = (query = KTUtil.child(el, '.menu-submenu') ? KTUtil.css(query, 'z-index') : 0) - 1;\r\n\r\n var dropoff = document.createElement('
');\r\n\r\n body.appendChild(dropoff);\r\n\r\n KTUtil.addEvent(dropoff, 'click', function(e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n KTUtil.remove(this);\r\n Plugin.hideSubmenuDropdown(el, true);\r\n });\r\n },\r\n\r\n /**\r\n * Handles submenu hover toggle\r\n * @returns {KTMenu}\r\n */\r\n pauseDropdownHover: function(time) {\r\n var date = new Date();\r\n\r\n the.pauseDropdownHoverTime = date.getTime() + time;\r\n },\r\n\r\n /**\r\n * Handles submenu hover toggle\r\n * @returns {KTMenu}\r\n */\r\n resumeDropdownHover: function() {\r\n var date = new Date();\r\n\r\n return (date.getTime() > the.pauseDropdownHoverTime ? true : false);\r\n },\r\n\r\n /**\r\n * Reset menu's current active item\r\n * @returns {KTMenu}\r\n */\r\n resetActiveItem: function(item) {\r\n var list;\r\n var parents;\r\n\r\n list = element.querySelectorAll('.menu-item-active');\r\n\r\n for (var i = 0, len = list.length; i < len; i++) {\r\n var el = list[0];\r\n KTUtil.removeClass(el, 'menu-item-active');\r\n KTUtil.hide( KTUtil.child(el, '.menu-submenu') );\r\n parents = KTUtil.parents(el, '.menu-item-submenu') || [];\r\n\r\n for (var i_ = 0, len_ = parents.length; i_ < len_; i_++) {\r\n var el_ = parents[i];\r\n KTUtil.removeClass(el_, 'menu-item-open');\r\n KTUtil.hide( KTUtil.child(el_, '.menu-submenu') );\r\n }\r\n }\r\n\r\n // close open submenus\r\n if ( the.options.accordion.expandAll === false ) {\r\n if ( list = element.querySelectorAll('.menu-item-open') ) {\r\n for (var i = 0, len = list.length; i < len; i++) {\r\n KTUtil.removeClass(parents[0], 'menu-item-open');\r\n }\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Sets menu's active item\r\n * @returns {KTMenu}\r\n */\r\n setActiveItem: function(item) {\r\n // reset current active item\r\n Plugin.resetActiveItem();\r\n\r\n var parents = KTUtil.parents(item, '.menu-item-submenu') || [];\r\n for (var i = 0, len = parents.length; i < len; i++) {\r\n KTUtil.addClass(parents[i], 'menu-item-open');\r\n }\r\n\r\n KTUtil.addClass(item, 'menu-item-active');\r\n },\r\n\r\n /**\r\n * Returns page breadcrumbs for the menu's active item\r\n * @returns {KTMenu}\r\n */\r\n getBreadcrumbs: function(item) {\r\n var query;\r\n var breadcrumbs = [];\r\n var link = KTUtil.child(item, '.menu-link');\r\n\r\n breadcrumbs.push({\r\n text: (query = KTUtil.child(link, '.menu-text') ? query.innerHTML : ''),\r\n title: link.getAttribute('title'),\r\n href: link.getAttribute('href')\r\n });\r\n\r\n var parents = KTUtil.parents(item, '.menu-item-submenu');\r\n for (var i = 0, len = parents.length; i < len; i++) {\r\n var submenuLink = KTUtil.child(parents[i], '.menu-link');\r\n\r\n breadcrumbs.push({\r\n text: (query = KTUtil.child(submenuLink, '.menu-text') ? query.innerHTML : ''),\r\n title: submenuLink.getAttribute('title'),\r\n href: submenuLink.getAttribute('href')\r\n });\r\n }\r\n\r\n return breadcrumbs.reverse();\r\n },\r\n\r\n /**\r\n * Returns page title for the menu's active item\r\n * @returns {KTMenu}\r\n */\r\n getPageTitle: function(item) {\r\n var query;\r\n\r\n return (query = KTUtil.child(item, '.menu-text') ? query.innerHTML : '');\r\n },\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name, target, e) {\r\n for (var i = 0; i < the.events.length; i++ ) {\r\n var event = the.events[i];\r\n if ( event.name == name ) {\r\n if ( event.one == true ) {\r\n if ( event.fired == false ) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, target, e);\r\n }\r\n } else {\r\n return event.handler.call(this, target, e);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n },\r\n\r\n removeEvent: function(name) {\r\n if (the.events[name]) {\r\n delete the.events[name];\r\n }\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Update scroll\r\n */\r\n the.scrollUpdate = function() {\r\n return Plugin.scrollUpdate();\r\n };\r\n\r\n /**\r\n * Re-init scroll\r\n */\r\n the.scrollReInit = function() {\r\n return Plugin.scrollInit();\r\n };\r\n\r\n /**\r\n * Scroll top\r\n */\r\n the.scrollTop = function() {\r\n return Plugin.scrollTop();\r\n };\r\n\r\n /**\r\n * Set active menu item\r\n */\r\n the.setActiveItem = function(item) {\r\n return Plugin.setActiveItem(item);\r\n };\r\n\r\n the.reload = function() {\r\n return Plugin.reload();\r\n };\r\n\r\n the.update = function(options) {\r\n return Plugin.update(options);\r\n };\r\n\r\n /**\r\n * Set breadcrumb for menu item\r\n */\r\n the.getBreadcrumbs = function(item) {\r\n return Plugin.getBreadcrumbs(item);\r\n };\r\n\r\n /**\r\n * Set page title for menu item\r\n */\r\n the.getPageTitle = function(item) {\r\n return Plugin.getPageTitle(item);\r\n };\r\n\r\n /**\r\n * Get submenu mode\r\n */\r\n the.getSubmenuMode = function(el) {\r\n return Plugin.getSubmenuMode(el);\r\n };\r\n\r\n /**\r\n * Hide dropdown\r\n * @returns {Object}\r\n */\r\n the.hideDropdown = function(item) {\r\n Plugin.hideSubmenuDropdown(item, true);\r\n };\r\n\r\n /**\r\n * Hide dropdowns\r\n * @returns {Object}\r\n */\r\n the.hideDropdowns = function() {\r\n Plugin.hideSubmenuDropdowns();\r\n };\r\n\r\n /**\r\n * Disable menu for given time\r\n * @returns {Object}\r\n */\r\n the.pauseDropdownHover = function(time) {\r\n Plugin.pauseDropdownHover(time);\r\n };\r\n\r\n /**\r\n * Disable menu for given time\r\n * @returns {Object}\r\n */\r\n the.resumeDropdownHover = function() {\r\n return Plugin.resumeDropdownHover();\r\n };\r\n\r\n /**\r\n * Register event\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n the.off = function(name) {\r\n return Plugin.removeEvent(name);\r\n };\r\n\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n ///////////////////////////////\r\n // ** Plugin Construction ** //\r\n ///////////////////////////////\r\n\r\n // Run plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n // Handle plugin on window resize\r\n KTUtil.addResizeHandler(function() {\r\n if (init) {\r\n the.reload();\r\n }\r\n });\r\n\r\n // Init done\r\n init = true;\r\n\r\n // Return plugin instance\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n // module.exports = KTMenu;\r\n}\r\n\r\n// Plugin global lazy initialization\r\ndocument.addEventListener(\"click\", function (e) {\r\n var body = KTUtil.getByTagName('body')[0];\r\n var query;\r\n if ( query = body.querySelectorAll('.menu-nav .menu-item.menu-item-submenu.menu-item-hover:not(.menu-item-tabs)[data-menu-toggle=\"click\"]') ) {\r\n for (var i = 0, len = query.length; i < len; i++) {\r\n var element = query[i].closest('.menu-nav').parentNode;\r\n\r\n if ( element ) {\r\n var the = KTUtil.data(element).get('menu');\r\n\r\n if ( !the ) {\r\n break;\r\n }\r\n\r\n if ( !the || the.getSubmenuMode() !== 'dropdown' ) {\r\n break;\r\n }\r\n\r\n if ( e.target !== element && element.contains(e.target) === false ) {\r\n the.hideDropdowns();\r\n }\r\n }\r\n }\r\n }\r\n});\r\n\nexport default KTMenu;","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./util\";\r\n\r\n// Component Definition\r\nvar KTToggle = function(toggleElement, targetElement, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = toggleElement;\r\n var target = targetElement;\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n targetToggleMode: 'class' // class|attribute\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Construct\r\n */\r\n\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('toggle')) {\r\n the = KTUtil.data(element).get('toggle');\r\n } else {\r\n // reset menu\r\n Plugin.init(options);\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('toggle', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles subtoggle click toggle\r\n */\r\n init: function(options) {\r\n the.element = element;\r\n the.events = [];\r\n\r\n // Merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n\r\n //alert(the.options.target.tagName);\r\n the.target = target;\r\n\r\n the.targetState = the.options.targetState;\r\n the.toggleState = the.options.toggleState;\r\n\r\n if (the.options.targetToggleMode == 'class') {\r\n the.state = KTUtil.hasClasses(the.target, the.targetState) ? 'on' : 'off';\r\n } else {\r\n the.state = KTUtil.hasAttr(the.target, 'data-' + the.targetState) ? KTUtil.attr(the.target, 'data-' + the.targetState) : 'off';\r\n }\r\n },\r\n\r\n /**\r\n * Setup toggle\r\n */\r\n build: function() {\r\n KTUtil.addEvent(element, 'mouseup', Plugin.toggle);\r\n },\r\n\r\n /**\r\n * Handles offcanvas click toggle\r\n */\r\n toggle: function(e) {\r\n Plugin.eventTrigger('beforeToggle');\r\n\r\n if (the.state == 'off') {\r\n Plugin.toggleOn();\r\n } else {\r\n Plugin.toggleOff();\r\n }\r\n\r\n Plugin.eventTrigger('afterToggle');\r\n\r\n e.preventDefault();\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles toggle click toggle\r\n */\r\n toggleOn: function() {\r\n Plugin.eventTrigger('beforeOn');\r\n\r\n if (the.options.targetToggleMode == 'class') {\r\n KTUtil.addClass(the.target, the.targetState);\r\n } else {\r\n KTUtil.attr(the.target, 'data-' + the.targetState, 'on');\r\n }\r\n\r\n if (the.toggleState) {\r\n KTUtil.addClass(element, the.toggleState);\r\n }\r\n\r\n the.state = 'on';\r\n\r\n Plugin.eventTrigger('afterOn');\r\n\r\n Plugin.eventTrigger('toggle');\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles toggle click toggle\r\n */\r\n toggleOff: function() {\r\n Plugin.eventTrigger('beforeOff');\r\n\r\n if (the.options.targetToggleMode == 'class') {\r\n KTUtil.removeClass(the.target, the.targetState);\r\n } else {\r\n KTUtil.removeAttr(the.target, 'data-' + the.targetState);\r\n }\r\n\r\n if (the.toggleState) {\r\n KTUtil.removeClass(element, the.toggleState);\r\n }\r\n\r\n the.state = 'off';\r\n\r\n Plugin.eventTrigger('afterOff');\r\n\r\n Plugin.eventTrigger('toggle');\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name) {\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the);\r\n }\r\n } else {\r\n return event.handler.call(this, the);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n\r\n return the;\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Get toggle state\r\n */\r\n the.getState = function() {\r\n return the.state;\r\n };\r\n\r\n /**\r\n * Toggle\r\n */\r\n the.toggle = function() {\r\n return Plugin.toggle();\r\n };\r\n\r\n /**\r\n * Toggle on\r\n */\r\n the.toggleOn = function() {\r\n return Plugin.toggleOn();\r\n };\r\n\r\n /**\r\n * Toggle off\r\n */\r\n the.toggleOff = function() {\r\n return Plugin.toggleOff();\r\n };\r\n\r\n /**\r\n * Attach event\r\n * @returns {KTToggle}\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n /**\r\n * Attach event that will be fired once\r\n * @returns {KTToggle}\r\n */\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n // Construct plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n // module.exports = KTToggle;\r\n}\r\n\nexport default KTToggle;","/* eslint-disable */\n\"use strict\";\n\nimport PerfectScrollbar from \"perfect-scrollbar\";\n\nimport { KTCookie } from \"./cookie.js\";\r\n\r\n/**\r\n * @class KTUtil base utilize class that privides helper functions\r\n */\r\n\r\n// Polyfills\r\n/**\r\n * Element.matches() polyfill (simple version)\r\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\r\n */\r\nif (!Element.prototype.matches) {\r\n\tElement.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\r\n}\r\n\r\n/**\r\n * Element.closest() polyfill\r\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill\r\n */\r\nif (!Element.prototype.closest) {\r\n\tif (!Element.prototype.matches) {\r\n\t\tElement.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\r\n\t}\r\n\tElement.prototype.closest = function (s) {\r\n\t\tvar el = this;\r\n\t\tvar ancestor = this;\r\n\t\tif (!document.documentElement.contains(el)) return null;\r\n\t\tdo {\r\n\t\t\tif (ancestor.matches(s)) return ancestor;\r\n\t\t\tancestor = ancestor.parentElement;\r\n\t\t} while (ancestor !== null);\r\n\t\treturn null;\r\n\t};\r\n}\r\n\r\n/**\r\n * ChildNode.remove() polyfill\r\n * https://gomakethings.com/removing-an-element-from-the-dom-the-es6-way/\r\n * @author Chris Ferdinandi\r\n * @license MIT\r\n */\r\n(function (elem) {\r\n\tfor (var i = 0; i < elem.length; i++) {\r\n\t\tif (!window[elem[i]] || 'remove' in window[elem[i]].prototype) continue;\r\n\t\twindow[elem[i]].prototype.remove = function () {\r\n\t\t\tthis.parentNode.removeChild(this);\r\n\t\t};\r\n\t}\r\n})(['Element', 'CharacterData', 'DocumentType']);\r\n\r\n\r\n//\r\n// requestAnimationFrame polyfill by Erik Möller.\r\n// With fixes from Paul Irish and Tino Zijdel\r\n//\r\n// http://paulirish.com/2011/requestanimationframe-for-smart-animating/\r\n// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating\r\n//\r\n// MIT license\r\n//\r\n(function() {\r\n var lastTime = 0;\r\n var vendors = ['webkit', 'moz'];\r\n for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\r\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\r\n window.cancelAnimationFrame =\r\n window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\r\n }\r\n\r\n if (!window.requestAnimationFrame)\r\n window.requestAnimationFrame = function(callback) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n var id = window.setTimeout(function() {\r\n callback(currTime + timeToCall);\r\n }, timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n\r\n if (!window.cancelAnimationFrame)\r\n window.cancelAnimationFrame = function(id) {\r\n clearTimeout(id);\r\n };\r\n}());\r\n\r\n// Source: https://github.com/jserz/js_piece/blob/master/DOM/ParentNode/prepend()/prepend().md\r\n(function(arr) {\r\n arr.forEach(function(item) {\r\n if (item.hasOwnProperty('prepend')) {\r\n return;\r\n }\r\n Object.defineProperty(item, 'prepend', {\r\n configurable: true,\r\n enumerable: true,\r\n writable: true,\r\n value: function prepend() {\r\n var argArr = Array.prototype.slice.call(arguments),\r\n docFrag = document.createDocumentFragment();\r\n\r\n argArr.forEach(function(argItem) {\r\n var isNode = argItem instanceof Node;\r\n docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)));\r\n });\r\n\r\n this.insertBefore(docFrag, this.firstChild);\r\n }\r\n });\r\n });\r\n})([Element.prototype, Document.prototype, DocumentFragment.prototype]);\r\n\r\n// getAttributeNames\r\nif (Element.prototype.getAttributeNames == undefined) {\r\n Element.prototype.getAttributeNames = function () {\r\n var attributes = this.attributes;\r\n var length = attributes.length;\r\n var result = new Array(length);\r\n for (var i = 0; i < length; i++) {\r\n result[i] = attributes[i].name;\r\n }\r\n return result;\r\n };\r\n}\r\n\r\n// Global variables\r\nwindow.KTUtilElementDataStore = {};\r\nwindow.KTUtilElementDataStoreID = 0;\r\nwindow.KTUtilDelegatedEventHandlers = {};\r\n\r\nexport var KTUtil = function() {\r\n var resizeHandlers = [];\r\n\r\n /** @type {object} breakpoints The device width breakpoints **/\r\n var breakpoints = {\r\n sm: 544, // Small screen / phone\r\n md: 768, // Medium screen / tablet\r\n lg: 992, // Large screen / desktop\r\n xl: 1200 // Extra large screen / wide desktop\r\n };\r\n\r\n /**\r\n * Handle window resize event with some\r\n * delay to attach event handlers upon resize complete\r\n */\r\n var _windowResizeHandler = function() {\r\n var _runResizeHandlers = function() {\r\n // reinitialize other subscribed elements\r\n for (var i = 0; i < resizeHandlers.length; i++) {\r\n var each = resizeHandlers[i];\r\n each.call();\r\n }\r\n };\r\n\r\n var timer;\r\n\r\n window.addEventListener('resize', function() {\r\n KTUtil.throttle(timer, function() {\r\n _runResizeHandlers();\r\n }, 200);\r\n });\r\n };\r\n\r\n return {\r\n /**\r\n * Class main initializer.\r\n * @param {object} settings.\r\n * @returns null\r\n */\r\n //main function to initiate the theme\r\n init: function(settings) {\r\n if (settings && settings.breakpoints) {\r\n breakpoints = settings.breakpoints;\r\n }\r\n\r\n _windowResizeHandler();\r\n },\r\n\r\n /**\r\n * Adds window resize event handler.\r\n * @param {function} callback function.\r\n */\r\n addResizeHandler: function(callback) {\r\n resizeHandlers.push(callback);\r\n },\r\n\r\n /**\r\n * Removes window resize event handler.\r\n * @param {function} callback function.\r\n */\r\n removeResizeHandler: function(callback) {\r\n for (var i = 0; i < resizeHandlers.length; i++) {\r\n if (callback === resizeHandlers[i]) {\r\n delete resizeHandlers[i];\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Trigger window resize handlers.\r\n */\r\n runResizeHandlers: function() {\r\n _runResizeHandlers();\r\n },\r\n\r\n resize: function() {\r\n if (typeof(Event) === 'function') {\r\n // modern browsers\r\n window.dispatchEvent(new Event('resize'));\r\n } else {\r\n // for IE and other old browsers\r\n // causes deprecation warning on modern browsers\r\n var evt = window.document.createEvent('UIEvents');\r\n evt.initUIEvent('resize', true, false, window, 0);\r\n window.dispatchEvent(evt);\r\n }\r\n },\r\n\r\n /**\r\n * Get GET parameter value from URL.\r\n * @param {string} paramName Parameter name.\r\n * @returns {string}\r\n */\r\n getURLParam: function(paramName) {\r\n var searchString = window.location.search.substring(1),\r\n i, val, params = searchString.split(\"&\");\r\n\r\n for (i = 0; i < params.length; i++) {\r\n val = params[i].split(\"=\");\r\n if (val[0] == paramName) {\r\n return unescape(val[1]);\r\n }\r\n }\r\n\r\n return null;\r\n },\r\n\r\n /**\r\n * Checks whether current device is mobile touch.\r\n * @returns {boolean}\r\n */\r\n isMobileDevice: function() {\r\n var test = (this.getViewPort().width < this.getBreakpoint('lg') ? true : false);\r\n\r\n if (test === false) {\r\n // For use within normal web clients\r\n test = navigator.userAgent.match(/iPad/i) != null;\r\n }\r\n\r\n return test;\r\n },\r\n\r\n /**\r\n * Checks whether current device is desktop.\r\n * @returns {boolean}\r\n */\r\n isDesktopDevice: function() {\r\n return KTUtil.isMobileDevice() ? false : true;\r\n },\r\n\r\n /**\r\n * Gets browser window viewport size. Ref:\r\n * http://andylangton.co.uk/articles/javascript/get-viewport-size-javascript/\r\n * @returns {object}\r\n */\r\n getViewPort: function() {\r\n var e = window,\r\n a = 'inner';\r\n if (!('innerWidth' in window)) {\r\n a = 'client';\r\n e = document.documentElement || document.body;\r\n }\r\n\r\n return {\r\n width: e[a + 'Width'],\r\n height: e[a + 'Height']\r\n };\r\n },\r\n\r\n /**\r\n * Checks whether given device mode is currently activated.\r\n * @param {string} mode Responsive mode name(e.g: desktop,\r\n * desktop-and-tablet, tablet, tablet-and-mobile, mobile)\r\n * @returns {boolean}\r\n */\r\n isInResponsiveRange: function(mode) {\r\n var breakpoint = this.getViewPort().width;\r\n\r\n if (mode == 'general') {\r\n return true;\r\n } else if (mode == 'desktop' && breakpoint >= (this.getBreakpoint('lg') + 1)) {\r\n return true;\r\n } else if (mode == 'tablet' && (breakpoint >= (this.getBreakpoint('md') + 1) && breakpoint < this.getBreakpoint('lg'))) {\r\n return true;\r\n } else if (mode == 'mobile' && breakpoint <= this.getBreakpoint('md')) {\r\n return true;\r\n } else if (mode == 'desktop-and-tablet' && breakpoint >= (this.getBreakpoint('md') + 1)) {\r\n return true;\r\n } else if (mode == 'tablet-and-mobile' && breakpoint <= this.getBreakpoint('lg')) {\r\n return true;\r\n } else if (mode == 'minimal-desktop-and-below' && breakpoint <= this.getBreakpoint('xl')) {\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n\t\t/**\r\n * Checks whether given device mode is currently activated.\r\n * @param {string} mode Responsive mode name(e.g: desktop,\r\n * desktop-and-tablet, tablet, tablet-and-mobile, mobile)\r\n * @returns {boolean}\r\n */\r\n isBreakpointUp: function(mode) {\r\n var width = this.getViewPort().width;\r\n\t\t\tvar breakpoint = this.getBreakpoint(mode);\r\n\r\n\t\t\treturn (width >= breakpoint);\r\n },\r\n\r\n\t\tisBreakpointDown: function(mode) {\r\n var width = this.getViewPort().width;\r\n\t\t\tvar breakpoint = this.getBreakpoint(mode);\r\n\r\n\t\t\treturn (width < breakpoint);\r\n },\r\n\r\n /**\r\n * Generates unique ID for give prefix.\r\n * @param {string} prefix Prefix for generated ID\r\n * @returns {boolean}\r\n */\r\n getUniqueID: function(prefix) {\r\n return prefix + Math.floor(Math.random() * (new Date()).getTime());\r\n },\r\n\r\n /**\r\n * Gets window width for give breakpoint mode.\r\n * @param {string} mode Responsive mode name(e.g: xl, lg, md, sm)\r\n * @returns {number}\r\n */\r\n getBreakpoint: function(mode) {\r\n return breakpoints[mode];\r\n },\r\n\r\n /**\r\n * Checks whether object has property matchs given key path.\r\n * @param {object} obj Object contains values paired with given key path\r\n * @param {string} keys Keys path seperated with dots\r\n * @returns {object}\r\n */\r\n isset: function(obj, keys) {\r\n var stone;\r\n\r\n keys = keys || '';\r\n\r\n if (keys.indexOf('[') !== -1) {\r\n throw new Error('Unsupported object path notation.');\r\n }\r\n\r\n keys = keys.split('.');\r\n\r\n do {\r\n if (obj === undefined) {\r\n return false;\r\n }\r\n\r\n stone = keys.shift();\r\n\r\n if (!obj.hasOwnProperty(stone)) {\r\n return false;\r\n }\r\n\r\n obj = obj[stone];\r\n\r\n } while (keys.length);\r\n\r\n return true;\r\n },\r\n\r\n /**\r\n * Gets highest z-index of the given element parents\r\n * @param {object} el jQuery element object\r\n * @returns {number}\r\n */\r\n getHighestZindex: function(el) {\r\n var position, value;\r\n\r\n while (el && el !== document) {\r\n // Ignore z-index if position is set to a value where z-index is ignored by the browser\r\n // This makes behavior of this function consistent across browsers\r\n // WebKit always returns auto if the element is positioned\r\n position = KTUtil.css(el, 'position');\r\n\r\n if (position === \"absolute\" || position === \"relative\" || position === \"fixed\") {\r\n // IE returns 0 when zIndex is not specified\r\n // other browsers return a string\r\n // we ignore the case of nested elements with an explicit value of 0\r\n //
\r\n value = parseInt(KTUtil.css(el, 'z-index'));\r\n\r\n if (!isNaN(value) && value !== 0) {\r\n return value;\r\n }\r\n }\r\n\r\n el = el.parentNode;\r\n }\r\n\r\n return null;\r\n },\r\n\r\n /**\r\n * Checks whether the element has any parent with fixed positionfreg\r\n * @param {object} el jQuery element object\r\n * @returns {boolean}\r\n */\r\n hasFixedPositionedParent: function(el) {\r\n var position;\r\n\r\n while (el && el !== document) {\r\n position = KTUtil.css(el, 'position');\r\n\r\n if (position === \"fixed\") {\r\n return true;\r\n }\r\n\r\n el = el.parentNode;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n /**\r\n * Simulates delay\r\n */\r\n sleep: function(milliseconds) {\r\n var start = new Date().getTime();\r\n for (var i = 0; i < 1e7; i++) {\r\n if ((new Date().getTime() - start) > milliseconds) {\r\n break;\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Gets randomly generated integer value within given min and max range\r\n * @param {number} min Range start value\r\n * @param {number} max Range end value\r\n * @returns {number}\r\n */\r\n getRandomInt: function(min, max) {\r\n return Math.floor(Math.random() * (max - min + 1)) + min;\r\n },\r\n\r\n /**\r\n * Checks whether Angular library is included\r\n * @returns {boolean}\r\n */\r\n isAngularVersion: function() {\r\n return window.Zone !== undefined ? true : false;\r\n },\r\n\r\n // jQuery Workarounds\r\n\r\n // Deep extend: $.extend(true, {}, objA, objB);\r\n deepExtend: function(out) {\r\n out = out || {};\r\n\r\n for (var i = 1; i < arguments.length; i++) {\r\n var obj = arguments[i];\r\n\r\n if (!obj)\r\n continue;\r\n\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n if (typeof obj[key] === 'object')\r\n out[key] = KTUtil.deepExtend(out[key], obj[key]);\r\n else\r\n out[key] = obj[key];\r\n }\r\n }\r\n }\r\n\r\n return out;\r\n },\r\n\r\n // extend: $.extend({}, objA, objB);\r\n extend: function(out) {\r\n out = out || {};\r\n\r\n for (var i = 1; i < arguments.length; i++) {\r\n if (!arguments[i])\r\n continue;\r\n\r\n for (var key in arguments[i]) {\r\n if (arguments[i].hasOwnProperty(key))\r\n out[key] = arguments[i][key];\r\n }\r\n }\r\n\r\n return out;\r\n },\r\n\r\n getById: function(el) {\r\n if (typeof el === 'string') {\r\n return document.getElementById(el);\r\n } else {\r\n return el;\r\n }\r\n },\r\n\r\n getByTag: function(query) {\r\n return document.getElementsByTagName(query);\r\n },\r\n\r\n getByTagName: function(query) {\r\n return document.getElementsByTagName(query);\r\n },\r\n\r\n getByClass: function(query) {\r\n return document.getElementsByClassName(query);\r\n },\r\n\r\n getBody: function() {\r\n return document.getElementsByTagName('body')[0];\r\n },\r\n\r\n /**\r\n * Checks whether the element has given classes\r\n * @param {object} el jQuery element object\r\n * @param {string} Classes string\r\n * @returns {boolean}\r\n */\r\n hasClasses: function(el, classes) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n var classesArr = classes.split(\" \");\r\n\r\n for (var i = 0; i < classesArr.length; i++) {\r\n if (KTUtil.hasClass(el, KTUtil.trim(classesArr[i])) == false) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n\r\n hasClass: function(el, className) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n return el.classList ? el.classList.contains(className) : new RegExp('\\\\b' + className + '\\\\b').test(el.className);\r\n },\r\n\r\n addClass: function(el, className) {\r\n if (!el || typeof className === 'undefined') {\r\n return;\r\n }\r\n\r\n var classNames = className.split(' ');\r\n\r\n if (el.classList) {\r\n for (var i = 0; i < classNames.length; i++) {\r\n if (classNames[i] && classNames[i].length > 0) {\r\n el.classList.add(KTUtil.trim(classNames[i]));\r\n }\r\n }\r\n } else if (!KTUtil.hasClass(el, className)) {\r\n for (var x = 0; x < classNames.length; x++) {\r\n el.className += ' ' + KTUtil.trim(classNames[x]);\r\n }\r\n }\r\n },\r\n\r\n removeClass: function(el, className) {\r\n if (!el || typeof className === 'undefined') {\r\n return;\r\n }\r\n\r\n var classNames = className.split(' ');\r\n\r\n if (el.classList) {\r\n for (var i = 0; i < classNames.length; i++) {\r\n el.classList.remove(KTUtil.trim(classNames[i]));\r\n }\r\n } else if (KTUtil.hasClass(el, className)) {\r\n for (var x = 0; x < classNames.length; x++) {\r\n el.className = el.className.replace(new RegExp('\\\\b' + KTUtil.trim(classNames[x]) + '\\\\b', 'g'), '');\r\n }\r\n }\r\n },\r\n\r\n triggerCustomEvent: function(el, eventName, data) {\r\n var event;\r\n if (window.CustomEvent) {\r\n event = new CustomEvent(eventName, {\r\n detail: data\r\n });\r\n } else {\r\n event = document.createEvent('CustomEvent');\r\n event.initCustomEvent(eventName, true, true, data);\r\n }\r\n\r\n el.dispatchEvent(event);\r\n },\r\n\r\n triggerEvent: function(node, eventName) {\r\n // Make sure we use the ownerDocument from the provided node to avoid cross-window problems\r\n var doc;\r\n if (node.ownerDocument) {\r\n doc = node.ownerDocument;\r\n } else if (node.nodeType == 9) {\r\n // the node may be the document itself, nodeType 9 = DOCUMENT_NODE\r\n doc = node;\r\n } else {\r\n throw new Error(\"Invalid node passed to fireEvent: \" + node.id);\r\n }\r\n\r\n if (node.dispatchEvent) {\r\n // Gecko-style approach (now the standard) takes more work\r\n var eventClass = \"\";\r\n\r\n // Different events have different event classes.\r\n // If this switch statement can't map an eventName to an eventClass,\r\n // the event firing is going to fail.\r\n switch (eventName) {\r\n case \"click\": // Dispatching of 'click' appears to not work correctly in Safari. Use 'mousedown' or 'mouseup' instead.\r\n case \"mouseenter\":\r\n case \"mouseleave\":\r\n case \"mousedown\":\r\n case \"mouseup\":\r\n eventClass = \"MouseEvents\";\r\n break;\r\n\r\n case \"focus\":\r\n case \"change\":\r\n case \"blur\":\r\n case \"select\":\r\n eventClass = \"HTMLEvents\";\r\n break;\r\n\r\n default:\r\n throw \"fireEvent: Couldn't find an event class for event '\" + eventName + \"'.\";\r\n break;\r\n }\r\n var event = doc.createEvent(eventClass);\r\n\r\n var bubbles = eventName == \"change\" ? false : true;\r\n event.initEvent(eventName, bubbles, true); // All events created as bubbling and cancelable.\r\n\r\n event.synthetic = true; // allow detection of synthetic events\r\n // The second parameter says go ahead with the default action\r\n node.dispatchEvent(event, true);\r\n } else if (node.fireEvent) {\r\n // IE-old school style\r\n var event = doc.createEventObject();\r\n event.synthetic = true; // allow detection of synthetic events\r\n node.fireEvent(\"on\" + eventName, event);\r\n }\r\n },\r\n\r\n index: function( el ){\r\n var c = el.parentNode.children, i = 0;\r\n for(; i < c.length; i++ )\r\n if( c[i] == el ) return i;\r\n },\r\n\r\n trim: function(string) {\r\n return string.trim();\r\n },\r\n\r\n eventTriggered: function(e) {\r\n if (e.currentTarget.dataset.triggered) {\r\n return true;\r\n } else {\r\n e.currentTarget.dataset.triggered = true;\r\n\r\n return false;\r\n }\r\n },\r\n\r\n remove: function(el) {\r\n if (el && el.parentNode) {\r\n el.parentNode.removeChild(el);\r\n }\r\n },\r\n\r\n find: function(parent, query) {\r\n parent = KTUtil.getById(parent);\r\n if (parent) {\r\n return parent.querySelector(query);\r\n }\r\n },\r\n\r\n findAll: function(parent, query) {\r\n parent = KTUtil.getById(parent);\r\n if (parent) {\r\n return parent.querySelectorAll(query);\r\n }\r\n },\r\n\r\n insertAfter: function(el, referenceNode) {\r\n return referenceNode.parentNode.insertBefore(el, referenceNode.nextSibling);\r\n },\r\n\r\n parents: function(elem, selector) {\r\n // Element.matches() polyfill\r\n if (!Element.prototype.matches) {\r\n Element.prototype.matches =\r\n Element.prototype.matchesSelector ||\r\n Element.prototype.mozMatchesSelector ||\r\n Element.prototype.msMatchesSelector ||\r\n Element.prototype.oMatchesSelector ||\r\n Element.prototype.webkitMatchesSelector ||\r\n function(s) {\r\n var matches = (this.document || this.ownerDocument).querySelectorAll(s),\r\n i = matches.length;\r\n while (--i >= 0 && matches.item(i) !== this) {}\r\n return i > -1;\r\n };\r\n }\r\n\r\n // Set up a parent array\r\n var parents = [];\r\n\r\n // Push each parent element to the array\r\n for ( ; elem && elem !== document; elem = elem.parentNode ) {\r\n if (selector) {\r\n if (elem.matches(selector)) {\r\n parents.push(elem);\r\n }\r\n continue;\r\n }\r\n parents.push(elem);\r\n }\r\n\r\n // Return our parent array\r\n return parents;\r\n },\r\n\r\n children: function(el, selector, log) {\r\n if (!el || !el.childNodes) {\r\n return;\r\n }\r\n\r\n var result = [],\r\n i = 0,\r\n l = el.childNodes.length;\r\n\r\n for (var i; i < l; ++i) {\r\n if (el.childNodes[i].nodeType == 1 && KTUtil.matches(el.childNodes[i], selector, log)) {\r\n result.push(el.childNodes[i]);\r\n }\r\n }\r\n\r\n return result;\r\n },\r\n\r\n child: function(el, selector, log) {\r\n var children = KTUtil.children(el, selector, log);\r\n\r\n return children ? children[0] : null;\r\n },\r\n\r\n matches: function(el, selector, log) {\r\n var p = Element.prototype;\r\n var f = p.matches || p.webkitMatchesSelector || p.mozMatchesSelector || p.msMatchesSelector || function(s) {\r\n return [].indexOf.call(document.querySelectorAll(s), this) !== -1;\r\n };\r\n\r\n if (el && el.tagName) {\r\n return f.call(el, selector);\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n data: function(el) {\r\n return {\r\n set: function(name, data) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n if (el.customDataTag === undefined) {\r\n window.KTUtilElementDataStoreID++;\r\n el.customDataTag = window.KTUtilElementDataStoreID;\r\n }\r\n\r\n if (window.KTUtilElementDataStore[el.customDataTag] === undefined) {\r\n window.KTUtilElementDataStore[el.customDataTag] = {};\r\n }\r\n\r\n window.KTUtilElementDataStore[el.customDataTag][name] = data;\r\n },\r\n\r\n get: function(name) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n if (el.customDataTag === undefined) {\r\n return null;\r\n }\r\n\r\n return this.has(name) ? window.KTUtilElementDataStore[el.customDataTag][name] : null;\r\n },\r\n\r\n has: function(name) {\r\n if (!el) {\r\n return false;\r\n }\r\n\r\n if (el.customDataTag === undefined) {\r\n return false;\r\n }\r\n\r\n return (window.KTUtilElementDataStore[el.customDataTag] && window.KTUtilElementDataStore[el.customDataTag][name]) ? true : false;\r\n },\r\n\r\n remove: function(name) {\r\n if (el && this.has(name)) {\r\n delete window.KTUtilElementDataStore[el.customDataTag][name];\r\n }\r\n }\r\n };\r\n },\r\n\r\n outerWidth: function(el, margin) {\r\n var width;\r\n\r\n if (margin === true) {\r\n width = parseFloat(el.offsetWidth);\r\n width += parseFloat(KTUtil.css(el, 'margin-left')) + parseFloat(KTUtil.css(el, 'margin-right'));\r\n\r\n return parseFloat(width);\r\n } else {\r\n width = parseFloat(el.offsetWidth);\r\n\r\n return width;\r\n }\r\n },\r\n\r\n offset: function(el) {\r\n var rect, win;\r\n\r\n if ( !el ) {\r\n return;\r\n }\r\n\r\n // Return zeros for disconnected and hidden (display: none) elements (gh-2310)\r\n // Support: IE <=11 only\r\n // Running getBoundingClientRect on a\r\n // disconnected node in IE throws an error\r\n\r\n if ( !el.getClientRects().length ) {\r\n return { top: 0, left: 0 };\r\n }\r\n\r\n // Get document-relative position by adding viewport scroll to viewport-relative gBCR\r\n rect = el.getBoundingClientRect();\r\n win = el.ownerDocument.defaultView;\r\n\r\n return {\r\n top: rect.top + win.pageYOffset,\r\n left: rect.left + win.pageXOffset\r\n };\r\n },\r\n\r\n height: function(el) {\r\n return KTUtil.css(el, 'height');\r\n },\r\n\r\n outerHeight: function(el, withMargin) {\r\n var height = el.offsetHeight;\r\n var style;\r\n\r\n if (typeof withMargin !== 'undefined' && withMargin === true) {\r\n style = getComputedStyle(el);\r\n height += parseInt(style.marginTop) + parseInt(style.marginBottom);\r\n\r\n return height;\r\n } else {\r\n return height;\r\n }\r\n },\r\n\r\n visible: function(el) {\r\n return !(el.offsetWidth === 0 && el.offsetHeight === 0);\r\n },\r\n\r\n attr: function(el, name, value) {\r\n if (el == undefined) {\r\n return;\r\n }\r\n\r\n if (value !== undefined) {\r\n el.setAttribute(name, value);\r\n } else {\r\n return el.getAttribute(name);\r\n }\r\n },\r\n\r\n hasAttr: function(el, name) {\r\n if (el == undefined) {\r\n return;\r\n }\r\n\r\n return el.getAttribute(name) ? true : false;\r\n },\r\n\r\n removeAttr: function(el, name) {\r\n if (el == undefined) {\r\n return;\r\n }\r\n\r\n el.removeAttribute(name);\r\n },\r\n\r\n animate: function(from, to, duration, update, easing, done) {\r\n /**\r\n * TinyAnimate.easings\r\n * Adapted from jQuery Easing\r\n */\r\n var easings = {};\r\n var easing;\r\n\r\n easings.linear = function(t, b, c, d) {\r\n return c * t / d + b;\r\n };\r\n\r\n easing = easings.linear;\r\n\r\n // Early bail out if called incorrectly\r\n if (typeof from !== 'number' ||\r\n typeof to !== 'number' ||\r\n typeof duration !== 'number' ||\r\n typeof update !== 'function') {\r\n return;\r\n }\r\n\r\n // Create mock done() function if necessary\r\n if (typeof done !== 'function') {\r\n done = function() {};\r\n }\r\n\r\n // Pick implementation (requestAnimationFrame | setTimeout)\r\n var rAF = window.requestAnimationFrame || function(callback) {\r\n window.setTimeout(callback, 1000 / 50);\r\n };\r\n\r\n // Animation loop\r\n var canceled = false;\r\n var change = to - from;\r\n\r\n function loop(timestamp) {\r\n var time = (timestamp || +new Date()) - start;\r\n\r\n if (time >= 0) {\r\n update(easing(time, from, change, duration));\r\n }\r\n if (time >= 0 && time >= duration) {\r\n update(to);\r\n done();\r\n } else {\r\n rAF(loop);\r\n }\r\n }\r\n\r\n update(from);\r\n\r\n // Start animation loop\r\n var start = window.performance && window.performance.now ? window.performance.now() : +new Date();\r\n\r\n rAF(loop);\r\n },\r\n\r\n actualCss: function(el, prop, cache) {\r\n var css = '';\r\n\r\n if (el instanceof HTMLElement === false) {\r\n return;\r\n }\r\n\r\n if (!el.getAttribute('kt-hidden-' + prop) || cache === false) {\r\n var value;\r\n\r\n // the element is hidden so:\r\n // making the el block so we can meassure its height but still be hidden\r\n css = el.style.cssText;\r\n el.style.cssText = 'position: absolute; visibility: hidden; display: block;';\r\n\r\n if (prop == 'width') {\r\n value = el.offsetWidth;\r\n } else if (prop == 'height') {\r\n value = el.offsetHeight;\r\n }\r\n\r\n el.style.cssText = css;\r\n\r\n // store it in cache\r\n el.setAttribute('kt-hidden-' + prop, value);\r\n\r\n return parseFloat(value);\r\n } else {\r\n // store it in cache\r\n return parseFloat(el.getAttribute('kt-hidden-' + prop));\r\n }\r\n },\r\n\r\n actualHeight: function(el, cache) {\r\n return KTUtil.actualCss(el, 'height', cache);\r\n },\r\n\r\n actualWidth: function(el, cache) {\r\n return KTUtil.actualCss(el, 'width', cache);\r\n },\r\n\r\n getScroll: function(element, method) {\r\n // The passed in `method` value should be 'Top' or 'Left'\r\n method = 'scroll' + method;\r\n return (element == window || element == document) ? (\r\n self[(method == 'scrollTop') ? 'pageYOffset' : 'pageXOffset'] ||\r\n (browserSupportsBoxModel && document.documentElement[method]) ||\r\n document.body[method]\r\n ) : element[method];\r\n },\r\n\r\n css: function(el, styleProp, value) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n if (value !== undefined) {\r\n el.style[styleProp] = value;\r\n } else {\r\n var defaultView = (el.ownerDocument || document).defaultView;\r\n // W3C standard way:\r\n if (defaultView && defaultView.getComputedStyle) {\r\n // sanitize property name to css notation\r\n // (hyphen separated words eg. font-Size)\r\n styleProp = styleProp.replace(/([A-Z])/g, \"-$1\").toLowerCase();\r\n return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp);\r\n } else if (el.currentStyle) { // IE\r\n // sanitize property name to camelCase\r\n styleProp = styleProp.replace(/\\-(\\w)/g, function(str, letter) {\r\n return letter.toUpperCase();\r\n });\r\n value = el.currentStyle[styleProp];\r\n // convert other units to pixels on IE\r\n if (/^\\d+(em|pt|%|ex)?$/i.test(value)) {\r\n return (function(value) {\r\n var oldLeft = el.style.left,\r\n oldRsLeft = el.runtimeStyle.left;\r\n el.runtimeStyle.left = el.currentStyle.left;\r\n el.style.left = value || 0;\r\n value = el.style.pixelLeft + \"px\";\r\n el.style.left = oldLeft;\r\n el.runtimeStyle.left = oldRsLeft;\r\n return value;\r\n })(value);\r\n }\r\n return value;\r\n }\r\n }\r\n },\r\n\r\n slide: function(el, dir, speed, callback, recalcMaxHeight) {\r\n if (!el || (dir == 'up' && KTUtil.visible(el) === false) || (dir == 'down' && KTUtil.visible(el) === true)) {\r\n return;\r\n }\r\n\r\n speed = (speed ? speed : 600);\r\n var calcHeight = KTUtil.actualHeight(el);\r\n var calcPaddingTop = false;\r\n var calcPaddingBottom = false;\r\n\r\n if (KTUtil.css(el, 'padding-top') && KTUtil.data(el).has('slide-padding-top') !== true) {\r\n KTUtil.data(el).set('slide-padding-top', KTUtil.css(el, 'padding-top'));\r\n }\r\n\r\n if (KTUtil.css(el, 'padding-bottom') && KTUtil.data(el).has('slide-padding-bottom') !== true) {\r\n KTUtil.data(el).set('slide-padding-bottom', KTUtil.css(el, 'padding-bottom'));\r\n }\r\n\r\n if (KTUtil.data(el).has('slide-padding-top')) {\r\n calcPaddingTop = parseInt(KTUtil.data(el).get('slide-padding-top'));\r\n }\r\n\r\n if (KTUtil.data(el).has('slide-padding-bottom')) {\r\n calcPaddingBottom = parseInt(KTUtil.data(el).get('slide-padding-bottom'));\r\n }\r\n\r\n if (dir == 'up') { // up\r\n el.style.cssText = 'display: block; overflow: hidden;';\r\n\r\n if (calcPaddingTop) {\r\n KTUtil.animate(0, calcPaddingTop, speed, function(value) {\r\n el.style.paddingTop = (calcPaddingTop - value) + 'px';\r\n }, 'linear');\r\n }\r\n\r\n if (calcPaddingBottom) {\r\n KTUtil.animate(0, calcPaddingBottom, speed, function(value) {\r\n el.style.paddingBottom = (calcPaddingBottom - value) + 'px';\r\n }, 'linear');\r\n }\r\n\r\n KTUtil.animate(0, calcHeight, speed, function(value) {\r\n el.style.height = (calcHeight - value) + 'px';\r\n }, 'linear', function() {\r\n el.style.height = '';\r\n el.style.display = 'none';\r\n\r\n if (typeof callback === 'function') {\r\n callback();\r\n }\r\n });\r\n\r\n\r\n } else if (dir == 'down') { // down\r\n el.style.cssText = 'display: block; overflow: hidden;';\r\n\r\n if (calcPaddingTop) {\r\n KTUtil.animate(0, calcPaddingTop, speed, function(value) {//\r\n el.style.paddingTop = value + 'px';\r\n }, 'linear', function() {\r\n el.style.paddingTop = '';\r\n });\r\n }\r\n\r\n if (calcPaddingBottom) {\r\n KTUtil.animate(0, calcPaddingBottom, speed, function(value) {\r\n el.style.paddingBottom = value + 'px';\r\n }, 'linear', function() {\r\n el.style.paddingBottom = '';\r\n });\r\n }\r\n\r\n KTUtil.animate(0, calcHeight, speed, function(value) {\r\n el.style.height = value + 'px';\r\n }, 'linear', function() {\r\n el.style.height = '';\r\n el.style.display = '';\r\n el.style.overflow = '';\r\n\r\n if (typeof callback === 'function') {\r\n callback();\r\n }\r\n });\r\n }\r\n },\r\n\r\n slideUp: function(el, speed, callback) {\r\n KTUtil.slide(el, 'up', speed, callback);\r\n },\r\n\r\n slideDown: function(el, speed, callback) {\r\n KTUtil.slide(el, 'down', speed, callback);\r\n },\r\n\r\n show: function(el, display) {\r\n if (typeof el !== 'undefined') {\r\n el.style.display = (display ? display : 'block');\r\n }\r\n },\r\n\r\n hide: function(el) {\r\n if (typeof el !== 'undefined') {\r\n el.style.display = 'none';\r\n }\r\n },\r\n\r\n addEvent: function(el, type, handler, one) {\r\n if (typeof el !== 'undefined' && el !== null) {\r\n el.addEventListener(type, handler);\r\n }\r\n },\r\n\r\n removeEvent: function(el, type, handler) {\r\n if (el !== null) {\r\n el.removeEventListener(type, handler);\r\n }\r\n },\r\n\r\n on: function(element, selector, event, handler) {\r\n if (!selector) {\r\n return;\r\n }\r\n\r\n var eventId = KTUtil.getUniqueID('event');\r\n\r\n window.KTUtilDelegatedEventHandlers[eventId] = function(e) {\r\n var targets = element.querySelectorAll(selector);\r\n var target = e.target;\r\n\r\n while (target && target !== element) {\r\n for (var i = 0, j = targets.length; i < j; i++) {\r\n if (target === targets[i]) {\r\n handler.call(target, e);\r\n }\r\n }\r\n\r\n target = target.parentNode;\r\n }\r\n }\r\n\r\n KTUtil.addEvent(element, event, window.KTUtilDelegatedEventHandlers[eventId]);\r\n\r\n return eventId;\r\n },\r\n\r\n off: function(element, event, eventId) {\r\n if (!element || !window.KTUtilDelegatedEventHandlers[eventId]) {\r\n return;\r\n }\r\n\r\n KTUtil.removeEvent(element, event, window.KTUtilDelegatedEventHandlers[eventId]);\r\n\r\n delete window.KTUtilDelegatedEventHandlers[eventId];\r\n },\r\n\r\n one: function onetime(el, type, callback) {\r\n el.addEventListener(type, function callee(e) {\r\n // remove event\r\n if (e.target && e.target.removeEventListener) {\r\n e.target.removeEventListener(e.type, callee);\r\n }\r\n\r\n // need to verify from https://themeforest.net/author_dashboard#comment_23615588\r\n if (el && el.removeEventListener) {\r\n\t\t\t\t e.currentTarget.removeEventListener(e.type, callee);\r\n\t\t\t }\r\n\r\n // call handler\r\n return callback(e);\r\n });\r\n },\r\n\r\n hash: function(str) {\r\n var hash = 0,\r\n i, chr;\r\n\r\n if (str.length === 0) return hash;\r\n for (i = 0; i < str.length; i++) {\r\n chr = str.charCodeAt(i);\r\n hash = ((hash << 5) - hash) + chr;\r\n hash |= 0; // Convert to 32bit integer\r\n }\r\n\r\n return hash;\r\n },\r\n\r\n animateClass: function(el, animationName, callback) {\r\n var animation;\r\n var animations = {\r\n animation: 'animationend',\r\n OAnimation: 'oAnimationEnd',\r\n MozAnimation: 'mozAnimationEnd',\r\n WebkitAnimation: 'webkitAnimationEnd',\r\n msAnimation: 'msAnimationEnd',\r\n };\r\n\r\n for (var t in animations) {\r\n if (el.style[t] !== undefined) {\r\n animation = animations[t];\r\n }\r\n }\r\n\r\n KTUtil.addClass(el, 'animated ' + animationName);\r\n\r\n KTUtil.one(el, animation, function() {\r\n KTUtil.removeClass(el, 'animated ' + animationName);\r\n });\r\n\r\n if (callback) {\r\n KTUtil.one(el, animation, callback);\r\n }\r\n },\r\n\r\n transitionEnd: function(el, callback) {\r\n var transition;\r\n var transitions = {\r\n transition: 'transitionend',\r\n OTransition: 'oTransitionEnd',\r\n MozTransition: 'mozTransitionEnd',\r\n WebkitTransition: 'webkitTransitionEnd',\r\n msTransition: 'msTransitionEnd'\r\n };\r\n\r\n for (var t in transitions) {\r\n if (el.style[t] !== undefined) {\r\n transition = transitions[t];\r\n }\r\n }\r\n\r\n KTUtil.one(el, transition, callback);\r\n },\r\n\r\n animationEnd: function(el, callback) {\r\n var animation;\r\n var animations = {\r\n animation: 'animationend',\r\n OAnimation: 'oAnimationEnd',\r\n MozAnimation: 'mozAnimationEnd',\r\n WebkitAnimation: 'webkitAnimationEnd',\r\n msAnimation: 'msAnimationEnd'\r\n };\r\n\r\n for (var t in animations) {\r\n if (el.style[t] !== undefined) {\r\n animation = animations[t];\r\n }\r\n }\r\n\r\n KTUtil.one(el, animation, callback);\r\n },\r\n\r\n animateDelay: function(el, value) {\r\n var vendors = ['webkit-', 'moz-', 'ms-', 'o-', ''];\r\n for (var i = 0; i < vendors.length; i++) {\r\n KTUtil.css(el, vendors[i] + 'animation-delay', value);\r\n }\r\n },\r\n\r\n animateDuration: function(el, value) {\r\n var vendors = ['webkit-', 'moz-', 'ms-', 'o-', ''];\r\n for (var i = 0; i < vendors.length; i++) {\r\n KTUtil.css(el, vendors[i] + 'animation-duration', value);\r\n }\r\n },\r\n\r\n scrollTo: function(target, offset, duration) {\r\n var duration = duration ? duration : 500;\r\n var targetPos = target ? KTUtil.offset(target).top : 0;\r\n var scrollPos = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\r\n var from, to;\r\n\r\n if (offset) {\r\n scrollPos += offset;\r\n }\r\n\r\n from = scrollPos;\r\n to = targetPos;\r\n\r\n KTUtil.animate(from, to, duration, function(value) {\r\n document.documentElement.scrollTop = value;\r\n document.body.parentNode.scrollTop = value;\r\n document.body.scrollTop = value;\r\n }); //, easing, done\r\n },\r\n\r\n scrollTop: function(offset, duration) {\r\n KTUtil.scrollTo(null, offset, duration);\r\n },\r\n\r\n isArray: function(obj) {\r\n return obj && Array.isArray(obj);\r\n },\r\n\r\n ready: function(callback) {\r\n if (document.attachEvent ? document.readyState === \"complete\" : document.readyState !== \"loading\") {\r\n callback();\r\n } else {\r\n document.addEventListener('DOMContentLoaded', callback);\r\n }\r\n },\r\n\r\n isEmpty: function(obj) {\r\n for (var prop in obj) {\r\n if (obj.hasOwnProperty(prop)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n\r\n numberString: function(nStr) {\r\n nStr += '';\r\n var x = nStr.split('.');\r\n var x1 = x[0];\r\n var x2 = x.length > 1 ? '.' + x[1] : '';\r\n var rgx = /(\\d+)(\\d{3})/;\r\n while (rgx.test(x1)) {\r\n x1 = x1.replace(rgx, '$1' + ',' + '$2');\r\n }\r\n return x1 + x2;\r\n },\r\n\r\n detectIE: function() {\r\n var ua = window.navigator.userAgent;\r\n\r\n // Test values; Uncomment to check result …\r\n\r\n // IE 10\r\n // ua = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)';\r\n\r\n // IE 11\r\n // ua = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko';\r\n\r\n // Edge 12 (Spartan)\r\n // ua = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0';\r\n\r\n // Edge 13\r\n // ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586';\r\n\r\n var msie = ua.indexOf('MSIE ');\r\n if (msie > 0) {\r\n // IE 10 or older => return version number\r\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\r\n }\r\n\r\n var trident = ua.indexOf('Trident/');\r\n if (trident > 0) {\r\n // IE 11 => return version number\r\n var rv = ua.indexOf('rv:');\r\n return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\r\n }\r\n\r\n var edge = ua.indexOf('Edge/');\r\n if (edge > 0) {\r\n // Edge (IE 12+) => return version number\r\n return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\r\n }\r\n\r\n // other browser\r\n return false;\r\n },\r\n\r\n isRTL: function() {\r\n var html = KTUtil.getByTagName('html')[0];\r\n\r\n if (html) {\r\n return (KTUtil.attr(html, 'direction') == 'rtl');\r\n }\r\n },\r\n\r\n // Scroller\r\n scrollInit: function(element, options) {\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Learn more: https://github.com/mdbootstrap/perfect-scrollbar#options\r\n var pluginDefOptions = {\r\n wheelSpeed: 0.5,\r\n swipeEasing: true,\r\n wheelPropagation: false,\r\n minScrollbarLength: 40,\r\n maxScrollbarLength: 300,\r\n suppressScrollX: true\r\n };\r\n\r\n options = KTUtil.deepExtend({}, pluginDefOptions, options);\r\n\r\n // Define init function\r\n function init() {\r\n var ps;\r\n var height;\r\n\r\n // Get extra options via data attributes\r\n var attrs = element.getAttributeNames();\r\n if (attrs.length > 0) {\r\n attrs.forEach(function(attrName) {\r\n \t\t\t// more options; https://github.com/ganlanyuan/tiny-slider#options\r\n \t\t\tif ((/^data-.*/g).test(attrName)) {\r\n if (['scroll', 'height', 'mobile-height'].includes(optionName) == false) {\r\n var optionName = attrName.replace('data-', '').toLowerCase().replace(/(?:[\\s-])\\w/g, function(match) {\r\n \t\t\t\t\treturn match.replace('-', '').toUpperCase();\r\n \t\t\t\t});\r\n\r\n options[optionName] = KTUtil.filterBoolean(element.getAttribute(attrName));\r\n }\r\n \t\t\t}\r\n \t\t});\r\n }\r\n\r\n if (options.height instanceof Function) {\r\n height = options.height.call();\r\n } else {\r\n if (KTUtil.isMobileDevice() === true && options.mobileHeight) {\r\n height = parseInt(options.mobileHeight);\r\n } else if (options.height) {\r\n height = parseInt(options.height);\r\n } else {\r\n height = parseInt(KTUtil.css(element, 'height'));\r\n }\r\n }\r\n\r\n if (height === false) {\r\n KTUtil.scrollDestroy(element, true);\r\n\r\n return;\r\n }\r\n\r\n height = parseInt(height);\r\n\r\n // Destroy scroll on table and mobile modes\r\n if ((options.mobileNativeScroll || options.disableForMobile) && KTUtil.isMobileDevice() === true) {\r\n ps = KTUtil.data(element).get('ps');\r\n if (ps) {\r\n if (options.resetHeightOnDestroy) {\r\n KTUtil.css(element, 'height', 'auto');\r\n } else {\r\n KTUtil.css(element, 'overflow', 'auto');\r\n if (height > 0) {\r\n KTUtil.css(element, 'height', height + 'px');\r\n }\r\n }\r\n\r\n ps.destroy();\r\n ps = KTUtil.data(element).remove('ps');\r\n } else if (height > 0){\r\n KTUtil.css(element, 'overflow', 'auto');\r\n KTUtil.css(element, 'height', height + 'px');\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (height > 0) {\r\n KTUtil.css(element, 'height', height + 'px');\r\n }\r\n\r\n if (options.desktopNativeScroll) {\r\n KTUtil.css(element, 'overflow', 'auto');\r\n return;\r\n }\r\n\r\n // Pass options via HTML Attributes\r\n if (KTUtil.attr(element, 'data-window-scroll') == 'true') {\r\n options.windowScroll = true;\r\n }\r\n\r\n // Init scroll\r\n ps = KTUtil.data(element).get('ps');\r\n\r\n if (ps) {\r\n ps.update();\r\n } else {\r\n KTUtil.css(element, 'overflow', 'hidden');\r\n KTUtil.addClass(element, 'scroll');\r\n\r\n ps = new PerfectScrollbar(element, options);\r\n\r\n KTUtil.data(element).set('ps', ps);\r\n }\r\n\r\n // Remember scroll position in cookie\r\n var uid = KTUtil.attr(element, 'id');\n try {\n if (uid) {\n var cookie = KTCookie.getCookie(uid);\n if (options.rememberPosition === true && cookie) {\n var pos = parseInt(cookie);\n if (pos > 0) {\n element.scrollTop = pos;\n }\n element.addEventListener('ps-scroll-y', function() {\n KTCookie.setCookie(uid, element.scrollTop, {});\n });\n }\n }\n }\n catch (e) {\n console.error(e);\n }\r\n\r\n // Todo:Consider using Localstorage\r\n if (options.rememberPosition === true && KTCookie && uid) {\r\n if (KTCookie.getCookie(uid)) {\r\n var pos = parseInt(KTCookie.getCookie(uid));\r\n\r\n if (pos > 0) {\r\n element.scrollTop = pos;\r\n }\r\n }\r\n\r\n element.addEventListener('ps-scroll-y', function() {\r\n KTCookie.setCookie(uid, element.scrollTop);\r\n });\r\n }\r\n }\r\n\r\n // Init\r\n init();\r\n\r\n // Handle window resize\r\n if (options.handleWindowResize) {\r\n KTUtil.addResizeHandler(function() {\r\n init();\r\n });\r\n }\r\n },\r\n\r\n scrollUpdate: function(element) {\r\n var ps = KTUtil.data(element).get('ps');\r\n if (ps) {\r\n ps.update();\r\n }\r\n },\r\n\r\n scrollUpdateAll: function(parent) {\r\n var scrollers = KTUtil.findAll(parent, '.ps');\r\n for (var i = 0, len = scrollers.length; i < len; i++) {\r\n KTUtil.scrollUpdate(scrollers[i]);\r\n }\r\n },\r\n\r\n scrollDestroy: function(element, resetAll) {\r\n var ps = KTUtil.data(element).get('ps');\r\n\r\n if (ps) {\r\n ps.destroy();\r\n ps = KTUtil.data(element).remove('ps');\r\n }\r\n\r\n if (element && resetAll) {\r\n element.style.setProperty('overflow', '');\r\n element.style.setProperty('height', '');\r\n }\r\n },\r\n\r\n filterBoolean: function(val) {\r\n // Convert string boolean\r\n\t\t\tif (val === true || val === 'true') {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tif (val === false || val === 'false') {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n return val;\r\n },\r\n\r\n setHTML: function(el, html) {\r\n el.innerHTML = html;\r\n },\r\n\r\n getHTML: function(el) {\r\n if (el) {\r\n return el.innerHTML;\r\n }\r\n },\r\n\r\n getDocumentHeight: function() {\r\n var body = document.body;\r\n var html = document.documentElement;\r\n\r\n return Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight );\r\n },\r\n\r\n getScrollTop: function() {\r\n return (document.scrollingElement || document.documentElement).scrollTop;\r\n },\r\n\r\n changeColor: function(col, amt) {\r\n\r\n var usePound = false;\r\n\r\n if (col[0] == \"#\") {\r\n col = col.slice(1);\r\n usePound = true;\r\n }\r\n\r\n var num = parseInt(col,16);\r\n\r\n var r = (num >> 16) + amt;\r\n\r\n if (r > 255) r = 255;\r\n else if (r < 0) r = 0;\r\n\r\n var b = ((num >> 8) & 0x00FF) + amt;\r\n\r\n if (b > 255) b = 255;\r\n else if (b < 0) b = 0;\r\n\r\n var g = (num & 0x0000FF) + amt;\r\n\r\n if (g > 255) g = 255;\r\n else if (g < 0) g = 0;\r\n\r\n return (usePound?\"#\":\"\") + (g | (b << 8) | (r << 16)).toString(16);\r\n\r\n },\r\n\r\n // Throttle function: Input as function which needs to be throttled and delay is the time interval in milliseconds\r\n throttle: function (timer, func, delay) {\r\n \t// If setTimeout is already scheduled, no need to do anything\r\n \tif (timer) {\r\n \t\treturn;\r\n \t}\r\n\r\n \t// Schedule a setTimeout after delay seconds\r\n \ttimer = setTimeout(function () {\r\n \t\tfunc();\r\n\r\n \t\t// Once setTimeout function execution is finished, timerId = undefined so that in
\r\n \t\t// the next scroll event function execution can be scheduled by the setTimeout\r\n \t\ttimer = undefined;\r\n \t}, delay);\r\n },\r\n\r\n // Debounce function: Input as function which needs to be debounced and delay is the debounced time in milliseconds\r\n debounce: function (timer, func, delay) {\r\n \t// Cancels the setTimeout method execution\r\n \tclearTimeout(timer)\r\n\r\n \t// Executes the func after delay time.\r\n \ttimer = setTimeout(func, delay);\r\n },\r\n\r\n btnWait: function(el, cls, message, disable) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n if (typeof disable !== 'undefined' && disable === true) {\r\n KTUtil.attr(el, \"disabled\", true);\r\n }\r\n\r\n if (cls) {\r\n KTUtil.addClass(el, cls);\r\n KTUtil.attr(el, \"wait-class\", cls);\r\n }\r\n\r\n if (message) {\r\n var caption = KTUtil.find(el, '.btn-caption');\r\n\r\n if (caption) {\r\n KTUtil.data(caption).set('caption', KTUtil.getHTML(caption));\r\n KTUtil.setHTML(caption, message);\r\n } else {\r\n KTUtil.data(el).set('caption', KTUtil.getHTML(el));\r\n KTUtil.setHTML(el, message);\r\n }\r\n }\r\n },\r\n\r\n btnRelease: function(el) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n /// Show loading state on button\r\n KTUtil.removeAttr(el, \"disabled\");\r\n\r\n if (KTUtil.hasAttr(el, \"wait-class\")) {\r\n KTUtil.removeClass(el, KTUtil.attr(el, \"wait-class\"));\r\n }\r\n\r\n var caption = KTUtil.find(el, '.btn-caption');\r\n\r\n if (caption && KTUtil.data(caption).has('caption')) {\r\n KTUtil.setHTML(caption, KTUtil.data(caption).get('caption'));\r\n } else if (KTUtil.data(el).has('caption')) {\r\n KTUtil.setHTML(el, KTUtil.data(el).get('caption'));\r\n }\r\n },\r\n\r\n isOffscreen: function(el, direction, offset) {\r\n offset = offset || 0;\r\n\r\n var windowWidth = KTUtil.getViewPort().width;\r\n var windowHeight = KTUtil.getViewPort().height;\r\n\r\n var top = KTUtil.offset(el).top;\r\n var height = KTUtil.outerHeight(el) + offset;\r\n var left = KTUtil.offset(el).left;\r\n var width = KTUtil.outerWidth(el) + offset;\r\n\r\n if (direction == 'bottom') {\r\n if (windowHeight < top + height) {\r\n return true;\r\n } else if (windowHeight > top + height * 1.5) {\r\n return true;\r\n }\r\n }\r\n\r\n if (direction == 'top') {\r\n if (top < 0) {\r\n return true;\r\n } else if (top > height) {\r\n return true;\r\n }\r\n }\r\n\r\n if (direction == 'left') {\r\n if (left < 0) {\r\n return true;\r\n } else if (left * 2 > width) {\r\n //console.log('left 2');\r\n //return true;\r\n }\r\n }\r\n\r\n if (direction == 'right') {\r\n if (windowWidth < left + width) {\r\n return true;\r\n } else {\r\n //console.log('right 2');\r\n //return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n }\r\n}();\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n // module.exports = KTUtil;\r\n}\r\n\r\n// Initialize KTUtil class on document ready\r\nKTUtil.ready(function() {\r\n\tif (typeof KTAppSettings !== 'undefined') {\r\n\t\tKTUtil.init(KTAppSettings);\r\n\t} else {\r\n\t\tKTUtil.init();\r\n\t}\r\n});\r\n\r\n// CSS3 Transitions only after page load(.page-loading class added to body tag and remove with JS on page load)\r\nwindow.onload = function() {\r\n var result = KTUtil.getByTagName('body');\r\n if (result && result[0]) {\r\n KTUtil.removeClass(result[0], 'page-loading');\r\n }\r\n}\r\n","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./util\";\r\n\r\n// Component Definition\r\nvar KTCard = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n toggleSpeed: 400,\r\n sticky: {\r\n releseOnReverse: false,\r\n offset: 300,\r\n zIndex: 101\r\n }\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Construct\r\n */\r\n\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('card')) {\r\n the = KTUtil.data(element).get('card');\r\n } else {\r\n // reset menu\r\n Plugin.init(options);\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('card', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Init card\r\n */\r\n init: function(options) {\r\n the.element = element;\r\n the.events = [];\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n the.header = KTUtil.child(element, '.card-header');\r\n the.footer = KTUtil.child(element, '.card-footer');\r\n\r\n if (KTUtil.child(element, '.card-body')) {\r\n the.body = KTUtil.child(element, '.card-body');\r\n } else if (KTUtil.child(element, '.form')) {\r\n the.body = KTUtil.child(element, '.form');\r\n }\r\n },\r\n\r\n /**\r\n * Build Form Wizard\r\n */\r\n build: function() {\r\n // Remove\r\n var remove = KTUtil.find(the.header, '[data-card-tool=remove]');\r\n if (remove) {\r\n KTUtil.addEvent(remove, 'click', function(e) {\r\n e.preventDefault();\r\n Plugin.remove();\r\n });\r\n }\r\n\r\n // Reload\r\n var reload = KTUtil.find(the.header, '[data-card-tool=reload]');\r\n if (reload) {\r\n KTUtil.addEvent(reload, 'click', function(e) {\r\n e.preventDefault();\r\n Plugin.reload();\r\n });\r\n }\r\n\r\n // Toggle\r\n var toggle = KTUtil.find(the.header, '[data-card-tool=toggle]');\r\n if (toggle) {\r\n KTUtil.addEvent(toggle, 'click', function(e) {\r\n e.preventDefault();\r\n Plugin.toggle();\r\n });\r\n }\r\n },\r\n\r\n /**\r\n * Enable stickt mode\r\n */\r\n initSticky: function() {\r\n var lastScrollTop = 0;\r\n var offset = the.options.sticky.offset;\r\n\r\n if (!the.header) {\r\n return;\r\n }\r\n\r\n\t window.addEventListener('scroll', Plugin.onScrollSticky);\r\n },\r\n\r\n\t /**\r\n\t * Window scroll handle event for sticky card\r\n\t */\r\n\t onScrollSticky: function(e) {\r\n\t\t var offset = the.options.sticky.offset;\r\n\r\n\t\t if(isNaN(offset)) return;\r\n\r\n\t\t var st = KTUtil.getScrollTop();\r\n\r\n\t\t if (st >= offset && KTUtil.hasClass(body, 'card-sticky-on') === false) {\r\n\t\t\t Plugin.eventTrigger('stickyOn');\r\n\r\n\t\t\t KTUtil.addClass(body, 'card-sticky-on');\r\n\r\n\t\t\t Plugin.updateSticky();\r\n\r\n\t\t } else if ((st*1.5) <= offset && KTUtil.hasClass(body, 'card-sticky-on')) {\r\n\t\t\t // Back scroll mode\r\n\t\t\t Plugin.eventTrigger('stickyOff');\r\n\r\n\t\t\t KTUtil.removeClass(body, 'card-sticky-on');\r\n\r\n\t\t\t Plugin.resetSticky();\r\n\t\t }\r\n\t },\r\n\r\n updateSticky: function() {\r\n if (!the.header) {\r\n return;\r\n }\r\n\r\n var top;\r\n\r\n if (KTUtil.hasClass(body, 'card-sticky-on')) {\r\n if (the.options.sticky.position.top instanceof Function) {\r\n top = parseInt(the.options.sticky.position.top.call(this, the));\r\n } else {\r\n top = parseInt(the.options.sticky.position.top);\r\n }\r\n\r\n var left;\r\n if (the.options.sticky.position.left instanceof Function) {\r\n left = parseInt(the.options.sticky.position.left.call(this, the));\r\n } else {\r\n left = parseInt(the.options.sticky.position.left);\r\n }\r\n\r\n var right;\r\n if (the.options.sticky.position.right instanceof Function) {\r\n right = parseInt(the.options.sticky.position.right.call(this, the));\r\n } else {\r\n right = parseInt(the.options.sticky.position.right);\r\n }\r\n\r\n KTUtil.css(the.header, 'z-index', the.options.sticky.zIndex);\r\n KTUtil.css(the.header, 'top', top + 'px');\r\n KTUtil.css(the.header, 'left', left + 'px');\r\n KTUtil.css(the.header, 'right', right + 'px');\r\n }\r\n },\r\n\r\n resetSticky: function() {\r\n if (!the.header) {\r\n return;\r\n }\r\n\r\n if (KTUtil.hasClass(body, 'card-sticky-on') === false) {\r\n KTUtil.css(the.header, 'z-index', '');\r\n KTUtil.css(the.header, 'top', '');\r\n KTUtil.css(the.header, 'left', '');\r\n KTUtil.css(the.header, 'right', '');\r\n }\r\n },\r\n\r\n /**\r\n * Remove card\r\n */\r\n remove: function() {\r\n if (Plugin.eventTrigger('beforeRemove') === false) {\r\n return;\r\n }\r\n\r\n KTUtil.remove(element);\r\n\r\n Plugin.eventTrigger('afterRemove');\r\n },\r\n\r\n /**\r\n * Set content\r\n */\r\n setContent: function(html) {\r\n if (html) {\r\n the.body.innerHTML = html;\r\n }\r\n },\r\n\r\n /**\r\n * Get body\r\n */\r\n getBody: function() {\r\n return the.body;\r\n },\r\n\r\n /**\r\n * Get self\r\n */\r\n getSelf: function() {\r\n return element;\r\n },\r\n\r\n /**\r\n * Reload\r\n */\r\n reload: function() {\r\n Plugin.eventTrigger('reload');\r\n },\r\n\r\n /**\r\n * Toggle\r\n */\r\n toggle: function() {\r\n if (KTUtil.hasClass(element, 'card-collapse') || KTUtil.hasClass(element, 'card-collapsed')) {\r\n Plugin.expand();\r\n } else {\r\n Plugin.collapse();\r\n }\r\n },\r\n\r\n /**\r\n * Collapse\r\n */\r\n collapse: function() {\r\n if (Plugin.eventTrigger('beforeCollapse') === false) {\r\n return;\r\n }\r\n\r\n KTUtil.slideUp(the.body, the.options.toggleSpeed, function() {\r\n Plugin.eventTrigger('afterCollapse');\r\n });\r\n\r\n KTUtil.addClass(element, 'card-collapse');\r\n },\r\n\r\n /**\r\n * Expand\r\n */\r\n expand: function() {\r\n if (Plugin.eventTrigger('beforeExpand') === false) {\r\n return;\r\n }\r\n\r\n KTUtil.slideDown(the.body, the.options.toggleSpeed, function() {\r\n Plugin.eventTrigger('afterExpand');\r\n });\r\n\r\n KTUtil.removeClass(element, 'card-collapse');\r\n KTUtil.removeClass(element, 'card-collapsed');\r\n },\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name) {\r\n //KTUtil.triggerCustomEvent(name);\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the);\r\n }\r\n } else {\r\n return event.handler.call(this, the);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n\r\n return the;\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Remove card\r\n */\r\n the.remove = function() {\r\n return Plugin.remove(html);\r\n };\r\n\r\n /**\r\n * Init sticky card\r\n */\r\n the.initSticky = function() {\r\n return Plugin.initSticky();\r\n };\r\n\r\n /**\r\n * Rerender sticky layout\r\n */\r\n the.updateSticky = function() {\r\n return Plugin.updateSticky();\r\n };\r\n\r\n /**\r\n * Reset the sticky\r\n */\r\n the.resetSticky = function() {\r\n return Plugin.resetSticky();\r\n };\r\n\r\n\t/**\r\n\t * Destroy sticky card\r\n\t */\r\n\tthe.destroySticky = function() {\r\n\t\tPlugin.resetSticky();\r\n\t\twindow.removeEventListener('scroll', Plugin.onScrollSticky);\r\n\t};\r\n\r\n /**\r\n * Reload card\r\n */\r\n the.reload = function() {\r\n return Plugin.reload();\r\n };\r\n\r\n /**\r\n * Set card content\r\n */\r\n the.setContent = function(html) {\r\n return Plugin.setContent(html);\r\n };\r\n\r\n /**\r\n * Toggle card\r\n */\r\n the.toggle = function() {\r\n return Plugin.toggle();\r\n };\r\n\r\n /**\r\n * Collapse card\r\n */\r\n the.collapse = function() {\r\n return Plugin.collapse();\r\n };\r\n\r\n /**\r\n * Expand card\r\n */\r\n the.expand = function() {\r\n return Plugin.expand();\r\n };\r\n\r\n /**\r\n * Get cardbody\r\n * @returns {jQuery}\r\n */\r\n the.getBody = function() {\r\n return Plugin.getBody();\r\n };\r\n\r\n /**\r\n * Get cardbody\r\n * @returns {jQuery}\r\n */\r\n the.getSelf = function() {\r\n return Plugin.getSelf();\r\n };\r\n\r\n /**\r\n * Attach event\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n /**\r\n * Attach event that will be fired once\r\n */\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n // Construct plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n // module.exports = KTCard;\r\n}\r\n\nexport default KTCard;","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./util\";\r\n\r\n// Component Definition\r\nvar KTScrolltop = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n offset: 300,\r\n speed: 6000\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Run plugin\r\n * @returns {mscrolltop}\r\n */\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('scrolltop')) {\r\n the = KTUtil.data(element).get('scrolltop');\r\n } else {\r\n // reset scrolltop\r\n Plugin.init(options);\r\n\r\n // build scrolltop\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('scrolltop', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles subscrolltop click toggle\r\n * @returns {mscrolltop}\r\n */\r\n init: function(options) {\r\n the.events = [];\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n },\r\n\r\n build: function() {\r\n var timer;\r\n\r\n window.addEventListener('scroll', function() {\r\n KTUtil.throttle(timer, function() {\r\n Plugin.handle();\r\n }, 200);\r\n });\r\n\r\n // handle button click\r\n KTUtil.addEvent(element, 'click', Plugin.scroll);\r\n },\r\n\r\n /**\r\n * Handles scrolltop click scrollTop\r\n */\r\n handle: function() {\r\n var pos = KTUtil.getScrollTop(); // current vertical position\r\n\r\n if (pos > the.options.offset) {\r\n if (body.hasAttribute('data-scrolltop') === false) {\r\n body.setAttribute('data-scrolltop', 'on');\r\n }\r\n } else {\r\n if (body.hasAttribute('data-scrolltop') === true) {\r\n body.removeAttribute('data-scrolltop');\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Handles scrolltop click scrollTop\r\n */\r\n scroll: function(e) {\r\n e.preventDefault();\r\n\r\n KTUtil.scrollTop(0, the.options.speed);\r\n },\r\n\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name, args) {\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the, args);\r\n }\r\n } else {\r\n return event.handler.call(this, the, args);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Get subscrolltop mode\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n /**\r\n * Set scrolltop content\r\n * @returns {mscrolltop}\r\n */\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n ///////////////////////////////\r\n // ** Plugin Construction ** //\r\n ///////////////////////////////\r\n\r\n // Run plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n // Init done\r\n init = true;\r\n\r\n // Return plugin instance\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n // module.exports = KTScrolltop;\r\n}\r\n\nexport default KTScrolltop;"],"sourceRoot":""}