FVERS = 2
REFOBJET : ID = 860026332 ; ID_INIT = 860025891 ; NOM = Tppvwl2B ; VERSION = V30 ; DATE = 01/07/14-08:22:28 ( 1404202948 ) ; CAT = 8 ; ETAT = 0 ; NB_FILS =1 ; ID_FILS = 860026233
ID_EST = 860000110
COMMENT = "05/05/09 -JLG- FTSA-G3R13 QC242 : NOVAH T3 TYPE en ascii"
CREATEUR = teguire
# DEBUT_CORPS
PCODE_PERE=Pdistribution
############################################################################
# Fichier : Tppvwl2.src
#
# Distribution : Tppvwl2
#
# En sortie :
#      utilitaire  Conversion   - g_iartout10
#    SYMPHONIE   - TsymTppvwl2  - g_iartout6
#         SIVM   - TsivmTppvwl2 - g_iartout5
#         CTT1   - TcttTppvwl2  - g_iartout4
#         CTT2   - TcttTppvwl2  - g_iartout3
#         FEMS   - TfemsPPVwl2  - g_iartout2
#        NOVAH   - TnovahPPVwl2 - g_iartout7
#
# HISTORIQUE :
#	07/02/08 FTSA-G3R6 creation
#	28/02/08 -FAL- FTSA-G3R6 FO2326 une seule ECC FEMS
#	17/10/08 -RHE- FTSA-G3R10 QC105 ("commence par '/account'" devient "contient '/account'")
#	05/05/09 -JLG- FTSA-G3R13 QC242 : NOVAH T3 TYPE en ascii
#	04/10/11 - THE - VerifPcode
#	28/05/2013 - THE - G4R3 suppression envoi vers SIVM
#
############################################################################

############################################################################
# Declarations
############################################################################
DEFINITION C_Article "Tppvwl2"
DEFINITION C_TfemsPPVwl2 "TfemsPPVwl2"
DEFINITION C_TnovahPPVwl2 "TnovahPPVwl2"
DEFINITION C_instFEMS "FEMS"
DEFINITION C_instNOVAH "NOVAHppv"
DEFINITION C_InstSYMPH "SYMP"
DEFINITION C_TSymTppvwl2 "TsymTppvwl2"
#G4R3
#DEFINITION C_InstSIVM "SIVMppv"
#DEFINITION C_TSivmTppvwl2 "TsivmTppvwl2"
DEFINITION C_InstCTT1 "CTT1ppv"
DEFINITION C_TCttppvwl2 "TcttTppvwl2"
DEFINITION C_InstCTT2 "CTT2ppv"

# variables entieres
REGISTRE ENTIER instFEMS
REGISTRE ENTIER instNOVAH
REGISTRE ENTIER instSYMPH
#G4R3
#REGISTRE ENTIER instSIVM
REGISTRE ENTIER instCTT1
REGISTRE ENTIER instCTT2
REGISTRE ENTIER b_EFFICACE
REGISTRE ENTIER erreur
REGISTRE ENTIER res
REGISTRE ENTIER code_errone
REGISTRE ENTIER bSIGNE
REGISTRE ENTIER lg_IDUS_N
REGISTRE ENTIER lg_IDUS_N_DCB
REGISTRE ENTIER lg_IDUS_controle
REGISTRE ENTIER b_idus
REGISTRE ENTIER b_CTT1
REGISTRE ENTIER b_CTT2
REGISTRE ENTIER b_FEMS
REGISTRE ENTIER b_DebutAccount

# variables pointeurs
REGISTRE POINTEUR pt_BUF260
REGISTRE POINTEUR pt_BUF60
REGISTRE POINTEUR pt_BUF40
REGISTRE POINTEUR pt_BUF20
REGISTRE POINTEUR pt_sgtqs
REGISTRE POINTEUR pt_ACC_INST
REGISTRE POINTEUR pt_ECCFACT
REGISTRE POINTEUR pt_IDUS_N
REGISTRE POINTEUR pt_IDUS_N_DCB
REGISTRE POINTEUR pt_IDUS_controle

#---------------------------------------------------------------------------
# ALLOCATION  INITIALISATION
#---------------------------------------------------------------------------
pt_BUF260	  = "1234567890123456789212345612345123456789123456789123456123451234567891234567891234561234512345678912345678912345612345123456789123456789123456123451234567891234567891234561234512345678912345678912345612345123456789123456789123456123451234567891234567891234561"
pt_BUF60 	  = "606060606060606060606060606060606060606060606060606060606060"
pt_BUF40 	  = "4040404040404040404040404040404040404040"
pt_BUF20	  = "11223344556677889900"
pt_sgtqs	  = "1111111111111111111111"
pt_ACC_INST	  = "2222222222222222222222"
pt_ECCFACT	  = "4444444444444444444"
pt_IDUS_N	  = "pt_IDUS_N111111111"
pt_IDUS_N_DCB	  = "pt_IDUS_N_DCB2222222"
pt_IDUS_controle  = "pt_IDUS_controle33333333"

instSYMPH	= 0
#G4R3
#instSIVM	= 0
instCTT1	= 0
instCTT2	= 0
instFEMS  	= 0
instNOVAH 	= 0
b_EFFICACE	= 0
erreur		= 0
res		= 0
code_errone	= 0
bSIGNE		= 0
b_CTT1		= 0
b_CTT2		= 0
b_FEMS		= 0
b_DebutAccount	= 0
lg_IDUS_N	= 0
lg_IDUS_N_DCB	= 0
lg_IDUS_controle = 0
b_idus		= 0

# initialisation
i_strcpy(pt_sgtqs,"")
i_strcpy(pt_ECCFACT,"")
i_strcpy(pt_sgtqs,"")
i_strcpy(pt_BUF260,"")
i_strcpy(pt_BUF60,"")
i_strcpy(pt_BUF40,"")
i_strcpy(pt_BUF20,"")
i_strcpy(pt_IDUS_N_DCB,"")
i_strcpy(pt_ACC_INST,"")
i_strcpy(pt_IDUS_N,"")
i_strcpy(pt_IDUS_controle,"")


############################################################################
# Variables Fonctionnelles Globales
############################################################################

# SGTQS
i_strcpy(pt_sgtqs,i_LireEECSGTQS( g_ieec ))

#variable b_DebutAccount vrai si FD/account_poid commence par /account#####
erreur = i_get_art_str(g_iartin, $Tppvwl2::accpoid, pt_BUF260)

