mirror of
https://github.com/bitwarden/server.git
synced 2024-11-23 12:25:16 +01:00
b877c25234
* Implemented tax collection for subscriptions * Cleanup for Sales Tax * Cleanup for Sales Tax * Changes a constraint to an index for checking purposes * Added and implemented a ReadById method for TaxRate * Code review fixes for Tax Rate implementation * Code review fixes for Tax Rate implementation * Made the SalesTax migration script rerunnable
150 lines
2.8 KiB
Transact-SQL
150 lines
2.8 KiB
Transact-SQL
IF OBJECT_ID('[dbo].[Policy]') IS NULL
|
|
BEGIN
|
|
CREATE TABLE [dbo].[TaxRate] (
|
|
[Id] VARCHAR(40) NOT NULL,
|
|
[Country] VARCHAR(50) NOT NULL,
|
|
[State] VARCHAR(2) NULL,
|
|
[PostalCode] VARCHAR(10) NOT NULL,
|
|
[Rate] DECIMAL(5,2) NOT NULL,
|
|
[Active] BIT NOT NULL,
|
|
CONSTRAINT [PK_TaxRate] PRIMARY KEY CLUSTERED ([Id] ASC)
|
|
);
|
|
|
|
CREATE UNIQUE INDEX [IX_TaxRate_Country_PostalCode_Active_Uniqueness]
|
|
ON [dbo].[TaxRate](Country, PostalCode)
|
|
WHERE Active = 1;
|
|
END
|
|
GO
|
|
|
|
IF OBJECT_ID('[dbo].[TaxRate_ReadById]') IS NOT NULL
|
|
BEGIN
|
|
DROP PROCEDURE [dbo].[TaxRate_ReadById]
|
|
END
|
|
GO
|
|
|
|
CREATE PROCEDURE [dbo].[TaxRate_ReadById]
|
|
@Id VARCHAR(40)
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON
|
|
|
|
SELECT * FROM [dbo].[TaxRate]
|
|
WHERE Id = @Id
|
|
END
|
|
GO
|
|
|
|
IF OBJECT_ID('[dbo].[TaxRate_Search]') IS NOT NULL
|
|
BEGIN
|
|
DROP PROCEDURE [dbo].[TaxRate_Search]
|
|
END
|
|
GO
|
|
|
|
CREATE PROCEDURE [dbo].[TaxRate_Search]
|
|
@Skip INT = 0,
|
|
@Count INT = 25
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON
|
|
|
|
SELECT * FROM [dbo].[TaxRate]
|
|
WHERE Active = 1
|
|
ORDER BY Country, PostalCode DESC
|
|
OFFSET @Skip ROWS
|
|
FETCH NEXT @Count ROWS ONLY
|
|
END
|
|
GO
|
|
|
|
IF OBJECT_ID('[dbo].[TaxRate_ReadAllActive]') IS NOT NULL
|
|
BEGIN
|
|
DROP PROCEDURE [dbo].[TaxRate_ReadAllActive]
|
|
END
|
|
GO
|
|
|
|
CREATE PROCEDURE [dbo].[TaxRate_ReadAllActive]
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON
|
|
|
|
SELECT * FROM [dbo].[TaxRate]
|
|
WHERE Active = 1
|
|
END
|
|
GO
|
|
|
|
IF OBJECT_ID('[dbo].[TaxRate_ReadByLocation]') IS NOT NULL
|
|
BEGIN
|
|
DROP PROCEDURE [dbo].[TaxRate_ReadByLocation]
|
|
END
|
|
GO
|
|
|
|
CREATE PROCEDURE [dbo].[TaxRate_ReadByLocation]
|
|
@Country VARCHAR(50),
|
|
@PostalCode VARCHAR(10)
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON
|
|
|
|
SELECT * FROM [dbo].[TaxRate]
|
|
WHERE Active = 1
|
|
AND [Country] = @Country
|
|
AND [PostalCode] = @PostalCode
|
|
END
|
|
GO
|
|
|
|
IF OBJECT_ID('[dbo].[TaxRate_Create]') IS NOT NULL
|
|
BEGIN
|
|
DROP PROCEDURE [dbo].[TaxRate_Create]
|
|
END
|
|
GO
|
|
|
|
CREATE PROCEDURE [dbo].[TaxRate_Create]
|
|
@Id VARCHAR(40),
|
|
@Country VARCHAR(50),
|
|
@State VARCHAR(2),
|
|
@PostalCode VARCHAR(10),
|
|
@Rate DECIMAL(5,2),
|
|
@Active BIT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON
|
|
|
|
INSERT INTO [dbo].[TaxRate]
|
|
(
|
|
[Id],
|
|
[Country],
|
|
[State],
|
|
[PostalCode],
|
|
[Rate],
|
|
[Active]
|
|
)
|
|
VALUES
|
|
(
|
|
@Id,
|
|
@Country,
|
|
@State,
|
|
@PostalCode,
|
|
@Rate,
|
|
1
|
|
)
|
|
END
|
|
GO
|
|
|
|
IF OBJECT_ID('[dbo].[TaxRate_Archive]') IS NOT NULL
|
|
BEGIN
|
|
DROP PROCEDURE [dbo].[TaxRate_Archive]
|
|
END
|
|
GO
|
|
|
|
CREATE PROCEDURE [dbo].[TaxRate_Archive]
|
|
@Id VARCHAR(40)
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON
|
|
|
|
UPDATE
|
|
[dbo].[TaxRate]
|
|
SET
|
|
[Active] = 0
|
|
WHERE
|
|
[Id] = @Id
|
|
END
|