System

Activity Log

Unified timeline of data changes (saves, imports, deletes) and backend errors. Filter by type, area, severity, or search.

Data changes (total)1,788
Errors (total)1,264,324
Today · changes0
Today · errors3,679
Reset

1,266,112 results · Page 25320 of 25323

live_table_manager · delete
2026-04-11 18:58:57 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=bulk_deleted&count=12
change
item_types #246
Context
[]
Before
{"item_type_id":"246","type_name":"Pants/Top"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:58:57 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=bulk_deleted&count=12
change
item_types #247
Context
[]
Before
{"item_type_id":"247","type_name":"pants and skirts"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:58:57 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=bulk_deleted&count=12
change
item_types #248
Context
[]
Before
{"item_type_id":"248","type_name":"sleeves"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:58:57 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=bulk_deleted&count=12
change
item_types #250
Context
[]
Before
{"item_type_id":"250","type_name":"Jacket\r\nadjust the sleeve width adjust the back \r\nPants \r\nhem"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:58:57 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=bulk_deleted&count=12
change
item_types #251
Context
[]
Before
{"item_type_id":"251","type_name":"Suit/jacket"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:58:57 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=bulk_deleted&count=12
change
item_types #252
Context
[]
Before
{"item_type_id":"252","type_name":"Wedding jacket/pants"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:58:57 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=bulk_deleted&count=12
change
item_types #253
Context
[]
Before
{"item_type_id":"253","type_name":"Pantsuite"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:58:57 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=bulk_deleted&count=12
change
item_types #254
Context
[]
Before
{"item_type_id":"254","type_name":"pants and coat"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:58:57 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=bulk_deleted&count=12
change
item_types #255
Context
[]
Before
{"item_type_id":"255","type_name":"pajama"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:58:57 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=bulk_deleted&count=12
change
item_types #257
Context
[]
Before
{"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"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:58:57 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=bulk_deleted&count=12
change
item_types #258
Context
[]
Before
{"item_type_id":"258","type_name":"Pants/jacket"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:58:57 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=bulk_deleted&count=12
change
item_types #259
Context
[]
Before
{"item_type_id":"259","type_name":"bag"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:58:57 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=bulk_deleted&count=12
change
item_types #263
Context
[]
Before
{"item_type_id":"263","type_name":"Shirt and Slacks"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:58:02 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=deleted
change
item_types #267
Context
[]
Before
{"item_type_id":"267","type_name":"Nigerian Wedding Dress"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:58:02 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=deleted
change
item_types #268
Context
[]
Before
{"item_type_id":"268","type_name":"Mother Of The Brides Dress"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:58:02 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=deleted
change
item_types #269
Context
[]
Before
{"item_type_id":"269","type_name":"jeans/shirt"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:58:02 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=deleted
change
item_types #270
Context
[]
Before
{"item_type_id":"270","type_name":"Jacket and pants"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:58:02 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=deleted
change
item_types #271
Context
[]
Before
{"item_type_id":"271","type_name":"Hem Dress Pants"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:58:02 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=deleted
change
item_types #272
Context
[]
Before
{"item_type_id":"272","type_name":"silk"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:58:02 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=deleted
change
item_types #273
Context
[]
Before
{"item_type_id":"273","type_name":"Italian Leather"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:58:02 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=deleted
change
item_types #274
Context
[]
Before
{"item_type_id":"274","type_name":"ballgown satin inside, decorated tulle outskirt"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:58:02 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=deleted
change
item_types #275
Context
[]
Before
{"item_type_id":"275","type_name":"tulle"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:58:02 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=deleted
change
item_types #276
Context
[]
Before
{"item_type_id":"276","type_name":"Satin"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:58:02 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=deleted
change
item_types #279
Context
[]
Before
{"item_type_id":"279","type_name":"lace tulle 5 to layers"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:58:02 · anonymous · /backend/live_table_manager.php?table=item_types&q=&ok=deleted
change
item_types #282
Context
[]
Before
{"item_type_id":"282","type_name":"tulle and beaded"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:57:29 · anonymous · /backend/live_table_manager.php?table=item_types&ok=deleted
change
item_types #408
Context
[]
Before
{"item_type_id":"408","type_name":"Fix"}
After
{"deleted":true}
live_table_manager.php
2026-04-11 18:55:35 · anonymous · /backend/live_table_manager.php?table=item_types&ok=deleted
error
Cannot delete this record because other rows still reference it via a foreign key. Remove or re-link the dependent rows first, then try deleting again.
Script: /mnt/drive1/customerdb/webui/backend/live_table_manager.php
IP: 192.168.7.132
Context
{"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}"}
live_table_manager.php
2026-04-11 18:55:23 · anonymous · /backend/live_table_manager.php?table=item_types&ok=deleted
error
Cannot delete this record because other rows still reference it via a foreign key. Remove or re-link the dependent rows first, then try deleting again.
Script: /mnt/drive1/customerdb/webui/backend/live_table_manager.php
IP: 192.168.7.132
Context
{"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}"}
live_table_manager.php
2026-04-11 18:55:13 · anonymous · /backend/live_table_manager.php?table=item_types&ok=deleted
error
Cannot delete this record because other rows still reference it via a foreign key. Remove or re-link the dependent rows first, then try deleting again.
Script: /mnt/drive1/customerdb/webui/backend/live_table_manager.php
IP: 192.168.7.132
Context
{"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}"}
live_table_manager.php
2026-04-11 18:54:56 · anonymous · /backend/live_table_manager.php?table=item_types&ok=deleted
error
Cannot delete this record because other rows still reference it via a foreign key. Remove or re-link the dependent rows first, then try deleting again.
Script: /mnt/drive1/customerdb/webui/backend/live_table_manager.php
IP: 192.168.7.132
Context
{"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}"}
live_table_manager.php
2026-04-11 18:47:22 · anonymous · /backend/live_table_manager.php?table=item_types&ok=deleted
error
Cannot delete this item type because it is used by 1 alteration item(s) in order_items. Reassign those items to another type (or clear item_type_id) first, then delete this row.
Script: /mnt/drive1/customerdb/webui/backend/live_table_manager.php
IP: 192.168.7.132
Context
{"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}"}
live_table_manager.php
2026-04-11 18:47:07 · anonymous · /backend/live_table_manager.php?table=item_types&ok=deleted
error
Cannot delete this item type because it is used by 1 alteration item(s) in order_items. Reassign those items to another type (or clear item_type_id) first, then delete this row.
Script: /mnt/drive1/customerdb/webui/backend/live_table_manager.php
IP: 192.168.7.132
Context
{"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}"}
live_table_manager.php
2026-04-11 18:44:59 · anonymous · /backend/live_table_manager.php?table=item_types&ok=deleted
error
Cannot delete or update a parent row: a foreign key constraint fails (`ellas_alterations`.`order_items`, CONSTRAINT `fk_order_items_item_type` FOREIGN KEY (`item_type_id`) REFERENCES `item_types` (`item_type_id`))
Script: /mnt/drive1/customerdb/webui/backend/live_table_manager.php
IP: 192.168.7.132
Context
{"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}"}
live_table_manager · delete
2026-04-11 18:38:43 · anonymous · /backend/live_table_manager.php?table=item_types&ok=deleted
change
item_types #277
Context
[]
Before
{"item_type_id":"277","type_name":"Polyester"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:38:38 · anonymous · /backend/live_table_manager.php?table=item_types&ok=deleted
change
item_types #280
Context
[]
Before
{"item_type_id":"280","type_name":"stretchy with beads and pearls"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:38:33 · anonymous · /backend/live_table_manager.php?table=item_types&ok=deleted&_ts=1775947096631
change
item_types #278
Context
[]
Before
{"item_type_id":"278","type_name":"tulle with flower applique"}
After
{"deleted":true}
live_table_manager.php
2026-04-11 18:38:26 · anonymous · /backend/live_table_manager.php?table=item_types&ok=deleted&_ts=1775947096631
error
Cannot delete or update a parent row: a foreign key constraint fails (`ellas_alterations`.`order_items`, CONSTRAINT `fk_order_items_item_type` FOREIGN KEY (`item_type_id`) REFERENCES `item_types` (`item_type_id`))
Script: /mnt/drive1/customerdb/webui/backend/live_table_manager.php
IP: 192.168.7.132
Context
{"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}"}
live_table_manager · delete
2026-04-11 18:38:16 · anonymous · /backend/live_table_manager.php?table=item_types&ok=deleted
change
item_types #281
Context
[]
Before
{"item_type_id":"281","type_name":"2 dress shirts"}
After
{"deleted":true}
live_table_manager · delete
2026-04-11 18:38:11 · anonymous · /backend/live_table_manager.php?table=item_types
change
item_types #283
Context
[]
Before
{"item_type_id":"283","type_name":"Cottton  Silk"}
After
{"deleted":true}
live_table_manager.php
2026-04-11 18:38:06 · anonymous · /backend/live_table_manager.php?table=item_types
error
Cannot delete or update a parent row: a foreign key constraint fails (`ellas_alterations`.`order_items`, CONSTRAINT `fk_order_items_item_type` FOREIGN KEY (`item_type_id`) REFERENCES `item_types` (`item_type_id`))
Script: /mnt/drive1/customerdb/webui/backend/live_table_manager.php
IP: 192.168.7.132
Context
{"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}"}
live_table_manager.php
2026-04-11 18:38:01 · anonymous · /backend/live_table_manager.php?table=item_types
error
Cannot delete or update a parent row: a foreign key constraint fails (`ellas_alterations`.`order_items`, CONSTRAINT `fk_order_items_item_type` FOREIGN KEY (`item_type_id`) REFERENCES `item_types` (`item_type_id`))
Script: /mnt/drive1/customerdb/webui/backend/live_table_manager.php
IP: 192.168.7.132
Context
{"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_totals · create
2026-04-11 15:30:38 · anonymous · /backend/customer_totals.php?q=Edwards
change
customer_totals #8202
Context
[]
Before
[]
After
{"customer_date":"2026-04-09T19:29","customer_name":"Edwards","dopu_can":"Edwards","edwards":150,"edwards_type":"mileage","update_flag":"43 Miles"}
customer_totals · create
2026-04-11 15:18:35 · anonymous · /backend/customer_totals.php
change
customer_totals #8201
Context
[]
Before
[]
After
{"customer_date":"2026-04-09T19:17","customer_name":"Edwards","dopu_can":"Edwards","edwards":150,"edwards_type":"mileage","update_flag":"Milage 43"}
backup_database · create
2026-04-11 11:20:18 · anonymous · /backend/backup_database.php
change
backup_snapshot #snapshot_20260411_151957_before_final_input
Context
[]
Before
[]
After
{"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}]}
live_table_manager · update
2026-04-11 09:00:37 · anonymous · /backend/live_table_manager.php?table=visits&edit=129057&q=
change
visits #129057
Context
[]
Before
{"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}
After
{"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}
report_service.php
2026-04-11 06:47:24 · cli · /dev/stdin
error
app_reports_daily(): Argument #1 ($conn) must be of type mysqli, string given, called in /proc/857993/fd/pipe:[23583145] on line 6
Script: /dev/stdin
IP: cli
Context
{"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}"}
pipe:[23581519]
2026-04-11 06:47:24 · cli · /dev/stdin
error
Unknown column 'customer_report_id' in 'SELECT'
Script: /dev/stdin
IP: cli
Context
{"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}"}
pipe:[23581937]
2026-04-11 06:46:50 · cli · /dev/stdin
error
Unknown column 'id' in 'SELECT'
Script: /dev/stdin
IP: cli
Context
{"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}"}
documents · upload
2026-04-10 16:08:55 · anonymous · /backend/documents.php
change
backend_document #13
Context
{"file_name":"SESSION_LOG_2026-04-10.md","mime_type":"application/octet-stream"}
Before
[]
After
{"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}
schedule · create
2026-04-10 15:57:31 · admin@ellasalterations.com · /api/appointment_workflow.php
change
appointment_workflow #visit:129050
Context
{"workflow_status":"no_show","visit_id":129050,"order_id":103803}
Before
[]
After
{"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"}
← Prev 1 … 25318 25319 25320 25321 25322 25323 Next →