DEFINITION Multidistribution_Non_660004673 0
DEFINITION DISTRIBUTION_SPECIALE_660004673 0
DEFINITION C_Tdpv_660004673 "Tdpvgsm"
DEFINITION C_Article_660004673 "Twhaco"
DEFINITION NUMTAB_660004673 4
DEFINITION TRAI_KO_660004673 -1
REGISTRE ENTIER date_plat_660004673
REGISTRE ENTIER date_fin_660004673
REGISTRE ENTIER erreur_660004673
REGISTRE ENTIER Nb_redist_660004673
REGISTRE ENTIER date_660004673
REGISTRE ENTIER EFFICACE_660004673
REGISTRE ENTIER code_errone_660004673
REGISTRE ENTIER type_cra_660004673
REGISTRE ENTIER res_660004673
REGISTRE ENTIER date_audit_660004673
REGISTRE ENTIER longueur_660004673
REGISTRE ENTIER index_660004673
REGISTRE ENTIER duree_660004673
REGISTRE ENTIER VAL_660004673
REGISTRE ENTIER MOD_660004673
REGISTRE ENTIER montant_660004673
REGISTRE ENTIER puissance_660004673
REGISTRE ENTIER Fm_660004673
REGISTRE ENTIER total_660004673
REGISTRE ENTIER total2_660004673
REGISTRE ENTIER ICAR_ABS_660004673
REGISTRE ENTIER mCodeTauxTVA_660004673
REGISTRE POINTEUR pt_1_660004673
REGISTRE POINTEUR pt_idemet_660004673
REGISTRE POINTEUR pt_SGTQS_660004673
REGISTRE POINTEUR pt_BUFFER_660004673
REGISTRE POINTEUR pt_idemet_DCB_660004673
############################################################################
# DISTRIBUTION Twhaco_dist.src
#	Article DC Twhaco en entree de Platine
#	Pcode de distribution
#	Creation le 05/10/2005
# Historique
# Avec Normalisation
# 19/04/06 FO 181 stockage en errone
# 12/05/06 PSA Appel fonction i_incr_redist_dist pour compteur redistribution
# 23/06/06 THEFAL FO 225 G3R0CbME
# 01/09/06 JLG report FO CaME : 240, 242 
# 04/09/06 JLG FO 240 complements
# 09/11/06 PKH FO 323 recuperation du code SGTQS EEC et concatenation avec AX_IDEMET pour interroger variablecontexte
# 16/04/07 PSA FO 477 correction du commentaire de T3t1.18 a 0x0E
# 09/08/07 Creation enveloppe optionnelle E_Redist2
# 27/12/2010 - BEA - G3R1 lot4 Verification/Correction des variables (constantes, entiers, pointeurs)
# 28/03/11 - G3R3 Twha au lieu de Twhaco, correction des indices
# 21/02/12 - G3R6  Differentiation taux de TVA
# 29/02/2012 - JLG -G3R6 QC1005 modif alarme retour aiguillage
# 20/04/12 JLG QC1036 modif calcul Amount + suppression des champs sans deplacement NumDDR, Sequence
# 02/07/2014 - JLG -G5R1 QC1405, champ eec du DPV si g_ieec > 500
# 03/12/2014 - RHE - QC1470 alimentation idemet
# 13/01/2015 - RHE - QC1470 alimentation idemet (33008000000FFFFFFF)
############################################################################





EFFICACE_660004673=2
##############################################################################
# ALLOCATION DES POINTEURS
##############################################################################

pt_1_660004673		= "1111111111111111111111111111111111111111111111111111111111111111111111111"
pt_idemet_660004673	= "4444444444444444444444444444444444444444444444444444444444444444444444444"
pt_SGTQS_660004673 = "777777777777777777777777777777777777777"
pt_BUFFER_660004673 = "888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888"
pt_idemet_DCB_660004673 = "pt_idemet_DCB0123456790123456789"
trace("[Twhaco_dis] Debut Pcode Twhaco distribution")
#erreur = i_fdump_art(g_iartin)

