Initial commit
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
USE [Database]
|
||||
|
||||
SELECT [E].[id], [E].[name], [T].[name], [A].[attribute_id], [AN].[name], [V].[value]
|
||||
FROM [Tables].[products] AS [E]
|
||||
JOIN [Tables].[product_types] AS [T]
|
||||
ON [T].[id] = [E].[product_type_id]
|
||||
JOIN [Tables].[product_attributes] AS [A]
|
||||
ON [A].[product_id] = [E].[id]
|
||||
JOIN [Tables].[attributes] AS [AN]
|
||||
ON [AN].[id] = [A].attribute_id
|
||||
LEFT JOIN [Tables].[product_values] AS [V]
|
||||
ON [V].[product_id] = [A].[product_id]
|
||||
AND [V].[attribute_id] = [A].[attribute_id]
|
||||
|
||||
EXECUTE [Procedures].[select_expired_products] @date_of_manufacture_attribute_id, @expiration_date_attribute_id, N'19000201'
|
||||
@@ -0,0 +1,44 @@
|
||||
USE [Database]
|
||||
|
||||
--<< 1
|
||||
SELECT [p].[id], [p].[name], [pt].[id], [pt].[name]
|
||||
FROM [Tables].[product_types] AS [pt]
|
||||
LEFT JOIN [Tables].[products] AS [p]
|
||||
ON [p].[product_type_id] = [pt].[id]
|
||||
|
||||
BEGIN TRY
|
||||
EXECUTE [Procedures].[insert_product_type] 23, N'Orbit';
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
PRINT N'The error occurred - the right case'
|
||||
END CATCH
|
||||
|
||||
--<< 2
|
||||
EXECUTE [Procedures].[specify_product_type] 23, N'Orbit';
|
||||
|
||||
SELECT [p].[id], [p].[name], [pt].[id], [pt].[name]
|
||||
FROM [Tables].[product_types] AS [pt]
|
||||
LEFT JOIN [Tables].[products] AS [p]
|
||||
ON [p].[product_type_id] = [pt].[id]
|
||||
|
||||
--<< 3
|
||||
EXECUTE [Procedures].[insert_product_type] 23, N'Mentos';
|
||||
|
||||
SELECT [p].[id], [p].[name], [pt].[id], [pt].[name]
|
||||
FROM [Tables].[product_types] AS [pt]
|
||||
LEFT JOIN [Tables].[products] AS [p]
|
||||
ON [p].[product_type_id] = [pt].[id]
|
||||
|
||||
--<< 4
|
||||
UPDATE [Tables].[products]
|
||||
SET [product_type_id] = (
|
||||
SELECT [id]
|
||||
FROM [Tables].[product_types]
|
||||
WHERE [name] = N'Mentos'
|
||||
)
|
||||
WHERE UPPER([name]) LIKE N'%MENTOS%';
|
||||
|
||||
SELECT [p].[id], [p].[name], [pt].[id], [pt].[name]
|
||||
FROM [Tables].[product_types] AS [pt]
|
||||
LEFT JOIN [Tables].[products] AS [p]
|
||||
ON [p].[product_type_id] = [pt].[id]
|
||||
@@ -0,0 +1,13 @@
|
||||
USE [Database]
|
||||
|
||||
SELECT [p].[name] AS [product_name], [a].[name] AS [attribute_name],
|
||||
ISNULL(TRY_CONVERT(NVARCHAR(128), TRY_PARSE([pv].[value] AS datetime), 103), [pv].[value])
|
||||
FROM [Tables].[product_attributes] AS [pa]
|
||||
JOIN [Tables].[attributes] AS [a]
|
||||
ON [a].[id] = [pa].[attribute_id]
|
||||
JOIN [Tables].[products] AS [p]
|
||||
ON [p].[id] = [pa].[product_id]
|
||||
LEFT OUTER JOIN [Tables].[product_values] AS [pv]
|
||||
ON [pv].[product_id] = [pa].[product_id]
|
||||
AND [pv].[attribute_id] = [pa].[attribute_id]
|
||||
ORDER BY [p].[id];
|
||||
@@ -0,0 +1,4 @@
|
||||
USE [Database]
|
||||
|
||||
SELECT [Functions].[does_barcode_exist](1111111111111);
|
||||
SELECT [Functions].[does_barcode_exist](4444444444444);
|
||||
@@ -0,0 +1,153 @@
|
||||
USE [Database]
|
||||
GO
|
||||
|
||||
IF OBJECT_ID(N'[Functions].[product_information]') IS NOT NULL
|
||||
DROP FUNCTION [Functions].[product_information];
|
||||
GO
|
||||
CREATE FUNCTION [Functions].[product_information] ()
|
||||
RETURNS TABLE
|
||||
AS
|
||||
RETURN
|
||||
SELECT [E].[id], [E].[name] AS [product_name], [T].[name] AS [type_name], [A].[attribute_id], [AN].[name], [V].[value]
|
||||
FROM [Tables].[products] AS [E]
|
||||
JOIN [Tables].[product_types] AS [T]
|
||||
ON [T].[id] = [E].[product_type_id]
|
||||
JOIN [Tables].[product_attributes] AS [A]
|
||||
ON [A].[product_id] = [E].[id]
|
||||
JOIN [Tables].[attributes] AS [AN]
|
||||
ON [AN].[id] = [A].[attribute_id]
|
||||
LEFT JOIN [Tables].[product_values] AS [V]
|
||||
ON [V].[product_id] = [A].[product_id]
|
||||
AND [V].[attribute_id] = [A].[attribute_id]
|
||||
GO
|
||||
|
||||
IF OBJECT_ID(N'[Functions].[product_inflow_records_information]') IS NOT NULL
|
||||
DROP FUNCTION [Functions].[product_inflow_records_information];
|
||||
GO
|
||||
CREATE FUNCTION [Functions].[product_inflow_records_information] ()
|
||||
RETURNS TABLE
|
||||
AS
|
||||
RETURN
|
||||
SELECT [pir].[id], [V].[value], [S].[name], [pir].[count], [pir].[full_price], [pir].[datetime]
|
||||
FROM [Tables].[product_inflow_records] AS [pir]
|
||||
JOIN [Tables].[product_values] AS [V]
|
||||
ON [V].[id] = [pir].[barcode_product_value_id]
|
||||
JOIN [Tables].[suppliers] AS [S]
|
||||
ON [S].[id] = [pir].supplier_id
|
||||
GO
|
||||
|
||||
--<< 0
|
||||
SELECT *
|
||||
FROM [Functions].[product_information]();
|
||||
|
||||
--<< 1
|
||||
DECLARE @first_barcode_attribute_id AS INT,
|
||||
@second_barcode_attribute_id AS INT;
|
||||
|
||||
DECLARE @barcode_attribute_id AS INT;
|
||||
SET @barcode_attribute_id =
|
||||
(SELECT [id]
|
||||
FROM [Tables].[attributes]
|
||||
WHERE [name] = N'Barcode');
|
||||
|
||||
EXECUTE [Procedures].[insert_barcode]
|
||||
@product_id = 1,
|
||||
@barcode_attribute_id = @barcode_attribute_id,
|
||||
@barcode = N'7145621037931',
|
||||
@inserted_barcode_attribute_id = @first_barcode_attribute_id OUTPUT;
|
||||
|
||||
SELECT *
|
||||
FROM [Functions].[product_information]();
|
||||
|
||||
--<< 2
|
||||
BEGIN TRY
|
||||
EXECUTE [Procedures].[insert_barcode] 1, @barcode_attribute_id, N'7145621037931';
|
||||
END TRY
|
||||
BEGIN CATCH -- The barcode is not unique
|
||||
PRINT N'The error occurred - the right case'
|
||||
END CATCH
|
||||
|
||||
BEGIN TRY
|
||||
EXECUTE [Procedures].[insert_barcode] 1, @barcode_attribute_id, N'0289713447192';
|
||||
END TRY
|
||||
BEGIN CATCH -- The barcode is already exsist
|
||||
PRINT N'The error occurred - the right case'
|
||||
END CATCH
|
||||
|
||||
EXECUTE [Procedures].[insert_barcode] 2, @barcode_attribute_id, N'0000000000000', @inserted_barcode_attribute_id = @second_barcode_attribute_id OUTPUT;
|
||||
EXECUTE [Procedures].[insert_barcode] 3, @barcode_attribute_id;
|
||||
EXECUTE [Procedures].[insert_barcode] 4, @barcode_attribute_id;
|
||||
|
||||
SELECT *
|
||||
FROM [Functions].[product_information]();
|
||||
|
||||
--<< 3
|
||||
DECLARE
|
||||
@buffer_date_1 AS DATE,
|
||||
@buffer_date_2 AS DATE,
|
||||
@buffer_date_3 AS DATE,
|
||||
@buffer_date_4 AS DATE,
|
||||
@buffer_date_5 AS DATE;
|
||||
|
||||
SET @buffer_date_1 = CAST(N'1900-01-01' AS DATE);
|
||||
SET @buffer_date_2 = CAST(N'1900-01-02' AS DATE);
|
||||
SET @buffer_date_3 = CAST(N'1900-01-03' AS DATE);
|
||||
SET @buffer_date_4 = CAST(N'1900-01-04' AS DATE);
|
||||
SET @buffer_date_5 = CAST(N'1900-01-05' AS DATE);
|
||||
|
||||
EXECUTE [Procedures].[insert_product_inflow_record]
|
||||
@barcode_product_value_id = @first_barcode_attribute_id,
|
||||
@barcode_product_attribute_id = @barcode_attribute_id,
|
||||
@supplier_id = 1,
|
||||
@count = 2,
|
||||
@full_price = 3000,
|
||||
@datetime = @buffer_date_1;
|
||||
|
||||
EXECUTE [Procedures].[insert_product_inflow_record]
|
||||
@barcode_product_value_id = @second_barcode_attribute_id,
|
||||
@barcode_product_attribute_id = @barcode_attribute_id,
|
||||
@supplier_id = 3,
|
||||
@count = 50,
|
||||
@full_price = 1600,
|
||||
@datetime = @buffer_date_2;
|
||||
|
||||
SELECT *
|
||||
FROM [Functions].[product_inflow_records_information]();
|
||||
|
||||
--<< 4
|
||||
BEGIN TRY
|
||||
EXECUTE [Procedures].[insert_product_outflow_record] @second_barcode_attribute_id, 5, @buffer_date_2;
|
||||
END TRY
|
||||
BEGIN CATCH -- Price not specified
|
||||
PRINT N'The error occurred - the right case'
|
||||
END CATCH
|
||||
|
||||
EXECUTE [Procedures].[insert_price_history_record] 2, @buffer_date_1, 40 -- Æåâàòåëüíàÿ ðåçèíêà Orbit Mega Êëóáíèêà, áåç ñàõàðà, 16,4 ã
|
||||
EXECUTE [Procedures].[insert_product_outflow_record] @second_barcode_attribute_id, 5, @buffer_date_2;
|
||||
|
||||
SELECT [Functions].[product_with_barcode_stock](@barcode_attribute_id, @second_barcode_attribute_id);
|
||||
|
||||
EXECUTE [Procedures].[insert_price_history_record] 2, @buffer_date_3, 45 -- Æåâàòåëüíàÿ ðåçèíêà Orbit Mega Êëóáíèêà, áåç ñàõàðà, 16,4 ã
|
||||
EXECUTE [Procedures].[insert_product_outflow_record] @second_barcode_attribute_id, 10, @buffer_date_4;
|
||||
|
||||
SELECT [Functions].[product_with_barcode_stock](@barcode_attribute_id, @second_barcode_attribute_id);
|
||||
EXECUTE [Procedures].[details_of_product_outflow_records];
|
||||
|
||||
--<< 5
|
||||
EXECUTE [Procedures].[insert_product_write_off_record] @second_barcode_attribute_id, 1, 5, @buffer_date_5; -- Âûøåë ñðîê ãîäíîñòè
|
||||
|
||||
SELECT *
|
||||
FROM [Tables].[product_write_off_records];
|
||||
|
||||
SELECT [Functions].[product_with_barcode_stock](@barcode_attribute_id, @second_barcode_attribute_id);
|
||||
|
||||
BEGIN TRY
|
||||
INSERT INTO [Tables].[product_outflow_records]([barcode_product_value_id], [count], [datetime])
|
||||
VALUES(@first_barcode_attribute_id, 3, @buffer_date_1);
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
PRINT N'The error occurred - the right case'
|
||||
END CATCH
|
||||
|
||||
DROP FUNCTION [Functions].[product_information];
|
||||
DROP FUNCTION [Functions].[product_inflow_records_information];
|
||||
Reference in New Issue
Block a user