DEFINITION INCREMENT_840000613 1
DEFINITION CPT_840000613 1501
DEFINITION ERR_SYNTAX_840000613 0x5040
DEFINITION ERR_TABLE_840000613 0x50A0
DEFINITION NUMTAB_840000613 4
DEFINITION Liste_TPE_840000613 "TYPE_TELSVC"
DEFINITION MontantNul_840000613 "000000000000"
DEFINITION ESPACE_840000613 " "
DEFINITION C_str_FFMv3_840000613 "FFMv3"
DEFINITION C_str_NetMobile_840000613 "NetMobile"
REGISTRE ENTIER b_FFMv3_840000613
REGISTRE ENTIER date_plat_840000613
REGISTRE ENTIER erreur_840000613
REGISTRE ENTIER nbcs_840000613
REGISTRE ENTIER flag_840000613
REGISTRE ENTIER X_840000613
REGISTRE ENTIER Y_840000613
REGISTRE ENTIER Z_840000613
REGISTRE ENTIER cpt_840000613
REGISTRE ENTIER code_rejet_840000613
REGISTRE ENTIER index_840000613
REGISTRE ENTIER EFFICACE_840000613
REGISTRE ENTIER EFFICACE_DC_840000613
REGISTRE ENTIER date_audit_840000613
REGISTRE ENTIER duree_840000613
REGISTRE ENTIER NbDPV_CS_840000613
REGISTRE ENTIER USAGE_CS_840000613
REGISTRE ENTIER EFFICACE_CS_840000613
REGISTRE ENTIER longueur_840000613
REGISTRE ENTIER NetMobile_840000613
REGISTRE POINTEUR pt_CHAMP_ERRONE_840000613
REGISTRE POINTEUR pt_1_840000613
REGISTRE POINTEUR pt_2_840000613
REGISTRE POINTEUR pt_CodCS_CodOP_840000613
REGISTRE POINTEUR pt_TypeAppel_TelSvc_840000613
REGISTRE POINTEUR pt_TypeAppel_840000613
REGISTRE POINTEUR pt_CodOff_840000613
REGISTRE POINTEUR pt_valeur_840000613
############################################################################
# TRAITEMENT TtpecsV2_trt.src
#	Article DC TtpecsV2 en entree de Platine
#	Pcode de traitement
#	Creation le 03/07/2006
# Historique
# 10/08/06 PKH Correction FO255 Controle syntaxique champ NbCs et Numbre
# 06/10/06 PSA G3R0CdME : prise en compte de la spec S1F0
# 17/10/06 PSA G3R0CdME : prise en compte de la spec S1F1
# 13/11/06 PSA G3R0CdME : FO 337
# 23/11/06 PSA G3R0CdME : FO 344, 349
# 07/02/07 PSA G3R0CdME : FO 421
# 05/03/07 PSA G3R0CdME : FO 440 : prise en compte de la spec TPE V2 S0F3
# 26/06/07 PSA G1R4 : FO 540 (+ prise en compte Net et Mobile)
# 04/06/08 FAL G1R8 FFMv3
# 20/01/11 - G3R1 lot4 Verification/Correction des variables (constantes, entiers, pointeurs) 
############################################################################

#G1R8



cpt_840000613=0
EFFICACE_840000613 = 2
NetMobile_840000613 = 0
#G1R8
b_FFMv3_840000613 = 0
#trace("[TtpecsV2_trt] =========== debut Pcode TRAITEMENT  =============")

# ALLOCATION DES POINTEURS

pt_CHAMP_ERRONE_840000613 = "01234567890123456789"
pt_1_840000613 = "22222222222222222222222222222222222222222222222222222222"
pt_2_840000613 = "33333333333333333333333333333333333333333333333333333333"
pt_CodCS_CodOP_840000613 = "4444444444444444444444444444444444444444444444444444433333333333333333333333333333333333333333333333333333333"
pt_TypeAppel_TelSvc_840000613 = "55555555555555555555555555555555555555555"
pt_TypeAppel_840000613 = "777777777"
pt_CodOff_840000613 = "979797979797979797979797979797979797979797997979797987979797"
pt_valeur_840000613 = "32323232323232323232323232323232323232323232323232323232323232"

i_strcpy(pt_CodOff_840000613,"")
i_strcpy(pt_TypeAppel_840000613,"")

################################################################
#       Test Unitaire
################################################################

####### TypQte
erreur_840000613 = i_get_art_str(g_iartin, $TtpecsV2::TypQte, pt_1_840000613)
i_get_sub_str(pt_1_840000613, 0, 0, pt_1_840000613)

