DEFINITION C_Article_860026302 "Tsgn4dc"
DEFINITION C_InstSYMP_860026302 "SYMP"
DEFINITION C_Tsymtsgn4dc_860026302 "Tsymtsgn4dc"
REGISTRE ENTIER instSYMPH_860026302
REGISTRE ENTIER erreur_860026302
REGISTRE ENTIER res_860026302
REGISTRE ENTIER date_860026302
REGISTRE ENTIER code_errone_860026302
REGISTRE ENTIER EFFICACE_860026302
REGISTRE POINTEUR pt_SGTQS_860026302
############################################################################
#
# Fichier : Tsgn4dc.src
#
# Version : %version: 1.14 %
#
# Date    : %date_modified: 05/10/2004 JLG %
#
# Distribution :
#    FD SGN palier 4
#
# En entree :
#    Article : Tsgn4dc  (domaine Dvndc)
#    Header: Txx8he
#
# En sortie:
#    CENTAUREDC
#    Symphonie
#
# HISTORIQUE :
#	17/06/2002 - PSA - FO1510  : Encapsulation pour le stockage en errone
#	18/07/2002 - NSA - maj des alarmes
#	21/01/2003 - MCH : GIR2C9 : FOR --> FORDC
#	03/09/2003 - DRE - FO392 : Initialisation des variables Pcode
#	02/06/2004 - NSA - G2R0Cl: integration des codes d erreurs
#	05/04/2004 - JLG - G2R0Caa : FORDC-->CENTAUREDC
#	08/07/2009 - THE - G3R14 : arret envoi vers CENTAUREDC
#	06/08/2009 - DRE - G3R14 : Complement QC274 arret envoi vers CENTAUREDC
#	10/10/2011 - THE - VerifPcode
#
############################################################################

############################################################################
# Declarations
############################################################################
# Constantes
#Constantes pour message d alarme


# variables entieres
#Metachamp


# Initialisation
EFFICACE_860026302    = 2
instSYMPH_860026302   = 0
#instCENT    = 0


# variables pointeurs


# Allocation de memoire pour les pointeurs
#p_buffer = "123456789012345612345 "
#pt_temp	 ="0123456789012345"
#pt_BUF	 ="01234567890123456789012345678912345"
#pREF	 ="88812345"
#pINEF	 ="99912345"
#pt_int	 ="1212345"
#pt_temp1 ="9876543210112345"
#pt_temp2 ="1234567890112345"
pt_SGTQS_860026302	 = "777777777777"


# Initialisation
i_strcpy(pt_SGTQS_860026302,"")


trace("DEBUT du Pcode DIST :<__FILE__>#### ")


#Recuperation de la date
date_860026302 = i_get_art_field(g_iartin,$DATE)

SI (date_860026302 == -1)
ALORS
	code_errone_860026302 = 0xA080
	code_errone_860026302 = code_errone_860026302 + EFFICACE_860026302
	erreur_860026302 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026302, C_Article_860026302, "i_get_art_field/DATE" )
	SAUT DISTRI_ERR
FINSI

# controle metachamp
SI (i_get_art_field(g_iartin,$ddebut) == -1)
ALORS
	code_errone_860026302 = 0xA080
	code_errone_860026302 = code_errone_860026302 + EFFICACE_860026302
	erreur_860026302 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026302, C_Article_860026302, "i_get_art_field/ddebut" )
	SAUT DISTRI_ERR
FINSI

############################################################################
# Variables Fonctionnelles Globales
############################################################################
# Sans objet

############################################################################
# Envoi requetes Table de Distribution
############################################################################
# Sans objet

############################################################################
# Controles
############################################################################
# Sans objet: les controles sont effectues lors du traitement

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

#---------------------------------------------------------------------------
# Symphonie
#---------------------------------------------------------------------------
instSYMPH_860026302=i_LireInstanceECC(C_InstSYMP_860026302)
#trace1("instSYMPH=<%d>",instSYMPH)

SI (!instSYMPH_860026302 )
ALORS
	code_errone_860026302 = 0xA0B0
	code_errone_860026302 = code_errone_860026302 + EFFICACE_860026302
	erreur_860026302 = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone_860026302,C_InstSYMP_860026302,C_Article_860026302)
	SAUT DISTRI_ERR
FINSI

#---------------------------------------------------------------------------
# CENTAUREDC
#---------------------------------------------------------------------------


