@ozdao/martyrs 0.2.518 → 0.2.520
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/index.cjs +4 -4
- package/dist/_virtual/index.js +4 -4
- package/dist/_virtual/index2.cjs +4 -4
- package/dist/_virtual/index2.js +4 -4
- package/dist/{abac-Cf_9lCSh.js → abac-CnJsrv8S.js} +3 -3
- package/dist/{abac-6LjoG9u-.cjs → abac-DOyUjhee.cjs} +3 -3
- package/dist/builder.cjs +27 -25
- package/dist/builder.js +27 -25
- package/dist/chats.server.cjs +198 -1
- package/dist/chats.server.js +198 -1
- package/dist/{crud-sE7GLPbj.js → crud-BIFl1W1i.js} +6 -6
- package/dist/{crud-JN_LFj01.cjs → crud-CC6k6yY5.cjs} +6 -6
- package/dist/{globals.logger-CZMgIMlM.cjs → globals.logger-BuW7JHMY.cjs} +63 -53
- package/dist/{globals.logger-Bf6rRU7j.js → globals.logger-VRHh-WUW.js} +63 -53
- package/dist/{globals.observer-CV2wCzzh.cjs → globals.observer-C_FYclgV.cjs} +36 -1
- package/dist/{globals.observer-CDqUjVU5.js → globals.observer-MZsqaE6F.js} +36 -1
- package/dist/globals.server.cjs +1 -1
- package/dist/globals.server.js +1 -1
- package/dist/inventory.server.cjs +276 -376
- package/dist/inventory.server.js +276 -376
- package/dist/main-BM3GslOO.cjs +11 -0
- package/dist/{main-wmEhGVvD.js → main-Qcn7YlTx.js} +1834 -1830
- package/dist/martyrs/src/components/Address/{Address.vue2.cjs → Address.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Address/{Address.vue2.js.map → Address.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Address/{Address.vue2.js → Address.vue.js} +2 -2
- package/dist/martyrs/src/components/Address/Address.vue.js.map +1 -0
- package/dist/martyrs/src/components/Button/Button.vue.cjs +1 -1
- package/dist/martyrs/src/components/Button/Button.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Button/Button.vue.js +1 -1
- package/dist/martyrs/src/components/Button/Button.vue.js.map +1 -1
- package/dist/martyrs/src/components/Chips/{Chips.vue.cjs → Chips.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Chips/{Chips.vue.js → Chips.vue2.js} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs → Dropdown.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.js → Dropdown.vue2.js} +2 -2
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs.map → Dropdown.vue2.js.map} +1 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue.cjs +0 -93
- package/dist/martyrs/src/components/EditImages/EditImages.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue.js +1 -94
- package/dist/martyrs/src/components/EditImages/EditImages.vue.js.map +1 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue2.cjs +93 -0
- package/dist/martyrs/src/components/EditImages/EditImages.vue2.cjs.map +1 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue2.js +94 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue2.js.map +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs +2 -3
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +2 -3
- package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
- package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +1 -1
- package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +1 -1
- package/dist/martyrs/src/components/Loader/Loader.vue2.cjs +1 -1
- package/dist/martyrs/src/components/Loader/Loader.vue2.cjs.map +1 -1
- package/dist/martyrs/src/components/Loader/Loader.vue2.js +1 -1
- package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +1 -1
- package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue2.cjs → LocationMarker.vue.cjs} +2 -2
- package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue2.js.map → LocationMarker.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue2.js → LocationMarker.vue.js} +2 -2
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js.map +1 -0
- package/dist/martyrs/src/components/Select/{Select.vue2.cjs → Select.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Select/{Select.vue2.js.map → Select.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Select/{Select.vue2.js → Select.vue.js} +2 -2
- package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -0
- package/dist/martyrs/src/modules/auth/views/components/blocks/CardUser.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/blocks/CardUser.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +4 -4
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +41 -51
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +59 -69
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs +11 -13
- package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js +11 -13
- package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/store/auth.cjs +10 -1
- package/dist/martyrs/src/modules/auth/views/store/auth.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/store/auth.js +10 -1
- package/dist/martyrs/src/modules/auth/views/store/auth.js.map +1 -1
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs +6 -0
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +6 -0
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.cjs +27 -11
- package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.js +28 -12
- package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.js.map +1 -1
- package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs +62 -0
- package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js +63 -1
- package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js.map +1 -1
- package/dist/martyrs/src/modules/chats/store/chat.store.cjs +60 -1
- package/dist/martyrs/src/modules/chats/store/chat.store.cjs.map +1 -1
- package/dist/martyrs/src/modules/chats/store/chat.store.js +60 -1
- package/dist/martyrs/src/modules/chats/store/chat.store.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs +3 -3
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +3 -3
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +2 -2
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Posts.vue.cjs +50 -368
- package/dist/martyrs/src/modules/community/components/pages/Posts.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js +53 -371
- package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +2 -3
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +2 -3
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +2 -2
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js.map +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +3 -3
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
- package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/LocationSelection.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/partials/LocationSelection.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.cjs +16 -3
- package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.js +17 -4
- package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/mixins/mixins.cjs +7 -0
- package/dist/martyrs/src/modules/globals/views/mixins/mixins.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/mixins/mixins.js +7 -0
- package/dist/martyrs/src/modules/globals/views/mixins/mixins.js.map +1 -1
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +67 -43
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +68 -44
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.cjs +22 -7
- package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +23 -8
- package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.cjs +47 -32
- package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +48 -33
- package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +47 -26
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +48 -27
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +42 -52
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +43 -53
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +18 -18
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +3 -3
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/store/{ inventory.store.cjs → inventory.store.cjs} +46 -2
- package/dist/martyrs/src/modules/inventory/store/inventory.store.cjs.map +1 -0
- package/dist/martyrs/src/modules/inventory/store/{ inventory.store.js → inventory.store.js} +46 -2
- package/dist/martyrs/src/modules/inventory/store/inventory.store.js.map +1 -0
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +180 -19
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +181 -20
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +1 -1
- package/dist/martyrs/src/modules/music/router/music.cjs +1 -2
- package/dist/martyrs/src/modules/music/router/music.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/router/music.js +1 -2
- package/dist/martyrs/src/modules/music/router/music.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +3 -4
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +3 -4
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/orders.client.cjs +2 -2
- package/dist/martyrs/src/modules/orders/orders.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/orders.client.js +2 -2
- package/dist/martyrs/src/modules/orders/orders.client.js.map +1 -1
- package/dist/martyrs/src/modules/orders/router/customers.router.cjs +1 -1
- package/dist/martyrs/src/modules/orders/router/customers.router.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/router/customers.router.js +1 -1
- package/dist/martyrs/src/modules/orders/router/customers.router.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +2 -24
- package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +5 -27
- package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.cjs +4 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.js +4 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +3 -3
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.cjs +195 -0
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +195 -0
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs +402 -0
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +402 -0
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs +86 -0
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +86 -0
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs +10 -10
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +11 -11
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +279 -191
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +285 -197
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +7 -7
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +7 -7
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +3 -3
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.cjs +4 -4
- package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.js +4 -4
- package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs +42 -41
- package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js +53 -52
- package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/organizations.client.cjs +23 -16
- package/dist/martyrs/src/modules/organizations/organizations.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/organizations.client.js +35 -28
- package/dist/martyrs/src/modules/organizations/organizations.client.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/router/departments.router.cjs +0 -18
- package/dist/martyrs/src/modules/organizations/router/departments.router.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/router/departments.router.js +0 -18
- package/dist/martyrs/src/modules/organizations/router/departments.router.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/store/departments.store.cjs +6 -0
- package/dist/martyrs/src/modules/organizations/store/departments.store.cjs.map +1 -0
- package/dist/martyrs/src/modules/organizations/store/departments.store.js +6 -0
- package/dist/martyrs/src/modules/organizations/store/departments.store.js.map +1 -0
- package/dist/martyrs/src/modules/organizations/store/invites.store.cjs +6 -0
- package/dist/martyrs/src/modules/organizations/store/invites.store.cjs.map +1 -0
- package/dist/martyrs/src/modules/organizations/store/invites.store.js +6 -0
- package/dist/martyrs/src/modules/organizations/store/invites.store.js.map +1 -0
- package/dist/martyrs/src/modules/organizations/store/memberships.store.cjs +20 -0
- package/dist/martyrs/src/modules/organizations/store/memberships.store.cjs.map +1 -0
- package/dist/martyrs/src/modules/organizations/store/memberships.store.js +20 -0
- package/dist/martyrs/src/modules/organizations/store/memberships.store.js.map +1 -0
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +3 -4
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +3 -4
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +3 -3
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +3 -3
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +3 -3
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +3 -3
- package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.cjs +60 -272
- package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js +62 -274
- package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +4 -4
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +4 -4
- package/dist/martyrs.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +1 -1
- package/dist/music.server.cjs +9 -9
- package/dist/music.server.js +9 -9
- package/dist/notifications.server.cjs +0 -24
- package/dist/notifications.server.js +0 -24
- package/dist/orders.server.cjs +3 -6
- package/dist/orders.server.js +3 -6
- package/dist/organizations.server.cjs +119 -43
- package/dist/organizations.server.js +119 -43
- package/dist/products.server.cjs +5 -5
- package/dist/products.server.js +5 -5
- package/dist/rents.server.cjs +3 -3
- package/dist/rents.server.js +3 -3
- package/dist/style.css +16 -17
- package/dist/wallet.server.cjs +2 -2
- package/dist/wallet.server.js +2 -2
- package/dist/{web-B5wZTKbK.cjs → web-B0cfxzgu.cjs} +1 -1
- package/dist/{web-520xCgXy.js → web-DVR8m2fm.js} +1 -1
- package/package.json +1 -1
- package/src/builder/modes/ssr.rspack.dev.js +20 -12
- package/src/builder/rspack/rspack.config.base.js +16 -15
- package/src/components/Button/Button.vue +1 -1
- package/src/components/Feed/Feed.old.vue +0 -1
- package/src/components/Feed/Feed.vue +1 -31
- package/src/components/Loader/Loader.vue +1 -1
- package/src/modules/auth/FIXES.md +61 -0
- package/src/modules/auth/PROMT.md +33 -0
- package/src/modules/auth/auth.server.js +1 -0
- package/src/modules/auth/views/components/blocks/CardUser.vue +2 -2
- package/src/modules/auth/views/components/layouts/Auth.vue +1 -1
- package/src/modules/auth/views/components/pages/Invite.vue +2 -2
- package/src/modules/auth/views/components/pages/Profile.vue +33 -48
- package/src/modules/auth/views/components/sections/SliderFeatures.vue +5 -7
- package/src/modules/auth/views/store/auth.js +16 -1
- package/src/modules/auth//320/220/320/240/320/245/320/230/320/242/320/225/320/232/320/242/320/243/320/240/320/220.md +445 -0
- package/src/modules/backoffice/components/partials/Sidebar.vue +6 -0
- package/src/modules/chats/CLAUDE.md +137 -0
- package/src/modules/chats/components/blocks/ChatMessage.vue +12 -0
- package/src/modules/chats/components/sections/ChatWindow.vue +84 -2
- package/src/modules/chats/controllers/chats.controller.js +187 -0
- package/src/modules/chats/models/chat.model.js +21 -0
- package/src/modules/chats/routes/chats.routes.js +46 -0
- package/src/modules/chats/store/chat.store.js +67 -0
- package/src/modules/community/components/layouts/Community.vue +2 -2
- package/src/modules/community/components/pages/Posts.vue +3 -328
- package/src/modules/events/components/pages/EditEventTickets.vue +1 -1
- package/src/modules/events/components/pages/Events.vue +2 -2
- package/src/modules/globals/controllers/classes/globals.cache.js +64 -55
- package/src/modules/globals/controllers/classes/globals.logger.js +40 -4
- package/src/modules/globals/controllers/classes/globals.observer.js +54 -4
- package/src/modules/globals/views/components/partials/Header.vue +1 -1
- package/src/modules/globals/views/components/partials/Sidebar.vue +17 -13
- package/src/modules/globals/views/mixins/mixins.js +7 -0
- package/src/modules/inventory/CLAUDE.md +330 -0
- package/src/modules/inventory/PROMT.md +25 -0
- package/src/modules/inventory/components/forms/AdjustmentForm.vue +53 -36
- package/src/modules/inventory/components/forms/ColumnSettingsMenu.vue +11 -6
- package/src/modules/inventory/components/forms/HistoryView.vue +21 -9
- package/src/modules/inventory/components/forms/StockAlertsForm.vue +33 -22
- package/src/modules/inventory/components/pages/Inventory.vue +40 -40
- package/src/modules/inventory/components/pages/InventoryEdit.vue +1 -1
- package/src/modules/inventory/docs/01-intro.md +126 -0
- package/src/modules/inventory/docs/02-architecture.md +266 -0
- package/src/modules/inventory/docs/03-components-and-relationships.md +338 -0
- package/src/modules/inventory/docs/04-business-logic-and-algorithms.md +376 -0
- package/src/modules/inventory/docs/05-api-specification.md +356 -0
- package/src/modules/inventory/docs/06-access-control.md +320 -0
- package/src/modules/inventory/inventory.server.js +6 -2
- package/src/modules/inventory/{services → middlewares}/inventory.verifier.js +5 -16
- package/src/modules/inventory/models/stock.availability.model.js +20 -7
- package/src/modules/inventory/routes/inventory.routes.js +14 -17
- package/src/modules/inventory/services/adjustment.service.js +137 -0
- package/src/modules/inventory/services/audit.service.js +160 -0
- package/src/modules/inventory/services/availability.service.js +323 -0
- package/src/modules/inventory/services/inventory.helpers.old.js +217 -0
- package/src/modules/inventory/store/{ inventory.store.js → inventory.store.js} +0 -14
- package/src/modules/inventory/workers/inventory.availability.worker.js +29 -30
- package/src/modules/marketplace/views/components/layouts/Marketplace.vue +160 -8
- package/src/modules/notifications/controllers/notifications.controller.js +0 -6
- package/src/modules/notifications/services/notification.service.js +1 -17
- package/src/modules/notifications/services/web-push.service.js +0 -2
- package/src/modules/orders/components/blocks/CardOrderBackoffice.vue +2 -2
- package/src/modules/orders/components/blocks/CardOrderVar1.vue +1 -1
- package/src/modules/orders/controllers/orders.controller.js +2 -4
- package/src/modules/orders/orders.client.js +2 -2
- package/src/modules/orders/router/customers.router.js +1 -1
- package/src/modules/organizations/CLAUDE.md +259 -0
- package/src/modules/organizations/components/blocks/CardDepartment.vue +1 -22
- package/src/modules/organizations/components/blocks/Socials.vue +1 -1
- package/src/modules/organizations/components/elements/ButtonToggleMembership.vue +3 -3
- package/src/modules/organizations/components/forms/AddExistingMembersForm.vue +191 -0
- package/src/modules/organizations/components/forms/DepartmentForm.vue +390 -0
- package/src/modules/organizations/components/forms/InviteForm.vue +81 -0
- package/src/modules/organizations/components/pages/Department.vue +10 -10
- package/src/modules/organizations/components/pages/DepartmentEdit.vue +8 -8
- package/src/modules/organizations/components/pages/Members.vue +265 -171
- package/src/modules/organizations/components/pages/Organization.new.vue +172 -183
- package/src/modules/organizations/components/pages/Organization.vue +6 -6
- package/src/modules/organizations/components/pages/OrganizationEdit.vue +1 -1
- package/src/modules/organizations/components/pages/Organizations.vue +1 -1
- package/src/modules/organizations/components/sections/Organizations.vue +2 -2
- package/src/modules/organizations/components/sections/Publics.vue +4 -4
- package/src/modules/organizations/configs/navigation.organization.config.js +40 -39
- package/src/modules/organizations/controllers/departments.controller.js +53 -34
- package/src/modules/organizations/controllers/invites.controller.js +44 -5
- package/src/modules/organizations/controllers/memberships.controller.js +43 -4
- package/src/modules/organizations/organizations.client.js +24 -15
- package/src/modules/organizations/router/departments.router.js +0 -18
- package/src/modules/organizations/routes/departments.routes.js +6 -8
- package/src/modules/organizations/routes/invites.routes.js +6 -4
- package/src/modules/organizations/routes/memberships.routes.js +6 -5
- package/src/modules/organizations/routes/organizations.routes.js +1 -1
- package/src/modules/organizations/store/departments.store.js +5 -0
- package/src/modules/organizations/store/invites.store.js +5 -0
- package/src/modules/organizations/store/memberships.store.js +23 -0
- package/src/modules/products/components/pages/Products.vue +0 -1
- package/src/modules/spots/components/blocks/CardSpot.vue +1 -1
- package/src/modules/spots/components/pages/Spots.vue +3 -203
- package/src/styles/base/all.scss +0 -15
- package/src/styles/responsive.scss +1 -31
- package/src/styles/typography.scss +20 -5
- package/dist/main-CSzPfQYR.cjs +0 -11
- package/dist/martyrs/src/components/Address/Address.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/Chips/Chips.vue.js.map +0 -1
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +0 -1
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Select/Select.vue2.cjs.map +0 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.cjs +0 -76
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.js +0 -76
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.js.map +0 -1
- package/dist/martyrs/src/modules/inventory/store/ inventory.store.cjs.map +0 -1
- package/dist/martyrs/src/modules/inventory/store/ inventory.store.js.map +0 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +0 -280
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +0 -280
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js.map +0 -1
- package/dist/martyrs/src/modules/organizations/store/departments.cjs +0 -121
- package/dist/martyrs/src/modules/organizations/store/departments.cjs.map +0 -1
- package/dist/martyrs/src/modules/organizations/store/departments.js +0 -121
- package/dist/martyrs/src/modules/organizations/store/departments.js.map +0 -1
- package/dist/martyrs/src/modules/organizations/store/invites.cjs +0 -64
- package/dist/martyrs/src/modules/organizations/store/invites.cjs.map +0 -1
- package/dist/martyrs/src/modules/organizations/store/invites.js +0 -64
- package/dist/martyrs/src/modules/organizations/store/invites.js.map +0 -1
- package/dist/martyrs/src/modules/organizations/store/memberships.cjs +0 -87
- package/dist/martyrs/src/modules/organizations/store/memberships.cjs.map +0 -1
- package/dist/martyrs/src/modules/organizations/store/memberships.js +0 -87
- package/dist/martyrs/src/modules/organizations/store/memberships.js.map +0 -1
- package/src/modules/globals/controllers/classes/globals.websocket.ws.js +0 -102
- package/src/modules/globals/views/components/blocks/BlockFilter.vue +0 -60
- package/src/modules/inventory/docs/README.md +0 -291
- package/src/modules/inventory/models/stock.balance.model.js +0 -43
- package/src/modules/inventory/services/inventory.crud.js +0 -710
- package/src/modules/inventory/tests/inventory.test.js +0 -281
- package/src/modules/organizations/store/departments.js +0 -137
- package/src/modules/organizations/store/invites.js +0 -76
- package/src/modules/organizations/store/memberships.js +0 -110
|
@@ -3,10 +3,12 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
|
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const vueRouter = require("vue-router");
|
|
5
5
|
const Field = require("../../../../components/Field/Field.vue.cjs");
|
|
6
|
-
const Select = require("../../../../components/Select/Select.
|
|
6
|
+
const Select = require("../../../../components/Select/Select.vue.cjs");
|
|
7
|
+
const Button = require("../../../../components/Button/Button.vue.cjs");
|
|
7
8
|
const auth = require("../../../auth/views/store/auth.cjs");
|
|
8
9
|
const spots = require("../../../spots/store/spots.cjs");
|
|
9
10
|
const variants_store = require("../../../products/store/variants.store.cjs");
|
|
11
|
+
const inventory_store = require("../../store/inventory.store.cjs");
|
|
10
12
|
const IconInfo = require("../../../icons/navigation/IconInfo.vue.cjs");
|
|
11
13
|
const _hoisted_1 = { class: "w-100" };
|
|
12
14
|
const _hoisted_2 = { class: "mn-b-medium" };
|
|
@@ -28,14 +30,13 @@ const _sfc_main = {
|
|
|
28
30
|
required: true
|
|
29
31
|
}
|
|
30
32
|
},
|
|
31
|
-
emits: ["
|
|
33
|
+
emits: ["close", "adjustment-created"],
|
|
32
34
|
setup(__props, { emit: __emit }) {
|
|
33
35
|
const route = vueRouter.useRoute();
|
|
34
36
|
const props = __props;
|
|
35
37
|
const emit = __emit;
|
|
36
38
|
const quantity = vue.ref(0);
|
|
37
|
-
const selectedReason = vue.ref("
|
|
38
|
-
const customReasonText = vue.ref("");
|
|
39
|
+
const selectedReason = vue.ref("restock");
|
|
39
40
|
const note = vue.ref("");
|
|
40
41
|
const selectedStorage = vue.ref(null);
|
|
41
42
|
const selectedVariant = vue.ref(null);
|
|
@@ -47,7 +48,7 @@ const _sfc_main = {
|
|
|
47
48
|
{ label: "Return", value: "return", icon: IconInfo.default },
|
|
48
49
|
{ label: "Damage", value: "damage", icon: IconInfo.default },
|
|
49
50
|
{ label: "Transfer", value: "transfer", icon: IconInfo.default },
|
|
50
|
-
{ label: "
|
|
51
|
+
{ label: "Other", value: "custom", icon: IconInfo.default }
|
|
51
52
|
];
|
|
52
53
|
vue.onMounted(async () => {
|
|
53
54
|
console.log("AdjustmentForm mounted with product:", props.product);
|
|
@@ -80,32 +81,48 @@ const _sfc_main = {
|
|
|
80
81
|
console.error("Error fetching spots:", err);
|
|
81
82
|
}
|
|
82
83
|
});
|
|
83
|
-
function saveAdjustment() {
|
|
84
|
+
async function saveAdjustment() {
|
|
84
85
|
if (!selectedVariant.value) {
|
|
85
86
|
alert("Please select a variant");
|
|
86
|
-
|
|
87
|
+
throw new Error("Please select a variant");
|
|
87
88
|
}
|
|
88
89
|
if (!selectedStorage.value) {
|
|
89
90
|
alert("Please select a storage");
|
|
90
|
-
|
|
91
|
+
throw new Error("Please select a storage");
|
|
92
|
+
}
|
|
93
|
+
try {
|
|
94
|
+
const adjustmentData = {
|
|
95
|
+
product: props.product._id,
|
|
96
|
+
variant: selectedVariant.value,
|
|
97
|
+
storage: selectedStorage.value,
|
|
98
|
+
source: {
|
|
99
|
+
type: "User",
|
|
100
|
+
target: auth.state.user._id
|
|
101
|
+
},
|
|
102
|
+
quantity: parseInt(quantity.value || 0),
|
|
103
|
+
reason: selectedReason.value,
|
|
104
|
+
comment: note.value || "",
|
|
105
|
+
owner: {
|
|
106
|
+
type: "organization",
|
|
107
|
+
target: route.params._id
|
|
108
|
+
},
|
|
109
|
+
creator: {
|
|
110
|
+
type: "user",
|
|
111
|
+
target: auth.state.user._id
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
const createdAdjustment = await inventory_store.actions.createAdjustment(adjustmentData);
|
|
115
|
+
emit("adjustment-created", {
|
|
116
|
+
product: props.product._id,
|
|
117
|
+
storage: selectedStorage.value,
|
|
118
|
+
quantity: parseInt(quantity.value || 0),
|
|
119
|
+
storageName: storageOptions.value.find((s) => s._id === selectedStorage.value)?.name
|
|
120
|
+
});
|
|
121
|
+
emit("close");
|
|
122
|
+
} catch (err) {
|
|
123
|
+
console.error(err);
|
|
124
|
+
throw err;
|
|
91
125
|
}
|
|
92
|
-
const adjustmentData = {
|
|
93
|
-
product: props.product._id,
|
|
94
|
-
variant: selectedVariant.value,
|
|
95
|
-
storage: selectedStorage.value,
|
|
96
|
-
source: {
|
|
97
|
-
type: "User",
|
|
98
|
-
target: auth.state.user._id
|
|
99
|
-
},
|
|
100
|
-
quantity: parseInt(quantity.value || 0),
|
|
101
|
-
reason: selectedReason.value === "custom" ? customReasonText.value : selectedReason.value,
|
|
102
|
-
comment: note.value || "",
|
|
103
|
-
creator: {
|
|
104
|
-
type: "user",
|
|
105
|
-
target: auth.state.user._id
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
emit("save", adjustmentData);
|
|
109
126
|
}
|
|
110
127
|
return (_ctx, _cache) => {
|
|
111
128
|
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
|
|
@@ -130,7 +147,7 @@ const _sfc_main = {
|
|
|
130
147
|
])
|
|
131
148
|
]),
|
|
132
149
|
productVariants.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4, [
|
|
133
|
-
_cache[
|
|
150
|
+
_cache[4] || (_cache[4] = vue.createElementVNode("p", { class: "mn-b-small t-medium" }, "Select Variant", -1)),
|
|
134
151
|
vue.createVNode(Select.default, {
|
|
135
152
|
select: selectedVariant.value,
|
|
136
153
|
"onUpdate:select": _cache[1] || (_cache[1] = ($event) => selectedVariant.value = $event),
|
|
@@ -142,7 +159,7 @@ const _sfc_main = {
|
|
|
142
159
|
}, null, 8, ["select", "options"])
|
|
143
160
|
])) : vue.createCommentVNode("", true),
|
|
144
161
|
vue.createElementVNode("div", _hoisted_5, [
|
|
145
|
-
_cache[
|
|
162
|
+
_cache[5] || (_cache[5] = vue.createElementVNode("p", { class: "mn-b-small t-medium" }, "Select Storage", -1)),
|
|
146
163
|
vue.createVNode(Select.default, {
|
|
147
164
|
select: selectedStorage.value,
|
|
148
165
|
"onUpdate:select": _cache[2] || (_cache[2] = ($event) => selectedStorage.value = $event),
|
|
@@ -154,7 +171,7 @@ const _sfc_main = {
|
|
|
154
171
|
}, null, 8, ["select", "options"])
|
|
155
172
|
]),
|
|
156
173
|
vue.createElementVNode("div", _hoisted_6, [
|
|
157
|
-
_cache[
|
|
174
|
+
_cache[6] || (_cache[6] = vue.createElementVNode("p", { class: "mn-b-small t-medium" }, "Adjustment Reason", -1)),
|
|
158
175
|
vue.createElementVNode("div", _hoisted_7, [
|
|
159
176
|
(vue.openBlock(), vue.createElementBlock(vue.Fragment, null, vue.renderList(adjustmentReasons, (reason) => {
|
|
160
177
|
return vue.createElementVNode("div", {
|
|
@@ -166,32 +183,39 @@ const _sfc_main = {
|
|
|
166
183
|
vue.createElementVNode("span", null, vue.toDisplayString(reason.label), 1)
|
|
167
184
|
], 10, _hoisted_8);
|
|
168
185
|
}), 64))
|
|
169
|
-
])
|
|
170
|
-
selectedReason.value === "custom" ? (vue.openBlock(), vue.createBlock(Field.default, {
|
|
171
|
-
key: 0,
|
|
172
|
-
field: customReasonText.value,
|
|
173
|
-
"onUpdate:field": _cache[3] || (_cache[3] = ($event) => customReasonText.value = $event),
|
|
174
|
-
placeholder: "Enter custom reason",
|
|
175
|
-
class: "w-100 bg-light radius-small pd-medium"
|
|
176
|
-
}, null, 8, ["field"])) : vue.createCommentVNode("", true)
|
|
186
|
+
])
|
|
177
187
|
]),
|
|
178
188
|
vue.createVNode(Field.default, {
|
|
179
189
|
field: note.value,
|
|
180
|
-
"onUpdate:field": _cache[
|
|
190
|
+
"onUpdate:field": _cache[3] || (_cache[3] = ($event) => note.value = $event),
|
|
181
191
|
label: "Note",
|
|
182
192
|
type: "textarea",
|
|
183
193
|
placeholder: "Add additional details about this adjustment...",
|
|
184
194
|
class: "w-100 bg-light radius-small pd-medium mn-b-medium"
|
|
185
195
|
}, null, 8, ["field"]),
|
|
186
196
|
vue.createElementVNode("div", _hoisted_9, [
|
|
187
|
-
vue.
|
|
188
|
-
|
|
197
|
+
vue.createVNode(Button.default, {
|
|
198
|
+
submit: () => _ctx.$emit("close"),
|
|
199
|
+
showLoader: false,
|
|
200
|
+
showSucces: false,
|
|
189
201
|
class: "pd-small radius-small flex-center flex w-max cursor-pointer t-transp"
|
|
190
|
-
},
|
|
191
|
-
|
|
192
|
-
|
|
202
|
+
}, {
|
|
203
|
+
default: vue.withCtx(() => _cache[7] || (_cache[7] = [
|
|
204
|
+
vue.createTextVNode(" Cancel ")
|
|
205
|
+
])),
|
|
206
|
+
_: 1
|
|
207
|
+
}, 8, ["submit"]),
|
|
208
|
+
vue.createVNode(Button.default, {
|
|
209
|
+
submit: saveAdjustment,
|
|
210
|
+
showLoader: true,
|
|
211
|
+
showSucces: true,
|
|
193
212
|
class: "pd-small radius-small flex-center flex w-100 cursor-pointer bg-main t-black"
|
|
194
|
-
},
|
|
213
|
+
}, {
|
|
214
|
+
default: vue.withCtx(() => _cache[8] || (_cache[8] = [
|
|
215
|
+
vue.createTextVNode(" Save Adjustment ")
|
|
216
|
+
])),
|
|
217
|
+
_: 1
|
|
218
|
+
})
|
|
195
219
|
])
|
|
196
220
|
]);
|
|
197
221
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdjustmentForm.vue.cjs","sources":["../../../../../../../src/modules/inventory/components/forms/AdjustmentForm.vue"],"sourcesContent":["<template>\n <div class=\"w-100\">\n <p class=\"mn-b-medium t-transp\">\n Effortlessly update your inventory and track adjustments for accurate stock management.\n </p>\n \n \n <div class=\"mn-b-medium\">\n <div class=\"mn-b-small flex-nowrap flex gap-thin\">\n <Field\n v-model:field=\"quantity\"\n label=\"Quantity Adjustment\"\n type=\"number\"\n placeholder=\"Enter +/- quantity\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n \n <Field\n :field=\"product.available\"\n label=\"Current Available\"\n type=\"text\"\n :disabled=\"true\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n \n </div>\n\n <!-- Variant Selection -->\n <div class=\"mn-b-medium\" v-if=\"productVariants.length > 0\">\n <p class=\"mn-b-small t-medium\">Select Variant</p>\n <Select\n v-model:select=\"selectedVariant\"\n :options=\"productVariants\"\n property=\"_id\"\n value=\"name\"\n placeholder=\"Choose variant\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n\n <!-- Storage Selection -->\n <div class=\"mn-b-medium\">\n <p class=\"mn-b-small t-medium\">Select Storage</p>\n <Select\n v-model:select=\"selectedStorage\"\n :options=\"storageOptions\"\n property=\"_id\"\n value=\"name\"\n placeholder=\"Choose storage\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n \n <div class=\"mn-b-medium\">\n <p class=\"mn-b-small t-medium\">Adjustment Reason</p>\n \n <div class=\"cols-3 gap-small mn-b-small\">\n <div \n v-for=\"reason in adjustmentReasons\"\n :key=\"reason.value\"\n @click=\"selectedReason = reason.value\"\n :class=\"{ 'bg-main t-black': selectedReason === reason.value, 'bg-light': selectedReason !== reason.value }\"\n class=\"pd-small radius-small flex-column flex-center flex cursor-pointer\"\n >\n <component :is=\"reason.icon\" class=\"i-regular mn-b-nano\" />\n <span>{{ reason.label }}</span>\n </div>\n </div>\n \n <Field\n v-if=\"selectedReason === 'custom'\"\n v-model:field=\"customReasonText\"\n placeholder=\"Enter custom reason\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n \n <Field\n v-model:field=\"note\"\n label=\"Note\"\n type=\"textarea\"\n placeholder=\"Add additional details about this adjustment...\"\n class=\"w-100 bg-light radius-small pd-medium mn-b-medium\"\n />\n \n <div class=\"flex-nowrap flex gap-small\">\n <button \n @click=\"$emit('close')\" \n class=\"pd-small radius-small flex-center flex w-max cursor-pointer t-transp\"\n >\n Cancel\n </button>\n \n <button \n @click=\"saveAdjustment\" \n class=\"pd-small radius-small flex-center flex w-100 cursor-pointer bg-main t-black\"\n >\n Save Adjustment\n </button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, onMounted } from 'vue'\nimport { useRoute } from 'vue-router'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Select from '@martyrs/src/components/Select/Select.vue'\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\nimport * as spots from '@martyrs/src/modules/spots/store/spots.js'\nimport variants from '@martyrs/src/modules/products/store/variants.store.js'\n\nconst route = useRoute()\n\n// Icons for adjustment reasons\nimport IconDamage from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconExpire from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconMisplacement from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconThief from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconStocktake from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconCustom from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\n\nconst props = defineProps({\n product: {\n type: Object,\n required: true\n }\n})\n\nconst emit = defineEmits(['save', 'close'])\n\n// Form state\nconst quantity = ref(0)\nconst selectedReason = ref('custom')\nconst customReasonText = ref('')\nconst note = ref('')\nconst selectedStorage = ref(null)\nconst selectedVariant = ref(null)\nconst productVariants = ref([])\nconst storageOptions = ref([])\n\n// Adjustment reason options\nconst adjustmentReasons = [\n { label: 'Restock', value: 'restock', icon: IconDamage },\n { label: 'Sale', value: 'sale', icon: IconExpire },\n { label: 'Return', value: 'return', icon: IconMisplacement },\n { label: 'Damage', value: 'damage', icon: IconThief },\n { label: 'Transfer', value: 'transfer', icon: IconStocktake },\n { label: 'Custom', value: 'custom', icon: IconCustom },\n]\n\nfunction formatPrice(price) {\n return '$' + (parseFloat(price) || 0).toFixed(2)\n}\n\n// Fetch variants and storages on mount\nonMounted(async () => {\n console.log('AdjustmentForm mounted with product:', props.product)\n \n // Fetch variants for the product\n try {\n const variantsData = await variants.read({\n product: props.product._id,\n limit: 50\n })\n productVariants.value = variantsData\n // Select first variant by default if available\n if (variantsData.length > 0) {\n selectedVariant.value = variantsData[0]._id\n }\n } catch (err) {\n console.error('Error fetching variants:', err)\n }\n\n // Fetch storage options\n try {\n const spotsData = await spots.actions.read({\n user: auth.state.user._id,\n organization: route.params._id,\n limit: 50\n })\n storageOptions.value = spotsData.map(spot => ({\n _id: spot._id,\n name: spot.profile?.name || 'Storage'\n }))\n // Select first storage by default if available\n if (storageOptions.value.length > 0) {\n selectedStorage.value = storageOptions.value[0]._id\n }\n } catch (err) {\n console.error('Error fetching spots:', err)\n }\n})\n\nfunction saveAdjustment() {\n if (!selectedVariant.value) {\n alert('Please select a variant')\n return\n }\n if (!selectedStorage.value) {\n alert('Please select a storage')\n return\n }\n\n const adjustmentData = {\n product: props.product._id,\n variant: selectedVariant.value,\n storage: selectedStorage.value,\n source: {\n type: 'User',\n target: auth.state.user._id\n },\n quantity: parseInt(quantity.value || 0),\n reason: selectedReason.value === 'custom' ? customReasonText.value : selectedReason.value,\n comment: note.value || '',\n creator: {\n type: 'user',\n target: auth.state.user._id\n }\n }\n \n emit('save', adjustmentData)\n}\n</script>"],"names":["useRoute","ref","IconDamage","IconExpire","IconMisplacement","IconThief","IconStocktake","IconCustom","onMounted","variants","spots.actions","auth.state"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AdjustmentForm.vue.cjs","sources":["../../../../../../../src/modules/inventory/components/forms/AdjustmentForm.vue"],"sourcesContent":["<template>\n <div class=\"w-100\">\n <p class=\"mn-b-medium t-transp\">\n Effortlessly update your inventory and track adjustments for accurate stock management.\n </p>\n \n \n <div class=\"mn-b-medium\">\n <div class=\"mn-b-small flex-nowrap flex gap-thin\">\n <Field\n v-model:field=\"quantity\"\n label=\"Quantity Adjustment\"\n type=\"number\"\n placeholder=\"Enter +/- quantity\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n \n <Field\n :field=\"product.available\"\n label=\"Current Available\"\n type=\"text\"\n :disabled=\"true\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n \n </div>\n\n <!-- Variant Selection -->\n <div class=\"mn-b-medium\" v-if=\"productVariants.length > 0\">\n <p class=\"mn-b-small t-medium\">Select Variant</p>\n <Select\n v-model:select=\"selectedVariant\"\n :options=\"productVariants\"\n property=\"_id\"\n value=\"name\"\n placeholder=\"Choose variant\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n\n <!-- Storage Selection -->\n <div class=\"mn-b-medium\">\n <p class=\"mn-b-small t-medium\">Select Storage</p>\n <Select\n v-model:select=\"selectedStorage\"\n :options=\"storageOptions\"\n property=\"_id\"\n value=\"name\"\n placeholder=\"Choose storage\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n \n <div class=\"mn-b-medium\">\n <p class=\"mn-b-small t-medium\">Adjustment Reason</p>\n \n <div class=\"cols-3 gap-small mn-b-small\">\n <div \n v-for=\"reason in adjustmentReasons\"\n :key=\"reason.value\"\n @click=\"selectedReason = reason.value\"\n :class=\"{ 'bg-main t-black': selectedReason === reason.value, 'bg-light': selectedReason !== reason.value }\"\n class=\"pd-small radius-small flex-column flex-center flex cursor-pointer\"\n >\n <component :is=\"reason.icon\" class=\"i-regular mn-b-nano\" />\n <span>{{ reason.label }}</span>\n </div>\n </div>\n </div>\n \n <Field\n v-model:field=\"note\"\n label=\"Note\"\n type=\"textarea\"\n placeholder=\"Add additional details about this adjustment...\"\n class=\"w-100 bg-light radius-small pd-medium mn-b-medium\"\n />\n \n <div class=\"flex-nowrap flex gap-small\">\n <Button\n :submit=\"() => $emit('close')\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n class=\"pd-small radius-small flex-center flex w-max cursor-pointer t-transp\"\n >\n Cancel\n </Button>\n \n <Button\n :submit=\"saveAdjustment\"\n :showLoader=\"true\"\n :showSucces=\"true\"\n class=\"pd-small radius-small flex-center flex w-100 cursor-pointer bg-main t-black\"\n >\n Save Adjustment\n </Button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, onMounted } from 'vue'\nimport { useRoute } from 'vue-router'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Select from '@martyrs/src/components/Select/Select.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\nimport * as spots from '@martyrs/src/modules/spots/store/spots.js'\nimport variants from '@martyrs/src/modules/products/store/variants.store.js'\nimport * as inventory from '@martyrs/src/modules/inventory/store/inventory.store.js'\n\nconst route = useRoute()\n\n// Icons for adjustment reasons\nimport IconDamage from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconExpire from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconMisplacement from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconThief from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconStocktake from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconCustom from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\n\nconst props = defineProps({\n product: {\n type: Object,\n required: true\n }\n})\n\nconst emit = defineEmits(['close', 'adjustment-created'])\n\n// Form state\nconst quantity = ref(0)\nconst selectedReason = ref('restock')\nconst note = ref('')\nconst selectedStorage = ref(null)\nconst selectedVariant = ref(null)\nconst productVariants = ref([])\nconst storageOptions = ref([])\n\n// Adjustment reason options\nconst adjustmentReasons = [\n { label: 'Restock', value: 'restock', icon: IconDamage },\n { label: 'Sale', value: 'sale', icon: IconExpire },\n { label: 'Return', value: 'return', icon: IconMisplacement },\n { label: 'Damage', value: 'damage', icon: IconThief },\n { label: 'Transfer', value: 'transfer', icon: IconStocktake },\n { label: 'Other', value: 'custom', icon: IconCustom },\n]\n\nfunction formatPrice(price) {\n return '$' + (parseFloat(price) || 0).toFixed(2)\n}\n\n// Fetch variants and storages on mount\nonMounted(async () => {\n console.log('AdjustmentForm mounted with product:', props.product)\n \n // Fetch variants for the product\n try {\n const variantsData = await variants.read({\n product: props.product._id,\n limit: 50\n })\n productVariants.value = variantsData\n // Select first variant by default if available\n if (variantsData.length > 0) {\n selectedVariant.value = variantsData[0]._id\n }\n } catch (err) {\n console.error('Error fetching variants:', err)\n }\n\n // Fetch storage options\n try {\n const spotsData = await spots.actions.read({\n user: auth.state.user._id,\n organization: route.params._id,\n limit: 50\n })\n storageOptions.value = spotsData.map(spot => ({\n _id: spot._id,\n name: spot.profile?.name || 'Storage'\n }))\n // Select first storage by default if available\n if (storageOptions.value.length > 0) {\n selectedStorage.value = storageOptions.value[0]._id\n }\n } catch (err) {\n console.error('Error fetching spots:', err)\n }\n})\n\nasync function saveAdjustment() {\n if (!selectedVariant.value) {\n alert('Please select a variant')\n throw new Error('Please select a variant')\n }\n if (!selectedStorage.value) {\n alert('Please select a storage')\n throw new Error('Please select a storage')\n }\n\n try {\n const adjustmentData = {\n product: props.product._id,\n variant: selectedVariant.value,\n storage: selectedStorage.value,\n source: {\n type: 'User',\n target: auth.state.user._id\n },\n quantity: parseInt(quantity.value || 0),\n reason: selectedReason.value,\n comment: note.value || '',\n owner: {\n type: 'organization',\n target: route.params._id\n },\n creator: {\n type: 'user',\n target: auth.state.user._id\n }\n }\n \n const createdAdjustment = await inventory.actions.createAdjustment(adjustmentData)\n \n // Emit the adjustment data for parent component to update the product\n emit('adjustment-created', {\n product: props.product._id,\n storage: selectedStorage.value,\n quantity: parseInt(quantity.value || 0),\n storageName: storageOptions.value.find(s => s._id === selectedStorage.value)?.name\n })\n \n emit('close')\n } catch (err) {\n console.error(err)\n throw err\n }\n}\n</script>"],"names":["useRoute","ref","IconDamage","IconExpire","IconMisplacement","IconThief","IconStocktake","IconCustom","onMounted","variants","spots.actions","auth.state","inventory.actions"],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { ref, onMounted, createElementBlock, openBlock, createElementVNode, createCommentVNode, createVNode,
|
|
1
|
+
import { ref, onMounted, createElementBlock, openBlock, createElementVNode, createCommentVNode, createVNode, Fragment, renderList, normalizeClass, createBlock, resolveDynamicComponent, toDisplayString, withCtx, createTextVNode } from "vue";
|
|
2
2
|
import { useRoute } from "vue-router";
|
|
3
3
|
import Field from "../../../../components/Field/Field.vue.js";
|
|
4
|
-
import Select from "../../../../components/Select/Select.
|
|
4
|
+
import Select from "../../../../components/Select/Select.vue.js";
|
|
5
|
+
import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
|
|
5
6
|
import { state } from "../../../auth/views/store/auth.js";
|
|
6
7
|
import { actions } from "../../../spots/store/spots.js";
|
|
7
8
|
import variantsStore from "../../../products/store/variants.store.js";
|
|
9
|
+
import { actions as actions$1 } from "../../store/inventory.store.js";
|
|
8
10
|
import _sfc_main$1 from "../../../icons/navigation/IconInfo.vue.js";
|
|
9
11
|
const _hoisted_1 = { class: "w-100" };
|
|
10
12
|
const _hoisted_2 = { class: "mn-b-medium" };
|
|
@@ -26,14 +28,13 @@ const _sfc_main = {
|
|
|
26
28
|
required: true
|
|
27
29
|
}
|
|
28
30
|
},
|
|
29
|
-
emits: ["
|
|
31
|
+
emits: ["close", "adjustment-created"],
|
|
30
32
|
setup(__props, { emit: __emit }) {
|
|
31
33
|
const route = useRoute();
|
|
32
34
|
const props = __props;
|
|
33
35
|
const emit = __emit;
|
|
34
36
|
const quantity = ref(0);
|
|
35
|
-
const selectedReason = ref("
|
|
36
|
-
const customReasonText = ref("");
|
|
37
|
+
const selectedReason = ref("restock");
|
|
37
38
|
const note = ref("");
|
|
38
39
|
const selectedStorage = ref(null);
|
|
39
40
|
const selectedVariant = ref(null);
|
|
@@ -45,7 +46,7 @@ const _sfc_main = {
|
|
|
45
46
|
{ label: "Return", value: "return", icon: _sfc_main$1 },
|
|
46
47
|
{ label: "Damage", value: "damage", icon: _sfc_main$1 },
|
|
47
48
|
{ label: "Transfer", value: "transfer", icon: _sfc_main$1 },
|
|
48
|
-
{ label: "
|
|
49
|
+
{ label: "Other", value: "custom", icon: _sfc_main$1 }
|
|
49
50
|
];
|
|
50
51
|
onMounted(async () => {
|
|
51
52
|
console.log("AdjustmentForm mounted with product:", props.product);
|
|
@@ -78,32 +79,48 @@ const _sfc_main = {
|
|
|
78
79
|
console.error("Error fetching spots:", err);
|
|
79
80
|
}
|
|
80
81
|
});
|
|
81
|
-
function saveAdjustment() {
|
|
82
|
+
async function saveAdjustment() {
|
|
82
83
|
if (!selectedVariant.value) {
|
|
83
84
|
alert("Please select a variant");
|
|
84
|
-
|
|
85
|
+
throw new Error("Please select a variant");
|
|
85
86
|
}
|
|
86
87
|
if (!selectedStorage.value) {
|
|
87
88
|
alert("Please select a storage");
|
|
88
|
-
|
|
89
|
+
throw new Error("Please select a storage");
|
|
90
|
+
}
|
|
91
|
+
try {
|
|
92
|
+
const adjustmentData = {
|
|
93
|
+
product: props.product._id,
|
|
94
|
+
variant: selectedVariant.value,
|
|
95
|
+
storage: selectedStorage.value,
|
|
96
|
+
source: {
|
|
97
|
+
type: "User",
|
|
98
|
+
target: state.user._id
|
|
99
|
+
},
|
|
100
|
+
quantity: parseInt(quantity.value || 0),
|
|
101
|
+
reason: selectedReason.value,
|
|
102
|
+
comment: note.value || "",
|
|
103
|
+
owner: {
|
|
104
|
+
type: "organization",
|
|
105
|
+
target: route.params._id
|
|
106
|
+
},
|
|
107
|
+
creator: {
|
|
108
|
+
type: "user",
|
|
109
|
+
target: state.user._id
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
const createdAdjustment = await actions$1.createAdjustment(adjustmentData);
|
|
113
|
+
emit("adjustment-created", {
|
|
114
|
+
product: props.product._id,
|
|
115
|
+
storage: selectedStorage.value,
|
|
116
|
+
quantity: parseInt(quantity.value || 0),
|
|
117
|
+
storageName: storageOptions.value.find((s) => s._id === selectedStorage.value)?.name
|
|
118
|
+
});
|
|
119
|
+
emit("close");
|
|
120
|
+
} catch (err) {
|
|
121
|
+
console.error(err);
|
|
122
|
+
throw err;
|
|
89
123
|
}
|
|
90
|
-
const adjustmentData = {
|
|
91
|
-
product: props.product._id,
|
|
92
|
-
variant: selectedVariant.value,
|
|
93
|
-
storage: selectedStorage.value,
|
|
94
|
-
source: {
|
|
95
|
-
type: "User",
|
|
96
|
-
target: state.user._id
|
|
97
|
-
},
|
|
98
|
-
quantity: parseInt(quantity.value || 0),
|
|
99
|
-
reason: selectedReason.value === "custom" ? customReasonText.value : selectedReason.value,
|
|
100
|
-
comment: note.value || "",
|
|
101
|
-
creator: {
|
|
102
|
-
type: "user",
|
|
103
|
-
target: state.user._id
|
|
104
|
-
}
|
|
105
|
-
};
|
|
106
|
-
emit("save", adjustmentData);
|
|
107
124
|
}
|
|
108
125
|
return (_ctx, _cache) => {
|
|
109
126
|
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
@@ -128,7 +145,7 @@ const _sfc_main = {
|
|
|
128
145
|
])
|
|
129
146
|
]),
|
|
130
147
|
productVariants.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_4, [
|
|
131
|
-
_cache[
|
|
148
|
+
_cache[4] || (_cache[4] = createElementVNode("p", { class: "mn-b-small t-medium" }, "Select Variant", -1)),
|
|
132
149
|
createVNode(Select, {
|
|
133
150
|
select: selectedVariant.value,
|
|
134
151
|
"onUpdate:select": _cache[1] || (_cache[1] = ($event) => selectedVariant.value = $event),
|
|
@@ -140,7 +157,7 @@ const _sfc_main = {
|
|
|
140
157
|
}, null, 8, ["select", "options"])
|
|
141
158
|
])) : createCommentVNode("", true),
|
|
142
159
|
createElementVNode("div", _hoisted_5, [
|
|
143
|
-
_cache[
|
|
160
|
+
_cache[5] || (_cache[5] = createElementVNode("p", { class: "mn-b-small t-medium" }, "Select Storage", -1)),
|
|
144
161
|
createVNode(Select, {
|
|
145
162
|
select: selectedStorage.value,
|
|
146
163
|
"onUpdate:select": _cache[2] || (_cache[2] = ($event) => selectedStorage.value = $event),
|
|
@@ -152,7 +169,7 @@ const _sfc_main = {
|
|
|
152
169
|
}, null, 8, ["select", "options"])
|
|
153
170
|
]),
|
|
154
171
|
createElementVNode("div", _hoisted_6, [
|
|
155
|
-
_cache[
|
|
172
|
+
_cache[6] || (_cache[6] = createElementVNode("p", { class: "mn-b-small t-medium" }, "Adjustment Reason", -1)),
|
|
156
173
|
createElementVNode("div", _hoisted_7, [
|
|
157
174
|
(openBlock(), createElementBlock(Fragment, null, renderList(adjustmentReasons, (reason) => {
|
|
158
175
|
return createElementVNode("div", {
|
|
@@ -164,32 +181,39 @@ const _sfc_main = {
|
|
|
164
181
|
createElementVNode("span", null, toDisplayString(reason.label), 1)
|
|
165
182
|
], 10, _hoisted_8);
|
|
166
183
|
}), 64))
|
|
167
|
-
])
|
|
168
|
-
selectedReason.value === "custom" ? (openBlock(), createBlock(Field, {
|
|
169
|
-
key: 0,
|
|
170
|
-
field: customReasonText.value,
|
|
171
|
-
"onUpdate:field": _cache[3] || (_cache[3] = ($event) => customReasonText.value = $event),
|
|
172
|
-
placeholder: "Enter custom reason",
|
|
173
|
-
class: "w-100 bg-light radius-small pd-medium"
|
|
174
|
-
}, null, 8, ["field"])) : createCommentVNode("", true)
|
|
184
|
+
])
|
|
175
185
|
]),
|
|
176
186
|
createVNode(Field, {
|
|
177
187
|
field: note.value,
|
|
178
|
-
"onUpdate:field": _cache[
|
|
188
|
+
"onUpdate:field": _cache[3] || (_cache[3] = ($event) => note.value = $event),
|
|
179
189
|
label: "Note",
|
|
180
190
|
type: "textarea",
|
|
181
191
|
placeholder: "Add additional details about this adjustment...",
|
|
182
192
|
class: "w-100 bg-light radius-small pd-medium mn-b-medium"
|
|
183
193
|
}, null, 8, ["field"]),
|
|
184
194
|
createElementVNode("div", _hoisted_9, [
|
|
185
|
-
|
|
186
|
-
|
|
195
|
+
createVNode(_sfc_main$2, {
|
|
196
|
+
submit: () => _ctx.$emit("close"),
|
|
197
|
+
showLoader: false,
|
|
198
|
+
showSucces: false,
|
|
187
199
|
class: "pd-small radius-small flex-center flex w-max cursor-pointer t-transp"
|
|
188
|
-
},
|
|
189
|
-
|
|
190
|
-
|
|
200
|
+
}, {
|
|
201
|
+
default: withCtx(() => _cache[7] || (_cache[7] = [
|
|
202
|
+
createTextVNode(" Cancel ")
|
|
203
|
+
])),
|
|
204
|
+
_: 1
|
|
205
|
+
}, 8, ["submit"]),
|
|
206
|
+
createVNode(_sfc_main$2, {
|
|
207
|
+
submit: saveAdjustment,
|
|
208
|
+
showLoader: true,
|
|
209
|
+
showSucces: true,
|
|
191
210
|
class: "pd-small radius-small flex-center flex w-100 cursor-pointer bg-main t-black"
|
|
192
|
-
},
|
|
211
|
+
}, {
|
|
212
|
+
default: withCtx(() => _cache[8] || (_cache[8] = [
|
|
213
|
+
createTextVNode(" Save Adjustment ")
|
|
214
|
+
])),
|
|
215
|
+
_: 1
|
|
216
|
+
})
|
|
193
217
|
])
|
|
194
218
|
]);
|
|
195
219
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdjustmentForm.vue.js","sources":["../../../../../../../src/modules/inventory/components/forms/AdjustmentForm.vue"],"sourcesContent":["<template>\n <div class=\"w-100\">\n <p class=\"mn-b-medium t-transp\">\n Effortlessly update your inventory and track adjustments for accurate stock management.\n </p>\n \n \n <div class=\"mn-b-medium\">\n <div class=\"mn-b-small flex-nowrap flex gap-thin\">\n <Field\n v-model:field=\"quantity\"\n label=\"Quantity Adjustment\"\n type=\"number\"\n placeholder=\"Enter +/- quantity\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n \n <Field\n :field=\"product.available\"\n label=\"Current Available\"\n type=\"text\"\n :disabled=\"true\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n \n </div>\n\n <!-- Variant Selection -->\n <div class=\"mn-b-medium\" v-if=\"productVariants.length > 0\">\n <p class=\"mn-b-small t-medium\">Select Variant</p>\n <Select\n v-model:select=\"selectedVariant\"\n :options=\"productVariants\"\n property=\"_id\"\n value=\"name\"\n placeholder=\"Choose variant\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n\n <!-- Storage Selection -->\n <div class=\"mn-b-medium\">\n <p class=\"mn-b-small t-medium\">Select Storage</p>\n <Select\n v-model:select=\"selectedStorage\"\n :options=\"storageOptions\"\n property=\"_id\"\n value=\"name\"\n placeholder=\"Choose storage\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n \n <div class=\"mn-b-medium\">\n <p class=\"mn-b-small t-medium\">Adjustment Reason</p>\n \n <div class=\"cols-3 gap-small mn-b-small\">\n <div \n v-for=\"reason in adjustmentReasons\"\n :key=\"reason.value\"\n @click=\"selectedReason = reason.value\"\n :class=\"{ 'bg-main t-black': selectedReason === reason.value, 'bg-light': selectedReason !== reason.value }\"\n class=\"pd-small radius-small flex-column flex-center flex cursor-pointer\"\n >\n <component :is=\"reason.icon\" class=\"i-regular mn-b-nano\" />\n <span>{{ reason.label }}</span>\n </div>\n </div>\n \n <Field\n v-if=\"selectedReason === 'custom'\"\n v-model:field=\"customReasonText\"\n placeholder=\"Enter custom reason\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n \n <Field\n v-model:field=\"note\"\n label=\"Note\"\n type=\"textarea\"\n placeholder=\"Add additional details about this adjustment...\"\n class=\"w-100 bg-light radius-small pd-medium mn-b-medium\"\n />\n \n <div class=\"flex-nowrap flex gap-small\">\n <button \n @click=\"$emit('close')\" \n class=\"pd-small radius-small flex-center flex w-max cursor-pointer t-transp\"\n >\n Cancel\n </button>\n \n <button \n @click=\"saveAdjustment\" \n class=\"pd-small radius-small flex-center flex w-100 cursor-pointer bg-main t-black\"\n >\n Save Adjustment\n </button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, onMounted } from 'vue'\nimport { useRoute } from 'vue-router'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Select from '@martyrs/src/components/Select/Select.vue'\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\nimport * as spots from '@martyrs/src/modules/spots/store/spots.js'\nimport variants from '@martyrs/src/modules/products/store/variants.store.js'\n\nconst route = useRoute()\n\n// Icons for adjustment reasons\nimport IconDamage from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconExpire from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconMisplacement from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconThief from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconStocktake from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconCustom from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\n\nconst props = defineProps({\n product: {\n type: Object,\n required: true\n }\n})\n\nconst emit = defineEmits(['save', 'close'])\n\n// Form state\nconst quantity = ref(0)\nconst selectedReason = ref('custom')\nconst customReasonText = ref('')\nconst note = ref('')\nconst selectedStorage = ref(null)\nconst selectedVariant = ref(null)\nconst productVariants = ref([])\nconst storageOptions = ref([])\n\n// Adjustment reason options\nconst adjustmentReasons = [\n { label: 'Restock', value: 'restock', icon: IconDamage },\n { label: 'Sale', value: 'sale', icon: IconExpire },\n { label: 'Return', value: 'return', icon: IconMisplacement },\n { label: 'Damage', value: 'damage', icon: IconThief },\n { label: 'Transfer', value: 'transfer', icon: IconStocktake },\n { label: 'Custom', value: 'custom', icon: IconCustom },\n]\n\nfunction formatPrice(price) {\n return '$' + (parseFloat(price) || 0).toFixed(2)\n}\n\n// Fetch variants and storages on mount\nonMounted(async () => {\n console.log('AdjustmentForm mounted with product:', props.product)\n \n // Fetch variants for the product\n try {\n const variantsData = await variants.read({\n product: props.product._id,\n limit: 50\n })\n productVariants.value = variantsData\n // Select first variant by default if available\n if (variantsData.length > 0) {\n selectedVariant.value = variantsData[0]._id\n }\n } catch (err) {\n console.error('Error fetching variants:', err)\n }\n\n // Fetch storage options\n try {\n const spotsData = await spots.actions.read({\n user: auth.state.user._id,\n organization: route.params._id,\n limit: 50\n })\n storageOptions.value = spotsData.map(spot => ({\n _id: spot._id,\n name: spot.profile?.name || 'Storage'\n }))\n // Select first storage by default if available\n if (storageOptions.value.length > 0) {\n selectedStorage.value = storageOptions.value[0]._id\n }\n } catch (err) {\n console.error('Error fetching spots:', err)\n }\n})\n\nfunction saveAdjustment() {\n if (!selectedVariant.value) {\n alert('Please select a variant')\n return\n }\n if (!selectedStorage.value) {\n alert('Please select a storage')\n return\n }\n\n const adjustmentData = {\n product: props.product._id,\n variant: selectedVariant.value,\n storage: selectedStorage.value,\n source: {\n type: 'User',\n target: auth.state.user._id\n },\n quantity: parseInt(quantity.value || 0),\n reason: selectedReason.value === 'custom' ? customReasonText.value : selectedReason.value,\n comment: note.value || '',\n creator: {\n type: 'user',\n target: auth.state.user._id\n }\n }\n \n emit('save', adjustmentData)\n}\n</script>"],"names":["IconDamage","IconExpire","IconMisplacement","IconThief","IconStocktake","IconCustom","variants","spots.actions","auth.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiHA,UAAM,QAAQ,SAAQ;AAUtB,UAAM,QAAQ;AAOd,UAAM,OAAO;AAGb,UAAM,WAAW,IAAI,CAAC;AACtB,UAAM,iBAAiB,IAAI,QAAQ;AACnC,UAAM,mBAAmB,IAAI,EAAE;AAC/B,UAAM,OAAO,IAAI,EAAE;AACnB,UAAM,kBAAkB,IAAI,IAAI;AAChC,UAAM,kBAAkB,IAAI,IAAI;AAChC,UAAM,kBAAkB,IAAI,CAAA,CAAE;AAC9B,UAAM,iBAAiB,IAAI,CAAA,CAAE;AAG7B,UAAM,oBAAoB;AAAA,MACxB,EAAE,OAAO,WAAW,OAAO,WAAW,MAAMA,YAAU;AAAA,MACtD,EAAE,OAAO,QAAQ,OAAO,QAAQ,MAAMC,YAAU;AAAA,MAChD,EAAE,OAAO,UAAU,OAAO,UAAU,MAAMC,YAAgB;AAAA,MAC1D,EAAE,OAAO,UAAU,OAAO,UAAU,MAAMC,YAAS;AAAA,MACnD,EAAE,OAAO,YAAY,OAAO,YAAY,MAAMC,YAAa;AAAA,MAC3D,EAAE,OAAO,UAAU,OAAO,UAAU,MAAMC,YAAU;AAAA,IACtD;AAOA,cAAU,YAAY;AACpB,cAAQ,IAAI,wCAAwC,MAAM,OAAO;AAGjE,UAAI;AACF,cAAM,eAAe,MAAMC,cAAS,KAAK;AAAA,UACvC,SAAS,MAAM,QAAQ;AAAA,UACvB,OAAO;AAAA,QACb,CAAK;AACD,wBAAgB,QAAQ;AAExB,YAAI,aAAa,SAAS,GAAG;AAC3B,0BAAgB,QAAQ,aAAa,CAAC,EAAE;AAAA,QAC1C;AAAA,MACF,SAAS,KAAK;AACZ,gBAAQ,MAAM,4BAA4B,GAAG;AAAA,MAC/C;AAGA,UAAI;AACF,cAAM,YAAY,MAAMC,QAAc,KAAK;AAAA,UACzC,MAAMC,MAAW,KAAK;AAAA,UACtB,cAAc,MAAM,OAAO;AAAA,UAC3B,OAAO;AAAA,QACb,CAAK;AACD,uBAAe,QAAQ,UAAU,IAAI,WAAS;AAAA,UAC5C,KAAK,KAAK;AAAA,UACV,MAAM,KAAK,SAAS,QAAQ;AAAA,QAClC,EAAM;AAEF,YAAI,eAAe,MAAM,SAAS,GAAG;AACnC,0BAAgB,QAAQ,eAAe,MAAM,CAAC,EAAE;AAAA,QAClD;AAAA,MACF,SAAS,KAAK;AACZ,gBAAQ,MAAM,yBAAyB,GAAG;AAAA,MAC5C;AAAA,IACF,CAAC;AAED,aAAS,iBAAiB;AACxB,UAAI,CAAC,gBAAgB,OAAO;AAC1B,cAAM,yBAAyB;AAC/B;AAAA,MACF;AACA,UAAI,CAAC,gBAAgB,OAAO;AAC1B,cAAM,yBAAyB;AAC/B;AAAA,MACF;AAEA,YAAM,iBAAiB;AAAA,QACrB,SAAS,MAAM,QAAQ;AAAA,QACvB,SAAS,gBAAgB;AAAA,QACzB,SAAS,gBAAgB;AAAA,QACzB,QAAQ;AAAA,UACN,MAAM;AAAA,UACN,QAAQA,MAAW,KAAK;AAAA,QAC9B;AAAA,QACI,UAAU,SAAS,SAAS,SAAS,CAAC;AAAA,QACtC,QAAQ,eAAe,UAAU,WAAW,iBAAiB,QAAQ,eAAe;AAAA,QACpF,SAAS,KAAK,SAAS;AAAA,QACvB,SAAS;AAAA,UACP,MAAM;AAAA,UACN,QAAQA,MAAW,KAAK;AAAA,QAC9B;AAAA,MACA;AAEE,WAAK,QAAQ,cAAc;AAAA,IAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"AdjustmentForm.vue.js","sources":["../../../../../../../src/modules/inventory/components/forms/AdjustmentForm.vue"],"sourcesContent":["<template>\n <div class=\"w-100\">\n <p class=\"mn-b-medium t-transp\">\n Effortlessly update your inventory and track adjustments for accurate stock management.\n </p>\n \n \n <div class=\"mn-b-medium\">\n <div class=\"mn-b-small flex-nowrap flex gap-thin\">\n <Field\n v-model:field=\"quantity\"\n label=\"Quantity Adjustment\"\n type=\"number\"\n placeholder=\"Enter +/- quantity\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n \n <Field\n :field=\"product.available\"\n label=\"Current Available\"\n type=\"text\"\n :disabled=\"true\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n \n </div>\n\n <!-- Variant Selection -->\n <div class=\"mn-b-medium\" v-if=\"productVariants.length > 0\">\n <p class=\"mn-b-small t-medium\">Select Variant</p>\n <Select\n v-model:select=\"selectedVariant\"\n :options=\"productVariants\"\n property=\"_id\"\n value=\"name\"\n placeholder=\"Choose variant\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n\n <!-- Storage Selection -->\n <div class=\"mn-b-medium\">\n <p class=\"mn-b-small t-medium\">Select Storage</p>\n <Select\n v-model:select=\"selectedStorage\"\n :options=\"storageOptions\"\n property=\"_id\"\n value=\"name\"\n placeholder=\"Choose storage\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n \n <div class=\"mn-b-medium\">\n <p class=\"mn-b-small t-medium\">Adjustment Reason</p>\n \n <div class=\"cols-3 gap-small mn-b-small\">\n <div \n v-for=\"reason in adjustmentReasons\"\n :key=\"reason.value\"\n @click=\"selectedReason = reason.value\"\n :class=\"{ 'bg-main t-black': selectedReason === reason.value, 'bg-light': selectedReason !== reason.value }\"\n class=\"pd-small radius-small flex-column flex-center flex cursor-pointer\"\n >\n <component :is=\"reason.icon\" class=\"i-regular mn-b-nano\" />\n <span>{{ reason.label }}</span>\n </div>\n </div>\n </div>\n \n <Field\n v-model:field=\"note\"\n label=\"Note\"\n type=\"textarea\"\n placeholder=\"Add additional details about this adjustment...\"\n class=\"w-100 bg-light radius-small pd-medium mn-b-medium\"\n />\n \n <div class=\"flex-nowrap flex gap-small\">\n <Button\n :submit=\"() => $emit('close')\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n class=\"pd-small radius-small flex-center flex w-max cursor-pointer t-transp\"\n >\n Cancel\n </Button>\n \n <Button\n :submit=\"saveAdjustment\"\n :showLoader=\"true\"\n :showSucces=\"true\"\n class=\"pd-small radius-small flex-center flex w-100 cursor-pointer bg-main t-black\"\n >\n Save Adjustment\n </Button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, onMounted } from 'vue'\nimport { useRoute } from 'vue-router'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Select from '@martyrs/src/components/Select/Select.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\nimport * as spots from '@martyrs/src/modules/spots/store/spots.js'\nimport variants from '@martyrs/src/modules/products/store/variants.store.js'\nimport * as inventory from '@martyrs/src/modules/inventory/store/inventory.store.js'\n\nconst route = useRoute()\n\n// Icons for adjustment reasons\nimport IconDamage from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconExpire from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconMisplacement from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconThief from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconStocktake from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconCustom from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\n\nconst props = defineProps({\n product: {\n type: Object,\n required: true\n }\n})\n\nconst emit = defineEmits(['close', 'adjustment-created'])\n\n// Form state\nconst quantity = ref(0)\nconst selectedReason = ref('restock')\nconst note = ref('')\nconst selectedStorage = ref(null)\nconst selectedVariant = ref(null)\nconst productVariants = ref([])\nconst storageOptions = ref([])\n\n// Adjustment reason options\nconst adjustmentReasons = [\n { label: 'Restock', value: 'restock', icon: IconDamage },\n { label: 'Sale', value: 'sale', icon: IconExpire },\n { label: 'Return', value: 'return', icon: IconMisplacement },\n { label: 'Damage', value: 'damage', icon: IconThief },\n { label: 'Transfer', value: 'transfer', icon: IconStocktake },\n { label: 'Other', value: 'custom', icon: IconCustom },\n]\n\nfunction formatPrice(price) {\n return '$' + (parseFloat(price) || 0).toFixed(2)\n}\n\n// Fetch variants and storages on mount\nonMounted(async () => {\n console.log('AdjustmentForm mounted with product:', props.product)\n \n // Fetch variants for the product\n try {\n const variantsData = await variants.read({\n product: props.product._id,\n limit: 50\n })\n productVariants.value = variantsData\n // Select first variant by default if available\n if (variantsData.length > 0) {\n selectedVariant.value = variantsData[0]._id\n }\n } catch (err) {\n console.error('Error fetching variants:', err)\n }\n\n // Fetch storage options\n try {\n const spotsData = await spots.actions.read({\n user: auth.state.user._id,\n organization: route.params._id,\n limit: 50\n })\n storageOptions.value = spotsData.map(spot => ({\n _id: spot._id,\n name: spot.profile?.name || 'Storage'\n }))\n // Select first storage by default if available\n if (storageOptions.value.length > 0) {\n selectedStorage.value = storageOptions.value[0]._id\n }\n } catch (err) {\n console.error('Error fetching spots:', err)\n }\n})\n\nasync function saveAdjustment() {\n if (!selectedVariant.value) {\n alert('Please select a variant')\n throw new Error('Please select a variant')\n }\n if (!selectedStorage.value) {\n alert('Please select a storage')\n throw new Error('Please select a storage')\n }\n\n try {\n const adjustmentData = {\n product: props.product._id,\n variant: selectedVariant.value,\n storage: selectedStorage.value,\n source: {\n type: 'User',\n target: auth.state.user._id\n },\n quantity: parseInt(quantity.value || 0),\n reason: selectedReason.value,\n comment: note.value || '',\n owner: {\n type: 'organization',\n target: route.params._id\n },\n creator: {\n type: 'user',\n target: auth.state.user._id\n }\n }\n \n const createdAdjustment = await inventory.actions.createAdjustment(adjustmentData)\n \n // Emit the adjustment data for parent component to update the product\n emit('adjustment-created', {\n product: props.product._id,\n storage: selectedStorage.value,\n quantity: parseInt(quantity.value || 0),\n storageName: storageOptions.value.find(s => s._id === selectedStorage.value)?.name\n })\n \n emit('close')\n } catch (err) {\n console.error(err)\n throw err\n }\n}\n</script>"],"names":["IconDamage","IconExpire","IconMisplacement","IconThief","IconStocktake","IconCustom","variants","spots.actions","auth.state","inventory.actions"],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const Checkbox = require("../../../../components/Checkbox/Checkbox.vue.cjs");
|
|
5
|
+
const Button = require("../../../../components/Button/Button.vue.cjs");
|
|
5
6
|
const _hoisted_1 = { class: "w-100" };
|
|
6
7
|
const _hoisted_2 = { class: "mn-b-medium" };
|
|
7
8
|
const _hoisted_3 = { class: "flex-nowrap flex gap-small" };
|
|
@@ -37,7 +38,7 @@ const _sfc_main = {
|
|
|
37
38
|
}
|
|
38
39
|
return (_ctx, _cache) => {
|
|
39
40
|
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
|
|
40
|
-
_cache[
|
|
41
|
+
_cache[2] || (_cache[2] = vue.createElementVNode("p", { class: "mn-b-medium t-transp" }, " Customize which columns are visible in your inventory table. ", -1)),
|
|
41
42
|
vue.createElementVNode("div", _hoisted_2, [
|
|
42
43
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.columns, (col) => {
|
|
43
44
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
@@ -56,14 +57,28 @@ const _sfc_main = {
|
|
|
56
57
|
}), 128))
|
|
57
58
|
]),
|
|
58
59
|
vue.createElementVNode("div", _hoisted_3, [
|
|
59
|
-
vue.
|
|
60
|
-
|
|
60
|
+
vue.createVNode(Button.default, {
|
|
61
|
+
submit: () => _ctx.$emit("close"),
|
|
62
|
+
showLoader: false,
|
|
63
|
+
showSucces: false,
|
|
61
64
|
class: "pd-small radius-small flex-center flex w-max cursor-pointer t-transp"
|
|
62
|
-
},
|
|
63
|
-
|
|
64
|
-
|
|
65
|
+
}, {
|
|
66
|
+
default: vue.withCtx(() => _cache[0] || (_cache[0] = [
|
|
67
|
+
vue.createTextVNode(" Cancel ")
|
|
68
|
+
])),
|
|
69
|
+
_: 1
|
|
70
|
+
}, 8, ["submit"]),
|
|
71
|
+
vue.createVNode(Button.default, {
|
|
72
|
+
submit: saveSettings,
|
|
73
|
+
showLoader: false,
|
|
74
|
+
showSucces: false,
|
|
65
75
|
class: "pd-small radius-small flex-center flex w-100 cursor-pointer bg-main t-black"
|
|
66
|
-
},
|
|
76
|
+
}, {
|
|
77
|
+
default: vue.withCtx(() => _cache[1] || (_cache[1] = [
|
|
78
|
+
vue.createTextVNode(" Save Settings ")
|
|
79
|
+
])),
|
|
80
|
+
_: 1
|
|
81
|
+
})
|
|
67
82
|
])
|
|
68
83
|
]);
|
|
69
84
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSettingsMenu.vue.cjs","sources":["../../../../../../../src/modules/inventory/components/forms/ColumnSettingsMenu.vue"],"sourcesContent":["<template>\n <div class=\"w-100\">\n <p class=\"mn-b-medium t-transp\">\n Customize which columns are visible in your inventory table.\n </p>\n\n <div class=\"mn-b-medium\">\n <div\n v-for=\"col in columns\"\n :key=\"col.key\"\n class=\"mn-b-small\"\n >\n <Checkbox\n :label=\"col.label\"\n name=\"columnVisibility\"\n :value=\"col.key\"\n class=\"w-100 bg-light radius-small pd-small\"\n :checked=\"selected.includes(col.key)\"\n @update:checked=\"val => toggle(col.key, val)\"\n />\n </div>\n </div>\n\n <div class=\"flex-nowrap flex gap-small\">\n <
|
|
1
|
+
{"version":3,"file":"ColumnSettingsMenu.vue.cjs","sources":["../../../../../../../src/modules/inventory/components/forms/ColumnSettingsMenu.vue"],"sourcesContent":["<template>\n <div class=\"w-100\">\n <p class=\"mn-b-medium t-transp\">\n Customize which columns are visible in your inventory table.\n </p>\n\n <div class=\"mn-b-medium\">\n <div\n v-for=\"col in columns\"\n :key=\"col.key\"\n class=\"mn-b-small\"\n >\n <Checkbox\n :label=\"col.label\"\n name=\"columnVisibility\"\n :value=\"col.key\"\n class=\"w-100 bg-light radius-small pd-small\"\n :checked=\"selected.includes(col.key)\"\n @update:checked=\"val => toggle(col.key, val)\"\n />\n </div>\n </div>\n\n <div class=\"flex-nowrap flex gap-small\">\n <Button\n :submit=\"() => $emit('close')\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n class=\"pd-small radius-small flex-center flex w-max cursor-pointer t-transp\"\n >\n Cancel\n </Button>\n\n <Button\n :submit=\"saveSettings\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n class=\"pd-small radius-small flex-center flex w-100 cursor-pointer bg-main t-black\"\n >\n Save Settings\n </Button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, watch } from 'vue'\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\n\nconst props = defineProps({\n columns: {\n type: Array,\n required: true\n }\n})\n\nconst emit = defineEmits(['save', 'close'])\n\n// Локальный массив выбранных ключей\nconst selected = ref(props.columns.filter(c => c.visible).map(c => c.key))\n\n// Синхронизируем, если проп изменится\nwatch(\n () => props.columns,\n cols => {\n selected.value = cols.filter(c => c.visible).map(c => c.key)\n }\n)\n\n// Добавление/удаление ключа\nfunction toggle(key, checked) {\n const idx = selected.value.indexOf(key)\n if (checked && idx === -1) {\n selected.value.push(key)\n } else if (!checked && idx !== -1) {\n selected.value.splice(idx, 1)\n }\n}\n\n// Эмитим массив видимых колонок\nfunction saveSettings() {\n emit('save', selected.value)\n}\n</script>\n"],"names":["ref","watch"],"mappings":";;;;;;;;;;;;;;;;;;AAkDA,UAAM,QAAQ;AAOd,UAAM,OAAO;AAGb,UAAM,WAAWA,IAAAA,IAAI,MAAM,QAAQ,OAAO,OAAK,EAAE,OAAO,EAAE,IAAI,OAAK,EAAE,GAAG,CAAC;AAGzEC,QAAAA;AAAAA,MACE,MAAM,MAAM;AAAA,MACZ,UAAQ;AACN,iBAAS,QAAQ,KAAK,OAAO,OAAK,EAAE,OAAO,EAAE,IAAI,OAAK,EAAE,GAAG;AAAA,MAC7D;AAAA,IACF;AAGA,aAAS,OAAO,KAAK,SAAS;AAC5B,YAAM,MAAM,SAAS,MAAM,QAAQ,GAAG;AACtC,UAAI,WAAW,QAAQ,IAAI;AACzB,iBAAS,MAAM,KAAK,GAAG;AAAA,MACzB,WAAW,CAAC,WAAW,QAAQ,IAAI;AACjC,iBAAS,MAAM,OAAO,KAAK,CAAC;AAAA,MAC9B;AAAA,IACF;AAGA,aAAS,eAAe;AACtB,WAAK,QAAQ,SAAS,KAAK;AAAA,IAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { ref, watch, createElementBlock, openBlock, createElementVNode, Fragment, renderList, createVNode } from "vue";
|
|
1
|
+
import { ref, watch, createElementBlock, openBlock, createElementVNode, Fragment, renderList, createVNode, withCtx, createTextVNode } from "vue";
|
|
2
2
|
import _sfc_main$1 from "../../../../components/Checkbox/Checkbox.vue.js";
|
|
3
|
+
import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
|
|
3
4
|
const _hoisted_1 = { class: "w-100" };
|
|
4
5
|
const _hoisted_2 = { class: "mn-b-medium" };
|
|
5
6
|
const _hoisted_3 = { class: "flex-nowrap flex gap-small" };
|
|
@@ -35,7 +36,7 @@ const _sfc_main = {
|
|
|
35
36
|
}
|
|
36
37
|
return (_ctx, _cache) => {
|
|
37
38
|
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
38
|
-
_cache[
|
|
39
|
+
_cache[2] || (_cache[2] = createElementVNode("p", { class: "mn-b-medium t-transp" }, " Customize which columns are visible in your inventory table. ", -1)),
|
|
39
40
|
createElementVNode("div", _hoisted_2, [
|
|
40
41
|
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (col) => {
|
|
41
42
|
return openBlock(), createElementBlock("div", {
|
|
@@ -54,14 +55,28 @@ const _sfc_main = {
|
|
|
54
55
|
}), 128))
|
|
55
56
|
]),
|
|
56
57
|
createElementVNode("div", _hoisted_3, [
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
createVNode(_sfc_main$2, {
|
|
59
|
+
submit: () => _ctx.$emit("close"),
|
|
60
|
+
showLoader: false,
|
|
61
|
+
showSucces: false,
|
|
59
62
|
class: "pd-small radius-small flex-center flex w-max cursor-pointer t-transp"
|
|
60
|
-
},
|
|
61
|
-
|
|
62
|
-
|
|
63
|
+
}, {
|
|
64
|
+
default: withCtx(() => _cache[0] || (_cache[0] = [
|
|
65
|
+
createTextVNode(" Cancel ")
|
|
66
|
+
])),
|
|
67
|
+
_: 1
|
|
68
|
+
}, 8, ["submit"]),
|
|
69
|
+
createVNode(_sfc_main$2, {
|
|
70
|
+
submit: saveSettings,
|
|
71
|
+
showLoader: false,
|
|
72
|
+
showSucces: false,
|
|
63
73
|
class: "pd-small radius-small flex-center flex w-100 cursor-pointer bg-main t-black"
|
|
64
|
-
},
|
|
74
|
+
}, {
|
|
75
|
+
default: withCtx(() => _cache[1] || (_cache[1] = [
|
|
76
|
+
createTextVNode(" Save Settings ")
|
|
77
|
+
])),
|
|
78
|
+
_: 1
|
|
79
|
+
})
|
|
65
80
|
])
|
|
66
81
|
]);
|
|
67
82
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSettingsMenu.vue.js","sources":["../../../../../../../src/modules/inventory/components/forms/ColumnSettingsMenu.vue"],"sourcesContent":["<template>\n <div class=\"w-100\">\n <p class=\"mn-b-medium t-transp\">\n Customize which columns are visible in your inventory table.\n </p>\n\n <div class=\"mn-b-medium\">\n <div\n v-for=\"col in columns\"\n :key=\"col.key\"\n class=\"mn-b-small\"\n >\n <Checkbox\n :label=\"col.label\"\n name=\"columnVisibility\"\n :value=\"col.key\"\n class=\"w-100 bg-light radius-small pd-small\"\n :checked=\"selected.includes(col.key)\"\n @update:checked=\"val => toggle(col.key, val)\"\n />\n </div>\n </div>\n\n <div class=\"flex-nowrap flex gap-small\">\n <
|
|
1
|
+
{"version":3,"file":"ColumnSettingsMenu.vue.js","sources":["../../../../../../../src/modules/inventory/components/forms/ColumnSettingsMenu.vue"],"sourcesContent":["<template>\n <div class=\"w-100\">\n <p class=\"mn-b-medium t-transp\">\n Customize which columns are visible in your inventory table.\n </p>\n\n <div class=\"mn-b-medium\">\n <div\n v-for=\"col in columns\"\n :key=\"col.key\"\n class=\"mn-b-small\"\n >\n <Checkbox\n :label=\"col.label\"\n name=\"columnVisibility\"\n :value=\"col.key\"\n class=\"w-100 bg-light radius-small pd-small\"\n :checked=\"selected.includes(col.key)\"\n @update:checked=\"val => toggle(col.key, val)\"\n />\n </div>\n </div>\n\n <div class=\"flex-nowrap flex gap-small\">\n <Button\n :submit=\"() => $emit('close')\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n class=\"pd-small radius-small flex-center flex w-max cursor-pointer t-transp\"\n >\n Cancel\n </Button>\n\n <Button\n :submit=\"saveSettings\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n class=\"pd-small radius-small flex-center flex w-100 cursor-pointer bg-main t-black\"\n >\n Save Settings\n </Button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, watch } from 'vue'\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\n\nconst props = defineProps({\n columns: {\n type: Array,\n required: true\n }\n})\n\nconst emit = defineEmits(['save', 'close'])\n\n// Локальный массив выбранных ключей\nconst selected = ref(props.columns.filter(c => c.visible).map(c => c.key))\n\n// Синхронизируем, если проп изменится\nwatch(\n () => props.columns,\n cols => {\n selected.value = cols.filter(c => c.visible).map(c => c.key)\n }\n)\n\n// Добавление/удаление ключа\nfunction toggle(key, checked) {\n const idx = selected.value.indexOf(key)\n if (checked && idx === -1) {\n selected.value.push(key)\n } else if (!checked && idx !== -1) {\n selected.value.splice(idx, 1)\n }\n}\n\n// Эмитим массив видимых колонок\nfunction saveSettings() {\n emit('save', selected.value)\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAkDA,UAAM,QAAQ;AAOd,UAAM,OAAO;AAGb,UAAM,WAAW,IAAI,MAAM,QAAQ,OAAO,OAAK,EAAE,OAAO,EAAE,IAAI,OAAK,EAAE,GAAG,CAAC;AAGzE;AAAA,MACE,MAAM,MAAM;AAAA,MACZ,UAAQ;AACN,iBAAS,QAAQ,KAAK,OAAO,OAAK,EAAE,OAAO,EAAE,IAAI,OAAK,EAAE,GAAG;AAAA,MAC7D;AAAA,IACF;AAGA,aAAS,OAAO,KAAK,SAAS;AAC5B,YAAM,MAAM,SAAS,MAAM,QAAQ,GAAG;AACtC,UAAI,WAAW,QAAQ,IAAI;AACzB,iBAAS,MAAM,KAAK,GAAG;AAAA,MACzB,WAAW,CAAC,WAAW,QAAQ,IAAI;AACjC,iBAAS,MAAM,OAAO,KAAK,CAAC;AAAA,MAC9B;AAAA,IACF;AAGA,aAAS,eAAe;AACtB,WAAK,QAAQ,SAAS,KAAK;AAAA,IAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|