##############################################################################
# Variables fonctionnelles
##############################################################################
#################### Date_Audit
date_audit_660004673=i_date_audit()
#trace1("[Twhaco_dist] date_audit=%x",date_audit)

#G3R6
#################### mCodeTauxTVA
i_strcpy(pt_1_660004673,"")
erreur_660004673 = i_get_art_str(g_iartin, $Twhaco::CodeTauxTva, pt_1_660004673)
SI (i_strcmp("   ", pt_1_660004673) == 0)
ALORS
	mCodeTauxTVA_660004673 = 1
SINON
	mCodeTauxTVA_660004673 = (i_strtab(pt_1_660004673, 0) - 0x30) * 100 + (i_strtab(pt_1_660004673, 1) - 0x30) * 10 + (i_strtab(pt_1_660004673, 2) - 0x30)
FINSI
#/G3R6

##############################################################################
# REDISTRIBUTION     Compteur de redistrib
##############################################################################

##############################################################################
# la provenance de l'article 
# Nb_redist : nb de passage en redistribution (lecture de l'enveloppe obligatoire)
##############################################################################
Nb_redist_660004673 = -1
Nb_redist_660004673 = i_LireRedistCpt()

SI (Nb_redist_660004673 == 0)
ALORS
	erreur_660004673 = i_add_opt( "E_Redistri2" )
FINSI
erreur_660004673 = i_set_attr_val_n( $E_Redistri2::EnvoiRedis, 0)


# FE_0028 comptabilisation des CRAs issus de la redistribution
date_fin_660004673=i_get_art_field(g_iartin,$Twhaco::dfin)
erreur_660004673= i_incr_redist_dist_660004265(date_fin_660004673)

##############################################################################
# NORMALISATION et TRONCATURE
##############################################################################

##############################################################################
# VALORISATION
##############################################################################

##############################################################################
# Conversion DPV3.3
##############################################################################

##############################################################################
# Duplication Tdpv33 (g_iartout)
##############################################################################
#Duplication article d entree vers DPV TLV

SI (i_dup_art_tab( g_iartin, g_iartout, C_Tdpv_660004673))
ALORS
#	trace("ERREUR de duplication")
	code_errone_660004673 = 0xA0D0
	code_errone_660004673 = code_errone_660004673 + EFFICACE_660004673
	erreur_660004673 = i_PlvMessEmettre(6153,2,g_iartin,"",2,code_errone_660004673,C_Tdpv_660004673,0)
	SAUT DISTRI_ERR
FINSI
erreur_660004673 = i_cree_art("Conv_URS",g_iartout10)

#################### T3t1.1 type :MSET :40:1

#################### T3t1.2 tentite :MSET :09:1

#################### V3t1.3 idemet (defaut table dup)   idemet :MSET :FF:9
#################### ICAR_ABS
date_660004673 =i_get_art_field(g_iartin,$Twhaco::DATE)
ICAR_ABS_660004673 =i_date_platine(g_ieec,g_iartin,date_660004673)

#FO323 recuperation du code SGTQS a partir de g_ieec 
i_strcpy(pt_SGTQS_660004673," ")
i_strcpy (pt_SGTQS_660004673, i_LireEECSGTQS(g_ieec))
trace2 ("---------pt_SGTQS = %s -----------",pt_SGTQS_660004673,"")

i_strcpy(pt_idemet_660004673, " ")
i_strcpy(pt_BUFFER_660004673, " ")
erreur_660004673 = i_format_str2(pt_BUFFER_660004673,"%s%s","AX_IDEMET_",pt_SGTQS_660004673)
i_strcpy(pt_idemet_660004673, i_get_tab_field("VariableContexte", ICAR_ABS_660004673, pt_BUFFER_660004673))
#i_strcpy(pt_idemet, i_get_tab_field("VariableContexte", ICAR_ABS, "AX_IDEMET_WHA"))
trace2("[Twhaco_dis] pt_idemet = <%s>",pt_idemet_660004673,"")

