88 lines
1.7 KiB
SQL
88 lines
1.7 KiB
SQL
-- Returns
|
|
|
|
-- get all returns
|
|
|
|
PROCEDURE getAll(
|
|
IN language_id INT,
|
|
IN start INT,
|
|
IN limit INT,
|
|
OUT fetch_all,
|
|
OUT fetch_one,
|
|
)
|
|
BEGIN
|
|
-- return
|
|
SELECT return.*, return_resolution.name as return_resolution, return_reason.name as return_reason, return_status.name as return_status
|
|
FROM return
|
|
INNER JOIN return_resolution ON return_resolution.return_resolution_id = return.return_resolution_id AND return_resolution.language_id = :language_id
|
|
INNER JOIN return_reason ON return_reason.return_reason_id = return.return_reason_id AND return_reason.language_id = :language_id
|
|
INNER JOIN return_status ON return_status.return_status_id = return.return_status_id AND return_status.language_id = :language_id
|
|
|
|
WHERE 1 = 1
|
|
|
|
-- limit
|
|
@IF isset(:limit)
|
|
THEN
|
|
@SQL_LIMIT(:start, :limit)
|
|
END @IF;
|
|
|
|
SELECT count(*) FROM (
|
|
|
|
@SQL_COUNT(return.return_id, return) -- this takes previous query removes limit and replaces select columns with parameter product_id
|
|
|
|
) as count;
|
|
|
|
END
|
|
|
|
-- get return
|
|
|
|
PROCEDURE get(
|
|
IN return_id INT,
|
|
OUT fetch_row,
|
|
)
|
|
BEGIN
|
|
-- return
|
|
SELECT *
|
|
FROM return as _ WHERE return_id = :return_id;
|
|
END
|
|
|
|
-- add return
|
|
|
|
PROCEDURE add(
|
|
IN return ARRAY,
|
|
OUT insert_id
|
|
)
|
|
BEGIN
|
|
|
|
-- allow only table fields and set defaults for missing values
|
|
:return_data = @FILTER(:return, return)
|
|
|
|
|
|
INSERT INTO return
|
|
|
|
( @KEYS(:return_data) )
|
|
|
|
VALUES ( :return_data );
|
|
|
|
END
|
|
|
|
-- edit return
|
|
CREATE PROCEDURE edit(
|
|
IN return ARRAY,
|
|
IN return_id INT,
|
|
OUT affected_rows
|
|
)
|
|
BEGIN
|
|
|
|
-- allow only table fields and set defaults for missing values
|
|
@FILTER(:return, return)
|
|
|
|
UPDATE return
|
|
|
|
SET @LIST(:return)
|
|
|
|
WHERE return_id = :return_id
|
|
|
|
|
|
END
|
|
|