SI ((i_strcmp(pt_1_840000613,"0") != 0) && (i_strcmp(pt_1_840000613,"1") != 0) && (i_strcmp(pt_1_840000613,"2") != 0))
ALORS
	i_strcpy(pt_CHAMP_ERRONE_840000613, "TypQte")
	code_rejet_840000613 = ERR_SYNTAX_840000613 + EFFICACE_840000613
	erreur_840000613 = i_PlvMessEmettre(6557,2,g_iartin,"",3,code_rejet_840000613, pt_1_840000613, pt_CHAMP_ERRONE_840000613)
	SAUT STOCKE_ERRONE
FINSI

####### NumDdr non vide
i_strcpy(pt_1_840000613, " ")
i_strcpy(pt_2_840000613, " ")
erreur_840000613 = i_get_art_str(g_iartin, $TtpecsV2::NumDdr, pt_1_840000613)
i_get_sub_str(pt_1_840000613, 0, 0, pt_2_840000613)
#trace2("[TtpecsV2_trt] =============NumDdr = %s==== 1ercaractere =%s",pt_1,pt_2)

SI (i_strcmp(" ", pt_2_840000613) == 0)
ALORS
	i_strcpy(pt_CHAMP_ERRONE_840000613, "NumDdr")
	code_rejet_840000613 = ERR_SYNTAX_840000613 + EFFICACE_840000613
	erreur_840000613 = i_PlvMessEmettre(6557,2,g_iartin,"",3,code_rejet_840000613, pt_2_840000613, pt_CHAMP_ERRONE_840000613)
	SAUT STOCKE_ERRONE
FINSI

########NumDde non vide

i_strcpy(pt_1_840000613, " ")
i_strcpy(pt_2_840000613, " ")
erreur_840000613 = i_get_art_str(g_iartin, $TtpecsV2::NumDde, pt_1_840000613)
i_get_sub_str(pt_1_840000613, 0, 0, pt_2_840000613)
#trace2("[TtpecsV2_trt] =============NumDde = %s==== 1ercaractere =%s",pt_1,pt_2)

SI (i_strcmp(" ", pt_2_840000613) == 0)
ALORS
	i_strcpy(pt_CHAMP_ERRONE_840000613, "NumDde")
	code_rejet_840000613 = ERR_SYNTAX_840000613 + EFFICACE_840000613
	erreur_840000613 = i_PlvMessEmettre(6557,2,g_iartin,"",3,code_rejet_840000613, pt_2_840000613, pt_CHAMP_ERRONE_840000613)
	SAUT STOCKE_ERRONE
FINSI

########NbCS non vide

i_strcpy(pt_1_840000613, " ")
i_strcpy(pt_2_840000613, " ")
erreur_840000613 = i_get_art_str(g_iartin, $TtpecsV2::NbCS, pt_1_840000613)
i_get_sub_str(pt_1_840000613, 0, 0, pt_2_840000613)
#trace2("[TtpecsV2_trt] =============NbCS = %s==== 1ercaractere =%s",pt_1,pt_2)

SI (i_strcmp(" ", pt_2_840000613) == 0)
ALORS
	i_strcpy(pt_CHAMP_ERRONE_840000613, "NbCS")
	code_rejet_840000613 = ERR_SYNTAX_840000613 + EFFICACE_840000613
	erreur_840000613 = i_PlvMessEmettre(6557,2,g_iartin,"",3,code_rejet_840000613, pt_2_840000613, pt_CHAMP_ERRONE_840000613)
	SAUT STOCKE_ERRONE
SINON
	nbcs_840000613 = CONV_ASCIINUMDEC_INT_780042428(pt_1_840000613)
FINSI

####### Duree
duree_840000613 = i_get_art_field(g_iartin, $TtpecsV2::DUREE)
#trace1("[TtpecsV2_tr] duree = 0x%x",duree)
#trace1("[TtpecsV2_tr] duree = %d",duree)
SI (duree_840000613 == -1)
ALORS
	i_strcpy(pt_2_840000613, "-1")
	i_strcpy(pt_CHAMP_ERRONE_840000613, "DUREE")
	code_rejet_840000613 = 0x5042
	erreur_840000613 = i_PlvMessEmettre(6557,2,g_iartin,"",3,code_rejet_840000613, pt_2_840000613, pt_CHAMP_ERRONE_840000613)
	SAUT STOCKE_ERRONE
FINSI

########CodOff non vide

i_strcpy(pt_1_840000613, " ")
i_strcpy(pt_2_840000613, " ")
erreur_840000613 = i_get_art_str(g_iartin, $TtpecsV2::CodOff, pt_1_840000613)
i_get_sub_str(pt_1_840000613, 0, 0, pt_2_840000613)