SI (i_adequation_chaine_expreg(pt_BUF260, "/account") == 0)
ALORS
	b_DebutAccount=1
FINSI

#variable pt_IDUS_N pseudo_aid ou numero BSS migre #########################
#account_poids 9 octest de gauche de l entree
SI !b_DebutAccount
ALORS
	SI (i_strlen(pt_BUF260) < 9)
	ALORS
		i_strcpy(pt_IDUS_N,pt_BUF260)
	SINON
		i_get_sub_str(pt_BUF260,0,8,pt_IDUS_N)
	FINSI

	lg_IDUS_N = i_strlen(pt_IDUS_N)
	lg_IDUS_N_DCB  = i_conv_ascii_dcb(pt_IDUS_N , pt_IDUS_N_DCB)
	lg_IDUS_controle= i_ConvertirChaine(pt_IDUS_N_DCB, lg_IDUS_N_DCB, 1, pt_IDUS_controle, lg_IDUS_N, 3)

	SI (i_strplcmp ( pt_IDUS_N, pt_IDUS_controle, 0, lg_IDUS_N) == 0)
	ALORS
		b_idus = 1
	FINSI
FINSI
i_strcpy(pt_BUF260,"")

############################################################################
# Controles
############################################################################


############################################################################
# Recherche Instances des ECC
############################################################################

#trace("----------- Recherche des instances --------------")

#---------------------------------------------------------------------------
#  SYMPHONIE
#---------------------------------------------------------------------------

instSYMPH=i_LireInstanceECC(C_InstSYMPH)
#trace1("instSYMPH=<%d>",instSYMPH)
SI (!instSYMPH )
ALORS
	trace("pas d instance SYMPHONIE")
	code_errone = 0xA0B0
	code_errone = code_errone + b_EFFICACE
	erreur = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone,C_InstSYMPH,C_Article)
	SAUT DISTRI_ERR
FINSI

#---------------------------------------------------------------------------
##G4R3  SIVM
#---------------------------------------------------------------------------

#instSIVM=i_LireInstanceECC(C_InstSIVM)
##trace1("instSIVM=<%d>",instSIVM)
#SI (!instSIVM )
#ALORS
#	trace("pas d instance SIVM")
#	code_errone = 0xA0B0
#	code_errone = code_errone + b_EFFICACE
#	erreur = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone,C_InstSIVM,C_Article)
#	SAUT DISTRI_ERR
#FINSI

#---------------------------------------------------------------------------
#  CTT1
#---------------------------------------------------------------------------

instCTT1 =i_LireInstanceECC(C_InstCTT1)
#trace1("instCTT1=<%d>",instCTT1)
SI (!instCTT1 )
ALORS
	trace("pas d instance CTT1")
	code_errone = 0xA0B0
	code_errone = code_errone + b_EFFICACE
	erreur = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone,C_InstCTT1,C_Article)
	SAUT DISTRI_ERR
FINSI

#---------------------------------------------------------------------------
#  CTT2
#---------------------------------------------------------------------------

instCTT2 =i_LireInstanceECC(C_InstCTT2)
#trace1("instCTT1=<%d>",instCTT1)
SI (!instCTT2 )
ALORS
	trace("pas d instance CTT2")
	code_errone = 0xA0B0
	code_errone = code_errone + b_EFFICACE
	erreur = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone,C_InstCTT2,C_Article)
	SAUT DISTRI_ERR
FINSI

#---------------------------------------------------------------------------
#  NOVAH PPV
#---------------------------------------------------------------------------

instNOVAH =i_LireInstanceECC(C_instNOVAH)
#trace1("instNOVAH=<%d>",instNOVAH)
SI (!instNOVAH )
ALORS
	trace("pas d instance NOVAH")
	code_errone = 0xA0B0
	code_errone = code_errone + b_EFFICACE
	erreur = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone,C_instNOVAH,C_Article)
	SAUT DISTRI_ERR
FINSI

############################################################################
# Critere de distribution
############################################################################

#SIVM et SYMPHONIE tous les DC
#CTT1 si account_instance =0
#CTT2 si account_instance =1

SI b_DebutAccount
ALORS
	erreur = i_get_art_str(g_iartin,$Tppvwl2::accinstance,pt_ACC_INST)
	SI (i_strcmp(pt_ACC_INST, "0")==0)
	ALORS
		#trace("accinstance = 0 donc CCT1 sera alimentee")
		erreur = i_AjouterCouranteECC(instCTT1)
		i_strcpy(pt_ECCFACT, "CTT1ppv")
		b_CTT1 = 1
	SINON
		SI (i_strcmp(pt_ACC_INST, "1")==0)
		ALORS
			#trace("accinstance = 1 donc CCT2 sera alimentee")
			erreur = i_AjouterCouranteECC(instCTT2)
			i_strcpy(pt_ECCFACT, "CTT2ppv")
			b_CTT2 = 1
		FINSI
	FINSI
SINON
	SI (lg_IDUS_N_DCB > 3 && b_idus)
	ALORS
		############################################################################
		# Referentiel fixe FEMS; envoi requete TD_Fixe
		############################################################################

		SI (i_EnvoiReqConsTabDist(TD_Fixe, i_get_art_field(g_iartin,$Tppvwl2::DATE), pt_IDUS_N_DCB, lg_IDUS_N_DCB, 0, 1) != 0)
		ALORS
			#trace("Erreur i_EnvoiReqConsTabDist FEMS")
			code_errone = 0xA0C0
			code_errone = code_errone + b_EFFICACE
			erreur = i_PlvMessEmettre(8607,2,g_iartin,"",3,code_errone,"FEMS",C_Article)
			SAUT DISTRI_ERR
		FINSI

		############################################################################
		# Recherche Instances des ECC de facturation FEMS
		############################################################################

		#---------------------------------------------------------------------------
		#  FEMS (referentiel, ECC interne)
		#---------------------------------------------------------------------------

		instFEMS =i_LireInstanceECC(C_instFEMS)
		#trace1("instFEMS=<%d>",instFEMS)
		SI (!instFEMS )
		ALORS
			#trace("pas d instance pour referentiel FEMS")
			trace("pas d instance FEMS")
			code_errone = 0xA0B0
			code_errone = code_errone + b_EFFICACE
			erreur = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone,C_instFEMS,C_Article)
			SAUT DISTRI_ERR
		FINSI

		# FEMS PPV n existe plus

		############################################################################
		# Lecture requete sur Referentiel TD_Fixe FEMS
		############################################################################

		erreur = i_LireReqConsTabDist()
		SI ( erreur != 0 )
		ALORS
			trace1( ">>>__LINE__>>> Erreur i_LireReqConsTabDist FEMS: <%d>", erreur)
			code_errone = 0xA0C0
			code_errone = code_errone + b_EFFICACE
			erreur = i_PlvMessEmettre(8508,2,g_iartin,"",3,C_Article,"LireReqConsTabDist",C_instFEMS)
			SAUT DISTRI_ERR
		FINSI

		res = i_LireInfoECC(instFEMS, i_LireEntierECCv(instFEMS))

		SI (res != 0)
		ALORS
			b_FEMS = 1
		SINON
			b_FEMS = 0
		FINSI
	FINSI
