salix/db/routines/hedera/procedures/myOrder_create.sql

42 lines
961 B
SQL

DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`myOrder_create`(
OUT vSelf INT,
vDelivery DATE,
vDeliveryMethod VARCHAR(45),
vAgency INT,
vAddress INT)
proc: BEGIN
/**
* Creates a new order for the current user. If passed parameters are wrong
* it returns an error.
*
* @param vDelivery Delivery date
* @param vDeliveryMethod Delivery method code
* @param vAgency Agency id
* @param vAddress Address id, @NULL for pickup
*/
DECLARE vCompany INT;
DECLARE vCurrencyFk INT;
SELECT oc.defaultCompanyFk, c.currencyFk INTO vCompany, vCurrencyFk
FROM orderConfig oc
LEFT JOIN vn.company c ON c.id = oc.defaultCompanyFk
LIMIT 1;
INSERT INTO `order`
SET customer_id = account.myUser_getId(),
source_app = 'WEB',
company_id = vCompany,
currencyFk = vCurrencyFk;
SET vSelf = LAST_INSERT_ID();
CALL myOrder_configure(
vSelf,
vDelivery,
vDeliveryMethod,
vAgency,
vAddress
);
END$$
DELIMITER ;