31 lines
792 B
MySQL
31 lines
792 B
MySQL
|
DROP FUNCTION IF EXISTS `vn`.`invoiceOut_getWeight`;
|
||
|
|
||
|
DELIMITER $$
|
||
|
$$
|
||
|
CREATE DEFINER=`root`@`localhost` FUNCTION `vn`.`invoiceOut_getWeight`(vInvoice VARCHAR(15)) RETURNS decimal(10,2)
|
||
|
READS SQL DATA
|
||
|
BEGIN
|
||
|
/**
|
||
|
* Calcula el peso de una factura emitida
|
||
|
*
|
||
|
* @param vInvoice Id de la factura
|
||
|
* @return vTotalWeight peso de la factura
|
||
|
*/
|
||
|
DECLARE vTotalWeight DECIMAL(10,2);
|
||
|
|
||
|
SELECT SUM(CAST(IFNULL(i.stems, 1)
|
||
|
* s.quantity
|
||
|
* IF(ic.grams, ic.grams, IFNULL(i.weightByPiece, 0)) / 1000 AS DECIMAL(10,2)))
|
||
|
INTO vTotalWeight
|
||
|
FROM ticket t
|
||
|
JOIN sale s ON s.ticketFk = t.id
|
||
|
JOIN item i ON i.id = s.itemFk
|
||
|
JOIN itemCost ic ON ic.itemFk = i.id
|
||
|
AND ic.warehouseFk = t.warehouseFk
|
||
|
WHERE t.refFk = vInvoice
|
||
|
AND i.intrastatFk;
|
||
|
|
||
|
RETURN vTotalWeight;
|
||
|
END$$
|
||
|
DELIMITER ;
|