FINSI

############################################################################
# Critere de distribution FEMS pour ppv
############################################################################

SI b_FEMS
ALORS
	#trace("b_FEMS vrai donc FEMS sera alimentee")
	erreur = i_AjouterCouranteECC(instFEMS)
	i_strcpy(pt_ECCFACT, "FEMS")
FINSI

############################################################################
# Critere de distribution NOVAH (poubelle de CT1, CT2, FEMS)
############################################################################

SI (!b_CTT1 && !b_CTT2 && !b_FEMS)
ALORS
	#trace("b_FEMS faux donc NOVAH sera alimentee")
	erreur = i_AjouterCouranteECC(instNOVAH)
	i_strcpy(pt_ECCFACT, "NOVAH")
FINSI

#---------------------------------------------------------------------------
##G4R3  Ajout de SIVM a la liste
#---------------------------------------------------------------------------

# Tous les appels sont pour SIVM
#erreur = i_AjouterCouranteECC(instSIVM)

#---------------------------------------------------------------------------
# Ajout de SYMPHONIE a la liste
#---------------------------------------------------------------------------

# Tous les appels sont pour SYMPHONIE
erreur = i_AjouterCouranteECC(instSYMPH)

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

#---------------------------------------------------------------------------
##G4R3  SIVM (avant convertisseur de sortie) g_iartout5
#---------------------------------------------------------------------------

