Commit Graph

  • 85cdecddea fix(fusion_clock): keep inline nav bars instead of a shared template gsinghpal 2026-05-30 21:56:54 -04:00
  • 2aaa1a57e7 feat(fusion_clock): schedule-driven attendance automation gsinghpal 2026-05-30 21:54:05 -04:00
  • b5d5a9acba fix(fusion_clock): build paystub from payslip.line_ids, not fusion_payroll fields gsinghpal 2026-05-30 21:49:53 -04:00
  • 0d94af6532 fix(fusion_clock): render payslip PDF via report.id, not report_name gsinghpal 2026-05-30 21:45:05 -04:00
  • 95abd2e337 style(fusion_clock): payslip list/detail, 4-item nav, and sign-out styles gsinghpal 2026-05-30 21:38:22 -04:00
  • b1db851e29 feat(fusion_clock): add Payslips tab to employee nav + Sign Out in clock header gsinghpal 2026-05-30 21:37:17 -04:00
  • f18c59fe89 feat(fusion_clock): payslip list + inline paystub templates and shared employee navbar gsinghpal 2026-05-30 21:35:55 -04:00
  • 2fb774e4fa feat(fusion_clock): portal routes for employee payslips (list / inline paystub / pdf) gsinghpal 2026-05-30 21:34:53 -04:00
  • 60c25f8241 feat(fusion_plating_portal): hide customer sidebar from internal staff + redirect them to the clock portal gsinghpal 2026-05-30 21:33:12 -04:00
  • 47a6523e24 docs(employee-portal): implementation plan (5 build tasks + entech smoke) gsinghpal 2026-05-30 21:30:21 -04:00
  • 4a9f31cef5 docs(employee-portal): design spec for staff Clock + Payslips portal gsinghpal 2026-05-30 21:22:27 -04:00
  • dd908c3861 docs(fusion_clock): design spec — schedule-driven attendance automation gsinghpal 2026-05-30 21:17:56 -04:00
  • 5c1f60b3b8 changes gsinghpal 2026-05-30 20:59:59 -04:00
  • 55da42e91f fix(fusion_clock): hide the Odoo backend escape hatch on the NFC kiosk gsinghpal 2026-05-30 20:35:50 -04:00
  • ab3e6fa1e2 feat(fusion_clock): auto-wipe clock-in/out photos after a retention window gsinghpal 2026-05-30 20:19:22 -04:00
  • e2f7fa6d19 feat(fusion_clock): show NFC clock-in/out photos on the attendance form gsinghpal 2026-05-30 20:06:39 -04:00
  • 2c8ad83d43 fix(fusion_clock): NFC clock-out shows gross worked time, not net-of-penalty gsinghpal 2026-05-30 18:59:10 -04:00
  • 3fd074ff6d fix(fusion_clock): kiosk photo now shows on clock + profile (right image fields) gsinghpal 2026-05-30 18:29:46 -04:00
  • e26a7cd9e8 feat(fusion_clock): NFC photo capture — 10s auto-capture, vertical oval, cache-busted avatar gsinghpal 2026-05-30 18:14:19 -04:00
  • 09cea73e50 fix(fusion_clock): SCSS compile error — replace CSS min() with width+max-width gsinghpal 2026-05-30 17:48:29 -04:00
  • 3235d4ceca fix(fusion_clock): un-squeeze the NFC kiosk Manager PIN pad on tablets gsinghpal 2026-05-30 17:43:54 -04:00
  • 5a488ae86e feat(fusion_clock): always-available kiosk photo action + compact manager PIN pad gsinghpal 2026-05-30 17:38:34 -04:00
  • 55898dd1d4 feat(fusion_clock): NFC kiosk — enrollment, manager page, sounds, lock, profile photos gsinghpal 2026-05-30 17:21:33 -04:00
  • 2a16f80d8d feat(fusion_clock): kiosk app + Kiosk Operator role, full-screen PWA, app-integrated permissions gsinghpal 2026-05-30 14:48:29 -04:00
  • cecc699a70 fix(plating): trim default SO order-line columns to the plating set gsinghpal 2026-05-30 00:42:20 -04:00
  • 4949856336 fix(plating): drop Specification + Delivery Date from customer reports gsinghpal 2026-05-30 00:19:40 -04:00
  • 9826e03b4e fix(plating): show additional charge under subtotal on SO + invoice PDFs gsinghpal 2026-05-30 00:04:33 -04:00
  • 69aa6b050b style(plating): subtle plum accents + gradients on the express order form gsinghpal 2026-05-29 23:12:46 -04:00
  • 5675784916 fix(plating): stop charge/tax pickers collapsing in order summary gsinghpal 2026-05-29 23:01:14 -04:00
  • 0d4a871d0c style(plating): add vertical column divider to order summary table gsinghpal 2026-05-29 22:54:52 -04:00
  • aac95ee16b style(plating): express order summary as a bordered table gsinghpal 2026-05-29 22:49:11 -04:00
  • 028814b292 fix(plating): order-level Lot Order toggle replaces per-line lot checkbox gsinghpal 2026-05-29 22:44:07 -04:00
  • 2bd0672b52 fix(configurator): lot pricing robust in totals + SO-create (not reliant on onchange) gsinghpal 2026-05-29 21:48:43 -04:00
  • dc1dacddc2 feat(configurator): express summary — charge type + tax type + lot column gsinghpal 2026-05-29 21:42:42 -04:00
  • 6dde3ec2b1 feat(configurator): SO-create applies one tax to all lines + typed charge line gsinghpal 2026-05-29 21:40:52 -04:00
  • a2ac804238 feat(configurator): per-line lot pricing (derive unit price, keep qty) gsinghpal 2026-05-29 21:38:49 -04:00
  • f8929eb686 feat(configurator): totals = one tax on (subtotal + charge) gsinghpal 2026-05-29 21:37:00 -04:00
  • a07a5f931a feat(configurator): wizard charge_type_id + charge_amount + order-level tax_id gsinghpal 2026-05-29 21:34:47 -04:00
  • c6022c70f9 feat(configurator): fp.additional.charge.type model + config menu + seed gsinghpal 2026-05-29 21:32:49 -04:00
  • 7efaadc1c1 docs(plating): implementation plan for charge type + order-level tax + lot pricing gsinghpal 2026-05-29 21:25:25 -04:00
  • 21300db8e8 docs(plating): spec — configurable charge type + order-level tax + lot pricing gsinghpal 2026-05-29 21:17:55 -04:00
  • 1e9ffccd6b feat(invoicing): managers (+QM+Owner) can create customer invoices gsinghpal 2026-05-29 20:33:40 -04:00
  • b2186ab032 feat(configurator): Description History list on the part Descriptions tab gsinghpal 2026-05-29 19:57:57 -04:00
  • 855b160752 feat(configurator): auto-load latest part description version on order entry gsinghpal 2026-05-29 19:57:16 -04:00
  • da7ec59474 feat(configurator): save a part description version on SO confirm gsinghpal 2026-05-29 19:56:01 -04:00
  • 2ed3dcee58 feat(configurator): per-part description version model + part load/save helpers gsinghpal 2026-05-29 19:55:14 -04:00
  • 9b18f77e06 docs(plating): implementation plan for per-part description history gsinghpal 2026-05-29 19:51:10 -04:00
  • 1ae83e187e docs(plating): spec — per-part description history (auto-version on order entry) gsinghpal 2026-05-29 19:38:20 -04:00
  • 1b0657bd76 fix(configurator): drop the first-time-part "no saved specification" popup gsinghpal 2026-05-29 12:11:34 -04:00
  • f75e082e67 feat(shopfloor): tablet Shipping panel on the Job Workspace gsinghpal 2026-05-29 09:19:51 -04:00
  • f1273798cd feat(shopfloor): tablet shipping endpoints + /load shipping payload gsinghpal 2026-05-29 09:16:36 -04:00
  • bb814a46ff feat(jobs): order-level ship-readiness helpers gsinghpal 2026-05-29 09:14:36 -04:00
  • be7256ce4c feat(logistics): technicians can create/edit delivery, POD, chain-of-custody gsinghpal 2026-05-29 09:13:11 -04:00
  • d37f10f1c3 feat(receiving): technicians can count+close receivings from the tablet gsinghpal 2026-05-29 09:11:39 -04:00
  • b98ee8a6fb docs(plating): implementation plan for technician receiving + shipping tablet gsinghpal 2026-05-29 00:50:23 -04:00
  • df0de97a68 docs(plating): spec — technician receiving + shipping from the workstation tablet gsinghpal 2026-05-29 00:35:40 -04:00
  • 49a0a953e5 fix(plating): single bilingual CoC — remove the separate French print action gsinghpal 2026-05-28 23:33:00 -04:00
  • 64eb34cdff fix(plating): CoC signer follows Settings "Certificate Owner" (no stale freeze) gsinghpal 2026-05-28 23:20:38 -04:00
  • cd0c08f348 fix(plating): parse Fischerscope .doc/.docx/RTF dropped on the cert form gsinghpal 2026-05-28 23:01:02 -04:00
  • 6a5364e053 fix(plating): compact CoC first column + 3-line part data gsinghpal 2026-05-28 22:28:04 -04:00
  • ec78fc148d feat(plating): fully bilingual CoC — all labels EN/FR gsinghpal 2026-05-28 22:11:40 -04:00
  • 9d9be17542 feat(plating): bilingual EN/FR column titles on the CoC gsinghpal 2026-05-28 21:54:45 -04:00
  • 1d1bbfe612 fix(plating): border the CoC signature/statement table gsinghpal 2026-05-28 21:37:28 -04:00
  • b1257b6983 fix(plating): remove border around CoC certification statement gsinghpal 2026-05-28 21:32:53 -04:00
  • 687decca28 fix(plating): clean up CoC layout — drop empty logo column + separating lines gsinghpal 2026-05-28 21:25:32 -04:00
  • 307afbf3c0 feat(plating): CoC spec-optional + SO-style header + thickness for any cert gsinghpal 2026-05-28 21:17:09 -04:00
  • fecd2415f6 changes gsinghpal 2026-05-27 19:23:17 -04:00
  • e36318f7a5 feat(billing): Stripe/Lago-verified go-forward sync + activate daily cron gsinghpal 2026-05-27 18:37:36 -04:00
  • feddca19d6 docs(billing): record verified backfill (Stripe+Lago) + go-forward verification caveat gsinghpal 2026-05-27 17:57:27 -04:00
  • 95378ff1da fix(billing): skip zero-amount invoices (no lines) — drop empty move, don't post nothing gsinghpal 2026-05-27 17:33:36 -04:00
  • c8529b8a99 feat(billing): post + reconcile only PAID invoices, keeping original dates gsinghpal 2026-05-27 17:29:41 -04:00
  • 7a66d7849d fix(billing): name ledger partners by company, not the NexaCloud user's full_name gsinghpal 2026-05-27 17:24:48 -04:00
  • 9ad09c32b0 fix(billing): robust shadow prune (charges before products + archive fallback) gsinghpal 2026-05-27 17:02:43 -04:00
  • 6b63df8c3d fix(billing): ledger live-run fixes — UUID cast, UTF-8, reconciling line gsinghpal 2026-05-27 16:57:00 -04:00
  • 72d3130c88 feat(billing): NexaCloud invoice ledger — ingest invoices to account.move gsinghpal 2026-05-27 16:50:31 -04:00
  • f6518b4d7e docs(billing): TDD plan for NexaCloud invoice ledger (ingest -> account.move, posted+reconciled+HST) gsinghpal 2026-05-27 16:44:21 -04:00
  • bf6ee2bb2c docs(billing): design spec — NexaCloud invoice ledger (Odoo as accounting SoR) gsinghpal 2026-05-27 16:33:46 -04:00
  • 077f898283 chnages gsinghpal 2026-05-27 16:12:22 -04:00
  • 779539d1b5 docs(billing): dual-run stand-up results — shadow import done, reconciliation 2 match / 7 delta (stopped before flip) gsinghpal 2026-05-27 15:57:54 -04:00
  • 34a65f9c4a fix(fusion_helpdesk_central): chatter notice no longer collapsed; adds summary gsinghpal 2026-05-27 15:36:46 -04:00
  • 97cce8c755 docs(billing): record NexaCloud surgical deploy (inert; .env + Cursor WIP preserved) gsinghpal 2026-05-27 15:32:15 -04:00
  • fe98fadf61 fix(fusion_helpdesk_central): engagement now posts public chatter for employee gsinghpal 2026-05-27 15:31:58 -04:00
  • 32c7026558 feat(fusion_helpdesk_central): owner email shows 3 sections — Request / Reply / Summary gsinghpal 2026-05-27 15:26:26 -04:00
  • 76866a7c76 fix(fusion_helpdesk_central): wizard dialog closed on Generate Summary click gsinghpal 2026-05-27 15:12:33 -04:00
  • f19ca02e05 docs(billing): record odoo-nexa deploy (installed, inert); NexaCloud deploy blocked on Cursor WIP gsinghpal 2026-05-27 15:12:16 -04:00
  • 1f5eaf0386 docs(billing): handoff update — sub-project #2 complete (2a/2d shipped, 2b/2c code-complete) gsinghpal 2026-05-27 14:52:28 -04:00
  • a82f09ea50 fix(billing): reconciliation review fixes — per-subscription key, IDOR guard gsinghpal 2026-05-27 14:51:43 -04:00
  • a5144a925c feat(billing): /usage resolves subscription by source app id (enables 2b) gsinghpal 2026-05-27 14:37:30 -04:00
  • 2bdf4ef6a0 feat(billing): 2d dual-run reconciliation (Odoo-computed vs NexaCloud-actual) gsinghpal 2026-05-27 14:34:23 -04:00
  • 3ba9f2821e docs(billing): spec + TDD plan for 2d NexaCloud dual-run reconciliation gsinghpal 2026-05-27 14:31:26 -04:00
  • 0104e87750 fix(fusion_helpdesk_central): Generate Summary crashed wizard with self-id collision gsinghpal 2026-05-27 14:30:53 -04:00
  • 1f818096db fix(fusion_helpdesk_central): findings + summary actually span full width gsinghpal 2026-05-27 14:17:23 -04:00
  • bb873e8a7a feat(billing): importer Test Connection guard + operator runbook gsinghpal 2026-05-27 14:16:32 -04:00
  • d4ef4d55e0 fix(fusion_repairs): wrap Wysiwyg content with markup() so HTML renders, not escapes gsinghpal 2026-05-27 13:55:20 -04:00
  • fc8963da99 fix(fusion_helpdesk_central): findings + summary textareas span full width gsinghpal 2026-05-27 13:53:38 -04:00
  • c520803c84 feat(fusion_helpdesk_central): findings-first wizard, explicit Generate button gsinghpal 2026-05-27 13:49:02 -04:00
  • 7349f3180d docs(billing): note flip-day usage-API subscription-id mapping for 2b gsinghpal 2026-05-27 13:45:23 -04:00
  • 2414b6328e fix(fusion_repairs): designer setup() scope - onMounted/onWillUnmount were stranded outside, broke entire backend bundle gsinghpal 2026-05-27 13:44:58 -04:00
  • 5605012245 fix(billing): importer review fixes — surface failures, validate, dedupe gsinghpal 2026-05-27 13:44:51 -04:00
  • 52849777dd feat(fusion_helpdesk_central): expose OpenAI key + cron settings in UI gsinghpal 2026-05-27 13:36:44 -04:00