# Fonction PCODE ID = 860026233
REGISTRE ENTIER CCD
REGISTRE ENTIER E
REGISTRE ENTIER instance_VTG
# ---------------------------------------------------------------------------
#
# FICHIER     : VTG_TRANSCCD.src
#
# VERSION     : %version: 4.2 %
#
# AUTEUR      : %created_by: loic %
#
# CREE le     : 05/03/02 09:27
#
# MODIFIE le  : %date_modified: 05/03/02 09:27 %
#
# DESCRIPTION : Cette fonction retourne un booleen indiquant si le DC correspond a
#  l'appel d'un client VTG ayant souscrit a "l'offre 1" (offre basee sur le E
#  du numero demande et le CCD du DC. 
#
# HISTORIQUE  : 
#	09/04/2001                  Creation
#       22/01/2002 - FOEX334 - LRA : Correction algo par rapport aux specs Intro aux DC 4.2
#	14/02/2002 - FOEX402 - CMI : Evolution de specs (inversion et E et CCD dans l'algo)
#
# EN ENTREE :
#   instance_VTG : instance VTG
#   E            : numero_demande
#   CCD          : ECC Virtuelle
#
# EN SORTIE:
#   Aucune
#
# RETOUR: 0 = FAUX
#	  1 = VRAI
#
# ---------------------------------------------------------------------------

#---------------------------------------------------------------------------
# CONSTANTES LOCALES
#---------------------------------------------------------------------------


#---------------------------------------------------------------------------
# VARIABLES LOCALES
#---------------------------------------------------------------------------

# --------------------------------------------------------
# Variables pour la reception des arguments de la fonction
# --------------------------------------------------------
# Instance de VTG
# E du numero demande
# CCD


# --------------------------------------------------------
# Infos complementaires de la table de distribution
# --------------------------------------------------------
REGISTRE ENTIER		adresse_infos
REGISTRE ENTIER		infos

# Divers
REGISTRE ENTIER		VRAI
REGISTRE ENTIER		FAUX
REGISTRE ENTIER 	indice

# La taille max. des info. complementaires est de 8 octets, indexes de 0 a 7: 
DEFINITION	IND_MAX_INFO 	7

# ---------------------------------------------------------------------------
# DEBUT DES TRAITEMENTS
# ---------------------------------------------------------------------------

CCD = depilerENTIER()
E = depilerENTIER()
instance_VTG = depilerENTIER()
trace( "APPEL VTG_TRANSCCD" )

# ---
# recuperation des valeurs d'entree
# ---

#trace1( "                 CCD = <%d>", CCD )
#trace1( " E du numero demande = <%d>", E )
#trace1( "        instance_VTG = <%d>", instance_VTG )

# ---
# Valeur des variables
# ---
VRAI = 1
FAUX = 0
indice = 0

# ---------------------------------------------------------------------------
# Tests en entre ( E=0 ou 8 )
# ---------------------------------------------------------------------------
SI( ( E != 0 ) && ( E != 8 ) && ( E != 0xBB ) )
ALORS
	trace( "E!=0, E!=8 et E!=BB => VTG_TRANSCCD = FAUX)" )
	# retour VTG_TRANSCCD = FAUX
	RETOUR FAUX
FINSI

# ---------------------------------------------------------------------------
# Recuperation de l'adresse des infos complementaires de la table de distribution
# ---------------------------------------------------------------------------
# 14/02/2002 - FOEX402 - CMI
adresse_infos= i_LireInfoECC( instance_VTG, CCD )
#trace1("Retour de i_LireInfoECC -  VTG: <%p>", adresse_infos)
#G2R1Cj_PLUS_FO1406	SI ( adresse_infos <= 0 )
SI ( adresse_infos == 0 )
ALORS
  	trace1( "VTG n'est pas dans la table DISTRI avec CCD = %d (=>VTG_TRANSCCD = FAUX)", CCD )
	# retour VTG_TRANSCCD = FAUX
	RETOUR FAUX
FINSI

# ---------------------------------------------------------------------------
# E = info complementaire ?
# ---------------------------------------------------------------------------

POINT INFO_BOUCLE

infos = i_LireEntierInfo( adresse_infos, indice, 1 )
trace1("Infos complementaires = <%d>", infos)
# 22/01/2002 - FOEX334 - LRA
# 14/02/2002 - FOEX402 - CMI
SI ( E == infos )
ALORS
	trace( "E = info complementaire (=>VTG_TRANSCCD = VRAI)" )
	# retour VTG_TRANSCCD = VRAI
	RETOUR VRAI
FINSI

SI ( (indice < IND_MAX_INFO) && ( infos != 0xFF  ) )
ALORS
	indice =  indice + 1
	SAUT INFO_BOUCLE
FINSI

trace1( "E (%d)  != info complementaire (=>VTG_TRANSCCD = FAUX)", E )
# retour VTG_TRANSCCD = FAUX
RETOUR FAUX

# fin de fichier
