DEFINITION INCREMENT_840004427 1
DEFINITION CPT_840004427 1501
DEFINITION ERR_SYNTAX_840004427 0x5040
DEFINITION NUMTAB_840004427 4
REGISTRE ENTIER date_plat_840004427
REGISTRE ENTIER erreur_840004427
REGISTRE ENTIER X_840004427
REGISTRE ENTIER Y_840004427
REGISTRE ENTIER Z_840004427
REGISTRE ENTIER cpt_840004427
REGISTRE ENTIER code_rejet_840004427
REGISTRE ENTIER index_840004427
REGISTRE ENTIER EFFICACE_840004427
REGISTRE ENTIER date_audit_840004427
REGISTRE ENTIER res_840004427
REGISTRE POINTEUR pt_1_840004427
REGISTRE POINTEUR pt_2_840004427
REGISTRE POINTEUR pt_CHAMP_ERRONE_840004427
############################################################################
# TRAITEMENT Twha_trt.src
#	Article DC Twha en entree de Platine
#	Pcode de traitement
#	Creation le 28/09/2005
# Historique
# 19/04/06 FO 180 dump article
# 23/06/06 THEFAL G3R0CbME FO 226
# 04/09/06 JLG FO 240 complements
# 21/01/11 - G3R1 lot4 Verification/Correction des variables (constantes, entiers, pointeurs)
# 21/02/12 - G3R6  Differentiation taux de TVA
# 21/03/12 - G3R6 QC1022 Pb controle Code taux de TVA : absence mise en errone
# 20/04/12 JLG QC1036 modif calcul Amount + suppression des champs sans deplacement NumDDR, Sequence, TransId
############################################################################




cpt_840004427=0
EFFICACE_840004427 = 2

trace("=========== debut Pcode TRAITEMENT  =============")

# ALLOCATION DES POINTEURS

pt_CHAMP_ERRONE_840004427 	= "01234567890123456789"
pt_1_840004427 		= "pt_1_22222222222222222222222222222222222222222222222222222222"
pt_2_840004427 		= "pt_2_33333333333333333333333333333333333333333333333333333333"

# initialisation pointeur realise plus bas

################################################################
#       Test Unitaire
################################################################
erreur_840004427= i_test_art(g_iartin)
SI erreur_840004427 !=0
ALORS
#	trace("Champ DATE ou DUREE incorrect")
	i_strcpy(pt_CHAMP_ERRONE_840004427, "DATE DUREE")
	code_rejet_840004427 = ERR_SYNTAX_840004427 + EFFICACE_840004427
	erreur_840004427 = i_PlvMessEmettre(6150,2,g_iartin,"",2,code_rejet_840004427, pt_CHAMP_ERRONE_840004427, 0)
	SAUT STOCKE_ERRONE
FINSI

####### TypeEnr
i_strcpy(pt_1_840004427,"")
erreur_840004427 = i_get_art_str(g_iartin, $Twha::TypeEnr, pt_1_840004427)
#trace2("=============TypeEnr = %s",pt_1,"")
SI (i_strcmp("A", pt_1_840004427) != 0)
ALORS
#	trace("TypeEnr incorrect")
	i_strcpy(pt_CHAMP_ERRONE_840004427, "TypeEnr")
	code_rejet_840004427 = ERR_SYNTAX_840004427 + EFFICACE_840004427
	erreur_840004427 = i_PlvMessEmettre(6151,2,g_iartin,"",2,code_rejet_840004427, pt_CHAMP_ERRONE_840004427, 0)
	SAUT STOCKE_DIV
FINSI

####### NumDDRH
i_strcpy(pt_1_840004427,"")
erreur_840004427 = i_get_art_str(g_iartin, $Twha::NumDDRH, pt_1_840004427)
SI (i_strplcmp(pt_1_840004427,"20",0,2) == 0)
ALORS
#	trace("NumDDRH incorrect")
	i_strcpy(pt_CHAMP_ERRONE_840004427, "NumDDRH")
	code_rejet_840004427 = ERR_SYNTAX_840004427 + EFFICACE_840004427
	erreur_840004427 = i_PlvMessEmettre(6151,2,g_iartin,"",2,code_rejet_840004427, pt_CHAMP_ERRONE_840004427, 0)
	SAUT STOCKE_ERRONE
FINSI

####### SequenceH
i_strcpy(pt_1_840004427,"")
erreur_840004427 = i_get_art_str(g_iartin, $Twha::SequenceH, pt_1_840004427)
#trace2("=============SequenceH = %s",pt_1,"")
SI (i_strplcmp(pt_1_840004427,"20",0,2) == 0)
ALORS
#	trace("SequenceH incorrect")
	i_strcpy(pt_CHAMP_ERRONE_840004427, "SequenceH")
	code_rejet_840004427 = ERR_SYNTAX_840004427 + EFFICACE_840004427
	erreur_840004427 = i_PlvMessEmettre(6151,2,g_iartin,"",2,code_rejet_840004427, pt_CHAMP_ERRONE_840004427, 0)
	SAUT STOCKE_ERRONE
FINSI

####### Duree

