Commit 5ef1d3ee authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Meilleure gestion des modèles de contrats : si pas de fichier, alors...

Meilleure gestion des modèles de contrats : si pas de fichier, alors téléchargement du modèle par défaut
parent 0e469f3f
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -6,3 +6,15 @@
 * @var $viewName   string
 * @var $sl         \Zend\ServiceManager\ServiceLocatorInterface
 */

use Application\Entity\Db\ModeleContrat;
use Application\Service\ModeleContratService;

/** @var ModeleContrat[] $mcs */
$mcs = $sl->get(ModeleContratService::class)->getList();

foreach( $mcs as $mc){
    var_dump($mc);

    var_dump($mc->hasFichier());
}
 No newline at end of file
+6 −2
Original line number Diff line number Diff line
@@ -604,7 +604,11 @@ class ContratController extends AbstractController
        $fichier = new Fichier();
        $fichier->setNom(Util::reduce($modeleContrat->getLibelle()) . '.odt');
        $fichier->setTypeMime('application/vnd.oasis.opendocument.text');
        $fichier->setContenu($modeleContrat->getFichier());
        if ($modeleContrat->hasFichier()) {
            $fichier->setContenu(stream_get_contents($modeleContrat->getFichier()));
        } else {
            $fichier->setContenu(file_get_contents($this->getServiceModeleContrat()->getModeleGeneriqueFile()));
        }
        $this->uploader()->download($fichier);
    }
}
 No newline at end of file
+14 −0
Original line number Diff line number Diff line
@@ -193,6 +193,20 @@ class ModeleContrat



    /**
     * @return bool
     */
    public function hasFichier(): bool
    {
        if (is_resource($this->fichier)){
            return !empty(stream_get_contents($this->fichier, 1));
        }else{
            return !empty($this->fichier);
        }
    }



    /**
     * @param string $fichier
     *
+13 −4
Original line number Diff line number Diff line
@@ -68,11 +68,10 @@ class ModeleContratService extends AbstractEntityService
        $document = new Document();
        $document->setTmpDir(getcwd() . '/data/cache/');

        $fichier = $modele->getFichier();
        if ($fichier) {
            $document->loadFromData($fichier);
        if ($modele->hasFichier()) {
            $document->loadFromData($modele->getFichier());
        } else {
            $document->loadFromFile(getcwd() . '/data/modele_contrat.odt');
            $document->loadFromFile($this->getModeleGeneriqueFile(), true);
        }

        if ($contrat->estUnProjet()) {
@@ -86,6 +85,16 @@ class ModeleContratService extends AbstractEntityService



    /**
     * @return string
     */
    public function getModeleGeneriqueFile(): string
    {
        return getcwd() . '/data/modele_contrat.odt';
    }



    private function generateData(ModeleContrat $modele, Contrat $contrat)
    {
        $connection = $this->getEntityManager()->getConnection();