7383-testToMaster #2445

Merged
alexm merged 233 commits from 7383-testToMaster into master 2024-05-14 05:44:13 +00:00
9 changed files with 133 additions and 138 deletions
Showing only changes of commit 4767b98442 - Show all commits

View File

@ -1,9 +1,16 @@
DELIMITER $$ DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`availableTraslate`( CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`available_traslate`(
vWarehouseLanding INT, vWarehouseLanding INT,
vDated DATE, vDated DATE,
vWarehouseShipment INT) vWarehouseShipment INT)
proc: BEGIN proc: BEGIN
/**
* Calcular la disponibilidad dependiendo del almacen de origen y destino según la fecha
*
* @param vWarehouseLanding almacén de llegada.
* @param vDated la fecha para la cual se está calculando la disponibilidad de articulos.
* @param vWarehouseShipment almacén de destino.
*/
DECLARE vDatedFrom DATE; DECLARE vDatedFrom DATE;
DECLARE vDatedTo DATETIME; DECLARE vDatedTo DATETIME;
DECLARE vDatedReserve DATETIME; DECLARE vDatedReserve DATETIME;
@ -13,7 +20,8 @@ proc: BEGIN
LEAVE proc; LEAVE proc;
END IF; END IF;
CALL vn.item_getStock (vWarehouseLanding, vDated, NULL); CALL item_getStock (vWarehouseLanding, vDated, NULL);
-- Calcula algunos parámetros necesarios -- Calcula algunos parámetros necesarios
SET vDatedFrom = TIMESTAMP(vDated, '00:00:00'); SET vDatedFrom = TIMESTAMP(vDated, '00:00:00');
@ -23,15 +31,14 @@ proc: BEGIN
FROM hedera.orderConfig; FROM hedera.orderConfig;
-- Calcula el ultimo dia de vida para cada producto -- Calcula el ultimo dia de vida para cada producto
DROP TEMPORARY TABLE IF EXISTS itemRange; CREATE OR REPLACE TEMPORARY TABLE tItemRange
CREATE TEMPORARY TABLE itemRange
(PRIMARY KEY (itemFk)) (PRIMARY KEY (itemFk))
ENGINE = MEMORY ENGINE = MEMORY
SELECT c.itemFk, MAX(t.landed) dated SELECT c.itemFk, MAX(t.landed) dated
FROM vn.buy c FROM buy c
JOIN vn.entry e ON c.entryFk = e.id JOIN entry e ON c.entryFk = e.id
JOIN vn.travel t ON t.id = e.travelFk JOIN travel t ON t.id = e.travelFk
JOIN vn.warehouse w ON w.id = t.warehouseInFk JOIN warehouse w ON w.id = t.warehouseInFk
WHERE t.landed BETWEEN vDatedInventory AND vDatedFrom WHERE t.landed BETWEEN vDatedInventory AND vDatedFrom
AND t.warehouseInFk = vWarehouseLanding AND t.warehouseInFk = vWarehouseLanding
AND NOT e.isExcludedFromAvailable AND NOT e.isExcludedFromAvailable
@ -39,46 +46,44 @@ proc: BEGIN
GROUP BY c.itemFk; GROUP BY c.itemFk;
-- Tabla con el ultimo dia de last_buy para cada producto que hace un replace de la anterior -- Tabla con el ultimo dia de last_buy para cada producto que hace un replace de la anterior
CALL vn.buyUltimate(vWarehouseShipment, util.VN_CURDATE()); CALL buyUltimate(vWarehouseShipment, util.VN_CURDATE());
INSERT INTO itemRange INSERT INTO tItemRange
SELECT t.itemFk, tr.landed SELECT t.itemFk, tr.landed
FROM tmp.buyUltimate t FROM tmp.buyUltimate t
JOIN vn.buy b ON b.id = t.buyFk JOIN buy b ON b.id = t.buyFk
JOIN vn.entry e ON e.id = b.entryFk JOIN entry e ON e.id = b.entryFk
JOIN vn.travel tr ON tr.id = e.travelFk JOIN travel tr ON tr.id = e.travelFk
LEFT JOIN itemRange i ON t.itemFk = i.itemFk LEFT JOIN tItemRange i ON t.itemFk = i.itemFk
WHERE t.warehouseFk = vWarehouseShipment WHERE t.warehouseFk = vWarehouseShipment
AND NOT e.isRaid AND NOT e.isRaid
ON DUPLICATE KEY UPDATE itemRange.dated = GREATEST(itemRange.dated, tr.landed); ON DUPLICATE KEY UPDATE tItemRange.dated = GREATEST(tItemRange.dated, tr.landed);
DROP TEMPORARY TABLE IF EXISTS itemRangeLive; CREATE OR REPLACE TEMPORARY TABLE tItemRangeLive
CREATE TEMPORARY TABLE itemRangeLive
(PRIMARY KEY (itemFk)) (PRIMARY KEY (itemFk))
ENGINE = MEMORY ENGINE = MEMORY
SELECT ir.itemFk, TIMESTAMP(TIMESTAMPADD(DAY, it.life, ir.dated), '23:59:59') dated SELECT ir.itemFk, TIMESTAMP(TIMESTAMPADD(DAY, it.life, ir.dated), '23:59:59') dated
FROM itemRange ir FROM tItemRange ir
JOIN vn.item i ON i.id = ir.itemFk JOIN item i ON i.id = ir.itemFk
JOIN vn.itemType it ON it.id = i.typeFk JOIN itemType it ON it.id = i.typeFk
HAVING dated >= vDatedFrom OR dated IS NULL; HAVING dated >= vDatedFrom OR dated IS NULL;
-- Calcula el ATP -- Calcula el ATP
DROP TEMPORARY TABLE IF EXISTS tmp.itemCalc; CREATE OR REPLACE TEMPORARY TABLE tmp.itemCalc
CREATE TEMPORARY TABLE tmp.itemCalc
(INDEX (itemFk,warehouseFk)) (INDEX (itemFk,warehouseFk))
ENGINE = MEMORY ENGINE = MEMORY
SELECT i.itemFk, vWarehouseLanding warehouseFk, i.shipped dated, i.quantity SELECT i.itemFk, vWarehouseLanding warehouseFk, i.shipped dated, i.quantity
FROM vn.itemTicketOut i FROM vn.itemTicketOut i
JOIN itemRangeLive ir ON ir.itemFK = i.itemFk JOIN tItemRangeLive ir ON ir.itemFK = i.item_id
WHERE i.shipped >= vDatedFrom WHERE i.shipped >= vDatedFrom
AND (ir.dated IS NULL OR i.shipped <= ir.dated) AND (ir.dated IS NULL OR i.shipped <= ir.dated)
AND i.warehouseFk = vWarehouseLanding AND i.warehouseFk = vWarehouseLanding
UNION ALL UNION ALL
SELECT b.itemFk, vWarehouseLanding, t.landed, b.quantity SELECT b.itemFk, vWarehouseLanding, t.landed, b.quantity
FROM vn.buy b FROM buy b
JOIN vn.entry e ON b.entryFk = e.id JOIN entry e ON b.entryFk = e.id
JOIN vn.travel t ON t.id = e.travelFk JOIN travel t ON t.id = e.travelFk
JOIN itemRangeLive ir ON ir.itemFk = b.itemFk JOIN tItemRangeLive ir ON ir.itemFk = b.itemFk
WHERE NOT e.isExcludedFromAvailable WHERE NOT e.isExcludedFromAvailable
AND b.quantity <> 0 AND b.quantity <> 0
AND NOT e.isRaid AND NOT e.isRaid
@ -88,7 +93,7 @@ proc: BEGIN
UNION ALL UNION ALL
SELECT i.itemFk, vWarehouseLanding, i.shipped, i.quantity SELECT i.itemFk, vWarehouseLanding, i.shipped, i.quantity
FROM vn.itemEntryOut i FROM vn.itemEntryOut i
JOIN itemRangeLive ir ON ir.itemFk = i.itemFk JOIN tItemRangeLive ir ON ir.itemFk = i.itemFk
WHERE i.shipped >= vDatedFrom WHERE i.shipped >= vDatedFrom
AND (ir.dated IS NULL OR i.shipped <= ir.dated) AND (ir.dated IS NULL OR i.shipped <= ir.dated)
AND i.warehouseOutFk = vWarehouseLanding AND i.warehouseOutFk = vWarehouseLanding
@ -96,24 +101,23 @@ proc: BEGIN
SELECT r.item_id, vWarehouseLanding, r.shipment, -r.amount SELECT r.item_id, vWarehouseLanding, r.shipment, -r.amount
FROM hedera.order_row r FROM hedera.order_row r
JOIN hedera.`order` o ON o.id = r.order_id JOIN hedera.`order` o ON o.id = r.order_id
JOIN itemRangeLive ir ON ir.itemFk = r.item_id JOIN tItemRangeLive ir ON ir.itemFk = r.item_id
WHERE r.shipment >= vDatedFrom WHERE r.shipment >= vDatedFrom
AND (ir.dated IS NULL OR r.shipment <= ir.dated) AND (ir.dated IS NULL OR r.shipment <= ir.dated)
AND r.warehouse_id = vWarehouseLanding AND r.warehouse_id = vWarehouseLanding
AND r.created >= vDatedReserve AND r.created >= vDatedReserve
AND NOT o.confirmed; AND NOT o.confirmed;
CALL vn.item_getAtp(vDated); CALL item_getAtp(vDated);
DROP TEMPORARY TABLE IF EXISTS availableTraslate; CREATE OR REPLACE TEMPORARY TABLE tmp.availableTraslate
CREATE TEMPORARY TABLE availableTraslate
(PRIMARY KEY (item_id)) (PRIMARY KEY (item_id))
ENGINE = MEMORY ENGINE = MEMORY
SELECT t.item_id, SUM(stock) available SELECT t.item_id, SUM(stock) available
FROM ( FROM (
SELECT ti.itemFk item_id, stock SELECT ti.itemFk item_id, stock
FROM tmp.itemList ti FROM tmp.itemList ti
JOIN itemRange ir ON ir.itemFk = ti.itemFk JOIN tItemRange ir ON ir.itemFk = ti.itemFk
UNION ALL UNION ALL
SELECT itemFk, quantity SELECT itemFk, quantity
FROM tmp.itemAtp FROM tmp.itemAtp
@ -121,6 +125,6 @@ proc: BEGIN
GROUP BY t.item_id GROUP BY t.item_id
HAVING available <> 0; HAVING available <> 0;
DROP TEMPORARY TABLE tmp.itemList, itemRange, itemRangeLive; DROP TEMPORARY TABLE tmp.itemList, tItemRange, tItemRangeLive;
END$$ END$$
DELIMITER ; DELIMITER ;

View File

@ -1,11 +1,20 @@
DELIMITER $$ DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`balance_create`( CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`balance_create`(
IN vStartingMonth INT, IN vStartingMonth INT,
IN vEndingMonth INT, IN vEndingMonth INT,
IN vCompany INT, IN vCompany INT,
IN vIsConsolidated BOOLEAN, IN vIsConsolidated BOOLEAN,
IN vInterGroupSalesIncluded BOOLEAN) IN vInterGroupSalesIncluded BOOLEAN)
BEGIN BEGIN
/**
* Crea un balance financiero para una empresa durante un período de tiempo determinado
*
* @param vStartingMonth Mes de inicio del período
* @param vEndingMonth Mes de finalización del período
* @param vCompany Identificador de la empresa
* @param vIsConsolidated Indica si se trata de un balance consolidado
* @param vInterGroupSalesIncluded Indica si se incluyen las ventas dentro del grupo
*/
DECLARE intGAP INT DEFAULT 7; DECLARE intGAP INT DEFAULT 7;
DECLARE vYears INT DEFAULT 2; DECLARE vYears INT DEFAULT 2;
DECLARE vYear TEXT; DECLARE vYear TEXT;
@ -18,7 +27,7 @@ BEGIN
DECLARE vStartingYear INT DEFAULT vCurYear - 2; DECLARE vStartingYear INT DEFAULT vCurYear - 2;
DECLARE vTable TEXT; DECLARE vTable TEXT;
SET vTable = util.quoteIdentifier('balance_nest_tree'); SET vTable = util.quoteIdentifier('balanceNestTree');
SET vYear = util.quoteIdentifier(vCurYear); SET vYear = util.quoteIdentifier(vCurYear);
SET vOneYearAgo = util.quoteIdentifier(vCurYear-1); SET vOneYearAgo = util.quoteIdentifier(vCurYear-1);
SET vTwoYearsAgo = util.quoteIdentifier(vCurYear-2); SET vTwoYearsAgo = util.quoteIdentifier(vCurYear-2);
@ -41,72 +50,68 @@ BEGIN
ORDER BY node.lft') ORDER BY node.lft')
USING intGAP; USING intGAP;
DROP TEMPORARY TABLE IF EXISTS tmp.balance; CREATE OR REPLACE TEMPORARY TABLE tmp.balance
CREATE TEMPORARY TABLE tmp.balance
SELECT * FROM tmp.nest; SELECT * FROM tmp.nest;
DROP TEMPORARY TABLE IF EXISTS tmp.empresas_receptoras; SELECT companyGroupFk INTO vConsolidatedGroup
DROP TEMPORARY TABLE IF EXISTS tmp.empresas_emisoras; FROM company
SELECT empresa_grupo INTO vConsolidatedGroup
FROM empresa
WHERE id = vCompany; WHERE id = vCompany;
CREATE TEMPORARY TABLE tmp.empresas_receptoras CREATE OR REPLACE TEMPORARY TABLE tCompanyReceiving
SELECT id as empresa_id SELECT id companyId
FROM vn2008.empresa FROM company
WHERE id = vCompany WHERE id = vCompany
OR empresa_grupo = IF(vIsConsolidated, vConsolidatedGroup, NULL); OR companyGroupFk = IF(vIsConsolidated, vConsolidatedGroup, NULL);
CREATE TEMPORARY TABLE tmp.empresas_emisoras CREATE OR REPLACE TEMPORARY TABLE tCompanyIssuing
SELECT Id_Proveedor as empresa_id FROM vn2008.Proveedores p; SELECT id companyId
FROM supplier p;
IF vInterGroupSalesIncluded = FALSE THEN IF vInterGroupSalesIncluded = FALSE THEN
DELETE ee.* DELETE ci.*
FROM tmp.empresas_emisoras ee FROM tCompanyIssuing ci
JOIN vn2008.empresa e on e.id = ee.empresa_id JOIN company e on e.id = ci.companyId
WHERE e.empresa_grupo = vConsolidatedGroup; WHERE e.companyGroupFk = vConsolidatedGroup;
END IF; END IF;
-- Se calculan las facturas que intervienen, para luego poder servir el desglose desde aqui -- Se calculan las facturas que intervienen, para luego poder servir el desglose desde aqui
DROP TEMPORARY TABLE IF EXISTS tmp.balance_desglose; CREATE OR REPLACE TEMPORARY TABLE tmp.balanceDetail
CREATE TEMPORARY TABLE tmp.balance_desglose SELECT cr.companyId receivingId,
SELECT er.empresa_id receptora_id, ci.companyId issuingId,
ee.empresa_id emisora_id, YEAR(IFNULL(r.bookEntried,IFNULL(r.booked, r.issued))) `year`,
year(IFNULL(r.bookEntried,IFNULL(r.dateBooking, r.Fecha))) `year`, MONTH(IFNULL(r.bookEntried,IFNULL(r.booked, r.issued))) `month`,
month(IFNULL(r.bookEntried,IFNULL(r.dateBooking, r.Fecha))) `month`, expenseFk,
gastos_id Id_Gasto, SUM(taxableBase) amount
SUM(bi) importe FROM invoiceIn r
FROM recibida r JOIN invoiceInTax ri on ri.invoiceInFk = r.id
JOIN recibida_iva ri on ri.recibida_id = r.id JOIN tCompanyReceiving cr on cr.companyId = r.companyFk
JOIN tmp.empresas_receptoras er on er.empresa_id = r.empresa_id JOIN tCompanyIssuing ci ON ci.companyId = r.supplierFk
JOIN tmp.empresas_emisoras ee ON ee.empresa_id = r.proveedor_id WHERE IFNULL(r.bookEntried,IFNULL(r.booked, r.issued)) >= vStartingDate
WHERE IFNULL(r.bookEntried,IFNULL(r.dateBooking, r.Fecha)) >= vStartingDate AND r.isBooked
AND r.contabilizada GROUP BY expenseFk, year, month, ci.companyId, cr.companyId;
GROUP BY Id_Gasto, year, month, emisora_id, receptora_id;
INSERT INTO tmp.balance_desglose( INSERT INTO tmp.balanceDetail(
receptora_id, receivingId,
emisora_id, issuingId,
year, year,
month, month,
Id_Gasto, expenseFk,
importe) amount)
SELECT gr.empresa_id, SELECT em.companyFk,
gr.empresa_id, em.companyFk,
year, year,
month, month,
Id_Gasto, expenseFk,
SUM(importe) SUM(amount)
FROM gastos_resumen gr FROM expenseManual em
JOIN tmp.empresas_receptoras er on gr.empresa_id = er.empresa_id JOIN tCompanyReceiving er on em.companyFk = em.companyFk
WHERE year >= vStartingYear WHERE year >= vStartingYear
AND month BETWEEN vStartingMonth AND vEndingMonth AND month BETWEEN vStartingMonth AND vEndingMonth
GROUP BY Id_Gasto, year, month, gr.empresa_id; GROUP BY expenseFk, year, month, em.companyFk;
DELETE FROM tmp.balance_desglose DELETE FROM tmp.balanceDetail
WHERE month < vStartingMonth WHERE month < vStartingMonth
OR month > vEndingMonth; OR month > vEndingMonth;
@ -116,29 +121,29 @@ BEGIN
ADD COLUMN ', vTwoYearsAgo ,' INT(10) NULL , ADD COLUMN ', vTwoYearsAgo ,' INT(10) NULL ,
ADD COLUMN ', vOneYearAgo ,' INT(10) NULL , ADD COLUMN ', vOneYearAgo ,' INT(10) NULL ,
ADD COLUMN ', vYear,' INT(10) NULL , ADD COLUMN ', vYear,' INT(10) NULL ,
ADD COLUMN Id_Gasto VARCHAR(10) NULL, ADD COLUMN expenseFk VARCHAR(10) NULL,
ADD COLUMN Gasto VARCHAR(45) NULL'); ADD COLUMN expenseName VARCHAR(45) NULL');
-- Añadimos los gastos, para facilitar el formulario -- Añadimos los gastos, para facilitar el formulario
UPDATE tmp.balance b UPDATE tmp.balance b
JOIN vn2008.balance_nest_tree bnt on bnt.id = b.id JOIN balanceNestTree bnt on bnt.id = b.id
JOIN (SELECT id Id_Gasto, name Gasto JOIN (SELECT id, name
FROM vn.expense FROM expense
GROUP BY id) g ON g.Id_Gasto = bnt.Id_Gasto COLLATE utf8_general_ci GROUP BY id) g ON g.id = bnt.expenseFk COLLATE utf8_general_ci
SET b.Id_Gasto = g.Id_Gasto COLLATE utf8_general_ci SET b.expenseFk = g.id COLLATE utf8_general_ci
, b.Gasto = g.Gasto COLLATE utf8_general_ci ; , b.expenseName = g.id COLLATE utf8_general_ci ;
-- Rellenamos los valores de primer nivel, los que corresponden a los gastos simples -- Rellenamos los valores de primer nivel, los que corresponden a los gastos simples
WHILE vYears >= 0 DO WHILE vYears >= 0 DO
SET vQuery = CONCAT( SET vQuery = CONCAT(
'UPDATE tmp.balance b 'UPDATE tmp.balance b
JOIN JOIN
(SELECT Id_Gasto, SUM(Importe) as Importe (SELECT expenseFk, SUM(amount)
FROM tmp.balance_desglose FROM tmp.balanceDetail
WHERE year = ? WHERE year = ?
GROUP BY Id_Gasto GROUP BY expenseFk
) sub on sub.Id_Gasto = b.Id_Gasto COLLATE utf8_general_ci ) sub on sub.expenseFk = b.expenseFk COLLATE utf8_general_ci
SET ', util.quoteIdentifier(vCurYear - vYears), ' = - Importe'); SET ', util.quoteIdentifier(vCurYear - vYears), ' = - amount');
EXECUTE IMMEDIATE vQuery EXECUTE IMMEDIATE vQuery
USING vCurYear - vYears; USING vCurYear - vYears;
@ -155,10 +160,10 @@ BEGIN
SUM(IF(year = ?, venta, 0)) y0, SUM(IF(year = ?, venta, 0)) y0,
c.Gasto c.Gasto
FROM bs.ventas_contables c FROM bs.ventas_contables c
JOIN tmp.empresas_receptoras er on er.empresa_id = c.empresa_id JOIN tCompanyReceiving cr ON cr.companyId = c.empresa_id
WHERE month BETWEEN ? AND ? WHERE month BETWEEN ? AND ?
GROUP BY c.Gasto GROUP BY c.Gasto
) sub ON sub.Gasto = b.Id_Gasto COLLATE utf8_general_ci ) sub ON sub.gasto = b.expenseFk COLLATE utf8_general_ci
SET b.', vTwoYearsAgo, '= IFNULL(b.', vTwoYearsAgo, ', 0) + sub.y2, SET b.', vTwoYearsAgo, '= IFNULL(b.', vTwoYearsAgo, ', 0) + sub.y2,
b.', vOneYearAgo, '= IFNULL(b.', vOneYearAgo, ', 0) + sub.y1, b.', vOneYearAgo, '= IFNULL(b.', vOneYearAgo, ', 0) + sub.y1,
b.', vYear, '= IFNULL(b.', vYear, ', 0) + sub.y0') b.', vYear, '= IFNULL(b.', vYear, ', 0) + sub.y0')
@ -182,8 +187,7 @@ BEGIN
END IF; END IF;
-- Rellenamos el valor de los padres con la suma de los hijos -- Rellenamos el valor de los padres con la suma de los hijos
DROP TEMPORARY TABLE IF EXISTS tmp.balance_aux; CREATE OR REPLACE TEMPORARY TABLE tmp.balance_aux
CREATE TEMPORARY TABLE tmp.balance_aux
SELECT * FROM tmp.balance; SELECT * FROM tmp.balance;
EXECUTE IMMEDIATE EXECUTE IMMEDIATE
@ -201,7 +205,11 @@ BEGIN
b.', vOneYearAgo, ' = oneYearAgo, b.', vOneYearAgo, ' = oneYearAgo,
b.', vTwoYearsAgo, ' = twoYearsAgo'); b.', vTwoYearsAgo, ' = twoYearsAgo');
SELECT *, CONCAT('',ifnull(Id_Gasto,'')) newgasto SELECT *, CONCAT('',ifnull(expenseFk,'')) newgasto
FROM tmp.balance; FROM tmp.balance;
DROP TEMPORARY TABLE IF EXISTS tCompanyReceiving;
DROP TEMPORARY TABLE IF EXISTS tCompanyIssuing;
END$$ END$$
DELIMITER ; DELIMITER ;

