1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198
| CREATE PROCEDURE DBO.P_MAJ_EXPORT_PDA
@output as int=0
AS
DECLARE
@debug as varchar(10), -- flag indiquant si le mode debug est activé ('ON') ou non ('OFF')
@succes as varchar(8000), -- Liste les Pièces mises à jour avec succès
@echec as varchar(8000), -- Liste les Pièces mises à jour avec échec
@nbsucces as smallint, -- Compteur du nombre Pièces traitées avec succès
@nberreur as smallint, -- Compteur du nombre Pièces en erreur
@erreurs AS INT, -- Compteur du nombre d'erreur au sein d'une transaction
@depot as char(3), -- Dépot dont dépend la pièce à traiter,
@numpiece as smallint -- Numéro de la pièce à traiter,
SET @debug='ON'
IF @debug='ON' BEGIN PRINT 'TIME_01 : ' + CONVERT(VARCHAR, GETDATE(), 113) + ' - Début exécution' END
SET @succes='' SET @echec='' SET @erreurs=0 SET @nbsucces=0
-- Liste des tables à traiter
-- CHOIXCOD
-- CHOIXEXT
-- DIMENSION
-- TIERS
-- ARTICLE
-- DISPO
-- TARIF
-- TARIFPER
-- TARIFMODE
-- TARIFTYPMODE
-- Traitement CHOIXCOD
DELETE V9.DBO.CHOIXCOD
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DU DELETE DE LA TABLE CHOIXCOD' GOTO LABEL_FIN END
INSERT V9.DBO.CHOIXCOD (CC_TYPE, CC_CODE, CC_LIBELLE, CC_ABREGE, CC_LIBRE)
SELECT CC_TYPE, CC_CODE, CC_LIBELLE, CC_ABREGE, CC_LIBRE FROM PROD.DBO.CHOIXCOD WITH (nolock)
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DE L''INSERT DE LA TABLE CHOIXCOD' GOTO LABEL_FIN END
SELECT @NBPROD=COUNT(*) FROM V9.DBO.CHOIXCOD
SELECT @NBTEST=COUNT(*) FROM PROD.DBO.CHOIXCOD
IF @NBPROD <> @NBTEST BEGIN SET @ECHEC='ERREUR DE QUANTITÉS IMPORTÉES POUR LA TABLE CHOIXCOD' GOTO LABEL_FIN END
-- Traitement CHOIXEXT
DELETE V9.DBO.CHOIXEXT
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DU DELETE DE LA TABLE CHOIXEXT' GOTO LABEL_FIN END
INSERT V9.DBO.CHOIXEXT (YX_TYPE, YX_CODE, YX_LIBELLE, YX_ABREGE, YX_LIBRE)
SELECT YX_TYPE, YX_CODE, YX_LIBELLE, YX_ABREGE, YX_LIBRE FROM PROD.DBO.CHOIXEXT WITH (nolock)
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DE L''INSERT DE LA TABLE CHOIXEXT' GOTO LABEL_FIN END
SELECT @NBPROD=COUNT(*) FROM V9.DBO.CHOIXEXT
SELECT @NBTEST=COUNT(*) FROM PROD.DBO.CHOIXEXT
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DE L''INSERT DE LA TABLE CHOIXEXT' GOTO LABEL_FIN END
-- Traitement DIMENSION
DELETE V9.DBO.DIMENSION
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DU DELETE DE LA TABLE DIMENSION' GOTO LABEL_FIN END
INSERT V9.DBO.DIMENSION (GDI_TYPEDIM, GDI_GRILLEDIM, GDI_CODEDIM, GDI_LIBELLE, GDI_DIMORLI, GDI_RANG)
SELECT GDI_TYPEDIM, GDI_GRILLEDIM, GDI_CODEDIM, GDI_LIBELLE, GDI_DIMORLI, GDI_RANG FROM PROD.DBO.DIMENSION WITH (nolock)
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DE L''INSERT DE LA TABLE DIMENSION' GOTO LABEL_FIN END
SELECT @NBPROD=COUNT(*) FROM V9.DBO.DIMENSION
SELECT @NBTEST=COUNT(*) FROM PROD.DBO.DIMENSION
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DE L''INSERT DE LA TABLE DIMENSION' GOTO LABEL_FIN END
-- Traitement TIERS
DELETE V9.DBO.TIERS
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DU DELETE DE LA TABLE TIERS' GOTO LABEL_FIN END
INSERT V9.DBO.TIERS (T_AUXILIAIRE, T_NATUREAUXI, T_LIBELLE, T_COLLECTIF, T_ETABLISSEMENT, T_TIERS)
SELECT T_AUXILIAIRE, T_NATUREAUXI, T_LIBELLE, T_COLLECTIF, T_ETABLISSEMENT, T_TIERS FROM PROD.DBO.TIERS WITH (nolock)
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DE L''INSERT DE LA TABLE TIERS' GOTO LABEL_FIN END
SELECT @NBPROD=COUNT(*) FROM V9.DBO.TIERS
SELECT @NBTEST=COUNT(*) FROM PROD.DBO.TIERS
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DE L''INSERT DE LA TABLE TIERS' GOTO LABEL_FIN END
-- Traitement ARTICLE
DELETE V9.DBO.ARTICLE
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DU DELETE DE LA TABLE ARTICLE' GOTO LABEL_FIN END
INSERT V9.DBO.ARTICLE (GA_ARTICLE, GA_CODEARTICLE, GA_TYPEARTICLE, GA_STATUTART, GA_FOURNPRINC, GA_LIBELLE, GA_LIBCOMPL, GA_COMMENTAIRE, GA_CODEBARRE, GA_QUALIFCODEBARRE, GA_FAMILLENIV1,
GA_FAMILLENIV2, GA_FAMILLENIV3, GA_DESIGNATION1, GA_PAHT, GA_PVHT, GA_DPA, GA_PMAP, GA_PRIXUNIQUE, GA_FERME, GA_INTERDITVENTE, GA_POIDSNET, GA_POIDSBRUT, GA_QUALIFPOIDS,
GA_PRIXPOURQTE, GA_DATECREATION, GA_DATEMODIF, GA_DATESUPPRESSION, GA_TENUESTOCK, GA_FAMILLETAXE1, GA_CREATEUR, GA_UTILISATEUR, GA_SOCIETE, GA_VALLIBRE1, GA_VALLIBRE2, GA_VALLIBRE3,
GA_DATELIBRE1, GA_DATELIBRE2, GA_DATELIBRE3, GA_LIBREART1, GA_LIBREART2, GA_LIBREART3, GA_LIBREART4, GA_LIBREART5, GA_LIBREART6, GA_LIBREART7, GA_LIBREART8, GA_LIBREART9, GA_LIBREARTA,
GA_CHARLIBRE1, GA_CHARLIBRE2, GA_CHARLIBRE3, GA_BOOLLIBRE1, GA_BOOLLIBRE2, GA_BOOLLIBRE3, GA_REMISEPIED, GA_REMISELIGNE, GA_DIMMASQUE, GA_CODEDIM1, GA_CODEDIM2,
GA_GRILLEDIM1, GA_GRILLEDIM2, GA_DOMAINE, GA_BLOCNOTE, GA_EMBALLAGE)
SELECT
GA_ARTICLE, GA_CODEARTICLE, GA_TYPEARTICLE, GA_STATUTART, GA_FOURNPRINC, GA_LIBELLE, GA_LIBCOMPL, GA_COMMENTAIRE, GA_CODEBARRE, GA_QUALIFCODEBARRE, GA_FAMILLENIV1,
GA_FAMILLENIV2, GA_FAMILLENIV3, GA_DESIGNATION1, GA_PAHT, GA_PVHT, GA_DPA, GA_PMAP, GA_PRIXUNIQUE, GA_FERME, GA_INTERDITVENTE, GA_POIDSNET, GA_POIDSBRUT, GA_QUALIFPOIDS,
GA_PRIXPOURQTE, GA_DATECREATION, GA_DATEMODIF, GA_DATESUPPRESSION, GA_TENUESTOCK, GA_FAMILLETAXE1, GA_CREATEUR, GA_UTILISATEUR, GA_SOCIETE, GA_VALLIBRE1, GA_VALLIBRE2, GA_VALLIBRE3,
GA_DATELIBRE1, GA_DATELIBRE2, GA_DATELIBRE3, GA_LIBREART1, GA_LIBREART2, GA_LIBREART3, GA_LIBREART4, GA_LIBREART5, GA_LIBREART6, GA_LIBREART7, GA_LIBREART8, GA_LIBREART9, GA_LIBREARTA,
GA_CHARLIBRE1, GA_CHARLIBRE2, GA_CHARLIBRE3, GA_BOOLLIBRE1, GA_BOOLLIBRE2, GA_BOOLLIBRE3, GA_REMISEPIED, GA_REMISELIGNE, GA_DIMMASQUE, GA_CODEDIM1, GA_CODEDIM2,
GA_GRILLEDIM1, GA_GRILLEDIM2, GA_DOMAINE, GA_BLOCNOTE, GA_EMBALLAGE FROM PROD.DBO.ARTICLE WITH (nolock)
WHERE GA_FERME='-' AND GA_CODEARTICLE IN (SELECT LEFT(GQ_ARTICLE,5) FROM PROD.DBO.DISPO WHERE GQ_CLOTURE='-' AND GQ_DEPOT IN ('001', '002') AND (GQ_PHYSIQUE+GQ_QTE1)<>0 )
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DE L''INSERT DE LA TABLE ARTICLE' GOTO LABEL_FIN END
-- Traitement ARTICLERTIERS
DELETE V9.DBO.ARTICLETIERS
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DU DELETE DE LA TABLE ARTICLERTIERS' GOTO LABEL_FIN END
INSERT V9.DBO.ARTICLETIERS (GAT_ARTICLE, GAT_REFTIERS, GAT_INDICE, GAT_REFARTICLE, GAT_TYPREFARTTIERS)
SELECT GAT_ARTICLE, GAT_REFTIERS, GAT_INDICE, GAT_REFARTICLE, GAT_TYPREFARTTIERS FROM PROD.DBO.ARTICLETIERS WITH (nolock)
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DE L''INSERT DE LA TABLE ARTICLERTIERS' GOTO LABEL_FIN END
SELECT @NBPROD=COUNT(*) FROM V9.DBO.ARTICLETIERS
SELECT @NBTEST=COUNT(*) FROM PROD.DBO.ARTICLETIERS
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DE L''INSERT DE LA TABLE ARTICLERTIERS' GOTO LABEL_FIN END
-- Traitement DISPO
DELETE V9.DBO.DISPO
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DU DELETE DE LA TABLE DISPO' GOTO LABEL_FIN END
INSERT V9.DBO.DISPO (GQ_ARTICLE, GQ_DEPOT, GQ_CLOTURE, GQ_DATEINVENTAIRE, GQ_DATECLOTURE, GQ_PHYSIQUE, GQ_RESERVEFOU, GQ_LIVREFOU, GQ_TRANSFERT, GQ_QTE1, GQ_QTE2, GQ_DPA, GQ_PMAP, GQ_STOCKINITIAL, GQ_VENTEFFO, GQ_ENTREESORTIES, GQ_ECARTINV)
SELECT GQ_ARTICLE, GQ_DEPOT, GQ_CLOTURE, GQ_DATEINVENTAIRE, GQ_DATECLOTURE, GQ_PHYSIQUE, GQ_RESERVEFOU, GQ_LIVREFOU, GQ_TRANSFERT, GQ_QTE1, GQ_QTE2, GQ_DPA, GQ_PMAP, GQ_STOCKINITIAL, GQ_VENTEFFO, GQ_ENTREESORTIES, GQ_ECARTINV FROM PROD.DBO.DISPO WITH (nolock)
WHERE YEAR(GQ_DATECLOTURE) >= 2009 OR GQ_CLOTURE='-' AND GQ_PHYSIQUE+GQ_QTE1<>0
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DE L''INSERT DE LA TABLE DISPO' GOTO LABEL_FIN END
-- Traitement TARIFPER
DELETE V9.DBO.TARIFPER
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DU DELETE DE LA TABLE TARIFPER' GOTO LABEL_FIN END
INSERT V9.DBO.TARIFPER
SELECT * FROM PROD.DBO.TARIFPER WITH (nolock)
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DE L''INSERT DE LA TABLE TARIFPER' GOTO LABEL_FIN END
SELECT @NBPROD=COUNT(*) FROM V9.DBO.TARIFPER
SELECT @NBTEST=COUNT(*) FROM PROD.DBO.TARIFPER
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DE L''INSERT DE LA TABLE TARIFPER' GOTO LABEL_FIN END
-- Traitement TARIFMODE
DELETE V9.DBO.TARIFMODE
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DU DELETE DE LA TABLE TARIFMODE' GOTO LABEL_FIN END
INSERT V9.DBO.TARIFMODE
SELECT * FROM PROD.DBO.TARIFMODE WITH (nolock)
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DE L''INSERT DE LA TABLE TARIFMODE' GOTO LABEL_FIN END
SELECT @NBPROD=COUNT(*) FROM V9.DBO.TARIFMODE
SELECT @NBTEST=COUNT(*) FROM PROD.DBO.TARIFMODE
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DE L''INSERT DE LA TABLE TARIFMODE' GOTO LABEL_FIN END
-- Traitement TARIFTYPMODE
DELETE V9.DBO.TARIFTYPMODE
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DU DELETE DE LA TABLE TARIFTYPMODE' GOTO LABEL_FIN END
INSERT V9.DBO.TARIFTYPMODE
SELECT * FROM PROD.DBO.TARIFTYPMODE WITH (nolock)
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DE L''INSERT DE LA TABLE TARIFTYPMODE' GOTO LABEL_FIN END
SELECT @NBPROD=COUNT(*) FROM V9.DBO.TARIFTYPMODE
SELECT @NBTEST=COUNT(*) FROM PROD.DBO.TARIFTYPMODE
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DE L''INSERT DE LA TABLE TARIFTYPMODE' GOTO LABEL_FIN END
-- Traitement TARIF
DELETE V9.DBO.TARIF
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DU DELETE DE LA TABLE TARIF' GOTO LABEL_FIN END
INSERT V9.DBO.TARIF
SELECT * FROM PROD.DBO.TARIF WITH (nolock)
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DE L''INSERT DE LA TABLE TARIF' GOTO LABEL_FIN END
SELECT @NBPROD=COUNT(*) FROM V9.DBO.TARIF
SELECT @NBTEST=COUNT(*) FROM PROD.DBO.TARIF
SET @ERREURS = @@ERROR
IF @ERREURS <>0 BEGIN SET @ECHEC='ERREUR LORS DE L''INSERT DE LA TABLE TARIF' GOTO LABEL_FIN END
LABEL_FIN:
-- Log en cas de succès
IF @echec='' BEGIN
IF @debug='ON' BEGIN PRINT 'TRANSACTION OK' END
SET @succes= 'Export pour PDA V9 OK'
execute PROD.DBO.P_LOG '001', 'ZA2', 'ZA4', 'OK', 0, @succes, ''
END
-- Log en cas d'erreur
IF @echec<>'' BEGIN
IF @debug='ON' BEGIN PRINT 'TRANSACTION KO' END
execute PROD.DBO.P_LOG '001', 'ZA2', 'ZA4', 'ERR', 1, 'Export pour PDA V9 KO', @echec
END
IF @debug='ON' BEGIN PRINT 'TIME_99 : ' + CONVERT(VARCHAR, GETDATE(), 113) + ' - Fin exécution' END
IF @debug='ON' BEGIN PRINT '*****************************************************************************************************************' END
GO |
Partager