diff --git a/services/db/localDB01Structure.sql b/services/db/localDB01Structure.sql
index 3606d2c6d..284b417dd 100644
--- a/services/db/localDB01Structure.sql
+++ b/services/db/localDB01Structure.sql
@@ -1,4 +1,4 @@
--- MySQL dump 10.13 Distrib 5.7.17, for macos10.12 (x86_64)
+-- MySQL dump 10.13 Distrib 5.7.17, for Win64 (x86_64)
--
-- Host: 127.0.0.1 Database: vncontrol
-- ------------------------------------------------------
@@ -254,6 +254,10 @@ DELIMITER ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
+--
+-- Dumping events for database 'vncontrol'
+--
+
--
-- Dumping routines for database 'vncontrol'
--
@@ -821,6 +825,10 @@ CREATE TABLE `value` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='/tmp/floricode/florecompc2/FV130916.txt';
/*!40101 SET character_set_client = @saved_cs_client */;
+--
+-- Dumping events for database 'edi'
+--
+
--
-- Dumping routines for database 'edi'
--
@@ -868,20 +876,17 @@ CREATE DEFINER=`root`@`%` PROCEDURE `batchNew`(
,vPackage INT
)
BEGIN
-/**
- * Añade un nuevo lote, genera su código de barras y
- * inserta/actualiza el registro en la tabla #vn2008.buy_edi
- */
+
DECLARE vEdi INT;
DECLARE vRewriteKop INT DEFAULT NULL;
DECLARE vBarcode CHAR(15) DEFAULT NULL;
DECLARE vIsDuplicated BOOLEAN DEFAULT FALSE;
DECLARE vUpdateExistent BOOLEAN DEFAULT FALSE;
- DECLARE CONTINUE HANDLER FOR 1062 -- ER_DUP_KEY
+ DECLARE CONTINUE HANDLER FOR 1062
SET vIsDuplicated = TRUE;
- -- Genera el código de barras
+
IF vAgj != 0 AND vAgj IS NOT NULL
THEN
@@ -897,7 +902,7 @@ BEGIN
);
END IF;
- -- Reescribe el parámetro kop
+
IF vKop IS NULL
THEN
@@ -911,7 +916,7 @@ BEGIN
SET vKop = IFNULL(vRewriteKop, vKop);
- -- Inserta el nuevo EKT
+
INSERT INTO vn2008.buy_edi SET
barcode = IFNULL(vBarcode, barcode)
@@ -947,8 +952,8 @@ BEGIN
,package = vPackage;
- -- Si el EKT está duplicado y el que habia en la tabla era uno
- -- provisional, lo actualiza con los nuevos valores.
+
+
IF NOT vIsDuplicated
THEN
@@ -1005,7 +1010,7 @@ BEGIN
WHERE id = vEdi;
END IF;
- -- Registra el lote
+
INSERT INTO batch SET
message_id = vMessage
@@ -1036,14 +1041,14 @@ BEGIN
DECLARE vPackage INT;
DECLARE vIsLot BOOLEAN;
- -- Carga los datos necesarios del EKT
+
SELECT ref, qty, package INTO vRef, vQty, vPackage
FROM vn2008.buy_edi e
LEFT JOIN item i ON e.ref = i.id
WHERE e.id = vEdi;
- -- Inserta el cubo si no existe
+
IF vPackage = 800
THEN
@@ -1067,7 +1072,7 @@ BEGIN
END IF;
END IF;
- -- Intenta obtener el artículo en base a los atributos holandeses
+
INSERT IGNORE INTO item_track SET
item_id = vRef;
@@ -1097,7 +1102,7 @@ BEGIN
AND c.Id_Article < 170000
ORDER BY l.now DESC, c.Id_Compra ASC LIMIT 1;
- -- Determina si el articulo se vende por lotes
+
IF vItem
THEN
@@ -1107,7 +1112,7 @@ BEGIN
WHERE a.Id_Article = vItem
AND t.`transaction`;
- -- Si el articulo se vende por lotes se inserta un nuevo artículo
+
IF vIsLot
THEN
@@ -1144,7 +1149,7 @@ BEGIN
END IF;
END IF;
- -- Inserta la compra asociada al EKT
+
INSERT INTO vn2008.Compres
(
@@ -1201,12 +1206,7 @@ CREATE DEFINER=`root`@`%` PROCEDURE `messageNew`(
,OUT vMessageId INT
)
BEGIN
-/**
- * Registra un correo electronico.
- *
- * @param vMailId Message-ID del correo electrónico
- * @param vSender Id del correo electrónio del remitente
- */
+
DECLARE vSenderId INT;
SELECT id INTO vSenderId FROM mail
@@ -1266,20 +1266,17 @@ CREATE DEFINER=`root`@`%` PROCEDURE `__batch_new`(
,v_package INT
)
BEGIN
-/**
- * Añade un nuevo lote, genera su código de barras y
- * inserta/actualiza el registro en la tabla #vn2008.buy_edi
- **/
+
DECLARE v_edi INT;
DECLARE v_barcode CHAR(15) DEFAULT NULL;
DECLARE v_is_duplicated BOOLEAN DEFAULT FALSE;
DECLARE v_update_existent BOOLEAN DEFAULT FALSE;
- DECLARE CONTINUE HANDLER FOR 1062 -- ER_DUP_KEY
+ DECLARE CONTINUE HANDLER FOR 1062
SET v_is_duplicated = TRUE;
- -- Genera el código de barras
+
IF v_agj != 0 AND v_agj IS NOT NULL
THEN
@@ -1300,7 +1297,7 @@ BEGIN
SELECT default_kop INTO v_kop FROM config;
END IF;
- -- Inserta el nuevo EKT
+
INSERT INTO vn2008.buy_edi SET
barcode = IFNULL(v_barcode, barcode)
@@ -1335,8 +1332,8 @@ BEGIN
,package = v_package;
- -- Si el EKT está duplicado y el que habia en la tabla era uno
- -- provisional, lo actualiza con los nuevos valores.
+
+
IF NOT v_is_duplicated
THEN
@@ -1392,7 +1389,7 @@ BEGIN
WHERE id = v_edi;
END IF;
- -- Registra el lote
+
INSERT INTO batch SET
message_id = v_message
@@ -1423,14 +1420,14 @@ BEGIN
DECLARE v_package INT;
DECLARE v_is_lot BOOLEAN;
- -- Carga los datos necesarios del EKT
+
SELECT ref, qty, package INTO v_ref, v_qty, v_package
FROM vn2008.buy_edi e
LEFT JOIN item i ON e.ref = i.id
WHERE e.id = v_edi;
- -- Inserta el cubo si no existe
+
IF v_package = 800
THEN
@@ -1454,7 +1451,7 @@ BEGIN
END IF;
END IF;
- -- Intenta obtener el artículo en base a los atributos holandeses
+
INSERT IGNORE INTO item_track SET
item_id = v_ref;
@@ -1484,7 +1481,7 @@ BEGIN
AND c.Id_Article < 170000
ORDER BY l.now DESC, c.Id_Compra ASC LIMIT 1;
- -- Determina si el articulo se vende por lotes
+
IF v_item
THEN
@@ -1494,7 +1491,7 @@ BEGIN
WHERE a.Id_Article = v_item
AND t.`transaction`;
- -- Si el articulo se vende por lotes se inserta un nuevo artículo
+
IF v_is_lot
THEN
@@ -1531,7 +1528,7 @@ BEGIN
END IF;
END IF;
- -- Inserta la compra asociada al EKT
+
INSERT INTO vn2008.Compres
(
@@ -1588,12 +1585,7 @@ CREATE DEFINER=`root`@`%` PROCEDURE `__message_new`(
,OUT v_message_id INT
)
BEGIN
-/**
- * Registra un correo electronico.
- *
- * @param v_mail_id Message-ID del correo electrónico
- * @param v_sender Id del correo electrónio del remitente
- **/
+
DECLARE v_sender_id INT;
@@ -1646,7 +1638,7 @@ CREATE TABLE `Agencias` (
PRIMARY KEY (`Id_Agencia`),
KEY `Agencias` (`Agencia`),
KEY `Vista` (`Vista`)
-) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -1982,7 +1974,7 @@ DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`Articles_nichoBeforeInsert`
BEFORE INSERT ON `Articles_nicho` FOR EACH ROW
BEGIN
- -- XXX: Intenta localizar al usuario que introduce BIO en esta tabla.
+
IF NEW.nicho IS NOT NULL AND NEW.nicho LIKE '%BIO%'
THEN
@@ -2044,7 +2036,7 @@ DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`Articles_nichoBeforeUpdate`
BEFORE UPDATE ON `Articles_nicho` FOR EACH ROW
BEGIN
- -- XXX: Intenta localizar al usuario que introduce BIO en esta tabla.
+
IF NOT (NEW.nicho <=> OLD.nicho) AND NEW.nicho LIKE '%BIO%'
THEN
@@ -2377,7 +2369,7 @@ CREATE TABLE `Clientes` (
`cplusTerIdNifFk` int(11) NOT NULL DEFAULT '1',
`isCreatedAsServed` tinyint(1) DEFAULT '0',
`hasInvoiceSimplified` tinyint(1) DEFAULT '0',
-
+ `iban` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id_cliente`),
UNIQUE KEY `IF` (`if`),
KEY `Id_Trabajador` (`Id_Trabajador`),
@@ -2402,7 +2394,7 @@ CREATE TABLE `Clientes` (
CONSTRAINT `canal_nuevo_cliente` FOREIGN KEY (`chanel_id`) REFERENCES `chanel` (`chanel_id`) ON UPDATE CASCADE,
CONSTRAINT `clientes_fk_6` FOREIGN KEY (`cplusTerIdNifFk`) REFERENCES `vn`.`cplusTerIdNif` (`id`) ON UPDATE CASCADE,
CONSTRAINT `tipos_de_cliente` FOREIGN KEY (`clientes_tipo_id`) REFERENCES `clientes_tipo` (`clientes_tipo_id`) ON UPDATE CASCADE
-) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
@@ -2477,7 +2469,7 @@ BEGIN
DECLARE vEmployee INT;
DECLARE vText VARCHAR(255) DEFAULT NULL;
- -- Comprueba que el formato de los teléfonos es válido
+
IF !(NEW.telefono <=> OLD.telefono) THEN
CALL pbx.phoneIsValid (NEW.telefono);
@@ -2491,7 +2483,7 @@ BEGIN
CALL pbx.phoneIsValid (NEW.fax);
END IF;
- -- Actualiza el crédito
+
SELECT Id_Trabajador INTO vEmployee
FROM Trabajadores WHERE user_id = account.userGetId();
@@ -2508,7 +2500,7 @@ BEGIN
Id_Trabajador = vEmployee;
END IF;
- -- Avisar al comercial si ha llegado la documentación sepa/core
+
IF NEW.sepavnl AND !OLD.sepavnl THEN
SET vText = 'Sepa de VNL';
@@ -2831,7 +2823,7 @@ DELIMITER ;;
JOIN travel T ON T.id = E.travel_id
WHERE E.Id_Entrada = NEW.Id_Entrada;
- -- Actualiza el volumen unitario
+
REPLACE bi.rotacion(Id_Article, warehouse_id, cm3)
VALUES (NEW.Id_ARticle, vWarehouse, vn2008.cm3_unidad(NEW.Id_Compra));
@@ -3062,7 +3054,7 @@ CREATE TABLE `Consignatarios` (
CONSTRAINT `Consignatarios_ibfk_4` FOREIGN KEY (`Id_Agencia`) REFERENCES `Agencias` (`Id_Agencia`) ON UPDATE CASCADE,
CONSTRAINT `Consignatarios_postcode` FOREIGN KEY (`postcode_id`) REFERENCES `postcodeKK` (`postcode_id`) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT `address_customer_id` FOREIGN KEY (`Id_cliente`) REFERENCES `Clientes` (`id_cliente`) ON UPDATE CASCADE
-) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
@@ -3181,7 +3173,7 @@ BEGIN
END IF;
END IF;
- -- Recargos de equivalencia distintos implican facturacion por consignatario
+
IF NEW.isEqualizated != OLD.isEqualizated THEN
IF
@@ -3861,14 +3853,14 @@ CREATE TABLE `Facturas` (
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `FacturasBeforeInsert`
BEFORE INSERT ON `Facturas` FOR EACH ROW
--- Edit trigger body code below this line. Do not edit lines above this one
+
BEGIN
DECLARE v_Id_Factura_serie CHAR(9) DEFAULT '0000001';
DECLARE v_Id_Factura INT;
DECLARE max_id, intLast, intProv INT;
- -- Evitamos la generacion de nuevas facturas tras el cese de actividad de EFL
+
IF NEW.empresa_id = 792 AND NEW.Fecha > '2012-12-20' THEN
SET NEW.empresa_id = 791;
END IF;
@@ -3887,7 +3879,7 @@ BEGIN
WHERE Serie LIKE NEW.Serie
AND ((Year(NEW.Fecha) = Year(Fecha)
AND length(Id_Factura) > 6
- AND empresa_id = NEW.empresa_id) /*OR (NEW.Serie LIKE 'B' AND length(Id_Factura) > 7)*/ );
+ AND empresa_id = NEW.empresa_id) );
ELSE
@@ -3895,7 +3887,7 @@ BEGIN
SELECT CONCAT(digito_factura,RIGHT(YEAR(CURDATE()),1),'00001') INTO v_Id_Factura_serie
FROM empresa WHERE id = NEW.empresa_id;
-/*Primer digito la empresa, segundo el año, despues la numeracion correlativa con 5 digitos*/
+
END IF;
@@ -3906,33 +3898,7 @@ SET NEW.Id_Factura = v_Id_Factura_serie;
-/*
- IF intProv > 0 THEN -- No contabiliza bien las facturas holandesas
- INSERT INTO recibida(proveedor_id,fecha,sref,empresa_id)
- VALUES (NEW.empresa_id,NEW.Fecha,NEW.Id_Factura,intProv);
-
- SELECT LAST_INSERT_ID() INTO intLast;
-
- IF NEW.BI7 > 0 THEN
- INSERT INTO recibida_iva(recibida_id,iva_id,bi,gastos_id)
- VALUES(intLast,57,NEW.BI7,'6001000000');
- END IF;
-
- IF NEW.BI16 > 0 THEN
- INSERT INTO recibida_iva(recibida_id,iva_id,bi,gastos_id)
- VALUES(intLast,58,NEW.BI16,'6001000000');
- END IF;
-
- INSERT INTO recibida_vencimiento(recibida_id,fecha,banco_id,cantidad)
- SELECT intLast,TIMESTAMPADD(DAY,15,NEW.Fecha),3117,SUM((1 + (IVA / 100)) * bi)
- FROM recibida r INNER JOIN recibida_iva ri ON r.id = ri.recibida_id
- INNER JOIN iva_codigo AS i ON ri.iva_id=i.id INNER JOIN Proveedores p ON p.Id_Proveedor=r.proveedor_id
- LEFT JOIN (SELECT recibida_id, SUM(cantidad) cantidad FROM recibida_vencimiento rv WHERE rv.recibida_id = intLast
- GROUP BY recibida_id) t ON t.recibida_id = r.id WHERE r.id = intLast ;
- UPDATE recibida SET contabilizada = 0 WHERE id = intLast;
- UPDATE recibida SET contabilizada = 1 WHERE id = intLast;
- END IF;
-*/
+
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -4942,14 +4908,14 @@ DELIMITER ;;
BEGIN
IF IFNULL(NEW.gestdoc_id,0) <> IFNULL(OLD.gestdoc_id,0) AND NEW.gestdoc_id > 0 THEN
- -- JGF 09/09/14 cuando se añade un gestdoc a una ruta, se le asigna automagicamente a todos sus Tickets
- -- Inserta el gestdoc en todos los tickets de la ruta
+
+
INSERT INTO tickets_gestdoc(Id_Ticket,gestdoc_id)
SELECT Id_Ticket, NEW.gestdoc_id FROM Tickets WHERE Id_Ruta = NEW.Id_Ruta
ON DUPLICATE KEY UPDATE gestdoc_id = NEW.gestdoc_id;
- -- Update del firmado
+
UPDATE Tickets t JOIN tickets_gestdoc tg ON t.Id_Ticket = tg.Id_Ticket
SET Firmado = 1 WHERE t.Id_Ruta = NEW.Id_Ruta;
END IF;
@@ -5207,25 +5173,7 @@ DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `TicketsBeforeInsert`
BEFORE INSERT ON `Tickets` FOR EACH ROW
BEGIN
-/*
- DECLARE strEspecif VARCHAR(255);
- DECLARE intId_Agencia INTEGER;
- DECLARE auxprovince INTEGER;
- DECLARE intemp INTEGER;
- -- Si el cliente es de Canarias se le asigna la empresa ORN
-
- SELECT province_id INTO auxprovince
- FROM Consignatarios WHERE Id_Consigna = NEW.Id_Consigna;
-
- IF (auxprovince = 49 OR auxprovince = 33) AND NEW.Id_Cliente <> 5270 THEN
- SET intemp = 1381;
- END IF;
-
- IF intemp THEN
- SET NEW.empresa_id = intemp;
- END IF;
- */
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -5244,24 +5192,7 @@ DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`TicketsAfterInsert`
AFTER INSERT ON `vn2008`.`Tickets` FOR EACH ROW
BEGIN
- /*
- DECLARE vEmployee INT;
-
- SELECT Id_Trabajador INTO vEmployee
- FROM Trabajadores WHERE user_id = account.userGetId();
-
- IF vEmployee IS NULL THEN
- SET vEmployee = 20;
- END IF;
-
- IF NEW.Id_Cliente = 400 OR NEW.Id_Cliente = 200
- THEN
- INSERT INTO vncontrol.inter(state_id, Id_Ticket, Id_Trabajador)
- SELECT id, NEW.Id_Ticket, vEmployee
- FROM state
- WHERE `code` = 'DELIVERED';
- END IF;
- */
+
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -5292,7 +5223,7 @@ BEGIN
SET vEmployee = 20;
END IF;
- -- Comprobación de VIES
+
IF NEW.empresa_id <> OLD.empresa_id THEN
SELECT CEE INTO vIsCee
@@ -5492,7 +5423,7 @@ CREATE TABLE `Tipos` (
/*!50003 SET sql_mode = '' */ ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `Tipos_bu` BEFORE UPDATE ON `Tipos` FOR EACH ROW
--- Edit trigger body code below this line. Do not edit lines above this one
+
BEGIN
DECLARE strCOD VARCHAR(40);
@@ -6117,7 +6048,7 @@ CREATE TABLE `agency` (
KEY `agencias_alias_idx` (`warehouse_alias_id`),
CONSTRAINT `agency_ibfk_1` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON UPDATE CASCADE,
CONSTRAINT `agency_ibfk_2` FOREIGN KEY (`Id_Banco`) REFERENCES `Bancos` (`Id_Banco`) ON UPDATE CASCADE
-) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
@@ -7312,7 +7243,7 @@ CREATE TABLE `client_observation` (
KEY `Id_Cliente` (`Id_Cliente`),
CONSTRAINT `client_observation_ibfk_1` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `client_observation_ibfk_2` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE
-) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Todas las observaciones referentes a un ticket';
+) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Todas las observaciones referentes a un ticket';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -8089,7 +8020,7 @@ CREATE TABLE `expeditions` (
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `expeditionsBeforeInsert`
BEFORE INSERT ON `expeditions` FOR EACH ROW
--- Edit trigger body code below this line. Do not edit lines above this one
+
BEGIN
DECLARE intcounter INT;
@@ -8122,7 +8053,7 @@ DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`expeditionsBeforeUpdate`
BEFORE UPDATE ON `vn2008`.`expeditions`
FOR EACH ROW
--- Edit trigger body code below this line. Do not edit lines above this one
+
BEGIN
IF NEW.counter <> OLD.counter THEN
IF (SELECT COUNT(*) FROM expeditions e
@@ -8179,7 +8110,7 @@ BEGIN
UPDATE Tickets SET Bultos = (SELECT COUNT(counter)-1 FROM expeditions WHERE ticket_id = OLD.ticket_id and EsBulto) WHERE Id_Ticket = OLD.ticket_id;
INSERT INTO Tickets_dits (idaccion_dits,Id_Trabajador,Id_Ticket,value_old,value_new)
- SELECT 133/*Borra expedition*/ ,trabajador,OLD.ticket_id,CONCAT(OLD.odbc_date,',Bultos:',OLD.counter,',Embalaje:',OLD.EsBulto),user()
+ SELECT 133 ,trabajador,OLD.ticket_id,CONCAT(OLD.odbc_date,',Bultos:',OLD.counter,',Embalaje:',OLD.EsBulto),user()
FROM Tickets
WHERE Id_Ticket = OLD.ticket_id ;
@@ -8366,7 +8297,7 @@ BEGIN
SET NEW.orden = IFNULL(intORD,1) ;
END IF;
--- Marca Firmado a uno cada vez que se escanea un Ticket de forma que desaparezca del TNAC JGF 27/08/13
+
IF NEW.gesttip_id = 14 THEN
UPDATE Tickets SET Firmado = 1 WHERE Id_Ticket = NEW.sref;
END IF;
@@ -9000,7 +8931,7 @@ CREATE TABLE `movement_label` (
/*!50003 SET sql_mode = '' */ ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `movement_label_au` AFTER UPDATE ON `movement_label` FOR EACH ROW
--- Edit trigger body code below this line. Do not edit lines above this one
+
IF NEW.stem >= (SELECT Cantidad FROM Movimientos WHERE Id_Movimiento = NEW.Id_Movimiento) THEN
UPDATE Movimientos SET OK = 1 WHERE Id_Movimiento = NEW.Id_Movimiento;
END IF */;;
@@ -9169,7 +9100,7 @@ CREATE TABLE `pago` (
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `pago_bi` BEFORE INSERT ON `pago` FOR EACH ROW
--- Edit trigger body code below this line. Do not edit lines above this one
+
BEGIN
DECLARE cuenta_banco,cuenta_proveedor DOUBLE;
DECLARE max_asien INT;
@@ -9177,10 +9108,10 @@ BEGIN
- -- PAK 10/02/15 No se asientan los pagos directamente, salvo en el caso de las cajas de CASH
+
SELECT (cash = 1) INTO bolCASH FROM Bancos WHERE Bancos.Id_Banco = NEW.id_banco ;
- IF bolCASH THEN -- AND NEW.id_pago <> 1
+ IF bolCASH THEN
SELECT Cuenta INTO cuenta_banco FROM Bancos WHERE Id_Banco = NEW.id_banco;
SELECT Cuenta INTO cuenta_proveedor FROM Proveedores WHERE Id_Proveedor=NEW.id_proveedor;
@@ -10002,7 +9933,7 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `recibida_bu` BEFORE UPDATE ON `recibida` FOR EACH ROW
--- Edit trigger body code below this line. Do not edit lines above this one
+
BEGIN
DECLARE cta_proveed VARCHAR(10);
@@ -10021,347 +9952,7 @@ BEGIN
SET NEW.num_recibida = NULL;
SET NEW.contabilizada = FALSE ;
END IF;
-/*
-IF NEW.contabilizada = 1 AND OLD.contabilizada = 0 AND NEW.fecha < '2017-07-01' THEN
- SELECT rate INTO dblRefRate FROM reference_rate WHERE date = (SELECT MAX(date) FROM reference_rate
- WHERE date <= (SELECT t.shipment FROM
- recibida_entrada re
- INNER JOIN Entradas e ON e.Id_Entrada = re.Id_Entrada
- LEFT JOIN travel t ON t.id = e.travel_id
- WHERE re.awb_recibida = NEW.id GROUP BY re.awb_recibida));
-
- SELECT rate INTO dblRefMin FROM reference_min WHERE date=(SELECT MAX(date) FROM reference_min
- WHERE date<=(SELECT t.shipment FROM
- recibida_entrada re
- INNER JOIN Entradas e ON e.Id_Entrada = re.Id_Entrada
- LEFT JOIN travel t ON t.id = e.travel_id
- WHERE re.awb_recibida = NEW.id GROUP BY re.awb_recibida));
-
- -- IF dblRefMin < dblRefRate THEN
- -- SET dblRef = dblRefRate;
- -- ELSE
- -- SET dblRef =dblRefMin;
- -- END IF;
- SELECT IFNULL(MAX(r.num_recibida) + 1,1) INTO v_num_recibida FROM recibida r
- WHERE r.serie LIKE NEW.serie
- AND YEAR(r.fecha) = YEAR(NEW.fecha)
- AND r.empresa_id = NEW.empresa_id GROUP BY r.empresa_id;
-
- SET NEW.num_recibida = IFNULL(v_num_recibida,1);
- SELECT REPLACE(cuenta,' ','') INTO cta_proveed FROM Proveedores WHERE Id_Proveedor=NEW.proveedor_id;
-
- INSERT INTO XDiario(ASIEN,FECHA,SUBCTA,CONTRA,CONCEPTO,EURODEBE, EUROHABER,BASEEURO, SERIE,FACTURA,IVA,DOCUMENTO,
- L340,LRECT349,TIPOOPE,AUXILIAR,empresa_id,LDIFADUAN)
-SELECT a,NEW.fecha,subcta,contra,concepto,eurodebe,eurohaber,baseeuro,serie,NEW.sref,iva,
- (SELECT CONCAT(serie,'/', LPAD(v_num_recibida,5,'0'))),l340,LRECT349,TIPOOPE,AUXILIAR,NEW.empresa_id,LDIFADUAN
- FROM
-
- (SELECT MAX(ASIEN) + 1 as a FROM XDiario) t
-
- INNER JOIN
-
- (
-
- SELECT *,NEW.serie,0 LDIFADUAN FROM
-
- (SELECT CONCAT('s/fra',RIGHT(sref,8),':',LEFT(Proveedor, 10)) concepto FROM Proveedores
-
- INNER JOIN recibida ON Id_Proveedor = proveedor_id WHERE id = NEW.id) t4
-
- INNER JOIN(
- -- Linea del proveedor/acreedor
- SELECT subcta,'' contra,eurodebe,ROUND(SUM(eurohaber) + 0.0001,2) eurohaber,baseeuro,0 iva, l340,LRECT349,TIPOOPE,'' AUXILIAR
-
- FROM (
-
- SELECT cta_proveed subcta,
-
- NULL eurodebe, ROUND((1+(iva/100)*(r.serie = 'R'))*SUM(bi),2) eurohaber, NULL baseeuro,ri.recibida_id, 0 l340,0 LRECT349,' ' TIPOOPE
-
- FROM recibida r
-
- INNER JOIN recibida_iva ri ON ri.recibida_id = r.id INNER JOIN iva_codigo ic ON ri.iva_id = ic.id
-
- INNER JOIN Proveedores p ON p.Id_Proveedor=r.proveedor_id
- INNER JOIN Proveedores p2 ON p2.Id_Proveedor = r.empresa_id
-
- WHERE r.id = NEW.id GROUP BY iva) t
-
- GROUP BY recibida_id
-
- UNION ALL
- -- Linea de iva
- SELECT ic.codigo,cta_proveed contra,
-
- ROUND(iva/100*SUM(ri.bi) + 0.0001,2) eurodebe, NULL eurohaber,
-
- ROUND(SUM(ri.bi),2) baseeuro,iva, 1 l340,(NOT ((p.pais_id <> p2.pais_id) AND pa.CEE < 2)) LRECT349,TIPOOPE,
- IF(pa.CEE < 2 AND ri2.gastos_id IS NULL,'','*') AUXILIAR
- FROM recibida r
-
- INNER JOIN recibida_iva ri ON ri.recibida_id = r.id
-
- LEFT JOIN recibida_iva ri2 ON ri2.recibida_id = r.id AND ri2.gastos_id LIKE '4751______'
-
- INNER JOIN iva_codigo ic ON ri.iva_id = ic.id
-
- INNER JOIN iva_tipo it ON it.id = ic.iva_tipo_id
-
- INNER JOIN Gastos g ON ri.gastos_id = g.Id_Gasto AND g.iva_tipo_id = ic.iva_tipo_id
-
- INNER JOIN Proveedores p ON p.Id_Proveedor=r.proveedor_id
-
- INNER JOIN Paises pa ON p.pais_id = pa.Id
-
- INNER JOIN Proveedores p2 ON p2.Id_Proveedor = r.empresa_id
-
- INNER JOIN Paises pa2 ON p2.pais_id = pa2.Id
- WHERE r.id = NEW.id AND ic.tipo <> '-' AND link GROUP BY iva
- -- JGF 2016-05-05 g.conbase
- UNION ALL
- -- Linea iva inversor sujeto pasivo
- SELECT ic2.codigo,cta_proveed contra,
-
- NULL eurodebe, ROUND(ic2.iva/100*SUM(bi) + 0.0001,2) eurohaber,
-
- ROUND(SUM(bi),2) baseeuro,ic2.iva, 1 l340,0 LRECT349,TIPOOPE,'*' AUXILIAR
-
- FROM recibida r
-
- INNER JOIN recibida_iva ri ON ri.recibida_id = r.id
-
- INNER JOIN iva_codigo ic ON ri.iva_id = ic.id
-
- INNER JOIN iva_codigo ic2 ON ic2.link = ic.link AND ic.id <> ic2.id
-
- INNER JOIN iva_tipo it ON ic.iva_tipo_id = it.id
-
- WHERE r.id = NEW.id AND ic2.link GROUP BY ic2.iva
-
- UNION ALL
- -- Linea de Gastos
- SELECT if(gastos_id LIKE '4751______',LPAD(RIGHT(cta_proveed ,5),10,gastos_id),gastos_id),cta_proveed ,
-
- if(gastos_id LIKE '4751______',NULL,ABS(ROUND(SUM(bi),2))) ,
-
- if(gastos_id LIKE '4751______',ABS(ROUND(SUM(bi),2)),NULL) ,
-
- NULL ,0, 0 l340,0 LRECT349,' ' TIPOOPE,'' AUXILIAR
-
- FROM recibida r
-
- INNER JOIN recibida_iva ri ON ri.recibida_id = r.id
-
- INNER JOIN Proveedores p ON p.Id_Proveedor=r.proveedor_id
-
- WHERE r.id = NEW.id AND gastos_id <> 5660000002 GROUP BY gastos_id
-
- UNION ALL
- -- Iva Importacion pendiente
- -- JGF 17/02/15 cambia la forma de declarar este tipo de importaciones, sólo afecta a transitarios
- SELECT '4700000999',NULL,NULL ,ROUND(SUM(importe * (iva/100)),2),NULL ,0, 0 l340,0 LRECT349,' ' TIPOOPE,'' AUXILIAR
-
- FROM recibida r
- JOIN recibida_intrastat ri ON r.id = ri.recibida_id
- JOIN Intrastat i ON i.Codintrastat = ri.Codintrastat
- JOIN iva_codigo ic ON ic.id = i.iva_codigo_id
- WHERE ri.recibida_id = NEW.id GROUP BY ri.recibida_id
-
- ) t2
-
- UNION ALL
-
-
- -- Extracomunitarias gasto contra proveedor/acreedor
- SELECT CONCAT('COMPRA s/fra ',sref,':',LEFT(p.Proveedor, 10)) concepto ,gastos_id,cuenta,
-
- ROUND(SUM(bi)/IF(r.serie='W' AND ri.divisa IS NULL,dblRefRate,1)* (re.percentage / 100),2),NULL ,IF( @a:=@a+1 ,NULL,NULL) ,0, 0 l340,0 LRECT349,' ' TIPOOPE,'' AUXILIAR,r.serie,0 LDIFADUAN
-
- FROM recibida_entrada re
-
- INNER JOIN recibida_iva ri ON re.recibida_id = ri.recibida_id
-
- INNER JOIN recibida r ON r.id = ri.recibida_id
-
- INNER JOIN Proveedores p ON p.Id_Proveedor = r.proveedor_id
-
- INNER JOIN Entradas e ON e.Id_Entrada = re.Id_Entrada
-
- LEFT JOIN travel t ON t.id = e.travel_id
-
- INNER JOIN (SELECT @a:=0,@cont:=1,@total:=0,@base:=2) t1
-
- WHERE re.awb_recibida = NEW.id AND re.percentage GROUP BY r.id
-
-UNION ALL
-
- -- Extracomunitarias proveedor contra gasto
- SELECT CONCAT('COMPRA s/fra ',sref,':',LEFT(p.Proveedor, 10)) concepto ,p.cuenta subcta,gastos_id,
-
- NULL eurodebe, ROUND((1+(iva/100)*(r.serie = 'R'))*SUM(bi)/IF(r.serie='W' AND ri.divisa IS NULL,dblRefRate,1)* (re.percentage / 100),2) eurohaber,
-
- NULL baseeuro,0 iva, 0 l340,0 LRECT349,' ' TIPOOPE,'' AUXILIAR,r.serie,0 LDIFADUAN
- -- antes sols iva
- FROM recibida_entrada re
-
- INNER JOIN recibida_iva ri ON re.recibida_id = ri.recibida_id
-
- INNER JOIN recibida r ON r.id = ri.recibida_id
-
- INNER JOIN iva_codigo ic ON ri.iva_id = ic.id
-
- INNER JOIN Proveedores p ON Id_Proveedor = r.proveedor_id
-
- INNER JOIN Proveedores p2 ON p2.Id_Proveedor = r.empresa_id
-
- WHERE re.awb_recibida = NEW.id AND re.percentage GROUP BY r.id
-
-UNION ALL
-
- -- Linea de iva adquisicion
- SELECT CONCAT('ADQUI. INTRA FRA ',sref),ic.codigo,p.cuenta contra,
-
- ROUND(iva/100*SUM(ri.importe) + 0.0001,2) eurodebe, NULL eurohaber,
-
- ROUND(SUM(ri.importe),2) baseeuro,iva, 1 l340,1 LRECT349,TIPOOPE,'' AUXILIAR,r.serie,0 LDIFADUAN
-
- FROM awb_recibida ar
-
- JOIN awb a ON ar.awb_id = a.id
-
- JOIN iva_codigo ic ON a.iva_id = ic.id
-
- JOIN iva_tipo it ON ic.iva_tipo_id = it.id
-
- JOIN Proveedores p ON a.transitario_id = p.Id_Proveedor
-
- JOIN recibida_intrastat ri ON ri.recibida_id = ar.recibida_id
-
- JOIN recibida r ON r.id = ri.recibida_id
-
- JOIN Proveedores p2 ON p2.Id_Proveedor = r.empresa_id
-
- WHERE ar.recibida_id = NEW.id AND (p.pais_id <> p2.pais_id)
- GROUP BY iva
-
- UNION ALL
-
- -- Linea de iva adquisicion
- SELECT CONCAT('ADQUI. INTRA FRA ',sref),ic2.codigo,p.cuenta contra,
-
- NULL eurodebe, ROUND(ic2.iva/100*SUM(ri.importe) + 0.0001,2) eurohaber,
-
- ROUND(SUM(ri.importe),2) baseeuro,ic2.iva, 1 l340,0 LRECT349, TIPOOPE,'' AUXILIAR,r.serie,0 LDIFADUAN
-
- FROM awb_recibida ar
-
- JOIN awb a ON ar.awb_id = a.id
-
- JOIN iva_codigo ic ON a.iva_id = ic.id
-
- JOIN iva_codigo ic2 ON ic2.link = ic.link AND ic.id <> ic2.id
-
- JOIN iva_tipo it ON ic.iva_tipo_id = it.id
-
- JOIN Proveedores p ON a.transitario_id = p.Id_Proveedor
-
- JOIN recibida_intrastat ri ON ri.recibida_id = ar.recibida_id
-
- JOIN recibida r ON r.id = ar.recibida_id
-
- JOIN Proveedores p1 ON p1.Id_Proveedor = r.proveedor_id
-
- JOIN Proveedores p2 ON p2.Id_Proveedor = r.empresa_id
-
- WHERE ar.recibida_id = NEW.id AND (p.pais_id <> p2.pais_id) GROUP BY ic2.iva
-
- UNION ALL
- -- Linea iva importacion
- SELECT concepto,subcta,Cuenta,
- IF (NOT ((ppais_id <> p2pais_id) AND CEE < 2),
-
- eurodebe
- ,NULL)eurodebe,eurohaber,baseeuro, iva,
- IF(@total:=@total+eurodebe ,0,0) l340, 0 LRECT349,
- IF(@cont:=@cont+1,'','') TIPOOPE,'*' AUXILIAR,serie,1 LDIFADUAN FROM (
-
- SELECT CONCAT('COMPRA FRA ',p.Proveedor) concepto,ic2.codigo subcta,p.Cuenta,ic2.iva,
- ROUND(sum(costefijo * Cantidad / sub1.costetotal * sub2.importe)*(ic2.iva/100),2) eurodebe,NULL eurohaber, -- JGF 17/02/15 canvie 0.21 per ic.iva
- ROUND(sum(costefijo * Cantidad / sub1.costetotal * sub2.importe),2) baseeuro,r.serie,pa.CEE,pa.Id_Paisreal ppais_id,
- p2.pais_id p2pais_id,SUM(sub3.SumIntrastat *(ic2.iva/100)) SumIntrastat, p.Id_Proveedor,Codintrastat
-
- FROM awb_recibida ar
-
- JOIN recibida_entrada re ON ar.recibida_id = re.awb_recibida
-
- JOIN Compres c ON c.Id_Entrada = re.Id_Entrada
-
- INNER JOIN Articles a ON a.Id_Article = c.Id_Article
-
- INNER JOIN (
-
- SELECT a.Codintrastat, sum(c.costefijo * c.Cantidad) as costetotal
-
- FROM Compres c
-
- JOIN Articles a ON a.Id_Article = c.Id_Article
-
- JOIN recibida_entrada re ON re.Id_Entrada = c.Id_Entrada
-
- JOIN awb_recibida ar ON ar.recibida_id = re.awb_recibida
-
- JOIN awb aw ON ar.awb_id = aw.id
-
- WHERE ar.recibida_id = NEW.id AND re.percentage
-
- GROUP BY a.Codintrastat
-
- ) sub1 USING(Codintrastat)
-
- INNER JOIN (
-
- SELECT Codintrastat,ri.importe, i.iva_codigo_id
-
- FROM recibida_intrastat ri
- JOIN Intrastat i USING(Codintrastat)
-
- WHERE ri.recibida_id = NEW.id
-
- ) sub2 USING(Codintrastat)
-
- INNER JOIN (
-
- SELECT SUM(ri.importe) SumIntrastat
-
- FROM recibida_intrastat ri
-
- WHERE ri.recibida_id = NEW.id
-
- ) sub3
-
- JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada
-
- JOIN Proveedores p ON p.Id_Proveedor = e.Id_Proveedor
-
- JOIN Paises pa ON p.pais_id = pa.Id
-
- JOIN recibida r ON r.id = re.recibida_id
-
- JOIN Proveedores p2 ON p2.Id_Proveedor = r.empresa_id
-
- JOIN iva_codigo ic2 ON ic2.id = sub2.iva_codigo_id -- JGF 15/04/15 nou canvi llei (Ali)
-
- WHERE re.awb_recibida = NEW.id AND re.percentage
- -- canvie el cta_proveed like '___1______' per cero cuidao en les van de put
-
- GROUP BY p.Id_Proveedor, sub2.iva_codigo_id
-
-) t3 GROUP BY Id_Proveedor, iva)t4;
-
--- linea que estava a l'ultim WHERE
-END IF;
-*/
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -11486,7 +11077,7 @@ DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `travelBeforeInsert`
BEFORE INSERT ON `travel` FOR EACH ROW
BEGIN
- -- Evita fechas absurdas
+
IF NEW.landing < TIMESTAMPADD(YEAR, -10, CURDATE())
OR NEW.shipment < TIMESTAMPADD(YEAR, -10, CURDATE())
@@ -11514,13 +11105,13 @@ DELIMITER ;;
BEGIN
DECLARE trabajador INT;
- -- Volem permetre dates iguals de eixida i arribada per al magatzems filiats en warehouse_tree
+
IF NEW.landing < NEW.shipment THEN
SET NEW.shipment = NEW.landing;
END IF;
- -- Evita fechas absurdas
+
IF NEW.landing < TIMESTAMPADD(YEAR,-10, CURDATE())
OR NEW.shipment < TIMESTAMPADD(YEAR,-10,CURDATE())
@@ -11528,14 +11119,14 @@ BEGIN
SET NEW.landing = NULL;
END IF;
- -- Ditacio para averiguar cuando se marca como delivered = true los travels, pues aparecen por la mañana sin explicacion
+
IF ABS(NEW.delivered) > ABS(OLD.delivered)
THEN
SELECT Id_Trabajador into trabajador from Trabajadores where user_id = account.userGetId();
INSERT INTO travel_dits (idaccion_dits,Id_Trabajador,Id_Ticket,value_old,value_new)
- VALUES (89/*Cambia delivered*/ ,IFNULL(trabajador,20),NEW.id,OLD.delivered,CONCAT(NEW.delivered,' desde ' ,user()));
+ VALUES (89 ,IFNULL(trabajador,20),NEW.id,OLD.delivered,CONCAT(NEW.delivered,' desde ' ,user()));
END IF;
END */;;
DELIMITER ;
@@ -13097,6 +12688,10 @@ CREATE TABLE `zones` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Zonas de reparto';
/*!40101 SET character_set_client = @saved_cs_client */;
+--
+-- Dumping events for database 'vn2008'
+--
+
--
-- Dumping routines for database 'vn2008'
--
@@ -13124,15 +12719,15 @@ DECLARE strSambaNombre VARCHAR(30);
samba:BEGIN
proc:BEGIN
- -- IF (boolCrearSamba) THEN
- -- SELECT Id_Cliente_Interno INTO intId_Cliente FROM Trabajadores WHERE Nombre=strNombre and Apellidos=strApellidos;
- -- SELECT CONCAT(IF(INSTR(StrApellidos,' ')=0,StrApellidos,LEFT(strApellidos,INSTR(StrApellidos,' ')-1)),'.',intId_Cliente) INTO strPassword;
- -- LEAVE proc;
- -- END IF;
--- Tabla Clientes
+
+
+
+
+
+
SELECT COUNT(*) INTO intId_Cliente FROM Clientes WHERE `IF`=strDni;
IF (intId_Cliente=0) THEN
- -- SELECT IFNULL(province_id,1) INTO intprovince_id FROM province WHERE `name`=strProvincia;
+
SELECT MAX(Id_Cliente)+1 INTO intId_Cliente FROM Clientes WHERE Id_Cliente<999999;
INSERT INTO Clientes (Id_Cliente,Cliente,Domicilio,`IF`,Telefono,province_id,Poblacion,CodPostal,RazonSocial,Contacto,Oficial,Descuento)
@@ -13144,7 +12739,7 @@ END IF;
SELECT CONCAT(IF(INSTR(StrApellidos,' ')=0,StrApellidos,LEFT(strApellidos,INSTR(StrApellidos,' ')-1)),'.',intId_Cliente) INTO strPassword;
--- Tabla Trabajadores
+
IF (SELECT COUNT(*) FROM Trabajadores WHERE Nombre=strNombre AND Apellidos=strApellidos)=0 THEN
IF strCodTrabajador IS NULL THEN
@@ -13162,13 +12757,13 @@ IF (SELECT COUNT(*) FROM Trabajadores WHERE Nombre=strNombre AND Apellidos=strAp
ELSE
SET RETORNO="CodigoTrabajador Existente";
END IF;
- -- LEAVE SAMBA;
-END; -- PROC
+
+END;
+
+
--- Tabla Account, lo crea como usuario y en samba
--- Obtengo el nombre sin espacios
SET strSambaNombre = REPLACE(strNombre,' ','');
-IF (SELECT COUNT(*) FROM account.user WHERE `name`=convert(strNombre USING utf8) COLLATE utf8_general_ci)>0 THEN -- Si existe cojo la inicial del nombre+1º apellido
+IF (SELECT COUNT(*) FROM account.user WHERE `name`=convert(strNombre USING utf8) COLLATE utf8_general_ci)>0 THEN
SELECT CONCAT(LEFT(strNombre,1),CONCAT(IF(INSTR(StrApellidos,' ')=0,StrApellidos,LEFT(strApellidos,INSTR(StrApellidos,' ')-1)),intId_Cliente))
INTO strSambaNombre;
END IF;
@@ -13186,7 +12781,7 @@ END IF;
REPLACE INTO account.mailAliasAccount(mailAlias, account) VALUES (48,intId_Cliente);
-END; -- samba
+END;
RETURN RETORNO;
END ;;
@@ -13219,15 +12814,15 @@ DECLARE strSambaNombre VARCHAR(30);
samba:BEGIN
proc:BEGIN
- -- IF (boolCrearSamba) THEN
- -- SELECT Id_Cliente_Interno INTO intId_Cliente FROM Trabajadores WHERE Nombre=strNombre and Apellidos=strApellidos;
- -- SELECT CONCAT(IF(INSTR(StrApellidos,' ')=0,StrApellidos,LEFT(strApellidos,INSTR(StrApellidos,' ')-1)),'.',intId_Cliente) INTO strPassword;
- -- LEAVE proc;
- -- END IF;
--- Tabla Clientes
+
+
+
+
+
+
SELECT COUNT(*) INTO intId_Cliente FROM Clientes WHERE `IF`=strDni;
IF (intId_Cliente=0) THEN
- -- SELECT IFNULL(province_id,1) INTO intprovince_id FROM province WHERE `name`=strProvincia;
+
SELECT MAX(Id_Cliente)+1 INTO intId_Cliente FROM Clientes WHERE Id_Cliente<999999;
INSERT INTO Clientes (Id_Cliente,Cliente,Domicilio,`IF`,Telefono,province_id,Poblacion,CodPostal,RazonSocial,Contacto,Oficial,Descuento)
@@ -13239,7 +12834,7 @@ END IF;
SELECT CONCAT(IF(INSTR(StrApellidos,' ')=0,StrApellidos,LEFT(strApellidos,INSTR(StrApellidos,' ')-1)),'.',intId_Cliente) INTO strPassword;
--- Tabla Trabajadores
+
IF (SELECT COUNT(*) FROM Trabajadores WHERE Nombre=strNombre AND Apellidos=strApellidos)=0 THEN
IF strCodTrabajador IS NULL THEN
@@ -13257,13 +12852,13 @@ IF (SELECT COUNT(*) FROM Trabajadores WHERE Nombre=strNombre AND Apellidos=strAp
ELSE
SET RETORNO="CodigoTrabajador Existente";
END IF;
- -- LEAVE SAMBA;
-END; -- PROC
+
+END;
+
+
--- Tabla Account, lo crea como usuario y en samba
--- Obtengo el nombre sin espacios
SET strSambaNombre = REPLACE(strNombre,' ','');
-IF (SELECT COUNT(*) FROM account.user WHERE `name`=convert(strNombre USING utf8) COLLATE utf8_general_ci)>0 THEN -- Si existe cojo la inicial del nombre+1º apellido
+IF (SELECT COUNT(*) FROM account.user WHERE `name`=convert(strNombre USING utf8) COLLATE utf8_general_ci)>0 THEN
SELECT CONCAT(LEFT(strNombre,1),CONCAT(IF(INSTR(StrApellidos,' ')=0,StrApellidos,LEFT(strApellidos,INSTR(StrApellidos,' ')-1)),intId_Cliente))
INTO strSambaNombre;
END IF;
@@ -13281,7 +12876,7 @@ END IF;
REPLACE INTO account.mailAliasAccount(mailAlias, account) VALUES (48,intId_Cliente);
-END; -- samba
+END;
RETURN RETORNO;
END ;;
@@ -13383,14 +12978,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `Averiguar_ComercialCliente`(v_customer INT, v_date DATE) RETURNS varchar(3) CHARSET utf8
DETERMINISTIC
BEGIN
-/**
- * Dado un id cliente y una fecha, devuelve su comercial.
- * Para más información ir a Averiguar_ComercialCliente_Id()
- *
- * @param v_customer El id del cliente
- * @param v_date Fecha a comprobar
- * @return El código del comercial para la fecha dada
- **/
+
DECLARE v_employee CHAR(3);
DECLARE v_salesperson INT;
@@ -13421,20 +13009,12 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `Averiguar_ComercialCliente_Id`(v_customer INT, v_date DATE) RETURNS int(11)
DETERMINISTIC
BEGIN
-/**
- * Dado un id cliente y una fecha, devuelve su comercial para ese dia, teniendo
- * en cuenta la jerarquía de las tablas: 1º la de sharingclient, 2º la de
- * sharingcart y tercero la de clientes.
- *
- * @param v_customer El id del cliente
- * @param v_date Fecha a comprobar
- * @return El id del comercial para la fecha dada
- **/
+
DECLARE v_salesperson INT DEFAULT NULL;
DECLARE v_substitute INT DEFAULT NULL;
DECLARE v_loop BOOLEAN;
- -- Obtiene el comercial original y el de sharingclient
+
SELECT c.Id_Trabajador, s.Id_Trabajador
INTO v_salesperson, v_substitute
@@ -13446,7 +13026,7 @@ BEGIN
ORDER BY s.id
LIMIT 1;
- -- Si no hay ninguno en sharingclient busca en sharingcart
+
IF v_substitute IS NOT NULL
THEN
@@ -13507,14 +13087,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `Averiguar_ComercialCliente_IdTicket`(v_ticket INT) RETURNS varchar(3) CHARSET utf8
DETERMINISTIC
BEGIN
-/**
- * Dado un id ticket, devuelve su comercial.
- * Para más información ir a Averiguar_ComercialCliente_Id()
- *
- * @param v_customer El id del cliente
- * @param v_date Fecha a comprobar
- * @return El código del comercial para la fecha dada
- **/
+
DECLARE v_customer INT;
DECLARE v_date DATE;
@@ -13542,14 +13115,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `Averiguar_ComercialCliente_IdTicket_Id`(v_ticket INT) RETURNS int(11)
DETERMINISTIC
BEGIN
-/**
- * Dado un id ticket, devuelve su comercial.
- * Para más información ir a Averiguar_ComercialCliente_Id()
- *
- * @param v_customer El id del cliente
- * @param v_date Fecha a comprobar
- * @return El id del comercial para la fecha dada
- **/
+
DECLARE v_customer INT;
DECLARE v_date DATE;
@@ -13577,7 +13143,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `Averiguar_Comprador`(idARTICLE INT) RETURNS varchar(3) CHARSET utf8
BEGIN
--- Devuelve la abreviatura del comprador del articulo
+
DECLARE buyer VARCHAR(3);
@@ -13651,18 +13217,18 @@ BEGIN
SELECT Id_Cliente INTO vCustomer FROM Consignatarios WHERE Id_Consigna = vConsigna;
- -- Recobro
+
SELECT ROUND(LEAST(recobro,0.25), 3) INTO vRecovery
FROM bi.claims_ratio
WHERE Id_Cliente = vCustomer AND recobro > 0.009;
- -- Componente de maná automático, en función del maná acumulado por el comercial.
+
SELECT ROUND(prices_modifier_rate, 3) INTO vMana
FROM Clientes c
JOIN bs.mana_spellers ms ON c.Id_Trabajador = ms.Id_Trabajador
WHERE ms.prices_modifier_activated AND c.Id_Cliente = vCustomer;
- -- Reparto
+
SELECT COEFICIENTE_DE_INFLACION_GENERAL
* ROUND(
vM3
@@ -13675,8 +13241,8 @@ BEGIN
JOIN vn2008.Agencias_province ap ON ap.agency_id = a.agency_id AND ap.warehouse_id = vWarehouse AND ap.province_id = c.province_id
JOIN vn2008.Agencias_zonas az ON az.Id_Agencia = vAgencia AND az.zona = ap.zona AND az.Id_Article = 71 AND az.warehouse_id = vWarehouse;
- -- Modificacion de precio por dia de preparacion del pedido
- -- No aplicada
+
+
SET vCost = ((vRetailedPrice - vPort) / ( 1 + (vRecovery + vMana))) - vMargin;
@@ -13743,12 +13309,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `buyingAbsoluteCost`(vCompra BIGINT) RETURNS int(11)
BEGIN
-/**
- * Devuelve el coste completo de una compra
- *
- * @param vCompra Id_Compra a calcular
- * @return Suma de los 4 componentes del coste
- */
+
DECLARE vCost DOUBLE;
@@ -13967,8 +13528,7 @@ BEGIN
END IF;
IF idART > 6000000 THEN
- /*SELECT Id_Article INTO idchecked
- FROM Compres WHERE Id_Compra = idART;*/
+
SET idchecked = CAST(idART AS SIGNED);
ELSE
SET idchecked = CAST(idART AS SIGNED);
@@ -14150,15 +13710,7 @@ CREATE DEFINER=`root`@`%` FUNCTION `getBouquetId`(
vColour VARCHAR(5)
) RETURNS int(11)
BEGIN
-/**
- * De vuelve el ID del ramo. Si no existe uno parecido, lo crea.
- *
- * @param vName Nombre del artículo
- * @param vType Tipo de flor/planta
- * @param vSize Tamaño del ramo
- * @param vColour Color del ramo
- * @return ID del ramo
- */
+
DECLARE bouquetId INT(11);
CALL vn2008.createBouquet(vName, vType, vSize, vColour, @vItem);
@@ -14329,7 +13881,7 @@ DECLARE n DOUBLE;
select ROUND(intUNIDADES / (sum(MEDIA) / count(media)),2) into n from (
select *, unidades / neto MEDIA FROM intrastat_data WHERE intrastat_id = intINSTRASTAT and neto and unidades > 0 ORDER BY odbc_date DESC limit 50) t;
--- JGF 01/06 per a evitar Kg en negatiu
+
RETURN n/2;
END ;;
@@ -14590,51 +14142,7 @@ BEGIN
RETURN dblprice;
-/*
- DECLARE intId_Agencia INT;
- DECLARE int_agency_id SMALLINT;
- DECLARE int_province_id SMALLINT;
- DECLARE bolCOD71 TINYINT(1);
- DECLARE intPorte DOUBLE DEFAULT -1;
- DECLARE dayofweek TINYINT(1) default 0;
- DECLARE suplemento DOUBLE DEFAULT 9.41;
- DECLARE strCodPostal VARCHAR(5);
- DECLARE intWarehouse_id SMALLINT;
- DECLARE dbldescuento DOUBLE DEFAULT 0;
- DECLARE intVista TINYINT(1);
- DECLARE dblvolumen DOUBLE;
- SET @porte := 0;
- SELECT a.agency_id, t.Id_Agencia, cod71, Porte,c.CODPOSTAL,t.warehouse_id,c.province_id,cli.Descuento,IFNULL(ag.Vista,a.Vista), por_volumen
- INTO int_agency_id,intId_Agencia, bolCOD71,intPorte,strCodPostal,intWarehouse_id,int_province_id,dbldescuento,intVista,dblvolumen
- FROM Tickets t
- JOIN Consignatarios c USING(Id_Consigna)
- JOIN Agencias a ON t.Id_Agencia = a.Id_Agencia
- JOIN agency agn ON agn.agency_id = a.agency_id
- JOIN Clientes cli on c.Id_Cliente=cli.Id_Cliente
- LEFT JOIN agency_warehouse ag ON ag.agency_id = a.agency_id
- WHERE Id_Ticket = intId_Ticket limit 1;
-
-
-
-
- IF bolCOD71 THEN
-
- IF intId_Agencia = 47 THEN -- Si es viaxpress
- SELECT price INTO dblprice FROM Agencias_zonas az INNER JOIN viaxpress USING(zona)
- WHERE Id_Agencia = 47 AND codigo_postal = strCodPostal AND az.warehouse_id = intWarehouse_id;
- ELSE
- SELECT price INTO dblprice FROM Agencias_zonas az
- WHERE Id_Agencia = intId_Agencia AND 71 = Id_Article AND az.warehouse_id = intWarehouse_id
- AND zona = (SELECT zona FROM Agencias_province
- WHERE warehouse_id = intWarehouse_id AND agency_id = int_agency_id and province_id = int_province_id);
- END IF;
-
- ELSE
- SELECT 0 INTO dblprice;
- END IF;
-
- */
END ;;
@@ -14681,11 +14189,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `risk`(datMax DATE, intCustomer INT) RETURNS decimal(10,2)
BEGIN
-/**
- * Deprecated
- *
- * Utilizar vn.clientGetDebt
- **/
+
DECLARE decRisk DECIMAL(10,2) DEFAULT 0;
@@ -14712,31 +14216,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `semana`(datFec DATETIME) RETURNS int(11)
DETERMINISTIC
BEGIN
- /* DECLARE intWeek TINYINT DEFAULT WEEK(datFec, 1);
- DECLARE intYear SMALLINT DEFAULT YEAR(datFec);
-
-
--- La funcio week dona un error en els primers dies del any
--- Por convención, consideraremos que el año tiene siempre 52 semanas, y la 53 se incorpora a la 1 del año siguiente.
--- Mysql week function smells, so ...
-
- IF intWeek > 52 THEN
-
- SET intWeek = 1;
-
- IF MONTH(datFec) = 12 THEN
-
- SET intYear = intYear + 1;
-
- SET intWeek = 1;
-
-
- END IF;
-
- END IF;
-
- RETURN intYear * 100 + intWeek;
-*/
+
RETURN vnperiod(datFec);
@@ -14760,11 +14240,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `shipmentDay`(landingDay INT, intervalDays INT) RETURNS int(11)
BEGIN
-/* PAK 01/09/16
-*
-* Devuelve el weekday resultante de restar al landingDay los dias de intervalDays
-*
-*/
+
DECLARE resultDay INT;
@@ -15044,11 +14520,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `ticket_volumen_encajado`(idT INT) RETURNS decimal(10,1)
BEGIN
-/* Devuelve el volumen estimado de un pedido, en cajas
-*
-* idT Numero de ticket
-*
-*/
+
DECLARE vVolumenCajaM3 DOUBLE;
@@ -15081,23 +14553,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `ticket_volumen_en_cajas`(idT INT) RETURNS decimal(10,1)
BEGIN
-/* Devuelve el volumen estimado de un pedido, en cajas
-*
-* idT Numero de ticket
-*
-*
-
- DECLARE vVolumenCajaM3 DOUBLE;
- DECLARE vTicketVolumenEnCajas DECIMAL(10,1);
- DECLARE CAJA VARCHAR(10) DEFAULT '94';
-
- SELECT Volumen/1000000 INTO vVolumenCajaM3 FROM Cubos WHERE Id_Cubo = CAJA;
-
- SET vTicketVolumenEnCajas = ticket_volumen(idT) / vVolumenCajaM3;
-
- RETURN vTicketVolumenEnCajas;
-*/
RETURN 1;
END ;;
DELIMITER ;
@@ -15132,7 +14588,7 @@ BEGIN
DECLARE v_subaccount VARCHAR(12);
DECLARE v_asiento INT DEFAULT NULL;
- -- Inserta el registro en cajas
+
INSERT INTO Cajas
SET
@@ -15146,7 +14602,7 @@ BEGIN
,Numero = v_number
,empresa_id = v_company;
- -- Inserta los asientos contables
+
SELECT Cuenta INTO v_account
FROM Bancos WHERE Id_Banco = v_bank;
@@ -15164,11 +14620,11 @@ BEGIN
,v_amount
,0
,0
- ,NULL -- Serie
- ,NULL -- Factura
- ,NULL -- IVA
- ,NULL -- Recargo
- ,FALSE -- Auxiliar
+ ,NULL
+ ,NULL
+ ,NULL
+ ,NULL
+ ,FALSE
,v_company
);
DO asiento
@@ -15181,11 +14637,11 @@ BEGIN
,0
,v_amount
,0
- ,NULL -- Serie
- ,NULL -- Factura
- ,NULL -- IVA
- ,NULL -- Recargo
- ,FALSE -- Auxiliar
+ ,NULL
+ ,NULL
+ ,NULL
+ ,NULL
+ ,FALSE
,v_company
);
@@ -15229,7 +14685,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `ubicator_cabecaja`(x SMALLINT,y SMALLINT,z SMALLINT,w SMALLINT,d SMALLINT,h SMALLINT) RETURNS tinyint(1)
BEGIN
-IF ((y>d) OR (x>w) OR (z>h)) THEN -- si no cabe alguna de las medidas en la balda.
+IF ((y>d) OR (x>w) OR (z>h)) THEN
RETURN FALSE;
END IF;
RETURN TRUE;
@@ -15457,7 +14913,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `abono`(IN idT MEDIUMINT, IN idUSER SMALLINT)
BEGIN
--- OBSOLETO USAR vn.refund()
+
DECLARE idC MEDIUMINT;
DECLARE newFEC DATE;
DECLARE idWH TINYINT;
@@ -15547,9 +15003,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `accumulatorsReadingDateUpdate`()
BEGIN
-/* Actualiza los valores de la tabla en función de la cotización del EUR/USD
-*
-*/
+
UPDATE accumulatorsReadingDate a
JOIN
@@ -15598,7 +15052,7 @@ BEGIN
WHEN '1000Tj-20' THEN ((CAST(stems AS SIGNED) - 20000)/1000) + (min_value / value)
WHEN '1000Tj-10' THEN ((CAST(stems AS SIGNED) - 10000)/1000) + (min_value / value)
WHEN '100GW' THEN peso/100
- WHEN 'AWB' THEN 1 -- No action
+ WHEN 'AWB' THEN 1
WHEN 'FB' THEN hb/2
WHEN 'GW' THEN peso
WHEN 'TW' THEN GREATEST(peso,volume_weight)
@@ -15788,7 +15242,7 @@ BEGIN
LEFT JOIN
v_descuadre_porte v ON v.Id_Ticket = t.Id_Ticket
WHERE t.Id_Cliente <> 4712 AND t.Id_Cliente <> 450
- GROUP BY zd.date,Id_Consigna,warehouse_id,zd.Id_Agencia -- HAVING Difer > 0.5 OR Difer < -0.5 jgf 2015-08-18
+ GROUP BY zd.date,Id_Consigna,warehouse_id,zd.Id_Agencia
ORDER BY v.diferencia;
END IF;
END ;;
@@ -15823,11 +15277,11 @@ BEGIN
,Agencia VARCHAR(30)
,Bultos INT DEFAULT 0
,Faltan INT DEFAULT 0
- /*,Prioridad VARCHAR(15) DEFAULT ''*/
+
)
ENGINE=MEMORY;
- -- Insertamos los tickets que ya tienen la linea de portes
+
INSERT INTO agenVOL(Id_Agencia, Agencia, Id_Ticket, Bultos)
SELECT a.Id_Agencia, name , Id_Ticket, sum(Cantidad) Bultos
@@ -15837,12 +15291,12 @@ BEGIN
JOIN agency ag USING(agency_id)
JOIN warehouse_joined wj ON wj.warehouse_id = t.warehouse_id
WHERE Concepte LIKE '%porte%'
- AND wj.warehouse_alias_id = 1 -- El 1 equivale a Silla (SillaFV-SillaPCA)
+ AND wj.warehouse_alias_id = 1
AND Fecha BETWEEN v_start AND v_end
AND Vista = 1
GROUP BY Id_Ticket;
- -- Insertamos los tickets que ya tienen expediciones, que fallaran si se repite la clave primaria.
+
INSERT INTO agenVOL(Id_Agencia, Agencia, Id_Ticket, Bultos)
SELECT a.Id_Agencia, name, ticket_id, COUNT(ticket_id)
@@ -15852,12 +15306,12 @@ BEGIN
JOIN agency ag ON ag.agency_id = a.agency_id
JOIN warehouse_joined wj ON wj.warehouse_id = t.warehouse_id
WHERE t.Fecha BETWEEN v_start AND v_end
- AND wj.warehouse_alias_id = 1 -- El 1 equivale a Silla (SillaFV-SillaPCA)
+ AND wj.warehouse_alias_id = 1
AND Vista = 1
GROUP BY ticket_id
ON DUPLICATE KEY UPDATE Bultos = Bultos;
- -- Adivinamos el futuro
+
INSERT INTO agenVOL(Id_Agencia, Agencia, Id_Ticket, Faltan)
SELECT a.Id_Agencia, name, Id_Ticket, 1 as Faltan
FROM Tickets t
@@ -15867,29 +15321,20 @@ BEGIN
JOIN warehouse_joined wj ON wj.warehouse_id = t.warehouse_id
WHERE Fecha BETWEEN v_start AND v_end
AND Bultos = 0 AND expeditions_id IS NULL AND EtiquetasEmitidas = 0
- AND wj.warehouse_alias_id = 1 -- JGF 18/12/14 El 1 equivale a Silla (SillaFV-SillaPCA)
+ AND wj.warehouse_alias_id = 1
AND Vista = 1
GROUP BY Id_Ticket
ON DUPLICATE KEY UPDATE Faltan = Faltan + 1;
- -- Matizamos la urgencia para ZELERIS
- /*
- UPDATE agenVOL a
- JOIN Tickets t USING(Id_Ticket)
- JOIN Clientes c USING(Id_Cliente)
- JOIN Agencias agen ON agen.Id_Agencia = t.Id_Agencia
- JOIN agency ag ON ag.agency_id = agen.agency_id
- JOIN Agencias_province ap ON ag.agency_id = ap.province_id
- JOIN province p ON p.province_id = ap.province_id
- SET a.Prioridad = IF(p.name IN ('VALENCIA','MURCIA','MADRID','BARCELONA','GIRONA','ALICANTE','CASTELLON'), 'LENTA','RAPIDA')
- WHERE ag.name LIKE 'zeleris';*/
+
+
- SELECT agen.agency_id, name Agencia, COUNT(Id_Ticket) expediciones, SUM(Bultos) Bultos, SUM(Faltan) Faltan/*, Prioridad*/
+ SELECT agen.agency_id, name Agencia, COUNT(Id_Ticket) expediciones, SUM(Bultos) Bultos, SUM(Faltan) Faltan
FROM agenVOL a
JOIN Agencias agen USING(Id_Agencia)
JOIN agency ag USING(agency_id)
- GROUP BY ag.agency_id/*, Prioridad*/ ;
+ GROUP BY ag.agency_id ;
DROP TEMPORARY TABLE IF EXISTS agenVOL;
END ;;
@@ -16007,9 +15452,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `articleTagUpdatePriority_kk`(IN vItem INT)
BEGIN
-/*
-* DEPRECATED
-*/
+
CALL vn.itemTagUpdatePriority(vItem);
@@ -16037,7 +15480,7 @@ BEGIN
SELECT available AS minimo FROM tmp_item
WHERE item_id = id_single;
--- ixen totes les linies en lloc d'una sola
+
DROP TEMPORARY TABLE IF EXISTS tmp_item;
END ;;
DELIMITER ;
@@ -16057,11 +15500,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `article_inventory_warehouses`(vDate DATE)
proc: BEGIN
-/**
- * Recalcula los inventarios de todos los almacenes.
- *
- * @param vDate Fecha de los nuevos inventarios
- */
+
DECLARE vWh INT;
DECLARE vDone BOOL;
DECLARE vEntryId INT;
@@ -16107,11 +15546,11 @@ proc: BEGIN
SELECT LAST_INSERT_ID() INTO vEntryId;
- -- Inserta el visible
+
CALL inventario_multiple_inventarios (vWh, vDateTime);
- -- Inserta Last_buy_id
+
ALTER TABLE article_inventory
ADD buy_id INT;
@@ -16190,7 +15629,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `article_minacum`(IN v_wh TINYINT, IN v_date_ini DATETIME, IN v_range INT)
BEGIN
- -- Cálculo del mÃnimo acumulado
+
DECLARE v_date DATE DEFAULT v_date_ini;
DECLARE v_date_end DATETIME;
@@ -16198,7 +15637,7 @@ BEGIN
SET v_date_ini = TIMESTAMP(DATE(v_date_ini), '00:00:00');
SET v_date_end = TIMESTAMP(TIMESTAMPADD(DAY, v_range, v_date_ini),'23:59:59');
- -- CALL item_travel (v_wh, v_date_ini);
+
DROP TEMPORARY TABLE IF EXISTS article_minacum;
CREATE TEMPORARY TABLE article_minacum
@@ -16278,7 +15717,7 @@ BEGIN
JOIN tmp t ON ai.article_id = t.Id_Article
SET ai.buy_id = t.Id_Compra;
- -- Los valores de hoy
+
TRUNCATE TABLE tmp;
@@ -16336,10 +15775,8 @@ BEGIN
JOIN warehouse W ON W.id = travel.warehouse_id
WHERE travel.landing BETWEEN datINV AND date_
AND IF(wh = 0, W.comisionantes, wh = travel.warehouse_id)
- /*AND Compres.Novincular = FALSE
- AND Entradas.Id_Proveedor <> 4
- AND Entradas.Inventario = FALSE*/
- -- jgf 2017/03/06 en la comparativa no trau el dia de caducitat
+
+
AND Entradas.Redada = FALSE
ORDER BY article_id, bdate DESC
@@ -16467,7 +15904,7 @@ proc: BEGIN
CALL vn2008.item_stock (vWarehouseLanding, v_date, NULL);
- -- Calcula algunos parámetros necesarios
+
SET v_date_ini = TIMESTAMP(v_date, '00:00:00');
SET v_date_end = TIMESTAMP(TIMESTAMPADD(DAY, 4, v_date), '23:59:59');
@@ -16477,7 +15914,7 @@ proc: BEGIN
SELECT SUBTIME(NOW(), reserve_time) INTO v_reserve_date
FROM hedera.order_config;
- -- Calcula el ultimo dia de vida para cada producto
+
DROP TEMPORARY TABLE IF EXISTS item_range;
CREATE TEMPORARY TABLE item_range
@@ -16494,7 +15931,7 @@ proc: BEGIN
AND NOT e.Redada
GROUP BY Id_Article;
- -- Tabla con el ultimo dia de last_buy para cada producto que hace un replace de la anterior
+
CALL item_last_buy_(vWarehouseShipment,curdate());
@@ -16515,7 +15952,7 @@ proc: BEGIN
DROP TEMPORARY TABLE item_range_copy;
- -- Replica la tabla item_range para poder usarla varias veces en la misma consulta
+
DROP TEMPORARY TABLE IF EXISTS item_range_copy1;
CREATE TEMPORARY TABLE item_range_copy1 LIKE item_range;
@@ -16545,7 +15982,7 @@ proc: BEGIN
INSERT INTO item_range_copy5
SELECT * FROM item_range_copy1;
- -- Calcula el ATP
+
DROP TEMPORARY TABLE IF EXISTS availableTraslate;
CREATE TEMPORARY TABLE availableTraslate
@@ -16639,7 +16076,7 @@ proc: BEGIN
CALL vn2008.item_stock (vWarehouseLanding, v_date, NULL);
- -- Calcula algunos parámetros necesarios
+
SET v_date_ini = TIMESTAMP(v_date, '00:00:00');
SET v_date_end = TIMESTAMP(TIMESTAMPADD(DAY, 4, v_date), '23:59:59');
@@ -16649,7 +16086,7 @@ proc: BEGIN
SELECT SUBTIME(NOW(), reserve_time) INTO v_reserve_date
FROM hedera.order_config;
- -- Calcula el ultimo dia de vida para cada producto
+
DROP TEMPORARY TABLE IF EXISTS item_range;
CREATE TEMPORARY TABLE item_range
@@ -16678,7 +16115,7 @@ proc: BEGIN
GROUP BY Id_Article;
- -- Tabla con el ultimo dia de last_buy para cada producto que hace un replace de la anterior
+
CALL item_last_buy_(vWarehouseShipment,curdate());
@@ -16709,7 +16146,7 @@ proc: BEGIN
DROP TEMPORARY TABLE item_range_copy;
- -- Replica la tabla item_range para poder usarla varias veces en la misma consulta
+
DROP TEMPORARY TABLE IF EXISTS item_range_copy1;
CREATE TEMPORARY TABLE item_range_copy1 LIKE item_range;
@@ -16739,7 +16176,7 @@ proc: BEGIN
INSERT INTO item_range_copy5
SELECT * FROM item_range_copy1;
- -- Calcula el ATP
+
SELECT item_id, stock,'tmp_item'
FROM vn2008.tmp_item;
@@ -16834,7 +16271,7 @@ proc: BEGIN
CALL vn2008.item_stock (vWarehouseLanding, v_date, NULL);
- -- Calcula algunos parámetros necesarios
+
SET v_date_ini = TIMESTAMP(v_date, '00:00:00');
SET v_date_end = TIMESTAMP(TIMESTAMPADD(DAY, 4, v_date), '23:59:59');
@@ -16844,7 +16281,7 @@ proc: BEGIN
SELECT SUBTIME(NOW(), reserve_time) INTO v_reserve_date
FROM hedera.order_config;
- -- Calcula el ultimo dia de vida para cada producto
+
DROP TEMPORARY TABLE IF EXISTS item_range;
CREATE TEMPORARY TABLE item_range
@@ -16861,13 +16298,13 @@ proc: BEGIN
AND NOT e.Redada
GROUP BY Id_Article;
- -- Tabla con el ultimo dia de last_buy para cada producto que hace un replace de la anterior
+
SELECT vWarehouseShipment;
CALL item_last_buy_(vWarehouseShipment,v_date);
- SELECT *,'last_buy' FROM t_item_last_buy t ; -- WHERE t.item_id = 41576;
+ SELECT *,'last_buy' FROM t_item_last_buy t ;
SELECT * FROM item_range t WHERE t.item_id = 41576;
DROP TEMPORARY TABLE IF EXISTS item_range_copy;
@@ -16895,7 +16332,7 @@ proc: BEGIN
DROP TEMPORARY TABLE item_range_copy;
- -- Replica la tabla item_range para poder usarla varias veces en la misma consulta
+
DROP TEMPORARY TABLE IF EXISTS item_range_copy1;
CREATE TEMPORARY TABLE item_range_copy1 LIKE item_range;
@@ -16927,7 +16364,7 @@ proc: BEGIN
INSERT INTO item_range_copy5
SELECT * FROM item_range_copy1;
- -- Calcula el ATP
+
SELECT ti.item_id, stock
FROM vn2008.tmp_item ti
JOIN item_range ir ON ir.item_id = ti.item_id ;
@@ -17064,7 +16501,7 @@ DECLARE vStartingDate DATE DEFAULT '2015-01-01';
DECLARE vStartingYear INT DEFAULT 2015;
--- Solicitamos la tabla tmp.nest, como base para el balance
+
CALL nest_tree(strTABLE,intGAP, FALSE);
DROP TEMPORARY TABLE IF EXISTS tmp.balance;
@@ -17099,7 +16536,7 @@ IF NOT vInterGroupSalesIncluded THEN
END IF;
--- Se calculan las facturas que intervienen, para luego poder servir el desglose desde aqui
+
DROP TEMPORARY TABLE IF EXISTS tmp.balance_desglose;
CREATE TEMPORARY TABLE tmp.balance_desglose
SELECT er.empresa_id as receptora_id
@@ -17144,7 +16581,7 @@ DELETE FROM tmp.balance_desglose
--- Ahora el balance
+
SET v_sql = sql_printf (
'
ALTER TABLE tmp.balance
@@ -17162,7 +16599,7 @@ SET v_sql = sql_printf (
CALL sql_query (v_sql);
--- Añadimos los gastos, para facilitar el formulario
+
UPDATE tmp.balance b
JOIN vn2008.balance_nest_tree bnt on bnt.id = b.id
@@ -17172,7 +16609,7 @@ JOIN (SELECT Id_Gasto, Gasto
SET b.Id_Gasto = g.Id_Gasto
, b.Gasto = g.Gasto;
--- Rellenamos los valores de primer nivel, los que corresponden a los gastos simples
+
WHILE intYEARS > 0 DO
@@ -17198,7 +16635,7 @@ WHILE intYEARS > 0 DO
END WHILE;
--- Añadimos las ventas
+
SET v_sql = sql_printf (
@@ -17235,7 +16672,7 @@ END WHILE;
CALL sql_query (v_sql);
--- Ventas intra grupo
+
IF NOT vInterGroupSalesIncluded THEN
SELECT lft, rgt
@@ -17250,7 +16687,7 @@ IF NOT vInterGroupSalesIncluded THEN
END IF;
--- Rellenamos el valor de los padres con la suma de los hijos
+
DROP TEMPORARY TABLE IF EXISTS tmp.balance_aux;
CREATE TEMPORARY TABLE tmp.balance_aux SELECT * FROM tmp.balance;
@@ -17315,12 +16752,7 @@ CREATE DEFINER=`root`@`%` PROCEDURE `bionic_available_`(
v_consigna INT,
v_agencia INT)
BEGIN
-/**
- * Calcula el disponible para un conjunto de almacenes y fechas
- * devueltos por el procedimiento travel_tree()
- *
- * @table t_bionic_available Tabla con los ids de cache
- **/
+
DECLARE v_available_calc INT;
DECLARE v_shipment DATE;
@@ -17332,7 +16764,7 @@ BEGIN
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
- -- Establecemos los almacenes y las fechas que van a entrar al disponible
+
SELECT agency_id INTO v_agency_id FROM Agencias WHERE Id_Agencia = v_agencia;
@@ -17398,7 +16830,7 @@ ENGINE = INNODB;
--- Arreglos
+
SET minMED = IFNULL(minMED,0);
SET minMED = IF(minMED = 0,0.01, minMED);
@@ -17409,7 +16841,7 @@ SET minPVP = IF(minPVP = 0, 0.01, minPVP);
SET maxPVP = IFNULL(maxPVP,9990);
SET maxPVP = IF(maxPVP = 0, 9990, maxPVP);
--- ARTICLE
+
SET strART = TRIM(strART);
@@ -17485,7 +16917,7 @@ ELSE
CALL sql_query (v_sql);
END IF;
--- SELECT Id_Article, Article, Medida FROM Articles join articlelist using(Id_Article);
+
END ;;
DELIMITER ;
@@ -17503,15 +16935,11 @@ DELIMITER ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = '' */ ;
DELIMITER ;;
-CREATE DEFINER=`root`@`%` PROCEDURE `bionic_available_items_`(v_date DATE, -- fecha de recepcion de mercancia
+CREATE DEFINER=`root`@`%` PROCEDURE `bionic_available_items_`(v_date DATE,
v_consigna INT,
v_agencia INT)
BEGIN
-/**
- * Crea una tabla con los identificadores de los articulos disponibles.
- *
- * @table t_bionic_available_items
- **/
+
CALL bionic_available_ (v_date, v_consigna, v_agencia);
DROP TEMPORARY TABLE IF EXISTS t_bionic_available_items;
@@ -17565,16 +16993,11 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `bionic_available_types_`(
- v_date DATE, -- fecha de recepcion de mercancia
+ v_date DATE,
v_consigna INT,
v_agencia INT)
BEGIN
-/**
- * Calcula los tipos disponibles para un conjunto de almacenes
- * y fechas devueltos por el procedimiento travel_tree()
- *
- * @table t_bionic_available_types Tabla con los tipos disponibles
- **/
+
CALL bionic_available_(v_date, v_consigna, v_agencia);
@@ -17587,7 +17010,7 @@ BEGIN
JOIN Articles a ON c.item_id = a.Id_Article
JOIN Tipos t ON t.tipo_id = a.tipo_id
JOIN t_bionic_available ba ON c.calc_id = ba.calc_id
- WHERE c.available > 0 -- JGF 2016-03-23 en el bionic no apareixen negatius, els tipos que no continguen disponible, tampoc els volem mostrar
+ WHERE c.available > 0
AND t.Orden != 0
GROUP BY t.tipo_id;
@@ -17608,15 +17031,15 @@ DELIMITER ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
-CREATE DEFINER=`root`@`%` PROCEDURE `bionic_available_types_filter`(IN v_date DATE, -- fecha de recepcion de mercancia
+CREATE DEFINER=`root`@`%` PROCEDURE `bionic_available_types_filter`(IN v_date DATE,
IN v_consigna INT,
IN v_agencia INT,
IN v_filter TEXT)
BEGIN
- -- @return Table t_bionic_available_types
- -- Este procedimiento devuelve una tabla t_bionic_available_types
- -- que debe de ser borrar por quien la llame, y se conecta con la tabla articlelist
- -- que tambien hay que eliminar
+
+
+
+
DECLARE v_sql TEXT;
DECLARE v_list TEXT;
@@ -17625,7 +17048,7 @@ BEGIN
SET v_filter = IFNULL(v_filter,' TRUE');
CALL bionic_available_(v_date, v_consigna, v_agencia);
- -- Inroducimos los valores en una tabla temporal
+
DROP TEMPORARY TABLE IF EXISTS t_bionic_available_types;
CALL check_table_existence('articlelist');
@@ -17678,7 +17101,7 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `bionic_calc`(
- v_date DATE, -- fecha de recepcion de mercancia
+ v_date DATE,
v_consigna INT,
v_agencia INT)
proc: BEGIN
@@ -17698,21 +17121,21 @@ proc: BEGIN
DROP TEMPORARY TABLE IF EXISTS tmp.bionic_lot;
DROP TEMPORARY TABLE IF EXISTS tmp.bionic_price;
- -- Establecemos los almacenes y las fechas que van a entrar al dispo_multi
+
SELECT agency_id INTO v_agency_id FROM vn2008.Agencias WHERE Id_Agencia = v_agencia;
SELECT Id_Cliente INTO v_customer FROM vn2008.Consignatarios WHERE Id_Consigna = v_consigna;
CALL vn2008.travel_tree(v_date,v_consigna, v_agency_id);
- -- creamos la tabla temporal que almacenara los lotes (antigua cache.bionic)
+
CREATE TEMPORARY TABLE tmp.bionic_lot LIKE
template_bionic_lot;
OPEN cur;
l: LOOP
- -- Comprovamos que quedan registros en el cursor
+
SET done = FALSE;
FETCH cur INTO v_wh, v_shipment;
IF done THEN
@@ -17778,9 +17201,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `bionic_calc_clon`(IN v_ticket BIGINT)
BEGIN
-/*
-Este procedimiento "rebioniza" una linea, eliminando los componentes existentes e insertandolos de nuevo
-*/
+
DECLARE v_shipment DATE;
DECLARE v_customer INT;
DECLARE v_wh SMALLINT;
@@ -17801,7 +17222,7 @@ Este procedimiento "rebioniza" una linea, eliminando los componentes existentes
CREATE TEMPORARY TABLE travel_tree ENGINE = MEMORY
SELECT v_wh warehouse_id, v_shipment Fecha_envio, v_landing Fecha_recepcion;
- CALL item_last_buy_ (v_wh, v_shipment); -- rellena la tabla t_item_last_buy con la ultima compra
+ CALL item_last_buy_ (v_wh, v_shipment);
DROP TEMPORARY TABLE IF EXISTS tmp.bionic_lot;
CREATE TEMPORARY TABLE tmp.bionic_lot
@@ -17813,7 +17234,7 @@ Este procedimiento "rebioniza" una linea, eliminando los componentes existentes
CALL bionic_calc_component(v_consigna,v_agencia);
- -- Bionizamos lineas con Preu = 0
+
DROP TEMPORARY TABLE IF EXISTS tmp.movement;
CREATE TEMPORARY TABLE tmp.movement
(PRIMARY KEY (Id_Movimiento)) ENGINE = MEMORY
@@ -17821,7 +17242,7 @@ Este procedimiento "rebioniza" una linea, eliminando los componentes existentes
JOIN Tickets t on t.Id_Ticket = m.Id_Ticket WHERE m.Id_Ticket = v_ticket AND Preu = 0;
CALL bionic_movement_update(1);
- -- Bionizamos lineas con Preu > 0
+
DROP TEMPORARY TABLE IF EXISTS tmp.movement;
CREATE TEMPORARY TABLE tmp.movement
(PRIMARY KEY (Id_Movimiento)) ENGINE = MEMORY
@@ -17837,7 +17258,7 @@ Este procedimiento "rebioniza" una linea, eliminando los componentes existentes
WHERE Id_Ticket = v_ticket;
END IF;
- -- Log
+
call Ditacio(v_ticket
,'Bioniza Ticket'
,'T'
@@ -17845,7 +17266,7 @@ Este procedimiento "rebioniza" una linea, eliminando los componentes existentes
, 'proc bionic_calc_clon'
, NULL);
- -- Limpieza
+
DROP TEMPORARY TABLE t_item_last_buy;
END ;;
DELIMITER ;
@@ -17866,9 +17287,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `bionic_calc_clonkk`(IN v_ticket BIGINT)
BEGIN
-/*
-Este procedimiento "rebioniza" una linea, eliminando los componentes existentes e insertandolos de nuevo
-*/
+
DECLARE v_shipment DATE;
DECLARE v_customer INT;
DECLARE v_wh SMALLINT;
@@ -17888,7 +17307,7 @@ Este procedimiento "rebioniza" una linea, eliminando los componentes existentes
CREATE TEMPORARY TABLE travel_tree ENGINE = MEMORY
SELECT v_wh warehouse_id, v_shipment Fecha_envio, v_landing Fecha_recepcion;
- CALL item_last_buy_ (v_wh, v_shipment); -- rellena la tabla t_item_last_buy con la ultima compra
+ CALL item_last_buy_ (v_wh, v_shipment);
DROP TEMPORARY TABLE IF EXISTS tmp.bionic_lot;
CREATE TEMPORARY TABLE tmp.bionic_lot
@@ -17900,7 +17319,7 @@ Este procedimiento "rebioniza" una linea, eliminando los componentes existentes
CALL bionic_calc_component(v_consigna,v_agencia);
- -- Bionizamos lineas con Preu = 0
+
DROP TEMPORARY TABLE IF EXISTS tmp.movement;
CREATE TEMPORARY TABLE tmp.movement
(PRIMARY KEY (Id_Movimiento)) ENGINE = MEMORY
@@ -17908,7 +17327,7 @@ Este procedimiento "rebioniza" una linea, eliminando los componentes existentes
JOIN Tickets t on t.Id_Ticket = m.Id_Ticket WHERE m.Id_Ticket = v_ticket AND Preu = 0;
CALL bionic_movement_update(1);
- -- Bionizamos lineas con Preu > 0
+
DROP TEMPORARY TABLE IF EXISTS tmp.movement;
CREATE TEMPORARY TABLE tmp.movement
(PRIMARY KEY (Id_Movimiento)) ENGINE = MEMORY
@@ -17917,7 +17336,7 @@ Este procedimiento "rebioniza" una linea, eliminando los componentes existentes
CALL bionic_movement_update(6);
- -- Log
+
call Ditacio(v_ticket
,'Bioniza Ticket'
,'T'
@@ -17925,7 +17344,7 @@ Este procedimiento "rebioniza" una linea, eliminando los componentes existentes
, 'proc bionic_calc_clon'
, NULL);
- -- Limpieza
+
DROP TEMPORARY TABLE t_item_last_buy;
END ;;
DELIMITER ;
@@ -17944,7 +17363,7 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `bionic_calc_component`(
- -- v_date DATE, -- fecha de recepcion de mercancia
+
v_consigna INT,
v_agencia INT)
proc: BEGIN
@@ -17953,7 +17372,7 @@ proc: BEGIN
DECLARE COEFICIENTE_DE_INFLACION_GENERAL INT DEFAULT 1.3;
DECLARE DENSIDAD_MINIMA_PESO_VOLUMETRICO INT DEFAULT 167;
DECLARE VOLUMEN_CAJA_VERDNATURA BIGINT DEFAULT 138000;
- -- DECLARE vValorEmbolsado DOUBLE DEFAULT 0.04;
+
SELECT Id_Cliente INTO v_customer FROM Consignatarios WHERE Id_Consigna = v_consigna;
SET @rate2 := 0;
@@ -17987,15 +17406,15 @@ proc: BEGIN
) t
GROUP BY item_id, warehouse_id
) pf ON pf.item_id = b.item_id AND pf.warehouse_id = b.warehouse_id
- -- descartamos articulos con coste menor de 0.01
+
WHERE Costefijo + Portefijo + Embalajefijo + Comisionfija > 0.01 AND r.display <> 0;
- -- Creamos la tabla tmp.bionic_component
+
DROP TEMPORARY TABLE IF EXISTS tmp.bionic_component;
CREATE TEMPORARY TABLE tmp.bionic_component LIKE
template_bionic_component;
- -- Componentes del precio, valores absolutos
+
INSERT INTO tmp.bionic_component ( warehouse_id, item_id, component_id, cost)
SELECT b.warehouse_id, b.item_id, 29, rate_3 - Costefijo - Portefijo - Embalajefijo - Comisionfija
FROM t_bionic_temp b
@@ -18006,7 +17425,7 @@ proc: BEGIN
FROM t_bionic_temp b
JOIN vn2008.Compres c ON b.buy_id = c.Id_Compra;
- -- Ahora los valores en funcion de la base
+
DROP TEMPORARY TABLE IF EXISTS t_components_base;
@@ -18015,7 +17434,7 @@ proc: BEGIN
FROM tmp.bionic_component bc
GROUP BY bc.item_id,warehouse_id;
- -- La ratio se calcula teniendo en cuenta el valor de las reclamaciones y el saldo de greuge
+
INSERT INTO tmp.bionic_component
SELECT cb.warehouse_id, item_id, 17, ROUND(base * LEAST(recobro,0.25), 3)
@@ -18023,7 +17442,7 @@ proc: BEGIN
JOIN bi.claims_ratio ON Id_Cliente = v_customer
WHERE recobro > 0.009;
- -- PAK 2016-08-31 Componente de maná automático, en función del maná acumulado por el comercial.
+
INSERT INTO tmp.bionic_component
SELECT cb.warehouse_id, item_id, 39, ROUND(base * prices_modifier_rate, 3) as manaAuto
@@ -18034,18 +17453,11 @@ proc: BEGIN
HAVING manaAuto <> 0 ;
-/*
- -- Vendedor variable
- INSERT INTO tmp.bionic_component
- SELECT cb.warehouse_id, item_id, Id_Componente, IFNULL(ROUND(base * tax,4), 0)
- FROM t_components_base cb
- JOIN bi.tarifa_componentes
- WHERE tarifa_componentes_series_id = 2 and IFNULL(tax, 0) > 0;
- */
+
--- ******* Inicio Bloque para componentes con tarifa_class diferente de NULL
- -- Descuento por ultimas unidades
+
+
INSERT INTO tmp.bionic_component
SELECT cb.warehouse_id, b.item_id, Id_Componente, GREATEST(IFNULL(ROUND(base * tax,4), 0), b.min_price - b.rate_3)
FROM t_components_base cb
@@ -18054,7 +17466,7 @@ proc: BEGIN
LEFT JOIN PreciosEspeciales pe ON pe.Id_Cliente = v_customer AND pe.Id_Article = b.item_id
WHERE Id_Componente = 32 AND tax <> 0 AND b.min_price < b.rate_3 AND PrecioEspecial IS NULL;
- -- Incremento por paquete suelto
+
INSERT INTO tmp.bionic_component
SELECT b.warehouse_id, b.item_id, 22, rate_2 - rate_3
FROM t_bionic_temp b
@@ -18062,9 +17474,9 @@ proc: BEGIN
LEFT JOIN PreciosEspeciales pe ON pe.Id_Cliente = v_customer AND pe.Id_Article = b.item_id
WHERE PrecioEspecial IS NULL;
--- ******* Fin Bloque para componentes con tarifa_class diferente de NULL
- -- Reparto
+
+
INSERT INTO tmp.bionic_component
SELECT b.warehouse_id
, b.item_id
@@ -18086,7 +17498,7 @@ proc: BEGIN
LEFT JOIN bi.rotacion r ON r.warehouse_id = b.warehouse_id AND r.Id_Article = b.item_id
HAVING cost <> 0;
--- Reparto bonificado
+
INSERT INTO tmp.bionic_component
SELECT b.warehouse_id
, b.item_id
@@ -18110,11 +17522,11 @@ proc: BEGIN
JOIN vn2008.travel_tree t ON t.warehouse_id = awb.warehouse_id AND weekday(t.Fecha_recepcion) = awb.weekDay
HAVING cost <> 0;
--- PAK 12-05-2015
- -- EMBOLSADO
+
+
IF (SELECT COUNT(*) FROM vn.addressForPackaging WHERE addressFk = v_consigna) THEN
- -- IF v_consigna IN (13690, 3402, 5661, 4233) THEN
+
INSERT INTO tmp.bionic_component
SELECT b.warehouse_id, b.item_id, 38, ap.packagingValue cost
@@ -18124,8 +17536,8 @@ proc: BEGIN
END IF;
- -- JGF 14-08-2015
- -- Modificacion de precio por dia de preparacion del pedido
+
+
INSERT INTO tmp.bionic_component
SELECT cb.warehouse_id, cb.item_id, 14, cb.base * (IFNULL(pe.percentage,pp.percentage)/100)
FROM t_components_base cb
@@ -18134,13 +17546,13 @@ proc: BEGIN
LEFT JOIN vn2008.preparation_exception pe ON pe.exception_day = tt.Fecha_envio AND cb.warehouse_id = IFNULL(pe.warehouse_id,cb.warehouse_id)
WHERE IFNULL(pe.percentage,pp.percentage);
- -- Creamos la tabla tmp.bionic_component_copy por que mysql no puede reabrir una tabla temporal
+
DROP TEMPORARY TABLE IF EXISTS tmp.bionic_component_copy;
CREATE TEMPORARY TABLE tmp.bionic_component_copy
SELECT * FROM tmp.bionic_component;
- -- JGF 19-01-2016
- -- Precios especiales
+
+
INSERT INTO tmp.bionic_component
SELECT b.warehouse_id, b.item_id, 10, pe.PrecioEspecial - SUM(cost) sum_cost
FROM tmp.bionic_component_copy b
@@ -18150,7 +17562,7 @@ proc: BEGIN
GROUP BY b.item_id, b.warehouse_id
HAVING ABS(sum_cost) > 0.001;
- -- Lotes
+
DROP TEMPORARY TABLE IF EXISTS t_component_sum;
CREATE TEMPORARY TABLE t_component_sum
(INDEX (item_id, warehouse_id))
@@ -18160,8 +17572,8 @@ proc: BEGIN
JOIN bi.tarifa_componentes t ON b.component_id = t.Id_Componente
GROUP BY b.item_id, b.warehouse_id, t.tarifa_class;
- -- ***** Inicia Modifica t_bionic_rate las diferentes tarifas
- -- Tarifa por unidad minima
+
+
DROP TEMPORARY TABLE IF EXISTS t_bionic_rate;
CREATE TEMPORARY TABLE t_bionic_rate
ENGINE = MEMORY
@@ -18172,7 +17584,7 @@ proc: BEGIN
WHERE IFNULL(cs.tarifa_class,1) = 1 AND box < 2 AND (packing > grouping or box = 0)
GROUP BY warehouse_id, item_id;
- -- Tarifa por caja
+
INSERT INTO t_bionic_rate (warehouse_id, item_id, rate, grouping, price)
SELECT b.warehouse_id, item_id, 2 rate, packing grouping,
SUM(sum_cost) price
@@ -18181,7 +17593,7 @@ proc: BEGIN
WHERE available IS NULL OR (IFNULL(cs.tarifa_class,2) = 2 AND packing > 0 AND available >= packing)
GROUP BY warehouse_id, item_id;
- -- Tarifa para toda la cantidad disponible
+
INSERT INTO t_bionic_rate (warehouse_id, item_id, rate, grouping, price)
SELECT b.warehouse_id, item_id, 3 rate, available grouping,
SUM(sum_cost) price
@@ -18190,7 +17602,7 @@ proc: BEGIN
WHERE IFNULL(cs.tarifa_class,3) = 3
GROUP BY warehouse_id, item_id;
- -- ***** Fin Modifica t_bionic_rate las diferentes tarifas
+
DROP TEMPORARY TABLE IF EXISTS tmp.bionic_price;
CREATE TEMPORARY TABLE tmp.bionic_price
@@ -18208,7 +17620,7 @@ proc: BEGIN
ENGINE = MEMORY
SELECT * FROM travel_tree;
- -- Limpieza
+
DROP TEMPORARY TABLE travel_tree;
DROP TEMPORARY TABLE t_bionic_temp;
@@ -18233,7 +17645,7 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `bionic_calc_component_beta`(
- -- v_date DATE, -- fecha de recepcion de mercancia
+
v_consigna INT,
v_agencia INT)
proc: BEGIN
@@ -18242,7 +17654,7 @@ proc: BEGIN
DECLARE COEFICIENTE_DE_INFLACION_GENERAL INT DEFAULT 1.3;
DECLARE DENSIDAD_MINIMA_PESO_VOLUMETRICO INT DEFAULT 167;
DECLARE VOLUMEN_CAJA_VERDNATURA BIGINT DEFAULT 138000;
- -- DECLARE vValorEmbolsado DOUBLE DEFAULT 0.04;
+
SELECT Id_Cliente INTO v_customer FROM Consignatarios WHERE Id_Consigna = v_consigna;
SET @rate2 := 0;
@@ -18276,15 +17688,15 @@ proc: BEGIN
) t
GROUP BY item_id, warehouse_id
) pf ON pf.item_id = b.item_id AND pf.warehouse_id = b.warehouse_id
- -- descartamos articulos con coste menor de 0.01
+
WHERE Costefijo + Portefijo + Embalajefijo + Comisionfija > 0.01 AND r.display <> 0;
- -- Creamos la tabla tmp.bionic_component
+
DROP TEMPORARY TABLE IF EXISTS tmp.bionic_component;
CREATE TEMPORARY TABLE tmp.bionic_component LIKE
template_bionic_component;
- -- Componentes del precio, valores absolutos
+
INSERT INTO tmp.bionic_component ( warehouse_id, item_id, component_id, cost)
SELECT b.warehouse_id, b.item_id, 29, rate_3 - Costefijo - Portefijo - Embalajefijo - Comisionfija
FROM t_bionic_temp b
@@ -18295,7 +17707,7 @@ proc: BEGIN
FROM t_bionic_temp b
JOIN vn2008.Compres c ON b.buy_id = c.Id_Compra;
- -- Ahora los valores en funcion de la base
+
DROP TEMPORARY TABLE IF EXISTS t_components_base;
@@ -18304,7 +17716,7 @@ proc: BEGIN
FROM tmp.bionic_component bc
GROUP BY bc.item_id,warehouse_id;
- -- La ratio se calcula teniendo en cuenta el valor de las reclamaciones y el saldo de greuge
+
INSERT INTO tmp.bionic_component
SELECT cb.warehouse_id, item_id, 17, ROUND(base * LEAST(recobro,0.25), 3)
@@ -18312,7 +17724,7 @@ proc: BEGIN
JOIN bi.claims_ratio ON Id_Cliente = v_customer
WHERE recobro > 0.009;
- -- PAK 2016-08-31 Componente de maná automático, en función del maná acumulado por el comercial.
+
INSERT INTO tmp.bionic_component
SELECT cb.warehouse_id, item_id, 39, ROUND(base * prices_modifier_rate, 3) as manaAuto
@@ -18323,18 +17735,11 @@ proc: BEGIN
HAVING manaAuto <> 0 ;
-/*
- -- Vendedor variable
- INSERT INTO tmp.bionic_component
- SELECT cb.warehouse_id, item_id, Id_Componente, IFNULL(ROUND(base * tax,4), 0)
- FROM t_components_base cb
- JOIN bi.tarifa_componentes
- WHERE tarifa_componentes_series_id = 2 and IFNULL(tax, 0) > 0;
- */
+
--- ******* Inicio Bloque para componentes con tarifa_class diferente de NULL
- -- Descuento por ultimas unidades
+
+
INSERT INTO tmp.bionic_component
SELECT cb.warehouse_id, b.item_id, Id_Componente, GREATEST(IFNULL(ROUND(base * tax,4), 0), b.min_price - b.rate_3)
FROM t_components_base cb
@@ -18343,7 +17748,7 @@ proc: BEGIN
LEFT JOIN PreciosEspeciales pe ON pe.Id_Cliente = v_customer AND pe.Id_Article = b.item_id
WHERE Id_Componente = 32 AND tax <> 0 AND b.min_price < b.rate_3 AND PrecioEspecial IS NULL;
- -- Incremento por paquete suelto
+
INSERT INTO tmp.bionic_component
SELECT b.warehouse_id, b.item_id, 22, rate_2 - rate_3
FROM t_bionic_temp b
@@ -18351,9 +17756,9 @@ proc: BEGIN
LEFT JOIN PreciosEspeciales pe ON pe.Id_Cliente = v_customer AND pe.Id_Article = b.item_id
WHERE PrecioEspecial IS NULL;
--- ******* Fin Bloque para componentes con tarifa_class diferente de NULL
- -- Reparto
+
+
INSERT INTO tmp.bionic_component
SELECT b.warehouse_id
, b.item_id
@@ -18375,7 +17780,7 @@ proc: BEGIN
LEFT JOIN bi.rotacion r ON r.warehouse_id = b.warehouse_id AND r.Id_Article = b.item_id
HAVING cost <> 0;
--- Reparto bonificado
+
INSERT INTO tmp.bionic_component
SELECT b.warehouse_id
, b.item_id
@@ -18399,11 +17804,11 @@ proc: BEGIN
JOIN vn2008.travel_tree t ON t.warehouse_id = awb.warehouse_id AND weekday(t.Fecha_recepcion) = awb.weekDay
HAVING cost <> 0;
--- PAK 12-05-2015
- -- EMBOLSADO
+
+
IF (SELECT COUNT(*) FROM vn.addressForPackaging WHERE addressFk = v_consigna) THEN
- -- IF v_consigna IN (13690, 3402, 5661, 4233) THEN
+
INSERT INTO tmp.bionic_component
SELECT b.warehouse_id, b.item_id, 38, ap.packagingValue cost
@@ -18413,8 +17818,8 @@ proc: BEGIN
END IF;
- -- JGF 14-08-2015
- -- Modificacion de precio por dia de preparacion del pedido
+
+
INSERT INTO tmp.bionic_component
SELECT cb.warehouse_id, cb.item_id, 14, cb.base * (IFNULL(pe.percentage,pp.percentage)/100)
FROM t_components_base cb
@@ -18423,13 +17828,13 @@ proc: BEGIN
LEFT JOIN vn2008.preparation_exception pe ON pe.exception_day = tt.Fecha_envio AND cb.warehouse_id = IFNULL(pe.warehouse_id,cb.warehouse_id)
WHERE IFNULL(pe.percentage,pp.percentage);
- -- Creamos la tabla tmp.bionic_component_copy por que mysql no puede reabrir una tabla temporal
+
DROP TEMPORARY TABLE IF EXISTS tmp.bionic_component_copy;
CREATE TEMPORARY TABLE tmp.bionic_component_copy
SELECT * FROM tmp.bionic_component;
- -- JGF 19-01-2016
- -- Precios especiales
+
+
INSERT INTO tmp.bionic_component
SELECT b.warehouse_id, b.item_id, 10, pe.PrecioEspecial - SUM(cost) sum_cost
FROM tmp.bionic_component_copy b
@@ -18442,7 +17847,7 @@ proc: BEGIN
- -- Lotes
+
DROP TEMPORARY TABLE IF EXISTS t_component_sum;
CREATE TEMPORARY TABLE t_component_sum
(INDEX (item_id, warehouse_id))
@@ -18452,8 +17857,8 @@ proc: BEGIN
JOIN bi.tarifa_componentes t ON b.component_id = t.Id_Componente
GROUP BY b.item_id, b.warehouse_id, t.tarifa_class;
- -- ***** Inicia Modifica t_bionic_rate las diferentes tarifas
- -- Tarifa por unidad minima
+
+
DROP TEMPORARY TABLE IF EXISTS t_bionic_rate;
CREATE TEMPORARY TABLE t_bionic_rate
ENGINE = MEMORY
@@ -18464,7 +17869,7 @@ proc: BEGIN
WHERE IFNULL(cs.tarifa_class,1) = 1 AND box < 2 AND (packing > grouping or box = 0)
GROUP BY warehouse_id, item_id;
- -- Tarifa por caja
+
INSERT INTO t_bionic_rate (warehouse_id, item_id, rate, grouping, price)
SELECT b.warehouse_id, item_id, 2 rate, packing grouping,
SUM(sum_cost) price
@@ -18473,7 +17878,7 @@ proc: BEGIN
WHERE available IS NULL OR (IFNULL(cs.tarifa_class,2) = 2 AND packing > 0 AND available >= packing)
GROUP BY warehouse_id, item_id;
- -- Tarifa para toda la cantidad disponible
+
INSERT INTO t_bionic_rate (warehouse_id, item_id, rate, grouping, price)
SELECT b.warehouse_id, item_id, 3 rate, available grouping,
SUM(sum_cost) price
@@ -18482,7 +17887,7 @@ proc: BEGIN
WHERE IFNULL(cs.tarifa_class,3) = 3
GROUP BY warehouse_id, item_id;
- -- ***** Fin Modifica t_bionic_rate las diferentes tarifas
+
DROP TEMPORARY TABLE IF EXISTS tmp.bionic_price;
CREATE TEMPORARY TABLE tmp.bionic_price
@@ -18500,7 +17905,7 @@ proc: BEGIN
ENGINE = MEMORY
SELECT * FROM travel_tree;
- -- Limpieza
+
DROP TEMPORARY TABLE travel_tree;
DROP TEMPORARY TABLE t_bionic_temp;
@@ -18527,11 +17932,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `bionic_calc_date`(v_ticket INT)
proc: BEGIN
-/**
- * Este procedimiento asigna la fecha de llegada correcta a un ticket.
- *
- * @param v_ticket Id del ticket
- **/
+
DECLARE v_shipment DATE;
DECLARE v_agency_id INT;
DECLARE v_wh SMALLINT;
@@ -18550,12 +17951,7 @@ proc: BEGIN
@d := TIMESTAMPADD(DAY, subtract_day, v_shipment),
@w := WEEKDAY(@d),
IF(week_day IS NOT NULL, TIMESTAMPADD(DAY, (week_day - @w) + IF(@w > week_day, 7, 0), @d), @d) landing
-/*
- TIMESTAMPADD(DAY,
- IFNULL(IF(WEEKDAY(@vdate) > week_day, 7, 0) + week_day - WEEKDAY(@vdate),
- subtract_day) - CAST(subtract_day AS DECIMAL),
- @vdate) landing
-*/
+
FROM agency_hour
WHERE warehouse_id = v_wh
AND (province_id = v_province OR province_id IS NULL)
@@ -18589,9 +17985,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `bionic_calc_movement`(IN v_id_mov BIGINT )
proc: BEGIN
-/*
-Este procedimiento bioniza una linea de movimiento
-*/
+
DECLARE v_shipment DATE;
DECLARE v_customer INT;
DECLARE v_wh SMALLINT;
@@ -18633,7 +18027,7 @@ Este procedimiento bioniza una linea de movimiento
CREATE TEMPORARY TABLE travel_tree ENGINE = MEMORY
SELECT v_wh warehouse_id, v_shipment Fecha_envio, v_landing Fecha_recepcion;
- CALL item_last_buy_ (v_wh, v_shipment); -- rellena la tabla t_item_last_buy con la ultima compra
+ CALL item_last_buy_ (v_wh, v_shipment);
DELETE FROM t_item_last_buy WHERE item_id != v_id_article;
DROP TEMPORARY TABLE IF EXISTS tmp.bionic_lot;
@@ -18651,9 +18045,9 @@ Este procedimiento bioniza una linea de movimiento
(PRIMARY KEY (Id_Movimiento)) ENGINE = MEMORY
SELECT Id_Movimiento,v_wh warehouse_id FROM Movimientos m WHERE m.Id_Movimiento = v_id_mov;
- CALL bionic_movement_update(IF(v_ticket_free,1,6)); -- si el ticket esta facturado, respeta los precios
+ CALL bionic_movement_update(IF(v_ticket_free,1,6));
- -- Log
+
call Ditacio(v_ticket
,'Bioniza Linea'
,'T'
@@ -18661,7 +18055,7 @@ Este procedimiento bioniza una linea de movimiento
, 'proc bionic_calc_movement '
, v_id_mov);
- -- Limpieza
+
DROP TEMPORARY TABLE t_item_last_buy;
END ;;
@@ -18683,9 +18077,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `bionic_calc_movement_ok`(IN v_ticket BIGINT)
BEGIN
-/*
-Este procedimiento "rebioniza" una linea, eliminando los componentes existentes e insertandolos de nuevo
-*/
+
DECLARE v_shipment DATE;
DECLARE v_customer INT;
DECLARE v_wh SMALLINT;
@@ -18705,7 +18097,7 @@ Este procedimiento "rebioniza" una linea, eliminando los componentes existentes
CREATE TEMPORARY TABLE travel_tree ENGINE = MEMORY
SELECT v_wh warehouse_id, v_shipment Fecha_envio, v_landing Fecha_recepcion;
- CALL item_last_buy_ (v_wh, v_shipment); -- rellena la tabla t_item_last_buy con la ultima compra
+ CALL item_last_buy_ (v_wh, v_shipment);
DROP TEMPORARY TABLE IF EXISTS tmp.bionic_lot;
CREATE TEMPORARY TABLE tmp.bionic_lot
@@ -18723,7 +18115,7 @@ Este procedimiento "rebioniza" una linea, eliminando los componentes existentes
SELECT Id_Movimiento, v_wh warehouse_id FROM Movimientos m WHERE m.Id_Ticket = v_ticket;
CALL bionic_movement_update(1);
- -- Log
+
call Ditacio(v_ticket
,'Bioniza Lineas OK'
,'T'
@@ -18731,7 +18123,7 @@ Este procedimiento "rebioniza" una linea, eliminando los componentes existentes
, 'proc bionic_calc_movement_ok '
, NULL);
- -- Limpieza
+
DROP TEMPORARY TABLE t_item_last_buy;
END ;;
DELIMITER ;
@@ -18769,18 +18161,18 @@ proc: BEGIN
SELECT Id_Cliente INTO vCustomer FROM Consignatarios WHERE Id_Consigna = vConsigna;
- -- Recobro
+
SELECT ROUND(LEAST(recobro,0.25), 3) INTO vRecovery
FROM bi.claims_ratio
WHERE Id_Cliente = vCustomer AND recobro > 0.009;
- -- Componente de maná automático, en función del maná acumulado por el comercial.
+
SELECT ROUND(prices_modifier_rate, 3) INTO vMana
FROM Clientes c
JOIN bs.mana_spellers ms ON c.Id_Trabajador = ms.Id_Trabajador
WHERE ms.prices_modifier_activated AND c.Id_Cliente = vCustomer;
- -- Reparto
+
SELECT COEFICIENTE_DE_INFLACION_GENERAL
* ROUND(
vM3
@@ -18793,8 +18185,8 @@ proc: BEGIN
JOIN vn2008.Agencias_province ap ON ap.agency_id = a.agency_id AND ap.warehouse_id = vWarehouse AND ap.province_id = c.province_id
JOIN vn2008.Agencias_zonas az ON az.Id_Agencia = vAgencia AND az.zona = ap.zona AND az.Id_Article = 71 AND az.warehouse_id = vWarehouse;
- -- Modificacion de precio por dia de preparacion del pedido
- -- No aplicada
+
+
SET vCost = ((vRetailedPrice - vPort) / ( 1 + (vRecovery + vMana))) - vMargin;
@@ -18818,9 +18210,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `bionic_calc_ticket`(IN v_ticket BIGINT )
proc: BEGIN
-/*
-Este procedimiento trata de "rebionizar" un ticket, eliminando los componentes existentes e insertandolos de nuevo
-*/
+
DECLARE v_shipment DATE;
DECLARE v_customer INT;
DECLARE v_wh SMALLINT;
@@ -18837,10 +18227,7 @@ Este procedimiento trata de "rebionizar" un ticket, eliminando los componentes e
FROM Tickets t LEFT JOIN vn.ticketState ts ON t.Id_Ticket = ts.ticket
WHERE t.Id_Ticket = v_ticket;
- /*SELECT (EtiquetasEmitidas or PedidoImpreso or Firmado or nz(Factura)) = FALSE
- INTO v_ticket_free
- FROM Tickets
- WHERE Id_Ticket = v_ticket;*/
+
REPLACE order_Tickets(order_id, Id_Ticket) VALUES(48, v_ticket);
@@ -18852,7 +18239,7 @@ Este procedimiento trata de "rebionizar" un ticket, eliminando los componentes e
CREATE TEMPORARY TABLE travel_tree ENGINE = MEMORY
SELECT v_wh warehouse_id, v_shipment Fecha_envio, v_landing Fecha_recepcion;
- CALL item_last_buy_ (v_wh, v_shipment); -- rellena la tabla t_item_last_buy con la ultima compra
+ CALL item_last_buy_ (v_wh, v_shipment);
DROP TEMPORARY TABLE IF EXISTS tmp.bionic_lot;
CREATE TEMPORARY TABLE tmp.bionic_lot
@@ -18871,7 +18258,7 @@ Este procedimiento trata de "rebionizar" un ticket, eliminando los componentes e
FROM Movimientos m
where m.Id_Ticket = v_ticket;
- CALL bionic_movement_update(IF(v_ticket_free,1,6)); -- si el ticket esta facturado, respeta los precios
+ CALL bionic_movement_update(IF(v_ticket_free,1,6));
IF v_landing IS NULL THEN
@@ -18882,8 +18269,8 @@ Este procedimiento trata de "rebionizar" un ticket, eliminando los componentes e
WHERE Id_Ticket = v_ticket;
END IF;
- -- Limpieza
- -- DROP TEMPORARY TABLE t_item_last_buy;
+
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -18955,7 +18342,7 @@ DELIMITER ;
/*!50003 SET sql_mode = '' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `bionic_from_order`(
- v_date DATE, -- fecha de recepcion de mercancia
+ v_date DATE,
v_consigna INT,
v_agencia INT,
v_order INT)
@@ -18986,7 +18373,7 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `bionic_from_ticket`(
- v_date DATE, -- fecha de recepcion de mercancia
+ v_date DATE,
v_consigna INT,
v_agencia INT,
v_ticket INT)
@@ -19021,7 +18408,7 @@ BEGIN
CALL bionic_calc_component ( v_consigna, v_agencia);
- -- para recuperar el shipment en caso de que se necesite
+
SET @shipment = v_shipment;
DROP TEMPORARY TABLE tmp.bionic_lot;
@@ -19047,7 +18434,7 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `bionic_from_type`(
- v_date DATE, -- fecha de recepcion de mercancia
+ v_date DATE,
v_consigna INT,
v_agencia INT,
v_type INT)
@@ -19086,16 +18473,14 @@ CREATE DEFINER=`root`@`%` PROCEDURE `bionic_make_update`(
,d_landing DATE
,i_option INT)
BEGIN
-/**
- * Ejecuta los cambios en el ticket, en los movimientos y en los componentes.
- */
+
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
RESIGNAL;
END;
- -- Cambios en el ticket
+
START TRANSACTION;
@@ -19109,7 +18494,7 @@ BEGIN
WHERE
t.Id_Ticket = i_ticket;
- -- La opcion 8 es No realizar modificaciones en los precios
+
IF i_option <> 8
THEN
@@ -19143,56 +18528,50 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `bionic_movement_update`(i_option INT)
BEGIN
-/**
- * A partir de la tabla tmp.movement, crea los Movimientos_componentes
- * y modifica el campo Preu de la tabla Movimientos
- *
- * @param i_option integer tipo de actualizacion
- * @param table tmp.movement tabla memory con el campo Id_Movimiento, warehouse_id
- **/
+
DECLARE intComponent INT;
DECLARE bolRENUEVA_COMPONENTES BOOLEAN;
DECLARE bolRESPETA_PRECIOS BOOLEAN;
CASE i_option
- WHEN 1 THEN -- caso normal
+ WHEN 1 THEN
SET bolRENUEVA_COMPONENTES = TRUE;
SET bolRESPETA_PRECIOS = FALSE;
WHEN 2 THEN
- SET intComponent = 17; -- greuge al client
+ SET intComponent = 17;
SET bolRENUEVA_COMPONENTES = TRUE;
SET bolRESPETA_PRECIOS = TRUE;
WHEN 3 THEN
- SET intComponent = 37; -- convertir en maná
+ SET intComponent = 37;
SET bolRENUEVA_COMPONENTES = TRUE;
SET bolRESPETA_PRECIOS = TRUE;
WHEN 4 THEN
- SET intComponent = 34; -- greuge contra la cartera del producto
+ SET intComponent = 34;
SET bolRENUEVA_COMPONENTES = TRUE;
SET bolRESPETA_PRECIOS = TRUE;
WHEN 5 THEN
- SET intComponent = 35; -- greuge contra la cartera del comprador
+ SET intComponent = 35;
SET bolRENUEVA_COMPONENTES = TRUE;
SET bolRESPETA_PRECIOS = TRUE;
WHEN 6 THEN
- SET intComponent = 36; -- descuadre para la empresa
+ SET intComponent = 36;
SET bolRENUEVA_COMPONENTES = TRUE;
SET bolRESPETA_PRECIOS = TRUE;
WHEN 7 THEN
- -- Insertamos el 80% para el coste
+
REPLACE INTO vn2008.Movimientos_componentes(Id_Movimiento, Id_Componente, Valor)
SELECT m.Id_Movimiento,28, round(((m.Preu * (100 - m.Descuento) /100 ) - SUM(IFNULL(mc.Valor,0))) * 0.8 ,3)
FROM Movimientos m
@@ -19200,7 +18579,7 @@ BEGIN
LEFT JOIN Movimientos_componentes mc ON mc.Id_Movimiento = m.Id_Movimiento AND mc.Id_Componente NOT IN (28,29)
GROUP BY m.Id_Movimiento;
- -- Insertamos el 20% para el margen
+
REPLACE INTO vn2008.Movimientos_componentes(Id_Movimiento, Id_Componente, Valor)
SELECT m.Id_Movimiento,29, round(((m.Preu * (100 - m.Descuento) /100 ) - SUM(IFNULL(mc.Valor,0))) * 0.2 ,3)
FROM Movimientos m
@@ -19212,12 +18591,12 @@ BEGIN
SET bolRESPETA_PRECIOS = FALSE;
WHEN 8 THEN
- -- Eliminamos todos los componentes exceptos los propios de la tarifa para no perderla
+
DELETE mc.*
FROM tmp.movement mo
JOIN Movimientos_componentes mc ON mo.Id_Movimiento = mc.Id_Movimiento;
- -- Insertamos el 100% para el coste Tipo 78 (Genérico)
+
REPLACE INTO vn2008.Movimientos_componentes(Id_Movimiento, Id_Componente, Valor)
SELECT m.Id_Movimiento,28, round(((m.Preu * (100 - m.Descuento) /100 )) ,3)
FROM Movimientos m
@@ -19226,7 +18605,7 @@ BEGIN
SET bolRENUEVA_COMPONENTES = FALSE;
SET bolRESPETA_PRECIOS = FALSE;
- WHEN 9 THEN -- PAK 2017-02-06 caso especial de artículos cuyo precio se pone a mano, como los portes
+ WHEN 9 THEN
SET bolRENUEVA_COMPONENTES = TRUE;
SET bolRESPETA_PRECIOS = TRUE;
@@ -19235,14 +18614,14 @@ BEGIN
IF bolRENUEVA_COMPONENTES THEN
- -- Eliminamos todos los componentes exceptos los propios de la tarifa para no perderla
+
DELETE mc.*
FROM tmp.movement mo
JOIN Movimientos_componentes mc ON mo.Id_Movimiento = mc.Id_Movimiento
JOIN tarifa_componentes tc ON tc.Id_Componente = mc.Id_Componente
WHERE tc.is_renewable = TRUE;
- -- Insertamos los componentes actuales
+
REPLACE INTO Movimientos_componentes(Id_Movimiento, Id_Componente, Valor)
SELECT m.Id_Movimiento, bc.component_id, bc.cost
FROM Movimientos m
@@ -19267,7 +18646,7 @@ BEGIN
ELSE
- -- Cambios en movimientos.
+
UPDATE Movimientos m
JOIN Articles a on a.Id_Article = m.Id_Article
JOIN Tipos tp on tp.tipo_id = a.tipo_id
@@ -19276,9 +18655,9 @@ BEGIN
JOIN tmp.movement m ON m.Id_Movimiento = mc.Id_Movimiento
GROUP BY mc.Id_Movimiento) mc ON mc.Id_Movimiento = m.Id_Movimiento
SET m.Preu = sum_valor
- WHERE Tipo != 'Portes'; -- PAK 2017-02-06
+ WHERE Tipo != 'Portes';
- -- Insertamos descuento, si lo hay
+
REPLACE INTO Movimientos_componentes(Id_Movimiento, Id_Componente, Valor)
SELECT m.Id_Movimiento, 21, m.Preu * (100 -m.Descuento) / 100 - sum(Valor) v_valor
@@ -19290,7 +18669,7 @@ BEGIN
END IF;
- -- Fija el Costfixat
+
UPDATE Movimientos m
JOIN (SELECT SUM(mc.Valor) sum_valor,mc.Id_Movimiento
@@ -19302,8 +18681,8 @@ BEGIN
SET m.CostFixat = sum_valor, PrecioFijado = 1;
- -- PAK 2017-02-06
- -- Familia PORTES, un unico componente de porte
+
+
DELETE mc.*
FROM Movimientos_componentes mc
@@ -19314,32 +18693,16 @@ BEGIN
WHERE Tipo = 'Portes';
INSERT INTO Movimientos_componentes(Id_Movimiento, Id_Componente, Valor)
- SELECT m.Id_Movimiento, 15, preu -- Reparto
+ SELECT m.Id_Movimiento, 15, preu
FROM Movimientos m
JOIN tmp.movement mo ON mo.Id_Movimiento = m.Id_Movimiento
JOIN Articles a ON a.Id_Article = m.Id_Article
JOIN Tipos tp ON tp.tipo_id = a.tipo_id
WHERE Tipo = 'Portes' AND preu > 0;
- -- PAK 2017-09-27
- -- Tipos con un unico componente de coste
- /*
- DELETE mc.*
- FROM Movimientos_componentes mc
- JOIN tmp.movement mo ON mo.Id_Movimiento = mc.Id_Movimiento
- JOIN Movimientos m on m.Id_Movimiento = mc.Id_Movimiento
- JOIN Articles a ON a.Id_Article = m.Id_Article
- JOIN Tipos tp ON tp.tipo_id = a.tipo_id
- WHERE tp.hasComponents = FALSE;
+
- INSERT INTO Movimientos_componentes(Id_Movimiento, Id_Componente, Valor)
- SELECT m.Id_Movimiento, 28, preu -- Coste
- FROM Movimientos m
- JOIN tmp.movement mo ON mo.Id_Movimiento = m.Id_Movimiento
- JOIN Articles a ON a.Id_Article = m.Id_Article
- JOIN Tipos tp ON tp.tipo_id = a.tipo_id
- WHERE tp.hasComponents = FALSE;
-*/
+
END ;;
DELIMITER ;
@@ -19439,7 +18802,7 @@ DECLARE rs CURSOR FOR
SELECT DISTINCT t.Id_Ticket
FROM
(
- -- Movimientos que no coincide la suma de los componentes con el precio
+
select t.Id_Ticket, IFNULL(sum(Valor),0) - (Preu * (100 - m.Descuento)/100) as Diferencia, NULL as Nothing
from vn2008.Tickets t
join vn2008.Movimientos m on t.Id_Ticket = m.Id_Ticket
@@ -19454,7 +18817,7 @@ select t.Id_Ticket, IFNULL(sum(Valor),0) - (Preu * (100 - m.Descuento)/100) as
having ABS(Diferencia) > 1 OR (Diferencia IS NULL)
UNION ALL
- -- Movimientos sin componente de coste
+
SELECT t.Id_Ticket, NULL, NULL
FROM Tickets t
LEFT JOIN
@@ -19473,7 +18836,7 @@ UNION ALL
AND t.Fecha between datSTART and datEND_Midnight
UNION ALL
- -- Movimientos sin porte en tickets con agencia que SI que deberia de llevar
+
SELECT m.Id_Ticket, count(Id_Movimiento) as Lineas_totales, Lineas_conPorte
FROM Movimientos m
JOIN Articles a on a.Id_Article = m.Id_Article
@@ -19743,7 +19106,7 @@ BEGIN
AND warehouse_id IN (0,i_wh)
GROUP BY item_id
) pf ON pf.item_id = A.Id_Article;
- -- JGF 02/02/15 canvie CURDATE() per IFNULL(date_,CURDATE())
+
DROP TEMPORARY TABLE `entry_label`;
DROP TEMPORARY TABLE `buy_label_source`;
@@ -19766,20 +19129,15 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `buy_scan`(v_barcode VARCHAR(255), v_labels INT)
BEGIN
-/**
- * Marca una compra de subasta como escaneada.
- *
- * @param v_barcode Código de compra de una etiqueta de subasta
- * @param v_labels Cantidad escaneada
- **/
+
DECLARE v_edi INT;
DECLARE v_buy INT;
DECLARE v_item INT;
DECLARE v_do_photo BOOL;
- -- Aun no se sabe como obtener el número de serie de transacción de
- -- las compras realizadas a través de un reloj, por lo que se establece
- -- siempre a '01'
+
+
+
IF SUBSTR(v_barcode, 3, 2) != '99' THEN
SET v_barcode = CONCAT(LEFT(v_barcode, 12), '010');
@@ -19867,13 +19225,13 @@ BEGIN
START TRANSACTION;
- -- Obtiene los datos de la compra
+
SELECT Id_Article, Packing, Cantidad
INTO v_item, v_packing, v_remaining
FROM Compres WHERE Id_Compra = v_buy;
- -- Crea splits de los tickets
+
DROP TEMPORARY TABLE IF EXISTS tmp.split;
CREATE TEMPORARY TABLE tmp.split
@@ -19921,14 +19279,14 @@ BEGIN
CLOSE cur;
- -- Crea los movimientos de almacén a silla
+
CALL buy_transfer (v_buy, v_fv_entry, v_pca_entry);
UPDATE Compres SET dispatched = Vida * Packing
WHERE Id_Compra = v_buy;
- -- Devuelve los splits creados
+
DROP TEMPORARY TABLE IF EXISTS tmp.aux;
CREATE TEMPORARY TABLE tmp.aux
@@ -19955,7 +19313,7 @@ BEGIN
SELECT * FROM tmp.aux;
- -- Limpia y confirma cambios
+
DROP TEMPORARY TABLE
tmp.split,
@@ -20010,12 +19368,12 @@ BEGIN
),
C.Comisionfija = @CF:= ROUND(IFNULL(E.comision * C.Costefijo / 100,0),3),
C.Embalajefijo = @EF:= IF(CB.Retornable != 0, 0, ROUND(IFNULL( CB.Valor / C.Packing ,0),3)),
- C.Tarifa3 = @t3:= IF(TC.t3 = 0, C.Costefijo,ROUND((C.Costefijo + @CF + @EF + @PF) / ((100 - TC.t3 - TP.promo ) /100) ,2)), -- He añadido que el coste sea igual a tarifa3 si t3 = 0
+ C.Tarifa3 = @t3:= IF(TC.t3 = 0, C.Costefijo,ROUND((C.Costefijo + @CF + @EF + @PF) / ((100 - TC.t3 - TP.promo ) /100) ,2)),
C.Tarifa2 = @t2:= ROUND(@t3 * (1 + ( (TC.t2 - TC.t3)/100) ),2),
C.Tarifa2 = IF(@t2 <= @t3, @t3 , @t2)
WHERE C.Id_Compra = v_buy;
- IF v_wh = 42 -- Canarias
+ IF v_wh = 42
THEN
UPDATE Compres
SET Tarifa2 = Tarifa3
@@ -20074,7 +19432,7 @@ LIMIT 1;
C.Embalajefijo = @EF:= IF(CB.Retornable != 0, 0, ROUND(IFNULL( CB.Valor / C.Packing ,0),3)),
- C.Tarifa3 = @t3:= IF(TC.t3 = 0, C.Costefijo,ROUND((C.Costefijo + @CF + @EF + @PF) / ((100 - TC.t3 - TP.promo ) /100) ,2)), -- He añadido que el coste sea igual a tarifa3 si t3 = 0
+ C.Tarifa3 = @t3:= IF(TC.t3 = 0, C.Costefijo,ROUND((C.Costefijo + @CF + @EF + @PF) / ((100 - TC.t3 - TP.promo ) /100) ,2)),
C.Tarifa2 = @t2:= round(@t3 * (1 + ( (TC.t2 - TC.t3)/100) ),2),
@@ -20086,7 +19444,7 @@ LIMIT 1;
CASE wh_id
- WHEN 41 THEN -- Canarias
+ WHEN 41 THEN
UPDATE Compres
SET Tarifa2 = Tarifa3
@@ -20131,8 +19489,8 @@ DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN rs;
FETCH rs INTO strAWB;
--- drop temporary table if exists killme;
--- create temporary table killme select strAWB, now() as fecha, 0;
+
+
WHILE NOT done DO
@@ -20212,14 +19570,14 @@ BEGIN
ROUND(IFNULL(((AG.m3 * @cm3:= cm3_2(C.Id_Cubo, C.Id_Article)) / 1000000) / C.Packing,0),3)
),
- -- jgf 2015-08-14 canvie este procediment per a que coincidisca en el buy_tarifas
- -- ROUND(IFNULL(((m3i * @cm3:= ( TP.density / 167 ) * cm3_2(C.Id_Cubo, C.Id_Article)) / 1000000) / C.Packing,0),3),
+
+
C.Comisionfija = @CF:= ROUND(IFNULL(E.comision * C.Costefijo / 100,0),3),
C.Embalajefijo = @EF:= IF(CB.Retornable != 0, 0, ROUND(IFNULL( CB.Valor / C.Packing ,0),3)),
- C.Tarifa3 = @t3:= IF(TC.t3 = 0, C.Costefijo,ROUND((C.Costefijo + @CF + @EF + @PF) / ((100 - TC.t3 - TP.promo ) /100) ,2)), -- He añadido que el coste sea igual a tarifa3 si t3 = 0
+ C.Tarifa3 = @t3:= IF(TC.t3 = 0, C.Costefijo,ROUND((C.Costefijo + @CF + @EF + @PF) / ((100 - TC.t3 - TP.promo ) /100) ,2)),
C.Tarifa2 = @t2:= round(@t3 * (1 + ( (TC.t2 - TC.t3)/100)),2),
@@ -20230,7 +19588,7 @@ BEGIN
CASE wh_id
- WHEN 41 THEN -- Canarias
+ WHEN 41 THEN
UPDATE Compres
SET Tarifa2 = Tarifa3
@@ -20421,7 +19779,7 @@ BEGIN
WHERE C.Id_Compra = idCOMPRA;
- IF wh_id = 41 THEN -- Canarias
+ IF wh_id = 41 THEN
UPDATE Compres
SET Tarifa2 = Tarifa3
@@ -20502,14 +19860,14 @@ BEGIN
DECLARE v_date DATE;
DECLARE v_wh INT;
- -- Obtiene fecha de llegada y almacén entrante
+
SELECT landing, warehouse_id INTO v_date , v_wh
FROM travel TR
JOIN Entradas E ON TR.id = E.travel_id
WHERE Id_Entrada = v_entry;
- -- Prepara una tabla con las tarifas aplicables en funcion de la fecha y el almacén
+
DROP TEMPORARY TABLE IF EXISTS tblTARIFAS;
CREATE TEMPORARY TABLE tblTARIFAS
@@ -20531,7 +19889,7 @@ BEGIN
) sub2
LIMIT 1;
- -- pak 22/09/2015
+
UPDATE bi.rotacion r
JOIN Compres c ON c.Id_Article = r.Id_Article
@@ -20556,10 +19914,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `buy_transfer`(v_buy INT, v_fv_entry INT, v_pca_entry INT)
proc: BEGIN
-/**
- * Traslada la cantidad restante de una compra de Holanda
- * al almacén de Silla.
- **/
+
DECLARE v_wh INT;
DECLARE v_entry INT;
DECLARE v_fv INT;
@@ -20567,7 +19922,7 @@ proc: BEGIN
DECLARE v_item INT;
DECLARE v_holland_wh INT DEFAULT 7;
- -- Comprueba que es mercancía que llega al almacén de Holanda
+
SELECT t.warehouse_id, tp.FV INTO v_wh, v_fv
FROM Compres c
@@ -20581,7 +19936,7 @@ proc: BEGIN
LEAVE proc;
END IF;
- -- Calcula a que almacén de Silla debe transladar la mercancía
+
SET v_entry = IF(v_fv, v_fv_entry, v_pca_entry);
SET v_entry = IFNULL(v_entry, IFNULL(v_pca_entry, v_fv_entry));
@@ -20590,7 +19945,7 @@ proc: BEGIN
LEAVE proc;
END IF;
- -- Calcula la cantidad a trasladar
+
SELECT Id_Article INTO v_item
FROM Compres WHERE Id_Compra = v_buy;
@@ -20625,7 +19980,7 @@ proc: BEGIN
LEAVE proc;
END IF;
- -- Crea la nueva línea de compra con el translado
+
INSERT INTO Compres (
Id_Article, Etiquetas, Cantidad, Id_Entrada,
@@ -21015,14 +20370,7 @@ BEGIN
DECLARE v_date6 DATE;
DECLARE strtable varchar(15) DEFAULT NULL;
DECLARE done BIT DEFAULT 0;
- /*
- DECLARE cursor_table CURSOR FOR SELECT TABLE_NAME
- FROM information_schema.TABLES
- WHERE TABLE_NAME LIKE 'b20%'
- AND TABLE_SCHEMA = 'vn2008';
- DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
- DECLARE CONTINUE HANDLER FOR 1051 SET done = 0;
-*/
+
SET v_date = TIMESTAMPADD(MONTH, -2, CURDATE());
SET v_date18 = TIMESTAMPADD(MONTH, -18,CURDATE());
SET v_date8 = TIMESTAMPADD(DAY, -8,CURDATE());
@@ -21030,15 +20378,15 @@ BEGIN
INSERT INTO vn2008.daily_task_log(consulta) VALUES('clean START');
- --
+
DELETE FROM cdr WHERE calldate < v_date;
DELETE FROM Monitoring WHERE ODBC_TIME < v_date;
DELETE FROM Conteo WHERE Fecha < v_date;
DELETE FROM XDiario WHERE FECHA < v_date OR FECHA IS NULL;
DELETE FROM mail WHERE DATE_ODBC < v_date;
- --
- -- DELETE FROM Cajas WHERE CajaFecha < v_date18;
+
+
DELETE rr FROM Recibos_recorded rr JOIN Recibos r ON rr.Id_Recibos = r.Id WHERE r.Fechacobro < v_date;
SELECT MAX(idTickets_dits)
@@ -21047,7 +20395,7 @@ BEGIN
WHERE ODBC_DATE < v_date;
DELETE FROM Tickets_dits WHERE idTickets_dits <= @id;
- -- DELETE FROM Tickets_dits WHERE ODBC_DATE < v_date;
+
DELETE FROM expeditions WHERE odbc_date < v_date18;
DELETE FROM expeditions_deleted WHERE odbc_date < v_date18;
DELETE FROM Entradas_dits WHERE ODBC_DATE < v_date18;
@@ -21074,13 +20422,13 @@ BEGIN
WHERE odbc_date < v_date18;
DELETE FROM vncontrol.inter WHERE inter_id <= @id;
- -- DELETE FROM vncontrol.inter WHERE odbc_date < v_date18;
+
DELETE FROM Entradas_dits WHERE ODBC_DATE < v_date;
DELETE FROM Ordenes WHERE datTICKET < v_date18 AND datTICKET <> '2000-01-01';
DELETE FROM cyc_declaration WHERE Fecha < v_date18;
DELETE FROM vn.message WHERE sendDate < v_date;
DELETE FROM travel_reserve WHERE odbc_date < v_date;
- -- DELETE FROM syslog.systemevents WHERE odbc_date < v_date8;
+
DELETE FROM daily_task_log WHERE odbc_date < v_date;
DELETE FROM bi.Greuge_Evolution WHERE Fecha < v_date AND weekday(Fecha) != 1;
DELETE mc FROM Movimientos_checked mc JOIN Movimientos m ON mc.Id_Movimiento = m.Id_Movimiento WHERE m.odbc_date < v_date;
@@ -21094,7 +20442,7 @@ BEGIN
JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada
JOIN travel t ON t.id = e.travel_id
WHERE t.landing <= v_date;
- --
+
DELETE FROM vn2008.scan WHERE odbc_date < v_date6 AND id <> 1;
SET v_date = TIMESTAMPADD(YEAR, 2000 - YEAR(v_date), v_date);
@@ -21115,24 +20463,9 @@ BEGIN
AND re.Id_Entrada IS NULL;
END IF;
- /*
- OPEN cursor_table;
- FETCH cursor_table INTO strtable;
- REPEAT
- IF NOT done THEN
- CALL vn2008.sql_query (sql_printf (
- 'DROP TABLE IF EXISTS %t'
- ,strtable
- ));
- END IF;
- FETCH cursor_table INTO strtable;
- UNTIL done
- END REPEAT;
+
- CLOSE cursor_table;
- */
-
- -- Tickets vacios PAK 17/05/2016
+
UPDATE Tickets t
JOIN
@@ -21145,7 +20478,7 @@ AND t.Fecha between '2016-01-01' and util.yesterday()) sub using(Id_Ticket)
SET t.Fecha = TIMESTAMPADD(YEAR, 2000 - year(CURDATE()), t.Fecha);
- -- Tickets Nulos PAK 11/10/2016
+
UPDATE vn2008.Tickets
@@ -21153,7 +20486,7 @@ SET t.Fecha = TIMESTAMPADD(YEAR, 2000 - year(CURDATE()), t.Fecha);
WHERE Id_Cliente = 31
AND empresa_id != 965;
- -- Equipos duplicados
+
DELETE w.*
FROM vn2008.workerTeam w
JOIN (SELECT id, team, user, COUNT(*) - 1 as duplicated
@@ -21232,7 +20565,7 @@ BEGIN
FROM bi.calidad_parametros
JOIN Clientes;
- -- Valoramos del 0 al 5 su consumo
+
REPLACE INTO bi.calidad_detalle(Id_Cliente,calidad_parametros_id,valor)
SELECT Id_Cliente, 1, IF(Consumo > 5, 5, Consumo)
@@ -21244,36 +20577,30 @@ BEGIN
group by Id_Cliente) sub;
- -- Incrementamos dos puntos a los de giro bancario, y restamos uno a los de pago contado/contrareembolso
+
REPLACE INTO bi.calidad_detalle(Id_Cliente,calidad_parametros_id,valor)
- SELECT Id_Cliente, 3, CASE pay_met_id WHEN 4 -- giro
+ SELECT Id_Cliente, 3, CASE pay_met_id WHEN 4
THEN 2
- WHEN 1 -- contado
+ WHEN 1
THEN -1
- WHEN 5 -- tarjeta
+ WHEN 5
THEN 1
- WHEN 7 -- tarjeta
+ WHEN 7
THEN 1
- WHEN 6 -- contrareembolso
+ WHEN 6
THEN -1
ELSE 0 END
FROM Clientes;
- /* Incrementamos a los que tengan reclamaciones 0%, 2 puntos
- 1%, 1 punto
- 2% 0 puntos
- 3% -3 puntos
- 4% - 6 puntos
- 5% - 9 puntos
- */
+
REPLACE INTO bi.calidad_detalle(Id_Cliente,calidad_parametros_id,valor)
SELECT Id_Cliente, 2, CASE nz(Ratio)
@@ -21286,7 +20613,7 @@ BEGIN
END
FROM bi.claims_ratio ;
- -- Ahora les ponemos un punto a los que compran por la web mas del 50% de sus pedidos
+
REPLACE INTO bi.calidad_detalle(Id_Cliente,calidad_parametros_id,valor)
SELECT Id_Cliente, 4, Webs
@@ -21298,12 +20625,12 @@ BEGIN
FROM Tickets_dits
WHERE idaccion_dits = 84
AND ODBC_DATE >= TIMESTAMPADD(DAY,-30,CURDATE())) sub USING(Id_Ticket)
- WHERE Fecha > '2001-01-01' AND Id_Agencia <> 23 -- ni tickets borrados, ni abonos cuentan
+ WHERE Fecha > '2001-01-01' AND Id_Agencia <> 23
GROUP BY Id_Cliente
HAVING Webs > 0.5) sub2;
- -- Marcamos con un 11 a los clientes recien nacidos, para protegerlos
+
REPLACE INTO bi.calidad_detalle(Id_Cliente,calidad_parametros_id,valor)
SELECT Id_Cliente, 5, 11
@@ -21314,7 +20641,7 @@ BEGIN
GROUP BY Id_Cliente
HAVING Inicio >= TIMESTAMPADD(DAY,-30,CURDATE())) sub ;
- -- Ahora actualizamos la tabla Clientes
+
UPDATE Clientes
JOIN
@@ -21327,8 +20654,8 @@ BEGIN
calidad = IF(valoracion > 11, 11, valoracion);
IF DAY(CURDATE()) = 1 THEN
- -- Y de paso, desactivamos a los que hace tiempo que no compran.alter
- -- JGF Sólo desctivamos a los clientes que no han comprado en los dos ultimos meses
+
+
UPDATE account.user u
SET
active = 0
@@ -21540,7 +20867,7 @@ BEGIN
SELECT 'Greuges' as Grupo, sum(g.Importe) as Mana
FROM vn2008.Greuges g
JOIN vn2008.Clientes c using(Id_Cliente)
- WHERE g.Greuges_type_id = 3 -- Maná
+ WHERE g.Greuges_type_id = 3
AND g.Fecha > '2016-01-01'
AND c.Id_Cliente = vClient;
@@ -21596,7 +20923,7 @@ BEGIN
WHERE year = vYear AND week = vWeek
AND WEEKDAY(date) = vWeekDay;
- -- busca si el ticket ya ha sido clonado
+
IF (select count(*) FROM Tickets t JOIN ticket_observation tob ON t.Id_Ticket = tob.Id_Ticket
WHERE Id_Consigna = vConsignatario AND Fecha = vShipment AND tob.text LIKE CONCAT('%',vTicket,'%')) = 0
THEN
@@ -21663,8 +20990,8 @@ BEGIN
DECLARE cuenta_cliente BIGINT;
DECLARE max_asien INT;
- -- XDIARIO
- -- No se asientan los cobros directamente, salvo en el caso de las cajas de CASH
+
+
SELECT (cash = 1) INTO bolCASH FROM Bancos WHERE Bancos.Id_Banco = idCAJA;
IF bolCASH THEN
@@ -21685,7 +21012,7 @@ BEGIN
END IF;
- -- CAJERA
+
INSERT INTO Cajas(Id_Trabajador
, Id_Banco
@@ -21711,7 +21038,7 @@ BEGIN
- -- RECIBO
+
INSERT INTO Recibos(Entregado
,Fechacobro
,Id_Trabajador
@@ -21772,16 +21099,16 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `comercial_caducado`()
BEGIN
--- Este procedimiento le pasa los clientes al jefe de ventas cuando llevan dos meses inactivos
-IF day(CURDATE()) = 5 then -- solo se ejecuta los dias 5 de cada mes
+
+IF day(CURDATE()) = 5 then
Update Clientes
join
(
Select c.Id_Cliente
from Clientes c
- join jerarquia j on j.worker_id = c.Id_Trabajador -- este filtro es para que solo toque los de los comerciales
+ join jerarquia j on j.worker_id = c.Id_Trabajador
join
(
@@ -21810,16 +21137,16 @@ IF day(CURDATE()) = 5 then -- solo se ejecuta los dias 5 de cada mes
) tic_vivos on tic_vivos.Id_Cliente = c.Id_Cliente
- where c.Created < CURDATE() - INTERVAL 2 MONTH -- este filtro respeta a los recien nacidos....
- and j.boss_id = 87 -- sólo afecta a los comerciales de Alfredo
- and f.Id_Cliente is null -- comprueba que no tenga facturas en los dos ultimos meses
- and sindeuda.Saldo < 10 -- sólo cambia a los clientes con deuda escasa o nula
- and tic_vivos.Id_Cliente is null -- si tiene tickets vivos, lo respeta
+ where c.Created < CURDATE() - INTERVAL 2 MONTH
+ and j.boss_id = 87
+ and f.Id_Cliente is null
+ and sindeuda.Saldo < 10
+ and tic_vivos.Id_Cliente is null
) sub using(Id_Cliente)
- set Id_Trabajador = 87 ;-- Alfredo Giner;
+ set Id_Trabajador = 87 ;
end if;
@@ -21968,19 +21295,19 @@ SELECT cc.Id_Article
FROM clientcom cc
JOIN clientcom_periods ccp using(period)
--- La parte del inventario
+
LEFT JOIN article_inventory i ON i.article_id = cc.Id_Article
LEFT JOIN Compres CM ON i.buy_id = CM.Id_Compra
LEFT JOIN Entradas E USING(Id_Entrada)
LEFT JOIN Proveedores P ON P.Id_Proveedor = E.Id_Proveedor
--- Ahora la parte de los vendedores
+
JOIN Clientes C ON C.Id_Cliente = cc.Id_Cliente
JOIN Trabajadores T1 ON C.Id_Trabajador = T1.Id_Trabajador
LEFT JOIN jerarquia J ON J.worker_id = T1.Id_Trabajador
JOIN Trabajadores JF ON JF.Id_Trabajador = J.boss_id
--- JOIN Trabajadores JF ON T1.Id_Trabajador = JF.boss JGF propuesta para sustituir por las dos lineas superiores
--- Ahora la parte de los compradores
+
+
JOIN Articles A ON A.Id_Article = cc.Id_Article
JOIN Origen O ON O.id = A.id_origen
JOIN Tintas TT ON TT.Id_Tinta = A.Color
@@ -22132,19 +21459,19 @@ SELECT cc.Id_Article
FROM clientcom cc
JOIN clientcom_periods ccp using(period)
--- La parte del inventario
+
LEFT JOIN article_inventory i ON i.article_id = cc.Id_Article
LEFT JOIN Compres CM ON i.buy_id = CM.Id_Compra
LEFT JOIN Entradas E USING(Id_Entrada)
LEFT JOIN Proveedores P ON P.Id_Proveedor = E.Id_Proveedor
--- Ahora la parte de los vendedores
+
JOIN Clientes C ON C.Id_Cliente = cc.Id_Cliente
JOIN Trabajadores T1 ON C.Id_Trabajador = T1.Id_Trabajador
LEFT JOIN jerarquia J ON J.worker_id = T1.Id_Trabajador
JOIN Trabajadores JF ON JF.Id_Trabajador = J.boss_id
--- JOIN Trabajadores JF ON T1.Id_Trabajador = JF.boss JGF propuesta para sustituir por las dos lineas superiores
--- Ahora la parte de los compradores
+
+
JOIN Articles A ON A.Id_Article = cc.Id_Article
JOIN Origen O ON O.id = A.id_origen
JOIN Tintas TT ON TT.Id_Tinta = A.Color
@@ -22245,9 +21572,9 @@ BEGIN
DECLARE corrector INT;
DECLARE w1, w2, w3, w4, w5, w6, w7 INT;
DECLARE y1, y2, y3, y4, y5, y6, y7 INT;
- DECLARE wperiod INT;-- DECLARE ws, ys INT; -- PAK 11/01/2016
+ DECLARE wperiod INT;
DECLARE i INT DEFAULT 0;
- DECLARE lastCOMP BIGINT; -- Almacena el ultimo valor del Periodo
+ DECLARE lastCOMP BIGINT;
DECLARE strFILTRO VARCHAR(255) DEFAULT 'TRUE';
IF i_filtro THEN
@@ -22263,10 +21590,10 @@ BEGIN
IF i_wh = NULL THEN
SET i_wh = 0;
END IF;
- -- JGF 2015-04-16 cambio -21 por -22 para que la semana cuente de domingo a sabado
+
SET date_cyear_ini = TIMESTAMP(DATE(TIMESTAMPADD(DAY, -22 - WEEKDAY(v_date), v_date)), '00:00:00');
SET date_cyear_end = TIMESTAMP(DATE(TIMESTAMPADD(DAY, (7 * week_count) -1, date_cyear_ini)), '23:59:59');
- -- Eliminamos el calculo del inventario para fechas en el pasado
+
CALL article ();
@@ -22308,8 +21635,8 @@ BEGIN
REPEAT
SET i = i + 1;
- SET wperiod = vnperiod(TIMESTAMPADD(DAY, 7*(i - 1), date_cyear_ini)); -- PAK 11/01/2016
- INSERT INTO wtable(cy, ly) VALUES(wperiod, wperiod - 100); -- VALUES( ys * 100 + ws, (ys -1) * 100 + ws); -- PAK 11/01/2016
+ SET wperiod = vnperiod(TIMESTAMPADD(DAY, 7*(i - 1), date_cyear_ini));
+ INSERT INTO wtable(cy, ly) VALUES(wperiod, wperiod - 100);
UNTIL i = 7 END REPEAT;
@@ -22326,7 +21653,7 @@ BEGIN
SET cyear = YEAR(date_cyear_ini);
- -- Genera una tabla con los datos del año pasado.
+
DROP TEMPORARY TABLE IF EXISTS last_year;
CREATE TEMPORARY TABLE last_year
@@ -22356,7 +21683,7 @@ BEGIN
AND IF(i_wh = 0, W.is_comparative, i_wh = warehouse_id)
GROUP BY Id_Article;
- -- Genera una tabla con los datos de este año.
+
DROP TEMPORARY TABLE IF EXISTS cur_year;
CREATE TEMPORARY TABLE cur_year
@@ -22400,13 +21727,13 @@ BEGIN
GROUP BY A.Id_Article, week
) t
GROUP BY Id_Article;
- -- Genera la tabla con la comparativa.
+
DROP TEMPORARY TABLE IF EXISTS remcom;
SET strFILTRO = REPLACE(strFILTRO, 'Id_Article','A.Id_Article');
SET strFILTRO = REPLACE(strFILTRO, 'tipo_id','tp.tipo_id');
- -- select * from article_inventory;
+
CALL sql_query (sql_printf
(
'CREATE TEMPORARY TABLE remcom
@@ -22464,11 +21791,11 @@ BEGIN
CHANGE COLUMN `lweek7` `lweek7` INT NOT NULL;
SELECT * FROM remcom;
- -- Destruye las tablas temporales creadas.
+
DROP TEMPORARY TABLE last_year;
DROP TEMPORARY TABLE cur_year;
- -- DROP TEMPORARY TABLE article_inventory;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -22504,9 +21831,9 @@ BEGIN
DECLARE corrector INT;
DECLARE w1, w2, w3, w4, w5, w6, w7 INT;
DECLARE y1, y2, y3, y4, y5, y6, y7 INT;
- DECLARE wperiod INT;-- DECLARE ws, ys INT; -- PAK 11/01/2016
+ DECLARE wperiod INT;
DECLARE i INT DEFAULT 0;
- DECLARE lastCOMP BIGINT; -- Almacena el ultimo valor del Periodo
+ DECLARE lastCOMP BIGINT;
DECLARE strFILTRO VARCHAR(255) DEFAULT 'TRUE';
IF i_filtro THEN
@@ -22522,10 +21849,10 @@ BEGIN
IF i_wh = NULL THEN
SET i_wh = 0;
END IF;
- -- JGF 2015-04-16 cambio -21 por -22 para que la semana cuente de domingo a sabado
+
SET date_cyear_ini = TIMESTAMP(DATE(TIMESTAMPADD(DAY, -22 - WEEKDAY(v_date), v_date)), '00:00:00');
SET date_cyear_end = TIMESTAMP(DATE(TIMESTAMPADD(DAY, (7 * week_count) -1, date_cyear_ini)), '23:59:59');
- -- Eliminamos el calculo del inventario para fechas en el pasado
+
CALL article ();
@@ -22567,8 +21894,8 @@ BEGIN
REPEAT
SET i = i + 1;
- SET wperiod = vnperiod(TIMESTAMPADD(DAY, 7*(i - 1), date_cyear_ini)); -- PAK 11/01/2016
- INSERT INTO wtable(cy, ly) VALUES(wperiod, wperiod - 100); -- VALUES( ys * 100 + ws, (ys -1) * 100 + ws); -- PAK 11/01/2016
+ SET wperiod = vnperiod(TIMESTAMPADD(DAY, 7*(i - 1), date_cyear_ini));
+ INSERT INTO wtable(cy, ly) VALUES(wperiod, wperiod - 100);
UNTIL i = 7 END REPEAT;
@@ -22585,7 +21912,7 @@ BEGIN
SET cyear = YEAR(date_cyear_ini);
- -- Genera una tabla con los datos del año pasado.
+
DROP TEMPORARY TABLE IF EXISTS last_year;
CREATE TEMPORARY TABLE last_year
@@ -22615,7 +21942,7 @@ BEGIN
AND IF(i_wh = 0, W.is_comparative, i_wh = warehouse_id)
GROUP BY Id_Article;
- -- Genera una tabla con los datos de este año.
+
DROP TEMPORARY TABLE IF EXISTS cur_year;
CREATE TEMPORARY TABLE cur_year
@@ -22659,13 +21986,13 @@ BEGIN
GROUP BY A.Id_Article, week
) t
GROUP BY Id_Article;
- -- Genera la tabla con la comparativa.
+
DROP TEMPORARY TABLE IF EXISTS remcom;
SET strFILTRO = REPLACE(strFILTRO, 'Id_Article','A.Id_Article');
SET strFILTRO = REPLACE(strFILTRO, 'tipo_id','tp.tipo_id');
- -- select * from article_inventory;
+
CALL sql_query (sql_printf
(
'CREATE TEMPORARY TABLE remcom
@@ -22724,7 +22051,7 @@ BEGIN
CHANGE COLUMN `lweek7` `lweek7` INT NOT NULL;
SELECT * FROM remcom;
- -- Destruye las tablas temporales creadas.
+
DROP TEMPORARY TABLE last_year;
DROP TEMPORARY TABLE cur_year;
@@ -22764,9 +22091,9 @@ BEGIN
DECLARE corrector INT;
DECLARE w1, w2, w3, w4, w5, w6, w7 INT;
DECLARE y1, y2, y3, y4, y5, y6, y7 INT;
- DECLARE wperiod INT;-- DECLARE ws, ys INT; -- PAK 11/01/2016
+ DECLARE wperiod INT;
DECLARE i INT DEFAULT 0;
- DECLARE lastCOMP BIGINT; -- Almacena el ultimo valor del Periodo
+ DECLARE lastCOMP BIGINT;
DECLARE strFILTRO VARCHAR(255) DEFAULT 'TRUE';
IF i_filtro THEN
@@ -22782,10 +22109,10 @@ BEGIN
IF i_wh = NULL THEN
SET i_wh = 0;
END IF;
- -- JGF 2015-04-16 cambio -21 por -22 para que la semana cuente de domingo a sabado
+
SET date_cyear_ini = TIMESTAMP(DATE(TIMESTAMPADD(DAY, -22 - WEEKDAY(v_date), v_date)), '00:00:00');
SET date_cyear_end = TIMESTAMP(DATE(TIMESTAMPADD(DAY, (7 * week_count) -1, date_cyear_ini)), '23:59:59');
- -- Eliminamos el calculo del inventario para fechas en el pasado
+
CALL article ();
@@ -22827,8 +22154,8 @@ BEGIN
REPEAT
SET i = i + 1;
- SET wperiod = vnperiod(TIMESTAMPADD(DAY, 7*(i - 1), date_cyear_ini)); -- PAK 11/01/2016
- INSERT INTO wtable(cy, ly) VALUES(wperiod, wperiod - 100); -- VALUES( ys * 100 + ws, (ys -1) * 100 + ws); -- PAK 11/01/2016
+ SET wperiod = vnperiod(TIMESTAMPADD(DAY, 7*(i - 1), date_cyear_ini));
+ INSERT INTO wtable(cy, ly) VALUES(wperiod, wperiod - 100);
UNTIL i = 7 END REPEAT;
@@ -22845,7 +22172,7 @@ BEGIN
SET cyear = YEAR(date_cyear_ini);
- -- Genera una tabla con los datos del año pasado.
+
DROP TEMPORARY TABLE IF EXISTS last_year;
CREATE TEMPORARY TABLE last_year
@@ -22875,7 +22202,7 @@ BEGIN
AND IF(i_wh = 0, W.is_comparative, i_wh = warehouse_id)
GROUP BY Id_Article;
- -- Genera una tabla con los datos de este año.
+
DROP TEMPORARY TABLE IF EXISTS cur_year;
CREATE TEMPORARY TABLE cur_year
@@ -22919,13 +22246,13 @@ BEGIN
GROUP BY A.Id_Article, week
) t
GROUP BY Id_Article;
- -- Genera la tabla con la comparativa.
+
DROP TEMPORARY TABLE IF EXISTS remcom;
SET strFILTRO = REPLACE(strFILTRO, 'Id_Article','A.Id_Article');
SET strFILTRO = REPLACE(strFILTRO, 'tipo_id','tp.tipo_id');
- -- select * from article_inventory;
+
CALL sql_query (sql_printf
(
'CREATE TEMPORARY TABLE remcom
@@ -22983,7 +22310,7 @@ BEGIN
CHANGE COLUMN `lweek7` `lweek7` INT NOT NULL;
SELECT * FROM remcom;
- -- Destruye las tablas temporales creadas.
+
DROP TEMPORARY TABLE last_year;
DROP TEMPORARY TABLE cur_year;
@@ -23230,11 +22557,11 @@ BEGIN
AND t.Fecha BETWEEN CURDATE() AND vEndingDate
AND m.Cantidad > 0;
- -- Hora limite de preparación
+
CALL production_buffer_set_priority;
- -- Entradas
+
INSERT INTO tmp.production_buffer(
Fecha,
@@ -23299,7 +22626,7 @@ BEGIN
DECLARE vDate DATE;
DECLARE vCodintrastat INT(11);
- -- COMPROBAMOS SI EXISTE UN ARTÍCULO IGUAL.
+
SELECT
Id_Article
INTO vItem FROM
@@ -23312,14 +22639,14 @@ BEGIN
AND Color = vColour
LIMIT 1;
- -- SI NO EXISTE CREAMOS UNO NUEVO
+
IF vItem IS NULL THEN
- -- OBTENER EL ID ENTRE 161000 Y 169000 DEL SIGUIENTE ARTÍCULO
+
SELECT (IF(MAX(Id_Article) IS NULL, 161000, (MAX(Id_Article) + 1))) INTO vItem FROM Articles WHERE Id_Article BETWEEN 161000 AND 169000;
- -- INSERTAR EL ARTÍCULO
+
INSERT INTO Articles(Id_Article, Article, tipo_id, Medida, color, id_origen)
VALUES (
vItem,
@@ -23369,14 +22696,14 @@ BEGIN
DECLARE vPassword VARCHAR(50);
DECLARE vUsername VARCHAR(50) CHARSET utf8;
-##############################################################################
-#### GENERAR CLIENTE
-##############################################################################
+
+
+
- -- Comprobar si existe un cliente con el mismo DNI.
+
SELECT Id_cliente INTO vClient FROM vn2008.Clientes WHERE `if` = vDNI;
- -- Si no existe el cliente creamos uno nuevo.
+
IF vClient IS NULL THEN
SELECT (MAX(Id_Cliente) + 1) INTO vClient FROM Clientes WHERE Id_Cliente < 999999;
@@ -23385,49 +22712,49 @@ BEGIN
SELECT vClient, Concat('TR ', vName, ' ', vCognames), vAddress, vDNI, vPhone, vProvince, vTown, vPostalCode, CONCAT(vCognames, ' ', vName), vName, 1, 3, vPostalCode, 4, 5, 300;
END IF;
-##############################################################################
-#### GENERAR USUARIO
-##############################################################################
+
+
+
SET vUsername = LCASE(CONCAT(REPLACE(vName, ' ', ''), LEFT(vCognames, 1), MID(vCognames, (LOCATE(' ', vCognames) + 1), 1)));
- -- Generar nombre de usuario hasta que haya uno disponible.
+
WHILE (SELECT COUNT(*) FROM account.user WHERE `name`= vUsername) DO
SET vUsername = CONCAT(vUsername, (FLOOR(RAND() * 100)));
END WHILE;
SET vPassword = CONCAT(IF(INSTR(vCognames,' ') = 0, vCognames, LEFT(vCognames, INSTR(vCognames,' ') - 1)), '.' , vClient);
- -- Comprobamos si existe un usuario con el mismo ID de cliente.
+
IF NOT (SELECT COUNT(*) FROM account.user where id = vClient) THEN
- -- Alta del usuario.
+
INSERT INTO account.user (id, role, `name`, `password`, active) VALUES (vClient, 1, LCASE(vUsername), MD5(LCASE(vPassword)), 1);
SET vUser = vClient;
INSERT INTO account.account (id, lastchange, `expire`) values (vClient, CURRENT_DATE(), CURRENT_DATE());
ELSE
- -- Alta del usuario.
+
INSERT INTO account.user (role, `name`, `password`, active) VALUES (1, LCASE(vUsername), MD5(LCASE(vPassword)), 1);
SET vUser = LAST_INSERT_ID();
INSERT INTO account.account (id, lastchange ,`expire`) values (vUser, CURRENT_DATE(), CURRENT_DATE());
END IF;
-##############################################################################
-#### GENERAR TRABAJADOR
-##############################################################################
+
+
+
SET vWorkerCode = CONCAT(LEFT(vName, 1), LEFT(vCognames, 1), MID(vCognames, (LOCATE(' ', vCognames) + 1), 1));
- -- Generar código de trabajador hasta que haya uno disponible.
+
IF (SELECT COUNT(*) FROM Trabajadores WHERE CodigoTrabajador = vWorkerCode) THEN
SET vWorkerCode = "001";
END IF;
- -- Comprobamos si ya existe un trabajador con el mismo DNI.
+
IF NOT (SELECT COUNT(*) FROM Trabajadores WHERE dni = vDNI) THEN
- -- Alta en la tabla trabajadores.
+
INSERT INTO Trabajadores (CodigoTrabajador, Nombre, Apellidos, `Password`, dni, empresa_id, user_id, boss, DniExpiration)
VALUES (vWorkerCode, vName, vCognames, LCASE(vPassword), vDNI, vCompany, vUser, vEmployeeBoss, VDniExpiration);
@@ -23436,16 +22763,16 @@ BEGIN
UPDATE Trabajadores SET user_id = vUser WHERE dni = vDNI;
END IF;
-##############################################################################
-#### REENVIO EMAIL
-##############################################################################
+
+
+
IF vMail IS NOT NULL AND NOT (SELECT COUNT(*) FROM account.mailForward WHERE forwardTo = vMail) THEN
INSERT INTO account.mailForward (account, forwardTo) VALUES (vUser, vMail);
UPDATE Trabajadores SET email = CONCAT(vUsername, '@verdnatura.es') WHERE user_id = vUser;
END IF;
- -- Devolver información generada
+
SELECT vUser, vWorker, vPassword, vUsername;
END ;;
DELIMITER ;
@@ -23894,7 +23221,7 @@ BEGIN
,Faltan INT DEFAULT 0
);
- -- Insertamos los tickets que ya tienen la linea de portes
+
INSERT INTO zeleVOL(Provincia, Id_Ticket, Bultos)
SELECT p.name, t.Id_Ticket, sum(m.Cantidad)
@@ -23905,12 +23232,12 @@ BEGIN
JOIN Agencias a ON a.Id_Agencia = t.Id_Agencia
JOIN warehouse_joined wj ON wj.warehouse_id = t.warehouse_id
WHERE m.Id_Article = 71
- AND wj.warehouse_alias_id = 1 -- El 1 equivale a Silla (SillaFV-SillaPCA)
+ AND wj.warehouse_alias_id = 1
AND t.Fecha BETWEEN v_start AND v_end
AND a.agency_id = agency_id
GROUP BY p.name, Id_Ticket;
- -- Insertamos los tickets que ya tienen expediciones, que fallaran si se repite la clave primaria.
+
INSERT INTO zeleVOL(Provincia, Id_Ticket, Bultos)
SELECT p.name, e.ticket_id, COUNT(e.ticket_id)
@@ -23921,12 +23248,12 @@ BEGIN
JOIN Agencias a ON a.Id_Agencia = t.Id_Agencia
JOIN warehouse_joined wj ON wj.warehouse_id = t.warehouse_id
WHERE e.odbc_date BETWEEN v_start AND v_end
- AND wj.warehouse_alias_id = 1 -- El 1 equivale a Silla (SillaFV-SillaPCA)
+ AND wj.warehouse_alias_id = 1
AND a.agency_id = agency_id
GROUP BY p.name, ticket_id
ON DUPLICATE KEY UPDATE Bultos = Bultos;
- -- Por encajar
+
INSERT INTO zeleVOL(Provincia, Id_Ticket, Faltan)
SELECT province, Id_Ticket, COUNT(Id_Ticket) as Faltan
@@ -23941,14 +23268,14 @@ BEGIN
LEFT JOIN expeditions e ON t.Id_Ticket = e.ticket_id
JOIN warehouse_joined wj ON wj.warehouse_id = t.warehouse_id
WHERE Fecha BETWEEN v_start AND v_end
- AND wj.warehouse_alias_id = 1 -- El 1 equivale a Silla (SillaFV-SillaPCA)
+ AND wj.warehouse_alias_id = 1
AND a.agency_id = agency_id
AND (Bultos = 0 AND expeditions_id IS NULL AND EtiquetasEmitidas = 0)
GROUP BY p.name, Id_Ticket
) sub GROUP BY province
ON DUPLICATE KEY UPDATE Faltan = Faltan;
- -- Mostramos el resultado
+
SELECT Provincia, COUNT(Id_Ticket) expediciones, SUM(Bultos) Bultos, SUM(Faltan) Prevision
FROM zeleVOL
@@ -23974,11 +23301,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `dif_porte`(IN datFEC DATE)
BEGIN
-/* Calcula los greuges de porte que no coinciden con lo esperado
-/
-/
-/
-*/
+
drop temporary table if exists tmp.bionic_porte;
@@ -24076,7 +23399,7 @@ proc_label:BEGIN
ORDER BY CHAR_LENGTH(accion) DESC
LIMIT 1;
- IF @intidaccion IS null THEN -- idaccion genèric per a evitar errors en cas de no existir
+ IF @intidaccion IS null THEN
SET @intidaccion = 103;
END IF;
@@ -24169,14 +23492,14 @@ SET txt = CONCAT(txt,
'
Muchas gracias por su confianza
',
'');
--- Envío del email
+
IF emptyList = 0 THEN
SELECT CONCAT(`e-mail`,',pako@verdnatura.es') INTO MyMailTo
FROM Clientes
WHERE Id_Cliente = v_Client_Id AND `e-mail`>'';
- IF v_Client_Id = 7818 THEN -- LOEWE
+ IF v_Client_Id = 7818 THEN
SET MyMailTo = 'isabel@elisabethblumen.com,emunozca@loewe.es,pako@verdnatura.es';
@@ -24508,27 +23831,27 @@ BEGIN
DECLARE vEntry INT;
DECLARE vBucket VARCHAR(10);
- -- seleccionamos travel
+
SELECT id, Id_Entrada INTO vTravel, vEntry
FROM travel t LEFT JOIN Entradas e ON t.id = e.travel_id
WHERE t.landing = vInOutDate AND t.shipment = vInOutDate AND t.warehouse_id_out = vShipmentWarehouse
AND t.warehouse_id = vLandingWarehouse AND agency_id = 15
LIMIT 1;
- -- creamos el travel si es necesario
+
IF NOT IFNULL(vTravel,0) THEN
INSERT INTO travel (shipment, landing, warehouse_id, warehouse_id_out, agency_id)
VALUES (vInOutDate, vInOutDate, vLandingWarehouse, vShipmentWarehouse, 15);
SELECT LAST_INSERT_ID() INTO vTravel;
END IF;
- -- creamos la Entrada si es necesario
+
IF NOT IFNULL(vEntry,0) THEN
INSERT INTO Entradas (Id_Proveedor, travel_id)
- VALUES (13, vTravel); -- proveedor 'MOVIMIENTO ALMACEN'
+ VALUES (13, vTravel);
SELECT LAST_INSERT_ID() INTO vEntry;
END IF;
- -- creamos el cubo si es necesario
+
SELECT Id_Cubo INTO vBucket FROM Cubos WHERE Volumen = vVolume LIMIT 1;
IF NOT IFNULL(vBucket,'') > '' THEN
@@ -24579,14 +23902,14 @@ BEGIN
SELECT warehouse_id, Fecha, Fecha INTO vShipmentWarehouse, vShipmentDate, vLandingDate FROM Tickets WHERE Id_Ticket = vTicket;
- -- seleccionamos travel
+
SELECT id, Id_Entrada INTO vTravel, vEntry
FROM travel t LEFT JOIN Entradas e ON t.id = e.travel_id
WHERE t.landing = vLandingDate AND t.shipment = vShipmentDate AND t.warehouse_id_out = vShipmentWarehouse AND t.warehouse_id = vLandingWarehouse
AND agency_id = 15
LIMIT 1;
- -- creamos el travel si es necesario
+
IF vTravel IS NULL THEN
select vLandingDate;
INSERT INTO travel (shipment, landing, warehouse_id, warehouse_id_out, agency_id)
@@ -24594,10 +23917,10 @@ BEGIN
SELECT LAST_INSERT_ID() INTO vTravel;
END IF;
- -- creamos la Entrada si es necesario
+
IF vEntry IS NULL THEN
INSERT INTO Entradas (Id_Proveedor, travel_id)
- VALUES (13, vTravel); -- proveedor 'MOVIMIENTO ALMACEN'
+ VALUES (13, vTravel);
SELECT LAST_INSERT_ID() INTO vEntry;
END IF;
@@ -24651,28 +23974,28 @@ BEGIN
DECLARE vEntry INT;
DECLARE vBucket VARCHAR(10);
- -- seleccionamos travel
+
SELECT id, Id_Entrada INTO vTravel, vEntry
FROM travel t LEFT JOIN Entradas e ON t.id = e.travel_id
WHERE t.landing = vInOutDate AND t.shipment = vInOutDate AND t.warehouse_id_out = vShipmentWarehouse
AND t.warehouse_id = vLandingWarehouse AND agency_id = 15
LIMIT 1;
- -- creamos el travel si es necesario
+
IF NOT vTravel THEN
INSERT INTO travel (shipment, landing, warehouse_id, warehouse_id_out, agency_id)
VALUES (vShipmentDate, vLandingDate, vLandingWarehouse, vLandingWarehouse, 15);
SELECT LAST_INSERT_ID() INTO vTravel;
END IF;
- -- creamos la Entrada si es necesario
+
IF NOT vEntry THEN
INSERT INTO Entradas (Id_Proveedor, travel_id)
- VALUES (13, vTravel); -- proveedor 'MOVIMIENTO ALMACEN'
+ VALUES (13, vTravel);
SELECT LAST_INSERT_ID() INTO vEntry;
END IF;
- -- creamos el cubo si es necesario
+
SELECT Id_Cubo INTO vBucket FROM Cubos WHERE Volumen = vVolume LIMIT 1;
IF vBucket IS NULL THEN
INSERT INTO Cubos (Id_Cubo, Volumen)
@@ -24717,9 +24040,9 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `envios_masivos`(IN idTICKET INT, IN IdCONSIGNA_DESDE INT, IN IdCONSIGNA_HASTA INT)
BEGIN
--- Se trata de clonar el ticket semilla para todos los consignatarios del rango, con los movimientos que contenga
--- Insertamos los tickets
+
+
INSERT INTO Tickets(Id_Consigna, Id_Cliente, warehouse_id, Fecha, Alias, Tipo, Id_Trabajador, empresa_id, Id_Agencia)
SELECT c.Id_Consigna, t.Id_Cliente, t.warehouse_id, t.Fecha, c.Consignatario, t.Tipo, t.Id_Trabajador, t.empresa_id, t.Id_Agencia
@@ -24729,7 +24052,7 @@ WHERE Id_Ticket = idTICKET
AND c.Id_Consigna BETWEEN IdCONSIGNA_DESDE AND IdCONSIGNA_HASTA;
--- Insertamos los movimientos
+
INSERT INTO Movimientos(Id_Article, Concepte, Cantidad, Preu, PrecioFijado, Id_Ticket)
SELECT Id_Article, Concepte, Cantidad, Preu, TRUE , t.Id_Ticket
@@ -25113,7 +24436,7 @@ CREATE DEFINER=`root`@`%` PROCEDURE `f10_no_vincular`(lngEntrada INTEGER)
BEGIN
DECLARE datFecha DATE DEFAULT CURDATE();
--- Modifica el NoVincular si hay dos entradas con el mismo Packing y el mismo Id_Articulo
+
DROP TEMPORARY TABLE IF EXISTS f10_no_vincular_;
CREATE TEMPORARY TABLE IF NOT EXISTS f10_no_vincular_
SELECT c.Id_Entrada,c.Id_Compra,c.Id_Article, c.Novincular, c.Packing, be.pri
@@ -25125,7 +24448,7 @@ BEGIN
OR (c.Id_Entrada = 9200 AND be.ok <> FALSE)
OR c.Id_Entrada = lngEntrada) AND Id_Article <> 90;
- -- Modifica el NoVincular si hay dos entradas con el mismo Packing y el mismo Id_Articulo
+
DROP TEMPORARY TABLE IF EXISTS f10_mismo_Packing;
CREATE TEMPORARY TABLE IF NOT EXISTS f10_mismo_Packing
SELECT * FROM (
@@ -25144,7 +24467,7 @@ BEGIN
OR (c.Id_Entrada = 9200 AND be.ok <> FALSE)
OR c.Id_Entrada = lngEntrada);
--- Modifica el Id_Articulo si hay dos entradas con packing y el mismo Id_Articulo
+
DROP TEMPORARY TABLE IF EXISTS f10_mismo_Articulo;
CREATE TEMPORARY TABLE IF NOT EXISTS f10_mismo_Articulo
SELECT Id_Article FROM (
@@ -25186,41 +24509,8 @@ SELECT C.calidad,
LEFT(Article, 4) as Subtipo,
barcode,
'ASEGURADO' AS asegurado,
-/*CASE A.tipo_id
-WHEN 75 THEN IF(M.Id_Article IN (120,2388,20100,16,10,130,104851,1,56,238,104850,104849,2),'RAMAJE',R.Reino)
-WHEN 68 THEN IF(M.Id_Article IN (11539,10,14),'RAMAJE',R.Reino)
-WHEN 69 THEN IF(M.Id_Article IN (41),'RAMAJE',R.Reino)
-WHEN 72 THEN IF(M.Id_Article IN (238),'RAMAJE',R.Reino)
-WHEN 2 THEN 'CYMBIDIUMS & ANTHURIUMS'
-WHEN 122 THEN 'CYMBIDIUMS & ANTHURIUMS'
-WHEN 12 THEN 'CYMBIDIUMS & ANTHURIUMS'
-WHEN 13 THEN 'CYMBIDIUMS & ANTHURIUMS'
-WHEN 14 THEN 'CYMBIDIUMS & ANTHURIUMS'
-WHEN 15 THEN 'CYMBIDIUMS & ANTHURIUMS'
-WHEN 71 THEN IF(LEFT(Article,2) = 'HC','Flor',R.Reino)
-WHEN 19 THEN IF(LEFT(Article,3) IN ('HEL','GIN'),'CYMBIDIUMS & ANTHURIUMS',R.Reino)
-WHEN 70 THEN IF(Article like '%red beauty%' or Article like '%clarinervium%','CYMBIDIUMS & ANTHURIUMS',R.Reino)
-WHEN 86 THEN 'Flor'
-ELSE R.Reino
-END as*/ Reino,
- /*
-CASE A.tipo_id
-WHEN 75 THEN IF(M.Id_Article IN (120,2388,20100,16,10,130,104851,1,56,238,104850,104849,2),-1,R.orden)
-WHEN 68 THEN IF(M.Id_Article IN (11539,10,14),-1,R.orden)
-WHEN 69 THEN IF(M.Id_Article IN (41),-1,R.orden)
-WHEN 72 THEN IF(M.Id_Article IN (238),-1,R.orden)
-WHEN 2 THEN 0
-WHEN 122 THEN 0
-WHEN 12 THEN 0
-WHEN 13 THEN 0
-WHEN 14 THEN 0
-WHEN 15 THEN 0
-WHEN 71 THEN IF(LEFT(Article,2) = 'HC',1,R.orden)
-WHEN 19 THEN IF(LEFT(Article,3) IN ('HEL','GIN'),0,R.orden)
-WHEN 70 THEN IF(Article like '%red beauty%' or Article like '%clarinervium%',0,R.orden)
-WHEN 86 THEN 1
-ELSE R.orden
-END as*/ R.orden,
+ Reino,
+ R.orden,
CS.Consignatario,
T.Id_Cliente,
T.Id_Trabajador,
@@ -25241,7 +24531,7 @@ END as*/ R.orden,
T.Observaciones,
Ag.Agencia Tipo,
TR.CodigoTrabajador,
- /*0 Seguro,*/
+
M.OK,
M.Reservado,
A.Tallos,
@@ -25258,14 +24548,14 @@ END as*/ R.orden,
M.Id_Movimiento movement_id,
lpad(ifnull(cooler_path_detail_id, an.Nicho),5,'0') as path,
M.Descuento,M.Preu, mm.valor as Preparado, mm.original_quantity
- , p.`name` producer, T.warehouse_id, CS.POBLACION -- JGF 2016-02-16
+ , p.`name` producer, T.warehouse_id, CS.POBLACION
FROM
Tickets T
LEFT JOIN Movimientos M USING(Id_Ticket)
LEFT JOIN Articles A on A.Id_Article = M.Id_Article
LEFT JOIN Articles_nicho an ON A.Id_Article = an.Id_Article AND an.warehouse_id = T.warehouse_id
- LEFT JOIN producer p on p.producer_id = A.producer_id -- JGF 2016-02-16
+ LEFT JOIN producer p on p.producer_id = A.producer_id
LEFT JOIN cooler_path_detail c on left(an.Nicho,3) = pasillo
LEFT JOIN Origen O ON A.id_origen = O.id
LEFT JOIN Clientes C USING(Id_Cliente)
@@ -25601,21 +24891,21 @@ DECLARE datFEC DATE;
DECLARE intEMP INT;
DECLARE intCLI_OLD INT;
-/*Este procedure no funcionara correctament perque el strFactura ha de fer referencia al factura_id*/
+
SELECT Importe, Fecha, empresa_id, Id_Cliente
INTO dblIMPORTE, datFEC, intEMP, intCLI_OLD
FROM Facturas WHERE Id_Factura = strFactura;
--- Cambia la empresa de la factura
+
UPDATE Facturas SET empresa_id = 965, Id_Cliente = intCLI WHERE Id_Factura = strFactura;
--- Cambia la empresa de los tickets
+
UPDATE Tickets SET empresa_id = 965, Id_Cliente = intCLI WHERE Factura = strFactura;
--- Descuenta la cantidad del cliente antiguo
+
INSERT INTO Recibos(Id_Factura
,Entregado
@@ -25633,7 +24923,7 @@ VALUES (strFactura
,intCLI_OLD
,intEMP);
--- Carga el cobro en la cuenta del nuevo cliente
+
INSERT INTO Recibos(Id_Factura
,Entregado
@@ -25748,7 +25038,7 @@ BEGIN
DECLARE intCLI,intCLI2 INT DEFAULT 0;
DECLARE datFEC,datFEC2,auxdatFEC DATE DEFAULT '2001-01-01';
DECLARE lngTIC, lngTIC2 BIGINT DEFAULT 0;
-DECLARE intDiferencia INT DEFAULT 0; # Variable donde se colocará la diferencia de días entre dos fechas.
+DECLARE intDiferencia INT DEFAULT 0;
DECLARE done,EsPerdido bit DEFAULT 0;
DECLARE intEstado TINYINT(2) DEFAULT 0;
DECLARE intNuevo INT DEFAULT 1;
@@ -25756,14 +25046,8 @@ DECLARE intPerdido INT DEFAULT 2;
DECLARE intRecuperado INT DEFAULT 3;
-# Añado una fecha de fin para que no tenga en cuenta los tickets del futuro. (and Fecha<=current_date())
-/*
-DECLARE cursor1 CURSOR FOR SELECT Id_Ticket,ti.Id_Cliente,date_format(Fecha,'%Y-%m-%d') AS FormatoFecha
-FROM vn2008.Tickets ti
-WHERE DATE_FORMAT(Fecha,'%Y-%m-%d')>CAST(CONCAT(YEAR(CURDATE())-2,'-','01-01')AS DATE)
-AND DATE_FORMAT(Fecha,'%Y-%m-%d')<=LAST_DAY(CAST(CONCAT(intAno, '-' , intMes,'-',01) AS DATE))
-ORDER BY ti.Id_Cliente,Fecha;
-*/
+
+
DECLARE cursor1 CURSOR FOR SELECT Id_Ticket,fac.Id_Cliente,date_format(Fecha,'%Y-%m-%d') AS FormatoFecha
FROM Facturas fac
JOIN (SELECT Id_Ticket,Id_Cliente,Factura from Tickets ti where Factura is not null order by Fecha DESC,Id_Ticket DESC) sub1
@@ -25783,7 +25067,7 @@ CREATE TEMPORARY TABLE GC (Id_Ticket BIGINT,Fecha DATE,Id_Cliente int,Estado SMA
OPEN cursor1;
FETCH cursor1 INTO lngtIC,intCLI,datFEC;
- # el primero registro es un cliente nuevo.
+
INSERT INTO GC(Id_Ticket, Fecha, Id_Cliente, Estado) VALUES(lngtIC,datFEC, intCLI,intNuevo);
SET auxdatFEC=datFEC;
@@ -25793,27 +25077,27 @@ OPEN cursor1;
WHEN DONE THEN SET intDiferencia=DATEDIFF(CURRENT_DATE,datFEC2);
WHEN intCLI=intCLI2 THEN
SET intDiferencia=DATEDIFF(datFEC2,datFEC);
- IF ((intEstado=2)) THEN -- es recuperado despues de haberse perdido
- INSERT INTO GC(Id_Ticket, Fecha, Id_Cliente, Estado) VALUES (lngtIC2,datFEC2, intCLI,intRecuperado); # RECUPERADO
+ IF ((intEstado=2)) THEN
+ INSERT INTO GC(Id_Ticket, Fecha, Id_Cliente, Estado) VALUES (lngtIC2,datFEC2, intCLI,intRecuperado);
SET intEstado=1;
SET auxdatFEC=datFEC2;
ELSE
IF (intDiferencia >= intDiasPerdidos) THEN
- -- IF (DATE_FORMAT(datFEC2,'%Y-%m')<>DATE_FORMAT(DATE_ADD(datFEC,INTERVAL intDiasPerdidos DAY),'%Y-%m')) AND (intEstado<2) THEN
+
INSERT INTO GC(Id_Ticket, Fecha, Id_Cliente, Estado) VALUES (0,DATE_ADD(auxdatFEC,INTERVAL intDiasPerdidos DAY), intCLI,intPerdido);
- INSERT INTO GC(Id_Ticket, Fecha, Id_Cliente, Estado) VALUES (lngtIC2,datFEC2, intCLI,intRecuperado); # RECUPERADO
+ INSERT INTO GC(Id_Ticket, Fecha, Id_Cliente, Estado) VALUES (lngtIC2,datFEC2, intCLI,intRecuperado);
SET intEstado=1,auxdatFEC=datFEC2;
- -- ELSE
- -- INSERT INTO GC(Id_Ticket, Fecha, Id_Cliente, Estado) VALUES (lngtIC2,datFEC2, intCLI,intPerdido); # PERDIDO
- -- SET intEstado=2; # Lo marcamos como perdido
- -- END IF;
+
+
+
+
END IF;
END IF;
WHEN intCLI<>intCLI2 THEN
SET intEstado=0;
SET intDiferencia=DATEDIFF(CURRENT_DATE,datFEC);
- INSERT INTO GC(Id_Ticket, Fecha, Id_Cliente, Estado) VALUES(lngtIC2,datFEC2, intCLI2,intNuevo); # NUEVO
+ INSERT INTO GC(Id_Ticket, Fecha, Id_Cliente, Estado) VALUES(lngtIC2,datFEC2, intCLI2,intNuevo);
SET auxdatFEC=datFEC2;
END CASE;
SET datFEC=datFEC2;
@@ -25825,7 +25109,7 @@ OPEN cursor1;
CLOSE cursor1;
- # inserto los registros de clientes sin ticket (Estado 4)
+
INSERT GC
SELECT 0,'2000-01-01',Id_Cliente,4
FROM vn2008.Clientes
@@ -26095,10 +25379,10 @@ BEGIN
DECLARE datini,datfin,datiniaux,datfinaux DATE;
DECLARE dblrate0,dblrate0aux,dblrate1,dblrate1aux,dblrate2,dblrate2aux,dblrate3,dblrate3aux DOUBLE DEFAULT 0;
DECLARE boolBeforeStart TINYINT DEFAULT 1;
- -- selecciona el primer bloque apartir de la mínima fecha que esta dentro del rango y la fecha de finalizar es posterior
+
SET datiniaux = NULL;
SET datfinaux = NULL;
- -- guarda en dblrate0aux el valor del valor del periode, a lo millor falla si no trau cap linea
+
SELECT IFNULL(rate_0,0), IFNULL(rate_1,0), IFNULL(rate_2,0), IFNULL(rate_3,0)
INTO dblrate0aux,dblrate1aux,dblrate2aux,dblrate3aux FROM price_fixed
WHERE date_start = id_datestart AND warehouse_id IN (0,id_wh) AND item_id = id_art;
@@ -26118,22 +25402,22 @@ BEGIN
ORDER BY date_start LIMIT 1;
IF datini IS NOT NULL THEN
- -- Inserta un registre(dia -1)
+
IF boolBeforeStart THEN
INSERT INTO historicoprecio(date_start,rate_0,rate_1,rate_2,rate_3)
VALUES(TIMESTAMPADD(DAY,-1,datini),dblrate0aux,dblrate1aux,dblrate2aux,dblrate3aux);
SET boolBeforeStart = TRUE;
END IF;
- -- reiniciem els valors de les variables
+
SET datiniaux = NULL;
SET datfinaux = NULL;
- -- seleccionem el dia fins al qual dura el periode eliminant els dies que queden solapats
+
SELECT MIN(date_start) INTO datfinaux FROM price_fixed WHERE date_start > datini AND date_start < datfin AND date_end >= datfin
AND warehouse_id IN (0,id_wh) AND item_id = id_art;
- -- cridada recursiva per al periode(retallat si cal) inclós
+
CALL historicoprecio2 (id_art,id_wh,datini,IFNULL(datfinaux,datfin));
- -- anyadeix el valor que ha d'agafar el dia seguent d'acabar el periode actual.
+
IF datfinaux IS NULL THEN
INSERT INTO historicoprecio(date_start,rate_0,rate_1,rate_2,rate_3)
VALUES(TIMESTAMPADD(DAY,1,datfin),dblrate0aux,dblrate1aux,dblrate2aux,dblrate3aux),
@@ -26148,7 +25432,7 @@ BEGIN
END IF;
UNTIL datini IS NULL END REPEAT;
- -- inserta linea caso base
+
INSERT INTO historicoprecio(date_start,rate_0,rate_1,rate_2,rate_3) VALUES(id_datestart,dblrate0aux,dblrate1aux,dblrate2aux,dblrate3aux)
ON DUPLICATE KEY UPDATE rate_0 = dblrate0,rate_1 = dblrate1,rate_2 = dblrate2,rate_3 = dblrate3;
END ;;
@@ -26188,7 +25472,7 @@ SET today = curdate();
E.Referencia as Referencia,
E.Id_Entrada as id,
TR.delivered as F5, 0 as Calidad
- FROM Compres C -- mirar perque no entra en received
+ FROM Compres C
INNER JOIN Entradas E USING (Id_Entrada)
INNER JOIN travel TR ON TR.id = E.travel_id
INNER JOIN Proveedores P USING (Id_Proveedor)
@@ -26241,7 +25525,7 @@ SET today = curdate();
FROM historico_pasado
WHERE Fecha < datfecha;
- -- WHERE historico_pasado.Fecha < fecha_inv ;
+
SELECT p1.*, NULL as v_virtual FROM(
@@ -26611,7 +25895,7 @@ from (
inner join Clientes cli on ti.Id_Cliente=cli.Id_Cliente
inner join vn2008.Trabajadores on cli.Id_Trabajador=Trabajadores.Id_Trabajador
where (date between date_add(dat_from,interval -1 year) and date_add(dat_to,interval -1 year))
- -- and cli.invoice
+
group by CodigoTrabajador,ti.Id_Cliente
union all
@@ -26628,7 +25912,7 @@ select CodigoTrabajador,cli.Id_Cliente,Cliente,0 ImporteAnt,
inner join vn2008.Permisos perm on cli.Id_Trabajador=perm.Id_Trabajador
inner join vn2008.Grupos grup on perm.Id_Grupo=grup.Id
where ti.Fecha between dat_from and DAYEND(dat_to)
- -- and cli.invoice
+
AND r.display <> 0
and (grup.Id in (6) or cli.Id_Trabajador in (20))
group by CodigoTrabajador,c.Id_Cliente,year(Fecha)
@@ -26704,13 +25988,9 @@ BEGIN
JOIN edi.supplier es ON es.supplier_id = be.pro
WHERE c.Id_Compra = idCompra;
- -- SELECT LAST_INSERT_ID() INTO last_insert;
+
- /*
- IF last_insert > 0 THEN
- UPDATE Articles a JOIN Compres c
- ON a.Id_Article = c.Id_Article SET a.producer_id = last_insert WHERE c.Id_Compra = idCompra;
- END IF;*/
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -26749,7 +26029,7 @@ BEGIN
--- PREVIO: Crear una tabla para filtrar los articulos que interesan
+
DROP TEMPORARY TABLE IF EXISTS article_selection;
@@ -26774,9 +26054,9 @@ BEGIN
ALTER TABLE article_selection ADD PRIMARY KEY(Id_Article);
--- PRIMER PASO: Cálculo del inventario inicial, valorado
+
--- Averiguamos la fecha del inventario inmediatemente anterior a la fecha de inicio
+
SELECT landing INTO d_INV
FROM travel TR
@@ -26801,7 +26081,7 @@ ALTER TABLE article_selection ADD PRIMARY KEY(Id_Article);
END IF;
--- Ubicamos la fecha de inventario segun su posición relativa a la de inicio y a la de fin
+
IF d_INV <= d_START THEN
@@ -26823,7 +26103,7 @@ END IF;
DROP TEMPORARY TABLE IF EXISTS inv;
--- Preparamos la tabla temporal que va a almacenar el valor y cantidad de productos
+
CREATE TEMPORARY TABLE inv
(w_id SMALLINT,
@@ -26835,7 +26115,7 @@ CREATE TEMPORARY TABLE inv
ALTER TABLE inv ADD PRIMARY KEY USING HASH (w_id, Id_Article, Sector);
-/************************** SECTOR INICIAL: 0 *****************************/
+
CASE intCASE
@@ -26855,7 +26135,7 @@ CASE intCASE
END CASE;
--- Inicializamos el inventario
+
INSERT INTO inv(w_id, Id_Article, Unidades,Valor)
@@ -26875,7 +26155,7 @@ END CASE;
AND TR.warehouse_id != TR.warehouse_id_out
GROUP BY TR.warehouse_id, C.Id_Article;
--- Se insertan las compras que llegan entre la fecha del inventario y la fecha inicial
+
INSERT INTO inv(w_id, Id_Article, Unidades, Valor)
SELECT TR.warehouse_id, C.Id_Article, C.Cantidad * IF(bolREVERSE,-1,1), ifnull(C.Costefijo,0) + IFNULL(C.Embalajefijo,0) + IFNULL(C.Portefijo,0) + IFNULL(C.Comisionfija,0)
@@ -26897,7 +26177,7 @@ END CASE;
ON DUPLICATE KEY UPDATE inv.Unidades = inv.Unidades + (C.Cantidad * IF(bolREVERSE,-1,1))
, Valor = IF(Costefijo > 0,ifnull(C.Costefijo,0) + IFNULL(C.Embalajefijo,0) + IFNULL(C.Portefijo,0) + IFNULL(C.Comisionfija,0),Valor);
--- Se sacan las que salen
+
INSERT INTO inv(w_id, Id_Article, Unidades)
SELECT TR.warehouse_id_out, C.Id_Article, C.Cantidad * IF(bolREVERSE,1,-1)
@@ -26917,7 +26197,7 @@ END CASE;
AND TR.warehouse_id != TR.warehouse_id_out
ON DUPLICATE KEY UPDATE inv.Unidades = inv.Unidades + (C.Cantidad * IF(bolREVERSE,1,-1));
--- Ahora las ventas
+
INSERT INTO inv(w_id, Id_Article, Unidades)
SELECT w.id, M.Id_Article, M.Cantidad * IF(bolREVERSE,1,-1)
@@ -26937,7 +26217,7 @@ END CASE;
UPDATE inv SET Valor = inv.Unidades * Valor;
-/************************** SECTOR ENTRADAS: 1 *****************************/
+
SET i_SECTOR = 1;
@@ -26947,7 +26227,7 @@ SET i_SECTOR = 1;
--- Ahora vamos a incrementar en unidades y valor el producto recibido en el rango de fechas del procedimiento
+
INSERT INTO inv(Sector, w_id, Id_Article, Unidades, Valor)
SELECT i_SECTOR, TR.warehouse_id, C.Id_Article, sum(C.Cantidad )
@@ -26971,11 +26251,11 @@ SET i_SECTOR = 1;
-/************************** SECTOR SALIDAS: 2 *****************************/
+
SET i_SECTOR = 2;
--- Ahora vamos a restar en unidades y valor el producto que sale de los almacenes en el rango de fechas del procedimiento
+
INSERT INTO inv(Sector, w_id, Id_Article, Unidades, Valor)
SELECT i_SECTOR, TR.warehouse_id_out, C.Id_Article, sum( -1 * C.Cantidad )
@@ -26998,7 +26278,7 @@ SET i_SECTOR = 2;
-/******************** SECTOR VENTAS: 3 **************************************/
+
SET i_SECTOR = 3;
@@ -27033,13 +26313,7 @@ IF d_START >= '2015-10-01' THEN
AND i_wh IN (0,T.warehouse_id)
AND w.comisionantes
AND reino_id != ID_REINO_OTROS
- /*
- AND (
- T.Id_Cliente != ID_CLIENTE_COMPLEMENTOS
- OR
- TP.Id_Trabajador != ID_TRABAJADOR_MARIBEL
- )
- */
+
GROUP BY T.warehouse_id, Id_Article;
@@ -27087,19 +26361,13 @@ ELSE
AND i_wh IN (0,T.warehouse_id)
AND w.comisionantes
AND reino_id != ID_REINO_OTROS
- /*
- AND (
- T.Id_Cliente != ID_CLIENTE_COMPLEMENTOS
- OR
- TP.Id_Trabajador != ID_TRABAJADOR_MARIBEL
- )
- */
+
GROUP BY T.warehouse_id, Id_Article;
END IF;
- -- Ventas del año anterior
+
DROP TEMPORARY TABLE IF EXISTS Ventas_Lastyear;
@@ -27137,13 +26405,7 @@ END IF;
AND i_wh IN (0,T.warehouse_id)
AND w.comisionantes
AND reino_id != ID_REINO_OTROS
- /*
- AND (
- T.Id_Cliente != ID_CLIENTE_COMPLEMENTOS
- OR
- TP.Id_Trabajador != ID_TRABAJADOR_MARIBEL
- )
- */
+
GROUP BY CodigoTrabajador, Id_Tipo;
@@ -27151,7 +26413,7 @@ END IF;
-/******************** SECTOR FINAL: 4 **************************************/
+
SET i_SECTOR = 4;
@@ -27174,9 +26436,9 @@ CASE intCASE
END CASE;
--- Ahora repetimos el proceso de inventario, para contabilizar el stock remanente.
--- Inicializamos el inventario
+
+
INSERT INTO inv(Sector, w_id, Id_Article, Unidades, Valor)
@@ -27201,7 +26463,7 @@ END CASE;
--- Se insertan las compras que llegan entre la fecha del inventario y la fecha inicial
+
INSERT INTO inv(Sector, w_id, Id_Article, Unidades, Valor)
SELECT i_SECTOR, TR.warehouse_id, C.Id_Article, C.Cantidad * IF(bolREVERSE,-1,1), nz(Costefijo) + nz(Portefijo) + nz(Embalajefijo) + nz(Comisionfija)
@@ -27223,7 +26485,7 @@ END CASE;
ON DUPLICATE KEY UPDATE inv.Unidades = inv.Unidades + (C.Cantidad * IF(bolREVERSE,-1,1))
, Valor = IF( nz(Costefijo) > 0,nz(Costefijo) + nz(Portefijo) + nz(Embalajefijo) + nz(Comisionfija),Valor);
--- Se sacan las que salen
+
INSERT INTO inv(Sector, w_id, Id_Article, Unidades)
SELECT i_SECTOR, TR.warehouse_id_out, C.Id_Article, C.Cantidad * IF(bolREVERSE,1,-1)
@@ -27244,7 +26506,7 @@ END CASE;
ON DUPLICATE KEY UPDATE inv.Unidades = inv.Unidades + (C.Cantidad * IF(bolREVERSE,1,-1));
--- Ahora las ventas
+
INSERT INTO inv(Sector, w_id, Id_Article, Unidades)
SELECT i_SECTOR, w.id, M.Id_Article, M.Cantidad * IF(bolREVERSE,1,-1)
@@ -27260,13 +26522,13 @@ END CASE;
AND reino_id != ID_REINO_OTROS
ON DUPLICATE KEY UPDATE inv.Unidades = inv.Unidades + (M.Cantidad * IF(bolREVERSE,1,-1));
--- Valoramos el inventario final
+
UPDATE inv SET Valor = inv.Unidades * Valor WHERE Sector =4;
--- Resultado
+
DROP TEMPORARY TABLE IF EXISTS Margen_Desglose;
@@ -27330,7 +26592,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `inventario_multiple`(IN wh TINYINT(2), IN date_ticket DATETIME)
BEGIN
--- DEPRECATED USAR cache.available_refresh
+
DECLARE date_order DATETIME;
DECLARE date_end DATETIME DEFAULT CURDATE();
DECLARE date_aux DATE;
@@ -27349,17 +26611,8 @@ BEGIN
ADD `inventory` FLOAT(7,2) NOT NULL,
ADD `visible` FLOAT(7,2) NOT NULL;
- -- JGF 2015-02-19 Falla, el valor @camp es cero y falla Campanya
- /*
- SELECT
- IF(@camp := DATEDIFF(campaign, date_ticket) BETWEEN 0 AND campaign_life,
- TIMESTAMPADD(DAY, -campaign_life, campaign),
- FechaInventario),
- IF(@camp BETWEEN 0 AND campaign_life,
- TIMESTAMP(campaign, '23:59:59'),
- TIMESTAMP(TIMESTAMPADD(DAY, 15, date_ticket),'23:59:59'))
- INTO date_start, date_end
- FROM tblContadores;*/
+
+
SELECT
FechaInventario,TIMESTAMP(TIMESTAMPADD(DAY, 15, date_ticket),'23:59:59')
@@ -27370,7 +26623,7 @@ BEGIN
SET date_order = TIMESTAMP(DATE(date_ticket), '00:00:00');
SET date_tomorrow = TIMESTAMPADD(DAY, 1, date_order);
--- Inventario hasta dia antes del ticket
+
CALL item_stock(wh,date_ticket,NULL);
INSERT INTO article_inventory (article_id,inventory,visible,available)
@@ -27379,7 +26632,7 @@ BEGIN
DROP TEMPORARY TABLE IF EXISTS tmp_item;
--- Inventario ventas durante el dia del ticket
+
INSERT INTO article_inventory(article_id,visible)
SELECT Id_Article, SUM(amount) AS Subtotal
@@ -27451,7 +26704,7 @@ BEGIN
visible = inventory + VALUES(visible);
- -- Disponible en el futuro
+
CALL item_travel (wh, date_order);
SET date_aux = DATE(date_order);
@@ -27554,7 +26807,7 @@ proc: BEGIN
DECLARE date_top DATETIME;
DECLARE date_tomorrow DATETIME;
- SET date_ticket = DATE(date_ticket); -- PAK
+ SET date_ticket = DATE(date_ticket);
ALTER TABLE `article_inventory`
ADD `avalaible` INT NOT NULL,
@@ -27576,7 +26829,7 @@ proc: BEGIN
SET date_tomorrow = TIMESTAMPADD(DAY, 1,date_ticket);
SET date_top = TIMESTAMPADD(DAY, 1,date_end);
- -- Calculo del inventario dia D a las 24:00 zulu
+
UPDATE article_inventory AI INNER JOIN
@@ -27599,7 +26852,7 @@ proc: BEGIN
SELECT Id_Article, Cantidad
FROM Compres C INNER JOIN Entradas E USING (Id_Entrada)
LEFT JOIN travel TR ON E.travel_id = TR.id
- JOIN warehouse W ON W.id = TR.warehouse_id -- PAK
+ JOIN warehouse W ON W.id = TR.warehouse_id
WHERE TR.landing BETWEEN date_start AND date_ticket
AND IF(wh = 0, W.is_comparative, wh =TR.warehouse_id)
AND E.Inventario = 0
@@ -27633,7 +26886,7 @@ proc: BEGIN
AI.sd = T2.Subtotal;
- -- Calculo del visible
+
UPDATE article_inventory AI INNER JOIN
(
@@ -27642,8 +26895,8 @@ proc: BEGIN
SELECT Id_Article, Cantidad AS amount
FROM Movimientos M
JOIN Tickets T USING (Id_Ticket)
- JOIN warehouse W ON W.id = T.warehouse_id -- PAK
- WHERE Fecha >= date_ticket AND Fecha < date_tomorrow -- PAK
+ JOIN warehouse W ON W.id = T.warehouse_id
+ WHERE Fecha >= date_ticket AND Fecha < date_tomorrow
AND (M.OK = 0 AND T.Etiquetasemitidas = 0 AND T.Factura IS NULL)
AND IF(wh = 0, W.is_comparative, wh =T.warehouse_id)
@@ -27653,7 +26906,7 @@ proc: BEGIN
FROM Compres C
JOIN Entradas E USING (Id_Entrada)
JOIN travel TR ON E.travel_id = TR.id
- JOIN warehouse W ON W.id = TR.warehouse_id -- PAK
+ JOIN warehouse W ON W.id = TR.warehouse_id
WHERE TR.landing = date_ticket
AND TR.received = 0
AND E.Inventario = 0
@@ -27682,7 +26935,7 @@ proc: BEGIN
SET AI.visible = AI.visible + T2.Subtotal;
- -- Calculo del disponible
+
CALL item_travel (wh, date_ticket);
@@ -27706,7 +26959,7 @@ proc: BEGIN
FROM Compres C
JOIN Entradas E USING (Id_Entrada)
JOIN travel TR ON E.travel_id = TR.id
- JOIN warehouse W ON W.id = TR.warehouse_id -- PAK
+ JOIN warehouse W ON W.id = TR.warehouse_id
WHERE TR.landing BETWEEN date_tomorrow AND date_end
AND IF(wh = 0, W.is_comparative, wh =TR.warehouse_id)
AND E.Inventario = 0
@@ -27772,7 +27025,7 @@ BEGIN
ALTER TABLE article_inventory
ADD visible FLOAT(7,2) NOT NULL;
- -- Campaña
+
SELECT
IF(@camp := DATEDIFF(campaign, date_ticket) BETWEEN 0 AND campaign_life ,
@@ -27841,7 +27094,7 @@ proc: BEGIN
DECLARE i_avalaible INTEGER;
DECLARE wh INTEGER;
- SET date_ticket = DATE(date_ticket); -- PAK
+ SET date_ticket = DATE(date_ticket);
ALTER TABLE `article_inventory`
ADD `avalaible` INT NOT NULL,
@@ -27863,7 +27116,7 @@ proc: BEGIN
SET date_tomorrow = TIMESTAMPADD(DAY, 1,date_ticket);
SET date_top = TIMESTAMPADD(DAY, 1,date_end);
- -- Calculo del inventario dia D a las 24:00 zulu
+
UPDATE article_inventory AI INNER JOIN
@@ -27878,7 +27131,7 @@ proc: BEGIN
FROM Movimientos M
JOIN Tickets T USING (Id_Ticket)
- JOIN warehouse_joined wj ON T.warehouse_id = wj.warehouse_id -- JGF 15/12/14
+ JOIN warehouse_joined wj ON T.warehouse_id = wj.warehouse_id
WHERE DATE(Fecha) BETWEEN date_start AND date_ticket
AND wh_joined IN (wj.warehouse_alias_id, 0)
UNION ALL
@@ -27888,7 +27141,7 @@ proc: BEGIN
FROM Compres C INNER JOIN Entradas E USING (Id_Entrada)
LEFT JOIN travel TR ON E.travel_id = TR.id
- JOIN warehouse_joined wj ON TR.warehouse_id = wj.warehouse_id -- JGF 15/12/14
+ JOIN warehouse_joined wj ON TR.warehouse_id = wj.warehouse_id
WHERE TR.landing BETWEEN date_start AND date_ticket
AND wh_joined IN (wj.warehouse_alias_id, 0)
@@ -27902,7 +27155,7 @@ proc: BEGIN
JOIN Entradas E USING (Id_Entrada)
JOIN travel TR ON E.travel_id = TR.id
- JOIN warehouse_joined wj ON TR.warehouse_id_out = wj.warehouse_id -- JGF 15/12/14
+ JOIN warehouse_joined wj ON TR.warehouse_id_out = wj.warehouse_id
WHERE TR.shipment BETWEEN date_start AND date_ticket
AND wh_joined IN (wj.warehouse_alias_id,0)
AND E.Inventario = 0
@@ -27925,7 +27178,7 @@ proc: BEGIN
SELECT avalaible INTO i_avalaible FROM article_inventory WHERE article_id = 21012;
- -- Calculo del visible
+
UPDATE article_inventory AI INNER JOIN
(
@@ -27935,8 +27188,8 @@ proc: BEGIN
FROM Movimientos M
JOIN Tickets T USING (Id_Ticket)
- JOIN warehouse_joined wj ON T.warehouse_id = wj.warehouse_id -- JGF 15/12/14
- WHERE Fecha >= date_ticket AND Fecha < date_tomorrow -- PAK
+ JOIN warehouse_joined wj ON T.warehouse_id = wj.warehouse_id
+ WHERE Fecha >= date_ticket AND Fecha < date_tomorrow
AND (M.OK = 0 AND T.Etiquetasemitidas = 0 AND T.Factura IS NULL)
AND wh_joined IN (wj.warehouse_alias_id, 0)
UNION ALL
@@ -27946,7 +27199,7 @@ proc: BEGIN
JOIN Entradas E USING (Id_Entrada)
JOIN travel TR ON E.travel_id = TR.id
- JOIN warehouse_joined wj ON TR.warehouse_id = wj.warehouse_id -- JGF 15/12/14
+ JOIN warehouse_joined wj ON TR.warehouse_id = wj.warehouse_id
WHERE TR.landing = date_ticket
AND TR.received = 0
@@ -27959,7 +27212,7 @@ proc: BEGIN
SELECT Id_Article, Cantidad
FROM Compres C INNER JOIN Entradas E USING (Id_Entrada)
LEFT JOIN travel TR ON E.travel_id = TR.id
- JOIN warehouse_joined wj ON TR.warehouse_id_out = wj.warehouse_id -- JGF 15/12/14
+ JOIN warehouse_joined wj ON TR.warehouse_id_out = wj.warehouse_id
WHERE TR.shipment = date_ticket
AND TR.delivered = 0
AND E.Inventario = 0
@@ -27975,7 +27228,7 @@ proc: BEGIN
SET AI.visible = AI.visible + T2.Subtotal;
- -- Calculo del disponible
+
SELECT IF(COUNT(warehouse_id),0,warehouse_id) INTO wh FROM warehouse_joined WHERE warehouse_alias_id = wh_joined;
CALL item_travel (wh, date_ticket);
@@ -27992,7 +27245,7 @@ proc: BEGIN
JOIN Tickets T USING (Id_Ticket)
- JOIN warehouse_joined wj ON T.warehouse_id = wj.warehouse_id -- JGF 15/12/14
+ JOIN warehouse_joined wj ON T.warehouse_id = wj.warehouse_id
WHERE Fecha BETWEEN date_tomorrow AND date_end
AND wh_joined IN (wj.warehouse_alias_id, 0)
@@ -28003,7 +27256,7 @@ proc: BEGIN
JOIN Entradas E USING (Id_Entrada)
JOIN travel TR ON E.travel_id = TR.id
- JOIN warehouse_joined wj ON TR.warehouse_id = wj.warehouse_id -- JGF 15/12/14
+ JOIN warehouse_joined wj ON TR.warehouse_id = wj.warehouse_id
WHERE TR.landing BETWEEN date_tomorrow AND date_end
AND wh_joined IN (wj.warehouse_alias_id, 0)
@@ -28015,7 +27268,7 @@ proc: BEGIN
JOIN Entradas E USING (Id_Entrada)
JOIN travel TR ON E.travel_id = TR.id
- JOIN warehouse_joined wj ON TR.warehouse_id_out = wj.warehouse_id -- JGF 15/12/14
+ JOIN warehouse_joined wj ON TR.warehouse_id_out = wj.warehouse_id
WHERE TR.shipment BETWEEN date_tomorrow AND date_end
AND wh_joined IN (wj.warehouse_alias_id,0)
AND E.Inventario = 0
@@ -28087,13 +27340,13 @@ BEGIN
SET date_end = TIMESTAMP(TIMESTAMPADD(DAY, -1, date_ticket),'23:59:59');
- -- Utilizo el valor clave 4848 para days_max para aprovechar el procedimiento para el frmCamiones de eti
+
IF days_max = 4848 THEN
set date_ticket = date_end;
END IF;
- -- Calculo del inventario dia D a las 24:00
+
UPDATE article_inventory AI INNER JOIN
(
@@ -28442,7 +27695,7 @@ END IF;
AND A.tipo_id NOT IN (21,7)
ON DUPLICATE KEY UPDATE inv.cantidad = inv.cantidad + (C.Cantidad * IF(bolREVERSE,-1,1));
--- SELECT * FROM inv WHERE Id_Article = 10067;
+
INSERT INTO inv(w_id, Id_Article, cantidad)
SELECT TR.warehouse_id_out, C.Id_Article, C.Cantidad * IF(bolREVERSE,1,-1)
@@ -28461,7 +27714,7 @@ END IF;
--- SELECT * FROM inv WHERE Id_Article = 10067;
+
INSERT INTO inv(w_id, Id_Article, cantidad)
SELECT w.id, M.Id_Article, M.Cantidad * IF(bolREVERSE,1,-1)
@@ -28477,7 +27730,7 @@ END IF;
AND A.tipo_id NOT IN (21,7)
ON DUPLICATE KEY UPDATE inv.cantidad = inv.cantidad + M.Cantidad * IF(bolREVERSE,1,-1);
--- SELECT * FROM inv WHERE Id_Article = 10067;
+
INSERT INTO inv(w_id, Id_Article, cantidad)
SELECT w.id, M.Id_Article, M.Cantidad * IF(bolREVERSE,0,-1)
@@ -28495,7 +27748,7 @@ END IF;
AND A.tipo_id NOT IN (21,7)
ON DUPLICATE KEY UPDATE inv.cantidad = inv.cantidad + M.Cantidad * IF(bolREVERSE,0,-1);
--- SELECT * FROM inv WHERE Id_Article = 10067;
+
UPDATE inv
JOIN ( SELECT * FROM
@@ -28533,7 +27786,7 @@ WHERE inv.cantidad > 0;
DELETE FROM inv WHERE Cantidad IS NULL or Cantidad <= 0 or total = 0;
--- Incrementamos las cantidades para alcanzar el valor fijado al inicio
+
SELECT SUM(total) INTO inv_value FROM inv;
UPDATE inv SET cantidad = ROUND(cantidad * inv_value_new / inv_value ,0);
@@ -28549,7 +27802,7 @@ SELECT inv.*, Article, Medida, Id_Tipo,reino_id
FROM inv
JOIN Articles USING(Id_Article)
JOIN Tipos TP USING(tipo_id)
-where w_id IN (1,44, 5) -- JGF 2015-06-08 afegeix 41 a peticio de MAV
+where w_id IN (1,44, 5)
and total > 0
order by total desc;
@@ -28583,9 +27836,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `inventory_refresh`()
BEGIN
-/**
- * Recalcula los inventarios de todos los almacenes.
- */
+
INSERT INTO daily_task_log
SET consulta = 'inventory_refresh-begin';
@@ -28681,13 +27932,13 @@ BEGIN
AND Factura IS NULL ;
END IF;
--- Elimina tickets sense moviments
+
UPDATE Tickets INNER JOIN (SELECT COUNT(Movimientos.Id_Movimiento) AS num, ticket_invoice.ticket_id AS ticket_id
FROM ticket_invoice LEFT JOIN Movimientos ON ticket_invoice.ticket_id = Movimientos.Id_Ticket
GROUP BY ticket_invoice.ticket_id HAVING num = 0) counter
ON Tickets.Id_Ticket = counter.ticket_id SET Tickets.Fecha = '1999-01-01 00:00:00';
- -- Eliminem els tickets que no han de ser facturats
+
DELETE ticket_invoice.* FROM ticket_invoice INNER JOIN Tickets ON ticket_invoice.ticket_id = Tickets.Id_Ticket
INNER JOIN Clientes ON Tickets.Id_Cliente = Clientes.Id_cliente WHERE YEAR(Tickets.Fecha) < 2001 AND invoice;
@@ -28750,7 +28001,7 @@ BEGIN
SELECT Vencimiento INTO day_vec FROM Clientes WHERE Id_cliente = customer_id;
SET date_vec = TIMESTAMPADD(DAY, day_vec, date_vec);
- -- el trigger añade el siguiente Id_Factura correspondiente a la serie
+
INSERT INTO Facturas
(
Id_Factura,
@@ -28804,7 +28055,7 @@ BEGIN
SELECT * FROM tmp.updateInter;
INSERT INTO Tickets_dits (idaccion_dits,Id_Trabajador,Id_Ticket,value_old,value_new)
- SELECT 111/*Factura serie*/ ,Id_Trabajador,ti.ticket_id,NULL,serie FROM ticket_invoice ti;
+ SELECT 111 ,Id_Trabajador,ti.ticket_id,NULL,serie FROM ticket_invoice ti;
END IF;
DROP TEMPORARY TABLE `iva_base`;
@@ -28828,9 +28079,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `itemTagArrangedUpdate`(IN vItem BIGINT)
BEGIN
-/**
- * DEPRECATED
- **/
+
CALL vn.itemTagArrangedUpdate(vItem);
END ;;
@@ -28872,9 +28121,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `itemTagUpdatePriority`(IN vItem INT)
BEGIN
-/*
-* DEPRECATED
-*/
+
CALL vn.itemTagUpdatePriority(vItem);
@@ -28896,7 +28143,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `item_buffer_tarifa_traveltreekk`(v_date DATE, v_consigna INT, v_agencia INT, i_order INT, v_wh SMALLINT)
BEGIN
- -- v_date fecha de recepcion de mercancia
+
DECLARE done TINYINT DEFAULT 0;
DECLARE v_shipment DATE;
@@ -28908,11 +28155,11 @@ BEGIN
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
- -- establecemos los almacenes y las fechas que van a entrar al dispo_multi
+
SELECT agency_id INTO v_agency_id FROM Agencias WHERE Id_Agencia = v_agencia;
- -- Si pasamos un almacen significa que estamos recalculando el dispo y el precio para un ticket existente
+
IF v_wh = 0
THEN
@@ -28931,7 +28178,7 @@ BEGIN
SELECT v_wh, v_date, v_date;
END IF;
- -- Ejecutamos item_buffer_tarifa para cada registro del cursos, y almacenaremos los valores acumulados, para el buffer y para los componentes
+
OPEN cur1;
FETCH cur1 INTO v_wh, v_shipment;
@@ -28968,7 +28215,7 @@ BEGIN
DO
CALL item_buffer_tarifa(v_wh, v_shipment, v_consigna, FALSE, v_agencia);
- -- eliminaremos PCA de Silla FV y viceversa
+
INSERT INTO buffer_multi(warehouse_id, Id_Article, visible, available, future, buy_inc, buy_last, buy_id, `fixed`, rate_0, rate_1, rate_2, rate_3, Packing, Grouping, Productor, caja, Origen, mark, `comment`, foto, Id_Tipo, Article)
SELECT v_wh, id, visible, available, future, buy_inc, buy_last, buy_id, `fixed`, rate_0, rate_1, rate_2, rate_3, Packing, Grouping, Productor, bb.caja, Origen, mark, `comment`, A.Foto, A.tipo_id, A.Article
@@ -29032,7 +28279,7 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `item_buffer_tarifa_traveltree_dupkk`(
- v_date DATE, -- fecha de recepcion de mercancia
+ v_date DATE,
v_consigna INT,
v_agencia INT,
i_order INT,
@@ -29048,11 +28295,11 @@ BEGIN
CALL cache.order_clean (i_order);
- -- Establecemos los almacenes y las fechas que van a entrar al dispo_multi
+
SELECT agency_id INTO v_agency_id FROM Agencias WHERE Id_Agencia = v_agencia;
- -- Si pasamos un almacen significa que estamos recalculando el dispo y el precio para un ticket existente
+
DROP TEMPORARY TABLE IF EXISTS travel_tree;
@@ -29066,7 +28313,7 @@ BEGIN
SELECT v_wh warehouse_id, v_date Fecha_envio;
END IF;
- -- Ejecutamos item_buffer_tarifa para cada registro del cursos, y almacenaremos los valores acumulados, para el buffer y para los componentes
+
OPEN cur;
FETCH cur INTO v_wh, v_shipment;
@@ -29075,7 +28322,7 @@ BEGIN
DO
CALL item_buffer_tarifa_dup (v_wh, v_shipment, v_consigna, FALSE, v_agencia);
- -- Eliminaremos PCA de Silla FV y viceversa
+
INSERT INTO cache.order_stock (
order_id, warehouse_id, Id_Article, visible, available, future, buy_inc, buy_last, buy_id, `fixed`, rate_0, rate_1, rate_2, rate_3, Packing, Grouping, Productor, caja, Origen, mark, `comment`, foto, Id_Tipo, Article
@@ -29192,7 +28439,7 @@ BEGIN
ADD discount INT;
- -- Lo primero, el precio normal, la ultima entrada para ese almacen
+
UPDATE item i
JOIN Compres b ON i.buy_id = b.Id_Compra
@@ -29207,7 +28454,7 @@ BEGIN
END,
i.discount = IF(c.Descuento BETWEEN 4 AND 100, c.Descuento, 0);
- -- Precios fijados
+
UPDATE item i
INNER JOIN Clientes c ON c.Id_cliente = v_customer
@@ -29223,7 +28470,7 @@ BEGIN
WHERE fp.warehouse_id IN (0,v_wh)
AND date_ BETWEEN fp.date_start AND fp.date_end;
- -- Precios especiales
+
UPDATE item i
JOIN Clientes c ON c.Id_cliente = v_customer
@@ -29231,14 +28478,14 @@ BEGIN
SET i.price = p.PrecioEspecial,
i.discount = 0;
- -- Precio mínimo
+
UPDATE item i
JOIN Articles a ON a.Id_Article = i.id
JOIN Clientes c ON c.Id_cliente = v_customer
SET i.price = IF(a.`Min` AND i.price < a.PVP, a.PVP,i.price);
--- pak 14/9/14 provisional
+
END ;;
DELIMITER ;
@@ -29341,8 +28588,8 @@ BEGIN
LEFT JOIN PreciosEspeciales p
ON p.Id_Cliente = v_customer AND b.item_id = p.Id_Article
WHERE b.available > 0 AND b.cache_id = v_cache;
- -- ON be.compra_id = co.compra_id
- -- Cliente Te gustan las flores
+
+
IF NOT v_customer = 3064
THEN
@@ -29390,7 +28637,7 @@ BEGIN
INSERT INTO wh_father(wh) VALUES(v_wh);
INSERT INTO wh_son(wh) VALUES(v_wh);
- -- Sols es crea la variable @wh_son quan es crida desde traslado JGF 2015-01-30
+
IF @wh_son THEN
INSERT INTO wh_son(wh) VALUES(@wh_son);
END IF;
@@ -29424,12 +28671,12 @@ BEGIN
DECLARE v_camp DATETIME;
DECLARE b_fprice TINYINT;
- -- selecciona tots els fills del @v_wh(actual)
+
DECLARE cur1 CURSOR FOR
SELECT son FROM warehouse_tree_bidi
WHERE father = v_wh AND son NOT IN (SELECT DISTINCT wh FROM wh_son);
- -- selecciona tots els pares del v_wh(actual)
+
DECLARE cur2 CURSOR FOR
SELECT father FROM warehouse_tree_bidi
WHERE son = v_wh AND father NOT IN (SELECT DISTINCT wh FROM wh_father);
@@ -29438,7 +28685,7 @@ BEGIN
SELECT FechaInventario, TIMESTAMPADD(DAY, -campaign_life, campaign)
INTO v_inv, v_camp FROM tblContadores LIMIT 1;
- -- Crea una tabla amb el @v_wh
+
CALL hedera.sql_query (sql_printf('DROP TEMPORARY TABLE IF EXISTS %t;',v_wh));
CALL hedera.sql_query (sql_printf('create temporary table %t
(
@@ -29446,16 +28693,16 @@ SELECT FechaInventario, TIMESTAMPADD(DAY, -campaign_life, campaign)
amount DOUBLE(8,2)
)ENGINE = MEMORY;'
,v_wh));
- -- Si es campanya fa el calcul del disponible senzill
+
IF v_camp >= v_date_cur AND v_camp <= v_date THEN
SET v_date_cur = v_camp;
ELSE
OPEN cur1;
FETCH cur1 INTO wh_cursor;
- -- mentre queden fills..
+
WHILE !done DO
- -- calcula la data per a la cual calcular el disponible del fill
+
SELECT MIN(landing) INTO v_shipment_aux
FROM travel t
WHERE t.warehouse_id_out = v_wh
@@ -29464,12 +28711,12 @@ SELECT FechaInventario, TIMESTAMPADD(DAY, -campaign_life, campaign)
AND NOT t.delivered
AND t.landing >= t.shipment;
- -- afegeix en la taula wh_son el v_wh no tornar-lo a calcular
+
INSERT INTO wh_son(wh) VALUES (v_wh);
- -- calcula del disponible del fill
+
CALL item_disp_virt1 (wh_cursor, v_shipment_aux, -1, id_single, v_cache);
- -- Li resta al @v_wh els negatius dels fills
+
CALL hedera.sql_query (sql_printf (
'INSERT INTO %t (article_id,amount)
SELECT item_id ,available FROM vn2008.tmp_item WHERE available < 0
@@ -29484,43 +28731,43 @@ SELECT FechaInventario, TIMESTAMPADD(DAY, -campaign_life, campaign)
SET v_shipment_aux = NULL;
- -- si direccion < 0 sols mira fills,
- -- si direccion > 0 mira pare i fills
- -- si direccion = 0 mira pare i fills, a més es el cas base
+
+
+
IF direccion >= 0 THEN
SET done = 0;
OPEN cur2;
FETCH cur2 INTO wh_cursor;
- -- mentre queden pares..
+
WHILE !done DO
- -- calcula la data per a la cual calcular el disponible del pare
+
SELECT MAX(shipment) INTO v_shipment_aux FROM travel t
WHERE t.warehouse_id_out = wh_cursor
AND t.warehouse_id = v_wh
AND t.delivered = 0
AND t.shipment >= CURDATE()
AND t.landing <= v_date;
- -- afegeix en la taula wh_son i wh_father el v_wh no tornar-lo a calcular
+
INSERT INTO wh_son(wh) VALUES (v_wh);
INSERT INTO wh_father(wh) VALUES (v_wh);
IF v_shipment_aux IS NOT NULL THEN
- -- calcula el disponible per al pare
+
CALL item_disp_virt1(wh_cursor,v_shipment_aux,1, id_single, v_cache);
- -- li suma al v_wh el disponible positiu del pare
+
CALL hedera.sql_query (sql_printf('INSERT INTO %t (article_id,amount)
SELECT item_id ,available FROM vn2008.tmp_item WHERE available > 0
ON DUPLICATE KEY UPDATE
amount = amount + VALUES(amount);',v_wh));
ELSE
- -- travels provinents del pare després de FechaTicket
+
SELECT MIN(shipment) INTO v_shipment_aux FROM travel t
WHERE t.warehouse_id_out = wh_cursor
AND t.warehouse_id = v_wh
AND t.delivered = 0
- AND t.shipment >= CURDATE() -- avans AND t.shipment > CURDATE()
- AND t.landing >= v_date; -- avans AND t.landing >= v_date; 23/09/11
+ AND t.shipment >= CURDATE()
+ AND t.landing >= v_date;
CALL item_disp_virt1(wh_cursor,v_shipment_aux,2, id_single, v_cache);
END IF;
FETCH cur2 INTO wh_cursor;
@@ -29530,17 +28777,17 @@ SELECT FechaInventario, TIMESTAMPADD(DAY, -campaign_life, campaign)
END IF;
END IF;
- -- calcula el stock, que es igual al visible
+
CALL item_stock (v_wh, v_date,NULL);
CALL item_stock_avail (v_wh, v_date,NULL,direccion);
- -- Li afegeix al disponible simple del v_wh el virtual
+
CALL hedera.sql_query (sql_printf('INSERT INTO vn2008.tmp_item ( item_id, available)
SELECT article_id, amount FROM %t
ON DUPLICATE KEY UPDATE
available = available + VALUES(available);',v_wh));
- -- si es el cas base
+
IF !direccion THEN
IF v_date = curdate() THEN
CALL item_stock_visible (v_wh,NULL);
@@ -29636,7 +28883,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `item_last_buy_`(v_wh SMALLINT, v_date DATE)
BEGIN
- -- Ultima compra hasta hoy
+
CALL cache.last_buy_refresh (FALSE);
@@ -29650,10 +28897,10 @@ BEGIN
WHERE v_wh = warehouse_id OR v_wh IS NULL;
- -- Ultima compra hasta @v_date
+
- -- CALL item_last_buy_from_interval (v_wh, CURDATE(), TIMESTAMPADD(DAY, 1, v_date)); JGF 2016-06-08 fallo: cogia un dia mas de lo solicitado
+
CALL item_last_buy_from_interval (v_wh, CURDATE(), v_date);
REPLACE INTO t_item_last_buy
@@ -29681,15 +28928,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `item_last_buy_from_interval`(v_wh SMALLINT, v_date_ini DATE, v_date_end DATE)
BEGIN
-/**
- * Obtiene la ultima compra a partir de un intervalo
- * de fechas dado.
- *
- * @param v_wh Id de almacen %NULL para todos los almacenes
- * @param v_date_ini Fecha inicial
- * @param v_date_end Fecha final
- * @table tmp.item_last_buy_from_interval
- **/
+
@@ -29698,10 +28937,7 @@ BEGIN
SET v_date_end = v_date_ini;
END IF;
- /* IF v_date_end < v_date_ini THEN
- SET v_date_ini = TIMESTAMPADD(MONTH,-1,v_date_end);
- END IF;
-*/
+
DROP TEMPORARY TABLE IF EXISTS tmp.item_last_buy_from_interval;
CREATE TEMPORARY TABLE tmp.item_last_buy_from_interval
ENGINE = MEMORY
@@ -29756,9 +28992,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `item_stock`(v_wh SMALLINT, v_date DATETIME, v_item INT)
BEGIN
-/**
- * Calcula el stock del v_wh desde FechaInventario hasta v_date
- **/
+
DECLARE n TINYINT;
DECLARE v_diff TIME;
@@ -29825,21 +29059,21 @@ BEGIN
DECLARE query TEXT;
DECLARE _son,_self TEXT;
DECLARE _auxshipment, _auxlanding,fut DATE;
- -- Selecciona tots els travels cap als fill ens els próxims 15 dies
+
DECLARE cur1 CURSOR FOR
SELECT shipment,landing FROM travel WHERE warehouse_id_out = v_wh AND shipment BETWEEN TIMESTAMPADD(day,1,v_date)
AND TIMESTAMPADD(day,15,v_date) AND warehouse_id = (SELECT son FROM warehouse_tree_bidi WHERE father = v_wh
LIMIT 1)
ORDER BY shipment;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
- -- selecciona els primers travels que arrivaran després de la v_date de cada warehouse
+
CALL item_travel (v_wh, v_date);
SET expr = sql_printf ('dat BETWEEN DATE(%v) AND DATE(%v)'
,TIMESTAMP(v_date, '00:00:00')
,TIMESTAMP(TIMESTAMPADD(DAY, 15, v_date), '23:59:59')
- /*,v_wh*/
+
);
@@ -29857,7 +29091,7 @@ BEGIN
SET expr2 = '';
SET _self = CONCAT(v_wh, 'virtual');
- -- crea una taula amb el nom del warehousevirtual
+
CALL hedera.sql_query (sql_printf('CREATE TEMPORARY TABLE IF NOT EXISTS vn2008.%t
(
item_id INT(11),
@@ -29866,7 +29100,7 @@ BEGIN
PRIMARY KEY(item_id,dat)
)
ENGINE = MEMORY;',_self));
- -- si esta mirant els pares li añadeix el virtual que pot arrivar a conseguir
+
IF direccion >= 0 THEN
SET expr2 = sql_printf (' UNION ALL
SELECT item_id, dat, amount
@@ -29878,8 +29112,8 @@ BEGIN
ALTER TABLE tmp_item ADD future DATE;
- /*jgf afegeix AND Reservado != 0 */
- -- calcula el mínim disponible fins a la próxima arrivada de mercancia
+
+
SET query = sql_printf (
'INSERT INTO tmp_item (item_id,available, future)
SELECT item_id, SUM(amount) AS available,landing as future FROM (
@@ -29908,13 +29142,13 @@ SET query = sql_printf (
available = IFNULL(available,0) + VALUES(available)'
, DATE(v_date) + 0, expr1, expr1, expr1, expr2
);
- -- JGF 22/10/14 - WHERE IFNULL(dt <= w.landing OR Id_Article > 170000, TRUE)
- -- JGF 2015-03-31 ANTES WHERE IFNULL(dt <= w.landing OR Id_Article > 170000, TRUE)
+
+
CALL sql_query (query);
- -- si el v_wh es pare
+
IF (direccion > 0) THEN
- -- crea una taula TEMPORAL per al fill
+
SELECT CONCAT(son,'virtual') A INTO _son FROM warehouse_tree_bidi WHERE father = v_wh LIMIT 1;
CALL hedera.sql_query (sql_printf('CREATE TEMPORARY TABLE IF NOT EXISTS vn2008.%t
(
@@ -29926,7 +29160,7 @@ SET query = sql_printf (
ENGINE = MEMORY;',_son));
IF (direccion >= 2) THEN
CALL sql_query (query);
- SET query = sql_printf ( -- REPLACE en lugar de INSERT INTO PAK 20/11/14
+ SET query = sql_printf (
'REPLACE vn2008.%t (item_id,dat,amount)
SELECT item_id,landing,available FROM tmp_item,travel
WHERE shipment = DATE(%v) AND warehouse_id_out = %v AND available > 0
@@ -29956,7 +29190,7 @@ SET query = sql_printf (
,expr4
,v_wh
);
- -- afegir entrades menys eixides desde l'ultim dia..
+
SET query = sql_printf (
'INSERT INTO vn2008.%t (item_id,dat,amount)
SELECT item_id, %v, SUM(amount) AS available FROM (
@@ -29985,7 +29219,7 @@ SET query = sql_printf (
ON DUPLICATE KEY UPDATE
amount = IFNULL(amount,0) + VALUES(amount)
',_son,DATE(_auxlanding)+0,DATE(_auxshipment)+0,expr5, expr5, expr5,_self,expr4);
- -- JGF 07/07/14 - WHERE IFNULL(dt < w.landing , TRUE)
+
CALL sql_query (query);
FETCH cur1 INTO _auxshipment,_auxlanding;
END WHILE;
@@ -30017,7 +29251,7 @@ BEGIN
DECLARE _son,_self TEXT;
DECLARE _auxshipment, _auxlanding,fut DATE;
- -- Selecciona tots els viajes cap als fill ens els próxims 15 dies
+
DECLARE cur1 CURSOR FOR
SELECT shipment,landing FROM travel
@@ -30029,7 +29263,7 @@ BEGIN
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
- -- Selecciona els primers viajes que arrivaran després de la v_date de cada almacen
+
CALL item_travel (v_wh, v_date);
@@ -30053,7 +29287,7 @@ BEGIN
SET expr2 = '';
SET _self = CONCAT(v_wh, 'virtual');
- -- Crea una taula amb el nom del almacen virtual
+
CALL hedera.sql_query (sql_printf('CREATE TEMPORARY TABLE IF NOT EXISTS vn2008.%t
(
@@ -30064,7 +29298,7 @@ BEGIN
)
ENGINE = MEMORY',_self));
- -- Si esta mirant els pares li añadeix el virtual que pot arrivar a conseguir
+
IF direccion >= 0
THEN
@@ -30078,7 +29312,7 @@ BEGIN
ALTER TABLE tmp_item ADD future DATE;
- -- Calcula el mínim disponible fins a la próxima arrivada de mercancia
+
SET query = sql_printf (
'INSERT INTO tmp_item (item_id, available, future)
@@ -30114,11 +29348,11 @@ BEGIN
);
CALL sql_query (query);
- -- Si es el almacen padre
+
IF (direccion > 0)
THEN
- -- Crea una tabla temporar pare el hijo
+
SELECT CONCAT(son,'virtual') A INTO _son FROM warehouse_tree_bidi WHERE father = v_wh LIMIT 1;
CALL hedera.sql_query (sql_printf(
@@ -30173,7 +29407,7 @@ BEGIN
,v_wh
);
- -- Afegir entrades menys eixides desde l'ultim dia
+
CALL sql_query (sql_printf (
'INSERT INTO vn2008.%t (item_id,dat,amount)
@@ -30248,9 +29482,7 @@ BEGIN
AND (alertLevel > 1
OR
ok != FALSE
- /* AND (((ok != FALSE OR ready != FALSE OR invoice IS NOT NULL)
- AND dat < v_tomorrow)
- */
+
OR Reservado != FALSE )
UNION ALL
SELECT item_id, amount FROM item_entry_in
@@ -30295,67 +29527,58 @@ BEGIN
DROP TEMPORARY TABLE IF EXISTS travel_top;
DROP TEMPORARY TABLE IF EXISTS item_travel;
- -- Crea una taula buida travel_top
+
CREATE TEMPORARY TABLE travel_top
- (PRIMARY KEY (wh_in,wh_out,landing,shipment)) -- 28/1/15 JGF & PAK cuelgue dia 26
+ (PRIMARY KEY (wh_in,wh_out,landing,shipment))
ENGINE = MEMORY
SELECT 0 id, v_wh wh_in, v_wh wh_out, FALSE ok, v_date landing, v_date shipment;
REPEAT
SET v_travel = NULL;
- -- Va seleccionant registres un a un
+
SELECT id, wh_out, shipment, landing
INTO v_travel, v_wh_out, v_shipment, v_date_start
FROM travel_top WHERE ok = FALSE LIMIT 1;
- -- Marca el registre per a saber que esta revistat
+
UPDATE travel_top SET ok = TRUE WHERE id = v_travel;
- -- Concatena travels
+
INSERT IGNORE INTO travel_top
SELECT id, v_wh, warehouse_id_out, FALSE, IF(v_travel, v_date_start, landing), shipment
FROM travel
WHERE warehouse_id = v_wh_out
- -- Canvia Javi 08/04/13 error que pasaba a les 06:00 del mati
- -- AND IF(v_travel, landing <= v_shipment, landing > v_shipment)
+
+
AND IF(v_travel, landing <= v_shipment, landing >= v_shipment)
AND shipment >= CURDATE()
AND delivered = FALSE;
UNTIL v_travel IS NULL
- END REPEAT;/*
- select max_count;
- SELECT * FROM travel_top;*/
+ END REPEAT;
DELETE FROM travel_top WHERE id = 0;
-/*
- SELECT TIMESTAMPADD(DAY, -campaign_life, campaign), campaign
- INTO v_date_start, v_campaign FROM tblContadores;*/
- -- Agafa el travel que arriva primer per a cada warehouse
+
+
CREATE TEMPORARY TABLE item_travel
(KEY (wh))
ENGINE = MEMORY
SELECT * FROM (
- SELECT wh_out wh,/* IF(
- v_date BETWEEN v_date_start AND v_campaign
- AND landing BETWEEN v_date_start AND v_campaign
- ,TIMESTAMPADD(DAY, 1, v_campaign)
- ,landing
- ) */ landing
+ SELECT wh_out wh, landing
FROM travel_top
WHERE wh_out <> v_wh
ORDER BY landing
) t
GROUP BY wh;
--- SELECT * FROM item_travel;
+
DROP TEMPORARY TABLE travel_top;
END ;;
DELIMITER ;
@@ -30399,7 +29622,7 @@ BEGIN
LIMIT 1;
INSERT INTO travel_top
- SELECT t.id, warehouse_id_out, shipment/*, FALSE*/
+ SELECT t.id, warehouse_id_out, shipment
FROM travel t
WHERE warehouse_id = v_wh_out
AND landing <= v_shipment
@@ -30456,7 +29679,7 @@ BEGIN
DROP TEMPORARY TABLE IF EXISTS travel_top;
DROP TEMPORARY TABLE IF EXISTS item_travel;
- -- Crea una taula buida travel_top
+
CREATE TEMPORARY TABLE travel_top
(PRIMARY KEY (id))
@@ -30466,17 +29689,17 @@ BEGIN
REPEAT
SET v_travel = NULL;
- -- Va seleccionant registres un a un
+
SELECT id, wh_out, shipment, landing
INTO v_travel, v_wh_out, v_shipment, v_date_start
FROM travel_top WHERE ok = FALSE LIMIT 1;
- -- Marca el registre per a saber que esta revistat
+
UPDATE travel_top SET ok = TRUE WHERE id = v_travel;
- -- Concatena travels cap al pasat
+
INSERT IGNORE INTO travel_top
SELECT id, v_wh, warehouse_id_out, FALSE, IF(v_travel, v_date_start, landing), shipment
@@ -30494,7 +29717,7 @@ BEGIN
SELECT TIMESTAMPADD(DAY, -campaign_life, campaign), campaign
INTO v_date_start, v_campaign FROM tblContadores;
- -- Agafa el travel que arriva primer per a cada warehouse
+
CREATE TEMPORARY TABLE item_travel
(KEY (wh))
@@ -30543,14 +29766,14 @@ BEGIN
DROP TEMPORARY TABLE IF EXISTS travel_top;
DROP TEMPORARY TABLE IF EXISTS item_travel;
- -- Crea una taula buida travel_top
+
drop temporary table if exists travels_list;
create temporary table travels_list
(id integer, shipment date, landing date, warehouse_id int, warehouse_id_out int);
CREATE TEMPORARY TABLE travel_top
- -- (PRIMARY KEY (wh_in,wh_out,landing,shipment) )
+
ENGINE = MEMORY
SELECT 0 RODA, 0 ORDRE, 0 son_id, 0 id, v_wh wh_in, v_wh wh_out, FALSE ok, v_date landing, v_date shipment;
@@ -30560,18 +29783,18 @@ BEGIN
SET v_travel = -1;
- -- Va seleccionant registres un a un
+
SELECT id, wh_out, shipment, landing
INTO v_travel, v_wh_out, v_shipment, v_date_start
FROM travel_top WHERE ok = FALSE
LIMIT 1;
- -- Marca el registre per a saber que esta revistat
+
UPDATE travel_top SET ok = TRUE WHERE id = v_travel;
- -- Concatena travels
+
SET @ordre := 0;
INSERT INTO travel_top
@@ -30600,27 +29823,18 @@ UNTIL v_travel = -1 END REPEAT;
- /*
- select max_count;
- SELECT * FROM travel_top;*/
+
- /*DELETE FROM travel_top WHERE id = 0;*/
-/*
- SELECT TIMESTAMPADD(DAY, -campaign_life, campaign), campaign
- INTO v_date_start, v_campaign FROM tblContadores;*/
+
- -- Agafa el travel que arriva primer per a cada warehouse
+
+
CREATE TEMPORARY TABLE item_travel
(KEY (wh))
ENGINE = MEMORY
SELECT * FROM (
- SELECT wh_out wh,/* IF(
- v_date BETWEEN v_date_start AND v_campaign
- AND landing BETWEEN v_date_start AND v_campaign
- ,TIMESTAMPADD(DAY, 1, v_campaign)
- ,landing
- ) */ landing
+ SELECT wh_out wh, landing
FROM travel_top
WHERE wh_out <> v_wh
ORDER BY landing
@@ -30741,7 +29955,7 @@ BEGIN
DECLARE idT INT;
-IF ASCII(str) between 48 and 57 THEN -- el chr(48) es el 0 y el chr(57) es el 9. De ese modo se comprueba si es un numero o un carácter de texto
+IF ASCII(str) between 48 and 57 THEN
SET idT = cast(str as signed);
@@ -30783,7 +29997,7 @@ SELECT NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL
SELECT c.Id_Cliente, Cliente, r.FechaCobro, r.odbc_date, NULL, 'cobro', NULL, NULL, - Entregado
FROM Recibos r
JOIN Clientes c using(Id_Cliente)
- WHERE Id_Banco = 66 -- Caja de maná
+ WHERE Id_Banco = 66
AND c.Id_Trabajador = idT
UNION ALL
@@ -30795,7 +30009,7 @@ SELECT NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL
SELECT c.Id_Cliente, Cliente, g.Fecha, g.odbc_date, NULL, Comentario, NULL, NULL, g.Importe
FROM Greuges g
JOIN Clientes c using(Id_Cliente)
- WHERE Greuges_type_id = 3 -- Maná
+ WHERE Greuges_type_id = 3
AND c.Id_Trabajador = idT
) t1
ORDER BY FechaAccion DESC;
@@ -30842,7 +30056,7 @@ LEFT JOIN
JOIN Clientes c on c.Id_Cliente = cs.Id_Cliente
JOIN Movimientos m using(Id_Ticket)
JOIN Movimientos_componentes mc using(Id_Movimiento)
- WHERE Id_Componente IN (39, 37) -- maná auto y maná
+ WHERE Id_Componente IN (39, 37)
AND Fecha > MyFechaDesde
UNION ALL
@@ -30858,7 +30072,7 @@ LEFT JOIN
SELECT c.Id_Trabajador, g.Importe
FROM Greuges g
JOIN Clientes c using(Id_Cliente)
- WHERE Greuges_type_id = 3 -- Maná
+ WHERE Greuges_type_id = 3
AND Fecha > MyFechaDesde
UNION ALL
@@ -30896,15 +30110,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `massiveTicket`(
IN dateFrom DATE, IN dateTo DATE, IN customerId INT, OUT newTicketId INT)
BEGIN
-/**
- * Genera un nuevo ticket con los movimientos correspondientes a los parámetros
- *
- * @param dateFrom Fecha mínima para los tickets
- * @param dateTo Fecha máxima para los tickets
- * @param customerId Cliente
- *
- * @return newTicketId Nuevo numero de ticket
- **/
+
DECLARE inventoryWarehouse INT DEFAULT 13;
DECLARE defaultCompany INT DEFAULT 442;
@@ -30959,9 +30165,9 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `mensaje`(IN idREM INT, IN idDES INT, IN strMSG LONGTEXT)
BEGIN
-/*DECLARE lngLASTID BIGINT;*/
--- Caso sencillo
+
+
INSERT INTO Mensajes(Mensaje, Fecha, Remitente, Destinatario)
VALUES(strMSG, NOW(), idREM, idDES);
@@ -31008,25 +30214,7 @@ SELECT DISTINCT Fecha FROM Tickets WHERE Fecha >= datFEC
WHERE Id_Grupo = 6
GROUP BY Id_Trabajador, Fecha, Hora;
-/*
-SELECT Id_Trabajador, SUM(dur_in) dur_in, SUM(dur_out) dur_out, llamadas.Fecha,YEAR(llamadas.Fecha) `year`,
-MONTH(llamadas.Fecha) `month`,WEEK(llamadas.Fecha,7) `week`, Hora, SUM(Recibidas) as Entrantes, SUM(Emitidas) as Salientes
-FROM
-(
-SELECT Id_Trabajador, billsec dur_in, NULL dur_out, 1 as Recibidas, NULL as Emitidas, date(calldate) as Fecha, hour(calldate) as Hora
-FROM Trabajadores T
-INNER JOIN cdr C ON C.dstchannel LIKE CONCAT('%', T.extension, '%')
-WHERE calldate >= CURDATE()
-UNION ALL
-SELECT Id_Trabajador,NULL dur_in, billsec dur_out, NULL as Recibidas, 1 as Emitidas, date(calldate), hour(calldate)
-FROM Trabajadores T
-INNER JOIN cdr C ON C.src = T.extension
-WHERE calldate >= CURDATE()
-) llamadas
-INNER JOIN Permisos USING(Id_Trabajador)
-WHERE Id_Grupo = 6
-GROUP BY Id_Trabajador, Fecha, Hora;
-*/
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -31090,7 +30278,7 @@ BEGIN
JOIN Movimientos m using(Id_Ticket)
WHERE Id_Movimiento = idMOV;
- -- Busca un ticket existente que coincida con los parametros del nuevo pedido
+
SET v_start = TIMESTAMP(newFEC);
SET v_end = TIMESTAMP(newFEC, '23:59:59');
@@ -31101,7 +30289,7 @@ BEGIN
AND intWarehouse = t.warehouse_id
AND intIdAgencia = t.Id_Agencia
AND IFNULL(datLanding,-1) = IFNULL(t.Landing,-1)
- AND t.Fecha BETWEEN v_start AND v_end -- uso BETWEEN para aprovechar el indice
+ AND t.Fecha BETWEEN v_start AND v_end
AND t.Factura IS NULL
AND t.Localizacion = 'RECHAZO'
AND t.PedidoImpreso = 0
@@ -31427,15 +30615,15 @@ DECLARE v_sql TEXT;
DROP TEMPORARY TABLE IF EXISTS tmp.nest;
--- Se llama al procedimiento que genera el arbol
+
CALL nest_tree(strTABLE, intGAP, FALSE);
--- Se añade un campo para el conteo de hojas
+
ALTER TABLE tmp.nest
ADD leaves INT,
ADD time DATETIME;
--- Añadimos la hora
+
SET v_sql = sql_printf (
'
update tmp.nest n
@@ -31448,7 +30636,7 @@ SET v_sql = sql_printf (
CALL sql_query (v_sql);
--- Actualizamos el campo leaves para los nodos que tienen asociados
+
SET v_sql = sql_printf (
'
update tmp.nest n
@@ -31468,7 +30656,7 @@ SET v_sql = sql_printf (
CALL sql_query (v_sql);
--- Actualizamos todos los nodos con la suma de las hojas de los hijos
+
drop temporary table if exists tmp.nest2;
create temporary table tmp.nest2
@@ -31531,7 +30719,7 @@ SELECT 0 as rgt, 0 as lft, 0 as wdt, 0 as frg, 0 as flf;
- -- Averiguamos el ancho de la rama
+
SET v_sql = sql_printf (
'
UPDATE aux a JOIN %t t SET a.wdt = t.rgt - t.lft +1
@@ -31542,7 +30730,7 @@ SELECT 0 as rgt, 0 as lft, 0 as wdt, 0 as frg, 0 as flf;
CALL sql_query (v_sql);
--- Averiguamos la posicion del nuevo padre
+
SET v_sql = sql_printf (
'
UPDATE aux a JOIN %t t SET a.frg = t.rgt, a.flf = t.lft
@@ -31556,7 +30744,7 @@ CALL sql_query (v_sql);
SELECT wdt, frg, flf INTO myWidth, fatherRight, fatherLeft FROM aux;
--- 1º Incrementamos los valores de todos los nodos a la derecha del punto de inserción (fatherRight) , para hacer sitio
+
SET v_sql = sql_printf (
@@ -31577,7 +30765,7 @@ SET v_sql = sql_printf (
CALL sql_query (v_sql);
--- Es preciso recalcular los valores del nodo en el caso de que estuviera a la derecha del nuevo padre
+
SET v_sql = sql_printf (
'
@@ -31592,7 +30780,7 @@ CALL sql_query (v_sql);
SELECT lft, rgt, frg - lft INTO myLeft, myRight, gap FROM aux;
--- 2º Incrementamos el valor de todos los nodos a trasladar hasta alcanzar su nueva posicion
+
SET v_sql = sql_printf (
@@ -31615,7 +30803,7 @@ SET v_sql = sql_printf (
CALL sql_query (v_sql);
--- 3º Restaremos a todos los nodos resultantes, a la derecha de la posicion arrancada el ancho de la rama escindida
+
SET v_sql = sql_printf (
'
UPDATE %t SET lft = lft - %v WHERE lft > %v ORDER BY lft;
@@ -31666,7 +30854,7 @@ DROP TEMPORARY TABLE IF EXISTS tmp.nest_depth;
DROP TEMPORARY TABLE IF EXISTS tmp.nest_depth_aux;
--- Calculamos el nivel de profundidad para cada item
+
SET v_sql = sql_printf (
'
CREATE TEMPORARY TABLE tmp.nest_depth
@@ -31693,13 +30881,13 @@ CREATE TEMPORARY TABLE tmp.nest_depth_aux
SELECT * FROM tmp.nest_depth;
--- Vamos a hacer consultas anidadas para obtener una consulta de dos entradas
+
DROP TEMPORARY TABLE IF EXISTS tmp.nest;
DROP TEMPORARY TABLE IF EXISTS tmp.nest_aux;
--- Primera tabla, con el nivel 0
+
SET v_sql = sql_printf (
'
CREATE TEMPORARY TABLE tmp.nest
@@ -31728,7 +30916,7 @@ SELECT * FROM tmp.nest;
--- Bucle
+
WHILE v_current_depth <= v_max_depth DO
@@ -31756,7 +30944,7 @@ WHILE v_current_depth <= v_max_depth DO
CALL sql_query (v_sql);
--- Actualizamos lft y rgt
+
SET v_sql = sql_printf (
'
UPDATE tmp.nest
@@ -31783,7 +30971,7 @@ END WHILE;
--- Eliminamos los campos duplicados
+
SET v_current_depth = 0;
WHILE v_current_depth <= v_max_depth DO
@@ -31818,7 +31006,7 @@ END WHILE;
SELECT * FROM tmp.nest_aux;
--- Limpieza
+
DROP TEMPORARY TABLE IF EXISTS tmp.nest_aux;
DROP TEMPORARY TABLE IF EXISTS tmp.nest;
DROP TEMPORARY TABLE IF EXISTS tmp.nest_depth_aux;
@@ -31844,11 +31032,7 @@ CREATE DEFINER=`root`@`%` PROCEDURE `nest_sons_list`(IN intID INT, IN strTABLE V
BEGIN
-/*
-Esta función devuelve un recordset con los ID de todos los nodos que cuelgan del nodo que se pasa como parámetro
-
-*/
DECLARE v_sql TEXT;
@@ -31963,23 +31147,23 @@ BEGIN
SELECT warehouse_id, Fecha, landing INTO vLandingWarehouse, vShipmentDate, vLandingDate FROM Tickets WHERE Id_Ticket = vTicket;
- -- seleccionamos travel
+
SELECT id, Id_Entrada INTO vTravel, vEntry
FROM travel t LEFT JOIN Entradas e ON t.id = e.travel_id
WHERE t.landing = vLandingDate AND t.shipment = vShipmentDate AND t.warehouse_id_out = vLandingWarehouse AND t.warehouse_id = vWarehouse
- AND t.delivered = FALSE ; -- agency ??
+ AND t.delivered = FALSE ;
- -- creamos el travel si es necesario
+
IF NOT vTravel THEN
INSERT INTO travel (shipment, landing, warehouse_id, warehouse_id_out, agency_id)
VALUES (vShipmentDate, vLandingDate, vLandingWarehouse, vShipmentWarehouse, a);
SELECT LAST_INSERT_ID() INTO vTravel;
END IF;
- -- creamos la Entrada si es necesario
+
IF NOT vEntry THEN
INSERT INTO Entradas (Id_Proveedor, travel_id)
- VALUES (13, vTravel); -- proveedor 'MOVIMIENTO ALMACEN'
+ VALUES (13, vTravel);
SELECT LAST_INSERT_ID() INTO vEntry;
END IF;
@@ -32089,18 +31273,14 @@ END;
CALL bi.last_buy_id_add;
INSERT INTO vn2008.daily_task_log(consulta) VALUES('last buy id END');
- /* JGF 2016-09-06 Quitado a peticion de AGS
- SELECT SLEEP(1) INTO AUX;
- CALL vn2008.comercial_caducado;
- INSERT INTO vn2008.daily_task_log(consulta) VALUES('Comercial Caducado END');
- */
+
SELECT SLEEP(1) INTO AUX;
CALL bi.defaulting(curdate());
INSERT INTO vn2008.daily_task_log(consulta) VALUES('defaulting END');
INSERT INTO vn2008.Colas(Id_Informe,Id_Trabajador) VALUES (11,57);
- -- Desactivacion de usuarios con contrato terminado
+
INSERT INTO vn2008.Colas(Id_Informe) VALUES (16);
SELECT SLEEP(1) INTO AUX;
@@ -32132,7 +31312,7 @@ END;
INSERT INTO vn2008.daily_task_log(consulta) VALUES('comparativa add END');
SELECT SLEEP(1) INTO AUX;
- call vn2008.recobro_credito(); -- PAK 12/01/2016
+ call vn2008.recobro_credito();
INSERT INTO vn2008.daily_task_log(consulta) VALUES('recobro_credito END');
SELECT SLEEP(1) INTO AUX;
@@ -32147,16 +31327,9 @@ END;
CALL vn.itemTagUpdatePriority(0);
INSERT INTO vn2008.daily_task_log(consulta) VALUES('articleTagUpdatePriority END');
- /*
- CALL vn.invoiceOutAgainDateRange(util.yesterday(),util.yesterday());
- INSERT INTO vn2008.daily_task_log(consulta) VALUES('invoiceOutAgainDateRange END');
- */
- /* jgf posar quan estiga arreglat
- SELECT SLEEP(1) INTO AUX;
- CALL bi.primer_pedido_add;
- INSERT INTO vn2008.daily_task_log(consulta) VALUES('primer_pedido_add END');
-*/
+
+
SELECT SLEEP(1) INTO AUX;
INSERT INTO vn2008.daily_task_log(consulta) VALUES('finalitza el event vn2008.nightly_tasks');
@@ -32221,7 +31394,7 @@ CREATE DEFINER=`root`@`%` PROCEDURE `pay`(IN datFEC DATE
BEGIN
--- Registro en la tabla Cajas
+
INSERT INTO Cajas ( Concepto
, Serie
, Numero
@@ -32247,7 +31420,7 @@ FROM Proveedores
WHERE Id_Proveedor = idPROV;
--- Registro en la tabla pago
+
INSERT INTO pago(fecha
, id_proveedor
, importe
@@ -32335,7 +31508,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `portekk`(IN intId_Ticket INT,IN intbultos INT, IN intId_Article INT)
BEGIN
- -- Deprecated!! Usar la funcion porte en lugar de este procedure
+
DECLARE intId_Agencia INT;
DECLARE int_agency_id SMALLINT;
DECLARE int_province_id SMALLINT;
@@ -32360,16 +31533,13 @@ BEGIN
JOIN Clientes cli on c.Id_Cliente=cli.Id_Cliente
LEFT JOIN agency_warehouse ag ON ag.agency_id = a.agency_id
WHERE Id_Ticket = intId_Ticket limit 1;
--- Fusionar con lo de arriba
-/*SELECT IFNULL(MAX(counter),0) +1 INTO intcounter FROM expeditions e
- INNER JOIN Tickets t1 ON e.ticket_id = t1.Id_Ticket
- INNER JOIN Tickets t2 ON t2.Id_Consigna = t1.Id_Consigna AND DATE(t2.Fecha) = DATE(t1.Fecha)
- WHERE t2.Id_Ticket = NEW.ticket_id AND t1.Etiquetasemitidas = FALSE AND t1.empresa_id = t2.empresa_id;*/
+
+
IF (intPorte >= 0 or dbldescuento BETWEEN 0 AND 1 ) THEN
IF intPorte or base_ticket(intId_Ticket) < 50 THEN
- SELECT IFNULL(intPorte,10)/intbultos price;/*en el cas dels tarifa 1 els cobren 10€ de ports*/
+ SELECT IFNULL(intPorte,10)/intbultos price;
ELSE
SELECT 0 price;
END IF;
@@ -32380,7 +31550,7 @@ BEGIN
SELECT IF(price * intbultos < 10 AND porte_minimo, 10 / intbultos, price) price FROM Agencias_zonas az
WHERE zona = 1 AND Id_Agencia = intId_Agencia AND az.warehouse_id = intWarehouse_id;
ELSE
- IF intId_Agencia = 47 THEN -- Si es viaxpress
+ IF intId_Agencia = 47 THEN
SELECT price price FROM Agencias_zonas az INNER JOIN viaxpress USING(zona)
WHERE Id_Agencia = 47 AND codigo_postal = strCodPostal AND az.warehouse_id = intWarehouse_id;
ELSE
@@ -32395,7 +31565,7 @@ BEGIN
ELSE
SELECT 0 price;
END IF;
- ELSE -- Si es una agency con la columna por_volumen <> 0 calcula el porte por Volumen
+ ELSE
CALL ticket_volumen(intId_Ticket);
SELECT MAX(Porte_total)/intbultos price FROM ticket_volumen;
@@ -32423,11 +31593,11 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `PortesDesdeTicketkk`( intTicket INTEGER)
BEGIN
- -- DEPRECATED! con el bionic esto ya no se usa
+
DECLARE done BIT DEFAULT 0;
DECLARE v_date_ini,v_date_end DATE;
- -- JGF 21/08/14 A partir de un intTicket se calcula lo que se ha cobrado en concepto de portes
- -- restando la tarifa dos en esa fecha al valor del ticket
+
+
DROP TEMPORARY TABLE IF EXISTS portes;
IF (SELECT Descuento FROM Clientes c JOIN Tickets t ON t.Id_Cliente = c.Id_Cliente WHERE t.Id_Ticket = intTicket) BETWEEN 0 AND 1 THEN
SELECT TIMESTAMPADD(MONTH,-12,Fecha),Fecha INTO v_date_ini,v_date_end FROM Tickets WHERE Id_Ticket = intTicket LIMIT 1;
@@ -32465,9 +31635,9 @@ BEGIN
Preu * (1 - (Descuento / 100)) * Cantidad diferencia,0 Tarifa2, Cantidad FROM Movimientos
WHERE Id_Ticket= intTicket AND Id_Article = 71;
END IF;
- -- SELECT * FROM vn2008.portes;
+
- -- SELECT NULL, NULL, NULL, sum(diferencia) as Porte, NULL FROM portes p;
+
END ;;
DELIMITER ;
@@ -32728,9 +31898,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `production_buffer_problems`()
BEGIN
-/**
- * Necesita la tabla tmp.ticket_list
- */
+
DECLARE vToday DATETIME;
DECLARE vTomorrowMidnight DATETIME ;
DECLARE vWarehouse INT;
@@ -32771,7 +31939,7 @@ BEGIN
CALL cache.visible_refresh (vVisibleCache, FALSE, vWarehouse);
CALL cache.available_refresh (vAvailableCache, FALSE, vWarehouse, vDate);
- -- El disponible es menor que 0
+
INSERT INTO tmp.buffer_problems(Id_Ticket, problem)
SELECT tt.Id_Ticket, Article
@@ -32791,7 +31959,7 @@ BEGIN
AND NOT generic
AND vWarehouse = t.warehouse_id;
- -- El disponible es mayor que cero y la cantidad supera el visible, estando aun sin preparar
+
INSERT INTO tmp.buffer_problems(Id_Ticket, problem)
SELECT tt.Id_Ticket, CONCAT('RETRASO (', A.Id_Article, ') ', Article)
FROM tmp.ticket_list tt
@@ -32819,7 +31987,7 @@ BEGIN
CLOSE vCursor;
- -- Código 100
+
INSERT INTO tmp.buffer_problems(Id_Ticket, problem)
SELECT DISTINCT tt.Id_Ticket, 'COD 100'
@@ -32827,7 +31995,7 @@ BEGIN
JOIN Movimientos m on m.Id_Ticket = tt.Id_Ticket
WHERE Id_Article = 100;
- -- Congelado
+
INSERT INTO tmp.buffer_problems(Id_Ticket, problem)
SELECT DISTINCT tt.Id_Ticket, 'CONGELADO'
@@ -32836,7 +32004,7 @@ BEGIN
JOIN Clientes c on c.Id_Cliente = t.Id_Cliente
WHERE c.Congelado;
- -- Riesgo
+
CALL risk_vs_client_list(CURDATE());
@@ -32848,18 +32016,8 @@ BEGIN
JOIN tmp.risk r on r.Id_Cliente = t.Id_Cliente
JOIN Clientes c on c.Id_Cliente = t.Id_Cliente
WHERE r.risk > c.Credito + 10
- AND Vista != 3; -- para que las recogidas se preparen
- /*
- -- Saldo vencido
- INSERT INTO tmp.buffer_problems(Id_Ticket, problem)
- SELECT DISTINCT tt.Id_Ticket, 'SALDO VENCIDO'
- FROM tmp.ticket_list tt
- JOIN Tickets t on t.Id_Ticket = tt.Id_Ticket
- JOIN Agencias a on t.Id_Agencia = a.Id_Agencia
- JOIN bi.defaulters d ON d.client = t.Id_Cliente
- WHERE d.amount > 200 AND d.date = CURDATE()
- AND Vista != 3; -- para que las recogidas se preparen
- */
+ AND Vista != 3;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -32878,10 +32036,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `production_buffer_problemsOptimizado`()
BEGIN
-/*
- * Necesita la tabla tmp.ticket_list
- *
- */
+
DECLARE vWarehouse INT;
DECLARE vDate DATE;
DECLARE vAvailableCache INT;
@@ -32905,14 +32060,14 @@ BEGIN
ENGINE = MEMORY;
- -- CONGELADO
+
INSERT INTO tmp.buffer_problems(Id_Ticket, problem)
SELECT DISTINCT tt.Id_Ticket, 'CONGELADO'
FROM tmp.ticket_list tt
JOIN Clientes c on c.Id_Cliente = tt.Id_Cliente
WHERE c.Congelado;
- -- eliminamos tickets con problemas para no volverlos a mirar
+
DROP TEMPORARY TABLE IF EXISTS tmp.ticketListFiltered;
CREATE TEMPORARY TABLE tmp.ticketListFiltered
@@ -32923,7 +32078,7 @@ BEGIN
JOIN Clientes c on c.Id_Cliente = tt.Id_Cliente
WHERE c.Congelado = 0;
- -- RIESGO
+
CALL risk_vs_client_list(CURDATE());
@@ -32935,20 +32090,20 @@ BEGIN
JOIN tmp.risk r on r.Id_Cliente = t.Id_Cliente
JOIN Clientes c on c.Id_Cliente = t.Id_Cliente
WHERE r.risk > c.Credito + 10
- AND Vista != 3; -- para que las recogidas se preparen
+ AND Vista != 3;
+
- -- eliminamos tickets con problemas para no volverlos a mirar
DELETE tlf FROM tmp.ticketListFiltered tlf
JOIN tmp.buffer_problems bf ON tlf.Id_Ticket = bf.Id_Ticket;
- -- CODIGO 100
+
INSERT INTO tmp.buffer_problems(Id_Ticket, problem)
SELECT DISTINCT tt.Id_Ticket, 'COD 100'
FROM tmp.ticket_list tt
JOIN Movimientos m on m.Id_Ticket = tt.Id_Ticket
WHERE Id_Article = 100;
- -- eliminamos tickets con problemas para no volverlos a mirar
+
DELETE tlf FROM tmp.ticketListFiltered tlf
JOIN tmp.buffer_problems bf ON tlf.Id_Ticket = bf.Id_Ticket;
@@ -32961,10 +32116,10 @@ BEGIN
CALL cache.visible_refresh(vVisibleCache,FALSE,vWarehouse);
CALL cache.available_refresh(vAvailableCache,FALSE,vWarehouse,vDate);
- -- El disponible es menor que 0
+
INSERT INTO tmp.buffer_problems(Id_Ticket, problem)
SELECT tt.Id_Ticket, Article
- -- CONCAT(IF( M.Cantidad < IFNULL(v.visible,0) , 'NO HAY ','FALTARÁ ' ), Article)
+
FROM tmp.ticket_list tt
JOIN Tickets t on t.Id_Ticket = tt.Id_Ticket
LEFT JOIN vn2008.Movimientos M ON M.Id_Ticket = t.Id_Ticket
@@ -32980,11 +32135,11 @@ BEGIN
AND NOT generic
AND vWarehouse = t.warehouse_id;
- -- eliminamos tickets con problemas para no volverlos a mirar
+
DELETE tlf FROM tmp.ticketListFiltered tlf
JOIN tmp.buffer_problems bf ON tlf.Id_Ticket = bf.Id_Ticket;
- -- Amarillo: El disponible es mayor que cero y la cantidad supera el visible, estando aun sin preparar
+
INSERT INTO tmp.buffer_problems(Id_Ticket, problem)
SELECT tt.Id_Ticket, CONCAT('RETRASO ', Article)
FROM tmp.ticket_list tt
@@ -33030,7 +32185,7 @@ DECLARE currentDayOfWeek INT;
SET currentDayOfWeek = weekday(curdate());
--- Sin provincia ni dia de envio
+
UPDATE tmp.production_buffer pb
LEFT JOIN
(
@@ -33049,7 +32204,7 @@ SET pb.Hora = IF(pb.Hora is null or pb.Hora = 0 or pb.Hora = 24,IFNULL(t.max_ho
,pb.Departure =IFNULL(t.max_hour,0);
--- Agencias sin provincia, machacan lo anterior si coinciden
+
UPDATE tmp.production_buffer pb
JOIN
(
@@ -33073,7 +32228,7 @@ SET pb.Hora = IF(pb.Hora is null or pb.Hora = 0 or pb.Hora = 24,t.max_hour, pb.
;
--- Agencias con provincia, se ejecuta para machacar lo anterior, si procede.
+
UPDATE tmp.production_buffer pb
JOIN
(
@@ -33098,13 +32253,8 @@ SET pb.Hora = IF(pb.Hora is null or pb.Hora = 0 or pb.Hora = 24,t.max_hour, pb.H
,pb.Departure = t.max_hour
;
--- Pedidos del dia anterior son prioritarios
-/*
-UPDATE tmp.production_buffer pb
-JOIN Tickets t ON t.Id_Ticket = pb.ticket
-SET pb.Hora = 1
-WHERE t.Fecha < CURDATE();
-*/
+
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -33174,7 +32324,7 @@ BEGIN
AND a.Vista IN (1,2,3);
- -- Líneas y volumen por ticket
+
UPDATE tmp.production_buffer pb
JOIN (
@@ -33191,7 +32341,7 @@ BEGIN
DELETE FROM tmp.production_buffer
WHERE `lines`= 0;
- -- Cajas
+
ALTER TABLE tmp.production_buffer
ADD Cajas DOUBLE DEFAULT NULL;
@@ -33211,7 +32361,7 @@ BEGIN
) sub ON sub.Id_Ticket = pb.Id_Ticket
SET pb.Cajas = sub.Cajas;
- -- Artificial, Seco y Preservado: Reino 4
+
ALTER TABLE tmp.production_buffer
ADD lineasArtificial INT DEFAULT NULL;
@@ -33231,7 +32381,7 @@ BEGIN
SET pb.lineasArtificial = sub.Lineas;
- -- Problemas por ticket
+
UPDATE tmp.production_buffer pb
JOIN (
@@ -33242,11 +32392,11 @@ BEGIN
SET pb.problems = p.problems,
pb.problem = p.problem;
- -- Hora limite de preparación
+
CALL production_buffer_set_priority;
- -- Entradas
+
INSERT INTO tmp.production_buffer(
Fecha
@@ -33276,11 +32426,11 @@ BEGIN
AND c.shipment >= CURDATE()
GROUP BY Id_Entrada;
- -- Refresca la caché para el cierre dinámico de agencias
+
CALL cache.departure_timing;
- -- Tickets de recogida
+
REPLACE tmp.production_buffer(
Fecha
@@ -33313,8 +32463,8 @@ BEGIN
WHERE t.Fecha between TIMESTAMPADD(WEEK,-1,CURDATE()) AND dayend(TIMESTAMPADD(DAY,-1,CURDATE()))
AND wp.warehouse_id = vWarehouseId;
- -- DROP TEMPORARY TABLE tmp.ticket_list;
- -- DROP TEMPORARY TABLE IF EXISTS tmp.risk;
+
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -33555,7 +32705,7 @@ GROUP BY id_proveedor, empresa_id
GROUP BY Id_Proveedor, empresa_id
) sub_tot USING(Id_Proveedor, empresa_id)
--- Saldo inmediato
+
LEFT JOIN
(
@@ -33640,7 +32790,7 @@ BEGIN
, PRIMARY KEY(proveedor_id, empresa_id, moneda_id))
ENGINE = MEMORY;
- -- Calcula el saldo inicial y final de cada proveedor
+
INSERT INTO saldos_iniciales
SELECT id_proveedor, empresa_id, sum(importe * isBeforeStarting) as saldo_inicial,sum(importe) saldo_final, moneda_id
FROM (
@@ -33726,7 +32876,7 @@ BEGIN
AND r.proveedor_id <> 567
ORDER BY id_proveedor, empresa_id, id_moneda, fecha, isPago DESC,id;
- -- Ahora, calculamos el importe pendiente para cada recibo en orden descendente
+
SET @saldo:= 0.0;
SET @prov := 0.0;
SET @emp := 0.0;
@@ -33736,7 +32886,7 @@ BEGIN
UPDATE vencimientos_pendientes vp LEFT JOIN saldos_iniciales si ON
vp.empresa_id = si.empresa_id AND vp.proveedor_id = si.proveedor_id AND vp.moneda_id = si.moneda_id
- SET vp.saldo = @saldo:= (IF(@emp <> vp.empresa_id OR @prov <> vp.proveedor_id OR @moneda <> vp.moneda_id, IFNULL(si.saldo_inicial,0),@saldo) + vp.importe) -- si hay cambio de empresa o proveedor o moneda, el saldo se reinicia
+ SET vp.saldo = @saldo:= (IF(@emp <> vp.empresa_id OR @prov <> vp.proveedor_id OR @moneda <> vp.moneda_id, IFNULL(si.saldo_inicial,0),@saldo) + vp.importe)
, vp.pendiente = @pendiente:= IF(@emp <> vp.empresa_id OR @prov <> vp.proveedor_id OR @moneda <> vp.moneda_id OR @day <> vp.fecha, vp.importe * (NOT isPago) , @pendiente + vp.importe)
, vp.empresa_id = @emp:= vp.empresa_id
, vp.proveedor_id = @prov:= vp.proveedor_id
@@ -33913,16 +33063,16 @@ SELECT id_proveedor, empresa_id, sum(importe) as saldo, id_moneda as moneda_id
DROP TEMPORARY TABLE vencimientos_pendientes_aux;
- -- Ahora, al fin, calculamos el importe pendiente para cada recibo en orden descendente
- -- Cogemos los valores del primer registro como semilla
+
+
SELECT proveedor_id, empresa_id, saldo, moneda_id, 0
INTO @prov, @emp, @saldo, @moneda, @pend
FROM vencimientos_pendientes WHERE id2 = 1;
UPDATE vencimientos_pendientes
- SET saldo = @saldo:= IF(@emp <> empresa_id OR @prov <>proveedor_id OR @moneda <> moneda_id,saldo,@saldo) -- si hay cambio de empresa o proveedor o moneda, el saldo se reinicia
+ SET saldo = @saldo:= IF(@emp <> empresa_id OR @prov <>proveedor_id OR @moneda <> moneda_id,saldo,@saldo)
, pendiente = @pend:= IF(saldo >= importe AND saldo > 0, importe, saldo)
, saldo = @saldo:= @saldo - @pend
, empresa_id = @emp:= empresa_id
@@ -34037,7 +33187,7 @@ BEGIN
JOIN Proveedores P2 ON P2.Id_Proveedor = sub2.empresa_id
- WHERE pm.deudaviva -- Cliente de perdidas no vale la pena revisarlo
+ WHERE pm.deudaviva
HAVING ABS(Diferencia) > 0.05
@@ -34068,7 +33218,7 @@ DECLARE datSTART DATE;
SET datSTART = FIRSTDAYOFYEAR(datFEC);
SET datFEC = TIMESTAMP(datFEC,'23:59:59');
--- Creamos una tabla para almacenar las facturas del cliente, junto con el numero de veces que se repite.
+
DROP TEMPORARY TABLE IF EXISTS qFACTURAS;
CREATE TEMPORARY TABLE qFACTURAS
@@ -34084,7 +33234,7 @@ CREATE TEMPORARY TABLE qFACTURAS
ENGINE = InnoDB
;
--- Insertamos las facturas y los recibos de gestion.
+
INSERT INTO qFACTURAS
SELECT Fecha, COUNT(*) as TPVcount, round(Importe,2) as Factura, 0 as Recibo, COUNT(*)as CPcount,round(Importe,2) as Debe, 0 as Haber, 1 as Control
@@ -34097,7 +33247,7 @@ INSERT INTO qFACTURAS
WHERE Id_Cliente = idC AND empresa_id = idE AND Fechacobro BETWEEN datSTART AND datFEC
GROUP BY Fechacobro, round(Entregado,2);
--- Insertamos los asientos de contabilidad, marcando con control = -1 las repetidas.
+
INSERT INTO qFACTURAS
SELECT *
FROM (
@@ -34113,14 +33263,14 @@ INSERT INTO qFACTURAS
--- Eliminamos las repetidas
--- DELETE FROM qFACTURAS WHERE Control = -1;
--- Arreglamos las buenas
+
+
+
UPDATE qFACTURAS SET TPVcount = 0, Factura = 0, Recibo = 0 WHERE Control = 2;
UPDATE qFACTURAS SET CPcount = 0, Debe = 0, Haber = 0 WHERE Control IN (1,3);
--- Mostramos el resultado
+
SELECT *, @saldo := @saldo + TPVcount * (Factura + Recibo) - CPCount * ( Debe + Haber ) as Saldo
FROM qFACTURAS
JOIN (SELECT @saldo := 0) truqui ;
@@ -34182,7 +33332,7 @@ BEGIN
FROM pago
WHERE Fecha BETWEEN datSTART AND datFEC
AND conciliado
- AND pay_met_id <> 18 -- Saldos iniciales
+ AND pay_met_id <> 18
) G
UNION ALL
@@ -34239,7 +33389,7 @@ SET datFEC = TIMESTAMP(datFEC,'23:59:59');
SET datSTART = FIRSTDAYOFYEAR(datFEC);
--- Creamos una tabla para almacenar las facturas del proveedor, junto con el numero de veces que se repite.
+
DROP TEMPORARY TABLE IF EXISTS qFACTURAS;
CREATE TEMPORARY TABLE qFACTURAS
@@ -34255,7 +33405,7 @@ CREATE TEMPORARY TABLE qFACTURAS
ENGINE = InnoDB
;
--- Insertamos las facturas y los pagos de gestion.
+
INSERT INTO qFACTURAS
SELECT Fecha, COUNT(*) as TPVcount, round(Importe,2) as Factura
@@ -34276,7 +33426,7 @@ INSERT INTO qFACTURAS
AND conciliado
GROUP BY Fecha, round(importe,2);
--- Insertamos los asientos de contabilidad, marcando con control = -1 las repetidas
+
INSERT INTO qFACTURAS
SELECT *
FROM (
@@ -34292,14 +33442,14 @@ INSERT INTO qFACTURAS
--- Eliminamos las repetidas
+
DELETE FROM qFACTURAS WHERE Control = -1;
--- Arreglamos las buenas
+
UPDATE qFACTURAS SET TPVcount = 0, Factura = 0, Recibo = 0 WHERE Control = 2;
UPDATE qFACTURAS SET CPcount = 0, Debe = 0, Haber = 0 WHERE Control IN (1,3);
--- Mostramos el resultado
+
SELECT *, @saldo := @saldo + TPVcount * (Factura + Recibo) - CPcount * (Debe + Haber) as Saldo
FROM qFACTURAS
JOIN (SELECT @saldo := 0) truqui ;
@@ -34362,7 +33512,7 @@ BEGIN
FROM pago
WHERE Fecha BETWEEN datSTART AND datFEC
AND conciliado
- AND pay_met_id <> 18 -- Saldos iniciales
+ AND pay_met_id <> 18
) G
UNION ALL
@@ -34426,13 +33576,13 @@ BEGIN
SET dateStart = TIMESTAMPADD(MONTH, -2, CURDATE());
SELECT TIMESTAMPADD(DAY, -1, today) INTO yesterday;
- -- lo quitamos despues de campañaA
+
SELECT TIMESTAMP(TIMESTAMPADD(DAY, scopeDays, yesterday),'23:59:59') INTO maxDate;
- -- SELECT TIMESTAMP(TIMESTAMPADD(DAY, 14, yesterday),'23:59:59') INTO maxDate;
- -- Creamos una tabla con los Comerciales de los que se mostraran los tickets
+
+
CALL subordinate(worker,TRUE);
- -- Se genera una tabla con los tickets representados
+
DROP TEMPORARY TABLE IF EXISTS ticketRange;
CREATE TEMPORARY TABLE ticketRange
@@ -34479,14 +33629,7 @@ BEGIN
INNER JOIN Tickets T USING(Id_Cliente)
LEFT JOIN vn.ticketState tls on tls.ticket = T.Id_Ticket
INNER JOIN workerTeamCollegues w ON w.collegueId = C.Id_Trabajador
- /*
- (SELECT Id_Trabajador
- FROM Trabajadores t
- JOIN account.user u ON u.id = t.user_id
- JOIN workerTeam w on w.user = u.id
- JOIN (SELECT team FROM workerTeam wt JOIN Trabajadores tr on tr.user_id = wt.user WHERE Id_Trabajador = worker) sub on sub.team = w.team
- ) sub2 ON sub2.Id_Trabajador = C.Id_Trabajador
- */
+
WHERE Fecha >= yesterday
AND Fecha <= maxDate AND T.Factura Is NULL
AND IFNULL(tls.alertLevel,0) < 3
@@ -34494,7 +33637,7 @@ BEGIN
IF (SELECT COUNT(*) FROM ticketRange) THEN
- -- Generamos varias auxiliares (ya podian los de mysql haber solucionado esto)
+
DROP TEMPORARY TABLE IF EXISTS tmp.client_list;
CREATE TEMPORARY TABLE tmp.client_list
@@ -34508,7 +33651,7 @@ BEGIN
ENGINE = MEMORY
SELECT Id_Cliente FROM tmp.client_list;
- -- usar ticket_total crear ticket_tmp(ticket_id)
+
DROP TEMPORARY TABLE IF EXISTS ticket_tmp;
CREATE TEMPORARY TABLE `ticket_tmp`
ENGINE = MEMORY
@@ -34519,7 +33662,7 @@ BEGIN
CALL ticket_total();
- -- Generamos otra tabla temporal con los Tickets_iva
+
DROP TEMPORARY TABLE IF EXISTS tt3;
CREATE TEMPORARY TABLE tt3
@@ -34528,7 +33671,7 @@ BEGIN
JOIN ticketRange tr ON tr.Id_Ticket = tt.ticket_id;
- -- Generamos la lista de tickets y sus datos
+
DROP TEMPORARY TABLE IF EXISTS Radartest;
@@ -34537,15 +33680,15 @@ BEGIN
SELECT IF(C.Id_Trabajador = worker, 1, 0) as Propio,
Credito,
Riesgo,
- -- Greuge,
+
T.Id_Ticket,
T.warehouse_id as wh,
T.Fecha,
T.Alias,
- -- T.Vista,
+
REPEAT(' ',50) as problem,
T.Agencia Tipo,
- -- C.Id_Trabajador,
+
T.workerId AS Id_Trabajador,
T.Solucion,
T.Localizacion,
@@ -34569,7 +33712,7 @@ BEGIN
0 AS inacabable
- -- (-1 < ifnull(order_id,-1)) as isbionic
+
FROM Tickets T
LEFT JOIN vn.ticketState ts on ts.ticket = T.Id_Ticket
@@ -34577,11 +33720,11 @@ BEGIN
INNER JOIN tt3 ON tt3.ticket_id = T.Id_Ticket
- -- LEFT JOIN (SELECT DISTINCT 1 as order_id, Id_Ticket FROM order_Tickets) o on o.Id_Ticket = T.Id_Ticket
+
INNER JOIN Agencias A ON A.Id_Agencia = T.Id_Agencia
- -- WHERE T.Etiquetasemitidas = FALSE
+
GROUP BY T.Id_Ticket
) AS T ON T.Id_Cliente = C.Id_Cliente
@@ -34611,7 +33754,7 @@ BEGIN
) AS Peligros ON Peligros.Id_Cliente = C.Id_Cliente
;
- -- Actualizamos el Riesgo con los tickets futuros
+
set @cliente:= 0;
SET @riesgo := 0;
@@ -34681,14 +33824,14 @@ BEGIN
SET dateStart = TIMESTAMPADD(MONTH, -2, CURDATE());
SELECT TIMESTAMPADD(DAY, -1, today) INTO yesterday;
- -- lo quitamos despues de campañaA
+
SELECT TIMESTAMP(TIMESTAMPADD(DAY, scopeDays, yesterday),'23:59:59') INTO maxDate;
- -- SELECT TIMESTAMP(TIMESTAMPADD(DAY, 14, yesterday),'23:59:59') INTO maxDate;
- -- Creamos una tabla con los Comerciales de los que se mostraran los tickets
+
+
CALL subordinate(worker,TRUE);
- -- Se genera una tabla con los tickets representados
+
DROP TEMPORARY TABLE IF EXISTS ticketRange;
CREATE TEMPORARY TABLE ticketRange
@@ -34730,7 +33873,7 @@ BEGIN
IF (SELECT COUNT(*) FROM ticketRange) THEN
- -- Generamos varias auxiliares (ya podian los de mysql haber solucionado esto)
+
DROP TEMPORARY TABLE IF EXISTS tmp.client_list;
CREATE TEMPORARY TABLE tmp.client_list
@@ -34744,7 +33887,7 @@ BEGIN
ENGINE = MEMORY
SELECT Id_Cliente FROM tmp.client_list;
- -- usar ticket_total crear ticket_tmp(ticket_id)
+
DROP TEMPORARY TABLE IF EXISTS ticket_tmp;
CREATE TEMPORARY TABLE `ticket_tmp`
ENGINE = MEMORY
@@ -34756,7 +33899,7 @@ BEGIN
CALL ticket_total();
- -- Generamos otra tabla temporal con los Tickets_iva
+
DROP TEMPORARY TABLE IF EXISTS tt3;
CREATE TEMPORARY TABLE tt3
@@ -34765,7 +33908,7 @@ BEGIN
JOIN ticketRange tr ON tr.Id_Ticket = tt.ticket_id;
- -- Generamos la lista de tickets y sus datos
+
DROP TEMPORARY TABLE IF EXISTS Radartest;
@@ -34774,15 +33917,15 @@ BEGIN
SELECT IF(C.Id_Trabajador = worker, 1, 0) as Propio,
Credito,
Riesgo,
- -- Greuge,
+
T.Id_Ticket,
T.warehouse_id as wh,
T.Fecha,
T.Alias,
- -- T.Vista,
+
REPEAT(' ',50) as problem,
T.Agencia Tipo,
- -- C.Id_Trabajador,
+
T.workerId AS Id_Trabajador,
T.Solucion,
T.Localizacion,
@@ -34805,7 +33948,7 @@ BEGIN
0 AS inacabable
- -- (-1 < ifnull(order_id,-1)) as isbionic
+
FROM Tickets T
LEFT JOIN vn.ticketState ts on ts.ticket = T.Id_Ticket
@@ -34813,11 +33956,11 @@ BEGIN
INNER JOIN tt3 ON tt3.ticket_id = T.Id_Ticket
- -- LEFT JOIN (SELECT DISTINCT 1 as order_id, Id_Ticket FROM order_Tickets) o on o.Id_Ticket = T.Id_Ticket
+
INNER JOIN Agencias A ON A.Id_Agencia = T.Id_Agencia
- -- WHERE T.Etiquetasemitidas = FALSE
+
GROUP BY T.Id_Ticket
) AS T ON T.Id_Cliente = C.Id_Cliente
@@ -34850,7 +33993,7 @@ BEGIN
;
- -- Actualizamos el Riesgo con los tickets futuros
+
set @cliente:= 0;
SET @riesgo := 0;
@@ -34960,12 +34103,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `radar_negativos`(IN v_force BOOLEAN, IN intRANGE INT)
BEGIN
-/**
- * Calcula una tabla con el máximo negativo visible para cada producto y almacen
- *
- * @param v_force Fuerza el recalculo del stock
- * @param intRANGE Numero de dias a considerar
-**/
+
CALL `cache`.stock_refresh(v_force);
SET @aid = NULL;
@@ -35150,11 +34288,11 @@ BEGIN
LEFT JOIN travel t ON t.id = e.travel_id
WHERE re.awb_recibida = NEW_id GROUP BY re.awb_recibida));
- -- IF dblRefMin < dblRefRate THEN
- -- SET dblRef = dblRefRate;
- -- ELSE
- -- SET dblRef =dblRefMin;
- -- END IF;
+
+
+
+
+
SELECT IFNULL(MAX(r.num_recibida) + 1,1) INTO v_num_recibida FROM recibida r
WHERE r.serie LIKE NEW_serie
AND YEAR(r.fecha) = YEAR(NEW_fecha)
@@ -35181,7 +34319,7 @@ SELECT a,NEW_fecha,subcta,contra,concepto,eurodebe,eurohaber,baseeuro,NEW_serie,
INNER JOIN recibida ON Id_Proveedor = proveedor_id WHERE id = NEW_id) t4
INNER JOIN(
- -- Linea del proveedor/acreedor
+
SELECT subcta,'' contra,eurodebe,ROUND(SUM(eurohaber) + 0.0001,2) eurohaber,baseeuro,0 iva, l340,LRECT349,TIPOOPE,'' AUXILIAR
FROM (
@@ -35202,14 +34340,14 @@ SELECT a,NEW_fecha,subcta,contra,concepto,eurodebe,eurohaber,baseeuro,NEW_serie,
GROUP BY recibida_id
UNION ALL
- -- Linea de iva
+
SELECT ic.codigo,cta_proveed contra,
ROUND(iva/100*SUM(ri.bi) + 0.0001,2) eurodebe, NULL eurohaber,
ROUND(SUM(ri.bi),2) baseeuro,iva, 1 l340,(NOT ((p.pais_id <> p2.pais_id) AND pa.CEE < 2)) LRECT349,TIPOOPE,
- IF(pa2.CEE < 2 AND ri2.gastos_id IS NULL,'','*') AUXILIAR -- JGF 30-01-2014 IF(NOT ((p.pais_id <> p2.pais_id) AND pa.CEE < 2),'*','') -- ANTES '' AUXILIAR JGF < 30-01-2014
--- AND ri.gastos_id LIKE '4751______'
+ IF(pa2.CEE < 2 AND ri2.gastos_id IS NULL,'','*') AUXILIAR
+
FROM recibida r
INNER JOIN recibida_iva ri ON ri.recibida_id = r.id
@@ -35232,7 +34370,7 @@ SELECT a,NEW_fecha,subcta,contra,concepto,eurodebe,eurohaber,baseeuro,NEW_serie,
WHERE r.id = NEW_id AND g.conbase AND link GROUP BY iva
UNION ALL
- -- Linea iva inversor sujeto pasivo
+
SELECT ic2.codigo,cta_proveed contra,
NULL eurodebe, ROUND(ic2.iva/100*SUM(bi) + 0.0001,2) eurohaber,
@@ -35252,7 +34390,7 @@ SELECT a,NEW_fecha,subcta,contra,concepto,eurodebe,eurohaber,baseeuro,NEW_serie,
WHERE r.id = NEW_id AND ic2.link GROUP BY ic2.iva
UNION ALL
- -- Linea de Gastos
+
SELECT if(gastos_id LIKE '4751______',LPAD(RIGHT(cta_proveed ,4),10,gastos_id),gastos_id),cta_proveed ,
if(gastos_id LIKE '4751______',NULL,ABS(ROUND(SUM(bi),2))) ,
@@ -35274,7 +34412,7 @@ SELECT a,NEW_fecha,subcta,contra,concepto,eurodebe,eurohaber,baseeuro,NEW_serie,
UNION ALL
- -- Extracomunitarias gasto contra proveedor/acreedor
+
SELECT CONCAT('COMPRA s/fra ',sref,':',LEFT(p.Proveedor, 10)) concepto ,gastos_id,cuenta,
ROUND(SUM(bi)/IF(r.serie='W',dblRefRate,1)* (re.percentage / 100),2),NULL ,IF( @a:=@a+1 ,NULL,NULL) ,0, 0 l340,0 LRECT349,' ' TIPOOPE,'' AUXILIAR,r.serie
@@ -35297,13 +34435,13 @@ SELECT a,NEW_fecha,subcta,contra,concepto,eurodebe,eurohaber,baseeuro,NEW_serie,
UNION ALL
- -- Extracomunitarias proveedor contra gasto
+
SELECT CONCAT('COMPRA s/fra ',sref,':',LEFT(p.Proveedor, 10)) concepto ,p.cuenta subcta,gastos_id,
NULL eurodebe, ROUND((1+(iva/100)*(r.serie = 'R'))*SUM(bi)/IF(r.serie='W',dblRefRate,1)* (re.percentage / 100),2) eurohaber,
NULL baseeuro,0 iva, 0 l340,0 LRECT349,' ' TIPOOPE,'' AUXILIAR,r.serie
- -- antes sols iva
+
FROM recibida_entrada re
INNER JOIN recibida_iva ri ON re.recibida_id = ri.recibida_id
@@ -35320,7 +34458,7 @@ UNION ALL
UNION ALL
- -- Linea de iva adquisicion
+
SELECT CONCAT('ADQUI. INTRA FRA ',sref),ic.codigo,p.cuenta contra,
ROUND(iva/100*SUM(ri.importe) + 0.0001,2) eurodebe, NULL eurohaber,
@@ -35348,7 +34486,7 @@ UNION ALL
UNION ALL
- -- Linea de iva adquisicion
+
SELECT CONCAT('ADQUI. INTRA FRA ',sref),ic2.codigo,p.cuenta contra,
NULL eurodebe, ROUND(ic2.iva/100*SUM(ri.importe) + 0.0001,2) eurohaber,
@@ -35378,7 +34516,7 @@ UNION ALL
WHERE ar.recibida_id = NEW_id AND (p.pais_id <> p2.pais_id) GROUP BY ic2.iva
UNION ALL
- -- Linea iva importacion
+
SELECT concepto,subcta,Cuenta,
IF (NOT ((ppais_id <> p2pais_id) AND CEE < 2),
(IF(@cont<@a,
@@ -35431,7 +34569,7 @@ UNION ALL
) sub2 USING(Codintrastat)
- -- JOIN recibida_intrastat ri ON ar.awb_recibida = ri.recibida_id and ri.Codintrastat = sub1.Codintrastat
+
JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada
@@ -35450,12 +34588,12 @@ UNION ALL
JOIN Proveedores p2 ON p2.Id_Proveedor = r.empresa_id
WHERE re.awb_recibida = NEW_id AND re.percentage AND IF(cta_proveed like '___0______',ri.gastos_id = 5660000002,TRUE)
- -- canvie el cta_proveed like '___1______' per cero cuidao en les van de put
+
GROUP BY p.Id_Proveedor
- -- antes GROUP BY a.Codintrastat,Id_Entrada
+
) t3)t4;
@@ -35507,11 +34645,11 @@ BEGIN
LEFT JOIN travel t ON t.id = e.travel_id
WHERE re.awb_recibida = NEW_id GROUP BY re.awb_recibida));
- -- IF dblRefMin < dblRefRate THEN
- -- SET dblRef = dblRefRate;
- -- ELSE
- -- SET dblRef =dblRefMin;
- -- END IF;
+
+
+
+
+
SELECT IFNULL(MAX(r.num_recibida) + 1,1) INTO v_num_recibida FROM recibida r
WHERE r.serie LIKE NEW_serie
AND YEAR(r.fecha) = YEAR(NEW_fecha)
@@ -35549,7 +34687,7 @@ SELECT CONCAT('COMPRA FRA ',p.Proveedor) concepto,ic.codigo subcta,p.Cuenta,ic.i
left JOIN awb aw ON ar.awb_id = aw.id
- WHERE ar.recibida_id = NEW_id AND re.percentage/*JGF 27/08/14*/
+ WHERE ar.recibida_id = NEW_id AND re.percentage
GROUP BY a.Codintrastat
@@ -35565,7 +34703,7 @@ SELECT CONCAT('COMPRA FRA ',p.Proveedor) concepto,ic.codigo subcta,p.Cuenta,ic.i
) sub2 USING(Codintrastat)
- -- JOIN recibida_intrastat ri ON ar.awb_recibida = ri.recibida_id and ri.Codintrastat = sub1.Codintrastat
+
left JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada
@@ -35583,8 +34721,8 @@ SELECT CONCAT('COMPRA FRA ',p.Proveedor) concepto,ic.codigo subcta,p.Cuenta,ic.i
left JOIN Proveedores p2 ON p2.Id_Proveedor = r.empresa_id
- WHERE re.awb_recibida = NEW_id AND re.percentage/*JGF 27/08/14*/ AND IF(cta_proveed like '___0______',ri.gastos_id = 5660000002,TRUE)
- -- canvie el cta_proveed like '___1______' per cero cuidao en les van de put
+ WHERE re.awb_recibida = NEW_id AND re.percentage AND IF(cta_proveed like '___0______',ri.gastos_id = 5660000002,TRUE)
+
GROUP BY p.Id_Proveedor;
@@ -35709,7 +34847,7 @@ BEGIN
INSERT INTO ticket_invoice (ticket_id) SELECT Id_Ticket FROM Tickets t
WHERE Factura = Id_Factura;
- -- Eliminem els tickets que no han de ser facturats
+
IF (SELECT COUNT(*) FROM ticket_invoice) > 0
THEN
@@ -35894,14 +35032,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `risk`(v_date DATE, v_customer INT)
BEGIN
-/**
- * Calcula el riesgo para uno o todos los clientes activos.
- *
- * @param v_date Fecha maxima de los registros
- * @param v_customer Cliente a mostrar su riesgo, %NULL para todos
- *
- * @return table tmp.risk
- **/
+
DECLARE v_date_start DATETIME DEFAULT TIMESTAMPADD(MONTH, -33, CURDATE());
DECLARE v_date_end DATETIME;
@@ -35973,14 +35104,9 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `risk_vs_client_list`(maxRiskDate DATE)
BEGIN
-/**
- * Calcula el riesgo para los clientes activos de la tabla temporal tmp.client_list
- *
- * @param maxRiskDate Fecha maxima de los registros
- * @return table tmp.risk
- **/
+
- -- DECLARE startingDate DATETIME DEFAULT TIMESTAMPADD(DAY, -40, CURDATE());
+
DECLARE startingDate DATETIME DEFAULT TIMESTAMPADD(DAY, - DAYOFMONTH(CURDATE()) - 5, CURDATE());
DECLARE endingDate DATETIME;
DECLARE MAX_RISK_ALLOWED INT DEFAULT 200;
@@ -36075,14 +35201,9 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `risk_vs_client_listbeta`(maxRiskDate DATE)
BEGIN
-/**
- * Calcula el riesgo para los clientes activos de la tabla temporal tmp.client_list
- *
- * @param maxRiskDate Fecha maxima de los registros
- * @return table tmp.risk
- **/
+
- -- DECLARE startingDate DATETIME DEFAULT TIMESTAMPADD(DAY, -40, CURDATE());
+
DECLARE startingDate DATETIME DEFAULT TIMESTAMPADD(DAY, - DAYOFMONTH(CURDATE()) - 5, CURDATE());
DECLARE endingDate DATETIME;
DECLARE MAX_RISK_ALLOWED INT DEFAULT 200;
@@ -36208,7 +35329,7 @@ Select cast(sum(Cantidad * vn2008.cm3_unidad(buy_id)) / 1000000 as decimal(5,1))
where t.Fecha between TIMESTAMPADD(DAY,-1,datSTART) and TIMESTAMPADD(DAY,-1,datEND)
AND wp.agency_id IS NULL
group by Agencia, Almacen, Fecha
- -- JGF 2016-05-05
+
UNION ALL
Select cast(sum(Cantidad * vn2008.cm3_unidad(Id_Compra)) / 1000000 as decimal(5,1)) as m3 ,a.Agencia, w.name as Almacen,
timestampadd(day,1,t.shipment) Fecha
@@ -36272,7 +35393,7 @@ create table bi.saldos_bancos
union all
Select Id_Banco, NULL, importe, greatest(fecha,TIMESTAMPADD(DAY,1,CURDATE())),empresa_id
from pago
- where conciliado = FALSE /*fecha between CURDATE() and datEND*/
+ where conciliado = FALSE
union all
Select Id_Banco, Entregado, NULL, greatest(Fechacobro,TIMESTAMPADD(DAY,1,CURDATE())),empresa_id
from Recibos
@@ -36348,11 +35469,11 @@ create table bi.saldos_bancos_pordia
union all
Select Id_Banco, NULL, importe, greatest(fecha,TIMESTAMPADD(DAY,1,CURDATE())),empresa_id
from pago
- where conciliado = FALSE /*fecha between CURDATE() and datEND*/
+ where conciliado = FALSE
union all
Select Id_Banco, Entregado, NULL, greatest(Fechacobro,TIMESTAMPADD(DAY,1,CURDATE())),empresa_id
from Recibos
- where conciliado = FALSE -- Fechacobro between CURDATE() and datEND
+ where conciliado = FALSE
union all
Select IFNULL(Id_Banco,9999), Importe, NULL, Fecha,empresa_id
from Saldos_Prevision
@@ -36391,7 +35512,7 @@ CREATE DEFINER=`root`@`%` PROCEDURE `scan_rutas_view`()
BEGIN
-/* muestra las rutas agrupadas de los ultimos tres dias, así como una lista de los tickets sin enrutar, agrpados por agencia y fecha*/
+
select Fecha, Id_Ruta, Matricula, sub.m3, CodigoTrabajador, Agencia, Bultos, w.name as Almacen
from
@@ -36542,7 +35663,7 @@ WHILE NOT done DO
SELECT LAST_INSERT_ID() INTO vNewTicket;
- -- SELECT vMyTicket, vNewTicket; SET done = 1;
+
UPDATE Movimientos m
JOIN Articles a using(Id_Article)
JOIN Tipos tp using(tipo_id)
@@ -36632,7 +35753,7 @@ WHILE NOT done DO
SELECT LAST_INSERT_ID() INTO vNewTicket;
- -- SELECT vMyTicket, vNewTicket; SET done = 1;
+
UPDATE Movimientos m
JOIN Compres c ON Id_Entrada IN (100461, 100929) AND c.Id_Article = m.Id_Article
SET Id_Ticket = vNewTicket
@@ -36726,7 +35847,7 @@ WHILE NOT done DO
SELECT LAST_INSERT_ID() INTO vNewTicket;
- -- SELECT vMyTicket, vNewTicket; SET done = 1;
+
UPDATE Movimientos m
JOIN Articles a using(Id_Article)
JOIN Tipos tp using(tipo_id)
@@ -36846,7 +35967,7 @@ WHILE NOT done DO
SELECT LAST_INSERT_ID() INTO vNewTicket;
- -- SELECT vMyTicket, vNewTicket; SET done = 1;
+
UPDATE Movimientos m
JOIN
(
@@ -36925,7 +36046,7 @@ BEGIN
FROM Trabajadores
WHERE Id_Trabajador = idWORKER;
- IF vCompanyId = 1381 THEN -- ORNAMENTALES
+ IF vCompanyId = 1381 THEN
DROP TABLE IF EXISTS subordinate;
CREATE TABLE subordinate
@@ -36937,26 +36058,7 @@ BEGIN
ELSE
- /* PAK 23/05/2016
- Guardia de domingos
-
- Los domingos viene Fran a hacer de comercial y necesita ver todos los radares
-
-
-
- IF dayofweek(curdate()) = 1 and idWORKER = 43 then -- Domingo y Fran Natek
-
- DROP TABLE IF EXISTS subordinate;
-
- CREATE TABLE subordinate
- (INDEX (Id_Trabajador)) ENGINE = MEMORY
- SELECT Id_Trabajador,TRUE visited,0 boss
- FROM Trabajadores;
-
-
- else
- */
IF CasoBase THEN
SET @@max_sp_recursion_depth = 5 ;
@@ -36979,21 +36081,16 @@ BEGIN
END REPEAT;
END IF;
- /*
- end if;
- */
+
END IF;
IF idWorker = 2 THEN
INSERT INTO subordinate(Id_Trabajador,visited,boss) VALUES (2,TRUE,2);
- -- INSERT INTO subordinate(Id_Trabajador,visited,boss) VALUES (43,TRUE,2);
+
END IF;
- /*
- IF CasoBase THEN
- SELECT * FROM subordinate;
- END IF;*/
+
END ;;
DELIMITER ;
@@ -37021,7 +36118,7 @@ BEGIN
FROM Trabajadores
WHERE Id_Trabajador = idWORKER;
- IF vCompanyId = 1381 THEN -- ORNAMENTALES
+ IF vCompanyId = 1381 THEN
DROP TABLE IF EXISTS subordinate;
CREATE TABLE subordinate
@@ -37033,26 +36130,7 @@ BEGIN
ELSE
- /* PAK 23/05/2016
- Guardia de domingos
-
- Los domingos viene Fran a hacer de comercial y necesita ver todos los radares
-
-
-
- IF dayofweek(curdate()) = 1 and idWORKER = 43 then -- Domingo y Fran Natek
-
- DROP TABLE IF EXISTS subordinate;
-
- CREATE TABLE subordinate
- (INDEX (Id_Trabajador)) ENGINE = MEMORY
- SELECT Id_Trabajador,TRUE visited,0 boss
- FROM Trabajadores;
-
-
- else
- */
IF CasoBase THEN
SET @@max_sp_recursion_depth = 5 ;
@@ -37075,9 +36153,7 @@ BEGIN
END REPEAT;
END IF;
- /*
- end if;
- */
+
END IF;
@@ -37085,10 +36161,7 @@ BEGIN
INSERT INTO subordinate(Id_Trabajador) VALUES (2);
END IF;
- /*
- IF CasoBase THEN
- SELECT * FROM subordinate;
- END IF;*/
+
END ;;
DELIMITER ;
@@ -37156,7 +36229,7 @@ BEGIN
UPDATE Clientes
SET Credito = 0
- WHERE pay_met_id = 5 -- TARJETA
+ WHERE pay_met_id = 5
;
UPDATE credit
@@ -37185,7 +36258,7 @@ BEGIN
DECLARE datINI DATE;
DECLARE datFIN DATE;
- -- Seleccionamos la fecha minima/maxima del periodo que vamos a consultar
+
SELECT MIN(`date`) INTO datINI FROM vn2008.`time` t WHERE t.period = period;
SELECT TIMESTAMP(MAX(`date`),'23:59:59') INTO datFIN FROM vn2008.`time` t WHERE t.period = period;
@@ -37233,7 +36306,7 @@ BEGIN
SELECT tipo_id INTO intTIPO FROM Articles WHERE Id_Article = idART;
- -- Seleccionamos la fecha minima/maxima del periodo que vamos a consultar
+
SELECT MIN(`date`) INTO datINI FROM vn2008.`time` t WHERE t.period = period;
SELECT TIMESTAMP(MAX(`date`),'23:59:59') INTO datFIN FROM vn2008.`time` t WHERE t.period = period;
@@ -37288,14 +36361,8 @@ BEGIN
--- Año 2014
-/*
-IF datSTART = '2013-12-31' THEN
- SET datSTART = '2013-12-30' ;
-END IF;
-*/
SET datEND = TIMESTAMPADD(DAY,7,datSTART);
@@ -37510,7 +36577,7 @@ BEGIN
JOIN travel TR ON TR.id = E.travel_id
JOIN (SELECT Consignatario, Id_Consigna FROM Consignatarios WHERE Id_Cliente = IdCliente AND Predeterminada LIMIT 1) Consigna
WHERE Id_Entrada = IdEntrada;
- -- JOIN Agencias AG ON AG.Id_Agencia = TR.agency_id
+
SELECT LAST_INSERT_ID() INTO idTICKET;
@@ -37548,7 +36615,7 @@ BEGIN
DECLARE done BIT DEFAULT 0;
DECLARE IdEntrada INT(10);
--- Declaro el cursor para las entradas
+
DECLARE cursor_entradas CURSOR FOR
SELECT Id_Entrada
FROM Entradas E
@@ -37590,15 +36657,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `ticket_iva`(billing_date DATE)
BEGIN
-/**
- * Calcula la base imponible, el IVA y el recargo de equivalencia para
- * un conjunto de tickets.
- *
- * @param table ticket_tmp(ticket_id) Tabla con el listado de tickets
- * @param billing_date Fecha de facturación
- *
- * @return table ticket_iva
- **/
+
DECLARE clean CONDITION FOR SQLSTATE 'HY000';
DECLARE CONTINUE HANDLER FOR clean
@@ -37612,7 +36671,7 @@ BEGIN
SET billing_date = IFNULL(billing_date, CURDATE());
- -- Calcula el tipo de IVA para cada grupo en cada país.
+
CREATE TEMPORARY TABLE iva_group
(INDEX idx USING HASH (Id_Pais, iva_group_id))
@@ -37627,7 +36686,7 @@ BEGIN
) t
GROUP BY Id_Pais, iva_group_id;
- -- Calcula el impuesto para cada tipo de IVA en cada país.
+
CREATE TEMPORARY TABLE iva_tax
(INDEX idx USING HASH (Id_Pais, tipo))
@@ -37636,12 +36695,12 @@ BEGIN
SELECT Id_Pais, tipo, iva * 0.01 AS iva, recargo * 0.01 AS re
FROM iva_codigo
JOIN iva_tipo t ON t.id = iva_tipo_id
- WHERE Fecha <= billing_date -- AND iva jgf 2016-06-09 fallaba con los articulos exentos de iva
+ WHERE Fecha <= billing_date
ORDER BY fecha DESC, recargo DESC
) t
GROUP BY Id_Pais, tipo;
- -- Calcula el IVA y el recargo desglosado para cada ticket.
+
CREATE TEMPORARY TABLE ticket_iva
(INDEX idx USING HASH (ticket_id))
@@ -37689,7 +36748,7 @@ BEGIN
DROP TEMPORARY TABLE IF EXISTS `Locator`;
--- usar ticket_total crear ticket_tmp(ticket_id)
+
DROP TEMPORARY TABLE IF EXISTS ticket_tmp;
CREATE TEMPORARY TABLE `ticket_tmp`
ENGINE = MEMORY
@@ -37712,13 +36771,12 @@ BEGIN
LEFT JOIN Agencias a ON a.Id_Agencia = t1.Id_Agencia
LEFT JOIN agency ag ON ag.agency_id = a.agency_id
LEFT JOIN agency_warehouse aw ON aw.agency_id = a.agency_id AND aw.warehouse_id = wh_
- -- para pte recogida
+
LEFT JOIN warehouse w_out on w_out.id = t1.warehouse_id
LEFT JOIN warehouse w ON w.id = wh_
LEFT JOIN warehouse_pickup wp on wp.agency_id = t1.Id_Agencia and wp.warehouse_id = wh_
- WHERE /*t1.Fecha BETWEEN TIMESTAMPADD(DAY,-5,DATE(date_)) AND TIMESTAMPADD(DAY,days,DATE(date_))
- AND */ IFNULL(aw.Vista,a.Vista) > 0
+ WHERE IFNULL(aw.Vista,a.Vista) > 0
AND ((t1.Anotadoencaja = FALSE
AND t1.Etiquetasemitidas = FALSE
AND e.ticket_id IS NULL
@@ -37818,14 +36876,14 @@ BEGIN
SET Observaciones = CONCAT('F5 PERDIDO ',IFNULL(Observaciones,''));
- -- CODIGO 100
+
UPDATE `Locator`
JOIN Movimientos using(Id_Ticket)
SET Observaciones = 'CODIGO 100'
WHERE Id_Article = 100;
- -- ENTRADAS
+
INSERT INTO `Locator`(Fecha_Simple, Id_Ticket, Agencia, Id_Cliente, Alias, PedidoImpreso, CodigoTrabajador, Fecha, Estado, Consignatario, Vista, PROVINCIA,Riesgo)
SELECT DISTINCT v_compres.shipment AS Fecha_Simple, v_compres.Id_Entrada AS Id_Ticket, warehouse.name, v_compres.Id_Proveedor,
v_compres.ref AS Alias, v_compres.Pedida AS PedidoImpreso, v_compres.Id_Trabajador AS CodigoTrabajador, v_compres.shipment AS Fecha, 0 AS problem, v_compres.ref AS Consignatario, 1, 'TRASLADO',0
@@ -37869,7 +36927,7 @@ BEGIN
DROP TEMPORARY TABLE IF EXISTS `Locator`;
--- usar ticket_total crear ticket_tmp(ticket_id)
+
DROP TEMPORARY TABLE IF EXISTS ticket_tmp;
CREATE TEMPORARY TABLE `ticket_tmp`
ENGINE = MEMORY
@@ -37878,34 +36936,7 @@ BEGIN
AND t.Fecha BETWEEN v_date_start AND v_date_future;
CALL ticket_total();
- /*
- DROP TEMPORARY TABLE IF EXISTS ticket_total2;
- CREATE TEMPORARY TABLE `ticket_total2`
- ENGINE = MEMORY
- SELECT t.* FROM ticket_total t
- LEFT JOIN Tickets t1 ON t1.Id_Ticket = t.ticket_id
- LEFT JOIN Tickets_state ts ON ts.Id_Ticket = t1.Id_Ticket
- LEFT JOIN vncontrol.inter i ON ts.inter_id = i.inter_id
- LEFT JOIN state s ON s.id = i.state_id
- LEFT JOIN expeditions e ON e.ticket_id = t.ticket_id
- LEFT JOIN Agencias a ON a.Id_Agencia = t1.Id_Agencia
- LEFT JOIN agency ag ON ag.agency_id = a.agency_id
- LEFT JOIN agency_warehouse aw ON aw.agency_id = a.agency_id AND aw.warehouse_id = wh_
- -- para pte recogida
- LEFT JOIN warehouse w_out on w_out.id = t1.warehouse_id
- LEFT JOIN warehouse w ON w.id = wh_
- LEFT JOIN warehouse_pickup wp on wp.agency_id = t1.Id_Agencia and wp.warehouse_id = wh_
-
- WHERE t1.Fecha BETWEEN TIMESTAMPADD(DAY,-5,DATE(date_)) AND TIMESTAMPADD(DAY,days,DATE(date_))
- AND IFNULL(aw.Vista,a.Vista) > 0
- AND ((t1.Anotadoencaja = FALSE
- AND t1.Etiquetasemitidas = FALSE
- AND e.ticket_id IS NULL
- AND t1.warehouse_id = wh_
- AND IFNULL(s.order,0) < 2)
- OR (ts.state_name = 'Pte Recogida'
- AND wp.warehouse_id IS NOT NULL));
- */
+
SELECT t.* FROM ticket_total t
LEFT JOIN Tickets t1 ON t1.Id_Ticket = t.ticket_id
LEFT JOIN Tickets_state ts ON ts.Id_Ticket = t1.Id_Ticket
@@ -37915,7 +36946,7 @@ BEGIN
LEFT JOIN Agencias a ON a.Id_Agencia = t1.Id_Agencia
LEFT JOIN agency ag ON ag.agency_id = a.agency_id
LEFT JOIN agency_warehouse aw ON aw.agency_id = a.agency_id AND aw.warehouse_id = wh_
- -- para pte recogida
+
LEFT JOIN warehouse w_out on w_out.id = t1.warehouse_id
LEFT JOIN warehouse w ON w.id = wh_
LEFT JOIN warehouse_pickup wp on wp.agency_id = t1.Id_Agencia and wp.warehouse_id = wh_
@@ -37925,113 +36956,8 @@ BEGIN
AND ((t1.Anotadoencaja = FALSE
AND t1.Etiquetasemitidas = FALSE
AND e.ticket_id IS NULL));
- /* AND t1.warehouse_id = wh_
- AND IFNULL(s.order,0) < 2)
- OR (ts.state_name = 'Pte Recogida'
- AND wp.warehouse_id IS NOT NULL))*/
- /*
- DROP TEMPORARY TABLE IF EXISTS tmp.risk;
- CREATE TEMPORARY TABLE tmp.risk
- SELECT Id_Cliente, SUM(amount) risk
- FROM Clientes c
- JOIN (
- SELECT customer_id, SUM(amount) amount
- FROM bi.customer_risk
- GROUP BY customer_id
- UNION ALL
- SELECT Id_Cliente, SUM(Entregado)
- FROM Recibos
- WHERE Fechacobro > v_date_end
- GROUP BY Id_Cliente
- UNION ALL
- SELECT t.Id_Cliente, SUM(total)
- FROM ticket_total tt
- JOIN Tickets t ON tt.ticket_id = t.Id_Ticket
- WHERE t.Fecha <= v_date_end
- GROUP BY t.Id_Cliente
- UNION ALL
- SELECT t.customer_id, CAST(-SUM(t.amount) / 100 AS DECIMAL(10,2))
- FROM hedera.tpv_transaction t
- WHERE t.receipt_id IS NULL
- AND t.status = 'ok'
- GROUP BY t.customer_id
- ) t ON c.Id_Cliente = t.customer_id
- WHERE c.activo != FALSE
- GROUP BY c.Id_Cliente;
-
- CREATE TEMPORARY TABLE `Locator`
- ENGINE = MEMORY
- SELECT Congelado, Credito, risk Riesgo, Greuge, T.*,IFNULL(state_name,'libre') AS Estado,
- Codigotrabajador, DATE(T.Fecha) AS Fecha_Simple, Averiguar_ComercialCliente_IdTicket(T.Id_Ticket) AS Comercial,C.calidad,UCASE(LEFT(w_out.`name`,5)) w_out
- FROM Clientes C
- INNER JOIN
- (
- SELECT
- t.Id_Ticket, t.Id_Cliente, t.warehouse_id, t.Fecha, t.Alias,
- NULL Notas, t.Factura, t.factura_id, t.Anotadoencaja, t.Id_Consigna, t.Id_Trabajador,
- t.Observaciones, t.Firmado, t.Etiquetasemitidas, t.PedidoImpreso, t.Bultos, t.Localizacion,
- t.Hora, t.odbc_date, t.blocked, t.Solucion, t.Id_Ruta, t.Prioridad, t.priority,
- t.empresa_id, t.Id_Agencia,
- CS.Consignatario, IFNULL(aw.Vista,a.Vista) Vista,a.Agencia, DATEFEC AS Hora_MAX ,
- SUM(IF(Movimientos.OK = 0, 1, 0)) AS `lines`,
- tt.total AS Importe,
- IF(reino_id IN (5, 1), 0,tt.total) AS Plantas,
- 0 AS inacabable,
- CS.CODPOSTAL, CS.POBLACION, p.name PROVINCIA, a.Vista VistaTicket,p.zone
-
- FROM Tickets t
- JOIN ticket_total2 tt ON tt.ticket_id = t.Id_Ticket
- INNER JOIN Consignatarios CS USING(Id_Consigna)
- LEFT JOIN province p USING(province_id)
- LEFT JOIN Movimientos USING(Id_Ticket)
- LEFT JOIN Articles on Movimientos.Id_Article = Articles.Id_Article
- LEFT JOIN Tipos using(tipo_id)
- LEFT JOIN Agencias a ON a.Id_Agencia = t.Id_Agencia
- LEFT JOIN agency ag ON ag.agency_id = a.agency_id
- LEFT JOIN agency_warehouse aw ON aw.agency_id = a.agency_id AND aw.warehouse_id = wh_
-
- GROUP BY t.Id_Ticket
- ) T USING(Id_Cliente)
- LEFT JOIN Tickets_state ts ON ts.Id_Ticket = T.Id_Ticket
- LEFT JOIN Trabajadores Tb ON Tb.Id_Trabajador = T.Id_Trabajador
- LEFT JOIN tmp.risk as Peligros USING(Id_Cliente)
- JOIN warehouse w_out on w_out.id = T.warehouse_id
- LEFT JOIN
- (
- SELECT Id_Cliente, SUM(Importe) AS Greuge FROM Greuges
- GROUP BY Id_Cliente
- ) AS Agravios USING(Id_Cliente);
-
-
- ALTER TABLE `Locator` ADD PRIMARY KEY(Id_Ticket);
-
- UPDATE `Locator` JOIN
- (
- SELECT d.Id_Ticket from Tickets_dits d
- JOIN Tickets t using(Id_Ticket)
- LEFT JOIN Agencias a using(Id_Agencia)
- LEFT JOIN expeditions e on e.ticket_id = d.Id_Ticket
- WHERE Fecha BETWEEN CURDATE() AND TIMESTAMP(curdate(),'23:59:59')
- AND idaccion_dits = 18 AND ticket_id is null
- AND t.warehouse_id = 1
- AND NOT Etiquetasemitidas
- AND d.ODBC_DATE < TIMESTAMPADD(HOUR,-2, now())
- AND Vista in (1,2)) sub using(Id_Ticket)
- SET Observaciones = CONCAT('F5 PERDIDO ',IFNULL(Observaciones,''));
-
-
- -- ENTRADAS
- INSERT INTO `Locator`(Fecha_Simple, Id_Ticket, Agencia, Id_Cliente, Alias, PedidoImpreso, CodigoTrabajador, Fecha, Estado, Consignatario, Vista, PROVINCIA,Riesgo)
- SELECT DISTINCT v_compres.shipment AS Fecha_Simple, v_compres.Id_Entrada AS Id_Ticket, warehouse.name, v_compres.Id_Proveedor,
- v_compres.ref AS Alias, v_compres.Pedida AS PedidoImpreso, v_compres.Id_Trabajador AS CodigoTrabajador, v_compres.shipment AS Fecha, 0 AS problem, v_compres.ref AS Consignatario, 1, 'TRASLADO',0
- FROM v_compres
- INNER JOIN warehouse ON v_compres.warehouse_id = warehouse.id
- WHERE warehouse_id_out = wh_ AND v_compres.Confirmada = False
- AND v_compres.shipment >= date_;
-
-
-
-*/
+
+
DROP TEMPORARY TABLE IF EXISTS ticket_tmp;
DROP TEMPORARY TABLE IF EXISTS ticket_total;
DROP TEMPORARY TABLE IF EXISTS ticket_total2;
@@ -38063,18 +36989,7 @@ BEGIN
SELECT timeSTART, 'ARRANCA';
DROP TEMPORARY TABLE IF EXISTS `Locator`;
-/*
--- usar ticket_total crear ticket_tmp(ticket_id)
- DROP TEMPORARY TABLE IF EXISTS ticket_tmp;
- CREATE TEMPORARY TABLE `ticket_tmp`
- (INDEX idx USING HASH (ticket_id))
- ENGINE = MEMORY
- SELECT Id_Ticket ticket_id FROM Tickets t
- WHERE t.Factura IS NULL
- AND t.Fecha BETWEEN v_date_start AND v_date_future;
-
- CALL ticket_total();
- */
+
DROP TEMPORARY TABLE IF EXISTS ticket_total;
CREATE TEMPORARY TABLE ticket_total
@@ -38202,7 +37117,7 @@ SET Observaciones = CONCAT('F5 PERDIDO ',IFNULL(Observaciones,''));
SELECT TIMEDIFF(NOW(), timeSTART), 'UPDATE';
--- ENTRADAS
+
INSERT INTO `Locator`(Fecha_Simple, Id_Ticket, Agencia, Id_Cliente, Alias, PedidoImpreso, CodigoTrabajador, Fecha, Estado, Consignatario, Vista, PROVINCIA,Riesgo)
SELECT DISTINCT v_compres.shipment AS Fecha_Simple, v_compres.Id_Entrada AS Id_Ticket, warehouse.name, v_compres.Id_Proveedor,
v_compres.ref AS Alias, v_compres.Pedida AS PedidoImpreso, v_compres.Id_Trabajador AS CodigoTrabajador, v_compres.shipment AS Fecha, 0 AS problem, v_compres.ref AS Consignatario, 1, 'TRASLADO',0
@@ -38212,7 +37127,7 @@ WHERE warehouse_id_out = wh_ AND v_compres.Confirmada = False
AND v_compres.shipment >= date_;
SELECT TIMEDIFF(NOW(), timeSTART), 'ENTRADAS';
--- TICKET PTE RECOGIDA
+
INSERT INTO `Locator`(Fecha_Simple
, Id_Ticket
, Agencia
@@ -38236,7 +37151,7 @@ SELECT date(t.Fecha)
, t.Id_Cliente
, t.Alias
, t.PedidoImpreso
- , UCASE(LEFT(w_out.name,5)) as CodigoTrabajador -- es el almacen de origen
+ , UCASE(LEFT(w_out.name,5)) as CodigoTrabajador
, t.Fecha
, 0 as Estado
, t.Alias
@@ -38261,7 +37176,7 @@ JOIN
order by odbc_date desc, state_id desc
) sub
group by Id_Ticket
- having state_id = 15 -- Pendiente de entrega
+ having state_id = 15
) sub2 using(Id_Ticket);
SELECT TIMEDIFF(NOW(), timeSTART), 'PTE RECOGIDA';
@@ -38298,7 +37213,7 @@ CREATE DEFINER=`root`@`%` PROCEDURE `ticket_new`(
, IN datLANDING DATE
, OUT newTICKET INT)
BEGIN
--- DEPRECATED usar ticketCreate
+
DECLARE boolaux TINYINT;
SET boolaux = If(IdC = 200 Or IdC = 400 Or intTIPO = 23, True, False);
@@ -38364,7 +37279,7 @@ CREATE DEFINER=`root`@`%` PROCEDURE `ticket_new_complet`(
, IN idRUTA INT
, OUT newTICKET INT)
BEGIN
--- DEPRECATED usar ticketCreate
+
DECLARE boolaux TINYINT;
@@ -38426,7 +37341,7 @@ FROM vn2008.Movimientos m
JOIN vn2008.Movimientos_componentes mc using(Id_Movimiento)
INNER JOIN bi.tarifa_componentes tc ON mc.Id_Componente = tc.Id_Componente
WHERE m.Id_Ticket = idTICKET
-AND tc.tarifa_componentes_series_id = 6; -- agencia
+AND tc.tarifa_componentes_series_id = 6;
@@ -38483,13 +37398,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `ticket_total`()
BEGIN
-/**
- * Calcula el total con IVA de un conjunto de tickets.
- *
- * @param table ticket_tmp(ticket_id) Tabla con el listado de tickets
- *
- * @return table ticket_total
- **/
+
DROP TEMPORARY TABLE IF EXISTS ticket_total;
@@ -38690,7 +37599,7 @@ BEGIN
-#Vamos a calcular el porcentaje a incrementar las cantidades de las lineas de movimiento para inflar / desinflar la base final
+
DECLARE dblBASE_INICIAL DOUBLE DEFAULT 0;
DECLARE dblBASE_FINAL DOUBLE DEFAULT 0;
@@ -38705,11 +37614,11 @@ WHERE Id_Ticket = intIDTICKET;
SET dblBASE_FINAL = dblBASE_INICIAL;
-#Eliminamos lineas a 0
+
DELETE FROM Movimientos WHERE Cantidad = 0 AND Id_Ticket = intIDTICKET;
-# Vamos a ir probando incrementos paulatinos hasta que encontremos el que supera lo pedido, teniendo en cuenta el sentido del incremento
+
IF dblINCREMENTO < 0 THEN
@@ -38787,7 +37696,7 @@ BEGIN
CALL buy_tarifas_table(i_entrada);
- -- Traslado en almacen origen
+
DROP TEMPORARY TABLE IF EXISTS buy_edi_temp;
@@ -38916,7 +37825,7 @@ BEGIN
CREATE INDEX tindex USING HASH ON Traslados (article_id);
--- Inventario en el warehouse destino
+
IF dateShipment >= CURDATE() THEN
CALL cache.visible_refresh(v_calc_visible, TRUE, warehouseLanding);
@@ -38928,7 +37837,7 @@ BEGIN
SET vis2 = v.visible, dis2 = a.available;
END IF;
--- ---------------------------------------------
+
SELECT t.*,
@@ -38993,7 +37902,7 @@ BEGIN
CALL buy_tarifas_table(i_entrada);
- -- Traslado en almacen origen
+
DROP TEMPORARY TABLE IF EXISTS buy_edi_temp;
@@ -39011,7 +37920,7 @@ BEGIN
IF dateShipment >= CURDATE() THEN
- -- CALL `cache`.available_refresh(v_calc_available, TRUE, warehouseShipment, dateShipment);
+
CALL availableTraslate(warehouseShipment, dateShipment,NULL);
CALL `cache`.visible_refresh(v_calc_visible,TRUE,warehouseShipment);
DROP TEMPORARY TABLE IF EXISTS tmp_item;
@@ -39117,7 +38026,7 @@ BEGIN
CREATE INDEX tindex USING HASH ON Traslados (article_id);
--- Inventario en el warehouse destino
+
IF dateShipment >= CURDATE() THEN
CALL cache.visible_refresh(v_calc_visible, TRUE, warehouseLanding);
@@ -39132,7 +38041,7 @@ BEGIN
SET vis2 = v.visible, dis2 = a.available;
END IF;
--- ---------------------------------------------
+
SELECT t.*,
@@ -39196,7 +38105,7 @@ BEGIN
CALL buy_tarifas_table(i_entrada);
- -- Traslado en almacen origen
+
DROP TEMPORARY TABLE IF EXISTS buy_edi_temp;
@@ -39215,7 +38124,7 @@ BEGIN
IF dateShipment >= CURDATE() THEN
CALL `cache`.available_refresh(v_calc_available, TRUE, warehouseShipment, dateShipment);
- -- CALL `cache`.availableTraslate(warehouseShipment, dateShipment,NULL);
+
CALL `cache`.visible_refresh(v_calc_visible,TRUE,warehouseShipment);
DROP TEMPORARY TABLE IF EXISTS tmp_item;
CREATE TEMPORARY TABLE tmp_item (UNIQUE INDEX i USING HASH (item_id)) ENGINE = MEMORY
@@ -39320,7 +38229,7 @@ BEGIN
CREATE INDEX tindex USING HASH ON Traslados (article_id);
--- Inventario en el warehouse destino
+
IF dateShipment >= CURDATE() THEN
CALL cache.visible_refresh(v_calc_visible, TRUE, warehouseLanding);
@@ -39332,7 +38241,7 @@ BEGIN
SET vis2 = v.visible, dis2 = a.available;
END IF;
--- ---------------------------------------------
+
SELECT t.*,
@@ -39422,7 +38331,7 @@ SET intEntrada = IF(intEntrada = 0, i_entrada_PCA + i_entrada_FV, intEntrada);
select c_land.Id_Cubo,c_land.Packing,c_land.grouping,c_land.Costefijo,c_land.Comisionfija,c_land.Portefijo,c_land.caja,SUM(c_land.Etiquetas) Etiquetas,c_land.EmbalajeFijo,
c_land.novincular,c_land.buy_edi_id,c_land.Id_Article,SUM(c_land.Cantidad) Cantidad
from
- -- Entradas que llegan a vnh
+
Compres c_land
JOIN
Entradas e_land ON c_land.Id_Entrada = e_land.Id_Entrada AND c_land.Id_Article = intArticle
@@ -39431,21 +38340,21 @@ SET intEntrada = IF(intEntrada = 0, i_entrada_PCA + i_entrada_FV, intEntrada);
JOIN
Cubos cu ON cu.Id_Cubo = c_land.Id_Cubo
WHERE
- -- Entradas que llegan a vnh
+
(t_land.warehouse_id = 7 AND t_land.landing = CURDATE())
) land
- LEFT JOIN -- Entradas que salen de vnh
+ LEFT JOIN
(SELECT SUM(c_ship.Etiquetas) Etiquetas,c_ship.Packing,SUM(c_ship.Cantidad) Cantidad
FROM Compres c_ship
LEFT JOIN Entradas e_ship ON c_ship.Id_Entrada = e_ship.Id_Entrada AND c_ship.Id_Article = intArticle
LEFT JOIN travel t_ship ON t_ship.id = e_ship.travel_id
WHERE t_ship.warehouse_id_out = 7 AND t_ship.shipment = CURDATE()
- -- Entrada destino
+
) ship ON TRUE
JOIN Entradas e2 ON e2.Id_Entrada = intEntrada
JOIN travel t ON t.id = e2.travel_id
JOIN Agencias a ON t.agency_id = a.Id_Agencia
- -- Ventas ese dia en VNH
+
LEFT JOIN
(SELECT sum(Cantidad) as Ventas
FROM Movimientos m
@@ -39475,74 +38384,14 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `traslado_label_2`(IN i_compra INTEGER,IN i_entrada_FV INTEGER, IN i_entrada_PCA INTEGER, i_cantidad INTEGER)
BEGIN
--- PAK 2015-09-15
+
DECLARE idARTICLE INT;
SELECT Id_Article INTO idARTICLE FROM Compres WHERE Id_Compra = i_compra;
call traslado_label_3(idARTICLE,i_entrada_FV,i_entrada_PCA);
-/*
-DECLARE i_entrada_shipment INTEGER;
-DECLARE i_entrada_landing INTEGER;
-DECLARE i_FV INTEGER;
-SELECT c.Id_Entrada, FV INTO i_entrada_shipment, i_FV
-FROM Compres c
-JOIN Articles a ON a.Id_Article = c.Id_Article
-JOIN Tipos tp ON tp.tipo_id = a.tipo_id
-WHERE Id_Compra = i_compra;
-
-SET i_entrada_landing = IF(i_FV, i_entrada_FV,i_entrada_PCA);
-
-SET i_entrada_landing = IF(i_entrada_landing = 0, i_entrada_PCA + i_entrada_FV, i_entrada_landing);
-
-IF i_entrada_landing > 0 THEN
-
- CALL buy_tarifas_table(i_entrada_landing);
-
- INSERT INTO Compres (Id_Article, Etiquetas, Cantidad, Id_Entrada, Id_Cubo, Packing,grouping,caja,
- Costefijo, Portefijo, Embalajefijo, Comisionfija, Productor, S3, S4, S2, novincular,k01,k02,k03,k04,buy_edi_id)
- SELECT
- Id_Article,
- i_cantidad / Packing,
- i_cantidad,
- i_entrada_landing,
- Id_Cubo,
- Packing,
- c.grouping,
- c.caja,
- @cost := ROUND(IFNULL(Costefijo, 0) + IFNULL(Comisionfija, 0) + IFNULL(Portefijo, 0),
- 3) Costefij,
- @porte := ROUND((@cm3:= cm3_2(Id_Cubo, Id_Article)) * a.m3 / 1000000 / Packing,
- 3) Porte,
- EmbalajeFijo AS Embalaje,
- @comision := ROUND(Costefijo * e2.comision / 100, 3) Comision,
- Productor,
- S3,
- S4,
- S2,
- novincular,c.k01,c.k02,c.k03,c.k04,c.buy_edi_id
- FROM
- Compres c
- JOIN
- Entradas e USING (Id_Entrada)
- JOIN
- Cubos cu USING (Id_Cubo)
- JOIN
- Entradas e2 ON e2.Id_Entrada = i_entrada_landing
- JOIN
- travel t ON t.id = e2.travel_id
- JOIN
- Agencias a ON t.agency_id = a.Id_Agencia
- WHERE
- Id_Compra = i_compra and i_cantidad;
-
-
-CALL buy_tarifas(LAST_INSERT_ID());
-
-END IF;
-*/
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -39561,7 +38410,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `traslado_label_3`(IN intArticle INTEGER,IN i_entrada_FV INTEGER, IN i_entrada_PCA INTEGER)
BEGIN
--- DEPRECATED usar traslado_label
+
DECLARE intEntrada INTEGER;
DECLARE i_FV INTEGER;
@@ -39601,7 +38450,7 @@ SET intEntrada = IF(intEntrada = 0, i_entrada_PCA + i_entrada_FV, intEntrada);
select c_land.Id_Cubo,c_land.Packing,c_land.grouping,c_land.Costefijo,c_land.Comisionfija,c_land.Portefijo,c_land.caja,SUM(c_land.Etiquetas) Etiquetas,c_land.EmbalajeFijo,
c_land.novincular,c_land.buy_edi_id,c_land.Id_Article,SUM(c_land.Cantidad) Cantidad
from
- -- Entradas que llegan a vnh
+
Compres c_land
JOIN
Entradas e_land ON c_land.Id_Entrada = e_land.Id_Entrada AND c_land.Id_Article = intArticle
@@ -39610,21 +38459,21 @@ SET intEntrada = IF(intEntrada = 0, i_entrada_PCA + i_entrada_FV, intEntrada);
JOIN
Cubos cu ON cu.Id_Cubo = c_land.Id_Cubo
WHERE
- -- Entradas que llegan a vnh
+
(t_land.warehouse_id = 7 AND t_land.landing = CURDATE())
) land
- LEFT JOIN -- Entradas que salen de vnh
+ LEFT JOIN
(SELECT SUM(c_ship.Etiquetas) Etiquetas,c_ship.Packing,SUM(c_ship.Cantidad) Cantidad
FROM Compres c_ship
LEFT JOIN Entradas e_ship ON c_ship.Id_Entrada = e_ship.Id_Entrada AND c_ship.Id_Article = intArticle
LEFT JOIN travel t_ship ON t_ship.id = e_ship.travel_id
WHERE t_ship.warehouse_id_out = 7 AND t_ship.shipment = CURDATE()
- -- Entrada destino
+
) ship ON TRUE
JOIN Entradas e2 ON e2.Id_Entrada = intEntrada
JOIN travel t ON t.id = e2.travel_id
JOIN Agencias a ON t.agency_id = a.Id_Agencia
- -- Ventas ese dia en VNH
+
LEFT JOIN
(SELECT sum(Cantidad) as Ventas
FROM Movimientos m
@@ -39822,15 +38671,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `travel_tree`(vDate DATE, vAddress INT, vAgency INT)
BEGIN
-/**
- * Devuelve la lista de almacenes disponibles y la fecha de
- * envío desde cada uno.
- *
- * @param vDate Fecha de recepción de mercancía
- * @param vAddress Id consignatario, %NULL para recogida
- * @param vAgency Id de subagencia
- * @table travel_tree Lista de almacenes disponibles
- */
+
DECLARE vDone BOOL;
DECLARE vWh SMALLINT;
@@ -39850,7 +38691,7 @@ BEGIN
)
ENGINE = MEMORY;
- -- Establecemos los almacenes y las fechas que van a entrar
+
OPEN vCur;
@@ -39905,14 +38746,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `travel_tree_list`(vAddress INT, vDate 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 vDate Fecha de recogida
- * @table agency_list Listado de agencias disponibles
- */
+
DECLARE vAgency INT;
DECLARE vDone BOOL DEFAULT FALSE;
@@ -39977,14 +38811,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `travel_tree_shipment`(v_date DATE, v_consigna INT, v_agency INT, v_warehouse INT)
BEGIN
-/**
- * Devuelve una tabla temporal con el dia de recepcion para v_date.
- *
- * @param v_date Fecha de preparacion de mercancia
- * @param v_consigna Id de consignatario, %NULL para recogida
- * @param v_agency Id agencia
- * @table travel_tree_shipment Datos de recepción
- */
+
DROP TEMPORARY TABLE IF EXISTS travel_tree_shipment;
CREATE TEMPORARY TABLE travel_tree_shipment
ENGINE = MEMORY
@@ -40095,9 +38922,9 @@ WHILE NOT done DO
SELECT LAST_INSERT_ID() INTO myNuevaEntrada;
INSERT INTO Compres(Id_Entrada, Id_Article, Cantidad, Costefijo, Portefijo, Embalajefijo, Novincular, Comisionfija, Etiquetas, Packing
- ,grouping, caja, /*container_id, */ Nicho, Id_Cubo, Tarifa1,Tarifa2,Tarifa3, PVP, Productor)
+ ,grouping, caja, Nicho, Id_Cubo, Tarifa1,Tarifa2,Tarifa3, PVP, Productor)
SELECT myNuevaEntrada, Id_Article, Cantidad, Costefijo, Portefijo, Embalajefijo, Novincular, Comisionfija, Etiquetas, Packing
- ,grouping, caja,/* container_id, */ Nicho, Id_Cubo, Tarifa1,Tarifa2,Tarifa3, PVP, Productor
+ ,grouping, caja, Nicho, Id_Cubo, Tarifa1,Tarifa2,Tarifa3, PVP, Productor
FROM Compres
WHERE Id_Entrada = myEntrada;
@@ -40192,13 +39019,8 @@ SELECT Id_Article article_id,SUM(Cantidad) amount FROM (
UNION ALL
- -- JGF Error cuando se pedia para una fecha futura 30/06/14
- /*SELECT Id_Article,-Cantidad
- FROM Compres c
- JOIN Entradas e USING(Id_Entrada)
- JOIN travel t ON t.id = e.travel_id
- WHERE shipment BETWEEN date_inv AND timestampadd(DAY,-1,d_fecha)
- AND warehouse_id_out = i_wh AND NOT Redada*/
+
+
SELECT Id_Article,-Cantidad
FROM Compres c
JOIN Entradas e USING(Id_Entrada)
@@ -40207,13 +39029,9 @@ SELECT Id_Article article_id,SUM(Cantidad) amount FROM (
AND warehouse_id_out = i_wh AND NOT Redada AND delivered
UNION ALL
- -- JGF Error cuando se pedia para una fecha futura 30/06/14
+
- /*SELECT Id_Article, -Cantidad
- FROM Movimientos m
- JOIN Tickets t USING(Id_Ticket)
- WHERE Fecha BETWEEN date_inv AND timestampadd(DAY,-1,d_fecha)
- AND warehouse_id = i_wh */
+
SELECT Id_Article, -Cantidad
FROM Movimientos m
JOIN Tickets t USING(Id_Ticket)
@@ -40223,10 +39041,9 @@ SELECT Id_Article article_id,SUM(Cantidad) amount FROM (
) t GROUP BY article_id;
-/*
-SELECT * from stock_actual;*/
--- TEMPORARY
+
+
CALL hedera.sql_query (sql_printf('
CREATE TEMPORARY TABLE IF NOT EXISTS vn2008.tmp_ubicator_stock AS
SELECT A.Id_Article,A.Article, T.Id_Cubo,IF(Z > 0,Z,0) as z,x,y,
@@ -40286,15 +39103,15 @@ DECLARE intContador INT DEFAULT 1;
WHERE W=int_X and D=int_Y and Id_Estanterias=intId_Estanterias and Id_Baldas=intId_Baldas and NumEstanterias=contId_Estanterias
ORDER BY H DESC LIMIT 1;
- WHILE (int_Z*intContador0) DO
SET posZ=posZ+int_Z;
- -- INSERT INTO Ubicator_Cajas
- -- (Id_Estanterias,NumEtiquetas,W ,D,H ,Id_Cubo ,Id_Article,POSX,POSY,POSZ,Id_Article_aux ,Id_Baldas,modelo,Article,Medida)
- -- VALUES (intId_Estanterias ,1,posX,posY,posZ,strId_Cubo ,intId_Article,0,0,0,0,intId_Baldas,strmodelo,'',int_Z);
+
+
+
INSERT INTO Ubicator_Cajas (Id_Estanterias,Id_Baldas,modelo,W ,D,H ,Id_Cubo,X,Y,Z,Medida,Id_Article,Article,numEstanterias)
VALUES (intId_Estanterias,intId_Baldas,strmodelo,posX,posY,posZ,strId_Cubo,x_cubo,y_cubo,int_Z,null,intId_Article,'',contId_Estanterias);
SET intnumcubosocup=intnumcubosocup+1;
@@ -40317,8 +39134,8 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `ubicator_ordenacion`(date DATE,boolORDALFA TINYINT(1), intWAREHOUSE INT,strFILTRO NVARCHAR(255), boolESAPILABLE TINYINT(1),boolESABIERTO TINYINT(1),intCmNichoExtra SMALLINT,inEstanteria SMALLINT,strOrdenacion varchar(255))
BEGIN
--- Inicializo variables
--- boolESABIERTO --> permite apilar las cajas de diferentes articulos (cerrada) para aprovechar el espacio.
+
+
DECLARE intPOSX,intPOSY,intPOSZ,intSUMAH,intCMNICHO_EXTRA INT DEFAULT 0;
DECLARE intId_Estanterias,intW,intD,intId_Baldas,intH,intEtiquetas,
intX,intY,intZ,ReturnX,ReturnY,ReturnZ,Cantidad,intId_Baldas_aux INT DEFAULT 0;
@@ -40331,34 +39148,31 @@ DECLARE strArticle VARCHAR(50);
DECLARE boolCabeCaja,boolPasarZ,boolPasarX,boolNoNextRecord,fin BOOLEAN DEFAULT FALSE;
DECLARE intMedida,intX_ant,intY_ant,IntZ_ant INT(10) DEFAULT 0;
--- ejemplo: call ubicator_ordenacion(CURDATE(),false,1,'tipo_id = 2',TRUE,FALSE,2,1)
--- Declaro el cursor para leer las estanterias y las baldas ordenadas por las baldas. (La primera es la de arriba).
+
+
DECLARE cursor_estanterias CURSOR FOR SELECT Id_Estanterias,w,d,modelo,Id_Baldas,h FROM Estanterias
INNER JOIN Baldas USING (Id_Estanterias) WHERE Id_Estanterias=inEstanteria ORDER BY Id_Estanterias,Id_Baldas;
--- Declaro el cursor para leer el recorset de los cubos a colocar en las estanterias obteniendo las variables X,Y,Z del cubo.
-DECLARE cursor_ubicator CURSOR FOR SELECT Id_Cubo,Etiquetas,Id_Article,X,Y,Z,Article,Medida FROM ubicator_stock;
- -- Creo la tabla temporal donde devuelvo la ordenación de las cajas.
-DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; -- handler para el cursor de las estanterias y baldas
+DECLARE cursor_ubicator CURSOR FOR SELECT Id_Cubo,Etiquetas,Id_Article,X,Y,Z,Article,Medida FROM ubicator_stock;
+
+
+DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
DROP TEMPORARY TABLE IF EXISTS Ubicator_Cajas;
-/*
- CREATE TEMPORARY TABLE IF NOT EXISTS Ubicator_Cajas (Id_Estanterias INT,Id_Baldas SMALLINT,modelo varchar(255),
- W SMALLINT,D SMALLINT,H SMALLINT,Id_Cubo VARCHAR(10),X SMALLINT,Y SMALLINT,Z SMALLINT,Medida SMALLINT,Id_Article INT(11),Article varchar(50),NumEstanterias SMALLINT);
-*/
+
CREATE TEMPORARY TABLE IF NOT EXISTS Ubicator_Cajas(Id_Estanterias INT,Id_Baldas SMALLINT,modelo varchar(255),
W SMALLINT,D SMALLINT,H SMALLINT,Id_Cubo VARCHAR(10),X SMALLINT,Y SMALLINT,Z SMALLINT,Medida SMALLINT,
Id_Article INT(11),Article varchar(50),NumEstanterias SMALLINT,NumEtiquetas INT,POSX INT (11),POSY INT(11),
POSZ INT(11),Id_Article_aux int(11));
--- Creo la tabla temporal donde voy a insertar las cajas que no caben en las estanterias.
+
DROP TEMPORARY TABLE IF EXISTS Ubicator_CajasNoCaben;
CREATE TEMPORARY TABLE IF NOT EXISTS Ubicator_CajasNoCaben (Id_Cubo VARCHAR(10),Id_Estanteria SMALLINT);
-CALL ubicator (intWAREHOUSE,date,strFILTRO); -- Ejecuto el procedimiento de stock para recorrer los articulos con las cajas.
+CALL ubicator (intWAREHOUSE,date,strFILTRO);
DROP TEMPORARY TABLE IF EXISTS ubicator_stock;
@@ -40369,22 +39183,22 @@ PREPARE stmt1 FROM @SQL;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
- -- IF (boolORDALFA) THEN
- -- CREATE TEMPORARY TABLE IF NOT EXISTS ubicator_stock SELECT Id_Cubo,Etiquetas,Id_Article,X,Y,IF(Z=0,Medida,Z) Z,Article,Medida FROM tmp_ubicator_stock
- -- ORDER BY Article,Medida;
- -- ELSE
- -- CREATE TEMPORARY TABLE IF NOT EXISTS ubicator_stock SELECT Id_Cubo,Etiquetas,Id_Article,X,Y,IF(Z=0,Medida,Z) Z,Article,Medida FROM tmp_ubicator_stock
- -- ORDER BY Id_Article;
- -- END IF;
--- Open Recordsets
+
+
+
+
+
+
+
+
OPEN cursor_estanterias;
OPEN cursor_ubicator;
REPEAT
FETCH cursor_estanterias INTO intId_Estanterias,intW,intD,strmodelo,intId_Baldas,intH;
- IF (done) THEN -- Si llega a la ultima balda, empieza de nuevo.
+ IF (done) THEN
CLOSE cursor_estanterias;
SET done=FALSE;
OPEN cursor_estanterias;
@@ -40392,7 +39206,7 @@ REPEAT
FETCH cursor_estanterias INTO intId_Estanterias,intW,intD,strmodelo,intId_Baldas,intH;
END IF;
- -- Obtengo la altura absoluta de la balda.
+
SELECT CASE WHEN (SUM(H)>=0) THEN SUM(H) ELSE 0 END As suma INTO intSUMAH
FROM Baldas WHERE Id_Estanterias=intId_Estanterias and Baldas.Id_Baldas>intId_Baldas;
@@ -40410,53 +39224,53 @@ REPEAT
SELECT Id_Cubo,Etiquetas,Id_Article,X,Y,Z,Article,Medida FROM ubicator_stock ORDER BY Id_Article;
SET Cantidad=0;
END IF;
- -- SET Medida=intZ;
- -- 1. Compruebo que cabe la caja en la estanteria
+
+
SELECT ubicator_cabecaja(intX,intY,intZ,intW,intD,intH) INTO boolCabeCaja;
- IF (NOT boolCabeCaja) THEN -- Compruebo si la caja cabe en la estanteria sino la coloco en una tabla temporal.
+ IF (NOT boolCabeCaja) THEN
INSERT INTO Ubicator_CajasNoCaben (Id_Cubo,Id_Estanteria) VALUES (strId_Cubo,intId_Estanterias);
SET Id_Article_aux=intId_Article,boolNoNextRecord=FALSE;
ITERATE ITERACION;
END IF;
SET boolPasarX=FALSE,boolPasarZ=FALSE;
- -- Inicializo el contador
+
REPEAT
- SET Cantidad=Cantidad+1; -- Incremento el contador en 1
+ SET Cantidad=Cantidad+1;
IF (intId_Baldas_aux<>intId_Baldas) THEN
SET intId_Baldas_aux=intId_Baldas;
SET intPOSX=0,intPOSY=0,intPOSZ=0;
END IF;
- IF (boolESAPILABLE AND intPOSZ>0 AND intZ>0) THEN -- Es Apilable
- IF (boolESABIERTO) THEN -- abierto
- -- SET intPOSX=intPOSX+intCmNichoExtra,intPOSZ=0,intPOSY=0,Id_Article_aux=intId_Article;
- IF (intId_Article=Id_Article_aux) THEN -- mismo articulo
+ IF (boolESAPILABLE AND intPOSZ>0 AND intZ>0) THEN
+ IF (boolESABIERTO) THEN
+
+ IF (intId_Article=Id_Article_aux) THEN
SET boolPasarX=FALSE,boolPasarZ=TRUE;
SET intPOSX=intPOSX-intX;
- ELSE -- distinto articulo
+ ELSE
SET boolPasarX=TRUE,boolPasarZ=TRUE;
SET intPOSY=intY,intPOSZ=intZ;
SET Id_Article_aux=intId_Article;
SET intPOSX=intPOSX+intCmNichoExtra;
END IF;
- ELSE -- cerrado
- IF ((intZ=intZ_ant) AND (intY=intY_ant) AND (intX=intX_ant)) THEN -- tienen que ser del mismo tamaño
+ ELSE
+ IF ((intZ=intZ_ant) AND (intY=intY_ant) AND (intX=intX_ant)) THEN
SET intPOSX=intPOSX-intX;
SET boolPasarX=FALSE,boolPasarZ=FALSE;
ELSE
- CALL ubicator_calcularhuecosvacios (alturabalda,ReturnX,ReturnY,intZ_aux,intId_Estanterias,intId_Baldas,contId_Estanterias); -- Calculo las cajas vacias
+ CALL ubicator_calcularhuecosvacios (alturabalda,ReturnX,ReturnY,intZ_aux,intId_Estanterias,intId_Baldas,contId_Estanterias);
SET intPOSY=intY,intPOSZ=intZ;
SET boolPasarX=TRUE,boolPasarZ=TRUE;
SET intPOSX=intPOSX+intCmNichoExtra;
- END IF; -- article
+ END IF;
END IF;
- ELSE -- No apilable or posz<>0
+ ELSE
IF (NOT boolESAPILABLE AND boolESABIERTO) THEN
SET boolPasarX=FALSE,boolPasarZ=FALSE;
- -- @@@ cambio abierto no apilable
- SET intPOSZ=0; -- no se puede subir en altura
- IF (intId_Article<>Id_Article_aux and Id_Article_aux<>0) THEN -- cambio @@@vicente, añado id_Article_aux<>0
+
+ SET intPOSZ=0;
+ IF (intId_Article<>Id_Article_aux and Id_Article_aux<>0) THEN
SET intPOSY=0;
END IF;
ELSE
@@ -40464,30 +39278,30 @@ REPEAT
SET intPOSY=intY,intPOSZ=intZ;
END IF;
- -- @@@@ cambio
- IF (intPOSX>0) THEN -- SI ES EL PRIMER ELEMENTO (X=0) NO LE INCREMENTE LOS CM EXTRA DEL NICHO si la profundidad es menor no lo incrementa
+
+ IF (intPOSX>0) THEN
SET intPOSX=intPOSX+intCmNichoExtra;
END IF;
- END IF; -- apilable
+ END IF;
Condicional:loop
IF (NOT boolPasarX) THEN
IF (NOT boolPasarZ) THEN
- IF (intD-intPOSY>intY) THEN -- cabe de profundo
+ IF (intD-intPOSY>intY) THEN
SET intPOSY=intPOSY+intY;
- -- @@@@ULTIMO CAMBIO
+
IF (intPOSX>0) and (intId_Article=Id_Article_aux) THEN
IF (intPOSX-intX-intCmNichoExtra<0) THEN
SET intPOSX=0,boolNoNextRecord=TRUE,Cantidad=Cantidad-1;
LEAVE ITERACION;
END IF;
- SET intPOSX=intPOSX-intX-intCmNichoExtra; -- cambio @@@vicente quito descomentando
+ SET intPOSX=intPOSX-intX-intCmNichoExtra;
END IF;
- -- @@@@ fin ultimo cambio
+
ELSE
SET intPOSY=intY;
END IF;
- END IF; -- boolpasarz (depth)
+ END IF;
IF (intH-intPOSZ>intZ) THEN
SET intPOSZ=intPOSZ+intZ;
@@ -40500,7 +39314,7 @@ REPEAT
SET intPOSY=intY;
SET intPOSX=intPOSX+intX+intCmNichoExtra;
END IF;
- END IF; -- boolpasarx
+ END IF;
IF (intW-intPOSX>intX) THEN
SET intPOSX=intPOSX+intX;
@@ -40511,16 +39325,13 @@ REPEAT
LEAVE Condicional;
END loop Condicional;
- SET ReturnX=intPOSX-intX; -- Anchura absoluta x del artículo
- SET ReturnZ=intSUMAH+intPOSZ-intZ; -- Altura absoluta del cubo
- SET ReturnY=intPOSY-intY; -- Profundidad absoluta del artículo
+ SET ReturnX=intPOSX-intX;
+ SET ReturnZ=intSUMAH+intPOSZ-intZ;
+ SET ReturnY=intPOSY-intY;
SET boolPasarZ=FALSE,boolPasarX=FALSE;
- /*
- INSERT INTO Ubicator_Cajas (Id_Estanterias,Id_Baldas,modelo,W ,D,H ,Id_Cubo,X,Y,Z,Medida,Id_Article,Article,NumEstanterias)
- VALUES (intId_Estanterias,intId_Baldas,strmodelo,ReturnX ,ReturnY,ReturnZ ,strId_Cubo,intX,intY,intZ,intMedida,intId_Article,strArticle,contId_Estanterias);
- */
+
INSERT INTO Ubicator_Cajas (Id_Estanterias,Id_Baldas,modelo,W ,D,H ,Id_Cubo,X,Y,Z,Medida,Id_Article,Article,NumEstanterias,
NumEtiquetas,POSX,POSY,POSZ,Id_Article_aux)
@@ -40528,7 +39339,7 @@ REPEAT
intEtiquetas,intPOSX,intPOSY,intPOSZ,Id_Article_aux);
SET Id_Article_aux=intId_Article,intZ_aux=intZ,boolNoNextRecord=FALSE;
- -- Cambio
+
SET intZ_ant=intZ,intY_ant=intY,intX_ant=intX;
UNTIL Cantidad=intEtiquetas END REPEAT;
END WHILE ITERACION;
@@ -40540,9 +39351,9 @@ UNTIL fin END REPEAT;
CLOSE cursor_ubicator;
CLOSE cursor_estanterias;
--- select * from Ubicator_Cajas;
--- select * from ubicator_stock;
--- select * from Ubicator_CajasNoCaben;
+
+
+
END ;;
@@ -40563,8 +39374,8 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `ubicator_ordenacion_distrib`(date DATE,boolORDALFA TINYINT(1), intWAREHOUSE INT,strFILTRO NVARCHAR(255), boolESAPILABLE TINYINT(1),boolESABIERTO TINYINT(1),intCmNichoExtra SMALLINT,inEstant_distrib SMALLINT)
BEGIN
--- Inicializo variables
--- boolESABIERTO --> permite apilar las cajas de diferentes articulos (cerrada) para aprovechar el espacio.
+
+
DECLARE intPOSX,intPOSY,intPOSZ,intSUMAH,intCMNICHO_EXTRA INT DEFAULT 0;
DECLARE intId_Estanterias,intW,intD,intId_Baldas,intH,intEtiquetas,
intX,intY,intZ,ReturnX,ReturnY,ReturnZ,Cantidad,intId_Baldas_aux INT DEFAULT 0;
@@ -40577,39 +39388,34 @@ DECLARE strArticle VARCHAR(50);
DECLARE boolCabeCaja,boolPasarZ,boolPasarX,boolNoNextRecord,fin BOOLEAN DEFAULT FALSE;
DECLARE intMedida,intX_ant,intY_ant,IntZ_ant ,intposinicial,intposfinal,auxintId_Estanterias,auxintposinicial,auxintposfinal,intnumdistrib,nestanterias INT(11) DEFAULT 0;
--- ejemplo: call ubicator_ordenacion(CURDATE(),false,1,'tipo_id = 2',TRUE,FALSE,2,1)
--- Declaro el cursor para leer las estanterias y las baldas ordenadas por las baldas. (La primera es la de arriba).
+
+
DECLARE cursor_estanterias CURSOR FOR SELECT Id_Estanterias,w,d,modelo,Id_Baldas,h,posinicial,posfinal FROM Estanterias
INNER JOIN Baldas USING (Id_Estanterias)
INNER JOIN Estanterias_distri using (Id_Estanterias)
WHERE IdEstanterias_distri=inEstant_distrib
- -- AND Id_Estanterias>nestanterias
+
AND posinicial>auxintposinicial
ORDER BY posinicial;
--- Declaro el cursor para leer el recorset de los cubos a colocar en las estanterias obteniendo las variables X,Y,Z del cubo.
-DECLARE cursor_ubicator CURSOR FOR SELECT Id_Cubo,Etiquetas,Id_Article,X,Y,Z,Article,Medida FROM ubicator_stock;
- -- Creo la tabla temporal donde devuelvo la ordenación de las cajas.
-DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; -- handler para el cursor de las estanterias y baldas
+DECLARE cursor_ubicator CURSOR FOR SELECT Id_Cubo,Etiquetas,Id_Article,X,Y,Z,Article,Medida FROM ubicator_stock;
+
+
+DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
DROP TEMPORARY TABLE IF EXISTS Ubicator_Cajas;
CREATE TEMPORARY TABLE IF NOT EXISTS Ubicator_Cajas (Id_Estanterias INT,Id_Baldas SMALLINT,modelo varchar(255),
W SMALLINT,D SMALLINT,H SMALLINT,Id_Cubo VARCHAR(10),X SMALLINT,Y SMALLINT,Z SMALLINT,Medida SMALLINT,Id_Article INT(11),Article varchar(50),NumEstanterias SMALLINT);
- /*
- CREATE TEMPORARY TABLE IF NOT EXISTS Ubicator_Cajas(Id_Estanterias INT,Id_Baldas SMALLINT,modelo varchar(255),
- W SMALLINT,D SMALLINT,H SMALLINT,Id_Cubo VARCHAR(10),X SMALLINT,Y SMALLINT,Z SMALLINT,Medida SMALLINT,
- Id_Article INT(11),Article varchar(50),NumEstanterias SMALLINT,NumEtiquetas INT,POSX INT (11),POSY INT(11),
- POSZ INT(11),Id_Article_aux int(11));
- */
--- Creo la tabla temporal donde voy a insertar las cajas que no caben en las estanterias.
+
+
DROP TEMPORARY TABLE IF EXISTS Ubicator_CajasNoCaben;
CREATE TEMPORARY TABLE IF NOT EXISTS Ubicator_CajasNoCaben (Id_Cubo VARCHAR(10),Id_Estanteria SMALLINT);
-CALL ubicator (intWAREHOUSE,date,strFILTRO); -- Ejecuto el procedimiento de stock para recorrer los articulos con las cajas.
+CALL ubicator (intWAREHOUSE,date,strFILTRO);
DROP TEMPORARY TABLE IF EXISTS ubicator_stock;
IF (boolORDALFA) THEN
@@ -40620,7 +39426,7 @@ ELSE
ORDER BY Id_Article;
END IF;
--- Open Recordsets
+
OPEN cursor_estanterias;
OPEN cursor_ubicator;
SET contId_Estanterias=0;
@@ -40637,7 +39443,7 @@ REPEAT
SELECT DISTINCT posinicial-1 INTO auxintposinicial
FROM Estanterias_distri
WHERE Id_Estanterias=auxintId_Estanterias;
- -- SET nestanterias=auxintId_Estanterias-1;
+
CLOSE cursor_estanterias;
OPEN cursor_estanterias;
@@ -40649,7 +39455,7 @@ REPEAT
END IF;
SET intnumdistrib=intnumdistrib+1;
- IF (done) THEN -- Si llega a la ultima balda, empieza de nuevo.
+ IF (done) THEN
IF (intnumdistrib=0) THEN SUM(H) ELSE 0 END As suma INTO intSUMAH
FROM Baldas WHERE Id_Estanterias=intId_Estanterias and Baldas.Id_Baldas>intId_Baldas;
@@ -40682,71 +39488,71 @@ REPEAT
SELECT Id_Cubo,Etiquetas,Id_Article,X,Y,Z,Article,Medida FROM ubicator_stock ORDER BY Id_Article;
SET Cantidad=0;
END IF;
- -- SET Medida=intZ;
- -- 1. Compruebo que cabe la caja en la estanteria
+
+
SELECT ubicator_cabecaja(intX,intY,intZ,intW,intD,intH) INTO boolCabeCaja;
- IF (NOT boolCabeCaja) THEN -- Compruebo si la caja cabe en la estanteria sino la coloco en una tabla temporal.
+ IF (NOT boolCabeCaja) THEN
INSERT INTO Ubicator_CajasNoCaben (Id_Cubo,Id_Estanteria) VALUES (strId_Cubo,intId_Estanterias);
SET Id_Article_aux=intId_Article,boolNoNextRecord=FALSE;
ITERATE ITERACION;
END IF;
SET boolPasarX=FALSE,boolPasarZ=FALSE;
- -- Inicializo el contador
+
REPEAT
- SET Cantidad=Cantidad+1; -- Incremento el contador en 1
+ SET Cantidad=Cantidad+1;
IF (intId_Baldas_aux<>intId_Baldas) THEN
SET intId_Baldas_aux=intId_Baldas;
SET intPOSX=0,intPOSY=0,intPOSZ=0;
END IF;
- IF (boolESAPILABLE AND intPOSZ>0 AND intZ>0) THEN -- Es Apilable
- IF (boolESABIERTO) THEN -- abierto
- -- SET intPOSX=intPOSX+intCmNichoExtra,intPOSZ=0,intPOSY=0,Id_Article_aux=intId_Article;
- IF (intId_Article=Id_Article_aux) THEN -- mismo articulo
+ IF (boolESAPILABLE AND intPOSZ>0 AND intZ>0) THEN
+ IF (boolESABIERTO) THEN
+
+ IF (intId_Article=Id_Article_aux) THEN
SET boolPasarX=FALSE,boolPasarZ=TRUE;
SET intPOSX=intPOSX-intX;
- ELSE -- distinto articulo
+ ELSE
SET boolPasarX=TRUE,boolPasarZ=TRUE;
SET intPOSY=intY,intPOSZ=intZ;
SET Id_Article_aux=intId_Article;
SET intPOSX=intPOSX+intCmNichoExtra;
END IF;
- ELSE -- cerrado
- IF ((intZ=intZ_ant) AND (intY=intY_ant) AND (intX=intX_ant)) THEN -- tienen que ser del mismo tamaño
+ ELSE
+ IF ((intZ=intZ_ant) AND (intY=intY_ant) AND (intX=intX_ant)) THEN
SET intPOSX=intPOSX-intX;
SET boolPasarX=FALSE,boolPasarZ=FALSE;
ELSE
- CALL ubicator_calcularhuecosvacios (alturabalda,ReturnX,ReturnY,intZ_aux,intId_Estanterias,intId_Baldas,contId_Estanterias); -- Calculo las cajas vacias
+ CALL ubicator_calcularhuecosvacios (alturabalda,ReturnX,ReturnY,intZ_aux,intId_Estanterias,intId_Baldas,contId_Estanterias);
SET intPOSY=intY,intPOSZ=intZ;
SET boolPasarX=TRUE,boolPasarZ=TRUE;
SET intPOSX=intPOSX+intCmNichoExtra;
- END IF; -- article
+ END IF;
END IF;
- ELSE -- No apilable or posz<>0
+ ELSE
IF (NOT boolESAPILABLE AND boolESABIERTO) THEN
SET boolPasarX=FALSE,boolPasarZ=FALSE;
- -- @@@ cambio abierto no apilable
- SET intPOSZ=0; -- no se puede subir en altura
+
+ SET intPOSZ=0;
ELSE
SET boolPasarX=TRUE,boolPasarZ=TRUE;
SET intPOSY=intY,intPOSZ=intZ;
END IF;
- IF (intPOSX>0) THEN -- SI ES EL PRIMER ELEMENTO (X=0) NO LE INCREMENTE LOS CM EXTRA DEL NICHO
+ IF (intPOSX>0) THEN
SET intPOSX=intPOSX+intCmNichoExtra;
END IF;
- END IF; -- apilable
+ END IF;
Condicional:loop
IF (NOT boolPasarX) THEN
IF (NOT boolPasarZ) THEN
- IF (intD-intPOSY>intY) THEN -- cabe de profundo
+ IF (intD-intPOSY>intY) THEN
SET intPOSY=intPOSY+intY;
ELSE
SET intPOSY=intY;
END IF;
- END IF; -- boolpasarz (depth)
+ END IF;
IF (intH-intPOSZ>intZ) THEN
SET intPOSZ=intPOSZ+intZ;
@@ -40758,7 +39564,7 @@ REPEAT
SET intPOSZ=intZ;
SET intPOSY=intY, intPOSX=intPOSX+intX+intCmNichoExtra;
END IF;
- END IF; -- boolpasarx
+ END IF;
IF (intW-intPOSX>intX) THEN
SET intPOSX=intPOSX+intX;
@@ -40769,22 +39575,17 @@ REPEAT
LEAVE Condicional;
END loop Condicional;
- SET ReturnX=intPOSX-intX; -- Anchura absoluta x del artículo
- SET ReturnZ=intSUMAH+intPOSZ-intZ; -- Altura absoluta del cubo
- SET ReturnY=intPOSY-intY; -- Profundidad absoluta del artículo
+ SET ReturnX=intPOSX-intX;
+ SET ReturnZ=intSUMAH+intPOSZ-intZ;
+ SET ReturnY=intPOSY-intY;
SET boolPasarZ=FALSE,boolPasarX=FALSE;
INSERT INTO Ubicator_Cajas (Id_Estanterias,Id_Baldas,modelo,W ,D,H ,Id_Cubo,X,Y,Z,Medida,Id_Article,Article,NumEstanterias)
VALUES (intId_Estanterias,intId_Baldas,strmodelo,ReturnX ,ReturnY,ReturnZ ,strId_Cubo,intX,intY,intZ,intMedida,intId_Article,strArticle,contId_Estanterias);
- /*
- INSERT INTO Ubicator_Cajas (Id_Estanterias,Id_Baldas,modelo,W ,D,H ,Id_Cubo,X,Y,Z,Medida,Id_Article,Article,NumEstanterias,
- NumEtiquetas,POSX,POSY,POSZ,Id_Article_aux)
- VALUES (intId_Estanterias,intId_Baldas,strmodelo,ReturnX ,ReturnY,ReturnZ ,strId_Cubo,intX,intY,intZ,intMedida,intId_Article,strArticle,contId_Estanterias,
- intEtiquetas,intPOSX,intPOSY,intPOSZ,Id_Article_aux);
- */
+
SET Id_Article_aux=intId_Article,intZ_aux=intZ,boolNoNextRecord=FALSE;
- -- Cambio
+
SET intZ_ant=intZ,intY_ant=intY,intX_ant=intX;
UNTIL Cantidad=intEtiquetas END REPEAT;
END WHILE ITERACION;
@@ -40797,9 +39598,9 @@ UNTIL fin END REPEAT;
CLOSE cursor_ubicator;
CLOSE cursor_estanterias;
--- select * from Ubicator_Cajas;
--- select * from ubicator_stock;
--- select * from Ubicator_CajasNoCaben;
+
+
+
END ;;
@@ -40863,10 +39664,9 @@ SELECT Id_Article article_id,SUM(Cantidad) amount FROM (
) t GROUP BY article_id;
-/*
-SELECT * from stock_actual;*/
--- TEMPORARY
+
+
CALL hedera.sql_query (sql_printf('
CREATE TEMPORARY TABLE IF NOT EXISTS vn2008.tmp_ubicator_stock AS
SELECT A.Id_Article,A.Article, T.Id_Cubo,IF(Z > 0,Z,0) as z,x,y,
@@ -40911,14 +39711,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `unary_delete`(v_node INT, v_delete bool)
BEGIN
-/**
- * Borra un nodo. Se puede indicar si se quieren mantener los hijos.
- * En este caso los hijos pasan al padre del nodo.
- * Si no tiene padre, los hijos pasaran a ser padres.
- *
- * @v_node: Nodo que se quiere borrar.
- * @v_delete: Se indica si se borran los nodos.
- **/
+
DECLARE v_parent INT;
@@ -40955,12 +39748,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `unary_insert`(OUT v_unary INT, v_parent INT)
BEGIN
- /**
- * Inserta un nuevo nodo. Se puede indicar el padre.
- *
- * @v_parent: Nodo padre.
- * @v_unary: Id del nuevo nodo.
- **/
+
INSERT INTO unary(parent) VALUES(v_parent);
@@ -40984,11 +39772,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `unary_leaves`(v_top INT)
BEGIN
-/**
- * A partir de un nodo devuelve todos sus descendientes.
- *
- * @table tmp.tree Tabla con los ids de los nodos descendientes;
- **/
+
DECLARE v_count INT;
DECLARE v_parent INT;
DECLARE v_depth INT DEFAULT 0;
@@ -41055,14 +39839,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `unary_scan_ident`(v_top INT, v_space INT)
BEGIN
-/**
- * A partir de un nodo devuelve el id y el nombre del nodod y sus hijos.
- * El nombre viene identado segun el numero de espacios multiplicado por la profundiad del nodo.
- *
- * v_top: Id del nodo padre.
- * v_space: Spacios a dejar al identar,
- * @table tmp.tree_ident Tabla con los ids de los nodos descendientes y su nombre identado;
- **/
+
DROP TEMPORARY TABLE IF EXISTS tmp.tree_ident;
CALL tree_leaves(v_top);
@@ -41094,13 +39871,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `unary_scan_insert`(v_name VARCHAR(45), v_parent INT, v_type VARCHAR(45))
BEGIN
- /**
- * Inserta un nuevo nodo de tipo unary_scan. Se puede indicar el padre.
- *
- * @v_name: Nombre del nodo.
- * @v_parent: Nodo padre.
- * @v_type: Tipo del nodo a crear.
- **/
+
DECLARE v_unary INT;
@@ -41126,11 +39897,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `unary_tops`()
BEGIN
-/**
- * Devuelve todos los nodos que no tienen padre.
- *
- * @table tmp.tree Tabla con los ids de los nodos que no tienen padre;
- **/
+
DROP TEMPORARY TABLE IF EXISTS tmp.tree;
CREATE TEMPORARY TABLE tmp.tree
@@ -41158,15 +39925,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `unary_update`(v_node INT, v_new_parent INT, v_move bool)
BEGIN
-/**
- * Cambia el padre de un nodo. Se puede indicar si se quieren mover los hijos.
- * En este caso los hijos pasan al padre del nodo.
- * Si no tiene padre, los hijos pasaran a ser padres.
- *
- * @v_node: Nodo que se quiere mover.
- * @v_new_parent: Padre al que se quiere mover el nodo.
- * @v_move: Se indica si se mueven los nodos.
- **/
+
DECLARE v_parent INT;
@@ -42477,6 +41236,10 @@ CREATE TABLE `variablesKK` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
+--
+-- Dumping events for database 'bi'
+--
+
--
-- Dumping routines for database 'bi'
--
@@ -42526,7 +41289,7 @@ BEGIN
DECLARE vYear INT;
DECLARE vWeek INT;
- -- Almacen
+
SET vCurrentPeriod = IFNULL(vLastPeriod, vMinPeriod);
@@ -42568,7 +41331,7 @@ BEGIN
GROUP BY Almacen;
END WHILE;
- -- Reino
+
SET vCurrentPeriod = vMinPeriod;
@@ -42610,7 +41373,7 @@ BEGIN
GROUP BY reino;
END WHILE;
- -- Familia
+
SET vCurrentPeriod = vMinPeriod;
@@ -42652,50 +41415,10 @@ BEGIN
GROUP BY Familia;
END WHILE;
- -- Comprador
- -- FIXME: Bucle infinito porque la tabla está vacía
-/*
- SET vCurrentPeriod = vMinPeriod;
+
+
- WHILE vCurrentPeriod < vMaxPeriod
- DO
- SELECT IFNULL(MAX(periodo),vMinPeriod) INTO vPreviousPeriod
- FROM bi.analisis_ventas_comprador_evolution
- WHERE periodo < vMaxPeriod;
-
- SELECT MIN(period) INTO vCurrentPeriod
- FROM vn2008.time
- WHERE period > vPreviousPeriod;
-
- SET vYear = FLOOR(vCurrentPeriod / 100);
- SET vWeek = vCurrentPeriod - (vYear * 100);
-
- DELETE FROM bi.analisis_ventas_comprador_evolution
- WHERE Periodo = vCurrentPeriod;
-
- REPLACE bi.analisis_ventas_comprador_evolution(comprador, ventas, semana,año, periodo)
- SELECT Comprador, sum(ventas) AS ventas, vWeek, vYear, vCurrentPeriod
- FROM (
- SELECT Comprador, sum(Importe) AS ventas
- FROM bi.analisis_ventas
- WHERE vYear = Año
- AND vWeek = Semana
- GROUP BY Comprador
- UNION ALL
- SELECT Comprador, - sum(Importe) AS ventas
- FROM bi.analisis_ventas
- WHERE vYear - 1 = Año
- AND vWeek = Semana
- GROUP BY Comprador
- UNION ALL
- SELECT comprador, IFNULL(ventas,0)
- FROM bi.analisis_ventas_comprador_evolution
- WHERE Periodo = vPreviousPeriod
- ) sub
- GROUP BY Comprador;
- END WHILE;
-*/
- -- Provincia
+
SET vCurrentPeriod = vMinPeriod;
@@ -42737,7 +41460,7 @@ BEGIN
GROUP BY Provincia;
END WHILE;
- -- Vista
+
SET vCurrentPeriod = vMinPeriod;
@@ -42779,7 +41502,7 @@ BEGIN
GROUP BY Vista;
END WHILE;
- -- Vendedor
+
SET vCurrentPeriod = vMinPeriod;
@@ -42920,15 +41643,15 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `call_add`()
BEGIN
-DECLARE datSTART DATETIME DEFAULT '2012-03-01'/*CURDATE()*/ ;
--- control
+DECLARE datSTART DATETIME DEFAULT '2012-03-01' ;
+
INSERT INTO vn2008.daily_task_log(consulta) VALUES('bi.call_add');
--- Seleccionamos la ultima fecha introducida
+
SELECT MAX(Fecha) INTO datSTART FROM `call`;
--- Borramos todas las entradas del dia datSTART por si hubiese registros nuevos
+
DELETE FROM `call` WHERE Fecha = datSTART;
INSERT INTO bi.`call`(CodTrabajadorCartera,CodTrabajadorTelefono,dur_in,dur_out,Fecha,`year`,`month`,`week`,`hour`,phone)
@@ -42972,17 +41695,13 @@ BEGIN
DECLARE vMonthToRefund INT DEFAULT 4;
--- control
+
INSERT INTO vn2008.daily_task_log(consulta)
VALUES('bi.claim_ratio_routine START');
-/*
-* PAK 2015-11-20
-* Se trata de añadir a la tabla Greuges todos los
-* cargos que luego vamos a utilizar para calcular el recobro
-*/
--- descuentos comerciales COD 11
+
+
INSERT INTO vn2008.Greuges(Fecha, Id_Cliente, Comentario, Importe, Id_Ticket)
SELECT Fecha, Id_Cliente, Concat('COD11 : ',Concepte), - round(Cantidad *
@@ -43017,7 +41736,7 @@ UPDATE vn2008.Movimientos m
AND Concepte NOT LIKE '$%'
AND Fecha > '2014-01-01';
--- Reclamaciones demasiado sensibles
+
INSERT INTO vn2008.Greuges(Fecha, Id_Cliente, Comentario,
Importe, Greuges_type_id,Id_Ticket)
@@ -43035,7 +41754,7 @@ INSERT INTO vn2008.Greuges(Fecha, Id_Cliente, Comentario,
AND ca.greuge = 0
AND cm.cl_est_id = 3;
- -- Reclamaciones que pasan a Maná
+
INSERT INTO vn2008.Greuges(Fecha, Id_Cliente, Comentario,
Importe , Greuges_type_id,Id_Ticket)
@@ -43054,7 +41773,7 @@ INSERT INTO vn2008.Greuges(Fecha, Id_Cliente, Comentario,
AND cm.cl_est_id = 3
AND cm.mana;
- -- Marcamos para no repetir
+
UPDATE vn2008.cl_act ca
JOIN vn2008.cl_main cm ON cm.id = ca.cl_main_id
SET greuge = 1
@@ -43064,7 +41783,7 @@ UPDATE vn2008.cl_act ca
--- Recobros
+
DROP TEMPORARY TABLE IF EXISTS tmp.ticket_list;
CREATE TEMPORARY TABLE tmp.ticket_list
@@ -43110,10 +41829,7 @@ UPDATE vn2008.Movimientos_componentes mc
SET greuge = 1
WHERE Id_Componente = 17;
-/*
-* Recalculamos la ratio de las reclamaciones, que luego
-* se va a utilizar en el recobro
-*/
+
DELETE FROM bi.claims_ratio;
@@ -43136,7 +41852,7 @@ REPLACE bi.claims_ratio(Id_Cliente, Consumo, Reclamaciones, Ratio, recobro)
) claims ON claims.Id_Cliente = fm.Id_Cliente;
--- Calculamos el porcentaje del recobro para añadirlo al precio de venta
+
UPDATE bi.claims_ratio cr
JOIN (
SELECT Id_Cliente, nz(SUM(Importe)) AS Greuge
@@ -43147,7 +41863,7 @@ UPDATE bi.claims_ratio cr
SET recobro = GREATEST(0,round(nz(Greuge) /
(nz(Consumo) * vMonthToRefund / 12 ) ,3));
--- control
+
INSERT INTO vn2008.daily_task_log(consulta)
VALUES('bi.claim_ratio_routine END');
END ;;
@@ -43219,10 +41935,10 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `comparativa_add`()
BEGIN
- DECLARE lastCOMP INT; # Se trata de una variable para almacenar el ultimo valor del Periodo
+ DECLARE lastCOMP INT;
SELECT MAX(Periodo) INTO lastCOMP FROM vn2008.Comparativa;
- -- Fijaremos las ventas con más de un mes de antiguedad en la tabla Comparativa
+
IF lastCOMP < vn2008.vnperiod(CURDATE())- 3 AND vn2008.vnweek(CURDATE()) > 3 THEN
@@ -43265,7 +41981,7 @@ BEGIN
DECLARE datINI DATETIME;
DECLARE datFIN DATETIME;
- -- Seleccionamos la fecha minima/maxima del periodo que vamos a consultar
+
SELECT MIN(`date`) INTO datINI FROM vn2008.`time` WHERE period = vn2008.vnperiod(dat_START);
SELECT TIMESTAMP(MAX(`date`),'23:59:59') INTO datFIN FROM vn2008.`time` WHERE period = vn2008.vnperiod(dat_END);
@@ -43336,7 +42052,7 @@ BEGIN
SELECT t1.*, c.Cliente, w.workerCode, c.pay_met_id,c.Vencimiento
FROM (
--- Filtramos aquellos clientes cuyo saldo se ha incrementado de ayer a hoy
+
select * from(
select today.client, today.amount todayAmount, yesterday.amount yesterdayAmount, round(yesterday.amount - today.amount,2) as difference, defaulterSince
from
@@ -43388,7 +42104,7 @@ BEGIN
WHERE f.Fecha >= '2016-01-01' AND f.Id_Cliente = vClient ORDER BY f.Fecha DESC;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
- -- Control
+
INSERT INTO vn2008.daily_task_log(consulta) VALUES('defaulting');
@@ -43399,7 +42115,7 @@ BEGIN
FROM bi.customerRiskOverdue
GROUP BY customer_id;
- -- marcamos si ha cambiado y heredamos la fecha defaulterSince
+
UPDATE bi.defaulters d
JOIN (
SELECT * FROM(
@@ -43485,7 +42201,7 @@ BEGIN
WHERE f.Fecha >= '2016-01-01' AND f.Id_Cliente = vClient ORDER BY f.Fecha DESC;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
- -- Control
+
INSERT INTO vn2008.daily_task_log(consulta) VALUES('defaulting');
@@ -43496,7 +42212,7 @@ BEGIN
FROM bi.customerRiskOverdue
GROUP BY customer_id;
- -- marcamos si ha cambiado y heredamos la fecha defaulterSince
+
UPDATE bi.defaulters d
JOIN (
SELECT client, amount , defaulterSince FROM bi.defaulters
@@ -43578,48 +42294,7 @@ CREATE DEFINER=`root`@`%` PROCEDURE `equaliza`(IN wh_id INT)
BEGIN
DECLARE datEQ DATETIME;
-/* JGF 2017-03-20 cuelga el sistema
-SELECT `date` INTO datEQ FROM bi.variables WHERE variable = IF(wh_id = 17,'eq_mcf','equalizator');
-
-
-IF TIMEDIFF(now(), datEQ) > '00:05:00' THEN
-
- UPDATE bi.Equalizator e
- JOIN
- (
- SELECT
- Vista,
- sum(1) as pedido,
- sum(PedidoImpreso) as impreso,
- sum(t.Factura IS NOT NULL
- OR t.Etiquetasemitidas
- OR nz(ticket_id) <> 0) as encajado
- FROM
- vn2008.Movimientos
- JOIN
- vn2008.Tickets t USING (Id_Ticket)
- JOIN
- vn2008.Agencias a ON t.Id_Agencia = a.Id_Agencia
- JOIN
- vn2008.Clientes C USING (Id_Cliente)
- LEFT JOIN
- (SELECT distinct
- ticket_id
- FROM
- vn2008.expeditions e JOIN vn2008.Tickets t ON t.Id_Ticket = e.ticket_id WHERE Fecha >= curDate()) exp ON ticket_id = Id_Ticket
- WHERE
- invoice And Fecha >= curDate()
- AND t.warehouse_id = wh_id
- AND fecha < (TIMESTAMPADD(DAY, 1, CURDATE()))
- GROUP BY Vista) sub using(Vista)
- SET e.Pedido = sub.pedido, e.Impreso = sub.impreso, e.Encajado = sub.encajado;
-
- UPDATE bi.variables SET `date`= now() WHERE variable = IF(wh_id = 17,'eq_mcf','equalizator');
-
-
-END IF;
-*/
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -43639,7 +42314,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `facturacion_media_anual_update`()
BEGIN
--- control
+
INSERT INTO vn2008.daily_task_log(consulta) VALUES('bi.facturacion_media_anual_update');
TRUNCATE TABLE bi.facturacion_media_anual;
@@ -43814,12 +42489,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `Greuge_Evolution_Add`()
BEGIN
- /*
-
- Inserta en la tabla Greuge_Evolution el saldo acumulado de cada cliente, así como las ventas acumuladas en los ultimos 365 dias
- , para poder controlar su evolucion
-
- */
+
@@ -43900,16 +42570,16 @@ BEGIN
;
- -- Ahora calcularemos el greuge muerto
- --
+
+
UPDATE bi.Greuge_Evolution ge
JOIN maxInvoice using(Id_Cliente)
SET FOSIL = GREUGE
WHERE ge.Fecha = datFEC;
- -- Recobro
+
UPDATE bi.Greuge_Evolution ge
JOIN (
@@ -43920,7 +42590,7 @@ BEGIN
JOIN vn2008.Movimientos_componentes mc on mc.Id_Movimiento = m.Id_Movimiento
WHERE t.Fecha >= datFEC
AND t.Fecha < datFEC_TOMORROW
- AND mc.Id_Componente = 17 -- Recobro
+ AND mc.Id_Componente = 17
GROUP BY cs.Id_Cliente
) sub using(Id_Cliente)
SET Recobro = Importe
@@ -43958,14 +42628,14 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `last_buy_id_add`()
BEGIN
--- control
--- INSERT INTO vn2008.daily_task_log(consulta) VALUES('bi.last_buy_id_add');
--- DELETE FROM bi.Last_buy_id;
+
+
+
TRUNCATE TABLE bi.Last_buy_id;
--- Primero metemos las del futuro, por si no hay en el presente
+
INSERT INTO bi.Last_buy_id SELECT * FROM
(SELECT
@@ -43980,7 +42650,7 @@ INSERT INTO bi.Last_buy_id SELECT * FROM
ORDER BY landing DESC) t1
GROUP BY Id_Article , warehouse_id;
--- Ahora el presente machaca al futuro
+
REPLACE bi.Last_buy_id SELECT * FROM
(SELECT
@@ -44143,7 +42813,7 @@ BEGIN
SET v_sql = sql_printf ('CREATE SCHEMA IF NOT EXISTS %t',strCacheSchema);
CALL vn2008.sql_query (v_sql);
- -- Insertamos en las tablas del cur1
+
OPEN cur1;
FETCH cur1 INTO strSquemaName,strTableName;
WHILE NOT done DO
@@ -44160,7 +42830,7 @@ BEGIN
END WHILE;
CLOSE cur1;
- -- Insertamos en las tablas del cur2
+
OPEN cur2;
FETCH cur2 INTO strSquemaName,strTableName,strDateField;
WHILE NOT done DO
@@ -44181,24 +42851,24 @@ BEGIN
END WHILE;
CLOSE cur2;
- -- Insertamos en las tablas del cur3
+
OPEN cur3;
SET done = 0;
FETCH cur3 INTO strSquemaName,strTableName,strTableDependingOn;
WHILE NOT done DO
- -- Torna la columna per la qual vincular amb el seu pare
+
SELECT kcu.column_name INTO strFieldName
FROM information_schema.key_column_usage kcu
WHERE table_schema = CONVERT(strSquemaName USING utf8) COLLATE utf8_general_ci
AND REFERENCED_TABLE_NAME = CONVERT(strTableDependingOn USING utf8) COLLATE utf8_general_ci
AND table_name = CONVERT(strTableName USING utf8) COLLATE utf8_general_ci;
- -- Torna la columna per la qual vincular amb el seu fill
+
SELECT kcu.column_name INTO strFieldDependingOn
FROM information_schema.key_column_usage kcu
- WHERE table_schema = CONVERT(strSquemaName USING utf8) COLLATE utf8_general_ci -- FIX mirar l'esquema del pare
+ WHERE table_schema = CONVERT(strSquemaName USING utf8) COLLATE utf8_general_ci
AND constraint_name = 'PRIMARY'
AND table_name = CONVERT(strTableDependingOn USING utf8) COLLATE utf8_general_ci;
@@ -44219,22 +42889,22 @@ BEGIN
CLOSE cur3;
- -- Borramos en las tablas del cur4 que es igual que el dos pero en sentido descendente
- -- para evitar errores con las foreign key
+
+
OPEN cur4;
SET done = 0;
FETCH cur4 INTO strSquemaName,strTableName,strTableDependingOn;
WHILE NOT done DO
- -- Torna la columna per la qual vincular amb el seu pare
+
SELECT kcu.column_name INTO strFieldName
FROM information_schema.key_column_usage kcu
WHERE table_schema = CONVERT(strSquemaName USING utf8) COLLATE utf8_general_ci
AND REFERENCED_TABLE_NAME = CONVERT(strTableDependingOn USING utf8) COLLATE utf8_general_ci
AND table_name = CONVERT(strTableName USING utf8) COLLATE utf8_general_ci;
- -- Torna la columna per la qual vincular amb el seu fill
+
SELECT kcu.column_name INTO strFieldDependingOn
FROM information_schema.key_column_usage kcu
WHERE table_schema = CONVERT(strSquemaName USING utf8) COLLATE utf8_general_ci
@@ -44256,7 +42926,7 @@ BEGIN
CLOSE cur4;
- -- Borramos en las tablas del cur5
+
OPEN cur5;
SET done = 0;
FETCH cur5 INTO strSquemaName,strTableName,strDateField;
@@ -44368,10 +43038,10 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `rotacion_update`()
BEGIN
--- control
+
INSERT INTO vn2008.daily_task_log(consulta) VALUES('bi.rotation_update');
--- Sólo hace la consulta gorda los sábados de madrugada. Necesita casi dos horas.
+
IF DAY(CURDATE()) = 5 THEN
@@ -44405,7 +43075,7 @@ DECLARE intLAPSO INT DEFAULT DATEDIFF(datEND,datSTART );
REPLACE bi.rotacion(Id_Article,warehouse_id,total,rotacion)
- SELECT Id_Article, warehouse_id, Total, round((sum(Saldo_Ponderado)/Total),2) as rotacion -- round(avg(Saldo_Ponderado) / (Total / intLAPSO),1) as Rotacion
+ SELECT Id_Article, warehouse_id, Total, round((sum(Saldo_Ponderado)/Total),2) as rotacion
FROM
(
SELECT Id_Article, warehouse_id,
@@ -44493,14 +43163,14 @@ DECLARE intLAPSO INT DEFAULT DATEDIFF(datEND,datSTART );
CALL vn2008.item_last_buy_(NULL,datSTART);
- -- Añadimos el volumen por unidad de venta
+
update bi.rotacion r
JOIN vn2008.t_item_last_buy b ON r.Id_Article = b.item_id AND r.warehouse_id = b.warehouse_id
join vn2008.Compres ON Id_Compra = b.buy_id
set cm3 = vn2008.cm3_2(Id_Cubo, r.Id_Article) / Packing
where r.Id_Article between intART_DESDE and intART_HASTA;
--- Añadimos el coste de almacenamiento y manipulacion
+
UPDATE bi.rotacion
JOIN (
SELECT warehouse_id, sum(total*rotacion*cm3) as Operacion
@@ -44536,7 +43206,7 @@ SET auxiliar = if(rotacion < 0,0,round(rotacion *cm3 * Coste_Auxiliar / Operacio
WHERE Id_Article between intART_DESDE and intART_HASTA;
--- Añadimos todos los productos de los que no tenemos histórico, con la media de su familia como valor por defecto
+
INSERT INTO bi.rotacion(Id_Article, warehouse_id, rotacion, cm3, almacenaje, manipulacion, auxiliar, mermas)
SELECT a.Id_Article, warehouse_id, rotacion_m, cm3_m, alm_m, man_m, aux_m, merm_m
@@ -44584,7 +43254,7 @@ WHILE intART_HASTA < 999999 DO
END IF;
REPLACE bi.rotacion(Id_Article,warehouse_id,total,rotacion)
- SELECT Id_Article, warehouse_id, Total, round((sum(Saldo_Ponderado)/Total),2) as rotacion -- round(avg(Saldo_Ponderado) / (Total / intLAPSO),1) as Rotacion
+ SELECT Id_Article, warehouse_id, Total, round((sum(Saldo_Ponderado)/Total),2) as rotacion
FROM
(
SELECT Id_Article, warehouse_id,
@@ -44770,9 +43440,9 @@ CREATE DEFINER=`root`@`%` PROCEDURE `ticket_add2kk`(intNUMDAYS INTEGER)
BEGIN
DECLARE datSTART,datEND DATETIME;
--- Seleccionamos los tickets a tratar añadiendolos a la tabla bi.ticket
- SET @@session.max_sp_recursion_depth=250; -- Habilito la recursión en mysql hasta un límite de 250.
+
+ SET @@session.max_sp_recursion_depth=250;
SET datSTART = TIMESTAMPADD(DAY, -intNUMDAYS, CURDATE());
@@ -44781,7 +43451,7 @@ DECLARE datSTART,datEND DATETIME;
- -- Actualiza el valor de costfixat en Movimientos a efectos estadisticos
+
update vn2008.Movimientos m
join
(
@@ -44818,14 +43488,7 @@ set CostFixat = Cost;
AND (reino_id <> 6 OR m.Id_Article IN (95,98))
GROUP BY t.Id_Ticket,tipo_id ;
- /*
- UPDATE bi.ticket
- JOIN vn2008.Tickets using(Id_Ticket)
- JOIN vn2008.Agencias using(Id_Agencia)
- JOIN vn2008.agency_warehouse aw using(agency_id,warehouse_id)
- SET `view` = aw.Vista
- WHERE Tickets.Fecha BETWEEN datSTART AND datEND;
- */
+
@@ -44870,7 +43533,7 @@ SET bt.Id_Cliente = C.Id_Cliente
WHERE Tickets.Id_Cliente = 31 AND bt.date >= datSTART;
--- Almacena los tickets que comisionan, para consultas rapidas
+
truncate table bi.f_tvc;
@@ -44886,7 +43549,7 @@ and w.comisionantes = TRUE;
--- Quita las horas de los tickets del mes anterior
+
IF DAY(CURDATE()) = 15 THEN
update vn2008.Tickets
set Fecha = date(Fecha)
@@ -44914,9 +43577,9 @@ BEGIN
DECLARE datSTART DATETIME;
DECLARE datEND DATETIME;
--- Seleccionamos los tickets a tratar añadiendolos a la tabla bi.ticket
- SET @@session.max_sp_recursion_depth=2500; -- Habilito la recursión en mysql hasta un límite de 2500.
+
+ SET @@session.max_sp_recursion_depth=2500;
SET datSTART = DATE(datFEC);
SET datEND = TIMESTAMPADD(DAY,30,datSTART);
@@ -45483,12 +44146,12 @@ SET character_set_client = utf8;
1 AS `created`,
1 AS `isToBeMailed`,
1 AS `contactChannelFk`,
- 1 AS `hasSepavnl`,
- 1 AS `hasCorevnl`,
+ 1 AS `hasSepaVnl`,
+ 1 AS `hasCoreVnl`,
1 AS `hasCoreVnh`,
1 AS `riskCalculated`,
1 AS `clientTypeFk`,
- 1 AS `mail_address`,
+ 1 AS `mailAddress`,
1 AS `cplusTerIdNifFk`,
1 AS `hasToInvoiceByAddress`,
1 AS `isTaxDataChecked`,
@@ -45600,7 +44263,7 @@ CREATE TABLE `config` (
`fakeEmail` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`defaultersMaxAmount` int(10) DEFAULT '200' COMMENT 'maxima deuda permitida a partir de la cual se bloquea a un usuario',
PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -47860,6 +46523,10 @@ CREATE TABLE `zoneGeo` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
+--
+-- Dumping events for database 'vn'
+--
+
--
-- Dumping routines for database 'vn'
--
@@ -47876,17 +46543,7 @@ ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `agencyIsAvailable`(vAgency INT, vDate DATE, vAddress INT) RETURNS tinyint(1)
BEGIN
-/**
- * Comprueba si la agencia esta disponible para la fecha y
- * dirección dadas, es decir, si es posible enviar mercancía
- * desde al menos uno de los almacenes por la agencia, fecha
- * y direcciones especificadas.
- *
- * @param vAgency Id de agencia
- * @param vDate Fecha de recepción de mercancía
- * @param vAddress Id consignatario, %NULL para recogida
- * @return %TRUE si la agencia esta disponible, %FALSE en caso contrario
- */
+
DECLARE vMaxDays INT DEFAULT DATEDIFF(vDate, CURDATE());
DECLARE vWday TINYINT DEFAULT WEEKDAY(vDate);
DECLARE vHour TINYINT DEFAULT HOUR(NOW());
@@ -47929,13 +46586,7 @@ ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `clientGetDebt`(vClient INT, vDate DATE) RETURNS decimal(10,2)
BEGIN
-/**
- * Devuelve el saldo del cliente.
- *
- * @param vClient Id del cliente
- * @param vDate Fecha hasta la que tener en cuenta
- * @return Saldo del cliente
- */
+
DECLARE vDateEnd DATETIME;
DECLARE vDateIni DATETIME;
DECLARE vDebt DECIMAL(10,2);
@@ -48001,13 +46652,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `clientGetDebtKK`(vClient INT, vDate DATE) RETURNS decimal(10,2)
BEGIN
-/**
- * Devuelve el saldo del cliente.
- *
- * @param vClient Id del cliente
- * @param vDate Fecha hasta la que tener en cuenta
- * @return Saldo del cliente
- */
+
DECLARE vDateEnd DATETIME;
DECLARE vDateIni DATETIME;
DECLARE vDebt DECIMAL(10,2);
@@ -48073,12 +46718,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `clientGetMana`(vClient INT) RETURNS decimal(10,2)
BEGIN
-/**
- * Devuelve el maná del cliente.
- *
- * @param vClient Id del cliente
- * @return Maná del cliente
- */
+
DECLARE vMana DECIMAL(10,2);
DECLARE vFromDated DATE;
@@ -48120,7 +46760,7 @@ SELECT sum(mana) INTO vMana
SELECT g.Importe
FROM vn2008.Greuges g
JOIN vn2008.Clientes c using(Id_Cliente)
- WHERE g.Greuges_type_id = 3 -- Maná
+ WHERE g.Greuges_type_id = 3
AND g.Fecha > vFromDated
AND c.Id_Cliente = vClient
@@ -48146,14 +46786,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `clientTaxArea`(vClientFk INT, vCompanyFk INT) RETURNS varchar(25) CHARSET utf8
BEGIN
-/**
- * Devuelve el area de un cliente,
- * intracomunitario, extracomunitario y nacional.
- *
- * @param vClient Id del cliente
- * @param vCompanyFk Compañia desde la que se factura
- * @return Código de area
- */
+
DECLARE vTaxArea VARCHAR(25);
DECLARE vCee INT;
@@ -48208,7 +46841,7 @@ BEGIN
SELECT getUser() INTO vWorker;
CASE vDeliveryType
- WHEN 1 THEN -- AGENCIAS
+ WHEN 1 THEN
SELECT COUNT(*) INTO isWaitingForPickUp
FROM vn2008.Tickets t
JOIN vn2008.warehouse_pickup w ON w.agency_id = t.Id_Agencia
@@ -48220,10 +46853,10 @@ BEGIN
SET vCode = 'DELIVERED';
END IF;
- WHEN 2 THEN -- REPARTO
+ WHEN 2 THEN
SET vCode = 'ON_DELIVERY';
- ELSE -- MERCADO, OTROS
+ ELSE
SET vCode = 'DELIVERED';
END CASE;
RETURN vCode;
@@ -48375,13 +47008,7 @@ ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `getTicketToPrepare`(`vWorker` INT, `vWarehouse` INT) RETURNS int(11)
BEGIN
-/**
- * Devuelve el ticket que debe de preparar el trabajador
- *
- * @param vWorker Id del trabajador
- * @param vWarehouse Id del almacén
- * @return Id del ticket
- **/
+
DECLARE vToday DATETIME DEFAULT CURDATE();
DECLARE vYesterday DATETIME;
DECLARE vTodayvMidniight DATETIME DEFAULT midnight(vToday);
@@ -48395,7 +47022,7 @@ BEGIN
SELECT worker FROM `grant` g
JOIN grantGroup gg ON g.group = gg.id
WHERE gg.description = 'Comerciales'
- AND worker != 2; -- PAKO
+ AND worker != 2;
DROP TEMPORARY TABLE IF EXISTS tmp.production_buffer;
@@ -48589,11 +47216,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `hasAnyNegativeBase`() RETURNS tinyint(1)
BEGIN
-/* Calcula si existe alguna base imponible negativa
-* Requiere la tabla temporal vn.ticketToInvoice(id)
-*
-* returns BOOLEAN
-*/
+
DECLARE vCountry INT;
DECLARE hasAnyNegativeBase BOOLEAN;
@@ -48714,21 +47337,13 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `invoiceSerial`(vClientFk INT, vCompanyFk INT, vType CHAR(1)) RETURNS char(1) CHARSET utf8
BEGIN
-/**
- * Obtiene la serie de de una factura
- * dependiendo del area del cliente.
- *
- * @param vClientFk Id del cliente
- * @param vCompanyFk Id de la empresa
- * @param vType Tipo de factura ["R", "M", "G"]
- * @return Serie de la factura
- */
+
DECLARE vArea VARCHAR(25);
DECLARE vSerie CHAR(1);
SELECT clientTaxArea(vClientFk, vCompanyFk) INTO vArea;
- -- Factura rápida
+
IF vType = 'R' THEN
SELECT
CASE vArea
@@ -48740,7 +47355,7 @@ BEGIN
THEN 'T'
END
INTO vSerie;
- -- Factura multiple
+
ELSEIF vType = 'M' THEN
SELECT
CASE vArea
@@ -48752,7 +47367,7 @@ BEGIN
THEN 'M'
END
INTO vSerie;
- -- Factura global
+
ELSEIF vType = 'G' THEN
SELECT
CASE vArea
@@ -48833,13 +47448,7 @@ ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `messageSend`(vRecipient VARCHAR(255), vMessage TEXT) RETURNS int(11)
BEGIN
-/**
- * Envia un mensaje a un usuario o a una lista de usuarios.
- *
- * @param vRecipient Nombre de usuario o de alias
- * @param vMessage Texto del mensaje
- * @return Número de destinatarios
- **/
+
DECLARE vCount INT;
DECLARE vUuid VARCHAR(255);
DECLARE vSendDate DATETIME DEFAULT NOW();
@@ -48924,13 +47533,7 @@ ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `noticeHasActive`(vCategoryKey VARCHAR(50), vUser INT) RETURNS tinyint(1)
BEGIN
-/**
- * Comprueba si el usuario tiene activada o no la categoría
- *
- * @param vNoticeCategory Id de la categoría
- * @param vUser Id del usuario
- * @return %True si el usuario tiene activada la notificación, %False en caso contrario
- */
+
DECLARE vActive INT;
SELECT COUNT(*) INTO vActive
@@ -49042,7 +47645,7 @@ SELECT (ag.`name` = 'VN_VALENCIA')
JOIN vn2008.agency ag on ag.agency_id = a.agency_id
WHERE r.Id_Ruta = vMyPath;
-IF vIsValenciaPath THEN -- Rutas Valencia
+IF vIsValenciaPath THEN
SELECT COUNT(*)
INTO vExpeditionsCount
@@ -49134,7 +47737,7 @@ SELECT (ag.`name` = 'VN_VALENCIA')
WHERE r.Id_Ruta = vMyPath;
-IF vIsValenciaPath THEN -- Rutas Valencia
+IF vIsValenciaPath THEN
SELECT COUNT(*)
INTO vExpeditionsCount
@@ -49205,13 +47808,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `workerIsBoss`(vUserId INT) RETURNS int(11)
BEGIN
-/**
- * Comprueba por jerarquía si el trabajador actual es jefe
- * de un trabajador en concreto.
- *
- * @param vUserId Id del trabajador que se desea comprobar.
- * @return Revuelve verdadero si es jefe del empleado por escala jerárquica.
- */
+
DECLARE vWorkerId INT;
DECLARE vBossId INT;
@@ -49264,14 +47861,7 @@ ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `agencyListAvailable`(vDate DATE, vAddress INT)
BEGIN
-/**
- * Devuelve la lista de almacenes disponibles y la fecha de
- * envío desde cada uno.
- *
- * @param vDate Fecha de recepción de mercancía
- * @param vAddress Id consignatario, %NULL para recogida
- * @table travel_tree Lista de almacenes disponibles
- */
+
DECLARE vMaxDays INT DEFAULT DATEDIFF(vDate, CURDATE());
DECLARE vWday TINYINT DEFAULT WEEKDAY(vDate);
DECLARE vHour TINYINT DEFAULT HOUR(NOW());
@@ -49314,15 +47904,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `agencyListForMethod`(
vDate DATE, vAddress INT, vMethod VARCHAR(255))
BEGIN
-/**
- * Devuelve la lista de agencias disponibles para una forma
- * de envío.
- *
- * @param vDate Fecha de recepción de mercancía
- * @param vAddress Id consignatario, %NULL para recogida
- * @param vMethod Código de la forma de envío
- * @select Lista de agencias disponibles
- */
+
CALL agencyListAvailable (vDate, vAddress);
SELECT DISTINCT m.id, m.description
@@ -49411,12 +47993,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `copyComponentsFromSaleList`(vTargetTicketFk INT)
BEGIN
-/* Copy sales and components to the target ticket
-*
-* ¡¡¡¡ Requires tmp.saleList(saleFk, itemFk, quantity, concept, price, discount, orden) !!!!!
-*
-* param VTargetTicketFk id del ticket a rellenar
-*/
+
INSERT INTO vn.sale(ticketFk, itemFk, quantity,concept,price,discount)
SELECT vTargetTicketFk, itemFk, quantity,concept,price,discount
@@ -49472,10 +48049,7 @@ BEGIN
SELECT vUser,MD5(vPassword),1;
SET vUserId = LAST_INSERT_ID();
- /*
- INSERT INTO vn.worker(firstName,name,bossFk,workerCode,user_id)
- SELECT vFirstName,CONCAT(vSurname1,' ',vSurname2),2,vWorkerCode,vUser;
- */
+
INSERT INTO vn2008.Trabajadores(Nombre,Apellidos,boss,CodigoTrabajador,user_id)
SELECT vFirstName,CONCAT(vSurname1,' ',vSurname2),vWorkerPako,vWorkerCode,vUserId;
@@ -49590,7 +48164,7 @@ BEGIN
WHILE NOT done DO
- -- Primero la linea original con las cantidades invertidas
+
INSERT INTO vn2008.Compres
(
Id_Entrada,
@@ -49631,7 +48205,7 @@ BEGIN
vTarifa3,
vPVP);
- -- Ahora la linea nueva, con el item genérico
+
INSERT INTO vn2008.Compres
(
Id_Entrada,
@@ -49724,14 +48298,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `getDebt`(vDate DATE)
BEGIN
-/**
- * Calcula el riesgo para los clientes activos de la tabla temporal tmp.client_list
- *
- * @param vDate Fecha maxima de los registros
- * @tmp.risk
- *
- * @return table tmp.risk
- **/
+
DECLARE vDateIni DATETIME DEFAULT TIMESTAMPADD(DAY, - DAYOFMONTH(CURDATE()) - 5, CURDATE());
DECLARE vDateEnd DATETIME;
@@ -49819,14 +48386,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `getDebtkk`(vDate DATE)
BEGIN
-/**
- * Calcula el riesgo para los clientes activos de la tabla temporal tmp.client_list
- *
- * @param vDate Fecha maxima de los registros
- * @tmp.risk
- *
- * @return table tmp.risk
- **/
+
DECLARE vDateIni DATETIME DEFAULT TIMESTAMPADD(DAY, - DAYOFMONTH(CURDATE()) - 5, CURDATE());
DECLARE vDateEnd DATETIME;
@@ -49953,11 +48513,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `invoiceCorrectedSale`(vInvoiceOut INT)
BEGIN
-/* Devuelve los registros de la factura en cuestion, para preparar la factura rectificativa
-*
-* param vInvoiceOutId Referencia de la factura emitida, tal como se ve en el ticket
-*
-*/
+
SELECT
@@ -49991,12 +48547,7 @@ ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `invoiceExpenceMake`(IN vInvoice INT)
BEGIN
-/* Inserta las partidas de gasto correspondientes a la factura
- * REQUIERE tabla ticketToInvoice
- *
- * @param vInvoice Numero de factura
- *
- */
+
DELETE FROM invoiceOutExpence
WHERE invoiceOutFk = vInvoice;
@@ -50139,7 +48690,7 @@ BEGIN
SELECT
i.*,
YEAR(i.booked) datedYear,
- -- CONCAT('s/fra',RIGHT(i.supplierRef,8)) concept,
+
CONCAT('s/fra',RIGHT(i.supplierRef,8),':',LEFT(s.name, 10)) conceptWithSupplier,
(cc.id = c.id) isSameCountry,
cit.id invoicesCount
@@ -50188,7 +48739,7 @@ BEGIN
JOIN taxCode tc ON iit.taxCodeFk = tc.id
WHERE i.id = vInvoiceInId;
- -- Apunte del proveedor
+
INSERT INTO vn2008.XDiario(
ASIEN,
@@ -50209,7 +48760,7 @@ BEGIN
FROM newInvoiceIn n
JOIN newSupplier s;
- -- ----------------------------------------------------------- Linea de Gastos
+
INSERT INTO vn2008.XDiario (
ASIEN,
FECHA,
@@ -50251,7 +48802,7 @@ BEGIN
WHERE iit.expenceFk != 5660000002
GROUP BY iit.expenceFk;
- -- Extracomunitarias gasto contra proveedor/acreedor
+
INSERT INTO vn2008.XDiario (
ASIEN,
FECHA,
@@ -50281,7 +48832,7 @@ BEGIN
WHERE iie.percentage
GROUP BY i.id;
- -- Extracomunitarias proveedor contra gasto
+
INSERT INTO vn2008.XDiario (
ASIEN,
FECHA,
@@ -50311,9 +48862,9 @@ BEGIN
WHERE iie.percentage
GROUP BY i.id;
- -- --------------------------------------------------------------------
- -- ------- Lineas de IVA ---------------
- -- --------------------------------------------------------------------
+
+
+
INSERT INTO vn2008.XDiario(
ASIEN,
@@ -50391,7 +48942,7 @@ BEGIN
AND tc.isActive
GROUP BY tc.rate;
- -- Linea iva inversor sujeto pasivo
+
INSERT INTO vn2008.XDiario(
ASIEN,
@@ -50463,14 +49014,14 @@ BEGIN
WHERE tc.isActive
GROUP BY tcLink.rate, e.id;
- -- Iva Importacion pendiente
+
INSERT INTO vn2008.XDiario(
ASIEN,
FECHA,
SUBCTA,
CONCEPTO,
- EUROHABER,-- EURODEBE
+ EUROHABER,
SERIE,
empresa_id)
@@ -50491,7 +49042,7 @@ BEGIN
HAVING eurohaber IS NOT NULL;
- -- Linea iva importacion extracomunitaria
+
SET @cont:=1;
SET @total:=0;
@@ -50563,7 +49114,7 @@ BEGIN
JOIN newSupplier s
JOIN (
SELECT
- -- CONCAT('COMPRA s/fra ',sref,':',LEFT(p.Proveedor, 10))
+
CONCAT('COMPRA s/fra ',ii.supplierRef,':',LEFT(s.name, 10)) CONCEPTO,
tc.code SUBCTA,
s.account CONTRA,
@@ -50620,14 +49171,14 @@ BEGIN
) x
GROUP BY x.supplierFk, x.IVA;
- -- Actualizacion de la fecha de contabilizado y de operacion de las importaciones
+
UPDATE newInvoiceIn n
JOIN invoiceInEntry iie ON iie.invoiceInAwbFk = vInvoiceInId
JOIN invoiceIn ii ON ii.id = iie.invoiceInFk
SET ii.booked = IFNULL(ii.booked,n.booked),
ii.operated = IFNULL(ii.operated,n.issued);
- -- Actualización del registro original
+
UPDATE invoiceIn
SET
serialNumber = vSerialNumber,
@@ -50659,7 +49210,7 @@ BEGIN
SELECT
i.*,
YEAR(i.booked) datedYear,
- -- CONCAT('s/fra',RIGHT(i.supplierRef,8)) concept,
+
CONCAT('s/fra',RIGHT(i.supplierRef,8),':',LEFT(s.name, 10)) conceptWithSupplier,
(cc.id = c.id) isSameCountry,
cit.id invoicesCount
@@ -50721,7 +49272,7 @@ BEGIN
INTO vBookNumber
FROM vn2008.XDiario;
- -- Extracomunitarias gasto contra proveedor/acreedor
+
INSERT INTO vn2008.XDiario (
ASIEN,
FECHA,
@@ -50751,7 +49302,7 @@ BEGIN
WHERE iie.percentage
GROUP BY i.id;
- -- Extracomunitarias proveedor contra gasto
+
INSERT INTO vn2008.XDiario (
ASIEN,
FECHA,
@@ -50781,14 +49332,14 @@ BEGIN
WHERE iie.percentage
GROUP BY i.id;
- -- Iva Importacion pendiente
+
INSERT INTO vn2008.XDiario(
ASIEN,
FECHA,
SUBCTA,
CONCEPTO,
- EUROHABER,-- EURODEBE
+ EUROHABER,
SERIE,
empresa_id)
@@ -50808,7 +49359,7 @@ BEGIN
JOIN awb a ON a.id = iia.awbFk
HAVING eurohaber IS NOT NULL;
- -- Linea iva importacion extracomunitaria
+
SET @cont:=1;
SET @total:=0;
@@ -50879,7 +49430,7 @@ BEGIN
JOIN newSupplier s
JOIN (
SELECT
- -- CONCAT('COMPRA s/fra ',sref,':',LEFT(p.Proveedor, 10))
+
CONCAT('COMPRA s/fra ',ii.supplierRef,':',LEFT(s.name, 10)) CONCEPTO,
tc.code SUBCTA,
s.account CONTRA,
@@ -50933,7 +49484,7 @@ BEGIN
) x
GROUP BY x.supplierFk, x.IVA;
- -- Actualizacion de la fecha de contabilizado y de operacion de las importaciones
+
UPDATE newInvoiceIn n
JOIN invoiceInEntry iie ON iie.invoiceInAwbFk = vInvoiceInId
JOIN invoiceIn ii ON ii.id = iie.invoiceInFk
@@ -50968,7 +49519,7 @@ BEGIN
SELECT
i.*,
YEAR(i.booked) datedYear,
- -- CONCAT('s/fra',RIGHT(i.supplierRef,8)) concept,
+
CONCAT('s/fra',RIGHT(i.supplierRef,8),':',LEFT(s.name, 10)) conceptWithSupplier,
(cc.id = c.id) isSameCountry,
cit.id invoicesCount
@@ -51020,10 +49571,8 @@ BEGIN
JOIN invoiceInTax iit ON iit.invoiceInFk = i.id
JOIN taxCode tc ON iit.taxCodeFk = tc.id
WHERE i.id = vInvoiceInId;
- /*
- select vSerialNumber,vBookNumber,vDocument,vTotalAmount;
- */
- -- Apunte del proveedor
+
+
INSERT INTO vn2008.XDiario(
ASIEN,
@@ -51044,7 +49593,7 @@ BEGIN
FROM newInvoiceIn n
JOIN newSupplier s;
- -- ----------------------------------------------------------- Linea de Gastos
+
INSERT INTO vn2008.XDiario (
ASIEN,
FECHA,
@@ -51086,7 +49635,7 @@ BEGIN
WHERE iit.expenceFk != 5660000002
GROUP BY iit.expenceFk;
- -- Extracomunitarias gasto contra proveedor/acreedor
+
INSERT INTO vn2008.XDiario (
ASIEN,
FECHA,
@@ -51116,7 +49665,7 @@ BEGIN
WHERE iie.percentage
GROUP BY i.id;
- -- Extracomunitarias proveedor contra gasto
+
INSERT INTO vn2008.XDiario (
ASIEN,
FECHA,
@@ -51146,9 +49695,9 @@ BEGIN
WHERE iie.percentage
GROUP BY i.id;
- -- --------------------------------------------------------------------
- -- ------- Lineas de IVA ---------------
- -- --------------------------------------------------------------------
+
+
+
INSERT INTO vn2008.XDiario(
ASIEN,
@@ -51223,7 +49772,7 @@ BEGIN
AND tc.isActive
GROUP BY tc.rate;
- -- Linea iva inversor sujeto pasivo
+
INSERT INTO vn2008.XDiario(
ASIEN,
@@ -51295,14 +49844,14 @@ BEGIN
WHERE tc.isActive
GROUP BY tcLink.rate, e.id;
- -- Iva Importacion pendiente
+
INSERT INTO vn2008.XDiario(
ASIEN,
FECHA,
SUBCTA,
CONCEPTO,
- EUROHABER,-- EURODEBE
+ EUROHABER,
SERIE,
empresa_id)
@@ -51323,7 +49872,7 @@ BEGIN
HAVING eurohaber IS NOT NULL;
- -- Linea iva importacion extracomunitaria
+
SET @cont:=1;
SET @total:=0;
@@ -51395,7 +49944,7 @@ BEGIN
JOIN newSupplier s
JOIN (
SELECT
- -- CONCAT('COMPRA s/fra ',sref,':',LEFT(p.Proveedor, 10))
+
CONCAT('COMPRA s/fra ',ii.supplierRef,':',LEFT(s.name, 10)) CONCEPTO,
tc.code SUBCTA,
s.account CONTRA,
@@ -51452,14 +50001,14 @@ BEGIN
) x
GROUP BY x.supplierFk, x.IVA;
- -- Actualizacion de la fecha de contabilizado y de operacion de las importaciones
+
UPDATE newInvoiceIn n
JOIN invoiceInEntry iie ON iie.invoiceInAwbFk = vInvoiceInId
JOIN invoiceIn ii ON ii.id = iie.invoiceInFk
SET ii.booked = IFNULL(ii.booked,n.booked),
ii.operated = IFNULL(ii.operated,n.issued);
- -- Actualización del registro original
+
UPDATE invoiceIn
SET
serialNumber = vSerialNumber,
@@ -51499,7 +50048,7 @@ BEGIN
JOIN invoiceInTax iit ON iit.invoiceInFk = i.id
JOIN taxCode tc ON iit.taxCodeFk = tc.id;
- -- Apunte del proveedor
+
INSERT INTO vn2008.XDiario(
ASIEN,
@@ -51520,7 +50069,7 @@ BEGIN
FROM newInvoiceIn n
JOIN newSupplier s;
- -- ----------------------------------------------------------- Linea de Gastos
+
INSERT INTO vn2008.XDiario (
ASIEN,
FECHA,
@@ -51563,9 +50112,9 @@ BEGIN
GROUP BY iit.expenceFk;
- -- --------------------------------------------------------------------
- -- ------- Lineas de IVA ---------------
- -- --------------------------------------------------------------------
+
+
+
INSERT INTO vn2008.XDiario(
ASIEN,
@@ -51643,7 +50192,7 @@ BEGIN
AND tc.isActive
GROUP BY tc.rate;
- -- Linea iva inversor sujeto pasivo
+
INSERT INTO vn2008.XDiario(
ASIEN,
@@ -51715,7 +50264,7 @@ BEGIN
WHERE tc.isActive
GROUP BY tcLink.rate, e.id;
--- Actualización del registro original
+
UPDATE invoiceIn ii
JOIN newInvoiceIn ni ON ii.id = ni.id
SET
@@ -51739,12 +50288,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `invoiceMakeByClient`(vClientFk INT, vSerial CHAR(1), vShipped DATE, vCompanyFk INT, OUT vInvoiceId INT)
BEGIN
-/**
- * Factura un ticket
- * @param vTicketFk Id del ticket
- * @param vSerial Serie de factura
- * @return Id factura
- */
+
CALL invoiceFromClient(vShipped, vClientFk, vCompanyFk);
CALL invoiceOutMake(vSerial, CURDATE(), vInvoiceId);
@@ -51770,12 +50314,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `invoiceMakeByTicket`(vTicketFk INT, vSerial CHAR(1), OUT vInvoiceId INT)
BEGIN
-/**
- * Factura un ticket
- * @param vTicketFk Id del ticket
- * @param vSerial Serie de factura
- * @return Id factura
- */
+
CALL invoiceFromTicket(vTicketFk);
CALL invoiceOutMake(vSerial, CURDATE(), vInvoiceId);
@@ -51802,10 +50341,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `invoiceOutAgain`(IN vInvoiceRef VARCHAR(15))
BEGIN
-/* Para tickets ya facturados, vuelve a repetir el proceso de facturación.
-*
-* @param vInvoice Numero de factura
-*/
+
DECLARE vInvoice INT;
DECLARE vCountry INT;
@@ -51826,20 +50362,7 @@ BEGIN
FROM supplier s
JOIN invoiceOut io ON io.companyFk = s.id
WHERE io.id = vInvoice;
- /*
- SELECT IF(
- c.isEqualizated
- AND c.countryFk = vSpainCountryCode
- AND i.taxAreaFk = 'NATIONAL',
- 'EQU',
- i.taxAreaFk
- )
- INTO vTaxArea
- FROM invoiceOutSerial i
- JOIN invoiceOut io ON io.serial = i.code
- JOIN client c ON c.id = io.clientFk
- WHERE io.id = vInvoice;
- */
+
SELECT IF(a.isEqualizated
AND c.countryFk = vSpainCountryCode
AND i.taxAreaFk = 'NATIONAL',
@@ -51954,10 +50477,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `invoiceOutBooking`(IN vInvoice INT)
BEGIN
-/* Asienta la factura emitida
-*
-* param vInvoice factura_id
-*/
+
DECLARE vBookNumber INT;
DECLARE vExpenceConcept VARCHAR(50);
@@ -52021,7 +50541,7 @@ BEGIN
LEFT JOIN invoiceOut ior ON ior.id = ic.correctedFk
WHERE io.id = vInvoice;
- -- Linea del cliente
+
INSERT INTO vn2008.XDiario(
ASIEN,
FECHA,
@@ -52043,7 +50563,7 @@ BEGIN
rs.companyFk AS empresa_id
FROM rs;
- -- Lineas de gasto
+
INSERT INTO vn2008.XDiario(
ASIEN,
FECHA,
@@ -52075,7 +50595,7 @@ BEGIN
JOIN invoiceOutExpence ioe ON ioe.expenceFk = e.id
WHERE ioe.invoiceOutFk = vInvoice;
- -- Lineas de IVA
+
INSERT INTO vn2008.XDiario(
ASIEN,
FECHA,
@@ -52142,9 +50662,9 @@ BEGIN
FROM rs
JOIN invoiceOutTax iot
JOIN pgc ON pgc.code = iot.pgcFk
- LEFT JOIN pgcEqu pe ON pe.vatFk = iot.pgcFk -- --------------- Comprueba si la linea es de iva con rec.equiv. asociado
+ LEFT JOIN pgcEqu pe ON pe.vatFk = iot.pgcFk
LEFT JOIN pgc pgce ON pgce.code = pe.equFk
- LEFT JOIN pgcEqu pe2 ON pe2.equFk = iot.pgcFk -- --------------- Comprueba si la linea es de rec.equiv.
+ LEFT JOIN pgcEqu pe2 ON pe2.equFk = iot.pgcFk
WHERE iot.invoiceOutFk = vInvoice;
UPDATE invoiceOut
@@ -52171,8 +50691,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `invoiceOutBookingRange`()
BEGIN
-/* Reasentar facturas
-*/
+
DECLARE vInvoice INT;
@@ -52367,13 +50886,7 @@ CREATE DEFINER=`root`@`%` PROCEDURE `invoiceOutMake`(
OUT vNewInvoiceId INT)
BEGIN
-/* Creación de facturas emitidas.
-* REQUIERE previamente tabla ticketToInvoice.
-*
-* @param vSerial, vInvoiceDate, vCompany, vClient
-*
-* @return vNewInvoiceId
-*/
+
DECLARE vSpainCountryCode INT DEFAULT 1;
DECLARE vIsAnySaleToInvoice BOOL;
@@ -52418,7 +50931,7 @@ BEGIN
START TRANSACTION;
- -- Elimina tickets sense moviments
+
UPDATE ticket t
JOIN ticketToInvoice ti ON ti.id = t.id
LEFT JOIN sale s ON s.ticketFk = ti.id
@@ -52427,7 +50940,7 @@ BEGIN
INSERT INTO dailyTaskLog(state) VALUES('invoiceOutMake 1.1');
- -- Eliminem els tickets que no han de ser facturats
+
DELETE ti.*
FROM ticketToInvoice ti
JOIN ticket t ON t.id = ti.id
@@ -52445,8 +50958,8 @@ BEGIN
IF vIsAnySaleToInvoice THEN
- -- el trigger añade el siguiente Id_Factura correspondiente a la vSerial
- -- el trigger añade el siguiente Id_Factura correspondiente a la vSerial
+
+
INSERT INTO invoiceOut
(
ref,
@@ -52512,7 +51025,7 @@ BEGIN
SET io.amount = base.total + vat.total
WHERE io.id = vNewInvoiceId;
INSERT INTO dailyTaskLog(state) VALUES('invoiceOutMake 2: START');
- -- Retrocompatibilidad. Borrar al cambiar el informe de facturas
+
UPDATE vn2008.Facturas f
JOIN invoiceOutTax iot ON iot.invoiceOutFk = f.factura_id
SET f.BI16 = iot.taxableBase, f.IVA16 = iot.vat
@@ -52562,10 +51075,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `invoiceOutTaxAndExpence`()
BEGIN
-/* Para tickets ya facturados, vuelve a repetir el proceso de facturación.
-*
-* @param vInvoice Numero de factura
-*/
+
@@ -52652,11 +51162,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `invoiceTaxMake`(IN vInvoice INT, IN vCountry INT, IN vTaxArea VARCHAR(15))
BEGIN
-/* Inserta los registros de iva de la factura emitida
-* REQUIERE tabla ticketToInvoice
-*
-* @param vInvoice Id de la factura
-*/
+
DELETE FROM invoiceOutTax
WHERE invoiceOutFk = vInvoice;
@@ -52705,11 +51211,7 @@ ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `itemTagArrangedUpdate`(IN vItem BIGINT)
BEGIN
-/**
- * Actualiza la tabla itemTagArranged
- *
- * @param vItem El Id_item de toda la vida. Si es cero, equivale a todos.
- **/
+
DELETE
FROM itemTagArranged
WHERE vItem IS NULL
@@ -52807,11 +51309,7 @@ ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `itemTagUpdatePriority`(IN vItem INT)
BEGIN
-/*
-* Recalcula las prioridades de articleTag
-*
-* @param vItem Id_Article. Si es 0, lo recalcula todo
-*/
+
SET vItem = IFNULL(vItem,0);
@@ -52871,14 +51369,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `logAdd`(vOriginFk INT, vActionCode VARCHAR(45), vTypeCode VARCHAR(45), vDescription TEXT)
BEGIN
-/**
- * Guarda las acciones realizadas por el usuario
- *
- * @param vOriginFk Id del registro de origen
- * @param vActionCode Código de la acción {insert | delete | update}
- * @param vTypeCode Código que referencia a la tabla.
- * @param descripcion Descripción de la acción realizada por el usuario
- */
+
DECLARE vTableName VARCHAR(45);
SELECT logTableName INTO vTableName
@@ -52914,12 +51405,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `logShow`(vOriginFk INT, vTypeCode VARCHAR(45))
BEGIN
-/**
- * Muestra las acciones realizadas por el usuario
- *
- * @param vOriginFk Id del registro de origen
- * @param vTypeCode Código que referencia a la tabla.
- */
+
DECLARE vTableName VARCHAR(45);
SELECT logTableName INTO vTableName
@@ -53023,7 +51509,7 @@ BEGIN
DROP TEMPORARY TABLE IF EXISTS vn2008.Tickets_to_fusion;
- -- He usado el sql_query porque da error la variable strId_Tickets puesta dentro del IN()
+
CALL hedera.sql_query(sql_printf('
CREATE TEMPORARY TABLE vn2008.Tickets_to_fusion
SELECT Id_Ticket, Localizacion
@@ -53078,11 +51564,7 @@ BEGIN
CALL vn2008.Ditacio(vMainTicket,'Fusion','T',worker,messageLog,NULL);
DELETE ts FROM vn2008.Tickets_state ts JOIN vn2008.Tickets_to_fusion t USING(Id_Ticket);
- /*
- UPDATE vncontrol.inter M
- JOIN vn2008.Tickets_to_fusion USING(Id_Ticket)
- SET M.Id_Ticket = vMainTicket;
- */
+
END IF;
END ;;
@@ -53107,7 +51589,7 @@ BEGIN
DECLARE vCategoryId INT;
DECLARE vIsEnabled TINYINT(1);
- -- Obtenemos los datos de la categoría
+
SELECT c.id, c.isEnabled INTO vCategoryId, vIsEnabled FROM vn.noticeCategory c WHERE keyName = vCategoryKey;
IF vn.noticeHasActive(vCategoryKey, vRecipient) AND vIsEnabled THEN
@@ -53136,13 +51618,7 @@ ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `observationAdd`(vOriginFk INT, vTableCode VARCHAR(45), vDescription TEXT)
BEGIN
-/**
- * Guarda las observaciones realizadas por el usuario
- *
- * @param vOriginFk Id del registro de origen
- * @param vTypeCode Código que referencia a la tabla.
- * @param descripcion Texto de la observacion
- */
+
DECLARE vTableName VARCHAR(45);
SET vTableName = CONCAT(vTableCode,'Observation');
@@ -53177,13 +51653,7 @@ ALTER DATABASE `vn` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `printTrolleyLabel`(vTicket INT, vPrinter INT, vReport INT)
BEGIN
-/**
- * Inserta en la cola de impresion una nueva etiqueta de carro, para el sacador
- *
- * @param vTicket Numero del ticket
- * @param vPrinter Numero de impresora
- * @param vReport Numero del informe
- **/
+
DECLARE vlabelCount INT DEFAULT 0;
DECLARE PRIORITY INT DEFAULT 3;
DECLARE vWorker INT;
@@ -53386,11 +51856,7 @@ ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `stockTraslation`(vDate DATE)
BEGIN
- /**
- * Calcula el stock del vWarehouse desde FechaInventario hasta v_date
- sin tener en cuenta las salidas del mismo dia vDate
- para ver el transporte a reservar
- **/
+
DECLARE vWarehouse INT DEFAULT 7;
@@ -53434,10 +51900,7 @@ ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `ticketClosure`()
BEGIN
-/**
- * Realiza el cierre de todos los
- * tickets de la table ticketClosure.
- */
+
DECLARE vDone BOOL;
DECLARE vClientFk INT;
@@ -53468,11 +51931,11 @@ BEGIN
DECLARE cur CURSOR FOR
SELECT ticketFk FROM tmp.ticketClosure;
- -- DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
- -- DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN
- -- ROLLBACK;
- -- RESIGNAL;
- -- END;
+
+
+
+
+
INSERT INTO dailyTaskLog(state) VALUES('ticketClosure START');
@@ -53488,7 +51951,7 @@ BEGIN
LEAVE proc;
END IF;
- -- ticketClosure start
+
INSERT INTO dailyTaskLog(state) VALUES(CONCAT('ticketClosure: ', vTicketFk, ' START'));
SELECT 1;
SELECT
@@ -53520,11 +51983,11 @@ BEGIN
LEFT JOIN agencyWarehouse aw ON a.id = aw.agencyFk AND t.warehouseFk = aw.warehouseFk
WHERE t.id = vTicketFk;
SELECT 2;
- -- Fusión de ticket
+
CALL mergeTicketUnattended(vTicketFk, TRUE);
IF vWarehouseFk = vWarehouseVnh OR vWareHouseFk = vWarehouseFloramondo THEN
SELECT 2.2;
- -- Número de expediciones con cubos retornables
+
SELECT COUNT(*) INTO vhasPackage
FROM expedition e
JOIN package p ON p.itemFk = e.itemFk
@@ -53534,7 +51997,7 @@ BEGIN
IF vhasPackage THEN
- -- Si no existe un ticket de embalajes creamos uno, de lo contrario cogemos el actual
+
SELECT id INTO vNewPackageTicket
FROM ticket
WHERE companyFk = vCompanyCcs
@@ -53548,7 +52011,7 @@ BEGIN
CALL ticketCreate(vClientFk, CURDATE(), vWarehouseFk, vCompanyCcs, '', vAgencyPackage, '', DATE_ADD(CURDATE(), INTERVAL 1 DAY), vNewPackageTicket);
END IF;
SELECT 2.3;
- -- Retornables van al ticket de la empresa CCs
+
INSERT INTO movement (item, ticket, concept, amount, price, priceFixed)
(SELECT e.itemFk, vNewPackageTicket, i.name, COUNT(*) AS amount, getSpecialPrice(e.itemFk, vClientFk), 1
FROM expedition e
@@ -53559,7 +52022,7 @@ BEGIN
END IF;
- -- No retornables o no catalogados
+
INSERT INTO movement (item, ticket, concept, amount, price, priceFixed)
(SELECT e.itemFk, vTicketFk, i.name, COUNT(*) AS amount, getSpecialPrice(e.itemFk, vClientFk), 1
FROM expedition e
@@ -53568,12 +52031,12 @@ BEGIN
WHERE e.ticketFk = vTicketFk AND IFNULL(p.isPackageReturnable, 0) = 0
GROUP BY e.itemFk);
- -- Albaran_print
+
CALL ticketTrackingAdd(vTicketFk, (SELECT vn.getAlert3State(vTicketFk)), 20);
INSERT INTO printServerQueue(priorityFk, reportFk, param1) VALUES(vPriority, vReportDeliveryNote, vTicketFk);
ELSE
- -- Inserción de los continentes: cajas, cubos...
+
INSERT INTO movement (item, ticket, concept, amount, price, priceFixed)
(SELECT e.item, vTicketFk, i.name, COUNT(*) AS amount, getSpecialPrice(e.itemFk, vClientFk), 1
FROM expedition e
@@ -53584,9 +52047,9 @@ BEGIN
IF(vCredit <= 1 OR vCompanyFk = vCompanyBlk OR vPayMethod = vPayMethodCard) THEN
SELECT 4;
- -- Facturacion rapida
+
CALL ticketTrackingAdd(vTicketFk, 'DELIVERED', 20);
- -- Facturar si está contabilizado
+
IF vIsTaxDataChecked THEN
IF (SELECT clientTaxArea(vClientFk, vCompanyFk)) = 'NATIONAL' THEN
@@ -53604,12 +52067,12 @@ BEGIN
END IF;
ELSE
SELECT 5;
- -- Albaran_print
+
CALL ticketTrackingAdd(vTicketFk, (SELECT vn.getAlert3State(vTicketFk)), 20);
INSERT INTO printServerQueue(priorityFk, reportFk, param1) VALUES(vPriority, vReportDeliveryNote, vTicketFk);
END IF;
- -- ticketClosure end
+
INSERT INTO dailyTaskLog(state) VALUES(CONCAT('ticketClosure: ', vTicketFk, ' END'));
END LOOP;
@@ -53634,13 +52097,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `ticketClosureAgencyList`(vWarehouseFk INT, vDateTo DATE)
BEGIN
-/**
- * Inserta los tickets de todos los almacenes en la tabla temporal
- * para ser cerrados.
- *
- * @param vWarehouseFk Id del almacén
- * @param vDate Fecha del cierre
- */
+
DROP TEMPORARY TABLE IF EXISTS tmp.ticketClosure;
@@ -53681,12 +52138,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `ticketClosureAgencyListAdd`(vAgencyModeFk INT)
BEGIN
-/**
- * Prepara un listado de agencias sobre los que se realizará el cierre.
- * Es necesario llamar al procedimiento por cada agencia.
- *
- * @param vAgencyModeFk Id almacén
- */
+
CREATE TEMPORARY TABLE IF NOT EXISTS tmp.ticketClosureAgencyList (
`agencyModeFk` INT,
PRIMARY KEY(agencyModeFk)) ENGINE = MEMORY;
@@ -53710,12 +52162,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `ticketClosureMultiWarehouse`(vDateTo DATE)
BEGIN
-/**
- * Inserta los tickets de todos los almacenes en la tabla temporal
- * para ser cerrados.
- *
- * @param vDate Fecha del cierre
- */
+
DROP TEMPORARY TABLE IF EXISTS tmp.ticketClosure;
@@ -53753,14 +52200,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `ticketClosureRoute`(vWarehouseFk INT, vRouteFk INT, vDateTo DATE)
BEGIN
-/**
- * Inserta los tickets de la ruta en la tabla temporal
- * para ser cerrados.
- *
- * @param vWarehouseFk Almacén a cerrar
- * @param vRouteFk Ruta a cerrar
- * @param vDate Fecha del cierre
- */
+
DROP TEMPORARY TABLE IF EXISTS tmp.ticketClosure;
@@ -53800,12 +52240,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `ticketClosureTicket`(vTicketFk INT)
BEGIN
-/**
- * Inserta el ticket en la tabla temporal
- * para ser cerrado.
- *
- * @param vTicketFk Id del ticket
- */
+
DROP TEMPORARY TABLE IF EXISTS tmp.ticketClosure;
@@ -53842,13 +52277,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `ticketClosureWarehouse`(vWarehouseFk INT, vDateTo DATE)
BEGIN
-/**
- * Inserta los tickets del almacen en la tabla temporal
- * para ser cerrados.
- *
- * @param vWarehouseFk Almacén a cerrar
- * @param vDate Fecha del cierre
- */
+
DROP TEMPORARY TABLE IF EXISTS tmp.ticketClosure;
@@ -54072,10 +52501,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `ticketToInvoiceByRef`(IN vInvoiceRef VARCHAR(15))
BEGIN
-/* Para tickets ya facturados, vuelve a repetir el proceso de facturación.
-*
-* @param vInvoiceRef Factura
-*/
+
DECLARE vInvoice INT;
DECLARE vCountry INT;
@@ -54158,12 +52584,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `ticketTrackingAdd`(vTicketFk INT, vState VARCHAR(25) CHARSET UTF8, vWorkerFk INT)
BEGIN
-/**
- * Inserta un registro de cambios en un ticket.
- * @param vTicketFk Id del ticket
- * @param vState Código del estado
- * @param vWorkerFk Id del trabajador
- */
+
INSERT INTO ticketTracking (stateFk, ticketFk, workerFk)
SELECT s.id, vTicketFk, vWorkerFk FROM state s WHERE s.code = vState;
END ;;
@@ -54306,7 +52727,7 @@ CREATE TABLE `ACL` (
`principalType` varchar(512) CHARACTER SET utf8 DEFAULT NULL,
`principalId` varchar(512) CHARACTER SET utf8 DEFAULT NULL,
PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -54915,9 +53336,13 @@ CREATE TABLE `user` (
`emailVerified` tinyint(1) DEFAULT NULL,
`verificationToken` varchar(512) CHARACTER SET utf8 DEFAULT NULL,
PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
+--
+-- Dumping events for database 'salix'
+--
+
--
-- Dumping routines for database 'salix'
--
@@ -54936,54 +53361,7 @@ BEGIN
call vn2008.production_control_source(idWarehouse, scopeDays);
- /*
- DROP TEMPORARY TABLE IF EXISTS FakeProduction_tmp;
- set @id=0;
-
- CREATE TEMPORARY TABLE FakeProduction_tmp
- ENGINE=MEMORY AS
- (select @id:=@id+1 as id,
- tmp.Id_Ticket as ticketFk,
- tmp.Id_Cliente as clientFk,
- tmp.Alias as client,
- tmp.Fecha as `date`,
- tmp.Hora as hour,
- tmp.POBLACION as city,
- tmp.PROVINCIA as province,
- tmp.province_id as provinceFk,
- tmp.Agencia as agency,
- tmp.agency_id as agencyFk,
- tmp.lines,
- tmp.m3,
- tmp.problems,
- tmp.problem,
- tmp.state as stateFk,
- t.Id_Trabajador as workerfk,
- concat(t.Nombre, ' ', t.Apellidos) as worker,
- tt.Id_Trabajador as salesPersonFk,
- concat(tt.Nombre, ' ', tt.Apellidos) as salesPerson,
- s.name as state,
- tmp.Cajas as boxes,
- tmp.Id_Ruta as routeFk
- from tmp.production_buffer tmp
- inner join vn2008.state s
- on tmp.state = s.id
- inner join vn2008.Trabajadores t
- on tmp.CodigoTrabajador = t.CodigoTrabajador collate utf8_unicode_ci
- inner join vn2008.Trabajadores tt
- on tmp.Comercial = tt.CodigoTrabajador collate utf8_unicode_ci
- );
-
- DELETE FROM FakeProduction;
-
- INSERT INTO FakeProduction
- SELECT *
- FROM FakeProduction_tmp
- WHERE routeFk IS NOT NULL
- GROUP BY RouteFk
- ORDER BY routeFk;
- */
END ;;
DELIMITER ;
@@ -55345,6 +53723,10 @@ CREATE TABLE `ventas_contables` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
+--
+-- Dumping events for database 'bs'
+--
+
--
-- Dumping routines for database 'bs'
--
@@ -55361,11 +53743,7 @@ ALTER DATABASE `bs` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `bancos_evolution_add`()
BEGIN
-/*
-Inserta en la tabla bancos_evolution los saldos acumulados
-
-*/
DECLARE vCurrentDate DATE;
@@ -55407,13 +53785,13 @@ SET vCurrentDate = vStartingDate;
,saldo_aux as saldo
FROM bs.bancos_evolution
- WHERE Fecha = TIMESTAMPADD(DAY,-1,vCurrentDate) -- los saldos acumulados del dia anterior
+ WHERE Fecha = TIMESTAMPADD(DAY,-1,vCurrentDate)
UNION ALL
SELECT c.Id_Banco, IFNULL(sum(Entrada),0) - ifnull(sum(Salida),0) as saldo
FROM vn2008.Cajas c
- JOIN vn2008.Bancos b using(Id_Banco) -- saldos de las cajas
+ JOIN vn2008.Bancos b using(Id_Banco)
WHERE cash IN (0,3)
AND Cajafecha = vCurrentDate
AND (Serie = 'MB' OR cash = 3)
@@ -55421,7 +53799,7 @@ SET vCurrentDate = vStartingDate;
UNION ALL
- SELECT id_banco, - importe -- pagos futuros
+ SELECT id_banco, - importe
FROM vn2008.pago
WHERE fecha = vCurrentDate
AND fecha >= CURDATE()
@@ -55429,14 +53807,14 @@ SET vCurrentDate = vStartingDate;
UNION ALL
- SELECT Id_Banco, Entregado -- cobros futuros
+ SELECT Id_Banco, Entregado
FROM vn2008.Recibos
WHERE Fechacobro = vCurrentDate
AND Fechacobro > CURDATE()
UNION ALL
- SELECT sp.Id_Banco, Importe -- saldos de la tabla prevision
+ SELECT sp.Id_Banco, Importe
FROM vn2008.Saldos_Prevision sp
JOIN vn2008.Bancos b using(Id_Banco)
WHERE cash IN (0,3)
@@ -55447,12 +53825,12 @@ SET vCurrentDate = vStartingDate;
)sub
GROUP BY Id_Banco;
- -- Utilizamos el saldo_auxiliar para calcular lo dispuesto en las polizas
+
UPDATE bs.bancos_evolution be
SET saldo_aux = saldo;
- -- Ahora actualizamos la quilla
+
UPDATE bs.bancos_evolution be
LEFT JOIN
(
@@ -55470,7 +53848,7 @@ SET vCurrentDate = vStartingDate;
END WHILE;
- -- Deuda
+
UPDATE bs.bancos_evolution be
JOIN vn2008.Bancos using(Id_Banco)
SET be.deuda = IF(cash = 3, be.saldo_aux, 0)
@@ -55478,10 +53856,10 @@ SET vCurrentDate = vStartingDate;
WHERE Fecha >= vStartingDate;
- -- Liquidez
+
update bs.bancos_evolution set liquidez = saldo - quilla + deuda WHERE Fecha >= vStartingDate;
- -- Disponibilidad
+
update bs.bancos_evolution set `disponibilidad ajena` = - quilla + deuda WHERE Fecha >= vStartingDate;
END ;;
@@ -55761,11 +54139,7 @@ ALTER DATABASE `bs` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `compradores_evolution_add`()
BEGIN
-/*
-Inserta en la tabla compradores_evolution las ventas acumuladas en los ultimos 365 dias
-
-*/
DECLARE datFEC DATE;
@@ -55790,12 +54164,12 @@ SELECT TIMESTAMPADD(DAY,1,MAX(fecha)) INTO datFEC FROM bs.compradores_evolution;
SELECT Id_Trabajador
, importe
FROM bs.compradores_evolution
- WHERE fecha = TIMESTAMPADD(DAY,-1,datFEC) -- las ventas acumuladas del dia anterior
+ WHERE fecha = TIMESTAMPADD(DAY,-1,datFEC)
UNION ALL
SELECT Id_Trabajador
- , importe * IF(v.fecha < datFEC,-1,1) -- se restan las ventas del año anterior y se suman las del actual
+ , importe * IF(v.fecha < datFEC,-1,1)
FROM bs.ventas v
JOIN vn2008.Tipos tp using(tipo_id)
WHERE fecha IN (datFEC, TIMESTAMPADD(DAY,-365,datFEC))
@@ -55832,11 +54206,7 @@ ALTER DATABASE `bs` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `fondo_evolution_add`()
BEGIN
-/*
-Inserta en la tabla fondo_maniobra los saldos acumulados en los ultimos 365 dias
-
-*/
DECLARE datFEC DATE DEFAULT '2015-01-01';
@@ -55845,7 +54215,7 @@ SELECT TIMESTAMPADD(DAY,1,MAX(fecha)) INTO datFEC FROM bs.fondo_maniobra;
WHILE datFEC < CURDATE() DO
- -- esto solo sirve para no aburrirse mientras esperamos...
+
IF day(datFEC) mod 28 = 0 then
SELECT datFEC;
@@ -55920,11 +54290,7 @@ CREATE DEFINER=`root`@`%` PROCEDURE `manaCustomerFill_kk`()
BEGIN
-/* Rellena la tabla caché bs.manaCustomer desde 0
-*
-* Utilizar para reconstruirla en caso de que se corrompa.
-*
-*/
+
DECLARE vFromDated DATE;
DECLARE vToDated DATETIME DEFAULT '2015-12-31 23:59:59';
@@ -55952,7 +54318,7 @@ WHILE NOT isDone DO
JOIN vn2008.Consignatarios cs using(Id_Consigna)
JOIN vn2008.Movimientos m using(Id_Ticket)
JOIN vn2008.Movimientos_componentes mc using(Id_Movimiento)
- WHERE Id_Componente IN (39, 37) -- maná auto y maná
+ WHERE Id_Componente IN (39, 37)
AND Fecha BETWEEN vFromDated AND vToDated
GROUP BY cs.Id_Cliente
) t1
@@ -56217,17 +54583,7 @@ CREATE DEFINER=`root`@`%` PROCEDURE `nocturnEvent_Tickets_Bionizar`()
BEGIN
DECLARE MyDate DATE;
-/*
- DECLARE EXIT HANDLER FOR SQLEXCEPTION
- BEGIN
- GET DIAGNOSTICS CONDITION 2 @errno = MYSQL_ERRNO, @text = MESSAGE_TEXT;
- SELECT CONCAT('ERROR ', IFNULL(@errno,0), ': ', ifnull(@text,'texto'));
- INSERT INTO vn2008.mail (`to`,`subject`,`text`) VALUES ('jgallego@verdnatura.es', 'nocturnEvent_Tickets_Bionizar' ,CONCAT('ERROR ', IFNULL(@errno,0), ': ', ifnull(@text,'texto')));
- INSERT INTO vn2008.mail (`to`,`subject`,`text`) VALUES ('pako@verdnatura.es', 'nocturnEvent_Tickets_Bionizar' ,CONCAT('ERROR ', IFNULL(@errno,0), ': ', ifnull(@text,'texto')));
-
-END;
-*/
SET MyDate = timestampadd(week,-1,curdate());
@@ -56283,7 +54639,7 @@ WHERE time.year = intYEAR and time.month = intMONTH
AND c.Id_Trabajador is not null
GROUP BY c.Id_Trabajador;
--- Ventas cedidas
+
UPDATE vendedores
JOIN
@@ -56302,7 +54658,7 @@ GROUP BY cc.Id_Trabajador_old
SET comisionCedida = cedido, comision = comision - cedido
WHERE año = intYEAR and mes = intMONTH;
--- Ventas arrendadas
+
UPDATE vendedores
JOIN
@@ -56363,11 +54719,7 @@ ALTER DATABASE `bs` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `vendedores_evolution_add`()
BEGIN
-/*
-Inserta en la tabla compradores_evolution las ventas acumuladas en los ultimos 365 dias
-
-*/
DECLARE datFEC DATE;
@@ -56392,12 +54744,12 @@ SELECT TIMESTAMPADD(DAY,1,MAX(fecha)) INTO datFEC FROM bs.vendedores_evolution;
SELECT Id_Trabajador
, importe
FROM bs.vendedores_evolution
- WHERE fecha = TIMESTAMPADD(DAY,-1,datFEC) -- las ventas acumuladas del dia anterior
+ WHERE fecha = TIMESTAMPADD(DAY,-1,datFEC)
UNION ALL
SELECT c.Id_Trabajador
- , importe * IF(v.fecha < datFEC,-1,1) -- se restan las ventas del año anterior y se suman las del actual
+ , importe * IF(v.fecha < datFEC,-1,1)
FROM bs.ventas v
JOIN vn2008.Movimientos m using(Id_Movimiento)
JOIN vn2008.Tickets t using(Id_Ticket)
@@ -56457,7 +54809,7 @@ WHERE fecha between vStartingDate and datEND;
WHILE vEndingDate <= datEND DO
--- Ventes bioniques
+
SELECT vStartingDate,vEndingDate;
INSERT INTO ventas(Id_Movimiento, importe, recargo, fecha, tipo_id, Id_Cliente, empresa_id)
@@ -56494,12 +54846,7 @@ WHILE vEndingDate <= datEND DO
GROUP BY mc.Id_Movimiento
HAVING IFNULL(importe,0) <> 0 OR IFNULL(recargo,0) <> 0;
-/*
-UPDATE vn2008.Movimientos m
-JOIN bs.ventas v ON v.Id_Movimiento = m.Id_Movimiento
-SET m.Costfixat = IFNULL(round(v.importe/m.Cantidad,2),0)
-WHERE v.fecha between vStartingDate and vEndingDate;
-*/
+
SET vStartingDate = TIMESTAMPADD(DAY,1, vStartingDate);
SET vEndingDate = vn2008.dayend(vStartingDate);
@@ -56554,14 +54901,7 @@ ALTER DATABASE `bs` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `ventas_contables_add`(IN vYear INT, IN vMonth INT)
BEGIN
-/**
- * Reemplaza las ventas contables. Es el origen de datos para el balance de Entradas
- *
- * @param vYear Año a reemplazar
- * @param vMonth Mes a reemplazar
- *
- *
- **/
+
DECLARE TIPO_PATRIMONIAL INT DEFAULT 188;
DELETE FROM bs.ventas_contables
@@ -56896,7 +55236,7 @@ CREATE TABLE `role` (
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`)
-) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Roles';
+) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Roles';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -56972,7 +55312,7 @@ CREATE TABLE `user` (
KEY `role` (`role`),
KEY `email` (`email`),
CONSTRAINT `user_ibfk_2` FOREIGN KEY (`role`) REFERENCES `role` (`id`) ON UPDATE CASCADE
-) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Global users';
+) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Global users';
/*!40101 SET character_set_client = @saved_cs_client */;
ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
@@ -57116,6 +55456,10 @@ SET character_set_client = utf8;
1 AS `recoverPass`*/;
SET character_set_client = @saved_cs_client;
+--
+-- Dumping events for database 'account'
+--
+
--
-- Dumping routines for database 'account'
--
@@ -57133,12 +55477,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `toUnixDays`(vDate DATE) RETURNS int(11)
DETERMINISTIC
BEGIN
-/**
- * Devuelve el timestamp unix en días de una fecha.
- *
- * @param vData La fecha
- * @return Unix timestamp en días
- */
+
RETURN UNIX_TIMESTAMP(vDate) DIV 86400;
END ;;
DELIMITER ;
@@ -57161,11 +55500,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `userGetId`() RETURNS int(11)
DETERMINISTIC
BEGIN
-/**
- * Devuelve el identificador del usuario actual.
- *
- * @return El id del usuario
- */
+
DECLARE vUser INT DEFAULT NULL;
SELECT user INTO vUser FROM userSession
@@ -57197,14 +55532,7 @@ ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `userGetMysqlRole`(vUserName VARCHAR(255)) RETURNS varchar(255) CHARSET utf8
BEGIN
-/**
- * A partir de un nombre de usuario devuelve el rol
- * de MySQL asociado y con el que deberia autenticarse
- * cuando se utilice sistemas de autenticación externos.
- *
- * @param vUserName El nombre de usuario
- * @return El rol de MySQL asociado
- */
+
DECLARE vRole VARCHAR(255);
SELECT CONCAT(IF(r.hasLogin, 'z-', ''), r.name) INTO vRole
@@ -57234,14 +55562,10 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `userGetName`() RETURNS varchar(30) CHARSET utf8
DETERMINISTIC
BEGIN
-/**
- * Devuelve el nombre del usuario actual.
- *
- * @return El nombre de usuario
- */
+
DECLARE vUser VARCHAR(30) DEFAULT NULL;
- -- FIXME: Esta consulta bloquea la base de datos
+
SELECT userName INTO vUser
FROM userSession
WHERE connectionId = CONNECTION_ID();
@@ -57271,12 +55595,7 @@ ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `userGetNameFromId`(vId INT) RETURNS varchar(30) CHARSET utf8
BEGIN
-/**
- * Obtener nombre de usuari a partir de su id
- *
- * @param vId Id del usuario
- * @return Nombre de usuario
- */
+
DECLARE vName VARCHAR(30);
SELECT `name` INTO vName
@@ -57305,12 +55624,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `userHasRole`(vRoleName VARCHAR(255)) RETURNS tinyint(1)
DETERMINISTIC
BEGIN
-/**
- * Comprueba si el usuario actual tiene asociado un rol.
- *
- * @param vRoleName Nombre del rol a comprobar
- * @return %TRUE si tiene el rol, %FALSE en caso contrario
- */
+
DECLARE vRoleId INT;
SELECT id INTO vRoleId
@@ -57339,12 +55653,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `userHasRoleId`(vRoleId INT) RETURNS tinyint(1)
DETERMINISTIC
BEGIN
-/**
- * Comprueba si el usuario actual tiene asociado un rol.
- *
- * @param vRoleId Identificador del rol a comprobar
- * @return %TRUE si tiene el rol, %FALSE en caso contrario
- */
+
DECLARE vHasRole BOOL DEFAULT FALSE;
SELECT COUNT(*) > 0 INTO vHasRole
@@ -57372,20 +55681,7 @@ ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `privSync`()
proc: BEGIN
-/**
- * Sincroniza los permisos de los usuarios 'rol' de MySQL
- * en base a la jerarquía de roles. Los usuarios rol resultantes
- * de la mezcla de permisos serán nombrados singuiendo el patrón
- * z-[nombre_rol].
- *
- * Para que el procedimiento funcione debe de existir un usuario
- * any@% que se usara como plantilla base.
- *
- * ¡Atención! Este procedimiento solo debe ser llamado cuando se
- * modifiquen los privilegios de MySQL. Si se modifica la jerarquía
- * de roles, se debe llamar al procedimiento roleSync() que llama a
- * este internamente.
- */
+
DECLARE vTplUser VARCHAR(255) DEFAULT 'any';
DECLARE vHost VARCHAR(255) DEFAULT '%';
DECLARE vPrefix VARCHAR(2) DEFAULT 'z-';
@@ -57394,7 +55690,7 @@ proc: BEGIN
DECLARE vTplHost VARCHAR(255);
DECLARE vPrefixedLike VARCHAR(255);
- -- Comprueba que el usuario plantilla existe
+
SELECT COUNT(*) > 0, `Host`
INTO vTplExists, vTplHost
@@ -57407,7 +55703,7 @@ proc: BEGIN
SET MESSAGE_TEXT = 'TEMPLATE_USER_NOT_EXISTS';
END IF;
- -- Borra todos los privilegios calculados
+
SET vPrefixedLike = CONCAT(vPrefix, '%');
@@ -57429,7 +55725,7 @@ proc: BEGIN
DELETE FROM mysql.proxies_priv
WHERE `Proxied_user` LIKE vPrefixedLike;
- -- Tablas temporales
+
DROP TEMPORARY TABLE IF EXISTS tRole;
CREATE TEMPORARY TABLE tRole
@@ -57451,7 +55747,7 @@ proc: BEGIN
JOIN roleRole rr ON rr.role = r.id
JOIN role ri ON ri.id = rr.inheritsFrom;
- -- Vueve a crear el usuario
+
INSERT INTO mysql.user (
`User`,
@@ -57510,7 +55806,7 @@ proc: BEGIN
CONCAT(prefixedRole, '@', vTplHost)
FROM tRole;
- -- Copia los privilegios globales del usuario
+
DROP TEMPORARY TABLE IF EXISTS tUserPriv;
CREATE TEMPORARY TABLE tUserPriv
@@ -57619,7 +55915,7 @@ proc: BEGIN
DROP TEMPORARY TABLE tUserPriv;
- -- Copia los privilegios a nivel de esquema
+
INSERT INTO mysql.db (
`User`,
@@ -57674,7 +55970,7 @@ proc: BEGIN
AND t.`Host`= vHost
GROUP BY r.prefixedRole, t.`Db`;
- -- Copia los privilegios a nivel de tabla
+
INSERT INTO mysql.tables_priv (
`User`,
@@ -57701,7 +55997,7 @@ proc: BEGIN
AND t.`Host`= vHost
GROUP BY r.prefixedRole, t.`Db`, t.`Table_name`;
- -- Copia los privilegios a nivel de columna
+
INSERT INTO mysql.columns_priv (
`User`,
@@ -57726,7 +56022,7 @@ proc: BEGIN
AND t.`Host`= vHost
GROUP BY r.prefixedRole, t.`Db`, t.`Table_name`, t.`Column_name`;
- -- Copia los privilegios de los procedimientos
+
INSERT IGNORE INTO mysql.procs_priv (
`User`,
@@ -57752,7 +56048,7 @@ proc: BEGIN
ON t.`User` = r.inheritsFrom
AND t.`Host`= vHost;
- -- Libera memoria
+
DROP TEMPORARY TABLE
tRole,
@@ -57779,13 +56075,7 @@ ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `roleGetDescendents`(vRole INT)
BEGIN
-/**
- * Obtiene los identificadores de todos los subroles
- * implementados por un rol (Incluido el mismo).
- *
- * @param vRole Identificador del rol
- * @table tmp.role Subroles implementados por el rol
- */
+
DECLARE vIsRoot BOOL;
DROP TEMPORARY TABLE IF EXISTS
@@ -57822,7 +56112,7 @@ BEGIN
UNTIL ROW_COUNT() <= 0
END REPEAT;
- -- If it is root all the roles are added
+
SELECT COUNT(*) > 0 INTO vIsRoot
FROM tmp.role
@@ -57833,7 +56123,7 @@ BEGIN
SELECT id FROM role;
END IF;
- -- Cleaning
+
DROP TEMPORARY TABLE
parents, childs;
@@ -57857,12 +56147,7 @@ ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `roleSync`()
BEGIN
-/**
- * Sincroniza la tabla @roleRole con la jerarquía de roles
- * actual. Este procedimiento debe ser llamado cada vez que
- * se modifique la tabla @roleInherit para que los cambios
- * realizados sobre esta sean efectivos.
- */
+
DECLARE vRoleId INT;
DECLARE vDone BOOL;
@@ -57914,14 +56199,7 @@ ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `userChangePassword`(vOldPassword VARCHAR(255), vPassword VARCHAR(255))
BEGIN
-/**
- * Cambia la contraseña del usuario actual,si el usuario se
- * encuntra en modo restauración se ignorará la contraseña
- * actual.
- *
- * @param vOldPassword Contraseña actual
- * @param vPassword Nueva contraseña
- */
+
DECLARE vPasswordOk BOOL;
SELECT `password` = MD5(vOldPassword) OR recoverPass
@@ -57954,13 +56232,7 @@ ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `userCheckName`(vUserName VARCHAR(255))
BEGIN
-/**
- * Comprueba que el nombre de usuario reune los requisitos
- * de sintaxis necesarios, en caso contrario lanza una
- * excepción.
- * El nombre de usuario solo debe contener letras minúsculas
- * o, a partir del segundo carácter, números o subguiones.
- **/
+
IF vUserName NOT REGEXP '^[a-z0-9_]*$' THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'INVALID_USER_NAME';
@@ -57985,12 +56257,7 @@ ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `userCheckPassword`(vPassword VARCHAR(255))
BEGIN
-/**
- * Comprueba si la contraseña cumple los requisitos de seguridad
- * establecidos. Lanza una excepción si no se cumplen.
- *
- * @param vPassword Contraseña a comprobar
- */
+
DECLARE vChr CHAR(1);
DECLARE vPasswordOk TINYINT;
DECLARE vI TINYINT DEFAULT 1;
@@ -58055,12 +56322,7 @@ ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `userLogin`(vUserName VARCHAR(255), vPassword VARCHAR(255))
BEGIN
-/**
- * Incicia sesión utilizando las credenciales del usuario.
- *
- * @param vUserName El nombre de usuario
- * @param vPassword La contraseña del usuario
- */
+
DECLARE vUserId INT DEFAULT NULL;
SELECT id INTO vUserId FROM user
@@ -58096,14 +56358,7 @@ ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `userLoginWithName`(vUserName VARCHAR(255))
BEGIN
-/**
- * Incicia sesión utilizando únicamente el nombre del
- * usuario. Este procedimiento esta pensado para el uso
- * de los desarrolladores por lo que los usuarios normales
- * no deberían tener permisos de ejecución sobre él.
- *
- * @param vUserName El nombre de usuario
- */
+
DECLARE vUserId INT DEFAULT NULL;
SELECT id INTO vUserId FROM user
@@ -58131,10 +56386,7 @@ ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `userLogout`()
BEGIN
-/**
- * Cierra la sesión del usuario y limpia registros
- * residuales.
- */
+
DECLARE vCleanTime DATETIME
DEFAULT TIMESTAMPADD(MINUTE, -30, NOW());
@@ -58161,15 +56413,7 @@ ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `userSetPassword`(vUserName VARCHAR(255), vPassword VARCHAR(255))
BEGIN
-/**
- * Cambia la contraseña del usuario pasado como parámetro.
- * Solo los administradores deberian de tener privilegios de
- * ejecución sobre el procedimiento ya que no solicita la
- * contraseña actual del usuario.
- *
- * @param vUserName Nombre de usuario
- * @param vPassword Nueva contraseña
- */
+
CALL userCheckPassword (vPassword);
UPDATE user SET
@@ -58445,6 +56689,10 @@ CREATE TABLE `weekly_sales` (
) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
+--
+-- Dumping events for database 'cache'
+--
+
--
-- Dumping routines for database 'cache'
--
@@ -58487,14 +56735,14 @@ proc: BEGIN
LEAVE proc;
END IF;
- -- Limpia las caches antiguas
+
DELETE a
FROM available a
LEFT JOIN cache_calc c ON c.id = a.calc_id
WHERE c.id IS NULL;
- -- Calcula algunos parámetros necesarios
+
SET v_date_ini = TIMESTAMP(v_date, '00:00:00');
SET v_date_end = TIMESTAMP(TIMESTAMPADD(DAY, 4, v_date), '23:59:59');
@@ -58504,7 +56752,7 @@ proc: BEGIN
SELECT SUBTIME(NOW(), reserve_time) INTO v_reserve_date
FROM hedera.order_config;
- -- Calcula el ultimo dia de vida para cada producto
+
DROP TEMPORARY TABLE IF EXISTS item_range;
CREATE TEMPORARY TABLE item_range
@@ -58526,27 +56774,8 @@ proc: BEGIN
JOIN vn2008.Articles a ON a.Id_Article = c.item_id
JOIN vn2008.Tipos t ON t.tipo_id = a.tipo_id
HAVING date_end >= v_date_ini OR date_end IS NULL;
-/*
- -- Tabla con el ultimo dia de precios fijados para cada producto que hace un replace de la anterior
+
- DROP TEMPORARY TABLE IF EXISTS item_range_copy;
- CREATE TEMPORARY TABLE item_range_copy LIKE item_range;
- INSERT INTO item_range_copy
- SELECT * FROM item_range;
-
- REPLACE item_range
- SELECT item_id, TIMESTAMP(date_end, '23:59:59') date_end FROM (
- SELECT p.item_id, p.date_end
- FROM vn2008.price_fixed p
- LEFT JOIN item_range_copy i USING(item_id)
- WHERE IFNULL(i.date_end,v_date_ini) BETWEEN p.date_start AND p.date_end
- AND warehouse_id IN (0, v_warehouse)
- ORDER BY item_id, warehouse_id DESC, date_end DESC
- ) t GROUP BY item_id;
-
- DROP TEMPORARY TABLE item_range_copy;
-*/
- -- Replica la tabla item_range para poder usarla varias veces en la misma consulta
DROP TEMPORARY TABLE IF EXISTS item_range_copy1;
CREATE TEMPORARY TABLE item_range_copy1 LIKE item_range;
@@ -58568,7 +56797,7 @@ proc: BEGIN
INSERT INTO item_range_copy4
SELECT * FROM item_range;
- -- Calcula el ATP
+
DELETE FROM available WHERE calc_id = v_calc;
@@ -58671,9 +56900,9 @@ proc: BEGIN
LEAVE proc;
END IF;
- -- Limpia las caches antiguas
- IF TRUE -- GET_LOCK('available/clean', 1)
+
+ IF TRUE
THEN
DELETE FROM available WHERE calc_id NOT IN (
SELECT cc.id
@@ -58681,10 +56910,10 @@ proc: BEGIN
JOIN cache_calc cc ON c.id = cc.cache_id
WHERE c.`name` = 'available');
- -- DO RELEASE_LOCK('available/clean');
+
END IF;
- -- Calcula algunos parámetros necesarios
+
SET v_date_ini = TIMESTAMP(v_date, '00:00:00');
SET v_date_end = TIMESTAMP(TIMESTAMPADD(DAY, 4, v_date), '23:59:59');
@@ -58694,7 +56923,7 @@ proc: BEGIN
SELECT SUBTIME(NOW(), reserve_time) INTO v_reserve_date
FROM hedera.order_config;
- -- Calcula el ultimo dia de vida para cada producto
+
DROP TEMPORARY TABLE IF EXISTS item_range;
CREATE TEMPORARY TABLE item_range
@@ -58716,27 +56945,8 @@ proc: BEGIN
JOIN vn2008.Articles a ON a.Id_Article = c.item_id
JOIN vn2008.Tipos t ON t.tipo_id = a.tipo_id
HAVING date_end >= v_date_ini OR date_end IS NULL;
-/*
- -- Tabla con el ultimo dia de precios fijados para cada producto que hace un replace de la anterior
+
- DROP TEMPORARY TABLE IF EXISTS item_range_copy;
- CREATE TEMPORARY TABLE item_range_copy LIKE item_range;
- INSERT INTO item_range_copy
- SELECT * FROM item_range;
-
- REPLACE item_range
- SELECT item_id, TIMESTAMP(date_end, '23:59:59') date_end FROM (
- SELECT p.item_id, p.date_end
- FROM vn2008.price_fixed p
- LEFT JOIN item_range_copy i USING(item_id)
- WHERE IFNULL(i.date_end,v_date_ini) BETWEEN p.date_start AND p.date_end
- AND warehouse_id IN (0, v_warehouse)
- ORDER BY item_id, warehouse_id DESC, date_end DESC
- ) t GROUP BY item_id;
-
- DROP TEMPORARY TABLE item_range_copy;
-*/
- -- Replica la tabla item_range para poder usarla varias veces en la misma consulta
DROP TEMPORARY TABLE IF EXISTS item_range_copy1;
CREATE TEMPORARY TABLE item_range_copy1 LIKE item_range;
@@ -58758,7 +56968,7 @@ proc: BEGIN
INSERT INTO item_range_copy4
SELECT * FROM item_range;
- -- Calcula el ATP
+
DELETE FROM available WHERE calc_id = v_calc;
@@ -59056,7 +57266,7 @@ BEGIN
DECLARE v_cache_name VARCHAR(255);
DECLARE v_params VARCHAR(255);
- -- Libera el bloqueo y actualiza la fecha de ultimo refresco.
+
UPDATE cache_calc cc JOIN cache c ON c.id = cc.cache_id
SET
@@ -59103,7 +57313,7 @@ proc: BEGIN
SET v_params = IFNULL(v_params, '');
- -- Si el servidor se ha reiniciado invalida todos los calculos.
+
SELECT COUNT(*) > 0 INTO v_valid FROM cache_valid;
@@ -59113,7 +57323,7 @@ proc: BEGIN
INSERT INTO cache_valid (valid) VALUES (TRUE);
END IF;
- -- Obtiene un bloqueo exclusivo para que no haya problemas de concurrencia.
+
SET v_lock_id = CONCAT_WS('/', v_cache_name, v_params);
@@ -59124,7 +57334,7 @@ proc: BEGIN
LEAVE proc;
END IF;
- -- Comprueba si el calculo solicitado existe y esta actualizado.
+
SELECT c.id, ca.id, ca.expires
INTO v_cache_id, v_calc, v_expires
@@ -59133,7 +57343,7 @@ proc: BEGIN
ON ca.cache_id = c.id AND ca.params = v_params COLLATE 'utf8_general_ci'
WHERE c.name = v_cache_name COLLATE 'utf8_general_ci';
- -- Si existe una calculo valido libera el bloqueo y devuelve su identificador.
+
IF !v_refresh AND NOW() < v_expires
THEN
@@ -59142,7 +57352,7 @@ proc: BEGIN
LEAVE proc;
END IF;
- -- Si el calculo no existe le crea una entrada en la tabla de calculos.
+
IF v_calc IS NULL
THEN
@@ -59164,7 +57374,7 @@ proc: BEGIN
WHERE id = v_calc;
END IF;
- -- Si se debe recalcular mantiene el bloqueo y devuelve su identificador.
+
SET v_refresh = TRUE;
END ;;
@@ -59283,7 +57493,7 @@ OPEN rs;
FETCH rs INTO rsDeparture, rsHoras , rsInicio;
--- SELECT rsDeparture, rsHoras , rsInicio, myWarehouse;
+
WHILE NOT done DO
@@ -59301,7 +57511,7 @@ WHILE NOT done DO
FETCH rs INTO rsDeparture, rsHoras , rsInicio;
- -- SELECT rsDeparture, rsHoras , rsInicio;
+
END IF;
@@ -59532,7 +57742,7 @@ ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_general_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `equaliza`(wh_id INT)
BEGIN
- -- DEPRECATED usar equalizator_refesh
+
@@ -59560,57 +57770,7 @@ proc: BEGIN
DECLARE datEQ DATETIME;
DECLARE timDIF TIME;
DECLARE v_calc INT;
- /* JGF 2017-03-20 cuelga el sistema
- CALL cache_calc_start (v_calc, v_refresh, 'equalizator', wh_id);
- IF !v_refresh
- THEN
- LEAVE proc;
- END IF;
-
- REPLACE equalizator (warehouse_id, Vista, Encajado, Impreso, Pedido)
- SELECT
- t.warehouse_id,
- Vista,
- sum(IF(t.Factura IS NOT NULL
- OR t.Etiquetasemitidas
- OR IFNULL(ticket_id,0), Cantidad * r.cm3, 0)) as encajado,
- sum(IF(PedidoImpreso, Cantidad * r.cm3,0)) as impreso,
- sum(Cantidad * r.cm3 ) as Pedido
- FROM
- vn2008.Movimientos m
- JOIN
- vn2008.Tickets t USING (Id_Ticket)
- JOIN
- bi.rotacion r on r.warehouse_id = t.warehouse_id and r.Id_Article = m.Id_Article
- JOIN
- vn2008.Agencias a ON t.Id_Agencia = a.Id_Agencia
- JOIN
- vn2008.Clientes C USING (Id_Cliente)
- LEFT JOIN
- (SELECT distinct
- ticket_id
- FROM
- vn2008.expeditions e JOIN vn2008.Tickets t
- ON t.Id_Ticket = e.ticket_id
- WHERE Fecha >= curDate()
- ) exp ON ticket_id = Id_Ticket
- WHERE
- invoice And Fecha >= curDate()
- AND wh_id in (0,t.warehouse_id)
- AND fecha < (TIMESTAMPADD(DAY, 1, CURDATE()))
- GROUP BY t.warehouse_id, Vista;
-
- -- Reducimos las cantidades para que el grafico tenga sentido
-
- UPDATE equalizator SET
- pedido = (pedido - (impreso - encajado) - encajado) / 1000000,
- impreso = (impreso - encajado) / 1000000,
- encajado = encajado / 1000000
- WHERE wh_id in (0,warehouse_id);
-
- CALL cache_calc_end (v_calc);
- */
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -59647,7 +57807,7 @@ proc: BEGIN
LEAVE proc;
END IF;
- -- Limpia las caches antiguas
+
DELETE FROM item_range WHERE calc_id NOT IN (
SELECT cc.id
@@ -59655,13 +57815,13 @@ proc: BEGIN
JOIN cache_calc cc ON c.id = cc.cache_id
WHERE c.`name` = 'item_range');
- -- Calculos previos
+
CALL last_buy_refresh (FALSE);
SET v_date_inv = vn2008.date_inv();
- -- Calcula el ultimo dia de vida para cada producto
+
DROP TEMPORARY TABLE IF EXISTS tmp.item_range;
CREATE TEMPORARY TABLE tmp.item_range
@@ -59686,7 +57846,7 @@ proc: BEGIN
WHERE b.warehouse_id = v_warehouse
HAVING date_end >= v_date OR date_end IS NULL;
- -- Tabla con el ultimo dia de precios fijados para cada producto
+
DROP TEMPORARY TABLE IF EXISTS tmp.fix_range;
CREATE TEMPORARY TABLE tmp.fix_range
@@ -59700,7 +57860,7 @@ proc: BEGIN
ORDER BY item_id, warehouse_id DESC, date_end DESC
) t GROUP BY item_id;
- -- Calcula los rangos
+
DELETE FROM item_range WHERE calc_id = v_calc;
@@ -59713,7 +57873,7 @@ proc: BEGIN
) t
GROUP BY item_id;
- -- Limpieza
+
DROP TEMPORARY TABLE tmp.item_range;
DROP TEMPORARY TABLE tmp.fix_range;
@@ -59739,13 +57899,7 @@ ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_general_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `last_buy_refresh`(v_refresh BOOL)
proc: BEGIN
-/**
- * Crea o actualiza la cache con la última compra y fecha de cada
- * artículo hasta ayer. Para obtener la última compra hasta una fecha
- * determinada utilizar el procedimiento vn2008.item_last_buy_().
- *
- * @param v_refresh %TRUE para forzar el recálculo de la cache
- **/
+
DECLARE v_calc INT;
DECLARE v_date_ini DATE;
DECLARE v_date_end DATE;
@@ -59764,9 +57918,9 @@ proc: BEGIN
LEAVE proc;
END IF;
- -- TODO: ¿Se puede usar la fecha del ultimo inventario?
- SET v_date_ini = vn2008.date_inv();-- TIMESTAMPADD(DAY, -90, CURDATE());
- SET v_date_end = CURDATE(); -- TIMESTAMPADD(DAY, -1, CURDATE());
+
+ SET v_date_ini = vn2008.date_inv();
+ SET v_date_end = CURDATE();
CALL vn2008.item_last_buy_from_interval (NULL, v_date_ini, v_date_end);
@@ -59865,7 +58019,7 @@ proc:BEGIN
SELECT MONTH(CURDATE()) INTO datMONTH;
SELECT YEAR(CURDATE()) INTO datYEAR;
- -- preparamos una tabla con los meses y años que interesan
+
DROP TEMPORARY TABLE IF EXISTS tmp.periods;
CREATE TEMPORARY TABLE tmp.periods
select distinct month, year(date) as year
@@ -59874,12 +58028,12 @@ proc:BEGIN
order by year desc, month desc
limit 3;
- -- borramos los datos para evitar flecos
+
DELETE s.*
FROM bi.sales s
join tmp.periods using(year,month);
- -- insertamos las ventas de cada comercial
+
REPLACE bi.sales(Id_Trabajador, year, month, weight, boss_id)
select v.Id_Trabajador, year, month, round(sum(total)) as weight, IFNULL(j.boss_id,20)
from bi.v_ticket_total v
@@ -59891,31 +58045,13 @@ proc:BEGIN
- -- caso especial: Claudi ajuda a Josep a llegar a los 1200 euros de comision
- /*
- update bi.sales
- set boss_aid = 34285 - weight
- where Id_Trabajador = 378
- and year >= 2015
- and month > datmonth -2;
-
- update bi.sales s
- join
- (select year, month, boss_aid
- from bi.sales
- where Id_Trabajador = 378
- and year >= 2015
- and month > datmonth -2) sub using(year,month)
- set s.boss_aid = s.boss_aid - sub.boss_aid
- where Id_Trabajador = 208
- and year >= 2015
- and month > datmonth -2;
- */
--- ahora, las comisiones
+
+
+
update bi.sales s
set comision = weight * 0.029;
@@ -59943,13 +58079,7 @@ ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `stock_refresh`(v_refresh BOOL)
proc: BEGIN
-/**
- * Crea o actualiza la cache con el disponible hasta el día de
- * ayer. Esta cache es usada como base para otros procedimientos
- * como el cáculo del visible o del ATP.
- *
- * @param v_refresh %TRUE para forzar el recálculo de la cache
- **/
+
DECLARE v_calc INT;
DECLARE v_date_inv DATE;
DECLARE v_curdate DATE;
@@ -60020,9 +58150,9 @@ proc: BEGIN
LEAVE proc;
END IF;
- -- Limpia las caches antiguas
- IF TRUE -- GET_LOCK('visible/clean', 1)
+
+ IF TRUE
THEN
DELETE FROM visible WHERE calc_id NOT IN (
SELECT cc.id
@@ -60030,10 +58160,10 @@ proc: BEGIN
JOIN cache_calc cc ON c.id = cc.cache_id
WHERE c.`name` = 'visible');
- -- DO RELEASE_LOCK('visible/clean');
+
END IF;
- -- Calculamos el stock hasta ayer
+
CALL `cache`.stock_refresh(false);
@@ -60044,7 +58174,7 @@ proc: BEGIN
SELECT item_id, amount stock, amount visible FROM `cache`.stock
WHERE warehouse_id = v_warehouse;
- -- Calculamos los movimientos confirmados de hoy
+
CALL vn2008.item_stock_visible(v_warehouse, NULL);
@@ -60736,6 +58866,10 @@ CREATE TABLE `sipReg` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='SIP registrations';
/*!40101 SET character_set_client = @saved_cs_client */;
+--
+-- Dumping events for database 'pbx'
+--
+
--
-- Dumping routines for database 'pbx'
--
@@ -60754,9 +58888,9 @@ CREATE DEFINER=`root`@`%` FUNCTION `clientFromPhone`(vPhone VARCHAR(255)) RETURN
BEGIN
DECLARE vClient INT DEFAULT NULL;
- -- SET vPhone = vPhone COLLATE 'utf8_unicode_ci';
- -- Searchs a customer associated to the phone number
+
+
DROP TEMPORARY TABLE IF EXISTS tmp.customer;
CREATE TEMPORARY TABLE tmp.customer
@@ -62107,6 +60241,10 @@ CREATE TABLE `visitUser` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
+--
+-- Dumping events for database 'hedera'
+--
+
--
-- Dumping routines for database 'hedera'
--
@@ -62225,7 +60363,7 @@ BEGIN
IF vMod
THEN
SET vAmount = vAmount + vGroup - vMod;
- -- CALL util.warn ('ORDER_AMOUNT_ROUNDED');
+
END IF;
END IF;
@@ -62248,14 +60386,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `order_get_total`(v_order INT) RETURNS double
BEGIN
-/**
- * Obtiene el total de un pedido con el IVA y el recargo de
- * equivalencia incluidos.
- *
- * @param v_order El identificador del pedido
- *
- * @return El total del pedido
- **/
+
DECLARE v_total DOUBLE;
@@ -62286,13 +60417,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` FUNCTION `userCheckRestPriv`(vMethodPath VARCHAR(255)) RETURNS tinyint(1)
DETERMINISTIC
BEGIN
-/**
- * Comprueba si el usuario actual tiene permiso para ejecutar
- * un servicio REST.
- *
- * @param vMethodPath Ruta del servicio REST a ejecutar
- * @return %TRUE si tiene permisos, %FALSE en caso contrario
- **/
+
DECLARE vRole INT DEFAULT NULL;
SELECT role INTO vRole FROM restPriv
@@ -62318,19 +60443,13 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `agency_list_from_date`(v_date DATE, v_address INT)
BEGIN
-/**
- * Devuelve el listado de agencias disponibles para la fecha
- * y dirección pasadas.
- *
- * @param v_date Fecha de recogida
- * @address v_addres Id de dirección de envío, @NULL si es recogida
- **/
+
DECLARE v_agency INT;
DECLARE v_done BOOLEAN;
DECLARE cur CURSOR FOR
SELECT agency_id FROM vn2008.agency;
- -- WHERE IFNULL(warehouse_alias_id, 1) <> 28;
+
DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_done = TRUE;
@@ -62354,9 +60473,9 @@ BEGIN
CALL vn2008.travel_tree (v_date, v_address, v_agency);
- -- No puedo usar IGNORE porque lanza un error 'invisible'
+
- INSERT /* IGNORE */ INTO t_agency
+ INSERT INTO t_agency
SELECT a.Id_Agencia
FROM vn2008.Agencias a
JOIN vn2008.travel_tree t
@@ -62383,13 +60502,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `basket_check`()
BEGIN
-/**
- * Comprueba que la cesta esta creada y que su configuración es
- * correcta. Si la configuración es correcta pero lleva mucho
- * tiempo creada actualiza los precios y cantidades de los artículos.
- *
- * @select El id del pedido y el estado de la cesta
- **/
+
DECLARE v_order INT;
DECLARE v_created DATETIME;
DECLARE v_status VARCHAR(15) DEFAULT 'OK';
@@ -62435,14 +60548,7 @@ CREATE DEFINER=`root`@`%` PROCEDURE `basket_configure`(
v_agency INT,
v_address INT)
BEGIN
-/**
- * Configura la cesta de la compra utilizando los parámetros
- * pasados. Si los parámetros no son válidos devuelve un error.
- *
- * @param v_delivery Fecha de recogida
- * @param v_agency Id de la agencia
- * @param v_address Id de dirección de envío, @NULL si es recogida
- **/
+
DECLARE v_order INT;
DECLARE v_company INT;
DECLARE v_delivery_method_id INT;
@@ -62869,11 +60975,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `customer_get_debt_by_company`()
BEGIN
-/**
- * Calcula el saldo del cliente en cada empresa.
- *
- * @select Saldo desglosado por empresa
- **/
+
DECLARE v_date_ini DATETIME DEFAULT TIMESTAMP(DATE_FORMAT(TIMESTAMPADD(YEAR, -1, CURDATE()), '%Y-01-01'));
DECLARE v_date_end DATETIME DEFAULT TIMESTAMP(CURDATE(), '23:59:59');
@@ -62939,12 +61041,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `formList`()
BEGIN
-/**
- * Devuelve el listado de formularios web a los que tiene
- * acceso el usuario actual.
- *
- * @table tmp.role Tabla con el listado de formularios
- */
+
SELECT f.id, f.path, f.description, f.parent
FROM form f
WHERE role_id IN (SELECT id FROM account.userRole)
@@ -63205,11 +61302,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `item_available`()
BEGIN
-/**
- * Genera una tabla con los ids de los articulos disponibles.
- *
- * @table tmp.item_available
- **/
+
DECLARE v_delivery DATE;
DECLARE v_address INT;
DECLARE v_agency INT;
@@ -63400,11 +61493,7 @@ DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `order_check_config`(v_order INT)
proc:
BEGIN
-/**
- * Comprueba que la configuración del pedido es correcta.
- *
- * @param v_order Identificador del pedido
- **/
+
DECLARE v_delivery_method VARCHAR(45);
DECLARE v_delivery DATE;
DECLARE v_agency INT;
@@ -63417,7 +61506,7 @@ BEGIN
JOIN vn2008.Vistas v ON v.vista_id = o.delivery_method_id
WHERE o.id = v_order;
- -- Comprueba que se ha seleccionado una dirección
+
IF v_delivery_method IN ('AGENCY', 'DELIVERY')
&& v_address IS NULL
@@ -63425,7 +61514,7 @@ BEGIN
CALL util.throw ('ORDER_EMPTY_ADDRESS');
END IF;
- -- Comprueba que la agencia es correcta
+
CALL agency_list_from_date (v_delivery, v_address);
@@ -63456,12 +61545,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `order_confirm_bionic`(v_order INT)
BEGIN
-/**
- * Confirma un pedido, creando cada uno de sus tickets en la fecha
- * y almacén correspondientes.
- *
- * @param v_order Identificador del pedido
- **/
+
DECLARE v_ok BOOLEAN;
DECLARE v_done BOOLEAN DEFAULT FALSE;
DECLARE v_wh INT;
@@ -63509,7 +61593,7 @@ BEGIN
RESIGNAL;
END;
- -- Carga los datos del pedido
+
SELECT o.date_send, o.address_id, o.note, a.agency_id, o.confirmed
INTO d_delivery, i_address, v_note, i_agency, b_confirmed
@@ -63517,13 +61601,13 @@ BEGIN
JOIN vn2008.Agencias a ON a.Id_Agencia = o.agency_id
WHERE id = v_order;
- -- Comprueba que el pedido no está confirmado
+
IF b_confirmed THEN
CALL util.throw ('ORDER_ALREADY_CONFIRMED');
END IF;
- -- Comprueba que el pedido no está vacío
+
SELECT COUNT(*) > 0 INTO v_ok
FROM order_row WHERE order_id = v_order AND amount > 0;
@@ -63532,11 +61616,11 @@ BEGIN
CALL util.throw ('ORDER_EMPTY');
END IF;
- -- Carga las fechas de salida de cada almacén
+
CALL vn2008.travel_tree (d_delivery, i_address, i_agency);
- -- Trabajador que realiza la acción
+
SELECT Id_Trabajador INTO i_worker
FROM vn2008.Trabajadores
@@ -63546,7 +61630,7 @@ BEGIN
SELECT employee_id INTO i_worker FROM order_config;
END IF;
- -- Crea los tickets del pedido
+
START TRANSACTION;
@@ -63562,7 +61646,7 @@ BEGIN
LEAVE tick_loop;
END IF;
- -- Busca un ticket existente que coincida con los parametros del nuevo pedido
+
SELECT Id_Ticket INTO v_ticket
FROM vn2008.Tickets t
@@ -63576,13 +61660,11 @@ BEGIN
WHERE o.id = v_order
AND t.Factura IS NULL
AND IFNULL(tls.alertLevel,0) = 0
- /* AND t.PedidoImpreso = 0
- AND t.Etiquetasemitidas = 0
- AND vn2008.is_bionic(t.Id_Ticket) */
+
AND t.Id_Cliente <> 1118
LIMIT 1;
- -- Crea el ticket en el caso de no existir uno adecuado
+
IF v_ticket IS NULL
THEN
@@ -63598,7 +61680,7 @@ BEGIN
SET v_ticket = LAST_INSERT_ID();
ELSE
- -- UPDATE vn2008.Tickets SET Localizacion = CONCAT(Localizacion,'B+') WHERE Id_Ticket = v_ticket;
+
INSERT INTO vncontrol.inter(Id_Ticket, Id_Trabajador, state_id)
VALUES(v_ticket, SYSTEM_WORKER, TICKET_FREE);
@@ -63607,16 +61689,16 @@ BEGIN
INSERT IGNORE INTO vn2008.order_Tickets (order_id, Id_Ticket)
VALUES (v_order, v_ticket);
- -- Añade las notas
+
IF v_note IS NOT NULL && v_note != ''
THEN
INSERT INTO vn2008.ticket_observation (Id_Ticket, observation_type_id, text)
- VALUES (v_ticket, 4/*comercial*/ , v_note)
+ VALUES (v_ticket, 4 , v_note)
ON DUPLICATE KEY UPDATE text = CONCAT(VALUES(text),'. ', text);
END IF;
- -- Añade los movimientos y sus componentes
+
OPEN cur_mov;
@@ -63654,7 +61736,7 @@ BEGIN
END LOOP;
CLOSE cur_mov;
- -- Fija el Costfixat
+
UPDATE vn2008.Movimientos m
JOIN (SELECT SUM(mc.Valor) sum_valor,mc.Id_Movimiento
@@ -63692,15 +61774,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `order_get_vat`(v_order INT)
BEGIN
-/**
- * Calcula el IVA, y el recargo de equivalencia de un pedido
- * desglosados por tipos.
- *
- * @param v_order El identificador del pedido
- *
- * @table t_order_vat Tabla con las bases imponibles, su
- * IVA y su recargo de equivalencia.
- **/
+
DECLARE v_billing_date DATE DEFAULT CURDATE();
DECLARE clean CONDITION FOR SQLSTATE 'HY000';
@@ -63712,7 +61786,7 @@ BEGIN
SIGNAL clean;
- -- Calcula el tipo de IVA para cada grupo en cada país.
+
CREATE TEMPORARY TABLE t_vat_group
(INDEX (country_id, vat_group_id))
@@ -63727,7 +61801,7 @@ BEGIN
) t
GROUP BY country_id, vat_group_id;
- -- Calcula el impuesto para cada tipo de IVA en cada país.
+
CREATE TEMPORARY TABLE t_vat_tax
(INDEX (country_id, rate))
@@ -63743,7 +61817,7 @@ BEGIN
) t
GROUP BY country_id, rate;
- -- Calcula el IVA y el recargo desglosado.
+
DROP TEMPORARY TABLE IF EXISTS t_order_vat;
CREATE TEMPORARY TABLE t_order_vat
@@ -63940,12 +62014,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `ticket_list`()
BEGIN
-/**
- * Devuelve los tickets del cliente del último mes, calculando
- * el total de cada ticket.
- *
- * @select Listado de tickets
- **/
+
DROP TEMPORARY TABLE IF EXISTS vn2008.ticket_tmp;
CREATE TEMPORARY TABLE vn2008.ticket_tmp
(KEY (ticket_id))
@@ -64066,7 +62135,7 @@ BEGIN
SET vReceipt = LAST_INSERT_ID();
SET vStatus = 'ok';
- -- Código redundante
+
DO vn2008.till_entry
(
@@ -64199,16 +62268,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `transactionEnd`(vTransaction INT, vStatus VARCHAR(12))
BEGIN
-/**
- * Finaliza una transaccción estableciendo su estado a 'ok' o
- * 'ko' en función de si esta se ha realizado correctamente.
- * Este procedimiento debe ser llamado directamente por el cliente
- * nada mas finalizar la transacción y solo tiene validez hasta que
- * llega la notificacion definitiva desde el banco.
- *
- * @param vTransaction El identificador de la transacción
- * @param vStatus El estado, 'ok' o 'ko'
- **/
+
IF vStatus IN ('ok', 'ko')
THEN
UPDATE tpv_transaction_view SET status = vStatus
@@ -64232,17 +62292,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `transactionStart`(vAmount INT, vCompany INT)
BEGIN
-/**
- * Inicia una nueva transacción con el TPV virtual, generando
- * un identificador de transacción y devolviendo con un SELECT
- * los parámetros que deben enviarse a la URL del servicio web
- * del banco.
- *
- * @param vAmount Cantidad a pagar en céntimos
- * @param vCompany El identificador de la empresa
- *
- * @select Los parámetros que deben pasarse al banco
- **/
+
DECLARE vTransaction CHAR(12);
DECLARE vMerchant INT;
@@ -64356,12 +62406,12 @@ BEGIN
WHERE t.id = vOrder
FOR UPDATE;
- -- Elimina el recibo
+
DELETE FROM vn2008.Recibos
WHERE Id = vReceipt LIMIT 1;
- -- Elimina la entrada de cajas
+
DELETE FROM vn2008.Cajas
WHERE Id_Banco = vBank
@@ -64369,7 +62419,7 @@ BEGIN
AND Entrada = vAmount
LIMIT 1;
- -- Elimina los asientos contables
+
SELECT Cuenta INTO vSubaccount
FROM vn2008.Clientes WHERE Id_Cliente = vCustomer;
@@ -64391,7 +62441,7 @@ BEGIN
AND EURODEBE = vAmount
LIMIT 1;
- -- Actualiza la transaccion
+
UPDATE tpv_transaction
SET response = NULL, status = 'started'
@@ -64416,13 +62466,7 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `type_list`(v_realm INT)
BEGIN
-/**
- * Devuelve los subtipos disponibles para el reino pasado
- * utilizando la fecha, dirección y agencia de la cesta de
- * la compra.
- *
- * @param v_realm Id del reino
- **/
+
DECLARE v_date DATE;
DECLARE v_address INT;
DECLARE v_agency INT;
@@ -64473,7 +62517,7 @@ BEGIN
DECLARE vAgentId INT DEFAULT NULL;
DECLARE vAccessId INT DEFAULT NULL;
- -- Registers the visit
+
IF vVisit IS NULL || (SELECT COUNT(*) FROM visit WHERE id = vVisit) = 0
THEN
@@ -64487,7 +62531,7 @@ BEGIN
AND (agent = vAgent OR (vAgent IS NULL AND agent IS NULL))
LIMIT 1;
- -- Registers the user agent
+
IF vAgentId IS NULL
THEN
@@ -64510,7 +62554,7 @@ BEGIN
WHERE id = vVisit;
END IF;
- -- Registers the user access
+
INSERT INTO visitAccess SET
agent = vAgentId
@@ -64525,7 +62569,7 @@ BEGIN
WHERE id = vAgentId;
END IF;
- -- Returns the visit info
+
SELECT vVisit visit, vAccessId access;
END ;;
@@ -66448,7 +64492,7 @@ USE `vn`;
/*!50001 SET collation_connection = utf8_general_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
-/*!50001 VIEW `client` AS select `c`.`id_cliente` AS `id`,`c`.`cliente` AS `name`,`c`.`if` AS `fi`,`c`.`razonSocial` AS `socialName`,`c`.`contacto` AS `contact`,`c`.`domicilio` AS `street`,`c`.`poblacion` AS `city`,`c`.`codPostal` AS `postcode`,`c`.`telefono` AS `phone`,`c`.`movil` AS `mobile`,`c`.`fax` AS `fax`,`c`.`real` AS `isRelevant`,`c`.`e-mail` AS `email`,`c`.`cc` AS `iban`,`c`.`vencimiento` AS `dueDay`,`c`.`Cuenta` AS `accountingAccount`,`c`.`RE` AS `isEqualizated`,`c`.`province_id` AS `provinceFk`,`c`.`invoice` AS `hasToInvoice`,`c`.`credito` AS `credit`,`c`.`Id_Pais` AS `countryFk`,`c`.`activo` AS `isActive`,`c`.`gestdoc_id` AS `gestdocFk`,`c`.`calidad` AS `quality`,`c`.`pay_met_id` AS `payMethodFk`,`c`.`created` AS `created`,`c`.`mail` AS `isToBeMailed`,`c`.`chanel_id` AS `contactChannelFk`,`c`.`sepaVnl` AS `hasSepavnl`,`c`.`coreVnl` AS `hasCorevnl`,`c`.`coreVnh` AS `hasCoreVnh`,`c`.`risk_calculated` AS `riskCalculated`,`c`.`clientes_tipo_id` AS `clientTypeFk`,`c`.`mail_address` AS `mail_address`,`c`.`cplusTerIdNifFk` AS `cplusTerIdNifFk`,`c`.`invoiceByAddress` AS `hasToInvoiceByAddress`,`c`.`contabilizado` AS `isTaxDataChecked`,`c`.`congelado` AS `isFreezed`,`c`.`creditInsurance` AS `creditInsurance`,`c`.`isCreatedAsServed` AS `isCreatedAsServed`,`c`.`hasInvoiceSimplified` AS `hasInvoiceSimplified`,`c`.`Id_Trabajador` AS `salesPersonFk`,`c`.`vies` AS `isVies`,`c`.`EYPBC` AS `eypbc` from `vn2008`.`Clientes` `c` */;
+/*!50001 VIEW `client` AS select `c`.`id_cliente` AS `id`,`c`.`cliente` AS `name`,`c`.`if` AS `fi`,`c`.`razonSocial` AS `socialName`,`c`.`contacto` AS `contact`,`c`.`domicilio` AS `street`,`c`.`poblacion` AS `city`,`c`.`codPostal` AS `postcode`,`c`.`telefono` AS `phone`,`c`.`movil` AS `mobile`,`c`.`fax` AS `fax`,`c`.`real` AS `isRelevant`,`c`.`e-mail` AS `email`,`c`.`iban` AS `iban`,`c`.`vencimiento` AS `dueDay`,`c`.`Cuenta` AS `accountingAccount`,`c`.`RE` AS `isEqualizated`,`c`.`province_id` AS `provinceFk`,`c`.`invoice` AS `hasToInvoice`,`c`.`credito` AS `credit`,`c`.`Id_Pais` AS `countryFk`,`c`.`activo` AS `isActive`,`c`.`gestdoc_id` AS `gestdocFk`,`c`.`calidad` AS `quality`,`c`.`pay_met_id` AS `payMethodFk`,`c`.`created` AS `created`,`c`.`mail` AS `isToBeMailed`,`c`.`chanel_id` AS `contactChannelFk`,`c`.`sepaVnl` AS `hasSepaVnl`,`c`.`coreVnl` AS `hasCoreVnl`,`c`.`coreVnh` AS `hasCoreVnh`,`c`.`risk_calculated` AS `riskCalculated`,`c`.`clientes_tipo_id` AS `clientTypeFk`,`c`.`mail_address` AS `mailAddress`,`c`.`cplusTerIdNifFk` AS `cplusTerIdNifFk`,`c`.`invoiceByAddress` AS `hasToInvoiceByAddress`,`c`.`contabilizado` AS `isTaxDataChecked`,`c`.`congelado` AS `isFreezed`,`c`.`creditInsurance` AS `creditInsurance`,`c`.`isCreatedAsServed` AS `isCreatedAsServed`,`c`.`hasInvoiceSimplified` AS `hasInvoiceSimplified`,`c`.`Id_Trabajador` AS `salesPersonFk`,`c`.`vies` AS `isVies`,`c`.`EYPBC` AS `eypbc` from `vn2008`.`Clientes` `c` */;
/*!50001 SET character_set_client = @saved_cs_client */;
/*!50001 SET character_set_results = @saved_cs_results */;
/*!50001 SET collation_connection = @saved_col_connection */;
@@ -68864,4 +66908,4 @@ USE `hedera`;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
--- Dump completed on 2017-10-10 13:39:29
+-- Dump completed on 2017-12-18 14:16:38