- Champ entryCause sur Bovine (enum App\Enum\CauseEntree : Achat/Naissance/PretOuPension) - Sélecteur "Cause d'entrée" sur le formulaire de saisie (default Achat, required) - ednotif_confirmed_at sur Bovine : timestamp set par le sync EDNOTIF la première fois qu'un bovin remonte dans getInventory. Backfill des bovins existants au jour de la migration. - Inventaire (page + export + stats) filtre les bovins encore "en attente EDNOTIF" : ils n'apparaissent qu'une fois confirmés par le sync. - getter getConfirmedBovineCount sur Reception, exposé en reception:read. - Tableau Historique full-width sur /entry-exit listant les entrées validées, avec filtres de colonnes (numéro, date, fournisseur), compteur Confirmés/Saisis, et badge de statut "Confirmée" / "EDNOTIF en attente". - Tableau récap de l'écran de saisie passé en useDataTableServerState pour bénéficier du loading et de la pagination serveur. - Validation entrée : confirm window obligatoire, message renforcé en cas d'écart entre saisis et déclarés. - Pattern projet "submitted" sur le formulaire d'ajout pour le visuel required. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
110 lines
3.1 KiB
TypeScript
110 lines
3.1 KiB
TypeScript
import type { ReceptionTypeData } from '~/services/dto/reception-type-data'
|
|
import type { MerchandiseTypeData } from '~/services/dto/merchandise-type-data'
|
|
import type { BuildingData } from '~/services/dto/building-data'
|
|
import type { ReceptionPelletBuildingData } from '~/services/dto/reception-pellet-building-data'
|
|
import type { UserData } from '~/services/dto/user-data'
|
|
import type { SupplierData } from '~/services/dto/supplier-data'
|
|
import type { AddressData } from '~/services/dto/address-data'
|
|
import type { TruckData } from '~/services/dto/truck-data'
|
|
import type { CarrierData } from '~/services/dto/carrier-data'
|
|
import type { DriverData } from '~/services/dto/driver-data'
|
|
import type {BovineTypeData} from "~/services/dto/bovine-type-data";
|
|
|
|
export interface ReceptionData {
|
|
id: number
|
|
identificationNumber?: string | null
|
|
licensePlate: string | null
|
|
weights?: WeightEntryData[] | null
|
|
receptionDate: string
|
|
currentStep: number
|
|
isValid: boolean
|
|
entryCompleted?: boolean
|
|
registeredBovineCount?: number
|
|
confirmedBovineCount?: number
|
|
declaredBovineCount?: number
|
|
receptionType?: ReceptionTypeData | null
|
|
merchandiseType?: MerchandiseTypeData | null
|
|
merchandiseDetail?: string | null
|
|
bovineDetail?: string | null
|
|
buildings?: BuildingData[] | null
|
|
bovinesTypes?: BovineTypeData[] | null
|
|
pelletBuildings?: ReceptionPelletBuildingData[] | null
|
|
user?: UserData | null
|
|
supplier?: SupplierData | null
|
|
address?: AddressData | null
|
|
truck?: TruckData | null
|
|
carrier?: CarrierData | null
|
|
driver?: DriverData | null
|
|
}
|
|
|
|
export interface WeightEntryData {
|
|
id?: number
|
|
type: 'gross' | 'tare'
|
|
dsd: number | null
|
|
weight: number | null
|
|
weighedAt: string | null
|
|
}
|
|
|
|
export interface MerchandiseEntryData {
|
|
merchandiseTypeId: string
|
|
merchandiseDetail: string
|
|
selectedBuildingIds: string[]
|
|
selectedPelletBuildingIds: Record<string, string[]>
|
|
}
|
|
|
|
export interface WeightFormData {
|
|
id: number
|
|
weight: number
|
|
weighedAt : string
|
|
dsd: number
|
|
type: 'gross' | 'tare'
|
|
}
|
|
|
|
|
|
|
|
export type ReceptionPayload = {
|
|
licensePlate?: string | null
|
|
receptionDate?: string
|
|
currentStep?: number
|
|
isValid?: boolean
|
|
entryCompleted?: boolean
|
|
receptionType?: string | null
|
|
merchandiseType?: string | null
|
|
merchandiseDetail?: string | null
|
|
bovineDetail?: string | null
|
|
buildings?: string[] | null
|
|
bovinesTypes?: string[] | null
|
|
user?: string | null
|
|
supplier?: string | null
|
|
address?: string | null
|
|
truck?: string | null
|
|
carrier?: string | null
|
|
driver?: string | null
|
|
}
|
|
|
|
export type ReceptionFormData = {
|
|
identificationNumber?: null|string,
|
|
licensePlate: string
|
|
receptionDate: string
|
|
receptionTypeId: string
|
|
userId: string
|
|
supplierId: string
|
|
addressId: string
|
|
truckId: string
|
|
carrierId: string
|
|
driverId: string
|
|
vehicleId: string
|
|
weight?: ReceptionFormWeight | null
|
|
}
|
|
|
|
export type ReceptionFormWeight = {
|
|
weights: WeightFormData[]
|
|
}
|
|
|
|
export interface ReceptionUpdatePayload {
|
|
weights: {
|
|
id: number
|
|
weight: number
|
|
}[]
|
|
}
|