View File

@ -68,19 +68,19 @@ BEGIN
AND v.`visible` AND v.`visible`
ON DUPLICATE KEY UPDATE visibleLanding = v.`visible`; ON DUPLICATE KEY UPDATE visibleLanding = v.`visible`;
CALL vn2008.availableTraslate(vWarehouseOut, vDateShipped, NULL); CALL available_traslate(vWarehouseOut, vDateShipped, NULL);
INSERT INTO tItem(itemFk, available) INSERT INTO tItem(itemFk, available)
SELECT a.item_id, a.available SELECT a.item_id, a.available
FROM vn2008.availableTraslate a FROM tmp.availableTraslate a
WHERE a.available WHERE a.available
ON DUPLICATE KEY UPDATE available = a.available; ON DUPLICATE KEY UPDATE available = a.available;
CALL vn2008.availableTraslate(vWarehouseIn, vDateLanded, vWarehouseOut); CALL available_traslate(vWarehouseIn, vDateLanded, vWarehouseOut);
INSERT INTO tItem(itemFk, availableLanding) INSERT INTO tItem(itemFk, availableLanding)
SELECT a.item_id, a.available SELECT a.item_id, a.available
FROM vn2008.availableTraslate a FROM tmp.availableTraslate a
WHERE a.available WHERE a.available
ON DUPLICATE KEY UPDATE availableLanding = a.available; ON DUPLICATE KEY UPDATE availableLanding = a.available;
ELSE ELSE

