feat(Product.php): Ajoute relation DevisLine et méthodes associées en français.
 feat(DevisLine.php): Ajoute propriétés et relations pour ligne de devis en français.
 feat(DevisController.php): Intègre génération PDF et ajout de lignes de devis en français.
🎨 style: Améliore la mise en page et l'esthétique de l'interface admin en français.
 feat: Initialise TomSelect et gère les adresses client dans DevisManager en français.
🐛 fix: Corrige l'initialisation de TomSelect et la gestion des lignes répétées en français.
 test: Ajoute génération du bon pour accord et signature en français.
```
This commit is contained in:
Serreau Jovann
2026-01-19 17:56:57 +01:00
parent 44d619d659
commit 5d6c0fdde7
13 changed files with 716 additions and 401 deletions

View File

@@ -9,6 +9,7 @@ use App\Logger\AppLogger;
use App\Repository\AccountRepository;
use App\Repository\CustomerRepository;
use App\Repository\DevisRepository;
use App\Repository\ProductRepository;
use App\Service\Pdf\DevisPdfService;
use Doctrine\ORM\EntityManagerInterface;
use Knp\Bundle\PaginatorBundle\KnpPaginatorBundle;
@@ -27,7 +28,10 @@ class DevisController extends AbstractController
#[Route(path: '/crm/devis', name: 'app_crm_devis', options: ['sitemap' => false], methods: ['GET'])]
public function devis(KernelInterface $kernel,DevisRepository $devisRepository,AppLogger $appLogger,PaginatorInterface $paginator,Request $request): Response
{
$d = $devisRepository->findAll()[0];
$f = new DevisPdfService($kernel,$d);
$f->generate();
$f->Output('I');
$appLogger->record('VIEW', 'Consultation de la liste des devis');
@@ -36,7 +40,7 @@ class DevisController extends AbstractController
]);
}
#[Route(path: '/crm/devis/add', name: 'app_crm_devis_add', options: ['sitemap' => false], methods: ['GET','POST'])]
public function devisAdd(EntityManagerInterface $entityManager,CustomerRepository $customerRepository,DevisRepository $devisRepository, AppLogger $appLogger,Request $request): Response
public function devisAdd(ProductRepository $productRepository,EntityManagerInterface $entityManager,CustomerRepository $customerRepository,DevisRepository $devisRepository, AppLogger $appLogger,Request $request): Response
{
$devisNumber ="DEVIS-".sprintf('%05d',$devisRepository->count()+1);
$appLogger->record('VIEW', 'Consultation de la création d\'un devis');
@@ -54,9 +58,12 @@ class DevisController extends AbstractController
$rLine = new DevisLine();
$rLine->setDevi($devis);
$rLine->setPos($cd);
$rLine->setTitle($line['title']);
$rLine->setContent($line['description']);
$rLine->setPriceHt(floatval($line['price']));
$rLine->setProduct($productRepository->find($line['product_id']));
$rLine->setDay($line['days']);
$rLine->setPriceHt(floatval($line['price_ht']));
$rLine->setPriceHtSup(floatval($line['price_sup_ht']));
$rLine->setStartAt(\DateTimeImmutable::createFromFormat('Y-m-d',$line['date_start']));
$rLine->setEndAt(\DateTimeImmutable::createFromFormat('Y-m-d',$line['date_end']));
$entityManager->persist($rLine);
}
$entityManager->persist($devis);