# Fonction PCODE ID = 660004265
REGISTRE POINTEUR pt_Hi
REGISTRE POINTEUR pt_tableHoraire
REGISTRE ENTIER date

# type du jour
#   1 lundi au vendredi
#   2 samedi
#   3 dimanche et jours feries
REGISTRE ENTIER tyj

REGISTRE ENTIER quantum
REGISTRE ENTIER heure
REGISTRE ENTIER jour

REGISTRE POINTEUR pt_Cle
#nombre d heure
REGISTRE ENTIER n_heure

REGISTRE ENTIER sizeBuffer
REGISTRE POINTEUR pt_buffer
REGISTRE ENTIER erreur

# nombre de minute
REGISTRE ENTIER n_minute

# duree restante dans la tranche
REGISTRE ENTIER duree_r

REGISTRE POINTEUR  pt_Liste

pt_Hi = depilerPOINTEUR()
pt_tableHoraire = depilerPOINTEUR()
date = depilerENTIER()

trace ("appel a find_tranche ")

jour = i_sdat_to_jdat (date)
heure = date - jour * 86400

quantum = jour % 7

tyj = i_get_type_jour_660004265(quantum)

n_heure = heure / 3600
n_minute = (heure - n_heure * 3600 ) / 60

SI (n_minute < 30)
ALORS
  n_minute = 0
  duree_r =  ( n_heure *3600 + 30 * 60 ) - heure
SINON
  n_minute = 30
  duree_r = (n_heure + 1 ) * 3600 - heure
FINSI

pt_buffer = "123456789012345"
sizeBuffer = 15
i_strcpy(pt_buffer,"")
erreur = i_EntierToString(tyj, pt_buffer, sizeBuffer)
pt_Cle = "12345678901234567890"
erreur = i_format_str2(pt_Cle, "%s%s",pt_buffer,"_")

erreur = i_EntierToString(n_heure, pt_buffer, sizeBuffer)
SI (n_heure < 10 )
ALORS
  erreur = i_format_str2(pt_Cle, "%s0%s", pt_Cle, pt_buffer)
SINON
  erreur = i_format_str2(pt_Cle, "%s%s", pt_Cle, pt_buffer)
FINSI

erreur = i_EntierToString(n_minute, pt_buffer, sizeBuffer)
SI (n_minute < 10 )
ALORS
  erreur = i_format_str2(pt_Cle, "%s0%s", pt_Cle, pt_buffer)
SINON
  erreur = i_format_str2(pt_Cle, "%s%s", pt_Cle, pt_buffer)
FINSI

pt_Liste = "0123456789"

pt_Liste = i_get_tab_field (pt_tableHoraire , date, pt_Cle)
SI (pt_Liste == g_inull)
ALORS
  trace2("la cle <%s> n'as pas ete trouve dans la table <%s>", pt_Cle, pt_tableHoraire)
  RETOUR -1
FINSI

i_strcpy(pt_Hi, pt_Liste)

trace2 (" %s : <%s>", "Hi", pt_Hi)
trace1 (" duree restante %d", duree_r )
RETOUR duree_r

