60 lines
1.2 KiB
MySQL
60 lines
1.2 KiB
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`myOrder_newWithDate`(
|
||
|
OUT vSelf INT,
|
||
|
vLandingDate DATE)
|
||
|
BEGIN
|
||
|
/**
|
||
|
* Crea una nueva orden para el usuario actual especificando
|
||
|
* una fecha de entrega.
|
||
|
*
|
||
|
* @param vSelf Id de la nueva orden
|
||
|
* @param vLandingDate Fecha de entrega
|
||
|
*/
|
||
|
DECLARE vCompany INT;
|
||
|
DECLARE vDeliveryMethodId INT;
|
||
|
DECLARE vAgencyMode INT;
|
||
|
DECLARE vAddress INT;
|
||
|
|
||
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vSelf = NULL;
|
||
|
DECLARE EXIT HANDLER FOR SQLSTATE '45000'
|
||
|
BEGIN
|
||
|
ROLLBACK;
|
||
|
SET vSelf = NULL;
|
||
|
RESIGNAL;
|
||
|
END;
|
||
|
|
||
|
START TRANSACTION;
|
||
|
|
||
|
SELECT a.agencyModeFk, a.id
|
||
|
INTO vAgencyMode, vAddress
|
||
|
FROM myClient c
|
||
|
JOIN vn.address a ON a.id = c.defaultAddressFk;
|
||
|
|
||
|
SELECT deliveryMethodFk INTO vDeliveryMethodId
|
||
|
FROM vn.agencyMode am
|
||
|
WHERE am.id = vAgencyMode;
|
||
|
|
||
|
IF vCompany IS NULL
|
||
|
THEN
|
||
|
SELECT defaultCompanyFk INTO vCompany
|
||
|
FROM orderConfig;
|
||
|
END IF;
|
||
|
|
||
|
INSERT INTO `order`
|
||
|
SET
|
||
|
customer_id = account.myUser_getId(),
|
||
|
date_send = vLandingDate,
|
||
|
delivery_method_id = vDeliveryMethodId,
|
||
|
agency_id = vAgencyMode,
|
||
|
address_id = vAddress,
|
||
|
source_app = 'WEB',
|
||
|
company_id = vCompany;
|
||
|
|
||
|
SET vSelf = LAST_INSERT_ID();
|
||
|
|
||
|
CALL order_checkConfig(vSelf);
|
||
|
|
||
|
COMMIT;
|
||
|
END$$
|
||
|
DELIMITER ;
|