Merge pull request '2238-ticket_summary_invoiceOut' (#255) from 2238-ticket_summary_invoiceOut into dev
gitea/salix/pipeline/head This commit looks good
Details
gitea/salix/pipeline/head This commit looks good
Details
Reviewed-by: Joan Sanchez <joan@verdnatura.es>
This commit is contained in:
commit
af0d0f1fbe
|
@ -1,3 +0,0 @@
|
||||||
ALTER TABLE `vn`.`ticket`
|
|
||||||
ADD COLUMN `zonePrice` DECIMAL(10,2) NULL DEFAULT NULL AFTER `collectionFk`,
|
|
||||||
ADD COLUMN `zoneBonus` DECIMAL(10,2) NULL DEFAULT NULL AFTER `zonePrice`;
|
|
|
@ -1,96 +0,0 @@
|
||||||
USE `vn`;
|
|
||||||
DROP procedure IF EXISTS `ticketCreateWithUser`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `vn`$$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `ticketCreateWithUser`(
|
|
||||||
vClientId INT
|
|
||||||
,vShipped DATE
|
|
||||||
,vWarehouseFk INT
|
|
||||||
,vCompanyFk INT
|
|
||||||
,vAddressFk INT
|
|
||||||
,vAgencyModeFk INT
|
|
||||||
,vRouteFk INT
|
|
||||||
,vlanded DATE
|
|
||||||
,vUserId INT
|
|
||||||
,OUT vNewTicket INT)
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
DECLARE vZoneFk INT;
|
|
||||||
DECLARE vPrice DECIMAL(10,2);
|
|
||||||
DECLARE vBonus DECIMAL(10,2);
|
|
||||||
|
|
||||||
IF vClientId IS NULL THEN
|
|
||||||
CALL util.throw ('CLIENT_NOT_ESPECIFIED');
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF NOT vAddressFk OR vAddressFk IS NULL THEN
|
|
||||||
SELECT id INTO vAddressFk
|
|
||||||
FROM address
|
|
||||||
WHERE clientFk = vClientId AND isDefaultAddress;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF vAgencyModeFk IS NOT NULL THEN
|
|
||||||
|
|
||||||
CALL vn.zone_getShippedWarehouse(vlanded, vAddressFk, vAgencyModeFk);
|
|
||||||
|
|
||||||
SELECT zoneFk, price, bonus INTO vZoneFk, vPrice, vBonus
|
|
||||||
FROM tmp.zoneGetShipped
|
|
||||||
WHERE shipped = vShipped AND warehouseFk = vWarehouseFk LIMIT 1;
|
|
||||||
|
|
||||||
IF vZoneFk IS NULL OR vZoneFk = 0 THEN
|
|
||||||
CALL util.throw ('NOT_ZONE_WITH_THIS_PARAMETERS');
|
|
||||||
END IF;
|
|
||||||
END IF;
|
|
||||||
INSERT INTO ticket (
|
|
||||||
clientFk,
|
|
||||||
shipped,
|
|
||||||
addressFk,
|
|
||||||
agencyModeFk,
|
|
||||||
nickname,
|
|
||||||
warehouseFk,
|
|
||||||
routeFk,
|
|
||||||
companyFk,
|
|
||||||
landed,
|
|
||||||
zoneFk,
|
|
||||||
zonePrice,
|
|
||||||
zoneBonus
|
|
||||||
)
|
|
||||||
SELECT
|
|
||||||
vClientId,
|
|
||||||
vShipped,
|
|
||||||
a.id,
|
|
||||||
vAgencyModeFk,
|
|
||||||
a.nickname,
|
|
||||||
vWarehouseFk,
|
|
||||||
IF(vRouteFk,vRouteFk,NULL),
|
|
||||||
vCompanyFk,
|
|
||||||
vlanded,
|
|
||||||
vZoneFk,
|
|
||||||
vPrice,
|
|
||||||
vBonus
|
|
||||||
FROM address a
|
|
||||||
JOIN agencyMode am ON am.id = a.agencyModeFk
|
|
||||||
WHERE a.id = vAddressFk;
|
|
||||||
|
|
||||||
SET vNewTicket = LAST_INSERT_ID();
|
|
||||||
|
|
||||||
INSERT INTO ticketObservation(ticketFk, observationTypeFk, description)
|
|
||||||
SELECT vNewTicket, ao.observationTypeFk, ao.description
|
|
||||||
FROM addressObservation ao
|
|
||||||
JOIN address a ON a.id = ao.addressFk
|
|
||||||
WHERE a.id = vAddressFk;
|
|
||||||
|
|
||||||
INSERT INTO vn.ticketLog
|
|
||||||
SET originFk = vNewTicket, userFk = vUserId, `action` = 'insert', description = CONCAT('Ha creado el ticket:', ' ', vNewTicket);
|
|
||||||
|
|
||||||
IF (SELECT ct.isCreatedAsServed FROM vn.clientType ct JOIN vn.client c ON c.typeFk = ct.code WHERE c.id = vClientId ) <> FALSE THEN
|
|
||||||
INSERT INTO vncontrol.inter(state_id, Id_Ticket, Id_Trabajador)
|
|
||||||
SELECT id, vNewTicket, getWorker()
|
|
||||||
FROM state
|
|
||||||
WHERE `code` = 'DELIVERED';
|
|
||||||
END IF;
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
|
|
|
@ -1,82 +0,0 @@
|
||||||
USE `vn`;
|
|
||||||
DROP procedure IF EXISTS `ticket_componentUpdate`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `vn`$$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `ticket_componentUpdate`(
|
|
||||||
vTicketFk INT,
|
|
||||||
vClientFk INT,
|
|
||||||
vAgencyModeFk INT,
|
|
||||||
vAddressFk INT,
|
|
||||||
vZoneFk INT,
|
|
||||||
vWarehouseFk TINYINT,
|
|
||||||
vCompanyFk SMALLINT,
|
|
||||||
vShipped DATETIME,
|
|
||||||
vLanded DATE,
|
|
||||||
vIsDeleted BOOLEAN,
|
|
||||||
vHasToBeUnrouted BOOLEAN,
|
|
||||||
vOption INT)
|
|
||||||
BEGIN
|
|
||||||
DECLARE vPrice DECIMAL(10,2);
|
|
||||||
DECLARE vBonus DECIMAL(10,2);
|
|
||||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
|
||||||
BEGIN
|
|
||||||
ROLLBACK;
|
|
||||||
RESIGNAL;
|
|
||||||
END;
|
|
||||||
|
|
||||||
START TRANSACTION;
|
|
||||||
|
|
||||||
IF (SELECT addressFk FROM ticket WHERE id = vTicketFk) <> vAddressFk THEN
|
|
||||||
|
|
||||||
UPDATE ticket t
|
|
||||||
JOIN address a ON a.id = vAddressFk
|
|
||||||
SET t.nickname = a.nickname
|
|
||||||
WHERE t.id = vTicketFk;
|
|
||||||
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL vn.zone_getShippedWarehouse(vlanded, vAddressFk, vAgencyModeFk);
|
|
||||||
|
|
||||||
SELECT zoneFk, price, bonus INTO vZoneFk, vPrice, vBonus
|
|
||||||
FROM tmp.zoneGetShipped
|
|
||||||
WHERE shipped = vShipped AND warehouseFk = vWarehouseFk LIMIT 1;
|
|
||||||
|
|
||||||
UPDATE ticket t
|
|
||||||
SET
|
|
||||||
t.clientFk = vClientFk,
|
|
||||||
t.agencyModeFk = vAgencyModeFk,
|
|
||||||
t.addressFk = vAddressFk,
|
|
||||||
t.zoneFk = vZoneFk,
|
|
||||||
t.zonePrice = vPrice,
|
|
||||||
t.zoneBonus = vBonus,
|
|
||||||
t.warehouseFk = vWarehouseFk,
|
|
||||||
t.companyFk = vCompanyFk,
|
|
||||||
t.landed = vLanded,
|
|
||||||
t.shipped = vShipped,
|
|
||||||
t.isDeleted = vIsDeleted
|
|
||||||
WHERE
|
|
||||||
t.id = vTicketFk;
|
|
||||||
|
|
||||||
IF vHasToBeUnrouted THEN
|
|
||||||
UPDATE ticket t SET t.routeFk = NULL
|
|
||||||
WHERE t.id = vTicketFk;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF vOption <> 8 THEN
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.sale;
|
|
||||||
CREATE TEMPORARY TABLE tmp.sale
|
|
||||||
(PRIMARY KEY (saleFk))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT id AS saleFk, vWarehouseFk warehouseFk
|
|
||||||
FROM sale s WHERE s.ticketFk = vTicketFk;
|
|
||||||
|
|
||||||
CALL ticketComponentUpdateSale (vOption);
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tmp.sale;
|
|
||||||
END IF;
|
|
||||||
COMMIT;
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
|
|
|
@ -1,49 +0,0 @@
|
||||||
USE `vn`;
|
|
||||||
DROP procedure IF EXISTS `zoneClosure_recalc`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `vn`$$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `zoneClosure_recalc`()
|
|
||||||
proc: BEGIN
|
|
||||||
/**
|
|
||||||
* Recalculates the delivery time (hour) for every zone in days + scope in future
|
|
||||||
*/
|
|
||||||
DECLARE vScope INT;
|
|
||||||
DECLARE vCounter INT DEFAULT 0;
|
|
||||||
DECLARE vShipped DATE DEFAULT CURDATE();
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
|
|
||||||
BEGIN
|
|
||||||
DO RELEASE_LOCK('vn.zoneClosure_recalc');
|
|
||||||
RESIGNAL;
|
|
||||||
END;
|
|
||||||
|
|
||||||
IF NOT GET_LOCK('vn.zoneClosure_recalc', 0) THEN
|
|
||||||
LEAVE proc;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
SELECT scope INTO vScope
|
|
||||||
FROM zoneConfig;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.zone;
|
|
||||||
CREATE TEMPORARY TABLE tmp.zone
|
|
||||||
(INDEX (id))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT id FROM zone;
|
|
||||||
|
|
||||||
TRUNCATE TABLE zoneClosure;
|
|
||||||
|
|
||||||
WHILE vCounter <= vScope DO
|
|
||||||
CALL zone_getOptionsForShipment(vShipped, TRUE);
|
|
||||||
INSERT INTO zoneClosure(zoneFk, dated, `hour`)
|
|
||||||
SELECT zoneFk, vShipped, `hour` FROM tmp.zoneOption;
|
|
||||||
|
|
||||||
SET vCounter = vCounter + 1;
|
|
||||||
SET vShipped = TIMESTAMPADD(DAY, 1, vShipped);
|
|
||||||
END WHILE;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tmp.zone;
|
|
||||||
DO RELEASE_LOCK('vn.zoneClosure_recalc');
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
|
@ -1,62 +0,0 @@
|
||||||
USE `vn`;
|
|
||||||
DROP procedure IF EXISTS `zone_doCalcInitialize`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `vn`$$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `zone_doCalcInitialize`()
|
|
||||||
proc: BEGIN
|
|
||||||
/**
|
|
||||||
* Initialize ticket
|
|
||||||
* si en 01-07-20 aun esta este proc, kkear
|
|
||||||
*/
|
|
||||||
DECLARE vDone BOOL;
|
|
||||||
DECLARE vTicketFk INT;
|
|
||||||
DECLARE vLanded DATE;
|
|
||||||
DECLARE vZoneFk INT;
|
|
||||||
|
|
||||||
DECLARE cCur CURSOR FOR
|
|
||||||
SELECT t.id, t.landed, t.zoneFk
|
|
||||||
FROM ticket t
|
|
||||||
WHERE (zonePrice IS NULL OR zoneBonus IS NULL)
|
|
||||||
AND landed >= '2019-01-01' AND shipped >= '2019-01-01'
|
|
||||||
GROUP BY landed, zoneFk;
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
|
||||||
SET vDone = TRUE;
|
|
||||||
|
|
||||||
OPEN cCur;
|
|
||||||
|
|
||||||
myLoop: LOOP
|
|
||||||
SET vDone = FALSE;
|
|
||||||
FETCH cCur INTO vTicketFk, vLanded, vZoneFk;
|
|
||||||
|
|
||||||
IF vDone THEN
|
|
||||||
LEAVE myLoop;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.zone;
|
|
||||||
CREATE TEMPORARY TABLE tmp.zone
|
|
||||||
(INDEX (id))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT vZoneFk id;
|
|
||||||
|
|
||||||
CALL zone_getOptionsForLanding(vLanded, TRUE);
|
|
||||||
|
|
||||||
UPDATE ticket t
|
|
||||||
LEFT JOIN tmp.zoneOption zo ON TRUE
|
|
||||||
SET zonePrice = zo.price, zoneBonus = zo.bonus
|
|
||||||
WHERE t.zoneFk = vZoneFk AND landed = vLanded;
|
|
||||||
|
|
||||||
UPDATE ticket t
|
|
||||||
LEFT JOIN vn.zone z ON z.id = t.zoneFk
|
|
||||||
SET zonePrice = z.price, zoneBonus = z.bonus
|
|
||||||
WHERE t.zonePrice IS NULL AND z.id = vZoneFk
|
|
||||||
AND landed >= '2019-01-01' AND shipped >= '2019-01-01';
|
|
||||||
|
|
||||||
END LOOP;
|
|
||||||
|
|
||||||
CLOSE cCur;
|
|
||||||
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
|
@ -1,30 +0,0 @@
|
||||||
USE `util`;
|
|
||||||
DROP procedure IF EXISTS `procNoOverlap`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `util`$$
|
|
||||||
CREATE PROCEDURE `procNoOverlap` (procName VARCHAR(255))
|
|
||||||
SQL SECURITY INVOKER
|
|
||||||
proc: BEGIN
|
|
||||||
/**
|
|
||||||
* call procedure without overlap
|
|
||||||
*/
|
|
||||||
DECLARE vIsChanged BOOL;
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
|
|
||||||
BEGIN
|
|
||||||
DO RELEASE_LOCK(procName);
|
|
||||||
RESIGNAL;
|
|
||||||
END;
|
|
||||||
|
|
||||||
IF !GET_LOCK(procName, 0) THEN
|
|
||||||
LEAVE proc;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL exec(CONCAT('CALL ', procName));
|
|
||||||
|
|
||||||
DO RELEASE_LOCK(procName);
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
|
|
|
@ -1,66 +0,0 @@
|
||||||
USE `vn`;
|
|
||||||
DROP procedure IF EXISTS `zone_getOptionsForLanding`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `vn`$$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `zone_getOptionsForLanding`(vLanded DATE, vShowExpiredZones BOOLEAN)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Gets computed options for the passed zones and delivery date.
|
|
||||||
*
|
|
||||||
* @table tmp.zones(id) The zones ids
|
|
||||||
* @param vLanded The delivery date
|
|
||||||
* @return tmp.zoneOption The computed options
|
|
||||||
*/
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.zoneOption;
|
|
||||||
CREATE TEMPORARY TABLE tmp.zoneOption
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT
|
|
||||||
zoneFk,
|
|
||||||
`hour`,
|
|
||||||
travelingDays,
|
|
||||||
price,
|
|
||||||
bonus,
|
|
||||||
TIMESTAMPADD(DAY, -travelingDays, vLanded) shipped
|
|
||||||
FROM (
|
|
||||||
SELECT t.id zoneFk,
|
|
||||||
TIME(IFNULL(e.`hour`, z.`hour`)) `hour`,
|
|
||||||
IFNULL(e.travelingDays, z.travelingDays) travelingDays,
|
|
||||||
IFNULL(e.price, z.price) price,
|
|
||||||
IFNULL(e.bonus, z.bonus) bonus
|
|
||||||
FROM tmp.zone t
|
|
||||||
JOIN zone z ON z.id = t.id
|
|
||||||
JOIN zoneEvent e ON e.zoneFk = t.id
|
|
||||||
WHERE (
|
|
||||||
e.`type` = 'day'
|
|
||||||
AND e.dated = vLanded
|
|
||||||
) OR (
|
|
||||||
e.`type` != 'day'
|
|
||||||
AND e.weekDays & (1 << WEEKDAY(vLanded))
|
|
||||||
AND (e.`started` IS NULL OR vLanded >= e.`started`)
|
|
||||||
AND (e.`ended` IS NULL OR vLanded <= e.`ended`)
|
|
||||||
)
|
|
||||||
ORDER BY
|
|
||||||
zoneFk,
|
|
||||||
CASE
|
|
||||||
WHEN e.`type` = 'day'
|
|
||||||
THEN 1
|
|
||||||
WHEN e.`type` = 'range'
|
|
||||||
THEN 2
|
|
||||||
ELSE 3
|
|
||||||
END
|
|
||||||
) t
|
|
||||||
GROUP BY zoneFk;
|
|
||||||
|
|
||||||
DELETE t FROM tmp.zoneOption t
|
|
||||||
JOIN zoneExclusion e
|
|
||||||
ON e.zoneFk = t.zoneFk AND e.`dated` = vLanded;
|
|
||||||
|
|
||||||
IF NOT vShowExpiredZones THEN
|
|
||||||
DELETE FROM tmp.zoneOption
|
|
||||||
WHERE shipped < CURDATE()
|
|
||||||
OR (shipped = CURDATE() AND CURTIME() > `hour`);
|
|
||||||
END IF;
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
|
@ -1,171 +0,0 @@
|
||||||
USE `vn`;
|
|
||||||
DROP procedure IF EXISTS `rutasAnalyze`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `vn`$$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `rutasAnalyze`(vYear INT, vMonth INT)
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
/* Analiza los costes de las rutas de reparto y lo almacena en la tabla Rutas_Master
|
|
||||||
*
|
|
||||||
* PAK 15/4/2019
|
|
||||||
*/
|
|
||||||
|
|
||||||
DELETE FROM bi.rutasBoard
|
|
||||||
WHERE year = vYear AND month = vMonth;
|
|
||||||
|
|
||||||
-- Rellenamos la tabla con los datos de las rutas VOLUMETRICAS, especialmente con los bultos "virtuales"
|
|
||||||
INSERT INTO bi.rutasBoard(year,
|
|
||||||
month,
|
|
||||||
warehouse_id,
|
|
||||||
Id_Ruta,
|
|
||||||
Id_Agencia,
|
|
||||||
km,
|
|
||||||
Dia,
|
|
||||||
Fecha,
|
|
||||||
Bultos,
|
|
||||||
Matricula,
|
|
||||||
Tipo,
|
|
||||||
Terceros)
|
|
||||||
SELECT YEAR(r.created),
|
|
||||||
MONTH(r.created),
|
|
||||||
GREATEST(1,a.warehouseFk),
|
|
||||||
r.id,
|
|
||||||
r.agencyModeFk,
|
|
||||||
r.kmEnd - r.kmStart,
|
|
||||||
DAYNAME(r.created),
|
|
||||||
r.created,
|
|
||||||
SUM(sv.volume / ebv.m3),
|
|
||||||
v.numberPlate,
|
|
||||||
IF(ISNULL(`r`.`cost`), 'P', 'A'),
|
|
||||||
r.cost
|
|
||||||
FROM vn.route r
|
|
||||||
JOIN vn.ticket t ON t.routeFk = r.id
|
|
||||||
LEFT JOIN vn.zone z ON z.id = t.zoneFk
|
|
||||||
LEFT JOIN vn.agencyMode am ON am.id = r.agencyModeFk
|
|
||||||
LEFT JOIN vn.agency a ON a.id = am.agencyFk
|
|
||||||
LEFT JOIN vn.vehicle v ON v.id = r.vehicleFk
|
|
||||||
JOIN vn.saleVolume sv ON sv.ticketFk = t.id
|
|
||||||
JOIN vn.expeditionBoxVol ebv ON ebv.boxFk = 71
|
|
||||||
WHERE YEAR(r.created) = vYear AND MONTH(r.created) = vMonth
|
|
||||||
AND z.isVolumetric
|
|
||||||
GROUP BY r.id;
|
|
||||||
|
|
||||||
-- Rellenamos la tabla con los datos de las rutas NO VOLUMETRICAS, especialmente con los bultos "virtuales"
|
|
||||||
INSERT INTO bi.rutasBoard(year,
|
|
||||||
month,
|
|
||||||
warehouse_id,
|
|
||||||
Id_Ruta,
|
|
||||||
Id_Agencia,
|
|
||||||
km,
|
|
||||||
Dia,
|
|
||||||
Fecha,
|
|
||||||
Bultos,
|
|
||||||
Matricula,
|
|
||||||
Tipo,
|
|
||||||
Terceros)
|
|
||||||
SELECT YEAR(r.created),
|
|
||||||
MONTH(r.created),
|
|
||||||
GREATEST(1,a.warehouseFk),
|
|
||||||
r.id,
|
|
||||||
r.agencyModeFk,
|
|
||||||
r.kmEnd - r.kmStart,
|
|
||||||
DAYNAME(r.created),
|
|
||||||
r.created,
|
|
||||||
SUM(t.packages),
|
|
||||||
v.numberPlate,
|
|
||||||
IF(ISNULL(`r`.`cost`), 'P', 'A'),
|
|
||||||
r.cost
|
|
||||||
FROM vn.route r
|
|
||||||
JOIN vn.ticket t ON t.routeFk = r.id
|
|
||||||
LEFT JOIN vn.zone z ON z.id = t.zoneFk
|
|
||||||
LEFT JOIN vn.agencyMode am ON am.id = r.agencyModeFk
|
|
||||||
LEFT JOIN vn.agency a ON a.id = am.agencyFk
|
|
||||||
LEFT JOIN vn.vehicle v ON v.id = r.vehicleFk
|
|
||||||
WHERE YEAR(r.created) = vYear AND MONTH(r.created) = vMonth
|
|
||||||
AND z.isVolumetric = FALSE
|
|
||||||
GROUP BY r.id
|
|
||||||
ON DUPLICATE KEY UPDATE Bultos = Bultos + VALUES(Bultos);
|
|
||||||
|
|
||||||
-- Coste REAL de cada bulto "virtual", de acuerdo con el valor apuntado a mano en la ruta
|
|
||||||
UPDATE bi.rutasBoard r
|
|
||||||
INNER JOIN vn2008.Rutas_Master rm ON rm.año = r.year AND rm.mes = r.month AND rm.warehouse_id = r.warehouse_id
|
|
||||||
SET r.coste_bulto = IF(r.Tipo ='A', r.Terceros, r.km * rm.coste_km ) / r.Bultos
|
|
||||||
WHERE r.Bultos > 0
|
|
||||||
AND rm.año = vYear
|
|
||||||
AND rm.mes = vMonth;
|
|
||||||
|
|
||||||
-- Coste PRACTICO de cada bulto, de acuerdo con los componentes de tipo AGENCIA en cada linea de venta
|
|
||||||
UPDATE bi.rutasBoard r
|
|
||||||
JOIN (
|
|
||||||
SELECT t.routeFk, sum(s.quantity * sc.value) practicoTotal
|
|
||||||
FROM vn.route r
|
|
||||||
JOIN vn.time tm ON tm.dated = r.created
|
|
||||||
JOIN vn.ticket t ON t.routeFk = r.id
|
|
||||||
JOIN vn.sale s ON s.ticketFk = t.id
|
|
||||||
JOIN vn.saleComponent sc ON sc.saleFk = s.id
|
|
||||||
JOIN vn.`component` c ON c.id = sc.componentFk
|
|
||||||
JOIN vn.componentType ct ON ct.id = c.typeFk
|
|
||||||
WHERE ct.type = 'agencia'
|
|
||||||
AND tm.year = vYear
|
|
||||||
AND tm.month = vMonth
|
|
||||||
GROUP BY r.id
|
|
||||||
) sub ON sub.routeFk = r.Id_Ruta
|
|
||||||
SET r.practico = sub.practicoTotal / r.Bultos;
|
|
||||||
|
|
||||||
-- Coste TEORICO de una caja "virtual" para cada ruta, teniendo en cuenta que hay carros, pallets, etc
|
|
||||||
UPDATE bi.rutasBoard r
|
|
||||||
JOIN (
|
|
||||||
SELECT t.routeFk,
|
|
||||||
SUM(t.zonePrice/ ebv.ratio)/ count(*) AS BultoTeoricoMedio
|
|
||||||
FROM vn.ticket t
|
|
||||||
JOIN vn.route r ON r.id = t.routeFk
|
|
||||||
JOIN vn.time tm ON tm.dated = r.created
|
|
||||||
JOIN vn.expedition e ON e.ticketFk = t.id
|
|
||||||
JOIN vn.expeditionBoxVol ebv ON ebv.boxFk = e.isBox
|
|
||||||
JOIN vn.address ad ON ad.id = t.addressFk
|
|
||||||
JOIN vn.client c ON c.id = ad.clientFk
|
|
||||||
LEFT JOIN vn.zone z ON z.id = t.zoneFk
|
|
||||||
WHERE tm.year = vYear
|
|
||||||
AND tm.month = vMonth
|
|
||||||
AND z.isVolumetric = FALSE
|
|
||||||
GROUP BY t.routeFk) sub ON r.Id_Ruta = sub.routeFk
|
|
||||||
SET r.teorico = sub.BultoTeoricoMedio;
|
|
||||||
|
|
||||||
-- Coste VOLUMETRICO TEORICO de una caja "virtual" para cada ruta
|
|
||||||
UPDATE bi.rutasBoard r
|
|
||||||
JOIN (
|
|
||||||
SELECT t.routeFk,
|
|
||||||
SUM(freight) AS BultoTeoricoMedio
|
|
||||||
FROM vn.ticket t
|
|
||||||
JOIN vn.route r ON r.id = t.routeFk
|
|
||||||
JOIN vn.time tm ON tm.dated = r.created
|
|
||||||
JOIN vn.saleVolume sf ON sf.ticketFk = t.id
|
|
||||||
JOIN vn.client c ON c.id = t.clientFk
|
|
||||||
JOIN vn.zone z ON z.id = t.zoneFk
|
|
||||||
WHERE tm.year = vYear
|
|
||||||
AND tm.month = vMonth
|
|
||||||
AND z.isVolumetric != FALSE
|
|
||||||
GROUP BY t.routeFk) sub ON r.Id_Ruta = sub.routeFk
|
|
||||||
SET r.teorico = sub.BultoTeoricoMedio / r.Bultos;
|
|
||||||
|
|
||||||
-- La diferencia entre el teorico y el practico se deberia de cobrar en greuges, cada noche
|
|
||||||
UPDATE bi.rutasBoard r
|
|
||||||
JOIN (
|
|
||||||
SELECT t.routeFk,
|
|
||||||
Sum(g.amount) AS greuge
|
|
||||||
FROM vn.ticket t
|
|
||||||
JOIN vn.route r ON r.id = t.routeFk
|
|
||||||
JOIN vn.time tm ON tm.dated = r.created
|
|
||||||
JOIN vn.greuge g ON g.ticketFk = t.id
|
|
||||||
JOIN vn.greugeType gt ON gt.id = g.greugeTypeFk
|
|
||||||
WHERE tm.year = vYear
|
|
||||||
AND tm.month = vMonth
|
|
||||||
AND gt.name = 'Diferencia portes'
|
|
||||||
GROUP BY t.routeFk) sub ON r.Id_Ruta = sub.routeFk
|
|
||||||
SET r.greuge = sub.greuge / r.Bultos;
|
|
||||||
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
USE `vn`;
|
|
||||||
CREATE
|
|
||||||
OR REPLACE ALGORITHM = UNDEFINED
|
|
||||||
DEFINER = `root`@`%`
|
|
||||||
SQL SECURITY DEFINER
|
|
||||||
VIEW `saleVolume` AS
|
|
||||||
SELECT
|
|
||||||
`s`.`ticketFk` AS `ticketFk`,
|
|
||||||
`s`.`id` AS `saleFk`,
|
|
||||||
IFNULL(ROUND(((((`i`.`compression` * (GREATEST(`i`.`density`, 167) / 167)) * `ic`.`cm3`) * `s`.`quantity`) / 1000),
|
|
||||||
2),
|
|
||||||
0) AS `litros`,
|
|
||||||
`t`.`routeFk` AS `routeFk`,
|
|
||||||
`t`.`shipped` AS `shipped`,
|
|
||||||
(((`s`.`quantity` * `ic`.`cm3`) * `i`.`compression`) / 1000000) AS `volume`,
|
|
||||||
((((`s`.`quantity` * `ic`.`cm3`) * `i`.`compression`) * (GREATEST(`i`.`density`, 167) / 167)) / 1000000) AS `physicalWeight`,
|
|
||||||
(((`s`.`quantity` * `ic`.`cm3`) * `i`.`density`) / 1000000) AS `weight`,
|
|
||||||
(((`s`.`quantity` * `ic`.`cm3`) * `i`.`compression`) / 1000000) AS `physicalVolume`,
|
|
||||||
((((`s`.`quantity` * `ic`.`cm3`) * `t`.`zonePrice`) * `i`.`compression`) / `cb`.`volume`) AS `freight`
|
|
||||||
FROM
|
|
||||||
((((`sale` `s`
|
|
||||||
JOIN `item` `i` ON ((`i`.`id` = `s`.`itemFk`)))
|
|
||||||
JOIN `ticket` `t` ON ((`t`.`id` = `s`.`ticketFk`)))
|
|
||||||
JOIN `packaging` `cb` ON ((`cb`.`id` = '94')))
|
|
||||||
JOIN `itemCost` `ic` ON (((`ic`.`itemFk` = `s`.`itemFk`)
|
|
||||||
AND (`ic`.`warehouseFk` = `t`.`warehouseFk`))));
|
|
|
@ -1,24 +0,0 @@
|
||||||
DROP VIEW IF EXISTS `vn`.`saleFreight` ;
|
|
||||||
USE `vn`;
|
|
||||||
CREATE
|
|
||||||
OR REPLACE ALGORITHM = UNDEFINED
|
|
||||||
DEFINER = `root`@`%`
|
|
||||||
SQL SECURITY DEFINER
|
|
||||||
VIEW `saleFreight__` AS
|
|
||||||
SELECT
|
|
||||||
`s`.`ticketFk` AS `ticketFk`,
|
|
||||||
`t`.`clientFk` AS `clientFk`,
|
|
||||||
`t`.`routeFk` AS `routeFk`,
|
|
||||||
`s`.`id` AS `saleFk`,
|
|
||||||
`t`.`zoneFk` AS `zoneFk`,
|
|
||||||
`t`.`companyFk` AS `companyFk`,
|
|
||||||
`t`.`shipped` AS `shipped`,
|
|
||||||
`t`.`zonePrice` AS `price`,
|
|
||||||
((((`s`.`quantity` * `r`.`cm3`) * `t`.`zonePrice`) * `i`.`compression`) / `cb`.`volume`) AS `freight`
|
|
||||||
FROM
|
|
||||||
((((`vn`.`sale` `s`
|
|
||||||
JOIN `vn`.`item` `i` ON ((`i`.`id` = `s`.`itemFk`)))
|
|
||||||
JOIN `vn`.`ticket` `t` ON ((`t`.`id` = `s`.`ticketFk`)))
|
|
||||||
JOIN `vn`.`packaging` `cb` ON ((`cb`.`id` = '94')))
|
|
||||||
JOIN `bi`.`rotacion` `r` ON (((`r`.`Id_Article` = `s`.`itemFk`)
|
|
||||||
AND (`r`.`warehouse_id` = `t`.`warehouseFk`))));
|
|
|
@ -1,43 +0,0 @@
|
||||||
USE `vn`;
|
|
||||||
DROP procedure IF EXISTS `zone_getShippedWarehouse`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `vn`$$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `zone_getShippedWarehouse`(vLanded DATE, vAddressFk INT, vAgencyModeFk INT)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Devuelve la mÃÂnima fecha de envío para cada warehouse
|
|
||||||
*
|
|
||||||
* @param vLanded La fecha de recepcion
|
|
||||||
* @param vAddressFk Id del consignatario
|
|
||||||
* @param vAgencyModeFk Id de la agencia
|
|
||||||
* @return tmp.zoneGetShipped
|
|
||||||
*/
|
|
||||||
|
|
||||||
CALL zone_getFromGeo(address_getGeo(vAddressFk));
|
|
||||||
CALL zone_getOptionsForLanding(vLanded,TRUE);
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.zoneGetShipped;
|
|
||||||
CREATE TEMPORARY TABLE tmp.zoneGetShipped
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT * FROM (
|
|
||||||
SELECT zo.zoneFk,
|
|
||||||
TIMESTAMPADD(DAY,-zo.travelingDays, vLanded) shipped,
|
|
||||||
zo.`hour`,
|
|
||||||
zw.warehouseFk,
|
|
||||||
z.agencyModeFk,
|
|
||||||
zo.price,
|
|
||||||
zo.bonus
|
|
||||||
FROM tmp.zoneOption zo
|
|
||||||
JOIN zoneWarehouse zw ON zw.zoneFk = zo.zoneFk
|
|
||||||
JOIN zone z ON z.id = zo.zoneFk
|
|
||||||
WHERE z.agencyModeFk = vAgencyModeFk
|
|
||||||
ORDER BY shipped) t
|
|
||||||
GROUP BY warehouseFk;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE
|
|
||||||
tmp.zone,
|
|
||||||
tmp.zoneOption;
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
|
@ -1,42 +0,0 @@
|
||||||
USE `vn`;
|
|
||||||
DROP procedure IF EXISTS `zone_getAgency`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `vn`$$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `zone_getAgency`(vAddress INT, vLanded DATE)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Devuelve el listado de agencias disponibles para la fecha
|
|
||||||
* y dirección pasadas.
|
|
||||||
*
|
|
||||||
* @param vAddress Id de dirección de envío, %NULL si es recogida
|
|
||||||
* @param vLanded Fecha de recogida
|
|
||||||
* @select Listado de agencias disponibles
|
|
||||||
*/
|
|
||||||
|
|
||||||
CALL zone_getFromGeo(address_getGeo(vAddress));
|
|
||||||
CALL zone_getOptionsForLanding(vLanded, FALSE);
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.zoneGetAgency;
|
|
||||||
CREATE TEMPORARY TABLE tmp.zoneGetAgency
|
|
||||||
(INDEX (agencyModeFk)) ENGINE = MEMORY
|
|
||||||
SELECT am.name agencyMode,
|
|
||||||
am.description,
|
|
||||||
z.agencyModeFk,
|
|
||||||
am.deliveryMethodFk,
|
|
||||||
TIMESTAMPADD(DAY,-zo.travelingDays, vLanded) shipped,
|
|
||||||
TRUE isIncluded,
|
|
||||||
zo.zoneFk
|
|
||||||
FROM tmp.zoneOption zo
|
|
||||||
JOIN zone z ON z.id = zo.zoneFk
|
|
||||||
JOIN agencyMode am ON am.id = z.agencyModeFk
|
|
||||||
GROUP BY agencyModeFk;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE
|
|
||||||
tmp.zone,
|
|
||||||
tmp.zoneOption;
|
|
||||||
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
USE `vn`;
|
|
||||||
DROP procedure IF EXISTS `zone_getAvailable`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `vn`$$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `zone_getAvailable`(vAddress INT, vLanded DATE)
|
|
||||||
BEGIN
|
|
||||||
CALL zone_getFromGeo(address_getGeo(vAddress));
|
|
||||||
CALL zone_getOptionsForLanding(vLanded, FALSE);
|
|
||||||
|
|
||||||
SELECT * FROM tmp.zoneOption;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE
|
|
||||||
tmp.zone,
|
|
||||||
tmp.zoneOption;
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
|
@ -1,41 +0,0 @@
|
||||||
USE `vn`;
|
|
||||||
DROP procedure IF EXISTS `zone_getWarehouse`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `vn`$$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `zone_getWarehouse`(vAddress INT, vLanded DATE, vWarehouse INT)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Devuelve el listado de agencias disponibles para la fecha,
|
|
||||||
* dirección y almacén pasados.
|
|
||||||
*
|
|
||||||
* @param vAddress
|
|
||||||
* @param vWarehouse warehouse
|
|
||||||
* @param vLanded Fecha de recogida
|
|
||||||
* @select Listado de agencias disponibles
|
|
||||||
*/
|
|
||||||
|
|
||||||
CALL zone_getFromGeo(address_getGeo(vAddress));
|
|
||||||
CALL zone_getOptionsForLanding(vLanded, FALSE);
|
|
||||||
|
|
||||||
SELECT am.id agencyModeFk,
|
|
||||||
am.name agencyMode,
|
|
||||||
am.description,
|
|
||||||
am.deliveryMethodFk,
|
|
||||||
TIMESTAMPADD(DAY, -zo.travelingDays, vLanded) shipped,
|
|
||||||
zw.warehouseFk,
|
|
||||||
z.id zoneFk
|
|
||||||
FROM tmp.zoneOption zo
|
|
||||||
JOIN zone z ON z.id = zo.zoneFk
|
|
||||||
JOIN agencyMode am ON am.id = z.agencyModeFk
|
|
||||||
JOIN zoneWarehouse zw ON zw.zoneFk = zo.zoneFk
|
|
||||||
WHERE zw.warehouseFk
|
|
||||||
GROUP BY z.agencyModeFk
|
|
||||||
ORDER BY agencyMode;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE
|
|
||||||
tmp.zone,
|
|
||||||
tmp.zoneOption;
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
|
@ -1 +0,0 @@
|
||||||
REPLACE INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) VALUES ('CustomsAgent', '*', '*', 'ALLOW', 'ROLE', 'employee');
|
|
|
@ -1,11 +0,0 @@
|
||||||
CREATE TABLE `vn`.`customsAgent` (
|
|
||||||
`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
|
||||||
`fiscalName` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
||||||
`street` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
|
||||||
`nif` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
||||||
`phone` varchar(16) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
|
||||||
`email` varchar(150) COLLATE utf8mb4_unicode_ci DEFAULT NULL
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
|
|
||||||
ALTER TABLE `vn`.`customsAgent`
|
|
||||||
ADD UNIQUE KEY `nif_UNIQUE` (`nif`);
|
|
|
@ -1,10 +0,0 @@
|
||||||
CREATE TABLE `vn`.`incoterms` (
|
|
||||||
`code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
||||||
`name` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Internacional Commercial Terms';
|
|
||||||
|
|
||||||
ALTER TABLE `vn`.`incoterms`
|
|
||||||
ADD PRIMARY KEY (`code`);
|
|
||||||
|
|
||||||
REPLACE INTO `vn`.`incoterms` (`code`, `name`) VALUES
|
|
||||||
('FAS', 'Free Alongside Ship');
|
|
|
@ -1,26 +0,0 @@
|
||||||
ALTER TABLE `vn`.`address`
|
|
||||||
ADD COLUMN `customsAgentFk` INT NULL DEFAULT NULL AFTER `isEqualizated`;
|
|
||||||
|
|
||||||
ALTER TABLE `vn`.`address`
|
|
||||||
ADD COLUMN `incotermsFk` VARCHAR(3) NULL DEFAULT NULL AFTER `customsAgentFk`;
|
|
||||||
|
|
||||||
|
|
||||||
ALTER TABLE `vn`.`address`
|
|
||||||
ADD INDEX `address_customsAgentFk_idx` (`customsAgentFk` ASC);
|
|
||||||
|
|
||||||
ALTER TABLE `vn`.`address`
|
|
||||||
ADD INDEX `address_incotermsFk_idx` (`incotermsFk` ASC);
|
|
||||||
|
|
||||||
ALTER TABLE `vn`.`address`
|
|
||||||
ADD CONSTRAINT `address_customsAgentFk`
|
|
||||||
FOREIGN KEY (`customsAgentFk`)
|
|
||||||
REFERENCES `vn`.`customsAgent` (`id`)
|
|
||||||
ON DELETE RESTRICT
|
|
||||||
ON UPDATE CASCADE;
|
|
||||||
|
|
||||||
ALTER TABLE `vn`.`address`
|
|
||||||
ADD CONSTRAINT `address_incotermsFk`
|
|
||||||
FOREIGN KEY (`incotermsFk`)
|
|
||||||
REFERENCES `vn`.`incoterms` (`code`)
|
|
||||||
ON DELETE RESTRICT
|
|
||||||
ON UPDATE CASCADE;
|
|
|
@ -1,5 +0,0 @@
|
||||||
ALTER TABLE `vn`.`ticketUpdateAction`
|
|
||||||
ADD COLUMN `code` VARCHAR(45) NOT NULL AFTER `description`;
|
|
||||||
|
|
||||||
UPDATE `vn`.`ticketUpdateAction` SET `code`='changePrice' WHERE `id`='1';
|
|
||||||
UPDATE `vn`.`ticketUpdateAction` SET `code`='turnInMana' WHERE `id`='3';
|
|
|
@ -1,2 +0,0 @@
|
||||||
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`)
|
|
||||||
VALUES ('Intrastat', '*', '*', 'ALLOW', 'ROLE', 'buyer');
|
|
|
@ -1,6 +0,0 @@
|
||||||
ALTER TABLE `vn`.`sample`
|
|
||||||
ADD COLUMN `hasPreview` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' AFTER `hasCompany`,
|
|
||||||
CHANGE COLUMN `isVisible` `isVisible` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' ,
|
|
||||||
CHANGE COLUMN `hasCompany` `hasCompany` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' ;
|
|
||||||
|
|
||||||
UPDATE `vn`.`sample` SET `hasPreview` = '0' WHERE (`id` = '14');
|
|
|
@ -1,2 +0,0 @@
|
||||||
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`)
|
|
||||||
VALUES ('EntryLog', '*', 'READ', 'ALLOW', 'ROLE', 'buyer');
|
|
|
@ -1,4 +0,0 @@
|
||||||
ALTER TABLE `vn`.`workerDocument`
|
|
||||||
ADD COLUMN `isReadableByWorker` TINYINT(1) NOT NULL DEFAULT 0 AFTER `document`;
|
|
||||||
|
|
||||||
UPDATE `vn`.`workerDocument` SET `isReadableByWorker` = '1' WHERE (`id` = '1');
|
|
|
@ -1,182 +0,0 @@
|
||||||
|
|
||||||
DROP procedure IF EXISTS `vn`.`workerTimeControl_check`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`workerTimeControl_check`(vUserFk INT, vTabletFk VARCHAR(100), vTimed DATETIME)
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Verifica si el empleado puede fichar en el momento actual, si puede fichar llama a vn.workerTimeControlAdd
|
|
||||||
* @param vUserFk Identificador del trabajador
|
|
||||||
* @return Retorna si encuentra un problema 'odd','maxTimeWork','breakDay','breakWeek' ;
|
|
||||||
* En caso de tener algun problema retorna el primero que encuentra
|
|
||||||
*/
|
|
||||||
DECLARE vLastIn DATETIME ;
|
|
||||||
DECLARE vLastOut DATETIME ;
|
|
||||||
DECLARE vDayWorkMax INT;
|
|
||||||
DECLARE vDayBreak INT;
|
|
||||||
DECLARE vWeekBreak INT ;
|
|
||||||
DECLARE vWeekMaxBreak INT;
|
|
||||||
DECLARE vWeekScope INT;
|
|
||||||
DECLARE vWeekMaxScope INT;
|
|
||||||
DECLARE vDayStayMax INT;
|
|
||||||
DECLARE vAskInOut INT;
|
|
||||||
DECLARE vTimedWorked INT;
|
|
||||||
DECLARE vCalendarStateType VARCHAR(20) DEFAULT NULL;
|
|
||||||
DECLARE vDepartmentFk INT;
|
|
||||||
DECLARE vTo VARCHAR(50) DEFAULT NULL;
|
|
||||||
DECLARE vUserName VARCHAR(50) DEFAULT NULL;
|
|
||||||
DECLARE vBody VARCHAR(255) DEFAULT NULL;
|
|
||||||
|
|
||||||
IF (vTimed IS NULL) THEN
|
|
||||||
SET vTimed = NOW();
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
SELECT dayBreak, weekBreak, weekScope, dayWorkMax, dayStayMax, weekMaxBreak, weekMaxScope, askInOut
|
|
||||||
INTO vDayBreak, vWeekBreak, vWeekScope, vDayWorkMax, vDayStayMax, vWeekMaxBreak, vWeekMaxScope, vAskInOut
|
|
||||||
FROM vn.workerTimeControlParams;
|
|
||||||
|
|
||||||
SELECT MAX(timed) INTO vLastIn
|
|
||||||
FROM vn.workerTimeControl
|
|
||||||
WHERE userFk = vUserFk AND
|
|
||||||
direction = 'in';
|
|
||||||
|
|
||||||
SELECT MAX(timed) INTO vLastOut
|
|
||||||
FROM vn.workerTimeControl
|
|
||||||
WHERE userFk = vUserFk AND
|
|
||||||
direction = 'out';
|
|
||||||
|
|
||||||
SELECT email INTO vTo
|
|
||||||
FROM vn.worker w
|
|
||||||
WHERE w.id = (SELECT bossFk FROM vn.worker WHERE id = vUserFk);
|
|
||||||
|
|
||||||
SELECT CONCAT(firstName,' ',lastName) INTO vUserName
|
|
||||||
FROM vn.worker w
|
|
||||||
WHERE w.id = vUserFk;
|
|
||||||
|
|
||||||
-- VERIFICAR CONTRATO EN VIGOR
|
|
||||||
IF (SELECT COUNT(*)
|
|
||||||
FROM postgresql.business b
|
|
||||||
JOIN postgresql.profile pr ON pr.profile_id = b.client_id
|
|
||||||
JOIN postgresql.person p ON p.person_id = pr.person_id
|
|
||||||
JOIN vn.worker w ON w.id = p.id_trabajador
|
|
||||||
WHERE w.userFk = vUserFk AND
|
|
||||||
b.date_start <= CURDATE() AND
|
|
||||||
IFNULL(b.date_end,CURDATE()) >= CURDATE()
|
|
||||||
) = 0 THEN
|
|
||||||
-- ENVIAMOS CORREO AL BOSSFK
|
|
||||||
SELECT CONCAT(vUserName,' No ha podido fichar por el siguiente problema: ',"No hay un contrato en vigor") INTO vBody;
|
|
||||||
CALL vn.mail_insert(vTo,vTo,'error al fichar',vBody);
|
|
||||||
CALL util.throw("No hay un contrato en vigor");
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
-- VERIFICAR DEPARTAMENTO
|
|
||||||
IF vTabletFk IS NOT NULL THEN
|
|
||||||
IF ( SELECT COUNT(*)
|
|
||||||
FROM vn.tabletDepartment td
|
|
||||||
JOIN vn.workerTimeControlUserInfo wtcu ON wtcu.departmentFk = td.departmentFk
|
|
||||||
WHERE td.tabletFk = vTabletFk AND wtcu.userFk = vUserFk
|
|
||||||
) = 0 THEN
|
|
||||||
-- ENVIAMOS CORREO AL BOSSFK
|
|
||||||
SELECT CONCAT(vUserName,' No ha podido fichar por el siguiente problema: ',"No perteneces a este departamento.") INTO vBody;
|
|
||||||
CALL vn.mail_insert(vTo,vTo,'error al fichar',vBody);
|
|
||||||
CALL util.throw("No perteneces a este departamento.");
|
|
||||||
END IF;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
SELECT IFNULL(dayBreak, vDayBreak) INTO vDayBreak
|
|
||||||
FROM postgresql.business b
|
|
||||||
JOIN postgresql.profile pr ON pr.profile_id = b.client_id
|
|
||||||
JOIN postgresql.person p ON p.person_id = pr.person_id
|
|
||||||
JOIN postgresql. business_labour bl ON b.business_id = bl.business_id
|
|
||||||
JOIN postgresql.professional_category pc ON bl.professional_category_id = pc.professional_category_id
|
|
||||||
WHERE p.id_trabajador = vUserFk AND
|
|
||||||
b.date_start <= DATE(vTimed) AND
|
|
||||||
IFNULL(b.date_end, DATE(vTimed)) >= DATE(vTimed);
|
|
||||||
-- VERIFICAR DESCANSO DIARIO
|
|
||||||
-- 12 / 9 horas dependiendo del valor de vDayBreak
|
|
||||||
IF UNIX_TIMESTAMP(vTimed) - UNIX_TIMESTAMP(vLastOut) < vDayBreak THEN
|
|
||||||
-- ENVIAMOS CORREO AL BOSSFK
|
|
||||||
SELECT CONCAT(vUserName,' No ha podido fichar por el siguiente problema: ',"Descansos ", FORMAT(vDayBreak/3600,0) ," h") INTO vBody;
|
|
||||||
CALL vn.mail_insert(vTo,vTo,'error al fichar',vBody);
|
|
||||||
CALL util.throw(CONCAT("Descansos ", FORMAT(vDayBreak/3600,0) ," h"));
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
-- VERIFICAR FICHADAS IMPARES DEL ÚLTIMO DÃÂÂA QUE SE FICHÓ
|
|
||||||
IF (SELECT MOD(COUNT(*),2) -- <>0
|
|
||||||
FROM vn.workerTimeControl
|
|
||||||
WHERE userFk = vUserFk AND
|
|
||||||
timed >= vLastIn
|
|
||||||
) THEN
|
|
||||||
-- ENVIAMOS CORREO AL BOSSFK
|
|
||||||
SELECT CONCAT(vUserName,' No ha podido fichar por el siguiente problema: ',"Dias con fichadas impares") INTO vBody;
|
|
||||||
CALL vn.mail_insert(vTo,vTo,'error al fichar',vBody);
|
|
||||||
CALL util.throw("Dias con fichadas impares");
|
|
||||||
END IF;
|
|
||||||
-- VERIFICAR VACACIONES
|
|
||||||
SELECT cs.type INTO vCalendarStateType
|
|
||||||
FROM postgresql.calendar_employee ce
|
|
||||||
JOIN postgresql.business b USING(business_id)
|
|
||||||
JOIN postgresql.profile pr ON pr.profile_id = b.client_id
|
|
||||||
JOIN postgresql.person p ON p.person_id = pr.person_id
|
|
||||||
JOIN postgresql.calendar_state cs USING(calendar_state_id)
|
|
||||||
JOIN vn.worker w ON w.id = p.id_trabajador
|
|
||||||
WHERE ce.date = CURDATE() AND
|
|
||||||
cs.isAllowedToWork = FALSE AND
|
|
||||||
w.userFk = vUserFk
|
|
||||||
LIMIT 1;
|
|
||||||
|
|
||||||
IF(LENGTH(vCalendarStateType)) THEN
|
|
||||||
-- ENVIAMOS CORREO AL BOSSFK
|
|
||||||
SELECT CONCAT(vUserName,' No ha podido fichar por el siguiente problema: ',"Vacaciones") INTO vBody;
|
|
||||||
CALL vn.mail_insert(vTo,vTo,'error al fichar',vBody);
|
|
||||||
CALL util.throw(vCalendarStateType);
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
-- VERIFICAR DESCANSO SEMANAL
|
|
||||||
SET @vHasBreakWeek:= FALSE;
|
|
||||||
SET @vLastTimed:= UNIX_TIMESTAMP((vTimed - INTERVAL vWeekScope SECOND));
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.trash;
|
|
||||||
CREATE TEMPORARY TABLE tmp.trash
|
|
||||||
SELECT IF(vWeekBreak-(UNIX_TIMESTAMP(timed)-@vLastTimed) <= 0, @vHasBreakWeek:=TRUE, TRUE) alias,
|
|
||||||
@vLastTimed:= UNIX_TIMESTAMP(timed)
|
|
||||||
FROM workerTimeControl
|
|
||||||
WHERE timed>= (vTimed - INTERVAL vWeekScope SECOND) AND
|
|
||||||
userFk= vUserFk AND
|
|
||||||
direction IN ('in','out')
|
|
||||||
ORDER BY timed ASC;
|
|
||||||
|
|
||||||
IF UNIX_TIMESTAMP(vTimed) - UNIX_TIMESTAMP(vLastOut) < vWeekBreak AND @vHasBreakWeek = FALSE THEN -- REVISA SI EL DESCANSO SE HA REALIZADO DESPUÉS DE LA ÚLTIMA FICHADA
|
|
||||||
SET @vHasBreakWeek:= FALSE;
|
|
||||||
SET @vLastTimed:= UNIX_TIMESTAMP((vTimed - INTERVAL vWeekMaxScope SECOND));
|
|
||||||
DROP TEMPORARY TABLE tmp.trash;
|
|
||||||
CREATE TEMPORARY TABLE tmp.trash
|
|
||||||
SELECT IF(vWeekMaxBreak-(UNIX_TIMESTAMP(timed)-@vLastTimed) <= 0, @vHasBreakWeek:=TRUE, TRUE) alias,
|
|
||||||
@vLastTimed:= UNIX_TIMESTAMP(timed)
|
|
||||||
FROM workerTimeControl
|
|
||||||
WHERE timed>= (vTimed - INTERVAL vWeekMaxScope SECOND) AND
|
|
||||||
userFk= vUserFk AND
|
|
||||||
direction IN ('in','out')
|
|
||||||
ORDER BY timed ASC;
|
|
||||||
IF UNIX_TIMESTAMP(vTimed) - UNIX_TIMESTAMP(vLastOut) < vWeekMaxBreak AND @vHasBreakWeek = FALSE THEN -- REVISA SI EL DESCANSO SE HA REALIZADO DESPUÉS DE LA ÚLTIMA FICHADA
|
|
||||||
-- ENVIAMOS CORREO AL BOSSFK
|
|
||||||
SELECT CONCAT(vUserName,' No ha podido fichar por el siguiente problema: ',"Descansos ", FORMAT(vWeekMaxBreak/3600,0) ," h") INTO vBody;
|
|
||||||
CALL vn.mail_insert(vTo,vTo,'error al fichar',vBody);
|
|
||||||
CALL util.throw(CONCAT( "Descansos ", FORMAT(vWeekMaxBreak/3600,0) ," h"));
|
|
||||||
END IF;
|
|
||||||
-- ENVIAMOS CORREO AL BOSSFK
|
|
||||||
SELECT CONCAT(vUserName,' No ha podido fichar por el siguiente problema: ',"Descansos ", FORMAT(vWeekBreak/3600,0) ," h") INTO vBody;
|
|
||||||
CALL vn.mail_insert(vTo,vTo,'error al fichar',vBody);
|
|
||||||
CALL util.warn(CONCAT( "Descansos ", FORMAT(vWeekBreak/3600,0) ," h"));
|
|
||||||
END IF;
|
|
||||||
DROP TEMPORARY TABLE tmp.trash;
|
|
||||||
|
|
||||||
-- Preguntar dirección de la fichada
|
|
||||||
IF UNIX_TIMESTAMP(vTimed) - UNIX_TIMESTAMP(vLastIn) >= vAskInOut AND (SELECT MOD(COUNT(*),2)
|
|
||||||
FROM vn.workerTimeControl WHERE userFk = vUserFk AND timed >= vLastIn) THEN
|
|
||||||
CALL util.warn("AskInOut");
|
|
||||||
END IF ;
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
|
@ -1 +0,0 @@
|
||||||
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) VALUES ('WorkerLog', '*', 'READ', 'ALLOW', 'ROLE', 'hr');
|
|
|
@ -1,6 +0,0 @@
|
||||||
ALTER TABLE `vn`.`workerLog`
|
|
||||||
ADD COLUMN `changedModel` VARCHAR(45) NULL DEFAULT NULL AFTER `description`,
|
|
||||||
ADD COLUMN `oldInstance` text CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
|
||||||
ADD COLUMN `newInstance` text CHARACTER SET utf8 COLLATE utf8_unicode_ci,
|
|
||||||
ADD COLUMN `changedModelId` int(11) DEFAULT NULL,
|
|
||||||
ADD COLUMN `changedModelValue` varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL;
|
|
|
@ -1,108 +0,0 @@
|
||||||
DROP procedure IF EXISTS `vn`.`collectionPlacement_get`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`collectionPlacement_get`(vCollectionFk INT)
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
DECLARE vCalcFk INT;
|
|
||||||
DECLARE vWarehouseFk INT;
|
|
||||||
DECLARE vWarehouseAliasFk INT;
|
|
||||||
|
|
||||||
SELECT t.warehouseFk, w.aliasFk
|
|
||||||
INTO vWarehouseFk, vWarehouseAliasFk
|
|
||||||
FROM vn.ticket t
|
|
||||||
JOIN vn.ticketCollection tc ON tc.ticketFk = t.id
|
|
||||||
JOIN vn.warehouse w ON w.id = t.warehouseFk
|
|
||||||
WHERE tc.collectionFk = vCollectionFk
|
|
||||||
LIMIT 1;
|
|
||||||
|
|
||||||
CALL cache.visible_refresh(vCalcFk,FALSE,vWarehouseFk);
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.parked;
|
|
||||||
CREATE TEMPORARY TABLE tmp.parked
|
|
||||||
ENGINE MEMORY
|
|
||||||
SELECT s.itemFk, 0 as quantity
|
|
||||||
FROM vn.ticketCollection tc
|
|
||||||
JOIN vn.sale s ON s.ticketFk = tc.ticketFk
|
|
||||||
WHERE tc.collectionFk = vCollectionFk;
|
|
||||||
|
|
||||||
UPDATE tmp.parked pk
|
|
||||||
JOIN ( SELECT itemFk, sum(visible) as visible
|
|
||||||
FROM vn.itemShelvingStock iss
|
|
||||||
JOIN vn.warehouse w ON w.id = iss.warehouseFk
|
|
||||||
WHERE w.aliasFk = vWarehouseAliasFk
|
|
||||||
GROUP BY iss.itemFk ) iss ON iss.itemFk = pk.itemFk
|
|
||||||
SET pk.quantity = iss.visible;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.`grouping`;
|
|
||||||
CREATE TEMPORARY TABLE tmp.`grouping`
|
|
||||||
ENGINE MEMORY
|
|
||||||
SELECT itemFk, `grouping`
|
|
||||||
FROM (
|
|
||||||
SELECT itemFk,
|
|
||||||
CASE groupingMode
|
|
||||||
WHEN 0 THEN 1
|
|
||||||
WHEN 2 THEN packing
|
|
||||||
ELSE `grouping`
|
|
||||||
END AS `grouping`
|
|
||||||
FROM buy b
|
|
||||||
JOIN entry e ON e.id = b.entryFk
|
|
||||||
JOIN travel tr ON tr.id = e.travelFk
|
|
||||||
WHERE tr.warehouseInFk = vWarehouseFk
|
|
||||||
AND landed BETWEEN (SELECT inventoried FROM vn.config LIMIT 1) AND CURDATE()
|
|
||||||
AND b.isIgnored = FALSE
|
|
||||||
ORDER BY tr.landed DESC
|
|
||||||
) sub
|
|
||||||
GROUP BY sub.itemFk ;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.grouping2;
|
|
||||||
CREATE TEMPORARY TABLE tmp.grouping2
|
|
||||||
ENGINE MEMORY
|
|
||||||
SELECT * FROM tmp.`grouping`;
|
|
||||||
|
|
||||||
|
|
||||||
SELECT s.id as saleFk, s.itemFk,
|
|
||||||
p.code COLLATE utf8_general_ci as placement ,
|
|
||||||
sh.code COLLATE utf8_general_ci as shelving,
|
|
||||||
ish.created,
|
|
||||||
ish.visible,
|
|
||||||
0 as `order`,
|
|
||||||
IF(sc.isPreviousPreparedByPacking, ish.packing, g.`grouping`) as `grouping`
|
|
||||||
FROM vn.ticketCollection tc
|
|
||||||
JOIN vn.sale s ON s.ticketFk = tc.ticketFk
|
|
||||||
JOIN vn.itemShelving ish ON ish.itemFk = s.itemFk
|
|
||||||
JOIN vn.shelving sh ON sh.code = ish.shelvingFk
|
|
||||||
JOIN vn.parking p ON p.id = sh.parkingFk
|
|
||||||
JOIN vn.sector sc ON sc.id = p.sectorFk
|
|
||||||
JOIN vn.warehouse w ON w.id = sc.warehouseFk
|
|
||||||
JOIN tmp.`grouping` g ON g.itemFk = s.itemFk
|
|
||||||
WHERE tc.collectionFk = vCollectionFk
|
|
||||||
AND w.aliasFk = vWarehouseAliasFk
|
|
||||||
AND ish.visible > 0
|
|
||||||
UNION ALL
|
|
||||||
SELECT s.id as saleFk, s.itemFk,
|
|
||||||
ip.code COLLATE utf8_general_ci as placement,
|
|
||||||
'' COLLATE latin1_general_ci as shelving,
|
|
||||||
modificationDate as created,
|
|
||||||
v.visible - p.quantity as visible,
|
|
||||||
0 as `order`,
|
|
||||||
g.`grouping`
|
|
||||||
FROM vn.ticketCollection tc
|
|
||||||
JOIN vn.sale s ON s.ticketFk = tc.ticketFk
|
|
||||||
JOIN vn.itemPlacement ip ON ip.itemFk = s.itemFk AND ip.warehouseFk = vWarehouseFk
|
|
||||||
JOIN tmp.parked p ON p.itemFk = s.itemFk
|
|
||||||
JOIN cache.visible v ON v.item_id = s.itemFk AND v.calc_id = vCalcFk
|
|
||||||
LEFT JOIN tmp.grouping2 g ON g.itemFk = s.itemFk
|
|
||||||
WHERE tc.collectionFk = vCollectionFk
|
|
||||||
AND v.visible - p.quantity > 0;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE
|
|
||||||
tmp.parked,
|
|
||||||
tmp.`grouping`,
|
|
||||||
tmp.grouping2;
|
|
||||||
END
|
|
||||||
|
|
||||||
|
|
||||||
$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
|
@ -1,39 +0,0 @@
|
||||||
DROP procedure IF EXISTS `vn`.`collection_faults`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`collection_faults`(
|
|
||||||
vShelvingFk VARCHAR(10),
|
|
||||||
vQuantity INT,
|
|
||||||
vItemFk INT)
|
|
||||||
BEGIN
|
|
||||||
DECLARE vQuantityTotal INT DEFAULT 0;
|
|
||||||
DECLARE vshelve VARCHAR(2);
|
|
||||||
DECLARE vdeep INT(11);
|
|
||||||
DECLARE vpriority INT(11);
|
|
||||||
DECLARE vgrouping SMALLINT(5);
|
|
||||||
DECLARE vpacking INT(11);
|
|
||||||
DECLARE vpackagingFk VARCHAR(10);
|
|
||||||
DECLARE vlevel VARCHAR(45);
|
|
||||||
DECLARE vuserFk INT(10);
|
|
||||||
|
|
||||||
|
|
||||||
SELECT SUM(quantity),shelve,deep,priority,`grouping`,packing,packagingFk,`level`,userFk
|
|
||||||
INTO vQuantityTotal,vshelve,vdeep,vpriority,vgrouping,vpacking,vpackagingFk,vlevel,vuserFk
|
|
||||||
FROM vn.itemShelving
|
|
||||||
WHERE shelvingFk = vShelvingFk COLLATE utf8mb4_unicode_ci AND itemFk = vItemFk
|
|
||||||
GROUP BY itemFk;
|
|
||||||
|
|
||||||
SELECT vQuantityTotal - vQuantity INTO vQuantityTotal;
|
|
||||||
|
|
||||||
DELETE FROM vn.itemShelving WHERE shelvingFk = vShelvingFk COLLATE utf8mb4_unicode_ci AND itemFk = vItemFk;
|
|
||||||
|
|
||||||
INSERT INTO vn.itemShelving (itemFk, shelvingFk,shelve,deep,quantity,visible,available,priority,`grouping`,packing,packagingFk,`level`,userFk )
|
|
||||||
VALUES (vItemFk,vShelvingFk,vshelve,vdeep,vQuantityTotal,vQuantityTotal,vQuantityTotal,vpriority,vgrouping,vpacking,vpackagingFk,vlevel,vuserFk );
|
|
||||||
|
|
||||||
SELECT * FROM vn.itemShelving
|
|
||||||
WHERE shelvingFk = vShelvingFk COLLATE utf8mb4_unicode_ci AND itemFk = vItemFk;
|
|
||||||
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
|
@ -1,42 +0,0 @@
|
||||||
DROP procedure IF EXISTS `vn`.`collection_updateSale`;
|
|
||||||
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`collection_updateSale`(
|
|
||||||
vSaleFk INT,
|
|
||||||
vOriginalQuantity INT,
|
|
||||||
vWorkerFk INT,
|
|
||||||
vStateFk INT,
|
|
||||||
vTicketFk INT)
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
DECLARE vNumPrepared INT;
|
|
||||||
DECLARE vNumTotal INT;
|
|
||||||
|
|
||||||
REPLACE INTO vn.saleTracking(saleFk,isChecked, originalQuantity, workerFk, actionFk,stateFk)
|
|
||||||
VALUES(vSaleFk,1,vOriginalQuantity,vWorkerFk,vStateFk,vStateFk);
|
|
||||||
|
|
||||||
UPDATE vn.sale SET isPicked = 1
|
|
||||||
WHERE id = vSaleFk;
|
|
||||||
|
|
||||||
SELECT COUNT(s.id) INTO vNumPrepared
|
|
||||||
FROM vn.sale s
|
|
||||||
WHERE s.ticketFk = vTicketFk AND s.isPicked = 1;
|
|
||||||
|
|
||||||
SELECT COUNT(s.id) INTO vNumTotal
|
|
||||||
FROM vn.sale s
|
|
||||||
WHERE s.ticketFk = vTicketFk;
|
|
||||||
|
|
||||||
IF vNumPrepared = vNumTotal THEN
|
|
||||||
|
|
||||||
INSERT INTO vncontrol.inter
|
|
||||||
SET state_id = vStateFk, Id_Ticket = vTicketFk, Id_Trabajador = vWorkerFk;
|
|
||||||
|
|
||||||
CALL vn.collection_update(vTicketFk);
|
|
||||||
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
|
@ -1,13 +0,0 @@
|
||||||
/*DROP view IF EXISTS `vn`.`coolerPathDetail`;
|
|
||||||
|
|
||||||
CREATE
|
|
||||||
ALGORITHM = UNDEFINED
|
|
||||||
DEFINER = `root`@`%`
|
|
||||||
SQL SECURITY DEFINER
|
|
||||||
VIEW `vn`.`coolerPathDetail` AS
|
|
||||||
SELECT
|
|
||||||
`c`.`cooler_path_detail_id` AS `id`,
|
|
||||||
`c`.`cooler_path_id` AS `coolerPathFk`,
|
|
||||||
`c`.`pasillo` AS `hallway`
|
|
||||||
FROM
|
|
||||||
`vn2008`.`cooler_path_detail` `c`*/
|
|
|
@ -1,15 +0,0 @@
|
||||||
DROP procedure IF EXISTS `vn`.`sale_updateOriginalQuantity`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`sale_updateOriginalQuantity`(vSale INT, vQuantity INT)
|
|
||||||
proc: BEGIN
|
|
||||||
|
|
||||||
UPDATE vn.sale SET originalQuantity = vQuantity
|
|
||||||
WHERE id = vSale;
|
|
||||||
|
|
||||||
SELECT * FROM vn.sale WHERE id = vSale;
|
|
||||||
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
|
@ -1,14 +0,0 @@
|
||||||
DROP procedure IF EXISTS `vn`.`sector_getWarehouse`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`sector_getWarehouse`(vSectorFk INT)
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
SELECT s.warehouseFk
|
|
||||||
FROM vn.sector s
|
|
||||||
WHERE s.id = vSectorFk;
|
|
||||||
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
|
@ -69,8 +69,7 @@ module.exports = Self => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
}, {
|
||||||
{
|
|
||||||
relation: 'address',
|
relation: 'address',
|
||||||
scope: {
|
scope: {
|
||||||
fields: ['street', 'city', 'provinceFk', 'phone', 'mobile'],
|
fields: ['street', 'city', 'provinceFk', 'phone', 'mobile'],
|
||||||
|
@ -81,8 +80,7 @@ module.exports = Self => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
}, {
|
||||||
{
|
|
||||||
relation: 'notes',
|
relation: 'notes',
|
||||||
scope: {
|
scope: {
|
||||||
fields: ['id', 'observationTypeFk', 'description'],
|
fields: ['id', 'observationTypeFk', 'description'],
|
||||||
|
@ -91,8 +89,7 @@ module.exports = Self => {
|
||||||
fields: ['description']
|
fields: ['description']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
}, {
|
||||||
{
|
|
||||||
relation: 'state',
|
relation: 'state',
|
||||||
scope: {
|
scope: {
|
||||||
fields: ['stateFk'],
|
fields: ['stateFk'],
|
||||||
|
@ -101,6 +98,11 @@ module.exports = Self => {
|
||||||
fields: ['name']
|
fields: ['name']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}, {
|
||||||
|
relation: 'invoiceOut',
|
||||||
|
scope: {
|
||||||
|
fields: ['id']
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
where: {id: ticketFk}
|
where: {id: ticketFk}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
"name": "Tickets",
|
"name": "Tickets",
|
||||||
"icon": "icon-ticket",
|
"icon": "icon-ticket",
|
||||||
"validations": true,
|
"validations": true,
|
||||||
"dependencies": ["worker", "item", "client", "route"],
|
"dependencies": ["worker", "item", "client", "route", "invoiceOut"],
|
||||||
"menus": {
|
"menus": {
|
||||||
"main": [
|
"main": [
|
||||||
{"state": "ticket.index", "icon": "icon-ticket"},
|
{"state": "ticket.index", "icon": "icon-ticket"},
|
||||||
|
|
|
@ -37,8 +37,12 @@
|
||||||
{{$ctrl.summary.routeFk}}
|
{{$ctrl.summary.routeFk}}
|
||||||
</span>
|
</span>
|
||||||
</vn-label-value>
|
</vn-label-value>
|
||||||
<vn-label-value label="Invoice"
|
<vn-label-value label="Invoice">
|
||||||
value="{{$ctrl.summary.refFk}}">
|
<span
|
||||||
|
ng-class="{link: $ctrl.summary.refFk}"
|
||||||
|
ng-click="$ctrl.showInvoiceOutDescriptor($event, $ctrl.summary.refFk)">
|
||||||
|
{{$ctrl.summary.refFk | dashIfEmpty}}
|
||||||
|
</span>
|
||||||
</vn-label-value>
|
</vn-label-value>
|
||||||
</vn-one>
|
</vn-one>
|
||||||
<vn-one>
|
<vn-one>
|
||||||
|
@ -235,3 +239,6 @@
|
||||||
vn-id="descriptor"
|
vn-id="descriptor"
|
||||||
quicklinks="$ctrl.quicklinks">
|
quicklinks="$ctrl.quicklinks">
|
||||||
</vn-item-descriptor-popover>
|
</vn-item-descriptor-popover>
|
||||||
|
<vn-invoice-out-descriptor-popover
|
||||||
|
vn-id="invoice-out-descriptor">
|
||||||
|
</vn-invoice-out-descriptor-popover>
|
|
@ -44,6 +44,13 @@ class Controller extends Section {
|
||||||
this.$.routeDescriptor.show();
|
this.$.routeDescriptor.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
showInvoiceOutDescriptor(event, refFk) {
|
||||||
|
if (!refFk) return;
|
||||||
|
this.$.invoiceOutDescriptor.invoiceOutId = this.summary.invoiceOut.id;
|
||||||
|
this.$.invoiceOutDescriptor.parent = event.target;
|
||||||
|
this.$.invoiceOutDescriptor.show();
|
||||||
|
}
|
||||||
|
|
||||||
showDescriptor(event, sale) {
|
showDescriptor(event, sale) {
|
||||||
this.quicklinks = {
|
this.quicklinks = {
|
||||||
btnThree: {
|
btnThree: {
|
||||||
|
|
Loading…
Reference in New Issue