Ajout date de la recherche initiale dans les documents pdfs générés à partir de la liste de recherche
Dans la liste de recherche, il est possible de regénérer les documents PDFs; la date qui apparait sur les documents ne correspond pas à la date de la recherche initiale mais à la date du jour. Ce document devient donc faux juridiquement quand il est opposable aux notaires par exemple.
-- Piste d'amélioration --> Afficher la date de recherche initiale : Dans src/SearchController, fonction getPDF, ajout d'un nouveau paramètre searchDate date passé aux pdf en le valorisant avec la date de recherche
private function getPdf(
SearchLog $searchLog,
string $dest,
PdfService $pdfService,
PersonService $personService
): array {
/** @var User $user */
$user = $this->getUser();
$entityManager = $this->getDoctrine()->getManager();
$pdfTemplate = $this->getPdfTemplate($searchLog->getResponseType());
$pdfContent = '';
$fileNameSanitized = FileHelper::sanitizeFileName(
$searchLog->getId() . '_' . $searchLog->getFirstName() . '_' . $searchLog->getName($this->settingsData)
);
$safeFilename = \transliterator_transliterate(
'Any-Latin; Latin-ASCII; [^A-Za-z0-9_] remove; Lower()',
$fileNameSanitized
);
$fileName = $safeFilename . '-' . uniqid() . '.pdf';
if ($pdfTemplate) {
$pdfParameters = [];
$pdfParameters['reference'] = SearchHelper::getReference($user, $searchLog);
if (in_array(SearchHelper::SEARCH_STATUS_NOTFOUND, $searchLog->getResponseType())) {
$pdfParameters['firstName'] = $searchLog->getFirstName();
$pdfParameters['name'] = strtoupper($searchLog->getName($this->settingsData));
$pdfParameters['birthDate'] = $searchLog->getBirthDate();
$pdfParameters['responseType'] = $searchLog->getResponseType();
// Aout et valorisation du paramètre searchDate
**$pdfParameters['searchDate'] = $searchLog->getSearchDate();**
} else {
$person = $personService->getPerson($searchLog->getPerson());
$pdfParametersBdd = $this->getPersonDbParameters($person);
$pdfParameters = array_merge($pdfParameters, $pdfParametersBdd);
$pdfParameters['gender'] = $person->getGender();
$pdfParameters['firstName'] = $person->getFirstName();
$pdfParameters['name'] = strtoupper($person->getName($this->settingsData));
$pdfParameters['birthDate'] = $person->getBirthDate();
$pdfParameters['responseType'] = $searchLog->getResponseType();
$pdfParameters['helpCodeLabels'] = $this->getHelpCodeLabels($searchLog->getResponseType());
// Aout et valorisation du paramètre searchDate
**$pdfParameters['searchDate'] = $searchLog->getSearchDate();**
$pdfParameters['rows_person'] = $entityManager->getRepository(Person::class) ->findBy(['personNum' => $person->getPersonNum()]);
}
$pdfParameters['birthDate'] = date_format($pdfParameters['birthDate'], 'd/m/Y');
$pdfContent = $this->renderView(
$pdfTemplate,
$pdfParameters
);
}
$pdfService->create();
return [$pdfService->generatePdf($pdfContent, $fileName, $dest), $fileName];
}
- Récupération de ce paramètre dans le twig générateur du pdf pour utiliser ce paramètre (dans base.html.twig par exemple) :
{{ settings.data.pdfDestinationCity }}, le {{ searchDate | localizeddate('full', 'none') }}<br/>
(Désolé pour le formattage...)