Frontend Changes Summary Action History Refactoring: Created reusable ActionHistory component and actionHistoryHelpers utility for consistent action history display Refactored ClientDetails, QuoteDetail, and RequestDetail to use the centralized component, removing duplicate code Improved action history data transformation and formatting Invoice Payment Enhancements: Added validation to prevent payments on fully paid invoices Improved error handling and user notifications in payment modal Enhanced remaining balance calculation to use backend remainingBalance field Added automatic data refresh after successful payments Request Management Improvements: Enhanced change detection logic for request updates, distinguishing between service changes and site visit changes Improved site visit change tracking to only send modified visits Fixed deep comparison logic to ignore _id fields when detecting changes Better handling of site visit field updates UI/UX Fixes: Fixed action button layout in client table component Improved conditional rendering for Street 2 field in client details Code cleanup and removal of unused imports Files Modified: 7 files changed, 288 insertions(+), 505 deletions(-) Backend Changes Summary Invoice Payment Processing: Enhanced InstallmentPayment service with logging and error handling Fixed quotation lookup to use quotationNumber instead of invoiceId Added automatic request status updates to "InvoicePaid" when invoices are fully paid Made email notifications non-blocking to prevent payment processing delays Improved installment validation to prevent over-payment Request Status Management: Added automatic request status updates when quotations are created (QuoteRequested/QuoteShared) Added status updates when quotations are accepted (QuoteApproved) Added status updates when invoices are generated (InvoiceGenerated) All status changes include action history entries with detailed change tracking Action History Tracking: Enhanced action history in quotation services to track only meaningful changes Improved client update tracking to record only fields modified in PATCH requests Enhanced request update tracking with granular change detection for services and site visits Excluded large nested objects (like costBreakdowns) from action history to reduce payload size Improved change comparison logic to handle dates, ObjectIds, and nested structures Code Quality: Added logging throughout payment processing for debugging Improved error handling with try-catch blocks and graceful degradation Enhanced validation for installment additions with detailed error messages