View File

@ -26,7 +26,7 @@ BEGIN
LEAVE l; LEAVE l;
END IF; END IF;
CALL vn2008.buy_tarifas_entry(vEntryFk); CALL buy_recalcPricesByEntry(vEntryFk);
END LOOP; END LOOP;
CLOSE vCur; CLOSE vCur;

View File

@ -1,6 +0,0 @@
DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`article_multiple_buy`(v_date DATETIME, wh INT)
BEGIN
CALL vn.item_multipleBuy(v_date, wh);
END$$
DELIMITER ;

View File

@ -1,9 +0,0 @@
DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`article_multiple_buy_date`(
IN vDated DATETIME,
IN vWarehouseFk TINYINT(3)
)
BEGIN
CALL vn.item_multipleBuyByDate(vDated, vWarehouseFk);
END$$
DELIMITER ;

View File

@ -1,6 +0,0 @@
DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`buy_tarifas`(vBuyFk INT)
BEGIN
CALL vn.buy_recalcPricesByBuy(vBuyFk);
END$$
DELIMITER ;

View File

@ -1,11 +0,0 @@
DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`buy_tarifas_entry`(IN vEntryFk INT(11))
BEGIN
/**
* Recalcula los precios de una entrada
*
* @param vEntryFk
*/
CALL vn.buy_recalcPricesByEntry(vEntryFk);
END$$
DELIMITER ;

