Commit graph

376 commits

Author SHA1 Message Date
Jérémy Munsch
cd7d5f5fe9
feat(orders): implement default sorting for order queries
Added default sorting by date in descending order for order queries.
Updated related views and tests to reflect this change.
2026-10-29 21:16:06 +01:00
Jérémy Munsch
71e0d65f31
refactor(OrderService): simplify order creation from basket
Updated the OrderService to utilize the new fromBasket method for creating orders, enhancing code clarity and maintainability. Removed the ProductAvailabilityService as its functionality is now integrated into the ProductRepository.
2026-10-29 20:21:32 +01:00
Jérémy Munsch
da0c3afc14
refactor(MoneyServiceProvider, ViewServiceProvider): streamline boot methods
Removed unnecessary conditionals and improved method calls for clarity.
2026-10-29 20:13:15 +01:00
Jérémy Munsch
e857a58d00
test(Product): add comprehensive tests for Product entity
- Implement tests for product publication status.
- Add tests for product orderability based on various conditions.
- Enhance pricing calculation tests for different discount scenarios.
- Remove outdated PricingServiceTest and refactor ProductAvailabilityServiceTest.
2026-10-29 19:48:38 +01:00
Jérémy Munsch
cfac370e2e
feat(discount): implement published discounts filtering logic
Added logic to filter published discounts, including those with null start or end dates.
2026-10-29 19:19:22 +01:00
Jérémy Munsch
c52b13cc51
feat(order): implement soft delete handling in order changes
Added support for soft-deleted models in ChangeModelOrder and ChangeModelOrderPosition actions.
This allows for proper order adjustments even when models are soft-deleted.
2026-10-29 19:04:46 +01:00
Jérémy Munsch
7b910c5af6
refactor(UpdateShopPickupExceptionsRequest): remove unused messages method
Cleaned up the code by removing the messages method as it was not utilized.
2026-10-29 18:43:02 +01:00
Jérémy Munsch
0874259eba
style(FilteredProductResource): fix indentation for nutriscore line 2026-10-29 17:10:13 +01:00
Jérémy Munsch
8e42639134
feat(order): implement change selected order functionality
Add functionality to change the order of models in the product list.
This includes new actions, requests, and UI components for user interaction.
2026-10-29 16:39:23 +01:00
Jérémy Munsch
a94d8a4b49
feat(products): add discount filtering to product index
- Implement discount filtering in product queries and views.
- Update related request and response handling for discounts.
2026-10-29 16:09:41 +01:00
Jérémy Munsch
4d6ff9b726
fix(SettingPolicy): enable Arcadia refresh job dispatching
The Arcadia refresh job dispatching is currently disabled and needs to be enabled when the API is available.
2026-10-29 15:26:45 +01:00
Jérémy Munsch
82697ed416
fix(products): respect is_old_price_displayed discount setting in product cards
- Condition strikethrough price display on showStrippedPrice in ProductCard.vue
- Add showStrippedPrice to product Zod schemas, TypeScript types, repositories and store
- Optimize showStrippedPrice in FilteredProductResource using eager-loaded validDiscount
- Add unit tests for productModelSchema and integration tests in ProductsControllerTest
2026-10-29 15:08:53 +01:00
Jérémy Munsch
e2263911f3
refactor(products): order tags by 'order' in query
This change ensures that the tags are retrieved in a consistent order.
2026-10-28 12:59:37 +01:00
Jérémy Munsch
1e1172b757
feat(validation): update address attribute to use postal_address
Updated the address attribute in multiple requests and views to use the new 'postal_address' translation key for consistency.
2026-10-28 12:51:06 +01:00
Jérémy Munsch
5a0cc6c519
feat(ContactFormRequest): add attributes method for validation messages
Added a method to define custom attribute names for validation.
2026-10-28 10:56:39 +01:00
Jérémy Munsch
44ffc4d34e
feat(DiscountProductDto): add picture property and update fromModel method
feat(ProductDragAndDropComponent): enhance product display with picture and improve layout
2026-10-28 10:02:43 +01:00
Jérémy Munsch
f9ded6d01c
refactor(ToolboxHelper): remove unused getValidatedEnum method
Cleaned up ToolboxHelper by removing the unused getValidatedEnum method to enhance code clarity.
2026-10-28 08:57:35 +01:00
Jérémy Munsch
4ff3daecab
refactor(Auth): improve reset URL handling and validation
refactor(Helpers): update parameter types and remove ignores