SI (i_strcmp(" ", pt_2_840000613) == 0)
ALORS
	i_strcpy(pt_CHAMP_ERRONE_840000613, "CodOff")
	code_rejet_840000613 = ERR_SYNTAX_840000613 + EFFICACE_840000613
	erreur_840000613 = i_PlvMessEmettre(6557,2,g_iartin,"",3,code_rejet_840000613, pt_2_840000613, pt_CHAMP_ERRONE_840000613)
	SAUT STOCKE_ERRONE
FINSI


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

################################################################
#		Tests croises
################################################################
# neant

################################################################
#		Variables fonctionnelles
################################################################

date_audit_840000613=i_date_audit()
#trace1("[TtpecsV2_trt] date_audit=%x",date_audit)
# date_plat
date_plat_840000613 = i_DHgetLocalTime(NUMTAB_840000613, 7, date_audit_840000613)
#trace1("[TtpecsV2_trt] ======== date_plat = 0x%x ========",date_plat)

#
# EFFICACE_DC
#
erreur_840000613 = i_get_art_str(g_iartin, $TtpecsV2::MntDC, pt_1_840000613)
SI ( i_strcmp(pt_1_840000613, MontantNul_840000613) != 0 )
ALORS
	EFFICACE_DC_840000613 = 1
SINON
	EFFICACE_DC_840000613 = 0
FINSI

#
# NetMobile et FFMv3
#
erreur_840000613 = i_get_art_str(g_iartin, $TtpecsV2::CodOff,pt_CodOff_840000613)
#trace2("__LINE__Appel VariableContexte A=<%s>",pt_CodOff,"")
i_strcpy(pt_valeur_840000613,i_get_tab_field("VariableContexte",date_plat_840000613,pt_CodOff_840000613))
#trace2("__LINE__      VariableContexte R=<%s>",pt_valeur,"")
SI (i_strcmp(pt_valeur_840000613,C_str_NetMobile_840000613) == 0)
ALORS
	NetMobile_840000613 = 1
SINON
	SI (i_strcmp(pt_valeur_840000613,C_str_FFMv3_840000613) == 0)
	ALORS
		b_FFMv3_840000613 = 1
	FINSI
FINSI
#Fin G1R8
#
# USAGE_CS, EFFICACE_CS et NbDPV_CS
#
NbDPV_CS_840000613 = 0

index_840000613 = -1
POINT BOUCLE_INC_NbDPV_CS
index_840000613 = index_840000613 + 1

SI (index_840000613 < 9)
ALORS
	i_strcpy(pt_1_840000613, " ")
	erreur_840000613 = i_get_art_str(g_iartin, $TtpecsV2::CodCS1 + 4*index_840000613, pt_1_840000613)
	i_get_sub_str(pt_1_840000613, 0, 2, pt_1_840000613)
	longueur_840000613 = RECHERCHE_CARACTERE_780042428(pt_1_840000613, ESPACE_840000613)
	SI longueur_840000613 == 0
	ALORS
		SAUT BOUCLE_INC_NbDPV_CS
	FINSI

	i_strcpy(pt_1_840000613, " ")
	erreur_840000613 = i_get_art_str(g_iartin, $TtpecsV2::CodOpeCS1 + 4*index_840000613, pt_1_840000613)	
	SI (i_strplcmp(pt_1_840000613,"W",0,1) == 0) 
	ALORS
		USAGE_CS_840000613 = 1
	SINON
		USAGE_CS_840000613 = 0
	FINSI
	
	i_strcpy(pt_1_840000613, " ")
	erreur_840000613 = i_get_art_str(g_iartin, $TtpecsV2::MntCS1+ 4*index_840000613, pt_1_840000613)
	SI ( i_strcmp(pt_1_840000613, MontantNul_840000613) != 0 )
	ALORS
		EFFICACE_CS_840000613 = 1
	SINON
		EFFICACE_CS_840000613 = 0
	FINSI

	SI ( ( (USAGE_CS_840000613 == 1) && (EFFICACE_CS_840000613 == 1) ) || (USAGE_CS_840000613 == 0) )
	ALORS
		NbDPV_CS_840000613 = NbDPV_CS_840000613 + 1
	FINSI

	SAUT BOUCLE_INC_NbDPV_CS

FINSI


##############################################################################
# Cpt applicatifs : a incrementer meme si le DC est elimine
##############################################################################
########################################################
########### Date_Audit

flag_840000613=0
Y_840000613=g_ieec
X_840000613=0x0F
Z_840000613=0

