fix(logistique) : bon de pesée — cartouche tiers + filtrage des listes contrepartie par site (ERP-208)
- PDF : cartouche bordé en haut à droite avec le type (Client/Fournisseur/Autre) et le nom du tiers (getCounterpartyName + getCounterpartyTypeLabel). - Écran ticket : listes Client/Fournisseur filtrées sur le site courant (param siteId[]) et rechargées au changement de site ; reset du tiers sélectionné s'il sort du périmètre du nouveau site.
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
<?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());
|
||||
}
|
||||
|
||||
public function testTypeLabelIsFrenchPerCounterpartyType(): void
|
||||
{
|
||||
self::assertSame('Client', new WeighingTicket()->setCounterpartyType('CLIENT')->getCounterpartyTypeLabel());
|
||||
self::assertSame('Fournisseur', new WeighingTicket()->setCounterpartyType('FOURNISSEUR')->getCounterpartyTypeLabel());
|
||||
self::assertSame('Autre', new WeighingTicket()->setCounterpartyType('AUTRE')->getCounterpartyTypeLabel());
|
||||
}
|
||||
|
||||
public function testTypeLabelIsNullWhenNoCounterparty(): void
|
||||
{
|
||||
self::assertNull(new WeighingTicket()->getCounterpartyTypeLabel());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user