Initial commit

This commit is contained in:
user
2026-07-12 13:56:05 +04:00
commit 04bf3a4b58
850 changed files with 9057 additions and 0 deletions
+15
View File
@@ -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'
+44
View File
@@ -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]
+13
View File
@@ -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];
+4
View File
@@ -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];