DEFINITION C_JTV_Type_860026344 "DLV"
DEFINITION C_ARTICLE_860026344 "TjtvDLV"
DEFINITION C_InstMMDM_860026344 "MMDMJDV"
DEFINITION C_TmmdmTjtvDLV_860026344 "TmmdmTjtvDLV"
DEFINITION C_NUMTAB_860026344 1
DEFINITION C_ZONEMETRO_860026344 7
DEFINITION C_NUMTABSEL_860026344 2
DEFINITION C_NUMTAB2_860026344 2
DEFINITION TD_NEWTV_860026344 8
DEFINITION RD_TABLE9_860026344 0x01000000
DEFINITION C_Ref_860026344 "JEUTV"
DEFINITION C_InstTVING_860026344 "TVING"
REGISTRE ENTIER code_rejet_860026344
REGISTRE ENTIER EFFICACE_860026344
REGISTRE ENTIER erreur_860026344
REGISTRE ENTIER instMMDM_860026344
REGISTRE ENTIER code_errone_860026344
REGISTRE ENTIER NUMZONE_860026344
REGISTRE ENTIER ICAR_METRO_860026344
REGISTRE ENTIER ICAR_UTC_860026344
REGISTRE ENTIER ICAR_LOCAL_860026344
REGISTRE ENTIER duree_860026344
REGISTRE ENTIER date_locale_fin_860026344
REGISTRE ENTIER date_Metro_fin_860026344
REGISTRE ENTIER taille_860026344
REGISTRE ENTIER instTypAccTving_860026344
REGISTRE ENTIER res_860026344
REGISTRE ENTIER instECCv_860026344
REGISTRE POINTEUR pt_SGTQS_860026344
REGISTRE POINTEUR pt_temp_860026344
REGISTRE POINTEUR pt_TypeAcces_860026344
REGISTRE POINTEUR pt_ECCv_860026344
REGISTRE POINTEUR pt_AID_860026344
REGISTRE POINTEUR pt_IDUS_NUM_860026344
############################################################################
#	Pcode de Distribution TjtvDLV.src
#
# En entree :
#	Article : TjtvDLV 	DC ISSU DE LA PFS G-CLUSTER
#
# En sortie :
#		MMDM		- g_iartout4	- TmmdmTjtvDLV
#				- g_iartout5 	utilisation interne
#
# Historique
#
# 25/10/2011 - THE DRE - Creation
# 17/12/2013 - DRE - G4R5 QC768
#
############################################################################
# Constantes


# Variables entieres


# Variables pointeurs


############################
# Affectation Pointeurs    #
############################
pt_SGTQS_860026344		= "pt_SGTQS7777777777777777777777"
pt_IDUS_NUM_860026344		= "pt_IDUS_NUM11111111111111111111111111111111"
pt_temp_860026344			= "pt_temp111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
pt_TypeAcces_860026344 		= "pt_TypeAcces1111111111111222222222222222222"
pt_ECCv_860026344 		= "pt_ECCv222222222222222222222222222222222222"
pt_AID_860026344			= "pt_AID9876543210"

############################
# Initialisation variables entieres
############################
EFFICACE_860026344	= 2
instMMDM_860026344 	= 0
NUMZONE_860026344		= 0
ICAR_METRO_860026344	= 0
ICAR_LOCAL_860026344	= 0
date_locale_fin_860026344	= 0
date_Metro_fin_860026344	= 0
taille_860026344		= 0
instTypAccTving_860026344	= 0
res_860026344		= 0
instECCv_860026344	= 0


############################
# Initialisation Pointeurs #
############################
i_strcpy(pt_SGTQS_860026344,"")
i_strcpy(pt_IDUS_NUM_860026344,"")
i_strcpy(pt_AID_860026344,"")
i_strcpy(pt_TypeAcces_860026344,"")



#############################################################################
#############################################################################

############################
# Debut Distribution       #
############################

# Duplication article entree
erreur_860026344 = i_dup_art_id(g_iartin, g_iartout)

erreur_860026344 = i_cree_art("Conversion",g_iartout10)

############################
# Identification de la provenance de l'article
############################

# trait_ok : nb de passage en redistribution

