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
@@ -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];