############################################################################
# Duplication Symphonie
############################################################################
# Article fourni a Symphonie sous son format d'origine enrichi d'ajouts
# => Duplication article en entree + renommage

SI (i_AjouterCouranteECC(instSYMPH_860026302)>=0)
ALORS
	# Duplication article en entree
	#trace("Stockage vers SYMPHONIE")

	SI (i_dup_art_id(g_iartin,g_iartout))
	ALORS
		code_errone_860026302 = 0xA0D0
		code_errone_860026302 = code_errone_860026302 + EFFICACE_860026302
		erreur_860026302 = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone_860026302,C_Tsymtsgn4dc_860026302,C_Article_860026302)
		SAUT DISTRI_ERR
	FINSI
SINON
	SAUT DISTRI_ERR
FINSI

# Renommage en Tsymtsgn4dc
erreur_860026302=i_rename_art(g_iartout,C_Tsymtsgn4dc_860026302)

# Ajout de 3 champs sous-forme de sous-parametres T4 (CCD, SGTQS et Apppli.Fact)
erreur_860026302 = i_ajoutChamp( g_iartout, "T4ccd",     "CCD", 0)
erreur_860026302 = i_ajoutChamp( g_iartout, "T4sgtqs",   "SGTQS", 0)
erreur_860026302 = i_ajoutChamp( g_iartout, "T4eccfact", "ECC_FACT", 0)

############################################################################
# Attente requetes Table de Distribution
############################################################################

# Recuperation bloquante des resultats de la derniere requete asynchrone
# Remarque: placer le plus de code possible avant ce point, pour optimiser le temps CPU

# Sans objet

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

#---------------------------------------------------------------------------
# Criteres communs
#---------------------------------------------------------------------------
# Sans objet

#---------------------------------------------------------------------------
# CENTAUREDC
#---------------------------------------------------------------------------


############################################################################
# Validation de la liste des ECCs destinatrices
############################################################################

erreur_860026302 = i_ValiderListeECC( 0, 0, 0, 0)

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

#---------------------------------------------------------------------------
# Valeurs communes
#---------------------------------------------------------------------------
# Sans objet

#---------------------------------------------------------------------------
# Complements Symphonie
#---------------------------------------------------------------------------
SI (!i_ChercherCouranteECC(instSYMPH_860026302))
ALORS
	# champ T1 (FO951: modification du T1 pour Symphonie, 0E au lieu de 2D)
	erreur_860026302 = i_set_art_field(g_iartout,$Tsymtsgn4dc::T1,0x0E)

	# champ SGTQS
	i_strcpy(pt_SGTQS_860026302,i_LireEECSGTQS( g_ieec ))
	#trace2("SGTQS=<%s>",pt_SGTQS,"")
	erreur_860026302 = i_set_art_str(g_iartout, $Tsymtsgn4dc::SGTQS, pt_SGTQS_860026302)

	# Champ ECC_FACT: Nom ECC de facturation (toujours CENTAURE)
	# plus d ennvoi a CENTAURE
	erreur_860026302 = i_set_art_str(g_iartout, $Tsymtsgn4dc::ECC_FACT, " ")

	# Champ CCD
	erreur_860026302 = i_set_art_field(g_iartout, $Tsymtsgn4dc::CCD, 205 )
FINSI

#---------------------------------------------------------------------------
# CENTAUREDC
#---------------------------------------------------------------------------


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

SI (!i_ChercherCouranteECC(instSYMPH_860026302) )
ALORS
	#---------------------------------------------------------------------------
	# Symphonie
	#---------------------------------------------------------------------------
	res_860026302 = i_stocke_art_iecc(g_iartout, instSYMPH_860026302)
	#trace1("Emission vers SYMPHONIE: %d", res)

	#---------------------------------------------------------------------------
	# CENTAUREDC
	#---------------------------------------------------------------------------
SINON
	SAUT DISTRI_ERR
FINSI
#trace("Fin du Pcode de distribution Tsgn4dc")

RETOUR TRAIT_OK

############################################################################
# Envoi vers Recyclage
############################################################################
# Sans objet

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

POINT DISTRI_ERR

#trace( "Stockage en errone de distribution")
res_860026302=i_make_art_rej(g_iartin, g_iartout, code_errone_860026302)
res_860026302 = i_stocke_art( g_iartout, 0, PT_ERRONE, 0)

RETOUR TRAIT_OK
