export_database
gitea/salix/pipeline/head This commit looks good
Details
gitea/salix/pipeline/head This commit looks good
Details
This commit is contained in:
parent
11b908668d
commit
9c4e46f363
|
@ -1,18 +0,0 @@
|
||||||
CREATE TABLE `vn`.`invoiceInLog` (
|
|
||||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`originFk` MEDIUMINT UNSIGNED NOT NULL,
|
|
||||||
`userFk` int(10) unsigned DEFAULT NULL,
|
|
||||||
`action` set('insert','update','delete') COLLATE utf8_unicode_ci NOT NULL,
|
|
||||||
`creationDate` timestamp NULL DEFAULT current_timestamp(),
|
|
||||||
`description` text CHARACTER SET utf8 DEFAULT NULL,
|
|
||||||
`changedModel` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
||||||
`oldInstance` text COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
||||||
`newInstance` text COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
||||||
`changedModelId` int(11) DEFAULT NULL,
|
|
||||||
`changedModelValue` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
KEY `originFk` (`originFk`),
|
|
||||||
KEY `userFk` (`userFk`),
|
|
||||||
CONSTRAINT `invoiceInLog_ibfk_1` FOREIGN KEY (`originFk`) REFERENCES `vn`.`invoiceIn` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
||||||
CONSTRAINT `invoiceInLog_ibfk_2` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
|
|
@ -1,192 +0,0 @@
|
||||||
DROP PROCEDURE IF EXISTS `vn`.`sale_getProblems`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
$$
|
|
||||||
CREATE
|
|
||||||
DEFINER = root@`%` PROCEDURE `vn`.`sale_getProblems`(IN vIsTodayRelative TINYINT(1))
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Calcula los problemas de cada venta
|
|
||||||
* para un conjunto de tickets.
|
|
||||||
*
|
|
||||||
* @table tmp.sale_getProblems(ticketFk, clientFk, warehouseFk, shipped) Identificadores de los tickets a calcular
|
|
||||||
* @return tmp.sale_problems
|
|
||||||
*/
|
|
||||||
DECLARE vWarehouse INT;
|
|
||||||
DECLARE vDate DATE;
|
|
||||||
DECLARE vAvailableCache INT;
|
|
||||||
DECLARE vDone INT DEFAULT 0;
|
|
||||||
DECLARE vComponentCount INT;
|
|
||||||
|
|
||||||
DECLARE vCursor CURSOR FOR
|
|
||||||
SELECT DISTINCT tt.warehouseFk, IF(vIsTodayRelative, CURDATE(), date(tt.shipped))
|
|
||||||
FROM tmp.sale_getProblems tt
|
|
||||||
WHERE DATE(tt.shipped) BETWEEN CURDATE()
|
|
||||||
AND TIMESTAMPADD(DAY, IF(vIsTodayRelative, 9.9, 1.9), CURDATE());
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = 1;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.sale_problems;
|
|
||||||
CREATE TEMPORARY TABLE tmp.sale_problems (
|
|
||||||
ticketFk INT(11),
|
|
||||||
saleFk INT(11),
|
|
||||||
isFreezed INTEGER(1) DEFAULT 0,
|
|
||||||
risk DECIMAL(10,2) DEFAULT 0,
|
|
||||||
hasTicketRequest INTEGER(1) DEFAULT 0,
|
|
||||||
isAvailable INTEGER(1) DEFAULT 1,
|
|
||||||
itemShortage VARCHAR(250),
|
|
||||||
isTaxDataChecked INTEGER(1) DEFAULT 1,
|
|
||||||
itemDelay VARCHAR(250),
|
|
||||||
hasComponentLack INTEGER(1),
|
|
||||||
PRIMARY KEY (ticketFk, saleFk)
|
|
||||||
) ENGINE = MEMORY;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.ticket_list;
|
|
||||||
CREATE TEMPORARY TABLE tmp.ticket_list
|
|
||||||
(PRIMARY KEY (ticketFk))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT tp.ticketFk, c.id clientFk
|
|
||||||
FROM tmp.sale_getProblems tp
|
|
||||||
JOIN vn.client c ON c.id = tp.clientFk;
|
|
||||||
|
|
||||||
SELECT COUNT(*) INTO vComponentCount
|
|
||||||
FROM vn.component c
|
|
||||||
WHERE c.isRequired;
|
|
||||||
|
|
||||||
INSERT INTO tmp.sale_problems(ticketFk, hasComponentLack, saleFk)
|
|
||||||
SELECT tl.ticketFk, (COUNT(DISTINCT s.id) * vComponentCount > COUNT(c.id)), s.id
|
|
||||||
FROM tmp.ticket_list tl
|
|
||||||
JOIN vn.sale s ON s.ticketFk = tl.ticketFk
|
|
||||||
LEFT JOIN vn.saleComponent sc ON sc.saleFk = s.id
|
|
||||||
LEFT JOIN vn.component c ON c.id = sc.componentFk AND c.isRequired
|
|
||||||
GROUP BY tl.ticketFk, s.id;
|
|
||||||
|
|
||||||
INSERT INTO tmp.sale_problems(ticketFk, isFreezed)
|
|
||||||
SELECT DISTINCT tl.ticketFk, TRUE
|
|
||||||
FROM tmp.ticket_list tl
|
|
||||||
JOIN vn.client c ON c.id = tl.clientFk
|
|
||||||
WHERE c.isFreezed
|
|
||||||
ON DUPLICATE KEY UPDATE
|
|
||||||
isFreezed = c.isFreezed;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.clientGetDebt;
|
|
||||||
CREATE TEMPORARY TABLE tmp.clientGetDebt
|
|
||||||
(PRIMARY KEY (clientFk))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT DISTINCT clientFk
|
|
||||||
FROM tmp.ticket_list;
|
|
||||||
|
|
||||||
CALL clientGetDebt(CURDATE());
|
|
||||||
|
|
||||||
INSERT INTO tmp.sale_problems(ticketFk, risk)
|
|
||||||
SELECT DISTINCT tl.ticketFk, r.risk
|
|
||||||
FROM tmp.ticket_list tl
|
|
||||||
JOIN vn.ticket t ON t.id = tl.ticketFk
|
|
||||||
JOIN vn.agencyMode a ON t.agencyModeFk = a.id
|
|
||||||
JOIN tmp.risk r ON r.clientFk = t.clientFk
|
|
||||||
JOIN vn.client c ON c.id = t.clientFk
|
|
||||||
JOIN vn.clientConfig cc
|
|
||||||
WHERE r.risk > c.credit + 10
|
|
||||||
AND a.isRiskFree = FALSE
|
|
||||||
ON DUPLICATE KEY UPDATE
|
|
||||||
risk = r.risk;
|
|
||||||
|
|
||||||
INSERT INTO tmp.sale_problems(ticketFk, hasTicketRequest)
|
|
||||||
SELECT DISTINCT tl.ticketFk, TRUE
|
|
||||||
FROM tmp.ticket_list tl
|
|
||||||
JOIN vn.ticketRequest tr ON tr.ticketFk = tl.ticketFk
|
|
||||||
WHERE tr.isOK IS NULL
|
|
||||||
ON DUPLICATE KEY UPDATE
|
|
||||||
hasTicketRequest = TRUE;
|
|
||||||
|
|
||||||
OPEN vCursor;
|
|
||||||
|
|
||||||
WHILE NOT vDone
|
|
||||||
DO
|
|
||||||
FETCH vCursor INTO vWarehouse, vDate;
|
|
||||||
|
|
||||||
CALL cache.available_refresh(vAvailableCache, FALSE, vWarehouse, vDate);
|
|
||||||
|
|
||||||
INSERT INTO tmp.sale_problems(ticketFk, isAvailable, saleFk)
|
|
||||||
SELECT tl.ticketFk, FALSE, s.id
|
|
||||||
FROM tmp.ticket_list tl
|
|
||||||
JOIN vn.ticket t ON t.id = tl.ticketFk
|
|
||||||
JOIN vn.sale s ON s.ticketFk = t.id
|
|
||||||
JOIN vn.item i ON i.id = s.itemFk
|
|
||||||
JOIN vn.itemType it on it.id = i.typeFk
|
|
||||||
LEFT JOIN cache.available av ON av.item_id = i.id
|
|
||||||
AND av.calc_id = vAvailableCache
|
|
||||||
WHERE date(t.shipped) = vDate
|
|
||||||
AND it.categoryFk != 6
|
|
||||||
AND IFNULL(av.available, 0) < 0
|
|
||||||
AND s.isPicked = FALSE
|
|
||||||
AND NOT i.generic
|
|
||||||
AND vWarehouse = t.warehouseFk
|
|
||||||
GROUP BY tl.ticketFk
|
|
||||||
ON DUPLICATE KEY UPDATE
|
|
||||||
isAvailable = FALSE, saleFk = VALUE(saleFk);
|
|
||||||
|
|
||||||
INSERT INTO tmp.sale_problems(ticketFk, itemShortage, saleFk)
|
|
||||||
SELECT ticketFk, problem, saleFk
|
|
||||||
FROM (
|
|
||||||
SELECT tl.ticketFk, CONCAT('F: ',GROUP_CONCAT(i.id, ' ', i.longName, ' ')) problem, s.id AS saleFk
|
|
||||||
FROM tmp.ticket_list tl
|
|
||||||
JOIN vn.ticket t ON t.id = tl.ticketFk
|
|
||||||
JOIN vn.sale s ON s.ticketFk = t.id
|
|
||||||
JOIN vn.item i ON i.id = s.itemFk
|
|
||||||
JOIN vn.itemType it on it.id = i.typeFk
|
|
||||||
LEFT JOIN vn.itemShelvingStock_byWarehouse issw ON issw.itemFk = i.id AND issw.warehouseFk = t.warehouseFk
|
|
||||||
LEFT JOIN cache.available av ON av.item_id = i.id AND av.calc_id = vAvailableCache
|
|
||||||
WHERE IFNULL(av.available, 0) < 0
|
|
||||||
AND s.quantity > IFNULL(issw.visible, 0)
|
|
||||||
AND s.quantity > 0
|
|
||||||
AND s.isPicked = FALSE
|
|
||||||
AND s.reserved = FALSE
|
|
||||||
AND it.categoryFk != 6
|
|
||||||
AND IF(vIsTodayRelative, TRUE, date(t.shipped) = vDate)
|
|
||||||
AND NOT i.generic
|
|
||||||
AND CURDATE() = vDate
|
|
||||||
AND t.warehouseFk = vWarehouse
|
|
||||||
GROUP BY tl.ticketFk LIMIT 1) sub
|
|
||||||
ON DUPLICATE KEY UPDATE
|
|
||||||
itemShortage = sub.problem, saleFk = sub.saleFk;
|
|
||||||
|
|
||||||
INSERT INTO tmp.sale_problems(ticketFk, itemDelay, saleFk)
|
|
||||||
SELECT ticketFk, problem, saleFk
|
|
||||||
FROM (
|
|
||||||
SELECT tl.ticketFk, GROUP_CONCAT('I: ',i.id, ' ', i.longName, ' ') problem, s.id AS saleFk
|
|
||||||
FROM tmp.ticket_list tl
|
|
||||||
JOIN vn.ticket t ON t.id = tl.ticketFk
|
|
||||||
JOIN vn.sale s ON s.ticketFk = t.id
|
|
||||||
JOIN vn.item i ON i.id = s.itemFk
|
|
||||||
JOIN vn.itemType it on it.id = i.typeFk
|
|
||||||
LEFT JOIN vn.itemShelvingStock_byWarehouse issw ON issw.itemFk = i.id AND issw.warehouseFk = t.warehouseFk
|
|
||||||
WHERE s.quantity > IFNULL(issw.visible, 0)
|
|
||||||
AND s.quantity > 0
|
|
||||||
AND s.isPicked = FALSE
|
|
||||||
AND s.reserved = FALSE
|
|
||||||
AND it.categoryFk != 6
|
|
||||||
AND IF(vIsTodayRelative, TRUE, date(t.shipped) = vDate)
|
|
||||||
AND NOT i.generic
|
|
||||||
AND CURDATE() = vDate
|
|
||||||
AND t.warehouseFk = vWarehouse
|
|
||||||
GROUP BY tl.ticketFk LIMIT 1) sub
|
|
||||||
ON DUPLICATE KEY UPDATE
|
|
||||||
itemDelay = sub.problem, saleFk = sub.saleFk;
|
|
||||||
END WHILE;
|
|
||||||
|
|
||||||
CLOSE vCursor;
|
|
||||||
|
|
||||||
INSERT INTO tmp.sale_problems(ticketFk, isTaxDataChecked)
|
|
||||||
SELECT DISTINCT tl.ticketFk, FALSE
|
|
||||||
FROM tmp.ticket_list tl
|
|
||||||
JOIN vn.client c ON c.id = tl.clientFk
|
|
||||||
WHERE c.isTaxDataChecked = FALSE
|
|
||||||
ON DUPLICATE KEY UPDATE
|
|
||||||
isTaxDataChecked = FALSE;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE
|
|
||||||
tmp.clientGetDebt,
|
|
||||||
tmp.ticket_list;
|
|
||||||
END;;$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,95 +0,0 @@
|
||||||
DROP PROCEDURE IF EXISTS `vn`.`ticket_componentMakeUpdate`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
$$
|
|
||||||
|
|
||||||
CREATE
|
|
||||||
DEFINER = root@`%` PROCEDURE `vn`.`ticket_componentMakeUpdate`(IN vTicketFk INT, IN vClientFk INT,
|
|
||||||
IN vNickname VARCHAR(50), IN vAgencyModeFk INT,
|
|
||||||
IN vAddressFk INT, IN vZoneFk INT, IN vWarehouseFk TINYINT,
|
|
||||||
IN vCompanyFk SMALLINT, IN vShipped DATETIME,
|
|
||||||
IN vLanded DATE, IN vIsDeleted TINYINT(1),
|
|
||||||
IN vHasToBeUnrouted TINYINT(1), IN vOption INT)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Modifica en el ticket los campos que se le pasan por parámetro
|
|
||||||
* y cambia sus componentes
|
|
||||||
*
|
|
||||||
* @param vTicketFk Id del ticket a modificar
|
|
||||||
* @param vClientFk nuevo cliente
|
|
||||||
* @param vNickname nuevo alias
|
|
||||||
* @param vAgencyModeFk nueva agencia
|
|
||||||
* @param vAddressFk nuevo consignatario
|
|
||||||
* @param vZoneFk nueva zona
|
|
||||||
* @param vWarehouseFk nuevo almacen
|
|
||||||
* @param vCompanyFk nueva empresa
|
|
||||||
* @param vShipped nueva fecha del envio de mercancia
|
|
||||||
* @param vLanded nueva fecha de recepcion de mercancia
|
|
||||||
* @param vIsDeleted si se borra el ticket
|
|
||||||
* @param vHasToBeUnrouted si se le elimina la ruta al ticket
|
|
||||||
* @param vOption opcion para el case del proc ticketComponentUpdateSale
|
|
||||||
*/
|
|
||||||
DECLARE vPrice DECIMAL(10,2);
|
|
||||||
DECLARE vBonus DECIMAL(10,2);
|
|
||||||
|
|
||||||
CALL ticket_componentPreview (vTicketFk, vLanded, vAddressFk, vZoneFk, vWarehouseFk);
|
|
||||||
|
|
||||||
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 zone_getShippedWarehouse(vlanded, vAddressFk, vAgencyModeFk);
|
|
||||||
|
|
||||||
SELECT zoneFk, price, bonus INTO vZoneFk, vPrice, vBonus
|
|
||||||
FROM tmp.zoneGetShipped
|
|
||||||
WHERE shipped BETWEEN DATE(vShipped) AND util.dayEnd(vShipped) AND warehouseFk = vWarehouseFk LIMIT 1;
|
|
||||||
|
|
||||||
UPDATE ticket t
|
|
||||||
SET
|
|
||||||
t.clientFk = vClientFk,
|
|
||||||
t.nickname = vNickname,
|
|
||||||
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;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.ticketComponent;
|
|
||||||
CREATE TEMPORARY TABLE tmp.ticketComponent
|
|
||||||
SELECT * FROM tmp.ticketComponentPreview;
|
|
||||||
|
|
||||||
CALL ticketComponentUpdateSale (vOption);
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tmp.sale;
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.ticketComponent;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tmp.zoneGetShipped, tmp.ticketComponentPreview;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
DELETE FROM `salix`.`ACL` WHERE id = 189;
|
|
||||||
DELETE FROM `salix`.`ACL` WHERE id = 188;
|
|
||||||
UPDATE `salix`.`ACL` tdms SET tdms.accessType = '*'
|
|
||||||
WHERE tdms.id = 165;
|
|
||||||
|
|
||||||
INSERT INTO `salix`.`ACL` (model, principalId, property, accessType)
|
|
||||||
VALUES
|
|
||||||
('InvoiceInTax','administrative', '*', '*'),
|
|
||||||
('InvoiceInLog','administrative', '*', 'READ');
|
|
||||||
|
|
||||||
INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalType, principalId)
|
|
||||||
VALUES
|
|
||||||
('InvoiceOut', 'createManualInvoice', 'WRITE', 'ALLOW', 'ROLE', 'invoicing'),
|
|
||||||
('InvoiceOut', 'globalInvoicing', 'WRITE', 'ALLOW', 'ROLE', 'invoicing');
|
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
create table `vn`.`itemMatchProperties`
|
|
||||||
(
|
|
||||||
itemFk int not null,
|
|
||||||
name varchar(80) not null,
|
|
||||||
producer varchar(80) not null,
|
|
||||||
size int not null,
|
|
||||||
constraint itemMatchProperties_pk
|
|
||||||
primary key (itemFk, name, producer, size),
|
|
||||||
constraint itemFk___fk
|
|
||||||
foreign key (itemFk) references item (id)
|
|
||||||
on update cascade on delete cascade
|
|
||||||
)
|
|
||||||
comment 'Propiedades para encontrar articulos equivalentes en verdnatura';
|
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
drop procedure `vn`.`invoiceFromClient`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
$$
|
|
||||||
create
|
|
||||||
definer = root@`%` procedure `vn`.`invoiceFromClient`(IN vMaxTicketDate datetime, IN vClientFk INT, IN vCompanyFk INT)
|
|
||||||
BEGIN
|
|
||||||
DECLARE vMinTicketDate DATE DEFAULT TIMESTAMPADD(YEAR, -3, CURDATE());
|
|
||||||
SET vMaxTicketDate = util.dayend(vMaxTicketDate);
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS `ticketToInvoice`;
|
|
||||||
CREATE TEMPORARY TABLE `ticketToInvoice`
|
|
||||||
(PRIMARY KEY (`id`))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT id FROM ticket t
|
|
||||||
WHERE t.clientFk = vClientFk
|
|
||||||
AND t.refFk IS NULL
|
|
||||||
AND t.companyFk = vCompanyFk
|
|
||||||
AND (t.shipped BETWEEN vMinTicketDate AND vMaxTicketDate);
|
|
||||||
END;;$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,45 +0,0 @@
|
||||||
drop procedure `vn`.`invoiceOut_newFromClient`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
$$
|
|
||||||
create
|
|
||||||
definer = root@`%` procedure `vn`.`invoiceOut_newFromClient`(IN vClientFk int, IN vSerial char(2), IN vMaxShipped date,
|
|
||||||
IN vCompanyFk int, IN vTaxArea varchar(25),
|
|
||||||
IN vRef varchar(25), OUT vInvoiceId int)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Factura los tickets de un cliente hasta una fecha dada
|
|
||||||
* @param vClientFk Id del cliente a facturar
|
|
||||||
* @param vSerial Serie de factura
|
|
||||||
* @param vMaxShipped Fecha hasta la cual cogera tickets para facturar
|
|
||||||
* @param vCompanyFk Id de la empresa desde la que se factura
|
|
||||||
* @param vTaxArea Tipo de iva en relacion a la empresa y al cliente, NULL por defecto
|
|
||||||
* @param vRef Referencia de la factura en caso que se quiera forzar, NULL por defecto
|
|
||||||
* @return vInvoiceId factura
|
|
||||||
*/
|
|
||||||
|
|
||||||
DECLARE vIsRefEditable BOOLEAN;
|
|
||||||
|
|
||||||
IF vRef IS NOT NULL THEN
|
|
||||||
SELECT isRefEditable INTO vIsRefEditable
|
|
||||||
FROM invoiceOutSerial
|
|
||||||
WHERE code = vSerial;
|
|
||||||
|
|
||||||
IF NOT vIsRefEditable THEN
|
|
||||||
CALL util.throw('serial non editable');
|
|
||||||
END IF;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL invoiceFromClient(vMaxShipped, vClientFk, vCompanyFk);
|
|
||||||
CALL invoiceOut_new(vSerial, CURDATE(), vTaxArea, vInvoiceId);
|
|
||||||
|
|
||||||
UPDATE invoiceOut
|
|
||||||
SET `ref` = vRef
|
|
||||||
WHERE id = vInvoiceId
|
|
||||||
AND vRef IS NOT NULL;
|
|
||||||
|
|
||||||
IF vSerial <> 'R' AND NOT ISNULL(vInvoiceId) AND vInvoiceId <> 0 THEN
|
|
||||||
CALL invoiceOutBooking(vInvoiceId);
|
|
||||||
END IF;
|
|
||||||
END;;$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,38 +0,0 @@
|
||||||
drop procedure `vn`.`invoiceOut_newFromTicket`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
$$
|
|
||||||
create
|
|
||||||
definer = root@`%` procedure `vn`.`invoiceOut_newFromTicket`(IN vTicketFk int, IN vSerial char(2), IN vTaxArea varchar(25),
|
|
||||||
IN vRef varchar(25), OUT vInvoiceId int)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Factura un ticket
|
|
||||||
* @param vTicketFk Id del ticket
|
|
||||||
* @param vSerial Serie de factura
|
|
||||||
* @param vTaxArea Area de la factura en caso de querer forzarlo,
|
|
||||||
* en la mayoria de los casos poner NULL
|
|
||||||
* @return vInvoiceId
|
|
||||||
*/
|
|
||||||
DECLARE vIsRefEditable BOOLEAN;
|
|
||||||
CALL invoiceFromTicket(vTicketFk);
|
|
||||||
CALL invoiceOut_new(vSerial, CURDATE(), vTaxArea, vInvoiceId);
|
|
||||||
|
|
||||||
IF vRef IS NOT NULL THEN
|
|
||||||
SELECT isRefEditable INTO vIsRefEditable
|
|
||||||
FROM invoiceOutSerial
|
|
||||||
WHERE code = vSerial;
|
|
||||||
IF NOT vIsRefEditable THEN
|
|
||||||
CALL util.throw('serial non editable');
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
UPDATE invoiceOut
|
|
||||||
SET `ref` = vRef
|
|
||||||
WHERE id = vInvoiceId;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF vSerial <> 'R' AND NOT ISNULL(vInvoiceId) AND vInvoiceId <> 0 THEN
|
|
||||||
CALL invoiceOutBooking(vInvoiceId);
|
|
||||||
END IF;
|
|
||||||
END;;$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,7 +0,0 @@
|
||||||
ALTER TABLE `vn`.`sample` ADD COLUMN
|
|
||||||
(`datepickerEnabled` TINYINT(1) NOT NULL DEFAULT 0);
|
|
||||||
|
|
||||||
ALTER TABLE `vn`.`sample` MODIFY code VARCHAR(25) charset utf8 NOT NULL;
|
|
||||||
|
|
||||||
INSERT INTO `vn`.`sample` (code, description, isVisible, hasCompany, hasPreview, datepickerEnabled)
|
|
||||||
VALUES ('client-debt-statement', 'Extracto del cliente', 1, 0, 1, 1);
|
|
|
@ -1,109 +0,0 @@
|
||||||
drop procedure `vn`.`ticket_close`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
$$
|
|
||||||
create
|
|
||||||
definer = root@`%` procedure `vn`.`ticket_close`()
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Realiza el cierre de todos los
|
|
||||||
* tickets de la tabla tmp.ticket_close.
|
|
||||||
*
|
|
||||||
* @table tmp.ticket_close(ticketFk) Identificadores de los tickets a cerrar
|
|
||||||
*/
|
|
||||||
DECLARE vDone BOOL;
|
|
||||||
DECLARE vClientFk INT;
|
|
||||||
DECLARE vCurTicketFk INT;
|
|
||||||
DECLARE vIsTaxDataChecked BOOL;
|
|
||||||
DECLARE vCompanyFk INT;
|
|
||||||
DECLARE vShipped DATE;
|
|
||||||
DECLARE vNewInvoiceId INT;
|
|
||||||
DECLARE vHasDailyInvoice BOOL;
|
|
||||||
DECLARE vWithPackage BOOL;
|
|
||||||
DECLARE vHasToInvoice BOOL;
|
|
||||||
|
|
||||||
DECLARE cur CURSOR FOR
|
|
||||||
SELECT ticketFk FROM tmp.ticket_close;
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
|
|
||||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN
|
|
||||||
RESIGNAL;
|
|
||||||
END;
|
|
||||||
|
|
||||||
OPEN cur;
|
|
||||||
|
|
||||||
proc: LOOP
|
|
||||||
SET vDone = FALSE;
|
|
||||||
|
|
||||||
FETCH cur INTO vCurTicketFk;
|
|
||||||
|
|
||||||
IF vDone THEN
|
|
||||||
LEAVE proc;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
-- Fetch ticket data
|
|
||||||
SELECT
|
|
||||||
c.id,
|
|
||||||
c.isTaxDataChecked,
|
|
||||||
t.companyFk,
|
|
||||||
t.shipped,
|
|
||||||
co.hasDailyInvoice,
|
|
||||||
w.isManaged,
|
|
||||||
c.hasToInvoice
|
|
||||||
INTO vClientFk,
|
|
||||||
vIsTaxDataChecked,
|
|
||||||
vCompanyFk,
|
|
||||||
vShipped,
|
|
||||||
vHasDailyInvoice,
|
|
||||||
vWithPackage,
|
|
||||||
vHasToInvoice
|
|
||||||
FROM ticket t
|
|
||||||
JOIN `client` c ON c.id = t.clientFk
|
|
||||||
JOIN province p ON p.id = c.provinceFk
|
|
||||||
JOIN country co ON co.id = p.countryFk
|
|
||||||
JOIN warehouse w ON w.id = t.warehouseFk
|
|
||||||
WHERE t.id = vCurTicketFk;
|
|
||||||
|
|
||||||
INSERT INTO ticketPackaging (ticketFk, packagingFk, quantity)
|
|
||||||
(SELECT vCurTicketFk, p.id, COUNT(*)
|
|
||||||
FROM expedition e
|
|
||||||
JOIN packaging p ON p.itemFk = e.itemFk
|
|
||||||
WHERE e.ticketFk = vCurTicketFk AND p.isPackageReturnable
|
|
||||||
AND vWithPackage
|
|
||||||
GROUP BY p.itemFk);
|
|
||||||
|
|
||||||
-- No retornables o no catalogados
|
|
||||||
INSERT INTO sale (itemFk, ticketFk, concept, quantity, price, isPriceFixed)
|
|
||||||
(SELECT e.itemFk, vCurTicketFk, i.name, COUNT(*) AS amount, getSpecialPrice(e.itemFk, vClientFk), 1
|
|
||||||
FROM expedition e
|
|
||||||
JOIN item i ON i.id = e.itemFk
|
|
||||||
LEFT JOIN packaging p ON p.itemFk = i.id
|
|
||||||
WHERE e.ticketFk = vCurTicketFk AND IFNULL(p.isPackageReturnable, 0) = 0
|
|
||||||
AND getSpecialPrice(e.itemFk, vClientFk) > 0
|
|
||||||
GROUP BY e.itemFk);
|
|
||||||
|
|
||||||
CALL vn.zonePromo_Make();
|
|
||||||
|
|
||||||
IF(vHasDailyInvoice) AND vHasToInvoice THEN
|
|
||||||
|
|
||||||
-- Facturacion rapida
|
|
||||||
CALL ticketTrackingAdd(vCurTicketFk, 'DELIVERED', NULL);
|
|
||||||
-- Facturar si está contabilizado
|
|
||||||
IF vIsTaxDataChecked THEN
|
|
||||||
CALL invoiceOut_newFromClient(
|
|
||||||
vClientFk,
|
|
||||||
(SELECT invoiceSerial(vClientFk, vCompanyFk, 'M')),
|
|
||||||
vShipped,
|
|
||||||
vCompanyFk,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
vNewInvoiceId);
|
|
||||||
END IF;
|
|
||||||
ELSE
|
|
||||||
CALL ticketTrackingAdd(vCurTicketFk, (SELECT vn.getAlert3State(vCurTicketFk)), NULL);
|
|
||||||
END IF;
|
|
||||||
END LOOP;
|
|
||||||
|
|
||||||
CLOSE cur;
|
|
||||||
END;;$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,118 +0,0 @@
|
||||||
drop procedure `vn`.`ticket_closeAll`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
$$
|
|
||||||
create definer = root@`%` procedure `vn`.`ticket_closeAll__`()
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Realiza el cierre de todos los
|
|
||||||
* tickets de la tabla tmp.ticketClosure.
|
|
||||||
*
|
|
||||||
* @param vTicketFk Id del ticket
|
|
||||||
*/
|
|
||||||
DECLARE vDone BOOL;
|
|
||||||
DECLARE vClientFk INT;
|
|
||||||
DECLARE vCurTicketFk INT;
|
|
||||||
DECLARE vIsTaxDataChecked BOOL;
|
|
||||||
DECLARE vCompanyFk INT;
|
|
||||||
DECLARE vShipped DATE;
|
|
||||||
DECLARE vNewInvoiceId INT;
|
|
||||||
DECLARE vHasDailyInvoice BOOL;
|
|
||||||
DECLARE vWithPackage BOOL;
|
|
||||||
DECLARE vHasToInvoice BOOL;
|
|
||||||
|
|
||||||
DECLARE cur CURSOR FOR
|
|
||||||
SELECT ticketFk FROM tmp.ticketClosure;
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
|
|
||||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN
|
|
||||||
RESIGNAL;
|
|
||||||
END;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.ticketClosure2;
|
|
||||||
CREATE TEMPORARY TABLE tmp.ticketClosure2
|
|
||||||
SELECT ticketFk FROM tmp.ticketClosure;
|
|
||||||
|
|
||||||
INSERT INTO tmp.ticketClosure
|
|
||||||
SELECT id FROM stowaway s
|
|
||||||
JOIN tmp.ticketClosure2 tc ON s.shipFk = tc.ticketFk;
|
|
||||||
OPEN cur;
|
|
||||||
|
|
||||||
proc: LOOP
|
|
||||||
SET vDone = FALSE;
|
|
||||||
|
|
||||||
FETCH cur INTO vCurTicketFk;
|
|
||||||
|
|
||||||
IF vDone THEN
|
|
||||||
LEAVE proc;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
-- ticketClosure start
|
|
||||||
SELECT
|
|
||||||
c.id,
|
|
||||||
c.isTaxDataChecked,
|
|
||||||
t.companyFk,
|
|
||||||
t.shipped,
|
|
||||||
co.hasDailyInvoice,
|
|
||||||
w.isManaged,
|
|
||||||
c.hasToInvoice
|
|
||||||
INTO vClientFk,
|
|
||||||
vIsTaxDataChecked,
|
|
||||||
vCompanyFk,
|
|
||||||
vShipped,
|
|
||||||
vHasDailyInvoice,
|
|
||||||
vWithPackage,
|
|
||||||
vHasToInvoice
|
|
||||||
FROM ticket t
|
|
||||||
JOIN `client` c ON c.id = t.clientFk
|
|
||||||
JOIN province p ON p.id = c.provinceFk
|
|
||||||
JOIN country co ON co.id = p.countryFk
|
|
||||||
JOIN warehouse w ON w.id = t.warehouseFk
|
|
||||||
WHERE t.id = vCurTicketFk;
|
|
||||||
|
|
||||||
INSERT INTO ticketPackaging (ticketFk, packagingFk, quantity)
|
|
||||||
(SELECT vCurTicketFk, p.id, COUNT(*)
|
|
||||||
FROM expedition e
|
|
||||||
JOIN packaging p ON p.itemFk = e.itemFk
|
|
||||||
WHERE e.ticketFk = vCurTicketFk AND p.isPackageReturnable
|
|
||||||
AND vWithPackage
|
|
||||||
GROUP BY p.itemFk);
|
|
||||||
|
|
||||||
-- No retornables o no catalogados
|
|
||||||
INSERT INTO sale (itemFk, ticketFk, concept, quantity, price, isPriceFixed)
|
|
||||||
(SELECT e.itemFk, vCurTicketFk, i.name, COUNT(*) AS amount, getSpecialPrice(e.itemFk, vClientFk), 1
|
|
||||||
FROM expedition e
|
|
||||||
JOIN item i ON i.id = e.itemFk
|
|
||||||
LEFT JOIN packaging p ON p.itemFk = i.id
|
|
||||||
WHERE e.ticketFk = vCurTicketFk AND IFNULL(p.isPackageReturnable, 0) = 0
|
|
||||||
AND getSpecialPrice(e.itemFk, vClientFk) > 0
|
|
||||||
GROUP BY e.itemFk);
|
|
||||||
|
|
||||||
CALL vn.zonePromo_Make();
|
|
||||||
|
|
||||||
IF(vHasDailyInvoice) AND vHasToInvoice THEN
|
|
||||||
|
|
||||||
-- Facturacion rapida
|
|
||||||
CALL ticketTrackingAdd(vCurTicketFk, 'DELIVERED', NULL);
|
|
||||||
-- Facturar si está contabilizado
|
|
||||||
IF vIsTaxDataChecked THEN
|
|
||||||
CALL invoiceOut_newFromClient(
|
|
||||||
vClientFk,
|
|
||||||
(SELECT invoiceSerial(vClientFk, vCompanyFk, 'M')),
|
|
||||||
vShipped,
|
|
||||||
vCompanyFk,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
vNewInvoiceId);
|
|
||||||
END IF;
|
|
||||||
ELSE
|
|
||||||
CALL ticketTrackingAdd(vCurTicketFk, (SELECT vn.getAlert3State(vCurTicketFk)), NULL);
|
|
||||||
END IF;
|
|
||||||
END LOOP;
|
|
||||||
|
|
||||||
CLOSE cur;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.ticketClosure;
|
|
||||||
END;;$$
|
|
||||||
DELIMITER ;
|
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
drop procedure `vn`.`ticket_closeByTicket`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
$$
|
|
||||||
create
|
|
||||||
definer = root@`%` procedure `vn`.`ticket_closeByTicket`(IN vTicketFk int)
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Inserta el ticket en la tabla temporal
|
|
||||||
* para ser cerrado.
|
|
||||||
*
|
|
||||||
* @param vTicketFk Id del ticket
|
|
||||||
*/
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.ticket_close;
|
|
||||||
CREATE TEMPORARY TABLE tmp.ticket_close ENGINE = MEMORY (
|
|
||||||
SELECT
|
|
||||||
t.id AS ticketFk
|
|
||||||
FROM expedition e
|
|
||||||
INNER JOIN ticket t ON t.id = e.ticketFk
|
|
||||||
LEFT JOIN ticketState ts ON ts.ticketFk = t.id
|
|
||||||
JOIN alertLevel al ON al.id = ts.alertLevel
|
|
||||||
WHERE
|
|
||||||
al.code = 'PACKED'
|
|
||||||
AND t.id = vTicketFk
|
|
||||||
AND t.refFk IS NULL
|
|
||||||
GROUP BY e.ticketFk);
|
|
||||||
|
|
||||||
CALL ticket_close();
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tmp.ticket_close;
|
|
||||||
END;;$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,2 +0,0 @@
|
||||||
INSERT INTO `vn`.`sample` (`code`, `description`, `isVisible`, `hasCompany`, `hasPreview`)
|
|
||||||
VALUES ('credit-request', 'Solicitud de crédito', 1, 1, 1);
|
|
|
@ -1 +0,0 @@
|
||||||
DROP TRIGGER vn.supplierAccount_AfterInsert;
|
|
|
@ -1,33 +0,0 @@
|
||||||
DROP TRIGGER IF EXISTS vn.ticket_afterUpdate;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
$$
|
|
||||||
CREATE DEFINER=`root`@`%` TRIGGER vn.`ticket_afterUpdate`
|
|
||||||
AFTER UPDATE ON `ticket`
|
|
||||||
FOR EACH ROW
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
IF !(NEW.id <=> OLD.id)
|
|
||||||
OR !(NEW.warehouseFk <=> OLD.warehouseFk)
|
|
||||||
OR !(NEW.shipped <=> OLD.shipped) THEN
|
|
||||||
CALL stock.log_add('ticket', NEW.id, OLD.id);
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF !(NEW.clientFk <=> OLD.clientFk)
|
|
||||||
OR !(NEW.addressFk <=> OLD.addressFk)
|
|
||||||
OR !(NEW.companyFk <=> OLD.companyFk) THEN
|
|
||||||
CALL ticket_requestRecalc(NEW.id);
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF NEW.clientFk = 2067 AND !(NEW.clientFk <=> OLD.clientFk) THEN
|
|
||||||
-- Fallo que se insertan no se sabe como tickets en este cliente
|
|
||||||
INSERT INTO vn.mail SET
|
|
||||||
`sender` = 'jgallego@verdnatura.es',
|
|
||||||
`replyTo` = 'jgallego@verdnatura.es',
|
|
||||||
`subject` = 'Modificado ticket al cliente 2067',
|
|
||||||
`body` = CONCAT(account.myUserGetName(), ' ha modificado el ticket ',
|
|
||||||
NEW.id);
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
ALTER TABLE vn.silexACL MODIFY module VARCHAR(50) NOT NULL;
|
||||||
|
ALTER TABLE vn.silexACL MODIFY method VARCHAR(50) NOT NULL;
|
File diff suppressed because one or more lines are too long
|
@ -1770,12 +1770,12 @@ INSERT INTO `vn`.`userConfig` (`userFk`, `warehouseFk`, `companyFk`)
|
||||||
(9, 1, 442),
|
(9, 1, 442),
|
||||||
(18, 3, 567);
|
(18, 3, 567);
|
||||||
|
|
||||||
INSERT INTO `vn`.`receipt`(`id`, `invoiceFk`, `amountPaid`, `amountUnpaid`, `payed`, `workerFk`, `bankFk`, `clientFk`, `created`, `companyFk`, `isConciliate`)
|
INSERT INTO `vn`.`receipt`(`id`, `invoiceFk`, `amountPaid`, `payed`, `workerFk`, `bankFk`, `clientFk`, `created`, `companyFk`, `isConciliate`)
|
||||||
VALUES
|
VALUES
|
||||||
(1, 'Cobro web', 100.50, 0.00, CURDATE(), 9, 1, 1101, CURDATE(), 442, 1),
|
(1, 'Cobro web', 100.50, CURDATE(), 9, 1, 1101, CURDATE(), 442, 1),
|
||||||
(2, 'Cobro web', 200.50, 0.00, DATE_ADD(CURDATE(), INTERVAL -5 DAY), 9, 1, 1101, DATE_ADD(CURDATE(), INTERVAL -5 DAY), 442, 1),
|
(2, 'Cobro web', 200.50, DATE_ADD(CURDATE(), INTERVAL -5 DAY), 9, 1, 1101, DATE_ADD(CURDATE(), INTERVAL -5 DAY), 442, 1),
|
||||||
(3, 'Cobro en efectivo', 300.00, 100.00, DATE_ADD(CURDATE(), INTERVAL -10 DAY), 9, 1, 1102, DATE_ADD(CURDATE(), INTERVAL -10 DAY), 442, 0),
|
(3, 'Cobro en efectivo', 300.00, DATE_ADD(CURDATE(), INTERVAL -10 DAY), 9, 1, 1102, DATE_ADD(CURDATE(), INTERVAL -10 DAY), 442, 0),
|
||||||
(4, 'Cobro en efectivo', 400.00, -50.00, DATE_ADD(CURDATE(), INTERVAL -15 DAY), 9, 1, 1103, DATE_ADD(CURDATE(), INTERVAL -15 DAY), 442, 0);
|
(4, 'Cobro en efectivo', 400.00, DATE_ADD(CURDATE(), INTERVAL -15 DAY), 9, 1, 1103, DATE_ADD(CURDATE(), INTERVAL -15 DAY), 442, 0);
|
||||||
|
|
||||||
INSERT INTO `vn`.`workerTeam`(`id`, `team`, `workerFk`)
|
INSERT INTO `vn`.`workerTeam`(`id`, `team`, `workerFk`)
|
||||||
VALUES
|
VALUES
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -8,11 +8,12 @@ describe('Model getEnumValues()', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should return an array of enum values from a given column', async() => {
|
it('should return an array of enum values from a given column', async() => {
|
||||||
let result = await app.models.TravelThermograph.getSetValues('temperature');
|
let result = await app.models.TpvTransaction.getSetValues('status');
|
||||||
|
|
||||||
expect(result.length).toEqual(3);
|
expect(result.length).toEqual(4);
|
||||||
expect(result[0].value).toEqual('enum');
|
expect(result[0].value).toEqual('enum');
|
||||||
expect(result[1].value).toEqual('COOL');
|
expect(result[1].value).toEqual('started');
|
||||||
expect(result[2].value).toEqual('WARM');
|
expect(result[2].value).toEqual('ok');
|
||||||
|
expect(result[3].value).toEqual('ko');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue