51 lines
2.1 KiB
SQL
51 lines
2.1 KiB
SQL
DELIMITER $$
|
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`agencyModeImbalance`(vStarted DATE, vEnded DATE)
|
|
BEGIN
|
|
/**
|
|
* Devuelve el valor de los precios teorico, practico de las agencias
|
|
* y si ademas es de mrw lo compara con su fichero previamente procesado
|
|
*
|
|
* @param vEktFk Identificador de edi.ekt
|
|
*/
|
|
DECLARE vEndedDayEnd DATETIME;
|
|
|
|
SET vEndedDayEnd = util.dayEnd(vEnded);
|
|
|
|
SELECT t.id ticketFk,t.addressFk,
|
|
CAST(v.amount AS DECIMAL (10,2)) AS VN,
|
|
CAST(v.amount - e.shipping_charge AS DECIMAL (10,2)) AS Difer,
|
|
CAST(mrwPrice AS DECIMAL (10,2)) mrwPrice,
|
|
CAST(e.shipping_charge - mrwPrice AS DECIMAL (10,2)) mrwDifference,
|
|
CAST(e.shipping_charge AS DECIMAL (10,2)) AS teorico,
|
|
CAST(e.extraCharge AS DECIMAL (10,2)) AS extraCharge,
|
|
t.packages, t.clientFk,
|
|
t.zoneFk, a.provinceFk, mrwCount
|
|
FROM vn.ticket t
|
|
LEFT JOIN
|
|
(SELECT ticketFk, SUM(amount) amount, fc.shipped
|
|
FROM vn.sale_freightComponent fc
|
|
JOIN vn.ticket t ON t.id = fc.ticketFk
|
|
JOIN tmp.agencyMode am ON am.agencyModeFk = t.agencyModeFk
|
|
WHERE fc.shipped BETWEEN vStarted AND vEndedDayEnd
|
|
GROUP BY ticketFk) v ON t.id = v.ticketFk
|
|
LEFT JOIN (SELECT t.id,
|
|
SUM(t.zonePrice) shipping_charge,
|
|
SUM(IFNULL(aex.price,0)) extraCharge
|
|
FROM vn.ticket t
|
|
LEFT JOIN vn.expedition e ON e.ticketFk = t.id
|
|
LEFT JOIN vn.packaging p ON p.id = e.packagingFk
|
|
JOIN tmp.agencyMode amc ON amc.agencyModeFk = t.agencyModeFk
|
|
JOIN vn.agencyMode am ON am.id = amc.agencyModeFk
|
|
LEFT JOIN vn.agencyExtraCharge aex ON p.width+p.depth+p.height BETWEEN aex.sizeMin AND aex.sizeMax AND aex.agencyFk = am.agencyFk
|
|
WHERE t.shipped BETWEEN vStarted AND vEndedDayEnd
|
|
GROUP BY t.id
|
|
) e ON t.id = e.id
|
|
LEFT JOIN (SELECT ticketFk, SUM(price) mrwPrice, COUNT(*) mrwCount
|
|
FROM vn.mrw
|
|
GROUP BY ticketFk) mrw ON mrw.ticketFk = t.id
|
|
JOIN vn.address a ON a.id = t.addressFk
|
|
JOIN tmp.agencyMode am ON am.agencyModeFk = t.agencyModeFk
|
|
WHERE t.shipped BETWEEN vStarted AND vEndedDayEnd;
|
|
END$$
|
|
DELIMITER ;
|