#SI ( !i_ChercherCouranteECC(instSIVM) )
#ALORS
#	#trace("[Tppvwl2_dis] ppv wanadoo lot2 duplication vers SIVM")
#	# si i_dup_art_id echoue, cad  retour != 0
#	SI (i_dup_art_id(g_iartin,g_iartout5))
#	ALORS
#		trace("[Tppvwl2_dis]ERREUR envoi distri errone i_dup_art_id g_iartout5")
#		erreur = i_PlvMessEmettre(8502,2,g_iartin,"",3,"pour SIVM",C_Article,g_ieec)
#		SAUT DISTRI_ERR
#	FINSI
#
#	# si i_rename_art echoue, cad  retour != 0
#	SI (i_rename_art(g_iartout5,C_TSivmTppvwl2))
#	ALORS
#		trace("[Tppvwl2_dis]ERREUR envoi distri errone i_rename_art g_iartout5 ")
#		erreur = i_PlvMessEmettre(8502,2,g_iartin,"",3,"pour SIVM",C_Article,g_ieec)
#		SAUT DISTRI_ERR
#	FINSI
#
#	#champ serial gros probleme de conversion
#	# entree en ascii 16 octets HEXA vers sortie 20 octets DECIMAL
#	# rang 0 send number
#	# rang 1 a 4 temps en secondes
#	# rang 5 a 7 increment dans les faits 6 et 7 sont a 0
#
#	# pt_BUF260 pour ce qui est en entree et pt_BUF60 pour construction sortie
#	#  pt_20 40 et 60 pour travail intermediaire
#
#	erreur=i_cree_art("Conversion",g_iartout10)
#	#pour info dans Conversion  numHEXA est obligatoire, numerique, hexadecimal
#	erreur=  i_ajoutChamp(g_iartin,"T3ASCII2NUM","ASCII2NUM" ,0)
#
#	erreur = i_get_art_str(g_iartin, $Tppvwl2::serial, pt_BUF260)
#
#	# RANG 0 2 octets vers 3
#	i_get_sub_str(pt_BUF260, 0, 1,pt_BUF20)
#	#trace2("SERIAL RANG 0   entree ASCII HEXA <%s> ",pt_BUF20 ,"")
#	erreur= i_set_art_str(g_iartout10,$Conversion::ASCII2NUM, pt_BUF20)
#	erreur= i_conv_field("ASCII2NUM",g_iartout10,3,g_iartin,1,0)
#	res= i_get_art_field(g_iartin, $Tppvwl2::ASCII2NUM)
#	erreur= i_set_art_field(g_iartout10,$Conversion::numHEXA , res)
#	erreur= i_get_art_str(g_iartout10,$Conversion::numHEXA, pt_BUF20)
#	# pour bourrer sur 3 octets
#	erreur = i_format_str2(pt_BUF40 ,"%s%s", "000" ,pt_BUF20)
#	# pour preparer sortie
#	i_get_sub_str(pt_BUF40, -3, -1,pt_BUF60)
#	#trace2("SERIAL RANG 0  sortie  ASCII DEC  <%s> ",pt_BUF60 ,"")
#
#	# RANG 1 a 4  4 octets vers 10
#	i_get_sub_str(pt_BUF260, 2, 9,pt_BUF20)
#	#trace2("SERIAL RANG 1a4 entree ASCII HEXA <%s> ",pt_BUF20 ,"")
#	erreur= i_set_art_str(g_iartout10,$Conversion::ASCII2NUM, pt_BUF20)
#	erreur= i_conv_field("ASCII2NUM",g_iartout10,3,g_iartin,1,0)
#	res= i_get_art_field(g_iartin, $Tppvwl2::ASCII2NUM)
#	erreur= i_set_art_field(g_iartout10,$Conversion::numHEXA , res)
#	erreur= i_get_art_str(g_iartout10,$Conversion::numHEXA, pt_BUF20)
#	# pour bourrer sur 10 octets
#	erreur = i_format_str2(pt_BUF40 ,"%s%s", "0000000000" ,pt_BUF20)
#	i_get_sub_str(pt_BUF40, -10, -1,pt_BUF20)
#	#trace2("SERAIL RANG 1a4 sortie ASCII DEC  <%s> ",pt_BUF20 ,"")
#	# pour preparer sortie
#	i_strcpy(pt_BUF40 ,pt_BUF60 )
#	erreur = i_format_str2(pt_BUF60 ,"%s%s", pt_BUF40 ,pt_BUF20)
#
#	# RANG 5 a 7  3 octets vers 10   en fait uniquement rang 5
#	# RANG 5 a 7  3 octets HEXA ASCII  vers 6 octets DEC ASCII  en fait uniquement rang fin du 5 ,6 et 7 le debut du 5 est perdu
#	i_get_sub_str(pt_BUF260, 11, 15,pt_BUF20)
#	#trace2("SERIAL RANG 5   entree ASCII HEXA <%s> ",pt_BUF20 ,"")
#	erreur= i_set_art_str(g_iartout10,$Conversion::ASCII2NUM, pt_BUF20)
#	erreur= i_conv_field("ASCII2NUM",g_iartout10,3,g_iartin,1,0)
#	res= i_get_art_field(g_iartin, $Tppvwl2::ASCII2NUM)
#	erreur= i_set_art_field(g_iartout10,$Conversion::numHEXA , res)
#	erreur= i_get_art_str(g_iartout10,$Conversion::numHEXA, pt_BUF20)
#	# pour bourrer sur 10 octets
#	# erreur = i_format_str2(pt_BUF40 ,"%s%s", "000" ,pt_BUF20)
#	# i_get_sub_str(pt_BUF40, -3, -1,pt_BUF20)
#	erreur = i_format_str2(pt_BUF40 ,"%s%s", "0000000" ,pt_BUF20)
#	i_get_sub_str(pt_BUF40, -7, -1,pt_BUF20)
#	#trace2("SERIAL RANG 5a7   sortie ASCII DEC  <%s> ",pt_BUF20 ,"")
#	# pour preparer sortie
#	i_strcpy(pt_BUF40 ,pt_BUF60 )
#	erreur = i_format_str2(pt_BUF60 ,"%s%s", pt_BUF40 ,pt_BUF20)
#	#trace2("SERIAL 0 et 1a4 et 5 sortie ASCII DEC  <%s> ",pt_BUF60 ,"")
#
#	# pour mettre dans le champs 20 octets en sortie
#	# erreur = i_format_str2(pt_BUF40 ,"%s%s", pt_BUF60 ,"0000")
#	#trace2("SERIAL sortie ASCII DEC  <%s> ",pt_BUF40 ,"")
#	#trace2("SIVM  xxxx  serial <%s>" , pt_BUF40,"")
#	# res = i_strlen(pt_BUF40)
#	res = i_strlen(pt_BUF60)
#	erreur= i_resize_tlv(g_iartout5,"T3serial", "serial", res)
#	# erreur= i_set_art_str(g_iartout5, $TsivmTppvwl2::serial, pt_BUF40)
#	erreur= i_set_art_str(g_iartout5, $TsivmTppvwl2::serial, pt_BUF60)
#
#	erreur= i_supprChamp(g_iartin,"T3ASCII2NUM")
#
#	#champ amountvalue avec des centimes et negatif possible
#	erreur= i_get_art_str(g_iartin, $Tppvwl2::amountvalue, pt_BUF20)
#
#	#recherche du signe
#	i_get_sub_str(pt_BUF20,0,0,pt_BUF40)
#	bSIGNE=0
#	SI(i_strcmp(pt_BUF40,"-")==0)
#	ALORS
#		#memoriser pour le mettre en sortie et travail sans le signe
#		bSIGNE=1
#		i_strcpy(pt_BUF40,pt_BUF20)
#		i_get_sub_str(pt_BUF40,1,-1,pt_BUF20)
#		#trace2("amountvalue sans signe <%s>" , pt_BUF20, "")
#	FINSI
#
#	res = i_strlen(pt_BUF20)
#	SI (res >2)
#	ALORS
#		#decoupage simple avec ajout "."
#		i_get_sub_str(pt_BUF20,0,res -3, pt_BUF40)
#		#trace2("amountvalue avant . <%s>", pt_BUF40,"")
#		i_get_sub_str(pt_BUF20,-2,-1, pt_BUF60)
#		#trace2("amountvalue apres . <%s>", pt_BUF60,"")
#		erreur = i_format_str2(pt_BUF20 ,"%s%s", pt_BUF40 ,".")
#		#trace2("amountvalue etape1  <%s>", pt_BUF20,"")
#		erreur = i_format_str2(pt_BUF40 ,"%s%s",pt_BUF20, pt_BUF60)
#		#trace2("amountvalue etape2  <%s>", pt_BUF40,"")
#	SINON
#		#ajout des "0" et du "." pour obtenir un style "0.00
#		#SIG erreur= i_resize_tlv(g_iartout5,"T3amountvalue", "amountvalue",4)
#		SI (res == 0)
#		ALORS
#			i_strcpy(pt_BUF40,"0.00")
#		SINON
#			SI (res == 1)
#			ALORS
#				erreur = i_format_str2(pt_BUF40 ,"%s%s","0.0",pt_BUF20)
#			SINON
#				erreur = i_format_str2(pt_BUF40 ,"%s%s","0.",pt_BUF20)
#			FINSI
#		FINSI
#	FINSI
#	#trace2("SIVM amountvalue sans signe <%s>", pt_BUF40,"")
#	res = i_strlen(pt_BUF40)
#	SI (bSIGNE==0)
#	ALORS
#		erreur= i_resize_tlv(g_iartout5,"T3amountvalue", "amountvalue",res)
#	SINON
#		i_strcpy(pt_BUF20,pt_BUF40)
#		erreur = i_format_str2(pt_BUF40 ,"%s%s","-", pt_BUF20)
#		erreur= i_resize_tlv(g_iartout5,"T3amountvalue", "amountvalue",res+1)
#	FINSI
#	#trace2("SIVM champ amountvalue <%s>", pt_BUF40,"")
#	erreur= i_set_art_str(g_iartout5, $TsivmTppvwl2::amountvalue, pt_BUF40)
#
#	#champ amountunit sans les centimes
#	erreur= i_get_art_str(g_iartin, $Tppvwl2::amountunit, pt_BUF20)
#	erreur= i_resize_tlv(g_iartout5,"T3amountunit", "amountunit", 3)
#	SI (i_strcmp(pt_BUF20, "cEUR")==0)
#	ALORS
#		erreur= i_set_art_str(g_iartout5, $TsivmTppvwl2::amountunit, "EUR")
#	SINON
#		SI(i_strcmp(pt_BUF20, "cFRF")==0)
#		ALORS
#			erreur= i_set_art_str(g_iartout5, $TsivmTppvwl2::amountunit, "FRF")
#		FINSI
#	FINSI
#FINSI