# QC1470
#SI (i_strcmp(pt_idemet,g_inull)) != 0
#ALORS
#	longueur= 0
#	longueur=i_strlen(pt_idemet)
#	erreur = i_set_art_str(g_iartout10,$Conv_URS::RepTab, pt_idemet)
##	erreur = i_get_art_str(g_iartout10,$Conv_URS::RepTab, pt_1)
##	trace2("[Twhaco_dis] *****RepTab***=%s",pt_1,"")
#	index=0
#	POINT BOUCLE0
#	SI (index < longueur)
#	ALORS
#		g_iartout10.ax_idemet[index]=g_iartout10.RepTab[index] - 0x30
#		SI (g_iartout10.RepTab[index] > 0x40)
#		ALORS
#			g_iartout10.ax_idemet[index]=g_iartout10.RepTab[index] - 0x37
#		FINSI
##		trace1("index=%d",index)
##		trace1("g_iartout10.ax_idemet=%x",g_iartout10.RepTab[index] - 0x30)
#		index=index+1
#		SAUT BOUCLE0
#	FINSI
#	erreur = i_dup_chp_1val(g_iartout10, g_iartout, $Conv_URS::ax_idemet, $Tdpvgsm::idemet)
#SINON
##	pt_idemet : "33008000000FFFFFFF"
##	longueur = g_iartout.idemet!NELEM
#	g_iartout.idemet[0]= 0x3
#	g_iartout.idemet[1]= 0x3
#	g_iartout.idemet[2]= 0x0
#	g_iartout.idemet[3]= 0x0
#	g_iartout.idemet[4]= 0x8
#	index = 5
#	POINT BOUCLE
#	SI index < 11
#	ALORS
#		g_iartout.idemet[index]= 0x0
#		index = index + 1
#		SAUT BOUCLE
#	FINSI
#FINSI

SI (i_strcmp(pt_idemet_660004673,"") == 0)
  ALORS
  # QC1470 13/01/2015
  #i_strcpy(pt_idemet, "33610000000FFFFFFF")
  i_strcpy(pt_idemet_660004673, "33008000000FFFFFFF")
FINSI
longueur_660004673 = i_conv_ascii_dcb(pt_idemet_660004673, pt_idemet_DCB_660004673)
SI (longueur_660004673 > 9)
  ALORS
  longueur_660004673 = 9
FINSI
erreur_660004673 = i_memcpy_art_field_n(g_iartout, $Tdpvgsm::idemet, pt_idemet_DCB_660004673, longueur_660004673)


#################### T3t1.4 IMSI :MSET :FF:8

index_660004673 = 0
POINT BOUCL
SI index_660004673 < 15
ALORS
	g_iartout.IMSI[index_660004673]= 0x9
	index_660004673 = index_660004673 + 1
	SAUT BOUCL
FINSI

#################### T3t1.5 DATE :1VAL :DATE

#################### T3t1.6 DUREE :1VAL :DUREE
duree_660004673 = i_get_art_field(g_iartin, $Twhaco::DUREE)
erreur_660004673 = i_set_art_field(g_iartout, $Tdpvgsm::DUREE,duree_660004673)

#################### T3t1 .7 svcsup :MSET :FF:1

#################### T3t1.8 tlserv :MSET :11:1

#################### T3t1.9 support1 :MSET :FF:1

#################### T3t1.10 systype :MSET :FF:1

#################### T3t1.11 reserve2 :MSET :FF:1

#################### T3t1.12 origine :MSET :00:1

#################### T3t1.13 indeff :MSET :00:1

#################### T3t1.14 tterm :MSET :00:1

#################### T3t1.15 indtax :MSET :FF:1

#################### T3t1.16 nbUT :MSET :00:4
#id T3t39.6

#################### T3t1.17 chgcar :MSET :FF:2

#################### T3t1.18 couleur :MSET :0E:1

