From 7312c7640b7ed4d190e86d5b0d973d2048af7067 Mon Sep 17 00:00:00 2001 From: mrKamoo Date: Fri, 19 Jun 2026 14:46:16 +0200 Subject: [PATCH] feat: add Devis and BesoinInformatique modules MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Devis: CRUD complet, génération PDF (dompdf), paramètres (DevisSetting) - BesoinInformatique: CRUD complet avec gestion matériels/licences - Migrations pour les 3 nouvelles tables - Navigation mise à jour dans AuthenticatedLayout Co-Authored-By: Claude Sonnet 4.6 --- .../BesoinInformatiqueController.php | 90 +++ app/Http/Controllers/DevisController.php | 177 ++++++ app/Models/BesoinInformatique.php | 17 + app/Models/Devis.php | 32 ++ app/Models/DevisSetting.php | 10 + composer.json | 1 + composer.lock | 524 +++++++++++++++++- ...5838_create_besoin_informatiques_table.php | 50 ++ .../2026_06_17_111413_create_devis_table.php | 39 ++ ..._17_113134_create_devis_settings_table.php | 42 ++ package-lock.json | 2 +- public/logo.png | Bin 0 -> 82300 bytes resources/js/Layouts/AuthenticatedLayout.vue | 24 + .../js/Pages/BesoinsInformatiques/Create.vue | 219 ++++++++ .../js/Pages/BesoinsInformatiques/Edit.vue | 231 ++++++++ .../js/Pages/BesoinsInformatiques/Index.vue | 113 ++++ resources/js/Pages/Devis/Create.vue | 229 ++++++++ resources/js/Pages/Devis/Edit.vue | 233 ++++++++ resources/js/Pages/Devis/Index.vue | 190 +++++++ resources/js/Pages/Devis/Settings.vue | 124 +++++ resources/js/Pages/Devis/Show.vue | 266 +++++++++ resources/js/Pages/Materiels/Index.vue | 4 +- resources/views/pdf/devis.blade.php | 259 +++++++++ routes/web.php | 15 + 24 files changed, 2887 insertions(+), 4 deletions(-) create mode 100644 app/Http/Controllers/BesoinInformatiqueController.php create mode 100644 app/Http/Controllers/DevisController.php create mode 100644 app/Models/BesoinInformatique.php create mode 100644 app/Models/Devis.php create mode 100644 app/Models/DevisSetting.php create mode 100644 database/migrations/2026_06_17_075838_create_besoin_informatiques_table.php create mode 100644 database/migrations/2026_06_17_111413_create_devis_table.php create mode 100644 database/migrations/2026_06_17_113134_create_devis_settings_table.php create mode 100644 public/logo.png create mode 100644 resources/js/Pages/BesoinsInformatiques/Create.vue create mode 100644 resources/js/Pages/BesoinsInformatiques/Edit.vue create mode 100644 resources/js/Pages/BesoinsInformatiques/Index.vue create mode 100644 resources/js/Pages/Devis/Create.vue create mode 100644 resources/js/Pages/Devis/Edit.vue create mode 100644 resources/js/Pages/Devis/Index.vue create mode 100644 resources/js/Pages/Devis/Settings.vue create mode 100644 resources/js/Pages/Devis/Show.vue create mode 100644 resources/views/pdf/devis.blade.php diff --git a/app/Http/Controllers/BesoinInformatiqueController.php b/app/Http/Controllers/BesoinInformatiqueController.php new file mode 100644 index 0000000..4c5aebc --- /dev/null +++ b/app/Http/Controllers/BesoinInformatiqueController.php @@ -0,0 +1,90 @@ +get(); + return Inertia::render('BesoinsInformatiques/Index', [ + 'besoins' => $besoins + ]); + } + + public function create() + { + return Inertia::render('BesoinsInformatiques/Create'); + } + + public function store(Request $request) + { + $validated = $request->validate([ + 'collectivite' => 'nullable|string|max:255', + 'nom_referent' => 'nullable|string|max:255', + 'descriptif_projet' => 'nullable|string', + 'materiels_support' => 'nullable|array', + 'licences_bureautique' => 'nullable|array', + 'equipements_reseaux' => 'nullable|string', + 'cablage_reseau' => 'nullable|string', + 'telephonie_ip' => 'nullable|string', + 'nouveau_batiment' => 'nullable|string', + 'logiciels_metiers' => 'nullable|string', + 'licences_projets' => 'nullable|array', + 'date_validation' => 'nullable|date', + 'validation_dgs' => 'nullable|string|max:255', + ]); + + BesoinInformatique::create($validated); + + return redirect()->route('besoins-informatiques.index')->with('success', 'Besoin informatique créé avec succès.'); + } + + public function show(BesoinInformatique $besoinInformatique) + { + return Inertia::render('BesoinsInformatiques/Show', [ + 'besoin' => $besoinInformatique + ]); + } + + public function edit(BesoinInformatique $besoinInformatique) + { + return Inertia::render('BesoinsInformatiques/Edit', [ + 'besoin' => $besoinInformatique + ]); + } + + public function update(Request $request, BesoinInformatique $besoinInformatique) + { + $validated = $request->validate([ + 'collectivite' => 'nullable|string|max:255', + 'nom_referent' => 'nullable|string|max:255', + 'descriptif_projet' => 'nullable|string', + 'materiels_support' => 'nullable|array', + 'licences_bureautique' => 'nullable|array', + 'equipements_reseaux' => 'nullable|string', + 'cablage_reseau' => 'nullable|string', + 'telephonie_ip' => 'nullable|string', + 'nouveau_batiment' => 'nullable|string', + 'logiciels_metiers' => 'nullable|string', + 'licences_projets' => 'nullable|array', + 'date_validation' => 'nullable|date', + 'validation_dgs' => 'nullable|string|max:255', + ]); + + $besoinInformatique->update($validated); + + return redirect()->route('besoins-informatiques.index')->with('success', 'Besoin informatique mis à jour avec succès.'); + } + + public function destroy(BesoinInformatique $besoinInformatique) + { + $besoinInformatique->delete(); + return redirect()->route('besoins-informatiques.index')->with('success', 'Besoin informatique supprimé avec succès.'); + } +} diff --git a/app/Http/Controllers/DevisController.php b/app/Http/Controllers/DevisController.php new file mode 100644 index 0000000..a93db83 --- /dev/null +++ b/app/Http/Controllers/DevisController.php @@ -0,0 +1,177 @@ +get(); + return Inertia::render('Devis/Index', [ + 'devis' => $devis + ]); + } + + public function create() + { + return Inertia::render('Devis/Create'); + } + + public function store(Request $request) + { + $validated = $request->validate([ + 'title' => 'required|string|max:255', + 'destinataire_type' => 'required|string|in:commune,service_interne', + 'destinataire_nom' => 'required|string|max:255', + 'referent' => 'nullable|string|max:255', + 'date_devis' => 'required|date', + 'status' => 'required|string|in:draft,sent,accepted,rejected', + 'items' => 'nullable|array', + 'tva_rate' => 'nullable|numeric|min:0|max:100', + 'notes' => 'nullable|string', + ]); + + // Calculer les montants + $totalHt = 0; + if (!empty($validated['items'])) { + foreach ($validated['items'] as $item) { + $qty = floatval($item['quantite'] ?? 0); + $price = floatval($item['prix_unitaire'] ?? 0); + $totalHt += $qty * $price; + } + } + + $tvaRate = floatval($validated['tva_rate'] ?? 20); + $totalTtc = $totalHt * (1 + ($tvaRate / 100)); + + $validated['total_ht'] = $totalHt; + $validated['total_ttc'] = $totalTtc; + + Devis::create($validated); + + return redirect()->route('devis.index')->with('success', 'Devis créé avec succès.'); + } + + public function show(Devis $devi) + { + $settings = DevisSetting::first() ?? DevisSetting::create([ + 'entity_name' => "Direction des Systèmes d'Information", + 'entity_sub' => "Communauté d'Agglomération Béziers Méditerranée", + 'email' => "support.informatique@beziers-mediterranee.fr", + 'telephone' => "04.67.01.60.00", + 'adresse' => "Béziers, France", + ]); + + return Inertia::render('Devis/Show', [ + 'devis' => $devi, + 'settings' => $settings + ]); + } + + public function edit(Devis $devi) + { + return Inertia::render('Devis/Edit', [ + 'devis' => $devi + ]); + } + + public function update(Request $request, Devis $devi) + { + $validated = $request->validate([ + 'title' => 'required|string|max:255', + 'destinataire_type' => 'required|string|in:commune,service_interne', + 'destinataire_nom' => 'required|string|max:255', + 'referent' => 'nullable|string|max:255', + 'date_devis' => 'required|date', + 'status' => 'required|string|in:draft,sent,accepted,rejected', + 'items' => 'nullable|array', + 'tva_rate' => 'nullable|numeric|min:0|max:100', + 'notes' => 'nullable|string', + ]); + + // Calculer les montants + $totalHt = 0; + if (!empty($validated['items'])) { + foreach ($validated['items'] as $item) { + $qty = floatval($item['quantite'] ?? 0); + $price = floatval($item['prix_unitaire'] ?? 0); + $totalHt += $qty * $price; + } + } + + $tvaRate = floatval($validated['tva_rate'] ?? 20); + $totalTtc = $totalHt * (1 + ($tvaRate / 100)); + + $validated['total_ht'] = $totalHt; + $validated['total_ttc'] = $totalTtc; + + $devi->update($validated); + + return redirect()->route('devis.index')->with('success', 'Devis mis à jour avec succès.'); + } + + public function destroy(Devis $devi) + { + $devi->delete(); + return redirect()->route('devis.index')->with('success', 'Devis supprimé avec succès.'); + } + + public function settings() + { + $settings = DevisSetting::first() ?? DevisSetting::create([ + 'entity_name' => "Direction des Systèmes d'Information", + 'entity_sub' => "Communauté d'Agglomération Béziers Méditerranée", + 'email' => "support.informatique@beziers-mediterranee.fr", + 'telephone' => "04.67.01.60.00", + 'adresse' => "Béziers, France", + ]); + + return Inertia::render('Devis/Settings', [ + 'settings' => $settings + ]); + } + + public function updateSettings(Request $request) + { + $validated = $request->validate([ + 'entity_name' => 'required|string|max:255', + 'entity_sub' => 'required|string|max:255', + 'email' => 'required|email|max:255', + 'telephone' => 'required|string|max:50', + 'adresse' => 'nullable|string|max:255', + ]); + + $settings = DevisSetting::first(); + if ($settings) { + $settings->update($validated); + } else { + DevisSetting::create($validated); + } + + return redirect()->route('devis.index')->with('success', 'Paramètres du devis mis à jour avec succès.'); + } + + public function downloadPdf(Devis $devi) + { + $settings = DevisSetting::first() ?? DevisSetting::create([ + 'entity_name' => "Direction des Systèmes d'Information", + 'entity_sub' => "Communauté d'Agglomération Béziers Méditerranée", + 'email' => "support.informatique@beziers-mediterranee.fr", + 'telephone' => "04.67.01.60.00", + 'adresse' => "Béziers, France", + ]); + + $pdf = Pdf::loadView('pdf.devis', [ + 'devis' => $devi, + 'settings' => $settings, + ]); + + return $pdf->download("devis-{$devi->number}.pdf"); + } +} diff --git a/app/Models/BesoinInformatique.php b/app/Models/BesoinInformatique.php new file mode 100644 index 0000000..69ec7ac --- /dev/null +++ b/app/Models/BesoinInformatique.php @@ -0,0 +1,17 @@ + 'array', + 'licences_bureautique' => 'array', + 'licences_projets' => 'array', + 'date_validation' => 'date', + ]; +} diff --git a/app/Models/Devis.php b/app/Models/Devis.php new file mode 100644 index 0000000..7cf546f --- /dev/null +++ b/app/Models/Devis.php @@ -0,0 +1,32 @@ + 'array', + 'date_devis' => 'date', + 'total_ht' => 'decimal:2', + 'total_ttc' => 'decimal:2', + 'tva_rate' => 'decimal:2', + ]; + + protected static function booted() + { + static::creating(function ($devis) { + if (empty($devis->number)) { + $year = date('Y'); + $prefix = sprintf('DEV-%s-', $year); + $last = static::where('number', 'like', $prefix . '%') + ->max('number'); + $next = $last ? (intval(substr($last, strlen($prefix))) + 1) : 1; + $devis->number = $prefix . sprintf('%04d', $next); + } + }); + } +} diff --git a/app/Models/DevisSetting.php b/app/Models/DevisSetting.php new file mode 100644 index 0000000..d16f10e --- /dev/null +++ b/app/Models/DevisSetting.php @@ -0,0 +1,10 @@ +=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8 || ^9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Masterminds\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Butcher", + "email": "technosophos@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" + }, + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + } + ], + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", + "keywords": [ + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" + ], + "support": { + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.10.0" + }, + "time": "2025-07-25T09:04:22+00:00" + }, { "name": "monolog/monolog", "version": "3.10.0", @@ -3441,6 +3740,86 @@ }, "time": "2025-12-14T04:43:48+00:00" }, + { + "name": "sabberworm/php-css-parser", + "version": "v9.3.0", + "source": { + "type": "git", + "url": "https://github.com/MyIntervals/PHP-CSS-Parser.git", + "reference": "88dbd0f7f91abbfe4402d0a3071e9ff4d81ed949" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/MyIntervals/PHP-CSS-Parser/zipball/88dbd0f7f91abbfe4402d0a3071e9ff4d81ed949", + "reference": "88dbd0f7f91abbfe4402d0a3071e9ff4d81ed949", + "shasum": "" + }, + "require": { + "ext-iconv": "*", + "php": "^7.2.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0", + "thecodingmachine/safe": "^1.3 || ^2.5 || ^3.4" + }, + "require-dev": { + "php-parallel-lint/php-parallel-lint": "1.4.0", + "phpstan/extension-installer": "1.4.3", + "phpstan/phpstan": "1.12.32 || 2.1.32", + "phpstan/phpstan-phpunit": "1.4.2 || 2.0.8", + "phpstan/phpstan-strict-rules": "1.6.2 || 2.0.7", + "phpunit/phpunit": "8.5.52", + "rawr/phpunit-data-provider": "3.3.1", + "rector/rector": "1.2.10 || 2.2.8", + "rector/type-perfect": "1.0.0 || 2.1.0", + "squizlabs/php_codesniffer": "4.0.1", + "thecodingmachine/phpstan-safe-rule": "1.2.0 || 1.4.1" + }, + "suggest": { + "ext-mbstring": "for parsing UTF-8 CSS" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "9.4.x-dev" + } + }, + "autoload": { + "files": [ + "src/Rule/Rule.php", + "src/RuleSet/RuleContainer.php" + ], + "psr-4": { + "Sabberworm\\CSS\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Raphael Schweikert" + }, + { + "name": "Oliver Klee", + "email": "github@oliverklee.de" + }, + { + "name": "Jake Hotson", + "email": "jake.github@qzdesign.co.uk" + } + ], + "description": "Parser for CSS Files written in PHP", + "homepage": "https://www.sabberworm.com/blog/2010/6/10/php-css-parser", + "keywords": [ + "css", + "parser", + "stylesheet" + ], + "support": { + "issues": "https://github.com/MyIntervals/PHP-CSS-Parser/issues", + "source": "https://github.com/MyIntervals/PHP-CSS-Parser/tree/v9.3.0" + }, + "time": "2026-03-03T17:31:43+00:00" + }, { "name": "symfony/clock", "version": "v7.4.8", @@ -6030,6 +6409,149 @@ ], "time": "2026-03-30T13:44:50+00:00" }, + { + "name": "thecodingmachine/safe", + "version": "v3.4.0", + "source": { + "type": "git", + "url": "https://github.com/thecodingmachine/safe.git", + "reference": "705683a25bacf0d4860c7dea4d7947bfd09eea19" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/705683a25bacf0d4860c7dea4d7947bfd09eea19", + "reference": "705683a25bacf0d4860c7dea4d7947bfd09eea19", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "php-parallel-lint/php-parallel-lint": "^1.4", + "phpstan/phpstan": "^2", + "phpunit/phpunit": "^10", + "squizlabs/php_codesniffer": "^3.2" + }, + "type": "library", + "autoload": { + "files": [ + "lib/special_cases.php", + "generated/apache.php", + "generated/apcu.php", + "generated/array.php", + "generated/bzip2.php", + "generated/calendar.php", + "generated/classobj.php", + "generated/com.php", + "generated/cubrid.php", + "generated/curl.php", + "generated/datetime.php", + "generated/dir.php", + "generated/eio.php", + "generated/errorfunc.php", + "generated/exec.php", + "generated/fileinfo.php", + "generated/filesystem.php", + "generated/filter.php", + "generated/fpm.php", + "generated/ftp.php", + "generated/funchand.php", + "generated/gettext.php", + "generated/gmp.php", + "generated/gnupg.php", + "generated/hash.php", + "generated/ibase.php", + "generated/ibmDb2.php", + "generated/iconv.php", + "generated/image.php", + "generated/imap.php", + "generated/info.php", + "generated/inotify.php", + "generated/json.php", + "generated/ldap.php", + "generated/libxml.php", + "generated/lzf.php", + "generated/mailparse.php", + "generated/mbstring.php", + "generated/misc.php", + "generated/mysql.php", + "generated/mysqli.php", + "generated/network.php", + "generated/oci8.php", + "generated/opcache.php", + "generated/openssl.php", + "generated/outcontrol.php", + "generated/pcntl.php", + "generated/pcre.php", + "generated/pgsql.php", + "generated/posix.php", + "generated/ps.php", + "generated/pspell.php", + "generated/readline.php", + "generated/rnp.php", + "generated/rpminfo.php", + "generated/rrd.php", + "generated/sem.php", + "generated/session.php", + "generated/shmop.php", + "generated/sockets.php", + "generated/sodium.php", + "generated/solr.php", + "generated/spl.php", + "generated/sqlsrv.php", + "generated/ssdeep.php", + "generated/ssh2.php", + "generated/stream.php", + "generated/strings.php", + "generated/swoole.php", + "generated/uodbc.php", + "generated/uopz.php", + "generated/url.php", + "generated/var.php", + "generated/xdiff.php", + "generated/xml.php", + "generated/xmlrpc.php", + "generated/yaml.php", + "generated/yaz.php", + "generated/zip.php", + "generated/zlib.php" + ], + "classmap": [ + "lib/DateTime.php", + "lib/DateTimeImmutable.php", + "lib/Exceptions/", + "generated/Exceptions/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHP core functions that throw exceptions instead of returning FALSE on error", + "support": { + "issues": "https://github.com/thecodingmachine/safe/issues", + "source": "https://github.com/thecodingmachine/safe/tree/v3.4.0" + }, + "funding": [ + { + "url": "https://github.com/OskarStark", + "type": "github" + }, + { + "url": "https://github.com/shish", + "type": "github" + }, + { + "url": "https://github.com/silasjoisten", + "type": "github" + }, + { + "url": "https://github.com/staabm", + "type": "github" + } + ], + "time": "2026-02-04T18:08:13+00:00" + }, { "name": "tightenco/ziggy", "version": "v2.6.2", diff --git a/database/migrations/2026_06_17_075838_create_besoin_informatiques_table.php b/database/migrations/2026_06_17_075838_create_besoin_informatiques_table.php new file mode 100644 index 0000000..972733d --- /dev/null +++ b/database/migrations/2026_06_17_075838_create_besoin_informatiques_table.php @@ -0,0 +1,50 @@ +id(); + // Entête + $table->string('collectivite')->nullable(); + $table->string('nom_referent')->nullable(); + $table->text('descriptif_projet')->nullable(); + + // Service Support et Relations Usagers + $table->json('materiels_support')->nullable(); // Liste PC / Portables / Ecran etc. + $table->json('licences_bureautique')->nullable(); // Liste Licences Bureautique + + // Infrastructures Système et Télécommunications + $table->text('equipements_reseaux')->nullable(); + $table->text('cablage_reseau')->nullable(); + $table->text('telephonie_ip')->nullable(); + $table->text('nouveau_batiment')->nullable(); + + // Etudes Projets et Dématérialisation + $table->text('logiciels_metiers')->nullable(); + $table->json('licences_projets')->nullable(); // Liste Renouvellement ou achat + + // Validation + $table->date('date_validation')->nullable(); + $table->string('validation_dgs')->nullable(); + + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('besoin_informatiques'); + } +}; diff --git a/database/migrations/2026_06_17_111413_create_devis_table.php b/database/migrations/2026_06_17_111413_create_devis_table.php new file mode 100644 index 0000000..4832a72 --- /dev/null +++ b/database/migrations/2026_06_17_111413_create_devis_table.php @@ -0,0 +1,39 @@ +id(); + $table->string('number')->unique(); + $table->string('title'); + $table->string('destinataire_type'); // 'commune', 'service_interne' + $table->string('destinataire_nom'); + $table->string('referent')->nullable(); + $table->date('date_devis'); + $table->string('status')->default('draft'); // 'draft', 'sent', 'accepted', 'rejected' + $table->json('items')->nullable(); // details of items (type, designation, quantity, unit_price, total_price) + $table->decimal('total_ht', 15, 2)->default(0.00); + $table->decimal('tva_rate', 5, 2)->default(20.00); + $table->decimal('total_ttc', 15, 2)->default(0.00); + $table->text('notes')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('devis'); + } +}; diff --git a/database/migrations/2026_06_17_113134_create_devis_settings_table.php b/database/migrations/2026_06_17_113134_create_devis_settings_table.php new file mode 100644 index 0000000..a7e9b65 --- /dev/null +++ b/database/migrations/2026_06_17_113134_create_devis_settings_table.php @@ -0,0 +1,42 @@ +id(); + $table->string('entity_name')->default("Direction des Systèmes d'Information"); + $table->string('entity_sub')->default("Communauté d'Agglomération Béziers Méditerranée"); + $table->string('email')->default("support.informatique@beziers-mediterranee.fr"); + $table->string('telephone')->default("04.67.01.60.00"); + $table->string('adresse')->nullable()->default("Béziers, France"); + $table->timestamps(); + }); + + \DB::table('devis_settings')->insert([ + 'entity_name' => "Direction des Systèmes d'Information", + 'entity_sub' => "Communauté d'Agglomération Béziers Méditerranée", + 'email' => "support.informatique@beziers-mediterranee.fr", + 'telephone' => "04.67.01.60.00", + 'adresse' => "Béziers, France", + 'created_at' => now(), + 'updated_at' => now(), + ]); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('devis_settings'); + } +}; diff --git a/package-lock.json b/package-lock.json index 312f8da..55a7e97 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "SuivisCommande", + "name": "OrderCheck", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/public/logo.png b/public/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2610c2fd3ea9acd5a27a254931c4870bb7ddf1ad GIT binary patch literal 82300 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%0AT;lO7+BxP$eE&$Q)=1%t)x+>6MW-?W{qAk_R z)K;MN9NRt{2+HLz#3;l#eso5Ux+-*4xAjfW8+>-7$$#<#gU&}7mg>0-U|h?+p<5*_ z@t-r0O{MH}l~s@d?7Ba55x;qRMwX`bU$sb=!-z!REfNwfVtAv1E^?Rp>N58!-ncqH zv65QsM#i#&r&*~_x?&q7Dn^p<0l3)MJdu+9G+Miz@APoMd*zEnpVb`T*M$lm1=Cgf9P ztph-V|Eh{<-aVYyBpTwURsaVxOIk+inGEMdFG#2~VoO=weee^=yoElAarizzxBBur z!tpKWmsD2qo7M_qw!M9fPIa;7#kcleIG}6DUus#7O-o^TjdxjqP-gbSghq`EE)5Po zTKm5VIu#axf$lIWjSdf93>i}*f#+etiW;1wvyV!P*xP^Vkt5|;ZZc{MC_XWbQEt9I zn806;W?=C{PZSjHV%t1O=}poZ$M0uc7R5;%`h^}IL97kV0YJGsuq3n0pPKAmzt zAoaasn{DwYZFtuKx0y76vIvxpl4~FjtX^fOBZUP%_l>#O{5E!IOEjSDilHr)S(f)D zpg&uXiHJ801bD$dxw#cl_r!8MG|Vxg^WW4DmXnU+3<@nNo1`LQglWFh%Z>5pIm&xQ z7!kGc_bCENmZR~fE}JXMK1!YJC?XKb>mfASWzIP7kNoqAoZj7W;ijMX0TDmM=(TuFrDH0Ej z*xS*IJf|55{P7X&ceX=qXv3MNEe3@XVPG(|+#^V1B~qWb&o+Q>M-(jYZYncP;JNTpoPIFaD{->P9ujd7fQ^+!}E z!|8bzM%4uPem7^&pBp)^EPfm<*i7|;jN)d)K~9{y^=#k@8n!n*i{N z&j2KE*m+*DsuzjqJ}m4k4vYC7m7L?_voON?!67@>tc>FW&NA{3uV3#>AdlV8aKTe< z9Pab^wf30H2$Hi1`71Y@TQ=e#5ti~C*lJ7ln$F;6X+rE$yZe%6_^ZeW!G|F&kmszK z4+J-_97G;Oa!1E;iB`Qt&X+O+zv%Thl(}b7mvJxYJX4>g+iy$nvke^KK zb-*2ucAK6)`(~uy0|#taK24;~J)OS-DsG|QHZ}4wcl%Yks@)SXMd1)$<@zsky4DKa zXp8Mh{65@#%-OHG2utj9#;iG-=vgN zIq$NGRXaHX$yddgsOvZNb!~*$*C)Qk6^z8K5PS=(4OHO$Tv{gS+wXVD@9s!vsdp>d z|6z0>q))IFa7!V=rKP0@>h+&6G`<137tEN;Vtak+*`kZSGkABqK$iAKewIJ=L)zr; zMOHTI=7k~jinRVid~9q7q%{J(uae=jfbJ7IbzM69X4X?~1nIn*A3=DC0s5hwiRWkG zw3I2|oV7|;_V>7-QR5ek%E4Mpl$7hlp=9i$_3*{h22O@n)X}2alCCev8fkA!0kRO`z;5DW&Q)=0=$-;&nCSam3r|=a(e$(o_lultbt0fmnKWkIt0+615 zb(jgtJdU1_1LIKG8vEl9zMM%^o7v4vT@mst9+JSQl>kU0%_SrA!{Ym643|e|ASTmk z&Nrw&+^u9A^#D-z>Axn=Q+it{Ims%XvU;S*8K%MUSSVruU1W_w zO6I$iD+lo#rzW7OzI_z2F6@O8B`@X{FYR!ALjo<>Io7FYRy2T!h#hcD^~^WHf9!&y)*64aSD1j0B&1KpFJ+^!K> z<>C$0;-!N40Ts9Yu)@^Ni!`cChn)087oE<7OQ%8+CO|f(!wpHQFy~TY)&M>i4IKFO z8a~fEFr=i&HPuq?$6Iu*Ke?FsG{W?P?+^d1S9_N9+AM-{+l0wgj>G6)Twb@F2{Wo> zU>y)Zn!DTDBlmq!&i`--K~U)eEB^N@@~|P6E1lo>@{QLR-@CvB3`N1J_s2yo4>YAGemR$U+>YAGe`R)TvXyO2=dpHi@=G0_*A{HBtFsUOJX<$z#aZx}sd zFuoJI{43Z41J5#b+Gsom{E4tNjjjzJg|A}HuI$RmgDFFe1{L2saXG`c+)5A)yaPz}C>aJ);XC#2ukr zd%LECXcR&-ALYSR1O;FbvwpsEjHb+A=i8qe3$73CLx}|E@BO{q$!RsU_q?CJ%&O1o zuOzQdEd)6P?vsghZ-mfLO`@S1h~g27V8?wD5rG$lsrrr%KZ4Fj4;;*9B*_ZjjlUpc zBY%G*8W_YB5LeVzUfx#TYF))Q{B+^6yQ9}XQ&!Xl`TOYCae0Y#lo@20b9m-C=9#@# zpnY0os5Y476#A`&*#cvL2%^&EPT^xW+(t+`(MsvbBD9t`y@M3j`mTbN(9-BRrGIL_ zdcNu+6@M4?TIUb=fTUeqym1r&?p#jbSlK(@YCt1I)F0%(h;$G!>@n>GgU7>T+*;kX(xjV~| z;`dqo(GaeskzshW$I9B1`Z}lj*w!~Cn)3<_4`L1(lhFPSJ4Fg=XjfVL_-Auf*g;uy%2hX}&qdV=HCPzovp(Tm@`tJ1RXPG*Yt~&?=1JF5&nQ@5 z)C%~Qh9oR0rXL&yY^Zh$eEEznz1>UmzHUvaPeOM*vVYWySG7rWi5|Tq_#xq(rAb>3 ze~qFX?b}pdV46SAG8jh6D#s57^g}E8{~C3f;nvw=o|OKEuM(tc8S&;?=JtQ67>^b> z>%FtI`m z|M25Pi4I=fyt_K$GcuhK|L7dS&~ zE6491vM9*Betur(TJLpD-RbokNNxC{RZ?V06@ADyJV zfvRKZV!oVmVLZkHm-L*iXB_tmSWA6#2%@mWx=Qq{v-Y)Um~`c> zI;-g$hM9k^JlewjqMrHWEUL;KRKv~iOOjZB%$2uQcnEFPynYXiWt>tL4%>0sL3mH5 zJTQlP;Keai()}|C~DN?efP_zY?_eE|HVU{VEp0H{E-&+CVcdk`rz?m?K|Y zAmNttZmxfXyHy`wEtfl?0PIcYNYh>0Y0x?G$)xth*8jStlj3?g$&=}P?CJM9Ifje+ zr#}5^?nb;TrJ(OEYa!JQcnXD<%}`Af>Zh;E&dx*SVEfYVsMk_1A01pjQe49cXL3YR zQzf?6X^jPkK67}~UtKzuxKenttoy@xCtYAPouv7X_jSv!ZmQeZjz-DUl>=5w{g5-&hmZn=D4NE8jBYwCsXgoBGItW{dSx|l=Iuly7- zs^kwOFIm~U=R0r1;XZL+E*y7#(;0_*bEp0MqCHofLf~CzI6Nj%9Pmn{GO7S?6r+_ca6;8r6~2g%{>V^ra4 z!5ym)h3>)YXw^*X?IOWKGQ(zq37tG+4q_8-8h@+3xd)x+(`$Kq{pRHz2vAD$3MFo^ zQ9P!gvO7{w43qEBM3Yn`CAuWuB`9WU?9mHYb>V`^ftS_Us>##ZMhndD5}~3}ztNc7 zY<{6b8N32*>8*1^*0(3~*MB!)c;MeN(zKrvRol$%ppm|{Ea@+4qNZYRL1g-2f|!4; z+c+;?1^c4#kDqNfX&wHtbT_B>$zt);e0=8&(~_nMQHz*^m=c}^-#i7c-DH=i#qjn= zjhH47N!5lzxd|d|8X1KaCo8q1s8pS01~={l=#J1Nt3rj4eK3E1(#%!jh=sWd@RfZy z9}cE^P8l^ub;T*m%RIUa?k4gd@mz(sWjc41uX0n#RpQ5jK?`tCz1&DeMX0SDMq26x z2&JYE$hR-+Kt{!${3?j_yPMLNTqP4s2NrXs^#__2*uBepUm*eoeQsVHORF<* zCi2bak4OUPqd1oje+*;SBn#2G9J(i1yA(Y!uc(T11_~hgu=+2ZD(g5S1c5Z8KDq_K z+faL+R@D}d@-Q8!%wJ;ZCUz*oV9VL8dF2+JY!$eq%hv{9Yyl#DWE$xb;2fz+$nIT6 z7(@JTE~*)}PztaKIH6HbH*u7$_sk-1wJh>83iTCx59#`w^~ZnxwR_@fg?cKfPmNnP zi0MnbzznCn$f23VTZ4?Blya znl=l5a1W@0M4-BqjSNH0NBjX$U zFwb6;IEe|G^OH{DXq>snTQY7nXR`D3eOaj0sdy!-t7<8irJpEj&Fe(qshv?aOl7Gq z`{t-6-PUM;pB|DB(~ANpE^y>qfDg_AScuN~6N7=FY91n*)phSe`eRo}EV zYzcD^L&Ec&A>H2j4=@d?GeYak99o*0Ed|S`8AB#K&obq86S5O{yhADlduT0hWBc<6 zj2+^bavH;g*`-*=np|m@O1%ej>K@Rlo_!(Ap@+Hz9av7r8Ww5`B#t_6La|XwDg-)lrl-`6D@9U2UQ?Z0tWPKX`QWzf zs1+|;SNb#BGXP9aH?{7UIOecu6cwdAXMJW5w^!i43-AD~3f3QxG^3A5+j^;wQr_AoHMFtWs?7GOF6ZTU&SC9Jkz<*arMT#U{5dcPZiSH$0`D;IVz z#}Vz3^cL(0(Hh1q*hu2-tA?)j*mV4Tn_Jjfg?aA4C*HO;-nlp3U?^s7B%M zeNFePMcjLg>blfGOgpTrUS3~``U-`@Q*<3JT1@l{r@V?&d&zY)D9gV$b7s4Pu;9Es zdB5E$$La2ln$wPg3Cl>T2qH2$S^K!kD?-@bjyz?A{@1pW+=%8Jh6QQV&T?bdvu>eH zJ#j~(cyW4xv;=G5b4t^IK)}MQaWwtH@-=41!w#4q>x=3@;=pLG(MC66 zmZ61J0V@RKlH{d4fMsS_M=J$XQV2A_l;^>8FHs$t=c=Hh0mi>u z-%UjAws1B)Z$dm!q4`NNfZ2YJZG@{L)VoC}f>|JK4BMTQAatqTK!5wJS}%228emZd zl>U_y%LE9EhvZ+*U+ZeFjs-vkp?XzFrz^yp(#{q&bzJT^4=mJ;qrk?ml=|99x-JcE zNjr_DLUsAL;4{K_@7qrPXMU;&!}%`{>vA#uQ2m_`^LWCyDADp`d^5>)fpsbMFRL-+ zEyKd>F_vl1U9!cNH;)TVKh@o1*qK_ON`ncR{G1~m4@bjWP}+btH5EW+ zXd=?2&$Q+3_Y>+C5VD7MwSEj=<+(LPB_Gfn@MH>ej=ai6Z6*0EU3dJX%^hI5?Fgxcf?yxI1g zN`YpFNAC@ZnIt41eGEn}Ag3%J;Hi8F<9TE_Nl(9lJ$jQ40l=iEFLZsC-MNsD81}w- zP{(I+fyDA}GK;!U>44CG6CE~n3ZMlyqG-$ z>xd?i^$!P#9Qaw0wDz9~3wpDDbBgA~2J6%@V;CuL4elX@XlcF-&>O9$=D_G7@IWAR z6GaAEP{3YwwLkG?O_QX~{Q1ErAh5?)qTXEpPp?wibnHJn5UK(bv|?Qm}lQKX^QM@7zuc}`SgCfl`K7@^59>Y%1KbWlvzJR zN1=8eHgD15ob@$|*=-tZFwvVPAt=u5{eEoOo7dl>Y&9ft*CL>j(BQPelYitF=S91B z&#fSEY=ejMad)G5Y-)fcupfMF9HpsI0geGRFUTmg23q&u9O6$C&vK%C zq5~;G@Dfmvv{h|kE1hu=3;jZ#%kZEKkyST)HR?c^TGjb)G~E|t_w`ih`;JE09~q~9B0-{4u!lIJ+&VYHh5 zrayFN!!?K!C|>bfL*POnHof0ZXpu&NQ!LeT-)Nn{$ghR=kJ;Dy%8t4IqtYkc0u(zk zIgJ8^rD3QeG)En9qv{uzD?pV3vgodGp8oWGduAHm1UGW^WT3F{pG$lgmVsjfF5Zxf zuxGB3$4e$i#kU~lucR2uVGH&hj4OV^sbj|*_hVtqb`K<5F}<~i9Sjt3V*@rcjQJvj z53eJG0^fz36A~Fwn`(SCSlTSRT+`1#^9>jEQlo3ko!GWnuvrhUDVr4;?8mpw09BH& zkU21Xuw#F;+ceGA-tTxsfX4@ge!hFk;N-RiZgqyl#2ZT&5=A5s5FU6KJPlS+*W?r< z{5Wcmws4Nd!26p#4|~|+=CW%>$W6yFfIs15C20)Du9}(q6k$LjSh%beSeRjh-T3A` zdN4et%SWz%8e6E-zxFx)0k)tY9rAEh_z{_J$#yMFWG?Oc3!F%r33$l=6dy(aTSc#WeDfDCHPGA3Jq6DYM1!KFa>xo zL@oLBvpMI=Vcc}aa(3;10!657cyC@qpSZK#{f=DGqNdz=XbBt(S5^LRbf3v$=boV@ z<}MBkBjo0d`>TyAl1x9!rMH$7D|DP2=^PNNRcG;|CnP^u)MpR2>#|sJPf#hy=|PDuwD&l^`C+Xj$W09pj+vC9S^@Qp|;p!!i3O(zzwj(xpV$Ex31x^sx zUFs|KfZ?T)K0?TPNXPooiMBaB?f`9Jd zhC8@DSo?!ZJfNvZ1M>Y{_^Wz#SM)rpWGAlDxd{E2NXfM-Ac@njd{_k-fa-z!P93xX zm--HZ_^9dK=4la#_((9k`S)InDJ2&MDD3!^YpKTNZ3IAT2o0=Wl%>v_$~hT0p?mrF zJ%rw^S`(DMn@w5-^ZkR(9O*rfm$>Dg`r~Il){0@pf3IiYH+FO8$LHYhw4%NhU+nd1 zY5LJ|h zwf-6TI>D6EA8Spr%>ri#Lq1_f1MHva^p7SfDr9;mxM%ZoLsO^BLQ^=|2`tCA?%VD& zyOVrrWEYiCfv@v+-vBi%zV#eO9&O4O;=3s*{w~GE{j%&WSz_(k#cqB-)|*clm+0n+ znPwuYsWHIXE?m727&jsBXDPk?y@rqOq^Lxj6XAkg+THk*Bto(>GPZ^)y>ixJ0k{En zva#_I;s9$^AI;e9nD645V4fGW%5aAkI9FalxixR@>ZA-d%^w%@up(gbgs1 zQ?A+&b)@X}cN2>ze@RK?vl}bNDvU-^on9)@)&o#)oJ2p?65W}5=F(5}KT@*5W(Ha+ zPk)K*GCG^XE^%{p0y=>j`VKSAn@Q65V!bhGH=vul?7CoDx8iixmjLWhr{R;?%jt%DAsqnC{ znVbm;<*s`!(U+&b*R_0A;3v+IKyY%J!rYvZ`A}q7*yq5EqBmijRj=^9cOWh4X80Wt z2t?x|spVp7>|(}e;$#MVf!JBuKQXa#GO>M9W98-h#L36T!@$bQ$IANUw5Q_#JYZ{Y bYH9BI|35%g=LH0ifIu>miV~G#M&JJjpDq2_ literal 0 HcmV?d00001 diff --git a/resources/js/Layouts/AuthenticatedLayout.vue b/resources/js/Layouts/AuthenticatedLayout.vue index 6c0481a..7b88574 100644 --- a/resources/js/Layouts/AuthenticatedLayout.vue +++ b/resources/js/Layouts/AuthenticatedLayout.vue @@ -51,6 +51,18 @@ const showingNavigationDropdown = ref(false); > Matériels + + Besoins Informatiques + + + Gestion des Devis + @@ -170,6 +182,18 @@ const showingNavigationDropdown = ref(false); > Matériels + + Besoins Informatiques + + + Gestion des Devis + diff --git a/resources/js/Pages/BesoinsInformatiques/Create.vue b/resources/js/Pages/BesoinsInformatiques/Create.vue new file mode 100644 index 0000000..ce13e69 --- /dev/null +++ b/resources/js/Pages/BesoinsInformatiques/Create.vue @@ -0,0 +1,219 @@ + + + diff --git a/resources/js/Pages/BesoinsInformatiques/Edit.vue b/resources/js/Pages/BesoinsInformatiques/Edit.vue new file mode 100644 index 0000000..2eea78d --- /dev/null +++ b/resources/js/Pages/BesoinsInformatiques/Edit.vue @@ -0,0 +1,231 @@ + + + diff --git a/resources/js/Pages/BesoinsInformatiques/Index.vue b/resources/js/Pages/BesoinsInformatiques/Index.vue new file mode 100644 index 0000000..693acd4 --- /dev/null +++ b/resources/js/Pages/BesoinsInformatiques/Index.vue @@ -0,0 +1,113 @@ + + + diff --git a/resources/js/Pages/Devis/Create.vue b/resources/js/Pages/Devis/Create.vue new file mode 100644 index 0000000..a9d5957 --- /dev/null +++ b/resources/js/Pages/Devis/Create.vue @@ -0,0 +1,229 @@ + + + diff --git a/resources/js/Pages/Devis/Edit.vue b/resources/js/Pages/Devis/Edit.vue new file mode 100644 index 0000000..7bb6a98 --- /dev/null +++ b/resources/js/Pages/Devis/Edit.vue @@ -0,0 +1,233 @@ + + + diff --git a/resources/js/Pages/Devis/Index.vue b/resources/js/Pages/Devis/Index.vue new file mode 100644 index 0000000..efd4076 --- /dev/null +++ b/resources/js/Pages/Devis/Index.vue @@ -0,0 +1,190 @@ + + + diff --git a/resources/js/Pages/Devis/Settings.vue b/resources/js/Pages/Devis/Settings.vue new file mode 100644 index 0000000..f2485be --- /dev/null +++ b/resources/js/Pages/Devis/Settings.vue @@ -0,0 +1,124 @@ + + + diff --git a/resources/js/Pages/Devis/Show.vue b/resources/js/Pages/Devis/Show.vue new file mode 100644 index 0000000..a344ec8 --- /dev/null +++ b/resources/js/Pages/Devis/Show.vue @@ -0,0 +1,266 @@ + + + + + diff --git a/resources/js/Pages/Materiels/Index.vue b/resources/js/Pages/Materiels/Index.vue index fab30c6..fcc0e97 100644 --- a/resources/js/Pages/Materiels/Index.vue +++ b/resources/js/Pages/Materiels/Index.vue @@ -317,7 +317,7 @@ const getWarrantyClasses = (hw) => { class="text-slate-500 hover:text-sky-600 dark:text-slate-400 dark:hover:text-sky-400" title="Voir les détails" > - + @@ -327,7 +327,7 @@ const getWarrantyClasses = (hw) => { class="text-slate-500 hover:text-amber-500 dark:text-slate-400 dark:hover:text-amber-400" title="Modifier la fiche" > - + diff --git a/resources/views/pdf/devis.blade.php b/resources/views/pdf/devis.blade.php new file mode 100644 index 0000000..75e2290 --- /dev/null +++ b/resources/views/pdf/devis.blade.php @@ -0,0 +1,259 @@ + + + + + Devis {{ $devis->number }} + + + +
+ + {{-- ─── HEADER ─────────────────────────────────────────── --}} + + + + + + + +
+ + + +
+ @if(file_exists(public_path('logo.png'))) + + @endif + + {{ $settings->entity_name ?? "Direction des Systèmes d'Information" }} +
+ + + + + +
+
+
+ {{ $settings->entity_sub ?? "Communauté d'Agglomération Béziers Méditerranée" }} + @if(!empty($settings->telephone))Téléphone : {{ $settings->telephone }}
@endif + @if(!empty($settings->email))E-mail : {{ $settings->email }}
@endif + @if(!empty($settings->adresse))Adresse : {{ $settings->adresse }}@endif +
+ +
+ + {{-- ─── INFO CARDS ──────────────────────────────────────── --}} + + + + + + +
+
+
DEVIS N° : {{ $devis->number }}
+
+ DATE : {{ \Carbon\Carbon::parse($devis->date_devis)->format('d/m/Y') }}
+ OBJET : {{ $devis->title }} + @if(!empty($devis->notes)) +
CONDITIONS : {{ $devis->notes }} + @endif +
+
+
+
+
DESTINATAIRE :
+
+ {{ $devis->destinataire_nom }} + + {{ $devis->destinataire_type === 'commune' ? 'Commune / Collectivité' : 'Service Interne' }} + + @if(!empty($devis->referent)) +
+ À L'ATTENTION DE : {{ $devis->referent }} +
+ @endif +
+
+
+ +
+ + {{-- ─── TABLEAU LIGNES ──────────────────────────────────── --}} + + + + + + + + + + + @foreach($devis->items as $item) + + + + + + + @endforeach + +
Description :Prix Unitaire :Quantité :Total :
+
{{ $item['designation'] ?? '' }}
+
{{ $item['type'] ?? '' }}
+
{{ number_format($item['prix_unitaire'] ?? 0, 2, ',', "\u{202F}") }} €{{ $item['quantite'] ?? 0 }}{{ number_format(($item['quantite'] ?? 0) * ($item['prix_unitaire'] ?? 0), 2, ',', "\u{202F}") }} €
+ +
+ + {{-- ─── TOTAUX ───────────────────────────────────────────── --}} + + + + + +
+ + + + + + + + + + + + + + + +
TOTAL HT :{{ number_format($devis->total_ht, 2, ',', "\u{202F}") }} €
TVA ({{ $devis->tva_rate }}%) :{{ number_format($devis->total_ttc - $devis->total_ht, 2, ',', "\u{202F}") }} €
TOTAL TTC :{{ number_format($devis->total_ttc, 2, ',', "\u{202F}") }} €
+
+ + {{-- ─── FOOTER : SIGNATURE DESTINATAIRE ────────────────── --}} + + + + + + +
+ + diff --git a/routes/web.php b/routes/web.php index 89371dd..7b6ad07 100644 --- a/routes/web.php +++ b/routes/web.php @@ -8,6 +8,8 @@ use Inertia\Inertia; use App\Http\Controllers\OrderController; use App\Http\Controllers\AttachmentController; use App\Http\Controllers\HardwareController; +use App\Http\Controllers\BesoinInformatiqueController; +use App\Http\Controllers\DevisController; Route::get('/', function () { return redirect()->route('login'); @@ -70,6 +72,19 @@ Route::middleware('auth')->group(function () { // Gestion de matériel d'infrastructure Route::resource('materiels', HardwareController::class); + + // Besoins Informatiques (Mutualisation) + Route::resource('besoins-informatiques', BesoinInformatiqueController::class)->parameters([ + 'besoins-informatiques' => 'besoin_informatique', + ]); + + // Gestion des Devis + Route::get('/devis/settings', [DevisController::class, 'settings'])->name('devis.settings'); + Route::put('/devis/settings', [DevisController::class, 'updateSettings'])->name('devis.settings.update'); + Route::get('/devis/{devi}/pdf', [DevisController::class, 'downloadPdf'])->name('devis.pdf'); + Route::resource('devis', DevisController::class)->parameters([ + 'devis' => 'devi', + ]); }); require __DIR__.'/auth.php';