#---------------------------------------------------------------------------
# SYMPHONIE
#---------------------------------------------------------------------------

SI ( !i_ChercherCouranteECC(instSYMPH) )
ALORS
	#trace("[Tppvwl2_dis] ppw lot2 duplication vers sym")
	# si i_dup_art_id echoue, cad  retour != 0

	SI (i_dup_art_id(g_iartin,g_iartout6))
	ALORS
		trace("[Tppvwl2_dis]ERREUR envoi distri errone i_dup_art_id g_iartout6")
		erreur = i_PlvMessEmettre(8502,2,g_iartin,"",3,"pour Symphonie",C_Article,g_ieec)
		SAUT DISTRI_ERR
	FINSI

	# si i_rename_art echoue, cad  retour != 0
	SI (i_rename_art(g_iartout6,C_TSymTppvwl2))
	ALORS
		trace("[Tppvwl2_dis]ERREUR envoi distri errone i_rename_art g_iartout6 ")
		erreur = i_PlvMessEmettre(8502,2,g_iartin,"",3,"pour Symphonie",C_Article,g_ieec)
		SAUT DISTRI_ERR
	FINSI

	#champ en ajout
	erreur=  i_ajoutChamp(g_iartout6,"T4sgtqs","SGTQS" ,6)

	# SGTQS
	erreur = i_set_art_str(g_iartout6, $TsymTppvwl2::SGTQS, pt_sgtqs)

	# ECC FACT
	erreur = i_set_art_str(g_iartout6, $TsymTppvwl2::ECC_FACT, pt_ECCFACT)

	# sup des champs non demandes par symphonie
	erreur = i_supprChamp(g_iartout6, "T3starttimeS")
FINSI

#---------------------------------------------------------------------------
# Mises au format ECC CTT1  g_iartout4
#---------------------------------------------------------------------------

SI ( !i_ChercherCouranteECC(instCTT1) )
ALORS
	#trace("Duplication vers CTT1")
	SI ( i_dup_art_dest(g_iartin,g_iartout4,C_TCttppvwl2) )
	ALORS
		trace("Erreur de i_dup_art")
		code_errone = 0xA0D0
		code_errone = code_errone + b_EFFICACE
		erreur = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone,C_TCttppvwl2,C_Article)
		SAUT  DISTRI_ERR
	FINSI

	#account_poids 80 octest de gauche de l entre
	erreur = i_get_art_str(g_iartin, $Tppvwl2::accpoid, pt_BUF260)
	trace2(" accpoid en entree <%s> ", pt_BUF260, "")
	SI (i_strlen(pt_BUF260) < 80)
	ALORS
		#trace("  longueur inf 80 donc copie directe")
		erreur =  i_set_art_str(g_iartout4, $TcttTppvwl2::accpoid, pt_BUF260)
	SINON
		#trace("  longueur sup 80 donc couper")
		i_get_sub_str(pt_BUF260,0,79,pt_BUF260)
		erreur =  i_set_art_str(g_iartout4, $TcttTppvwl2::accpoid, pt_BUF260)
	FINSI

	#service_poids 100 octest de gauche de l entre
	erreur = i_get_art_str(g_iartin, $Tppvwl2::servpoid, pt_BUF260)
	#trace2(" servpoid en entree <%s> ", pt_BUF260, "")
	SI (i_strlen(pt_BUF260) < 100)
	ALORS
		#trace("  longueur inf 100 donc copie directe")
		erreur =  i_set_art_str(g_iartout4, $TcttTppvwl2::servpoid, pt_BUF260)
	SINON
		#trace("  longueur sup 80 donc couper")
		i_get_sub_str(pt_BUF260,0,99,pt_BUF260)
		erreur =  i_set_art_str(g_iartout4, $TcttTppvwl2::servpoid, pt_BUF260)
	FINSI

	# champ serial par fichier de duplication
	# champ starttime par fichier de duplication
	# champ starttimetz par fichier de duplication
	# champ starttimedst par fichier de duplication
	# champ ppvlogin par fichier de duplication
	# champ transactionid par fichier de duplication

	# champ amountvalue signe
	erreur = i_get_art_str(g_iartin, $Tppvwl2::amountvalue, pt_BUF20)
	i_get_sub_str(pt_BUF20,0,0,pt_BUF40)

	SI(i_strcmp(pt_BUF40,"-")==0)
	ALORS
		#trace2("amountvalue est negatif <%s>", pt_BUF20,"")
		i_get_sub_str(pt_BUF20,1,-1,pt_BUF60)
		#trace2("amountvalue sans signe          <%s>", pt_BUF60,"")
		erreur = i_format_str2(pt_BUF40 ,"%s%s","000000000000",pt_BUF60)
		#trace2("amountvalue sans signe bourre   <%s>", pt_BUF40,"")
		i_get_sub_str(pt_BUF40,-10,-1,pt_BUF60)
		#trace2("amountvalue sans signe bourre10 <%s>", pt_BUF60,"")
		erreur = i_format_str2(pt_BUF20 ,"%s%s","-",pt_BUF60)
		#trace2("amountvalue avec signe <%s>", pt_BUF20,"")
	FINSI
	erreur = i_set_art_str(g_iartout4, $TcttTppvwl2::amountvalue, pt_BUF20)

	# champ amountunit par fichier de duplication
	# champ provider par fichier de duplication
	# champ website par fichier de duplication
	# champ  par fichier de duplication
	# champ  par fichier de duplication


	#desc1 et desc2 peuvent etre vides
	SI (i_valid_field_n(g_iartin, $Tppvwl2::dsc1))
	ALORS
		erreur = i_get_art_str(g_iartin,  $Tppvwl2::dsc1,     pt_BUF260)
		erreur = i_set_art_str(g_iartout4,$TcttTppvwl2::dsc1, pt_BUF260)
	FINSI

	SI (i_valid_field_n(g_iartin, $Tppvwl2::dsc2))
	ALORS
		erreur = i_get_art_str(g_iartin,  $Tppvwl2::dsc2,    pt_BUF260)
		erreur = i_set_art_str(g_iartout4,$TcttTppvwl2::dsc2,pt_BUF260)
	FINSI

	# champ unitpricevalue signe
	erreur = i_get_art_str(g_iartin, $Tppvwl2::unitpricevalue, pt_BUF20)
	i_get_sub_str(pt_BUF20,0,0,pt_BUF40)

	SI(i_strcmp(pt_BUF40,"-")==0)
	ALORS
		#trace2("unitpricevalue est negatif <%s>", pt_BUF20,"")
		i_get_sub_str(pt_BUF20,1,-1,pt_BUF60)
		#trace2("unitpricevalue sans signe          <%s>", pt_BUF60,"")
		erreur = i_format_str2(pt_BUF40 ,"%s%s","000000000000",pt_BUF60)
		#trace2("unitpricevalue sans signe bourre   <%s>", pt_BUF40,"")
		i_get_sub_str(pt_BUF40,-10,-1,pt_BUF60)
		#trace2("unitpricevalue sans signe bourre10 <%s>", pt_BUF60,"")
		erreur = i_format_str2(pt_BUF20 ,"%s%s","-",pt_BUF60)
		#trace2("unitpricevalue avec signe <%s>", pt_BUF20,"")
	FINSI
	erreur = i_set_art_str(g_iartout4, $TcttTppvwl2::unitpricevalue, pt_BUF20)
