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:
2024-07-05 20:34:11 +01:00
parent 3a2a164213
commit 6f4e329258
3049 changed files with 535753 additions and 3022 deletions

View 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
)
*/