You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
119 lines
3.1 KiB
119 lines
3.1 KiB
-- This index was incorrect business logic and should be removed. |
|
IF OBJECT_ID('[dbo].[PK_ProviderIdInvoiceId]', 'UQ') IS NOT NULL |
|
BEGIN |
|
ALTER TABLE [dbo].[ProviderInvoiceItem] |
|
DROP CONSTRAINT [PK_ProviderIdInvoiceId] |
|
END |
|
GO |
|
|
|
-- This foreign key needs a cascade to ensure providers can be deleted when ProviderInvoiceItems still exist. |
|
IF OBJECT_ID('[dbo].[FK_ProviderInvoiceItem_Provider]', 'F') IS NOT NULL |
|
BEGIN |
|
ALTER TABLE [dbo].[ProviderInvoiceItem] |
|
DROP CONSTRAINT [FK_ProviderInvoiceItem_Provider] |
|
END |
|
GO |
|
|
|
ALTER TABLE [dbo].[ProviderInvoiceItem] |
|
ADD CONSTRAINT [FK_ProviderInvoiceItem_Provider] |
|
FOREIGN KEY ([ProviderId]) REFERENCES [dbo].[Provider] ([Id]) ON DELETE CASCADE |
|
GO |
|
|
|
-- Because we need to insert this when a "draft" invoice is created, the [InvoiceNumber] column needs to be nullable. |
|
ALTER TABLE [dbo].[ProviderInvoiceItem] |
|
ALTER COLUMN [InvoiceNumber] VARCHAR (50) NULL |
|
GO |
|
|
|
-- The "Create" stored procedure needs to take the @Created parameter. |
|
IF OBJECT_ID('[dbo].[ProviderInvoiceItem_Create]') IS NOT NULL |
|
BEGIN |
|
DROP PROCEDURE [dbo].[ProviderInvoiceItem_Create] |
|
END |
|
GO |
|
|
|
CREATE PROCEDURE [dbo].[ProviderInvoiceItem_Create] |
|
@Id UNIQUEIDENTIFIER OUTPUT, |
|
@ProviderId UNIQUEIDENTIFIER, |
|
@InvoiceId VARCHAR (50), |
|
@InvoiceNumber VARCHAR (50), |
|
@ClientName NVARCHAR (50), |
|
@PlanName NVARCHAR (50), |
|
@AssignedSeats INT, |
|
@UsedSeats INT, |
|
@Total MONEY, |
|
@Created DATETIME2 (7) = NULL |
|
AS |
|
BEGIN |
|
SET NOCOUNT ON |
|
|
|
SET @Created = COALESCE(@Created, GETUTCDATE()) |
|
|
|
INSERT INTO [dbo].[ProviderInvoiceItem] |
|
( |
|
[Id], |
|
[ProviderId], |
|
[InvoiceId], |
|
[InvoiceNumber], |
|
[ClientName], |
|
[PlanName], |
|
[AssignedSeats], |
|
[UsedSeats], |
|
[Total], |
|
[Created] |
|
) |
|
VALUES |
|
( |
|
@Id, |
|
@ProviderId, |
|
@InvoiceId, |
|
@InvoiceNumber, |
|
@ClientName, |
|
@PlanName, |
|
@AssignedSeats, |
|
@UsedSeats, |
|
@Total, |
|
@Created |
|
) |
|
END |
|
GO |
|
|
|
-- Because we pass whole entities to the SPROC, The "Update" stored procedure needs to take the @Created parameter too. |
|
IF OBJECT_ID('[dbo].[ProviderInvoiceItem_Update]') IS NOT NULL |
|
BEGIN |
|
DROP PROCEDURE [dbo].[ProviderInvoiceItem_Update] |
|
END |
|
GO |
|
|
|
CREATE PROCEDURE [dbo].[ProviderInvoiceItem_Update] |
|
@Id UNIQUEIDENTIFIER, |
|
@ProviderId UNIQUEIDENTIFIER, |
|
@InvoiceId VARCHAR (50), |
|
@InvoiceNumber VARCHAR (50), |
|
@ClientName NVARCHAR (50), |
|
@PlanName NVARCHAR (50), |
|
@AssignedSeats INT, |
|
@UsedSeats INT, |
|
@Total MONEY, |
|
@Created DATETIME2 (7) = NULL |
|
AS |
|
BEGIN |
|
SET NOCOUNT ON |
|
|
|
SET @Created = COALESCE(@Created, GETUTCDATE()) |
|
|
|
UPDATE |
|
[dbo].[ProviderInvoiceItem] |
|
SET |
|
[ProviderId] = @ProviderId, |
|
[InvoiceId] = @InvoiceId, |
|
[InvoiceNumber] = @InvoiceNumber, |
|
[ClientName] = @ClientName, |
|
[PlanName] = @PlanName, |
|
[AssignedSeats] = @AssignedSeats, |
|
[UsedSeats] = @UsedSeats, |
|
[Total] = @Total, |
|
[Created] = @Created |
|
WHERE |
|
[Id] = @Id |
|
END |
|
GO
|
|
|