- Backend : champ Reception.validatedAt (timestamp) avec PreUpdate + helpers
isFullyConfirmed/tryValidate ; sync EDNOTIF déclenche tryValidate sur
les receptions impactées ; expose Supplier.name dans le groupe bovine:read.
- Migration : ajout colonne validated_at sans backfill (les receptions
remontent en attente jusqu'au prochain sync).
- Front /entry-exit : remplace Historique par 'Entrées validées' (filtre
exists[validatedAt]=true), ajoute filtres et colonne Statut sur les
deux tableaux, retire Fournisseur, layout 2x2 (entrées + sorties).
- Front /entry-exit/entry/{id} : mode consultation quand entryCompleted=true
(formulaire + actions masqués, colonne EDNOTIF par bovin) ; ajoute
colonnes Vendeur et Cause dans le récap.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
43 lines
1.2 KiB
TypeScript
43 lines
1.2 KiB
TypeScript
export interface BovineBuildingRef {
|
|
label: string
|
|
}
|
|
|
|
export interface BovineBuildingCaseRef {
|
|
caseNumber: number | null
|
|
building: BovineBuildingRef | null
|
|
}
|
|
|
|
export interface BovineData {
|
|
id: number
|
|
nationalNumber: string
|
|
receivedWeight: number | null
|
|
pricePerKg: number | null
|
|
finalPrice: number | null
|
|
arrivalDate: string | null
|
|
exitDate: string | null
|
|
buildingCase: BovineBuildingCaseRef | null
|
|
building: BovineBuildingRef | null
|
|
effectiveBuilding: BovineBuildingRef | null
|
|
supplier: { id: number; name: string } | string | null
|
|
workNumber: string | null
|
|
birthDate: string | null
|
|
bovineType: { id: number; label: string; code: string } | null
|
|
sex: string | null
|
|
ageMonths: number | null
|
|
exitedAt: string | null
|
|
reception?: string | null
|
|
entryCause?: 'A' | 'N' | 'P' | null
|
|
ednotifConfirmedAt?: string | null
|
|
}
|
|
|
|
export type BovinePayload = {
|
|
nationalNumber?: string
|
|
receivedWeight?: number | null
|
|
pricePerKg?: number | null
|
|
arrivalDate?: string | null
|
|
buildingCase?: string | null
|
|
supplier?: string | null
|
|
reception?: string | null
|
|
entryCause?: 'A' | 'N' | 'P' | null
|
|
}
|