#################### T3t2 idpart :MSET :FF:19    idpart <> Sequence
#trace("============Boucle1=================")
index_660004673=0
POINT BOUCLE1
#trace1( " =============sequenceH = %x", g_iartin.SequenceH[index])
SI ((g_iartin.SequenceH[index_660004673] >= 0x30) && (g_iartin.SequenceH[index_660004673] <= 0x39)) || ((g_iartin.SequenceH[index_660004673] >= 0x41) && (g_iartin.SequenceH[index_660004673] <= 0x45)) || g_iartin.SequenceH[index_660004673] == 0x2A || g_iartin.SequenceH[index_660004673] == 0x23 || g_iartin.SequenceH[index_660004673] == 0x2D
ALORS
	SI ((g_iartin.SequenceH[index_660004673] >= 0x30) && (g_iartin.SequenceH[index_660004673] <= 0x39))
	ALORS
		g_iartout10.idpart[index_660004673]=g_iartin.SequenceH[index_660004673]- 0x30
		index_660004673=index_660004673+1
#		trace1(" index : %d",index)
	SINON
		SI ((g_iartin.SequenceH[index_660004673] >= 0x41) && (g_iartin.SequenceH[index_660004673] <= 0x45))
		ALORS
			g_iartout10.idpart[index_660004673]=g_iartin.SequenceH[index_660004673]- 0x37
			index_660004673=index_660004673+1
#			trace1(" index : %d",index)
		SINON
			SI g_iartin.SequenceH[index_660004673] == 0x2A
			ALORS
				g_iartout10.idpart[index_660004673]=0xB
				index_660004673=index_660004673+1
#				trace1(" index : %d",index)
			SINON
				SI g_iartin.SequenceH[index_660004673] == 0x23
				ALORS
					g_iartout10.idpart[index_660004673]=0xC
					index_660004673=index_660004673+1
#					trace1(" index : %d",index)
				SINON
					SI g_iartin.SequenceH[index_660004673] == 0x2D
					ALORS
						g_iartout10.idpart[index_660004673]=0xE
						index_660004673=index_660004673+1
#						trace1(" index : %d",index)
					FINSI
				FINSI
			FINSI
		FINSI
	FINSI
	SAUT BOUCLE1
FINSI

MOD_660004673=index_660004673%2
SI MOD_660004673!=0
ALORS
	VAL_660004673=((index_660004673/2) + 1)*8
#	trace1(" VAL1 : %d",VAL)
SINON
	VAL_660004673=(index_660004673/2)*8
#	trace1(" VAL2 : %d",VAL)
FINSI
#trace1( " VAL : %d",VAL)
erreur_660004673 = i_resize_tlv(g_iartout10, "T2_Idpart", "idpart", VAL_660004673)

#erreur = i_get_art_str(g_iartout10, $Conv_URS::idpart, pt_1)
#trace2( " Conv_URS idpart : %s",pt_1,"")
#trace1( " index : %d",index)
MOD_660004673 = g_iartout10.idpart!NELEM
trace1( " MOD : %d",MOD_660004673)
SI MOD_660004673 > 6
ALORS
	erreur_660004673 = i_dup_chp_rnisGSM(g_iartout10, g_iartout, $Conv_URS::idpart, $Tdpvgsm::idpart,-$NORM:WHA_PARTNER,0)
	SI ( erreur_660004673 != 0)
	ALORS
		trace("[Twhaco_dis] :Erreur Normalisation pour idpart")
		i_strcpy(pt_1_660004673," pour idpart ")
		code_errone_660004673 = 0xA010
		code_errone_660004673 = code_errone_660004673 + EFFICACE_660004673
		erreur_660004673 = i_PlvMessEmettre(7503,2,g_iartin,"",3,code_errone_660004673,C_Article_660004673,pt_1_660004673)
		SAUT DISTRI_ERR
	FINSI
SINON
	erreur_660004673 = i_dup_chp_1val(g_iartout10, g_iartout, $Conv_URS::idpart, $Tdpvgsm::idpart)
