| 1 |
|
|---|
| 2 | SET ANSI_NULLS ON
|
|---|
| 3 | GO
|
|---|
| 4 | SET QUOTED_IDENTIFIER ON
|
|---|
| 5 | GO
|
|---|
| 6 |
|
|---|
| 7 | -- =============================================
|
|---|
| 8 | -- Author: marek
|
|---|
| 9 | -- Create date: 22/07/2009
|
|---|
| 10 | -- Description: Dodaje lub uaktualnia rekord zmiany emisji w tabeli ZmianyEmisji
|
|---|
| 11 | -- =============================================
|
|---|
| 12 | ALTER PROCEDURE [dbo].[sp_AddUpdateIssueChange]
|
|---|
| 13 | -- Add the parameters for the stored procedure here
|
|---|
| 14 | @issueId DECIMAL(18,0),
|
|---|
| 15 | @currentIssueNumer INT,
|
|---|
| 16 | @newIssueNumber INT
|
|---|
| 17 | AS
|
|---|
| 18 | BEGIN
|
|---|
| 19 | -- SET NOCOUNT ON added to prevent extra result sets from
|
|---|
| 20 | -- interfering with SELECT statements.
|
|---|
| 21 | SET NOCOUNT ON;
|
|---|
| 22 |
|
|---|
| 23 | DECLARE @invoiceId INT
|
|---|
| 24 | DECLARE @sellDate DATETIME
|
|---|
| 25 | DECLARE @currentIssueDate DATETIME
|
|---|
| 26 | DECLARE @newIssueDate DATETIME
|
|---|
| 27 | DECLARE @adName VARCHAR(20)
|
|---|
| 28 |
|
|---|
| 29 | SELECT @invoiceId=F.Id_Faktury,
|
|---|
| 30 | @sellDate=F.Data_Sprzedazy,
|
|---|
| 31 | @currentIssueDate = N.Data_W,
|
|---|
| 32 | @newIssueDate=N1.data_w,
|
|---|
| 33 | @adName=R.[Id Reklamy]
|
|---|
| 34 | FROM dbo.[Uka¿e siê w Nr] U
|
|---|
| 35 | INNER JOIN Reklama R ON U.ReklamaId=R.ReklamaId
|
|---|
| 36 | INNER JOIN Nr N ON N.Tyt=R.[tytu³] AND N.Nrw=U.[Nr Wydania]
|
|---|
| 37 | INNER JOIN Faktury F ON F.id_Faktury=U.idFaktury
|
|---|
| 38 | INNER JOIN Nr N1 ON N1.Tyt=R.[tytu³] AND N1.Nrw=@newIssueNumber
|
|---|
| 39 | WHERE U.id=@issueId
|
|---|
| 40 |
|
|---|
| 41 | IF @invoiceId IS NULL GOTO END_PROC
|
|---|
| 42 |
|
|---|
| 43 | IF (MONTH(@sellDate)=MONTH(GETDATE()) AND YEAR(@sellDate)=YEAR(GETDATE()))
|
|---|
| 44 | AND
|
|---|
| 45 | (
|
|---|
| 46 | (MONTH(@currentIssueDate)=MONTH(GETDATE()) AND YEAR(@currentIssueDate)=YEAR(GETDATE()))
|
|---|
| 47 | OR
|
|---|
| 48 | (MONTH(@newIssueDate)=MONTH(GETDATE()) AND YEAR(@newIssueDate)=YEAR(GETDATE()))
|
|---|
| 49 | )
|
|---|
| 50 | BEGIN
|
|---|
| 51 |
|
|---|
| 52 | UPDATE dbo.Faktury
|
|---|
| 53 | SET ZmianaEmisji=1
|
|---|
| 54 | WHERE id_faktury=@invoiceId
|
|---|
| 55 |
|
|---|
| 56 | UPDATE dbo.Faktura_Details
|
|---|
| 57 | SET Rok=YEAR(@newIssueDate), Miesiac=MONTH(@newIssueDate),
|
|---|
| 58 | Nazwa_Uslugi=@adName + ' | ' + CAST(@newIssueNumber AS VARCHAR),
|
|---|
| 59 | Nr_Wydania=@newIssueNumber
|
|---|
| 60 | WHERE id_faktury=@invoiceId AND Nr_Wydania=@currentIssueNumer
|
|---|
| 61 |
|
|---|
| 62 |
|
|---|
| 63 | GOTO END_PROC
|
|---|
| 64 | END
|
|---|
| 65 |
|
|---|
| 66 |
|
|---|
| 67 | -- Insert statements for procedure here
|
|---|
| 68 | DECLARE @rows INT
|
|---|
| 69 |
|
|---|
| 70 | SELECT @rows = COUNT(Id) FROM zmianyEmisji WHERE idEmisji=@issueId AND YEAR(dataZmiany)=YEAR(GETDATE()) AND MONTH(dataZmiany)=MONTH(GETDATE())
|
|---|
| 71 |
|
|---|
| 72 | IF @rows>0
|
|---|
| 73 | BEGIN
|
|---|
| 74 | UPDATE zmianyEmisji
|
|---|
| 75 | SET nastNrWyd=@newIssueNumber, dataZmiany=GETDATE()
|
|---|
| 76 | WHERE idEmisji=@issueId AND YEAR(dataZmiany)=YEAR(GETDATE()) AND MONTH(dataZmiany)=MONTH(GETDATE())
|
|---|
| 77 |
|
|---|
| 78 | --sprawdz czy nowy numer emisji nie jest taki sam jak stary numer, jesli tak to usun zmiane emisji
|
|---|
| 79 | DECLARE @issueNumber INT
|
|---|
| 80 | SELECT @issueNumber=popNrWyd FROM zmianyEmisji WHERE idEmisji=@issueId AND YEAR(dataZmiany)=YEAR(GETDATE()) AND MONTH(dataZmiany)=MONTH(GETDATE())
|
|---|
| 81 | IF @issueNumber=@newIssueNumber
|
|---|
| 82 | DELETE FROM zmianyEmisji WHERE idEmisji=@issueId AND YEAR(dataZmiany)=YEAR(GETDATE()) AND MONTH(dataZmiany)=MONTH(GETDATE())
|
|---|
| 83 | END
|
|---|
| 84 | ELSE
|
|---|
| 85 | BEGIN
|
|---|
| 86 | INSERT INTO zmianyEmisji(idEmisji, popNrWyd, nastNrWyd, dataZmiany)
|
|---|
| 87 | VALUES(@issueId, @currentIssueNumer, @newIssueNumber, GETDATE())
|
|---|
| 88 | END
|
|---|
| 89 |
|
|---|
| 90 | END_PROC:
|
|---|
| 91 |
|
|---|
| 92 | END
|
|---|
| 93 | GO
|
|---|
| 94 |
|
|---|
| 95 | SET ANSI_NULLS OFF
|
|---|
| 96 | GO
|
|---|
| 97 | SET QUOTED_IDENTIFIER OFF
|
|---|
| 98 | GO
|
|---|
| 99 |
|
|---|