first commit
This commit is contained in:
@@ -3,15 +3,20 @@
|
||||
namespace App\Controller\Dashboard;
|
||||
|
||||
use App\Entity\Devis;
|
||||
use App\Entity\DevisLine;
|
||||
use App\Form\NewDevisType;
|
||||
use App\Logger\AppLogger;
|
||||
use App\Repository\AccountRepository;
|
||||
use App\Repository\CustomerRepository;
|
||||
use App\Repository\DevisRepository;
|
||||
use App\Service\Pdf\DevisPdfService;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Knp\Bundle\PaginatorBundle\KnpPaginatorBundle;
|
||||
use Knp\Component\Pager\PaginatorInterface;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpKernel\KernelInterface;
|
||||
use Symfony\Component\Routing\Attribute\Route;
|
||||
|
||||
class DevisController extends AbstractController
|
||||
@@ -20,15 +25,20 @@ class DevisController extends AbstractController
|
||||
* Liste des administrateurs
|
||||
*/
|
||||
#[Route(path: '/crm/devis', name: 'app_crm_devis', options: ['sitemap' => false], methods: ['GET'])]
|
||||
public function devis(DevisRepository $devisRepository,AppLogger $appLogger,PaginatorInterface $paginator,Request $request): Response
|
||||
public function devis(KernelInterface $kernel,DevisRepository $devisRepository,AppLogger $appLogger,PaginatorInterface $paginator,Request $request): Response
|
||||
{
|
||||
$devis = $devisRepository->findAll()[0];
|
||||
$df = new DevisPdfService($kernel,$devis);
|
||||
$df->generate();
|
||||
|
||||
$df->Output('I');
|
||||
$appLogger->record('VIEW', 'Consultation de la liste des devis');
|
||||
return $this->render('dashboard/devis/list.twig',[
|
||||
'quotes' => $paginator->paginate($devisRepository->findBy([],['createA'=>'asc']),$request->get('page', 1),20),
|
||||
]);
|
||||
}
|
||||
#[Route(path: '/crm/devis/add', name: 'app_crm_devis_add', options: ['sitemap' => false], methods: ['GET'])]
|
||||
public function devisAdd(DevisRepository $devisRepository, AppLogger $appLogger): Response
|
||||
#[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
|
||||
{
|
||||
$devisNumber ="DEVIS-".sprintf('%05d',$devisRepository->count()+1);
|
||||
$appLogger->record('VIEW', 'Consultation de la création d\'un devis');
|
||||
@@ -40,6 +50,21 @@ class DevisController extends AbstractController
|
||||
$devis->setUpdateAt(new \DateTimeImmutable());
|
||||
|
||||
$form = $this->createForm(NewDevisType::class,$devis);
|
||||
if($request->isMethod('POST')){
|
||||
$devis->setCustomer($customerRepository->find($_POST['new_devis']['customer']));
|
||||
foreach ($_POST['lines'] as $cd=>$line) {
|
||||
$rLine = new DevisLine();
|
||||
$rLine->setDevi($devis);
|
||||
$rLine->setPos($cd);
|
||||
$rLine->setTitle($line['title']);
|
||||
$rLine->setContent($line['description']);
|
||||
$rLine->setPriceHt(floatval($line['price']));
|
||||
$entityManager->persist($rLine);
|
||||
}
|
||||
$entityManager->persist($devis);
|
||||
$entityManager->flush();
|
||||
|
||||
}
|
||||
return $this->render('dashboard/devis/add.twig',[
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
|
||||
Reference in New Issue
Block a user