FINSI

#################### T3t3 local :MSET :FF:9     local <> NumDDR
#trace("============Boucle2=================")
index_660004673=0
POINT BOUCLE2
#trace1( " =============NumDDRH = %x", g_iartin.NumDDRH[index])
SI (g_iartin.NumDDRH[index_660004673] >= 0x30 && g_iartin.NumDDRH[index_660004673] <= 0x39) || g_iartin.NumDDRH[index_660004673] == 0x41 || g_iartin.NumDDRH[index_660004673] == 0x4A || g_iartin.NumDDRH[index_660004673] == 0x53 || g_iartin.NumDDRH[index_660004673] == 0x43 
ALORS
	SI (g_iartin.NumDDRH[index_660004673] >= 0x30 && g_iartin.NumDDRH[index_660004673] <= 0x39)
	ALORS
		g_iartout10.local[index_660004673]=g_iartin.NumDDRH[index_660004673]- 0x30
	SINON
		SI g_iartin.NumDDRH[index_660004673] == 0x41
		ALORS
			g_iartout10.local[index_660004673]= 0xB
		SINON
			SI g_iartin.NumDDRH[index_660004673] == 0x4A
			ALORS
				g_iartout10.local[index_660004673]= 0xC
			SINON
				SI g_iartin.NumDDRH[index_660004673] == 0x53
				ALORS
					g_iartout10.local[index_660004673]= 0xD
				SINON
					SI g_iartin.NumDDRH[index_660004673] == 0x43
					ALORS
						g_iartout10.local[index_660004673]= 0xE
					FINSI
				FINSI
			FINSI
		FINSI
	FINSI
	VAL_660004673=g_iartout10.local[index_660004673]
	index_660004673=index_660004673+1
	SAUT BOUCLE2
FINSI
MOD_660004673=index_660004673%2
SI MOD_660004673!=0
ALORS
	VAL_660004673=((index_660004673/2) + 1)*8
#	trace1(" VAL1 : %d",VAL)
SINON
	VAL_660004673=(index_660004673/2)*8
#	trace1(" VAL2 : %d",VAL)
FINSI
#trace1( " VAL : %d",VAL)
erreur_660004673 = i_resize_tlv(g_iartout10, "T2_Local", "local", VAL_660004673)
#erreur = i_get_art_str(g_iartout10, $Conv_URS::local, pt_1)
#trace2( " Conv_URS local : %s",pt_1,"")
#trace1( " index : %d",index)
erreur_660004673 = i_dup_chp_rnisGSM(g_iartout10, g_iartout, $Conv_URS::local, $Tdpvgsm::local,-$NORM:WHA_MSISDN,0)
SI ( erreur_660004673 != 0)
ALORS
	trace("[Twhaco_dis] :Erreur Normalisation pour local")
	i_strcpy(pt_1_660004673," pour local ")
	code_errone_660004673 = 0xA010
	code_errone_660004673 = code_errone_660004673 + EFFICACE_660004673
	erreur_660004673 = i_PlvMessEmettre(7503,2,g_iartin,"",3,code_errone_660004673,C_Article_660004673,pt_1_660004673)
	SAUT DISTRI_ERR
FINSI

