Commit cdf1b13f authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Eradication de MissionSuivi, trop complexe

edit + add suivi OK
parent dbd6c8a8
Loading
Loading
Loading
Loading
+2 −46
Changes for code/test1.php: 2 added lines, 46 removed lines.
Original line number Diff line number Diff line
@@ -8,50 +8,6 @@
 * @var $viewFile   string
 */

/** @var \Mission\Service\MissionService $smi */
$smi = $container->get(\Mission\Service\MissionService::class);
$d = new \DateTime();

$intervenant = $container->get(\Application\Service\IntervenantService::class)->get(1000000000);

$guid = '31-20230309-0900-1031-0-0';
$guid = '31-20230308-1400-1700-0-0';

$missionSuivi = $smi->suivi($intervenant, $guid);


//$missionSuivi->setDescription('test');
//$missionSuivi->setHeures(10);

$data = \Application\Controller\Plugin\Axios::extract($missionSuivi);

var_dump($data);

foreach( $missionSuivi->getVolumesHoraires() as $vhm ){
    $vhSpec = $vhm->axiosDefinition();
    $vhSpec[] = 'guid';
    $vhSpec[] = 'heureDebut';
    $vhSpec[] = 'horaireFin';
    $vhSpec[] = 'description';
    $vhSpec[] = 'nocturne';
    $vhSpec[] = 'formation';

    $vhData = \Application\Controller\Plugin\Axios::extract($vhm, $vhSpec);
    unset($vhData['histoCreateur']);
    unset($vhData['histoCreation']);
    unset($vhData['canValider']);
    unset($vhData['canDevalider']);
    unset($vhData['canSupprimer']);
    var_dump($vhData);
}


?>
<script>

    let date = new Date();



    console.log(Util.affDate(date, Util.FORMAT_DATE));

</script>
$d->setTime(0, 0, 0, 0);
 No newline at end of file
+5 −79
Changes for code/test2.php: 5 added lines, 79 removed lines.
Original line number Diff line number Diff line
@@ -10,83 +10,9 @@ use Unicaen\OpenDocument\Calc;
 * @var $viewFile   string
 */

class Adresse implements \UnicaenVue\Axios\AxiosExtractorInterface {
    protected int $numero = 1;
    protected string $rue = 'Allée des mésanges';
    protected int $cp = 14000;
    protected string $ville = 'Caen';
$date1 = \DateTime::createFromFormat('Y-m-d H:i:s', '2023-03-30 10:00:00');
$date2 = \DateTime::createFromFormat('Y-m-d H:i:s','2023-03-31 14:30:00');
$interval = $date1->diff($date2);
$minutes = ($date2->getTimestamp() - $date1->getTimestamp()) / 60;

    public function getNumero(): int
    {
        return $this->numero;
    }

    public function getRue(): string
    {
        return $this->rue;
    }

    public function getCp(): int
    {
        return $this->cp;
    }

    public function getVille(): string
    {
        return $this->ville;
    }



    public function axiosDefinition(): array
    {
        return ['cp', 'ville'];
    }

}

class Personne
{
    protected string $nom = 'Dupont';
    protected string $prenom = 'Robert';
    protected int $age = 42;
    protected Adresse $adresse;

    public function __construct()
    {
        $this->adresse = new Adresse();
    }

    public function getNom(): string
    {
        return $this->nom;
    }

    public function getPrenom(): string
    {
        return $this->prenom;
    }

    public function getAge(): int
    {
        return $this->age;
    }

    public function isMajeur(): bool
    {
        return $this->age >= 18;
    }

    public function getAdresse(): Adresse
    {
        return $this->adresse;
    }


}

$personnes = [new Personne(),new Personne()];

$properties = ['nom', 'prenom', 'isMajeur', 'adresse'];
$extracted = \UnicaenVue\Axios\AxiosExtractor::extract($personnes,$properties);
var_dump($extracted);
 No newline at end of file
