package provide stead 2.0


# Calcul du montant ttc d'une valeur

proc ttc args {
    return [expr {$args * 1.196}]
}

########################################################################
# Procédures de conversion euro/francs
# - euro et fr donne une résultat arrondi au centième
# - euro2 et fr2 n'effectuent aucun arrondi
# 
# 
# 
# A FAIRE étendre ces macros pour prendre en entrée une liste de nombre 
# au lieu d'un seul nombre.

# a renommer en fr2euro si conflit
proc euro2 {fr} {
   set frByEuro 6.55957 
   return [expr {$fr / $frByEuro}]
   # return [expr "$fr / $frByEuro"]
}
proc euro {fr} {
   set fr [expr $fr]
   set 100fr  [expr {round(100*[euro2 $fr])}]
   return [expr {$100fr/100.0}]
}

# a renommer en euro2fr si conflit
proc fr2 {euro} {
   set frByEuro 6.55957 
   return [expr {$euro * $frByEuro}]
}
proc fr {euro} {
   set euro [expr $euro]
   set 100euro  [expr round(100*[fr2 $euro])]
   return [expr {$100euro/100.0}]
}

proc euroTest {} {
   append msg "100000 euro = [fr2 100000] Fr    -> [fr 100000] Fr\n"
   append msg "1 euro = [fr2 1] Fr    -> [fr 1] Fr\n"
   append msg "100000 Fr   = [euro2 100000] euro -> [euro 100000] euro\n"
   append msg "1 Fr   = [euro2 1] euro -> [euro 1] euro\n"
   
   append msg "\nVérification des arrondis :\n"

   append msg "1,04 euro = [fr2 1.04] Fr    -> [fr 1.04] Fr\n"
   append msg "1,02 Fr   = [euro2 1.02] euro -> [euro 1.02] euro\n"

   return $msg
}