####### MontComm
index_840004427=0
POINT BOUCL
SI index_840004427 < 10
ALORS
	SI ((g_iartin.MontCommH[index_840004427] >= 0x30 && g_iartin.MontCommH[index_840004427] <= 0x39) || (g_iartin.MontCommH[index_840004427] == 0x20))
	ALORS
#		trace1( "montant = %x",g_iartin.MontCommH[index])
		index_840004427=index_840004427+1
		SAUT BOUCL
	SINON
#		trace("MontComm incorrect")
		i_strcpy(pt_CHAMP_ERRONE_840004427, "MontComm")
		code_rejet_840004427 = ERR_SYNTAX_840004427 + EFFICACE_840004427
		erreur_840004427 = i_PlvMessEmettre(6151,2,g_iartin,"",2,code_rejet_840004427, pt_CHAMP_ERRONE_840004427, 0)
		SAUT STOCKE_ERRONE
	FINSI
FINSI

####### TransIdH
index_840004427=0
POINT BOUCLE
SI index_840004427 < 24
ALORS
	SI (g_iartin.TransIdH[index_840004427] >= 0x30 && g_iartin.TransIdH[index_840004427] <= 0x39) || g_iartin.TransIdH[index_840004427] == 0x20
	ALORS
#		trace1( "TransIdH = %x",g_iartin.TransIdH[index])
		index_840004427=index_840004427+1
		SAUT BOUCLE
	SINON
#		trace("TransIdH incorrect")
		i_strcpy(pt_CHAMP_ERRONE_840004427, "TransIdH")
		code_rejet_840004427 = ERR_SYNTAX_840004427 + EFFICACE_840004427
		erreur_840004427 = i_PlvMessEmettre(6151,2,g_iartin,"",2,code_rejet_840004427, pt_CHAMP_ERRONE_840004427, 0)
		SAUT STOCKE_ERRONE
	FINSI
FINSI

#G3R6
####### CodeTauxTva
# QC1022
i_strcpy(pt_1_840004427,"")
index_840004427 = 0
res_840004427 = 0
erreur_840004427 = i_get_art_str(g_iartin, $Twha::CodeTauxTva, pt_1_840004427)
SI (i_strcmp("   ", pt_1_840004427) != 0)
ALORS
	POINT BOUCLE_ENTIER
	res_840004427 = i_strtab(pt_1_840004427, index_840004427) - 0x30
	SI (res_840004427 < 0 || res_840004427 > 9)
	ALORS
		trace("<<<__LINE__<<<__FILE__<<< CodeTauxTva incorrect")
		code_rejet_840004427 = ERR_SYNTAX_840004427 + EFFICACE_840004427
		erreur_840004427 = i_PlvMessEmettre(6156,2,g_iartin,"",2,code_rejet_840004427, pt_1_840004427, 0)
		SAUT STOCKE_ERRONE
	FINSI
	index_840004427 = index_840004427 + 1
	SI (index_840004427 < 3)
	ALORS
		SAUT BOUCLE_ENTIER
	FINSI
FINSI
#/G3R6

################################################################
#       Tests semantiques
################################################################

################################################################
#       Tests croises
################################################################

########################################################
# Cpt applicatifs
########################################################
########################################################
########### Date_Audit
date_audit_840004427=i_date_audit()
#trace1("[Twha_tr] date_audit=%x",date_audit)
########### date_plat
date_plat_840004427 = i_DHgetLocalTime(NUMTAB_840004427, 7, date_audit_840004427)
#trace1("======== date_plat = %d ========",date_plat)

# G3R0CbME FO 226
Y_840004427=g_ieec
X_840004427=0x40
Z_840004427=0
#X = i_get_art_field(g_iartin, $Twha::TypeEnr)
cpt_840004427 = CPT_840004427
erreur_840004427=i_incr_cpt(cpt_840004427,X_840004427,Y_840004427,Z_840004427,date_plat_840004427,INCREMENT_840004427)

erreur_840004427 = i_stocke_art(g_iartin, 0, PT_OK, 0)
RETOUR TRAIT_OK

#####################################################################
# POINT de branchement : stockage PT_OK
#####################################################################

POINT STOCKE_OK

erreur_840004427 = i_stocke_art(g_iartin, 0, PT_OK,0)
trace("Fin traitement Article Twha")
RETOUR TRAIT_OK

#####################################################################
# POINT de branchement : stockage PT_ERRONE
#	       correspond au cas d'erreur syntaxiques et semantiques
#####################################################################

POINT STOCKE_ERRONE

trace("Stockage de l'article en ERRONE")
erreur_840004427 = i_make_art_rej(g_iartin, g_iartout, code_rejet_840004427)
erreur_840004427 = i_stocke_art(g_iartout, 0, PT_ERRONE, 0)
trace("Fin traitement Twha")
RETOUR TRAIT_OK

###########################################################################
# Stockage en elimine
###########################################################################

POINT STOCKE_DIV

#IFDEF trace_niv1 = 1
trace( "Fin du Pcode de traitement WHA : Stockage en ELIMINE" )
#ENDIF
erreur_840004427 = i_stocke_art( g_iartin, 0, PT_DIVERS, 0 )

RETOUR TRAIT_OK
#___________________________ FIN Twha_trt.src_________________________________
