56 lines
1.1 KiB
SQL
56 lines
1.1 KiB
SQL
DELIMITER $$
|
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `edi`.`ekt_refresh`(
|
|
`vSelf` INT, vMailFk INT)
|
|
BEGIN
|
|
/**
|
|
* Updates a transaction, generates it's barcode.
|
|
*/
|
|
DECLARE vRewriteKop INT DEFAULT NULL;
|
|
DECLARE vTruncatePutOrder INT DEFAULT NULL;
|
|
DECLARE vBarcode CHAR(15) DEFAULT NULL;
|
|
DECLARE vKop INT;
|
|
DECLARE vPutOrderFk BIGINT;
|
|
|
|
SELECT kop, putOrderFk
|
|
INTO vKop, vPutOrderFk
|
|
FROM ekt
|
|
WHERE id = vSelf;
|
|
|
|
-- Generates the barcode
|
|
|
|
SELECT CONCAT(
|
|
LPAD(IFNULL(auction,0), 3, 0),
|
|
LPAD(IFNULL(klo, 99), 2, 0),
|
|
LPAD(DAYOFYEAR(fec), 3, 0),
|
|
COALESCE(agj, RIGHT(batchNumber,7), id))
|
|
INTO vBarcode
|
|
FROM ekt
|
|
WHERE id = vSelf;
|
|
|
|
-- Rewrites the kop parameter
|
|
|
|
IF vKop IS NULL THEN
|
|
SELECT defaultKop INTO vKop FROM exchangeConfig;
|
|
END IF;
|
|
|
|
SELECT e.kop INTO vRewriteKop
|
|
FROM mailSender e
|
|
JOIN mail m ON m.senderFk = e.id
|
|
WHERE m.id = vMailFk;
|
|
|
|
SET vKop = IFNULL(vRewriteKop, vKop);
|
|
|
|
-- Format order id
|
|
|
|
SET vTruncatePutOrder = vPutOrderFk MOD 1000000;
|
|
|
|
-- Refresh EKT
|
|
|
|
UPDATE ekt SET
|
|
barcode = vBarcode
|
|
,kop = vKop
|
|
,putOrderFk = vTruncatePutOrder
|
|
WHERE id = vSelf;
|
|
END$$
|
|
DELIMITER ;
|