fix(logistique) : bon de pesée — cartouche tiers + filtrage des listes contrepartie par site (ERP-208) (#155)
Auto Tag Develop / tag (push) Successful in 14s
Auto Tag Develop / tag (push) Successful in 14s
## ERP-208 — Fix ticket de pesée ### Bon de pesée (PDF) Ajout d'un **cartouche bordé en haut à droite** du bon de pesée, contenant le **type de contrepartie** (Client / Fournisseur / Autre, en gras au-dessus) et le **nom du tiers**. - `WeighingTicket::getCounterpartyName()` + `getCounterpartyTypeLabel()` (testés). - En-tête du template passé en table 2 colonnes (contrainte Dompdf CSS 2.1). ### Écran de saisie (Ajouter / Modifier) Les listes **Client / Fournisseur** sont **filtrées sur le site courant** (un tiers est rattaché à un site via les sites de ses adresses) et **rechargées au changement de site**. - Réutilise le filtre back existant `?siteId[]=` de /clients et /suppliers (aucun changement back sur le filtre). - Au switch de site : le tiers sélectionné est réinitialisé **uniquement** s'il sort du périmètre du nouveau site. - Portée limitée au ticket de pesée : les répertoires M1/M2 ne changent pas. ### Tests - Back : test unitaire `WeighingTicketCounterpartyNameTest` (nom + libellé) ; test PDF existant inchangé. - Front : specs référentiels + écrans Ajouter/Modifier (673/673). - Pas de migration, pas de RBAC, pas d'E2E. ### À vérifier en recette En **modification**, si le tiers d'un ticket n'a pas d'adresse sur le site courant, le select peut s'afficher vide (valeur conservée mais option filtrée). Reviewed-on: #155 Co-authored-by: tristan <tristan@yuno.malio.fr> Co-committed-by: tristan <tristan@yuno.malio.fr>
This commit was merged in pull request #155.
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Tests\Module\Logistique\Domain;
|
||||
|
||||
use App\Module\Commercial\Domain\Entity\Client;
|
||||
use App\Module\Commercial\Domain\Entity\Supplier;
|
||||
use App\Module\Logistique\Domain\Entity\WeighingTicket;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
/**
|
||||
* Couvre WeighingTicket::getCounterpartyName() (ERP-208) : nom du tiers affiché
|
||||
* dans le cartouche du bon de pesée selon le type de contrepartie (RG-5.03).
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
final class WeighingTicketCounterpartyNameTest extends TestCase
|
||||
{
|
||||
public function testReturnsClientCompanyNameForClientCounterparty(): void
|
||||
{
|
||||
$client = new Client()->setCompanyName('Ferme du Pré');
|
||||
$ticket = new WeighingTicket()->setCounterpartyType('CLIENT')->setClient($client);
|
||||
|
||||
self::assertSame('Ferme du Pré', $ticket->getCounterpartyName());
|
||||
}
|
||||
|
||||
public function testReturnsSupplierCompanyNameForSupplierCounterparty(): void
|
||||
{
|
||||
$supplier = new Supplier()->setCompanyName('Coop Sud');
|
||||
$ticket = new WeighingTicket()->setCounterpartyType('FOURNISSEUR')->setSupplier($supplier);
|
||||
|
||||
self::assertSame('Coop Sud', $ticket->getCounterpartyName());
|
||||
}
|
||||
|
||||
public function testReturnsOtherLabelForOtherCounterparty(): void
|
||||
{
|
||||
$ticket = new WeighingTicket()->setCounterpartyType('AUTRE')->setOtherLabel('Particulier');
|
||||
|
||||
self::assertSame('Particulier', $ticket->getCounterpartyName());
|
||||
}
|
||||
|
||||
public function testReturnsNullWhenNoCounterparty(): void
|
||||
{
|
||||
self::assertNull(new WeighingTicket()->getCounterpartyName());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user