| 1 | USE BAZA_REKLAM
|
|---|
| 2 | GO
|
|---|
| 3 |
|
|---|
| 4 | SET ANSI_NULLS ON
|
|---|
| 5 | GO
|
|---|
| 6 | SET QUOTED_IDENTIFIER ON
|
|---|
| 7 | GO
|
|---|
| 8 |
|
|---|
| 9 |
|
|---|
| 10 | /****** Object: Table [dbo].[SubscriptionType] Script Date: 06/17/2009 15:39:34 ******/
|
|---|
| 11 | CREATE TABLE [dbo].[SubscriptionType](
|
|---|
| 12 | [Id] [int] NOT NULL,
|
|---|
| 13 | [Name] [nvarchar](50) COLLATE SQL_Latin1_General_CP1250_CI_AS NOT NULL,
|
|---|
| 14 | [PricePln] [decimal](9, 2) NULL,
|
|---|
| 15 | [PriceEur] [decimal](9, 2) NULL,
|
|---|
| 16 | [TitleId] [int] NULL,
|
|---|
| 17 | [AmtMounth] [int] NULL,
|
|---|
| 18 | CONSTRAINT [PK_SubscriptionType] PRIMARY KEY CLUSTERED
|
|---|
| 19 | (
|
|---|
| 20 | [Id] ASC
|
|---|
| 21 | ) ON [PRIMARY]
|
|---|
| 22 | ) ON [PRIMARY]
|
|---|
| 23 | GO
|
|---|
| 24 |
|
|---|
| 25 |
|
|---|
| 26 | INSERT INTO [SubscriptionType] VALUES(1, 'Abonament 3M', 550, 129, 41, 3);
|
|---|
| 27 | INSERT INTO [SubscriptionType] VALUES(2, 'Abonament 6M', 505, 119, 41, 6);
|
|---|
| 28 | INSERT INTO [SubscriptionType] VALUES(3, 'Abonament 12M', 420, 99, 41, 12);
|
|---|
| 29 |
|
|---|
| 30 | /****** Object: Table [dbo].[Subscription] Script Date: 07/21/2009 15:00:06 ******/
|
|---|
| 31 | SET ANSI_PADDING ON
|
|---|
| 32 | GO
|
|---|
| 33 | CREATE TABLE [dbo].[Subscription](
|
|---|
| 34 | [Id] [int] IDENTITY(1,1) NOT NULL,
|
|---|
| 35 | [Guid] [uniqueidentifier] NOT NULL,
|
|---|
| 36 | [CustomerId] [int] NOT NULL,
|
|---|
| 37 | [SubscriptionTypeId] [int] NOT NULL,
|
|---|
| 38 | [BasePrice] [decimal](9, 2) NULL,
|
|---|
| 39 | [Discount] [decimal](9, 2) NULL,
|
|---|
| 40 | [TotalPrice] [decimal](9, 2) NULL,
|
|---|
| 41 | [Currency] [varchar](3) COLLATE SQL_Latin1_General_CP1250_CI_AS NULL,
|
|---|
| 42 | [OrderId] [int] NULL,
|
|---|
| 43 | [CreatedOn] [datetime] NULL,
|
|---|
| 44 | [CreatedBy] [int] NULL,
|
|---|
| 45 | [UpdatedOn] [datetime] NULL,
|
|---|
| 46 | [UpdatedBy] [int] NULL,
|
|---|
| 47 | [SubscriptionItems] [int] NULL,
|
|---|
| 48 | [StartDate] [datetime] NULL,
|
|---|
| 49 | [Vat] [decimal](9, 2) NULL,
|
|---|
| 50 | [InvoiceId] [int] NULL
|
|---|
| 51 | CONSTRAINT [PK_Subscription] PRIMARY KEY CLUSTERED
|
|---|
| 52 | (
|
|---|
| 53 | [Id] ASC
|
|---|
| 54 | ) ON [PRIMARY]
|
|---|
| 55 | ) ON [PRIMARY]
|
|---|
| 56 | GO
|
|---|
| 57 |
|
|---|
| 58 | SET ANSI_PADDING OFF
|
|---|
| 59 | GO
|
|---|
| 60 |
|
|---|
| 61 |
|
|---|
| 62 | /****** Object: Table [dbo].[SubscriptionDetail] Script Date: 07/21/2009 15:02:50 ******/
|
|---|
| 63 | CREATE TABLE [dbo].[SubscriptionDetail](
|
|---|
| 64 | [Id] [int] IDENTITY(1,1) NOT NULL,
|
|---|
| 65 | [SubscriptionId] [int] NOT NULL,
|
|---|
| 66 | [Price] [decimal](9, 2) NULL,
|
|---|
| 67 | [PricePLN] [decimal](9, 2) NULL,
|
|---|
| 68 | [Year] [int] NULL,
|
|---|
| 69 | [Month] [int] NULL,
|
|---|
| 70 | [InvoiceId] [int] NULL,
|
|---|
| 71 | CONSTRAINT [PK_SubscriptionDetails] PRIMARY KEY CLUSTERED
|
|---|
| 72 | (
|
|---|
| 73 | [Id] ASC
|
|---|
| 74 | ) ON [PRIMARY]
|
|---|
| 75 | ) ON [PRIMARY]
|
|---|
| 76 | GO
|
|---|
| 77 |
|
|---|
| 78 |
|
|---|
| 79 | /****** Object: StoredProcedure [dbo].[sp_GetProductsWithOrder] Script Date: 06/17/2009 15:38:52 ******/
|
|---|
| 80 | -- =============================================
|
|---|
| 81 | -- Create date: 2009-11-23
|
|---|
| 82 | -- =============================================
|
|---|
| 83 | CREATE PROCEDURE [dbo].[sp_GetProductsWithOrder]
|
|---|
| 84 | @clientId int
|
|---|
| 85 | AS
|
|---|
| 86 | BEGIN
|
|---|
| 87 | -- SET NOCOUNT ON added to prevent extra result sets from
|
|---|
| 88 | -- interfering with SELECT statements.
|
|---|
| 89 | SET NOCOUNT ON;
|
|---|
| 90 |
|
|---|
| 91 | -- Insert statements for procedure here
|
|---|
| 92 |
|
|---|
| 93 | DECLARE @ProductsWithOrder TABLE
|
|---|
| 94 | (
|
|---|
| 95 | Id int,
|
|---|
| 96 | TitleId int,
|
|---|
| 97 | Type varchar(20),
|
|---|
| 98 | ProductType int,
|
|---|
| 99 | ShortName varchar(20),
|
|---|
| 100 | StartDate datetime,
|
|---|
| 101 | Price decimal(9,2),
|
|---|
| 102 | TotalPrice decimal(9,2),
|
|---|
| 103 | Vat decimal(9,2),
|
|---|
| 104 | Currency varchar(3),
|
|---|
| 105 | IsActivated bit,
|
|---|
| 106 | OrderId int,
|
|---|
| 107 | HasInvoice bit,
|
|---|
| 108 | DetailCount int,
|
|---|
| 109 | Discount decimal(9,2)
|
|---|
| 110 | )
|
|---|
| 111 |
|
|---|
| 112 | INSERT INTO @ProductsWithOrder
|
|---|
| 113 | SELECT R.ReklamaID, T.Id, 'Reklama', 2, R.[ID REKLAMY],
|
|---|
| 114 | E.Data1Emisji, R.NETTO, R.NETTO * (1+R.VAT) AS Brutto, R.VAT,
|
|---|
| 115 | Currency = CASE
|
|---|
| 116 | WHEN Brutto_Euro_Miano IS NULL OR Brutto_Euro_Miano='' THEN 'PLN'
|
|---|
| 117 | ELSE R.Brutto_Euro_Miano
|
|---|
| 118 | END,
|
|---|
| 119 | R.[ZATWIERDZONO DO DRUKU],
|
|---|
| 120 | R.idZamowienia,
|
|---|
| 121 | HasInvoices =
|
|---|
| 122 | CASE
|
|---|
| 123 | WHEN I.invoiceCount IS NULL OR I.invoiceCount < 1 THEN 0
|
|---|
| 124 | ELSE 1
|
|---|
| 125 | END,
|
|---|
| 126 | I.InvoiceCount,
|
|---|
| 127 | R.RABAT
|
|---|
| 128 | FROM REKLAMA AS R
|
|---|
| 129 | LEFT OUTER JOIN (SELECT ReklamaId, MIN(DataEmisji) AS Data1Emisji FROM EmisjeReklamy GROUP BY ReklamaId) AS E ON E.ReklamaId = R.ReklamaID
|
|---|
| 130 | LEFT OUTER JOIN (SELECT ReklamaId, InvoiceCount = count(*) FROM [uka¿e siê w nr] WHERE zafakturowana=1 GROUP BY Reklamaid) I ON I.ReklamaId=R.reklamaid
|
|---|
| 131 | INNER JOIN dbo.Zamowienia Z ON Z.idZamowienia = R.idZamowienia
|
|---|
| 132 | INNER JOIN dbo.[Lista Tytu³ów] T ON T.Symb = R.[Tytu³]
|
|---|
| 133 | WHERE
|
|---|
| 134 | Z.idKlienta = @clientId AND R.idZamowienia IS NOT NULL
|
|---|
| 135 | UNION
|
|---|
| 136 | SELECT A.Id, AT.TitleId, 'Abonament', 1, 'Abo-' + CAST(A.Id AS varchar),
|
|---|
| 137 | A.StartDate, A.BasePrice, A.TotalPrice, A.Vat, A.Currency, 0, A.OrderId,
|
|---|
| 138 | HasInvoices =
|
|---|
| 139 | CASE
|
|---|
| 140 | WHEN SD.InvoiceCount IS NULL OR SD.InvoiceCount < 1 THEN 0
|
|---|
| 141 | ELSE 1
|
|---|
| 142 | END,
|
|---|
| 143 | A.SubscriptionItems,
|
|---|
| 144 | A.Discount
|
|---|
| 145 | FROM Subscription AS A
|
|---|
| 146 | LEFT OUTER JOIN (SELECT SubscriptionId, InvoiceCount = COUNT(InvoiceId) FROM SubscriptionDetail WHERE InvoiceId IS NOT NULL GROUP BY SubscriptionId) SD ON SD.SubscriptionId=A.ID
|
|---|
| 147 | INNER JOIN SubscriptionType AS AT ON AT.Id = A.SubscriptionTypeId
|
|---|
| 148 | WHERE
|
|---|
| 149 | A.CustomerId = @clientId AND A.OrderId IS NOT NULL
|
|---|
| 150 |
|
|---|
| 151 | SELECT * FROM @ProductsWithOrder
|
|---|
| 152 |
|
|---|
| 153 | END
|
|---|
| 154 | GO
|
|---|
| 155 |
|
|---|
| 156 |
|
|---|
| 157 | /****** Object: StoredProcedure [dbo].[sp_GetProductsWithoutOrder] Script Date: 07/21/2009 14:55:02 ******/
|
|---|
| 158 | -- =============================================
|
|---|
| 159 | -- Create date: 2009-11-23
|
|---|
| 160 | -- =============================================
|
|---|
| 161 | CREATE PROCEDURE [dbo].[sp_GetProductsWithoutOrder]
|
|---|
| 162 | @customerId int
|
|---|
| 163 | AS
|
|---|
| 164 | BEGIN
|
|---|
| 165 | -- SET NOCOUNT ON added to prevent extra result sets from
|
|---|
| 166 | -- interfering with SELECT statements.
|
|---|
| 167 | SET NOCOUNT ON;
|
|---|
| 168 |
|
|---|
| 169 | -- Insert statements for procedure here
|
|---|
| 170 |
|
|---|
| 171 | DECLARE @ProductsWithoutOrder TABLE
|
|---|
| 172 | (
|
|---|
| 173 | Id int,
|
|---|
| 174 | TitleId int,
|
|---|
| 175 | Type varchar(20),
|
|---|
| 176 | ProductType int,
|
|---|
| 177 | ShortName varchar(20),
|
|---|
| 178 | StartDate datetime,
|
|---|
| 179 | Price decimal(9,2),
|
|---|
| 180 | TotalPrice decimal(9,2),
|
|---|
| 181 | Vat decimal(9,2),
|
|---|
| 182 | Currency varchar(3),
|
|---|
| 183 | IsActivated bit,
|
|---|
| 184 | HasInvoice bit,
|
|---|
| 185 | DetailCount int,
|
|---|
| 186 | Discount decimal(9,2)
|
|---|
| 187 | )
|
|---|
| 188 |
|
|---|
| 189 | INSERT INTO @ProductsWithoutOrder
|
|---|
| 190 | SELECT R.ReklamaID, T.Id, 'Reklama', 2, R.[ID REKLAMY], E.Data1Emisji, R.NETTO, R.NETTO * (1+R.VAT) AS Brutto, R.VAT,
|
|---|
| 191 | Currency = CASE
|
|---|
| 192 | WHEN Brutto_Euro_Miano IS NULL OR Brutto_Euro_Miano='' THEN 'PLN'
|
|---|
| 193 | ELSE R.Brutto_Euro_Miano
|
|---|
| 194 | END,
|
|---|
| 195 | R.[ZATWIERDZONO DO DRUKU],
|
|---|
| 196 | HasInvoices =
|
|---|
| 197 | CASE
|
|---|
| 198 | WHEN I.invoiceCount IS NULL OR I.invoiceCount < 1 THEN 0
|
|---|
| 199 | ELSE 1
|
|---|
| 200 | END,
|
|---|
| 201 | I.InvoiceCount,
|
|---|
| 202 | R.RABAT
|
|---|
| 203 | FROM REKLAMA AS R
|
|---|
| 204 | LEFT OUTER JOIN (SELECT ReklamaId, MIN(DataEmisji) AS Data1Emisji FROM EmisjeReklamy GROUP BY ReklamaId) AS E ON E.ReklamaId = R.ReklamaID
|
|---|
| 205 | LEFT OUTER JOIN (SELECT ReklamaId, InvoiceCount = count(*) FROM [uka¿e siê w nr] WHERE zafakturowana=1 GROUP BY Reklamaid) I ON I.ReklamaId=R.reklamaid
|
|---|
| 206 | INNER JOIN dbo.[Lista Tytu³ów] T ON T.Symb=R.[Tytu³]
|
|---|
| 207 | WHERE
|
|---|
| 208 | (R.CustomerID = @customerId)
|
|---|
| 209 | AND (R.idZamowienia IS NULL)
|
|---|
| 210 | AND (R.[FAKTURA WYSTAWIONO] = 0)
|
|---|
| 211 | AND
|
|---|
| 212 | (
|
|---|
| 213 | (YEAR(R.[DATA ZAMÓWIENIA]) = 2008 AND R.[ZATWIERDZONO DO DRUKU] = 1)
|
|---|
| 214 | OR
|
|---|
| 215 | (YEAR(R.[DATA ZAMÓWIENIA]) >= 2009)
|
|---|
| 216 | )
|
|---|
| 217 | UNION
|
|---|
| 218 | SELECT A.Id, AT.TitleId, 'Abonament', 1, 'Abo-' + CAST(A.Id AS varchar),
|
|---|
| 219 | A.StartDate, A.BasePrice, A.TotalPrice, A.Vat, A.Currency, 0,
|
|---|
| 220 | HasInvoices =
|
|---|
| 221 | CASE
|
|---|
| 222 | WHEN SD.InvoiceCount IS NULL OR SD.InvoiceCount < 1 THEN 0
|
|---|
| 223 | ELSE 1
|
|---|
| 224 | END,
|
|---|
| 225 | A.SubscriptionItems,
|
|---|
| 226 | A.Discount
|
|---|
| 227 | FROM Subscription AS A
|
|---|
| 228 | LEFT OUTER JOIN (SELECT SubscriptionId, InvoiceCount = COUNT(InvoiceId) FROM SubscriptionDetail WHERE InvoiceId IS NOT NULL GROUP BY SubscriptionId) SD ON SD.SubscriptionId=A.ID
|
|---|
| 229 | INNER JOIN SubscriptionType AS AT ON AT.Id = A.SubscriptionTypeId
|
|---|
| 230 | WHERE
|
|---|
| 231 | A.CustomerId = @customerId AND A.OrderId IS NULL
|
|---|
| 232 |
|
|---|
| 233 | SELECT * FROM @ProductsWithoutOrder
|
|---|
| 234 |
|
|---|
| 235 | END
|
|---|
| 236 | GO
|
|---|
| 237 |
|
|---|
| 238 |
|
|---|
| 239 |
|
|---|
| 240 | /****** Object: StoredProcedure [dbo].[sp_AddProductToOrder] Script Date: 06/17/2009 15:40:25 ******/
|
|---|
| 241 | -- =============================================
|
|---|
| 242 | -- Create date: 2009-11-23
|
|---|
| 243 | -- =============================================
|
|---|
| 244 | CREATE PROCEDURE [dbo].[sp_AddProductToOrder]
|
|---|
| 245 | -- Add the parameters for the stored procedure here
|
|---|
| 246 | @productId int,
|
|---|
| 247 | @productType int,
|
|---|
| 248 | @orderId int
|
|---|
| 249 |
|
|---|
| 250 | AS
|
|---|
| 251 | BEGIN
|
|---|
| 252 | -- SET NOCOUNT ON added to prevent extra result sets from
|
|---|
| 253 | -- interfering with SELECT statements.
|
|---|
| 254 | SET NOCOUNT ON;
|
|---|
| 255 |
|
|---|
| 256 | IF(@productType=2) -- Reklama
|
|---|
| 257 | BEGIN
|
|---|
| 258 | UPDATE dbo.Reklama SET idZamowienia=@orderId WHERE ReklamaId=@productId
|
|---|
| 259 | RETURN
|
|---|
| 260 | END
|
|---|
| 261 | IF(@productType=1)
|
|---|
| 262 | BEGIN
|
|---|
| 263 | UPDATE dbo.Subscription SET OrderId=@orderId WHERE Id=@productId
|
|---|
| 264 | RETURN
|
|---|
| 265 | END
|
|---|
| 266 | END
|
|---|
| 267 | GO
|
|---|
| 268 |
|
|---|
| 269 |
|
|---|
| 270 | /****** Object: StoredProcedure [dbo].[sp_RemoveProductFromOrder] Script Date: 06/17/2009 15:40:43 ******/
|
|---|
| 271 | -- =============================================
|
|---|
| 272 | -- Create date: 2009-11-23
|
|---|
| 273 | -- =============================================
|
|---|
| 274 | CREATE PROCEDURE [dbo].[sp_RemoveProductFromOrder]
|
|---|
| 275 | -- Add the parameters for the stored procedure here
|
|---|
| 276 | @productId int,
|
|---|
| 277 | @productType int
|
|---|
| 278 |
|
|---|
| 279 | AS
|
|---|
| 280 | BEGIN
|
|---|
| 281 | -- SET NOCOUNT ON added to prevent extra result sets from
|
|---|
| 282 | -- interfering with SELECT statements.
|
|---|
| 283 | SET NOCOUNT ON;
|
|---|
| 284 |
|
|---|
| 285 | IF(@productType=2) -- Reklama
|
|---|
| 286 | BEGIN
|
|---|
| 287 | UPDATE dbo.Reklama SET idZamowienia=NULL WHERE ReklamaId=@productId
|
|---|
| 288 | RETURN
|
|---|
| 289 | END
|
|---|
| 290 | IF(@productType=1)
|
|---|
| 291 | BEGIN
|
|---|
| 292 | UPDATE dbo.Subscription SET OrderId=NULL WHERE Id=@productId
|
|---|
| 293 | RETURN
|
|---|
| 294 | END
|
|---|
| 295 | END
|
|---|