Refactor: Instead of a concept of Price/FullPrice, happy hour is now a checkbox in the product.
This needed major refactor in all parts dealing with product or inventory.
This commit is contained in:
26
Sql/2016.04.11 Happy Hour Inventory Import.sql
Normal file
26
Sql/2016.04.11 Happy Hour Inventory Import.sql
Normal file
@ -0,0 +1,26 @@
|
||||
declare @id uniqueidentifier
|
||||
declare @name nvarchar(255)
|
||||
declare @units nvarchar(255)
|
||||
declare @price decimal(19,5)
|
||||
declare @org uniqueidentifier
|
||||
declare @c int
|
||||
DECLARE db_cursor CURSOR FOR
|
||||
select ProductID, Name, Units, price from products where name like 'H h %' and hashappyhour = 1
|
||||
OPEN db_cursor
|
||||
FETCH NEXT FROM db_cursor INTO @id, @name, @units, @price
|
||||
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
select @c = count(*) from products where 'H H ' + name = @name and units = @units
|
||||
if @c = 1
|
||||
BEGIN
|
||||
select @org = productid from products where 'H H ' + name = @name and units = @units
|
||||
update inventories set productid = @org, ishappyhour = 1 where productid = @id
|
||||
delete from products where productid = @id
|
||||
update products set hashappyhour = 1 where productid = @org
|
||||
END
|
||||
FETCH NEXT FROM db_cursor INTO @id, @name, @units, @price
|
||||
END
|
||||
|
||||
CLOSE db_cursor
|
||||
DEALLOCATE db_cursor
|
||||
195
Sql/2016.04.11 Has Happy Hour.sql
Normal file
195
Sql/2016.04.11 Has Happy Hour.sql
Normal file
@ -0,0 +1,195 @@
|
||||
BEGIN TRANSACTION
|
||||
GO
|
||||
ALTER TABLE dbo.Inventories DROP CONSTRAINT FK8C0CFB221DECC269
|
||||
GO
|
||||
ALTER TABLE dbo.Inventories DROP CONSTRAINT FK8C0CFB22EB4DE5BC
|
||||
GO
|
||||
ALTER TABLE dbo.Inventories DROP CONSTRAINT FK8C0CFB223F88CAB6
|
||||
GO
|
||||
ALTER TABLE dbo.Inventories DROP CONSTRAINT FK8C0CFB22DB70F42
|
||||
GO
|
||||
CREATE TABLE dbo.Tmp_Inventories
|
||||
(
|
||||
InventoryID uniqueidentifier NOT NULL,
|
||||
KotID uniqueidentifier NOT NULL,
|
||||
ProductID uniqueidentifier NOT NULL,
|
||||
SortOrder int NOT NULL,
|
||||
Quantity decimal(19, 5) NOT NULL,
|
||||
Price decimal(19, 5) NOT NULL,
|
||||
IsHappyHour bit NOT NULL,
|
||||
ServiceCharge decimal(19, 5) NOT NULL,
|
||||
IsScTaxable bit NOT NULL,
|
||||
ServiceTaxRate decimal(19, 5) NOT NULL,
|
||||
VatRate decimal(19, 5) NOT NULL,
|
||||
ServiceTaxID uniqueidentifier NOT NULL,
|
||||
VatID uniqueidentifier NOT NULL,
|
||||
Discount decimal(19, 5) NOT NULL,
|
||||
Amount AS (Quantity * CASE WHEN IsHappyHour = 1 THEN 0 ELSE Price END * (1 - Discount) * CASE WHEN IsScTaxable = 1 THEN (1 + ServiceCharge) * (1 + ServiceTaxRate + VatRate) ELSE (1 + ServiceCharge + ServiceTaxRate + VatRate) END)
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
IF EXISTS(SELECT * FROM dbo.Inventories)
|
||||
EXEC('INSERT INTO dbo.Tmp_Inventories (InventoryID, KotID, ProductID, SortOrder, Quantity, Price, IsHappyHour, ServiceCharge, IsScTaxable, ServiceTaxRate, VatRate, ServiceTaxID, VatID, Discount)
|
||||
SELECT InventoryID, KotID, ProductID, SortOrder, Quantity, CASE WHEN Price = 0 THEN FullPrice ELSE Price END, CASE WHEN Price = 0 THEN 1 ELSE 0 END, ServiceCharge, IsScTaxable, ServiceTaxRate, VatRate, ServiceTaxID, VatID, Discount FROM dbo.Inventories WITH (HOLDLOCK TABLOCKX)')
|
||||
GO
|
||||
ALTER TABLE dbo.InventoryModifiers DROP CONSTRAINT FK80820FB4BA29671A
|
||||
GO
|
||||
DROP TABLE dbo.Inventories
|
||||
GO
|
||||
EXECUTE sp_rename N'dbo.Tmp_Inventories', N'Inventories', 'OBJECT'
|
||||
GO
|
||||
ALTER TABLE dbo.Inventories ADD CONSTRAINT
|
||||
PK__Inventories__0DAF0CB0 PRIMARY KEY CLUSTERED
|
||||
(
|
||||
InventoryID
|
||||
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
|
||||
|
||||
GO
|
||||
ALTER TABLE dbo.Inventories ADD CONSTRAINT
|
||||
FK8C0CFB22DB70F42 FOREIGN KEY
|
||||
(
|
||||
KotID
|
||||
) REFERENCES dbo.Kots
|
||||
(
|
||||
KotID
|
||||
) ON UPDATE NO ACTION
|
||||
ON DELETE NO ACTION
|
||||
|
||||
GO
|
||||
ALTER TABLE dbo.Inventories ADD CONSTRAINT
|
||||
FK8C0CFB223F88CAB6 FOREIGN KEY
|
||||
(
|
||||
ProductID
|
||||
) REFERENCES dbo.Products
|
||||
(
|
||||
ProductID
|
||||
) ON UPDATE NO ACTION
|
||||
ON DELETE NO ACTION
|
||||
|
||||
GO
|
||||
ALTER TABLE dbo.Inventories ADD CONSTRAINT
|
||||
FK8C0CFB221DECC269 FOREIGN KEY
|
||||
(
|
||||
ServiceTaxID
|
||||
) REFERENCES dbo.Taxes
|
||||
(
|
||||
TaxID
|
||||
) ON UPDATE NO ACTION
|
||||
ON DELETE NO ACTION
|
||||
|
||||
GO
|
||||
ALTER TABLE dbo.Inventories ADD CONSTRAINT
|
||||
FK8C0CFB22EB4DE5BC FOREIGN KEY
|
||||
(
|
||||
VatID
|
||||
) REFERENCES dbo.Taxes
|
||||
(
|
||||
TaxID
|
||||
) ON UPDATE NO ACTION
|
||||
ON DELETE NO ACTION
|
||||
|
||||
GO
|
||||
ALTER TABLE dbo.InventoryModifiers ADD CONSTRAINT
|
||||
FK80820FB4BA29671A FOREIGN KEY
|
||||
(
|
||||
InventoryID
|
||||
) REFERENCES dbo.Inventories
|
||||
(
|
||||
InventoryID
|
||||
) ON UPDATE NO ACTION
|
||||
ON DELETE NO ACTION
|
||||
|
||||
GO
|
||||
ALTER TABLE dbo.Products DROP CONSTRAINT FK4065562AEB4DE5BC
|
||||
GO
|
||||
ALTER TABLE dbo.Products DROP CONSTRAINT FK4065562A1DECC269
|
||||
GO
|
||||
ALTER TABLE dbo.Products DROP CONSTRAINT FK4065562A95976D16
|
||||
GO
|
||||
CREATE TABLE dbo.Tmp_Products (
|
||||
ProductID uniqueidentifier NOT NULL,
|
||||
Code int NULL,
|
||||
Name nvarchar(255) NOT NULL,
|
||||
Units nvarchar(255) NOT NULL,
|
||||
ProductGroupID uniqueidentifier NULL,
|
||||
VatID uniqueidentifier NULL,
|
||||
ServiceTaxID uniqueidentifier NULL,
|
||||
ServiceCharge decimal(19, 5) NOT NULL,
|
||||
IsScTaxable bit NOT NULL,
|
||||
Price decimal(19, 5) NOT NULL,
|
||||
HasHappyHour bit NOT NULL,
|
||||
IsActive bit NOT NULL,
|
||||
IsNotAvailable bit NOT NULL,
|
||||
SortOrder int NOT NULL,
|
||||
Quantity decimal(19, 5) NOT NULL
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
IF EXISTS(SELECT * FROM dbo.Products)
|
||||
EXEC('INSERT INTO dbo.Tmp_Products (ProductID, Code, Name, Units, ProductGroupID, VatID, ServiceTaxID, ServiceCharge, IsScTaxable, Price, HasHappyHour, IsActive, IsNotAvailable, SortOrder, Quantity)
|
||||
SELECT ProductID, Code, Name, Units, ProductGroupID, VatID, ServiceTaxID, ServiceCharge, IsScTaxable, Price, CASE WHEN Price = 0 AND FullPrice != 0 THEN 1 ELSE 0 END, IsActive, IsNotAvailable, SortOrder, Quantity FROM dbo.Products WITH (HOLDLOCK TABLOCKX)')
|
||||
GO
|
||||
ALTER TABLE dbo.Inventories DROP CONSTRAINT FK8C0CFB223F88CAB6
|
||||
GO
|
||||
DROP TABLE dbo.Products
|
||||
GO
|
||||
EXECUTE sp_rename N'dbo.Tmp_Products', N'Products', 'OBJECT'
|
||||
GO
|
||||
ALTER TABLE dbo.Products ADD CONSTRAINT
|
||||
PK__Products__164452B1 PRIMARY KEY CLUSTERED
|
||||
(
|
||||
ProductID
|
||||
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
|
||||
|
||||
GO
|
||||
ALTER TABLE dbo.Products ADD CONSTRAINT
|
||||
UQ__Products__173876EA UNIQUE NONCLUSTERED
|
||||
(
|
||||
Name,
|
||||
Units
|
||||
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
|
||||
|
||||
GO
|
||||
ALTER TABLE dbo.Products ADD CONSTRAINT
|
||||
FK4065562A95976D16 FOREIGN KEY
|
||||
(
|
||||
ProductGroupID
|
||||
) REFERENCES dbo.ProductGroups
|
||||
(
|
||||
ProductGroupID
|
||||
) ON UPDATE NO ACTION
|
||||
ON DELETE NO ACTION
|
||||
|
||||
GO
|
||||
ALTER TABLE dbo.Products ADD CONSTRAINT
|
||||
FK4065562AEB4DE5BC FOREIGN KEY
|
||||
(
|
||||
VatID
|
||||
) REFERENCES dbo.Taxes
|
||||
(
|
||||
TaxID
|
||||
) ON UPDATE NO ACTION
|
||||
ON DELETE NO ACTION
|
||||
|
||||
GO
|
||||
ALTER TABLE dbo.Products ADD CONSTRAINT
|
||||
FK4065562A1DECC269 FOREIGN KEY
|
||||
(
|
||||
ServiceTaxID
|
||||
) REFERENCES dbo.Taxes
|
||||
(
|
||||
TaxID
|
||||
) ON UPDATE NO ACTION
|
||||
ON DELETE NO ACTION
|
||||
|
||||
GO
|
||||
ALTER TABLE dbo.Inventories ADD CONSTRAINT
|
||||
FK8C0CFB223F88CAB6 FOREIGN KEY
|
||||
(
|
||||
ProductID
|
||||
) REFERENCES dbo.Products
|
||||
(
|
||||
ProductID
|
||||
) ON UPDATE NO ACTION
|
||||
ON DELETE NO ACTION
|
||||
|
||||
GO
|
||||
COMMIT
|
||||
Reference in New Issue
Block a user