Permet de modifier et supprimer les tarifs

Refs #24
This commit is contained in:
Alexandre NOEL 2026-09-08 00:57:43 +02:00
commit b906cf7b88
11 changed files with 96 additions and 13 deletions

View file

@ -143,6 +143,17 @@ try {
$db->exec("UPDATE adoption_fee_rules SET is_free=1 WHERE species_code='chat'");
$assert(PricingService::adoptionFee('chat', true) === null, 'Le tarif libre n’est pas appliqué');
});
$test('Un tarif vétérinaire peut être supprimé sans effacer la dépense', function () use ($db, $assert): void {
$db->exec("INSERT INTO animals(internal_code,name,species,status) VALUES('TEST-TARIF','Tarif Test','chat','refuge')");
$animalId = (int) $db->lastInsertId();
$db->exec("INSERT INTO clinic_tariffs(clinic_contact_id,label,amount_cents) VALUES(1,'Tarif temporaire',1234)");
$tariffId = (int) $db->lastInsertId();
$db->prepare("INSERT INTO animal_expenses(animal_id,clinic_contact_id,tariff_id,label,occurred_on,catalog_unit_cents,total_cents) VALUES(?,1,?,'Tarif temporaire','2099-01-01',1234,1234)")->execute([$animalId, $tariffId]);
$expenseId = (int) $db->lastInsertId();
$assert(PricingService::deleteTariff($tariffId) === 'Tarif temporaire');
$expense = $db->query("SELECT tariff_id,label,total_cents FROM animal_expenses WHERE id=$expenseId")->fetch(PDO::FETCH_ASSOC);
$assert($expense && $expense['tariff_id'] === null && $expense['label'] === 'Tarif temporaire' && (int) $expense['total_cents'] === 1234);
});
$test('Les identifiants RNA et SIRET sont contrôlés', function () use ($assert): void {
$assert(Ids::validRna('W123456789'));
$assert(!Ids::validRna('W1234'));