Commit 6ba782fd authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Merge branch 'missions' of https://git.unicaen.fr/open-source/OSE into missions

parents 1870684e e451ca7f
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ return [
    'table'   => 'MISSION_TAUX_REMU',
    'columns' => [
        'LIBELLE',
        'HISTO_DESTRUCTION',
    ],
];

+1 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ return [
    'index'   => 'MISSION_TR_LIB_UN',
    'columns' => [
        'LIBELLE',
        'HISTO_DESTRUCTION',
    ],
];

+4 −0
Original line number Diff line number Diff line
@@ -8,6 +8,10 @@
        <field name="code" type="string" column="CODE" length="20" nullable="false"/>
        <field name="libelle" type="string" column="LIBELLE" length="50" nullable="false"/>

        <many-to-one field="missionTauxRemu" target-entity="Mission\Entity\Db\MissionTauxRemu">
            <join-column name="MISSION_TAUX_REMU_ID" referenced-column-name="ID"/>
        </many-to-one>

        <one-to-many field="tauxRemuValeurs" target-entity="Mission\Entity\Db\MissionTauxRemuValeur" mapped-by="missionTauxRemu">
            <order-by>
                <order-by-field name="dateEffet" direction="DESC"/>
+33 −3
Original line number Diff line number Diff line
@@ -19,6 +19,8 @@ class MissionTauxRemu implements HistoriqueAwareInterface

    protected ?string          $libelle         = null;

    protected ?MissionTauxRemu $missionTauxRemu = null;

    protected Collection       $tauxRemuValeurs;


@@ -62,6 +64,22 @@ class MissionTauxRemu implements HistoriqueAwareInterface



    public function getMissionTauxRemu(): ?MissionTauxRemu
    {
        return $this->missionTauxRemu;
    }



    public function setMissionTauxRemu(?MissionTauxRemu $missionTauxRemu): MissionTauxRemu
    {
        $this->missionTauxRemu = $missionTauxRemu;

        return $this;
    }



    /**
     * @return Collection|MissionTauxRemuValeur[]
     */
@@ -133,7 +151,10 @@ class MissionTauxRemu implements HistoriqueAwareInterface
        return $this->getLibelle();
    }

    public function getDerniereValeur(){


    public function getDerniereValeur()
    {
        $valeurRetour     = null;
        $valeurRetourDate = null;
        $valeurs          = $this->tauxRemuValeurs->getValues();
@@ -143,9 +164,14 @@ class MissionTauxRemu implements HistoriqueAwareInterface
                $valeurRetourDate = $valeur->getDateEffet();
            }
        }

        return $valeurRetour;
    }
    public function getDerniereValeurDate(){



    public function getDerniereValeurDate()
    {
        $valeurRetourDate = null;
        $valeurs          = $this->tauxRemuValeurs->getValues();
        foreach ($valeurs as $valeur) {
@@ -153,10 +179,14 @@ class MissionTauxRemu implements HistoriqueAwareInterface
                $valeurRetourDate = $valeur->getDateEffet();
            }
        }

        return $valeurRetourDate;
    }

    public function setValeur(DateTime $date, float $valeur){


    public function setValeur(DateTime $date, float $valeur)
    {
        $tauxRemuValeurProche = $this->getTauxRemuValeur($date);
        if ($tauxRemuValeurProche != null && $tauxRemuValeurProche->getDateEffet() == $date) {
            $tauxRemuValeurProche->setValeur($valeur);
+37 −3
Original line number Diff line number Diff line
@@ -5,22 +5,27 @@ namespace Mission\Form;
use Application\Filter\DateTimeFromString;
use Application\Form\AbstractForm;
use Application\Hydrator\GenericHydrator;
use DateTime;
use Laminas\Form\FormInterface;
use Mission\Entity\Db\MissionTauxRemu;
use Mission\Entity\Db\MissionTauxRemuValeur;
use Mission\Service\MissionTauxServiceAwareTrait;
use UnicaenImport\Service\Traits\SchemaServiceAwareTrait;

class MissionTauxForm extends AbstractForm
{
    use SchemaServiceAwareTrait;
    use MissionTauxServiceAwareTrait;

    public function init()
    {
        $hydratorForm = new missionTauxRemuHydrator($this->getEntityManager());
        $this->setHydrator($hydratorForm);

        $this->spec(MissionTauxRemu::class);
        $this->build();

        $this->setValueOptions('missionTauxRemu', $this->getServiceMissionTaux()->getTauxRemusIndexable());
        $this->get('missionTauxRemu')->setEmptyOption("");
        $this->get('missionTauxRemu')->setLabel('Taux de référence');

        $this->add([
            'name'    => 'date',
            'type'    => 'Date',
@@ -39,6 +44,31 @@ class MissionTauxForm extends AbstractForm

        return $this;
    }

    /**
     * Should return an array specification compatible with
     * {@link Laminas\InputFilter\Factory::createInputFilter()}.
     *
     * @return array
     */
    public function getInputFilterSpecification()
    {
        return [
            'missionTauxRemu'     => [
                'required' => false,
            ],
            'libelle'      => [
                'required' => true,
            ],
            'code'  => [
                'required' => true,
            ],
            'date' => [
                'required' => true,
            ],
        ];
    }

}


@@ -47,6 +77,8 @@ class MissionTauxForm extends AbstractForm

class missionTauxRemuHydrator extends GenericHydrator
{
    use MissionTauxServiceAwareTrait;

    public function extract($object): array
    {

@@ -56,6 +88,7 @@ class missionTauxRemuHydrator extends GenericHydrator
            'libelle'         => $object->getLibelle(),
            'valeur'          => $object->getDerniereValeur(),
            'date'            => $object->getDerniereValeurDate(),
            'missionTauxRemu' => $object->getMissionTauxRemu()?->getId(),
        ];


@@ -69,5 +102,6 @@ class missionTauxRemuHydrator extends GenericHydrator
        $object->setValeur(DateTimeFromString::run($data['date']), $data['valeur']);
        $object->setCode($data['code']);
        $object->setLibelle($data['libelle']);
        $object->setMissionTauxRemu($this->getServiceMissionTaux()->get($data['missionTauxRemu']));
    }
}
Loading