FINSI

#---------------------------------------------------------------------------
# Mises au format ECC CTT2  g_iartout3
#---------------------------------------------------------------------------

SI ( !i_ChercherCouranteECC(instCTT2) )
ALORS
	#trace("Duplication vers CTT1")
	SI ( i_dup_art_dest(g_iartin,g_iartout3,C_TCttppvwl2) )
	ALORS
		trace("Erreur de i_dup_art")
		code_errone = 0xA0D0
		code_errone = code_errone + b_EFFICACE
		erreur = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone,C_TCttppvwl2,C_Article)
		SAUT  DISTRI_ERR
	FINSI

	#account_poids 80 octest de gauche de l entre
	erreur = i_get_art_str(g_iartin, $Tppvwl2::accpoid, pt_BUF260)
	#trace2(" accpoid en entree <%s> ", pt_BUF260, "")
	SI (i_strlen(pt_BUF260) < 80)
	ALORS
		#trace("  longueur inf 80 donc copie directe")
		erreur = i_set_art_str(g_iartout3, $TcttTppvwl2::accpoid, pt_BUF260)
	SINON
		#trace("  longueur sup 80 donc couper")
		i_get_sub_str(pt_BUF260,0,79,pt_BUF260)
		erreur = i_set_art_str(g_iartout3, $TcttTppvwl2::accpoid, pt_BUF260)
	FINSI

	#service_poids 100 octest de gauche de l entre
	erreur = i_get_art_str(g_iartin, $Tppvwl2::servpoid, pt_BUF260)
	#trace2(" servpoid en entree <%s> ", pt_BUF260, "")
	SI (i_strlen(pt_BUF260) < 100)
	ALORS
		#trace("  longueur inf 100 donc copie directe")
		erreur = i_set_art_str(g_iartout3, $TcttTppvwl2::servpoid, pt_BUF260)
	SINON
		#trace("  longueur sup 80 donc couper")
		i_get_sub_str(pt_BUF260,0,99,pt_BUF260)
		erreur = i_set_art_str(g_iartout3, $TcttTppvwl2::servpoid, pt_BUF260)
	FINSI

	# champ serial par fichier de duplication
	# champ starttime par fichier de duplication
	# champ starttimetz par fichier de duplication
	# champ starttimedst par fichier de duplication
	# champ ppvlogin par fichier de duplication
	# champ transactionid par fichier de duplication

	# champ amountvalue signe
	erreur = i_get_art_str(g_iartin, $Tppvwl2::amountvalue, pt_BUF20)
	i_get_sub_str(pt_BUF20,0,0,pt_BUF40)

	SI(i_strcmp(pt_BUF40,"-")==0)
	ALORS
		#trace2("amountvalue est negatif <%s>", pt_BUF20,"")
		i_get_sub_str(pt_BUF20,1,-1,pt_BUF60)
		#trace2("amountvalue sans signe          <%s>", pt_BUF60,"")
		erreur = i_format_str2(pt_BUF40 ,"%s%s","000000000000",pt_BUF60)
		#trace2("amountvalue sans signe bourre   <%s>", pt_BUF40,"")
		i_get_sub_str(pt_BUF40,-10,-1,pt_BUF60)
		#trace2("amountvalue sans signe bourre10 <%s>", pt_BUF60,"")
		erreur = i_format_str2(pt_BUF20 ,"%s%s","-",pt_BUF60)
		#trace2("amountvalue avec signe <%s>", pt_BUF20,"")
	FINSI
	erreur = i_set_art_str(g_iartout3, $TcttTppvwl2::amountvalue, pt_BUF20)

	# champ amountunit par fichier de duplication
	# champ provider par fichier de duplication
	# champ website par fichier de duplication
	# champ  par fichier de duplication
	# champ  par fichier de duplication

	#desc1 et desc2 peuvent etre vides
	SI (i_valid_field_n(g_iartin, $Tppvwl2::dsc1))
	ALORS
		erreur = i_get_art_str(g_iartin,  $Tppvwl2::dsc1,     pt_BUF260)
		erreur = i_set_art_str(g_iartout3,$TcttTppvwl2::dsc1, pt_BUF260)
	FINSI

	SI (i_valid_field_n(g_iartin, $Tppvwl2::dsc2))
	ALORS
		erreur = i_get_art_str(g_iartin,  $Tppvwl2::dsc2,    pt_BUF260)
		erreur = i_set_art_str(g_iartout3,$TcttTppvwl2::dsc2,pt_BUF260)
	FINSI

	# champ unitpricevalue signe FO1558
	erreur = i_get_art_str(g_iartin, $Tppvwl2::unitpricevalue, pt_BUF20)
	i_get_sub_str(pt_BUF20,0,0,pt_BUF40)

	SI(i_strcmp(pt_BUF40,"-")==0)
	ALORS
		#trace2("unitpricevalue est negatif <%s>", pt_BUF20,"")
		i_get_sub_str(pt_BUF20,1,-1,pt_BUF60)
		#trace2("unitpricevalue sans signe          <%s>", pt_BUF60,"")
		erreur = i_format_str2(pt_BUF40 ,"%s%s","000000000000",pt_BUF60)
		#trace2("unitpricevalue sans signe bourre   <%s>", pt_BUF40,"")
		i_get_sub_str(pt_BUF40,-10,-1,pt_BUF60)
		#trace2("unitpricevalue sans signe bourre10 <%s>", pt_BUF60,"")
		erreur = i_format_str2(pt_BUF20 ,"%s%s","-",pt_BUF60)
		#trace2("unitpricevalue avec signe <%s>", pt_BUF20,"")
	FINSI
	erreur = i_set_art_str(g_iartout3, $TcttTppvwl2::unitpricevalue, pt_BUF20)
