Skip to content

Commit

Permalink
validator pour isolation
Browse files Browse the repository at this point in the history
  • Loading branch information
Martin Letellier (Beta.gouv) authored and Martin Letellier (Beta.gouv) committed Nov 12, 2024
1 parent 1c2c85a commit d32484b
Showing 1 changed file with 95 additions and 0 deletions.
95 changes: 95 additions & 0 deletions lib/quote_validator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ def validate_dates
end

# V0 on check la présence - attention devrait dépendre du geste, à terme, on pourra utiliser une API pour vérifier la validité
# Attention, souvent on a le logo mais rarement le numéro RGE.
def validate_rge
end

Expand Down Expand Up @@ -90,6 +91,100 @@ def validate_address(address)

# doit valider les critères techniques associés aux gestes présents dans le devis
def validate_works
works = @quote[:gestes]
works.each do |geste|
case geste[:type]
when 'isolation_mur_ite'
validate_isolation_ite(geste)
when 'isolation_combles_perdues'
validate_isolation_combles(geste)
when 'isolation_rampants-toiture'
validate_isolation_rampants(geste)
when 'isolation_toiture_terrasse'
validate_isolation_toiture_terrasse(geste)
when 'isolation_mur_iti'
validate_isolation_iti(geste)
when 'isolation_plancher_bas'
validate_isolation_plancher_bas(geste)
when 'type_2'
validate_type_2(geste)
when 'type_2'
validate_type_2(geste)
when 'type_2'
validate_type_2(geste)
when 'type_2'
validate_type_2(geste)
else
@errors << "geste_inconnu"
end
end
end

def validate_isolation(geste, error)

error << "marque_manquant" if geste[:marque].blank?
error << "reference_manquant" if geste[:reference].blank?
error << "surface_manquant" if geste[:surface].blank? #TODO : check unité ?
error << "epaisseur_manquant" if geste[:epaisseur].blank? #TODO : check unité ?
error << "R_manquant" if geste[:R].blank?

# TODO : V1 - vérifier les normes


end

def validate_isolation_ite(geste)
error_ite = []

validate_isolation(geste, error_ite)
# TODO : check valeur R en V1 - R ≥ 3,7 m².K/W ou R ≥ 4.4 m².K/W si MAR

# TODO : V1 - présence parement, protection et fixation (pour être éligible MPR, TODO quid CEE)
errors << eror_ite
end

def validate_isolation_combles(geste)
error_comble = []

validate_isolation(geste, error_comble)
# TODO : check valeur R en V1 - R ≥ 7 m².K/W MPR

errors << error_comble
end
def validate_isolation_rampants(geste)
error_rampant = []

validate_isolation(geste, error_rampant)
# TODO : check valeur R en V1 - R ≥ 6 m².K/W MPR

errors << eror_rampant
end
def validate_isolation_toiture_terrasse(geste)
error_toiture = []

validate_isolation(geste, error_toiture)
# TODO : check valeur R en V1 - R ≥ 4,5 m².K/W ou R ≥ 6,5 m².K/W si MAR
error_toiture << "type_isolation_toiture_terrasse_manquant" if geste[:type_isolation_toiture_terrasse].blank?

errors << eror_toiture
end
def validate_isolation_iti(geste)
error_iti = []

validate_isolation(geste, error_iti)
# TODO : check valeur R en V1 - R ≥ 3,70 m².K/W
# Protection des conduits de fumées

# TODO : V1 - présence parement, protection et fixation (pour être éligible MPR, TODO quid CEE)
errors << eror_iti
end
def validate_isolation_plancher_bas(geste)
error_plancher = []

validate_isolation(geste, error_plancher)
# TODO : check valeur R en V1 - R ≥ 3 m².K/W pour les planchers bas sur sous-sol, sur vide sanitaire ou sur passage ouvert
error_toiture << "localisation_manquant" if geste[:localisation].blank?
errors << eror_plancher
end

def valid?
Expand Down

0 comments on commit d32484b

Please sign in to comment.