View File

@ -0,0 +1,15 @@
CREATE OR REPLACE PROCEDURE `vn`.`balance_create`() BEGIN END;
CREATE OR REPLACE PROCEDURE `vn`.`buy_recalcPricesByEntry`() BEGIN END;
CREATE OR REPLACE PROCEDURE `vn`.`buy_recalcPricesByBuy`() BEGIN END;
GRANT EXECUTE ON PROCEDURE vn.balance_create TO `financialBoss`;
GRANT EXECUTE ON PROCEDURE vn.balance_create TO `hrBoss`;
GRANT EXECUTE ON PROCEDURE vn.buy_recalcPricesByEntry TO `buyer`;
GRANT EXECUTE ON PROCEDURE vn.buy_recalcPricesByEntry TO `claimManager`;
GRANT EXECUTE ON PROCEDURE vn.buy_recalcPricesByEntry TO `employee`;
GRANT EXECUTE ON PROCEDURE vn.buy_recalcPricesByBuy TO `buyer`;
GRANT EXECUTE ON PROCEDURE vn.buy_recalcPricesByBuy TO `entryEditor`;
GRANT EXECUTE ON PROCEDURE vn.buy_recalcPricesByBuy TO `claimManager`;
GRANT EXECUTE ON PROCEDURE vn.buy_recalcPricesByBuy TO `employee`;