#################### T3t4 MSISDN :MSET :FF:19     MSISDN <> NumDDR
#trace("============Boucle3=================")
index_660004673=0
POINT BOUCLE3
#trace1( " =============NumDDRH = %x", g_iartin.NumDDRH[index])
SI (g_iartin.NumDDRH[index_660004673] >= 0x30 && g_iartin.NumDDRH[index_660004673] <= 0x39) || g_iartin.NumDDRH[index_660004673] == 0x41 || g_iartin.NumDDRH[index_660004673] == 0x4A || g_iartin.NumDDRH[index_660004673] == 0x53 || g_iartin.NumDDRH[index_660004673] == 0x43 
ALORS
	SI (g_iartin.NumDDRH[index_660004673] >= 0x30 && g_iartin.NumDDRH[index_660004673] <= 0x39)
	ALORS
		g_iartout10.local[index_660004673]=g_iartin.NumDDRH[index_660004673]- 0x30
	SINON
		SI g_iartin.NumDDRH[index_660004673] == 0x41
		ALORS
			g_iartout10.local[index_660004673]= 0xB
		SINON
			SI g_iartin.NumDDRH[index_660004673] == 0x4A
			ALORS
				g_iartout10.local[index_660004673]= 0xC
			SINON
				SI g_iartin.NumDDRH[index_660004673] == 0x53
				ALORS
					g_iartout10.local[index_660004673]= 0xD
				SINON
					SI g_iartin.NumDDRH[index_660004673] == 0x43
					ALORS
						g_iartout10.local[index_660004673]= 0xE
					FINSI
				FINSI
			FINSI
		FINSI
	FINSI
	index_660004673=index_660004673+1
#	trace1(" index : %d",index)
	SAUT BOUCLE3
FINSI
MOD_660004673=index_660004673%2
SI MOD_660004673!=0
ALORS
	VAL_660004673=((index_660004673/2) + 1)*8
#	trace1(" VAL1 : %d",VAL)
SINON
	VAL_660004673=(index_660004673/2)*8
#	trace1(" VAL2 : %d",VAL)
FINSI
#trace1( " VAL : %d",VAL)
erreur_660004673 = i_resize_tlv(g_iartout10, "T2_Local", "local", VAL_660004673)
erreur_660004673 = i_get_art_str(g_iartout10, $Conv_URS::local, pt_1_660004673)
#trace2( " Conv_URS MSISDN : %s",pt_1,"")
#trace1( " index : %d",index)
erreur_660004673 = i_dup_chp_rnisGSM(g_iartout10, g_iartout, $Conv_URS::local, $Tdpvgsm::MSISDN,-$NORM:WHA_MSISDN,0)
SI ( erreur_660004673 != 0)
ALORS
	trace("[Twhaco_dis] :Erreur Normalisation pour MSISDN")
	i_strcpy(pt_1_660004673," pour MSISDN ")
	code_errone_660004673 = 0xA010
	code_errone_660004673 = code_errone_660004673 + EFFICACE_660004673
	erreur_660004673 = i_PlvMessEmettre(7503,2,g_iartin,"",3,code_errone_660004673,C_Article_660004673,pt_1_660004673)
	SAUT DISTRI_ERR
FINSI

#################### T3t30 
#################### T4t30.1 timeInCE :1VAL :DATE
#################### date_plat
date_plat_660004673 = i_DHgetLocalTime(NUMTAB_660004673, 7, date_audit_660004673)
#trace1("======== date_plat = %d ========",date_plat)
erreur_660004673 = i_set_art_field(g_iartout, $Tdpvgsm::timeInCE,date_plat_660004673)

#################### T4t30.2 eec :MSET :00:1
# QC1405
SI (g_ieec > 500)
ALORS
  erreur_660004673 = i_set_art_field(g_iartout, $Tdpvgsm::eec, g_ieec - 500)
SINON
  erreur_660004673 = i_set_art_field(g_iartout, $Tdpvgsm::eec, g_ieec)
FINSI
#/QC1405

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

#################### T3t39
#G3R6
#################### T4t39.5 balanceUnits		:-	:-	:MSET :00:6
SI (mCodeTauxTVA_660004673 > 0x7F)
ALORS
	erreur_660004673 = i_set_art_fieldtab(g_iartout, $Tdpvgsm::balanceUnits, 0, mCodeTauxTVA_660004673 / 0x100)
	erreur_660004673 = i_set_art_fieldtab(g_iartout, $Tdpvgsm::balanceUnits, 1, mCodeTauxTVA_660004673 % 0x100)
	erreur_660004673 = i_resize_tlv(g_iartout, "T4t39.5", "balanceUnits", 2)
