Changelog

39fd14e6 GerindT 2026-09-02 fixes
frontend/src/pages/products/forms/product form/create.js +1 -1
frontend/src/pages/products/forms/product form/edit.js +2 -5
8b66f8b0 GerindT 2026-09-02 fixes
backend/app/Http/Controllers/ProductController.php +2 -2
backend/app/Repositories/ProductRepository.php +15 -10
backend/app/Services/ProductBulkImportService.php +135 -23
frontend/src/pages/products/components/product-grid-toolbar.vue +1 -3
frontend/src/pages/products/forms/product form/create.js +1 -0
frontend/src/pages/products/forms/product form/edit.js +1 -0
frontend/src/pages/products/index.vue +35 -8
f20a9832 GerindT 2026-09-02 fixes
backend/app/Http/Controllers/ProcessController.php +4 -25
frontend/src/pages/pricing-offers/shared/pricingOffersMixin.js +30 -6
abcf6887 GerindT 2026-09-02 fixes
backend/app/Http/Controllers/PriceChangeBatchController.php +132 -1
backend/app/Http/Controllers/ProcessController.php +212 -33
backend/app/Http/Controllers/ProductController.php +119 -5
backend/app/Services/AuditLogger.php +3 -0
backend/app/Services/OfferCampaignEngine.php +1 -1
backend/app/Services/ScheduledPriceBatchEngine.php +1 -1
backend/config/logging.php +1 -1
backend/routes/api.php +2 -0
frontend/src/components/Dable.vue +39 -0
frontend/src/components/daform/index.vue +30 -0
frontend/src/pages/audit-logs/index.vue +1 -0
frontend/src/pages/pricing-offers/cmimet/PriceBatchAudit.vue +12 -1
frontend/src/pages/pricing-offers/shared/pricingOffersMixin.js +88 -1
frontend/src/pages/products/components/product-details.vue +37 -0
frontend/src/pages/products/components/product-history-tab.vue +19 -2
frontend/src/pages/products/components/product-selection-bar.vue +13 -0
frontend/src/pages/products/forms/product form/edit.js +9 -0
frontend/src/pages/products/index.vue +8 -1
frontend/src/services/Product.js +13 -0
85e1a7fc GerindT 2026-09-02 fixes
frontend/src/components/dable-multiselect-filter.vue +81 -22
622b32b1 GerindT 2026-09-02 fixes
backend/app/Exceptions/Handler.php +1 -1
backend/app/Http/Controllers/AttributeController.php +48 -0
backend/app/Http/Controllers/AuditLogController.php +253 -0
backend/app/Http/Controllers/CatalogController.php +62 -0
backend/app/Http/Controllers/OfferCampaignController.php +28 -0
backend/app/Http/Controllers/PriceChangeBatchController.php +37 -0
backend/app/Http/Controllers/ProductController.php +64 -4
backend/app/Http/Controllers/UserTypePermissionsController.php +29 -0
backend/app/Http/Kernel.php +1 -0
backend/app/Http/Middleware/EnsureAuditLogsAccess.php +46 -0
backend/app/Logging/ErrorLogDatabaseHandler.php +117 -0
backend/app/Models/AuditLog.php +38 -0
backend/app/Models/ErrorLog.php +35 -0
backend/app/Services/AuditLogger.php +373 -0
backend/app/Services/OfferCampaignEngine.php +2 -0
backend/app/Services/ProductBulkImportService.php +2 -0
backend/app/Services/ScheduledPriceBatchEngine.php +2 -0
backend/app/Support/UserPermissionBits.php +126 -0
backend/config/logging.php +7 -1
backend/routes/api.php +6 -0
frontend/src/components/Dable.vue +13 -6
frontend/src/components/Menu.vue +3 -0
frontend/src/components/dable-multiselect-filter.vue +17 -4
frontend/src/pages/audit-logs/index.vue +469 -0
frontend/src/pages/products/components/product-history-tab.vue +173 -0
frontend/src/pages/products/index.vue +98 -12
frontend/src/pages/user_permissions/permission-matrix-config.js +4 -0
frontend/src/routes.js +6 -0
frontend/src/services/Audit.js +18 -0
frontend/src/services/Product.js +5 -1
d8faaddd GerindT 2026-09-01 fixes
backend/app/Http/Controllers/PriceChangeBatchController.php +3 -0
backend/app/Http/Controllers/ProductController.php +88 -65
frontend/src/pages/pricing-offers/cmimet/PriceBatchAudit.vue +3 -3
frontend/src/pages/pricing-offers/shared/pricingOffersMixin.js +6 -2
4a2a5f52 GerindT 2026-09-01 fixes
9dcd3e81 GerindT 2026-09-01 fixes
backend/app/Http/Controllers/PriceChangeBatchController.php +4 -0
backend/app/Http/Controllers/ProcessController.php +166 -121
backend/app/Http/Controllers/ProductController.php +51 -10
backend/config/financa5.php +12 -0
frontend/src/pages/pricing-offers/shared/pricingOffersMixin.js +17 -21
bdfe34c4 GerindT 2026-09-01 fixes
486da5d5 GerindT 2026-09-01 fixes
backend/app/Http/Controllers/ProductController.php +173 -63
frontend/src/pages/pricing-offers/shared/pricingOffersMixin.js +61 -12
8903dffc GerindT 2026-09-01 fixes
backend/app/Repositories/ProductRepository.php +116 -58
2a0a9a0e GerindT 2026-09-01 fixes
backend/app/Http/Controllers/ProcessController.php +123 -32
backend/app/Http/Controllers/ProductController.php +45 -11
backend/app/Repositories/CategoryRepository.php +25 -6
backend/app/Repositories/ProductRepository.php +44 -19
backend/app/Support/AttributeValueResolver.php +79 -0
backend/tests/Unit/AttributeValueResolverTest.php +44 -0
frontend/src/components/LabelExportModal.vue +27 -2
frontend/src/pages/pricing-offers/shared/pricingOffersMixin.js +2 -2
d623d14e GerindT 2026-08-31 fixes
backend/app/Console/Commands/ProcessScheduledPriceBatches.php +21 -0
backend/app/Console/Kernel.php +1 -0
backend/app/Http/Controllers/GeneralController.php +34 -1
backend/app/Http/Controllers/PriceChangeBatchController.php +198 -3
backend/app/Models/PriceChangeBatch.php +11 -0
backend/app/Services/ScheduledPriceBatchEngine.php +252 -0
backend/routes/api.php +4 -0
frontend/src/layout/NavBar.vue +86 -4
frontend/src/pages/pricing-offers/cmimet/ManualDiscountPanel.vue +3 -0
frontend/src/pages/pricing-offers/cmimet/PriceBatchAudit.vue +34 -6
frontend/src/pages/pricing-offers/cmimet/PriceImportPanel.vue +3 -0
frontend/src/pages/pricing-offers/index.vue +3 -0
frontend/src/pages/pricing-offers/shared/ConfirmActionModal.vue +144 -3
frontend/src/pages/pricing-offers/shared/pricingOffersMixin.js +237 -6
frontend/src/stores/user.js +13 -1
c20b73a1 GerindT 2026-08-27 fixes
backend/app/Repositories/ProductRepository.php +29 -1
frontend/src/helpers.js +9 -1
frontend/src/pages/products/components/product-grid-toolbar.vue +23 -1
frontend/src/pages/products/forms/product form/edit.js +1 -1
frontend/src/pages/products/index.vue +42 -4
3082d604 GerindT 2026-08-27 fixes
backend/app/Http/Controllers/CustomerController.php +2 -6
backend/app/Http/Controllers/ProductController.php +21 -30
backend/app/Support/IdsMissingFromKeepList.php +32 -0
backend/tests/Unit/IdsMissingFromKeepListTest.php +33 -0
f7df3118 GerindT 2026-08-27 fixes
frontend/src/components/daform/index.vue +37 -8
frontend/src/pages/products/forms/product form/create.js +3 -3
f95f3718 GerindT 2026-08-27 fixes
frontend/src/components/daform/index.vue +8 -2
frontend/src/pages/products/forms/product form/create.js +3 -3
453c144d GerindT 2026-08-27 fixes
backend/app/Http/Controllers/ProductController.php +0 -12
backend/app/Services/ProductLabelCompositionService.php +4 -2
90f08098 GerindT 2026-08-26 fixes
backend/app/Http/Controllers/AttributeController.php +14 -4
backend/app/Http/Controllers/CustomerController.php +5 -1
backend/app/Http/Controllers/ProductController.php +36 -40
backend/app/Repositories/CategoryRepository.php +23 -4
backend/app/Support/AttributeValueResolver.php +53 -0
frontend/src/components/daform/fields/AttributeOptionPicker.vue +24 -0
frontend/src/components/daform/fields/AttributeUnitPicker.vue +3 -0
frontend/src/components/daform/index.vue +1 -1
frontend/src/helpers.js +60 -28
65e12b9c GerindT 2026-08-26 fixes
backend/app/Http/Controllers/ImportController.php +2 -2
backend/app/Http/Controllers/OfferFushatController.php +21 -13
backend/app/Http/Controllers/PricingOfferImportController.php +2 -2
backend/app/Http/Controllers/ProductBulkImportController.php +2 -2
backend/app/Http/Controllers/ProductController.php +98 -85
frontend/src/components/Tree.vue +24 -4
frontend/src/components/daform/fields/imageUpload.vue +7 -25
frontend/src/components/daform/index.vue +82 -11
1024961f GerindT 2026-08-26 fixes
backend/routes/api.php +0 -2
13874b65 GerindT 2026-08-26 fixes
backend/app/Http/Controllers/ProcessController.php +0 -52
backend/app/Http/Controllers/ProductController.php +2 -0
frontend/src/components/Dable.vue +11 -1
frontend/src/components/daform/fields/category-attributes-config.vue +79 -49
frontend/src/components/daform/index.vue +70 -0
frontend/src/pages/products/components/product-grid-toolbar.vue +0 -2
frontend/src/pages/products/components/product-selection-bar.vue +7 -4
frontend/src/pages/products/forms/product form/create.js +3 -2
frontend/src/pages/products/forms/product form/edit.js +17 -4
frontend/src/pages/products/index.vue +65 -105
frontend/src/services/productFormLookups.js +9 -4
e92a5214 GerindT 2026-08-26 fixes
frontend/src/components/Dable.vue +26 -8
frontend/src/pages/products/components/ProductBulkImportModal.vue +37 -5
81036dd9 GerindT 2026-08-26 fixes
backend/app/Http/Controllers/ProductController.php +160 -78
frontend/src/components/daform/index.vue +82 -22
frontend/src/helpers.js +2 -1
frontend/src/pages/products/forms/product form/create.js +1 -1
frontend/src/pages/products/index.vue +37 -16
frontend/src/services/Product.js +11 -5
a27a27a1 GerindT 2026-08-26 fixes
b3669d21 GerindT 2026-08-26 fixes
backend/app/Http/Controllers/ProductBulkImportController.php +98 -0
backend/app/Services/ProductBulkImportService.php +674 -0
backend/routes/api.php +3 -0
frontend/src/components/daform/fields/AttributeUnitPicker.vue +57 -24
frontend/src/components/daform/fields/attributes.vue +7 -0
frontend/src/pages/products/components/ProductBulkImportModal.vue +250 -0
frontend/src/pages/products/forms/product form/create.js +9 -6
frontend/src/pages/products/forms/product form/edit.js +21 -17
frontend/src/pages/products/index.vue +14 -42
frontend/src/pages/user_permissions/index.vue +15 -8
frontend/src/pages/user_permissions/permission-matrix-config.js +51 -7
frontend/src/services/Product.js +31 -0
frontend/src/services/Unit.js +4 -10
21e303c0 GerindT 2026-08-26 fixes
backend/app/Http/Controllers/ProductController.php +97 -75
frontend/src/components/Dable.vue +51 -0
frontend/src/components/LabelCodeImportModal.vue +11 -6
frontend/src/components/Tree.vue +21 -5
frontend/src/components/daform/fields/imageUpload.vue +50 -2
frontend/src/components/daform/fields/text.vue +12 -1
frontend/src/components/daform/fields/tree-select.vue +35 -1
frontend/src/pages/categories/forms/product/edit.js +1 -0
frontend/src/pages/categories/forms/warehouse/warehouse_edit.js +1 -0
frontend/src/pages/products/components/product-grid-toolbar.vue +10 -0
frontend/src/pages/products/forms/product form/create.js +1 -1
frontend/src/pages/products/forms/product form/edit.js +1 -1
frontend/src/pages/products/index.vue +132 -50
frontend/src/services/Product.js +2 -0
b1044717 GerindT 2026-08-26 fixes
449d9fe8 GerindT 2026-08-20 fixes
frontend/src/components/daform/fields/text.vue +21 -3
frontend/src/pages/products/forms/product form/create.js +1 -0
frontend/src/pages/products/forms/product form/edit.js +1 -0
472ba262 GerindT 2026-08-20 fixes
backend/app/Http/Controllers/ProductController.php +14 -1
backend/app/Models/Product.php +15 -0
backend/app/Repositories/ProductRepository.php +10 -10
backend/app/Services/PricingOfferImportService.php +18 -6
backend/app/Services/ProductLabelExportService.php +7 -6
2362ee2f GerindT 2026-08-20 fixes
73cf001a GerindT 2026-08-20 fixes
backend/app/Http/Controllers/ProductController.php +34 -6
backend/app/Repositories/ProductRepository.php +170 -3
backend/routes/api.php +2 -0
frontend/src/components/Dable.vue +115 -59
frontend/src/components/dable-multiselect-filter.vue +233 -0
frontend/src/pages/products/components/product-grid-toolbar.vue +194 -3
frontend/src/pages/products/components/product-selection-bar.vue +23 -2
frontend/src/pages/products/index.vue +75 -13
frontend/src/services/Product.js +17 -0
8919b129 GerindT 2026-08-20 fixes
frontend/src/pages/products/components/product-grid-toolbar.vue +1 -1
frontend/src/pages/products/index.vue +3 -1
c3662493 GerindT 2026-08-18 fixes
backend/app/Http/Controllers/ProcessController.php +112 -41
frontend/src/pages/pricing-offers/shared/pricingOffersMixin.js +2 -1
32052880 GerindT 2026-08-18 fixes
backend/app/Http/Controllers/PriceChangeBatchController.php +4 -21
backend/app/Http/Controllers/ProcessController.php +117 -16
backend/app/Http/Controllers/ProductController.php +41 -23
backend/app/Services/OfferCampaignEngine.php +7 -22
frontend/src/pages/pricing-offers/cmimet/ManualDiscountPanel.vue +5 -3
frontend/src/pages/pricing-offers/cmimet/PriceImportPanel.vue +21 -5
frontend/src/pages/pricing-offers/index.vue +11 -1
frontend/src/pages/pricing-offers/oferta/OfertaWizard.vue +9 -0
frontend/src/pages/pricing-offers/shared/ImportErrorModal.vue +154 -0
frontend/src/pages/pricing-offers/shared/pricingOffersMixin.js +280 -24
10003bf4 GerindT 2026-08-17 fixes
backend/app/Classes/SimpleExcelReader.php +15 -4
d2038028 GerindT 2026-08-17 fixes
backend/app/Http/Middleware/EnsureCatalogPricingAccess.php +31 -10
backend/app/Services/ProductLabelCompositionService.php +2 -3
677dde83 GerindT 2026-08-05 fixes
backend/app/Http/Controllers/CatalogController.php +23 -4
backend/app/Http/Controllers/ProductController.php +59 -1
backend/app/Models/CategoryAttribute.php +2 -0
backend/app/Repositories/CategoryRepository.php +59 -0
backend/app/Repositories/ProductRepository.php +15 -5
backend/app/Services/ProductLabelCompositionService.php +20 -6
backend/app/Services/ProductLabelExportService.php +1 -0
backend/app/Support/AttributeValueResolver.php +93 -0
frontend/src/components/LabelExportModal.vue +106 -1
frontend/src/components/daform/fields/AttributeOptionPicker.vue +23 -2
frontend/src/components/daform/fields/AttributeUnitPicker.vue +28 -1
frontend/src/components/daform/fields/attributes.vue +2 -1
frontend/src/components/daform/fields/category-attributes-config.vue +16 -0
frontend/src/components/daform/index.vue +17 -1
frontend/src/helpers.js +80 -5
frontend/src/pages/categories/forms/accessory/edit.js +2 -0
frontend/src/pages/categories/forms/product/edit.js +2 -0
frontend/src/pages/products/components/product-details.vue +16 -4
b9db87cc GerindT 2026-08-04 fixes
backend/app/Http/Controllers/ProductController.php +41 -0
backend/app/Repositories/ProductRepository.php +194 -0
backend/routes/api.php +1 -0
frontend/src/pages/products/components/product-grid-toolbar.vue +12 -0
frontend/src/pages/products/components/product-selection-bar.vue +2 -2
frontend/src/pages/products/index.vue +25 -0
frontend/src/services/Product.js +54 -0
04dfa745 GerindT 2026-08-04 fixes
backend/app/Interfaces/CategoryRepositoryInterface.php +1 -1
backend/app/Repositories/CategoryRepository.php +44 -19
backend/app/Repositories/ProductRepository.php +12 -13
backend/app/Services/ProductLabelCompositionService.php +16 -2
backend/app/Support/AttributeDisplayFormatter.php +84 -0
backend/app/Support/AttributeValueResolver.php +5 -3
1416b925 GerindT 2026-08-03 fixes
backend/app/Http/Controllers/OfferCampaignController.php +110 -16
backend/app/Http/Controllers/PriceChangeBatchController.php +60 -5
backend/app/Http/Controllers/ProductController.php +3 -0
backend/app/Http/Kernel.php +1 -0
backend/app/Http/Middleware/EnsureCatalogPricingAccess.php +91 -0
backend/app/Services/OfferCampaignEngine.php +54 -15
backend/routes/api.php +35 -32
frontend/src/pages/pricing-offers/cmimet/CmimetTab.vue +19 -0
frontend/src/pages/pricing-offers/cmimet/ManualDiscountPanel.vue +290 -0
frontend/src/pages/pricing-offers/cmimet/PriceBatchAudit.vue +154 -0
frontend/src/pages/pricing-offers/cmimet/PriceImportPanel.vue +182 -0
frontend/src/pages/pricing-offers/index.vue +26 -4246
frontend/src/pages/pricing-offers/oferta/FushatHub.vue +153 -0
frontend/src/pages/pricing-offers/oferta/OfertaLiveView.vue +171 -0
frontend/src/pages/pricing-offers/oferta/OfertaTab.vue +62 -0
frontend/src/pages/pricing-offers/oferta/OfertaWizard.vue +223 -0
frontend/src/pages/pricing-offers/oferta/OfferSimulationPreview.vue +81 -0
frontend/src/pages/pricing-offers/oferta/SistemiPanel.vue +58 -0
frontend/src/pages/pricing-offers/shared/ConfirmActionModal.vue +167 -0
frontend/src/pages/pricing-offers/shared/pageStyles.css +832 -0
frontend/src/pages/pricing-offers/shared/pricingOffersMixin.js +2547 -0
a2960556 GerindT 2026-08-03 fixes
backend/app/Services/ProductLabelCompositionService.php +5 -1
backend/app/Support/LabelPdfWriter.php +91 -9
a494f923 GerindT 2026-07-31 fixes
frontend/src/components/daform/index.vue +2 -0
frontend/src/constants/labelRules.js +4 -0
512d31b4 GerindT 2026-07-22 fixes
frontend/src/pages/pricing-offers/index.vue +358 -80
30fd0e90 GerindT 2026-07-22 fixes
backend/app/Classes/SimpleExcelReader.php +5 -1
backend/app/Http/Controllers/PriceChangeBatchController.php +73 -0
backend/app/Http/Controllers/PricingOfferImportController.php +19 -6
backend/app/Models/PriceChangeBatch.php +1 -0
backend/app/Services/PricingOfferExportService.php +32 -10
backend/app/Services/PricingOfferImportService.php +42 -41
backend/routes/api.php +1 -0
frontend/src/pages/pricing-offers/index.vue +92 -26
786304b4 GerindT 2026-07-22 fixes
backend/app/Http/Controllers/ProcessController.php +1 -1
b3ced6a7 GerindT 2026-07-22 fixes
backend/app/Http/Controllers/ProductController.php +7 -1
backend/app/Services/PricingOfferImportService.php +2 -1
frontend/src/pages/pricing-offers/index.vue +1 -1
b524af34 GerindT 2026-07-22 fixes
8ef21f85 GerindT 2026-07-22 fixes
backend/app/Http/Controllers/PriceChangeBatchController.php +263 -0
backend/app/Http/Controllers/PricingOfferImportController.php +1 -1
backend/app/Http/Controllers/ProductController.php +69 -2
backend/app/Models/PriceChangeBatch.php +46 -0
backend/app/Models/PriceChangeBatchItem.php +39 -0
backend/app/Services/PricingOfferExportService.php +21 -4
backend/app/Services/PricingOfferImportService.php +71 -10
backend/routes/api.php +4 -0
frontend/src/pages/pricing-offers/index.vue +339 -23