DEFINITION C_Article_800009832 "Tvoicewfr"
REGISTRE ENTIER res_800009832
REGISTRE ENTIER erreur_800009832
REGISTRE ENTIER EFFICACE_800009832
REGISTRE ENTIER code_errone_800009832
REGISTRE POINTEUR pt_res_800009832
#####################################################################
# TRAITEMENT
#
#	Tvoicewfr : DC Wanadoo FR.
#
#####################################################################
#	HISTORIQUE
# 12/01/05 - NSA - Creation
# 14/03/05 - NSA - FO1155 champ NetworkTime devient obligatoire
# 12/04/05 - NSA - Elimination des TerminationCause=0
# 12/05/05 - NSA - FO1289: mise en commentaire du controle croise pour Appel Non Etabli
# 01/07/05 - NSA - FO1372: ajout de la notion d efficacite au controle croise CgIdentityTag/CdIdentityTag
# 01/04/08 - JLG - G3R6 : Evol Spec S18F3
# 22/09/08 - PKH - G3R8 envoi en elimine si Caller est absent sans emission d'alarme 
# 10/10/2011 RHE VerifPcode
#####################################################################

# Constantes

# Variables fonctionnelles

# DECLARATION POINTEUR

# Initialisation
pt_res_800009832 = "00000000000000"

# VerifPcode - RHE #
i_strcpy(pt_res_800009832,"")

trace("Traitement - Tvoicewfr")

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

EFFICACE_800009832 = 1
res_800009832=i_get_art_field(g_iartin, $Tvoicewfr::DUREE)
SI ( res_800009832 == 0 )
ALORS
	EFFICACE_800009832 = 0
FINSI


## Service ##

res_800009832 =i_get_art_field(g_iartin, $Tvoicewfr::Service)
SI (res_800009832 < 0 || res_800009832 >0x07)
ALORS
	code_errone_800009832 = 0x5040
	code_errone_800009832 = code_errone_800009832 + EFFICACE_800009832

	erreur_800009832 = i_PlvMessEmettre(6350,2,g_iartin,"",3,code_errone_800009832,C_Article_800009832,res_800009832)
	SAUT STOCKE_ERRONE
FINSI


## Termination Cause ##

res_800009832 =i_get_art_field(g_iartin, $Tvoicewfr::TermCause)
SI (res_800009832 <= 0 || res_800009832 >0x100)
ALORS
	code_errone_800009832 = 0x5040
        code_errone_800009832 = code_errone_800009832 + EFFICACE_800009832

	erreur_800009832 = i_PlvMessEmettre(6351,2,g_iartin,"",3,code_errone_800009832,C_Article_800009832,res_800009832)
	SAUT STOCKE_ERRONE
FINSI

## Type  ##

erreur_800009832 = i_get_art_str(g_iartin, $Tvoicewfr::Type, pt_res_800009832)
SI (i_strcmp("C", pt_res_800009832) != 0)
ALORS
	code_errone_800009832 = 0x5040
        code_errone_800009832 = code_errone_800009832 + EFFICACE_800009832

	erreur_800009832 = i_PlvMessEmettre(6352,2,g_iartin,"",3,code_errone_800009832,C_Article_800009832,pt_res_800009832)
	SAUT STOCKE_ERRONE

FINSI

## SimulationCall   Articles de test ne doit pas aller  a la facturation##

erreur_800009832 = i_get_art_str(g_iartin, $Tvoicewfr::SimulCall, pt_res_800009832)
SI (i_strcmp("1", pt_res_800009832) == 0)
ALORS
	trace("stockage en elimine SimulationCall=1")
	SAUT STOCKE_ELM

FINSI
#Caller
#Test presence du champ Caller si absent
#envoie en elimine sans message d'alarme

SI (! i_valid_field_n(g_iartin,$Tvoicewfr::Caller))
ALORS
     SAUT STOCKE_ELM
FINSI




################################################################
#
#	Controles croises
#
################################################################
#
#####  Il doit y avoir au moins un des deux champs CgIdentTag et CdIdentTag present
# G3R6 : Evol Spec S18F3 envoi en ELM au lieu de ERRONE (suite a evol 87 -> 97)
SI ( !i_valid_field_n(g_iartin, $Tvoicewfr::CgIdentTag) && !i_valid_field_n(g_iartin, $Tvoicewfr::CdIdentTag) && EFFICACE_800009832 )
ALORS
	trace("stockage en elimine CgIdentTag et CdIdentTag absents")
	SAUT STOCKE_ELM
FINSI

#==============================================================================
# Creation Enveloppe Optionnelle avec Compteur Recyclage
# G3R6 : plus de recyclage, l'enveloppe servira pour les metachamps ECC
#==============================================================================
erreur_800009832 = i_add_opt( "E_Tvoicewfr" )

# champ T1 et L1 calcules dans l'ATP
#erreur = i_set_attr_val_n( $E_Tvoicewfr::T1, 0x02 )
#erreur = i_set_attr_val_n( $E_Tvoicewfr::L1, 0x05 )

# Champ CptRecy
erreur_800009832 = i_set_attr_val_n($E_Tvoicewfr::CptRecy,3)

SAUT STOCKE_OK

#==============================================================================
#	Stockage en valide
#==============================================================================

POINT   STOCKE_OK
trace("trace Stockage en valide")
erreur_800009832 = i_stocke_art(g_iartin, 0, PT_OK, 0)

RETOUR TRAIT_OK

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

POINT  STOCKE_ERRONE

trace("Stockage en ERRONE ")

erreur_800009832 = i_make_art_rej(g_iartin, g_iartout5, code_errone_800009832)
erreur_800009832 = i_stocke_art(g_iartout5, 0, PT_ERRONE, 0)

RETOUR TRAIT_OK


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

POINT  STOCKE_ELM

trace("Stockage en ELIMINE ")

erreur_800009832 = i_stocke_art(g_iartin, 0, PT_ELIMINE, 0)

RETOUR TRAIT_OK
#--------------------- Fin Pcode Traitement Tvoicewfr_trt.src -------------------------