SINON
	erreur_660004673 = i_set_art_fieldtab(g_iartout, $Tdpvgsm::balanceUnits, 0, mCodeTauxTVA_660004673)
	erreur_660004673 = i_resize_tlv(g_iartout, "T4t39.5", "balanceUnits", 1)
FINSI
#/G3R6

#################### T4t39.6 Amount :MSET :00:4     Amount <> MontComm
# QC1036
index_660004673=0
longueur_660004673=0
montant_660004673=0
total_660004673=0
puissance_660004673=0
Fm_660004673=0
POINT BOUCLE4
SI g_iartin.MontCommH[longueur_660004673] >= 0x30 && g_iartin.MontCommH[longueur_660004673] <= 0x39 
ALORS
	longueur_660004673=longueur_660004673+1
	SAUT BOUCLE4
FINSI
longueur_660004673=longueur_660004673-1
puissance_660004673=longueur_660004673
POINT BOUCLE44
SI index_660004673 <= longueur_660004673
ALORS
	montant_660004673=(g_iartin.MontCommH[index_660004673]- 0x30)
	SI puissance_660004673 == 9 && montant_660004673 > 4
	ALORS
		SI montant_660004673 == 9
		ALORS
			Fm_660004673=2
		SINON
			Fm_660004673=1
		FINSI
	FINSI
	montant_660004673=montant_660004673 * (10 ** puissance_660004673)
	total2_660004673=total_660004673+montant_660004673
	SI total2_660004673 < total_660004673
	ALORS
		SI total2_660004673<0 && total_660004673>=0
		ALORS
			SAUT FIN_amount1
		FINSI
		SI total2_660004673>=0 && total_660004673>=0
		ALORS
			Fm_660004673=Fm_660004673+1
			SAUT FIN_amount1
		FINSI
	SINON
		SI total2_660004673>=0 && total_660004673<0
		ALORS
			Fm_660004673=Fm_660004673+1
			SAUT FIN_amount1
		FINSI
	FINSI
	POINT FIN_amount1
	total_660004673=total2_660004673
	index_660004673=index_660004673+1
	puissance_660004673=puissance_660004673-1
	SAUT BOUCLE44
FINSI

erreur_660004673 = i_set_art_field(g_iartout10, $Conv_URS::Amount,total_660004673)
erreur_660004673 = i_set_art_field(g_iartout10, $Conv_URS::FAmount,Fm_660004673)
erreur_660004673 = i_dup_chp_tab(g_iartout10, g_iartout, $Conv_URS::AmountH, $Tdpvgsm::Amount,0)
#/QC1036
#################### T3t1.16 nbUT :MSET :00:4
erreur_660004673 = i_set_art_field(g_iartout, $Tdpvgsm::nbUT,total_660004673)

##############################################################################
# Cpt applicatifs
##############################################################################

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

##############################################################################
# Envoi vers IECC
##############################################################################
#erreur = i_fdump_art(g_iartout)

##############################################################################
# Appel fonction distribution
##############################################################################

erreur_660004673 = aiguillage2_660004590 (g_iartin, g_iartout, DISTRIBUTION_SPECIALE_660004673, Multidistribution_Non_660004673)
SI (erreur_660004673 == TRAI_KO_660004673)
ALORS
# QC1005
	trace("<<<__LINE__<<<__FILE__<<< Erreur retour fonction aiguillage2")
#	code_errone = 0xA0B0
#	code_errone = code_errone + EFFICACE
#	type_cra= 0x01
#	erreur = i_PlvMessEmettre(7500,2,g_iartin,"",3,code_errone,C_Article,type_cra)
	SAUT DISTRI_ERR
FINSI

RETOUR TRAIT_OK

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

POINT DISTRI_ERR

trace( "Stockage en errone de distribution")
res_660004673 = i_make_art_rej(g_iartin, g_iartout8, 0)
res_660004673 = i_stocke_art( g_iartout8, 0, PT_ERRONE, 0)

RETOUR TRAIT_OK

#___________________________ FIN Twhaco_dist.src_________________________________