refactor(Models): streamline order assignment logic

refactor(Enums): clarify unused constant warnings

refactor(Services): encapsulate cutoff week offset logic
2026-10-28 08:53:34 +01:00
Jérémy Munsch
1899fd1f0e
chore: phpcs fix 2026-10-27 20:20:52 +01:00
Jérémy Munsch
8e213e2e33
fix: htmlsanitizer and contact form validation 2026-10-27 20:18:08 +01:00
Jérémy Munsch
c7535d3d04
feat(Providers): bind CsvGenerator to CsvGeneratorImpl
Add binding for CsvGenerator service to its implementation.
2026-10-27 19:59:49 +01:00
Jérémy Munsch
b8a0f16efa
fix(Crm): update customer input handling in UpdateCustomer action
Refactor input validation and data preparation for customer updates.
2026-10-27 18:57:46 +01:00
Jérémy Munsch
713c937890
fix(casts): update OrderReferenceCast to use base58 encoding
Refactor OrderReferenceCast to utilize base58 encoding for order references instead of UUID.
This change improves compatibility with the new OrderReference implementation.
2026-10-27 16:17:28 +01:00
Jérémy Munsch
5201aa3a5a
chore(jobs): disable Arcadia jobs until API is available and refresh 2026-10-27 11:21:13 +01:00
Jeremy Munsch
2831ad972b
fix: GetFoProductIndexPageQuery was not returning brands 2026-10-27 09:59:01 +01:00
Jérémy Munsch
85f3896337
fix(commands): update command signatures to include 'uwil' prefix
Updated command signatures for MailTest, SyncProductIncosCommand, and UserCreate to maintain consistency in naming conventions.
2026-10-27 09:59:00 +01:00
Jeremy Munsch
46e9c58ad2
refactor: battle test employee sync 2026-10-27 09:58:59 +01:00
Jérémy Munsch
eacb445b55
refactor: phpcs fixes on StoreShopRequest 2026-10-27 09:58:58 +01:00
Jérémy Munsch
b51d409a88
refactor: phpcs fixes on ExecuteMassAction 2026-10-27 09:58:57 +01:00
Jérémy Munsch
353b899c3f
refactor(bo): change dispatch method for employee sync job
Updated the dispatch method to use dispatchAfterResponse for the employee sync job.
2026-10-27 09:58:55 +01:00
Jérémy Munsch
87661b2a60
refactor: migrate customer registration and mass actions to actions 2026-10-27 09:58:55 +01:00
Jérémy Munsch
17f898e3f9
feat(domain): introduce DiscountRate VO and eliminate float rounding in pricing calculations 2026-10-27 09:58:54 +01:00
Jérémy Munsch
14647576df
feat(bo/product-incos): adapt BO controller, requests, routes and views for Arcadia INCO management 2026-10-27 09:58:53 +01:00
Jérémy Munsch
50df658d58
feat(product-incos): implement actions, queries, sync job and command for Arcadia INCO sheets 2026-10-27 09:58:53 +01:00
Jérémy Munsch
3de48c14fd
feat(arcadia): add ArcadiaIncoService and DTOs to fetch and preview INCO sheets via Arcadia API 2026-10-27 09:58:53 +01:00
Jérémy Munsch
f0667b7d3e
chore(database): drop legacy xml_incos table and model in favor of Arcadia API 2026-10-27 09:58:52 +01:00
Jérémy Munsch
5492ffe217
refactor(orders): simplify OrderReference to wrap UuidInterface directly and remove obsolete UuidConverter 2026-10-27 09:58:51 +01:00
Jérémy Munsch
bae633e312
style: fix phpcs sniffs and complexity warnings 2026-10-27 09:58:51 +01:00
Jérémy Munsch
9e4da0e287
fix(mass-actions): report exceptions instead of silently swallowing them 2026-10-27 09:58:50 +01:00
Jérémy Munsch
15e729cbe2
style: prefix global PHP classes with backslash instead of importing them 2026-10-27 09:58:49 +01:00
Jérémy Munsch
9a334b5ed1
refactor(models): remove unused ProductType and OrdersStatus models 2026-10-27 09:58:49 +01:00
Jérémy Munsch
d4db0cffc6
fix(slides): allow empty text in slide requests and indicate connected visibility in BO 2026-10-27 09:58:48 +01:00
Jérémy Munsch
3c309dc356
feat(slides): indicate visibility in BO and fix conditional slider display in FO 2026-10-27 09:58:47 +01:00
Jérémy Munsch
bf3e7a93fd
refactor(i18n): harmonize translation keys to English and complete French translations
- Convert hardcoded strings and French translation keys to English keys across Blade templates, Vue components, TypeScript modules, models, and routes
- Complete and synchronize lang/fr.json and lang/en.json translation dictionaries
- Add timezone attribute in lang/fr/validation.php and lang/en/validation.php
- Add missing English lang files for parity: crud.php, models.php, search.php, and vue.php
2026-10-27 09:58:47 +01:00
Jérémy Munsch
f84a1a7b8c
fix(orders): preserve pagination and query parameters in IndexOrdersRequest 2026-10-27 09:58:46 +01:00
Jérémy Munsch
e0c4b34ed8
feat(employees): implement deterministic 6-character code generation using SerialCaster
- Add kwaadpepper/serial-int-caster and SerialCasterServiceProvider
- Update CodeGenerationService to encode Matricule deterministically with length 6
- Update Code value object to support lengths between 6 and 10 with 53 non-ambiguous characters
- Add database migration to sanitize legacy ambiguous codes
- Recreate and update unit and integration tests for CodeGenerationService and Code value object
2026-10-27 09:58:46 +01:00
Jérémy Munsch
8b96ce90be
test(casts): add tests for EmployeeSitesCast functionality
test(casts): add tests for ShopperEstablishmentCodeCast functionality

