What's Changed
- Configure PHPUnit to use in-memory SQLite database by @SMEWebify in #765
- Remove hardcoded APP_KEY from PHPUnit configuration by @SMEWebify in #766
- Ensure database migrations run during tests by @SMEWebify in #767
- Bump symfony/http-foundation from 7.3.3 to 7.3.7 in the composer group across 1 directory by @dependabot[bot] in #768
- Bump node-forge from 1.3.1 to 1.3.2 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #769
- Fix methods location data for order view by @SMEWebify in #770
- Fix methods location include path in order view by @SMEWebify in #771
- refine customer portal views with guest layout parity by @SMEWebify in #764
- Improve notification dropdown text wrapping by @SMEWebify in #772
- Bump composer/composer from 2.8.12 to 2.9.3 in the composer group across 1 directory by @dependabot[bot] in #773
- Bump qs from 6.14.0 to 6.14.1 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #774
- Bump qs from 6.13.0 to 6.14.1 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #775
- Fix PSR-4 autoload paths by @SMEWebify in #776
- Add translations for review tracking fields by @SMEWebify in #777
- Add environment diagnostics artisan command by @SMEWebify in #778
- Queue heavy load planning calculations by @SMEWebify in #779
- Add README guidance for structure and local development by @SMEWebify in #780
- Fix task resources pivot table usage by @SMEWebify in #781
- Add status checkbox filter to task list by @SMEWebify in #782
- Support product custom fields on quote lines by @SMEWebify in #783
- Add status filters to companies list view by @SMEWebify in #784
- Add collapsible sections to order line detail modal by @SMEWebify in #785
- Update order sites migration by @SMEWebify in #786
- Add collapsible sections to order line detail modal by @SMEWebify in #787
- Fix command resolution during artisan bootstrapping by @SMEWebify in #788
- Fix dashboard company card links to apply filters by @SMEWebify in #789
- Add tool availability and booking-conflict checks to task management by @SMEWebify in #790
- Add CAM file and local path fields to quote and order line details by @SMEWebify in #791
- Add product_tool pivot and product-filtered tool selector for tasks by @SMEWebify in #792
- Add missing generic
selecttranslation key for multiple locales by @SMEWebify in #793 - Add bend_count to quote and order line details by @SMEWebify in #794
- Add Nest2Prod (N2P) integration: settings, payload builder, client, job & observer by @SMEWebify in #795
- Add missing
save_trans_keytranslations to locale files by @SMEWebify in #796 - Bump paragonie/sodium_compat from 2.2.0 to 2.5.0 in the composer group across 1 directory by @dependabot[bot] in #797
- Normalize boolean switch inputs in N2P settings request by @SMEWebify in #798
- Add SSL verification toggle for Nest2Prod integration by @SMEWebify in #799
- Add
bend_countto products and propagate to quote/order line details by @SMEWebify in #800 - Add order line planned start/end dates to N2P job payloads by @SMEWebify in #801
- Add required_qty to N2P task payloads by @SMEWebify in #802
- Add required_qty to N2P task payloads by @SMEWebify in #803
- Add configurable 'nest2prod' color palette and theme CSS by @SMEWebify in #804
- Centralize theme CSS via AdminLTE plugin and add 'nest2prod' theme by @SMEWebify in #805
- Show only open quotes and orders on dashboard cards by @SMEWebify in #806
- Add latest customer age to dashboard card by @SMEWebify in #807
- Add public attendance (pointage) form, controller, model and migration by @SMEWebify in #808
- Add Attendance model, migration and store endpoint by @SMEWebify in #809
- Add human resources attendance report (route, controller, view, menu & i18n) by @SMEWebify in #810
- Unify attendance schema and align public attendance flow by @SMEWebify in #811
- Redesign attendance punch screen with live clock and updated UI by @SMEWebify in #812
- Add attendance punches report tab by @SMEWebify in #813
- Fix migration to extend order_site_implantations table by @SMEWebify in #814
- Guard opportunity log factories when no records exist by @SMEWebify in #815
- Fix currency fallback in dashboard totals by @SMEWebify in #816
- Guard order currency formatting against null factory currency by @SMEWebify in #817
- Fix null currency handling in QuotesController by @SMEWebify in #818
- Fix controller currency fallbacks by @SMEWebify in #819
- Fix quote line currency fallback by @SMEWebify in #820
- Add currency fallback for task formatting by @SMEWebify in #821
- Add currency fallbacks for formatted amounts by @SMEWebify in #822
- Add apply-delivery-date button and propagate date to order lines by @SMEWebify in #823
- Use RefreshDatabase for feature tests; fix Addresses tests and resilient factories by @SMEWebify in #824
- Fix test factories and ContactsController tests by @SMEWebify in #825
- Guard Factory singleton when
factorytable is unavailable by @SMEWebify in #826 - Use MySQL for PHPUnit database connection by @SMEWebify in #827
- Fix auth & API routing for tests and add EnergyConsumption casts by @SMEWebify in #829
- Fix factories, order-site/task schema and sqlite holiday logic to stabilize tests by @SMEWebify in #828
- Fix test failures: storage uploads, API resources, N2P payload, routes, and test setup by @SMEWebify in #830
- Fix routes, add activity_log migration, allow test auth bypass, and make Orders id fillable by @SMEWebify in #831
- Add Spatie permission middleware aliases by @SMEWebify in #832
- Fix Spatie permission middleware namespace by @SMEWebify in #833
- Add sold/purchased selection to product import by @SMEWebify in #834
- Limit seeded orders to customer companies by @SMEWebify in #835
- Exclude stopped/canceled orders from delivery requests by @SMEWebify in #836
- Block delivery/invoice creation for canceled orders by @SMEWebify in #837
- Add API auth regression tests and helper; remove
auth:apifrom Kernel by @SMEWebify in #838 - Validate picture uploads and generate safe filenames in QuoteLinesController and OrderLinesController by @SMEWebify in #839
Full Changelog: v1.18...v1.19