Commit 0d0fbee4 authored by Anthony Gautreau's avatar Anthony Gautreau
Browse files

APOGEE : crédits ECTS des cours avec decimal

parent fd4e4393
Loading
Loading
Loading
Loading
+1 −1
Changes for README.md: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -195,7 +195,7 @@ Note : Les propriétés non obligatoires peuvent être omises, mais il est préf
| `COD_CMP`             | `string` | Oui         | Code composante                                |
| `COD_VET`             | `string` | Oui         | Code formation                                 |
| `LIB_ELP`             | `string` | Oui         | Libelle cour                                   |
| `NBR_CRD_ELP`         | `string` | Oui         | Crédits                                        |
| `NBR_CRD_ELP`         | `string` | Oui         | Crédits ECTS, deux décimales (`"2.50"`)        |
| `LIB_RDE`             | `string` | Non         | Domaine, permet de mieux categoriser les cours |
| `LIB_CMT_ELP`         | `string` | Non         | Libelle/Commentaires anglais                   |
| `S1`                  | `string` | Non         | "S1" ou vide ou boolean                        |
+26 −0
Changes for api/migrations/Version20261008190552.php: 26 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

declare(strict_types=1);

namespace DoctrineMigrations;

use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;

final class Version20261008190552 extends AbstractMigration
{
    public function getDescription(): string
    {
        return 'APOGEE : crédits ECTS des cours avec deux décimales (2,5 était arrondi à 3)';
    }

    public function up(Schema $schema): void
    {
        $this->addSql('ALTER TABLE cour ALTER nbr_crd_elp TYPE NUMERIC(6, 2)');
    }

    public function down(Schema $schema): void
    {
        $this->addSql('ALTER TABLE cour ALTER nbr_crd_elp TYPE NUMERIC(10, 0)');
    }
}
+1 −1
Changes for api/src/Entity/Cour.php: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -56,7 +56,7 @@ class Cour
    private ?string $LANGUE_ENSEIGNEMENT = null;

    #[Groups('read')]
    #[ORM\Column(type: 'decimal', precision: 10, scale: 0)]
    #[ORM\Column(type: 'decimal', precision: 6, scale: 2)]
    private string $NBR_CRD_ELP;

    #[Groups('read')]
+17 −3
Changes for api/tests/Api/CollectionsTest.php: 17 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -84,6 +84,19 @@ class CollectionsTest extends ApiTestCase
        $this->assertEquals(24.5, $membre['NBR_VOL_ELP']);
    }

    /**
     * Vérifie que les demi-crédits ECTS d'APOGEE ne sont pas arrondis.
     */
    public function testCreditsDecimaux(): void
    {
        $client = $this->creerClient();
        $this->insererCours(1, 2.5);

        $membre = $this->lireCollection($client, '/cours')['hydra:member'][0];

        $this->assertEquals(2.5, $membre['NBR_CRD_ELP']);
    }

    /**
     * Vérifie la pagination suivie par Smile et smileplus : 100 éléments par page et lien hydra:next.
     */
@@ -146,13 +159,14 @@ class CollectionsTest extends ApiTestCase
     * Insère des cours comme le fait app:import-data.
     *
     * @param int   $nombre  nombre de cours à insérer
     * @param float $credits crédits ECTS de chaque cours
     */
    private function insererCours(int $nombre): void
    private function insererCours(int $nombre, float $credits = 6): void
    {
        for ($i = 1; $i <= $nombre; ++$i) {
            $this->connexion()->executeStatement(
                "INSERT INTO cour (id, cod_elp, cod_cmp, cod_vet, lib_elp, lib_rde, lib_cmt_elp, s1, s2, langue_enseignement, nbr_crd_elp, nbr_vol_elp) VALUES (nextval('cour_id_seq'), :code, 'SCI', 'LINFO', :libelle, 'Informatique', :commentaire, 'S1', NULL, 'Français', 6, 24.5)",
                ['code' => sprintf('ELP%05d', $i), 'libelle' => 'Cours '.$i, 'commentaire' => 'Course '.$i]
                "INSERT INTO cour (id, cod_elp, cod_cmp, cod_vet, lib_elp, lib_rde, lib_cmt_elp, s1, s2, langue_enseignement, nbr_crd_elp, nbr_vol_elp) VALUES (nextval('cour_id_seq'), :code, 'SCI', 'LINFO', :libelle, 'Informatique', :commentaire, 'S1', NULL, 'Français', :credits, 24.5)",
                ['code' => sprintf('ELP%05d', $i), 'libelle' => 'Cours '.$i, 'commentaire' => 'Course '.$i, 'credits' => $credits]
            );
        }
    }