Corriger les dossiers animaux et le suivi médical
This commit is contained in:
parent
a55d27935f
commit
7b89fd5dfa
34 changed files with 440 additions and 39 deletions
|
|
@ -112,8 +112,19 @@ final class IcadService
|
|||
]);
|
||||
$this->assertSuccess($r2, t('service.icad.login_failed'));
|
||||
|
||||
// Le point d'entrée renvoie désormais du JSON et fournit l'adresse réelle
|
||||
// de l'espace connecté. L'ancienne URL fixe /pro répond en 404 depuis 2026.
|
||||
$loginResponse = json_decode(trim((string) $r2['body']), true);
|
||||
if (is_array($loginResponse) && trim((string) ($loginResponse['error'] ?? '')) !== '') {
|
||||
throw new RuntimeException(t('service.icad.login_failed'));
|
||||
}
|
||||
$accountPath = is_array($loginResponse) ? trim((string) ($loginResponse['address'] ?? '')) : '';
|
||||
if ($accountPath === '' || !str_starts_with($accountPath, '/')) {
|
||||
$accountPath = '/acteur';
|
||||
}
|
||||
|
||||
// 3) Vérif session
|
||||
$r2b = $this->req('https://www.i-cad.fr/pro', $cookie);
|
||||
$r2b = $this->req('https://www.i-cad.fr' . $accountPath, $cookie);
|
||||
$this->assertSuccess($r2b, t('service.icad.login_failed'));
|
||||
if (stripos($r2b['body'], 'Se connecter') !== false || str_contains((string)$r2b['effective_url'], '/login')) {
|
||||
throw new RuntimeException(t('service.icad.login_failed'));
|
||||
|
|
|
|||
|
|
@ -20,14 +20,14 @@ final class NotificationService
|
|||
'treatments',
|
||||
'danger',
|
||||
t('notification.treatments_overdue'),
|
||||
"SELECT COUNT(*) FROM treatments t JOIN animals a ON a.id=t.animal_id WHERE t.ongoing=1 AND t.end_date IS NOT NULL AND date(t.end_date)<date('now') AND a.deleted_at IS NULL AND a.archived_at IS NULL",
|
||||
"SELECT COUNT(*) FROM treatments t JOIN animals a ON a.id=t.animal_id WHERE t.ongoing=1 AND t.end_date IS NOT NULL AND date(t.end_date)<date('now') AND a.deleted_at IS NULL AND a.archived_at IS NULL AND lower(a.status) NOT IN ('decede','décédé','adopte','adopté')",
|
||||
'/dashboard#active-treatments',
|
||||
],
|
||||
[
|
||||
'dewormings',
|
||||
'warning',
|
||||
t('notification.dewormings_due'),
|
||||
"SELECT COUNT(*) FROM dewormings d JOIN animals a ON a.id=d.animal_id WHERE d.next_due_date IS NOT NULL AND date(d.next_due_date)<=date('now','+7 day') AND a.deleted_at IS NULL AND a.archived_at IS NULL AND NOT EXISTS(SELECT 1 FROM dewormings newer WHERE newer.animal_id=d.animal_id AND date(newer.administered_on)>date(d.administered_on))",
|
||||
"SELECT COUNT(*) FROM dewormings d JOIN animals a ON a.id=d.animal_id WHERE d.next_due_date IS NOT NULL AND date(d.next_due_date)<=date('now','+7 day') AND a.deleted_at IS NULL AND a.archived_at IS NULL AND lower(a.status) NOT IN ('decede','décédé','adopte','adopté') AND NOT EXISTS(SELECT 1 FROM dewormings newer WHERE newer.animal_id=d.animal_id AND date(newer.administered_on)>date(d.administered_on))",
|
||||
'/dashboard',
|
||||
],
|
||||
];
|
||||
|
|
|
|||
Loading…
Reference in a new issue