ghassan
716f0afcac
fix: VAT row same color as other footer rows
2026-06-01 12:24:18 +03:00
ghassan
6061e8ca4f
feat: supplier item name editing, N/A checkbox, and adjusted indicator on compare view
2026-06-01 12:19:52 +03:00
ghassan
7b399d5167
feat: add VAT checkbox column and live breakdown to RFQ portal
2026-06-01 12:11:54 +03:00
ghassan
a9db089a90
feat: add VAT Settings link to sidebar
2026-06-01 12:10:27 +03:00
ghassan
04ced4d2da
feat: add VAT settings page and controller
2026-06-01 12:10:01 +03:00
ghassan and Claude Sonnet 4.6
dca9cd5d99
feat: RFQ portal, notifications, and project settings updates
...
Co-Authored-By: Claude Sonnet 4.6 <[email protected] >
2026-06-01 11:52:21 +03:00
ghassan and Claude Sonnet 4.6
72e6c3170e
fix: use label[for] to trigger file input in import modal
...
Browsers treat label clicks as direct user gestures, ensuring the
OS file picker always opens. Removes unreliable div.onclick -> input.click()
pattern. Also fixes DataTransfer.files assignment (read-only in some browsers).
Co-Authored-By: Claude Sonnet 4.6 <[email protected] >
2026-05-26 18:51:26 +03:00
ghassan and Claude Sonnet 4.6
f2c0f22156
feat: add Excel importer and template download for projects/departments
...
- ProjectImportService: reads Projects + Departments sheets, creates
companies automatically if missing, skips duplicates (case-insensitive)
- Controller: import() POST (JSON response) + downloadTemplate() GET
- Template: 2-tab .xlsx (Projects | Departments) with headers, sample rows, note
- View: Import Excel button (AJAX upload with drag-and-drop modal) +
Template download button in page header; page reloads after successful import
Co-Authored-By: Claude Sonnet 4.6 <[email protected] >
2026-05-26 18:42:25 +03:00
ghassan and Claude Sonnet 4.6
12e07480a0
feat: move departments from projects to companies
...
Departments now belong to a Company, not a Project.
- New migration: recreates settings_departments with company_id (migrates existing data)
- Department model: company_id FK, company() relation
- Company model: departments() hasMany relation
- ProjectSetting model: removes departments() relation
- Controller: dept methods now take Company instead of ProjectSetting
- Routes: department CRUD moves to companies/{company}/departments
- View: departments section appears on each company card (purple theme);
project body is now locations-only (single column)
Co-Authored-By: Claude Sonnet 4.6 <[email protected] >
2026-05-26 18:26:27 +03:00
ghassan and Claude Sonnet 4.6
9a268dc79b
feat: add company reassignment to project edit strip
...
Each project's Edit strip now has a Company dropdown.
Changing company and saving moves the project card to the
correct company section live without a page reload.
Co-Authored-By: Claude Sonnet 4.6 <[email protected] >
2026-05-26 18:17:50 +03:00
ghassan and Claude Sonnet 4.6
a425e12349
feat: add companies as top-level container for projects with departments
...
- Company → Project → (Locations + Departments) hierarchy
- Company CRUD (add, edit, delete) with AJAX
- Projects are created under a company via inline strip
- Two-column project body: Locations | Departments
- Stats show companies, projects, locations, departments, active projects
- Dynamic stat counters update on add/delete without page reload
Co-Authored-By: Claude Sonnet 4.6 <[email protected] >
2026-05-26 18:05:04 +03:00
ghassan
60d57af630
feat: add departments to projects — two-column layout with inline CRUD
2026-05-26 17:41:15 +03:00
ghassan
58b3e9e0de
feat: remove accordion from projects — all projects always expanded
2026-05-26 17:33:39 +03:00
ghassan
c6a12163bb
fix: log sendTestEmail errors and show error toast for 15s so it can be read
2026-05-26 16:31:45 +03:00
ghassan
f471102b00
feat: full-width cards with gradient headers and decoration for WhatsApp and Email tabs
2026-05-26 15:26:27 +03:00
ghassan
573f156a82
fix: consolidate pill tab styles into :style binding — Alpine was stripping static style attr
2026-05-26 15:19:47 +03:00
ghassan
303cdf6d6e
feat: move send-test sections inline — WhatsApp right panel, Email side card with account selector
2026-05-26 15:05:24 +03:00
ghassan
b3650489af
feat: rewrite Email tab as multi-account list with Add/Edit/Delete modal
2026-05-26 12:29:03 +03:00
ghassan
bf21e89497
feat: rewrite integrations view with WhatsApp/Email pill tabs and AJAX saves
2026-05-26 11:46:19 +03:00
ghassan and Claude Sonnet 4.6
d8cab94bcb
feat: supplier modal wizard, pipeline delete, sidebar cleanup
...
- Replace two-tab supplier selector with two-step wizard (method select → suppliers → summary)
- Add per-item channel picker (Email / WhatsApp / Both) in By Item mode
- Add confirmation summary step before submitting By Item supplier assignments
- Add type-to-confirm delete on pipeline list rows
- Redirect purchase.requests.index to pipeline (same data, single entry point)
- Remove Purchase Requests from sidebar nav
- Add edit-request-modal, supplier-invite-list components
- Add address coordinates migration for settings_locations
Co-Authored-By: Claude Sonnet 4.6 <[email protected] >
2026-05-25 17:08:58 +03:00
ghassan and Claude Sonnet 4.6
7f8ae898d5
feat: add Projects settings with sub-locations and cascading dropdowns in purchase request modal
...
- Migration: add project_id FK to settings_locations
- Models: ProjectSetting hasMany Location, Location belongsTo ProjectSetting
- Settings: /settings/projects page — manage projects and their sub-locations (two-panel UI)
- Sidebar: Projects nav item under Settings group
- Routes: 7 new settings/projects routes (Admin only)
- Modal: project_name and location fields now cascading dropdowns populated from settings_projects/settings_locations
Co-Authored-By: Claude Sonnet 4.6 <[email protected] >
2026-05-25 11:31:12 +03:00
ghassan
d1f40c4124
fix: toggle double-fire and CSRF-protect test-whatsapp endpoint
2026-05-19 13:16:07 +03:00
ghassan
12751ab39c
feat: add whatsapp_number field to supplier and customer forms
2026-05-19 13:09:32 +03:00
ghassan
34e095526f
feat: add Settings sidebar link for Admin role
2026-05-19 13:09:28 +03:00
ghassan
41435e2bcb
feat: add WhatsApp integration settings view
2026-05-19 13:09:23 +03:00
ghassan
11e94889b2
chore: initial commit of existing codebase
2026-05-19 12:40:08 +03:00