# Fonction PCODE ID = 660004265
REGISTRE POINTEUR pt_Table_Externe
REGISTRE ENTIER i_champ
REGISTRE ARTOBJ artobj

REGISTRE POINTEUR pt_date_hex
REGISTRE POINTEUR pt_date_ascii
REGISTRE POINTEUR pt_date_tabexe
REGISTRE POINTEUR pt_inttemps
REGISTRE POINTEUR pt_AAMMJJ
REGISTRE POINTEUR pt_hhmmss
REGISTRE ENTIER  lg_date_tabexe
REGISTRE ENTIER  erreur
REGISTRE ENTIER  res
REGISTRE ENTIER  date_art

pt_Table_Externe = depilerPOINTEUR()
i_champ = depilerENTIER()
artobj = depilerARTOBJ()
#-initialisation des variables

pt_date_hex="01234567890123"
pt_date_ascii="AAAAMMJJhhmmss"
pt_date_tabexe="hhmmss-hhmmss,hhmmss-hhmmss,hhmmss-hhmmss,hhmmss-hhmmss"
pt_inttemps="hhmmss-hhmmss"
pt_AAMMJJ="AAMMJJ"
pt_hhmmss="hhmmss"

trace1("SMS-C indice champ date est :<%d>",i_champ)
pt_date_hex=i_get_art_fieldptr(artobj,i_champ)

date_art=i_get_art_field(artobj,i_champ)
trace1("SMS-C date article:<%x>",date_art)

#-conversion de la date HEXA au format ASCCI

erreur=i_ConvertirChaine(pt_date_hex,14,1,pt_date_ascii,14,3)

trace2("SMS-C pt_date_ascii:<%s> %s",pt_date_ascii, "")
#--recuperation des deux parties: AAMMJJ et hhmmss de la date pt_date_ascii


i_get_sub_str(pt_date_ascii,2,7,pt_AAMMJJ)
i_get_sub_str(pt_date_ascii,8,13,pt_hhmmss)

trace2("SMS-C pt_AAMMJJ :<%s> %s",pt_AAMMJJ, "")
trace2("SMS-C pt_hhmmss :<%s> %s",pt_hhmmss, "")
#- recherche de la cle pt_AAMMJJ dans la table externe pt_Table_Externe

i_strcpy(pt_date_tabexe,i_get_tab_field(pt_Table_Externe,date_art,pt_AAMMJJ))

SI (!(i_strcmp(pt_date_tabexe,g_inull)))
ALORS
  trace("SMS-C cle non trouve dans la table SMS_CMG_HGratuit")
  RETOUR 0
SINON
  # recherche de la partie hhmmss dans le resultat retourne

  lg_date_tabexe=i_strlen(pt_date_tabexe)
  trace1("SMS-C longeur valeur :<%d>",lg_date_tabexe)
  trace("SMS-C cle trouvee dans la table externe")

  POINT BOUCLE_HHMMSS

  erreur=i_recupererValeur(pt_date_tabexe,pt_inttemps,13,',')
  trace2("SMS-C pt_date_tabexe :<%s> %s",pt_date_tabexe, "")
  SI (erreur!=0)
  ALORS
    trace("SMS-C erreur i_recupererValeur")
    RETOUR 0
  FINSI
  SI (!i_strcmp(pt_inttemps,g_inull))
  ALORS
    trace("SMS-C date article non trouve dans les tranches d intervalles gratuits")
    RETOUR 0
  SINON

    trace2("SMS-C pt_inttemps :<%s> %s",pt_inttemps,"")
    res=i_tester_intervalle(pt_inttemps,pt_hhmmss)

    SI (res==1)
    ALORS
      trace("SMS-C date article trouvee dans les tranches d intervalles gratuit")
      RETOUR 1
    SINON
      SAUT BOUCLE_HHMMSS
    FINSI
  FINSI
FINSI
