Loading module/Oscar/config/module.config.php +1 −0 Original line number Diff line number Diff line Loading @@ -576,6 +576,7 @@ return array( 'action' => [ 'demarrer', 'terminer', 'convention', ], 'roles' => ['user'] ], Loading module/Oscar/config/routes.yml +7 −0 Original line number Diff line number Diff line Loading @@ -2390,3 +2390,10 @@ chemins-decisionnels: route: /terminer defaults: action: terminer convention: type: segment may_terminate: true options: route: /convention/:formulaire-id defaults: action: convention module/Oscar/src/Oscar/Controller/CheminDecisionnelAdministrationController.php +11 −1 Original line number Diff line number Diff line Loading @@ -140,6 +140,10 @@ class CheminDecisionnelAdministrationController extends AbstractOscarController if (!$this->getRequest()->isPost()) { $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; $allActivityForm = $this->getOscarConfigurationService()->getActivityFormConfigKeying(); $activityFormToShow = []; foreach (CheminDecisionnelFormulaire::CHAMPS_VALIDES as $v) { Loading @@ -147,7 +151,7 @@ class CheminDecisionnelAdministrationController extends AbstractOscarController $activityFormToShow[$v] = $allActivityForm[$v]; } } return ['chemin_decisionnel_id' => $cheminDecisionnel->getId(), 'formulaire' => $cheminDecisionnelFormulaire, 'activity_forms' => $activityFormToShow]; return ['chemin_decisionnel_id' => $cheminDecisionnel->getId(), 'formulaire' => $cheminDecisionnelFormulaire, 'activity_forms' => $activityFormToShow, 'date_start' => $dateStart, 'date_end' => $dateEnd, 'amount' => $amount]; } if ($this->params()->fromPost('action') == "modifier") { Loading @@ -161,6 +165,12 @@ class CheminDecisionnelAdministrationController extends AbstractOscarController } $this->getCheminDecisionnelFormulaireService()->definirChamps($cheminDecisionnel, $cheminDecisionnelFormulaire, $champs, $this->getCurrentPerson()); return $this->redirect()->toRoute('administration/chemins-decisionnels/update/formulaire', ['id' => $cheminDecisionnel->getId(), 'formulaire-id' => $cheminDecisionnelFormulaire->getId()]); } else if ($this->params()->fromPost('action') == "modifier_texte_convention") { $this->getCheminDecisionnelFormulaireService()->modifierTexteConvention($cheminDecisionnel, $cheminDecisionnelFormulaire, $this->params()->fromPost('texte_convention'), $this->getCurrentPerson()); return $this->redirect()->toRoute('administration/chemins-decisionnels/update/formulaire', ['id' => $cheminDecisionnel->getId(), 'formulaire-id' => $cheminDecisionnelFormulaire->getId()]); } Loading module/Oscar/src/Oscar/Controller/CheminDecisionnelController.php +61 −0 Original line number Diff line number Diff line Loading @@ -133,4 +133,65 @@ class CheminDecisionnelController extends AbstractOscarController implements Use return []; } public function conventionAction() { /** @var \Oscar\Entity\CheminDecisionnelRepository $cheminDecisionnelRepository */ $cheminDecisionnelRepository = $this->getEntityManager()->getRepository(\Oscar\Entity\CheminDecisionnel::class); /** @var \Oscar\Entity\CheminDecisionnel $cheminDecisionnel */ $cheminDecisionnel = $cheminDecisionnelRepository->find($this->params('id')); if (!$cheminDecisionnel) { throw new \Exception("Le chemin décisionnel n'a pas été trouvé."); } /** @var \Oscar\Entity\CheminDecisionnelFormulaireRepository $cheminDecisionnelFormulaireRepository */ $cheminDecisionnelFormulaireRepository = $this->getEntityManager()->getRepository(\Oscar\Entity\CheminDecisionnelFormulaire::class); /** @var \Oscar\Entity\CheminDecisionnelFormulaire $cheminDecisionnelFormulaire */ $cheminDecisionnelFormulaire = $cheminDecisionnelFormulaireRepository->find($this->params('formulaire-id')); if (!$cheminDecisionnelFormulaire) { throw new \Exception("Le formulaire n'a pas été trouvé."); } $texteConvention = $cheminDecisionnelFormulaire->getTexteConvention(); $texteConvention = str_replace(["\r\n", "\r", "\n"], "<br/>", $texteConvention); $dateStart = $this->params()->fromQuery('dateStart') ? $this->params()->fromQuery('dateStart') : ''; $dateEnd = $this->params()->fromQuery('dateEnd') ? $this->params()->fromQuery('dateEnd') : ''; $amount = $this->params()->fromQuery('amount') ? $this->params()->fromQuery('amount') : ''; $allActivityForm = $this->getOscarConfigurationService()->getActivityFormConfigKeying(); foreach (CheminDecisionnelFormulaire::CHAMPS_VALIDES as $v) { if (!array_key_exists($v, $allActivityForm)) { continue; } if ($allActivityForm[$v]["name"] == "dateStart" && $dateStart != '') { $texteConvention = str_replace('$' . $allActivityForm[$v]['label'] . '$', (new \DateTime($dateStart))->format('d/m/Y'), $texteConvention); } else if ($allActivityForm[$v]["name"] == "dateEnd" && $dateEnd != '') { $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); } } $html = "<!doctype html> <html lang=\"fr\"> <head> <meta charset=\"utf-8\"> <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"> </head> <body> "; $html .= $texteConvention; $html .= "</body> </html> "; $output = new \Oscar\Formatter\Output\OutputWkhtmltopdfStrategy(); $output->output( $html, "convention.html" ); } } module/Oscar/src/Oscar/Entity/CheminDecisionnelFormulaire.php +24 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,12 @@ class CheminDecisionnelFormulaire */ private $champs = []; /** * @var string * @ORM\Column(type="text", options={"default": ""}) */ private $texteConvention; /** * @var \DateTime * @ORM\Column(type="datetime", nullable=false) Loading Loading @@ -113,6 +119,24 @@ class CheminDecisionnelFormulaire return $this; } /** * @return string */ public function getTexteConvention() { return $this->texteConvention; } /** * @param string $texteConvention */ public function setTexteConvention($texteConvention) { $this->texteConvention = $texteConvention; return $this; } /** * @return \DateTime */ Loading Loading
module/Oscar/config/module.config.php +1 −0 Original line number Diff line number Diff line Loading @@ -576,6 +576,7 @@ return array( 'action' => [ 'demarrer', 'terminer', 'convention', ], 'roles' => ['user'] ], Loading
module/Oscar/config/routes.yml +7 −0 Original line number Diff line number Diff line Loading @@ -2390,3 +2390,10 @@ chemins-decisionnels: route: /terminer defaults: action: terminer convention: type: segment may_terminate: true options: route: /convention/:formulaire-id defaults: action: convention
module/Oscar/src/Oscar/Controller/CheminDecisionnelAdministrationController.php +11 −1 Original line number Diff line number Diff line Loading @@ -140,6 +140,10 @@ class CheminDecisionnelAdministrationController extends AbstractOscarController if (!$this->getRequest()->isPost()) { $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; $allActivityForm = $this->getOscarConfigurationService()->getActivityFormConfigKeying(); $activityFormToShow = []; foreach (CheminDecisionnelFormulaire::CHAMPS_VALIDES as $v) { Loading @@ -147,7 +151,7 @@ class CheminDecisionnelAdministrationController extends AbstractOscarController $activityFormToShow[$v] = $allActivityForm[$v]; } } return ['chemin_decisionnel_id' => $cheminDecisionnel->getId(), 'formulaire' => $cheminDecisionnelFormulaire, 'activity_forms' => $activityFormToShow]; return ['chemin_decisionnel_id' => $cheminDecisionnel->getId(), 'formulaire' => $cheminDecisionnelFormulaire, 'activity_forms' => $activityFormToShow, 'date_start' => $dateStart, 'date_end' => $dateEnd, 'amount' => $amount]; } if ($this->params()->fromPost('action') == "modifier") { Loading @@ -161,6 +165,12 @@ class CheminDecisionnelAdministrationController extends AbstractOscarController } $this->getCheminDecisionnelFormulaireService()->definirChamps($cheminDecisionnel, $cheminDecisionnelFormulaire, $champs, $this->getCurrentPerson()); return $this->redirect()->toRoute('administration/chemins-decisionnels/update/formulaire', ['id' => $cheminDecisionnel->getId(), 'formulaire-id' => $cheminDecisionnelFormulaire->getId()]); } else if ($this->params()->fromPost('action') == "modifier_texte_convention") { $this->getCheminDecisionnelFormulaireService()->modifierTexteConvention($cheminDecisionnel, $cheminDecisionnelFormulaire, $this->params()->fromPost('texte_convention'), $this->getCurrentPerson()); return $this->redirect()->toRoute('administration/chemins-decisionnels/update/formulaire', ['id' => $cheminDecisionnel->getId(), 'formulaire-id' => $cheminDecisionnelFormulaire->getId()]); } Loading
module/Oscar/src/Oscar/Controller/CheminDecisionnelController.php +61 −0 Original line number Diff line number Diff line Loading @@ -133,4 +133,65 @@ class CheminDecisionnelController extends AbstractOscarController implements Use return []; } public function conventionAction() { /** @var \Oscar\Entity\CheminDecisionnelRepository $cheminDecisionnelRepository */ $cheminDecisionnelRepository = $this->getEntityManager()->getRepository(\Oscar\Entity\CheminDecisionnel::class); /** @var \Oscar\Entity\CheminDecisionnel $cheminDecisionnel */ $cheminDecisionnel = $cheminDecisionnelRepository->find($this->params('id')); if (!$cheminDecisionnel) { throw new \Exception("Le chemin décisionnel n'a pas été trouvé."); } /** @var \Oscar\Entity\CheminDecisionnelFormulaireRepository $cheminDecisionnelFormulaireRepository */ $cheminDecisionnelFormulaireRepository = $this->getEntityManager()->getRepository(\Oscar\Entity\CheminDecisionnelFormulaire::class); /** @var \Oscar\Entity\CheminDecisionnelFormulaire $cheminDecisionnelFormulaire */ $cheminDecisionnelFormulaire = $cheminDecisionnelFormulaireRepository->find($this->params('formulaire-id')); if (!$cheminDecisionnelFormulaire) { throw new \Exception("Le formulaire n'a pas été trouvé."); } $texteConvention = $cheminDecisionnelFormulaire->getTexteConvention(); $texteConvention = str_replace(["\r\n", "\r", "\n"], "<br/>", $texteConvention); $dateStart = $this->params()->fromQuery('dateStart') ? $this->params()->fromQuery('dateStart') : ''; $dateEnd = $this->params()->fromQuery('dateEnd') ? $this->params()->fromQuery('dateEnd') : ''; $amount = $this->params()->fromQuery('amount') ? $this->params()->fromQuery('amount') : ''; $allActivityForm = $this->getOscarConfigurationService()->getActivityFormConfigKeying(); foreach (CheminDecisionnelFormulaire::CHAMPS_VALIDES as $v) { if (!array_key_exists($v, $allActivityForm)) { continue; } if ($allActivityForm[$v]["name"] == "dateStart" && $dateStart != '') { $texteConvention = str_replace('$' . $allActivityForm[$v]['label'] . '$', (new \DateTime($dateStart))->format('d/m/Y'), $texteConvention); } else if ($allActivityForm[$v]["name"] == "dateEnd" && $dateEnd != '') { $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); } } $html = "<!doctype html> <html lang=\"fr\"> <head> <meta charset=\"utf-8\"> <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"> </head> <body> "; $html .= $texteConvention; $html .= "</body> </html> "; $output = new \Oscar\Formatter\Output\OutputWkhtmltopdfStrategy(); $output->output( $html, "convention.html" ); } }
module/Oscar/src/Oscar/Entity/CheminDecisionnelFormulaire.php +24 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,12 @@ class CheminDecisionnelFormulaire */ private $champs = []; /** * @var string * @ORM\Column(type="text", options={"default": ""}) */ private $texteConvention; /** * @var \DateTime * @ORM\Column(type="datetime", nullable=false) Loading Loading @@ -113,6 +119,24 @@ class CheminDecisionnelFormulaire return $this; } /** * @return string */ public function getTexteConvention() { return $this->texteConvention; } /** * @param string $texteConvention */ public function setTexteConvention($texteConvention) { $this->texteConvention = $texteConvention; return $this; } /** * @return \DateTime */ Loading