33 Commits

Author SHA1 Message Date
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 <noreply@anthropic.com>
2026-05-26 18:26:27 +03:00
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 <noreply@anthropic.com>
2026-05-26 18:17:50 +03:00
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 <noreply@anthropic.com>
2026-05-26 18:05:04 +03:00
60d57af630 feat: add departments to projects — two-column layout with inline CRUD 2026-05-26 17:41:15 +03:00
a43805e30c debug: log full trace on sendTestEmail failure 2026-05-26 16:41:06 +03:00
6955d7b422 fix: pass transport directly to Mailer constructor, not wrapped in Symfony Mailer 2026-05-26 16:32:28 +03:00
c6a12163bb fix: log sendTestEmail errors and show error toast for 15s so it can be read 2026-05-26 16:31:45 +03:00
9115bc9630 fix: build Mailer directly in sendTestEmail to avoid Mailer[name] not defined error 2026-05-26 16:29:56 +03:00
303cdf6d6e feat: move send-test sections inline — WhatsApp right panel, Email side card with account selector 2026-05-26 15:05:24 +03:00
db5272dd1d feat: register dynamic mailers in AppServiceProvider, remove single-azure methods from SettingsController 2026-05-26 12:26:02 +03:00
8d336466f4 feat: add MailAccountController with CRUD + test + toggle routes 2026-05-26 12:25:27 +03:00
bbc06738e9 feat: add mail_accounts migration and MailAccount model 2026-05-26 12:24:44 +03:00
1804ed4266 feat: update SettingsController for Azure Mail tab — AJAX whatsapp save, 3 new azure methods 2026-05-26 11:44:05 +03:00
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 <noreply@anthropic.com>
2026-05-25 17:08:58 +03:00
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 <noreply@anthropic.com>
2026-05-25 11:31:12 +03:00
75e4890a08 feat: add Settings controllers for Location, ProjectSetting, UrgencyLevel 2026-05-24 09:56:03 +03:00
f8dc7f6d1c feat: add Settings models for Location, ProjectSetting, UrgencyLevel 2026-05-24 09:48:31 +03:00
add011790c fix: add Notifiable trait to Supplier and Customer, add null guards to notification messages 2026-05-19 13:29:28 +03:00
2d54c670de fix: low stock alert only on out movements, fix date formatting in notifications 2026-05-19 13:25:29 +03:00
fddfb2aaff fix: use salesOrder.customer path in DeliveryNote dispatch notification 2026-05-19 13:22:17 +03:00
a1f6e765e1 feat: send WhatsApp notification on production order completed 2026-05-19 13:19:49 +03:00
5b2a46c753 feat: send WhatsApp low stock alert to store managers 2026-05-19 13:19:45 +03:00
8303df358f feat: send WhatsApp notification on delivery dispatched 2026-05-19 13:19:41 +03:00
a64443110a feat: send WhatsApp notification on sales invoice created 2026-05-19 13:19:36 +03:00
68c605bc69 feat: send WhatsApp notification on sales order confirmed 2026-05-19 13:19:31 +03:00
639282f707 feat: send WhatsApp notification on GRN confirmed 2026-05-19 13:19:27 +03:00
358907bbed feat: send WhatsApp notification on PO confirmed 2026-05-19 13:19:21 +03:00
12751ab39c feat: add whatsapp_number field to supplier and customer forms 2026-05-19 13:09:32 +03:00
e4e04e9419 feat: add SettingsController and settings routes 2026-05-19 13:04:23 +03:00
a5a7b967ba feat: wire dynamic config resolver and exclude webhook from CSRF 2026-05-19 13:04:16 +03:00
92a2eb120f feat: add whatsapp_number field to suppliers, customers, users
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 13:02:06 +03:00
de3f4ceae6 feat: add settings table and Setting model
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 13:02:01 +03:00
11e94889b2 chore: initial commit of existing codebase 2026-05-19 12:40:08 +03:00