System
Unified timeline of data changes (saves, imports, deletes) and backend errors. Filter by type, area, severity, or search.
1,266,112 results · Page 25320 of 25323
[]
{"item_type_id":"246","type_name":"Pants/Top"}
{"deleted":true}
[]
{"item_type_id":"247","type_name":"pants and skirts"}
{"deleted":true}
[]
{"item_type_id":"248","type_name":"sleeves"}
{"deleted":true}
[]
{"item_type_id":"250","type_name":"Jacket\r\nadjust the sleeve width adjust the back \r\nPants \r\nhem"}
{"deleted":true}
[]
{"item_type_id":"251","type_name":"Suit/jacket"}
{"deleted":true}
[]
{"item_type_id":"252","type_name":"Wedding jacket/pants"}
{"deleted":true}
[]
{"item_type_id":"253","type_name":"Pantsuite"}
{"deleted":true}
[]
{"item_type_id":"254","type_name":"pants and coat"}
{"deleted":true}
[]
{"item_type_id":"255","type_name":"pajama"}
{"deleted":true}
[]
{"item_type_id":"257","type_name":"When Needed? March 21 is the wedding day Project Details Hem a sequin dress\r\nhem all the way around\r"}
{"deleted":true}
[]
{"item_type_id":"258","type_name":"Pants/jacket"}
{"deleted":true}
[]
{"item_type_id":"259","type_name":"bag"}
{"deleted":true}
[]
{"item_type_id":"263","type_name":"Shirt and Slacks"}
{"deleted":true}
[]
{"item_type_id":"267","type_name":"Nigerian Wedding Dress"}
{"deleted":true}
[]
{"item_type_id":"268","type_name":"Mother Of The Brides Dress"}
{"deleted":true}
[]
{"item_type_id":"269","type_name":"jeans/shirt"}
{"deleted":true}
[]
{"item_type_id":"270","type_name":"Jacket and pants"}
{"deleted":true}
[]
{"item_type_id":"271","type_name":"Hem Dress Pants"}
{"deleted":true}
[]
{"item_type_id":"272","type_name":"silk"}
{"deleted":true}
[]
{"item_type_id":"273","type_name":"Italian Leather"}
{"deleted":true}
[]
{"item_type_id":"274","type_name":"ballgown satin inside, decorated tulle outskirt"}
{"deleted":true}
[]
{"item_type_id":"275","type_name":"tulle"}
{"deleted":true}
[]
{"item_type_id":"276","type_name":"Satin"}
{"deleted":true}
[]
{"item_type_id":"279","type_name":"lace tulle 5 to layers"}
{"deleted":true}
[]
{"item_type_id":"282","type_name":"tulle and beaded"}
{"deleted":true}
[]
{"item_type_id":"408","type_name":"Fix"}
{"deleted":true}
{"table":"item_types","type":"RuntimeException","file":"/mnt/drive1/customerdb/backend/live_table_manager_service.php","line":191,"trace":"#0 /mnt/drive1/customerdb/backend/live_table_manager.php(31): app_live_table_delete()\n#1 /mnt/drive1/customerdb/webui/backend/live_table_manager.php(5): require('...')\n#2 {main}"}
{"table":"item_types","type":"RuntimeException","file":"/mnt/drive1/customerdb/backend/live_table_manager_service.php","line":191,"trace":"#0 /mnt/drive1/customerdb/backend/live_table_manager_service.php(210): app_live_table_delete()\n#1 /mnt/drive1/customerdb/backend/live_table_manager.php(36): app_live_table_delete_many()\n#2 /mnt/drive1/customerdb/webui/backend/live_table_manager.php(5): require('...')\n#3 {main}"}
{"table":"item_types","type":"RuntimeException","file":"/mnt/drive1/customerdb/backend/live_table_manager_service.php","line":191,"trace":"#0 /mnt/drive1/customerdb/backend/live_table_manager_service.php(210): app_live_table_delete()\n#1 /mnt/drive1/customerdb/backend/live_table_manager.php(36): app_live_table_delete_many()\n#2 /mnt/drive1/customerdb/webui/backend/live_table_manager.php(5): require('...')\n#3 {main}"}
{"table":"item_types","type":"RuntimeException","file":"/mnt/drive1/customerdb/backend/live_table_manager_service.php","line":191,"trace":"#0 /mnt/drive1/customerdb/backend/live_table_manager_service.php(210): app_live_table_delete()\n#1 /mnt/drive1/customerdb/backend/live_table_manager.php(36): app_live_table_delete_many()\n#2 /mnt/drive1/customerdb/webui/backend/live_table_manager.php(5): require('...')\n#3 {main}"}
{"table":"item_types","type":"RuntimeException","file":"/mnt/drive1/customerdb/backend/live_table_manager_service.php","line":186,"trace":"#0 /mnt/drive1/customerdb/backend/live_table_manager_service.php(219): app_live_table_delete()\n#1 /mnt/drive1/customerdb/backend/live_table_manager.php(36): app_live_table_delete_many()\n#2 /mnt/drive1/customerdb/webui/backend/live_table_manager.php(5): require('...')\n#3 {main}"}
{"table":"item_types","type":"RuntimeException","file":"/mnt/drive1/customerdb/backend/live_table_manager_service.php","line":186,"trace":"#0 /mnt/drive1/customerdb/backend/live_table_manager_service.php(219): app_live_table_delete()\n#1 /mnt/drive1/customerdb/backend/live_table_manager.php(36): app_live_table_delete_many()\n#2 /mnt/drive1/customerdb/webui/backend/live_table_manager.php(5): require('...')\n#3 {main}"}
{"table":"item_types","type":"mysqli_sql_exception","file":"/mnt/drive1/customerdb/backend/live_table_manager_service.php","line":182,"trace":"#0 /mnt/drive1/customerdb/backend/live_table_manager_service.php(182): mysqli->query()\n#1 /mnt/drive1/customerdb/backend/live_table_manager_service.php(196): app_live_table_delete()\n#2 /mnt/drive1/customerdb/backend/live_table_manager.php(36): app_live_table_delete_many()\n#3 /mnt/drive1/customerdb/webui/backend/live_table_manager.php(5): require('...')\n#4 {main}"}
[]
{"item_type_id":"277","type_name":"Polyester"}
{"deleted":true}
[]
{"item_type_id":"280","type_name":"stretchy with beads and pearls"}
{"deleted":true}
[]
{"item_type_id":"278","type_name":"tulle with flower applique"}
{"deleted":true}
{"table":"item_types","type":"mysqli_sql_exception","file":"/mnt/drive1/customerdb/backend/live_table_manager_service.php","line":182,"trace":"#0 /mnt/drive1/customerdb/backend/live_table_manager_service.php(182): mysqli->query()\n#1 /mnt/drive1/customerdb/backend/live_table_manager.php(31): app_live_table_delete()\n#2 /mnt/drive1/customerdb/webui/backend/live_table_manager.php(5): require('...')\n#3 {main}"}
[]
{"item_type_id":"281","type_name":"2 dress shirts"}
{"deleted":true}
[]
{"item_type_id":"283","type_name":"Cottton Silk"}
{"deleted":true}
{"table":"item_types","type":"mysqli_sql_exception","file":"/mnt/drive1/customerdb/backend/live_table_manager_service.php","line":182,"trace":"#0 /mnt/drive1/customerdb/backend/live_table_manager_service.php(182): mysqli->query()\n#1 /mnt/drive1/customerdb/backend/live_table_manager.php(31): app_live_table_delete()\n#2 /mnt/drive1/customerdb/webui/backend/live_table_manager.php(5): require('...')\n#3 {main}"}
{"table":"item_types","type":"mysqli_sql_exception","file":"/mnt/drive1/customerdb/backend/live_table_manager_service.php","line":182,"trace":"#0 /mnt/drive1/customerdb/backend/live_table_manager_service.php(182): mysqli->query()\n#1 /mnt/drive1/customerdb/backend/live_table_manager.php(31): app_live_table_delete()\n#2 /mnt/drive1/customerdb/webui/backend/live_table_manager.php(5): require('...')\n#3 {main}"}
[]
[]
{"customer_date":"2026-04-09T19:29","customer_name":"Edwards","dopu_can":"Edwards","edwards":150,"edwards_type":"mileage","update_flag":"43 Miles"}
[]
[]
{"customer_date":"2026-04-09T19:17","customer_name":"Edwards","dopu_can":"Edwards","edwards":150,"edwards_type":"mileage","update_flag":"Milage 43"}
[]
[]
{"target_database":"ellas_alterations_backup","tables":[{"source_table":"customers","backup_table":"customers__snapshot_20260411_151957_before_final_input","row_count":3177},{"source_table":"visits","backup_table":"visits__snapshot_20260411_151957_before_final_input","row_count":992},{"source_table":"orders","backup_table":"orders__snapshot_20260411_151957_before_final_input","row_count":992},{"source_table":"order_items","backup_table":"order_items__snapshot_20260411_151957_before_final_input","row_count":108},{"source_table":"payments","backup_table":"payments__snapshot_20260411_151957_before_final_input","row_count":1275}]}
[]
{"visit_id":"129057","legacy_visit_id":null,"customer_id":"302528","visit_date":"2026-04-11 09:00:00","pickup_date":"2026-04-11 09:00:00","notes":"Wedding dress Deposit 50\nRange 180 ro 220","customer_name_snapshot":"Barbara Toledo Ramos","phone_snapshot":"8134033849","email_snapshot":"barbieb84@gmail.com","color":null,"alterations_needed":null,"alterations_notes":"{\"Project Details\":\"Wedding dress buttons \",\"When Needed?\":\"April 19th \"}","alterations_price":"0.00","total_alteration_price":"0.00","expedited_fee":"0.00","paid_date":null,"signature_text":null,"signature_date":null,"paid_flag":"0","source_key_value":"d93819b1-53f5-4f38-82f6-e2ba18e89b58","visit_type":"No label","deposit_amount":"0.00","setmore_customer_key":null}
{"visit_id":"129057","legacy_visit_id":null,"customer_id":"302528","visit_date":"2026-04-11 09:00:00","pickup_date":"2026-04-06 09:00:00","notes":"Wedding dress Deposit 50\r\nRange 180 ro 220","customer_name_snapshot":"Barbara Toledo Ramos","phone_snapshot":"8134033849","email_snapshot":"barbieb84@gmail.com","color":null,"alterations_needed":null,"alterations_notes":"{\"Project Details\":\"Wedding dress buttons \",\"When Needed?\":\"April 19th \"}","alterations_price":"0.00","total_alteration_price":"0.00","expedited_fee":"0.00","paid_date":null,"signature_text":null,"signature_date":null,"paid_flag":"0","source_key_value":"d93819b1-53f5-4f38-82f6-e2ba18e89b58","visit_type":"No label","deposit_amount":"0.00","setmore_customer_key":null}
{"type":"TypeError","file":"/mnt/drive1/customerdb/backend/report_service.php","line":45,"trace":"#0 /proc/857993/fd/pipe:[23583145](6): app_reports_daily()\n#1 {main}"}
{"type":"mysqli_sql_exception","file":"/proc/857991/fd/pipe:[23581519]","line":10,"trace":"#0 /proc/857991/fd/pipe:[23581519](10): mysqli->query()\n#1 {main}"}
{"type":"mysqli_sql_exception","file":"/proc/857570/fd/pipe:[23581937]","line":4,"trace":"#0 /proc/857570/fd/pipe:[23581937](4): mysqli->query()\n#1 {main}"}
{"file_name":"SESSION_LOG_2026-04-10.md","mime_type":"application/octet-stream"}
[]
{"backend_document_id":"13","document_type":"upload","title":"Codex - Updates 04-10-2026","slug":"codex-updates-04-10-2026","summary_text":"All updates and documentation for Codex - Updates 04-10-2026","content_markdown":null,"content_html":null,"file_name":"SESSION_LOG_2026-04-10.md","stored_name":"20260410-200855-4b6f846d.md","mime_type":"application/octet-stream","file_size_bytes":"9223","storage_path":"/mnt/drive1/customerdb/backend/documents_storage/20260410-200855-4b6f846d.md","is_deleted":"0","created_at":"2026-04-10 16:08:55","updated_at":"2026-04-10 16:08:55","editor_content":"# Session Log - 2026-04-10\n\nThis document captures the main fixes and modules completed during the live-data/go-live support session.\n\n## Customer Go-Live Data\n\n- Reviewed the live load path for `customers`, `visits`, `orders`, `order_items`, and skipped `payments` because the bridge source only had summary-style `CustomerTotals`, not reliable one-row-per-payment detail.\n- Confirmed the remaining unmatched Setmore/import rows were considered junk and safe to ignore.\n- Identified the only manual staging fixes needed before the production load:\n - fix `Priscilla`\n - fix `Rae Sanders`\n - ignore `Maria Martinez`\n- Prepared the go-live sequence:\n - backup current live tables\n - refresh staging\n - apply manual staging fixes\n - run preview script\n - run production load\n - run post-load audits\n - spot-check real customers in the app\n- Provided a backup-table SQL pattern for pre-go-live snapshots and later cleanup.\n\n## Visit Page\n\n- Added a safe staff override path so staff can leave `visit.html` without forcing a customer signature when the customer is not present.\n- Kept signature requirements for print/email/report actions, so the override only affects navigation.\n- Added a Bridge Compare popup/grid to `visit.html`.\n- Added backend endpoint for bridge comparison:\n - `frontend/api/bridge_customer_compare.php`\n- Updated the bridge comparison query to match by current customer name only:\n - `CustomerTable` joined to `CustomerVisits1` on `CustomerName`\n - `CustomerTable` joined to `AlterationItems` on `CustomerName`\n- Fixed bridge popup JSON failures caused by missing helper/bootstrap loading.\n- Fixed visit type persistence so saved `Pick Up` visits do not revert back to `Drop Off` unless a user changes it.\n- Fixed visit save/payment handling so the frontend payment array is respected instead of collapsing into a single payment row.\n- Fixed order totals so deposits plus payments reduce the due balance correctly.\n\n## Reports And Customer Totals\n\n- Fixed `reports.html` ready/customer results so paid totals calculate from live `orders` and `payments` by `visit_id`.\n- Fixed `customer.html` so paid totals are recomputed from live `payments`.\n- Fixed top totals snapshots to prefer live `visits`, `orders`, and `payments`, falling back to `customer_totals` only when no live data exists.\n- Updated `webui/api/totals_snapshot_live.php` so `webui.html` totals are also live-data based.\n- Added stronger visual separation between Today totals and Month-to-Date totals.\n- Added a `Completed` report filter.\n- Added per-record `Completed` badge logic.\n- Deduplicated report cards by `customer_id` to avoid duplicate customer cards such as Tabitha Torres.\n- Linked reports to new import paths:\n - Morning Import\n - Imported Today\n - End Of Day Review\n\n## End Of Day Review\n\n- Added the End Of Day Review module:\n - `backend/end_of_day_review.php`\n - `webui/backend/end_of_day_review.php`\n- The module summarizes:\n - daily closeout totals\n - appointments needing review\n - imported rows for the selected day\n - recent cron/job runs\n - no-shows\n - final status mix\n- Linked it from Backend Home and Reports.\n\n## Customer Emails And Reviews\n\n- Expanded the Customer Emails & Reviews workflow:\n - Send Email\n - Mark Sent\n - Ignore\n - outreach status tracking\n - delivery/result tracking\n - change-log entries\n- Updated files:\n - `backend/cust_email.php`\n - `backend/cust_email_service.php`\n - `webui/backend/cust_email.php`\n - `webui/backend/cust_email_service.php`\n- Updated the history view into an Outreach Log.\n\n## Email Hub Date And Time\n\n- Improved loaded appointment context handling in Email Hub.\n- Added editable appointment fields:\n - combined appointment date/time\n - appointment date\n - appointment time\n- Confirmation drafts and Setmore note updates now merge in the edited appointment fields.\n- Updated files:\n - `backend/email.php`\n - `webui/backend/email.php`\n\n## Cron Logging And Notifications\n\n- Added cron run logging through a shared runner.\n- Added recent run history to Cron Manager.\n- Added wrapper-based cron execution:\n - `backend/jobs/run_cron_job.php`\n - `webui/backend/jobs/run_cron_job.php`\n- Added shared runtime service:\n - `backend/jobs/cron_runtime_service.php`\n - `webui/backend/jobs/cron_runtime_service.php`\n- Updated cron export so scheduled jobs call the wrapper rather than raw commands.\n- Added notification plumbing for:\n - Telegram\n - email\n - SMS/Twilio\n- Added settings support for cron notification email.\n\n## Database Backup Module\n\n- Added a real Database Backup backend module.\n- It snapshots the major five production workflow tables:\n - `customers`\n - `visits`\n - `orders`\n - `order_items`\n - `payments`\n- Snapshots go into a separate database, default:\n - `ellas_alterations_backup`\n- Snapshot table names use suffixes like:\n - `customers__snapshot_YYYYMMDD_HHMMSS`\n- Snapshot history is logged in:\n - `backup_database_snapshot_log`\n- Added delete support for backup sets so backup tables do not grow without control.\n- Delete Set drops all backup tables for that snapshot and removes the matching log rows.\n- Updated files:\n - `backend/backup_database.php`\n - `backend/backup_database_service.php`\n - `webui/backend/backup_database.php`\n - `webui/backend/backup_database_service.php`\n\n## Live Table Manager\n\n- Added a guarded live table manager for direct maintenance of the five workflow tables:\n - `customers`\n - `visits`\n - `orders`\n - `order_items`\n - `payments`\n- Supports:\n - search\n - add\n - edit\n - delete\n- Every save/delete writes to the change log.\n- Added backup warning and quick link to Database Backup.\n- New files:\n - `backend/live_table_manager.php`\n - `backend/live_table_manager_service.php`\n - `webui/backend/live_table_manager.php`\n - `webui/backend/live_table_manager_service.php`\n- Linked from Backend Home.\n\n## Change Logging\n\n- Expanded visit-save logging so related entities are logged more clearly:\n - customer\n - visit\n - order\n - alterations/order items\n - payments\n- Added change logging for backup snapshot create/delete.\n- Added change logging for live table manager save/delete.\n\n## Edwards Mileage Split\n\n- Added an `Edwards Type` field for customer totals:\n - mileage\n - maintenance\n - other\n- Added separate Edwards totals in the drill view.\n- Updated schema installer to include `edwards_type`.\n- Updated:\n - `backend/customer_totals.php`\n - `backend/customer_totals_service.php`\n - `webui/backend/customer_totals.php`\n - `webui/backend/customer_totals_service.php`\n - `backend/install_schema.php`\n - `webui/backend/install_schema.php`\n\n## Setmore And Bridge Freshness\n\n- Added Setmore/bridge freshness module:\n - `backend/setmore_import_status.php`\n - `webui/backend/setmore_import_status.php`\n- Shows local import status and bridge table freshness for:\n - `ellas_access_bridge.CustomerTable`\n - `ellas_access_bridge.CustomerVisits1`\n - `ellas_access_bridge.AlterationItems`\n - `ellas_access_bridge.CustomerTotals`\n- Updated Setmore service so it prefers `app_settings` values before older config-file values.\n\n## Umami\n\n- Diagnosed iframe failure:\n - Umami sends restrictive frame/CSP headers.\n - HTTP iframe inside HTTPS backend is blocked as mixed content.\n- Built Ella-specific Umami source from `C:\\code\\umami`.\n- Initially tested a split setup:\n - app on `192.168.7.202`\n - database on `192.168.7.206`\n- Found repeated database connection failures on the split app:\n - `Connection terminated unexpectedly`\n- Moved the Ella Umami app to `192.168.7.206` so app and database run together.\n- Current direct login:\n - `http://192.168.7.206:3006/login`\n- Shut down the unstable `202` mirror app.\n- Updated backend Umami launcher pages:\n - `backend/umami.php`\n - `webui/backend/umami.php`\n- The iframe now targets the planned proxied path:\n - `/backend/umami-embed/login`\n- Nginx still needs the reverse proxy block for true HTTPS embedding.\n\n## WebUI Dashboard\n\n- Added `Current Speed Dial` to `webui.html` above the Finance card.\n- Changed Speed Dial on `webui.html` into a compact spreadsheet-style table so it uses less vertical space.\n- The section loads live data from:\n - `/backend/api/speed_dial.php`\n- Updated:\n - `webui/webui.html`\n\n## Medication Module\n\n- Fixed black/dark button styling in the Medication module by adding explicit theme-safe button styling.\n- Updated:\n - `backend/medication.php`\n - `webui/backend/medication.php`\n\n## Backend Navigation\n\n- Renamed Bills Manager to Pay Bills in visible backend UI.\n- Added links/cards for:\n - Database Backup\n - Live Table Manager\n - End Of Day Review\n - Setmore/Bridge Freshness\n\n## Remaining Follow-Up\n\n- Deploy/sync changed files to the live server.\n- Run the schema installer before using Edwards type live.\n- Test the Backup Delete Set button with a disposable snapshot.\n- Test Live Table Manager carefully after taking a backup snapshot.\n- Add the Nginx `/backend/umami-embed/` reverse proxy block before expecting Umami iframe embedding to work.\n- Verify Twilio credentials end-to-end.\n- Verify Email Hub date/time behavior on real imported emails.\n- Continue improving printable Daily Detail and Daily Appointment Operations layouts if needed.\n","is_text_editable":1,"can_edit_inline":1}
{"workflow_status":"no_show","visit_id":129050,"order_id":103803}
[]
{"workflow_id":"5","source":"visit","source_key":"129050","appointment_date":"2026-04-10","customer_id":"488994","visit_id":"129050","order_id":null,"workflow_status":"no_show","payment_state":null,"payment_method":null,"payment_amount":"0.00","paid_in_advance":"0","report_required":"0","report_attached":"0","report_checked_at":"2026-04-10 15:57:31","provider_notes_text":null,"operator_notes":"{\"Project Details\":\"Wedding dress\",\"When Needed?\":\"ASAP!! Will pay extra\"}","no_show_email_key":"none","created_at":"2026-04-10 15:57:31","updated_at":"2026-04-10 15:57:31"}