FINSI

#---------------------------------------------------------------------------
# Mises au format ECC FEMS PPV (TfemsPPVlw2, g_iartout2)
#---------------------------------------------------------------------------

SI ( !i_ChercherCouranteECC(instFEMS) )
ALORS
	#trace("Duplication vers FEMSppv")
	SI ( i_dup_art_dest(g_iartin,g_iartout2,C_TfemsPPVwl2) )
	ALORS
		trace("Erreur de i_dup_art")
		code_errone = 0xA0D0
		code_errone = code_errone + b_EFFICACE
		erreur = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone,C_TfemsPPVwl2,C_Article)
		SAUT  DISTRI_ERR
	FINSI

	# Type (T)
	#5:32810:$T 			# 0x802E-->T

	#account_poid (AccountPoid)
	erreur =  i_set_art_str(g_iartout2, $TfemsPPVwl2::AccountPoid, pt_IDUS_N)

	#service_poid (ServicePoid)= 100 octets de gauche de l entree sevpoid
	i_strcpy(pt_BUF260,"")
	erreur = i_get_art_str(g_iartin, $Tppvwl2::servpoid, pt_BUF260)
	SI (i_strlen(pt_BUF260) > 100)
	ALORS
		i_get_sub_str(pt_BUF260,0,99,pt_BUF260)
	FINSI
	erreur = i_set_art_str(g_iartout2, $TfemsPPVwl2::ServicePoid, pt_BUF260)

	#serial (serial)
	#1:$serial:$serial		# serial-->serial

	#start_time (DATE)
	#1:$starttimeS:$DATE		# starttimeS-->DATE

	#start_time_tz (StartTimeTz)
	#1:$starttimetz:$StartTimeTz	# starttimetz-->StartTimeTz

	#starttimedst (StartTimeDst)
	#1:$starttimedst:$StartTimeDst	# starttimedst-->StartTimeDst

	#ppplogin (pppLogin)
	#1:$ppplogin:$pppLogin		# ppplogin-->pppLogin

	#transactionid
	#1:$transactionid:$TransactionId	# transactionid-->TransactionId

	#amountvalue signe (AmountValue)
	erreur = i_get_art_str(g_iartin, $Tppvwl2::amountvalue, pt_BUF20)
	i_get_sub_str(pt_BUF20,0,0,pt_BUF40)
	SI(i_strcmp(pt_BUF40,"-")==0)
	ALORS
		i_get_sub_str(pt_BUF20,1,-1,pt_BUF60)
		erreur = i_format_str2(pt_BUF40 ,"%s%s","000000000000",pt_BUF60)
		i_get_sub_str(pt_BUF40,-10,-1,pt_BUF60)
		erreur = i_format_str2(pt_BUF20 ,"%s%s","-",pt_BUF60)
	FINSI
	erreur = i_set_art_str(g_iartout2, $TfemsPPVwl2::AmountValue, pt_BUF20)

	#1:$amountunit:$AmountUnit	# amountunit-->AmountUnit
	#1:$provider:$provider		# provider-->provider
	#1:$website:$website		# website-->website

	#desc1 et desc2 peuvent etre vides
	SI (i_valid_field_n(g_iartin, $Tppvwl2::dsc1))
	ALORS
		erreur = i_get_art_str(g_iartin,  $Tppvwl2::dsc1,     pt_BUF260)
		erreur = i_set_art_str(g_iartout2,$TfemsPPVwl2::desc1, pt_BUF260)
	FINSI
	SI (i_valid_field_n(g_iartin, $Tppvwl2::dsc2))
	ALORS
		erreur = i_get_art_str(g_iartin,  $Tppvwl2::dsc2,    pt_BUF260)
		erreur = i_set_art_str(g_iartout2,$TfemsPPVwl2::desc2,pt_BUF260)
	FINSI

	# unitpricevalue signe (UnitaryPriceVal)
	erreur = i_get_art_str(g_iartin, $Tppvwl2::unitpricevalue, pt_BUF20)
	i_get_sub_str(pt_BUF20,0,0,pt_BUF40)
	SI(i_strcmp(pt_BUF40,"-")==0)
	ALORS
		i_get_sub_str(pt_BUF20,1,-1,pt_BUF60)
		erreur = i_format_str2(pt_BUF40 ,"%s%s","000000000000",pt_BUF60)
		i_get_sub_str(pt_BUF40,-10,-1,pt_BUF60)
		erreur = i_format_str2(pt_BUF20 ,"%s%s","-",pt_BUF60)
	FINSI
	erreur = i_set_art_str(g_iartout2, $TfemsPPVwl2::UnitaryPriceVal, pt_BUF20)
FINSI

#---------------------------------------------------------------------------
# Mises au format ECC NOVAH (TnovahPPVwl2, g_iartout7)
#---------------------------------------------------------------------------

