# Activer la possibilité de commander un matériel (au service gestion) en cliquant sur un bouton "Commander" ? # L'étape "A commander" (status TOBEORDERED) devient alors une étape intermédiaire OPTIONNELLE entre CREATED et VALIDATED # Les transitions de statut d'un materiel sont alors : CREATED => [ TEBEORDERED (à commander) ] => VALIDATED => TOBEARCHIVED => ARCHIVED HAS_ORDER_BUTTON: true #HAS_ORDER_BUTTON: false # ************************************************************ # ************** CHAMPS INITIALEMENT READONLY **************** # ************************************************************ # Un champ peut etre readonly pour 3 raisons : # - soit parce qu’il a une valeur par défaut non modifiable (ex: Acheteur = celui qui crée la fiche), # - soit parce qu’il est réservé à l’Administration (champs administratifs, « Admin only »), # - soit parce qu’il a servi à valider une étape et ne doit donc plus être changé (sous peine d’invalider l’étape) UNEDITABLE_FIELDS: # #### CHAMPS GÉNÉRAUX #### #- designation #- will_stay #- description #- hors_service #- sur_categorie_id #- categorie_id #- sous_categorie_id #- groupes_thematique_id #- groupes_metier_id #- projet_id #- materiel_technique #- materiel_administratif #- metrologie #- etiquette #- site_id #- lieu_detail #- date_acquisition #- date_reception # Garantie #- duree_garantie #- unite_duree_garantie #- date_fin_garantie # Super Administrateur only #- status #- numero_serie # Utilisateur du materiel (destinataire du bien) #- nom_user # - Acheteur (le Créateur de la fiche) - Un role "Utilisateur" ne peut pas changer ça, c'est par défaut lui-même - nom_responsable (sauf Responsable, Administration) #- nom_ancien_responsable #- resp_credit #- gestionnaire_id #- fournisseur_id #- organisme_id #- prix_ht #- budgets # #### CHAMPS ADMINISTRATIFS : #### # Entité(s) dépensière(s) (budget(s)) // ligne budgétaire (sur quel(s) budget(s)) ou entité(s) dépensière(s) ?) - eotp (sauf Administration) - numero_commande (sauf Administration) - numero_inventaire_organisme (sauf Administration) - numero_inventaire_old (sauf Administration) - numero_laboratoire # READONLY toujours car généré automatiquement # *************************************************************** # ************** LOT 0 - CRÉATION FICHE MATÉRIEL **************** # *************************************************************** # Champs OBLIGATOIRES pour CRÉER une fiche Matériel # - Aucun champ #MANDATORY_FIELDS_BEFORE_LOT0: [] # - Au moins un champ MANDATORY_FIELDS_BEFORE_LOT0: # Infos toujours obligatoires (cachées car calculées automatiquement) #'status', #'tobeordered', designation: 'Désignation' description: 'Description' sur_categorie_id: 'Domaine' categorie_id: 'Catégorie' # - Acheteur (le Créateur de la fiche) nom_responsable: "Nom de l'Acheteur" #// (rempli automatiquement) email_responsable: "Email de l'Acheteur" # - Utilisateur nom_user: "Nom de l'utilisateur" # Calculé auto au moment du save() #'numero_laboratoire', # ******* END OF MANDATORY_FIELDS_LOT0 ******** # Liste des champs qui sont NON MODIFIABLES APRÈS la CRÉATION d'une fiche # Attention, les champs UNEDITABLE_FIELDS (voir au début du fichier) sont aussi pris en compte (donc, inutile de les répéter) # - Aucun champ UNEDITABLE_FIELDS_AFTER_LOT0: [] # - Au moins un champ #UNEDITABLE_FIELDS_AFTER_LOT0: # #### CHAMPS GÉNÉRAUX #### #- designation #- will_stay #- description #- hors_service #- sur_categorie_id #- categorie_id #- sous_categorie_id #- groupes_thematique_id #- groupes_metier_id #- projet_id #- materiel_technique #- materiel_administratif #- metrologie #- etiquette #- site_id #- lieu_detail #- date_acquisition #- date_reception # Garantie #- duree_garantie #- unite_duree_garantie #- date_fin_garantie # Super Administrateur only #- status #- numero_serie # Utilisateur du materiel (destinataire du bien) #- nom_user # - Acheteur (le Créateur de la fiche) - Un role "Utilisateur" ne peut pas changer ça, c'est par défaut lui-même #- nom_responsable (sauf Responsable, Administration) #- nom_ancien_responsable #- resp_credit #- gestionnaire_id #- fournisseur_id #- organisme_id #- prix_ht #- budgets # #### CHAMPS ADMINISTRATIFS : #### #- eotp (sauf Administration) #- numero_commande (sauf Administration) #- numero_laboratoire # READONLY toujours car généré automatiquement #- numero_inventaire_organisme (sauf Administration) #- numero_inventaire_old (sauf Administration) # ****************************************************************************** # ************** LOT 1 - COMMANDE (DEMANDE D'ACHAT) (optionnel) **************** # ****************************************************************************** # Champs OBLIGATOIRES POUR passer la COMMANDE (La commande est une action optionnelle) # Attention, les champs MANDATORY_FIELDS_XXX définis plus haut sont aussi pris en compte (donc, inutile de les répéter) # - Aucun champ #MANDATORY_FIELDS_BEFORE_LOT1: [] # - Au moins un champ MANDATORY_FIELDS_BEFORE_LOT1: # Infos toujours obligatoires (cachées car calculées automatiquement) #'status', #'tobeordered', #'hors_service', // O/N ##designation: 'Désignation' ##description: 'Description' #'permanent', #'will_stay', // O/N ##sur_categorie_id: 'Domaine' ##categorie_id: 'Catégorie' # - Utilisateur #nom_user: "Nom de l'utilisateur de ce matériel" # - Acheteur #nom_responsable: 'Nom du responsable' # (rempli automatiquement) #email_responsable: 'Email du responsable' # Calculé auto au moment du save() #'numero_laboratoire', organisme_id: 'Organisme' prix_ht: 'Prix HT' # (par défaut = acheteur) resp_credit: 'Responsable du crédit' # Gestionnaire de référence (recevra la commande) gestionnaire_id: 'Gestionnaire de référence' # Fournisseur fournisseur_id: 'Fournisseur' # Utilisé par la Gestion pour remplir le champ eotp budgets: 'Budgets' # INFOS ADMINISTRATIVES # - EOTP : obligatoire seulement dans LOT2 # - Devis joint : c'est un champ virtuel, il n'existe pas physiquement (sauf dans la table Documents) DEVIS: 'Devis' # ******* END OF MANDATORY_FIELDS_LOT1 ******** # Liste des champs NON MODIFIABLES APRÈS la demande d'ACHAT (c'est à dire APRÈS avoir fait la "COMMANDE") # Attention, les champs UNEDITABLE_FIELDS_XXX définis plus haut sont aussi pris en compte (donc, inutile de les répéter) # - Aucun champ #UNEDITABLE_FIELDS_AFTER_LOT1: [] # - Au moins un champ UNEDITABLE_FIELDS_AFTER_LOT1: # #### CHAMPS GÉNÉRAUX #### #- designation #- will_stay #- description #- hors_service # On ne devrait pas pouvoir changer la NATURE du bien # Domaine & Catégorie - sur_categorie_id (sauf Administration) # Domaine - categorie_id (sauf Administration) # Catégorie #- sous_categorie_id #- groupes_thematique_id #- groupes_metier_id #- projet_id #- materiel_technique #- materiel_administratif #- metrologie #- etiquette #- site_id #- lieu_detail #- date_acquisition #- date_reception # Garantie #- duree_garantie #- unite_duree_garantie #- date_fin_garantie # Super Administrateur only #- status #- numero_serie # Utilisateur du materiel (destinataire du bien) #- nom_user # - Acheteur (le Créateur de la fiche) - Un role "Utilisateur" ne peut pas changer ça, c'est par défaut lui-même #- nom_responsable (sauf Responsable, Administration) #- nom_ancien_responsable # (par défaut = acheteur) - resp_credit (sauf Administration) - gestionnaire_id (sauf Administration) # Fournisseur - fournisseur_id (sauf Administration) - organisme_id (sauf Administration) - prix_ht (sauf Administration) # Utilisé par la Gestion pour remplir le champ eotp - budgets (sauf Administration) # Devis (CHAMPS VIRTUEL) # C'est un champ virtuel, il n'existe pas physiquement (sauf dans la table Documents) # Le devis attaché au matériel commandé n'est ni modifiable ni supprimable # (TODO) Non encore configurable : cet aspect est encore géré "en dur" dans le code source - DEVIS # #### CHAMPS ADMINISTRATIFS : #### #- eotp (sauf Administration) #- numero_commande (sauf Administration) #- numero_laboratoire # READONLY toujours car généré automatiquement #- numero_inventaire_organisme (sauf Administration) #- numero_inventaire_old (sauf Administration) # *************************************************************************** # ************** LOT 2 - VALIDATION (matériel livré et payé) **************** # *************************************************************************** # Champs OBLIGATOIRES POUR VALIDER la livraison # Attention, les champs MANDATORY_FIELDS_XXX définis plus haut sont aussi pris en compte (donc, inutile de les répéter) # - Aucun champ #MANDATORY_FIELDS_BEFORE_LOT2: [] # - Au moins un champ MANDATORY_FIELDS_BEFORE_LOT2: #//'fournisseur_id' => 'Fournisseur', #//'fournisseur' => 'Fournisseur', date_acquisition: "Date d'achat" date_reception: 'Date de livraison' site_id: 'Site' #TODO: seulement si prix > 10K€ lieu_detail: 'Lieu de stockage' #numero_serie: 'S/N' #// INFOS ADMINISTRATIVES : #// La Gestion doit remplir ce champ a partir des infos qui sont dans le champ "budget" (rempli par acheteur) #// ligne budgétaire (sur quel(s) budget(s)) ou entité(s) dépensière(s) eotp: 'Entité(s) dépensière(s) (budget(s))' numero_commande: 'Num. BC' # #### CHAMPS NON OBLIGATOIRES MAIS FORTEMENT RECOMMANDÉS #### # Ces champs ne seront pas demandés à la saisie, mais un simple rappel sera affiché sur la vue détaillée du matériel # - Etiquette posée sur le matériel etiquette: 'Etiquette posée' # - Numéro inventaire tutelles # On ne peut pas exiger ce numéro au moment de la livraison # car le gestionnaire n'a cette info que lorsque "Service fait CNRS" (il récupère alors le n° inventaire "Tutelle" sur GESLAB) numero_inventaire_organisme: "N° inventaire de l'organisme" # ******* END OF $MANDATORY_FIELDS_LOT2 ******** # Liste des champs qui sont NON MODIFIABLES APRÈS la VALIDATION (livraison) # Attention, les champs UNEDITABLE_FIELDS_XXX définis plus haut sont aussi pris en compte # - Aucun champ #UNEDITABLE_FIELDS_AFTER_LOT2: [] # - Au moins un champ UNEDITABLE_FIELDS_AFTER_LOT2: # #### CHAMPS GÉNÉRAUX #### #- designation #- will_stay #- description #- hors_service - sur_categorie_id - categorie_id #- sous_categorie_id #- groupes_thematique_id #- groupes_metier_id #- projet_id #- materiel_technique #- materiel_administratif #- metrologie #- etiquette #- site_id #- lieu_detail - date_acquisition - date_reception # Garantie #- duree_garantie #- unite_duree_garantie #- date_fin_garantie # Super Administrateur only #- status #- numero_serie # Utilisateur du materiel (destinataire du bien) #- nom_user # - Acheteur (le Créateur de la fiche) - Un role "Utilisateur" ne peut pas changer ça, c'est par défaut lui-même #- nom_responsable (sauf Responsable, Administration) #- nom_ancien_responsable #- resp_credit #- gestionnaire_id #- fournisseur_id #- organisme_id #- prix_ht #- budgets # #### CHAMPS ADMINISTRATIFS #### - eotp - numero_commande # READONLY toujours car généré automatiquement #- numero_laboratoire #- numero_inventaire_organisme #- numero_inventaire_old # ****************************************************************************** # ************** LOT 3 - ARCHIVAGE (matériel à sortir ou sorti) **************** # ****************************************************************************** # (TODO) Ce 3e niveau n'est pas encore implémenté, il est pour l'instant codé en dur dans le code # - Aucun champ MANDATORY_FIELDS_BEFORE_LOT3: [] # - Aucun champ UNEDITABLE_FIELDS_AFTER_LOT3: [] # En fait, TOUS LES CHAMPS SONT READONLY SAUF : description, ... # Astuce utilisable : # Pour faire : MANDATORY_FIELDS_LOT2 = MANDATORY_FIELDS_LOT1 # On fait comme ceci : #MANDATORY_FIELDS_LOT1: &lot1 #MANDATORY_FIELDS_LOT2: *lot1