#trace1("[TtpecsV2_trt] NbCS=%d",nbcs)
index_840000613 = -1
POINT BOUCLE_1
index_840000613 = index_840000613 + 1

SI (index_840000613 < 9)
ALORS
	i_strcpy(pt_1_840000613, " ")
	erreur_840000613 = i_get_art_str(g_iartin, $TtpecsV2::CodCS1 + 4*index_840000613, pt_1_840000613)
	i_get_sub_str(pt_1_840000613, 0, 2, pt_1_840000613)
	
	longueur_840000613 = RECHERCHE_CARACTERE_780042428(pt_1_840000613, ESPACE_840000613)
	
	SI longueur_840000613 == 0
	ALORS
		SAUT BOUCLE_1
	SINON
		SI longueur_840000613 > 0
		ALORS
			i_get_sub_str(pt_1_840000613, 0, longueur_840000613-1, pt_1_840000613)
		FINSI
	FINSI
	
	i_strcpy(pt_2_840000613, " ")
	erreur_840000613 = i_get_art_str(g_iartin, $TtpecsV2::CodOpeCS1 + 4*index_840000613, pt_2_840000613)
	i_get_sub_str(pt_2_840000613, 0, 1, pt_2_840000613)
	
	longueur_840000613 = RECHERCHE_CARACTERE_780042428(pt_2_840000613, ESPACE_840000613)
	
	SI longueur_840000613 == 0
	ALORS
		SAUT BOUCLE_1
	SINON
		SI longueur_840000613 > 0
		ALORS
			i_get_sub_str(pt_2_840000613, 0, longueur_840000613-1, pt_2_840000613)
		FINSI
	FINSI
	
	SI (NetMobile_840000613 == 1)
	ALORS 
 	    erreur_840000613 = i_format_str2(pt_CodCS_CodOP_840000613,"NM_%s_%s",pt_1_840000613,pt_2_840000613)
	SINON
		#G1R8 avec condition FFMv3
		SI (b_FFMv3_840000613 == 1)
		ALORS 
			erreur_840000613 = i_format_str2(pt_CodCS_CodOP_840000613,"FFM3_%s_%s",pt_1_840000613,pt_2_840000613)
		SINON
			erreur_840000613 = i_format_str2(pt_CodCS_CodOP_840000613,"%s_%s",pt_1_840000613,pt_2_840000613)
		FINSI
	FINSI
	#trace2("__LINE__Appel Liste_TPE A=<%s>",pt_CodCS_CodOP,"")
	i_strcpy(pt_TypeAppel_TelSvc_840000613,i_get_tab_field(Liste_TPE_840000613,date_plat_840000613,pt_CodCS_CodOP_840000613))
	#trace2("__LINE__      Liste_TPE R=<%s>",pt_TypeAppel_TelSvc,"")
	SI (i_strcmp(pt_TypeAppel_TelSvc_840000613,g_inull)) == 0
	ALORS
		code_rejet_840000613 = ERR_TABLE_840000613 + EFFICACE_840000613
		erreur_840000613 = i_PlvMessEmettre(6558,2,g_iartin,"",3,code_rejet_840000613, pt_CodCS_CodOP_840000613, Liste_TPE_840000613)
		SAUT STOCKE_ERRONE
	FINSI
		
	i_get_sub_str(pt_TypeAppel_TelSvc_840000613, 0, 1, pt_TypeAppel_840000613)
	
	SI (i_strcmp(pt_TypeAppel_840000613,"0E") == 0)
	ALORS
		flag_840000613 = 1
	FINSI
	SAUT BOUCLE_1
FINSI

SI (flag_840000613 ==1)
ALORS
	X_840000613=0x0E
FINSI

#X = i_get_art_field(g_iartin, $TtpecsV2::TypeEnr)
cpt_840000613 = CPT_840000613
erreur_840000613=i_incr_cpt(cpt_840000613,X_840000613,Y_840000613,Z_840000613,date_plat_840000613,INCREMENT_840000613)

POINT STOCKE_OK
erreur_840000613 = i_stocke_art(g_iartin, 0, PT_OK, 0)
RETOUR TRAIT_OK

########################################################
#		Stockage en errone
########################################################

POINT STOCKE_ERRONE
#trace2("[TtpecsV2_trt] Stockage en ERRONE %s", "", "")
erreur_840000613 = i_make_art_rej(g_iartin, g_iartout5, code_rejet_840000613)
erreur_840000613 = i_stocke_art(g_iartout5, 0, PT_ERRONE, 0)

RETOUR TRAIT_OK

#___________________________ FIN TtpecsV2_trt.src_________________________________
