SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON GO /* Kopia cennika pod ceny MH pod HANDEL. */ CREATE PROCEDURE dbo.HANDEL_CENNIK AS -- Sprawdzanie daty dzisiejszej. DECLARE @Dzis DATE; DECLARE @Pierwszy DATE; SET @Dzis = CONVERT(DATE,GETDATE()); SET @Pierwszy = CONVERT(DATE,DATEADD(dd,-DAY(GETDATE()-1 ),GETDATE())); -- Sprawdzenie PIERWSZY dzień miesiąca. IF @Pierwszy = @Dzis BEGIN /* TAK - PIERWSZY DZIEN MIESIACA */ BEGIN TRY /*CZESC 1.*/ BEGIN TRANSACTION -- Wstawiamy sprzdaż za poprzedni miesiąc. Ograniczenie zakresu dat w WIDOKU. INSERT dbo.HANDEL_MSC (TWR_NUMER,TWR_NAZWA,KTR_NUMER,KTR_NAZWA,DOKUMENT,SPRZ_DATA_SPRZ,ILOSC,WARTOSC,NETTO,SLJM_KOD) SELECT dbo.VG_SPRZEDAZ_HURT.TWR_NUMER, dbo.VG_SPRZEDAZ_HURT.TWR_NAZWA, dbo.VG_SPRZEDAZ_HURT.KTR_NUMER, dbo.VG_SPRZEDAZ_HURT.KTR_NAZWA, dbo.VG_SPRZEDAZ_HURT.DOKUMENT, dbo.VG_SPRZEDAZ_HURT.SPRZ_DATA_SPRZ, dbo.VG_SPRZEDAZ_HURT.ILOSC, dbo.VG_SPRZEDAZ_HURT.WARTOSC, dbo.VG_SPRZEDAZ_HURT.NETTO, dbo.VG_SPRZEDAZ_HURT.SLJM_KOD FROM dbo.VG_SPRZEDAZ_HURT; -- Kopiuje dane CENY z tabeli TEMP do MSC. INSERT INTO dbo.CENY_HANDEL_MH(INDEKS,NAZWA,CENA,DATA) SELECT DISTINCT dbo.CENY_HANDEL_TEMP.INDEKS, dbo.CENY_HANDEL_TEMP.NAZWA, dbo.CENY_HANDEL_TEMP.CENA, dbo.CENY_HANDEL_TEMP.[INSERT] FROM dbo.CENY_HANDEL_TEMP INNER JOIN dbo.HANDEL_MSC ON (dbo.CENY_HANDEL_TEMP.INDEKS = dbo.HANDEL_MSC.TWR_NUMER) WHERE dbo.CENY_HANDEL_TEMP.[INSERT] < @Pierwszy; -- Kasujemy tabelę tymczasową CEN. DELETE dbo.CENY_HANDEL_TEMP; -- Wstawiamy dane do tabeli. Tymczasowej za pierwszy dzien miesiaca. INSERT INTO dbo.CENY_HANDEL_TEMP (INDEKS,NAZWA,CENA,DATA) SELECT dbo.VG_HANDEL_ANALIZA_MH.INDES, dbo.VG_HANDEL_ANALIZA_MH.NAZWA, dbo.VG_HANDEL_ANALIZA_MH.CENA, dbo.VG_HANDEL_ANALIZA_MH.DATA FROM dbo.VG_HANDEL_ANALIZA_MH; COMMIT TRANSACTION END TRY BEGIN CATCH IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION; -- Te linie służą do rejestracji błedów procedur. INSERT INTO dbo.PROCEDURE_ERROR (ErrorNumber, ErrorSeverity, ErrorState, ErrorProcedure, ErrorLine, ErrorMessage) SELECT ERROR_NUMBER() AS ErrorNumber, ERROR_SEVERITY() AS ErrorSeverity, ERROR_STATE() AS ErrorState, ERROR_PROCEDURE() AS ErrorProcedure, ERROR_LINE() AS ErrorLine, ERROR_MESSAGE() AS ErrorMessage END CATCH END ELSE BEGIN /*CZESC 2.*/ BEGIN /* NIE - INNY NIZ PIERWSZY DZIEN MIESIACA */ BEGIN TRY BEGIN TRANSACTION -- Wstawiamy dane do tabeli tymczasowej wstawione dzisiaj. DELETE dbo.CENY_HANDEL_TEMP WHERE dbo.CENY_HANDEL_TEMP.[INSERT] = @Dzis; -- Wstawiamy dane do tabeli. INSERT INTO dbo.CENY_HANDEL_TEMP (INDEKS,NAZWA,CENA,DATA) SELECT dbo.VG_HANDEL_ANALIZA_MH.INDES, dbo.VG_HANDEL_ANALIZA_MH.NAZWA, dbo.VG_HANDEL_ANALIZA_MH.CENA, dbo.VG_HANDEL_ANALIZA_MH.DATA FROM dbo.VG_HANDEL_ANALIZA_MH; COMMIT TRANSACTION END TRY BEGIN CATCH IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION; -- Te linie służą do rejestracji błedów procedur. INSERT INTO dbo.PROCEDURE_ERROR (ErrorNumber, ErrorSeverity, ErrorState, ErrorProcedure, ErrorLine, ErrorMessage) SELECT ERROR_NUMBER() AS ErrorNumber, ERROR_SEVERITY() AS ErrorSeverity, ERROR_STATE() AS ErrorState, ERROR_PROCEDURE() AS ErrorProcedure, ERROR_LINE() AS ErrorLine, ERROR_MESSAGE() AS ErrorMessage END CATCH END END