Skip to content
Snippets Groups Projects
Commit 8f3d46e5 authored by OURY Sarah's avatar OURY Sarah
Browse files

Merge branch 'main' into 'develop'

# Conflicts:
#   e2e/input_template/EquipementPhysique_hors_serveur.csv
#   services/api-event-calculs/pom.xml
#   services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/service/enrichissement/EnrichissementEquipementPhysiqueService.java
#   services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/infrastructure/service/calcul/EnrichissementEquipementPhysiqueServiceTest.java
#   services/api-event-donneesentrees/pom.xml
#   services/api-expositiondonneesentrees/pom.xml
#   services/api-referentiel/pom.xml
#   services/calculs/pom.xml
#   services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/demande/DemandeCalculImpactOperationNonIT.java
#   services/common/pom.xml
#   services/core/pom.xml
parents 0fb7b8ef 61276dcb
No related branches found
No related tags found
1 merge request!35preparation release 2.1.0
......@@ -59,8 +59,11 @@ String paysDUtilisation
String utilisateur
Date dateAchat
Data dateRetrait
' la durée d'usage interne correspond à l'age de l'équipement (en années) au sein de l'organisation
Double dureeUsageInterne
' la durée d'usage amont correspond à la durée (en années) de première vie d'un équipement, avant que ce dernier ne soit possédé par l'organisation
Double dureeUsageAmont
' la durée d'usage aval correspond à la durée (en années) de troisième vie d'un équipement, une fois que ce dernier a été sorti de l'organisation
Double dureeUsageAval
Double consoElecAnnuelle
Float nbJourUtiliseAn
......
......@@ -256,9 +256,11 @@ Le body de la requête est composé :
Il existe 2 paramètres associés à cette requête :
* mode : le mode de traitement, SYNC ou ASYNC (ASYNC est la valeur par défaut)
* dureeUsage : la méthode de calcul de la durée de vie des équipements physique utilisée, FIXE : la méthode de calcul de la durée de vie se base sur l'attribut 'dureeUsageInterne' de l'équipement physique ou REEL : la méthode de calcul de la durée de vie se base sur l'âge réel de l'équipement physique (dateRetrait-dateAchat) (FIXE est la valeur par défaut)
* dureeUsage : la méthode de calcul de la durée de vie des équipements physiques utilisée, qui peut être
** FIXE (valeur par defaut): la méthode de calcul de la durée de vie se base sur l'attribut 'dureeUsageInterne' de l'équipement physique
** REEL : la méthode de calcul de la durée de vie se base sur l'âge réel de l'équipement physique (dateRetrait-dateAchat quand les données sont disponibles)
NumEcoEval lance alors les calculs des indicateurs et les sauvegarde dans la base correspondante.
NumEcoEval effectue alors les calculs des indicateurs et les sauvegardes dans la base correspondante.
La cinématique globale est décrite ci-dessous :
......@@ -431,28 +433,28 @@ Elle est exprimée en années et autorise les décimales.
[pseudocode]
----
Règle RG_DureeVieItem(equipementPhysique) {
Règle RG_DureeVieItem(equipementPhysique, dureeVieItem) {
SI methodeDureeUsage=="REEL"
ALORS
'dans le cas où il est possible de calculer l'age réel de l'item, ce dernier fait foi
'dans le cas où il est possible de calculer l'age réel de l'item (c'est à dire sa durée de vie au sein de l'organisation), ce dernier fait foi
SI equipementPhysique.DateAchat est correcte et renseignée ET equipementPhysique.DateRetrait est correcte et renseignée
ALORS
SI ((equipementPhysique.DateRetrait - equipementPhysique.DateAchat) / 365 + equipementPhysique.dureeUsageAmont + equipementPhysique.dureeUsageAval < 1)
' si la durée de vie totale de l'équipement est inférieure à 1 an, on la fixe à 1 an car :
' comme impact = facteurCaracterisation/dureeDeVie, si la dureeDeVie est inférieure à 1, on prendrait + de 100% de l'impact de l'équipement pour sa première année ce qui n'est pas logique
ALORS RENVOYER 1
SINON RENVOYER (((equipementPhysique.DateRetrait - equipementPhysique.DateAchat) / 365) + equipementPhysique.DureeUsageAmont + equipementPhysique.DureeUsageAval)
'si la durée de vie totale de l'équipement est inférieure à 1 an, on la fixe à 1 an car pour éviter d'avoir un impact supérieur à l'impact total de l'équipement sur l'ensemble de son cycle de vie
'En effet : impact = facteurCaracterisation/dureeDeVie. Si la dureeDeVie est inférieure à 1, alors impact > facteurCaracterisation de l'équipement.
ALORS dureeVieItem = 1
SINON dureeVieItem= (((equipementPhysique.DateRetrait - equipementPhysique.DateAchat) / 365) + equipementPhysique.DureeUsageAmont + equipementPhysique.DureeUsageAval)
'dans le cas où seul la date d'achat est disponible, la règle du "Pseudo-amortissement" prévaut (impact de 100% sur l'année d'achat, 50% l'année 2, 33% l'année 3, etc... )
SINON SI equipementPhysique.DateAchat est correcte et equipementPhysique.DateRetrait non reseignée
SINON SI equipementPhysique.DateAchat est correcte et equipementPhysique.DateRetrait non renseignée
SI ((equipementPhysique.DateRetrait - date du jour) / 365 + equipementPhysique.dureeUsageAmont + equipementPhysique.dureeUsageAval < 1)
ALORS RENVOYER 1
SINON RENVOYER (((equipementPhysique.DateAchat - date du jour) / 365) + equipementPhysique.DureeUsageAmont + equipementPhysique.DureeUsageAval)
ALORS dureeVieItem= 1
SINON dureeVieItem= (((equipementPhysique.DateAchat - date du jour) / 365) + equipementPhysique.DureeUsageAmont + equipementPhysique.DureeUsageAval)
'dans les autres cas, une durée de vie moyenne de l'équipement est déduite
SINON
SI (RG_DureeVieItem_Defaut(equipementPhysique) + equipementPhysique.DureeUsageAmont + equipementPhysique.DureeUsageAval < 1)
ALORS RENVOYER 1
SINON RENVOYER (RG_DureeVieItem_Defaut(equipementPhysique) + equipementPhysique.DureeUsageAmont + equipementPhysique.DureeUsageAval)
ALORS dureeVieItem= 1
SINON dureeVieItem= (RG_DureeVieItem_Defaut(equipementPhysique) + equipementPhysique.DureeUsageAmont + equipementPhysique.DureeUsageAval)
FIN SI
'par défaut, la méthode de calcul de la durée de vie est la méthode "FIXE"
SINON
......@@ -460,29 +462,29 @@ Règle RG_DureeVieItem(equipementPhysique) {
SI equipementPhysique.DureeUsageInterne est renseignée et supérieure à 0
ALORS
SI (equipementPhysique.DureeUsageInterne + equipementPhysique.DureeUsageAmont + equipementPhysique.DureeUsageAval < 1)
ALORS RENVOYER 1
SINON RENVOYER (equipementPhysique.DureeUsageInterne + equipementPhysique.DureeUsageAmont + equipementPhysique.DureeUsageAval)
ALORS dureeVieItem= 1
SINON dureeVieItem= (equipementPhysique.DureeUsageInterne + equipementPhysique.DureeUsageAmont + equipementPhysique.DureeUsageAval)
SINON
SI (RG_DureeVieItem_Defaut(equipementPhysique) + equipementPhysique.DureeUsageAmont + equipementPhysique.DureeUsageAval < 1)
ALORS RENVOYER 1
SINON RENVOYER (RG_DureeVieItem_Defaut(equipementPhysique) + equipementPhysique.DureeUsageAmont + equipementPhysique.DureeUsageAval)
ALORS dureeVieItem= 1
SINON dureeVieItem= (RG_DureeVieItem_Defaut(equipementPhysique) + equipementPhysique.DureeUsageAmont + equipementPhysique.DureeUsageAval)
FIN SI
FIN SI
}
Règle RG_DureeVieItem(operationNonIT) {
Règle RG_DureeVieItem(operationNonIT, dureeVieItem) {
'dans le cas où il est possible de calculer l'age réel de l'item, ce dernier fait foi
SI operationNonIT.dureeDeVie est correcte et renseignée
ALORS
SI operationNonIT.dureeDeVie < 1
ALORS RENVOYER 1
SINON RENVOYER operationNonIT.dureeDeVie
ALORS dureeVieItem= 1
SINON dureeVieItem= operationNonIT.dureeDeVie
'dans les autres cas, une durée de vie moyenne de l'équipement est déduite
SINON
SI RG_DureeVieItem_Defaut(operationNonIT) < 1
ALORS RENVOYER 1
SINON RENVOYER RG_DureeVieItem_Defaut(operationNonIT)
ALORS dureeVieItem= 1
SINON dureeVieItem= RG_DureeVieItem_Defaut(operationNonIT)
FIN SI
}
----
......@@ -510,10 +512,12 @@ La durée de vie des items peut être déterminée par défaut dans le cas où l
Règle RG_DureeVieItem_Defaut(Item, dureeVieItem_Defaut) {
'la durée de vie par défaut des items est celle renseignée dans la table des types d'items
SI l'item en entrée est présent dans la table des références d'items (si Item.type = ref_TypeItem.nom)
ALORS dureeVieItem_Defaut = ref_TypeItem.dureeVieDefaut
'on retient l hypothèse d'une durée de vie par défaut des items égale à la durée de vie des items enregistrée dans les hypothèses
SINON SI ref_Hypothese(dureeVieParDefaut) existe
ALORS dureeVieItem_Defaut = ref_Hypothese(dureeVieParDefaut).valeur
ALORS dureeVieItem_Defaut= ref_TypeItem.dureeVieDefaut
'on retient l'hypothèse d'une durée de vie par défaut des items égale à la durée de vie des items enregistrés dans les hypothèses
SINON (SI Item='equipementPhysique' ET SI ref_Hypothese(dureeVieParDefaut) existe)
ALORS dureeVieItem_Defaut= ref_Hypothese(dureeVieParDefaut).valeur
SINON (SI Item='operationNonIT' ET SI ref_Hypothese(dureeVieBatimentParDefaut) existe)
ALORS dureeVieItem_Defaut= ref_Hypothese(dureeVieBatimentParDefaut).valeur
SINON
ErrCalcul("la durée de vie par défaut de l'item n'a pas pu être déterminée")
FIN SI
......@@ -534,17 +538,17 @@ Cette règle permet de retrouver l'équipement de référence, c'est à dire cel
|paramètre|entree/sortie|Description
|organisation|entrée|l'organisation en cours de traitement
|equipement|entrée|l'équipement dont on cherche la référence
|refEquipementretenu|sortie|l'équipement dont l'impact servira de référence
|refEquipementRetenu|sortie|l'équipement dont l'impact servira de référence
|===
[pseudocode]
----
Règle RG_correspondanceRefEquipement(nomOrganisation, equipement, refEquipementretenu) {
Règle RG_correspondanceRefEquipement(equipement, refEquipementRetenu) {
SI ref_CorrespondanceRefEqP(nomOrganisation, equipement.modele) existe
RENVOYER refEquipementretenu = ref_CorrespondanceRefEqP(nomOrganisation, equipement.modele).refEquipementCible
SI ref_CorrespondanceRefEqP(equipement.modele) existe
refEquipementRetenu= ref_CorrespondanceRefEqP(equipement.modele).refEquipementCible
SINON SI ref_TypeItem(equipement.type).refEquipementParDefaut existe
RENVOYER refEquipementretenu = ref_TypeItem(equipement.type).refEquipementParDefaut
refEquipementRetenu= ref_TypeItem(equipement.type).refEquipementParDefaut
SINON
ErrCalcul("aucune correspondance avec un équipement de référence n'a pu être déterminée")
FIN SI
......@@ -566,15 +570,15 @@ Cette règle permet de retrouver l'item de référence, c'est à dire celui dont
|paramètre|entree/sortie|Description
|organisation|entrée|l'organisation en cours de traitement
|item|entrée|l'item dont on cherche la référence
|refItemParDefaut|sortie|l'item dont l'impact servira de référence
|refItemRetenu|sortie|l'item dont l'impact servira de référence
|===
[pseudocode]
----
Règle RG_correspondanceRefItem(nomOrganisation, item, refItemRetenu) {
Règle RG_correspondanceRefOperationNonIT(nomOrganisation, item, refItemRetenu) {
SI ref_TypeItem(item.type).refItemParDefaut existe
RENVOYER refItemRetenu = ref_TypeItem(equipement.type).refItemParDefaut
refItemRetenu = ref_TypeItem(equipement.type).refItemParDefaut
SINON
ErrCalcul("aucune correspondance avec un item de référence n'a pu être déterminée")
FIN SI
......@@ -617,25 +621,24 @@ Cette règle permet le calcul de l'impact moyen d'un équipement physique sur un
[pseudocode]
----
soit en_EqP(Equipement) = EqP
soit equipementPhysique = EqP
Règle calculIndicateurImpactEquipementPhysique(critere, etape, nomOrganisation, EqP, en_DC, ind_ImpactEquipementPhysique) {
'Récupération de la correspondance de refEquipement
refEquipementRetenu = RG_correspondanceRefEquipement(nomOrganisation, equipementPhysique)
'Récupération de la correspondance de refEquipement
refEquipementRetenu = RG_correspondanceRefEquipement(equipementPhysique)
result=0
ind_ImpactEquipementPhysique(Equipement, EtapeACV, Critere) =
SI EtapeACV.code = "UTILISATION"
EqP.quantité
result= result + EqP.quantité
SI EqP.consoElecAnnuelle est renseigné
x EqP.consoElecAnnuelle
result = result x EqP.consoElecAnnuelle
'enregistrement de la consommation electrique retenue
ind_ImpactEquipementPhysique.consoElecMoyenne = EqP.consoElecAnnuelle
SINON SI
'récupération de la consommation électrique de la référence de l'équipement retenue
x Ref_FacteurCaracterisation(refEquipementRetenu, EtapeACV, Critere).consoElecAnMoyenne
result = result x Ref_FacteurCaracterisation(refEquipementRetenu, EtapeACV, Critere).consoElecAnMoyenne
'enregistrement de la consommation electrique retenue
ind_ImpactEquipementPhysique.consoElecMoyenne = Ref_FacteurCaracterisation(refEquipementRetenu, EtapeACV, Critere).consoElecAnMoyenne
SINON
......@@ -646,60 +649,46 @@ refEquipementRetenu = RG_correspondanceRefEquipement(nomOrganisation, equipement
SI EqP.NomCourtDatacenter est renseigné
SI n_DC(EqP.NomCourtDatacenter).PUE existe
x en_DC(EqP.NomCourtDatacenter).PUE
SINON SI ref_Hypothese(PUEParDefaut)
x ref_Hypothese(PUEParDefaut)
result = result x en_DC(EqP.NomCourtDatacenter).PUE
SINON SI ref_Hypothese(PUEParDefaut) existe
result = result x ref_Hypothese(PUEParDefaut).valeur
SINON
ErrCalcFonc("le PUE est manquant et ne permet le calcul de l'impact à l'usage de l'équipement")
Arret du calcul
FIN SI
x ref_FacteurCaracterisation(EtapeACV, Critere, Categorie=electricity-mix, Localisation = en_DC(NomCourtDatacenter).localisation).valeur
result = result x ref_FacteurCaracterisation(EtapeACV, Critere, Categorie=electricity-mix, Localisation = en_DC(NomCourtDatacenter).localisation).valeur
SINON
x ref_FacteurCaracterisation(EtapeACV, Critere, Categorie=electricity-mix, Localisation = EqP.PaysDUtilisation).valeur
FIN SI
result = result x ref_FacteurCaracterisation(EtapeACV, Critere, Categorie=electricity-mix, Localisation = EqP.PaysDUtilisation).valeur
SI EqP.tauxUtilisation est renseigné
x EqP.tauxUtilisation
SINON SI EqP.modeUtilisation est renseigné
SI ref_Hypothese(EqP.modeUtilisation) existe
EqP.tauxUtilisation = ref_Hypothese(EqP.modeUtilisation)
x EqP.tauxUtilisation
SINON
EqP.tauxUtilisation = 1.0
x EqP.tauxUtilisation
SINON
EqP.tauxUtilisation = 1.0
x EqP.tauxUtilisation
FIN SI
SINON
EqP.quantité
result= result + EqP.quantité
'récupération de l'impact pour le critère et l'étape ACV en cours, de la référence de l'équipement retenue
result = result x Ref_FacteurCaracterisation(refEquipementretenu, EtapeACV, Critere).valeur
result = result/ RG_DureeVieItem_Defaut(equipementPhysique)
FIN SI
SI EqP.tauxUtilisation est renseigné
x EqP.tauxUtilisation
'pour toutes les étapes, on multiplie par un taux d'utilisation
SI EqP.tauxUtilisation est renseigné
result = result x EqP.tauxUtilisation
SINON SI EqP.modeUtilisation est renseigné
SI ref_Hypothese(EqP.modeUtilisation) existe
EqP.tauxUtilisation = ref_Hypothese(EqP.modeUtilisation)
x EqP.tauxUtilisation
EqP.tauxUtilisation = ref_Hypothese(EqP.modeUtilisation).valeur
result = result x EqP.tauxUtilisation
SINON
EqP.tauxUtilisation = 1.0
x EqP.tauxUtilisation
result = result x EqP.tauxUtilisation
SINON
EqP.tauxUtilisation = 1.0
x EqP.tauxUtilisation
result = result x EqP.tauxUtilisation
FIN SI
'récupération de l'impact pour le critère et l'étape ACV en cours, de la référence de l'équipement retenue
x Ref_FacteurCaracterisation(refEquipementretenu, EtapeACV, Critere).valeur
/ RG_DureeVieItem_Defaut(equipementPhysique)
'conso electrique retenue est null
ind_ImpactEquipementPhysique.consoElecMoyenne = null
ind_ImpactEquipementPhysique.impactUnitaire= result
FIN SI
}
----
......@@ -826,34 +815,34 @@ Cette règle permet le calcul de l'impact moyen d'une opération Non IT sur une
|ind_ImpactOperationNonIT.nomItemNonIT|sortie|le nom de l'item dont on a calculé l'impact
|ind_ImpactOperationNonIT.critere|sortie|le critere calculé
|ind_ImpactOperationNonIT.etapeACV|sortie|l'étape ACV calculée
|ind_ImpactOperationNonIT.type|sortie|le type d'item
|ind_ImpactOperationNonIT.typeItem|sortie|le type d'item
|ind_ImpactOperationNonIT.impactUnitaire|sortie|l'impact calculé pour le critère et l'étape ACV, vaut null en cas d'erreur
|ind_ImpactOperationNonIT.quantite|sortie|la quantité d'items
|ind_ImpactOperationNonIT.unite|sortie|l'unité présente dans le référentiel correspondant au critère en cours
|ind_ImpactOperationNonIT.consoElecMoyenne|sortie|la consommation électrique
|ind_ImpactOperationNonIT.qualite|sortie|la qualité de la donnée d'inventaire
|ind_ImpactOperationNonIT.qualite|sortie| operationNonIT.qualite
|===
[pseudocode]
----
soit en_OperatioNonIT(Operation) = OpNIT
soit operationNonIT = OpNIT
Règle calculIndicateurImpactOperationNonIT(critere, etape, nomOrganisation, OpNIT, ind_ImpactOperationNonIT) {
'Récupération de la correspondance de refItem
refItemRetenu = RG_correspondanceRefOperationNonIT(nomOrganisation, OpNIT)
ind_ImpactOperationNonIT(Item, EtapeACV, Critere) =
result = 0
SI OpNIT.categorie = "RESEAU_MOBILE" OU "RESEAU_FIXE" OU "MAINTENANCE" OU "BATIMENT"
SI EtapeACV.code = "UTILISATION"
OpNIT.quantité
result= result + OpNIT.quantité
SI OpNIT.consoElecAnnuelle est renseigné
x OpNIT.consoElecAnnuelle
result= result x OpNIT.consoElecAnnuelle
'enregistrement de la consommation electrique retenue
ind_ImpactOperationNonIT.consoElecMoyenne = OpNIT.consoElecAnnuelle
SINON SI
'récupération de la consommation électrique de la référence de l'équipement retenue
x Ref_FacteurCaracterisation(refItemRetenu, EtapeACV, Critere).consoElecAnMoyenne
result= result x Ref_FacteurCaracterisation(refItemRetenu, EtapeACV, Critere).consoElecAnMoyenne
'enregistrement de la consommation electrique retenue
ind_ImpactOperationNonIT.consoElecMoyenne = Ref_FacteurCaracterisation(refItemRetenu, EtapeACV, Critere).consoElecAnMoyenne
SINON
......@@ -861,44 +850,52 @@ Règle calculIndicateurImpactOperationNonIT(critere, etape, nomOrganisation, OpN
Arret du calcul
FIN SI
x ref_FacteurCaracterisation(EtapeACV, Critere, Categorie=electricity-mix, Localisation = OpNIT.Localisation).valeur
result= result x ref_FacteurCaracterisation(EtapeACV, Critere, Categorie=electricity-mix, Localisation = OpNIT.Localisation).valeur
SINON SI EtapeACV.code != "UTILISATION"
OpNIT.quantité
result= result + OpNIT.quantité
'récupération de l'impact pour le critère et l'étape ACV en cours, de la référence de l'item retenu
x Ref_FacteurCaracterisation(refItemRetenu, EtapeACV, Critere).valeur
'récupération de l'impact pour le critère, de l'étape ACV en cours et de la référence de l'item retenu
result= result x Ref_FacteurCaracterisation(refItemRetenu, EtapeACV, Critere).valeur
SI OpNIT.categorie = "RESEAU_FIXE"
/ ref_Hypothese.valeur(CAPACITE_LIGNE_FIXE_LOCALISATION)
SI OpNIT.categorie = "RESEAU_FIXE"
referenceHypothese= ref_TypeItem(OpNIT.type).refHypothese
SI referenceHypothese existe
SI ref_Hypothese(referenceHypothese) existe
result= result / ref_Hypothese(referenceHypothese).valeur
SINON SI OpNIT.categorie = "BATIMENT"
/ RG_DureeVieItem_Defaut(operationNonIT)
SINON SI OpNIT.categorie = "BATIMENT"
result= result / RG_DureeVieItem_Defaut(operationNonIT)
FIN SI
SINON SI OpNIT.categorie = "DEPLACEMENT_ELECTRIQUE" OU "DEPLACEMENT_ESSENCE" OU DEPLACEMENT_HYBRIDE
'nombre de kilomètres parcourus dans le véhicule
OpNIT.quantité
'la quantité est dans ce cas relative au nombre de kilomètres parcourus par le véhicule
result= result + OpNIT.quantité
'récupération de la consommation moyenne pour le véhicule choisi, valeur récupérée dans ref_hypothèses
x ref_Hypothese.valeur(OpNIT.refHypothese)
referenceHypothese= ref_TypeItem(OpNIT.type).refHypothese
SI referenceHypothese existe
SI ref_Hypothese(referenceHypothese) existe
result= result x ref_Hypothese(referenceHypothese).valeur
SI OpNIT.categorie = "DEPLACEMENT_ELECTRIQUE"
'récupération du mix électrique pour le critère de Fabrication et pour l'étape ACV en cours
x ref_FacteurCaracterisation.valeur(FABRICATION, Critère, mix elec, OpNIT.Localisation))
result= result x ref_FacteurCaracterisation(FABRICATION, Critère, mix elec, OpNIT.Localisation).valeur
SINON SI OpNIT.categorie = "DEPLACEMENT_ESSENCE"
'récupération de l'impact de la production d'essence pour le critère de Fabrication et pour l'étape ACV en cours
x ref_FacteurCaracterisation.valeur(FABRICATION, Critère, Production essence ))
result= result x ref_FacteurCaracterisation(FABRICATION, Critère, Production essence).valeur
SINON SI OpNIT.categorie = "DEPLACEMENT_HYBRIDE"
'récupération de l'impact de la production d'essence pour le critère de Fabrication et pour l'étape ACV en cours
x ref_FacteurCaracterisation.valeur(FABRICATION, Critère, Production essence ))
result= result x ref_FacteurCaracterisation(FABRICATION, Critère, Production essence).valeur
'récupération du taux utile pour le calcul d'impact des véhicules hybrides, valeur récupérée dans ref_hypothèses
x ref_Hypothese.valeur('taux_vehicule_hybride')
result= result x ref_Hypothese('taux_vehicule_hybride').valeur
FIN SI
FIN SI
ind_ImpactOperationNonIT.impactUnitaire = result
}
----
......
......@@ -10,6 +10,7 @@ String source
'liste des types d'items autorisés
class ref_TypeItem{
*String type
' Equipement, BATIMENT, RESEAU_FIXE, DEPLACEMENT_ELECTRIQUE...
String categorie
'le booléen "serveur" permet de distinguer les équipements inclus dans le calcul de l'impact d'un serveur applicatif à l'utilisation
boolean serveur
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment