Commit b3da9f80 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Ajout des volumes horaires

parent d3b098a1
Loading
Loading
Loading
Loading
+2 −2
Changes for documentation/002-BD_EMC2.sql: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -461,7 +461,7 @@ create table formation_instance_journee
    histo_destruction timestamp,
    histo_destructeur_id integer constraint formation_instance_journee_user_id_fk_3 references unicaen_utilisateur_user
);
create unique index formation_instance_journee_id_uindex on formation_instance_journee (id);
create unique index formation_instance_journee_id_uindex on formation_seance (id);

create table formation_instance_formateur
(
@@ -483,7 +483,7 @@ create unique index formation_instance_formateur_id_uindex on formation_formateu
create table formation_instance_presence
(
    id serial not null constraint formation_instance_presence_pk primary key,
    journee_id integer not null constraint formation_instance_presence_formation_instance_journee_id_fk references formation_instance_journee on delete cascade,
    journee_id integer not null constraint formation_instance_presence_formation_instance_journee_id_fk references formation_seance on delete cascade,
    inscrit_id integer not null constraint formation_instance_presence_formation_instance_inscrit_id_fk references formation_instance_inscrit on delete cascade,
    presence_type varchar(256) not null,
    presence_temoin boolean not null,
+2 −2
Changes for module/Formation/src/Formation/Controller/SeanceController.php: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ class SeanceController extends AbstractActionController
        }

        $vm = new ViewModel();
        $vm->setTemplate('application/default/default-form');
        $vm->setTemplate('formation/seance/modifier');
        $vm->setVariables([
            'title' => "Ajout d'une journée de formation",
            'form' => $form,
@@ -64,7 +64,7 @@ class SeanceController extends AbstractActionController
        }

        $vm = new ViewModel();
        $vm->setTemplate('application/default/default-form');
        $vm->setTemplate('formation/seance/modifier');
        $vm->setVariables([
            'title' => "Modification d'une journée de formation",
            'form' => $form,
+17 −3
Changes for module/Formation/src/Formation/Entity/Db/FormationInstance.php: 17 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ namespace Formation\Entity\Db;
use Application\Entity\Db\Agent;
use Application\Entity\Db\Interfaces\HasSourceInterface;
use Application\Entity\Db\Traits\HasSourceTrait;
use DateInterval;
use DateTime;
use Doctrine\Common\Collections\ArrayCollection;
use Formation\Provider\Etat\SessionEtats;
@@ -242,7 +243,7 @@ class FormationInstance implements HistoriqueAwareInterface, HasSourceInterface,
    {
        $minimum = null;
        foreach ($this->journees as $journee) {
            if ($journee->estNonHistorise()) {
            if ($journee->estNonHistorise() AND $journee->getType() === Seance::TYPE_SEANCE) {
                $split = explode("/", $journee->getJour()->format('d/m/Y'));
                $reversed = $split[2] . "/" . $split[1] . "/" . $split[0];
                if ($minimum === null or $reversed < $minimum) $minimum = $reversed;
@@ -263,7 +264,7 @@ class FormationInstance implements HistoriqueAwareInterface, HasSourceInterface,
        $maximum = null;
        /** @var Seance $journee */
        foreach ($this->journees as $journee) {
            if ($journee->estNonHistorise()) {
            if ($journee->estNonHistorise() AND $journee->getType() === Seance::TYPE_SEANCE) {
                $split = explode("/", $journee->getJour()->format('d/m/Y'));
                $reversed = $split[2] . "/" . $split[1] . "/" . $split[0];
                if ($maximum === null or $reversed > $maximum) $maximum = $reversed;
@@ -508,9 +509,15 @@ class FormationInstance implements HistoriqueAwareInterface, HasSourceInterface,
        $text .= "<tbody>";
        foreach ($journees as $journee) {
            $text .= "<tr>";
                if ($journee->getType() === Seance::TYPE_SEANCE) {
                    $text .= "<td>" . $journee->getJour()->format('d/m/Y') . "</td>";
                    $text .= "<td>" . $journee->getDebut() . "</td>";
                    $text .= "<td>" . $journee->getFin() . "</td>";
                }
                if ($journee->getType() === Seance::TYPE_VOLUME) {
                    $text .="<td colspan='2'>Volume horaire</td>";
                    $text .="<td>" .$journee->getVolume(). " heures </td>";
                }
            $text .= "<td>" . $journee->getLieu() . "</td>";
            $text .= "</tr>";
        }
@@ -567,11 +574,18 @@ class FormationInstance implements HistoriqueAwareInterface, HasSourceInterface,
            return $a->estNonHistorise();
        });
        foreach ($journees as $journee) {
            if ($journee->getType() === Seance::TYPE_SEANCE) {
                $debut = DateTime::createFromFormat('d/m/Y H:i', $journee->getJour()->format('d/m/Y') . " " . $journee->getDebut());
                $fin = DateTime::createFromFormat('d/m/Y H:i', $journee->getJour()->format('d/m/Y') . " " . $journee->getFin());
            $duree = $fin->diff($debut);
                $duree = $debut->diff($fin);
                $sum->add($duree);
            }
            if ($journee->getType() === Seance::TYPE_VOLUME) {
                $volume = $journee->getVolume();
                $temp = new DateInterval('PT'.$volume.'H');
                $sum->add($temp);
            }
        }

        $result = $sum->diff(DateTime::createFromFormat('d/m/Y H:i', '01/01/1970 00:00'));
        $heures = ($result->d * 24 + $result->h);
+10 −1
Changes for module/Formation/src/Formation/Entity/Db/FormationInstanceInscrit.php: 10 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -6,9 +6,11 @@ use Application\Entity\Db\Agent;
use Application\Entity\Db\Interfaces\HasSourceInterface;
use Application\Entity\Db\Traits\HasSourceTrait;
use Application\Entity\HasAgentInterface;
use DateInterval;
use DateTime;
use Doctrine\Common\Collections\ArrayCollection;
use Laminas\Permissions\Acl\Resource\ResourceInterface;
use Mpdf\Shaper\Sea;
use UnicaenAutoform\Entity\Db\FormulaireInstance;
use UnicaenEtat\Entity\Db\HasEtatInterface;
use UnicaenEtat\Entity\Db\HasEtatTrait;
@@ -206,11 +208,18 @@ class FormationInstanceInscrit implements HistoriqueAwareInterface, HasAgentInte
        });
        foreach ($presences as $presence) {
            $journee = $presence->getJournee();
            if ($journee->getType() === Seance::TYPE_SEANCE) {
                $debut = DateTime::createFromFormat('d/m/Y H:i', $journee->getJour()->format('d/m/Y') . " " . $journee->getDebut());
                $fin = DateTime::createFromFormat('d/m/Y H:i', $journee->getJour()->format('d/m/Y') . " " . $journee->getFin());
            $duree = $fin->diff($debut);
                $duree = $debut->diff($fin);
                $sum->add($duree);
            }
            if ($journee->getType() === Seance::TYPE_VOLUME) {
                $volume = $journee->getVolume();
                $temp = new DateInterval('PT'.$volume.'H');
                $sum->add($temp);
            }
        }

        $result = $sum->diff(DateTime::createFromFormat('d/m/Y H:i', '01/01/1970 00:00'));
        $heures = ($result->d * 24 + $result->h);
+9 −4
Changes for module/Formation/src/Formation/Entity/Db/Mapping/Formation.Entity.Db.Seance.dcm.xml: 9 added lines, 4 removed lines.
Original line number Diff line number Diff line
@@ -10,10 +10,15 @@
            <join-column name="instance_id" referenced-column-name="id"/>
        </many-to-one>

        <field name="jour"              column="jour"           type="datetime"                nullable="false"/>
        <field name="debut"             column="debut"          type="string"  length="64"     nullable="false"/>
        <field name="fin"               column="fin"            type="string"  length="64"     nullable="false"/>
        <field name="lieu"              column="lieu"           type="string"  length="1024"   nullable="false"/>
        <field name="type"              column="type"           type="string"  length="255"    nullable="false"/>

        <field name="jour"              column="jour"           type="datetime"                nullable="true"/>
        <field name="debut"             column="debut"          type="string"  length="64"     nullable="true"/>
        <field name="fin"               column="fin"            type="string"  length="64"     nullable="true"/>
        <field name="lieu"              column="lieu"           type="string"  length="1024"   nullable="true"/>

        <field name="volume"            column="volume"         type="float"                   nullable="true"/>

        <field name="remarque"          column="remarque"       type="string"  length="4096"   nullable="false"/>

        <!-- SOURCE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
Loading