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
| ALTER PROCEDURE [dbo].[Alim_Data_Ventes_hebdo_delta_rattrapage]
AS
BEGIN
DECLARE @fichiersource nvarchar (50)
declare @count_vente_work varchar (10)
declare @tempst datetime
select @tempst = getdate()
print 'Debut Procédure Alim_Data_Ventes_hebdo_delta_rattrapage à ' + convert (nvarchar , @tempst ,112)
-- on déclare le curseur qui boucle dans ventes
DECLARE curseur_fichier CURSOR FOR
SELECT distinct FichierSource
FROM ventes_hebdo
-- on ouvre le curseur
OPEN curseur_fichier
-- on retourne le premier résultat
FETCH NEXT FROM curseur_fichier INTO @fichiersource
-- parcours de la boucle tant que fetch n'est pas vide
WHILE @@FETCH_STATUS = 0
BEGIN
select @tempst = getdate()
print 'Fichier à Traiter' + convert (nvarchar , @tempst ,112)
print @fichiersource
@fichiersource =
BEGIN TRANSACTION VENTE
BEGIN TRANSACTION TMP
INSERT INTO [ODS_VEGAS].[dbo].[Ventes_hebdo_Work_1]
([codemagasin],[date],[vente(1)_retour(2)]
,[coderemise],[codetva],[ean],[codevendeur]
,[Code_VendeurMagasin],[ANNULE] ,[NumTicket]
,[Id_Fichier_Ean_VendeurMagasin_Numticket_remise_IMEI]
,[codeagence],[codepdl],[sousfamille],[IMEI]
,[NomClient],[PrenomClient] ,[TelephoneClient]
,[CodePostalClient],[VilleClient],[AdresseClient]
,[ComplementAdresse],[FichierSource]
,[qte_dev],[qte],[DeltaQte],[ca_dev],[ca],[DeltaCa]
,[mtremise_dev],[mtremise],[DeltaMtremise]
,[mttva_dev],[mttva],[DeltaMttva]
,[DateFichier],Id_date_Ean_VendeurMagasin_Numticket_remise_IMEI)
(SELECT tmp.codemagasin , tmp.date, tmp.[vente(1)_retour(2)], tmp.coderemise, tmp.codetva, tmp.ean,
tmp.codevendeur, tmp.Code_VendeurMagasin,tmp.ANNULE, tmp.NumTicket,
tmp.Id_Fichier_Ean_VendeurMagasin_Numticket_remise_IMEI,
tmp.codeagence, tmp.codepdl, tmp.sousfamille, tmp.IMEI, tmp.NomClient, tmp.PrenomClient, tmp.TelephoneClient, tmp.CodePostalClient,
tmp.VilleClient, tmp.AdresseClient, tmp.ComplementAdresse, tmp.FichierSource, ISNULL(SUM(tmp.qte),0) AS qte_dev, ISNULL(SUM(prod.qte), 0) AS qte,
ISNULL(SUM(tmp.qte),0) - ISNULL(SUM(prod.qte), 0) AS DeltaQte, ISNULL(SUM(tmp.ca),0) AS ca_dev, ISNULL(SUM(prod.ca), 0) AS ca,
ISNULL(SUM(tmp.ca),0) - ISNULL(SUM(prod.ca), 0) AS DeltaCa, ISNULL(SUM(tmp.mtremise),0) AS mtremise_dev, ISNULL(SUM(prod.mtremise), 0) AS mtremise,
ISNULL(SUM(tmp.mtremise),0) - ISNULL(SUM(prod.mtremise), 0) AS DeltaMtremise, ISNULL(SUM(tmp.mttva),0) AS mttva_dev, ISNULL(SUM(prod.mttva), 0) AS mttva,
ISNULL(SUM(tmp.mttva),0) - ISNULL(SUM(prod.mttva), 0) AS DeltaMttva, tmp.DateFichier
,(convert (nvarchar , tmp.date ,112) + '_'+
substring(tmp.Id_Fichier_Ean_VendeurMagasin_Numticket_remise_IMEI,15,
len(tmp.Id_Fichier_Ean_VendeurMagasin_Numticket_remise_IMEI)) ) as Id_date_Ean_VendeurMagasin_Numticket_remise_IMEI
FROM DWH_VEGAS.dbo.Ventes_hebdo_BIS as prod right outer join
DWH_VEGAS.dbo.Ventes_hebdo AS tmp ON prod.Id_date_Ean_VendeurMagasin_Numticket_remise_IMEI = tmp.Id_date_Ean_VendeurMagasin_Numticket_remise_IMEI
where tmp.FichierSource = @fichiersource
GROUP BY tmp.[Id_Fichier_Ean_VendeurMagasin_Numticket_remise_IMEI],tmp.Id_date_Ean_VendeurMagasin_Numticket_remise_IMEI,
tmp.codemagasin, tmp.date, tmp.[vente(1)_retour(2)], tmp.coderemise, tmp.codetva, tmp.ean, tmp.codevendeur,
tmp.ANNULE, tmp.NumTicket,tmp.codeagence, tmp.codepdl, tmp.sousfamille, tmp.IMEI,
tmp.NomClient, tmp.PrenomClient, tmp.TelephoneClient, tmp.CodePostalClient,
tmp.VilleClient, tmp.AdresseClient, tmp.ComplementAdresse, tmp.FichierSource,
tmp.DateFichier,tmp.Code_VendeurMagasin)
COMMIT TRANSACTION TMP
--[Ventes_hebdo_BIS]
print '--------------'
select @count_vente_work = count(*) from [ODS_VEGAS].[dbo].[Ventes_hebdo_Work_1]
print 'count [ODS_VEGAS].[dbo].[Ventes_hebdo_Work] ' + @count_vente_work
--insertion des données
INSERT INTO [DWH_VEGAS].[dbo].[Ventes_hebdo_BIS]
select [Id_Fichier_Ean_VendeurMagasin_Numticket_remise_IMEI],Id_date_Ean_VendeurMagasin_Numticket_remise_IMEI
,[date],[ean],[Code_VendeurMagasin],[codeagence]
,[codemagasin],[codevendeur],[codepdl],[vente(1)_retour(2)]
,[DeltaQte],[DeltaCa],[coderemise],[DeltaMtremise],[DeltaMttva],[codetva],[sousfamille]
,[IMEI],[ANNULE],[NomClient],[PrenomClient],[TelephoneClient]
,[CodePostalClient],[VilleClient],[AdresseClient],[ComplementAdresse]
,[NumTicket],[DateFichier],[FichierSource]
from [ODS_VEGAS].[dbo].[Ventes_hebdo_Work_1]
where DeltaQte +DeltaCa + DeltaMtremise+DeltaMttva <> 0
--suppresion de la table temporaire
delete ODS_VEGAS.dbo.Ventes_hebdo_Work_1
select @tempst = getdate()
print 'Fin du traitement du fichier'+ convert (nvarchar , @tempst ,112)
COMMIT TRANSACTION VENTE
-- on passe à la ligne suivante
FETCH NEXT FROM curseur_fichier INTO @fichiersource
END
-- on ferme le curseur
CLOSE curseur_fichier
-- on libère la mémoire
DEALLOCATE curseur_fichier
END |
Partager