31 lines
792 B
SQL
31 lines
792 B
SQL
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 ;
|