Skip to main content

Daily Changelog - May 23, 2026

Today's development focused on resolving address duplication bugs, enhancing form validations, integrating day-off checking with override options, improving search and layout in invoices and quotes, and adding dynamic filtering to bin weight logging.


🛠️ Changes Summary

CategoryDescriptionKey Files
Bug FixesPrevent duplicate customer address creation by shifting lookup attributes; allow customer lookup by email/phone dynamically.OrderSkipBinController.php
FeaturesNon-Delivery/Off-day validation and override prompt. Added check-day-off API endpoint, Vuex state management, and front-end spinner loading controls.CheckDayOffController.php, Contract.js, ExtraEmpty.vue (Front Bins), ExtraEmpty.vue (Rental Bins)
ImprovementsDynamic category-based filtering for Bin Weight filters; validation UI asterisks on Order creation form; unit lot field for site addresses.index.blade.php, AdminNewSkipBinOrder.vue, AddressModalCreate.vue
Formatting & UIInvoice line item 'KG' badging fixes; precise decimal formatting for quote pricing display.first-invoice.blade.php, skipbin_quote.blade.php

🔍 Detailed Change Walkthrough

1. Order Creation & Address Handling

  • Duplicate Address Mitigation: Updated the customer address mapping logic inside OrderSkipBinController.php's updateOrCreate structure. The customer's name, email, and phone are now passed to the second parameter (value array) rather than the search attributes. This prevents duplicate address entries when the customer’s contact details change for the same physical address.
  • Flexible Customer Match: Modified existing customer searches during order creation in OrderSkipBinController.php to lookup by either email or phone depending on which parameter is supplied.
  • Form Validation Visuals: Updated AdminNewSkipBinOrder.vue to render red asterisks (*) alongside all required inputs.
  • Dynamic Phone Validation: Phone and Contact Phone validation requirements are now conditional based on the partner configuration setting is_required_phone_number_front_end.

2. Supplier Day-Off Verification & Overrides

  • API Validation: Registered a new route GET /api/check-day-off matching the newly introduced invokable CheckDayOffController.php to check whether a selected date matches a supplier's non-delivery configuration or NonDelivery off-days list.
  • Vuex Actions: Added a Vuex action checkOffDay and state variable isOverideDate in Contract.js. This displays a SweetAlert2 confirmation dialog prompting the user if they wish to bypass/override the warning if a day off is selected.
  • Front-end Loading Controls: Updated the ExtraEmpty.vue components for both Front Bins and Rental Bins to run this validation prior to submitting extra empty orders, showing an active loading spinner on the submit buttons.

3. Bin Weight Dropdowns & Filtering

  • Dynamic Dropdowns: Updated index.blade.php using jQuery to dynamically filter the waste container sizes and waste types options depending on the chosen Category.
  • N+1 Query Fix: Eager loaded the categories relation inside BinWeightController.php when retrieving active WasteType structures.
  • Exceptions Propagation: Commented out the try-catch wrapper inside task() method in TaskRunsheetController.php to allow server exceptions to bubble up.

4. Layout & UI Refinements


Report generated on May 23, 2026.