Files
btpxpress-frontend/types/stocks.ts
2025-10-13 05:29:32 +02:00

93 lines
2.1 KiB
TypeScript

/**
* Types pour la gestion des stocks
*/
export enum StatutStock {
ACTIF = 'ACTIF',
INACTIF = 'INACTIF',
OBSOLETE = 'OBSOLETE',
SUPPRIME = 'SUPPRIME',
EN_COMMANDE = 'EN_COMMANDE',
EN_TRANSIT = 'EN_TRANSIT',
EN_CONTROLE = 'EN_CONTROLE',
QUARANTAINE = 'QUARANTAINE',
DEFECTUEUX = 'DEFECTUEUX',
PERDU = 'PERDU',
RESERVE = 'RESERVE',
EN_REPARATION = 'EN_REPARATION'
}
export enum CategorieStock {
MATERIAUX_CONSTRUCTION = 'MATERIAUX_CONSTRUCTION',
OUTILLAGE = 'OUTILLAGE',
QUINCAILLERIE = 'QUINCAILLERIE',
EQUIPEMENTS_SECURITE = 'EQUIPEMENTS_SECURITE',
EQUIPEMENTS_TECHNIQUES = 'EQUIPEMENTS_TECHNIQUES',
CONSOMMABLES = 'CONSOMMABLES',
VEHICULES_ENGINS = 'VEHICULES_ENGINS',
FOURNITURES_BUREAU = 'FOURNITURES_BUREAU',
PRODUITS_CHIMIQUES = 'PRODUITS_CHIMIQUES',
PIECES_DETACHEES = 'PIECES_DETACHEES',
EQUIPEMENTS_MESURE = 'EQUIPEMENTS_MESURE',
MOBILIER = 'MOBILIER',
AUTRE = 'AUTRE'
}
export interface Stock {
id: string;
nom: string;
description?: string;
quantite: number;
quantiteMin: number;
quantiteMax: number;
quantiteStock: number;
quantiteReservee?: number;
quantiteMinimum?: number;
unite: string;
prixUnitaire: number;
coutMoyenPondere?: number;
dateCreation: string;
dateModification: string;
actif: boolean;
statut: StatutStock;
categorie: CategorieStock;
codeZone?: string;
codeAllee?: string;
codeEtagere?: string;
emplacementStockage?: string;
datePeremption?: string;
articleDangereux?: boolean;
coutDerniereEntree?: number;
fournisseur?: {
id: string;
nom: string;
};
}
export interface StockMovement {
id: string;
type: 'ENTREE' | 'SORTIE';
quantite: number;
dateMovement: string;
motif: string;
utilisateur: string;
chantier?: {
id: string;
nom: string;
};
}
export interface StockAlert {
id: string;
type: 'STOCK_BAS' | 'STOCK_CRITIQUE' | 'PEREMPTION';
message: string;
dateCreation: string;
traite: boolean;
}
export interface StockStats {
totalArticles: number;
valeurTotale: number;
articlesEnRupture: number;
articlesEnAlerte: number;
}