SI ( !i_ChercherCouranteECC(instNOVAH) )
ALORS
#	#trace("Duplication vers SIVM")
	SI ( i_dup_art_tab(g_iartin,g_iartout7,C_TnovahPPVwl2) )
	ALORS
		trace("Erreur de i_dup_art")
		code_errone = 0xA0D0
		code_errone = code_errone + b_EFFICACE
		erreur = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone,C_TnovahPPVwl2,C_Article)
		SAUT  DISTRI_ERR
	FINSI

	# Type (type); fait par l'enveloppe c_type ???
	# NOVAH T3 TYPE en ascii
	erreur = i_set_art_str(g_iartout7,$TnovahPPVwl2::type,"2B")

	# num_compte (numCompte)
	i_strcpy(pt_BUF260,"")
	erreur = i_get_art_str(g_iartin, $Tppvwl2::accpoid, pt_BUF260)
	SI (i_strlen(pt_BUF260) > 9)
	ALORS
		i_get_sub_str(pt_BUF260,0,8,pt_BUF260)
	FINSI
	erreur = i_set_art_str(g_iartout7,$TnovahPPVwl2::numCompte, pt_BUF260)

	#service_epid (serviceEpid)= 100 octets de gauche de l entree sevpoid
	i_strcpy(pt_BUF260,"")
	erreur = i_get_art_str(g_iartin, $Tppvwl2::servpoid, pt_BUF260)
	SI (i_strlen(pt_BUF260) > 100)
	ALORS
		i_get_sub_str(pt_BUF260,0,99,pt_BUF260)
	FINSI
	res = i_strlen(pt_BUF260)
	erreur = i_resize_tlv(g_iartout7,"T3serviceEpid", "serviceEpid", res)
	erreur = i_set_art_str(g_iartout7, $TnovahPPVwl2::serviceEpid, pt_BUF260)

	#serial
	#serial		:-	:-	:1VAL	:	serial

	#T3starttimeS
	#starttimeS	:-	:-	:1VAL	:	starttimeS

	#T3starttimetz
	#starttimetz	:-	:-	:1VAL	:	starttimetz

	#T3starttimedst
	#starttimedst	:-	:-	:1VAL	:	starttimedst

	#T3ppvlogin
	#ppvlogin	:-	:-	:1VAL	:	ppplogin

	#T3transactionId
	#transactionId	:-	:-	:1VAL	:	sestimevalue

	#T3amountval
	#amountval	:-	:-	:MSET	:	20
	#amountvalue signe (amountval)
	erreur = i_get_art_str(g_iartin, $Tppvwl2::amountvalue, pt_BUF20)
	i_get_sub_str(pt_BUF20,0,0,pt_BUF40)

	SI(i_strcmp(pt_BUF40,"-")==0)
	ALORS
		i_get_sub_str(pt_BUF20,1,-1,pt_BUF60)
		erreur = i_format_str2(pt_BUF40 ,"%s%s","000000000000",pt_BUF60)
		i_get_sub_str(pt_BUF40,-10,-1,pt_BUF60)
		erreur = i_format_str2(pt_BUF20 ,"%s%s","-",pt_BUF60)
	FINSI
	erreur = i_set_art_str(g_iartout7, $TnovahPPVwl2::amountval, pt_BUF20)

	#T3amountunit
	#amountunit	:-	:-	:1VAL	:	amountunit

	#T3provider
	#provider	:-	:-	:1VAL	:	provider

	#T3website
	#website 	:-	:-	:1VAL	:	website

	#T3desc1
	#desc1		:-	:-	:1VAL	:	dsc1
	#T3desc2
	#desc2		:-	:-	:1VAL	:	dsc2
	#desc1 et desc2 peuvent etre vides

	#T3unitpriceval
	#unitpriceval	:-	:-	:MSET	:	20
	# unitpricevalue signe (unitpriceval)
	erreur = i_get_art_str(g_iartin, $Tppvwl2::unitpricevalue, pt_BUF20)
	i_get_sub_str(pt_BUF20,0,0,pt_BUF40)

	SI(i_strcmp(pt_BUF40,"-")==0)
	ALORS
		i_get_sub_str(pt_BUF20,1,-1,pt_BUF60)
		erreur = i_format_str2(pt_BUF40 ,"%s%s","000000000000",pt_BUF60)
		i_get_sub_str(pt_BUF40,-10,-1,pt_BUF60)
		erreur = i_format_str2(pt_BUF20 ,"%s%s","-",pt_BUF60)
	FINSI
	erreur = i_set_art_str(g_iartout7, $TnovahPPVwl2::unitpriceval, pt_BUF20)

	#Les 3 champs ace pour metachamps sans passer par enveloppe
	res = i_get_attr_val_n($E_WL2::fin)
	erreur= i_set_art_field(g_iartout7, $TnovahPPVwl2::dloabs,res)
	erreur= i_set_art_field(g_iartout7, $TnovahPPVwl2::DUREE,0)
	res = i_get_attr_val_n($E_WL2::pivot)
	erreur= i_set_art_field(g_iartout7, $TnovahPPVwl2::DATE,res)
FINSI

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

#---------------------------------------------------------------------------
# FEMSppv (TfemsPPVwl2, g_iartout2)
#---------------------------------------------------------------------------

SI (!i_ChercherCouranteECC(instFEMS) )
ALORS
	trace(">>>__LINE__>>> emission vers FEMSppv")
	#FO2326 res = i_stocke_art_iecc( g_iartout2, instFEMSppv )
	res = i_stocke_art_iecc( g_iartout2, instFEMS )
FINSI

#---------------------------------------------------------------------------
# NOVAH (Tnovah, g_iartout7)
#---------------------------------------------------------------------------

SI (!i_ChercherCouranteECC(instNOVAH) )
ALORS
	trace(">>>__LINE__>>> emission vers NOVAH")
	res = i_stocke_art_iecc( g_iartout7, instNOVAH )
FINSI

#---------------------------------------------------------------------------
# SYMPHONIE ENVOIE
#---------------------------------------------------------------------------

SI ( !i_ChercherCouranteECC(instSYMPH) )
ALORS
	erreur = i_stocke_art_iecc(g_iartout6,instSYMPH)
	trace("Emission PPV vers SYMPHONIE")
FINSI

#---------------------------------------------------------------------------
##G4R3  SIVM ENVOIE
#---------------------------------------------------------------------------

#SI ( !i_ChercherCouranteECC(instSIVM) )
#ALORS
#	erreur = i_stocke_art_iecc(g_iartout5,instSIVM)
#	trace("Emission PPV vers SIVM")
#FINSI

#---------------------------------------------------------------------------
# CTT1 ENVOIE
#---------------------------------------------------------------------------

SI ( !i_ChercherCouranteECC(instCTT1) )
ALORS
	erreur = i_stocke_art_iecc(g_iartout4,instCTT1)
	trace("Emission PPV vers CTT1")
FINSI

#---------------------------------------------------------------------------
# CTT2 ENVOIE
#---------------------------------------------------------------------------

SI ( !i_ChercherCouranteECC(instCTT2) )
ALORS
	erreur = i_stocke_art_iecc(g_iartout3,instCTT2)
	trace("Emission PPV vers CTT2")
FINSI

SAUT DISTRI_FIN

SAUT DISTRI_FIN

############################################################################
# Stockage en Errone
############################################################################

POINT DISTRI_ERR

trace("Stockage de l'article en ERRONE")
erreur = i_make_art_rej(g_iartin, g_iartout, code_errone)
erreur = i_stocke_art(g_iartout,0,PT_ERRONE,0)

SAUT DISTRI_FIN

POINT DISTRI_FIN

RETOUR TRAIT_OK

#------------------------------ Tppvwl2B_dis.src ----------------------------
# FIN_CORPS