############################
#  Normalisation du champ  IDUS_NUM  (T4phone_number)
############################
SI ( i_valid_field_n(g_iartin,$TjtvDLV::IDUS_NUM) )
ALORS
	erreur_860026344 = i_get_art_str(g_iartout,$TjtvDLV::IDUS_NUM,pt_IDUS_NUM_860026344)

	SI ( i_strplcmp(pt_IDUS_NUM_860026344,"00",0,2) == 0 || i_strplcmp(pt_IDUS_NUM_860026344,"+",0,1) == 0 )
	ALORS
		#InterNational
		SI i_strplcmp(pt_IDUS_NUM_860026344,"00",0,2) == 0
		ALORS
			i_get_sub_str (pt_IDUS_NUM_860026344,2,-1,pt_IDUS_NUM_860026344)
		FINSI

		SI i_strplcmp(pt_IDUS_NUM_860026344,"+",0,1) == 0
		ALORS
			i_get_sub_str (pt_IDUS_NUM_860026344,1,-1,pt_IDUS_NUM_860026344)
		FINSI

		SI i_strplcmp(pt_IDUS_NUM_860026344,"33",0,2) == 0
		ALORS
			i_get_sub_str (pt_IDUS_NUM_860026344,2,-1,pt_IDUS_NUM_860026344)
		FINSI

		SI ( i_strplcmp(pt_IDUS_NUM_860026344,"262",0,3) == 0 || i_strplcmp(pt_IDUS_NUM_860026344,"590",0,3) == 0
		  || i_strplcmp(pt_IDUS_NUM_860026344,"594",0,3) == 0 || i_strplcmp(pt_IDUS_NUM_860026344,"596",0,3) == 0 )
		ALORS
			i_get_sub_str (pt_IDUS_NUM_860026344,3,-1,pt_IDUS_NUM_860026344)
		FINSI
	SINON
		#National
		SI i_strplcmp(pt_IDUS_NUM_860026344,"0",0,1) == 0
		ALORS
			i_get_sub_str (pt_IDUS_NUM_860026344,1,-1,pt_IDUS_NUM_860026344)
		FINSI
	FINSI
FINSI

#DATES
# G4R5 DRE QC768
#SI ( i_valid_field_n(g_iartin,$TjtvDLV::DATE) )
#ALORS
#	ICAR_METRO = i_get_art_field(g_iartout,$TjtvDLV::DATE)
ICAR_METRO_860026344 = i_get_art_field(g_iartout,$TjtvDLV::ddebut)
ICAR_UTC_860026344 = i_DHgetCe2gTime(C_NUMTAB_860026344,C_ZONEMETRO_860026344,ICAR_METRO_860026344)
#SINON
#	ICAR_METRO = i_get_art_field(g_iartout,$TjtvDLV::ddebut)
#	ICAR_UTC = i_DHgetCe2gTime(C_NUMTAB,C_ZONEMETRO,ICAR_METRO)
#FINSI
# \G4R5 DRE QC768

SI ( i_strcmp(pt_IDUS_NUM_860026344, "") != 0 )
ALORS
	erreur_860026344 = i_dup_art_id(g_iartin, g_iartout5)
	erreur_860026344 = i_set_art_str(g_iartout5, $TjtvDLV::IDUS_NUM,pt_IDUS_NUM_860026344)
	NUMZONE_860026344 = i_DHgetZoneID(C_NUMTABSEL_860026344, g_iartout5)
	ICAR_LOCAL_860026344 = i_DHgetLocalTime(C_NUMTAB2_860026344,NUMZONE_860026344, ICAR_METRO_860026344)
SINON
	ICAR_LOCAL_860026344 = ICAR_METRO_860026344
FINSI

duree_860026344 = 0
date_locale_fin_860026344 = ICAR_LOCAL_860026344 + duree_860026344
date_Metro_fin_860026344 = ICAR_METRO_860026344 + duree_860026344

# SGTQS
i_strcpy(pt_SGTQS_860026344, i_LireEECSGTQS(g_ieec))

#  Enregistrement du champ Nom_EEC dans l'ENVELOPPE Optionelle de redistribution
erreur_860026344 = i_add_opt( "EnomEEC" )
erreur_860026344 = i_set_attr_str_n( $EnomEEC::Nom_EEC, pt_SGTQS_860026344)
erreur_860026344 = i_set_attr_val_n( $EnomEEC::date_Locale_fin, date_locale_fin_860026344)
erreur_860026344 = i_set_attr_val_n( $EnomEEC::date_Metro_fin, date_Metro_fin_860026344)

############################
#  Soumission de la requete de consultation d'une table de distribution
############################

SI ( i_strcmp(pt_IDUS_NUM_860026344, "") != 0 )
ALORS
	taille_860026344 = i_conv_ascii_dcb(pt_IDUS_NUM_860026344, pt_temp_860026344)

	SI ( i_EnvoiReqConsTabDist(TD_NEWTV_860026344, ICAR_UTC_860026344, pt_temp_860026344, taille_860026344, 0, 1) != 0 )
	ALORS
		code_rejet_860026344 = 0xA0C0
		code_rejet_860026344 = code_rejet_860026344 + EFFICACE_860026344
		erreur_860026344 = i_PlvMessEmettre(8607,2,g_iartout,"",3,code_rejet_860026344,C_Ref_860026344,C_ARTICLE_860026344)
		SAUT DISTRI_MMDM
	FINSI
SINON
	SAUT DISTRI_MMDM
FINSI

##########################################################################
# Recherche des instances des ECC
##########################################################################

############################
# Recherche instance ECC_Interne
############################

#TypAccTving
instTypAccTving_860026344 = i_LireInstanceECC(C_InstTVING_860026344)

SI (!instTypAccTving_860026344)
ALORS
	#trace("Pas d'instance pour TypAccTving !")
	erreur_860026344 = i_PlvMessEmettre(8501,2,g_iartin,"",3,"TypAccTving",C_ARTICLE_860026344,g_ieec)
	SAUT DISTRI_MMDM
FINSI
#trace1("__FILE__:__LINE__ : instTVING=<%d>",instTypAccTving)

