1. PostgreSQL copy of all MySQL created and tested.\n 2. Purchase Orders and Sales Orders and stock level management added to MySQL, PostgreSQL, and server and front end code.
This commit is contained in:
180
static/MySQL/701_p_shop_edit_user.sql
Normal file
180
static/MySQL/701_p_shop_edit_user.sql
Normal file
@@ -0,0 +1,180 @@
|
||||
|
||||
USE PARTSLTD_PROD;
|
||||
|
||||
/*
|
||||
|
||||
CALL p_shop_edit_user (
|
||||
'auth0|6582b95c895d09a70ba10fef', # a_id_user
|
||||
'', # a_name
|
||||
'', # a_email
|
||||
0 # a_email_verified
|
||||
)
|
||||
|
||||
*/
|
||||
|
||||
|
||||
-- Clear previous proc
|
||||
DROP PROCEDURE IF EXISTS p_shop_edit_user;
|
||||
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE p_shop_edit_user (
|
||||
IN a_id_user VARCHAR(200),
|
||||
IN a_name VARCHAR(255),
|
||||
IN a_email VARCHAR(254),
|
||||
IN a_email_verified BIT
|
||||
)
|
||||
BEGIN
|
||||
-- Argument redeclaration
|
||||
-- Variable declaration
|
||||
DECLARE v_has_filter_user BIT;
|
||||
-- DECLARE v_now DATETIME;
|
||||
|
||||
|
||||
-- Argument validation + default values
|
||||
IF a_id_user IS NULL THEN
|
||||
SET a_id_user = '';
|
||||
ELSE
|
||||
SET a_id_user = TRIM(a_id_user);
|
||||
END IF;
|
||||
IF a_name IS NULL THEN
|
||||
SET a_name = '';
|
||||
ELSE
|
||||
SET a_name = TRIM(a_name);
|
||||
END IF;
|
||||
IF a_email IS NULL THEN
|
||||
SET a_email = '';
|
||||
ELSE
|
||||
SET a_email = TRIM(a_email);
|
||||
END IF;
|
||||
IF a_email_verified IS NULL THEN
|
||||
SET a_email_verified = 0;
|
||||
END IF;
|
||||
|
||||
-- Temporary tables
|
||||
DROP TABLE IF EXISTS tmp_Msg_Error;
|
||||
DROP TABLE IF EXISTS tmp_Shop_User;
|
||||
|
||||
CREATE TABLE tmp_Shop_User (
|
||||
id_user VARCHAR(200) NOT NULL,
|
||||
CONSTRAINT FK_tmp_Shop_User_id_user
|
||||
FOREIGN KEY (id_user)
|
||||
REFERENCES Shop_User(id_user),
|
||||
active BIT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE tmp_Msg_Error (
|
||||
display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
||||
id_type INT NOT NULL,
|
||||
# code VARCHAR(50) NOT NULL,
|
||||
# CONSTRAINT chk_tmp_Msg_Error_code CHECK (code IN (SELECT code FROM Shop_Msg_Error_Type)),
|
||||
CONSTRAINT FK_tmp_Msg_Error_id_type
|
||||
FOREIGN KEY (id_type)
|
||||
REFERENCES Shop_Msg_Error_Type(id_type),
|
||||
msg VARCHAR(4000) NOT NULL
|
||||
);
|
||||
|
||||
|
||||
-- Parse filters
|
||||
SET v_has_filter_user = CASE WHEN a_id_user = '' THEN 0 ELSE 1 END;
|
||||
|
||||
|
||||
-- User
|
||||
IF v_has_filter_user THEN
|
||||
INSERT INTO tmp_Shop_User (
|
||||
id_user,
|
||||
active
|
||||
)
|
||||
SELECT id_user,
|
||||
active
|
||||
FROM Shop_User
|
||||
WHERE id_user LIKE CONCAT('%', a_id_user, '%')
|
||||
AND active
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
IF NOT EXISTS (SELECT id_user FROM tmp_Shop_User LIMIT 1) THEN
|
||||
INSERT INTO Shop_User (
|
||||
id_user,
|
||||
name,
|
||||
email,
|
||||
email_verified
|
||||
)
|
||||
VALUES (
|
||||
a_id_user,
|
||||
a_name,
|
||||
a_email,
|
||||
a_email_verified
|
||||
);
|
||||
|
||||
INSERT INTO tmp_Shop_User (
|
||||
id_user,
|
||||
active
|
||||
)
|
||||
SELECT id_user,
|
||||
active
|
||||
FROM Shop_User
|
||||
WHERE id_user LIKE CONCAT('%', a_id_user, '%')
|
||||
AND active
|
||||
LIMIT 1
|
||||
;
|
||||
END IF;
|
||||
|
||||
SET a_id_user := (SELECT id_user FROM tmp_Shop_User LIMIT 1);
|
||||
ELSE
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type,
|
||||
msg
|
||||
)
|
||||
VALUES (
|
||||
(SELECT id_type FROM Shop_Msg_Error_Type WHERE code = 'BAD_DATA' LIMIT 1),
|
||||
'No user ID provided.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
|
||||
/*
|
||||
IF NOT EXISTS (SELECT msg FROM tmp_Msg_Error LIMIT 1) THEN
|
||||
END IF;
|
||||
*/
|
||||
|
||||
|
||||
-- Returns
|
||||
# User
|
||||
SELECT *
|
||||
FROM tmp_Shop_User
|
||||
;
|
||||
|
||||
# Errors
|
||||
SELECT *
|
||||
FROM tmp_Msg_Error
|
||||
;
|
||||
|
||||
/*
|
||||
# Return arguments for test
|
||||
SELECT a_id_user,
|
||||
a_name,
|
||||
a_email,
|
||||
a_email_verified
|
||||
;
|
||||
*/
|
||||
|
||||
-- Clean up
|
||||
DROP TABLE IF EXISTS tmp_Msg_Error;
|
||||
DROP TABLE IF EXISTS tmp_Shop_User;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|
||||
CALL p_shop_edit_user (
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
0
|
||||
)
|
||||
|
||||
*/
|
||||
Reference in New Issue
Block a user