echo "Il y a $minutes minutes de différences";
+10 −2
Changes for front/Mission/Suivi.vue: 10 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -45,7 +45,11 @@ export default {

        addVolumeHoraire(dateObj, event)
        {
            event.currentTarget.dataset.url = unicaenVue.url('intervenant/:intervenant/missions-suivi-saisie', {intervenant:this.intervenant});
            const urlParams = {
                intervenant:this.intervenant,
                date:dateObj.toISOString().slice(0,10) // date au format Y-m-d
            };
            event.currentTarget.dataset.url = unicaenVue.url('intervenant/:intervenant/missions-suivi-ajout/:date', urlParams);
            modAjax(event.currentTarget, (widget) => {
                this.refresh();
            });
@@ -53,7 +57,11 @@ export default {

        editVolumeHoraire(calEvent, event)
        {
            event.currentTarget.dataset.url = unicaenVue.url('intervenant/:intervenant/missions-suivi-saisie/:guid', {intervenant:this.intervenant,guid:calEvent.guid});
            const urlParams = {
                intervenant:this.intervenant,
                id:calEvent.id
            };
            event.currentTarget.dataset.url = unicaenVue.url('intervenant/:intervenant/missions-suivi-modification/:id', urlParams);
            modAjax(event.currentTarget, (widget) => {
                this.refresh();
            });
+10 −3
Changes for module/Mission/config/module.config.php: 10 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -37,10 +37,17 @@ return [
                    'privileges' => Privileges::MISSION_VISUALISATION,
                    //'assertion'  => Assertion\MissionAssertion::class,
                ],
                'missions-suivi-saisie' => [
                    'route'      => '/:intervenant/missions-suivi-saisie[/:guid]',
                'missions-suivi-ajout' => [
                    'route'      => '/:intervenant/missions-suivi-ajout[/:date]',
                    'controller' => MissionController::class,
                    'action'     => 'suivi-saisie',
                    'action'     => 'suivi-ajout',
                    'privileges' => Privileges::MISSION_EDITION_REALISE,
                    //'assertion'  => Assertion\MissionAssertion::class,
                ],
                'missions-suivi-modification' => [
                    'route'      => '/:intervenant/missions-suivi-modification/:volumeHoraireMission',
                    'controller' => MissionController::class,
                    'action'     => 'suivi-modification',
                    'privileges' => Privileges::MISSION_EDITION_REALISE,
                    //'assertion'  => Assertion\MissionAssertion::class,
                ],
+39 −11
Changes for module/Mission/src/Controller/MissionController.php: 39 added lines, 11 removed lines.
Original line number Diff line number Diff line
@@ -12,10 +12,10 @@ use Laminas\View\Model\JsonModel;
use Laminas\View\Model\ViewModel;
use Mission\Entity\Db\Mission;
use Mission\Entity\Db\VolumeHoraireMission;
use Mission\Entity\MissionSuivi;
use Mission\Form\MissionFormAwareTrait;
use Mission\Form\MissionSuiviFormAwareTrait;
use Mission\Service\MissionServiceAwareTrait;
use Service\Service\TypeVolumeHoraireServiceAwareTrait;
use UnicaenVue\Axios\AxiosExtractor;
use UnicaenVue\View\Model\AxiosModel;
use UnicaenVue\View\Model\VueModel;
@@ -34,6 +34,7 @@ class MissionController extends AbstractController
    use ValidationServiceAwareTrait;
    use WorkflowServiceAwareTrait;
    use MissionSuiviFormAwareTrait;
    use TypeVolumeHoraireServiceAwareTrait;


    /**
@@ -147,18 +148,45 @@ class MissionController extends AbstractController
     *
     * @return ViewModel
     */
    public function suiviSaisieAction(): ViewModel
    public function suiviAjoutAction(): ViewModel
    {
        /** @var Intervenant $intervenant */
        $intervenant = $this->getEvent()->getParam('intervenant');

        $guid = $this->params()->fromRoute('guid', null);
        $date = $this->params()->fromRoute('date');

        if ($guid) {
            $missionSuivi = $this->getServiceMission()->suivi($intervenant, $guid);
        $volumeHoraireMission = new VolumeHoraireMission();
        $volumeHoraireMission->setTypeVolumeHoraire($this->getServiceTypeVolumeHoraire()->getRealise());
        $volumeHoraireMission->setDate($date);

        return $this->suiviSaisieAction($intervenant, $volumeHoraireMission);
    }



    /**
     * Modifie une mission (form)
     *
     * @return ViewModel
     */
    public function suiviModificationAction(): ViewModel
    {
        /** @var Intervenant $intervenant */
        $intervenant = $this->getEvent()->getParam('intervenant');

        $volumeHoraireMissionId = $this->params()->fromRoute('volumeHoraireMission', null);
        $volumeHoraireMission   = $this->getServiceMission()->suivi($intervenant, $volumeHoraireMissionId);

        return $this->suiviSaisieAction($intervenant, $volumeHoraireMission);
    }



    protected function suiviSaisieAction(Intervenant $intervenant, VolumeHoraireMission $volumeHoraireMission)
    {
        if ($volumeHoraireMission->getId()) {
            $title = 'Modification d\'un suivi de mission';
        } else {
            $missionSuivi = new MissionSuivi();
            $title = 'Ajout d\'un suivi de mission';
        }

@@ -166,13 +194,13 @@ class MissionController extends AbstractController
        $form->setIntervenant($intervenant);
        $form->build();

        $form->bindRequestSave($missionSuivi, $this->getRequest(), function ($missionSuivi) {
            $this->getServiceMission()->saveSuivi($missionSuivi);
            $this->updateTableauxBord($missionSuivi->getMission());
        $form->bindRequestSave($volumeHoraireMission, $this->getRequest(), function ($vhm) {
            $this->getServiceMission()->saveVolumeHoraire($vhm);
            $this->updateTableauxBord($vhm->getMission());
            $this->flashMessenger()->addSuccessMessage('Suivi bien enregistré');
        });
        // on passe le data-guid pour pouvoir le récupérer dans la vue et mettre à jour la liste
        $form->setAttribute('data-guid', $missionSuivi->guid());
        // on passe l'id pour pouvoir le récupérer dans la vue et mettre à jour la liste
        $form->setAttribute('data-id', $volumeHoraireMission->getId());

        $vm = new ViewModel();
        $vm->setTemplate('mission/suivi-saisie');
Loading