- 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 <noreply@anthropic.com>
33 lines
838 B
PHP
33 lines
838 B
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
class Devis extends Model
|
|
{
|
|
protected $guarded = [];
|
|
|
|
protected $casts = [
|
|
'items' => '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);
|
|
}
|
|
});
|
|
}
|
|
}
|