Corriger les dossiers animaux et le suivi médical

This commit is contained in:
Alexandre NOEL 2026-10-01 15:22:09 +02:00
commit 7b89fd5dfa
34 changed files with 440 additions and 39 deletions

View file

@ -32,6 +32,8 @@ trait AnimalMedicalActions
$testDate = date('Y-m-d');
}
$testNotes = trim((string) ($_POST['test_notes'] ?? ''));
$testTariffId = (int) ($_POST['test_tariff_id'] ?? 0);
$testClinicId = (int) ($_POST['clinic_contact_id'] ?? 0);
$conditions = is_array($_POST['conditions'] ?? null) ? $_POST['conditions'] : [];
$db = DB::pdo();
@ -53,6 +55,7 @@ trait AnimalMedicalActions
UPDATE animals
SET fiv_status = :fiv_status,
felv_status = :felv_status,
fiv_felv_test_date = :test_date,
fiv = :fiv,
felv = :felv,
updated_at = datetime('now')
@ -61,6 +64,7 @@ trait AnimalMedicalActions
)->execute([
':fiv_status' => $fivStatus,
':felv_status' => $felvStatus,
':test_date' => $testDate,
':fiv' => $fivStatus === 'pos' ? 1 : 0,
':felv' => $felvStatus === 'pos' ? 1 : 0,
':id' => $animalId,
@ -98,6 +102,15 @@ trait AnimalMedicalActions
}
}
if ($testTariffId > 0) {
$tariffCheck = $db->prepare("SELECT 1 FROM clinic_tariffs WHERE id=? AND clinic_contact_id=? AND category='test' AND active=1");
$tariffCheck->execute([$testTariffId, $testClinicId]);
if (!$testClinicId || !$tariffCheck->fetchColumn()) {
throw new RuntimeException(t('error.tariff_not_found'));
}
PricingService::record($db, $animalId, $testTariffId, 1, $testDate, $testNotes);
}
$conditionSelect = $db->prepare(
'SELECT status FROM animal_health_conditions WHERE id = :id AND animal_id = :animal_id',
);