############################
# Lecture Resultat requete
############################

SI ( i_strcmp(pt_IDUS_NUM_860026344, "") != 0 )
ALORS

	erreur_860026344 = i_LireReqConsTabDist()

#Recherche du type d'acces
	erreur_860026344 = i_LireChaineECCv( instTypAccTving_860026344, pt_ECCv_860026344)

	SI erreur_860026344 == 0
	ALORS
		i_get_sub_str(pt_ECCv_860026344, 0, 0, pt_TypeAcces_860026344)
	FINSI

#Recherche de l'AID
	res_860026344 = 0
	instECCv_860026344 = i_LireEntierECCv( instTypAccTving_860026344 )
	res_860026344 = i_LireInfoECC( instTypAccTving_860026344, instECCv_860026344 )

	SI ( res_860026344 != 0 )
	ALORS
		erreur_860026344 = i_LireImsiInfo( res_860026344, 0, 8, pt_AID_860026344)
	FINSI
FINSI

############################
# Controle pour envoi en redistribution
############################

############################
# Convertion PRICE_HT en MONTANT_HT
############################

#####################################################################
# CRITERES DE DISTRIBUTION
#####################################################################

POINT DISTRI_MMDM

#MMDM
instMMDM_860026344 = i_LireInstanceECC(C_InstMMDM_860026344)

SI (!instMMDM_860026344)
ALORS
	#trace("Pas d'instance pour MMDM !")
	erreur_860026344 = i_PlvMessEmettre(8501,2,g_iartin,"",3,"MMDM",C_ARTICLE_860026344,g_ieec)
	SAUT DISTRI_ERR
FINSI
#trace1("__FILE__:__LINE__ : instMMDM=<%d>",instMMDM)

erreur_860026344 = i_AjouterCouranteECC(instMMDM_860026344)

##################################################################################
# Validation de la liste des ECCs destinataires
##################################################################################

erreur_860026344=i_ValiderListeECC( 0, 0, 0, 0)

############################################################################
# Mises au format
############################################################################

#--------------------------------------------------------------------------
# MMDM
#--------------------------------------------------------------------------

SI ( !i_ChercherCouranteECC(instMMDM_860026344) )
ALORS
	SI ( i_dup_art_id(g_iartout,g_iartout4) )
	ALORS
		#trace("Erreur de i_dup_art")
		code_errone_860026344 = 0xA0D0
		code_errone_860026344 = code_errone_860026344 + EFFICACE_860026344
		erreur_860026344 = i_PlvMessEmettre(8602,2,g_iartout,"",3,code_errone_860026344,C_TmmdmTjtvDLV_860026344,C_ARTICLE_860026344)
		SAUT  DISTRI_ERR
	FINSI
	erreur_860026344 = i_rename_art(g_iartout4, C_TmmdmTjtvDLV_860026344)

	#*** Ajout Champs obligatoires ***

	# TYPE_ACCES
	SI ( i_strlen(pt_TypeAcces_860026344) != 0 )
	ALORS
		erreur_860026344 = i_ajoutChampNum(g_iartout4, $TmmdmTjtvDLV::T4type_acces,$TmmdmTjtvDLV::TYPE_ACCES,1)
		erreur_860026344 = i_set_art_str(g_iartout4, $TmmdmTjtvDLV::TYPE_ACCES, pt_TypeAcces_860026344)
		erreur_860026344 = i_resize_tlv ( g_iartout4, "T4type_acces","TYPE_ACCES", i_strlen(pt_TypeAcces_860026344) )
	FINSI

	# AID
	SI ( i_strlen(pt_AID_860026344) != 0 )
	ALORS
		erreur_860026344 = i_ajoutChampNum(g_iartout4, $TmmdmTjtvDLV::T4aid,$TmmdmTjtvDLV::AID,1)
		erreur_860026344=i_set_art_str(g_iartout4,$TmmdmTjtvDLV::AID,pt_AID_860026344)
		erreur_860026344 = i_resize_tlv ( g_iartout4, "T4aid","AID", i_strlen(pt_AID_860026344) )
	FINSI
FINSI

############################################################################
# Envoi vers IECC
############################################################################

#----------------------------------------------------------------------------
# MMDM
#----------------------------------------------------------------------------

SI ( !i_ChercherCouranteECC(instMMDM_860026344) )
ALORS
	erreur_860026344=i_stocke_art_iecc(g_iartout4, instMMDM_860026344)
	trace("Emission vers MMDM reussie")
FINSI

#----------------------------------------------------------------------------
# FIN DISTRIBUTION
#----------------------------------------------------------------------------

RETOUR TRAIT_OK

#####################################################################
# POINT de branchement : stockage PT_ERRONE
#####################################################################

POINT DISTRI_ERR

#IFDEF trace_niv1 = 1
trace2( "Stockage de l'article %s en ERRONE",C_ARTICLE_860026344,"" )
#ENDIF

erreur_860026344 = i_make_art_rej(g_iartin, g_iartout7, code_rejet_860026344)
erreur_860026344 = i_stocke_art(g_iartout7,0,PT_ERRONE,0)

RETOUR TRAIT_OK

