Merge branch 'master' into 7929-createTableMaterial
gitea/salix/pipeline/pr-master This commit looks good Details

This commit is contained in:
Robert Ferrús 2024-09-05 12:27:41 +00:00
commit fa34c4328e
2 changed files with 43 additions and 36 deletions

View File

@ -2,25 +2,33 @@ DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`buy_recalcPrices`()
BEGIN
/**
* Recalcula los precios para las compras insertadas en tmp.buyRecalc
* Recalcula los precios para las compras insertadas en tmp.buyRecalc.
*
* @param tmp.buyRecalc (id)
*/
DECLARE vLanded DATE;
DECLARE vWarehouseFk INT;
DECLARE vHasNotPrice BOOL;
DECLARE vBuyingValue DECIMAL(10,4);
DECLARE vPackagingFk VARCHAR(10);
DECLARE vIsWarehouseFloramondo BOOL;
SELECT t.landed, t.warehouseInFk, (w.`name` = 'Floramondo')
INTO vLanded, vWarehouseFk, vIsWarehouseFloramondo
DECLARE vDone BOOL;
DECLARE vTravels CURSOR FOR
SELECT t.landed, t.warehouseInFk, (w.code = 'flm')
FROM tmp.buyRecalc br
JOIN buy b ON b.id = br.id
JOIN entry e ON e.id = b.entryFk
JOIN travel t ON t.id = e.travelFk
JOIN warehouse w ON w.id = t.warehouseInFk
LIMIT 1;
GROUP BY t.landed, t.warehouseInFk;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
OPEN vTravels;
l: LOOP
SET vDone = FALSE;
FETCH vTravels INTO vLanded, vWarehouseFk, vIsWarehouseFloramondo;
IF vDone THEN
LEAVE l;
END IF;
CALL rate_getPrices(vLanded, vWarehouseFk);
@ -40,13 +48,12 @@ BEGIN
b.packageValue = @EF:= IF(vIsWarehouseFloramondo, 0, IFNULL(ROUND(IF(p.isPackageReturnable, p.returnCost / b.packing , p.`value` / b.packing), 3),0)),
b.price3 = @t3:= IF(r.rate3 = 0, b.buyingValue,ROUND((b.buyingValue + @CF + @EF + @PF) / ((100 - r.rate3 - it.promo ) /100) ,2)), -- He añadido que el coste sea igual a tarifa3 si t3 = 0
b.price2 = @t2:= round(@t3 * (1 + ((r.rate2 - r.rate3)/100)),2),
b.price2 = @t2:= IF(@t2 <= @t3,@t3 , @t2);
SELECT (b.buyingValue = b.price2), b.buyingValue, b.packagingFk
INTO vHasNotPrice, vBuyingValue, vPackagingFk
FROM vn.buy b
WHERE b.id = @buyId AND b.buyingValue <> 0.01;
b.price2 = @t2:= IF(@t2 <= @t3,@t3 , @t2)
WHERE tr.landed = vLanded
AND tr.warehouseInFk = vWarehouseFk;
DROP TEMPORARY TABLE tmp.rate;
END LOOP;
CLOSE vTravels;
END$$
DELIMITER ;

View File

@ -13,7 +13,7 @@ module.exports = async function(ctx, Self, tickets, reqArgs = {}) {
const failedtickets = [];
for (const ticket of tickets) {
try {
await Self.app.models.InvoiceOut.getSerial(ticket.clientFk, ticket.companyFk, ticket.addressFk, 'multiple');
await Self.app.models.InvoiceOut.getSerial(ticket.clientFk, ticket.companyFk, ticket.addressFk, 'quick');
await Self.rawSql(
`CALL vn.ticket_closeByTicket(?)`,
[ticket.id],