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