Commit 1d63b80a authored by Jean-Baptiste Oellers's avatar Jean-Baptiste Oellers
Browse files

Ajout de la variable partenaire

parent b2926ebe
Loading
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -143,15 +143,22 @@ class CheminDecisionnelAdministrationController extends AbstractOscarController
            $dateStart = $this->params()->fromQuery('dateStart') ? $this->params()->fromQuery('dateStart') : NULL;
            $dateEnd = $this->params()->fromQuery('dateEnd') ? $this->params()->fromQuery('dateEnd') : NULL;
            $amount = $this->params()->fromQuery('amount') ? $this->params()->fromQuery('amount') : NULL;
            $partenaire = $this->params()->fromQuery('partenaire') ? $this->params()->fromQuery('partenaire') : NULL;

            $allActivityForm = $this->getOscarConfigurationService()->getActivityFormConfigKeying();

            $partenaireForm = [];
            $partenaireForm['name'] = 'partenaire';
            $partenaireForm['label'] = 'Partenaire';
            $allActivityForm['partenaire'] = $partenaireForm;

            $activityFormToShow = [];
            foreach (CheminDecisionnelFormulaire::CHAMPS_VALIDES as $v) {
                if (array_key_exists($v, $allActivityForm)) {
                    $activityFormToShow[$v] = $allActivityForm[$v];
                }
            }
            return ['chemin_decisionnel_id' => $cheminDecisionnel->getId(), 'formulaire' => $cheminDecisionnelFormulaire, 'activity_forms' => $activityFormToShow, 'date_start' => $dateStart, 'date_end' => $dateEnd, 'amount' => $amount];
            return ['chemin_decisionnel_id' => $cheminDecisionnel->getId(), 'formulaire' => $cheminDecisionnelFormulaire, 'activity_forms' => $activityFormToShow, 'date_start' => $dateStart, 'date_end' => $dateEnd, 'amount' => $amount, 'partenaire' => $partenaire];
        }

        if ($this->params()->fromPost('action') == "modifier") {
+10 −3
Original line number Diff line number Diff line
@@ -139,7 +139,7 @@ class CheminDecisionnelController extends AbstractOscarController implements Use
                $pdf_path = $this->getOscarConfigurationService()->getDocumentDropLocation() . DIRECTORY_SEPARATOR . $renamed;
        

                $html = $this->getConventionHtml($formulaire->getTexteConvention(), $this->params()->fromPost('dateStart'), $this->params()->fromPost('dateEnd'), $this->params()->fromPost('amount'));
                $html = $this->getConventionHtml($formulaire->getTexteConvention(), $this->params()->fromPost('dateStart'), $this->params()->fromPost('dateEnd'), $this->params()->fromPost('amount'), $this->params()->fromQuery('partenaire'));

                if (!file_put_contents($html_tmp, $html)) {
                    throw new OscarException("Impossible de créer le fichier temporaire '$html_tmp'");
@@ -263,7 +263,7 @@ class CheminDecisionnelController extends AbstractOscarController implements Use
            throw new \Exception("Le formulaire n'a pas été trouvé.");
        }

        $html = $this->getConventionHtml($cheminDecisionnelFormulaire->getTexteConvention(), $this->params()->fromQuery('dateStart'), $this->params()->fromQuery('dateEnd'), $this->params()->fromQuery('amount'));
        $html = $this->getConventionHtml($cheminDecisionnelFormulaire->getTexteConvention(), $this->params()->fromQuery('dateStart'), $this->params()->fromQuery('dateEnd'), $this->params()->fromQuery('amount'), $this->params()->fromQuery('partenaire'));

        $output = new \Oscar\Formatter\Output\OutputWkhtmltopdfStrategy();
        $output->output(
@@ -272,14 +272,19 @@ class CheminDecisionnelController extends AbstractOscarController implements Use
        );
    }

    private function getConventionHtml($texteConvention, $dateStart, $dateEnd, $amount): string {
    private function getConventionHtml($texteConvention, $dateStart, $dateEnd, $amount, $partenaire): string {
        $texteConvention = str_replace(["\r\n", "\r", "\n"], "<br/>", $texteConvention);

        $dateStart = $dateStart ? $dateStart : '';
        $dateEnd = $dateEnd ? $dateEnd : '';
        $amount = $amount ? $amount : '';
        $partenaire = $partenaire ? $partenaire : '';

        $allActivityForm = $this->getOscarConfigurationService()->getActivityFormConfigKeying();
        $partenaireForm = [];
        $partenaireForm['name'] = 'partenaire';
        $partenaireForm['label'] = 'Partenaire';
        $allActivityForm['partenaire'] = $partenaireForm;
        foreach (CheminDecisionnelFormulaire::CHAMPS_VALIDES as $v) {
            if (!array_key_exists($v, $allActivityForm)) {
                continue;
@@ -290,6 +295,8 @@ class CheminDecisionnelController extends AbstractOscarController implements Use
                $texteConvention = str_replace('$' . $allActivityForm[$v]['label'] . '$', (new \DateTime($dateEnd))->format('d/m/Y'), $texteConvention);
            } else if ($allActivityForm[$v]["name"] == "amount" && $amount != '') {
                $texteConvention = str_replace('$' . $allActivityForm[$v]['label'] . '$', number_format((double)$amount, 2, ',', ' '), $texteConvention);
            } else if ($allActivityForm[$v]["name"] == "partenaire" && $partenaire != '') {
                $texteConvention = str_replace('$' . $allActivityForm[$v]['label'] . '$', $partenaire, $texteConvention);
            }
        }

+1 −1
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ class CheminDecisionnelFormulaire
     */
    private $nom;

    const CHAMPS_VALIDES = ['dateStart', 'dateEnd', 'amount'];
    const CHAMPS_VALIDES = ['dateStart', 'dateEnd', 'amount', 'partenaire'];

    /**
     * Liste des champs.
+11 −2
Original line number Diff line number Diff line
@@ -77,6 +77,15 @@
              min="0" max="100000000000" />
          </div>
          <?php endif; ?>
          <?php if (in_array('partenaire', $formulaire->getChamps())): ?>
          <div>
            <label for="previsualisation_<?= $activity_forms['partenaire']['name'] ?>"><?= $activity_forms['partenaire']['label'] ?> :</label>
            <input type="text"
              id="previsualisation_<?= $activity_forms['partenaire']['name'] ?>"
              name="<?= $activity_forms['partenaire']['name'] ?>"
              value="<?= $partenaire ?>" />
          </div>
          <?php endif; ?>

          <input type="submit" value="Actualiser">
        </form>
@@ -108,7 +117,7 @@
    <div style="margin-bottom: 4rem; background-color: white; border-radius: 1rem; padding: 1rem; margin-top: 1rem; padding-left: 3rem; padding-right: 3rem; min-width: 40%;">
      <h2>Prévisualisation du PDF</h2>

      <div><a href="<?= $this->url('chemins-decisionnels/demarrer/convention', ['id' => $chemin_decisionnel_id, 'formulaire-id' => $formulaire->getId()]) . "?dateStart=" . $date_start . "&dateEnd=" . $date_end . "&amount=" . $amount ?>">Télécharger le PDF</a></div>
      <div><a href="<?= $this->url('chemins-decisionnels/demarrer/convention', ['id' => $chemin_decisionnel_id, 'formulaire-id' => $formulaire->getId()]) . "?dateStart=" . $date_start . "&dateEnd=" . $date_end . "&amount=" . $amount . "&partenaire=" . $partenaire ?>">Télécharger le PDF</a></div>
      

      <script src="/js/pdf.js/build/pdf.mjs" type="module"></script>
@@ -116,7 +125,7 @@
      <script type="module">
        // If absolute URL from the remote server is provided, configure the CORS
        // header on that server.
        var url = '<?= $this->url('chemins-decisionnels/demarrer/convention', ['id' => $chemin_decisionnel_id, 'formulaire-id' => $formulaire->getId()]) . "?dateStart=" . $date_start . "&dateEnd=" . $date_end . "&amount=" . $amount ?>';
        var url = '<?= $this->url('chemins-decisionnels/demarrer/convention', ['id' => $chemin_decisionnel_id, 'formulaire-id' => $formulaire->getId()]) . "?dateStart=" . $date_start . "&dateEnd=" . $date_end . "&amount=" . $amount . "&partenaire=" . $partenaire ?>';

        // Loaded via <script> tag, create shortcut to access PDF.js exports.
        var { pdfjsLib } = globalThis;