test(casts): add tests for ShopperServiceCodeCast functionality

test(casts): add tests for ShopperSiteCodeCast functionality

test(dto): update ProductDtoTest to include additional fields

test(dto): update SettingDtoTest to remove arcadiaSites assertions

test(events): update AnOrderHasBeenPlacedTest to use value objects

test(entities): update OrderTest to use value objects for employee details

test(value-objects): update EmployeeUpsertDataTest to use value objects

test(pagination): update PaginationTest to access value properties

test(services): update AppCustomerAuthServiceTest to use CrmHashcode

test(services): update CrmServiceTest to use CrmHashcode for customer retrieval
2026-10-27 09:58:45 +01:00
Jérémy Munsch
3398aacc86
refactor(casts): update exception handling to use fully qualified class names
Refactored exception handling in various cast classes to use fully qualified class names for InvalidArgumentException and UnexpectedValueException.
2026-10-27 09:58:45 +01:00
Jérémy Munsch
6b649a8e7d
refactor(models): update property types in Setting model
Updated the type annotations for employee_sites to allow mixed types and reordered arcadia_sites for clarity.
2026-10-27 09:58:45 +01:00
Jérémy Munsch
3b3997d547
feat(employees): automated sync with Arcadia API, BO settings, Shopper value objects, and pagination migration
- Implement automated synchronization of employees via Arcadia API (EmployeeSyncService, SynchronizeEmployeesWithArcadiaApi, FetchAndUpsertArcadiaEmployees)
- Add Back-Office application settings for employee sites (Setting singleton, GetSettingsQuery, UpdateSettings, SettingsController, EmployeeSitesInputComponent.vue)
- Strongly type Employee attributes using Domain Value Objects (ShopperEstablishmentCode, ShopperSiteCode, ShopperServiceCode) and Eloquent Casts
- Migrate pagination from Domain to Shared\Pagination namespace across queries and inputs
- Remove legacy and dead CSV employee import/export code
- Restore Domain\Ports\Services\CsvGenerator interface for Regate order generation
- Add comprehensive Pest unit, integration, and feature test coverage
2026-10-27 09:58:44 +01:00