VvebOIDC/admin/sql/mysqli/option.sql

124 lines
2.2 KiB
SQL

-- Options
-- get all options
PROCEDURE getAll(
IN language_id INT,
IN start INT,
IN limit INT,
OUT fetch_all,
OUT fetch_one,
)
BEGIN
-- option
SELECT `option`.*, option_content.name
FROM `option`
INNER JOIN option_content
ON option_content.option_id = `option`.option_id AND option_content.language_id = :language_id
WHERE 1 = 1
-- limit
@IF isset(:limit)
THEN
@SQL_LIMIT(:start, :limit)
END @IF;
SELECT count(*) FROM (
@SQL_COUNT(`option`.option_id, `option`) -- this takes previous query removes limit and replaces select columns with parameter product_id
) as count;
END
-- get option
PROCEDURE get(
IN option_id INT,
IN language_id INT,
OUT fetch_row,
)
BEGIN
-- option
SELECT *
FROM `option` as _
INNER JOIN option_content
ON option_content.option_id = _.option_id AND option_content.language_id = :language_id
WHERE _.option_id = :option_id;
END
-- add option
PROCEDURE add(
IN option ARRAY,
OUT insert_id
)
BEGIN
-- allow only table fields and set defaults for missing values
:option_data = @FILTER(:option, option)
INSERT INTO `option`
( @KEYS(:option_data) )
VALUES ( :option_data );
:option_content = @FILTER(:option, option_content)
INSERT INTO option_content
( @KEYS(:option_content), language_id, option_id )
VALUES ( :option_content, :language_id, @result.option);
END
-- edit option
CREATE PROCEDURE edit(
IN option ARRAY,
IN option_id INT,
OUT affected_rows
OUT affected_rows
)
BEGIN
-- allow only table fields and set defaults for missing values
:option_data = @FILTER(:option, option)
UPDATE `option`
SET @LIST(:option_data)
WHERE option_id = :option_id;
-- allow only table fields and set defaults for missing values
:option_content = @FILTER(:option, option_content)
UPDATE option_content
SET @LIST(:option_content)
WHERE option_id = :option_id
END
-- delete option
PROCEDURE delete(
IN option_id ARRAY,
OUT affected_rows,
OUT affected_rows,
)
BEGIN
-- option
DELETE FROM option_content WHERE option_id IN (:option_id);
DELETE FROM `option` WHERE option_id IN (:option_id);
END