-- Clear previous proc DROP PROCEDURE IF EXISTS p_shop_save_supplier_purchase_order; DROP TABLE IF EXISTS tmp_Supplier_Purchase_Order_Product_Link; DROP TABLE IF EXISTS tmp_Msg_Error; DELIMITER // CREATE PROCEDURE p_shop_save_supplier_purchase_order ( IN a_comment VARCHAR(500) , IN a_guid BINARY(36) , IN a_id_user INT , IN a_debug BIT ) BEGIN DECLARE v_code_type_error_bad_data VARCHAR(50); DECLARE v_code_type_error_no_permission VARCHAR(50); DECLARE v_code_type_error_warning VARCHAR(50); DECLARE v_id_access_level_edit INT; DECLARE v_id_change_set INT; DECLARE v_id_permission_supplier_purchase_order INT; DECLARE v_id_type_error_bad_data INT; DECLARE v_id_type_error_no_permission INT; DECLARE v_id_type_error_warning INT; DECLARE v_ids_product_permission TEXT; DECLARE v_time_start TIMESTAMP(6); DECLARE exit handler for SQLEXCEPTION BEGIN GET DIAGNOSTICS CONDITION 1 @sqlstate = RETURNED_SQLSTATE , @errno = MYSQL_ERRNO , @text = MESSAGE_TEXT ; ROLLBACK; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT , id_type INT NULL , code VARCHAR(50) NOT NULL , msg VARCHAR(4000) NOT NULL ); INSERT INTO tmp_Msg_Error ( id_type , code , msg ) SELECT NULL , @errno , @text ; SELECT * FROM tmp_Msg_Error; DROP TABLE IF EXISTS tmp_Msg_Error; END; SET v_time_start := CURRENT_TIMESTAMP(6); SET v_code_type_error_bad_data := (SELECT code FROM partsltd_prod.Shop_Msg_Error_Type WHERE code = 'BAD_DATA'); SET v_id_type_error_bad_data := (SELECT id_type FROM partsltd_prod.Shop_Msg_Error_Type WHERE code = v_code_type_error_bad_data); SET v_code_type_error_no_permission := (SELECT code FROM partsltd_prod.Shop_Msg_Error_Type WHERE code = 'NO_PERMISSION'); SET v_id_type_error_no_permission := (SELECT id_type FROM partsltd_prod.Shop_Msg_Error_Type WHERE code = v_code_type_error_no_permission); SET v_code_type_error_warning := (SELECT code FROM partsltd_prod.Shop_Msg_Error_Type WHERE code = 'WARNING'); SET v_id_type_error_warning := (SELECT id_type FROM partsltd_prod.Shop_Msg_Error_Type WHERE code = v_code_type_error_warning); SET v_id_permission_supplier_purchase_order = (SELECT id_permission FROM partsltd_prod.Shop_Permission WHERE code = 'STORE_SUPPLIER_PURCHASE_ORDER' LIMIT 1); SET v_id_access_level_edit = (SELECT id_access_level FROM partsltd_prod.Shop_Access_Level WHERE code = 'EDIT'); CALL p_validate_guid ( a_guid ); SET a_comment := TRIM(IFNULL(a_comment, '')); DROP TEMPORARY TABLE IF EXISTS tmp_Supplier; DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error; -- Temporary tables CREATE TEMPORARY TABLE tmp_Supplier_Purchase_Order ( id_order INT NOT NULL PRIMARY KEY , id_supplier_ordered INT NOT NULL , id_currency_cost INT NOT NULL -- , cost_total_local FLOAT NOT NULL ); CREATE TEMPORARY TABLE tmp_Supplier_Purchase_Order_Product_Link ( id_link INT NOT NULL PRIMARY KEY , id_order INT NOT NULL , id_permutation INT NOT NULL , id_currency_cost INT NOT NULL , quantity_ordered FLOAT NOT NULL , id_unit_quantity INT NOT NULL , quantity_received FLOAT NULL , latency_delivery_days INT NOT NULL , display_order INT NOT NULL , active BIT NOT NULL , name_error VARCHAR(200) NOT NULL , cost_total_local_VAT_excl FLOAT NOT NULL , cost_total_local_VAT_incl FLOAT NOT NULL , cost_unit_local_VAT_excl FLOAT NOT NULL , cost_unit_local_VAT_incl FLOAT NOT NULL , has_order BIT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT , id_type INT NOT NULL , code VARCHAR(50) NOT NULL , msg VARCHAR(4000) NOT NULL ); INSERT INTO tmp_Supplier_Purchase_Order ( id_order , id_supplier_ordered , id_currency_cost ) SELECT SPO_T.id_order , IFNULL(IFNULL(SPO_T.id_supplier_ordered, SPO.id_supplier_ordered), 0) AS id_supplier_ordered , IFNULL(IFNULL(SPO_T.id_currency_cost, SPO.id_currency_cost), 0) AS id_currency_cost FROM partsltd_prod.Shop_Supplier_Purchase_Order_Temp SPO_T LEFT JOIN partsltd_prod.Shop_Supplier_Purchase_Order SPO ON SPO_T.id_order = SPO.id_order WHERE SPO_T.GUID = a_guid ; INSERT INTO tmp_Supplier_Purchase_Order_Product_Link ( id_link , id_order , id_permutation , id_currency_cost , quantity_ordered , id_unit_quantity , quantity_received , latency_delivery_days , display_order , active , name_error , is_new , cost_total_local_VAT_excl , cost_total_local_VAT_incl , cost_unit_local_VAT_excl , cost_unit_local_VAT_incl , has_order ) SELECT IFNULL(SPOPL_T.id_link, 0) AS id_link , IFNULL(IFNULL(SPOPL_T.id_order, SPOPL.id_order) 0) AS id_order , IFNULL(IFNULL(SPOPL_T.id_permutation, SPOPL.id_permutation), 0) AS id_permutation , IFNULL(IFNULL(SPOPL_T.id_currency_cost, SPOPL.id_currency_cost) 0) AS id_currency_cost , IFNULL(IFNULL(SPOPL_T.quantity_ordered, SPOPL.quantity_ordered), 0) AS quantity_ordered , IFNULL(IFNULL(SPOPL_T.id_unit_quantity, SPOPL.id_unit_quantity), 0) AS id_unit_quantity , IFNULL(SPOPL_T.quantity_received, SPOPL.quantity_received) AS quantity_received , IFNULL(SPOPL_T.latency_delivery_days, SPOPL.latency_delivery_days) AS latency_delivery_days , RANK() OVER (PARTITION BY IFNULL(IFNULL(SPOPL_T.id_order, SPOPL.id_order) 0) ORDER BY IFNULL(IFNULL(SPOPL_T.display_order, SPOPL.display_order), 0)) AS display_order , IFNULL(IFNULL(SPOPL_T.active, SPOPL.active), 1) AS active , CONCAT( fn_shop_get_product_permutation_name(SPOPL_T.id_permutation) , ' - x' , IFNULL(SPOPL_T.quantity_ordered, '(No Quantity)') ) AS name_error , IFNULL(SPOPL_T.id_link, 0) < 1 AS is_new , IFNULL(IFNULL(SPOPL_T.cost_total_local_VAT_excl, SPOPL.cost_total_local_VAT_excl), 0) AS cost_total_local_VAT_excl , IFNULL(IFNULL(SPOPL_T.cost_total_local_VAT_incl, SPOPL.cost_total_local_VAT_incl), 0) AS cost_total_local_VAT_incl , IFNULL(SPOPL_T.cost_total_local_VAT_excl / SPOPL_T.quantity_ordered, SPOPL.cost_unit_local_VAT_excl) AS cost_unit_local_VAT_excl , IFNULL(SPOPL_T.cost_total_local_VAT_incl / SPOPL_T.quantity_ordered, SPOPL.cost_unit_local_VAT_incl) AS cost_unit_local_VAT_incl , NOT ISNULL(t_SPO.id_order) AS has_order FROM partsltd_prod.Shop_Supplier_Purchase_Order_Product_Link_Temp SPOPL_T LEFT JOIN partsltd_prod.Shop_Supplier_Purchase_Order_Product_Link SPOPL ON SPOPL_T.id_link = SPOPL.id_link LEFT JOIN tmp_Supplier_Purchase_Order t_SPO ON SPOPL_T.id_order = t_SPO.id_order WHERE SPOPL_T.GUID = a_guid ; INSERT INTO tmp_Supplier_Purchase_Order ( id_order , id_supplier_ordered , id_currency_cost ) SELECT SPO_T.id_order , IFNULL(IFNULL(SPO_T.id_supplier_ordered, SPO.id_supplier_ordered), 0) AS id_supplier_ordered , IFNULL(IFNULL(SPO_T.id_currency_cost, SPO.id_currency_cost), 0) AS id_currency_cost FROM partsltd_prod.Shop_Supplier_Purchase_Order SPO INNER JOIN tmp_Supplier_Purchase_Order_Product_Link t_SPOPL ON SPO.id_order = t_SPOPL.id_order AND t_SPOPL.has_order = 0 ; -- Validation -- Supplier Purchase Order # id_order IF EXISTS ( SELECT * FROM tmp_Supplier_Purchase_Order t_SPO LEFT JOIN partsltd_prod.Shop_Supplier_Purchase_Order SPO ON t_SPO.id_order = SPO.id_order WHERE 1=1 AND t_SPO.id_order > 0 AND ISNULL(SPO.id_order) LIMIT 1 ) THEN INSERT INTO tmp_Msg_Error ( id_type , code , msg ) SELECT v_id_type_error_bad_data , v_code_type_error_bad_data , CONCAT( 'A valid ID is required for the following Supplier Purchase Order(s): ' , GROUP_CONCAT(CONCAT(IFNULL(t_SPO.id_stock, '(No Supplier Purchase Order)')) SEPARATOR ', ') ) AS msg FROM tmp_Stock_Item t_SPO LEFT JOIN partsltd_prod.Shop_Supplier_Purchase_Order SPO ON t_SPO.id_order = SPO.id_order WHERE 1=1 AND t_SPO.id_stock > 0 AND ISNULL(SPO.id_stock) ; END IF; # id_supplier_ordered IF EXISTS ( SELECT * FROM tmp_Supplier_Purchase_Order t_SPO LEFT JOIN partsltd_prod.Shop_Supplier S ON t_SPO.id_supplier_ordered = S.id_supplier WHERE 1=1 AND ( ISNULL(S.id_supplier) OR S.active = 0 ) LIMIT 1 ) THEN INSERT INTO tmp_Msg_Error ( id_type , code , msg ) SELECT v_id_type_error_bad_data , v_code_type_error_bad_data , CONCAT( 'A valid supplier is required for the following Supplier Purchase Order(s): ' , GROUP_CONCAT(CONCAT(IFNULL(t_SPO.id_stock, '(No Supplier Purchase Order)'), ' - ', t_SPO.id_supplier_ordered) SEPARATOR ', ') ) AS msg FROM tmp_Stock_Item t_SPO LEFT JOIN partsltd_prod.Shop_Supplier S ON t_SPO.id_supplier_ordered = S.id_supplier WHERE 1=1 AND ( ISNULL(S.id_supplier) OR S.active = 0 ) ; END IF; # id_currency_cost IF EXISTS ( SELECT * FROM tmp_Supplier_Purchase_Order t_SPO LEFT JOIN partsltd_prod.Shop_Currency C ON t_SPO.id_currency_cost = C.id_currency WHERE 1=1 AND ( ISNULL(C.id_currency) OR C.active = 0 ) LIMIT 1 ) THEN INSERT INTO tmp_Msg_Error ( id_type , code , msg ) SELECT v_id_type_error_bad_data , v_code_type_error_bad_data , CONCAT( 'A valid currency is required for the following Supplier Purchase Order(s): ' , GROUP_CONCAT(CONCAT(IFNULL(t_SPO.id_stock, '(No Supplier Purchase Order)'), ' - ', t_SPO.id_currency_cost) SEPARATOR ', ') ) AS msg FROM tmp_Stock_Item t_SPO LEFT JOIN partsltd_prod.Shop_Currency C ON t_SPO.id_currency_cost = C.id_currency WHERE 1=1 AND ( ISNULL(C.id_currency) OR C.active = 0 ) ; END IF; # id_unit_quantity IF EXISTS ( SELECT * FROM tmp_Supplier_Purchase_Order t_SPO LEFT JOIN partsltd_prod.Shop_Unit_Measurement UM ON t_SPO.id_unit_quantity = UM.id_unit_measurement WHERE 1=1 AND ( ISNULL(UM.id_unit_measurement) OR UM.active = 0 ) LIMIT 1 ) THEN INSERT INTO tmp_Msg_Error ( id_type , code , msg ) SELECT v_id_type_error_bad_data , v_code_type_error_bad_data , CONCAT( 'A valid unit measurement of quantity is required for the following Supplier Purchase Order(s): ' , GROUP_CONCAT(CONCAT(IFNULL(t_SPO.id_stock, '(No Supplier Purchase Order)'), ' - ', t_SPO.id_currency_cost) SEPARATOR ', ') ) AS msg FROM tmp_Stock_Item t_SPO LEFT JOIN partsltd_prod.Shop_Unit_Measurement UM ON t_SPO.id_unit_quantity = UM.id_unit_measurement WHERE 1=1 AND ( ISNULL(UM.id_unit_measurement) OR UM.active = 0 ) ; END IF; # Invalid quantity ordered IF EXISTS ( SELECT * FROM tmp_Supplier_Purchase_Order_Product_Link WHERE ISNULL(t_SPOPL.quantity_ordered) OR t_SPOPL.quantity_ordered <= 0 ) THEN INSERT INTO tmp_Msg_Error ( id_type, code, msg ) SELECT v_id_error_type_bad_data, v_code_error_type_bad_data, CONCAT( 'A valid quantity ordered is required for the following Supplier Purchase Order Item(s): ' , GROUP_CONCAT(t_SPOPL.name_error SEPARATOR ', ') ) FROM tmp_Supplier_Purchase_Order_Product_Link t_SPOPL WHERE ISNULL(t_SPOPL.quantity_ordered) OR t_SPOPL.quantity_ordered <= 0 ; END IF; # Invalid quantity received IF EXISTS ( SELECT * FROM tmp_Supplier_Purchase_Order_Product_Link WHERE t_SPOPL.quantity_received < 0 ) THEN INSERT INTO tmp_Msg_Error ( id_type, code, msg ) SELECT v_id_error_type_bad_data, v_code_error_type_bad_data, CONCAT( 'A valid quantity received is required for the following Supplier Purchase Order Item(s): ' , GROUP_CONCAT(t_SPOPL.name_error, ' - ', t_SPOPL.quantity_received SEPARATOR ', ') ) FROM tmp_Supplier_Purchase_Order_Product_Link t_SPOPL WHERE t_SPOPL.quantity_received < 0 ; END IF; # Invalid delivery latency IF EXISTS ( SELECT * FROM tmp_Supplier_Purchase_Order_Product_Link WHERE t_SPOPL.latency_delivery_days < 0 ) THEN INSERT INTO tmp_Msg_Error ( id_type, code, msg ) SELECT v_id_error_type_bad_data, v_code_error_type_bad_data, CONCAT( 'A valid delivery latency is required for the following Supplier Purchase Order Item(s): ' , GROUP_CONCAT(t_SPOPL.name_error, ' - ', t_SPOPL.latency_delivery_days SEPARATOR ', ') ) FROM tmp_Supplier_Purchase_Order_Product_Link t_SPOPL WHERE t_SPOPL.latency_delivery_days < 0 ; END IF; -- Duplicates IF EXISTS ( SELECT id_permutation , name_error , COUNT(*) FROM tmp_Supplier_Purchase_Order_Product_Link t_SPOPL GROUP BY id_permutation HAVING COUNT(*) > 1 ) THEN INSERT INTO tmp_Msg_Error ( id_type, code, msg ) SELECT v_id_error_type_bad_data, v_code_error_type_bad_data, CONCAT('Duplicate records: ', GROUP_CONCAT(t_SPOPLC.name_error SEPARATOR ', ')) FROM ( SELECT id_permutation , name_error , COUNT(*) FROM tmp_Supplier_Purchase_Order_Product_Link t_SPOPL GROUP BY id_permutation HAVING COUNT(*) > 1 ) t_SPOPLC ; END IF; -- Empty Supplier Purchase Order IF EXISTS ( SELECT * FROM tmp_Supplier_Purchase_Order t_SPO LEFT JOIN tmp_Supplier_Purchase_Order_Product_Link t_SPOPL ON t_SPO.id_order = t_SPOPL.id_order WHERE ISNULL(t_SPOPL.id_order) ) THEN INSERT INTO tmp_Msg_Error ( id_type, code, msg ) SELECT v_id_error_type_bad_data, v_code_error_type_bad_data, CONCAT( 'There are no items in the following Supplier Purchase Order(s): ' , GROUP_CONCAT(t_SPO.name_error SEPARATOR ', ') ) AS msg FROM tmp_Supplier_Purchase_Order t_SPO LEFT JOIN tmp_Supplier_Purchase_Order_Product_Link t_SPOPL ON t_SPO.id_order = t_SPOPL.id_order WHERE ISNULL(t_SPOPL.id_order) ; END IF; -- Supplier Purchase Order Items without Order IF EXISTS ( SELECT * FROM tmp_Supplier_Purchase_Order_Product_Link t_SPOPL LEFT JOIN tmp_Supplier_Purchase_Order t_SPO ON t_SPOPL.id_order = t_SPO.id_order WHERE ISNULL(t_SPO.id_order) ) THEN INSERT INTO tmp_Msg_Error ( id_type, code, msg ) SELECT v_id_error_type_bad_data, v_code_error_type_bad_data, CONCAT( 'There is no order for the following Supplier Purchase Order Item(s): ' , GROUP_CONCAT(t_SPOPL.name_error SEPARATOR ', ') ) AS msg FROM tmp_Supplier_Purchase_Order_Product_Link t_SPOPL LEFT JOIN tmp_Supplier_Purchase_Order t_SPO ON t_SPOPL.id_order = t_SPO.id_order WHERE ISNULL(t_SPO.id_order) ; END IF; -- Permissions SET v_ids_product_permission := ( SELECT GROUP_CONCAT(DISTINCT PP.id_product SEPARATOR ',') FROM tmp_Supplier_Purchase_Order_Product_Link t_SPOPL INNER JOIN partsltd_prod.Shop_Product_Permutation PP ON t_SPOPL.id_permutation = PP.id_permutation ); IF a_debug = 1 THEN SELECT v_guid , a_id_user , FALSE -- get inactive users , v_id_permission_supplier_purchase_order , v_id_access_level_edit , v_ids_product_permission -- ids_product , 0 -- a_debug ; SELECT * from partsltd_prod.Shop_Calc_User_Temp; END IF; CALL p_shop_calc_user( v_guid , a_id_user , FALSE -- get inactive users , v_id_permission_supplier_purchase_order , v_id_access_level_edit , v_ids_product_permission -- ids_product , 0 -- a_debug ); IF a_debug = 1 THEN SELECT * from partsltd_prod.Shop_Calc_User_Temp WHERE GUID = a_guid; END IF; IF NOT EXISTS (SELECT can_view FROM partsltd_prod.Shop_Calc_User_Temp UE_T WHERE UE_T.GUID = v_guid) THEN DELETE FROM tmp_Msg_Error; INSERT INTO tmp_Msg_Error ( id_type , code , msg ) VALUES ( v_id_type_error_no_permission , v_code_type_error_no_permission CONCAT('You do not have view permissions for ', (SELECT name FROM partsltd_prod.Shop_Permission WHERE id_permission = v_id_permission_supplier LIMIT 1)) ) ; END IF; CALL partsltd_prod.p_shop_clear_calc_user( a_guid ); IF EXISTS ( SELECT * FROM tmp_Msg_Error LIMIT 1 ) THEN DELETE FROM tmp_Supplier_Purchase_Order; DELETE FROM tmp_Supplier_Purchase_Order_Product_Link; END IF; IF EXISTS ( SELECT * FROM tmp_Supplier_Purchase_Order_Product_Link t_SPOPL INNER JOIN partsltd_prod.Shop_Supplier_Purchase_Order_Product_Link SPOPL ON t_SPOPL.id_link = SPOPL.id_link INNER JOIN partsltd_prod.Shop_Stock_Item SI ON SPOPL.id_permutation = SI.id_permutation WHERE t_SPOPL.is_new = 0 AND t_SPOPL.quantity_received < SPOPL.quantity_received ) -- Transaction IF NOT EXISTS (SELECT * FROM tmp_Msg_Error) THEN START TRANSACTION; INSERT INTO Shop_Sales_And_Purchasing_Change_Set ( comment , updated_last_by , updated_last_on ) VALUES ( a_comment , a_id_user , v_time_start ); SET v_id_change_set := LAST_INSERT_ID(); INSERT INTO partsltd_prod.Shop_Supplier_Purchase_Order ( id_supplier_ordered , id_currency_cost , cost_total_local_VAT_excl , cost_total_local_VAT_incl , created_by , created_on , id_change_set , active ) SELECT t_SPO.id_supplier_ordered , t_SPO.id_currency_cost , SUM(t_SPOPL.cost_total_local_VAT_excl) , SUM(t_SPOPL.cost_total_local_VAT_incl) , t_SPO.active , a_id_user , v_time_start , v_id_change_set FROM tmp_Supplier_Purchase_Order t_SPO INNER JOIN tmp_Supplier_Purchase_Order_Product_Link t_SPOPL ON t_SPO.id_order = t_SPOPL.id_order WHERE t_SPOPL.is_new = 1 ; INSERT INTO Shop_Supplier_Purchase_Order_Product_Link ( id_order , id_permutation , id_currency_cost , id_unit_quantity , quantity_ordered , quantity_received , latency_delivery_days , display_order , active , cost_total_local_VAT_excl , cost_total_local_VAT_incl , created_by , id_change_set ) SELECT t_SPOPL.id_order , t_SPOPL.id_permutation , t_SPOPL.id_currency_cost , t_SPOPL.id_unit_quantity , t_SPOPL.quantity_ordered , t_SPOPL.quantity_received , t_SPOPL.latency_delivery_days , t_SPOPL.display_order , t_SPOPL.active , t_SPOPL.cost_total_local_VAT_excl , t_SPOPL.cost_total_local_VAT_incl a_id_user v_id_change_set FROM tmp_Supplier_Purchase_Order_Product_Link t_SPOPL WHERE t_SPOPL.is_new = 1 ; UPDATE partsltd_prod.Shop_Supplier_Purchase_Order SPO INNER JOIN tmp_Supplier_Purchase_Order t_SPO ON SPO.id_order = t_SPO.id_order AND t_SPO.is_new = 0 INNER JOIN tmp_Supplier_Purchase_Order_Product_Link t_SPOPL ON t_SPO.id_order = t_SPOPL.id_order SET SPO.id_supplier_ordered = t_SPO.id_supplier_ordered , SPO.id_currency_cost = id_currency_cost , SPO.cost_total_local_VAT_excl = SUM(t_SPOPL.cost_total_local_VAT_excl) , SPO.cost_total_local_VAT_incl = SUM(t_SPOPL.cost_total_local_VAT_incl) , SPO.active = a_active , SPO.id_change_set = v_id_change_set ; UPDATE partsltd_prod.Shop_Supplier_Purchase_Order_Product_Link SPOPL INNER JOIN tmp_Supplier_Purchase_Order_Product_Link t_SPOPL ON SPOPL.id_link = t_SPOPL.id_link AND t_SPOPL.is_new = 0 SET SPOPL.id_order = t_SPOPL.id_order, SPOPL.id_permutation = t_SPOPL.id_permutation, SPOPL.id_currency_cost = t_SPOPL.id_currency_cost, SPOPL.id_unit_quantity = t_SPOPL.id_unit_quantity, SPOPL.quantity_ordered = t_SPOPL.quantity_ordered, SPOPL.quantity_received = t_SPOPL.quantity_received, SPOPL.latency_delivery_days = t_SPOPL.latency_delivery_days, SPOPL.display_order = t_SPOPL.display_order, SPOPL.active = t_SPOPL.active, SPOPL.cost_total_local_VAT_excl = t_SPOPL.cost_total_local_VAT_excl, SPOPL.cost_total_local_VAT_incl = t_SPOPL.cost_total_local_VAT_incl, SPOPL.id_change_set = v_id_change_set ; DELETE SPO_T FROM Shop_Supplier_Purchase_Order_Temp SPO_T WHERE SPO_T.GUID = a_guid ; DELETE SPOPL_T FROM Shop_Supplier_Purchase_Order_Product_Link_Temp SPOPL_T WHERE SPOPL_T.GUID = a_guid ; COMMIT; # Errors SELECT * FROM tmp_Msg_Error t_ME INNER JOIN partsltd_prod.Shop_Msg_Error_Type MET ON t_ME.id_type = MET.id_type ; IF a_debug = 1 THEN SELECT * from tmp_Supplier; END IF; DROP TEMPORARY TABLE tmp_Supplier_Purchase_Order; DROP TEMPORARY TABLE tmp_Supplier_Purchase_Order_Product_Link; DROP TEMPORARY TABLE tmp_Msg_Error; IF a_debug = 1 THEN CALL partsltd_prod.p_debug_timing_reporting ( v_time_start ); END IF; END // DELIMITER ;; /* DELETE FROM Shop_Supplier_Purchase_Order_Product_Link_Audit; DELETE FROM Shop_Supplier_Purchase_Order_Product_Link; DELETE FROM Shop_Supplier_Purchase_Order_Product_Link_Temp; DELETE FROM Shop_Supplier_Purchase_Order_Audit; DELETE FROM Shop_Supplier_Purchase_Order; INSERT INTO Shop_Supplier_Purchase_Order_Product_Link_Temp ( guid, id_link, id_order, id_permutation, cost_total_local, id_currency_cost, quantity_ordered, id_unit_quantity, quantity_received, latency_delivery_days, display_order, active ) VALUES ( 'NIPS', # guid -1, # id_link, -1, # id_order, 1, # id_permutation, 100, # cost_total_local, 1, # id_currency_cost, 1, # quantity_ordered, 1, # id_unit_quantity, 1, # quantity_received, 14, # latency_delivery_days , 1, # display_order 1 # active ) ; SELECT * FROM Shop_Supplier_Purchase_Order_Product_Link_Temp; CALL p_shop_save_supplier_purchase_order ( 'NIPS', # a_guid 'auth0|6582b95c895d09a70ba10fef', # a_id_user -1, # a_id_order 1, # a_id_supplier_ordered 1 # a_id_currency_cost ); SELECT * FROM Shop_Supplier_Purchase_Order_Product_Link_Temp; DELETE FROM Shop_Supplier_Purchase_Order_Product_Link_Audit; DELETE FROM Shop_Supplier_Purchase_Order_Product_Link; DELETE FROM Shop_Supplier_Purchase_Order_Product_Link_Temp; DELETE FROM Shop_Supplier_Purchase_Order_Audit; DELETE FROM Shop_Supplier_Purchase_Order; */