diff --git a/services/db/.gitignore b/services/db/.gitignore
deleted file mode 100644
index 48e029b16..000000000
--- a/services/db/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-*.sql
\ No newline at end of file
diff --git a/services/db/localDB01Structure.sql b/services/db/localDB01Structure.sql
new file mode 100644
index 000000000..ce134804a
--- /dev/null
+++ b/services/db/localDB01Structure.sql
@@ -0,0 +1,68877 @@
+-- MySQL dump 10.13 Distrib 5.7.17, for macos10.12 (x86_64)
+--
+-- Host: 127.0.0.1 Database: vncontrol
+-- ------------------------------------------------------
+-- Server version 5.6.37
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+--
+-- Current Database: `vncontrol`
+--
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `vncontrol` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */;
+
+USE `vncontrol`;
+
+--
+-- Table structure for table `accion`
+--
+
+DROP TABLE IF EXISTS `accion`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `accion` (
+ `accion_id` int(11) NOT NULL AUTO_INCREMENT,
+ `accion` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`accion_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `clientes_match`
+--
+
+DROP TABLE IF EXISTS `clientes_match`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `clientes_match` (
+ `Id_cliente` int(11) NOT NULL,
+ `odbc_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `daily_task_log`
+--
+
+DROP TABLE IF EXISTS `daily_task_log`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `daily_task_log` (
+ `state` varchar(250) COLLATE utf8_unicode_ci NOT NULL,
+ `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='No he encontrado el lugar en el que vicente almacena la hora en que se ejecutan las daily tasks, asi que he hecho esta tabla, a eliminar cuando se considere oportuno';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `fallo`
+--
+
+DROP TABLE IF EXISTS `fallo`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `fallo` (
+ `queja_id` int(10) unsigned NOT NULL,
+ `accion_id` int(11) NOT NULL,
+ PRIMARY KEY (`queja_id`,`accion_id`),
+ KEY `accion` (`accion_id`,`queja_id`),
+ KEY `fallo` (`queja_id`),
+ CONSTRAINT `accion` FOREIGN KEY (`accion_id`) REFERENCES `accion` (`accion_id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `inter`
+--
+
+DROP TABLE IF EXISTS `inter`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `inter` (
+ `inter_id` int(11) NOT NULL AUTO_INCREMENT,
+ `state_id` tinyint(3) unsigned NOT NULL,
+ `fallo_id` int(10) unsigned NOT NULL DEFAULT '21',
+ `nota` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `odbc_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ `Id_Ticket` int(11) DEFAULT NULL,
+ `Id_Trabajador` int(11) DEFAULT NULL,
+ `Id_Supervisor` int(11) DEFAULT NULL,
+ PRIMARY KEY (`inter_id`),
+ KEY `currante` (`Id_Trabajador`),
+ KEY `responsable` (`Id_Supervisor`),
+ KEY `ticket` (`Id_Ticket`),
+ KEY `inter_state` (`state_id`),
+ CONSTRAINT `currante` FOREIGN KEY (`Id_Trabajador`) REFERENCES `vn2008`.`Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE,
+ CONSTRAINT `inter_ibfk_1` FOREIGN KEY (`Id_Ticket`) REFERENCES `vn2008`.`Tickets` (`Id_Ticket`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `inter_state` FOREIGN KEY (`state_id`) REFERENCES `vn2008`.`state` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `responsable` FOREIGN KEY (`Id_Supervisor`) REFERENCES `vn2008`.`Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE
+) ENGINE=InnoDB AUTO_INCREMENT=11 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `interBeforeInsert`
+BEFORE INSERT ON `inter` FOR EACH ROW
+BEGIN
+
+ DECLARE contados INT;
+ DECLARE vSupervisor INT;
+
+ SELECT Id_Trabajador INTO vSupervisor FROM vn2008.Trabajadores WHERE user_id = account.userGetId();
+
+ SET NEW.Id_Supervisor = IFNULL(vSupervisor,5);
+
+ IF NEW.state_id = 5
+ THEN
+ SELECT count(Id_Ticket) INTO contados
+ FROM vncontrol.inter
+ WHERE state_id = 5
+ AND Id_Ticket = NEW.Id_Ticket
+ AND IFNULL(Id_Supervisor,-1) <> vSupervisor
+ AND TIMESTAMPADD(SECOND, 60, odbc_date) >= NOW();
+
+ IF contados <> 0 THEN
+ CALL util.throw ('FALLO_AL_INSERTAR');
+ END IF;
+ END IF;
+
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vncontrol`.`interAfterInsert`
+AFTER INSERT ON `inter` FOR EACH ROW
+BEGIN
+ REPLACE vn2008.Tickets_state(Id_Ticket, inter_id,state_name)
+ SELECT NEW.Id_Ticket, NEW.inter_id, s.`name` FROM vn2008.state s WHERE s.id = NEW.state_id;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vncontrol`.`interAfterUpdate`
+AFTER UPDATE ON `inter` FOR EACH ROW
+BEGIN
+ DECLARE intIdTicket INT;
+ DECLARE intInterId INT;
+ DECLARE strName VARCHAR(15);
+
+ IF (NEW.state_id <> OLD.state_id) THEN
+ REPLACE INTO vn2008.Tickets_state(Id_Ticket, inter_id,state_name)
+ SELECT NEW.Id_Ticket, NEW.inter_id, s.`name`
+ FROM vn2008.state s WHERE s.id = NEW.state_id;
+ END IF;
+ IF (NEW.Id_Ticket <> OLD.Id_Ticket) THEN
+
+ SELECT i.Id_Ticket, i.inter_id, s.`name`
+ INTO intIdTicket, intInterId, strName
+ FROM vncontrol.inter i
+ JOIN vn2008.state s ON i.state_id = s.id
+ WHERE Id_Ticket = NEW.Id_Ticket
+ ORDER BY odbc_date DESC
+ LIMIT 1;
+ IF intIdTicket > 0 THEN
+ REPLACE INTO vn2008.Tickets_state(Id_Ticket, inter_id,state_name)
+ VALUES(intIdTicket, intInterId, strName);
+ END IF;
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vncontrol`.`interAfterDelete`
+AFTER DELETE ON `inter` FOR EACH ROW
+BEGIN
+ DECLARE intIdTicket INT;
+ DECLARE intInterId INT;
+ DECLARE strName VARCHAR(15);
+
+ DECLARE CONTINUE HANDLER FOR SQLSTATE '23000'
+ BEGIN
+ DELETE FROM vn2008.Tickets_state
+ WHERE Id_Ticket = OLD.Id_Ticket;
+ END;
+
+ IF OLD.odbc_date > TIMESTAMPADD(WEEK, -1, CURDATE()) THEN
+
+ SELECT i.Id_Ticket, i.inter_id, s.`name`
+ INTO intIdTicket, intInterId, strName
+ FROM vncontrol.inter i
+ JOIN vn2008.state s ON i.state_id = s.id
+ WHERE Id_Ticket = OLD.Id_Ticket
+ ORDER BY odbc_date DESC
+ LIMIT 1;
+
+ IF intIdTicket > 0 THEN
+ REPLACE INTO vn2008.Tickets_state(Id_Ticket, inter_id,state_name)
+ VALUES (intIdTicket, intInterId, strName);
+ END IF;
+
+ END IF;
+
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Dumping routines for database 'vncontrol'
+--
+/*!50003 DROP PROCEDURE IF EXISTS `clean` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `clean`()
+BEGIN
+
+ DECLARE v_date2 DATETIME DEFAULT TIMESTAMPADD(MONTH, -2,CURDATE());
+
+ INSERT INTO vncontrol.daily_task_log(state) VALUES('clean START');
+
+ DELETE FROM vncontrol.inter WHERE odbc_date <= v_date2;
+
+ INSERT INTO vncontrol.daily_task_log(state) VALUES('clean END');
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `Resumen` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `Resumen`()
+BEGIN
+
+select accion, CodigoTrabajador, semana, Pedidos, Lineas
+from accion
+join
+(
+ SELECT * FROM
+ (
+ select count(*) as Pedidos, semana, Id_Trabajador, accion_id
+ from
+ (select distinct *
+ from
+ (
+ select vn2008.semana(odbc_date) as semana
+ ,Id_Trabajador
+ ,accion_id
+ ,Id_Ticket
+ from vncontrol.inter
+ ) sub
+ ) sub2
+ group by semana, Id_Trabajador, accion_id
+ ) subpedidos
+
+ inner join
+ (
+
+ select semana, Id_Trabajador, accion_id, count(*) as Lineas
+ from vn2008.Movimientos
+ inner join
+ (
+ select distinct vn2008.semana(odbc_date) as semana, Id_Ticket, Id_Trabajador, accion_id from vncontrol.inter
+ ) vnc using(Id_Ticket)
+ group by semana, Id_Trabajador, accion_id
+
+ ) sublineas using(semana, Id_Trabajador, accion_id)
+
+) sub3 using(accion_id)
+
+join vn2008.Trabajadores using(Id_Trabajador)
+;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Current Database: `edi`
+--
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `edi` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */;
+
+USE `edi`;
+
+--
+-- Table structure for table `batch`
+--
+
+DROP TABLE IF EXISTS `batch`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `batch` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `message_id` int(10) unsigned NOT NULL,
+ `type_id` smallint(5) unsigned NOT NULL,
+ `buy_edi_id` int(10) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `type_id` (`type_id`,`buy_edi_id`),
+ KEY `message_id` (`message_id`),
+ KEY `buy_edi_id` (`buy_edi_id`),
+ CONSTRAINT `batch_ibfk_1` FOREIGN KEY (`message_id`) REFERENCES `message` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `batch_ibfk_2` FOREIGN KEY (`buy_edi_id`) REFERENCES `vn2008`.`buy_edi` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `batch_type`
+--
+
+DROP TABLE IF EXISTS `batch_type`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `batch_type` (
+ `id` mediumint(8) unsigned NOT NULL,
+ `description` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `bucket`
+--
+
+DROP TABLE IF EXISTS `bucket`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `bucket` (
+ `bucket_id` int(11) unsigned NOT NULL,
+ `bucket_type_id` mediumint(8) unsigned NOT NULL,
+ `description` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
+ `x_size` mediumint(8) unsigned NOT NULL,
+ `y_size` mediumint(8) unsigned NOT NULL,
+ `z_size` mediumint(8) unsigned NOT NULL,
+ `entry_date` date DEFAULT NULL,
+ `expiry_date` date DEFAULT NULL,
+ `change_date_time` datetime DEFAULT NULL,
+ PRIMARY KEY (`bucket_id`),
+ KEY `group_id` (`y_size`),
+ KEY `plant_id` (`x_size`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='/tmp/floricode/VBN020101/CK090916.txt';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `bucket_type`
+--
+
+DROP TABLE IF EXISTS `bucket_type`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `bucket_type` (
+ `bucket_type_id` mediumint(8) unsigned NOT NULL,
+ `description` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
+ `entry_date` date DEFAULT NULL,
+ `expiry_date` date DEFAULT NULL,
+ `change_date_time` datetime DEFAULT NULL,
+ PRIMARY KEY (`bucket_type_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='/tmp/floricode/VBN020101/FB090916.txt';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `config`
+--
+
+DROP TABLE IF EXISTS `config`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `config` (
+ `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
+ `log_mail` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'Mail where the log information is sent',
+ `presale_id` mediumint(8) unsigned DEFAULT NULL,
+ `default_kop` int(10) unsigned DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `presale_id` (`presale_id`),
+ CONSTRAINT `config_ibfk_1` FOREIGN KEY (`presale_id`) REFERENCES `batch_type` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Configuration parameters';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `feature`
+--
+
+DROP TABLE IF EXISTS `feature`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `feature` (
+ `item_id` int(11) unsigned NOT NULL,
+ `feature_type_id` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
+ `feature_value` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
+ `entry_date` date NOT NULL,
+ `expiry_date` date NOT NULL,
+ `change_date_time` datetime NOT NULL,
+ PRIMARY KEY (`item_id`,`feature_type_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='/tmp/floricode/florecompc2/FF130916.txt';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `file_config`
+--
+
+DROP TABLE IF EXISTS `file_config`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `file_config` (
+ `file_name` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
+ `to_table` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
+ `file` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
+ `updated` date DEFAULT NULL,
+ PRIMARY KEY (`file_name`),
+ UNIQUE KEY `to_table` (`to_table`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `ftp_config`
+--
+
+DROP TABLE IF EXISTS `ftp_config`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `ftp_config` (
+ `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
+ `host` varchar(255) CHARACTER SET utf8 NOT NULL,
+ `user` varchar(50) CHARACTER SET utf8 NOT NULL,
+ `password` varchar(50) CHARACTER SET utf8 NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Configuration parameters';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `genus`
+--
+
+DROP TABLE IF EXISTS `genus`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `genus` (
+ `genus_id` mediumint(8) unsigned NOT NULL,
+ `latin_genus_name` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
+ `entry_date` date DEFAULT NULL,
+ `expiry_date` date DEFAULT NULL,
+ `change_date_time` datetime DEFAULT NULL,
+ PRIMARY KEY (`genus_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='/tmp/floricode/florecompc2/FG130916.txt';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `goodCharacteristic`
+--
+
+DROP TABLE IF EXISTS `goodCharacteristic`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `goodCharacteristic` (
+ `supplyResponse` varchar(26) COLLATE utf8_unicode_ci NOT NULL,
+ `type` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'edi.type',
+ `value` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'edi.value',
+ PRIMARY KEY (`supplyResponse`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `imap_config`
+--
+
+DROP TABLE IF EXISTS `imap_config`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `imap_config` (
+ `id` tinyint(3) unsigned NOT NULL,
+ `host` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'localhost',
+ `user` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `pass` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `clean_period` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'How long the old mails are preserved',
+ `success_folder` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `error_folder` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='IMAP configuration parameters';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `item`
+--
+
+DROP TABLE IF EXISTS `item`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `item` (
+ `id` int(11) unsigned NOT NULL,
+ `product_name` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `name` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
+ `plant_id` mediumint(8) unsigned DEFAULT NULL,
+ `group_id` int(11) DEFAULT NULL,
+ `entry_date` date DEFAULT NULL,
+ `expiry_date` date DEFAULT NULL,
+ `change_date_time` datetime DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `group_id` (`group_id`),
+ KEY `plant_id` (`plant_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='/tmp/floricode/florecompc2/FP130916.txt';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `item_feature`
+--
+
+DROP TABLE IF EXISTS `item_feature`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `item_feature` (
+ `item_id` int(11) NOT NULL,
+ `presentation_order` tinyint(11) unsigned NOT NULL,
+ `feature` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
+ `regulation_type` tinyint(3) unsigned NOT NULL,
+ `entry_date` date NOT NULL,
+ `expiry_date` date DEFAULT NULL,
+ `change_date_time` datetime NOT NULL,
+ PRIMARY KEY (`item_id`,`presentation_order`,`entry_date`,`change_date_time`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='/tmp/floricode/florecompc2/FY130916.txt';
+/*!40101 SET character_set_client = @saved_cs_client */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `item_feature_bi` BEFORE INSERT ON `item_feature` FOR EACH ROW
+BEGIN
+ IF NEW.expiry_date = '0000-00-00' THEN
+ SET NEW.expiry_date = NULL;
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `item_group`
+--
+
+DROP TABLE IF EXISTS `item_group`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `item_group` (
+ `group_code` int(11) unsigned NOT NULL,
+ `dutch_group_description` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
+ `entry_date` date NOT NULL,
+ `expiry_date` date NOT NULL,
+ `change_date_time` datetime NOT NULL,
+ PRIMARY KEY (`group_code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='/tmp/floricode/florecompc2/FO130916.txt';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `item_track`
+--
+
+DROP TABLE IF EXISTS `item_track`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `item_track` (
+ `item_id` int(10) unsigned NOT NULL,
+ `s1` tinyint(3) NOT NULL DEFAULT '0',
+ `s2` tinyint(3) NOT NULL DEFAULT '0',
+ `s3` tinyint(3) NOT NULL DEFAULT '0',
+ `s4` tinyint(3) NOT NULL DEFAULT '0',
+ `pac` tinyint(3) NOT NULL DEFAULT '0',
+ `cat` tinyint(3) NOT NULL DEFAULT '0',
+ `ori` tinyint(3) NOT NULL DEFAULT '0',
+ `pro` tinyint(3) NOT NULL DEFAULT '0',
+ `package` tinyint(3) NOT NULL DEFAULT '0',
+ `s5` tinyint(3) NOT NULL DEFAULT '0',
+ `s6` tinyint(3) NOT NULL DEFAULT '0',
+ `kop` tinyint(3) NOT NULL DEFAULT '0',
+ `sub` tinyint(3) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`item_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `mail`
+--
+
+DROP TABLE IF EXISTS `mail`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `mail` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `mail` varchar(150) COLLATE utf8_unicode_ci NOT NULL,
+ `kop` int(10) unsigned DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `mail` (`mail`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='List of allowed mailers';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `message`
+--
+
+DROP TABLE IF EXISTS `message`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `message` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `sender_id` int(10) unsigned DEFAULT NULL,
+ `mail_id` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
+ `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `mail_id` (`mail_id`),
+ KEY `sender_id` (`sender_id`),
+ CONSTRAINT `message_ibfk_2` FOREIGN KEY (`sender_id`) REFERENCES `mail` (`id`) ON DELETE NO ACTION ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `param`
+--
+
+DROP TABLE IF EXISTS `param`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `param` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `code` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
+ `name` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
+ `subname` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `position` tinyint(3) unsigned NOT NULL DEFAULT '1',
+ `type` enum('INTEGER','DOUBLE','STRING','DATE','TIME') COLLATE utf8_unicode_ci NOT NULL,
+ `required` tinyint(3) unsigned NOT NULL DEFAULT '1',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `name` (`name`,`subname`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Parameters to capture of every exchange';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `plant`
+--
+
+DROP TABLE IF EXISTS `plant`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `plant` (
+ `plant_id` mediumint(8) unsigned NOT NULL,
+ `genus_id` mediumint(8) unsigned NOT NULL,
+ `specie_id` mediumint(8) unsigned DEFAULT NULL,
+ `entry_date` date DEFAULT NULL,
+ `expiry_date` date DEFAULT NULL,
+ `change_date_time` datetime DEFAULT NULL,
+ PRIMARY KEY (`plant_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='/tmp/floricode/florecompc2/FT130916.txt';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `specie`
+--
+
+DROP TABLE IF EXISTS `specie`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `specie` (
+ `specie_id` mediumint(8) unsigned NOT NULL,
+ `genus_id` mediumint(8) unsigned NOT NULL,
+ `latin_species_name` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
+ `entry_date` date DEFAULT NULL,
+ `expiry_date` date DEFAULT NULL,
+ `change_date_time` datetime DEFAULT NULL,
+ PRIMARY KEY (`specie_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='/tmp/floricode/florecompc2/FS130916.txt';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `supplier`
+--
+
+DROP TABLE IF EXISTS `supplier`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `supplier` (
+ `supplier_id` int(10) unsigned NOT NULL COMMENT 'FHRegistrationNr',
+ `glnAddressCode` varchar(13) CHARACTER SET utf8 DEFAULT NULL,
+ `company_name` varchar(70) COLLATE utf8_unicode_ci NOT NULL,
+ `entry_date` date NOT NULL,
+ `expiry_date` date NOT NULL,
+ `change_date_time` datetime NOT NULL,
+ PRIMARY KEY (`supplier_id`),
+ KEY `glnaddressCodeidx` (`glnAddressCode`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='/tmp/floricode/FEC010104/CC090916.txt';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `supplyResponse`
+--
+
+DROP TABLE IF EXISTS `supplyResponse`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `supplyResponse` (
+ `id` varchar(26) COLLATE utf8_unicode_ci NOT NULL,
+ `marketPlace` varchar(13) COLLATE utf8_unicode_ci NOT NULL,
+ `imageReference` varchar(2048) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `supplierParty` varchar(13) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'company GLN code',
+ `productVnhCode` varchar(7) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'Industry Assigned Id',
+ `productDescription` varchar(70) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `quantity` int(8) DEFAULT NULL,
+ `incrementalOrderableQuantity` int(8) DEFAULT NULL,
+ `chargeAmount` decimal(10,2) DEFAULT NULL,
+ `unitCode` tinyint(2) unsigned DEFAULT NULL,
+ `packageQuantity` int(8) DEFAULT NULL,
+ `earliestDespatch` datetime DEFAULT NULL,
+ `latestDelivery` datetime DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `type`
+--
+
+DROP TABLE IF EXISTS `type`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `type` (
+ `type_id` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
+ `type_group_id` tinyint(3) unsigned NOT NULL,
+ `description` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
+ `entry_date` date NOT NULL,
+ `expiry_date` date NOT NULL,
+ `change_date_time` datetime NOT NULL,
+ PRIMARY KEY (`type_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='/tmp/floricode/florecompc2/FE130916.txt';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `value`
+--
+
+DROP TABLE IF EXISTS `value`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `value` (
+ `type_id` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
+ `type_value` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
+ `type_description` varchar(70) COLLATE utf8_unicode_ci NOT NULL,
+ `entry_date` date NOT NULL,
+ `expiry_date` date NOT NULL,
+ `change_date_time` datetime NOT NULL,
+ PRIMARY KEY (`type_id`,`type_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 routines for database 'edi'
+--
+/*!50003 DROP PROCEDURE IF EXISTS `batchNew` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `batchNew`(
+ vMessage INT
+ ,vItem VARCHAR(255)
+ ,vType MEDIUMINT
+ ,vDeliveryNumber BIGINT
+ ,vDate DATE
+ ,vHour TIME
+ ,vRef INT
+ ,vAgj INT
+ ,vCat VARCHAR(2)
+ ,vPac INT
+ ,vSub MEDIUMINT
+ ,vKop INT
+ ,vPtd VARCHAR(6)
+ ,vPro MEDIUMINT
+ ,vOrigin VARCHAR(3)
+ ,vPtj MEDIUMINT
+ ,vQuantiy INT
+ ,vPrice DOUBLE
+ ,vClock SMALLINT
+ ,vS1 VARCHAR(3)
+ ,vS2 VARCHAR(3)
+ ,vS3 VARCHAR(3)
+ ,vS4 VARCHAR(4)
+ ,vS5 VARCHAR(3)
+ ,vS6 VARCHAR(3)
+ ,vK1 SMALLINT
+ ,vK2 SMALLINT
+ ,vP1 TINYINT
+ ,vP2 TINYINT
+ ,vAuction SMALLINT
+ ,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
+ SET vIsDuplicated = TRUE;
+
+ -- Genera el código de barras
+
+ IF vAgj != 0 AND vAgj IS NOT NULL
+ THEN
+ SET vBarcode = CONCAT(
+ LPAD(vAuction, 2, 0),
+ LPAD(IFNULL(vClock, 99), 2, 0),
+ LPAD(DAYOFYEAR(vDate), 3, 0),
+ IF(vClock IS NULL OR vClock = 99,
+ LPAD(vAgj, 7, 0),
+ CONCAT(LPAD(vAgj, 5, 0), '01')
+ ),
+ '0'
+ );
+ END IF;
+
+ -- Reescribe el parámetro kop
+
+ IF vKop IS NULL
+ THEN
+ SELECT default_kop INTO vKop FROM config;
+ END IF;
+
+ SELECT e.kop INTO vRewriteKop
+ FROM mail e
+ JOIN message m ON m.sender_id = e.id
+ WHERE m.id = vMessage;
+
+ SET vKop = IFNULL(vRewriteKop, vKop);
+
+ -- Inserta el nuevo EKT
+
+ INSERT INTO vn2008.buy_edi SET
+ barcode = IFNULL(vBarcode, barcode)
+ ,delivery_number = vDeliveryNumber
+ ,entry_year = YEAR(vDate)
+ ,fec = vDate
+ ,hor = vHour
+ ,ref = vRef
+ ,item = vItem
+ ,agj = vAgj
+ ,cat = vCat
+ ,pac = vPac
+ ,sub = vSub
+ ,kop = vKop
+ ,ptd = vPtd
+ ,pro = vPro
+ ,ori = vOrigin
+ ,ptj = vPtj
+ ,qty = vQuantiy
+ ,pri = vPrice
+ ,klo = vClock
+ ,s1 = vS1
+ ,s2 = vS2
+ ,s3 = vS3
+ ,s4 = vS4
+ ,s5 = vS5
+ ,s6 = vS6
+ ,k01 = vK1
+ ,k02 = vK2
+ ,k03 = vP1
+ ,k04 = vP2
+ ,auction = vAuction
+ ,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
+ SET vEdi = LAST_INSERT_ID();
+ CALL ediLoad (vEdi);
+
+ ELSEIF vDeliveryNumber != 0
+ AND vDeliveryNumber IS NOT NULL
+ THEN
+ SELECT id INTO vEdi
+ FROM vn2008.buy_edi
+ WHERE delivery_number = vDeliveryNumber;
+
+ SELECT COUNT(*) = 0 INTO vUpdateExistent
+ FROM vn2008.buy_edi e
+ JOIN batch b ON b.buy_edi_id = e.id
+ JOIN config c
+ WHERE e.delivery_number = vDeliveryNumber
+ AND b.type_id != c.presale_id;
+ END IF;
+
+ IF vUpdateExistent
+ THEN
+ UPDATE vn2008.buy_edi SET
+ barcode = IFNULL(vBarcode, barcode)
+ ,fec = vDate
+ ,hor = vHour
+ ,ref = vRef
+ ,item = vItem
+ ,agj = vAgj
+ ,cat = vCat
+ ,pac = vPac
+ ,sub = vSub
+ ,kop = vKop
+ ,ptd = vPtd
+ ,pro = vPro
+ ,ori = vOrigin
+ ,ptj = vPtj
+ ,qty = vQuantiy
+ ,pri = vPrice
+ ,klo = vClock
+ ,s1 = vS1
+ ,s2 = vS2
+ ,s3 = vS3
+ ,s4 = vS4
+ ,s5 = vS5
+ ,s6 = vS6
+ ,k01 = vK1
+ ,k02 = vK2
+ ,k03 = vP1
+ ,k04 = vP2
+ ,auction = vAuction
+ ,package = vPackage
+ WHERE id = vEdi;
+ END IF;
+
+ -- Registra el lote
+
+ INSERT INTO batch SET
+ message_id = vMessage
+ ,type_id = vType
+ ,buy_edi_id = vEdi;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ediLoad` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ediLoad`(vEdi INT)
+BEGIN
+ DECLARE vRef INT;
+ DECLARE vBuy INT;
+ DECLARE vItem INT;
+ DECLARE vQty INT;
+ 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
+ SET vPackage = 800 + vQty;
+
+ INSERT IGNORE INTO vn2008.Cubos SET
+ Id_Cubo = vPackage,
+ x = 7200 / vQty,
+ y = 1;
+ ELSE
+ INSERT IGNORE INTO vn2008.Cubos (Id_Cubo, X, Y, Z)
+ SELECT bucket_id, ROUND(x_size/10), ROUND(y_size/10), ROUND(z_size/10)
+ FROM bucket WHERE bucket_id = vPackage;
+
+ IF ROW_COUNT() > 0
+ THEN
+ INSERT INTO vn2008.mail SET
+ `subject` = 'Cubo añadido',
+ `text` = CONCAT('Se ha añadido el cubo: ', vPackage),
+ `to` = 'ekt@verdnatura.es';
+ END IF;
+ END IF;
+
+ -- Intenta obtener el artículo en base a los atributos holandeses
+
+ INSERT IGNORE INTO item_track SET
+ item_id = vRef;
+
+ SELECT c.Id_Compra, c.Id_Article INTO vBuy, vItem
+ FROM vn2008.buy_edi e
+ JOIN item_track t ON t.item_id = e.ref
+ LEFT JOIN vn2008.buy_edi l ON l.ref = e.ref
+ LEFT JOIN vn2008.Compres c ON c.buy_edi_id = l.id
+ JOIN vn2008.config cfg
+ WHERE e.id = vEdi
+ AND l.id != vEdi
+ AND c.Id_Article != cfg.generic_item
+ AND IF(t.s1, l.s1 = e.s1, TRUE)
+ AND IF(t.s2, l.s2 = e.s2, TRUE)
+ AND IF(t.s3, l.s3 = e.s3, TRUE)
+ AND IF(t.s4, l.s4 = e.s4, TRUE)
+ AND IF(t.s5, l.s5 = e.s5, TRUE)
+ AND IF(t.s6, l.s6 = e.s6, TRUE)
+ AND IF(t.kop, l.kop = e.kop, TRUE)
+ AND IF(t.pac, l.pac = e.pac, TRUE)
+ AND IF(t.cat, l.cat = e.cat, TRUE)
+ AND IF(t.ori, l.ori = e.ori, TRUE)
+ AND IF(t.pro, l.pro = e.pro, TRUE)
+ AND IF(t.sub, l.sub = e.sub, TRUE)
+ AND IF(t.package, l.package = e.package, TRUE)
+ 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
+ SELECT COUNT(*) > 0 INTO vIsLot
+ FROM vn2008.Articles a
+ LEFT JOIN vn2008.Tipos t ON t.tipo_id = a.tipo_id
+ WHERE a.Id_Article = vItem
+ AND t.`transaction`;
+
+ -- Si el articulo se vende por lotes se inserta un nuevo artículo
+
+ IF vIsLot
+ THEN
+ INSERT INTO vn2008.Articles (
+ Article
+ ,Medida
+ ,Categoria
+ ,Id_Origen
+ ,iva_group_id
+ ,Foto
+ ,Color
+ ,Codintrastat
+ ,tipo_id
+ ,Tallos
+ )
+ SELECT
+ i.`name`
+ ,IFNULL(e.s1, e.pac)
+ ,e.cat
+ ,IFNULL(o.id, 17)
+ ,IFNULL(a.iva_group_id, 1)
+ ,a.Foto
+ ,a.Color
+ ,a.Codintrastat
+ ,IFNULL(a.tipo_id, 10)
+ ,IF(a.tipo_id = 15, 0, 1)
+ FROM vn2008.buy_edi e
+ LEFT JOIN item i ON i.id = e.ref
+ LEFT JOIN vn2008.Origen o ON o.Abreviatura = e.ori
+ LEFT JOIN vn2008.Articles a ON a.Id_Article = vItem
+ WHERE e.id = vEdi;
+
+ SET vItem = LAST_INSERT_ID();
+ END IF;
+ END IF;
+
+ -- Inserta la compra asociada al EKT
+
+ INSERT INTO vn2008.Compres
+ (
+ Id_Entrada
+ ,buy_edi_id
+ ,Costefijo
+ ,Id_Article
+ ,grouping
+ ,caja
+ ,Packing
+ ,Cantidad
+ ,Productor
+ ,Etiquetas
+ ,Id_Cubo
+ )
+ SELECT
+ cfg.edi_entry
+ ,vEdi
+ ,(@t := IF(a.Tallos, a.Tallos, 1)) * e.pri
+ ,IFNULL(vItem, cfg.generic_item)
+ ,IFNULL(c.grouping, e.pac)
+ ,IFNULL(c.caja, TRUE)
+ ,@pac := e.pac / @t
+ ,@pac * e.qty
+ ,s.company_name
+ ,e.qty
+ ,IFNULL(c.Id_Cubo, e.package)
+ FROM vn2008.buy_edi e
+ LEFT JOIN vn2008.Compres c ON c.Id_Compra = vBuy
+ LEFT JOIN vn2008.Articles a ON a.Id_Article = c.Id_Article
+ LEFT JOIN supplier s ON e.pro = s.supplier_id
+ JOIN vn2008.config cfg
+ WHERE e.id = vEdi
+ LIMIT 1;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `messageNew` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `messageNew`(
+ vMailId VARCHAR(100)
+ ,vSender VARCHAR(150)
+ ,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
+ WHERE mail = vSender;
+
+ INSERT IGNORE INTO message SET
+ sender_id = vSenderId
+ ,mail_id = vMailId;
+
+ SET vMessageId = LAST_INSERT_ID();
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `__batch_new` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `__batch_new`(
+ v_message INT
+ ,v_type MEDIUMINT
+ ,v_delivery_number BIGINT
+ ,v_fec DATE
+ ,v_hor TIME
+ ,v_ref INT
+ ,v_agj INT
+ ,v_cat VARCHAR(2)
+ ,v_pac INT
+ ,v_sub MEDIUMINT
+ ,v_kop INT
+ ,v_ptd VARCHAR(6)
+ ,v_pro MEDIUMINT
+ ,v_ori VARCHAR(3)
+ ,v_ptj MEDIUMINT
+ ,v_qty INT
+ ,v_pri DOUBLE
+ ,v_klo SMALLINT
+ ,v_s1 VARCHAR(3)
+ ,v_s2 VARCHAR(3)
+ ,v_s3 VARCHAR(3)
+ ,v_s4 VARCHAR(4)
+ ,v_s5 VARCHAR(3)
+ ,v_s6 VARCHAR(3)
+ ,v_k1 SMALLINT
+ ,v_k2 SMALLINT
+ ,v_p1 TINYINT
+ ,v_p2 TINYINT
+ ,v_auction SMALLINT
+ ,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
+ SET v_is_duplicated = TRUE;
+
+ -- Genera el código de barras
+
+ IF v_agj != 0 AND v_agj IS NOT NULL
+ THEN
+ SET v_barcode = CONCAT(
+ LPAD(v_auction, 2, 0),
+ LPAD(IFNULL(v_klo, 99), 2, 0),
+ LPAD(DAYOFYEAR(v_fec), 3, 0),
+ IF(v_klo IS NULL OR v_klo = 99,
+ LPAD(v_agj, 7, 0),
+ CONCAT(LPAD(v_agj, 5, 0), '01')
+ ),
+ '0'
+ );
+ END IF;
+
+ IF v_kop IS NULL
+ THEN
+ 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)
+ ,delivery_number = v_delivery_number
+ ,entry_year = YEAR(v_fec)
+ ,fec = v_fec
+ ,hor = v_hor
+ ,ref = v_ref
+ ,agj = v_agj
+ ,cat = v_cat
+ ,pac = v_pac
+ ,sub = v_sub
+ ,kop = v_kop
+ ,ptd = v_ptd
+ ,pro = v_pro
+ ,ori = v_ori
+ ,ptj = v_ptj
+ ,qty = v_qty
+ ,pri = v_pri
+ ,klo = v_klo
+ ,s1 = v_s1
+ ,s2 = v_s2
+ ,s3 = v_s3
+ ,s4 = v_s4
+ ,s5 = v_s5
+ ,s6 = v_s6
+ ,k01 = v_k1
+ ,k02 = v_k2
+ ,k03 = v_p1
+ ,k04 = v_p2
+ ,auction = v_auction
+ ,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
+ SET v_edi = LAST_INSERT_ID();
+ CALL edi_load (v_edi);
+
+ ELSEIF v_delivery_number != 0
+ AND v_delivery_number IS NOT NULL
+ THEN
+ SELECT id INTO v_edi
+ FROM vn2008.buy_edi
+ WHERE delivery_number = v_delivery_number;
+
+ SELECT COUNT(*) = 0 INTO v_update_existent
+ FROM vn2008.buy_edi e
+ JOIN batch b ON b.buy_edi_id = e.id
+ JOIN config c
+ WHERE e.delivery_number = v_delivery_number
+ AND b.type_id != c.presale_id;
+ END IF;
+
+ IF v_update_existent
+ THEN
+ UPDATE vn2008.buy_edi SET
+ barcode = IFNULL(v_barcode, barcode)
+ ,fec = v_fec
+ ,hor = v_hor
+ ,ref = v_ref
+ ,agj = v_agj
+ ,cat = v_cat
+ ,pac = v_pac
+ ,sub = v_sub
+ ,kop = v_kop
+ ,ptd = v_ptd
+ ,pro = v_pro
+ ,ori = v_ori
+ ,ptj = v_ptj
+ ,qty = v_qty
+ ,pri = v_pri
+ ,klo = v_klo
+ ,s1 = v_s1
+ ,s2 = v_s2
+ ,s3 = v_s3
+ ,s4 = v_s4
+ ,s5 = v_s5
+ ,s6 = v_s6
+ ,k01 = v_k1
+ ,k02 = v_k2
+ ,k03 = v_p1
+ ,k04 = v_p2
+ ,auction = v_auction
+ ,package = v_package
+ WHERE id = v_edi;
+ END IF;
+
+ -- Registra el lote
+
+ INSERT INTO batch SET
+ message_id = v_message
+ ,type_id = v_type
+ ,buy_edi_id = v_edi;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `__edi_load` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `__edi_load`(v_edi INT)
+BEGIN
+ DECLARE v_ref INT;
+ DECLARE v_buy INT;
+ DECLARE v_item INT;
+ DECLARE v_qty INT;
+ 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
+ SET v_package = 800 + v_qty;
+
+ INSERT IGNORE INTO vn2008.Cubos SET
+ Id_Cubo = v_package,
+ x = 7200 / v_qty,
+ y = 1;
+ ELSE
+ INSERT IGNORE INTO vn2008.Cubos (Id_Cubo, X, Y, Z)
+ SELECT bucket_id, ROUND(x_size/10), ROUND(y_size/10), ROUND(z_size/10)
+ FROM bucket WHERE bucket_id = v_package;
+
+ IF ROW_COUNT() > 0
+ THEN
+ INSERT INTO vn2008.mail SET
+ `subject` = 'Cubo añadido',
+ `text` = CONCAT('Se ha añadido el cubo: ', v_package),
+ `to` = 'ekt@verdnatura.es';
+ 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;
+
+ SELECT c.Id_Compra, c.Id_Article INTO v_buy, v_item
+ FROM vn2008.buy_edi e
+ JOIN item_track t ON t.item_id = e.ref
+ LEFT JOIN vn2008.buy_edi l ON l.ref = e.ref
+ LEFT JOIN vn2008.Compres c ON c.buy_edi_id = l.id
+ JOIN vn2008.config cfg
+ WHERE e.id = v_edi
+ AND l.id != v_edi
+ AND c.Id_Article != cfg.generic_item
+ AND IF(t.s1, l.s1 = e.s1, TRUE)
+ AND IF(t.s2, l.s2 = e.s2, TRUE)
+ AND IF(t.s3, l.s3 = e.s3, TRUE)
+ AND IF(t.s4, l.s4 = e.s4, TRUE)
+ AND IF(t.s5, l.s5 = e.s5, TRUE)
+ AND IF(t.s6, l.s6 = e.s6, TRUE)
+ AND IF(t.kop, l.kop = e.kop, TRUE)
+ AND IF(t.pac, l.pac = e.pac, TRUE)
+ AND IF(t.cat, l.cat = e.cat, TRUE)
+ AND IF(t.ori, l.ori = e.ori, TRUE)
+ AND IF(t.pro, l.pro = e.pro, TRUE)
+ AND IF(t.sub, l.sub = e.sub, TRUE)
+ AND IF(t.package, l.package = e.package, TRUE)
+ 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
+ SELECT COUNT(*) > 0 INTO v_is_lot
+ FROM vn2008.Articles a
+ LEFT JOIN vn2008.Tipos t ON t.tipo_id = a.tipo_id
+ 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
+ INSERT INTO vn2008.Articles (
+ Article
+ ,Medida
+ ,Categoria
+ ,Id_Origen
+ ,iva_group_id
+ ,Foto
+ ,Color
+ ,Codintrastat
+ ,tipo_id
+ ,Tallos
+ )
+ SELECT
+ i.`name`
+ ,IFNULL(e.s1, e.pac)
+ ,e.cat
+ ,IFNULL(o.id, 17)
+ ,IFNULL(a.iva_group_id, 1)
+ ,a.Foto
+ ,a.Color
+ ,a.Codintrastat
+ ,IFNULL(a.tipo_id, 10)
+ ,IF(a.tipo_id = 15, 0, 1)
+ FROM vn2008.buy_edi e
+ LEFT JOIN item i ON i.id = e.ref
+ LEFT JOIN vn2008.Origen o ON o.Abreviatura = e.ori
+ LEFT JOIN vn2008.Articles a ON a.Id_Article = v_item
+ WHERE e.id = v_edi;
+
+ SET v_item = LAST_INSERT_ID();
+ END IF;
+ END IF;
+
+ -- Inserta la compra asociada al EKT
+
+ INSERT INTO vn2008.Compres
+ (
+ Id_Entrada
+ ,buy_edi_id
+ ,Costefijo
+ ,Id_Article
+ ,grouping
+ ,caja
+ ,Packing
+ ,Cantidad
+ ,Productor
+ ,Etiquetas
+ ,Id_Cubo
+ )
+ SELECT
+ cfg.edi_entry
+ ,v_edi
+ ,(@t := IF(a.Tallos, a.Tallos, 1)) * e.pri
+ ,IFNULL(v_item, cfg.generic_item)
+ ,IFNULL(c.grouping, e.pac)
+ ,IFNULL(c.caja, TRUE)
+ ,@pac := e.pac / @t
+ ,@pac * e.qty
+ ,s.company_name
+ ,e.qty
+ ,IFNULL(c.Id_Cubo, e.package)
+ FROM vn2008.buy_edi e
+ LEFT JOIN vn2008.Compres c ON c.Id_Compra = v_buy
+ LEFT JOIN vn2008.Articles a ON a.Id_Article = c.Id_Article
+ LEFT JOIN supplier s ON e.pro = s.supplier_id
+ JOIN vn2008.config cfg
+ WHERE e.id = v_edi
+ LIMIT 1;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `__message_new` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `__message_new`(
+ v_mail_id VARCHAR(100)
+ ,v_sender VARCHAR(150)
+ ,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;
+
+ SELECT id INTO v_sender_id FROM mail
+ WHERE mail = v_sender;
+
+ INSERT IGNORE INTO message SET
+ sender_id = v_sender_id
+ ,mail_id = v_mail_id;
+
+ SET v_message_id = LAST_INSERT_ID();
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Current Database: `vn2008`
+--
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `vn2008` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */;
+
+USE `vn2008`;
+
+--
+-- Table structure for table `Agencias`
+--
+
+DROP TABLE IF EXISTS `Agencias`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Agencias` (
+ `Id_Agencia` int(11) NOT NULL AUTO_INCREMENT,
+ `Agencia` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `description` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Vista` int(11) DEFAULT '0',
+ `m3` double DEFAULT '0',
+ `cod71` tinyint(3) unsigned DEFAULT '0',
+ `web` smallint(1) unsigned zerofill NOT NULL DEFAULT '0',
+ `agency_id` smallint(6) NOT NULL,
+ `agency_service_id` tinyint(4) NOT NULL DEFAULT '1',
+ `inflacion` decimal(5,2) NOT NULL DEFAULT '0.00' COMMENT 'Este valor se utiliza para aumentar el valor del componente porte.',
+ `is_volumetric` tinyint(1) NOT NULL DEFAULT '0',
+ `send_mail` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `show_AgencyName` tinyint(1) DEFAULT '1',
+ `tpv` tinyint(1) NOT NULL DEFAULT '1',
+ `externalAgency` tinyint(1) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`Id_Agencia`),
+ KEY `Agencias` (`Agencia`),
+ KEY `Vista` (`Vista`)
+) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Agencias_dits`
+--
+
+DROP TABLE IF EXISTS `Agencias_dits`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Agencias_dits` (
+ `idAgencia_dits` int(11) NOT NULL AUTO_INCREMENT,
+ `idaccion_dits` int(11) NOT NULL,
+ `ODBC_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `Id_Ticket` int(11) NOT NULL,
+ `Id_Trabajador` int(11) NOT NULL,
+ `value_old` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `value_new` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`idAgencia_dits`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Agencias_province`
+--
+
+DROP TABLE IF EXISTS `Agencias_province`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Agencias_province` (
+ `province_id` smallint(6) unsigned NOT NULL,
+ `agency_id` smallint(5) unsigned NOT NULL,
+ `zona` tinyint(4) NOT NULL,
+ `warehouse_id` smallint(6) unsigned NOT NULL,
+ `route` tinyint(4) NOT NULL COMMENT 'Etiqueta zeleris',
+ PRIMARY KEY (`province_id`,`agency_id`,`warehouse_id`),
+ KEY `warehouse_id` (`warehouse_id`),
+ KEY `agency_id` (`agency_id`),
+ CONSTRAINT `Agencias_province_ibfk_1` FOREIGN KEY (`province_id`) REFERENCES `province` (`province_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `Agencias_province_ibfk_2` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `Agencias_province_ibfk_3` FOREIGN KEY (`agency_id`) REFERENCES `agency` (`agency_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Agencias_zonas`
+--
+
+DROP TABLE IF EXISTS `Agencias_zonas`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Agencias_zonas` (
+ `Id_Agencia` int(11) NOT NULL,
+ `zona` tinyint(4) NOT NULL,
+ `price` double NOT NULL,
+ `Id_Article` int(10) NOT NULL DEFAULT '71',
+ `warehouse_id` smallint(6) NOT NULL DEFAULT '1',
+ `porte_minimo` tinyint(1) NOT NULL DEFAULT '0',
+ `inflacion` decimal(5,2) NOT NULL DEFAULT '1.00',
+ PRIMARY KEY (`Id_Agencia`,`zona`,`Id_Article`,`warehouse_id`),
+ KEY `Id_Article` (`Id_Article`),
+ CONSTRAINT `Agencias_zonas_ibfk_1` FOREIGN KEY (`Id_Article`) REFERENCES `Articles` (`Id_Article`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `Agencias_zonas_ibfk_2` FOREIGN KEY (`Id_Agencia`) REFERENCES `Agencias` (`Id_Agencia`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Articles`
+--
+
+DROP TABLE IF EXISTS `Articles`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Articles` (
+ `Id_Article` int(11) NOT NULL AUTO_INCREMENT,
+ `Equivalente` int(11) unsigned DEFAULT NULL,
+ `Article` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Medida` int(10) unsigned DEFAULT NULL,
+ `Tallos` int(11) DEFAULT '1',
+ `PVP` double DEFAULT '0',
+ `Imprimir` tinyint(1) NOT NULL DEFAULT '0',
+ `Albaranero` tinyint(1) NOT NULL DEFAULT '0',
+ `iva_group_id` tinyint(4) unsigned NOT NULL DEFAULT '1',
+ `Familia` varchar(3) COLLATE utf8_unicode_ci DEFAULT 'VT',
+ `caja` tinyint(1) NOT NULL DEFAULT '0',
+ `Categoria` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `id_origen` tinyint(2) unsigned NOT NULL,
+ `do_photo` tinyint(4) NOT NULL DEFAULT '0',
+ `Foto` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Color` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Nicho` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Codintrastat` int(8) unsigned zerofill DEFAULT NULL,
+ `Min` tinyint(1) NOT NULL DEFAULT '0',
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `offer` tinyint(4) NOT NULL DEFAULT '0',
+ `bargain` tinyint(4) NOT NULL DEFAULT '0',
+ `comments` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'renombrar: reference',
+ `tipo_id` smallint(5) unsigned NOT NULL,
+ `generic` tinyint(1) unsigned zerofill NOT NULL DEFAULT '0',
+ `producer_id` mediumint(3) unsigned DEFAULT NULL,
+ `description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `density` double NOT NULL DEFAULT '167' COMMENT 'Almacena la densidad en kg/m3 para el calculo de los portes ',
+ `relevancy` tinyint(1) NOT NULL DEFAULT '0',
+ `expenceFk` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '7001000000',
+ PRIMARY KEY (`Id_Article`),
+ KEY `Article` (`Article`),
+ KEY `Color` (`Color`),
+ KEY `id_origen` (`id_origen`),
+ KEY `Codintrastat` (`Codintrastat`),
+ KEY `iva_group_id` (`iva_group_id`),
+ KEY `tipo_id` (`tipo_id`),
+ KEY `producer_id` (`producer_id`),
+ KEY `expenceFk_idx` (`expenceFk`),
+ CONSTRAINT `Articles_ibfk_1` FOREIGN KEY (`id_origen`) REFERENCES `Origen` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `Articles_ibfk_2` FOREIGN KEY (`Codintrastat`) REFERENCES `Intrastat` (`Codintrastat`) ON UPDATE CASCADE,
+ CONSTRAINT `Articles_ibfk_4` FOREIGN KEY (`iva_group_id`) REFERENCES `iva_group` (`iva_group_id`) ON UPDATE CASCADE,
+ CONSTRAINT `Articles_ibfk_5` FOREIGN KEY (`tipo_id`) REFERENCES `Tipos` (`tipo_id`) ON UPDATE CASCADE,
+ CONSTRAINT `expenceFk` FOREIGN KEY (`expenceFk`) REFERENCES `Gastos` (`Id_Gasto`) ON UPDATE CASCADE,
+ CONSTRAINT `producer_id` FOREIGN KEY (`producer_id`) REFERENCES `producer` (`producer_id`) ON DELETE SET NULL ON UPDATE CASCADE
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`ArticlesBeforeInsert`
+ BEFORE INSERT ON `Articles` FOR EACH ROW
+BEGIN
+ DECLARE vDensity DOUBLE;
+ DECLARE vInsertId INT;
+
+ IF NEW.density IS NULL
+ THEN
+ SELECT density INTO vDensity
+ FROM Tipos WHERE tipo_id = NEW.tipo_id;
+
+ SET NEW.density = vDensity;
+ END IF;
+
+ IF NEW.Foto IS NULL
+ THEN
+ SELECT `auto_increment` INTO vInsertId
+ FROM `information_schema`.TABLES
+ WHERE `table_name` = 'Articles'
+ AND `table_schema` = DATABASE();
+
+ SET NEW.Foto = vInsertId;
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`Articles_AFTER_INSERT` AFTER INSERT ON `Articles` FOR EACH ROW
+BEGIN
+
+ CALL itemTagArrangedUpdate(NEW.Id_Article);
+
+ INSERT INTO vn.itemTaxCountry(itemFk, countryFk, taxClassFk)
+ SELECT NEW.Id_Article, 1, NEW.iva_group_id;
+
+ INSERT INTO vn.itemTaxCountry(itemFk, countryFk, taxClassFk)
+ SELECT NEW.Id_Article, 5, NEW.iva_group_id;
+
+ INSERT INTO vn.itemTaxCountry(itemFk, countryFk, taxClassFk)
+ SELECT NEW.Id_Article, 30, NEW.iva_group_id;
+
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`Articles_AFTER_UPDATE` AFTER UPDATE ON `Articles` FOR EACH ROW
+BEGIN
+
+ CALL itemTagArrangedUpdate(NEW.Id_Article);
+
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `Articles_PVP`
+--
+
+DROP TABLE IF EXISTS `Articles_PVP`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Articles_PVP` (
+ `Id_Article` int(11) NOT NULL,
+ `PVP` double DEFAULT NULL,
+ `Id_Cliente` int(11) NOT NULL,
+ `Fecha` date NOT NULL,
+ KEY `id_article_pvp_idx` (`Id_Article`),
+ KEY `id_cliente_pvp_idx` (`Id_Cliente`),
+ CONSTRAINT `id_article_pvp` FOREIGN KEY (`Id_Article`) REFERENCES `Articles` (`Id_Article`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `id_cliente_pvp` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Almacena los precios para etiquetar los articulos a los clientes';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Articles_botanical`
+--
+
+DROP TABLE IF EXISTS `Articles_botanical`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Articles_botanical` (
+ `Id_Article` int(11) NOT NULL,
+ `botanical` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `genus_id` mediumint(8) unsigned DEFAULT NULL,
+ `specie_id` mediumint(8) unsigned DEFAULT NULL,
+ PRIMARY KEY (`Id_Article`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Sustituye a antiguo NomBotanic de Articles';
+/*!40101 SET character_set_client = @saved_cs_client */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `Articles_botanical_bi` BEFORE INSERT ON `Articles_botanical` FOR EACH ROW
+BEGIN
+ IF NEW.botanical = '' THEN
+ SET NEW.botanical = NULL;
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `Articles_botanical_bu` BEFORE UPDATE ON `Articles_botanical` FOR EACH ROW
+BEGIN
+ IF NEW.botanical = '' THEN
+ SET NEW.botanical = NULL;
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `Articles_dits`
+--
+
+DROP TABLE IF EXISTS `Articles_dits`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Articles_dits` (
+ `idArticles_dits` int(11) NOT NULL AUTO_INCREMENT,
+ `idaccion_dits` int(11) NOT NULL,
+ `ODBC_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `Id_Ticket` int(11) NOT NULL,
+ `Id_Trabajador` int(11) NOT NULL,
+ `value_old` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `value_new` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`idArticles_dits`),
+ KEY `fgkey1_idx` (`idaccion_dits`),
+ KEY `fgkey2_idx` (`Id_Ticket`),
+ KEY `fgkey3_idx` (`Id_Trabajador`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Articles_nicho`
+--
+
+DROP TABLE IF EXISTS `Articles_nicho`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Articles_nicho` (
+ `Id_Article` int(11) NOT NULL AUTO_INCREMENT,
+ `warehouse_id` smallint(6) unsigned NOT NULL DEFAULT '1',
+ `nicho` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `modificationDate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ PRIMARY KEY (`Id_Article`,`warehouse_id`),
+ KEY `Articles_nicho_wh_fk` (`warehouse_id`),
+ CONSTRAINT `Articles_nicho_wh_fk` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `Articles_nichos_fk` FOREIGN KEY (`Id_Article`) REFERENCES `Articles` (`Id_Article`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ CALL util.debugAdd ('nicho', NEW.nicho);
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`Articles_nicho_AFTER_INSERT` AFTER INSERT ON `Articles_nicho` FOR EACH ROW
+BEGIN
+
+DECLARE mailText VARCHAR(90);
+
+IF NEW.nicho LIKE 'BIONIC%' THEN
+
+ SELECT IFNULL(CONCAT(Id_Trabajador, ' ', CodigoTrabajador, ' ' ,Nombre, ' ' , Apellidos),'TRABAJADOR NO ENCONTRADO')
+ INTO mailText
+ FROM Trabajadores
+ WHERE Id_Trabajador = vn2008.get_Trabajador();
+
+ SELECT CONCAT(mailText, ' ', Article, ' ', Medida)
+ INTO mailText
+ FROM Articles
+ WHERE Id_Article = NEW.Id_Article;
+
+ INSERT INTO mail(`to`,reply_to,subject,text)
+ VALUES('pako@verdnatura.es,nelo@verdnatura.es','informatica@verdnatura.es','BIONIC INSERT',mailText);
+
+
+END IF;
+
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ CALL util.debugAdd ('nicho', NEW.nicho);
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`Articles_nicho_AFTER_UPDATE` AFTER UPDATE ON `Articles_nicho` FOR EACH ROW
+BEGIN
+
+DECLARE mailText VARCHAR(90);
+
+IF NEW.nicho LIKE 'BIONIC%' THEN
+
+ SELECT IFNULL(CONCAT(Id_Trabajador, ' ', CodigoTrabajador, ' ' ,Nombre, ' ' , Apellidos),'TRABAJADOR NO ENCONTRADO')
+ INTO mailText
+ FROM Trabajadores
+ WHERE Id_Trabajador = vn2008.get_Trabajador();
+
+ SELECT CONCAT(mailText, ' ', Article, ' ', Medida)
+ INTO mailText
+ FROM Articles
+ WHERE Id_Article = NEW.Id_Article;
+
+ INSERT INTO mail(`to`,reply_to,subject,text)
+ VALUES('pako@verdnatura.es,nelo@verdnatura.es','informatica@verdnatura.es','BIONIC UPDATE',mailText);
+
+
+END IF;
+
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `Articles_old`
+--
+
+DROP TABLE IF EXISTS `Articles_old`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Articles_old` (
+ `Id_Article` int(11) NOT NULL DEFAULT '0',
+ `Equivalente` int(11) unsigned DEFAULT NULL,
+ `Article` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Medida` int(10) unsigned DEFAULT NULL,
+ `Tallos` int(11) DEFAULT '1',
+ `PVP` double DEFAULT '0',
+ `Imprimir` tinyint(1) NOT NULL DEFAULT '0',
+ `Albaranero` tinyint(1) NOT NULL DEFAULT '0',
+ `iva_group_id` tinyint(4) unsigned NOT NULL DEFAULT '1',
+ `Familia` varchar(3) COLLATE utf8_unicode_ci DEFAULT 'VT',
+ `caja` tinyint(1) NOT NULL DEFAULT '0',
+ `Categoria` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `id_origen` tinyint(2) unsigned NOT NULL,
+ `do_photo` tinyint(4) NOT NULL DEFAULT '0',
+ `Foto` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Color` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Nicho` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Codintrastat` int(8) unsigned zerofill DEFAULT NULL,
+ `Min` tinyint(1) NOT NULL DEFAULT '0',
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `offer` tinyint(4) NOT NULL DEFAULT '0',
+ `bargain` tinyint(4) NOT NULL DEFAULT '0',
+ `comments` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'renombrar: reference',
+ `tipo_id` smallint(5) unsigned NOT NULL,
+ `generic` tinyint(1) unsigned zerofill NOT NULL DEFAULT '0',
+ `producer_id` mediumint(3) unsigned DEFAULT NULL,
+ `description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Baldas`
+--
+
+DROP TABLE IF EXISTS `Baldas`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Baldas` (
+ `Id_Estanterias` int(11) NOT NULL,
+ `Id_Baldas` int(11) NOT NULL,
+ `h` int(11) NOT NULL,
+ PRIMARY KEY (`Id_Estanterias`,`Id_Baldas`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Bancos`
+--
+
+DROP TABLE IF EXISTS `Bancos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Bancos` (
+ `Id_Banco` int(11) NOT NULL DEFAULT '0',
+ `Banco` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Cuenta` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `cash` smallint(6) NOT NULL DEFAULT '0',
+ `warehouse_id` smallint(5) unsigned NOT NULL DEFAULT '1',
+ `entity_id` int(10) unsigned NOT NULL,
+ `activo` tinyint(4) NOT NULL DEFAULT '1',
+ PRIMARY KEY (`Id_Banco`),
+ KEY `BancosBanco` (`Banco`),
+ KEY `fk_Bancos_entity1_idx` (`entity_id`),
+ KEY `foreignkey1_idx` (`cash`),
+ CONSTRAINT `foreignkey1` FOREIGN KEY (`cash`) REFERENCES `vn`.`accountingType` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Apunta a la vista vn.Accounting\nLa columna cash es la FK de vn.AccountingType';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Bancos_poliza`
+--
+
+DROP TABLE IF EXISTS `Bancos_poliza`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Bancos_poliza` (
+ `poliza_id` int(11) NOT NULL AUTO_INCREMENT,
+ `referencia` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `importe` double NOT NULL,
+ `com_dispuesto` double DEFAULT NULL,
+ `com_no_dispuesto` double DEFAULT NULL,
+ `com_anual` double DEFAULT NULL,
+ `apertura` date NOT NULL,
+ `cierre` date DEFAULT NULL,
+ `Id_Banco` int(11) NOT NULL,
+ `empresa_id` smallint(5) unsigned NOT NULL DEFAULT '442',
+ PRIMARY KEY (`poliza_id`),
+ KEY `Id_Banco_Poliza_idx` (`Id_Banco`),
+ KEY `Id_Poliza_Empresa_idx` (`empresa_id`),
+ CONSTRAINT `Id_Banco_Poliza` FOREIGN KEY (`Id_Banco`) REFERENCES `Bancos` (`Id_Banco`) ON UPDATE CASCADE,
+ CONSTRAINT `Id_Poliza_Empresa` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Lineas de credito asociadas a cuentas corrientes';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Brasa`
+--
+
+DROP TABLE IF EXISTS `Brasa`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Brasa` (
+ `Id_Cliente` int(10) unsigned NOT NULL DEFAULT '0',
+ `Cliente` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `Vista` int(10) unsigned NOT NULL DEFAULT '0',
+ `Reg` bigint(21) unsigned NOT NULL DEFAULT '0',
+ `Consumo` double NOT NULL,
+ `Grupo` int(10) unsigned NOT NULL,
+ PRIMARY KEY (`Id_Cliente`),
+ KEY `Index_1` (`Id_Cliente`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Cajas`
+--
+
+DROP TABLE IF EXISTS `Cajas`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Cajas` (
+ `Id_Caja` int(11) NOT NULL AUTO_INCREMENT,
+ `Cajafecha` date NOT NULL,
+ `Partida` tinyint(1) NOT NULL DEFAULT '0',
+ `Serie` varchar(2) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Numero` int(11) DEFAULT NULL,
+ `Concepto` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `Entrada` decimal(10,2) DEFAULT NULL,
+ `Salida` decimal(10,2) DEFAULT NULL,
+ `Id_Banco` int(11) DEFAULT '1',
+ `Id_Trabajador` int(11) DEFAULT NULL,
+ `empresa_id` smallint(5) unsigned DEFAULT NULL COMMENT 'kakear',
+ `linked` tinyint(4) DEFAULT '0',
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `ok` tinyint(4) NOT NULL DEFAULT '0',
+ `warehouse_id` smallint(5) unsigned NOT NULL DEFAULT '1' COMMENT 'to kak\n',
+ `conciliado` int(2) NOT NULL DEFAULT '0',
+ `Proveedores_account_Id` mediumint(8) unsigned NOT NULL,
+ `id_calculated` varchar(90) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`Id_Caja`),
+ UNIQUE KEY `id_calculated_UNIQUE` (`id_calculated`),
+ KEY `CajasCajafecha` (`Cajafecha`),
+ KEY `Id_Banco` (`Id_Banco`),
+ KEY `Id_Trabajador` (`Id_Trabajador`),
+ KEY `empresa_id` (`empresa_id`),
+ KEY `warehouse_id` (`warehouse_id`),
+ KEY `fk_Cajas_Proveedores_account1_idx` (`Proveedores_account_Id`),
+ CONSTRAINT `Cajas_ibfk_2` FOREIGN KEY (`Id_Banco`) REFERENCES `Bancos` (`Id_Banco`) ON UPDATE CASCADE
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`CajasBeforeInsert` BEFORE INSERT ON `Cajas` FOR EACH ROW
+BEGIN
+ IF IFNULL(NEW.Concepto,"") = "" THEN
+ CALL util.throw ('Error. El concepto esta vacío');
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `Cajas eliminadas`
+--
+
+DROP TABLE IF EXISTS `Cajas eliminadas`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Cajas eliminadas` (
+ `Id_Caja` int(11) NOT NULL DEFAULT '0',
+ `Cajafecha` datetime DEFAULT NULL,
+ `Partida` tinyint(1) NOT NULL DEFAULT '0',
+ `Serie` varchar(2) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Numero` int(11) DEFAULT NULL,
+ `Concepto` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `Entrada` double DEFAULT NULL,
+ `Salida` double DEFAULT NULL,
+ PRIMARY KEY (`Id_Caja`),
+ KEY `CajasCajafecha` (`Cajafecha`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Clases`
+--
+
+DROP TABLE IF EXISTS `Clases`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Clases` (
+ `Id_Clase` int(11) NOT NULL DEFAULT '0',
+ `Clase` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`Id_Clase`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Clientes`
+--
+
+DROP TABLE IF EXISTS `Clientes`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Clientes` (
+ `id_cliente` int(11) NOT NULL AUTO_INCREMENT,
+ `cliente` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `descuento` tinyint(3) unsigned NOT NULL DEFAULT '0',
+ `default_address` int(11) DEFAULT NULL,
+ `domicilio` longtext COLLATE utf8_unicode_ci,
+ `if` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `telefono` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `fax` varchar(11) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `e-mail` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `cc` varchar(23) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `vencimiento` smallint(6) NOT NULL DEFAULT '5',
+ `recibo` int(11) DEFAULT '1' COMMENT 'Deprecated',
+ `oficial` tinyint(1) NOT NULL DEFAULT '1' COMMENT 'Deprecated',
+ `contabilizado` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Deprecated',
+ `movil` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Cuenta` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
+ `RE` tinyint(1) NOT NULL DEFAULT '0',
+ `poblacion` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `province_id` smallint(5) unsigned DEFAULT NULL,
+ `codPostal` varchar(8) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `razonSocial` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `contacto` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `mayorista` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Deprecated',
+ `reexpedicion` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Deprecated',
+ `invoice` tinyint(1) NOT NULL DEFAULT '1',
+ `notas` text COLLATE utf8_unicode_ci COMMENT 'Deprecated',
+ `notas_administracion` text COLLATE utf8_unicode_ci NOT NULL COMMENT 'Deprecated',
+ `copiaFactura` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Deprecated',
+ `retener` tinyint(1) NOT NULL DEFAULT '0',
+ `congelado` tinyint(1) NOT NULL DEFAULT '0',
+ `Id_Trabajador` int(11) DEFAULT NULL,
+ `credito` double NOT NULL DEFAULT '0',
+ `cyc` double DEFAULT NULL,
+ `Id_Pais` mediumint(8) unsigned NOT NULL DEFAULT '1',
+ `activo` tinyint(1) NOT NULL DEFAULT '1',
+ `gestdoc_id` int(11) DEFAULT NULL,
+ `calidad` int(2) DEFAULT '11',
+ `pay_met_id` tinyint(3) unsigned NOT NULL DEFAULT '5',
+ `created` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ `mail` tinyint(1) NOT NULL DEFAULT '1',
+ `chanel_id` smallint(6) DEFAULT NULL,
+ `vies` tinyint(4) NOT NULL DEFAULT '0',
+ `split_holland` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'eliminar',
+ `sepaFth` tinyint(1) DEFAULT '0' COMMENT 'campo para recibir los escritos de los clientes para el sepa',
+ `sepaVnl` tinyint(1) DEFAULT '0',
+ `coreFth` tinyint(1) DEFAULT '0',
+ `coreVnl` tinyint(1) DEFAULT '0',
+ `risk_calculated` date NOT NULL,
+ `coreVnh` tinyint(1) DEFAULT '0',
+ `real` tinyint(1) NOT NULL DEFAULT '1' COMMENT 'Define los clientes cuyas ventas hay que tener en cuenta en los calculos estadisticos.',
+ `clientes_tipo_id` int(11) NOT NULL DEFAULT '1',
+ `postcode_id` int(11) unsigned DEFAULT NULL,
+ `mail_address` int(11) DEFAULT NULL,
+ `codpos` char(5) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `creditInsurance` int(11) DEFAULT NULL,
+ `EYPBC` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Email\nYesterday\nPurchases\nBy\nConsigna',
+ `invoiceByAddress` tinyint(1) DEFAULT '0',
+ `cplusTerIdNifFk` int(11) NOT NULL DEFAULT '1',
+ PRIMARY KEY (`id_cliente`),
+ UNIQUE KEY `IF` (`if`),
+ KEY `Id_Trabajador` (`Id_Trabajador`),
+ KEY `Id_Pais` (`Id_Pais`),
+ KEY `pay_met_id` (`pay_met_id`),
+ KEY `canal_nuevo_cliente` (`chanel_id`),
+ KEY `Cuenta` (`Cuenta`),
+ KEY `province_id` (`province_id`),
+ KEY `default_address` (`default_address`),
+ KEY `Telefono` (`telefono`),
+ KEY `movil` (`movil`),
+ KEY `tipos_de_cliente_idx` (`clientes_tipo_id`),
+ KEY `cpostcode_fk_idx` (`postcode_id`),
+ KEY `codpos` (`codpos`,`codPostal`),
+ KEY `clientes_fk_6_idx` (`cplusTerIdNifFk`),
+ CONSTRAINT `Clientes_ibfk_1` FOREIGN KEY (`Id_Pais`) REFERENCES `Paises` (`Id`) ON UPDATE CASCADE,
+ CONSTRAINT `Clientes_ibfk_2` FOREIGN KEY (`pay_met_id`) REFERENCES `pay_met` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `Clientes_ibfk_3` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON DELETE SET NULL ON UPDATE CASCADE,
+ CONSTRAINT `Clientes_ibfk_4` FOREIGN KEY (`default_address`) REFERENCES `Consignatarios` (`id_consigna`) ON DELETE SET NULL ON UPDATE CASCADE,
+ CONSTRAINT `Clientes_ibfk_5` FOREIGN KEY (`province_id`) REFERENCES `province` (`province_id`) ON UPDATE CASCADE,
+ CONSTRAINT `Clientes_postcode` FOREIGN KEY (`postcode_id`) REFERENCES `postcodeKK` (`postcode_id`) ON DELETE SET NULL ON UPDATE CASCADE,
+ 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;
+/*!40101 SET character_set_client = @saved_cs_client */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `ClientesBeforeInsert`
+ BEFORE INSERT ON `Clientes`
+ FOR EACH ROW
+BEGIN
+ CALL pbx.phoneIsValid (NEW.telefono);
+ CALL pbx.phoneIsValid (NEW.movil);
+ CALL pbx.phoneIsValid (NEW.fax);
+
+ SET NEW.cuenta = 4300000000 + NEW.Id_Cliente;
+
+ IF NEW.pay_met_id = 4 AND NEW.Vencimiento = 0 THEN
+ SET NEW.Vencimiento = 5;
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`ClientesAfterInsert`
+ AFTER INSERT ON `vn2008`.`Clientes`
+ FOR EACH ROW
+BEGIN
+ INSERT INTO Consignatarios SET
+ Id_Cliente = NEW.Id_Cliente,
+ Domicilio = NEW.domicilio,
+ Poblacion = NEW.POBLACION,
+ province_id = NEW.province_id,
+ Codpostal = NEW.CODPOSTAL,
+ Consignatario = NEW.Cliente,
+ Predeterminada = TRUE,
+ Id_Agencia = 2,
+ isEqualizated = NEW.RE;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `ClientesBeforeUpdate`
+ BEFORE UPDATE ON `Clientes`
+ FOR EACH ROW
+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);
+ END IF;
+
+ IF !(NEW.movil <=> OLD.movil) THEN
+ CALL pbx.phoneIsValid (NEW.movil);
+ END IF;
+
+ IF !(NEW.fax <=> OLD.fax) THEN
+ CALL pbx.phoneIsValid (NEW.fax);
+ END IF;
+
+ -- Actualiza el crédito
+
+ SELECT Id_Trabajador INTO vEmployee
+ FROM Trabajadores WHERE user_id = account.userGetId();
+
+ IF vEmployee IS NULL THEN
+ SET vEmployee = 20;
+ END IF;
+
+ IF !(NEW.Credito <=> OLD.Credito) AND IFNULL(NEW.Credito, 0) >= 0
+ THEN
+ INSERT INTO credit SET
+ Id_Cliente = NEW.Id_Cliente,
+ amount = NEW.Credito,
+ 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';
+ END IF;
+
+ IF NEW.corevnl AND !OLD.corevnl THEN
+ SET vText = 'Core de VNL';
+ END IF;
+
+ IF vText IS NOT NULL
+ THEN
+ INSERT INTO mail(`to`, reply_to, subject, text)
+ SELECT
+ CONCAT(IF(ac.id,name, 'jgallego'), '@verdnatura.es'),
+ 'administracion@verdnatura.es',
+ CONCAT('Cliente ', NEW.Id_Cliente),
+ CONCAT('Recibida la documentación: ', vText)
+ FROM Trabajadores t
+ LEFT JOIN account.user u ON t.user_id = u.id AND active
+ LEFT JOIN account.account ac ON ac.id = u.id
+ WHERE t.Id_Trabajador = NEW.Id_Trabajador;
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `Clientes_cedidos`
+--
+
+DROP TABLE IF EXISTS `Clientes_cedidos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Clientes_cedidos` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `Id_Cliente` int(11) NOT NULL,
+ `Id_Trabajador_old` int(11) NOT NULL,
+ `Id_Trabajador_new` int(11) NOT NULL,
+ `datSTART` date NOT NULL,
+ `datEND` date NOT NULL,
+ `comision_old` double NOT NULL DEFAULT '0.5',
+ `comision_new` double NOT NULL DEFAULT '0.5',
+ PRIMARY KEY (`id`),
+ KEY `trabajador_fk_idx` (`Id_Trabajador_old`),
+ KEY `new_trabajador_fk_idx` (`Id_Trabajador_new`),
+ KEY `cliente_cedido_fk_idx` (`Id_Cliente`),
+ CONSTRAINT `cliente_cedido_fk` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `new_trabajador_fk` FOREIGN KEY (`Id_Trabajador_new`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `trabajador_fk` FOREIGN KEY (`Id_Trabajador_old`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Clientes que se han cambiado de comercial, pero durante un tiempo comisionan a los dos, al anterior y al actual';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Clientes_dits`
+--
+
+DROP TABLE IF EXISTS `Clientes_dits`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Clientes_dits` (
+ `idClientes_dits` int(11) NOT NULL AUTO_INCREMENT,
+ `idaccion_dits` int(11) NOT NULL,
+ `ODBC_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `Id_Ticket` int(11) NOT NULL,
+ `Id_Trabajador` int(11) NOT NULL,
+ `value_old` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `value_new` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`idClientes_dits`),
+ KEY `idaccion_dits` (`idaccion_dits`),
+ CONSTRAINT `Clientes_dits_ibfk_1` FOREIGN KEY (`idaccion_dits`) REFERENCES `accion_dits` (`idaccion_dits`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Clientes_empresa`
+--
+
+DROP TABLE IF EXISTS `Clientes_empresa`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Clientes_empresa` (
+ `Id_Clientes_empresa` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `Id_Cliente` int(11) NOT NULL,
+ `empresa_id` smallint(5) unsigned NOT NULL,
+ `fecha_ini` date NOT NULL,
+ `fecha_fin` date NOT NULL,
+ PRIMARY KEY (`Id_Clientes_empresa`),
+ KEY `empresa_id_idx` (`empresa_id`),
+ CONSTRAINT `empresa_id` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON DELETE NO ACTION
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Empresa por defecto para crear los tickets';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Clientes_event`
+--
+
+DROP TABLE IF EXISTS `Clientes_event`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Clientes_event` (
+ `Id_Cliente` int(11) NOT NULL,
+ `quantity` tinyint(3) unsigned NOT NULL,
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`Id_Cliente`),
+ CONSTRAINT `Clientes_event_ibfk_1` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Clientes_potenciales`
+--
+
+DROP TABLE IF EXISTS `Clientes_potenciales`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Clientes_potenciales` (
+ `id` int(11) NOT NULL,
+ `PAIS` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `ACTIVIDAD` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `NOMBRE` varchar(45) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+ `PROVINCIA` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `POBLACION` varchar(45) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+ `CP` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `DIR_POSTAL` varchar(45) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+ `TELEFONO` varchar(12) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+ `TELEFONO2` varchar(12) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+ `FAX` varchar(12) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+ `E-MAIL` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `pagweb` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `SERVICIOS` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `state_id` smallint(6) DEFAULT '0' COMMENT '0 no se ha hecho nada\n1 ya existe el cliente\n2 cliente conseguido\n3 desestimado',
+ `Id_Trabajador` smallint(6) DEFAULT NULL,
+ `Notas` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `odbc_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`NOMBRE`,`POBLACION`,`DIR_POSTAL`,`TELEFONO`,`TELEFONO2`,`FAX`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Colas`
+--
+
+DROP TABLE IF EXISTS `Colas`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Colas` (
+ `Id_Cola` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `Id_Impresora` tinyint(3) unsigned DEFAULT '0',
+ `Id_Prioridad` tinyint(3) unsigned DEFAULT '2',
+ `Id_Informe` tinyint(3) unsigned DEFAULT '0',
+ `Id_Estado` tinyint(3) unsigned DEFAULT '1',
+ `Hora_Inicio` datetime DEFAULT NULL,
+ `Hora_Fin` datetime DEFAULT NULL,
+ `Cola` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Id_Trabajador` int(11) DEFAULT '20',
+ `Cola2` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Cola3` text COLLATE utf8_unicode_ci,
+ `error` text COLLATE utf8_unicode_ci,
+ PRIMARY KEY (`Id_Cola`),
+ UNIQUE KEY `Id_Impresora_2` (`Id_Impresora`,`Id_Prioridad`,`Id_Informe`,`Id_Estado`,`Cola`,`Id_Trabajador`,`Cola2`),
+ KEY `Id_estado` (`Id_Estado`),
+ KEY `Id_Impresora` (`Id_Impresora`),
+ KEY `Id_Informe` (`Id_Informe`),
+ KEY `Id_Prioridad` (`Id_Prioridad`),
+ KEY `Id_Trabajador` (`Id_Trabajador`),
+ CONSTRAINT `Colas_ibfk_1` FOREIGN KEY (`Id_Informe`) REFERENCES `Informes` (`Id_Informe`) ON UPDATE CASCADE,
+ CONSTRAINT `Colas_ibfk_2` FOREIGN KEY (`Id_Estado`) REFERENCES `Estados` (`Id_Estado`) ON UPDATE CASCADE,
+ CONSTRAINT `Colas_ibfk_3` FOREIGN KEY (`Id_Prioridad`) REFERENCES `Prioridades` (`Id_Prioridad`) ON UPDATE CASCADE,
+ CONSTRAINT `Colas_ibfk_4` FOREIGN KEY (`Id_Impresora`) REFERENCES `Impresoras` (`Id_Impresora`) ON UPDATE CASCADE,
+ CONSTRAINT `Colas_ibfk_5` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Colores`
+--
+
+DROP TABLE IF EXISTS `Colores`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Colores` (
+ `Id_Color` int(11) NOT NULL DEFAULT '0',
+ `Color` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`Id_Color`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Comparativa`
+--
+
+DROP TABLE IF EXISTS `Comparativa`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Comparativa` (
+ `Periodo` int(11) NOT NULL,
+ `Id_Article` bigint(20) NOT NULL,
+ `warehouse_id` int(11) NOT NULL,
+ `Cantidad` mediumint(9) NOT NULL DEFAULT '0',
+ `price` mediumint(8) unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`Periodo`,`Id_Article`,`warehouse_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Compres`
+--
+
+DROP TABLE IF EXISTS `Compres`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Compres` (
+ `Id_Compra` int(11) NOT NULL AUTO_INCREMENT,
+ `Id_Entrada` int(11) NOT NULL DEFAULT '0',
+ `Id_Article` int(11) NOT NULL DEFAULT '90',
+ `Cantidad` int(11) DEFAULT '0',
+ `dispatched` int(11) NOT NULL DEFAULT '0',
+ `Costefijo` decimal(10,3) DEFAULT '0.000',
+ `Portefijo` decimal(10,3) DEFAULT '0.000',
+ `Novincular` tinyint(1) NOT NULL DEFAULT '0',
+ `Etiquetas` int(11) DEFAULT '0',
+ `Packing` int(11) DEFAULT '0',
+ `grouping` smallint(5) unsigned NOT NULL DEFAULT '1',
+ `caja` tinyint(4) NOT NULL COMMENT '0=sin obligar 1=groping 2=packing',
+ `container_id` smallint(5) unsigned NOT NULL DEFAULT '36',
+ `Comisionfija` decimal(10,3) DEFAULT '0.000',
+ `Embalajefijo` decimal(10,3) DEFAULT '0.000',
+ `Nicho` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Id_Cubo` varchar(10) COLLATE utf8_unicode_ci DEFAULT '--',
+ `Tarifa1` decimal(10,2) DEFAULT '0.00',
+ `Tarifa2` decimal(10,2) DEFAULT '0.00',
+ `Tarifa3` decimal(10,2) DEFAULT '0.00',
+ `PVP` decimal(10,2) DEFAULT '0.00',
+ `Productor` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Vida` int(11) DEFAULT '0',
+ `Id_Trabajador` int(11) DEFAULT '0',
+ `punteo` tinyint(1) NOT NULL DEFAULT '0',
+ `Volumenkk` int(11) DEFAULT NULL,
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `cm2kk` int(10) unsigned NOT NULL DEFAULT '0',
+ `buy_edi_id` int(11) DEFAULT NULL,
+ PRIMARY KEY (`Id_Compra`),
+ KEY `CompresId_Trabajador` (`Id_Trabajador`),
+ KEY `Id_Cubo` (`Id_Cubo`),
+ KEY `Id_Entrada` (`Id_Entrada`),
+ KEY `container_id` (`container_id`),
+ KEY `buy_edi_id` (`buy_edi_id`),
+ KEY `itemFk_entryFk` (`Id_Article`,`Id_Entrada`),
+ CONSTRAINT `Compres_ibfk_1` FOREIGN KEY (`Id_Article`) REFERENCES `Articles` (`Id_Article`) ON UPDATE CASCADE,
+ CONSTRAINT `Compres_ibfk_2` FOREIGN KEY (`Id_Cubo`) REFERENCES `Cubos` (`Id_Cubo`) ON UPDATE CASCADE,
+ CONSTRAINT `Compres_ibfk_3` FOREIGN KEY (`container_id`) REFERENCES `container` (`container_id`) ON UPDATE CASCADE,
+ CONSTRAINT `buy_id` FOREIGN KEY (`Id_Entrada`) REFERENCES `Entradas` (`Id_Entrada`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=DYNAMIC;
+/*!40101 SET character_set_client = @saved_cs_client */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`compresBeforeInsert`
+ BEFORE INSERT ON `vn2008`.`Compres` FOR EACH ROW
+BEGIN
+ DECLARE vWarehouse INT;
+ DECLARE vLanding DATE;
+ DECLARE vGroup INT;
+ DECLARE vIsBox BOOL;
+
+ IF NEW.grouping = 0 THEN
+ SIGNAL SQLSTATE '45000'
+ SET MESSAGE_TEXT ='ERROR_GROUPING_ZERO';
+ END IF;
+
+ SELECT warehouse_id, landing INTO vWarehouse, vLanding
+ FROM Entradas E
+ JOIN travel T ON T.id = E.travel_id
+ WHERE E.Id_Entrada = NEW.Id_Entrada;
+
+ SELECT grouping, caja INTO vGroup, vIsBox
+ FROM Compres C
+ JOIN Entradas E USING(Id_Entrada)
+ JOIN travel T ON T.id = E.travel_id
+ WHERE T.landing <= vLanding
+ AND C.Id_Article = NEW.Id_Article
+ AND NOT C.Novincular
+ ORDER BY warehouse_id = vWarehouse DESC,landing DESC, Id_Compra DESC
+ LIMIT 1;
+
+ SET NEW.grouping = IFNULL(vGroup,IFNULL( NEW.grouping,1));
+ SET NEW.caja = IFNULL(vIsBox, IFNULL( NEW.caja,0));
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `CompresAfterInsert` AFTER INSERT ON `Compres` FOR EACH ROW BEGIN
+ DECLARE vWarehouse INT;
+ DECLARE vWarehouseOut INT;
+
+ CALL stock.queueAdd ('buy', NEW.Id_Compra, NULL);
+
+ SELECT warehouse_id, warehouse_id_out INTO vWarehouse, vWarehouseOut
+ FROM Entradas E
+ 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));
+
+ IF (SELECT fuente FROM warehouse where id = vWarehouseOut AND id <> 13) AND
+ (SELECT has_notify_passport(NEW.Id_Article,NEW.Id_Compra))
+ THEN
+ CALL notify_passport(NEW.Id_Article, NEW.Etiquetas, NEW.Packing,NEW.Id_Compra);
+ CALL insert_producer_plantpassport(NEW.Id_Compra);
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `CompresBeforeUpdate`
+ BEFORE UPDATE ON `Compres` FOR EACH ROW
+BEGIN
+ IF NEW.grouping = 0 AND OLD.grouping <> 0 THEN
+ SIGNAL SQLSTATE '45000'
+ SET MESSAGE_TEXT ='ERROR_GROUPING_ZERO';
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `CompresAfterUpdate`
+ AFTER UPDATE ON `Compres` FOR EACH ROW
+BEGIN
+ DECLARE vWarehouse INT;
+ DECLARE vWarehouseOut INT;
+
+ CALL stock.queueAdd ('buy', NEW.Id_Compra, OLD.Id_Compra);
+
+ SELECT warehouse_id, warehouse_id_out INTO vWarehouse, vWarehouseOut
+ FROM Entradas E
+ JOIN travel T ON T.id = E.travel_id
+ WHERE E.Id_Entrada = NEW.Id_Entrada;
+
+ IF NOT(NEW.Id_Cubo <=> OLD.Id_Cubo AND NEW.Id_Entrada <=> OLD.Id_Entrada)
+ THEN
+ REPLACE bi.rotacion(Id_Article, warehouse_id, cm3)
+ VALUES (NEW.Id_ARticle, vWarehouse, vn2008.cm3_unidad(NEW.Id_Compra));
+ END IF;
+
+ IF (SELECT fuente FROM warehouse where id = vWarehouseOut AND id <> 13) AND
+ (SELECT has_notify_passport(NEW.Id_Article,NEW.Id_Compra)) > 0
+ THEN
+ CALL notify_passport(NEW.Id_Article, NEW.Etiquetas, NEW.Packing,NEW.Id_Compra);
+ CALL insert_producer_plantpassport(NEW.Id_Compra);
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`CompresAfterDelete`
+ AFTER DELETE ON `Compres` FOR EACH ROW
+BEGIN
+ DECLARE vProvider INT;
+
+ CALL stock.queueAdd ('buy', NULL, OLD.Id_Compra);
+
+ SELECT Id_Proveedor INTO vProvider
+ FROM Entradas WHERE Id_Entrada = OLD.Id_Entrada;
+
+ IF OLD.Vida > 0 AND vProvider <> 4 THEN
+ SIGNAL SQLSTATE '45000'
+ SET MESSAGE_TEXT ='ERROR_DELETING_LIFE';
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `Compres_2014`
+--
+
+DROP TABLE IF EXISTS `Compres_2014`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Compres_2014` (
+ `Id_Compra` int(11) NOT NULL AUTO_INCREMENT,
+ `Id_Entrada` int(11) NOT NULL DEFAULT '0',
+ `Id_Article` int(11) NOT NULL DEFAULT '90',
+ `Cantidad` int(11) DEFAULT '0',
+ `Costefijo` decimal(10,3) DEFAULT '0.000',
+ `Portefijo` decimal(10,3) DEFAULT '0.000',
+ `Novincular` tinyint(1) NOT NULL DEFAULT '0',
+ `Etiquetas` int(11) DEFAULT '0',
+ `Packing` int(11) DEFAULT '0',
+ `grouping` smallint(5) unsigned NOT NULL DEFAULT '1',
+ `caja` tinyint(4) NOT NULL COMMENT '0=sin obligar 1=groping 2=packing',
+ `container_id` smallint(5) unsigned NOT NULL DEFAULT '36',
+ `Comisionfija` decimal(10,3) DEFAULT '0.000',
+ `Embalajefijo` decimal(10,3) DEFAULT '0.000',
+ `Nicho` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Id_Cubo` varchar(10) COLLATE utf8_unicode_ci DEFAULT '--',
+ `Tarifa1` decimal(10,2) DEFAULT '0.00',
+ `Tarifa2` decimal(10,2) DEFAULT '0.00',
+ `Tarifa3` decimal(10,2) DEFAULT '0.00',
+ `PVP` decimal(10,2) DEFAULT '0.00',
+ `Productor` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Vida` int(11) DEFAULT '0',
+ `Id_Trabajador` int(11) DEFAULT '0',
+ `punteo` tinyint(1) NOT NULL DEFAULT '0',
+ `Volumenkk` int(11) DEFAULT NULL,
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `cm2kk` int(10) unsigned NOT NULL DEFAULT '0',
+ `buy_edi_id` int(11) DEFAULT NULL,
+ PRIMARY KEY (`Id_Compra`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=DYNAMIC;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Compres_mark`
+--
+
+DROP TABLE IF EXISTS `Compres_mark`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Compres_mark` (
+ `Id_Compra` int(11) NOT NULL,
+ `comment` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `mark` tinyint(1) DEFAULT NULL,
+ `odbc_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`Id_Compra`),
+ CONSTRAINT `Compres_mark_ibfk_1` FOREIGN KEY (`Id_Compra`) REFERENCES `Compres` (`Id_Compra`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Compres_ok`
+--
+
+DROP TABLE IF EXISTS `Compres_ok`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Compres_ok` (
+ `Id_Compra` int(11) NOT NULL,
+ `valor` tinyint(3) unsigned NOT NULL DEFAULT '0',
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `original_quantity` double DEFAULT NULL,
+ `Id_Trabajador` int(11) NOT NULL,
+ `Id_Accion` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `Id_Compra_ok` int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (`Id_Compra_ok`),
+ KEY `Id_Movimiento` (`Id_Compra`),
+ KEY `Id_Accion` (`Id_Accion`),
+ CONSTRAINT `Compres_ok_ibfk_1` FOREIGN KEY (`Id_Compra`) REFERENCES `Compres` (`Id_Compra`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Consignatarios`
+--
+
+DROP TABLE IF EXISTS `Consignatarios`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Consignatarios` (
+ `id_consigna` int(11) NOT NULL AUTO_INCREMENT,
+ `Id_cliente` int(11) NOT NULL DEFAULT '0',
+ `warehouse_id` smallint(6) unsigned DEFAULT '1',
+ `domicilio` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `poblacion` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `province_id` smallint(5) unsigned DEFAULT NULL,
+ `codPostal` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `telefono` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `movil` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `consignatario` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `predeterminada` tinyint(1) NOT NULL DEFAULT '1',
+ `Id_Agencia` int(11) NOT NULL DEFAULT '2',
+ `especificaciones` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `seguro` tinyint(1) NOT NULL DEFAULT '0',
+ `porte` double DEFAULT NULL,
+ `active` tinyint(4) NOT NULL DEFAULT '1',
+ `postcode_id` int(11) unsigned DEFAULT NULL,
+ `longitude` decimal(11,7) DEFAULT NULL,
+ `latitude` decimal(11,7) DEFAULT NULL,
+ `codPos` char(5) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `isEqualizated` tinyint(1) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id_consigna`),
+ KEY `Id_Agencia` (`Id_Agencia`),
+ KEY `Id_cliente` (`Id_cliente`),
+ KEY `warehouse_id` (`warehouse_id`),
+ KEY `province_id` (`province_id`),
+ KEY `telefono` (`telefono`),
+ KEY `movil` (`movil`),
+ KEY `Consignatarios_postcode_idx` (`postcode_id`),
+ KEY `CODPOSTAL` (`codPostal`),
+ CONSTRAINT `Consignatarios_ibfk_1` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
+ CONSTRAINT `Consignatarios_ibfk_3` FOREIGN KEY (`province_id`) REFERENCES `province` (`province_id`) ON UPDATE CASCADE,
+ 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;
+/*!40101 SET character_set_client = @saved_cs_client */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`ConsignatariosBeforeInsert`
+BEFORE INSERT ON `vn2008`.`Consignatarios`
+FOR EACH ROW
+BEGIN
+ DECLARE v_has_default BOOLEAN;
+ DECLARE vIsEqualizated BOOLEAN;
+
+ CALL pbx.phoneIsValid (NEW.telefono);
+ CALL pbx.phoneIsValid (NEW.movil);
+
+ SELECT COUNT(*) > 0 INTO v_has_default
+ FROM Consignatarios
+ WHERE Id_Cliente = NEW.Id_Cliente
+ AND Predeterminada <> FALSE;
+
+ IF NEW.Predeterminada AND v_has_default THEN
+ SET NEW.Predeterminada = FALSE;
+ END IF;
+
+ IF NEW.isEqualizated IS NULL THEN
+ SELECT RE
+ INTO vIsEqualizated
+ FROM Clientes
+ WHERE Id_Cliente = NEW.Id_Cliente;
+
+ SET NEW.isEqualizated = vIsEqualizated;
+ END IF;
+
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`ConsignatariosBeforeUpdate`
+BEFORE UPDATE ON `vn2008`.`Consignatarios`
+FOR EACH ROW
+BEGIN
+ DECLARE vHasDefault BOOLEAN;
+
+ CALL pbx.phoneIsValid (NEW.telefono);
+ CALL pbx.phoneIsValid (NEW.movil);
+
+ SELECT COUNT(*) > 0 INTO vHasDefault
+ FROM Consignatarios
+ WHERE Id_Cliente = NEW.Id_Cliente
+ AND Predeterminada <> FALSE;
+
+ IF NOT OLD.Predeterminada AND NEW.Predeterminada AND vHasDefault THEN
+ SET NEW.Predeterminada = FALSE;
+ END IF;
+
+ IF NOT NEW.active AND (NEW.active != OLD.active) AND NEW.Predeterminada THEN
+ CALL util.throw ('NO SE PUEDE DESACTIVAR EL CONSIGNATARIO PREDETERMINADO');
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`ConsignatariosAfterUpdate` AFTER UPDATE ON `Consignatarios` FOR EACH ROW
+BEGIN
+ DECLARE vCurDefault INT;
+ DECLARE vNewDefault INT;
+
+ IF NEW.Predeterminada AND (NEW.Predeterminada != OLD.Predeterminada)
+ THEN
+ UPDATE Clientes SET default_address = NEW.Id_Consigna
+ WHERE Id_cliente = NEW.Id_cliente;
+ END IF;
+
+ IF NOT NEW.active AND (NEW.active != OLD.active)
+ THEN
+ SELECT default_address INTO vCurDefault
+ FROM Clientes
+ WHERE Id_Cliente = NEW.Id_Cliente;
+
+ IF vCurDefault = NEW.Id_Consigna
+ THEN
+ SELECT Id_Consigna INTO vNewDefault
+ FROM Consignatarios
+ WHERE Id_Cliente = NEW.Id_Cliente AND active
+ LIMIT 1;
+
+ UPDATE Clientes SET default_address = vNewDefault
+ WHERE Id_Cliente = NEW.Id_Cliente;
+ END IF;
+ END IF;
+
+ -- Recargos de equivalencia distintos implican facturacion por consignatario
+ IF NEW.isEqualizated != OLD.isEqualizated THEN
+
+ IF
+ (SELECT COUNT(*) FROM
+ (
+ SELECT DISTINCT (isEqualizated = FALSE) as Equ
+ FROM Consignatarios
+ WHERE Id_Cliente = NEW.Id_Cliente
+ ) t1
+ ) > 1
+
+ THEN
+
+ UPDATE Clientes
+ SET invoiceByAddress = TRUE
+ WHERE Id_Cliente = NEW.Id_Cliente;
+
+ END IF;
+
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `Consignatarios_devices`
+--
+
+DROP TABLE IF EXISTS `Consignatarios_devices`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Consignatarios_devices` (
+ `Id_Consigna` int(11) NOT NULL,
+ `serialNumber` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `notas` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`Id_Consigna`,`serialNumber`),
+ CONSTRAINT `Condigna_devices` FOREIGN KEY (`Id_Consigna`) REFERENCES `Consignatarios` (`id_consigna`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Contactos`
+--
+
+DROP TABLE IF EXISTS `Contactos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Contactos` (
+ `Id_Contacto` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `Nombre` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `Apellidos` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Empresa` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Cargo` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Telefono` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Movil` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `email` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Fax` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Notas` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`Id_Contacto`),
+ KEY `Telefono` (`Telefono`),
+ KEY `Movil` (`Movil`)
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`ContactosBeforeInsert`
+BEFORE INSERT ON `Contactos` FOR EACH ROW
+BEGIN
+ CALL pbx.phoneIsValid (NEW.telefono);
+ CALL pbx.phoneIsValid (NEW.movil);
+ CALL pbx.phoneIsValid (NEW.fax);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`ContactosBeforeUpdate`
+BEFORE UPDATE ON `Contactos` FOR EACH ROW
+BEGIN
+ CALL pbx.phoneIsValid (NEW.telefono);
+ CALL pbx.phoneIsValid (NEW.movil);
+ CALL pbx.phoneIsValid (NEW.fax);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `Conteo`
+--
+
+DROP TABLE IF EXISTS `Conteo`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Conteo` (
+ `Id_Conteo` int(11) NOT NULL AUTO_INCREMENT,
+ `Id_Article` int(11) NOT NULL,
+ `Fecha` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `dispositivo` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `warehouse_id` int(10) unsigned NOT NULL DEFAULT '1',
+ PRIMARY KEY (`Id_Conteo`)
+) ENGINE=MyISAM AUTO_INCREMENT=1079623 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `Conteo_ai` AFTER INSERT ON `Conteo` FOR EACH ROW
+BEGIN
+ DECLARE intTravel INTEGER;
+ SELECT t.id INTO intTravel FROM Compres c JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada
+ JOIN travel t ON t.id = e.travel_id
+ WHERE landing = CURDATE() AND c.Id_Article = NEW.Id_Article AND warehouse_id = NEW.warehouse_id AND received <> TRUE LIMIT 1;
+ IF (intTravel) then
+ UPDATE travel SET received = TRUE WHERE id = intTravel;
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `Cubos`
+--
+
+DROP TABLE IF EXISTS `Cubos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Cubos` (
+ `Id_Cubo` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
+ `Volumen` double DEFAULT '0',
+ `X` double DEFAULT '0',
+ `Y` double DEFAULT '0',
+ `Z` double DEFAULT '0',
+ `Valor` double DEFAULT '0',
+ `Retornable` tinyint(1) NOT NULL DEFAULT '0',
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `idCubos_Retorno` int(11) DEFAULT NULL,
+ `Bajan` int(11) DEFAULT NULL,
+ `Suben` int(11) DEFAULT NULL,
+ `Base` double DEFAULT NULL,
+ `item_id` int(11) DEFAULT NULL,
+ `pvp` double NOT NULL,
+ `box` tinyint(1) NOT NULL DEFAULT '0',
+ `bultoCubico` double DEFAULT NULL,
+ PRIMARY KEY (`Id_Cubo`),
+ KEY `Article` (`item_id`),
+ CONSTRAINT `Article` FOREIGN KEY (`item_id`) REFERENCES `Articles` (`Id_Article`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Cubos_Retorno`
+--
+
+DROP TABLE IF EXISTS `Cubos_Retorno`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Cubos_Retorno` (
+ `idCubos_Retorno` int(11) NOT NULL AUTO_INCREMENT,
+ `Soporte` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
+ `Vacio` double NOT NULL DEFAULT '0',
+ `Lleno` double NOT NULL DEFAULT '0',
+ PRIMARY KEY (`idCubos_Retorno`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Enlaces Facturas`
+--
+
+DROP TABLE IF EXISTS `Enlaces Facturas`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Enlaces Facturas` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `Asiento` int(11) DEFAULT '0',
+ `Apunte` int(11) DEFAULT '0',
+ `Data` datetime DEFAULT NULL,
+ `Concepto` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Cuenta` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Debe` double DEFAULT NULL,
+ `Haber` double DEFAULT NULL,
+ `Contrapartida` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Contabilizado` tinyint(1) NOT NULL DEFAULT '0',
+ `empresa_id` smallint(5) unsigned NOT NULL DEFAULT '442',
+ PRIMARY KEY (`id`),
+ KEY `empresa_id` (`empresa_id`),
+ CONSTRAINT `Enlaces@0020Facturas_ibfk_1` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Entradas`
+--
+
+DROP TABLE IF EXISTS `Entradas`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Entradas` (
+ `Id_Entrada` int(11) NOT NULL AUTO_INCREMENT,
+ `Id_Proveedor` int(11) NOT NULL DEFAULT '644',
+ `Fecha` datetime NOT NULL,
+ `Referencia` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Anotadoencaja` tinyint(1) NOT NULL DEFAULT '0',
+ `Inventario` tinyint(1) NOT NULL DEFAULT '0',
+ `Notas` longtext COLLATE utf8_unicode_ci,
+ `Confirmada` tinyint(1) NOT NULL DEFAULT '0',
+ `Pedida` tinyint(1) NOT NULL DEFAULT '0',
+ `Redada` tinyint(1) NOT NULL DEFAULT '0',
+ `comision` float NOT NULL DEFAULT '0',
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `Notas_Eva` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `travel_id` int(11) unsigned DEFAULT NULL,
+ `Id_Moneda` tinyint(3) unsigned DEFAULT '1',
+ `empresa_id` smallint(5) unsigned NOT NULL DEFAULT '442',
+ `gestdoc_id` int(11) DEFAULT NULL,
+ `recibida_id` mediumint(8) unsigned DEFAULT NULL,
+ `blocked` tinyint(4) NOT NULL DEFAULT '0',
+ `loadPriority` int(11) DEFAULT NULL,
+ PRIMARY KEY (`Id_Entrada`),
+ KEY `Id_Proveedor` (`Id_Proveedor`),
+ KEY `Fecha` (`Fecha`),
+ KEY `travel_id` (`travel_id`),
+ KEY `empresa_id` (`empresa_id`),
+ KEY `gestdoc_id` (`gestdoc_id`),
+ KEY `recibida_id` (`recibida_id`),
+ CONSTRAINT `Entradas_ibfk_1` FOREIGN KEY (`Id_Proveedor`) REFERENCES `Proveedores` (`Id_Proveedor`) ON UPDATE CASCADE,
+ CONSTRAINT `Entradas_ibfk_6` FOREIGN KEY (`travel_id`) REFERENCES `travel` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `Entradas_ibfk_7` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='InnoDB free: 88064 kB; (`Id_Proveedor`) REFER `vn2008/Provee';
+/*!40101 SET character_set_client = @saved_cs_client */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`EntradasBeforeInsert`
+ BEFORE INSERT ON `Entradas` FOR EACH ROW
+BEGIN
+ IF (SELECT cuenta LIKE '___4______' FROM Proveedores WHERE Id_Proveedor = NEW.Id_Proveedor) THEN
+ SET NEW.Id_Moneda = 2;
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`EntradasBeforeUpdate`
+ BEFORE UPDATE ON `vn2008`.`Entradas` FOR EACH ROW
+BEGIN
+ IF (SELECT Id_Entrada FROM Entradas_Auto WHERE Id_Entrada = NEW.Id_Entrada) AND (NEW.travel_id <> OLD.travel_id) THEN
+ IF
+ (SELECT warehouse_id FROM travel WHERE id = NEW.travel_id) <> (SELECT warehouse_id FROM travel WHERE id = OLD.travel_id) OR
+ (SELECT warehouse_id_out FROM travel WHERE id = NEW.travel_id) <> (SELECT warehouse_id_out FROM travel WHERE id = OLD.travel_id)
+ THEN
+ SET NEW.travel_id = OLD.travel_id;
+ END IF;
+ END IF;
+
+ IF (NEW.gestdoc_id IS NOT NULL) AND (NEW.gestdoc_id <> OLD.gestdoc_id) THEN
+ UPDATE
+ recibida_entrada re
+ INNER JOIN recibida r ON re.recibida_id = r.id
+ INNER JOIN Entradas e ON e.Id_Entrada = re.Id_Entrada
+ SET r.gestdoc_id = e.gestdoc_id
+ WHERE
+ e.Id_Entrada = NEW.Id_Entrada
+ AND r.gestdoc_id IS NULL;
+ END IF;
+
+ IF NEW.anotadoencaja <> OLD.anotadoencaja THEN
+ INSERT INTO Entradas_dits (idaccion_dits,Id_Trabajador,Id_Ticket,value_old,value_new)
+ VALUES (105,get_Trabajador(),NEW.Id_Entrada,OLD.anotadoencaja,NEW.anotadoencaja);
+ END IF;
+
+ IF NEW.Id_Proveedor <> OLD.Id_Proveedor THEN
+ IF (SELECT cuenta LIKE '___4______' FROM Proveedores WHERE Id_Proveedor = NEW.Id_Proveedor) THEN
+ SET NEW.Id_Moneda = 2;
+ END IF;
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`EntradasAfterUpdate`
+ AFTER UPDATE ON `Entradas` FOR EACH ROW
+BEGIN
+ CALL stock.queueAdd ('entry', NEW.Id_Entrada, OLD.Id_Entrada);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`EntradasAfterDelete`
+ AFTER DELETE ON `Entradas` FOR EACH ROW
+BEGIN
+ CALL stock.queueAdd ('entry', NULL, OLD.Id_Entrada);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `Entradas_Auto`
+--
+
+DROP TABLE IF EXISTS `Entradas_Auto`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Entradas_Auto` (
+ `Id_Entrada` int(11) NOT NULL,
+ PRIMARY KEY (`Id_Entrada`),
+ CONSTRAINT `Entradas_Auto_ibfk_1` FOREIGN KEY (`Id_Entrada`) REFERENCES `Entradas` (`Id_Entrada`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Entradas_dits`
+--
+
+DROP TABLE IF EXISTS `Entradas_dits`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Entradas_dits` (
+ `idEntrada_dits` int(11) NOT NULL AUTO_INCREMENT,
+ `idaccion_dits` int(11) NOT NULL,
+ `ODBC_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `Id_Ticket` int(11) NOT NULL,
+ `Id_Trabajador` int(11) NOT NULL,
+ `value_old` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `value_new` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`idEntrada_dits`),
+ KEY `fgkey_entradas_1_idx` (`idaccion_dits`),
+ KEY `fgkey_entradas_2_idx` (`Id_Ticket`),
+ KEY `fgkey_entradas_3_idx` (`Id_Trabajador`),
+ CONSTRAINT `Entradas_dits_ibfk_1` FOREIGN KEY (`Id_Ticket`) REFERENCES `Entradas` (`Id_Entrada`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `fgkey_entradas_1` FOREIGN KEY (`idaccion_dits`) REFERENCES `accion_dits` (`idaccion_dits`) ON DELETE NO ACTION ON UPDATE CASCADE,
+ CONSTRAINT `fgkey_entradas_3` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON DELETE NO ACTION ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Entradas_kop`
+--
+
+DROP TABLE IF EXISTS `Entradas_kop`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Entradas_kop` (
+ `Id_Entradas_kop` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `Id_Entrada` int(11) NOT NULL,
+ `kop` int(11) DEFAULT NULL,
+ `sub` mediumint(8) unsigned DEFAULT NULL,
+ PRIMARY KEY (`Id_Entradas_kop`),
+ KEY `entradas_entradas_kop_idx` (`Id_Entrada`),
+ CONSTRAINT `entradas_entradas_kop` FOREIGN KEY (`Id_Entrada`) REFERENCES `Entradas` (`Id_Entrada`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Relaciona las entradas con los origenes de compra';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Entradas_orden`
+--
+
+DROP TABLE IF EXISTS `Entradas_orden`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Entradas_orden` (
+ `Id_Entrada` int(11) NOT NULL,
+ `orden` int(11) NOT NULL DEFAULT '1' COMMENT '1.- Ordenar por articulo\n2.- Ordenar por compra\n',
+ PRIMARY KEY (`Id_Entrada`),
+ CONSTRAINT `entradas_entradas_orden` FOREIGN KEY (`Id_Entrada`) REFERENCES `Entradas` (`Id_Entrada`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Entradas_stack`
+--
+
+DROP TABLE IF EXISTS `Entradas_stack`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Entradas_stack` (
+ `Id_Entrada` int(11) NOT NULL,
+ `label_number` smallint(6) DEFAULT '0',
+ PRIMARY KEY (`Id_Entrada`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Entradas_turno`
+--
+
+DROP TABLE IF EXISTS `Entradas_turno`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Entradas_turno` (
+ `Id_Entrada` int(11) NOT NULL,
+ `weekDay` tinyint(2) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`Id_Entrada`),
+ CONSTRAINT `entrada_entrada_turno` FOREIGN KEY (`Id_Entrada`) REFERENCES `Entradas` (`Id_Entrada`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Estas entradas se clonan al mismo tiempo que los turnos';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `EnvioMasivo`
+--
+
+DROP TABLE IF EXISTS `EnvioMasivo`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `EnvioMasivo` (
+ `Id` int(11) NOT NULL AUTO_INCREMENT,
+ `Cliente` varchar(40) COLLATE utf8_unicode_ci NOT NULL,
+ `Direccion` varchar(80) COLLATE utf8_unicode_ci NOT NULL,
+ `CP` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
+ `Poblacion` varchar(40) COLLATE utf8_unicode_ci NOT NULL,
+ `Telefono` varchar(9) COLLATE utf8_unicode_ci NOT NULL,
+ `Bultos` int(11) NOT NULL,
+ `Observaciones` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `IdTicket` int(11) NOT NULL,
+ PRIMARY KEY (`Id`)
+) ENGINE=MyISAM AUTO_INCREMENT=3373 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Generación de etiquetas a través de Zeleris con los clientes de esta tabla';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Equipos`
+--
+
+DROP TABLE IF EXISTS `Equipos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Equipos` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `alias` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `trabajador_id` int(11) DEFAULT NULL,
+ `descripcion` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `predet` int(1) unsigned zerofill DEFAULT '0',
+ `Left` int(5) DEFAULT '3000',
+ `Top` int(5) DEFAULT '3000',
+ `Width` int(5) DEFAULT '6360',
+ `Height` int(5) DEFAULT '5595',
+ PRIMARY KEY (`id`),
+ KEY `trabajador_id` (`trabajador_id`),
+ CONSTRAINT `Equipos_ibfk_1` FOREIGN KEY (`trabajador_id`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Espionajes`
+--
+
+DROP TABLE IF EXISTS `Espionajes`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Espionajes` (
+ `idEspionaje` int(11) NOT NULL AUTO_INCREMENT,
+ `Id_Trabajador` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Fecha` date DEFAULT NULL,
+ `HoraEntrada` time DEFAULT NULL,
+ `HoraSalida` time DEFAULT NULL,
+ `Id_Equipo` int(11) DEFAULT NULL,
+ PRIMARY KEY (`idEspionaje`),
+ KEY `index` (`Id_Trabajador`,`Fecha`)
+) ENGINE=MyISAM AUTO_INCREMENT=75646 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Estados`
+--
+
+DROP TABLE IF EXISTS `Estados`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Estados` (
+ `Id_Estado` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
+ `Estado` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`Id_Estado`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Estanterias`
+--
+
+DROP TABLE IF EXISTS `Estanterias`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Estanterias` (
+ `Id_Estanterias` int(11) NOT NULL AUTO_INCREMENT,
+ `w` int(11) DEFAULT NULL,
+ `d` int(11) DEFAULT NULL,
+ `modelo` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`Id_Estanterias`)
+) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Estanterias_distri`
+--
+
+DROP TABLE IF EXISTS `Estanterias_distri`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Estanterias_distri` (
+ `idEstanterias_distri` int(11) NOT NULL,
+ `posinicial` int(11) NOT NULL,
+ `posfinal` int(11) NOT NULL,
+ `Id_Estanterias` int(11) NOT NULL,
+ PRIMARY KEY (`Id_Estanterias`,`idEstanterias_distri`),
+ KEY `Estanterias_fgkey1_idx` (`Id_Estanterias`),
+ KEY `est_distrib_fgkey1_idx` (`idEstanterias_distri`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Estanterias_distri_name`
+--
+
+DROP TABLE IF EXISTS `Estanterias_distri_name`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Estanterias_distri_name` (
+ `idEstanterias_distri` int(11) NOT NULL AUTO_INCREMENT,
+ `Descripcion` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`idEstanterias_distri`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Extractos`
+--
+
+DROP TABLE IF EXISTS `Extractos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Extractos` (
+ `Id_Extracto` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `Fecha` datetime NOT NULL,
+ `Concepto` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `Debe` double unsigned zerofill NOT NULL DEFAULT '0000000000000000000000',
+ `Haber` double unsigned zerofill NOT NULL DEFAULT '0000000000000000000000',
+ `Concepto2` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `Concepto3` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`Id_Extracto`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Facturas`
+--
+
+DROP TABLE IF EXISTS `Facturas`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Facturas` (
+ `factura_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `Id_Factura` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
+ `Serie` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Fecha` date DEFAULT NULL,
+ `Importe` decimal(12,2) DEFAULT '0.00',
+ `Vencimiento` datetime DEFAULT NULL,
+ `Id_Banco` int(11) DEFAULT '0',
+ `Id_Cliente` int(11) DEFAULT '0',
+ `Id_Remesa` int(11) DEFAULT NULL,
+ `Remesar` tinyint(1) NOT NULL DEFAULT '0',
+ `BI7` decimal(12,2) DEFAULT '0.00',
+ `BI16` decimal(12,2) DEFAULT '0.00',
+ `RE1` decimal(12,2) DEFAULT '0.00',
+ `RE4` decimal(12,2) DEFAULT '0.00',
+ `IVA7` decimal(12,2) DEFAULT '0.00',
+ `IVA16` decimal(12,2) DEFAULT '0.00',
+ `Id_Trabajador` int(11) DEFAULT '0',
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `empresa_id` smallint(5) unsigned NOT NULL DEFAULT '442',
+ `liquidacion` smallint(6) DEFAULT '0',
+ `pdf` tinyint(3) unsigned NOT NULL DEFAULT '0',
+ `booked` date DEFAULT NULL,
+ `cplusInvoiceType477Fk` int(10) unsigned NOT NULL DEFAULT '1',
+ `cplusTaxBreakFk` int(10) unsigned NOT NULL DEFAULT '1',
+ `cplusSubjectOpFk` int(10) unsigned NOT NULL DEFAULT '1',
+ `cplusTrascendency477Fk` int(10) unsigned NOT NULL DEFAULT '1',
+ PRIMARY KEY (`factura_id`,`Id_Factura`),
+ UNIQUE KEY `Id_Factura` (`Id_Factura`),
+ KEY `Id_Banco` (`Id_Banco`),
+ KEY `Id_Cliente` (`Id_Cliente`),
+ KEY `Id_Remesa` (`Id_Remesa`),
+ KEY `Id_Trabajador` (`Id_Trabajador`),
+ KEY `empresa_id` (`empresa_id`),
+ KEY `Fecha` (`Fecha`),
+ KEY `Facturas_ibfk_2_idx` (`cplusInvoiceType477Fk`),
+ KEY `Facturas_ibfk_3_idx` (`cplusSubjectOpFk`),
+ KEY `Facturas_ibfk_4_idx` (`cplusTaxBreakFk`),
+ KEY `Facturas_ibfk_5_idx` (`cplusTrascendency477Fk`),
+ CONSTRAINT `Facturas_ibfk_1` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `Facturas_ibfk_2` FOREIGN KEY (`cplusInvoiceType477Fk`) REFERENCES `vn`.`cplusInvoiceType477` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `Facturas_ibfk_3` FOREIGN KEY (`cplusSubjectOpFk`) REFERENCES `vn`.`cplusSubjectOp` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `Facturas_ibfk_4` FOREIGN KEY (`cplusTaxBreakFk`) REFERENCES `vn`.`cplusTaxBreak` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `invoice_bank_id` FOREIGN KEY (`Id_Banco`) REFERENCES `Bancos` (`Id_Banco`) ON UPDATE CASCADE,
+ CONSTRAINT `invoice_customer_id` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON UPDATE CASCADE
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ SELECT IFNULL(MAX(factura_id),0) into max_id
+ from Facturas
+ WHERE Serie LIKE NEW.Serie
+ AND ((Year(NEW.Fecha) = Year(Fecha)
+ AND empresa_id = NEW.empresa_id));
+
+ IF max_id THEN
+
+ SELECT right(max(Id_Factura), LENGTH(Id_Factura)-1) + 1
+ into v_Id_Factura_serie
+ from Facturas
+ 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)*/ );
+
+
+ ELSE
+
+ 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;
+
+
+SELECT CONCAT(NEW.serie, lpad(v_Id_Factura_serie,7,'0')) into v_Id_Factura_serie;
+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 */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`FacturasAfterInsert`
+AFTER INSERT ON `Facturas`
+FOR EACH ROW
+ CALL bi.customer_risk_update (NEW.Id_Cliente, NEW.empresa_id, NEW.Importe) */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`FacturasBeforeUpdate`
+BEFORE UPDATE ON `Facturas`
+FOR EACH ROW
+BEGIN
+ CALL bi.customer_risk_update (OLD.Id_Cliente, OLD.empresa_id, -OLD.Importe);
+ CALL bi.customer_risk_update (NEW.Id_Cliente, NEW.empresa_id, NEW.Importe);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`FacturasBeforeDelete`
+BEFORE DELETE ON `Facturas`
+FOR EACH ROW
+ CALL bi.customer_risk_update (OLD.Id_Cliente, OLD.empresa_id, -OLD.Importe) */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `Familias`
+--
+
+DROP TABLE IF EXISTS `Familias`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Familias` (
+ `Familia` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
+ `Subcuenta` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Descripcion` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`Familia`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Forms`
+--
+
+DROP TABLE IF EXISTS `Forms`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Forms` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `titulo` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Gastos`
+--
+
+DROP TABLE IF EXISTS `Gastos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Gastos` (
+ `Id_Gasto` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
+ `iva_tipo_id` tinyint(4) NOT NULL,
+ `Gasto` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `conbase` tinyint(4) NOT NULL DEFAULT '1',
+ `isWithheld` tinyint(4) NOT NULL DEFAULT '0',
+ `isForSale` tinyint(4) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`Id_Gasto`,`iva_tipo_id`),
+ KEY `iva_tipo_id` (`iva_tipo_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Greuges`
+--
+
+DROP TABLE IF EXISTS `Greuges`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Greuges` (
+ `Id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `Id_Cliente` int(10) unsigned NOT NULL,
+ `Comentario` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `Importe` decimal(10,2) NOT NULL,
+ `Fecha` datetime NOT NULL,
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `Greuges_type_id` int(11) DEFAULT NULL,
+ `Id_Ticket` int(11) DEFAULT NULL,
+ PRIMARY KEY (`Id`),
+ KEY `greuges_type_fk_idx` (`Greuges_type_id`),
+ KEY `Id_Ticket_Greuge_Ticket_idx` (`Id_Ticket`),
+ CONSTRAINT `Id_Ticket_Greuge_Ticket` FOREIGN KEY (`Id_Ticket`) REFERENCES `Tickets` (`Id_Ticket`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `greuges_type_fk` FOREIGN KEY (`Greuges_type_id`) REFERENCES `Greuges_type` (`Greuges_type_id`) ON DELETE SET NULL ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=FIXED;
+/*!40101 SET character_set_client = @saved_cs_client */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`Greuges_BEFORE_UPDATE` BEFORE UPDATE ON `Greuges` FOR EACH ROW
+BEGIN
+
+ DECLARE vMaxDate DATETIME DEFAULT TIMESTAMPADD(YEAR,1,CURDATE());
+
+ IF NEW.Fecha > vMaxDate THEN
+
+ SET NEW.Fecha = vMaxDate;
+
+ END IF;
+
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `Greuges_type`
+--
+
+DROP TABLE IF EXISTS `Greuges_type`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Greuges_type` (
+ `Greuges_type_id` int(11) NOT NULL AUTO_INCREMENT,
+ `name` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`Greuges_type_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Grupos`
+--
+
+DROP TABLE IF EXISTS `Grupos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Grupos` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `Grupo` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `observation_type_id` tinyint(3) unsigned NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `name` (`name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Impresoras`
+--
+
+DROP TABLE IF EXISTS `Impresoras`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Impresoras` (
+ `Id_Impresora` tinyint(3) unsigned NOT NULL,
+ `Ruta` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Impresora` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `referencia` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `2C` tinyint(4) DEFAULT '0',
+ PRIMARY KEY (`Id_Impresora`),
+ UNIQUE KEY `referencia` (`referencia`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Informes`
+--
+
+DROP TABLE IF EXISTS `Informes`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Informes` (
+ `Id_Informe` tinyint(3) unsigned NOT NULL,
+ `Informe` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`Id_Informe`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Intrastat`
+--
+
+DROP TABLE IF EXISTS `Intrastat`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Intrastat` (
+ `Codintrastat` int(8) unsigned zerofill NOT NULL,
+ `Definicion` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `import` tinyint(4) NOT NULL DEFAULT '0',
+ `iva_group_id` tinyint(3) unsigned NOT NULL DEFAULT '2',
+ `iva_codigo_id` tinyint(2) unsigned NOT NULL DEFAULT '64',
+ PRIMARY KEY (`Codintrastat`),
+ KEY `iva_group_id` (`iva_group_id`),
+ CONSTRAINT `Intrastat_ibfk_1` FOREIGN KEY (`iva_group_id`) REFERENCES `iva_group` (`iva_group_id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Jefes`
+--
+
+DROP TABLE IF EXISTS `Jefes`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Jefes` (
+ `Id_Trabajador` int(11) NOT NULL,
+ `Id_Jefe` int(11) NOT NULL,
+ `Departamento` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`Id_Trabajador`,`Id_Jefe`),
+ KEY `trabajador_jefe_idx` (`Id_Jefe`),
+ CONSTRAINT `trabajador_jefe` FOREIGN KEY (`Id_Jefe`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `trabajador_trabajador` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Es una tabla que se rellena desde la comparativa, tomando los datos de postgress.';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Monedas`
+--
+
+DROP TABLE IF EXISTS `Monedas`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Monedas` (
+ `Id_Moneda` tinyint(3) unsigned NOT NULL,
+ `Moneda` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
+ `Descripcion` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Cambio` double NOT NULL DEFAULT '1',
+ PRIMARY KEY (`Id_Moneda`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Monitoring`
+--
+
+DROP TABLE IF EXISTS `Monitoring`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Monitoring` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `equipo_id` int(11) NOT NULL,
+ `user_id` int(11) NOT NULL,
+ `form_id` int(11) NOT NULL,
+ `cliente_id` int(11) NOT NULL,
+ `ticket_id` int(11) NOT NULL,
+ `ODBC_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`id`),
+ KEY `equipo_id` (`equipo_id`,`user_id`,`form_id`,`cliente_id`,`ticket_id`),
+ KEY `user_id` (`user_id`),
+ KEY `form_id` (`form_id`),
+ KEY `cliente_id` (`cliente_id`),
+ KEY `ticket_id` (`ticket_id`),
+ CONSTRAINT `Monitoring_ibfk_1` FOREIGN KEY (`equipo_id`) REFERENCES `Equipos` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `Monitoring_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE,
+ CONSTRAINT `Monitoring_ibfk_3` FOREIGN KEY (`form_id`) REFERENCES `Forms` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Movimientos`
+--
+
+DROP TABLE IF EXISTS `Movimientos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Movimientos` (
+ `Id_Movimiento` int(11) NOT NULL AUTO_INCREMENT,
+ `Id_Article` int(11) NOT NULL,
+ `Id_Ticket` int(11) NOT NULL,
+ `Concepte` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Cantidad` decimal(10,2) NOT NULL DEFAULT '0.00',
+ `quantity` double(9,1) DEFAULT NULL,
+ `Preu` decimal(10,2) DEFAULT '0.00',
+ `Descuento` tinyint(2) unsigned NOT NULL DEFAULT '0',
+ `CostFixat` decimal(10,2) NOT NULL DEFAULT '0.00',
+ `Reservado` tinyint(1) NOT NULL DEFAULT '0',
+ `OK` tinyint(1) NOT NULL DEFAULT '0',
+ `PrecioFijado` tinyint(1) NOT NULL DEFAULT '0',
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`Id_Movimiento`),
+ KEY `Id_Ticket` (`Id_Ticket`),
+ KEY `itemFk_ticketFk` (`Id_Article`,`Id_Ticket`),
+ CONSTRAINT `Movimientos_ibfk_1` FOREIGN KEY (`Id_Article`) REFERENCES `Articles` (`Id_Article`) ON UPDATE CASCADE,
+ CONSTRAINT `movement_ticket_id` FOREIGN KEY (`Id_Ticket`) REFERENCES `Tickets` (`Id_Ticket`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`MovimientosAfterInsert`
+ AFTER INSERT ON `Movimientos` FOR EACH ROW
+BEGIN
+ CALL stock.queueAdd ('sale', NEW.Id_Movimiento, NULL);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `MovimientosBeforeUpdate`
+ BEFORE UPDATE ON `Movimientos` FOR EACH ROW
+BEGIN
+ IF NEW.Descuento > 100 THEN
+ SET NEW.Descuento = 0;
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`MovimientosAfterUpdate`
+ AFTER UPDATE ON `Movimientos` FOR EACH ROW
+BEGIN
+ CALL stock.queueAdd ('sale', NEW.Id_Movimiento, OLD.Id_Movimiento);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`MovimientosAfterDelete`
+ AFTER DELETE ON `Movimientos` FOR EACH ROW
+BEGIN
+ CALL stock.queueAdd ('sale', NULL, OLD.Id_Movimiento);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `Movimientos_avisar`
+--
+
+DROP TABLE IF EXISTS `Movimientos_avisar`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Movimientos_avisar` (
+ `Id_Movimiento` int(11) NOT NULL,
+ `Id_Remitente` int(11) DEFAULT NULL,
+ PRIMARY KEY (`Id_Movimiento`),
+ KEY `Movimiento` (`Id_Movimiento`),
+ KEY `Remitente` (`Id_Remitente`),
+ CONSTRAINT `Id_Movimientos_avisar_fk` FOREIGN KEY (`Id_Movimiento`) REFERENCES `Movimientos` (`Id_Movimiento`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Movimientos_checked`
+--
+
+DROP TABLE IF EXISTS `Movimientos_checked`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Movimientos_checked` (
+ `Id_Movimiento` int(11) NOT NULL,
+ `checked` int(11) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`Id_Movimiento`),
+ CONSTRAINT `fk_Movimientos_checked_1` FOREIGN KEY (`Id_Movimiento`) REFERENCES `Movimientos` (`Id_Movimiento`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Movimientos_componentes`
+--
+
+DROP TABLE IF EXISTS `Movimientos_componentes`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Movimientos_componentes` (
+ `Id_Movimiento` int(11) NOT NULL,
+ `Id_Componente` int(11) NOT NULL,
+ `Valor` double NOT NULL,
+ `greuge` tinyint(4) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`Id_Movimiento`,`Id_Componente`),
+ KEY `fk_comp_mov_idx` (`Id_Movimiento`),
+ KEY `fk_mov_comp_idx` (`Id_Componente`),
+ CONSTRAINT `mc_fk1` FOREIGN KEY (`Id_Movimiento`) REFERENCES `Movimientos` (`Id_Movimiento`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `mc_fk2` FOREIGN KEY (`Id_Componente`) REFERENCES `bi`.`tarifa_componentes` (`Id_Componente`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Movimientos_mark`
+--
+
+DROP TABLE IF EXISTS `Movimientos_mark`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Movimientos_mark` (
+ `Id_Movimiento` int(11) NOT NULL,
+ `valor` tinyint(3) unsigned NOT NULL DEFAULT '0',
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `original_quantity` double DEFAULT NULL,
+ `Id_Trabajador` int(11) NOT NULL,
+ `Id_Accion` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `Id_Movimiento_mark` int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (`Id_Movimiento_mark`),
+ KEY `Id_Movimiento` (`Id_Movimiento`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Movimientos_revisar`
+--
+
+DROP TABLE IF EXISTS `Movimientos_revisar`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Movimientos_revisar` (
+ `Id_Movimiento` int(11) NOT NULL,
+ `Comentario` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Revisado` tinyint(1) NOT NULL DEFAULT '0',
+ `Id_Remitente` int(11) DEFAULT NULL,
+ `Id_Destinatario` int(11) DEFAULT NULL,
+ PRIMARY KEY (`Id_Movimiento`),
+ KEY `Remitente` (`Id_Remitente`),
+ KEY `Destinatario` (`Id_Destinatario`),
+ CONSTRAINT `Movimientos_revisar_ibfk_1` FOREIGN KEY (`Id_Movimiento`) REFERENCES `Movimientos` (`Id_Movimiento`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Objetivos`
+--
+
+DROP TABLE IF EXISTS `Objetivos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Objetivos` (
+ `Periodo` int(11) NOT NULL,
+ `Objetivo` double NOT NULL,
+ PRIMARY KEY (`Periodo`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Ordenes`
+--
+
+DROP TABLE IF EXISTS `Ordenes`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Ordenes` (
+ `Id_ORDEN` int(11) NOT NULL AUTO_INCREMENT,
+ `ORDEN` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `datORDEN` datetime DEFAULT NULL,
+ `datTICKET` datetime DEFAULT NULL,
+ `CodVENDEDOR` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `CodCOMPRADOR` varchar(3) CHARACTER SET utf8 NOT NULL DEFAULT 'NOE',
+ `CANTIDAD` int(11) DEFAULT NULL,
+ `PRECIOMAX` double DEFAULT NULL,
+ `PREU` double DEFAULT NULL,
+ `Id_ARTICLE` double DEFAULT NULL,
+ `Id_CLIENTE` int(11) DEFAULT NULL,
+ `COMENTARIO` longtext COLLATE utf8_unicode_ci,
+ `OK` tinyint(1) NOT NULL DEFAULT '0',
+ `TOTAL` int(11) DEFAULT NULL,
+ `datCOMPRA` datetime DEFAULT NULL,
+ `KO` tinyint(1) NOT NULL DEFAULT '0',
+ `Id_Movimiento` int(11) DEFAULT NULL,
+ `odbc_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`Id_ORDEN`),
+ UNIQUE KEY `Id_Movimiento_UNIQUE` (`Id_Movimiento`),
+ KEY `Id_ARTICLE` (`Id_ARTICLE`),
+ KEY `Id_CLIENTE` (`Id_CLIENTE`),
+ KEY `Id_Comprador` (`CodCOMPRADOR`),
+ KEY `Id_Movimiento` (`Id_Movimiento`),
+ KEY `Id_Vendedor` (`CodVENDEDOR`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Origen`
+--
+
+DROP TABLE IF EXISTS `Origen`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Origen` (
+ `id` tinyint(2) unsigned NOT NULL AUTO_INCREMENT,
+ `Abreviatura` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
+ `Origen` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
+ `warehouse_id` smallint(5) unsigned DEFAULT '4',
+ `bandera` blob,
+ `nl` tinyint(4) NOT NULL DEFAULT '0',
+ `Id_Paises` mediumint(8) unsigned NOT NULL DEFAULT '1',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `Abreviatura` (`Abreviatura`),
+ KEY `warehouse_id` (`warehouse_id`),
+ KEY `Id_Paises` (`Id_Paises`),
+ CONSTRAINT `Origen_ibfk_1` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Pagares`
+--
+
+DROP TABLE IF EXISTS `Pagares`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Pagares` (
+ `kk_Vencimiento` datetime DEFAULT NULL,
+ `kk_Importe` double DEFAULT '0',
+ `Fechaemision` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `Id_Pagare` int(11) NOT NULL AUTO_INCREMENT,
+ `Concepto` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `kk_id_proveedor` int(11) DEFAULT NULL,
+ `kk_empresa_id` smallint(5) unsigned DEFAULT NULL,
+ `pago_id` int(10) unsigned DEFAULT NULL,
+ PRIMARY KEY (`Id_Pagare`),
+ KEY `empresa_id` (`kk_empresa_id`),
+ KEY `pago_id` (`pago_id`),
+ CONSTRAINT `Pagares_ibfk_2` FOREIGN KEY (`pago_id`) REFERENCES `pago` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Paises`
+--
+
+DROP TABLE IF EXISTS `Paises`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Paises` (
+ `Id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `Pais` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
+ `CEE` tinyint(1) NOT NULL DEFAULT '1',
+ `Codigo` varchar(2) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Id_Moneda` tinyint(3) unsigned NOT NULL DEFAULT '1',
+ `Id_Paisreal` mediumint(8) unsigned NOT NULL COMMENT 'Pais Real(apaño por culpa del España Exento)',
+ `nst_geo_id` int(11) DEFAULT NULL,
+ `nst_name` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `geoFk` int(11) DEFAULT NULL,
+ PRIMARY KEY (`Id`),
+ KEY `Id_Paisreal` (`Id_Paisreal`)
+) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Permisos`
+--
+
+DROP TABLE IF EXISTS `Permisos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Permisos` (
+ `Id_Grupo` int(10) unsigned NOT NULL,
+ `Id_Trabajador` int(10) unsigned NOT NULL,
+ `empresa_id` smallint(5) unsigned NOT NULL DEFAULT '442',
+ PRIMARY KEY (`Id_Grupo`,`Id_Trabajador`),
+ KEY `empresa_id` (`empresa_id`),
+ CONSTRAINT `Permisos_ibfk_1` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `Permisos_ibfk_2` FOREIGN KEY (`Id_Grupo`) REFERENCES `Grupos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `PreciosEspeciales`
+--
+
+DROP TABLE IF EXISTS `PreciosEspeciales`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `PreciosEspeciales` (
+ `Id_PrecioEspecial` int(11) NOT NULL AUTO_INCREMENT,
+ `Id_Cliente` int(11) NOT NULL DEFAULT '0',
+ `Id_Article` int(11) NOT NULL DEFAULT '0',
+ `PrecioEspecial` double NOT NULL DEFAULT '0',
+ PRIMARY KEY (`Id_PrecioEspecial`),
+ UNIQUE KEY `Id_Cliente_2` (`Id_Cliente`,`Id_Article`),
+ KEY `Id_Article` (`Id_Article`),
+ KEY `Id_Cliente` (`Id_Cliente`),
+ CONSTRAINT `sp_article_id` FOREIGN KEY (`Id_Article`) REFERENCES `Articles` (`Id_Article`) ON UPDATE CASCADE,
+ CONSTRAINT `sp_customer_id` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON UPDATE CASCADE,
+ CONSTRAINT `{01A99AF1-3D3F-4B15-AC0C-C7A834F319A3}` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `{EE4ADEF6-0AC6-401F-B7C4-D797972FC065}` FOREIGN KEY (`Id_Article`) REFERENCES `Articles` (`Id_Article`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Prioridades`
+--
+
+DROP TABLE IF EXISTS `Prioridades`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Prioridades` (
+ `Id_Prioridad` tinyint(3) unsigned NOT NULL DEFAULT '0',
+ `Prioridad` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`Id_Prioridad`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Proveedores`
+--
+
+DROP TABLE IF EXISTS `Proveedores`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Proveedores` (
+ `Id_Proveedor` int(11) NOT NULL AUTO_INCREMENT,
+ `Proveedor` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `cuenta` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Domicilio` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `CP` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Localidad` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `provinciakk` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
+ `province_id` smallint(5) unsigned DEFAULT NULL,
+ `pais_id` mediumint(8) unsigned DEFAULT NULL,
+ `NIF` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `oficial` tinyint(1) NOT NULL DEFAULT '1',
+ `Agricola` tinyint(1) NOT NULL DEFAULT '0',
+ `cuentaret` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Telefono` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Fax` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `ComisionProveedor` float NOT NULL DEFAULT '0',
+ `Alias` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `pay_met_id` tinyint(3) unsigned NOT NULL,
+ `pay_day` tinyint(4) unsigned DEFAULT NULL,
+ `pay_dem_id` tinyint(3) unsigned NOT NULL DEFAULT '7',
+ `odbc_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `serious` tinyint(1) unsigned zerofill DEFAULT '1',
+ `notas` text COLLATE utf8_unicode_ci,
+ `postcode_id` int(11) unsigned DEFAULT NULL,
+ `codpos` char(5) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `active` tinyint(4) DEFAULT '1',
+ PRIMARY KEY (`Id_Proveedor`),
+ UNIQUE KEY `cuenta` (`cuenta`),
+ UNIQUE KEY `NIF` (`NIF`),
+ KEY `pais_id` (`pais_id`),
+ KEY `pay_met_id` (`pay_met_id`),
+ KEY `province_id` (`province_id`),
+ KEY `pay_dem_id` (`pay_dem_id`),
+ KEY `postcode_fk_idx` (`postcode_id`),
+ KEY `codpos` (`codpos`,`CP`),
+ CONSTRAINT `Id_Pais` FOREIGN KEY (`pais_id`) REFERENCES `Paises` (`Id`) ON UPDATE CASCADE,
+ CONSTRAINT `pay_dem_id` FOREIGN KEY (`pay_dem_id`) REFERENCES `pay_dem` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `pay_met_id` FOREIGN KEY (`pay_met_id`) REFERENCES `pay_met` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `postcode_fk` FOREIGN KEY (`postcode_id`) REFERENCES `postcodeKK` (`postcode_id`) ON DELETE SET NULL ON UPDATE CASCADE,
+ CONSTRAINT `province_id` FOREIGN KEY (`province_id`) REFERENCES `province` (`province_id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Proveedores_account`
+--
+
+DROP TABLE IF EXISTS `Proveedores_account`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Proveedores_account` (
+ `Id_Proveedores_account` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `Id_Proveedor` int(11) NOT NULL,
+ `IBAN` varchar(30) CHARACTER SET utf8 DEFAULT NULL,
+ `office` varchar(4) CHARACTER SET utf8 DEFAULT NULL,
+ `DC` varchar(2) CHARACTER SET utf8 DEFAULT NULL,
+ `number` varchar(10) CHARACTER SET utf8 DEFAULT NULL,
+ `description` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `bic_sufix` varchar(3) CHARACTER SET utf8 NOT NULL DEFAULT '',
+ `entity_id` int(10) NOT NULL,
+ `Id_Banco` int(11) DEFAULT NULL,
+ PRIMARY KEY (`Id_Proveedores_account`),
+ KEY `fk_proveedores_proveedores_account_idx` (`Id_Proveedor`),
+ KEY `fk_Proveedores_account_entity1_idx` (`entity_id`),
+ KEY `fk_banco_prov_account_idx` (`Id_Banco`),
+ CONSTRAINT `fk_banco_prov_account` FOREIGN KEY (`Id_Banco`) REFERENCES `Bancos` (`Id_Banco`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Proveedores_comunicados`
+--
+
+DROP TABLE IF EXISTS `Proveedores_comunicados`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Proveedores_comunicados` (
+ `Id_Proveedor` int(11) NOT NULL,
+ `escrito_id` int(11) NOT NULL,
+ `fecha` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ KEY `Proveedor` (`Id_Proveedor`),
+ KEY `Escrito` (`escrito_id`),
+ CONSTRAINT `Proveedores_comunicados_ibfk_3` FOREIGN KEY (`Id_Proveedor`) REFERENCES `Proveedores` (`Id_Proveedor`) ON UPDATE CASCADE,
+ CONSTRAINT `Proveedores_comunicados_ibfk_4` FOREIGN KEY (`escrito_id`) REFERENCES `Proveedores_escritos` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Proveedores_escritos`
+--
+
+DROP TABLE IF EXISTS `Proveedores_escritos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Proveedores_escritos` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `escrito` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `informe` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Proveedores_gestdoc`
+--
+
+DROP TABLE IF EXISTS `Proveedores_gestdoc`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Proveedores_gestdoc` (
+ `Id_Proveedor` int(11) NOT NULL,
+ `gestdoc_id` int(11) NOT NULL,
+ PRIMARY KEY (`Id_Proveedor`,`gestdoc_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Recibos`
+--
+
+DROP TABLE IF EXISTS `Recibos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Recibos` (
+ `Id` int(11) NOT NULL AUTO_INCREMENT,
+ `Id_Factura` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Entregado` decimal(10,2) NOT NULL DEFAULT '0.00',
+ `Pendiente` decimal(10,2) NOT NULL DEFAULT '0.00',
+ `Fechacobro` datetime DEFAULT NULL,
+ `Id_Trabajador` int(11) DEFAULT '0',
+ `Id_Banco` int(11) DEFAULT '0',
+ `Id_Cliente` int(11) DEFAULT '0',
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `empresa_id` smallint(5) unsigned NOT NULL DEFAULT '442',
+ `conciliado` tinyint(1) unsigned zerofill NOT NULL DEFAULT '0',
+ PRIMARY KEY (`Id`),
+ KEY `Id_Banco` (`Id_Banco`),
+ KEY `Id_Cliente` (`Id_Cliente`),
+ KEY `Id_Trabajador` (`Id_Trabajador`),
+ KEY `empresa_id` (`empresa_id`),
+ CONSTRAINT `Recibos_ibfk_1` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `Recibos_ibfk_2` FOREIGN KEY (`Id_Banco`) REFERENCES `Bancos` (`Id_Banco`) ON UPDATE CASCADE,
+ CONSTRAINT `recibo_customer_id` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON UPDATE CASCADE
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`RecibosAfterInsert`
+AFTER INSERT ON `Recibos`
+FOR EACH ROW
+ CALL bi.customer_risk_update (NEW.Id_Cliente, NEW.empresa_id, -NEW.Entregado) */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`RecibosBeforeUpdate`
+BEFORE UPDATE ON `Recibos`
+FOR EACH ROW
+BEGIN
+ CALL bi.customer_risk_update (OLD.Id_Cliente, OLD.empresa_id, OLD.Entregado);
+ CALL bi.customer_risk_update (NEW.Id_Cliente, NEW.empresa_id, -NEW.Entregado);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`RecibosBeforeDelete`
+BEFORE DELETE ON `Recibos`
+FOR EACH ROW
+ CALL bi.customer_risk_update (OLD.Id_Cliente, OLD.empresa_id, OLD.Entregado) */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `Recibos_recorded`
+--
+
+DROP TABLE IF EXISTS `Recibos_recorded`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Recibos_recorded` (
+ `Id_Recibos` int(11) NOT NULL,
+ `recorded` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'Marcado si se ha contabilizado',
+ PRIMARY KEY (`Id_Recibos`),
+ CONSTRAINT `Recibos_recorded_ibfk_1` FOREIGN KEY (`Id_Recibos`) REFERENCES `Recibos` (`Id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Recibos (Contrareembolso) contabilizados';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Relaciones`
+--
+
+DROP TABLE IF EXISTS `Relaciones`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Relaciones` (
+ `Id_Relacion` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `Id_Contacto` int(10) unsigned NOT NULL,
+ `Id_Proveedor` int(10) unsigned DEFAULT NULL,
+ `Id_Cliente` int(10) unsigned DEFAULT NULL,
+ PRIMARY KEY (`Id_Relacion`),
+ KEY `Id_Contacto` (`Id_Contacto`),
+ KEY `Id_Proveedor` (`Id_Proveedor`),
+ KEY `Id_Cliente` (`Id_Cliente`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Remesas`
+--
+
+DROP TABLE IF EXISTS `Remesas`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Remesas` (
+ `Id_Remesa` int(11) NOT NULL AUTO_INCREMENT,
+ `Fecha Remesa` datetime DEFAULT NULL,
+ `Banco` int(11) DEFAULT '0',
+ `empresa_id` smallint(5) unsigned NOT NULL DEFAULT '442',
+ PRIMARY KEY (`Id_Remesa`),
+ KEY `Id_Banco` (`Banco`),
+ KEY `empresa_id` (`empresa_id`),
+ CONSTRAINT `Remesas_ibfk_1` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `Remesas_ibfk_2` FOREIGN KEY (`Banco`) REFERENCES `Bancos` (`Id_Banco`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Reservas`
+--
+
+DROP TABLE IF EXISTS `Reservas`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Reservas` (
+ `Id_Reserva` int(11) NOT NULL AUTO_INCREMENT,
+ `Id_Ticket` int(11) DEFAULT '0',
+ `Fecha` datetime DEFAULT NULL,
+ `Alias` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `article` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `medida` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `categoria` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `color` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `origen` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `cantidad` int(11) DEFAULT '0',
+ `Id_Article` double DEFAULT '0',
+ PRIMARY KEY (`Id_Reserva`),
+ KEY `Id_1` (`Id_Ticket`),
+ KEY `Id_Article` (`Id_Article`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Rutas`
+--
+
+DROP TABLE IF EXISTS `Rutas`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Rutas` (
+ `Id_Ruta` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `Id_Trabajador` int(10) unsigned DEFAULT NULL,
+ `Fecha` date NOT NULL,
+ `Id_Vehiculo` int(10) unsigned DEFAULT NULL,
+ `Id_Agencia` int(11) DEFAULT NULL,
+ `Hora` datetime DEFAULT NULL,
+ `ok` tinyint(1) unsigned NOT NULL DEFAULT '0',
+ `km_start` mediumint(9) NOT NULL,
+ `km_end` mediumint(9) NOT NULL,
+ `date_start` datetime NOT NULL,
+ `date_end` datetime NOT NULL,
+ `gestdoc_id` int(11) DEFAULT NULL,
+ `cost` double unsigned DEFAULT NULL,
+ `m3` decimal(10,1) unsigned DEFAULT NULL,
+ PRIMARY KEY (`Id_Ruta`),
+ KEY `Id_Agencia` (`Id_Agencia`),
+ KEY `Fecha` (`Fecha`),
+ KEY `gestdoc_id` (`gestdoc_id`),
+ CONSTRAINT `Rutas_ibfk_1` FOREIGN KEY (`gestdoc_id`) REFERENCES `gestdoc` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
+) ENGINE=InnoDB AUTO_INCREMENT=8 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `Rutas_au` AFTER UPDATE ON `Rutas` FOR EACH ROW
+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;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `Rutas_Master`
+--
+
+DROP TABLE IF EXISTS `Rutas_Master`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Rutas_Master` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `warehouse_id` smallint(6) unsigned DEFAULT NULL,
+ `km` int(11) DEFAULT NULL,
+ `bultos` int(11) NOT NULL,
+ `vehiculos_coste` decimal(10,2) DEFAULT NULL,
+ `personal_coste` decimal(10,2) DEFAULT NULL,
+ `vehiculos_numero` decimal(10,2) DEFAULT NULL,
+ `personal_numero` decimal(10,2) DEFAULT NULL,
+ `gasoil` int(11) DEFAULT NULL,
+ `autonomos` decimal(10,2) DEFAULT NULL,
+ `año` int(11) DEFAULT NULL,
+ `mes` int(11) DEFAULT NULL,
+ `gastos` decimal(10,2) DEFAULT NULL,
+ `bultos_autonomos` int(11) DEFAULT NULL,
+ `coste_km` decimal(10,2) DEFAULT NULL,
+ `coste_bulto` decimal(10,2) DEFAULT NULL,
+ `coste_bulto_autonomo` decimal(10,2) DEFAULT NULL,
+ `odbc_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`id`),
+ KEY `fk_rutas_warehouse_id_idx` (`warehouse_id`),
+ CONSTRAINT `fk_rutas_warehouse_id` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Rutas_dits`
+--
+
+DROP TABLE IF EXISTS `Rutas_dits`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Rutas_dits` (
+ `idRutas_dits` int(11) unsigned NOT NULL AUTO_INCREMENT,
+ `idaccion_dits` int(11) NOT NULL,
+ `ODBC_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `Id_Ticket` int(11) unsigned NOT NULL,
+ `Id_Trabajador` int(11) NOT NULL,
+ `value_old` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `value_new` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`idRutas_dits`),
+ KEY `index2` (`idaccion_dits`),
+ KEY `index3` (`Id_Ticket`),
+ KEY `index4` (`Id_Trabajador`),
+ CONSTRAINT `fk_Id_Trabajador` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE,
+ CONSTRAINT `fk_Id_ruta` FOREIGN KEY (`Id_Ticket`) REFERENCES `Rutas` (`Id_Ruta`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `fk_action_dits` FOREIGN KEY (`idaccion_dits`) REFERENCES `accion_dits` (`idaccion_dits`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Salarios`
+--
+
+DROP TABLE IF EXISTS `Salarios`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Salarios` (
+ `Id_Trabajador` int(11) NOT NULL,
+ `Salario_Bruto` double DEFAULT '0',
+ `Incentivo` double DEFAULT '0',
+ `SS` double DEFAULT '0',
+ `warehouse_id` smallint(6) NOT NULL DEFAULT '1',
+ PRIMARY KEY (`Id_Trabajador`),
+ CONSTRAINT `trabajadaor_id` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Saldos_Prevision`
+--
+
+DROP TABLE IF EXISTS `Saldos_Prevision`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Saldos_Prevision` (
+ `Saldos_Prevision_id` int(11) NOT NULL AUTO_INCREMENT,
+ `Descripcion` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Importe` double NOT NULL DEFAULT '0',
+ `Fecha` date NOT NULL,
+ `Id_Banco` int(11) DEFAULT NULL,
+ `empresa_id` smallint(5) unsigned NOT NULL DEFAULT '442',
+ PRIMARY KEY (`Saldos_Prevision_id`),
+ KEY `Fecha_indice` (`Fecha`),
+ KEY `banco_prevision_idx` (`Id_Banco`),
+ KEY `empresa_prevision_idx` (`empresa_id`),
+ CONSTRAINT `banco_prevision` FOREIGN KEY (`Id_Banco`) REFERENCES `Bancos` (`Id_Banco`) ON UPDATE CASCADE,
+ CONSTRAINT `empresa_prevision` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Aqui ponemos los gastos e ingresos pendientes de introducir ';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Series`
+--
+
+DROP TABLE IF EXISTS `Series`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Series` (
+ `Id_Serie` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
+ `Serie` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Cuenta` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`Id_Serie`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Split_lines`
+--
+
+DROP TABLE IF EXISTS `Split_lines`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Split_lines` (
+ `Id_Split_lines` int(11) NOT NULL AUTO_INCREMENT,
+ `Id_Split` int(11) NOT NULL,
+ `Id_Article` int(11) DEFAULT NULL,
+ `Id_Compra` int(11) DEFAULT NULL,
+ PRIMARY KEY (`Id_Split_lines`),
+ KEY `Id_Split` (`Id_Split`),
+ KEY `Id_Compra` (`Id_Compra`),
+ CONSTRAINT `Id_Compra` FOREIGN KEY (`Id_Compra`) REFERENCES `Compres` (`Id_Compra`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `Split_lines_ibfk_1` FOREIGN KEY (`Id_Split`) REFERENCES `Splits` (`Id_Split`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Splits`
+--
+
+DROP TABLE IF EXISTS `Splits`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Splits` (
+ `Id_Split` int(11) NOT NULL AUTO_INCREMENT,
+ `Id_Ticket` int(11) DEFAULT NULL,
+ `Id_Entrada` int(11) DEFAULT NULL,
+ `Fecha` datetime DEFAULT NULL,
+ `Notas` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`Id_Split`),
+ KEY `Id_Entrada` (`Id_Entrada`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Stockcontrol`
+--
+
+DROP TABLE IF EXISTS `Stockcontrol`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Stockcontrol` (
+ `Id_Control` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `Id_Article` int(11) NOT NULL,
+ `Id_Remitente` int(11) NOT NULL,
+ `Id_Solver` int(11) NOT NULL,
+ `Problema` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `Solucion` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `Listo` tinyint(1) NOT NULL,
+ `Air` tinyint(1) NOT NULL,
+ `Datestart` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `Dateend` datetime DEFAULT NULL,
+ PRIMARY KEY (`Id_Control`),
+ KEY `Id_Article` (`Id_Article`),
+ KEY `Id_Remitente` (`Id_Remitente`),
+ KEY `Id_Solver` (`Id_Solver`),
+ CONSTRAINT `Stockcontrol_ibfk_1` FOREIGN KEY (`Id_Article`) REFERENCES `Articles` (`Id_Article`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `Stockcontrol_ibfk_2` FOREIGN KEY (`Id_Remitente`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `Stockcontrol_ibfk_3` FOREIGN KEY (`Id_Solver`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Tickets`
+--
+
+DROP TABLE IF EXISTS `Tickets`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Tickets` (
+ `Id_Ticket` int(11) NOT NULL AUTO_INCREMENT,
+ `Id_Cliente` int(11) NOT NULL DEFAULT '0',
+ `warehouse_id` smallint(6) unsigned NOT NULL DEFAULT '1',
+ `Fecha` datetime NOT NULL,
+ `Alias` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Notas` longtext COLLATE utf8_unicode_ci,
+ `Factura` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `factura_id` int(10) unsigned DEFAULT NULL COMMENT 'eliminar',
+ `Anotadoencaja` tinyint(1) NOT NULL DEFAULT '0',
+ `Id_Consigna` int(11) NOT NULL DEFAULT '0',
+ `Id_Trabajador` int(11) DEFAULT NULL,
+ `Observaciones` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'eliminar',
+ `Firmado` tinyint(1) NOT NULL DEFAULT '0',
+ `Etiquetasemitidas` tinyint(1) NOT NULL DEFAULT '0',
+ `PedidoImpreso` tinyint(1) NOT NULL DEFAULT '0',
+ `Bultos` smallint(10) unsigned DEFAULT '0',
+ `Localizacion` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Hora` int(11) DEFAULT '0',
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `blocked` tinyint(1) NOT NULL DEFAULT '1',
+ `Solucion` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Id_Ruta` int(10) unsigned DEFAULT NULL,
+ `Prioridad` tinyint(3) unsigned DEFAULT NULL,
+ `priority` tinyint(1) unsigned NOT NULL DEFAULT '1',
+ `empresa_id` smallint(5) unsigned NOT NULL DEFAULT '442',
+ `Id_Agencia` int(11) NOT NULL,
+ `landing` date DEFAULT NULL,
+ `boxed` tinyint(2) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`Id_Ticket`),
+ KEY `Id_Cliente` (`Id_Cliente`),
+ KEY `Id_Consigna` (`Id_Consigna`),
+ KEY `Id_Trabajador` (`Id_Trabajador`),
+ KEY `warehouse_id` (`warehouse_id`),
+ KEY `empresa_id` (`empresa_id`),
+ KEY `Id_Agencia` (`Id_Agencia`),
+ KEY `Factura` (`Factura`),
+ KEY `Fecha` (`Fecha`),
+ KEY `Id_Ruta` (`Id_Ruta`),
+ KEY `warehouse_date` (`warehouse_id`,`Fecha`),
+ CONSTRAINT `Tickets_ibfk_1` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `Tickets_ibfk_10` FOREIGN KEY (`Factura`) REFERENCES `Facturas` (`Id_Factura`) ON DELETE SET NULL ON UPDATE CASCADE,
+ CONSTRAINT `Tickets_ibfk_5` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `Tickets_ibfk_6` FOREIGN KEY (`Id_Consigna`) REFERENCES `Consignatarios` (`id_consigna`) ON UPDATE CASCADE,
+ CONSTRAINT `Tickets_ibfk_8` FOREIGN KEY (`Id_Agencia`) REFERENCES `Agencias` (`Id_Agencia`),
+ CONSTRAINT `Tickets_ibfk_9` FOREIGN KEY (`Id_Ruta`) REFERENCES `Rutas` (`Id_Ruta`) ON UPDATE CASCADE,
+ CONSTRAINT `ticket_customer_id` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON UPDATE CASCADE
+) ENGINE=InnoDB AUTO_INCREMENT=11 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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 */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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 */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `TicketsBeforeUpdate`
+ BEFORE UPDATE ON `Tickets` FOR EACH ROW
+BEGIN
+ DECLARE vAgency INT;
+ DECLARE vEmployee INT;
+ DECLARE vIsCee TINYINT;
+ DECLARE vHasVies TINYINT;
+
+ SELECT Id_Trabajador INTO vEmployee
+ FROM Trabajadores WHERE user_id = account.userGetId();
+
+ IF vEmployee IS NULL THEN
+ SET vEmployee = 20;
+ END IF;
+
+ -- Comprobación de VIES
+ IF NEW.empresa_id <> OLD.empresa_id THEN
+
+ SELECT CEE INTO vIsCee
+ FROM Proveedores AS pr
+ INNER JOIN Paises p ON p.Id = pr.pais_id
+ WHERE Id_Proveedor = NEW.empresa_id;
+
+ SELECT VIES INTO vHasVies
+ FROM vn.`client`
+ WHERE id = OLD.Id_Cliente;
+
+ IF vIsCee = 1 AND NOT vHasVies Then
+ CALL util.throw("NO_VALID_VIES");
+ END IF;
+ END IF;
+
+ IF NEW.Fecha < '2001-01-01'
+ THEN
+ SET NEW.Id_Ruta = NULL;
+
+ IF NEW.Fecha < '2000-01-01' then
+ SET NEW.Fecha = OLD.Fecha;
+ END IF;
+
+ INSERT INTO vncontrol.inter(state_id, Id_Ticket, Id_Trabajador)
+ VALUES(17, NEW.Id_Ticket, vEmployee);
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`TicketsAfterUpdate`
+ AFTER UPDATE ON `Tickets` FOR EACH ROW
+BEGIN
+ CALL stock.queueAdd ('ticket', NEW.Id_Ticket, OLD.Id_Ticket);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `Tickets_dits`
+--
+
+DROP TABLE IF EXISTS `Tickets_dits`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Tickets_dits` (
+ `idTickets_dits` int(11) NOT NULL AUTO_INCREMENT,
+ `idaccion_dits` int(11) NOT NULL,
+ `ODBC_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `Id_Ticket` int(11) NOT NULL,
+ `Id_Trabajador` int(11) NOT NULL,
+ `value_old` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `value_new` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`idTickets_dits`),
+ KEY `fgkey1_idx` (`idaccion_dits`),
+ KEY `fgkey2_idx` (`Id_Ticket`),
+ KEY `fgkey3_idx` (`Id_Trabajador`),
+ CONSTRAINT `Tickets_dits_ibfk_1` FOREIGN KEY (`Id_Ticket`) REFERENCES `Tickets` (`Id_Ticket`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `fgkey1` FOREIGN KEY (`idaccion_dits`) REFERENCES `accion_dits` (`idaccion_dits`) ON DELETE NO ACTION ON UPDATE CASCADE,
+ CONSTRAINT `fgkey3` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON DELETE NO ACTION ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Tickets_stack`
+--
+
+DROP TABLE IF EXISTS `Tickets_stack`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Tickets_stack` (
+ `Id_Ticket` int(11) NOT NULL,
+ `orden` smallint(5) unsigned NOT NULL,
+ `label_number` smallint(6) DEFAULT '0',
+ `preparado` tinyint(4) DEFAULT '0',
+ PRIMARY KEY (`Id_Ticket`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Orden para imprimir los F5.Se borra autom. lo de 2 meses';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Tickets_state`
+--
+
+DROP TABLE IF EXISTS `Tickets_state`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Tickets_state` (
+ `Id_Ticket` int(11) NOT NULL DEFAULT '0',
+ `inter_id` int(11) NOT NULL,
+ `state_name` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`Id_Ticket`),
+ KEY `double_foreign` (`Id_Ticket`,`inter_id`),
+ CONSTRAINT `Id_Ticket` FOREIGN KEY (`Id_Ticket`) REFERENCES `Tickets` (`Id_Ticket`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `double_foreign` FOREIGN KEY (`Id_Ticket`, `inter_id`) REFERENCES `vncontrol`.`inter` (`Id_Ticket`, `inter_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Tickets_turno`
+--
+
+DROP TABLE IF EXISTS `Tickets_turno`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Tickets_turno` (
+ `Id_Ticket` int(11) NOT NULL AUTO_INCREMENT,
+ `weekDay` tinyint(1) DEFAULT NULL COMMENT 'funcion de mysql Lunes = 0, Domingo = 6',
+ PRIMARY KEY (`Id_Ticket`),
+ CONSTRAINT `Id_Ticket_fk` FOREIGN KEY (`Id_Ticket`) REFERENCES `Tickets` (`Id_Ticket`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Tintas`
+--
+
+DROP TABLE IF EXISTS `Tintas`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Tintas` (
+ `Id_Tinta` char(3) COLLATE utf8_unicode_ci NOT NULL,
+ `name` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Tinta` blob NOT NULL,
+ `Orden` int(11) NOT NULL,
+ `ball` blob,
+ `cargex` tinyint(4) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`Id_Tinta`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Tipos`
+--
+
+DROP TABLE IF EXISTS `Tipos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Tipos` (
+ `tipo_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
+ `Id_Tipo` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
+ `Tipo` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
+ `Orden` int(11) DEFAULT '0',
+ `Temperatura` tinyint(1) unsigned NOT NULL DEFAULT '0',
+ `reino_id` int(10) unsigned NOT NULL,
+ `Id_Trabajador` int(11) NOT NULL,
+ `inventory` tinyint(4) NOT NULL DEFAULT '1',
+ `odbc_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ `f11` tinyint(4) NOT NULL DEFAULT '0',
+ `father_id` smallint(5) DEFAULT NULL,
+ `transaction` tinyint(4) NOT NULL DEFAULT '0',
+ `confeccion` int(10) unsigned DEFAULT NULL,
+ `location` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `life` smallint(5) unsigned DEFAULT NULL,
+ `maneuver` double NOT NULL DEFAULT '0.21',
+ `target` double NOT NULL DEFAULT '0.15',
+ `top_margin` double NOT NULL DEFAULT '0.3',
+ `profit` double NOT NULL DEFAULT '0.02',
+ `FV` tinyint(3) DEFAULT '1',
+ `density` double NOT NULL DEFAULT '167' COMMENT 'Almacena la densidad en kg/m3 para el calculo de los portes aereos',
+ `promo` double NOT NULL DEFAULT '0',
+ `box` tinyint(4) NOT NULL DEFAULT '0',
+ `CYM` int(11) NOT NULL DEFAULT '0',
+ `isPackaging` tinyint(1) NOT NULL DEFAULT '0',
+ `hasComponents` tinyint(1) NOT NULL DEFAULT '1',
+ PRIMARY KEY (`Id_Tipo`),
+ UNIQUE KEY `tipo_id_UNIQUE` (`tipo_id`),
+ KEY `Trabajador` (`Id_Trabajador`),
+ KEY `reino_id` (`reino_id`),
+ KEY `Tipos_fk3_idx` (`confeccion`),
+ CONSTRAINT `Tipos_fk3` FOREIGN KEY (`confeccion`) REFERENCES `vn`.`confectionType` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
+ CONSTRAINT `Tipos_ibfk_1` FOREIGN KEY (`reino_id`) REFERENCES `reinos` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `Trabajador` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Protege la tabla tipos de updates para los 4 parámetros de los compradores, en funcion del valor del campo CodigoRojo de tblContadores.';
+/*!40101 SET character_set_client = @saved_cs_client */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!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);
+
+ SELECT CodigoRojo INTO strCOD FROM tblContadores LIMIT 1;
+
+ IF strCOD <> 'tipos'
+ THEN
+ SET NEW.maneuver = OLD.maneuver ;
+ SET NEW.target = OLD.target ;
+ SET NEW.top_margin = OLD.top_margin ;
+ SET NEW.profit = OLD.profit ;
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `Tipos_f11`
+--
+
+DROP TABLE IF EXISTS `Tipos_f11`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Tipos_f11` (
+ `f11_id` tinyint(4) NOT NULL AUTO_INCREMENT,
+ `description` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`f11_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Trabajadores`
+--
+
+DROP TABLE IF EXISTS `Trabajadores`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Trabajadores` (
+ `CodigoTrabajador` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
+ `Nombre` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Apellidos` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Password` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `email` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Id_Trabajador` int(11) NOT NULL AUTO_INCREMENT,
+ `extension` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `sub` int(11) unsigned DEFAULT NULL,
+ `user` varchar(20) CHARACTER SET utf8 DEFAULT NULL,
+ `Contrato_Tipo` varchar(30) CHARACTER SET utf8 DEFAULT 'no dejar vacio' COMMENT 'campo obsoleto, actualmente se rellena en laboral',
+ `Categoria_Laboral` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Fecha_Inicio` datetime DEFAULT NULL,
+ `Fecha_Fin` datetime DEFAULT NULL,
+ `Notas` varchar(254) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Foto` blob,
+ `dni` varchar(9) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `address` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `date_birth` date NOT NULL,
+ `marital_status` enum('soltero/a','casado/a') COLLATE utf8_unicode_ci NOT NULL,
+ `phone` varchar(9) COLLATE utf8_unicode_ci NOT NULL,
+ `empresa_id` smallint(5) unsigned NOT NULL,
+ `Id_Cliente_Interno` int(11) DEFAULT NULL,
+ `user_id` int(10) unsigned DEFAULT NULL,
+ `boss` int(11) NOT NULL DEFAULT '2',
+ `DniExpiration` datetime DEFAULT NULL,
+ PRIMARY KEY (`Id_Trabajador`),
+ UNIQUE KEY `CodigoTrabajador_UNIQUE` (`CodigoTrabajador`),
+ UNIQUE KEY `user` (`user`),
+ UNIQUE KEY `user_id_UNIQUE` (`user_id`),
+ UNIQUE KEY `Id_Cliente_Interno` (`Id_Cliente_Interno`),
+ KEY `sub` (`sub`),
+ CONSTRAINT `Clientes` FOREIGN KEY (`Id_Cliente_Interno`) REFERENCES `Clientes` (`id_cliente`) ON UPDATE CASCADE,
+ CONSTRAINT `Trabajadores_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `account`.`user` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB AUTO_INCREMENT=6 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`Trabajadores_BEFORE_INSERT` BEFORE INSERT ON `Trabajadores` FOR EACH ROW
+
+begin
+
+IF NEW.password = '' THEN
+
+ SET NEW.password = 'FALLO';
+
+ END IF;
+
+
+
+end */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`Trabajadores_BEFORE_UPDATE` BEFORE UPDATE ON `Trabajadores` FOR EACH ROW
+
+begin
+
+IF NEW.password = '' THEN
+
+ SET NEW.password = 'FALLO';
+
+ END IF;
+
+
+
+end */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `Tramos`
+--
+
+DROP TABLE IF EXISTS `Tramos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Tramos` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `Tramo` time NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `Tramo` (`Tramo`)
+) ENGINE=MyISAM AUTO_INCREMENT=50 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Ubicator`
+--
+
+DROP TABLE IF EXISTS `Ubicator`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Ubicator` (
+ `Id_Estanterias` int(11) NOT NULL,
+ `Date` date NOT NULL,
+ `w` int(11) DEFAULT '0',
+ `d` int(11) DEFAULT '0',
+ `h` int(11) DEFAULT '0',
+ `Id_Cubo` int(11) NOT NULL,
+ `Id_Article` int(11) NOT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `V_edi_item_track`
+--
+
+DROP TABLE IF EXISTS `V_edi_item_track`;
+/*!50001 DROP VIEW IF EXISTS `V_edi_item_track`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `V_edi_item_track` AS SELECT
+ 1 AS `item_id`,
+ 1 AS `s1`,
+ 1 AS `s2`,
+ 1 AS `s3`,
+ 1 AS `s4`,
+ 1 AS `s5`,
+ 1 AS `s6`,
+ 1 AS `kop`,
+ 1 AS `pac`,
+ 1 AS `cat`,
+ 1 AS `ori`,
+ 1 AS `pro`,
+ 1 AS `sub`,
+ 1 AS `package`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `Vehiculos`
+--
+
+DROP TABLE IF EXISTS `Vehiculos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Vehiculos` (
+ `Id_Vehiculo` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `Matricula` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
+ `Modelo` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
+ `Marca` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
+ `empresa_id` smallint(5) unsigned NOT NULL DEFAULT '442',
+ `m3` double DEFAULT NULL,
+ `active` tinyint(4) NOT NULL DEFAULT '1',
+ `warehouseFk` smallint(6) unsigned DEFAULT NULL,
+ `description` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`Id_Vehiculo`),
+ KEY `empresa_id` (`empresa_id`),
+ KEY `provinceFk_idx` (`warehouseFk`),
+ CONSTRAINT `Vehiculos_ibfk_1` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `provinceFk` FOREIGN KEY (`warehouseFk`) REFERENCES `province` (`province_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Vehiculos_consumo`
+--
+
+DROP TABLE IF EXISTS `Vehiculos_consumo`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Vehiculos_consumo` (
+ `Vehiculos_consumo_id` int(11) NOT NULL AUTO_INCREMENT,
+ `Id_Vehiculo` int(10) unsigned NOT NULL,
+ `fecha` date NOT NULL,
+ `km` int(20) unsigned NOT NULL,
+ `litros` double unsigned NOT NULL,
+ `precio` double unsigned NOT NULL,
+ `adblue` decimal(10,2) NOT NULL DEFAULT '0.00',
+ `peajes` double DEFAULT NULL,
+ `descuento` double DEFAULT NULL,
+ `silla` int(11) NOT NULL DEFAULT '0' COMMENT 'indica si han repostado en la gasolinera de la rotonda',
+ `odbc_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ `otros` double DEFAULT NULL,
+ PRIMARY KEY (`Vehiculos_consumo_id`,`Id_Vehiculo`),
+ KEY `fk_Vehiculos_consumo_Vehiculos_idx` (`Id_Vehiculo`),
+ CONSTRAINT `fk_Vehiculos_consumo_Vehiculos` FOREIGN KEY (`Id_Vehiculo`) REFERENCES `Vehiculos` (`Id_Vehiculo`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='En esta tabla apuntan el importe de los tickets de la gasolinera solred, con quien tenemos un contrato y nos facturan mensualmente';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `VerEspionaje`
+--
+
+DROP TABLE IF EXISTS `VerEspionaje`;
+/*!50001 DROP VIEW IF EXISTS `VerEspionaje`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `VerEspionaje` AS SELECT
+ 1 AS `CodigoTrabajador`,
+ 1 AS `Fecha`,
+ 1 AS `HoraEntrada`,
+ 1 AS `HoraSalida`,
+ 1 AS `Id_Equipo`,
+ 1 AS `Id_Trabajador`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `Vistas`
+--
+
+DROP TABLE IF EXISTS `Vistas`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Vistas` (
+ `vista_id` int(11) NOT NULL AUTO_INCREMENT,
+ `vista` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `code` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`vista_id`),
+ UNIQUE KEY `code` (`code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `XDiario`
+--
+
+DROP TABLE IF EXISTS `XDiario`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `XDiario` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `ASIEN` double DEFAULT NULL,
+ `FECHA` datetime DEFAULT NULL,
+ `SUBCTA` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `CONTRA` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `CONCEPTO` varchar(50) CHARACTER SET utf8 DEFAULT NULL,
+ `EURODEBE` decimal(10,2) DEFAULT NULL,
+ `EUROHABER` decimal(10,2) DEFAULT NULL,
+ `BASEEURO` decimal(10,2) DEFAULT NULL,
+ `SERIE` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `FACTURA` varchar(8) COLLATE utf8_unicode_ci DEFAULT '0',
+ `BASEIMPO` decimal(10,2) DEFAULT NULL,
+ `IVA` decimal(10,2) DEFAULT NULL,
+ `RECEQUIV` decimal(10,2) DEFAULT '0.00',
+ `DOCUMENTO` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `DEPARTA` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `CLAVE` int(11) DEFAULT NULL,
+ `ESTADO` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `NCASADO` decimal(10,2) DEFAULT NULL,
+ `TCASADO` decimal(10,2) DEFAULT NULL,
+ `TRANS` decimal(10,2) DEFAULT NULL,
+ `CAMBIO` decimal(10,2) DEFAULT NULL,
+ `DEBEME` decimal(10,2) DEFAULT NULL,
+ `HABERME` decimal(10,2) DEFAULT NULL,
+ `PTAHABER` decimal(10,2) DEFAULT NULL,
+ `AUXILIAR` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `SUCURSAL` varchar(4) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `PTADEBE` decimal(10,2) DEFAULT NULL,
+ `CODDIVISA` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `IMPAUXME` decimal(10,2) DEFAULT NULL,
+ `MONEDAUSO` varchar(1) COLLATE utf8_unicode_ci DEFAULT '2',
+ `NOCONV` tinyint(1) NOT NULL DEFAULT '0',
+ `NUMEROINV` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `TIPOOPE` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `NFACTICK` tinyint(1) NOT NULL DEFAULT '1',
+ `TERIDNIF` tinyint(1) NOT NULL DEFAULT '2',
+ `TERNIF` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'I.F.',
+ `TERNOM` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Nombre Importador',
+ `OPBIENES` tinyint(1) NOT NULL DEFAULT '1',
+ `TIPOFAC` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `TIPOIVA` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `L340` tinyint(2) NOT NULL DEFAULT '0',
+ `enlazado` tinyint(1) NOT NULL DEFAULT '0',
+ `FECHA_EX` date DEFAULT NULL COMMENT 'FEcha de expedicion de la factura',
+ `LRECT349` tinyint(1) NOT NULL DEFAULT '0',
+ `empresa_id` smallint(5) unsigned NOT NULL DEFAULT '442',
+ `LDIFADUAN` tinyint(4) NOT NULL DEFAULT '0',
+ `METAL` tinyint(1) NOT NULL DEFAULT '0',
+ `METALIMP` decimal(10,2) NOT NULL DEFAULT '0.00',
+ `FECHA_OP` date DEFAULT NULL COMMENT 'FEcha de operacion',
+ `FACTURAEX` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'Numero de factura del proveedor',
+ `TIPOCLAVE` int(3) DEFAULT NULL,
+ `TIPOEXENCI` int(3) DEFAULT NULL,
+ `TIPONOSUJE` int(3) DEFAULT NULL,
+ `TIPOFACT` int(3) DEFAULT NULL,
+ `TIPORECTIF` int(3) DEFAULT NULL,
+ `SERIE_RT` varchar(2) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `FACTU_RT` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `BASEIMP_RT` decimal(10,2) DEFAULT NULL,
+ `BASEIMP_RF` decimal(10,2) DEFAULT NULL,
+ `RECTIFICA` int(1) NOT NULL DEFAULT '0',
+ `FECHA_RT` date DEFAULT NULL,
+ `created` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ `updated` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `FECREGCON` date DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `empresa_id` (`empresa_id`),
+ CONSTRAINT `XDiario_ibfk_1` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `XDiario_KK`
+--
+
+DROP TABLE IF EXISTS `XDiario_KK`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `XDiario_KK` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `ASIEN` double DEFAULT NULL,
+ `FECHA` date DEFAULT NULL,
+ `SUBCTA` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `CONTRA` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `CONCEPTO` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `EURODEBE` decimal(10,2) DEFAULT NULL,
+ `EUROHABER` decimal(10,2) DEFAULT NULL,
+ `BASEEURO` decimal(10,2) DEFAULT NULL,
+ `SERIE` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `FACTURA` varchar(8) COLLATE utf8_unicode_ci DEFAULT '0',
+ `BASEIMPO` decimal(10,2) DEFAULT NULL,
+ `IVA` decimal(10,2) DEFAULT NULL,
+ `RECEQUIV` decimal(10,2) DEFAULT '0.00',
+ `DOCUMENTO` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `DEPARTA` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `CLAVE` int(11) DEFAULT NULL,
+ `ESTADO` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `NCASADO` decimal(10,2) DEFAULT NULL,
+ `TCASADO` decimal(10,2) DEFAULT NULL,
+ `TRANS` decimal(10,2) DEFAULT NULL,
+ `CAMBIO` decimal(10,2) DEFAULT NULL,
+ `DEBEME` decimal(10,2) DEFAULT NULL,
+ `HABERME` decimal(10,2) DEFAULT NULL,
+ `PTAHABER` decimal(10,2) DEFAULT NULL,
+ `AUXILIAR` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `SUCURSAL` varchar(4) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `PTADEBE` decimal(10,2) DEFAULT NULL,
+ `CODDIVISA` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `IMPAUXME` decimal(10,2) DEFAULT NULL,
+ `MONEDAUSO` varchar(1) COLLATE utf8_unicode_ci DEFAULT '2',
+ `NOCONV` tinyint(1) NOT NULL DEFAULT '0',
+ `NUMEROINV` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `TIPOOPE` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `NFACTICK` tinyint(1) NOT NULL DEFAULT '1',
+ `TERIDNIF` tinyint(1) NOT NULL DEFAULT '2',
+ `TERNIF` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'I.F.',
+ `TERNOM` varchar(30) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Nombre Importador',
+ `OPBIENES` tinyint(1) NOT NULL DEFAULT '1',
+ `TIPOFAC` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `TIPOIVA` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `L340` tinyint(2) NOT NULL DEFAULT '0',
+ `enlazado` tinyint(1) NOT NULL DEFAULT '0',
+ `FECHA_EX` date DEFAULT NULL COMMENT 'FEcha de expedicion de la factura',
+ `LRECT349` tinyint(1) NOT NULL DEFAULT '0',
+ `empresa_id` smallint(5) unsigned NOT NULL DEFAULT '442',
+ `LDIFADUAN` tinyint(4) NOT NULL DEFAULT '0',
+ `METAL` tinyint(1) NOT NULL DEFAULT '0',
+ `METALIMP` decimal(10,2) NOT NULL DEFAULT '0.00',
+ `FECHA_OP` date DEFAULT NULL COMMENT 'FEcha de operacion',
+ `FACTURAEX` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'Numero de factura del proveedor',
+ `TIPOCLAVE` int(3) DEFAULT NULL,
+ `TIPOEXENCI` int(3) DEFAULT NULL,
+ `TIPONOSUJE` int(3) DEFAULT NULL,
+ `TIPOFACT` int(3) DEFAULT NULL,
+ `TIPORECTIF` int(3) DEFAULT NULL,
+ `SERIE_RT` varchar(2) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `FACTU_RT` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `BASEIMP_RT` decimal(10,2) DEFAULT NULL,
+ `BASEIMP_RF` decimal(10,2) DEFAULT NULL,
+ `RECTIFICA` int(1) NOT NULL DEFAULT '0',
+ `FECHA_RT` date DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `empresa_id` (`empresa_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `__Cartera_Ventas`
+--
+
+DROP TABLE IF EXISTS `__Cartera_Ventas`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `__Cartera_Ventas` (
+ `CodigoTrabajador` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Mes` int(2) DEFAULT NULL,
+ `Año` int(4) DEFAULT NULL,
+ `Motivo` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Importe` double DEFAULT NULL,
+ `Id_Ticket` bigint(20) DEFAULT NULL,
+ `Semana` int(2) DEFAULT NULL,
+ `Cliente` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ KEY `INDEX1` (`Id_Ticket`),
+ KEY `INDEX2` (`Mes`,`Año`,`Id_Ticket`),
+ KEY `INDEX3` (`CodigoTrabajador`,`Mes`,`Año`,`Id_Ticket`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `accion_dits`
+--
+
+DROP TABLE IF EXISTS `accion_dits`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `accion_dits` (
+ `idaccion_dits` int(11) NOT NULL AUTO_INCREMENT,
+ `accion` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`idaccion_dits`),
+ UNIQUE KEY `accion_UNIQUE` (`accion`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `account_conciliacion`
+--
+
+DROP TABLE IF EXISTS `account_conciliacion`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `account_conciliacion` (
+ `idaccount_conciliacion` int(11) NOT NULL AUTO_INCREMENT,
+ `Id_Proveedores_account` mediumint(8) unsigned NOT NULL,
+ `Fechaoperacion` datetime NOT NULL,
+ `FechaValor` datetime NOT NULL,
+ `importe` double NOT NULL,
+ `Concepto` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `DebeHaber` smallint(6) NOT NULL,
+ `id_calculated` varchar(90) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `odbc_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`idaccount_conciliacion`),
+ UNIQUE KEY `idaccount_conciliacion_UNIQUE` (`idaccount_conciliacion`),
+ KEY `fg_accconciliacion_key1_idx` (`Id_Proveedores_account`),
+ KEY `index_id_calculated` (`id_calculated`),
+ CONSTRAINT `fg_key1_accountconc` FOREIGN KEY (`Id_Proveedores_account`) REFERENCES `Proveedores_account` (`Id_Proveedores_account`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`account_conciliacion_BEFORE_INSERT`
+BEFORE INSERT ON `account_conciliacion` FOR EACH ROW
+
+set new.id_calculated = replace(
+ replace(
+ replace(
+ replace(
+ concat(new.Id_Proveedores_account,new.Fechaoperacion,new.importe,new.Concepto,new.DebeHaber)
+ ,' ','')
+ ,":",'')
+ ,'-','')
+ ,'.','') */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Temporary view structure for view `account_customer`
+--
+
+DROP TABLE IF EXISTS `account_customer`;
+/*!50001 DROP VIEW IF EXISTS `account_customer`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `account_customer` AS SELECT
+ 1 AS `description`,
+ 1 AS `iban`,
+ 1 AS `entity_id`,
+ 1 AS `office`,
+ 1 AS `dc`,
+ 1 AS `number`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `account_detail`
+--
+
+DROP TABLE IF EXISTS `account_detail`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `account_detail` (
+ `account_detail_id` int(11) NOT NULL AUTO_INCREMENT,
+ `value` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `account_detail_type_id` int(11) NOT NULL,
+ `Id_Proveedores_account` mediumint(8) unsigned NOT NULL,
+ PRIMARY KEY (`account_detail_id`),
+ KEY `fk_account_detail_account_detail_type1_idx` (`account_detail_type_id`),
+ KEY `fk_account_detail_Proveedores_account1_idx` (`Id_Proveedores_account`),
+ CONSTRAINT `fk_account_detail_account_detail_type1` FOREIGN KEY (`account_detail_type_id`) REFERENCES `account_detail_type` (`account_detail_type_id`) ON UPDATE CASCADE,
+ CONSTRAINT `fk_account_detail_account_id_proveedores_account` FOREIGN KEY (`Id_Proveedores_account`) REFERENCES `Proveedores_account` (`Id_Proveedores_account`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `account_detail_type`
+--
+
+DROP TABLE IF EXISTS `account_detail_type`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `account_detail_type` (
+ `account_detail_type_id` int(11) NOT NULL AUTO_INCREMENT,
+ `description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`account_detail_type_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `accumulatorsReadingDate`
+--
+
+DROP TABLE IF EXISTS `accumulatorsReadingDate`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `accumulatorsReadingDate` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `pagoSdcfk` int(11) NOT NULL,
+ `readingDate` date NOT NULL COMMENT 'dia en que se revisa la cotizacion del dolar',
+ `amount` double DEFAULT NULL COMMENT 'cantidad aumentada tras la lectura del tipo de cambio',
+ PRIMARY KEY (`id`),
+ KEY `pagoSdcFk_idx` (`pagoSdcfk`),
+ CONSTRAINT `pagoSdcFk` FOREIGN KEY (`pagoSdcfk`) REFERENCES `pago_sdc` (`pago_sdc_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `agencia_descuadre`
+--
+
+DROP TABLE IF EXISTS `agencia_descuadre`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `agencia_descuadre` (
+ `agencia_descuadre_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `Id_Ticket` int(11) NOT NULL,
+ `date` date NOT NULL,
+ `price` double(7,2) NOT NULL,
+ `Consignatario` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `Tipo` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`agencia_descuadre_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `agency`
+--
+
+DROP TABLE IF EXISTS `agency`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `agency` (
+ `agency_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
+ `warehouse_id` smallint(5) unsigned DEFAULT NULL COMMENT 'A nulo si se puede enrutar desde todos los almacenes',
+ `por_volumen` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'Si el calculo del porte se hacer por volumen',
+ `Id_Banco` int(11) NOT NULL DEFAULT '8' COMMENT 'para realizar los reembolsos',
+ `warehouse_alias_id` smallint(5) unsigned DEFAULT NULL,
+ `propios` tinyint(1) NOT NULL DEFAULT '0',
+ `zone_label` tinyint(4) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`agency_id`),
+ KEY `warehouse_id` (`warehouse_id`),
+ KEY `Id_Banco` (`Id_Banco`),
+ 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;
+/*!40101 SET character_set_client = @saved_cs_client */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`agency_ai`
+AFTER INSERT ON `vn2008`.`agency`
+FOR EACH ROW
+BEGIN
+ INSERT INTO Agencias(Agencia,agency_id) VALUES(NEW.name,NEW.agency_id);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `agency_hour`
+--
+
+DROP TABLE IF EXISTS `agency_hour`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `agency_hour` (
+ `agency_hour_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `week_day` tinyint(3) unsigned DEFAULT NULL COMMENT 'funcion de mysql Lunes = 0, Domingo = 6',
+ `agency_id` smallint(5) unsigned DEFAULT NULL,
+ `warehouse_id` smallint(5) unsigned DEFAULT NULL,
+ `province_id` smallint(5) unsigned DEFAULT NULL,
+ `subtract_day` tinyint(10) unsigned NOT NULL COMMENT 'dias a restar de la Fecha de entrega',
+ `max_hour` tinyint(3) unsigned NOT NULL COMMENT 'maxima hora hasta la cual se pueden hacer pedidos',
+ PRIMARY KEY (`agency_hour_id`),
+ UNIQUE KEY `week_day` (`week_day`,`agency_id`,`warehouse_id`,`province_id`,`max_hour`),
+ KEY `agency_id` (`agency_id`),
+ KEY `warehouse_id` (`warehouse_id`),
+ KEY `province_id` (`province_id`),
+ CONSTRAINT `agency_hour_ibfk_1` FOREIGN KEY (`agency_id`) REFERENCES `agency` (`agency_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `agency_hour_ibfk_2` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `agency_hour_ibfk_3` FOREIGN KEY (`province_id`) REFERENCES `province` (`province_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`agency_hourBeforeInsert` BEFORE INSERT ON `agency_hour` FOR EACH ROW
+BEGIN
+ DECLARE vAlreadyExists BOOLEAN DEFAULT FALSE;
+ IF NEW.week_day IS NULL AND NEW.province_id IS NULL AND NEW.subtract_day = 0 AND NEW.max_hour = 0 THEN
+ CALL util.throw ('FILL_MORE_FIELDS');
+ END IF;
+
+ SELECT COUNT(*) INTO vAlreadyExists
+ FROM vn2008.agency_hour
+ WHERE NEW.week_day <=> week_day AND NEW.province_id <=> province_id
+ AND NEW.warehouse_id <=> warehouse_id AND NEW.max_hour <=> max_hour
+ AND NEW.agency_id <=> agency_id;
+
+ IF vAlreadyExists > 1 THEN
+ CALL util.throw('ALREADY_EXISTS');
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`agency_hour_AFTER_UPDATE` AFTER UPDATE ON `agency_hour` FOR EACH ROW
+BEGIN
+DECLARE vAlreadyExists BOOLEAN DEFAULT FALSE;
+
+ SELECT COUNT(*) INTO vAlreadyExists
+ FROM vn2008.agency_hour
+ WHERE NEW.week_day <=> week_day AND NEW.province_id <=> province_id
+ AND NEW.warehouse_id <=> warehouse_id AND NEW.max_hour <=> max_hour
+ AND NEW.agency_id <=> agency_id;
+
+ IF vAlreadyExists > 1 THEN
+ CALL util.throw('ALREADY_EXISTS');
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `agency_warehouse`
+--
+
+DROP TABLE IF EXISTS `agency_warehouse`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `agency_warehouse` (
+ `agency_id` smallint(5) unsigned NOT NULL,
+ `warehouse_id` smallint(5) unsigned NOT NULL DEFAULT '1',
+ `Vista` tinyint(3) unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`agency_id`,`warehouse_id`),
+ KEY `warehouse_id` (`warehouse_id`),
+ CONSTRAINT `agency_warehouse_ibfk_1` FOREIGN KEY (`agency_id`) REFERENCES `agency` (`agency_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `agency_warehouse_ibfk_2` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Indica la vista para cada agencia';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `agency_weekday_bonus`
+--
+
+DROP TABLE IF EXISTS `agency_weekday_bonus`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `agency_weekday_bonus` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `warehouse_id` smallint(6) unsigned DEFAULT NULL,
+ `agency_id` smallint(5) unsigned DEFAULT NULL,
+ `weekDay` tinyint(3) unsigned NOT NULL,
+ `zona` tinyint(4) DEFAULT NULL,
+ `bonus` decimal(10,2) NOT NULL DEFAULT '0.00',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `airline`
+--
+
+DROP TABLE IF EXISTS `airline`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `airline` (
+ `airline_id` smallint(2) unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`airline_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `airport`
+--
+
+DROP TABLE IF EXISTS `airport`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `airport` (
+ `airport_id` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
+ `name` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`airport_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `albaran`
+--
+
+DROP TABLE IF EXISTS `albaran`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `albaran` (
+ `albaran_id` int(11) NOT NULL AUTO_INCREMENT,
+ `ref` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `note` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `fecha` date NOT NULL,
+ `fecha_entrega` date DEFAULT NULL,
+ `valor` double DEFAULT NULL,
+ `Id_Proveedor` int(11) NOT NULL,
+ `empresa_id` smallint(5) unsigned NOT NULL,
+ `warehouse_id` smallint(6) unsigned NOT NULL,
+ `albaran_state_id` int(11) NOT NULL,
+ `Id_Trabajador` int(11) NOT NULL COMMENT 'Id_Trabajador hace referencia a la persona que ha introducido el albarán',
+ `Id_Responsable` int(11) NOT NULL,
+ `department_id` int(11) NOT NULL,
+ `recibida_id` mediumint(8) unsigned DEFAULT NULL,
+ PRIMARY KEY (`albaran_id`),
+ KEY `fk_albaran_Proveedores_idx` (`Id_Proveedor`),
+ KEY `fk_albaran_empresa1_idx` (`empresa_id`),
+ KEY `fk_albaran_warehouse1_idx` (`warehouse_id`),
+ KEY `fk_albaran_albaran_state1_idx` (`albaran_state_id`),
+ KEY `fk_albaran_Trabajadores1_idx` (`Id_Trabajador`),
+ KEY `fk_albaran_Trabajadores2_idx` (`Id_Responsable`),
+ KEY `fk_albaran_department1_idx` (`department_id`),
+ KEY `fk_albaran_recibida_idx` (`recibida_id`),
+ CONSTRAINT `fk_albaran_Proveedores` FOREIGN KEY (`Id_Proveedor`) REFERENCES `Proveedores` (`Id_Proveedor`) ON UPDATE CASCADE,
+ CONSTRAINT `fk_albaran_Trabajadores1` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE,
+ CONSTRAINT `fk_albaran_Trabajadores2` FOREIGN KEY (`Id_Responsable`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE,
+ CONSTRAINT `fk_albaran_albaran_state1` FOREIGN KEY (`albaran_state_id`) REFERENCES `albaran_state` (`albaran_state_id`) ON UPDATE CASCADE,
+ CONSTRAINT `fk_albaran_department1` FOREIGN KEY (`department_id`) REFERENCES `department` (`department_id`) ON UPDATE CASCADE,
+ CONSTRAINT `fk_albaran_empresa1` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `fk_albaran_recibida` FOREIGN KEY (`recibida_id`) REFERENCES `recibida` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
+ CONSTRAINT `fk_albaran_warehouse1` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `albaran_gestdoc`
+--
+
+DROP TABLE IF EXISTS `albaran_gestdoc`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `albaran_gestdoc` (
+ `gestdoc_id` int(11) NOT NULL,
+ `albaran_id` int(11) NOT NULL,
+ PRIMARY KEY (`gestdoc_id`,`albaran_id`),
+ KEY `fk_albaran_gestdoc_gestdoc1_idx` (`gestdoc_id`),
+ KEY `fk_albaran_gestdoc_albaran1_idx` (`albaran_id`),
+ CONSTRAINT `fk_albaran_gestdoc_albaran1` FOREIGN KEY (`albaran_id`) REFERENCES `albaran` (`albaran_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `fk_albaran_gestdoc_gestdoc1` FOREIGN KEY (`gestdoc_id`) REFERENCES `gestdoc` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `albaran_state`
+--
+
+DROP TABLE IF EXISTS `albaran_state`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `albaran_state` (
+ `albaran_state_id` int(11) NOT NULL AUTO_INCREMENT,
+ `state` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`albaran_state_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `awb`
+--
+
+DROP TABLE IF EXISTS `awb`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `awb` (
+ `id` smallint(11) unsigned NOT NULL AUTO_INCREMENT,
+ `codigo` varchar(18) COLLATE utf8_unicode_ci NOT NULL,
+ `bultos` float unsigned NOT NULL,
+ `peso` float unsigned DEFAULT NULL,
+ `MYSQL_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `transitario_id` int(11) NOT NULL DEFAULT '582',
+ `iva_id` tinyint(3) unsigned DEFAULT '62',
+ `duakk` varchar(18) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `gestdoc_id` int(11) DEFAULT NULL,
+ `importe` double NOT NULL DEFAULT '0',
+ `carguera_id` int(11) DEFAULT NULL,
+ `m3` double unsigned DEFAULT NULL,
+ `stems` int(10) unsigned DEFAULT NULL,
+ `flight_id` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `volume_weight` float unsigned DEFAULT NULL,
+ `hb` decimal(10,1) unsigned DEFAULT NULL,
+ `rate` decimal(10,2) unsigned DEFAULT NULL,
+ `booked` datetime DEFAULT NULL,
+ `issued` datetime DEFAULT NULL,
+ `operated` datetime DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `codigo_UNIQUE` (`codigo`),
+ KEY `proveedor_id` (`transitario_id`),
+ KEY `iva_id` (`iva_id`),
+ KEY `carguera_id` (`carguera_id`),
+ KEY `flight_id` (`flight_id`),
+ CONSTRAINT `awb_ibfk_1` FOREIGN KEY (`iva_id`) REFERENCES `iva_codigo` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `awb_ai` AFTER INSERT ON `awb` FOR EACH ROW
+BEGIN
+DECLARE lastrecibida_id INT;
+INSERT INTO recibida(proveedor_id,fecha,empresa_id)
+ VALUES(NEW.transitario_id,CURDATE(),442);
+
+SELECT last_insert_id() into lastrecibida_id;
+
+INSERT INTO awb_recibida(awb_id,recibida_id)
+ VALUES(NEW.id,lastrecibida_id);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`awb_au` AFTER UPDATE ON `awb` FOR EACH ROW
+begin
+
+IF NEW.importe <> OLD.importe THEN
+
+ CALL buy_tarifas_awb(NEW.codigo);
+
+END IF;
+
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `awb_component`
+--
+
+DROP TABLE IF EXISTS `awb_component`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `awb_component` (
+ `awb_id` smallint(11) unsigned DEFAULT NULL,
+ `Id_Proveedor` int(11) NOT NULL,
+ `Fecha` date NOT NULL,
+ `awb_component_type_id` mediumint(3) unsigned DEFAULT NULL,
+ `awb_role_id` tinyint(1) unsigned NOT NULL DEFAULT '1',
+ `awb_unit_id` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `value` decimal(10,2) DEFAULT NULL,
+ `Id_Moneda` tinyint(3) unsigned NOT NULL DEFAULT '2',
+ `recibida_id` mediumint(8) unsigned DEFAULT NULL,
+ UNIQUE KEY `unique_idx` (`awb_id`,`Id_Proveedor`,`awb_component_type_id`,`Fecha`),
+ KEY `Id_Moneda` (`Id_Moneda`),
+ KEY `awb_component_fk` (`awb_component_type_id`),
+ KEY `awb_role_fk` (`awb_role_id`),
+ KEY `awb_unit_fk` (`awb_unit_id`),
+ CONSTRAINT `Id_Monedafk` FOREIGN KEY (`Id_Moneda`) REFERENCES `Monedas` (`Id_Moneda`) ON DELETE CASCADE,
+ CONSTRAINT `awb_component_` FOREIGN KEY (`awb_component_type_id`) REFERENCES `awb_component_type` (`awb_component_type_id`) ON UPDATE CASCADE,
+ CONSTRAINT `awb_role_fk` FOREIGN KEY (`awb_role_id`) REFERENCES `awb_role` (`awb_role_id`) ON UPDATE CASCADE,
+ CONSTRAINT `awb_unit_fk` FOREIGN KEY (`awb_unit_id`) REFERENCES `awb_unit` (`awb_unit_id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `awb_component_template`
+--
+
+DROP TABLE IF EXISTS `awb_component_template`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `awb_component_template` (
+ `awb_component_template_id` int(11) NOT NULL AUTO_INCREMENT,
+ `carguera_id` int(11) DEFAULT NULL,
+ `airport_in` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `airport_out` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `airline_id` smallint(2) unsigned DEFAULT NULL,
+ `awb_component_type_id` mediumint(3) unsigned NOT NULL,
+ `Fecha` date NOT NULL,
+ `awb_role_id` tinyint(1) unsigned NOT NULL,
+ `awb_unit_id` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `value` decimal(10,3) DEFAULT NULL,
+ `max_value` decimal(10,2) unsigned DEFAULT NULL,
+ `min_value` decimal(10,2) unsigned DEFAULT NULL,
+ `Id_Moneda` tinyint(3) unsigned NOT NULL DEFAULT '2',
+ PRIMARY KEY (`awb_component_template_id`),
+ UNIQUE KEY `carguera_id_UNIQUE` (`carguera_id`,`airport_in`,`airport_out`,`airline_id`,`awb_component_type_id`,`Fecha`),
+ KEY `Id_Moneda` (`Id_Moneda`),
+ KEY `airline_idx` (`airline_id`),
+ KEY `role_idx` (`awb_role_id`),
+ KEY `awb_unit_fk1` (`awb_unit_id`),
+ CONSTRAINT `Id_Moneda` FOREIGN KEY (`Id_Moneda`) REFERENCES `Monedas` (`Id_Moneda`) ON UPDATE CASCADE,
+ CONSTRAINT `awb_unit_fk1` FOREIGN KEY (`awb_unit_id`) REFERENCES `awb_unit` (`awb_unit_id`) ON UPDATE CASCADE,
+ CONSTRAINT `role_fk` FOREIGN KEY (`awb_role_id`) REFERENCES `awb_role` (`awb_role_id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `awb_component_type`
+--
+
+DROP TABLE IF EXISTS `awb_component_type`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `awb_component_type` (
+ `awb_component_type_id` mediumint(3) unsigned NOT NULL AUTO_INCREMENT,
+ `description` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`awb_component_type_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT=' ';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `awb_gestdoc`
+--
+
+DROP TABLE IF EXISTS `awb_gestdoc`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `awb_gestdoc` (
+ `awb_gestdoc_id` int(11) NOT NULL AUTO_INCREMENT,
+ `awb_id` smallint(11) unsigned NOT NULL,
+ `gestdoc_id` int(11) NOT NULL,
+ PRIMARY KEY (`awb_gestdoc_id`),
+ KEY `awb_gestdoc_awb_fk` (`awb_id`),
+ KEY `awb_gestdoc_gestdoc_fk` (`gestdoc_id`),
+ CONSTRAINT `awb_gestdoc_awb_fk` FOREIGN KEY (`awb_id`) REFERENCES `awb` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `awb_gestdoc_gestdoc_fk` FOREIGN KEY (`gestdoc_id`) REFERENCES `gestdoc` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `awb_recibida`
+--
+
+DROP TABLE IF EXISTS `awb_recibida`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `awb_recibida` (
+ `awb_id` smallint(5) unsigned NOT NULL,
+ `recibida_id` mediumint(8) unsigned NOT NULL,
+ `dua` varchar(18) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`recibida_id`),
+ KEY `awb_id` (`awb_id`),
+ CONSTRAINT `awb_recibida_ibfk_1` FOREIGN KEY (`awb_id`) REFERENCES `awb` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `awb_recibida_ibfk_2` FOREIGN KEY (`recibida_id`) REFERENCES `recibida` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `awb_recibida_ad` AFTER DELETE ON `awb_recibida` FOR EACH ROW
+IF (SELECT COUNT(*) FROM recibida_iva where recibida_id = OLD.recibida_id) = 0
+ AND
+ (SELECT COUNT(*) FROM recibida_vencimiento where recibida_id = OLD.recibida_id) = 0
+ AND
+ (SELECT contabilizada FROM recibida WHERE id = OLD.recibida_id) = 0
+THEN
+ DELETE FROM recibida WHERE id = OLD.recibida_id;
+END IF */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `awb_role`
+--
+
+DROP TABLE IF EXISTS `awb_role`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `awb_role` (
+ `awb_role_id` tinyint(1) unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`awb_role_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT=' ';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `awb_unit`
+--
+
+DROP TABLE IF EXISTS `awb_unit`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `awb_unit` (
+ `awb_unit_id` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+ `operation` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`awb_unit_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='tipos de unidades';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `awb_volume`
+--
+
+DROP TABLE IF EXISTS `awb_volume`;
+/*!50001 DROP VIEW IF EXISTS `awb_volume`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `awb_volume` AS SELECT
+ 1 AS `awb_id`,
+ 1 AS `volume`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `balance_nest_tree`
+--
+
+DROP TABLE IF EXISTS `balance_nest_tree`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `balance_nest_tree` (
+ `lft` int(11) DEFAULT NULL,
+ `rgt` int(11) DEFAULT NULL,
+ `name` text COLLATE utf8_unicode_ci,
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `Id_Gasto` text COLLATE utf8_unicode_ci,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `barcodes`
+--
+
+DROP TABLE IF EXISTS `barcodes`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `barcodes` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `Id_Article` int(11) NOT NULL,
+ `code` varchar(22) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `code` (`code`),
+ UNIQUE KEY `Id_Article_2` (`Id_Article`,`code`),
+ KEY `Id_Article` (`Id_Article`),
+ CONSTRAINT `barcodes_ibfk_1` FOREIGN KEY (`Id_Article`) REFERENCES `Articles` (`Id_Article`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `bionic_updating_options`
+--
+
+DROP TABLE IF EXISTS `bionic_updating_options`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `bionic_updating_options` (
+ `buo_id` int(11) NOT NULL AUTO_INCREMENT,
+ `description` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`buo_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='En esta tabla pondremos las distintas opciones que se ofrecen al comecial o al cliente al cambiar alguno de los parametros básicos de un ticket';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `botanic_export`
+--
+
+DROP TABLE IF EXISTS `botanic_export`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `botanic_export` (
+ `botanic_export_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
+ `edi_genus_id` mediumint(8) unsigned NOT NULL,
+ `edi_specie_id` mediumint(8) unsigned DEFAULT NULL,
+ `Id_Paises` mediumint(8) unsigned DEFAULT NULL,
+ `restriction` enum('Sin restriccion','Importacion Prohibida','Se Requiere Certificado','pasaporte individual','declaracion origen') CHARACTER SET utf8 NOT NULL,
+ `description` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`botanic_export_id`),
+ KEY `Id_Paises` (`Id_Paises`),
+ CONSTRAINT `botanic_export_ibfk_1` FOREIGN KEY (`Id_Paises`) REFERENCES `Paises` (`Id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Especifica los generos y especies prohibidos en paises';
+/*!40101 SET character_set_client = @saved_cs_client */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`botanic_exportBeforeInsert` BEFORE INSERT ON `botanic_export` FOR EACH ROW
+BEGIN
+ IF (SELECT botanic_export_is_updatable (NEW.edi_genus_id, NEW.edi_specie_id, NEW.id_Paises, NEW.restriction) ) > 0 THEN
+ CALL util.throw ('Datos duplicados');
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `businessReasonEnd`
+--
+
+DROP TABLE IF EXISTS `businessReasonEnd`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `businessReasonEnd` (
+ `id` tinyint(3) NOT NULL AUTO_INCREMENT,
+ `reason` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `business_labour_payrroll`
+--
+
+DROP TABLE IF EXISTS `business_labour_payrroll`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `business_labour_payrroll` (
+ `business_id` int(11) NOT NULL,
+ `cod_tarifa` int(11) NOT NULL,
+ `cod_categoria` int(11) NOT NULL,
+ `cod_contrato` int(11) NOT NULL,
+ `importepactado` double NOT NULL DEFAULT '0',
+ PRIMARY KEY (`business_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `buy_edi`
+--
+
+DROP TABLE IF EXISTS `buy_edi`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `buy_edi` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `barcode` char(15) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `entry_year` smallint(5) unsigned NOT NULL,
+ `delivery_number` bigint(20) unsigned DEFAULT NULL,
+ `fec` date DEFAULT NULL,
+ `hor` time DEFAULT NULL,
+ `now` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ `ptj` mediumint(8) unsigned DEFAULT NULL,
+ `ref` int(11) NOT NULL,
+ `item` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `pac` int(11) DEFAULT '0',
+ `qty` int(10) unsigned NOT NULL,
+ `ori` varchar(3) COLLATE utf8_unicode_ci DEFAULT 'NL',
+ `cat` varchar(2) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `agj` int(11) DEFAULT NULL,
+ `kop` int(11) DEFAULT NULL,
+ `ptd` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `sub` mediumint(8) unsigned DEFAULT NULL,
+ `pro` mediumint(8) unsigned NOT NULL,
+ `pri` double NOT NULL,
+ `package` int(10) unsigned DEFAULT NULL,
+ `auction` smallint(5) unsigned DEFAULT NULL,
+ `klo` smallint(5) unsigned DEFAULT NULL,
+ `k01` smallint(5) unsigned DEFAULT NULL,
+ `k02` smallint(5) unsigned DEFAULT NULL,
+ `k03` tinyint(3) unsigned DEFAULT NULL,
+ `k04` tinyint(3) unsigned DEFAULT NULL,
+ `s1` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `s2` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `s3` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `s4` varchar(4) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `s5` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `s6` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `ok` tinyint(4) NOT NULL DEFAULT '0',
+ `trolley_id` int(11) DEFAULT NULL,
+ `scanned` tinyint(1) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`) USING BTREE,
+ UNIQUE KEY `barcode_year` (`barcode`,`entry_year`),
+ UNIQUE KEY `delivery_number` (`delivery_number`),
+ KEY `ref` (`ref`),
+ KEY `ptj` (`ptj`),
+ KEY `pro` (`pro`),
+ KEY `kop` (`kop`),
+ KEY `barcode` (`barcode`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `buy_edi_k012`
+--
+
+DROP TABLE IF EXISTS `buy_edi_k012`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `buy_edi_k012` (
+ `buy_edi_k012_id` smallint(6) unsigned NOT NULL,
+ `description` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`buy_edi_k012_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Características negativas de los articulos de subasta';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `buy_edi_k03`
+--
+
+DROP TABLE IF EXISTS `buy_edi_k03`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `buy_edi_k03` (
+ `buy_edi_k03_id` tinyint(3) unsigned NOT NULL,
+ `description` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`buy_edi_k03_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Características fitosanitarias de los articulos de subasta';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `buy_edi_k04`
+--
+
+DROP TABLE IF EXISTS `buy_edi_k04`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `buy_edi_k04` (
+ `buy_edi_k04_id` tinyint(3) unsigned NOT NULL,
+ `description` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`buy_edi_k04_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Características calidad de los articulos de subasta';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `call_information`
+--
+
+DROP TABLE IF EXISTS `call_information`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `call_information` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `Descripcio` text COLLATE utf8_unicode_ci NOT NULL,
+ `Conclusio` tinyint(3) unsigned NOT NULL,
+ `Id_Cliente` int(11) NOT NULL,
+ `fecha` date NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `call_option`
+--
+
+DROP TABLE IF EXISTS `call_option`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `call_option` (
+ `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
+ `descripcion` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `callings`
+--
+
+DROP TABLE IF EXISTS `callings`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `callings` (
+ `id` int(11) NOT NULL,
+ `motivo` varchar(105) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `tel1` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `tel2` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `situacion` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `callingtasksKK`
+--
+
+DROP TABLE IF EXISTS `callingtasksKK`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `callingtasksKK` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `instruccion` varchar(99) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `tel1` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `tel2` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `situacion` varchar(99) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `closed` tinyint(1) DEFAULT '0',
+ `Id_Trabajador` tinyint(4) DEFAULT NULL,
+ `Id_Prioridad` tinyint(4) DEFAULT '2',
+ `selected` tinyint(4) DEFAULT '0',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `cdr`
+--
+
+DROP TABLE IF EXISTS `cdr`;
+/*!50001 DROP VIEW IF EXISTS `cdr`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `cdr` AS SELECT
+ 1 AS `calldate`,
+ 1 AS `clid`,
+ 1 AS `src`,
+ 1 AS `dst`,
+ 1 AS `dcontext`,
+ 1 AS `channel`,
+ 1 AS `dstchannel`,
+ 1 AS `lastapp`,
+ 1 AS `lastdata`,
+ 1 AS `duration`,
+ 1 AS `billsec`,
+ 1 AS `disposition`,
+ 1 AS `amaflags`,
+ 1 AS `accountcode`,
+ 1 AS `uniqueid`,
+ 1 AS `userfield`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `chanel`
+--
+
+DROP TABLE IF EXISTS `chanel`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `chanel` (
+ `chanel_id` smallint(6) NOT NULL AUTO_INCREMENT,
+ `name` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`chanel_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Canal por el que nos ha conocido un cliente y se ha dado de';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `chat`
+--
+
+DROP TABLE IF EXISTS `chat`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `chat` (
+ `chat_id` int(11) NOT NULL AUTO_INCREMENT,
+ `Id_Trabajador` int(11) NOT NULL,
+ `msg` varchar(254) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`chat_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Para chatear los compradores, en el frmRESERVE de la COMPARATIVA';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `city`
+--
+
+DROP TABLE IF EXISTS `city`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `city` (
+ `city_id` int(11) NOT NULL AUTO_INCREMENT,
+ `name` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `province_id` smallint(6) unsigned DEFAULT NULL,
+ `nst_geo_id` int(11) DEFAULT NULL,
+ `nst_name` varchar(50) CHARACTER SET utf8 DEFAULT NULL,
+ PRIMARY KEY (`city_id`),
+ UNIQUE KEY `province_city_pk` (`province_id`,`name`),
+ KEY `NST_CITY_FK_idx` (`nst_geo_id`),
+ CONSTRAINT `nst_geo_city` FOREIGN KEY (`nst_geo_id`) REFERENCES `nst`.`geo` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
+ CONSTRAINT `province_city_fk` FOREIGN KEY (`province_id`) REFERENCES `province` (`province_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB AUTO_INCREMENT=2 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`city_BEFORE_INSERT` BEFORE INSERT ON `city` FOR EACH ROW
+BEGIN
+
+SET new.nst_name = new.`name`;
+
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`city_AFTER_DELETE` AFTER DELETE ON `city` FOR EACH ROW
+BEGIN
+
+CALL nst.del(OLD.nst_geo_id);
+
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `cl_act`
+--
+
+DROP TABLE IF EXISTS `cl_act`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cl_act` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `Id_Movimiento` int(11) DEFAULT NULL,
+ `cl_main_id` int(10) unsigned NOT NULL,
+ `Id_Trabajador` int(11) NOT NULL DEFAULT '20',
+ `cl_sol_id` tinyint(4) DEFAULT NULL,
+ `greuge` tinyint(4) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `cl_main_id` (`cl_main_id`),
+ KEY `Id_Trabajador` (`Id_Trabajador`),
+ KEY `Id_Movimiento` (`Id_Movimiento`),
+ KEY `cl_sol_id` (`cl_sol_id`),
+ CONSTRAINT `cl_act_ibfk_1` FOREIGN KEY (`Id_Movimiento`) REFERENCES `Movimientos` (`Id_Movimiento`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `cl_act_ibfk_3` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE,
+ CONSTRAINT `cl_act_ibfk_4` FOREIGN KEY (`cl_main_id`) REFERENCES `cl_main` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Acciones en respuesta a las reclamaciones';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cl_cau`
+--
+
+DROP TABLE IF EXISTS `cl_cau`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cl_cau` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `cl_main_id` int(10) unsigned NOT NULL,
+ `cl_res_id` int(10) unsigned NOT NULL DEFAULT '1',
+ `Id_Trabajador` int(11) NOT NULL DEFAULT '20',
+ `cl_mot_id` int(10) unsigned NOT NULL DEFAULT '1',
+ `cl_con_id` int(10) unsigned NOT NULL DEFAULT '1',
+ `cl_dev` tinyint(3) unsigned NOT NULL DEFAULT '1',
+ `cl_sol` tinyint(3) unsigned NOT NULL DEFAULT '2',
+ PRIMARY KEY (`id`),
+ KEY `cl_main_id` (`cl_main_id`),
+ KEY `cl_res_id` (`cl_res_id`),
+ KEY `Id_Trabajador` (`Id_Trabajador`),
+ KEY `cl_mot_id` (`cl_mot_id`),
+ KEY `cl_con_id` (`cl_con_id`),
+ KEY `cl_dev` (`cl_dev`),
+ KEY `cl_sol` (`cl_sol`),
+ CONSTRAINT `cl_cau_ibfk_10` FOREIGN KEY (`cl_main_id`) REFERENCES `cl_main` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `cl_cau_ibfk_11` FOREIGN KEY (`cl_dev`) REFERENCES `cl_dev` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `cl_cau_ibfk_12` FOREIGN KEY (`cl_sol`) REFERENCES `cl_sol` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `cl_cau_ibfk_6` FOREIGN KEY (`cl_res_id`) REFERENCES `cl_res` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `cl_cau_ibfk_7` FOREIGN KEY (`cl_mot_id`) REFERENCES `cl_mot` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `cl_cau_ibfk_8` FOREIGN KEY (`cl_con_id`) REFERENCES `cl_con` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `cl_cau_ibfk_9` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Causas de las reclamaciones';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cl_con`
+--
+
+DROP TABLE IF EXISTS `cl_con`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cl_con` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `consecuencia` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Consecuencias de los motivos';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cl_dep`
+--
+
+DROP TABLE IF EXISTS `cl_dep`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cl_dep` (
+ `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
+ `departamento` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Departamentos para las quejas';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cl_det`
+--
+
+DROP TABLE IF EXISTS `cl_det`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cl_det` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `cl_main_id` int(10) unsigned NOT NULL,
+ `Id_Movimiento` int(11) DEFAULT NULL,
+ `cl_que_id` int(10) unsigned NOT NULL DEFAULT '1',
+ `cl_pet_id` int(1) unsigned NOT NULL DEFAULT '1',
+ `numero` double DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `Id_Movimiento` (`Id_Movimiento`),
+ KEY `cl_pet_id` (`cl_pet_id`),
+ KEY `cl_que_id` (`cl_que_id`),
+ KEY `cl_main_id` (`cl_main_id`),
+ CONSTRAINT `cl_det_ibfk_5` FOREIGN KEY (`cl_que_id`) REFERENCES `cl_que` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `cl_det_ibfk_6` FOREIGN KEY (`cl_pet_id`) REFERENCES `cl_pet` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `cl_det_ibfk_7` FOREIGN KEY (`Id_Movimiento`) REFERENCES `Movimientos` (`Id_Movimiento`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `cl_det_ibfk_8` FOREIGN KEY (`cl_main_id`) REFERENCES `cl_main` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Detalle de las reclamaciones';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cl_dev`
+--
+
+DROP TABLE IF EXISTS `cl_dev`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cl_dev` (
+ `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
+ `devolucion` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Método por el cual el cliente nos devuelve la mercancía';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cl_est`
+--
+
+DROP TABLE IF EXISTS `cl_est`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cl_est` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `estado` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Estados posibles de las reclamaciones';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cl_main`
+--
+
+DROP TABLE IF EXISTS `cl_main`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cl_main` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `Fecha` datetime NOT NULL,
+ `cl_dep_id` tinyint(3) unsigned DEFAULT NULL,
+ `cl_est_id` int(10) unsigned NOT NULL DEFAULT '1',
+ `notas` text COLLATE utf8_unicode_ci,
+ `Id_Cliente` int(11) NOT NULL,
+ `Id_Trabajador` int(11) NOT NULL,
+ `sensib` int(1) unsigned NOT NULL DEFAULT '3',
+ `mana` tinyint(1) NOT NULL DEFAULT '0',
+ `odbc_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`id`),
+ KEY `cl_dep_id` (`cl_dep_id`),
+ KEY `cl_est_id` (`cl_est_id`),
+ KEY `Id_Cliente` (`Id_Cliente`),
+ KEY `Id_Trabajador` (`Id_Trabajador`),
+ CONSTRAINT `cl_main_ibfk_3` FOREIGN KEY (`cl_est_id`) REFERENCES `cl_est` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `cl_main_ibfk_4` FOREIGN KEY (`cl_dep_id`) REFERENCES `cl_dep` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `cl_main_ibfk_5` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Reclamaciones, tabla principal';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cl_mot`
+--
+
+DROP TABLE IF EXISTS `cl_mot`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cl_mot` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `motivo` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Motivos de las fallos';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cl_pet`
+--
+
+DROP TABLE IF EXISTS `cl_pet`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cl_pet` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `peticion` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Peticiones de los cliente en relacion a las quejas';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cl_que`
+--
+
+DROP TABLE IF EXISTS `cl_que`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cl_que` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `queja` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Queja por linea de las reclamaciones';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cl_res`
+--
+
+DROP TABLE IF EXISTS `cl_res`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cl_res` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `responsable` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `sensibility` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'if=1 >sensib >culpa',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Responsables de las causas';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cl_sol`
+--
+
+DROP TABLE IF EXISTS `cl_sol`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cl_sol` (
+ `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
+ `solucion` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Solucion ofrecida a la reclamación';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `clientMana`
+--
+
+DROP TABLE IF EXISTS `clientMana`;
+/*!50001 DROP VIEW IF EXISTS `clientMana`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `clientMana` AS SELECT
+ 1 AS `Id_Cliente`,
+ 1 AS `ManaUnitario`,
+ 1 AS `ManaTotal`,
+ 1 AS `Id_Ticket`,
+ 1 AS `Id_Article`,
+ 1 AS `Concepte`,
+ 1 AS `Cantidad`,
+ 1 AS `Preu`,
+ 1 AS `Fecha`,
+ 1 AS `Id_Movimiento`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `client_observation`
+--
+
+DROP TABLE IF EXISTS `client_observation`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `client_observation` (
+ `client_observation_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `Id_Cliente` int(11) NOT NULL,
+ `Id_Trabajador` int(11) NOT NULL,
+ `text` text COLLATE utf8_unicode_ci NOT NULL,
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`client_observation_id`),
+ KEY `Id_Trabajador` (`Id_Trabajador`),
+ 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';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `clientes_gestdoc`
+--
+
+DROP TABLE IF EXISTS `clientes_gestdoc`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `clientes_gestdoc` (
+ `Id_Cliente` int(11) NOT NULL,
+ `gest_doc_id` int(11) NOT NULL,
+ PRIMARY KEY (`Id_Cliente`,`gest_doc_id`),
+ KEY `gest_doc_id` (`gest_doc_id`),
+ CONSTRAINT `clientes_gestdoc_ibfk_2` FOREIGN KEY (`gest_doc_id`) REFERENCES `gestdoc` (`id`) ON DELETE NO ACTION ON UPDATE CASCADE,
+ CONSTRAINT `clientes_gestdoc_ibfk_3` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `clientes_regalos_enc`
+--
+
+DROP TABLE IF EXISTS `clientes_regalos_enc`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `clientes_regalos_enc` (
+ `Id_Cliente` int(11) NOT NULL,
+ `odbc_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ `Id_Regalo` int(11) NOT NULL,
+ PRIMARY KEY (`Id_Cliente`,`Id_Regalo`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `clientes_regalos_lista_enc`
+--
+
+DROP TABLE IF EXISTS `clientes_regalos_lista_enc`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `clientes_regalos_lista_enc` (
+ `Id_Regalo` int(11) NOT NULL AUTO_INCREMENT,
+ `Descripcion` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `Activo` bit(1) NOT NULL DEFAULT b'0',
+ `foto` blob,
+ `datstart` date DEFAULT NULL,
+ `datend` date DEFAULT NULL,
+ `warehouse_id` smallint(6) unsigned DEFAULT '1',
+ `province_id` smallint(5) unsigned DEFAULT NULL,
+ PRIMARY KEY (`Id_Regalo`)
+) ENGINE=MyISAM AUTO_INCREMENT=27 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `clientes_tipo`
+--
+
+DROP TABLE IF EXISTS `clientes_tipo`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `clientes_tipo` (
+ `clientes_tipo_id` int(11) NOT NULL AUTO_INCREMENT,
+ `code` varchar(20) CHARACTER SET utf8 NOT NULL,
+ `tipo` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`clientes_tipo_id`),
+ UNIQUE KEY `code_UNIQUE` (`code`)
+) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Establece categorias para poder agrupar las ventas';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `commission`
+--
+
+DROP TABLE IF EXISTS `commission`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `commission` (
+ `commisision_id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
+ `percentage` tinyint(3) unsigned NOT NULL,
+ `value` float unsigned NOT NULL,
+ PRIMARY KEY (`commisision_id`)
+) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `config`
+--
+
+DROP TABLE IF EXISTS `config`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `config` (
+ `id` int(11) NOT NULL,
+ `generic_item` int(11) NOT NULL COMMENT 'Id del artículo genérico',
+ `edi_entry` int(11) NOT NULL COMMENT 'Entrada usada para los EKTs',
+ `lastMana` int(11) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `config_host`
+--
+
+DROP TABLE IF EXISTS `config_host`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `config_host` (
+ `config_host_id` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
+ `warehouse` smallint(6) unsigned NOT NULL DEFAULT '1',
+ `empresa_id` smallint(6) unsigned NOT NULL DEFAULT '442',
+ `caja` int(11) DEFAULT '13',
+ `Id_Impresora` tinyint(3) unsigned DEFAULT '27',
+ `Permanente` tinyint(1) unsigned DEFAULT '1',
+ `route_days_before` smallint(6) DEFAULT '2',
+ `route_days_after` smallint(6) DEFAULT '1',
+ PRIMARY KEY (`config_host_id`),
+ KEY `warehouse` (`warehouse`),
+ KEY `empresa_id` (`empresa_id`),
+ KEY `caja` (`caja`),
+ KEY `Id_Impresora` (`Id_Impresora`),
+ CONSTRAINT `config_host_ibfk_1` FOREIGN KEY (`caja`) REFERENCES `Bancos` (`Id_Banco`) ON DELETE NO ACTION ON UPDATE CASCADE,
+ CONSTRAINT `config_host_ibfk_2` FOREIGN KEY (`warehouse`) REFERENCES `warehouse` (`id`) ON DELETE NO ACTION ON UPDATE CASCADE,
+ CONSTRAINT `config_host_ibfk_3` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON DELETE NO ACTION ON UPDATE CASCADE,
+ CONSTRAINT `config_host_ibfk_4` FOREIGN KEY (`Id_Impresora`) REFERENCES `Impresoras` (`Id_Impresora`) ON DELETE NO ACTION ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Sustituye al antiguo TPV_Settings';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `config_host_forms`
+--
+
+DROP TABLE IF EXISTS `config_host_forms`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `config_host_forms` (
+ `config_host_id` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
+ `formname` varchar(56) COLLATE utf8_unicode_ci NOT NULL,
+ `x` int(8) NOT NULL,
+ `y` int(8) NOT NULL,
+ `h` int(8) NOT NULL,
+ `l` int(8) NOT NULL,
+ `odbc_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`config_host_id`,`formname`),
+ CONSTRAINT `config_host_form_ibfk_1` FOREIGN KEY (`config_host_id`) REFERENCES `config_host` (`config_host_id`) ON DELETE NO ACTION ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Registra las posiciones de los formularios';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `consignatarios_observation`
+--
+
+DROP TABLE IF EXISTS `consignatarios_observation`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `consignatarios_observation` (
+ `consignatarios_observation_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `Id_Consigna` int(11) NOT NULL,
+ `observation_type_id` tinyint(3) unsigned NOT NULL,
+ `text` text COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`consignatarios_observation_id`),
+ UNIQUE KEY `Id_Consigna` (`Id_Consigna`,`observation_type_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Observaciones de los consignatarios';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `container`
+--
+
+DROP TABLE IF EXISTS `container`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `container` (
+ `container_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
+ `Continente` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`container_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cooler_path`
+--
+
+DROP TABLE IF EXISTS `cooler_path`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cooler_path` (
+ `cooler_path_id` int(11) NOT NULL AUTO_INCREMENT,
+ `description` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`cooler_path_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Define el orden en que se imprimen los F5';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cooler_path_detail`
+--
+
+DROP TABLE IF EXISTS `cooler_path_detail`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cooler_path_detail` (
+ `cooler_path_detail_id` int(11) NOT NULL AUTO_INCREMENT,
+ `cooler_path_id` int(11) NOT NULL DEFAULT '1',
+ `pasillo` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`cooler_path_id`,`pasillo`),
+ UNIQUE KEY `cooler_path_detail_id_UNIQUE` (`cooler_path_detail_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cp`
+--
+
+DROP TABLE IF EXISTS `cp`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cp` (
+ `cp_id` int(11) NOT NULL AUTO_INCREMENT,
+ `cpd` int(11) NOT NULL,
+ `cph` int(11) NOT NULL,
+ `zone_id` smallint(6) DEFAULT NULL,
+ `town` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`cp_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Relacio de codis postals i el municipi al qual se asigna';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `credit`
+--
+
+DROP TABLE IF EXISTS `credit`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `credit` (
+ `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
+ `Id_Cliente` int(11) NOT NULL,
+ `amount` double unsigned NOT NULL,
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `Id_Trabajador` int(11) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `workers_fk_idx` (`Id_Trabajador`),
+ CONSTRAINT `workers_fk` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE
+) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `credit_card`
+--
+
+DROP TABLE IF EXISTS `credit_card`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `credit_card` (
+ `credit_card_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `Id_Cliente` int(10) NOT NULL,
+ `number` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
+ `expiration_month` tinyint(2) unsigned zerofill NOT NULL,
+ `expiration_year` tinyint(2) unsigned zerofill NOT NULL,
+ `priority` tinyint(3) unsigned NOT NULL DEFAULT '1',
+ `obs` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`credit_card_id`),
+ KEY `Id_Cliente` (`Id_Cliente`),
+ CONSTRAINT `credit_card_ibfk_1` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cyc`
+--
+
+DROP TABLE IF EXISTS `cyc`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cyc` (
+ `Id_Cliente` int(11) NOT NULL,
+ `Riesgo` double DEFAULT NULL,
+ `Fecha` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `cyc_id` int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (`cyc_id`),
+ KEY `Cliente` (`Id_Cliente`),
+ CONSTRAINT `Cliente` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Detalla los clientes que estan clasificados en Credito y Cau';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cyc_declaration`
+--
+
+DROP TABLE IF EXISTS `cyc_declaration`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cyc_declaration` (
+ `factura_id` int(10) unsigned NOT NULL,
+ `Riesgo` double DEFAULT NULL,
+ `Fecha` date NOT NULL,
+ `Vencimiento` int(10) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`factura_id`),
+ CONSTRAINT `Factura` FOREIGN KEY (`factura_id`) REFERENCES `Facturas` (`factura_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Registro de las facturas declaradas a cyc';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `daily_task_log`
+--
+
+DROP TABLE IF EXISTS `daily_task_log`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `daily_task_log` (
+ `consulta` varchar(250) COLLATE utf8_unicode_ci NOT NULL,
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='No he encontrado el lugar en el que vicente almacena la hora en que se ejecutan las daily tasks, asi que he hecho esta tabla, a eliminar cuando se considere oportuno';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `definitivo`
+--
+
+DROP TABLE IF EXISTS `definitivo`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `definitivo` (
+ `definitivo_id` int(11) NOT NULL,
+ `empresa_id` int(11) NOT NULL,
+ `desde` bigint(20) NOT NULL,
+ `hasta` bigint(20) NOT NULL,
+ `fecha` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`definitivo_id`,`empresa_id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `department`
+--
+
+DROP TABLE IF EXISTS `department`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `department` (
+ `department_id` int(11) NOT NULL AUTO_INCREMENT,
+ `name` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `lft` int(11) NOT NULL,
+ `rgt` int(11) NOT NULL,
+ `Id_Trabajador` int(11) DEFAULT NULL COMMENT 'Id_Trabajador es el jefe del departamento',
+ PRIMARY KEY (`department_id`),
+ UNIQUE KEY `lft_UNIQUE` (`lft`),
+ UNIQUE KEY `rgt_UNIQUE` (`rgt`),
+ UNIQUE KEY `name_UNIQUE` (`name`),
+ KEY `fk_department_Trabajadores1_idx` (`Id_Trabajador`),
+ CONSTRAINT `fk_department_Trabajadores1` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `device`
+--
+
+DROP TABLE IF EXISTS `device`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `device` (
+ `device_id` int(11) NOT NULL AUTO_INCREMENT,
+ `sn` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `model` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`device_id`),
+ UNIQUE KEY `device_id_UNIQUE` (`device_id`),
+ UNIQUE KEY `sn_UNIQUE` (`sn`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `device_user`
+--
+
+DROP TABLE IF EXISTS `device_user`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `device_user` (
+ `device_id` int(11) NOT NULL,
+ `user_id` int(11) NOT NULL,
+ PRIMARY KEY (`device_id`,`user_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `dhl`
+--
+
+DROP TABLE IF EXISTS `dhl`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `dhl` (
+ `codigo_postal` mediumint(8) unsigned NOT NULL,
+ `frecuencia` tinyint(3) unsigned NOT NULL,
+ PRIMARY KEY (`codigo_postal`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `duaDismissed`
+--
+
+DROP TABLE IF EXISTS `duaDismissed`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `duaDismissed` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `ticketFk` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`,`ticketFk`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `edi_article`
+--
+
+DROP TABLE IF EXISTS `edi_article`;
+/*!50001 DROP VIEW IF EXISTS `edi_article`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `edi_article` AS SELECT
+ 1 AS `id`,
+ 1 AS `product_name`,
+ 1 AS `name`,
+ 1 AS `plant_id`,
+ 1 AS `group_id`,
+ 1 AS `entry_date`,
+ 1 AS `expiry_date`,
+ 1 AS `change_date_time`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `edi_bucket`
+--
+
+DROP TABLE IF EXISTS `edi_bucket`;
+/*!50001 DROP VIEW IF EXISTS `edi_bucket`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `edi_bucket` AS SELECT
+ 1 AS `bucket_id`,
+ 1 AS `bucket_type_id`,
+ 1 AS `description`,
+ 1 AS `x_size`,
+ 1 AS `y_size`,
+ 1 AS `z_size`,
+ 1 AS `entry_date`,
+ 1 AS `expiry_date`,
+ 1 AS `change_date_time`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `edi_bucket_type`
+--
+
+DROP TABLE IF EXISTS `edi_bucket_type`;
+/*!50001 DROP VIEW IF EXISTS `edi_bucket_type`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `edi_bucket_type` AS SELECT
+ 1 AS `bucket_type_id`,
+ 1 AS `description`,
+ 1 AS `entry_date`,
+ 1 AS `expiry_date`,
+ 1 AS `change_date_time`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `edi_feature`
+--
+
+DROP TABLE IF EXISTS `edi_feature`;
+/*!50001 DROP VIEW IF EXISTS `edi_feature`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `edi_feature` AS SELECT
+ 1 AS `item_id`,
+ 1 AS `feature_type_id`,
+ 1 AS `feature_value`,
+ 1 AS `entry_date`,
+ 1 AS `expiry_date`,
+ 1 AS `change_date_time`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `edi_genus`
+--
+
+DROP TABLE IF EXISTS `edi_genus`;
+/*!50001 DROP VIEW IF EXISTS `edi_genus`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `edi_genus` AS SELECT
+ 1 AS `genus_id`,
+ 1 AS `latin_genus_name`,
+ 1 AS `entry_date`,
+ 1 AS `expiry_date`,
+ 1 AS `change_date_time`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `edi_item_feature`
+--
+
+DROP TABLE IF EXISTS `edi_item_feature`;
+/*!50001 DROP VIEW IF EXISTS `edi_item_feature`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `edi_item_feature` AS SELECT
+ 1 AS `item_id`,
+ 1 AS `presentation_order`,
+ 1 AS `feature`,
+ 1 AS `regulation_type`,
+ 1 AS `entry_date`,
+ 1 AS `expiry_date`,
+ 1 AS `change_date_time`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `edi_plant`
+--
+
+DROP TABLE IF EXISTS `edi_plant`;
+/*!50001 DROP VIEW IF EXISTS `edi_plant`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `edi_plant` AS SELECT
+ 1 AS `plant_id`,
+ 1 AS `genus_id`,
+ 1 AS `specie_id`,
+ 1 AS `entry_date`,
+ 1 AS `expiry_date`,
+ 1 AS `change_date_time`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `edi_specie`
+--
+
+DROP TABLE IF EXISTS `edi_specie`;
+/*!50001 DROP VIEW IF EXISTS `edi_specie`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `edi_specie` AS SELECT
+ 1 AS `specie_id`,
+ 1 AS `genus_id`,
+ 1 AS `latin_species_name`,
+ 1 AS `entry_date`,
+ 1 AS `expiry_date`,
+ 1 AS `change_date_time`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `edi_supplier`
+--
+
+DROP TABLE IF EXISTS `edi_supplier`;
+/*!50001 DROP VIEW IF EXISTS `edi_supplier`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `edi_supplier` AS SELECT
+ 1 AS `supplier_id`,
+ 1 AS `company_name`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `edi_testigos`
+--
+
+DROP TABLE IF EXISTS `edi_testigos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `edi_testigos` (
+ `id` smallint(6) NOT NULL AUTO_INCREMENT,
+ `table` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
+ `field` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
+ `testigo` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `edi_type`
+--
+
+DROP TABLE IF EXISTS `edi_type`;
+/*!50001 DROP VIEW IF EXISTS `edi_type`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `edi_type` AS SELECT
+ 1 AS `type_id`,
+ 1 AS `type_group_id`,
+ 1 AS `description`,
+ 1 AS `entry_date`,
+ 1 AS `expiry_date`,
+ 1 AS `change_date_time`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `edi_value`
+--
+
+DROP TABLE IF EXISTS `edi_value`;
+/*!50001 DROP VIEW IF EXISTS `edi_value`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `edi_value` AS SELECT
+ 1 AS `type_id`,
+ 1 AS `type_value`,
+ 1 AS `type_description`,
+ 1 AS `entry_date`,
+ 1 AS `expiry_date`,
+ 1 AS `change_date_time`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `emp_day_pay`
+--
+
+DROP TABLE IF EXISTS `emp_day_pay`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `emp_day_pay` (
+ `id` smallint(5) unsigned NOT NULL,
+ `emp_day_pay` tinyint(3) unsigned NOT NULL,
+ PRIMARY KEY (`id`,`emp_day_pay`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `empresa`
+--
+
+DROP TABLE IF EXISTS `empresa`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `empresa` (
+ `id` smallint(5) unsigned NOT NULL,
+ `abbreviation` char(3) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `registro` varchar(120) COLLATE utf8_unicode_ci NOT NULL,
+ `gerente_id` int(11) NOT NULL,
+ `alta` date NOT NULL,
+ `baja` date DEFAULT NULL,
+ `logo` longblob,
+ `oficial` tinyint(1) unsigned NOT NULL DEFAULT '1',
+ `cyc` tinyint(1) unsigned zerofill NOT NULL DEFAULT '0',
+ `rgb` varchar(6) COLLATE utf8_unicode_ci NOT NULL,
+ `mail` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
+ `cuno` blob,
+ `ODBC_DATE` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
+ `Id_Cliente` int(11) DEFAULT NULL,
+ `digito_factura` int(2) DEFAULT NULL,
+ `Id_Proveedores_account` mediumint(8) unsigned DEFAULT NULL,
+ `morosidad` tinyint(4) NOT NULL DEFAULT '0',
+ `empresa_grupo` int(11) NOT NULL DEFAULT '1',
+ PRIMARY KEY (`id`),
+ KEY `gerente_id` (`gerente_id`),
+ KEY `empresa_cliente_idx` (`Id_Cliente`),
+ KEY `Id_Proveedores_account` (`Id_Proveedores_account`),
+ KEY `empresa_grupo_fk_idx` (`empresa_grupo`),
+ CONSTRAINT `empresa_cliente` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `empresa_ibfk_1` FOREIGN KEY (`gerente_id`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE,
+ CONSTRAINT `fk_empresa_grupo` FOREIGN KEY (`empresa_grupo`) REFERENCES `empresa_grupo` (`empresa_grupo_id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `empresa_grupo`
+--
+
+DROP TABLE IF EXISTS `empresa_grupo`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `empresa_grupo` (
+ `empresa_grupo_id` int(11) NOT NULL AUTO_INCREMENT,
+ `grupo` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`empresa_grupo_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `entity`
+--
+
+DROP TABLE IF EXISTS `entity`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `entity` (
+ `pais_id` mediumint(8) unsigned NOT NULL DEFAULT '1',
+ `entity_id` int(10) unsigned NOT NULL,
+ `description` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `bic` varchar(11) CHARACTER SET utf8 DEFAULT NULL,
+ PRIMARY KEY (`entity_id`),
+ UNIQUE KEY `entity_id_UNIQUE` (`entity_id`),
+ UNIQUE KEY `bic_UNIQUE` (`bic`),
+ KEY `fg_entity1_idx` (`pais_id`),
+ CONSTRAINT `fg_entity1` FOREIGN KEY (`pais_id`) REFERENCES `Paises` (`Id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Entidades bancarias ';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `escritos`
+--
+
+DROP TABLE IF EXISTS `escritos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `escritos` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `abrev` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
+ `descripcion` varchar(105) COLLATE utf8_unicode_ci NOT NULL,
+ `visible` tinyint(4) NOT NULL DEFAULT '1',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `escritos_det`
+--
+
+DROP TABLE IF EXISTS `escritos_det`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `escritos_det` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `Id_Cliente` int(10) unsigned NOT NULL,
+ `escritos_id` int(10) unsigned NOT NULL,
+ `fecha` datetime NOT NULL,
+ `Id_Trabajador` int(10) unsigned NOT NULL,
+ `Saldo` float NOT NULL,
+ `empresa_id` smallint(5) unsigned DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `empresa_id` (`empresa_id`),
+ CONSTRAINT `escritos_det_ibfk_1` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `expeditions`
+--
+
+DROP TABLE IF EXISTS `expeditions`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `expeditions` (
+ `expeditions_id` int(11) NOT NULL AUTO_INCREMENT,
+ `agency_id` int(11) NOT NULL,
+ `ticket_id` int(10) NOT NULL,
+ `EsBulto` int(11) DEFAULT '1',
+ `odbc_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ `reembolso` bit(1) DEFAULT b'0',
+ `recogida` bit(1) DEFAULT b'0',
+ `Id_Article` int(11) DEFAULT NULL,
+ `counter` smallint(5) unsigned NOT NULL,
+ `checked` tinyint(4) NOT NULL DEFAULT '0',
+ `workerFk` int(11) DEFAULT NULL,
+ PRIMARY KEY (`expeditions_id`),
+ KEY `index1` (`agency_id`),
+ KEY `index2` (`EsBulto`),
+ KEY `index3` (`odbc_date`),
+ KEY `index4` (`ticket_id`),
+ CONSTRAINT `Id_Agencia` FOREIGN KEY (`agency_id`) REFERENCES `Agencias` (`Id_Agencia`) ON UPDATE CASCADE
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ IF NEW.EsBulto > 0 THEN
+
+ UPDATE Tickets SET Bultos = nz(Bultos) + 1 WHERE Id_Ticket = NEW.ticket_id;
+ SELECT IFNULL(MAX(counter),0) +1 INTO intcounter FROM expeditions e
+ INNER JOIN Tickets t1 ON e.ticket_id = t1.Id_Ticket
+ LEFT JOIN vn.ticketState ts ON ts.ticket = t1.Id_Ticket
+ INNER JOIN Tickets t2 ON t2.Id_Consigna = t1.Id_Consigna AND DATE(t2.Fecha) = DATE(t1.Fecha) AND t1.warehouse_id = t2.warehouse_id
+ WHERE t2.Id_Ticket = NEW.ticket_id AND ts.alertLevel < 3 AND t1.empresa_id = t2.empresa_id AND t1.Id_Agencia = t2.Id_Agencia;
+ SET NEW.`counter` = intcounter;
+ END IF;
+ SET NEW.workerFk=get_Trabajador();
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ 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 t1.Id_Ticket = NEW.ticket_id AND counter = NEW.counter) > 0 THEN
+ SET NEW.expeditions_id = NULL;
+ END IF;
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`expeditionsAfterUpdate`
+AFTER UPDATE ON `expeditions` FOR EACH ROW
+BEGIN
+ CALL cache.barcodes_expeditions_update(NEW.expeditions_id);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`expeditionsBeforeDelete`
+BEFORE DELETE ON `expeditions` FOR EACH ROW
+BEGIN
+ DECLARE trabajador integer DEFAULT NULL;
+
+
+ SELECT Id_Trabajador into trabajador from Trabajadores where user_id = account.userGetId();
+ if trabajador is null then
+ SET trabajador = 33;
+ end if;
+ 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()
+ FROM Tickets
+ WHERE Id_Ticket = OLD.ticket_id ;
+
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `expeditions_deleted`
+--
+
+DROP TABLE IF EXISTS `expeditions_deleted`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `expeditions_deleted` (
+ `expeditions_id` int(11) NOT NULL AUTO_INCREMENT,
+ `agency_id` int(11) NOT NULL,
+ `ticket_id` int(10) NOT NULL,
+ `EsBulto` int(11) DEFAULT '1',
+ `odbc_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `reembolso` bit(1) DEFAULT b'0',
+ `recogida` bit(1) DEFAULT b'0',
+ `Id_Article` int(11) DEFAULT NULL,
+ `counter` smallint(5) unsigned NOT NULL,
+ `checked` tinyint(4) NOT NULL DEFAULT '0',
+ `completed` tinyint(4) DEFAULT '0',
+ `expedicion` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Id_Trabajador` int(11) DEFAULT NULL,
+ PRIMARY KEY (`expeditions_id`),
+ KEY `index1` (`agency_id`),
+ KEY `index2` (`EsBulto`),
+ KEY `index3` (`odbc_date`),
+ KEY `index4` (`ticket_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `expeditions_pictures`
+--
+
+DROP TABLE IF EXISTS `expeditions_pictures`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `expeditions_pictures` (
+ `Id_Article` int(11) NOT NULL,
+ `NoImprimirEtiqueta` bit(1) DEFAULT b'0',
+ PRIMARY KEY (`Id_Article`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `filtros`
+--
+
+DROP TABLE IF EXISTS `filtros`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `filtros` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `sql` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `Estanteria` tinyint(1) DEFAULT '0',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `financialProductType`
+--
+
+DROP TABLE IF EXISTS `financialProductType`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `financialProductType` (
+ `id` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
+ `description` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `description_UNIQUE` (`description`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Distintos tipos de productos financieros: seguros de cambio, polizas de credito, acumuladores....';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `flight`
+--
+
+DROP TABLE IF EXISTS `flight`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `flight` (
+ `flight_id` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
+ `duration` tinyint(2) unsigned DEFAULT NULL,
+ `route` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `days` varchar(7) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `airline_id` smallint(2) unsigned DEFAULT NULL,
+ `airport_out` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
+ `airport_in` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`flight_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `form_query`
+--
+
+DROP TABLE IF EXISTS `form_query`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `form_query` (
+ `form_query_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
+ `query` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `response1` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
+ `response2` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
+ `type_id` enum('gest_doc') COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`form_query_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `gastos_resumen`
+--
+
+DROP TABLE IF EXISTS `gastos_resumen`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `gastos_resumen` (
+ `Id_Gasto` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
+ `year` int(4) NOT NULL,
+ `month` int(2) NOT NULL,
+ `importe` decimal(10,2) DEFAULT NULL,
+ `empresa_id` int(11) NOT NULL,
+ PRIMARY KEY (`Id_Gasto`,`year`,`month`,`empresa_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Sirve para resumir los gastos que se ponen a mano en el contaplus';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `gestdoc`
+--
+
+DROP TABLE IF EXISTS `gestdoc`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `gestdoc` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `gesttip_id` int(11) NOT NULL DEFAULT '1',
+ `sref` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `brief` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `emp_id` smallint(5) unsigned NOT NULL DEFAULT '791',
+ `orden` mediumint(8) unsigned DEFAULT NULL,
+ `file` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `original` tinyint(4) NOT NULL DEFAULT '0',
+ `trabajador_id` int(11) NOT NULL,
+ `odbc_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ `gestdoccol` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `warehouse_id` smallint(5) unsigned NOT NULL DEFAULT '1',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `emp_id` (`emp_id`,`orden`,`warehouse_id`),
+ KEY `trabajador_id` (`trabajador_id`),
+ KEY `warehouse_id` (`warehouse_id`)
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`gestdoc_bi`
+BEFORE INSERT ON `vn2008`.`gestdoc`
+FOR EACH ROW
+BEGIN
+
+ DECLARE intORD int;
+ IF NEW.warehouse_id = 44 THEN
+ SET NEW.warehouse_id = 1;
+ END IF;
+ IF NEW.original THEN
+ SELECT 1 + MAX(orden) INTO intORD FROM gestdoc WHERE emp_id = NEW.emp_id AND warehouse_id = NEW.warehouse_id ;
+
+ 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;
+ END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`gestdoc_bu`
+BEFORE UPDATE ON `vn2008`.`gestdoc`
+FOR EACH ROW
+BEGIN
+
+ DECLARE intORD int;
+ IF (NEW.original <> 0) AND (OLD.original = 0) AND (NEW.orden IS NULL) THEN
+
+ SELECT 1 + MAX(orden) INTO intORD FROM gestdoc WHERE emp_id = NEW.emp_id AND warehouse_id = NEW.warehouse_id;
+ SET NEW.orden = IFNULL(intORD,1);
+
+ END IF;
+IF ((NEW.orden = 0) OR NEW.orden IS NULL) AND (OLD.orden <> 0) THEN
+
+ SET NEW.original = 0;
+ END IF;
+ END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `gesttip`
+--
+
+DROP TABLE IF EXISTS `gesttip`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `gesttip` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `tipo` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `path` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `guillen`
+--
+
+DROP TABLE IF EXISTS `guillen`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `guillen` (
+ `bulto` tinyint(3) unsigned NOT NULL,
+ `1` float unsigned NOT NULL,
+ `2` float unsigned NOT NULL,
+ `re_exp` float unsigned NOT NULL,
+ PRIMARY KEY (`bulto`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `guillen_carry`
+--
+
+DROP TABLE IF EXISTS `guillen_carry`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `guillen_carry` (
+ `carry` tinyint(3) unsigned NOT NULL,
+ `1` float unsigned NOT NULL,
+ `2` float unsigned NOT NULL,
+ `re_exp` float unsigned NOT NULL,
+ PRIMARY KEY (`carry`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `integra2`
+--
+
+DROP TABLE IF EXISTS `integra2`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `integra2` (
+ `postal_code` mediumint(8) unsigned NOT NULL,
+ `frequency` tinyint(3) unsigned NOT NULL,
+ `warehouse_id` smallint(5) unsigned NOT NULL,
+ PRIMARY KEY (`postal_code`,`frequency`,`warehouse_id`),
+ KEY `postal_code` (`postal_code`),
+ KEY `warehouse_id` (`warehouse_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `integra2_escala`
+--
+
+DROP TABLE IF EXISTS `integra2_escala`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `integra2_escala` (
+ `province_id` smallint(6) unsigned NOT NULL,
+ `warehouse_id` smallint(6) unsigned NOT NULL,
+ PRIMARY KEY (`province_id`,`warehouse_id`),
+ KEY `warehouse_escala_idx` (`warehouse_id`),
+ CONSTRAINT `province_escala` FOREIGN KEY (`province_id`) REFERENCES `province` (`province_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `warehouse_escala` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `integra2_province`
+--
+
+DROP TABLE IF EXISTS `integra2_province`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `integra2_province` (
+ `province_id` smallint(6) unsigned NOT NULL,
+ `franquicia` varchar(65) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`province_id`),
+ CONSTRAINT `integra2_province_id` FOREIGN KEY (`province_id`) REFERENCES `province` (`province_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `intervalos`
+--
+
+DROP TABLE IF EXISTS `intervalos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `intervalos` (
+ `id` int(11) NOT NULL,
+ `hour` time NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `intrastat_data`
+--
+
+DROP TABLE IF EXISTS `intrastat_data`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `intrastat_data` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `recibida_id` mediumint(8) unsigned NOT NULL,
+ `neto` decimal(10,2) DEFAULT NULL,
+ `intrastat_id` int(8) unsigned zerofill NOT NULL DEFAULT '06049190',
+ `importe` double NOT NULL,
+ `unidades` int(11) NOT NULL,
+ `Paises_Id` mediumint(8) unsigned DEFAULT NULL,
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `valorestadistico` double NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `intrastat_id` (`intrastat_id`),
+ KEY `recibida` (`recibida_id`),
+ CONSTRAINT `intrastat_data_ibfk_1` FOREIGN KEY (`intrastat_id`) REFERENCES `Intrastat` (`Codintrastat`) ON UPDATE CASCADE,
+ CONSTRAINT `intrastat_data_ibfk_2` FOREIGN KEY (`recibida_id`) REFERENCES `recibida` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `invoiceCorrection`
+--
+
+DROP TABLE IF EXISTS `invoiceCorrection`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `invoiceCorrection` (
+ `correctingFk` int(10) unsigned NOT NULL COMMENT 'Factura rectificativa',
+ `correctedFk` int(10) unsigned NOT NULL COMMENT 'Factura rectificada',
+ `cplusRectificationTypeFk` int(10) unsigned NOT NULL,
+ `cplusInvoiceType477Fk` int(10) unsigned NOT NULL,
+ `invoiceCorrectionTypeFk` int(11) NOT NULL DEFAULT '3',
+ PRIMARY KEY (`correctingFk`),
+ KEY `correctedFk_idx` (`correctedFk`),
+ KEY `invoiceCorrection_ibfk_1_idx` (`cplusRectificationTypeFk`),
+ KEY `cplusInvoiceTyoeFk_idx` (`cplusInvoiceType477Fk`),
+ KEY `invoiceCorrectionTypeFk_idx` (`invoiceCorrectionTypeFk`),
+ CONSTRAINT `corrected_fk` FOREIGN KEY (`correctedFk`) REFERENCES `Facturas` (`factura_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `correcting_fk` FOREIGN KEY (`correctingFk`) REFERENCES `Facturas` (`factura_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `cplusInvoiceTyoeFk` FOREIGN KEY (`cplusInvoiceType477Fk`) REFERENCES `vn`.`cplusInvoiceType477` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `invoiceCorrectionType_Fk33` FOREIGN KEY (`invoiceCorrectionTypeFk`) REFERENCES `vn`.`invoiceCorrectionType` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `invoiceCorrection_ibfk_1` FOREIGN KEY (`cplusRectificationTypeFk`) REFERENCES `vn`.`cplusRectificationType` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Relacion entre las facturas rectificativas y las rectificadas.';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `invoice_observation`
+--
+
+DROP TABLE IF EXISTS `invoice_observation`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `invoice_observation` (
+ `invoice_observation_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `desde` date NOT NULL,
+ `hasta` date NOT NULL,
+ `serie` varchar(1) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
+ `empresa_id` smallint(5) unsigned NOT NULL DEFAULT '0',
+ `text` text COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`invoice_observation_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `itemTag`
+--
+
+DROP TABLE IF EXISTS `itemTag`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `itemTag` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `itemFk` int(11) NOT NULL,
+ `tagFk` int(11) NOT NULL,
+ `value` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
+ `priority` int(2) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `tag_fk_idx` (`tagFk`),
+ KEY `priorityItem` (`itemFk`,`priority`),
+ CONSTRAINT `itemFK` FOREIGN KEY (`itemFk`) REFERENCES `Articles` (`Id_Article`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `itemTagArranged`
+--
+
+DROP TABLE IF EXISTS `itemTagArranged`;
+/*!50001 DROP VIEW IF EXISTS `itemTagArranged`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `itemTagArranged` AS SELECT
+ 1 AS `itemFk`,
+ 1 AS `tag1`,
+ 1 AS `val1`,
+ 1 AS `tag2`,
+ 1 AS `val2`,
+ 1 AS `tag3`,
+ 1 AS `val3`,
+ 1 AS `tag4`,
+ 1 AS `val4`,
+ 1 AS `tag5`,
+ 1 AS `val5`,
+ 1 AS `tag6`,
+ 1 AS `val6`,
+ 1 AS `description`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `item_catalog`
+--
+
+DROP TABLE IF EXISTS `item_catalog`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `item_catalog` (
+ `item_id` int(11) unsigned NOT NULL,
+ `available` mediumint(9) NOT NULL,
+ `fixed` tinyint(1) NOT NULL DEFAULT '0',
+ `price` double DEFAULT NULL,
+ `s1` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `s2` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `discount` tinyint(3) unsigned DEFAULT NULL,
+ `grouping` decimal(10,0) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `item_entry_in`
+--
+
+DROP TABLE IF EXISTS `item_entry_in`;
+/*!50001 DROP VIEW IF EXISTS `item_entry_in`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `item_entry_in` AS SELECT
+ 1 AS `warehouse_id`,
+ 1 AS `dat`,
+ 1 AS `item_id`,
+ 1 AS `amount`,
+ 1 AS `received`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `item_entry_out`
+--
+
+DROP TABLE IF EXISTS `item_entry_out`;
+/*!50001 DROP VIEW IF EXISTS `item_entry_out`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `item_entry_out` AS SELECT
+ 1 AS `warehouse_id`,
+ 1 AS `dat`,
+ 1 AS `item_id`,
+ 1 AS `amount`,
+ 1 AS `delivered`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `item_out`
+--
+
+DROP TABLE IF EXISTS `item_out`;
+/*!50001 DROP VIEW IF EXISTS `item_out`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `item_out` AS SELECT
+ 1 AS `warehouse_id`,
+ 1 AS `dat`,
+ 1 AS `item_id`,
+ 1 AS `amount`,
+ 1 AS `ok`,
+ 1 AS `Reservado`,
+ 1 AS `ready`,
+ 1 AS `invoice`,
+ 1 AS `alertLevel`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `iva_codigo`
+--
+
+DROP TABLE IF EXISTS `iva_codigo`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `iva_codigo` (
+ `id` tinyint(2) unsigned NOT NULL AUTO_INCREMENT,
+ `fecha` date NOT NULL,
+ `codigo` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
+ `iva_tipo_id` tinyint(2) NOT NULL,
+ `iva` float(3,1) NOT NULL DEFAULT '0.0',
+ `recargo` float(2,1) NOT NULL DEFAULT '0.0',
+ `tipo` char(1) COLLATE utf8_unicode_ci NOT NULL,
+ `link` tinyint(4) unsigned NOT NULL DEFAULT '0' COMMENT 'las que tienen el mismo valor se contabilizan emparejadas',
+ `isActive` tinyint(2) NOT NULL DEFAULT '1',
+ PRIMARY KEY (`id`),
+ KEY `iva_tipo_id` (`iva_tipo_id`),
+ KEY `codigo` (`codigo`),
+ KEY `tipo_index` (`tipo`),
+ CONSTRAINT `iva_codigo_ibfk_1` FOREIGN KEY (`iva_tipo_id`) REFERENCES `iva_tipo` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `iva_group`
+--
+
+DROP TABLE IF EXISTS `iva_group`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `iva_group` (
+ `iva_group_id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
+ `description` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
+ `code` varchar(1) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'R',
+ PRIMARY KEY (`iva_group_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `iva_group_codigo`
+--
+
+DROP TABLE IF EXISTS `iva_group_codigo`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `iva_group_codigo` (
+ `iva_group_id` tinyint(3) unsigned NOT NULL,
+ `date` date NOT NULL,
+ `iva_codigo_id` tinyint(3) unsigned NOT NULL,
+ PRIMARY KEY (`iva_group_id`,`date`,`iva_codigo_id`),
+ KEY `iva_codigo_id` (`iva_codigo_id`),
+ CONSTRAINT `iva_group_codigo_ibfk_1` FOREIGN KEY (`iva_group_id`) REFERENCES `iva_group` (`iva_group_id`) ON UPDATE CASCADE,
+ CONSTRAINT `iva_group_codigo_ibfk_2` FOREIGN KEY (`iva_codigo_id`) REFERENCES `iva_codigo` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `iva_tipo`
+--
+
+DROP TABLE IF EXISTS `iva_tipo`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `iva_tipo` (
+ `id` tinyint(2) NOT NULL AUTO_INCREMENT,
+ `alias` varchar(6) COLLATE utf8_unicode_ci NOT NULL,
+ `serie_id` char(1) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `TIPOOPE` varchar(1) COLLATE utf8_unicode_ci NOT NULL DEFAULT ' ',
+ `descripcion` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
+ `Id_Pais` mediumint(8) unsigned NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `serie_id` (`serie_id`),
+ KEY `Id_Pais` (`Id_Pais`),
+ CONSTRAINT `iva_tipo_ibfk_1` FOREIGN KEY (`Id_Pais`) REFERENCES `Paises` (`Id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `jerarquia`
+--
+
+DROP TABLE IF EXISTS `jerarquia`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `jerarquia` (
+ `worker_id` int(11) NOT NULL,
+ `boss_id` int(11) NOT NULL,
+ `vinculado` tinyint(3) unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`worker_id`,`boss_id`),
+ KEY `worker_trabajador` (`worker_id`),
+ KEY `boss_trabajador` (`boss_id`),
+ CONSTRAINT `boss_trabajador` FOREIGN KEY (`boss_id`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE,
+ CONSTRAINT `worker_trabajador` FOREIGN KEY (`worker_id`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `killme`
+--
+
+DROP TABLE IF EXISTS `killme`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `killme` (
+ `Id_Article` int(11) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `language`
+--
+
+DROP TABLE IF EXISTS `language`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `language` (
+ `code` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
+ `name` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
+ `active` tinyint(1) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`code`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `link`
+--
+
+DROP TABLE IF EXISTS `link`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `link` (
+ `Id_Cliente` int(11) NOT NULL,
+ `Id_Proveedor` int(11) NOT NULL,
+ PRIMARY KEY (`Id_Cliente`,`Id_Proveedor`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `log_articles`
+--
+
+DROP TABLE IF EXISTS `log_articles`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `log_articles` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `Id_Article` int(11) NOT NULL,
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `Fecha_old` datetime DEFAULT NULL,
+ `cantidad_old` double DEFAULT NULL,
+ `Id_Ticket_old` int(11) DEFAULT NULL,
+ `wh_old` smallint(6) unsigned DEFAULT NULL,
+ `Fecha_new` datetime DEFAULT NULL,
+ `cantidad_new` double DEFAULT NULL,
+ `Id_Ticket_new` int(11) DEFAULT NULL,
+ `wh_new` smallint(6) DEFAULT NULL,
+ `accion` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `Id_Article_log` (`Id_Article`),
+ KEY `Id_Ticket_log` (`Id_Ticket_old`),
+ KEY `Id_Ticket_new_log` (`Id_Ticket_new`),
+ CONSTRAINT `Id_Article_log_Articles` FOREIGN KEY (`Id_Article`) REFERENCES `Articles` (`Id_Article`) ON DELETE NO ACTION ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Almacena los movimientos de los articulos para intentar encontrar los procesos que generan negativos';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `mail`
+--
+
+DROP TABLE IF EXISTS `mail`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `mail` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `to` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `reply_to` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `subject` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `text` text COLLATE utf8_unicode_ci NOT NULL,
+ `sent` tinyint(2) NOT NULL DEFAULT '0',
+ `DATE_ODBC` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `path` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `error` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'OK',
+ `senderFk` int(11) DEFAULT NULL,
+ `recipientFk` int(11) DEFAULT NULL,
+ `plainTextBody` text COLLATE utf8_unicode_ci,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM AUTO_INCREMENT=1136979 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `mail_templates`
+--
+
+DROP TABLE IF EXISTS `mail_templates`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `mail_templates` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `countryCode` char(2) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'ES',
+ `name` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
+ `subject` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `body` text COLLATE utf8_unicode_ci NOT NULL,
+ `attachment` text COLLATE utf8_unicode_ci,
+ PRIMARY KEY (`id`,`countryCode`,`name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `mandato`
+--
+
+DROP TABLE IF EXISTS `mandato`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `mandato` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `Id_Cliente` int(11) NOT NULL,
+ `empresa_id` smallint(5) unsigned NOT NULL,
+ `Id_mandato` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `FAlta` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ `Fbaja` timestamp NULL DEFAULT NULL,
+ `idmandato_tipo` smallint(5) NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `mandato_fgkey1_idx` (`Id_Cliente`),
+ KEY `mandato_fgkey2_idx` (`empresa_id`),
+ KEY `mandato_fgkey3_idx` (`idmandato_tipo`),
+ CONSTRAINT `mandato_fgkey1` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON DELETE NO ACTION ON UPDATE CASCADE,
+ CONSTRAINT `mandato_fgkey2` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON DELETE NO ACTION ON UPDATE CASCADE,
+ CONSTRAINT `mandato_fgkey3` FOREIGN KEY (`idmandato_tipo`) REFERENCES `mandato_tipo` (`idmandato_tipo`) ON DELETE NO ACTION ON UPDATE CASCADE
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 trigger mandato_ins before insert
+on mandato
+for each row
+begin
+ if (NEW.Id_mandato IS NULL) THEN
+ SET NEW.Id_mandato=CONCAT(NEW.Id_Cliente,'-',(SELECT AUTO_INCREMENT
+ from information_schema.TABLES
+ where TABLE_SCHEMA='vn2008' and TABLE_NAME='mandato'));
+ end if;
+end */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `mandato_tipo`
+--
+
+DROP TABLE IF EXISTS `mandato_tipo`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `mandato_tipo` (
+ `idmandato_tipo` smallint(5) NOT NULL AUTO_INCREMENT,
+ `Nombre` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`idmandato_tipo`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `movement_label`
+--
+
+DROP TABLE IF EXISTS `movement_label`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `movement_label` (
+ `Id_movimiento` int(11) NOT NULL,
+ `label` mediumint(8) unsigned NOT NULL,
+ `stem` mediumint(8) unsigned NOT NULL,
+ PRIMARY KEY (`Id_movimiento`),
+ CONSTRAINT `movement_label_ibfk_1` FOREIGN KEY (`Id_movimiento`) REFERENCES `Movimientos` (`Id_Movimiento`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!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 */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Temporary view structure for view `new_view`
+--
+
+DROP TABLE IF EXISTS `new_view`;
+/*!50001 DROP VIEW IF EXISTS `new_view`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `new_view` AS SELECT
+ 1 AS `id`,
+ 1 AS `worker`,
+ 1 AS `document`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `nichos`
+--
+
+DROP TABLE IF EXISTS `nichos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `nichos` (
+ `id` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `observation_type`
+--
+
+DROP TABLE IF EXISTS `observation_type`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `observation_type` (
+ `observation_type_id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
+ `description` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`observation_type_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `order`
+--
+
+DROP TABLE IF EXISTS `order`;
+/*!50001 DROP VIEW IF EXISTS `order`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `order` AS SELECT
+ 1 AS `id`,
+ 1 AS `date_make`,
+ 1 AS `date_send`,
+ 1 AS `customer_id`,
+ 1 AS `delivery_method_id`,
+ 1 AS `agency_id`,
+ 1 AS `address_id`,
+ 1 AS `note`,
+ 1 AS `confirmed`,
+ 1 AS `is_bionic`,
+ 1 AS `source_app`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `order_Tickets`
+--
+
+DROP TABLE IF EXISTS `order_Tickets`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `order_Tickets` (
+ `order_id` int(10) unsigned NOT NULL,
+ `Id_Ticket` int(11) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`Id_Ticket`,`order_id`),
+ KEY `order_id` (`order_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `order_component`
+--
+
+DROP TABLE IF EXISTS `order_component`;
+/*!50001 DROP VIEW IF EXISTS `order_component`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `order_component` AS SELECT
+ 1 AS `order_row_id`,
+ 1 AS `component_id`,
+ 1 AS `price`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `order_row`
+--
+
+DROP TABLE IF EXISTS `order_row`;
+/*!50001 DROP VIEW IF EXISTS `order_row`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `order_row` AS SELECT
+ 1 AS `id`,
+ 1 AS `order_id`,
+ 1 AS `item_id`,
+ 1 AS `warehouse_id`,
+ 1 AS `shipment`,
+ 1 AS `amount`,
+ 1 AS `price`,
+ 1 AS `rate`,
+ 1 AS `created`,
+ 1 AS `Id_Movimiento`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `pago`
+--
+
+DROP TABLE IF EXISTS `pago`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `pago` (
+ `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
+ `fecha` date NOT NULL,
+ `id_proveedor` int(11) NOT NULL,
+ `importe` decimal(10,2) NOT NULL DEFAULT '0.00',
+ `id_moneda` tinyint(3) unsigned NOT NULL DEFAULT '1',
+ `divisa` decimal(10,2) DEFAULT NULL,
+ `id_banco` int(11) NOT NULL DEFAULT '0',
+ `pay_met_id` tinyint(3) unsigned NOT NULL,
+ `g_bancarios` double(6,2) unsigned NOT NULL DEFAULT '0.00',
+ `concepte` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `empresa_id` smallint(5) unsigned NOT NULL DEFAULT '442',
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `conciliado` tinyint(1) unsigned zerofill NOT NULL DEFAULT '0',
+ `pago_sdc_id` int(11) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `empresa_id` (`empresa_id`),
+ KEY `id_banco` (`id_banco`),
+ KEY `id_moneda` (`id_moneda`),
+ KEY `pay_met` (`pay_met_id`),
+ KEY `proveedor_pago` (`id_proveedor`),
+ KEY `fk_pago_pago_sdc1_idx` (`pago_sdc_id`),
+ CONSTRAINT `pago_ibfk_1` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `pago_ibfk_2` FOREIGN KEY (`id_banco`) REFERENCES `Bancos` (`Id_Banco`) ON UPDATE CASCADE,
+ CONSTRAINT `pago_moneda` FOREIGN KEY (`id_moneda`) REFERENCES `Monedas` (`Id_Moneda`) ON UPDATE CASCADE,
+ CONSTRAINT `pago_pay_met` FOREIGN KEY (`pay_met_id`) REFERENCES `pay_met` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `proveedor_pago` FOREIGN KEY (`id_proveedor`) REFERENCES `Proveedores` (`Id_Proveedor`) ON UPDATE CASCADE
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!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;
+ DECLARE bolCASH BOOLEAN;
+
+
+
+ -- 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
+
+ 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;
+ SELECT MAX(asien)+1 INTO max_asien FROM XDiario;
+
+ INSERT INTO XDiario (ASIEN,FECHA,SUBCTA,CONTRA,CONCEPTO,EURODEBE,EUROHABER,empresa_id)
+ SELECT max_asien,NEW.fecha,SUBCTA,CONTRA,NEW.concepte,EURODEBE,EUROHABER,NEW.empresa_id FROM
+ ( SELECT cuenta_banco SUBCTA,cuenta_proveedor CONTRA,
+ 0 EURODEBE, NEW.importe + NEW.g_bancarios EUROHABER
+ UNION ALL
+ SELECT cuenta_proveedor SUBCTA, cuenta_banco CONTRA,
+ NEW.importe EURODEBE, 0 EUROHABER) gf;
+
+ IF NEW.g_bancarios <> 0 THEN
+ INSERT INTO XDiario (ASIEN,FECHA,SUBCTA,CONTRA,CONCEPTO,EURODEBE,EUROHABER,empresa_id)
+ SELECT max_asien,NEW.fecha,IF(Id = 1,6260000002,IF(CEE = 1,6260000003,6260000004)),cuenta_banco,NEW.concepte,
+ NEW.g_bancarios,0,NEW.empresa_id FROM Proveedores pr
+ JOIN Paises pa ON pr.pais_id = pa.Id WHERE Id_Proveedor = NEW.id_proveedor;
+ END IF;
+
+
+ END IF;
+ END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `pago_sdc`
+--
+
+DROP TABLE IF EXISTS `pago_sdc`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `pago_sdc` (
+ `pago_sdc_id` int(11) NOT NULL AUTO_INCREMENT,
+ `importe` decimal(10,2) NOT NULL,
+ `fecha` date NOT NULL,
+ `vencimiento` date NOT NULL,
+ `entity_id` int(10) unsigned NOT NULL,
+ `ref` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `rate` decimal(10,4) NOT NULL,
+ `empresa_id` smallint(5) unsigned NOT NULL DEFAULT '442',
+ `financialProductTypefk` varchar(2) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'SC',
+ `pago_sdccol` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `upperBarrier` decimal(10,2) DEFAULT NULL,
+ `lowerBarrier` decimal(10,2) DEFAULT NULL,
+ `strike` decimal(10,2) DEFAULT NULL,
+ PRIMARY KEY (`pago_sdc_id`),
+ KEY `empresa_sdc_idx` (`empresa_id`),
+ KEY `entity_sdc_idx` (`entity_id`),
+ KEY `financial_type_fk_idx` (`financialProductTypefk`),
+ CONSTRAINT `empresa_sdc` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `entity_sdc` FOREIGN KEY (`entity_id`) REFERENCES `entity` (`entity_id`) ON UPDATE CASCADE,
+ CONSTRAINT `financial_type_fk` FOREIGN KEY (`financialProductTypefk`) REFERENCES `financialProductType` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Seguros de cambio';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `pay_dem`
+--
+
+DROP TABLE IF EXISTS `pay_dem`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `pay_dem` (
+ `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
+ `pay_dem` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `pay_dem_det`
+--
+
+DROP TABLE IF EXISTS `pay_dem_det`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `pay_dem_det` (
+ `id` tinyint(3) unsigned NOT NULL,
+ `detalle` tinyint(3) unsigned NOT NULL,
+ PRIMARY KEY (`id`,`detalle`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `pay_met`
+--
+
+DROP TABLE IF EXISTS `pay_met`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `pay_met` (
+ `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
+ `solucion` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `deudaviva` tinyint(3) unsigned zerofill NOT NULL DEFAULT '000',
+ `graceDays` int(11) unsigned NOT NULL DEFAULT '0',
+ `ibanRequired` tinyint(3) DEFAULT '0',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `payroll_basess`
+--
+
+DROP TABLE IF EXISTS `payroll_basess`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `payroll_basess` (
+ `id_payroll_Basess` int(11) NOT NULL AUTO_INCREMENT,
+ `empresa_id` int(10) NOT NULL,
+ `id_tipobasess` int(11) NOT NULL,
+ `valor` double NOT NULL,
+ `fechadesde` date NOT NULL,
+ `fechahasta` date DEFAULT NULL,
+ `contratotemporal` tinyint(1) DEFAULT '0',
+ PRIMARY KEY (`id_payroll_Basess`),
+ KEY `payroll_basess_1_idx` (`id_tipobasess`),
+ KEY `payroll_basess_2_idx` (`empresa_id`),
+ CONSTRAINT `payroll_basess_1` FOREIGN KEY (`id_tipobasess`) REFERENCES `payroll_tipobasess` (`id_payroll_tipobasess`) ON DELETE NO ACTION ON UPDATE CASCADE,
+ CONSTRAINT `payroll_basess_2` FOREIGN KEY (`empresa_id`) REFERENCES `payroll_centros` (`empresa_id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `payroll_bonificaciones`
+--
+
+DROP TABLE IF EXISTS `payroll_bonificaciones`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `payroll_bonificaciones` (
+ `codtrabajador` int(11) NOT NULL,
+ `codempresa` int(11) NOT NULL,
+ `Fecha` date NOT NULL,
+ `bonificacionSS` double NOT NULL,
+ PRIMARY KEY (`codtrabajador`,`codempresa`,`Fecha`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `payroll_categorias`
+--
+
+DROP TABLE IF EXISTS `payroll_categorias`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `payroll_categorias` (
+ `codcategoria` int(11) NOT NULL,
+ `descripcion` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `Tarifa` tinyint(4) NOT NULL,
+ PRIMARY KEY (`codcategoria`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `payroll_centros`
+--
+
+DROP TABLE IF EXISTS `payroll_centros`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `payroll_centros` (
+ `cod_centro` int(11) NOT NULL,
+ `Centro` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `nss_cotizacion` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
+ `domicilio` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `poblacion` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `cp` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
+ `empresa_id` int(10) NOT NULL,
+ `codempresa` int(11) DEFAULT NULL,
+ PRIMARY KEY (`cod_centro`,`empresa_id`),
+ KEY `payroll_centros_ix1` (`empresa_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `payroll_conceptos`
+--
+
+DROP TABLE IF EXISTS `payroll_conceptos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `payroll_conceptos` (
+ `conceptoid` int(11) NOT NULL,
+ `concepto` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`conceptoid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `payroll_contratos`
+--
+
+DROP TABLE IF EXISTS `payroll_contratos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `payroll_contratos` (
+ `CodContrato` int(11) NOT NULL,
+ `TipoCotizacion` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `DescContrato` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`CodContrato`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `payroll_datos`
+--
+
+DROP TABLE IF EXISTS `payroll_datos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `payroll_datos` (
+ `codtrabajador` int(11) NOT NULL,
+ `codempresa` int(10) NOT NULL,
+ `Fecha` date NOT NULL,
+ `conceptoid` int(11) NOT NULL,
+ `orden` tinyint(4) DEFAULT NULL,
+ `dias` smallint(6) DEFAULT NULL,
+ `Importe` decimal(8,2) NOT NULL,
+ `DH` tinyint(4) DEFAULT NULL,
+ `T_Paga` tinyint(4) NOT NULL,
+ `TributaIRPF` tinyint(4) NOT NULL,
+ PRIMARY KEY (`codtrabajador`,`codempresa`,`conceptoid`,`Fecha`),
+ KEY `fgkey_payrolldatos_1_idx` (`conceptoid`),
+ CONSTRAINT `fgkey_payrolldatos_1` FOREIGN KEY (`conceptoid`) REFERENCES `payroll_conceptos` (`conceptoid`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `payroll_embargos`
+--
+
+DROP TABLE IF EXISTS `payroll_embargos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `payroll_embargos` (
+ `codtrabajador` int(11) NOT NULL,
+ `codempresa` int(10) NOT NULL,
+ `conceptoid` int(11) NOT NULL,
+ `Fecha` date NOT NULL,
+ `pagado` double NOT NULL,
+ `pendiente` double DEFAULT NULL,
+ `total` double NOT NULL,
+ PRIMARY KEY (`codtrabajador`,`codempresa`,`Fecha`,`conceptoid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `payroll_employee`
+--
+
+DROP TABLE IF EXISTS `payroll_employee`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `payroll_employee` (
+ `CodTrabajador` int(11) NOT NULL,
+ `Person_id` int(11) NOT NULL,
+ `nss` varchar(23) COLLATE utf8_unicode_ci NOT NULL,
+ `codpuesto` int(10) NOT NULL,
+ `codempresa` int(10) NOT NULL,
+ `codcontrato` int(10) NOT NULL,
+ `FAntiguedad` date NOT NULL,
+ `grupotarifa` int(10) NOT NULL,
+ `codcategoria` int(10) NOT NULL,
+ `ContratoTemporal` tinyint(1) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`CodTrabajador`,`codempresa`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `payroll_pagarini`
+--
+
+DROP TABLE IF EXISTS `payroll_pagarini`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `payroll_pagarini` (
+ `fecha` date NOT NULL,
+ `person_id` int(11) NOT NULL,
+ `saldotpv` double NOT NULL DEFAULT '0',
+ `saldolab` double NOT NULL DEFAULT '0',
+ `saldoprod` double NOT NULL DEFAULT '0',
+ `saldobruto` double NOT NULL DEFAULT '0',
+ `business_id` int(11) NOT NULL,
+ `exportado` tinyint(1) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`fecha`,`person_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `payroll_pais`
+--
+
+DROP TABLE IF EXISTS `payroll_pais`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `payroll_pais` (
+ `codpais` int(11) NOT NULL,
+ `pais` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`codpais`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `payroll_tipobasess`
+--
+
+DROP TABLE IF EXISTS `payroll_tipobasess`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `payroll_tipobasess` (
+ `id_payroll_tipobasess` int(11) NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`id_payroll_tipobasess`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `payrroll_apEmpresarial`
+--
+
+DROP TABLE IF EXISTS `payrroll_apEmpresarial`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `payrroll_apEmpresarial` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `codTrabajador` int(11) NOT NULL,
+ `Fecha` date NOT NULL,
+ `CosteEmpresaAT` decimal(8,2) NOT NULL,
+ `costeEmpresaCC` decimal(8,2) NOT NULL,
+ `costeEmpresaDesempleo` decimal(8,2) NOT NULL,
+ `costeEmpresaFP` decimal(8,2) NOT NULL,
+ `costeEmpresaFogasa` decimal(8,2) NOT NULL,
+ `costeEmpresaExtra` decimal(8,2) NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `person_user`
+--
+
+DROP TABLE IF EXISTS `person_user`;
+/*!50001 DROP VIEW IF EXISTS `person_user`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `person_user` AS SELECT
+ 1 AS `id`,
+ 1 AS `mysql_user_id`,
+ 1 AS `name`,
+ 1 AS `password`,
+ 1 AS `active`,
+ 1 AS `last_pass_change`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `person_user_idtrabajador`
+--
+
+DROP TABLE IF EXISTS `person_user_idtrabajador`;
+/*!50001 DROP VIEW IF EXISTS `person_user_idtrabajador`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `person_user_idtrabajador` AS SELECT
+ 1 AS `Id_Trabajador`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `plantpassport`
+--
+
+DROP TABLE IF EXISTS `plantpassport`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `plantpassport` (
+ `producer_id` mediumint(3) unsigned NOT NULL,
+ `plantpassport_authority_id` mediumint(3) unsigned NOT NULL,
+ `number` varchar(25) CHARACTER SET utf8 DEFAULT NULL,
+ PRIMARY KEY (`producer_id`,`plantpassport_authority_id`),
+ KEY `plantpassport_authority_idx` (`plantpassport_authority_id`),
+ KEY `producer_id_idx` (`producer_id`),
+ CONSTRAINT `plantpassport_authority` FOREIGN KEY (`plantpassport_authority_id`) REFERENCES `plantpassport_authority` (`plantpassport_authority_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `producer` FOREIGN KEY (`producer_id`) REFERENCES `producer` (`producer_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='tiene la asignacion de cada productor con la autoridad certificadora';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `plantpassport_authority`
+--
+
+DROP TABLE IF EXISTS `plantpassport_authority`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `plantpassport_authority` (
+ `plantpassport_authority_id` mediumint(3) unsigned NOT NULL,
+ `denomination` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Paises_Id` mediumint(8) unsigned DEFAULT NULL,
+ PRIMARY KEY (`plantpassport_authority_id`),
+ UNIQUE KEY `denomination_UNIQUE` (`denomination`),
+ KEY `Pais_id_idx` (`Paises_Id`),
+ CONSTRAINT `Pais_id` FOREIGN KEY (`Paises_Id`) REFERENCES `Paises` (`Id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='entidades certificadoras';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `postcodeKK`
+--
+
+DROP TABLE IF EXISTS `postcodeKK`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `postcodeKK` (
+ `postcode_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
+ `code` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `city_id` int(11) NOT NULL,
+ `nst_geo_id` int(11) DEFAULT NULL,
+ `nst_name` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`postcode_id`),
+ UNIQUE KEY `code_city` (`code`,`city_id`),
+ KEY `postal_code_idx` (`code`),
+ KEY `city_id_pk_idx` (`city_id`),
+ KEY `nst_geo_pc_id_idx` (`nst_geo_id`),
+ CONSTRAINT `city_id_pk` FOREIGN KEY (`city_id`) REFERENCES `city` (`city_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `nst_geo_pc_id` FOREIGN KEY (`nst_geo_id`) REFERENCES `nst`.`geo` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`postcode_BEFORE_INSERT` BEFORE INSERT ON `postcodeKK` FOR EACH ROW
+BEGIN
+
+ SET new.nst_name = new.code;
+
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `preparation_exception`
+--
+
+DROP TABLE IF EXISTS `preparation_exception`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `preparation_exception` (
+ `exception_day` date NOT NULL COMMENT 'preparation day',
+ `warehouse_id` smallint(6) unsigned DEFAULT NULL,
+ `percentage` tinyint(2) NOT NULL DEFAULT '0',
+ UNIQUE KEY `exception_day_UNIQUE` (`exception_day`),
+ UNIQUE KEY `warehouse_id_UNIQUE` (`warehouse_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `preparation_percentage`
+--
+
+DROP TABLE IF EXISTS `preparation_percentage`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `preparation_percentage` (
+ `week_day` tinyint(1) unsigned NOT NULL COMMENT 'preparation day. Funcion de mysql Lunes = 0, Domingo = 6',
+ `warehouse_id` smallint(6) unsigned DEFAULT NULL,
+ `percentage` tinyint(2) NOT NULL DEFAULT '0',
+ UNIQUE KEY `week_day_UNIQUE` (`week_day`),
+ UNIQUE KEY `warehouse_id_UNIQUE` (`warehouse_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `price_fixed`
+--
+
+DROP TABLE IF EXISTS `price_fixed`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `price_fixed` (
+ `item_id` int(10) NOT NULL,
+ `rate_0` double NOT NULL,
+ `rate_1` double NOT NULL,
+ `rate_2` double NOT NULL,
+ `rate_3` double NOT NULL,
+ `date_start` date NOT NULL,
+ `date_end` date NOT NULL,
+ `bonus` double NOT NULL DEFAULT '0',
+ `warehouse_id` smallint(5) unsigned NOT NULL DEFAULT '0',
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `price_fixed_id` int(11) NOT NULL AUTO_INCREMENT,
+ `grouping` smallint(5) DEFAULT NULL,
+ `Packing` int(11) DEFAULT NULL,
+ `caja` tinyint(4) DEFAULT NULL,
+ PRIMARY KEY (`item_id`,`date_start`,`date_end`,`warehouse_id`),
+ UNIQUE KEY `price_fixed_id_UNIQUE` (`price_fixed_id`),
+ KEY `item_id` (`item_id`),
+ KEY `date_start` (`date_start`),
+ KEY `date_end` (`date_end`),
+ KEY `warehouse_id` (`warehouse_id`),
+ CONSTRAINT `price_fixed_ibfk_1` FOREIGN KEY (`item_id`) REFERENCES `Articles` (`Id_Article`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`price_fixed_bi` BEFORE INSERT ON `vn2008`.`price_fixed`
+ FOR EACH ROW BEGIN
+ DECLARE v_aux DATE;
+ IF NEW.date_start > NEW.date_end THEN
+ SET v_aux = NEW.date_start;
+ SET NEW.date_start = NEW.date_end;
+ SET NEW.date_end = v_aux;
+ END IF;
+ END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`price_fixed_bu` BEFORE UPDATE ON `vn2008`.`price_fixed`
+ FOR EACH ROW BEGIN
+ DECLARE v_aux DATE;
+ IF NEW.date_start > NEW.date_end THEN
+ SET v_aux = NEW.date_start;
+ SET NEW.date_start = NEW.date_end;
+ SET NEW.date_end = v_aux;
+ END IF;
+ END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `producer`
+--
+
+DROP TABLE IF EXISTS `producer`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `producer` (
+ `producer_id` mediumint(3) unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `visible` tinyint(1) NOT NULL DEFAULT '1',
+ PRIMARY KEY (`producer_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `profile_labour_payroll`
+--
+
+DROP TABLE IF EXISTS `profile_labour_payroll`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `profile_labour_payroll` (
+ `profile_id` int(11) NOT NULL,
+ `codpais` int(11) NOT NULL,
+ `nivelformativo` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `NSSProvincia` tinyint(2) unsigned zerofill NOT NULL,
+ `NssNumero` varchar(8) COLLATE utf8_unicode_ci NOT NULL,
+ `NssDC` char(2) COLLATE utf8_unicode_ci NOT NULL,
+ `sexo` enum('H','M') COLLATE utf8_unicode_ci NOT NULL,
+ `estadocivil` enum('S','C') COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`profile_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `proveedores_clientes`
+--
+
+DROP TABLE IF EXISTS `proveedores_clientes`;
+/*!50001 DROP VIEW IF EXISTS `proveedores_clientes`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `proveedores_clientes` AS SELECT
+ 1 AS `Id_Proveedor`,
+ 1 AS `Proveedor`,
+ 1 AS `Id_Cliente`,
+ 1 AS `Cliente`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `provider_account_customer`
+--
+
+DROP TABLE IF EXISTS `provider_account_customer`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `provider_account_customer` (
+ `account_id` mediumint(8) unsigned NOT NULL,
+ PRIMARY KEY (`account_id`),
+ CONSTRAINT `provider_account_customer_ibfk_1` FOREIGN KEY (`account_id`) REFERENCES `Proveedores_account` (`Id_Proveedores_account`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Bank accounts used for customer transfers';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `province`
+--
+
+DROP TABLE IF EXISTS `province`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `province` (
+ `province_id` smallint(6) unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
+ `Paises_Id` mediumint(8) unsigned NOT NULL,
+ `warehouse_id` smallint(6) unsigned DEFAULT NULL COMMENT 'warehouse responsable de las rutas',
+ `zone` tinyint(4) DEFAULT NULL,
+ `nst_geo_id` int(11) DEFAULT NULL,
+ `nst_name` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `geoFk` int(11) DEFAULT NULL,
+ PRIMARY KEY (`province_id`),
+ KEY `Paises_Id` (`Paises_Id`),
+ KEY `warehouse_Id` (`warehouse_id`),
+ KEY `provicne_zone_fk_idx` (`zone`),
+ CONSTRAINT `province_ibfk_1` FOREIGN KEY (`Paises_Id`) REFERENCES `Paises` (`Id`) ON UPDATE CASCADE,
+ CONSTRAINT `province_zone_fk` FOREIGN KEY (`zone`) REFERENCES `zones` (`zone_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `warehouse_Id` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
+) ENGINE=InnoDB AUTO_INCREMENT=6 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`provinceBeforeInsert`
+ BEFORE INSERT ON `province` FOR EACH ROW
+BEGIN
+ IF NEW.`name` = '' THEN
+ CALL util.throw ('EMPTY_NAME');
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`provinceBeforeUpdate`
+ BEFORE UPDATE ON `province` FOR EACH ROW
+BEGIN
+ IF NEW.`name` = '' THEN
+ CALL util.throw ('EMPTY_NAME');
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `rec_translator`
+--
+
+DROP TABLE IF EXISTS `rec_translator`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `rec_translator` (
+ `Id_Article` int(11) NOT NULL,
+ `denominacion` varchar(85) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`Id_Article`,`denominacion`),
+ KEY `id_article_rec_idx` (`Id_Article`),
+ CONSTRAINT `id_article_rec` FOREIGN KEY (`Id_Article`) REFERENCES `Articles` (`Id_Article`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Equipara las denominaciones de las fincas de ecuador con nuestro Id_Article';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `recibida`
+--
+
+DROP TABLE IF EXISTS `recibida`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `recibida` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `num_recibida` mediumint(11) unsigned DEFAULT NULL COMMENT 'insertado por Trigger',
+ `serie` char(1) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'R',
+ `proveedor_id` int(11) NOT NULL,
+ `fecha` date NOT NULL COMMENT 'Fecha de emision de la factura',
+ `sref` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
+ `contabilizada` tinyint(1) NOT NULL DEFAULT '0',
+ `moneda_id` tinyint(3) unsigned NOT NULL DEFAULT '1',
+ `MYSQL_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `empresa_id` smallint(5) unsigned NOT NULL DEFAULT '442',
+ `gestdoc_id` int(11) DEFAULT NULL,
+ `dateBooking` date DEFAULT NULL COMMENT 'Fecha de contabilizacion',
+ `dateOperation` date DEFAULT NULL COMMENT 'Fecha de entrega de la mercancia o el suministro',
+ `cplusInvoiceType472Fk` int(10) unsigned DEFAULT '1',
+ `cplusRectificationTypeFk` int(10) unsigned DEFAULT '1',
+ `cplusSubjectOpFk` int(10) unsigned DEFAULT '1',
+ `cplusTaxBreakFk` int(10) unsigned DEFAULT '1',
+ `cplusTrascendency472Fk` int(10) unsigned DEFAULT '1',
+ PRIMARY KEY (`id`),
+ KEY `proveedor_id` (`proveedor_id`),
+ KEY `empresa_id` (`empresa_id`),
+ KEY `serie` (`serie`),
+ KEY `num_recibida_2` (`num_recibida`),
+ KEY `gestdoc_id` (`gestdoc_id`),
+ KEY `fecha` (`fecha`),
+ KEY `recibida_ibfk_3_idx` (`cplusSubjectOpFk`),
+ KEY `recibida_ibfk_4_idx` (`cplusTaxBreakFk`),
+ KEY `recibida_ibfk_5_idx` (`cplusInvoiceType472Fk`),
+ KEY `recibida_ibfk_6` (`cplusRectificationTypeFk`),
+ KEY `recibida_ibfk_7` (`cplusTrascendency472Fk`),
+ CONSTRAINT `recibida_ibfk_1` FOREIGN KEY (`proveedor_id`) REFERENCES `Proveedores` (`Id_Proveedor`) ON UPDATE CASCADE,
+ CONSTRAINT `recibida_ibfk_2` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `recibida_ibfk_3` FOREIGN KEY (`cplusSubjectOpFk`) REFERENCES `vn`.`cplusSubjectOp` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `recibida_ibfk_4` FOREIGN KEY (`cplusTaxBreakFk`) REFERENCES `vn`.`cplusTaxBreak` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `recibida_ibfk_5` FOREIGN KEY (`cplusInvoiceType472Fk`) REFERENCES `vn`.`cplusInvoiceType472` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `recibida_ibfk_6` FOREIGN KEY (`cplusRectificationTypeFk`) REFERENCES `vn`.`cplusRectificationType` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `recibida_ibfk_7` FOREIGN KEY (`cplusTrascendency472Fk`) REFERENCES `vn`.`cplusTrascendency472` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`recibida_bi`
+BEFORE INSERT ON `vn2008`.`recibida`
+FOR EACH ROW
+BEGIN
+ DECLARE v_serie CHAR(1) DEFAULT 'R';
+ DECLARE v_num_recibida INT;
+ DECLARE pais_emisor, pais_receptor INT;
+ DECLARE vActive TINYINT;
+
+ SELECT pais_id, active into pais_emisor, vActive FROM Proveedores WHERE Id_Proveedor = NEW.proveedor_id;
+ SELECT pais_id into pais_receptor FROM Proveedores WHERE Id_Proveedor = NEW.empresa_id;
+
+ IF vActive = 0 THEN
+ CALL util.throw('INACTIVE_PROVIDER');
+ END IF;
+
+ SELECT CASE WHEN (SELECT Cuenta FROM Proveedores where Id_Proveedor = NEW.proveedor_id) LIKE '___3______' THEN 'C'
+ WHEN (SELECT pais_emisor=pais_receptor from Paises p1 join Paises p2 ON p2.Id = pais_receptor AND p1.Id = pais_emisor
+ where p1.CEE < 2 and p2.CEE < 2) = 1 THEN 'R'
+ WHEN (SELECT pais_emisor <> pais_receptor from Paises p1 join Paises p2 ON p2.Id = pais_receptor AND p1.Id = pais_emisor
+ where p1.CEE < 2 and p2.CEE < 2) = 1 THEN 'E'
+ WHEN (SELECT pais_emisor<>pais_receptor from Paises p1 join Paises p2 ON p2.Id = pais_receptor AND p1.Id = pais_emisor
+ where NOT p1.CEE < 2 AND not p1.Id = 1) = 1 THEN 'W'
+ END INTO v_serie;
+
+ SET NEW.serie = v_serie;
+
+ IF v_serie LIKE 'W' THEN
+
+ SELECT IFNULL(MAX(num_recibida) + 1,1) INTO v_num_recibida FROM recibida
+ WHERE serie LIKE NEW.serie
+ AND YEAR(fecha) = YEAR(NEW.fecha)
+ AND empresa_id = NEW.empresa_id;
+
+ SET NEW.num_recibida = v_num_recibida;
+ END IF;
+
+
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!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);
+ DECLARE cta_proveeda VARCHAR(10);
+ DECLARE v_num_recibida INT;
+ DECLARE dblRefRate,dblRefMin,dblRef DOUBLE;
+ DECLARE vActive TINYINT;
+
+ SELECT active INTO vActive FROM Proveedores WHERE Id_Proveedor = NEW.proveedor_id;
+
+ IF vActive = 0 THEN
+ CALL util.throw('INACTIVE_PROVIDER');
+ END IF;
+
+ IF NEW.empresa_id <> OLD.empresa_id THEN
+ 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 */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `recibida_agricola`
+--
+
+DROP TABLE IF EXISTS `recibida_agricola`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `recibida_agricola` (
+ `recibida_id` mediumint(8) unsigned NOT NULL,
+ `num` smallint(5) unsigned NOT NULL,
+ PRIMARY KEY (`recibida_id`),
+ CONSTRAINT `recibida_agricola_ibfk_1` FOREIGN KEY (`recibida_id`) REFERENCES `recibida` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `recibida_entrada`
+--
+
+DROP TABLE IF EXISTS `recibida_entrada`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `recibida_entrada` (
+ `recibida_entrada_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `recibida_id` mediumint(8) unsigned NOT NULL,
+ `Id_Entrada` int(11) NOT NULL,
+ `percentage` decimal(10,2) unsigned NOT NULL DEFAULT '0.00',
+ `awb_recibida` mediumint(8) unsigned NOT NULL,
+ `Contabilizado` tinyint(3) unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`recibida_entrada_id`),
+ KEY `awb_recibida` (`awb_recibida`),
+ KEY `Id_Entrada` (`Id_Entrada`),
+ KEY `recibida_id` (`recibida_id`),
+ CONSTRAINT `recibida_entrada_ibfk_2` FOREIGN KEY (`Id_Entrada`) REFERENCES `Entradas` (`Id_Entrada`) ON UPDATE CASCADE
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `recibida_entrada_bi` BEFORE INSERT ON `recibida_entrada` FOR EACH ROW
+BEGIN
+ DECLARE intRecibida INT;
+ IF NEW.recibida_id = 0 THEN
+ SELECT recibida_id INTO intRecibida FROM recibida_entrada WHERE Id_Entrada = NEW.Id_Entrada;
+ SET NEW.recibida_id = intRecibida;
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `recibida_entrada_bu` BEFORE UPDATE ON `recibida_entrada` FOR EACH ROW
+BEGIN
+ DECLARE intRecibida INT;
+ IF NEW.recibida_id = 0 THEN
+ SELECT recibida_id INTO intRecibida FROM recibida_entrada WHERE Id_Entrada = NEW.Id_Entrada;
+ SET NEW.recibida_id = intRecibida;
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `recibida_intrastat`
+--
+
+DROP TABLE IF EXISTS `recibida_intrastat`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `recibida_intrastat` (
+ `recibida_id` mediumint(8) unsigned NOT NULL,
+ `Codintrastat` int(8) unsigned zerofill NOT NULL,
+ `importe` decimal(10,2) NOT NULL,
+ PRIMARY KEY (`recibida_id`,`Codintrastat`),
+ KEY `Codintrastat` (`Codintrastat`),
+ KEY `recibida_id` (`recibida_id`),
+ CONSTRAINT `recibida_intrastat_ibfk_1` FOREIGN KEY (`recibida_id`) REFERENCES `recibida` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `recibida_intrastat_ibfk_2` FOREIGN KEY (`Codintrastat`) REFERENCES `Intrastat` (`Codintrastat`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `recibida_iva`
+--
+
+DROP TABLE IF EXISTS `recibida_iva`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `recibida_iva` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `recibida_id` mediumint(8) unsigned NOT NULL,
+ `iva_id` tinyint(2) unsigned NOT NULL,
+ `bi` decimal(10,2) NOT NULL,
+ `gastos_id` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
+ `divisa` decimal(10,2) DEFAULT NULL,
+ `MYSQL_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ PRIMARY KEY (`id`),
+ KEY `gastos_id` (`gastos_id`),
+ KEY `recibida_id` (`recibida_id`),
+ KEY `recibida_iva_ibfk_2` (`iva_id`),
+ CONSTRAINT `recibida_iva_ibfk_2` FOREIGN KEY (`iva_id`) REFERENCES `iva_codigo` (`id`) ON DELETE NO ACTION ON UPDATE CASCADE,
+ CONSTRAINT `recibida_iva_ibfk_5` FOREIGN KEY (`recibida_id`) REFERENCES `recibida` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `recibida_iva_ibfk_6` FOREIGN KEY (`gastos_id`) REFERENCES `Gastos` (`Id_Gasto`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `recibida_vencimiento`
+--
+
+DROP TABLE IF EXISTS `recibida_vencimiento`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `recibida_vencimiento` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `recibida_id` mediumint(8) unsigned NOT NULL,
+ `fecha` date NOT NULL,
+ `banco_id` int(11) NOT NULL DEFAULT '3117',
+ `cantidad` decimal(10,2) NOT NULL DEFAULT '0.00',
+ `divisa` decimal(10,2) DEFAULT NULL,
+ `stamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`id`),
+ KEY `recibida_id` (`recibida_id`),
+ KEY `banco_id` (`banco_id`),
+ CONSTRAINT `recibida_vencimiento_ibfk_6` FOREIGN KEY (`banco_id`) REFERENCES `Bancos` (`Id_Banco`) ON UPDATE CASCADE,
+ CONSTRAINT `recibida_vencimiento_ibfk_7` FOREIGN KEY (`recibida_id`) REFERENCES `recibida` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`recibida_vencimiento_bi`
+BEFORE INSERT ON `vn2008`.`recibida_vencimiento`
+FOR EACH ROW
+BEGIN
+ IF NEW.cantidad = 0 THEN
+ SET NEW.id = 5;
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `recovery`
+--
+
+DROP TABLE IF EXISTS `recovery`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `recovery` (
+ `recovery_id` int(11) NOT NULL AUTO_INCREMENT,
+ `Id_Cliente` int(11) NOT NULL DEFAULT '0',
+ `dstart` date NOT NULL COMMENT 'Fecha a partir de la que comienza el recobro',
+ `dend` date DEFAULT NULL COMMENT 'Fecha en la que acaba',
+ `amount` double NOT NULL,
+ `period` tinyint(3) unsigned NOT NULL DEFAULT '7',
+ PRIMARY KEY (`recovery_id`),
+ KEY `cliente_idx` (`Id_Cliente`),
+ CONSTRAINT `cliente333` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON UPDATE CASCADE,
+ CONSTRAINT `cliente_cliente` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='En esta tabla apuntaremos los acuerdos de recobro semanal a ';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `recovery_asset`
+--
+
+DROP TABLE IF EXISTS `recovery_asset`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `recovery_asset` (
+ `recovery_asset_id` int(11) NOT NULL AUTO_INCREMENT,
+ `dreceipt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `amount` double NOT NULL,
+ `Id_Cliente` int(11) NOT NULL,
+ PRIMARY KEY (`recovery_asset_id`),
+ KEY `Cliente_Recovery_detalle_idx` (`Id_Cliente`),
+ CONSTRAINT `Cliente_Recovery_detalle` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='En esta tabla se registra el detalle de los recobros definid';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `reference_min`
+--
+
+DROP TABLE IF EXISTS `reference_min`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `reference_min` (
+ `date` date NOT NULL,
+ `rate` double NOT NULL,
+ `moneda_id` tinyint(3) unsigned NOT NULL DEFAULT '2'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `reference_rate`
+--
+
+DROP TABLE IF EXISTS `reference_rate`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `reference_rate` (
+ `moneda_id` tinyint(3) unsigned NOT NULL,
+ `date` date NOT NULL,
+ `rate` float unsigned NOT NULL,
+ PRIMARY KEY (`moneda_id`,`date`),
+ KEY `date` (`date`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `reinos`
+--
+
+DROP TABLE IF EXISTS `reinos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `reinos` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `reino` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `orden` int(10) unsigned DEFAULT NULL,
+ `display` tinyint(4) NOT NULL DEFAULT '1',
+ `color` char(6) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `efimero` int(11) NOT NULL DEFAULT '0' COMMENT 'Sirve para filtrar aquellos reinos que tienen precios estables',
+ `mercancia` tinyint(1) NOT NULL DEFAULT '1',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `reparacion`
+--
+
+DROP TABLE IF EXISTS `reparacion`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `reparacion` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `id_user` int(2) DEFAULT NULL,
+ `config_host` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
+ `problema` text COLLATE utf8_unicode_ci NOT NULL,
+ `solucion` text COLLATE utf8_unicode_ci NOT NULL,
+ `estado` enum('No atendida','Vista','En Proceso','Solucionada') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'No atendida',
+ `fecha` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `id_reparador` int(2) DEFAULT NULL,
+ `ref` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
+ `articulo` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `marca` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `config_host` (`config_host`),
+ KEY `id_user` (`id_user`),
+ KEY `id_reparador` (`id_reparador`),
+ CONSTRAINT `reparacion_ibfk_1` FOREIGN KEY (`id_user`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON DELETE NO ACTION ON UPDATE CASCADE,
+ CONSTRAINT `reparacion_ibfk_2` FOREIGN KEY (`config_host`) REFERENCES `config_host` (`config_host_id`) ON DELETE NO ACTION ON UPDATE CASCADE,
+ CONSTRAINT `reparacion_ibfk_4` FOREIGN KEY (`id_reparador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON DELETE NO ACTION ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `rolekk`
+--
+
+DROP TABLE IF EXISTS `rolekk`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `rolekk` (
+ `role_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
+ `description` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`role_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `root`
+--
+
+DROP TABLE IF EXISTS `root`;
+/*!50001 DROP VIEW IF EXISTS `root`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `root` AS SELECT
+ 1 AS `DiadelaSemana`,
+ 1 AS `Hora`,
+ 1 AS `Fecha`,
+ 1 AS `Dispositivo`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `rounding`
+--
+
+DROP TABLE IF EXISTS `rounding`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `rounding` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `amount` double NOT NULL DEFAULT '0',
+ `price` double DEFAULT '0',
+ `discount` double NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `route`
+--
+
+DROP TABLE IF EXISTS `route`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `route` (
+ `agency_id` smallint(5) unsigned NOT NULL,
+ `week_day` tinyint(3) unsigned NOT NULL COMMENT 'weekday de access el domingo = 1, sabado = 7. Intentar cambiar al de Mysql Lunes = 0',
+ PRIMARY KEY (`agency_id`,`week_day`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `ruta_location`
+--
+
+DROP TABLE IF EXISTS `ruta_location`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `ruta_location` (
+ `Id_Ruta` int(10) unsigned NOT NULL,
+ `longitude` decimal(11,7) NOT NULL,
+ `latitude` decimal(11,7) NOT NULL,
+ `time_location` datetime NOT NULL,
+ PRIMARY KEY (`Id_Ruta`),
+ CONSTRAINT `Id_Ruta_Location` FOREIGN KEY (`Id_Ruta`) REFERENCES `Rutas` (`Id_Ruta`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `salarioDits`
+--
+
+DROP TABLE IF EXISTS `salarioDits`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `salarioDits` (
+ `idSalario_dits` int(11) NOT NULL AUTO_INCREMENT,
+ `idaccion_dits` int(11) NOT NULL,
+ `ODBC_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `Id_Ticket` int(11) NOT NULL,
+ `Id_Trabajador` int(11) NOT NULL,
+ `value_old` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `value_new` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`idSalario_dits`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `scan`
+--
+
+DROP TABLE IF EXISTS `scan`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `scan` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `lft` int(11) NOT NULL,
+ `rgt` int(11) NOT NULL,
+ `name` varchar(45) CHARACTER SET utf8 DEFAULT NULL,
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Se borra automaticamente 8 dias en el pasado desde vn2008.clean';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `scan_line`
+--
+
+DROP TABLE IF EXISTS `scan_line`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `scan_line` (
+ `scan_line_id` int(11) NOT NULL AUTO_INCREMENT,
+ `scan_id` int(11) NOT NULL,
+ `code` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`scan_line_id`),
+ KEY `id_scan_id_idx` (`scan_id`),
+ CONSTRAINT `id_scan_id` FOREIGN KEY (`scan_id`) REFERENCES `scan` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `sharingcart`
+--
+
+DROP TABLE IF EXISTS `sharingcart`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `sharingcart` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `Id_Trabajador` int(11) NOT NULL,
+ `datSTART` date NOT NULL,
+ `datEND` date NOT NULL,
+ `Id_Suplente` int(11) NOT NULL,
+ `odbc_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ PRIMARY KEY (`id`),
+ KEY `Worker` (`Id_Trabajador`),
+ KEY `Suplent` (`Id_Suplente`),
+ CONSTRAINT `Suplent_key` FOREIGN KEY (`Id_Suplente`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE,
+ CONSTRAINT `Trabajador_key` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `sharingcart_bi` BEFORE INSERT ON `sharingcart` FOR EACH ROW
+
+BEGIN
+
+ SET NEW.datSTART = GREATEST(CURDATE(),NEW.datSTART);
+ SET NEW.datEND = GREATEST(CURDATE(),NEW.datEND);
+
+ IF NEW.Id_Trabajador = NEW.Id_Suplente THEN
+ SET NEW.Id_Trabajador = NULL;
+
+
+
+END IF;
+
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `sharingcart_bu` BEFORE UPDATE ON `sharingcart` FOR EACH ROW
+
+BEGIN
+
+ SET NEW.datSTART = GREATEST(CURDATE(),NEW.datSTART);
+ SET NEW.datEND = GREATEST(CURDATE(),NEW.datEND);
+
+ IF NEW.Id_Trabajador = NEW.Id_Suplente THEN
+ SET NEW.Id_Trabajador = NULL;
+
+
+END IF;
+
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `sharingclient`
+--
+
+DROP TABLE IF EXISTS `sharingclient`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `sharingclient` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `Id_Trabajador` int(11) NOT NULL,
+ `datSTART` date NOT NULL,
+ `datEND` date NOT NULL,
+ `Id_Cliente` int(11) NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `Worker` (`Id_Trabajador`),
+ KEY `Client` (`Id_Cliente`),
+ CONSTRAINT `Clients_key` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON UPDATE CASCADE,
+ CONSTRAINT `Trabajadores_key` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`sharingclient_BEFORE_INSERT` BEFORE INSERT ON `sharingclient` FOR EACH ROW
+BEGIN
+
+SET NEW.datEND = GREATEST(CURDATE(),NEW.datEND);
+SET NEW.datSTART = GREATEST(CURDATE(),NEW.datSTART);
+
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`sharingclient_BEFORE_UPDATE` BEFORE UPDATE ON `sharingclient` FOR EACH ROW
+BEGIN
+
+SET NEW.datEND = GREATEST(CURDATE(),NEW.datEND);
+SET NEW.datSTART = GREATEST(CURDATE(),NEW.datSTART);
+
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `sms`
+--
+
+DROP TABLE IF EXISTS `sms`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `sms` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `Id_trabajador` int(11) NOT NULL,
+ `text` varchar(160) COLLATE utf8_unicode_ci NOT NULL,
+ `to` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
+ `DATE_ODBC` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `sent` tinyint(4) NOT NULL DEFAULT '0',
+ `Id_Cliente` int(11) DEFAULT NULL,
+ `response` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `from` varchar(9) COLLATE utf8_unicode_ci NOT NULL DEFAULT '693474205',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `sms_bi` BEFORE INSERT ON `sms`
+ FOR EACH ROW
+ BEGIN
+ DECLARE intLast INT;
+ DECLARE strTrab VARCHAR(3);
+
+ SET NEW.`to` = LTRIM(NEW.`to`);
+ IF NEW.`to` LIKE '6________' or NEW.`to` LIKE '7________'THEN
+ SET NEW.`to` = CONCAT('0034',REPLACE(NEW.`to`,' ',''));
+ ELSE
+ IF NEW.`to` NOT LIKE '00346________' or NEW.`to` NOT LIKE '00347________'THEN
+ INSERT INTO Mensajes(Mensaje,Fecha,Remitente,Destinatario)
+ VALUES(CONCAT("El mensaje que ha enviado no contenía un número de teléfono MÓVIL válido:",NEW.`to`),NOW(),20,NEW.Id_trabajador);
+ SELECT LAST_INSERT_ID() INTO intlast;
+ SELECT CodigoTrabajador INTO strTrab FROM Trabajadores WHERE id_Trabajador = NEW.Id_Trabajador;
+ INSERT INTO Incidencias(Incidencia,Id_Trabajador,Destino,Fecha,Fecha_Mod)
+ VALUES (CONCAT('@@ ' , intLast), 20,strTrab, NOW(),NOW());
+ SET NEW.id = 0;
+SET intLast = 'fallo provocado';
+ END IF;
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `split`
+--
+
+DROP TABLE IF EXISTS `split`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `split` (
+ `edi_id` int(11) NOT NULL,
+ `customer_id` int(11) NOT NULL,
+ `quantity` int(11) NOT NULL,
+ KEY `edi_id` (`edi_id`,`customer_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `state`
+--
+
+DROP TABLE IF EXISTS `state`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `state` (
+ `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
+ `order` tinyint(3) unsigned DEFAULT NULL,
+ `alert_level` int(11) NOT NULL DEFAULT '0',
+ `code` varchar(45) CHARACTER SET utf8 NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `code_UNIQUE` (`code`)
+) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `tag`
+--
+
+DROP TABLE IF EXISTS `tag`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `tag` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `name` varchar(25) CHARACTER SET utf8 NOT NULL,
+ `free` tinyint(1) NOT NULL DEFAULT '1',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Categorias para etiquetar los productos';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `tarifa_componentes`
+--
+
+DROP TABLE IF EXISTS `tarifa_componentes`;
+/*!50001 DROP VIEW IF EXISTS `tarifa_componentes`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `tarifa_componentes` AS SELECT
+ 1 AS `Id_Componente`,
+ 1 AS `Componente`,
+ 1 AS `tarifa_componentes_series_id`,
+ 1 AS `tarifa_class`,
+ 1 AS `tax`,
+ 1 AS `is_renewable`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `tarifa_componentes_series`
+--
+
+DROP TABLE IF EXISTS `tarifa_componentes_series`;
+/*!50001 DROP VIEW IF EXISTS `tarifa_componentes_series`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `tarifa_componentes_series` AS SELECT
+ 1 AS `tarifa_componentes_series_id`,
+ 1 AS `Serie`,
+ 1 AS `base`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `tarifas`
+--
+
+DROP TABLE IF EXISTS `tarifas`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `tarifas` (
+ `tarifa_id` int(11) NOT NULL AUTO_INCREMENT,
+ `fecha` date NOT NULL,
+ `warehouse_id` smallint(6) unsigned NOT NULL,
+ `t0` double NOT NULL,
+ `t1` double NOT NULL,
+ `t2` double NOT NULL,
+ `t3` double NOT NULL,
+ PRIMARY KEY (`tarifa_id`),
+ KEY `tarifa_warehouse` (`warehouse_id`),
+ CONSTRAINT `tarifa_warehouse` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `tblContadores`
+--
+
+DROP TABLE IF EXISTS `tblContadores`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `tblContadores` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `ochoa` int(10) unsigned NOT NULL,
+ `nfactura` int(11) DEFAULT '0',
+ `nasiento` int(11) DEFAULT '0',
+ `serieA` int(11) DEFAULT '0',
+ `serieE` int(11) DEFAULT '0',
+ `serieR` int(11) DEFAULT '0',
+ `serieC` int(11) DEFAULT '0',
+ `SerieH` int(11) NOT NULL,
+ `serieP` int(11) DEFAULT '0',
+ `serieT` int(11) DEFAULT '0',
+ `FechaInventario` datetime DEFAULT NULL,
+ `serieM` int(11) DEFAULT '0',
+ `HistoricoArticulo` int(11) DEFAULT '0',
+ `week_goal` int(11) DEFAULT NULL,
+ `Rutafotos` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `numCaja` int(11) DEFAULT '0',
+ `CodigoRojo` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Tablet_Hora` datetime DEFAULT NULL,
+ `t0` int(11) NOT NULL DEFAULT '0',
+ `t1` int(11) NOT NULL DEFAULT '0',
+ `t2` int(11) NOT NULL DEFAULT '0',
+ `t3` int(11) NOT NULL DEFAULT '0',
+ `cc` double NOT NULL DEFAULT '0',
+ `palet` double NOT NULL DEFAULT '0',
+ `campaign` datetime NOT NULL,
+ `campaign_life` tinyint(3) unsigned NOT NULL,
+ `truck_days` tinyint(3) unsigned NOT NULL,
+ `tasa_transporte` double NOT NULL,
+ `escaner_path` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `turnoimpreso` int(4) DEFAULT NULL,
+ `truck_length` int(11) DEFAULT '24',
+ `fuel_consumption` int(11) DEFAULT NULL,
+ `petrol` decimal(10,1) DEFAULT NULL,
+ `maintenance` decimal(10,1) DEFAULT NULL,
+ `hour_price` decimal(10,1) DEFAULT NULL,
+ `meter_price` decimal(10,1) DEFAULT NULL,
+ `km_price` decimal(10,1) DEFAULT NULL,
+ `route_option` int(11) DEFAULT '1',
+ `dbproduccion` tinyint(1) NOT NULL DEFAULT '1',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM AUTO_INCREMENT=4 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`tblContadores_bi` BEFORE INSERT ON `tblContadores` FOR EACH ROW
+BEGIN
+ DECLARE v_count INT;
+
+ SELECT COUNT(*) INTO v_count FROM tblContadores;
+
+ IF v_count > 0 THEN
+ SIGNAL SQLSTATE '45000'
+ SET MESSAGE_TEXT = 'ONLY_ONE_ROW_ALLOWED';
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `tblIVA`
+--
+
+DROP TABLE IF EXISTS `tblIVA`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `tblIVA` (
+ `tipoiva` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `iva` smallint(6) NOT NULL DEFAULT '0',
+ `cuenta` double DEFAULT '0',
+ `cuentaRE` double DEFAULT '0',
+ `cuentaivaRE` double DEFAULT '0',
+ `REQ` double DEFAULT '0',
+ PRIMARY KEY (`tipoiva`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `template_bionic_component`
+--
+
+DROP TABLE IF EXISTS `template_bionic_component`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `template_bionic_component` (
+ `warehouse_id` smallint(5) unsigned NOT NULL,
+ `item_id` int(11) NOT NULL,
+ `component_id` int(10) unsigned NOT NULL,
+ `cost` decimal(10,4) NOT NULL,
+ KEY `item_warehouse` (`item_id`,`warehouse_id`) USING BTREE,
+ KEY `item_warehouse_component` (`item_id`,`warehouse_id`,`component_id`) USING HASH
+) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `template_bionic_lot`
+--
+
+DROP TABLE IF EXISTS `template_bionic_lot`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `template_bionic_lot` (
+ `warehouse_id` smallint(5) unsigned NOT NULL,
+ `item_id` int(11) NOT NULL,
+ `available` double DEFAULT NULL,
+ `buy_id` int(11) DEFAULT NULL,
+ `fix` tinyint(3) unsigned DEFAULT '0',
+ KEY `item_id` (`item_id`),
+ KEY `item_warehouse` (`item_id`,`warehouse_id`) USING HASH
+) ENGINE=MEMORY DEFAULT CHARSET=utf8;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `template_bionic_price`
+--
+
+DROP TABLE IF EXISTS `template_bionic_price`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `template_bionic_price` (
+ `warehouse_id` smallint(5) unsigned NOT NULL,
+ `item_id` int(11) NOT NULL,
+ `rate` tinyint(3) unsigned NOT NULL,
+ `items` int(11) DEFAULT NULL,
+ `grouping` int(11) DEFAULT NULL,
+ `price` decimal(10,2) DEFAULT NULL,
+ KEY `item_id` (`item_id`) USING BTREE
+) ENGINE=MEMORY DEFAULT CHARSET=utf8;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `thermograph`
+--
+
+DROP TABLE IF EXISTS `thermograph`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `thermograph` (
+ `thermograph_id` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `model` enum('TL30','SENSITECH','TREKVIEW1','TREKVIEW2','DISPOSABLE') COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`thermograph_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `ticketCreationData`
+--
+
+DROP TABLE IF EXISTS `ticketCreationData`;
+/*!50001 DROP VIEW IF EXISTS `ticketCreationData`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `ticketCreationData` AS SELECT
+ 1 AS `DiadelaSemana`,
+ 1 AS `Hora`,
+ 1 AS `Fecha`,
+ 1 AS `Dispositivo`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `ticket_location`
+--
+
+DROP TABLE IF EXISTS `ticket_location`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `ticket_location` (
+ `Id_Ticket` int(11) NOT NULL,
+ `longitude` decimal(11,7) DEFAULT NULL,
+ `latitude` decimal(11,7) DEFAULT NULL,
+ PRIMARY KEY (`Id_Ticket`),
+ CONSTRAINT `Id_Ticket_Location` FOREIGN KEY (`Id_Ticket`) REFERENCES `Tickets` (`Id_Ticket`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `ticket_observation`
+--
+
+DROP TABLE IF EXISTS `ticket_observation`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `ticket_observation` (
+ `ticket_observation_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `Id_Ticket` int(11) NOT NULL,
+ `observation_type_id` tinyint(3) unsigned NOT NULL,
+ `text` text COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`ticket_observation_id`),
+ UNIQUE KEY `Id_Ticket` (`Id_Ticket`,`observation_type_id`),
+ KEY `observation_type_id` (`observation_type_id`),
+ CONSTRAINT `ticket_observation_ibfk_1` FOREIGN KEY (`Id_Ticket`) REFERENCES `Tickets` (`Id_Ticket`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `ticket_observation_ibfk_2` FOREIGN KEY (`observation_type_id`) REFERENCES `observation_type` (`observation_type_id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Todas las observaciones referentes a un ticket';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `ticket_stateKK`
+--
+
+DROP TABLE IF EXISTS `ticket_stateKK`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `ticket_stateKK` (
+ `ticket_id` int(11) NOT NULL,
+ `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `user_id` int(11) NOT NULL,
+ `state_id` tinyint(1) unsigned NOT NULL DEFAULT '1',
+ UNIQUE KEY `ticket_id` (`ticket_id`),
+ KEY `user_id` (`user_id`),
+ KEY `state_id` (`state_id`),
+ CONSTRAINT `ticket_stateKK_ibfk_1` FOREIGN KEY (`ticket_id`) REFERENCES `Tickets` (`Id_Ticket`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `ticket_stateKK_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON DELETE NO ACTION ON UPDATE CASCADE,
+ CONSTRAINT `ticket_stateKK_ibfk_3` FOREIGN KEY (`state_id`) REFERENCES `state` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`ticket_stateAfterInsert`
+ AFTER INSERT ON `ticket_stateKK` FOR EACH ROW
+BEGIN
+ CALL stock.queueAdd ('ticket', NEW.ticket_id, NULL);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`ticket_stateAfterDelete`
+ AFTER UPDATE ON `ticket_stateKK` FOR EACH ROW
+BEGIN
+ CALL stock.queueAdd ('ticket', NEW.ticket_id, OLD.ticket_id);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `tickets_gestdoc`
+--
+
+DROP TABLE IF EXISTS `tickets_gestdoc`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `tickets_gestdoc` (
+ `Id_Ticket` int(11) NOT NULL,
+ `gestdoc_id` int(11) NOT NULL,
+ PRIMARY KEY (`Id_Ticket`,`gestdoc_id`),
+ KEY `gestdoc_id` (`gestdoc_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `time`
+--
+
+DROP TABLE IF EXISTS `time`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `time` (
+ `date` date NOT NULL,
+ `period` int(6) NOT NULL,
+ `month` int(2) NOT NULL,
+ `year` int(4) NOT NULL,
+ `day` int(2) NOT NULL,
+ `week` int(2) NOT NULL,
+ PRIMARY KEY (`date`),
+ KEY `day_index` (`day`) USING HASH,
+ KEY `week_index` (`week`) USING HASH,
+ KEY `year_index` (`year`) USING HASH,
+ KEY `month_index` (`month`) USING HASH,
+ KEY `periodo` (`period`) USING HASH
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Tabla de referencia para las semanas, años y meses';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `tipsa`
+--
+
+DROP TABLE IF EXISTS `tipsa`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `tipsa` (
+ `kilos` tinyint(3) unsigned NOT NULL,
+ `importe` double unsigned NOT NULL,
+ `zona` tinyint(3) unsigned NOT NULL,
+ PRIMARY KEY (`kilos`,`zona`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `tmpNEWTARIFAS`
+--
+
+DROP TABLE IF EXISTS `tmpNEWTARIFAS`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `tmpNEWTARIFAS` (
+ `Id_Cliente` int(11) NOT NULL,
+ `Cliente` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `Consumo_medio_mensual` double(17,0) DEFAULT NULL,
+ `Tarifa_Actual` int(11) DEFAULT '0',
+ `Nueva_Tarifa` int(11) DEFAULT NULL,
+ `Id_Trabajador` int(11) DEFAULT '20',
+ PRIMARY KEY (`Id_Cliente`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `transport`
+--
+
+DROP TABLE IF EXISTS `transport`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `transport` (
+ `wday` tinyint(4) NOT NULL,
+ PRIMARY KEY (`wday`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `travel`
+--
+
+DROP TABLE IF EXISTS `travel`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `travel` (
+ `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
+ `shipment` date DEFAULT NULL,
+ `shipment_hour` time DEFAULT NULL,
+ `landing` date NOT NULL,
+ `landing_hour` time DEFAULT NULL,
+ `warehouse_id` smallint(6) unsigned DEFAULT NULL,
+ `warehouse_id_out` smallint(6) unsigned DEFAULT NULL,
+ `agency_id` int(11) DEFAULT NULL,
+ `ref` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `delivered` tinyint(1) NOT NULL DEFAULT '0',
+ `received` tinyint(1) NOT NULL DEFAULT '0',
+ `m3` decimal(10,2) unsigned DEFAULT NULL,
+ `kg` decimal(10,0) unsigned DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `shipment_2` (`shipment`,`landing`,`warehouse_id`,`warehouse_id_out`,`agency_id`,`ref`),
+ KEY `agency_id` (`agency_id`),
+ KEY `shipment` (`shipment`),
+ KEY `landing` (`landing`),
+ KEY `warehouse_landing` (`warehouse_id`,`landing`),
+ KEY `warehouse_out_shipment` (`warehouse_id_out`,`shipment`),
+ CONSTRAINT `travel_ibfk_1` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `travel_ibfk_2` FOREIGN KEY (`warehouse_id_out`) REFERENCES `warehouse` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `travel_ibfk_3` FOREIGN KEY (`agency_id`) REFERENCES `Agencias` (`Id_Agencia`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=DYNAMIC;
+/*!40101 SET character_set_client = @saved_cs_client */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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())
+ OR NEW.landing < NEW.shipment
+ THEN
+ SET NEW.landing = NULL;
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `travelBeforeUpdate`
+ BEFORE UPDATE ON `travel` FOR EACH ROW
+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())
+ THEN
+ 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()));
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`travelAfterUpdate`
+ AFTER UPDATE ON `travel` FOR EACH ROW
+BEGIN
+ CALL stock.queueAdd ('travel', NEW.id, OLD.id);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn2008`.`travelAfterDelete`
+ AFTER DELETE ON `travel` FOR EACH ROW
+BEGIN
+ CALL stock.queueAdd ('travel', NULL, OLD.id);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `travel_dits`
+--
+
+DROP TABLE IF EXISTS `travel_dits`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `travel_dits` (
+ `idtravel_dits` int(11) NOT NULL AUTO_INCREMENT,
+ `idaccion_dits` int(11) NOT NULL,
+ `ODBC_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `Id_Ticket` int(11) NOT NULL,
+ `Id_Trabajador` int(11) NOT NULL,
+ `value_old` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `value_new` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`idtravel_dits`),
+ KEY `fgkey1_idx` (`idaccion_dits`),
+ KEY `fgkey2_idx` (`Id_Ticket`),
+ KEY `fgkey3_idx` (`Id_Trabajador`),
+ CONSTRAINT `travel_dits_ibfk_1` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON DELETE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `travel_pattern`
+--
+
+DROP TABLE IF EXISTS `travel_pattern`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `travel_pattern` (
+ `travel_pattern_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
+ `week_start` tinyint(3) unsigned NOT NULL,
+ `week_end` tinyint(3) unsigned NOT NULL,
+ `warehouse_out` smallint(5) unsigned NOT NULL,
+ `warehouse_in` smallint(5) unsigned NOT NULL,
+ `agency_id` int(11) NOT NULL,
+ `day_out` tinyint(3) unsigned NOT NULL,
+ `duration` tinyint(3) unsigned NOT NULL,
+ `ref` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`travel_pattern_id`),
+ KEY `warehouse_out` (`warehouse_out`),
+ KEY `warehouse_in` (`warehouse_in`),
+ KEY `agency_id` (`agency_id`),
+ CONSTRAINT `travel_pattern_ibfk_3` FOREIGN KEY (`warehouse_out`) REFERENCES `warehouse` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `travel_pattern_ibfk_4` FOREIGN KEY (`agency_id`) REFERENCES `Agencias` (`Id_Agencia`) ON UPDATE CASCADE,
+ CONSTRAINT `travel_pattern_ibfk_5` FOREIGN KEY (`warehouse_in`) REFERENCES `warehouse` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `travel_reserve`
+--
+
+DROP TABLE IF EXISTS `travel_reserve`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `travel_reserve` (
+ `travel_reserve_id` int(11) NOT NULL AUTO_INCREMENT,
+ `travel_id` int(11) unsigned NOT NULL,
+ `Id_Trabajador` int(11) NOT NULL,
+ `reserved` decimal(4,1) DEFAULT NULL,
+ `buyed` decimal(4,1) DEFAULT NULL,
+ `askingfor` decimal(4,1) DEFAULT NULL,
+ `odbc_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ `labeled` decimal(4,1) unsigned NOT NULL DEFAULT '0.0',
+ PRIMARY KEY (`Id_Trabajador`,`travel_id`),
+ UNIQUE KEY `travel_reserve_id_UNIQUE` (`travel_reserve_id`),
+ KEY `travel_travel_reserve_idx` (`travel_id`),
+ KEY `traveL_buyer_id_idx` (`Id_Trabajador`),
+ CONSTRAINT `travel_reserve_ibfk_1` FOREIGN KEY (`travel_id`) REFERENCES `travel` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='En esta tabla almacenamos los m3 que cada comprador tiene asignados, por travel.';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `travel_thermograph`
+--
+
+DROP TABLE IF EXISTS `travel_thermograph`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `travel_thermograph` (
+ `thermograph_id` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `odbc_date` date NOT NULL,
+ `warehouse_id` smallint(6) unsigned NOT NULL,
+ `travel_id` int(10) unsigned DEFAULT NULL,
+ `temperature` enum('COOL','WARM') COLLATE utf8_unicode_ci NOT NULL,
+ `result` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `gestdoc_id` int(11) DEFAULT NULL,
+ PRIMARY KEY (`thermograph_id`,`odbc_date`),
+ KEY `thermograph_fk_idx` (`thermograph_id`),
+ KEY `gestdoc_fk_idx` (`gestdoc_id`),
+ KEY `travel_id` (`travel_id`),
+ KEY `warehouse_id` (`warehouse_id`),
+ CONSTRAINT `gestdoc_fk` FOREIGN KEY (`gestdoc_id`) REFERENCES `gestdoc` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `thermograph_fk` FOREIGN KEY (`thermograph_id`) REFERENCES `thermograph` (`thermograph_id`) ON UPDATE CASCADE,
+ CONSTRAINT `travel_fk` FOREIGN KEY (`travel_id`) REFERENCES `travel` (`id`),
+ CONSTRAINT `travel_thermograph_ibfk_1` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON DELETE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Registra cada termografo que se ha introducido en cada travel';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `trolley`
+--
+
+DROP TABLE IF EXISTS `trolley`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `trolley` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `fecha` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `ref` varchar(4) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `turn`
+--
+
+DROP TABLE IF EXISTS `turn`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `turn` (
+ `number` int(11) NOT NULL,
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`number`,`odbc_date`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `unary`
+--
+
+DROP TABLE IF EXISTS `unary`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `unary` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `parent` int(11) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `idunary_UNIQUE` (`id`),
+ KEY `unary_parent_idx` (`parent`),
+ CONSTRAINT `unary_parent` FOREIGN KEY (`parent`) REFERENCES `unary` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `unaryScanFilter`
+--
+
+DROP TABLE IF EXISTS `unaryScanFilter`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `unaryScanFilter` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `filter` text COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `unary_scan`
+--
+
+DROP TABLE IF EXISTS `unary_scan`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `unary_scan` (
+ `unary_id` int(11) NOT NULL,
+ `name` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `type` set('BUYS','EXPEDITIONS') COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`unary_id`),
+ KEY `scan_unary_idx` (`unary_id`),
+ CONSTRAINT `unary_scan` FOREIGN KEY (`unary_id`) REFERENCES `unary` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `unary_scan_line`
+--
+
+DROP TABLE IF EXISTS `unary_scan_line`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `unary_scan_line` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `code` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `unary_id` int(11) NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `id_UNIQUE` (`id`),
+ KEY `unary_line_idx` (`unary_id`),
+ CONSTRAINT `unary_line` FOREIGN KEY (`unary_id`) REFERENCES `unary_scan` (`unary_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `unary_scan_line_buy`
+--
+
+DROP TABLE IF EXISTS `unary_scan_line_buy`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `unary_scan_line_buy` (
+ `scan_line_id` int(11) NOT NULL,
+ `Id_Article` int(11) NOT NULL,
+ PRIMARY KEY (`scan_line_id`),
+ UNIQUE KEY `scan_line_id_UNIQUE` (`scan_line_id`),
+ KEY `Id_Article_buy_idx` (`Id_Article`),
+ CONSTRAINT `Id_Article_buy` FOREIGN KEY (`Id_Article`) REFERENCES `Articles` (`Id_Article`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `scan_line_id_patriarcal` FOREIGN KEY (`scan_line_id`) REFERENCES `unary_scan_line` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `unary_scan_line_expedition`
+--
+
+DROP TABLE IF EXISTS `unary_scan_line_expedition`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `unary_scan_line_expedition` (
+ `scan_line_id` int(11) NOT NULL,
+ `expedition_id` int(11) NOT NULL,
+ PRIMARY KEY (`scan_line_id`),
+ UNIQUE KEY `scan_line_id_UNIQUE` (`scan_line_id`),
+ KEY `expedition_id_scan_idx` (`expedition_id`),
+ CONSTRAINT `expedition_id_scan` FOREIGN KEY (`expedition_id`) REFERENCES `expeditions` (`expeditions_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `unary_source`
+--
+
+DROP TABLE IF EXISTS `unary_source`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `unary_source` (
+ `name` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `v_Agenda`
+--
+
+DROP TABLE IF EXISTS `v_Agenda`;
+/*!50001 DROP VIEW IF EXISTS `v_Agenda`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_Agenda` AS SELECT
+ 1 AS `Tipo`,
+ 1 AS `Id`,
+ 1 AS `Nombre`,
+ 1 AS `Telephone`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_Agenda2`
+--
+
+DROP TABLE IF EXISTS `v_Agenda2`;
+/*!50001 DROP VIEW IF EXISTS `v_Agenda2`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_Agenda2` AS SELECT
+ 1 AS `Tipo`,
+ 1 AS `Id`,
+ 1 AS `Nombre`,
+ 1 AS `Telefono`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_Articles_botanical`
+--
+
+DROP TABLE IF EXISTS `v_Articles_botanical`;
+/*!50001 DROP VIEW IF EXISTS `v_Articles_botanical`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_Articles_botanical` AS SELECT
+ 1 AS `Id_Article`,
+ 1 AS `edi_botanic`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_Movimientos_Volumen_shipping_charge`
+--
+
+DROP TABLE IF EXISTS `v_Movimientos_Volumen_shipping_charge`;
+/*!50001 DROP VIEW IF EXISTS `v_Movimientos_Volumen_shipping_charge`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_Movimientos_Volumen_shipping_charge` AS SELECT
+ 1 AS `Id_Ticket`,
+ 1 AS `Id_Movimiento`,
+ 1 AS `Fecha`,
+ 1 AS `price`,
+ 1 AS `freight`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_Ordenes`
+--
+
+DROP TABLE IF EXISTS `v_Ordenes`;
+/*!50001 DROP VIEW IF EXISTS `v_Ordenes`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_Ordenes` AS SELECT
+ 1 AS `Id_ORDEN`,
+ 1 AS `ORDEN`,
+ 1 AS `datORDEN`,
+ 1 AS `datTICKET`,
+ 1 AS `CodVENDEDOR`,
+ 1 AS `CodCOMPRADOR`,
+ 1 AS `CANTIDAD`,
+ 1 AS `PRECIOMAX`,
+ 1 AS `PREU`,
+ 1 AS `Id_ARTICLE`,
+ 1 AS `Id_CLIENTE`,
+ 1 AS `COMENTARIO`,
+ 1 AS `OK`,
+ 1 AS `TOTAL`,
+ 1 AS `datCOMPRA`,
+ 1 AS `KO`,
+ 1 AS `Id_Movimiento`,
+ 1 AS `odbc_date`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_XDiario_ALL`
+--
+
+DROP TABLE IF EXISTS `v_XDiario_ALL`;
+/*!50001 DROP VIEW IF EXISTS `v_XDiario_ALL`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_XDiario_ALL` AS SELECT
+ 1 AS `empresa_id`,
+ 1 AS `SUBCTA`,
+ 1 AS `Eurodebe`,
+ 1 AS `Eurohaber`,
+ 1 AS `Fecha`,
+ 1 AS `FECHA_EX`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_accion`
+--
+
+DROP TABLE IF EXISTS `v_accion`;
+/*!50001 DROP VIEW IF EXISTS `v_accion`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_accion` AS SELECT
+ 1 AS `accion_id`,
+ 1 AS `accion`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_account`
+--
+
+DROP TABLE IF EXISTS `v_account`;
+/*!50001 DROP VIEW IF EXISTS `v_account`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_account` AS SELECT
+ 1 AS `user_id`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_analisis_ventas`
+--
+
+DROP TABLE IF EXISTS `v_analisis_ventas`;
+/*!50001 DROP VIEW IF EXISTS `v_analisis_ventas`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_analisis_ventas` AS SELECT
+ 1 AS `Familia`,
+ 1 AS `Reino`,
+ 1 AS `Comercial`,
+ 1 AS `Comprador`,
+ 1 AS `Provincia`,
+ 1 AS `almacen`,
+ 1 AS `Año`,
+ 1 AS `Mes`,
+ 1 AS `Semana`,
+ 1 AS `Vista`,
+ 1 AS `Importe`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_awb_volumen`
+--
+
+DROP TABLE IF EXISTS `v_awb_volumen`;
+/*!50001 DROP VIEW IF EXISTS `v_awb_volumen`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_awb_volumen` AS SELECT
+ 1 AS `awb_id`,
+ 1 AS `codigo`,
+ 1 AS `importe`,
+ 1 AS `Vol_Total`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_barcodes`
+--
+
+DROP TABLE IF EXISTS `v_barcodes`;
+/*!50001 DROP VIEW IF EXISTS `v_barcodes`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_barcodes` AS SELECT
+ 1 AS `code`,
+ 1 AS `Id_Article`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_barcodes_plus`
+--
+
+DROP TABLE IF EXISTS `v_barcodes_plus`;
+/*!50001 DROP VIEW IF EXISTS `v_barcodes_plus`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_barcodes_plus` AS SELECT
+ 1 AS `code`,
+ 1 AS `Id_Article`,
+ 1 AS `Article`,
+ 1 AS `Medida`,
+ 1 AS `Color`,
+ 1 AS `Categoria`,
+ 1 AS `Producer`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_botanic_export`
+--
+
+DROP TABLE IF EXISTS `v_botanic_export`;
+/*!50001 DROP VIEW IF EXISTS `v_botanic_export`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_botanic_export` AS SELECT
+ 1 AS `Nom_botanic`,
+ 1 AS `Id_Paises`,
+ 1 AS `restriction`,
+ 1 AS `description`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_compres`
+--
+
+DROP TABLE IF EXISTS `v_compres`;
+/*!50001 DROP VIEW IF EXISTS `v_compres`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_compres` AS SELECT
+ 1 AS `Familia`,
+ 1 AS `reino_id`,
+ 1 AS `Id_Compra`,
+ 1 AS `Id_Entrada`,
+ 1 AS `Id_Article`,
+ 1 AS `Cantidad`,
+ 1 AS `Costefijo`,
+ 1 AS `Portefijo`,
+ 1 AS `Novincular`,
+ 1 AS `Etiquetas`,
+ 1 AS `Packing`,
+ 1 AS `grouping`,
+ 1 AS `Comisionfija`,
+ 1 AS `Embalajefijo`,
+ 1 AS `Nicho`,
+ 1 AS `Id_Cubo`,
+ 1 AS `Tarifa1`,
+ 1 AS `Tarifa2`,
+ 1 AS `Tarifa3`,
+ 1 AS `PVP`,
+ 1 AS `Vida`,
+ 1 AS `Id_Trabajador`,
+ 1 AS `punteo`,
+ 1 AS `odbc_date`,
+ 1 AS `Inventario`,
+ 1 AS `Id_Proveedor`,
+ 1 AS `Fecha`,
+ 1 AS `Confirmada`,
+ 1 AS `Redada`,
+ 1 AS `empresa_id`,
+ 1 AS `travel_id`,
+ 1 AS `Pedida`,
+ 1 AS `recibida_id`,
+ 1 AS `id`,
+ 1 AS `shipment`,
+ 1 AS `landing`,
+ 1 AS `warehouse_id`,
+ 1 AS `warehouse_id_out`,
+ 1 AS `agency_id`,
+ 1 AS `ref`,
+ 1 AS `delivered`,
+ 1 AS `received`,
+ 1 AS `Article`,
+ 1 AS `Medida`,
+ 1 AS `Tallos`,
+ 1 AS `caja`,
+ 1 AS `Categoria`,
+ 1 AS `id_origen`,
+ 1 AS `Tipo`,
+ 1 AS `tipo_id`,
+ 1 AS `Color`,
+ 1 AS `Min`,
+ 1 AS `Coste`,
+ 1 AS `fuente`,
+ 1 AS `iva_group_id`,
+ 1 AS `cm3`,
+ 1 AS `producer_id`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_departure_limit`
+--
+
+DROP TABLE IF EXISTS `v_departure_limit`;
+/*!50001 DROP VIEW IF EXISTS `v_departure_limit`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_departure_limit` AS SELECT
+ 1 AS `warehouse_id`,
+ 1 AS `fecha`,
+ 1 AS `hora`,
+ 1 AS `minSpeed`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_descuadre_bionic`
+--
+
+DROP TABLE IF EXISTS `v_descuadre_bionic`;
+/*!50001 DROP VIEW IF EXISTS `v_descuadre_bionic`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_descuadre_bionic` AS SELECT
+ 1 AS `Id_Ticket`,
+ 1 AS `Alias`,
+ 1 AS `Concepte`,
+ 1 AS `suma_componente`,
+ 1 AS `Preu`,
+ 1 AS `Descuento`,
+ 1 AS `diferencia`,
+ 1 AS `Fecha`,
+ 1 AS `benvenut`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_descuadre_porte`
+--
+
+DROP TABLE IF EXISTS `v_descuadre_porte`;
+/*!50001 DROP VIEW IF EXISTS `v_descuadre_porte`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_descuadre_porte` AS SELECT
+ 1 AS `Id_Ticket`,
+ 1 AS `suma_componente`,
+ 1 AS `teorico_agencia`,
+ 1 AS `diferencia`,
+ 1 AS `Fecha`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_descuadre_porte2`
+--
+
+DROP TABLE IF EXISTS `v_descuadre_porte2`;
+/*!50001 DROP VIEW IF EXISTS `v_descuadre_porte2`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_descuadre_porte2` AS SELECT
+ 1 AS `Id_Ticket`,
+ 1 AS `suma_componente`,
+ 1 AS `Fecha`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_empresa`
+--
+
+DROP TABLE IF EXISTS `v_empresa`;
+/*!50001 DROP VIEW IF EXISTS `v_empresa`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_empresa` AS SELECT
+ 1 AS `logo`,
+ 1 AS `id`,
+ 1 AS `registro`,
+ 1 AS `gerente_id`,
+ 1 AS `alta`,
+ 1 AS `Nombre`,
+ 1 AS `Apellidos`,
+ 1 AS `Proveedor`,
+ 1 AS `Domicilio`,
+ 1 AS `CP`,
+ 1 AS `Localidad`,
+ 1 AS `NIF`,
+ 1 AS `Telefono`,
+ 1 AS `Alias`,
+ 1 AS `abbreviation`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_encajado`
+--
+
+DROP TABLE IF EXISTS `v_encajado`;
+/*!50001 DROP VIEW IF EXISTS `v_encajado`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_encajado` AS SELECT
+ 1 AS `hora`,
+ 1 AS `minuto`,
+ 1 AS `cm3`,
+ 1 AS `warehouse_id`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_encajado_ultima_hora`
+--
+
+DROP TABLE IF EXISTS `v_encajado_ultima_hora`;
+/*!50001 DROP VIEW IF EXISTS `v_encajado_ultima_hora`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_encajado_ultima_hora` AS SELECT
+ 1 AS `m3`,
+ 1 AS `warehouse_id`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_expeditions_shipping_charge`
+--
+
+DROP TABLE IF EXISTS `v_expeditions_shipping_charge`;
+/*!50001 DROP VIEW IF EXISTS `v_expeditions_shipping_charge`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_expeditions_shipping_charge` AS SELECT
+ 1 AS `Id_Ticket`,
+ 1 AS `shipping_charge`,
+ 1 AS `Fecha`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_expeditions_shipping_charge2`
+--
+
+DROP TABLE IF EXISTS `v_expeditions_shipping_charge2`;
+/*!50001 DROP VIEW IF EXISTS `v_expeditions_shipping_charge2`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_expeditions_shipping_charge2` AS SELECT
+ 1 AS `Id_Ticket`,
+ 1 AS `shipping_charge`,
+ 1 AS `Fecha`,
+ 1 AS `warehouse_id`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_fallo`
+--
+
+DROP TABLE IF EXISTS `v_fallo`;
+/*!50001 DROP VIEW IF EXISTS `v_fallo`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_fallo` AS SELECT
+ 1 AS `queja_id`,
+ 1 AS `accion_id`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_inter`
+--
+
+DROP TABLE IF EXISTS `v_inter`;
+/*!50001 DROP VIEW IF EXISTS `v_inter`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_inter` AS SELECT
+ 1 AS `inter_id`,
+ 1 AS `state_id`,
+ 1 AS `nota`,
+ 1 AS `odbc_date`,
+ 1 AS `Id_Ticket`,
+ 1 AS `Id_Trabajador`,
+ 1 AS `Id_supervisor`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_jerarquia`
+--
+
+DROP TABLE IF EXISTS `v_jerarquia`;
+/*!50001 DROP VIEW IF EXISTS `v_jerarquia`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_jerarquia` AS SELECT
+ 1 AS `Id_Trabajador`,
+ 1 AS `boss_id`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_location`
+--
+
+DROP TABLE IF EXISTS `v_location`;
+/*!50001 DROP VIEW IF EXISTS `v_location`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_location` AS SELECT
+ 1 AS `longitude`,
+ 1 AS `latitude`,
+ 1 AS `Id_Consigna`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_mana_spellers`
+--
+
+DROP TABLE IF EXISTS `v_mana_spellers`;
+/*!50001 DROP VIEW IF EXISTS `v_mana_spellers`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_mana_spellers` AS SELECT
+ 1 AS `Id_Trabajador`,
+ 1 AS `size`,
+ 1 AS `used`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_miriam`
+--
+
+DROP TABLE IF EXISTS `v_miriam`;
+/*!50001 DROP VIEW IF EXISTS `v_miriam`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_miriam` AS SELECT
+ 1 AS `Id_Article`,
+ 1 AS `Concepte`,
+ 1 AS `Cantidad`,
+ 1 AS `Preu`,
+ 1 AS `Descuento`,
+ 1 AS `Fecha`,
+ 1 AS `Id_Cliente`,
+ 1 AS `Importe`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_movimientos_log`
+--
+
+DROP TABLE IF EXISTS `v_movimientos_log`;
+/*!50001 DROP VIEW IF EXISTS `v_movimientos_log`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_movimientos_log` AS SELECT
+ 1 AS `idmovimientos_log`,
+ 1 AS `Id_Movimiento`,
+ 1 AS `odbc_date`,
+ 1 AS `Id_Trabajador`,
+ 1 AS `field_name`,
+ 1 AS `new_value`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_movimientos_mark`
+--
+
+DROP TABLE IF EXISTS `v_movimientos_mark`;
+/*!50001 DROP VIEW IF EXISTS `v_movimientos_mark`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_movimientos_mark` AS SELECT
+ 1 AS `Id_Movimiento`,
+ 1 AS `Accion`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_pedidos_auto_preparados`
+--
+
+DROP TABLE IF EXISTS `v_pedidos_auto_preparados`;
+/*!50001 DROP VIEW IF EXISTS `v_pedidos_auto_preparados`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_pedidos_auto_preparados` AS SELECT
+ 1 AS `CodigoTrabajador`,
+ 1 AS `Id_Ticket`,
+ 1 AS `Momento`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_pedidos_auto_preparadoskk`
+--
+
+DROP TABLE IF EXISTS `v_pedidos_auto_preparadoskk`;
+/*!50001 DROP VIEW IF EXISTS `v_pedidos_auto_preparadoskk`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_pedidos_auto_preparadoskk` AS SELECT
+ 1 AS `CodigoTrabajador`,
+ 1 AS `Fecha`,
+ 1 AS `Id_Ticket`,
+ 1 AS `Momento`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_phonebook`
+--
+
+DROP TABLE IF EXISTS `v_phonebook`;
+/*!50001 DROP VIEW IF EXISTS `v_phonebook`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_phonebook` AS SELECT
+ 1 AS `Id_Cliente`,
+ 1 AS `Telefono`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_price_fixed`
+--
+
+DROP TABLE IF EXISTS `v_price_fixed`;
+/*!50001 DROP VIEW IF EXISTS `v_price_fixed`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_price_fixed` AS SELECT
+ 1 AS `warehouse_id`,
+ 1 AS `item_id`,
+ 1 AS `rate_0`,
+ 1 AS `rate_1`,
+ 1 AS `rate_2`,
+ 1 AS `rate_3`,
+ 1 AS `date_start`,
+ 1 AS `date_end`,
+ 1 AS `bonus`,
+ 1 AS `grouping`,
+ 1 AS `Packing`,
+ 1 AS `caja`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_price_fixed_group`
+--
+
+DROP TABLE IF EXISTS `v_price_fixed_group`;
+/*!50001 DROP VIEW IF EXISTS `v_price_fixed_group`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_price_fixed_group` AS SELECT
+ 1 AS `warehouse_id`,
+ 1 AS `item_id`,
+ 1 AS `rate_0`,
+ 1 AS `rate_1`,
+ 1 AS `rate_2`,
+ 1 AS `rate_3`,
+ 1 AS `date_start`,
+ 1 AS `date_end`,
+ 1 AS `bonus`,
+ 1 AS `grouping`,
+ 1 AS `Packing`,
+ 1 AS `caja`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_session`
+--
+
+DROP TABLE IF EXISTS `v_session`;
+/*!50001 DROP VIEW IF EXISTS `v_session`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_session` AS SELECT
+ 1 AS `id`,
+ 1 AS `CodigoTrabajador`,
+ 1 AS `Id_Trabajador`,
+ 1 AS `Id_Cliente`,
+ 1 AS `Cliente`,
+ 1 AS `Fecha`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_ticket_amount`
+--
+
+DROP TABLE IF EXISTS `v_ticket_amount`;
+/*!50001 DROP VIEW IF EXISTS `v_ticket_amount`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_ticket_amount` AS SELECT
+ 1 AS `Id_Ticket`,
+ 1 AS `amount`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_trabajadores`
+--
+
+DROP TABLE IF EXISTS `v_trabajadores`;
+/*!50001 DROP VIEW IF EXISTS `v_trabajadores`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_trabajadores` AS SELECT
+ 1 AS `CodigoTrabajador`,
+ 1 AS `Nombre`,
+ 1 AS `Fecha_Inicio`,
+ 1 AS `Password`,
+ 1 AS `user`,
+ 1 AS `Apellidos`,
+ 1 AS `Id_Trabajador`,
+ 1 AS `Foto`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_user`
+--
+
+DROP TABLE IF EXISTS `v_user`;
+/*!50001 DROP VIEW IF EXISTS `v_user`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_user` AS SELECT
+ 1 AS `id`,
+ 1 AS `mysql_user_id`,
+ 1 AS `name`,
+ 1 AS `password`,
+ 1 AS `active`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_ventes`
+--
+
+DROP TABLE IF EXISTS `v_ventes`;
+/*!50001 DROP VIEW IF EXISTS `v_ventes`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_ventes` AS SELECT
+ 1 AS `Agencia`,
+ 1 AS `Categoria`,
+ 1 AS `tipo_id`,
+ 1 AS `Medida`,
+ 1 AS `Article`,
+ 1 AS `Color`,
+ 1 AS `Id_Cliente`,
+ 1 AS `Tipo`,
+ 1 AS `Factura`,
+ 1 AS `warehouse_id`,
+ 1 AS `Id_Movimiento`,
+ 1 AS `Id_Article`,
+ 1 AS `Familia`,
+ 1 AS `Id_Ticket`,
+ 1 AS `Concepte`,
+ 1 AS `Cantidad`,
+ 1 AS `quantity`,
+ 1 AS `Preu`,
+ 1 AS `Descuento`,
+ 1 AS `CostFixat`,
+ 1 AS `Reservado`,
+ 1 AS `OK`,
+ 1 AS `PrecioFijado`,
+ 1 AS `odbc_date`,
+ 1 AS `Fecha`,
+ 1 AS `FechaCompleta`,
+ 1 AS `Alias`,
+ 1 AS `Id_Consigna`,
+ 1 AS `Importe`,
+ 1 AS `Origen`,
+ 1 AS `reino_id`,
+ 1 AS `invoice`,
+ 1 AS `producer_id`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_venteskk`
+--
+
+DROP TABLE IF EXISTS `v_venteskk`;
+/*!50001 DROP VIEW IF EXISTS `v_venteskk`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_venteskk` AS SELECT
+ 1 AS `Agencia`,
+ 1 AS `Categoria`,
+ 1 AS `tipo_id`,
+ 1 AS `Medida`,
+ 1 AS `Article`,
+ 1 AS `Color`,
+ 1 AS `Id_Cliente`,
+ 1 AS `Tipo`,
+ 1 AS `Factura`,
+ 1 AS `warehouse_id`,
+ 1 AS `Id_Movimiento`,
+ 1 AS `Id_Article`,
+ 1 AS `Familia`,
+ 1 AS `Id_Ticket`,
+ 1 AS `Concepte`,
+ 1 AS `Cantidad`,
+ 1 AS `quantity`,
+ 1 AS `Preu`,
+ 1 AS `Descuento`,
+ 1 AS `CostFixat`,
+ 1 AS `Reservado`,
+ 1 AS `OK`,
+ 1 AS `PrecioFijado`,
+ 1 AS `odbc_date`,
+ 1 AS `Fecha`,
+ 1 AS `FechaCompleta`,
+ 1 AS `Alias`,
+ 1 AS `Id_Consigna`,
+ 1 AS `Importe`,
+ 1 AS `Origen`,
+ 1 AS `reino_id`,
+ 1 AS `invoice`,
+ 1 AS `producer_id`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_warehouse`
+--
+
+DROP TABLE IF EXISTS `v_warehouse`;
+/*!50001 DROP VIEW IF EXISTS `v_warehouse`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_warehouse` AS SELECT
+ 1 AS `id`,
+ 1 AS `almacen`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_xsubclien`
+--
+
+DROP TABLE IF EXISTS `v_xsubclien`;
+/*!50001 DROP VIEW IF EXISTS `v_xsubclien`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_xsubclien` AS SELECT
+ 1 AS `Id_Cliente`,
+ 1 AS `empresa_id`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_xsubcuentas`
+--
+
+DROP TABLE IF EXISTS `v_xsubcuentas`;
+/*!50001 DROP VIEW IF EXISTS `v_xsubcuentas`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_xsubcuentas` AS SELECT
+ 1 AS `COD`,
+ 1 AS `TITULO`,
+ 1 AS `NIF`,
+ 1 AS `DOMICILIO`,
+ 1 AS `POBLACION`,
+ 1 AS `PROVINCIA`,
+ 1 AS `CODPOSTAL`,
+ 1 AS `country_code`,
+ 1 AS `empresa_id`,
+ 1 AS `EMAIL`,
+ 1 AS `IDNIF`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_xsubprov`
+--
+
+DROP TABLE IF EXISTS `v_xsubprov`;
+/*!50001 DROP VIEW IF EXISTS `v_xsubprov`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_xsubprov` AS SELECT
+ 1 AS `proveedor_id`,
+ 1 AS `empresa_id`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `versiones`
+--
+
+DROP TABLE IF EXISTS `versiones`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `versiones` (
+ `programa` varchar(11) COLLATE utf8_unicode_ci NOT NULL,
+ `version` int(11) NOT NULL,
+ `critical` tinyint(4) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`programa`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `viaxpress`
+--
+
+DROP TABLE IF EXISTS `viaxpress`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `viaxpress` (
+ `codigo_postal` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
+ `zona` tinyint(4) NOT NULL DEFAULT '2',
+ `m_t` tinyint(4) NOT NULL DEFAULT '0',
+ `POBLACION` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
+ `PROVINCIA` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`codigo_postal`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `vnCreditClassification`
+--
+
+DROP TABLE IF EXISTS `vnCreditClassification`;
+/*!50001 DROP VIEW IF EXISTS `vnCreditClassification`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `vnCreditClassification` AS SELECT
+ 1 AS `id`,
+ 1 AS `client`,
+ 1 AS `dateStart`,
+ 1 AS `dateEnd`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `vnCreditInsurance`
+--
+
+DROP TABLE IF EXISTS `vnCreditInsurance`;
+/*!50001 DROP VIEW IF EXISTS `vnCreditInsurance`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `vnCreditInsurance` AS SELECT
+ 1 AS `id`,
+ 1 AS `creditClassification`,
+ 1 AS `credit`,
+ 1 AS `creationDate`,
+ 1 AS `grade`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `vnSolunionCAP`
+--
+
+DROP TABLE IF EXISTS `vnSolunionCAP`;
+/*!50001 DROP VIEW IF EXISTS `vnSolunionCAP`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `vnSolunionCAP` AS SELECT
+ 1 AS `creditInsurance`,
+ 1 AS `dateStart`,
+ 1 AS `dateEnd`,
+ 1 AS `dateLeaving`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `warehouse`
+--
+
+DROP TABLE IF EXISTS `warehouse`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `warehouse` (
+ `id` smallint(6) unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
+ `fuente` tinyint(1) unsigned NOT NULL DEFAULT '0',
+ `address_name` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `delay` double NOT NULL DEFAULT '0.004',
+ `reserve` tinyint(4) NOT NULL DEFAULT '0',
+ `tpv` tinyint(2) unsigned zerofill NOT NULL DEFAULT '00',
+ `Id_Paises` mediumint(8) unsigned NOT NULL DEFAULT '1',
+ `zone_label` tinyint(4) NOT NULL DEFAULT '0',
+ `comisionantes` tinyint(4) NOT NULL DEFAULT '0',
+ `inventario` tinyint(2) NOT NULL DEFAULT '0',
+ `is_comparative` tinyint(2) NOT NULL DEFAULT '0' COMMENT 'Si esta a true,en la comparativa muestra el stock de este almacen, cuando no se especifica almacen.',
+ `valuatedInventory` tinyint(2) NOT NULL DEFAULT '0',
+ `isManaged` tinyint(2) NOT NULL DEFAULT '0',
+ `hasConfectionTeam` tinyint(1) unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `name_UNIQUE` (`name`),
+ KEY `Id_Paises` (`Id_Paises`),
+ CONSTRAINT `warehouse_ibfk_1` FOREIGN KEY (`Id_Paises`) REFERENCES `Paises` (`Id`)
+) ENGINE=InnoDB AUTO_INCREMENT=6 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `warehouse_ai` AFTER INSERT ON `warehouse` FOR EACH ROW
+begin
+ IF NEW.Fuente THEN
+ INSERT INTO warehouse_alias (alias) VALUES(NEW.`name`);
+ INSERT INTO warehouse_joined(warehouse_id,warehouse_alias_id)
+ VALUES(NEW.id,LAST_INSERT_ID());
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `warehouse_au` AFTER UPDATE ON `warehouse` FOR EACH ROW
+begin
+ IF NEW.fuente IS TRUE and OLD.fuente IS FALSE then
+ INSERT INTO warehouse_alias (alias) VALUES(NEW.`name`);
+ INSERT INTO warehouse_joined(warehouse_id,warehouse_alias_id)
+ VALUES(NEW.id,LAST_INSERT_ID());
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Table structure for table `warehouse_alias`
+--
+
+DROP TABLE IF EXISTS `warehouse_alias`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `warehouse_alias` (
+ `warehouse_alias_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
+ `alias` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`warehouse_alias_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `warehouse_filtro`
+--
+
+DROP TABLE IF EXISTS `warehouse_filtro`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `warehouse_filtro` (
+ `warehouse_id` smallint(6) unsigned NOT NULL,
+ `Id_Trabajador` int(11) NOT NULL,
+ `ok` tinyint(3) unsigned DEFAULT '1',
+ PRIMARY KEY (`Id_Trabajador`,`warehouse_id`),
+ KEY `wh_worker_idx` (`Id_Trabajador`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Tabla que permite filtrar los almacenes que muestra la comparativa, recordando la selección personal del usuario';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `warehouse_group`
+--
+
+DROP TABLE IF EXISTS `warehouse_group`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `warehouse_group` (
+ `warehouse_alias_id` smallint(5) unsigned NOT NULL DEFAULT '22',
+ `warehouse_id` smallint(5) unsigned NOT NULL,
+ PRIMARY KEY (`warehouse_alias_id`,`warehouse_id`),
+ KEY `warehosue_group_ware_idx` (`warehouse_id`),
+ CONSTRAINT `warehosue_group_ware` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `warehouse_group_alias` FOREIGN KEY (`warehouse_alias_id`) REFERENCES `warehouse_alias` (`warehouse_alias_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Agrupa warehouses ';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `warehouse_joined`
+--
+
+DROP TABLE IF EXISTS `warehouse_joined`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `warehouse_joined` (
+ `warehouse_id` smallint(5) unsigned NOT NULL,
+ `warehouse_alias_id` smallint(5) unsigned NOT NULL,
+ PRIMARY KEY (`warehouse_id`,`warehouse_alias_id`),
+ CONSTRAINT `warehouse_joined_ibfk_3` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `warehouse_lc`
+--
+
+DROP TABLE IF EXISTS `warehouse_lc`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `warehouse_lc` (
+ `whin` smallint(6) unsigned NOT NULL,
+ `whout` smallint(6) unsigned NOT NULL,
+ `m3` double NOT NULL DEFAULT '15',
+ `days` int(11) NOT NULL DEFAULT '1',
+ PRIMARY KEY (`whin`,`whout`),
+ KEY `whout_wh_idx` (`whout`),
+ CONSTRAINT `whin_wh` FOREIGN KEY (`whin`) REFERENCES `warehouse` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `whout_wh` FOREIGN KEY (`whout`) REFERENCES `warehouse` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Warehouses cost for linking';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `warehouse_pickup`
+--
+
+DROP TABLE IF EXISTS `warehouse_pickup`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `warehouse_pickup` (
+ `warehouse_id` smallint(5) unsigned NOT NULL,
+ `agency_id` int(11) DEFAULT NULL,
+ PRIMARY KEY (`warehouse_id`),
+ UNIQUE KEY `agency_id` (`agency_id`,`warehouse_id`),
+ CONSTRAINT `warehouse_pickup_ibfk_1` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `warehouse_pickup_ibfk_2` FOREIGN KEY (`agency_id`) REFERENCES `Agencias` (`Id_Agencia`) ON DELETE SET NULL ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `warehouse_tree_bidi`
+--
+
+DROP TABLE IF EXISTS `warehouse_tree_bidi`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `warehouse_tree_bidi` (
+ `father` tinyint(1) unsigned NOT NULL,
+ `son` tinyint(1) unsigned NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `wh_selection`
+--
+
+DROP TABLE IF EXISTS `wh_selection`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `wh_selection` (
+ `Id_Trabajador` int(11) NOT NULL,
+ `warehouse_id` smallint(6) unsigned NOT NULL,
+ PRIMARY KEY (`Id_Trabajador`,`warehouse_id`),
+ KEY `Trabajadores` (`Id_Trabajador`),
+ KEY `Warehouse` (`warehouse_id`),
+ CONSTRAINT `Trabajadores` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE,
+ CONSTRAINT `Warehouse` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Permite que los usuarios seleccionen los almacenes que van a';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `widget`
+--
+
+DROP TABLE IF EXISTS `widget`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `widget` (
+ `widget_id` int(11) NOT NULL,
+ `chr` int(11) NOT NULL,
+ PRIMARY KEY (`widget_id`),
+ UNIQUE KEY `chr_UNIQUE` (`chr`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `wks`
+--
+
+DROP TABLE IF EXISTS `wks`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `wks` (
+ `wk` int(10) unsigned NOT NULL,
+ `yr` int(10) unsigned NOT NULL,
+ `vwk` int(10) unsigned NOT NULL,
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `comments` text COLLATE utf8_unicode_ci,
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `workcenter_holiday`
+--
+
+DROP TABLE IF EXISTS `workcenter_holiday`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `workcenter_holiday` (
+ `workcenter_id` int(11) NOT NULL,
+ `day` double NOT NULL,
+ `year` smallint(6) NOT NULL,
+ PRIMARY KEY (`workcenter_id`,`day`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `workerDocument`
+--
+
+DROP TABLE IF EXISTS `workerDocument`;
+/*!50001 DROP VIEW IF EXISTS `workerDocument`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `workerDocument` AS SELECT
+ 1 AS `id`,
+ 1 AS `worker`,
+ 1 AS `document`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `workerTeam`
+--
+
+DROP TABLE IF EXISTS `workerTeam`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `workerTeam` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `team` int(11) NOT NULL,
+ `user` int(10) unsigned NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `user_team_idx` (`user`),
+ CONSTRAINT `user_team` FOREIGN KEY (`user`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `workerTeamCollegues`
+--
+
+DROP TABLE IF EXISTS `workerTeamCollegues`;
+/*!50001 DROP VIEW IF EXISTS `workerTeamCollegues`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `workerTeamCollegues` AS SELECT
+ 1 AS `workerId`,
+ 1 AS `collegueId`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `workerTeam_kk`
+--
+
+DROP TABLE IF EXISTS `workerTeam_kk`;
+/*!50001 DROP VIEW IF EXISTS `workerTeam_kk`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `workerTeam_kk` AS SELECT
+ 1 AS `team`,
+ 1 AS `user`,
+ 1 AS `id`,
+ 1 AS `Id_Trabajador`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `zeleris`
+--
+
+DROP TABLE IF EXISTS `zeleris`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `zeleris` (
+ `codigo_postal` mediumint(8) unsigned NOT NULL,
+ `franja` tinyint(3) unsigned NOT NULL,
+ PRIMARY KEY (`codigo_postal`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `zones`
+--
+
+DROP TABLE IF EXISTS `zones`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `zones` (
+ `zone_id` tinyint(4) NOT NULL,
+ `name` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `printingOrder` int(11) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`zone_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Zonas de reparto';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping routines for database 'vn2008'
+--
+/*!50003 DROP FUNCTION IF EXISTS `AltaEmpleado` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `AltaEmpleado`(strCodTrabajador varchar(3),strNombre varchar(50),strApellidos varchar(50),strDni varchar(9),
+ strDomicilio longtext,strCodPostal varchar(5),strPoblacion varchar(25),provinceId smallint(5), intempresa_id smallint(5),strMovil varchar(11)) RETURNS varchar(50) CHARSET utf8
+BEGIN
+
+DECLARE RETORNO varchar(50) DEFAULT 'Empleado creado CORRECTAMENTE';
+DECLARE tmpUserId INT(11) DEFAULT 0;
+DECLARE intId_Cliente int(11) DEFAULT 0;
+DECLARE Cod_Trabajador VARCHAR(8) DEFAULT strCodTrabajador;
+DECLARE strPassword VARCHAR(50);
+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)
+ SELECT intId_Cliente,Concat('TR ',strNombre,' ',StrApellidos),strDomicilio,strDni,strMovil,provinceId,strPoblacion,strCodPostal,
+ CONCAT(strApellidos,' ',strNombre),strNombre,1,3;
+ELSE
+ SELECT id_cliente INTO intId_Cliente FROM Clientes WHERE `IF`=strDni;
+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
+ SET Cod_Trabajador = CONCAT(LEFT(strNombre, 1), LEFT(strApellidos, 1), MID(strApellidos, (LOCATE(' ', strApellidos) + 1), 1));
+ END IF;
+
+ IF (SELECT COUNT(*) FROM Trabajadores WHERE CodigoTrabajador=Cod_Trabajador) > 0 THEN
+ SET Cod_Trabajador = CONCAT(Cod_Trabajador, (FLOOR(RAND() * 100)));
+ END IF;
+
+ SELECT CONCAT(IF(INSTR(StrApellidos,' ')=0,StrApellidos,LEFT(strApellidos,INSTR(StrApellidos,' ')-1)),'.',intId_Cliente) INTO strPassword;
+
+ INSERT INTO Trabajadores (CodigoTrabajador,Nombre,Apellidos,`Password`,dni,empresa_id,id_Cliente_Interno)
+ SELECT Cod_Trabajador,strNombre,strApellidos,LCASE(strPassword),strDni,intempresa_id,intId_Cliente;
+ELSE
+ SET RETORNO="CodigoTrabajador Existente";
+END IF;
+ -- LEAVE SAMBA;
+END; -- PROC
+
+-- 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
+ SELECT CONCAT(LEFT(strNombre,1),CONCAT(IF(INSTR(StrApellidos,' ')=0,StrApellidos,LEFT(strApellidos,INSTR(StrApellidos,' ')-1)),intId_Cliente))
+ INTO strSambaNombre;
+END IF;
+
+ IF (SELECT COUNT(*) FROM account.user where id=intId_Cliente)=0 THEN
+ INSERT INTO account.user (id,role,`name`,`password`,active) VALUES (intId_Cliente,1,lcase(strSambaNombre),MD5(LCASE(strPassword)),1);
+ INSERT INTO account.account (id,lastchange,`expire`,user_id) values (intId_Cliente,CURRENT_DATE(),CURRENT_DATE(),intId_Cliente);
+ UPDATE Trabajadores SET user_id=intId_Cliente WHERE Id_Cliente_Interno=intId_Cliente;
+ ELSE
+ INSERT INTO account.user (role,`name`,`password`,active) VALUES (1,lcase(strSambaNombre),MD5(LCASE(strPassword)),1);
+ SET tmpUserId = LAST_INSERT_ID();
+ INSERT INTO account.account (id,lastchange,`expire`,user_id) values (tmpUserId,CURRENT_DATE(),CURRENT_DATE(),tmpUserId);
+ UPDATE Trabajadores SET user_id=tmpUserId WHERE Id_Cliente_Interno=intId_Cliente;
+ END IF;
+
+ REPLACE INTO account.mailAliasAccount(mailAlias, account) VALUES (48,intId_Cliente);
+
+END; -- samba
+
+RETURN RETORNO;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `AltaEmpleadokk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `AltaEmpleadokk`(strCodTrabajador varchar(3),strNombre varchar(50),strApellidos varchar(50),strDni varchar(9),
+ strDomicilio longtext,strCodPostal varchar(5),strPoblacion varchar(25),provinceId smallint(5), intempresa_id smallint(5),strMovil varchar(11)) RETURNS varchar(50) CHARSET utf8
+BEGIN
+
+DECLARE RETORNO varchar(50) DEFAULT 'Empleado creado CORRECTAMENTE';
+DECLARE tmpUserId INT(11) DEFAULT 0;
+DECLARE intId_Cliente int(11) DEFAULT 0;
+DECLARE Cod_Trabajador VARCHAR(8) DEFAULT strCodTrabajador;
+DECLARE strPassword VARCHAR(50);
+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)
+ SELECT intId_Cliente,Concat('TR ',strNombre,' ',StrApellidos),strDomicilio,strDni,strMovil,provinceId,strPoblacion,strCodPostal,
+ CONCAT(strApellidos,' ',strNombre),strNombre,1,3;
+ELSE
+ SELECT id_cliente INTO intId_Cliente FROM Clientes WHERE `IF`=strDni;
+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
+ SET Cod_Trabajador = CONCAT(LEFT(strNombre, 1), LEFT(strApellidos, 1), MID(strApellidos, (LOCATE(' ', strApellidos) + 1), 1));
+ END IF;
+
+ IF (SELECT COUNT(*) FROM Trabajadores WHERE CodigoTrabajador=Cod_Trabajador) > 0 THEN
+ SET Cod_Trabajador = CONCAT(Cod_Trabajador, (FLOOR(RAND() * 100)));
+ END IF;
+
+ SELECT CONCAT(IF(INSTR(StrApellidos,' ')=0,StrApellidos,LEFT(strApellidos,INSTR(StrApellidos,' ')-1)),'.',intId_Cliente) INTO strPassword;
+
+ INSERT INTO Trabajadores (CodigoTrabajador,Nombre,Apellidos,`Password`,dni,empresa_id,id_Cliente_Interno)
+ SELECT Cod_Trabajador,strNombre,strApellidos,LCASE(strPassword),strDni,intempresa_id,intId_Cliente;
+ELSE
+ SET RETORNO="CodigoTrabajador Existente";
+END IF;
+ -- LEAVE SAMBA;
+END; -- PROC
+
+-- 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
+ SELECT CONCAT(LEFT(strNombre,1),CONCAT(IF(INSTR(StrApellidos,' ')=0,StrApellidos,LEFT(strApellidos,INSTR(StrApellidos,' ')-1)),intId_Cliente))
+ INTO strSambaNombre;
+END IF;
+
+ IF (SELECT COUNT(*) FROM account.user where id=intId_Cliente)=0 THEN
+ INSERT INTO account.user (id,role,`name`,`password`,active) VALUES (intId_Cliente,1,lcase(strSambaNombre),MD5(LCASE(strPassword)),1);
+ INSERT INTO account.account (id,lastchange,`expire`,user_id) values (intId_Cliente,CURRENT_DATE(),CURRENT_DATE(),intId_Cliente);
+ UPDATE Trabajadores SET user_id=intId_Cliente WHERE Id_Cliente_Interno=intId_Cliente;
+ ELSE
+ INSERT INTO account.user (role,`name`,`password`,active) VALUES (1,lcase(strSambaNombre),MD5(LCASE(strPassword)),1);
+ SET tmpUserId = LAST_INSERT_ID();
+ INSERT INTO account.account (id,lastchange,`expire`,user_id) values (tmpUserId,CURRENT_DATE(),CURRENT_DATE(),tmpUserId);
+ UPDATE Trabajadores SET user_id=tmpUserId WHERE Id_Cliente_Interno=intId_Cliente;
+ END IF;
+
+ REPLACE INTO account.mailAliasAccount(mailAlias, account) VALUES (48,intId_Cliente);
+
+END; -- samba
+
+RETURN RETORNO;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `articod` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `articod`(intArt INT) RETURNS varchar(70) CHARSET utf8 COLLATE utf8_unicode_ci
+BEGIN
+ DECLARE strArt VARCHAR(70);
+ SELECT CONCAT(Article,' ', Medida, ' ',Color) INTO strArt FROM Articles WHERE Id_Article = intArt;
+
+ RETURN strArt;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `asiento` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `asiento`(
+ v_asiento INT
+ ,v_date DATE
+ ,v_subaccount VARCHAR(12)
+ ,v_account VARCHAR(12)
+ ,v_concept VARCHAR(25)
+ ,v_debit DOUBLE
+ ,v_credit DOUBLE
+ ,v_euro DOUBLE
+ ,v_serial CHAR(1)
+ ,v_invoice VARCHAR(8)
+ ,v_vat DOUBLE
+ ,v_re DOUBLE
+ ,v_aux TINYINT
+ ,v_company INT
+) RETURNS int(11)
+BEGIN
+ IF v_asiento IS NULL
+ THEN
+ SELECT MAX(ASIEN) + 1 INTO v_asiento FROM XDiario FOR UPDATE;
+ END IF;
+
+ INSERT INTO XDiario
+ SET
+ ASIEN = v_asiento
+ ,FECHA = v_date
+ ,SUBCTA = v_subaccount
+ ,CONTRA = v_account
+ ,CONCEPTO = v_concept
+ ,EURODEBE = v_debit
+ ,EUROHABER = v_credit
+ ,BASEEURO = v_euro
+ ,SERIE = v_serial
+ ,FACTURA = v_invoice
+ ,IVA = v_vat
+ ,RECEQUIV = v_re
+ ,AUXILIAR = IF(v_aux = FALSE, NULL, '*')
+ ,MONEDAUSO = 2
+ ,empresa_id = v_company;
+
+ RETURN v_asiento;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `Averiguar_ComercialCliente` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ SET v_salesperson = Averiguar_ComercialCliente_Id(v_customer, v_date);
+
+ SELECT CodigoTrabajador
+ INTO v_employee
+ FROM Trabajadores
+ WHERE Id_Trabajador = v_salesperson;
+
+ RETURN IFNULL(v_employee, '---');
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `Averiguar_ComercialCliente_Id` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ FROM Clientes c
+ LEFT JOIN sharingclient s
+ ON c.Id_Cliente = s.Id_Cliente
+ AND v_date BETWEEN s.datSTART AND s.datEND
+ WHERE c.Id_Cliente = v_customer
+ ORDER BY s.id
+ LIMIT 1;
+
+ -- Si no hay ninguno en sharingclient busca en sharingcart
+
+ IF v_substitute IS NOT NULL
+ THEN
+ SET v_salesperson = v_substitute;
+ ELSEIF v_salesperson IS NOT NULL
+ THEN
+ DROP TEMPORARY TABLE IF EXISTS tmp.stack;
+ CREATE TEMPORARY TABLE tmp.stack
+ (INDEX (substitute))
+ ENGINE = MEMORY
+ SELECT v_salesperson substitute;
+
+ l: LOOP
+ SELECT Id_Suplente INTO v_substitute
+ FROM sharingcart
+ WHERE v_date BETWEEN datSTART AND datEND
+ AND Id_Trabajador = v_salesperson
+ ORDER BY id
+ LIMIT 1;
+
+ IF v_substitute IS NULL THEN
+ LEAVE l;
+ END IF;
+
+ SELECT COUNT(*) > 0 INTO v_loop
+ FROM tmp.stack WHERE substitute = v_substitute;
+
+ IF v_loop THEN
+ LEAVE l;
+ END IF;
+
+ INSERT INTO tmp.stack SET
+ substitute = v_substitute;
+
+ SET v_salesperson = v_substitute;
+ END LOOP;
+
+ DROP TEMPORARY TABLE tmp.stack;
+ END IF;
+
+ RETURN v_salesperson;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `Averiguar_ComercialCliente_IdTicket` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ SELECT id_cliente, fecha
+ INTO v_customer, v_date
+ FROM Tickets WHERE id_ticket = v_ticket;
+
+ RETURN Averiguar_ComercialCliente(v_customer, v_date);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `Averiguar_ComercialCliente_IdTicket_Id` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ SELECT id_cliente, fecha
+ INTO v_customer, v_date
+ FROM Tickets WHERE id_ticket = v_ticket;
+
+ RETURN Averiguar_ComercialCliente_Id(v_customer, v_date);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `Averiguar_Comprador` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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);
+
+SELECT CodigoTrabajador INTO buyer
+FROM Trabajadores t
+JOIN Tipos tp on tp.Id_Trabajador = t.Id_Trabajador
+JOIN Articles a on a.tipo_id = tp.tipo_id
+WHERE Id_Article = idARTICLE;
+
+
+RETURN buyer;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `base_ticket` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `base_ticket`(Id_Ticket INT) RETURNS double
+BEGIN
+
+ DECLARE base DOUBLE;
+ SELECT
+ red(SUM(Cantidad * Preu * (100 - Descuento) / 100)) into base
+ FROm
+ Movimientos m
+ INNER JOIN Tickets t USING (Id_Ticket)
+ WHERE t.Id_Ticket = Id_Ticket;
+
+RETURN base;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `bionicCalcReverse` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `bionicCalcReverse`(vWarehouse INT,
+ vMargin DECIMAL(10,3),
+ vRetailedPrice DECIMAL(10,3),
+ vM3 DECIMAL(10,3),
+ vConsigna INT,
+ vAgencia INT) RETURNS decimal(10,3)
+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 vCost DECIMAL(10,4) DEFAULT 0;
+ DECLARE vCustomer INT;
+ DECLARE vRecovery DECIMAL(10,4) DEFAULT 0;
+ DECLARE vMana DECIMAL(10,4) DEFAULT 0;
+ DECLARE vPort DECIMAL(10,4) DEFAULT 0;
+
+ 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
+ * az.price
+ * az.inflacion
+ / VOLUMEN_CAJA_VERDNATURA, 4
+ ) INTO vPort
+ FROM vn2008.Agencias a
+ JOIN vn2008.Consignatarios c ON c.Id_Consigna = vConsigna AND a.Id_Agencia = vAgencia
+ 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;
+
+ RETURN vCost;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `botanic_export_is_updatable` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `botanic_export_is_updatable`(v_edi_genus_id MEDIUMINT,v_edi_specie_id MEDIUMINT,v_id_Paises MEDIUMINT,v_restriction MEDIUMINT) RETURNS int(11)
+BEGIN
+ DECLARE is_updatable INTEGER;
+ SELECT COUNT(*) INTO is_updatable FROM botanic_export
+ WHERE edi_genus_id = v_edi_genus_id
+ AND (v_edi_specie_id = edi_specie_id OR IFNULL(v_edi_specie_id,edi_specie_id) IS NULL)
+ AND (v_id_Paises = Id_Paises OR IFNULL(v_id_Paises,Id_Paises) IS NULL)
+ AND v_restriction = restriction;
+RETURN is_updatable;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `buffer_name` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `buffer_name`(v_date DATE, v_wh INT) RETURNS varchar(11) CHARSET utf8
+BEGIN
+ RETURN CONCAT('b', YEAR(v_date), MONTH(v_date), DAY(v_date), IFNULL(v_wh, 0));
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `buyingAbsoluteCost` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+SELECT IFNULL(Costefijo,0) + IFNULL(Portefijo,0) + IFNULL(Embalajefijo,0) + IFNULL(Comisionfija,0)
+INTO vCost
+FROM Compres
+WHERE Id_Compra = vCompra;
+
+RETURN vCost;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `cc_to_iban` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `cc_to_iban`(cc VARCHAR(20)) RETURNS varchar(4) CHARSET utf8
+ DETERMINISTIC
+BEGIN
+ DECLARE iban VARCHAR(4);
+ select
+ CONCAT('ES',
+ RIGHT(
+ concat(0,
+ 98-
+ mod(
+ concat(
+ mod(
+ concat(
+ mod(
+ concat(
+ mod(
+ substring(cc,1,8),
+ 97),
+ substring(cc,9,8)
+ ),
+ 97),
+ substring(
+ concat(
+ cc,
+ 142800
+ ),
+ 17,
+ 8
+ )
+ ),
+ 97),
+ substring(
+ concat(
+ cc,
+ 142800
+ ),
+ 25,
+ 2
+ )
+ ),
+ 97)
+ )
+ ,2)
+ )into iban;
+RETURN iban;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `CM3` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `CM3`(v_buy_id INT) RETURNS int(11)
+BEGIN
+ DECLARE id_CUB VARCHAR(10);
+ DECLARE id_ART INT;
+ SELECT Id_Cubo, Id_Article INTO id_CUB, id_ART
+ FROM Compres c
+ WHERE c.Id_compra = v_buy_id;
+
+ RETURN cm3_2(id_CUB, id_ART);
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `cm3_2` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `cm3_2`(id_CUB VARCHAR(10), id_ART INT) RETURNS int(11)
+BEGIN
+ DECLARE v_cm3 INT;
+
+ SELECT SUM(IF(b.Volumen > 0,
+ b.Volumen,
+ x * y * IF(z = 0, Medida + 10, z)
+ )) INTO v_cm3
+ FROM Cubos b
+ INNER JOIN Articles a ON Id_Article = id_ART
+ WHERE Id_Cubo = id_CUB;
+
+ RETURN v_cm3;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `cm3_unidad` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `cm3_unidad`(v_buy_id INT) RETURNS int(11)
+BEGIN
+ DECLARE id_CUB VARCHAR(10);
+ DECLARE id_ART INT;
+ DECLARE intPACK INT;
+
+ SELECT Id_Cubo, Id_Article, Packing INTO id_CUB, id_ART, intPACK
+ FROM Compres c
+ WHERE c.Id_compra = v_buy_id;
+
+ RETURN ifnull(round(cm3_2(id_CUB, id_ART)/intPACK),0);
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `code_to_id` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `code_to_id`(idART VARCHAR(22)) RETURNS int(11)
+ DETERMINISTIC
+BEGIN
+ DECLARE idchecked INT;
+
+ set idchecked = (SELECT Id_Article FROM barcodes WHERE code = idART);
+
+ IF idchecked THEN
+ RETURN idchecked;
+ END IF;
+
+ IF idART > 6000000 THEN
+ SELECT Id_Article INTO idchecked
+ FROM Compres WHERE Id_Compra = idART;
+ ELSE
+ SET idchecked = CAST(idART AS SIGNED);
+ END IF;
+
+ RETURN idchecked;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `code_to_id2` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `code_to_id2`(idART VARCHAR(22)) RETURNS int(11)
+BEGIN
+ DECLARE idchecked INT;
+
+ SELECT IFNULL(Id_Article,COUNT(*)) INTO idchecked
+ FROM barcodes
+ WHERE code = idART LIMIT 1;
+
+ IF idchecked THEN
+ RETURN idchecked;
+ 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);
+ END IF;
+
+ RETURN idchecked;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `cub` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `cub`(v_buy_id INT) RETURNS int(11)
+BEGIN
+ DECLARE v_cm3 INT;
+
+ SELECT SUM(Etiquetas * IF(b.Volumen > 0,
+ b.Volumen,
+ IF(z = 0,
+ x * y * (Medida + 10),
+ x * y * z
+ )
+ )) INTO v_cm3
+ FROM Compres c
+ INNER JOIN Cubos b USING (Id_Cubo)
+ INNER JOIN Articles a USING (Id_Article)
+ WHERE c.Id_compra = v_buy_id;
+
+ RETURN v_cm3;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `currate` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `currate`() RETURNS double
+BEGIN
+
+DECLARE dblRATE DOUBLE;
+
+SELECT rate INTO dblRATE FROM reference_rate ORDER BY date DESC LIMIT 1 ;
+
+RETURN dblRATE;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `date_inv` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `date_inv`() RETURNS datetime
+ DETERMINISTIC
+BEGIN
+ RETURN (SELECT FechaInventario FROM tblContadores LIMIT 1);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `DAYEND` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `DAYEND`(v_date DATE) RETURNS datetime
+ DETERMINISTIC
+BEGIN
+ RETURN TIMESTAMP(v_date,'23:59:59');
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `FIRSTDAYOFYEAR` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `FIRSTDAYOFYEAR`(datFEC DATE) RETURNS date
+BEGIN
+
+DECLARE datRETURNS DATE;
+
+SELECT TIMESTAMPADD(DAY, -1 * DAYOFYEAR(datFEC) + 1, datFEC) INTO datRETURNS;
+
+RETURN datRETURNS;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `f_periodo` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `f_periodo`(datFEC date) RETURNS int(7)
+ DETERMINISTIC
+BEGIN
+DECLARE intPeriod INT;
+
+SELECT Year(datFEC) * 100 + week(datFEC) into intPeriod;
+
+RETURN intPeriod;
+
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `getBouquetId` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `getBouquetId`(
+ vName VARCHAR(50),
+ vType int,
+ vSize int,
+ 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);
+
+ SET bouquetId = (SELECT @vItem);
+
+RETURN bouquetId;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `getInvoiceWeight` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `getInvoiceWeight`(vInvoice VARCHAR(15)) RETURNS decimal(10,2)
+BEGIN
+ DECLARE vTotalWeight DECIMAL(10,2);
+
+ SELECT SUM(IFNULL(tallos,1) * Cantidad * a.density) sumTotal
+ INTO vTotalWeight FROM Tickets t
+ LEFT JOIN Movimientos m ON m.Id_Ticket = t.Id_Ticket
+ LEFT JOIN Articles a ON a.Id_Article = m.Id_Article
+ LEFT JOIN Tipos tp ON tp.tipo_id = a.tipo_id
+ WHERE t.Factura = vInvoice AND Codintrastat;
+ RETURN vTotalWeight;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `getShippingFromTicket` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `getShippingFromTicket`(vTicket INTEGER) RETURNS decimal(10,2)
+BEGIN
+ DECLARE vValue DECIMAL(10,2);
+ SELECT
+ SUM(Valor * m.Cantidad) INTO vValue
+ FROM
+ Movimientos_componentes mc
+ JOIN
+ Movimientos m ON m.Id_Movimiento = mc.Id_Movimiento
+ JOIN
+ bi.tarifa_componentes tc ON mc.Id_Componente = tc.Id_Componente
+ JOIN
+ bi.tarifa_componentes_series tcs ON tcs.tarifa_componentes_series_id = tc.tarifa_componentes_series_id
+ AND tcs.tarifa_componentes_series_id = 6
+
+ WHERE m.Id_Ticket = vTicket;
+
+ RETURN vValue;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `get_special_price` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `get_special_price`(intArticle int(11),intCliente int(11)) RETURNS decimal(10,2)
+BEGIN
+ DECLARE price DECIMAL(10,2);
+
+ SELECT rate_3 INTO price FROM price_fixed WHERE item_id = intArticle AND CURDATE() BETWEEN date_start AND date_end order by odbc_date DESC limit 1;
+
+ SELECT precioespecial INTO price FROM PreciosEspeciales WHERE Id_Article = intArticle and Id_Cliente = intCliente ;
+RETURN price;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `get_Trabajador` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `get_Trabajador`() RETURNS int(11)
+ DETERMINISTIC
+BEGIN
+ RETURN IFNULL((SELECT Id_Trabajador FROM Trabajadores WHERE user_id = account.userGetId()),20);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `has_notify_passport` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `has_notify_passport`(idA INT, idCompra INT) RETURNS tinyint(1)
+BEGIN
+ DECLARE has_passport BOOLEAN;
+ DECLARE is_already_sent BOOLEAN;
+
+ SELECT COUNT(*) INTO has_passport FROM vn2008.botanic_export be JOIN
+ vn2008.Articles_botanical ab ON be.edi_genus_id = ab.genus_id
+ AND IFNULL(be.edi_specie_id, ab.specie_id) = ab.specie_id
+ AND be.restriction = 'Se Requiere Certificado'
+ JOIN vn2008.Articles a ON a.Id_Article = ab.Id_Article
+ JOIN vn2008.Tipos t ON t.tipo_id = a.tipo_id
+ WHERE ab.Id_Article = idA AND t.reino_id = 2;
+
+ IF has_passport THEN
+ SELECT COUNT(*) INTO is_already_sent FROM mail M
+ JOIN vn2008.Compres c ON c.Id_Compra = idCompra
+ WHERE `text` LIKE CONCAT('%',c.buy_edi_id,'%') limit 1;
+ END IF;
+ RETURN has_passport && NOT is_already_sent;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `intrastat_neto` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `intrastat_neto`( intINSTRASTAT INTEGER,intUNIDADES INTEGER) RETURNS double
+BEGIN
+
+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 ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `is_bionic` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `is_bionic`(intTicket INT) RETURNS tinyint(1)
+BEGIN
+ DECLARE bolIsBionic boolean;
+ SELECT (COUNT(*) > 0) INTO bolIsBionic FROM order_Tickets ot
+ WHERE ot.Id_Ticket = intTicket;
+ RETURN bolIsBionic;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `lang` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `lang`() RETURNS char(2) CHARSET utf8
+ DETERMINISTIC
+BEGIN
+ RETURN IFNULL(@lang, 'es');
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `next_venc` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `next_venc`( datFecha DATE,intDia INT,intPayDay INT) RETURNS date
+BEGIN
+
+DECLARE n DATE;
+DECLARE datVenc DATE;
+DECLARE intVenc INT;
+
+ SELECT TIMESTAMPADD(DAY,intDia,datFecha) INTO datVenc;
+ SELECT DAY(datVenc) INTO intVenc;
+
+ SELECT MIN(TIMESTAMPADD(MONTH,(intVenc > intPayDay),DATE_FORMAT(datVenc,CONCAT('%y/%m/',intPayDay)))) INTO n;
+RETURN n;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `next_venctesting` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `next_venctesting`( datFecha DATE,intDia INT,intPayDay INT) RETURNS date
+BEGIN
+
+DECLARE n DATE;
+DECLARE datVenc DATE;
+DECLARE intVenc INT;
+
+ SELECT TIMESTAMPADD(DAY,intDia,datFecha) INTO datVenc;
+ SELECT DAY(datVenc) INTO intVenc;
+
+ SELECT IFNULL
+ (
+ TIMESTAMPADD
+ (
+ MONTH,
+ (intVenc > intPayDay),
+ DATE_FORMAT
+ (
+ datVenc,
+ CONCAT('%y/%m/',intPayDay)
+ )
+ ),
+ LAST_DAY(datVenc)
+ ) INTO n;
+RETURN n;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `nz` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `nz`(dblCANTIDAD DOUBLE) RETURNS double
+ DETERMINISTIC
+BEGIN
+
+ DECLARE dblRESULT DOUBLE;
+
+ SET dblRESULT = IFNULL(dblCANTIDAD,0);
+
+ RETURN dblRESULT;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `paymentday` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `paymentday`(vDated DATE, vDayToPay INT) RETURNS date
+BEGIN
+
+DECLARE vDued DATE;
+
+SET vDued = vn.getDueDate(vDated, vDayToPay);
+
+RETURN vDued;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `periodo` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `periodo`(datFEC DATETIME) RETURNS int(6)
+ DETERMINISTIC
+BEGIN
+
+DECLARE intPERIODO INt;
+
+SET intPERIODO = YEAR(datFEC) * 100 + MONTH(datFEC);
+
+RETURN intPERIODO;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `periodo_day` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `periodo_day`(datFEC DATETIME) RETURNS int(8)
+ DETERMINISTIC
+BEGIN
+
+DECLARE intPERIODO INt;
+
+SET intPERIODO = YEAR(datFEC) * 10000 + MONTH(datFEC) * 100 + DAY(datFEC);
+
+RETURN intPERIODO;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `porte` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `porte`(intId_Ticket INT) RETURNS double
+BEGIN
+
+
+ DECLARE dblprice DOUBLE;
+ SELECT
+ SUM(`az`.`price`) INTO dblprice
+ FROM
+ (((((`expeditions` `e`
+ JOIN `Tickets` `t` ON ((`e`.`ticket_id` = `t`.`Id_Ticket`)))
+ JOIN `Consignatarios` `c` ON ((`c`.`Id_Consigna` = `t`.`Id_Consigna`)))
+ JOIN `Agencias` `a` ON ((`a`.`Id_Agencia` = `t`.`Id_Agencia`)))
+ JOIN `Agencias_province` `ap` ON (((`t`.`warehouse_id` = `ap`.`warehouse_id`)
+ AND (`ap`.`province_id` = `c`.`province_id`)
+ AND (`ap`.`agency_id` = `a`.`agency_id`))))
+ JOIN `Agencias_zonas` `az` ON (((`az`.`Id_Agencia` = `t`.`Id_Agencia`)
+ AND (`az`.`zona` = `ap`.`zona`)
+ AND (`t`.`warehouse_id` = `az`.`warehouse_id`)
+ AND (`az`.`Id_Article` = `e`.`EsBulto`))))
+ WHERE
+ ((`t`.`Fecha` >= '2015-10-01')
+ AND (`t`.`empresa_id` IN (442 , 791))) AND t.Id_Ticket = intId_Ticket
+ GROUP BY `t`.`Id_Ticket`;
+
+ 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 ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `red` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `red`( intCANTIDAD DOUBLE) RETURNS double
+ DETERMINISTIC
+BEGIN
+
+ DECLARE n DOUBLE;
+
+ SET n = SIGN(intCANTIDAD) * TRUNCATE( (ABS(intCANTIDAD) * 100) + 0.5001 ,0) /100 ;
+
+ RETURN n;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `risk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ SELECT vn.clientGetDebt(intCustomer,datMax) INTO decRisk;
+
+ RETURN decRisk;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `semana` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+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);
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `shipmentDay` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+SET resultDay = (landingDay + 7 - (intervalDays mod 7)) mod 7;
+
+RETURN resultDay;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `ticket_freight` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `ticket_freight`(idT INT) RETURNS decimal(10,3)
+BEGIN
+ DECLARE intWh INTEGER;
+ DECLARE datFecha DATE;
+ DECLARE dblFreight DECIMAL(10,2);
+
+ SELECT warehouse_id, Fecha INTO intWh,datFecha FROM Tickets WHERE Id_Ticket = idT;
+
+ CALL item_last_buy_(intWh,datFecha);
+
+ SELECT SUM((`M`.`Cantidad` * (CM3(`b`.`buy_id`) / 1000000 /`C`.`Packing`) * `az`.`price` / 0.08)) INTO dblFreight
+ FROM Movimientos M
+ JOIN t_item_last_buy b on M.Id_Article = b.item_id
+ JOIN Compres C ON C.Id_Compra = b.buy_id
+ JOIN Tickets t on t.Id_Ticket = M.Id_Ticket
+ JOIN `Consignatarios` `cn` ON (`cn`.`Id_Consigna` = `t`.`Id_Consigna`)
+ JOIN `Agencias` `a` ON (`a`.`Id_Agencia` = `t`.`Id_Agencia`)
+ JOIN `Agencias_province` `ap` ON (`t`.`warehouse_id` = `ap`.`warehouse_id`)
+ AND (`ap`.`province_id` = `cn`.`province_id`)
+ AND (`ap`.`agency_id` = `a`.`agency_id`)
+ JOIN `Agencias_zonas` `az` ON (`az`.`Id_Agencia` = `t`.`Id_Agencia`)
+ AND (`az`.`zona` = `ap`.`zona`)
+ AND (`t`.`warehouse_id` = `az`.`warehouse_id`)
+ AND (`az`.`Id_Article` = 71)
+ WHERE M.Id_Ticket = idT;
+
+ DROP TEMPORARY TABLE t_item_last_buy;
+
+ RETURN dblFreight;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `ticket_state` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `ticket_state`(
+ strFAC VARCHAR(15),
+ intIMP TINYINT(1),
+ intETI TINYINT(1),
+ intBLO TINYINT(1)
+
+ ) RETURNS varchar(15) CHARSET utf8
+BEGIN
+CASE
+
+ WHEN strFAC IS NOT NULL AND strFAC != '' THEN RETURN 'FACTURADO';
+
+ WHEN intETI <> 0 THEN RETURN 'ALBARAN';
+
+ WHEN intIMP <> 0 THEN RETURN 'PREPARACION';
+
+ WHEN intBLO <> 0 THEN RETURN 'BLOQUEADO';
+
+ ELSE RETURN 'LIBRE';
+
+END CASE;
+
+
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `ticket_state_2` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `ticket_state_2`(
+ idTICKET INT(11)
+
+ ) RETURNS varchar(15) CHARSET utf8
+BEGIN
+
+DECLARE strVAR VARCHAR(15);
+
+
+SELECT ticket_state(Factura, PedidoImpreso, Etiquetasemitidas, Blocked)
+INTO strVAR
+FROM Tickets
+WHERE Id_Ticket = idTICKET;
+
+
+
+RETURN strVAR;
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `ticket_state_3` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `ticket_state_3`(
+ idTICKET INT(11)
+
+ ) RETURNS varchar(15) CHARSET utf8
+BEGIN
+
+DECLARE strVAR VARCHAR(15);
+DECLARE strNAM VARCHAR(15);
+DECLARE fltID FLOAT DEFAULT 0;
+DECLARE strfac VARCHAR(15);
+DECLARE inteti tinyint;
+DECLARE intimp tinyint;
+DECLARE intblk tinyint;
+
+SELECT s.`name`,id INTO strNAM,fltID
+ FROM Tickets t INNER JOIN vncontrol.inter i USING(Id_Ticket)
+ INNER JOIN state s ON s.id = i.state_id
+ WHERE Id_Ticket = idTICKET ORDER BY i.odbc_date DESC,i.state_id DESC LIMIT 1;
+
+SELECT Factura, PedidoImpreso, Etiquetasemitidas, Blocked
+ INTO strfac,intimp,inteti,intblk
+ FROM Tickets
+ WHERE Id_Ticket = idTICKET;
+
+CASE
+
+
+ WHEN strfac <> '' AND fltID < 11 THEN RETURN 'FACTURADO';
+
+ WHEN inteti <> 0 AND fltID < 11 THEN RETURN 'ALBARAN' ;
+
+ WHEN intimp <> 0 AND fltID <= 5 THEN RETURN 'EN PREPARACION';
+
+ WHEN fltID > 0 THEN RETURN strNAM;
+
+ ELSE RETURN 'LIBRE';
+
+END CASE;
+
+
+RETURN strVAR;
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `ticket_total` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `ticket_total`(ticket_id INT) RETURNS double
+BEGIN
+ DECLARE v_total DOUBLE;
+
+ DROP TEMPORARY TABLE IF EXISTS ticket_tmp;
+
+ CREATE TEMPORARY TABLE ticket_tmp
+ (INDEX idx USING HASH (ticket_id))
+ ENGINE = MEMORY
+ SELECT ticket_id;
+
+ CALL ticket_total ();
+
+ SELECT total INTO v_total FROM ticket_total;
+
+ DROP TEMPORARY TABLE ticket_total;
+ DROP TEMPORARY TABLE ticket_tmp;
+
+ RETURN v_total;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `ticket_volumen` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `ticket_volumen`(idT INT) RETURNS decimal(10,3)
+BEGIN
+ DECLARE intWh INTEGER;
+ DECLARE datFecha DATE;
+ DECLARE dblVolume DECIMAL(10,3);
+
+ SELECT warehouse_id, Fecha
+ INTO intWh,datFecha
+ FROM Tickets
+ WHERE Id_Ticket = idT;
+
+ SELECT IFNULL(SUM(m.Cantidad * cm3)/1000000,0) INTO dblVolume
+ FROM Movimientos m
+ JOIN bi.rotacion r on r.Id_Article = m.Id_Article AND r.warehouse_id = intWh
+ WHERE m.Id_Ticket = idT;
+
+ RETURN dblVolume;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `ticket_volumen_encajado` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ 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 ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `ticket_volumen_en_cajas` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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 ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `till_entry` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `till_entry`(
+ v_customer INT
+ ,v_bank INT
+ ,v_amount DOUBLE
+ ,v_concept VARCHAR(25)
+ ,v_date DATE
+ ,v_serial CHAR(1)
+ ,v_batch TINYINT
+ ,v_number INT
+ ,v_company SMALLINT
+ ,v_employee INT
+) RETURNS int(11)
+BEGIN
+ DECLARE v_account VARCHAR(12);
+ DECLARE v_subaccount VARCHAR(12);
+ DECLARE v_asiento INT DEFAULT NULL;
+
+ -- Inserta el registro en cajas
+
+ INSERT INTO Cajas
+ SET
+ Id_Trabajador = v_employee
+ ,Id_Banco = v_bank
+ ,Entrada = v_amount
+ ,Concepto = v_concept
+ ,Cajafecha = v_date
+ ,Serie = v_serial
+ ,Partida = v_batch
+ ,Numero = v_number
+ ,empresa_id = v_company;
+
+ -- Inserta los asientos contables
+
+ SELECT Cuenta INTO v_account
+ FROM Bancos WHERE Id_Banco = v_bank;
+
+ SELECT Cuenta INTO v_subaccount
+ FROM Clientes WHERE Id_Cliente = v_customer;
+
+ SET v_asiento = asiento
+ (
+ v_asiento
+ ,v_date
+ ,v_account
+ ,v_subaccount
+ ,v_concept
+ ,v_amount
+ ,0
+ ,0
+ ,NULL -- Serie
+ ,NULL -- Factura
+ ,NULL -- IVA
+ ,NULL -- Recargo
+ ,FALSE -- Auxiliar
+ ,v_company
+ );
+ DO asiento
+ (
+ v_asiento
+ ,v_date
+ ,v_subaccount
+ ,v_account
+ ,v_concept
+ ,0
+ ,v_amount
+ ,0
+ ,NULL -- Serie
+ ,NULL -- Factura
+ ,NULL -- IVA
+ ,NULL -- Recargo
+ ,FALSE -- Auxiliar
+ ,v_company
+ );
+
+ RETURN NULL;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `to_weeks` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `to_weeks`(v_date DATE) RETURNS int(11)
+ DETERMINISTIC
+BEGIN
+ RETURN FLOOR((TO_DAYS(v_date) - 366) / 7);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `ubicator_cabecaja` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+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.
+ RETURN FALSE;
+END IF;
+RETURN TRUE;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `vnday` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `vnday`(datfec DATE) RETURNS int(11)
+ DETERMINISTIC
+BEGIN
+
+DECLARE intper INT;
+
+SELECT day INTO intper FROM time WHERE date = datfec;
+
+RETURN intper;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `vndayname` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `vndayname`(datfec DATE) RETURNS varchar(10) CHARSET utf8 COLLATE utf8_unicode_ci
+ DETERMINISTIC
+BEGIN
+
+DECLARE vDayName VARCHAR(10);
+
+CASE weekday(datfec)
+
+ WHEN 6 then
+ SET vDayName = 'Domingo';
+
+ WHEN 0 then
+ SET vDayName = 'Lunes';
+
+ WHEN 1 then
+ SET vDayName = 'Martes';
+
+ WHEN 2 then
+ SET vDayName = 'Miercoles';
+
+ WHEN 3 then
+ SET vDayName = 'Jueves';
+
+ WHEN 4 then
+ SET vDayName = 'Viernes';
+
+ WHEN 5 then
+ SET vDayName = 'Sabado';
+
+END CASE;
+
+RETURN vDayName;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `vnmonth` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `vnmonth`(datfec DATE) RETURNS int(11)
+ DETERMINISTIC
+BEGIN
+
+DECLARE intper INT;
+
+SELECT month INTO intper FROM time WHERE date = datfec;
+
+RETURN intper;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `vnperiod` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `vnperiod`(datfec DATE) RETURNS int(6)
+ DETERMINISTIC
+BEGIN
+
+DECLARE intper INT;
+
+SELECT period INTO intper FROM time WHERE date = datfec;
+
+RETURN intper;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `vntrimestre` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `vntrimestre`(datfec DATE) RETURNS int(11)
+ DETERMINISTIC
+BEGIN
+
+ CASE
+ WHEN MONTH(datfec)<=3 THEN RETURN 1;
+ WHEN MONTH(datfec)<=6 THEN RETURN 2;
+ WHEN MONTH(datfec)<=9 THEN RETURN 3;
+ ELSE return 4;
+ END CASE;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `vnweek` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `vnweek`(datfec DATE) RETURNS int(11)
+ DETERMINISTIC
+BEGIN
+
+DECLARE intper INT;
+
+SELECT week INTO intper FROM time WHERE date = datfec;
+
+RETURN intper;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `vnyear` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `vnyear`(datfec DATE) RETURNS int(11)
+ DETERMINISTIC
+BEGIN
+
+DECLARE intper INT;
+
+SELECT year INTO intper FROM time WHERE date = datfec;
+
+RETURN intper;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `abono` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ DECLARE idUSER SMALLINT;
+ DECLARE idEMP MEDIUMINT;
+ DECLARE idCON MEDIUMINT;
+ DECLARE newTICKET MEDIUMINT;
+
+
+ SELECT Id_Cliente, TIMESTAMPADD(DAY, 1,Fecha), warehouse_id, empresa_id, Id_Consigna INTO idC, newFEC, idWH, idEMP, idCON
+ FROM Tickets WHERE Id_Ticket = idT;
+
+ SELECT Id_Trabajador into idUSER from Trabajadores where user_id = account.userGetId();
+ IF idUSER IS NULL THEN
+ SET idUSER = 20;
+ END IF;
+
+ CALL ticket_new_complet(idC, newFEC, idWH, idUSER, idEMP, idCON, 23,NULL,newTICKET);
+
+ UPDATE Tickets SET Etiquetasemitidas = 1 WHERE Id_Ticket = newTICKET;
+
+ INSERT INTO Movimientos(Id_Ticket, Id_Article, Cantidad, Concepte, Preu, Descuento, PrecioFijado)
+ SELECT newTICKET, Id_Article, -1 * Cantidad, Concepte, Preu, Descuento, 1 FROM Movimientos WHERE Id_Ticket = idT;
+ SELECT newTICKET;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `account_conciliacion_add` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `account_conciliacion_add`()
+BEGIN
+
+update account_conciliacion ac
+join
+(
+ select idaccount_conciliacion, @c:= if(@id = id_calculated, @c + 1, 1) contador
+ , @id:= id_calculated as id_calculated, concat(id_calculated,'(',@c,')') as new_id from account_conciliacion
+ join
+ (
+ select id_calculated, count(*) rep, @c:= 0, @id:= concat('-',id_calculated) from account_conciliacion
+ group by id_calculated
+ having rep > 1
+ ) sub using(id_calculated)
+) sub2 using(idaccount_conciliacion)
+set ac.id_calculated = sub2.new_id;
+
+
+insert into Cajas(Cajafecha, Partida, Serie, Concepto, Entrada, Salida, Id_Banco, Id_Trabajador, empresa_id, warehouse_id, Proveedores_account_id, id_calculated)
+select Fechaoperacion, TRUE, 'MB', ac.Concepto, IF(DebeHaber = 2, importe,null), IF(DebeHaber = 1, importe, null), pa.Id_Banco, 20
+ , pa.Id_Proveedor, 1, ac.Id_Proveedores_account,ac.id_calculated
+from account_conciliacion ac
+join Proveedores_account pa on pa.Id_Proveedores_account = ac.Id_Proveedores_account
+left join Cajas c on c.id_calculated = ac.id_calculated
+where c.Id_Caja is null;
+
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `accumulatorsReadingDateUpdate` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ (
+ SELECT
+ d.id,
+ CASE
+ WHEN rr.rate between p.lowerBarrier and p.rate THEN p.strike
+ WHEN rr.rate between p.rate and p.upperBarrier AND p.financialProductTypefk = 'AC' THEN p.strike
+ WHEN rr.rate >= p.upperBarrier THEN p.strike * 2
+ ELSE 0
+ END AS Acumulado
+ FROM vn2008.reference_rate rr
+ JOIN accumulatorsReadingDate d ON d.readingDate = rr.date
+ JOIN pago_sdc p ON p.pago_sdc_id = d.pagoSdcfk
+ WHERE IFNULL(amount,0) = 0
+ AND rr.rate >= p.lowerBarrier) sub ON sub.id = a.id
+ SET a.amount = sub.Acumulado
+ WHERE a.amount IS NULL;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `add_awb_component` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `add_awb_component`(IN v_awb SMALLINT)
+BEGIN
+
+ INSERT IGNORE INTO awb_component (awb_id,Id_Proveedor,awb_component_type_id,awb_role_id,awb_unit_id,value,Id_Moneda)
+ SELECT id,Id_Proveedor,awb_component_type_id,awb_role_id,awb_unit_id,LEAST(GREATEST(value1,IFNULL(min_value,value1)),IFNULL(max_value,value1)),Id_Moneda
+ FROM (
+ SELECT a.id,IFNULL(act.carguera_id,CASE awb_role_id WHEN 1 THEN a.carguera_id WHEN 2 THEN a.transitario_id WHEN 3 THEN f.airline_id END) Id_Proveedor,
+ act.awb_component_type_id,act.awb_role_id,act.awb_unit_id, value *
+ CASE awb_unit_id
+ 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 'FB' THEN hb/2
+ WHEN 'GW' THEN peso
+ WHEN 'TW' THEN GREATEST(peso,volume_weight)
+ END value1
+ , value,
+ act.Id_Moneda, act.min_value, act.max_value
+ FROM awb a JOIN flight f ON f.flight_id = a.flight_id
+ LEFT JOIN awb_component_template act ON ((IFNULL(act.carguera_id, a.carguera_id) = a.carguera_id AND awb_role_id = 1)
+ OR (IFNULL(act.carguera_id, a.transitario_id) = a.transitario_id AND awb_role_id = 2))
+ AND IFNULL(act.airport_out, f.airport_out) = f.airport_out AND IFNULL(act.airport_in, f.airport_in) = f.airport_in
+ AND IFNULL(act.airline_id, f.airline_id) = f.airline_id
+ WHERE a.id = v_awb AND Fecha <= CURDATE() ORDER BY Fecha DESC) t ;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `adelantarTickets` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `adelantarTickets`(datCurrent DATE,datAttempted DATE)
+BEGIN
+ DECLARE vWarehouse INTEGER;
+ DECLARE vFechedTicket INTEGER;
+ DECLARE done INT DEFAULT 0;
+ DECLARE vFetchCounter INT DEFAULT 0;
+ DECLARE cur1 CURSOR FOR
+ SELECT ticketId
+ FROM tmpTicketList;
+ DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
+
+ OPEN cur1;
+
+ SELECT warehouse_id INTO vWarehouse FROM tmpTicketList ttl JOIN Tickets t ON t.Id_Ticket = ttl.ticketId LIMIT 1;
+ CALL item_stock(vWarehouse,CURDATE(),NULL);
+
+ DROP TEMPORARY TABLE IF EXISTS tmpAdelantarTickets;
+ CREATE TEMPORARY TABLE tmpAdelantarTickets(
+ Id_Ticket INT,
+ count INT,
+ media DOUBLE)
+ ENGINE = MEMORY;
+
+ REPEAT
+ FETCH cur1 INTO vFechedTicket;
+
+ INSERT INTO tmpAdelantarTickets
+ SELECT
+ vFechedTicket,
+ COUNT(Cantidad),
+ AVG(Cantidad <= IFNULL(Saldo, 0)) AS `AVG`
+ FROM Movimientos m
+ LEFT JOIN
+ (SELECT
+ *
+ FROM
+ (SELECT
+ Id_Article, Saldo
+ FROM
+ (SELECT
+ Dia, Id_Article, SUM(Entradas - Salidas) AS Saldo
+ FROM
+ (
+ SELECT CURDATE() AS Dia,
+ item_id Id_Article,
+ stock AS Entradas,
+ 0 AS Salidas
+ FROM tmp_item ti
+ JOIN Movimientos m ON m.Id_Article = ti.item_id AND m.Id_Ticket = vFechedTicket
+ UNION ALL
+ SELECT DATE(t.Fecha) AS Dia,
+ mt.Id_Article,
+ 0 AS Entradas,
+ - m.Cantidad AS Salidas
+ FROM Tickets t
+ JOIN Movimientos m ON m.Id_Ticket = t.Id_Ticket AND t.warehouse_id = vWarehouse
+ JOIN Movimientos mt ON mt.Id_Article = m.Id_Article
+ WHERE mt.Id_Ticket = vFechedTicket AND
+ t.Fecha BETWEEN curdate() AND datCurrent
+ UNION ALL
+ SELECT tr.landing, c.Id_Article, c.Cantidad, 0
+ FROM
+ Compres c
+ JOIN Movimientos mt ON mt.Id_Article = c.Id_Article
+ JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada
+ JOIN travel tr ON tr.id = travel_id and tr.warehouse_id = vWarehouse
+ WHERE mt.Id_Ticket = vFechedTicket AND
+ tr.landing BETWEEN curdate() AND datCurrent
+ UNION ALL
+ SELECT tr.shipment, c.Id_Article, - c.Cantidad, 0
+ FROM
+ Compres c
+ JOIN Movimientos mt ON mt.Id_Article = c.Id_Article
+ JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada
+ JOIN travel tr ON tr.id = travel_id and tr.warehouse_id_out = vWarehouse
+ WHERE mt.Id_Ticket = vFechedTicket AND tr.shipment BETWEEN curdate() AND datCurrent
+ ) sub GROUP BY Dia , Id_Article) sub2
+ ORDER BY Saldo) sub3
+ GROUP BY Id_Article) sub4 USING (Id_Article)
+ WHERE m.Id_Ticket = vFechedTicket;
+
+ UNTIL done END REPEAT;
+
+ select * from tmpAdelantarTickets;
+ CLOSE cur1;
+ DROP TEMPORARY TABLE IF EXISTS tmpAdelantarTickets;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `agencia_descuadre` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `agencia_descuadre`(datSince DATE, datTo DATE, intAgency INT, intWarehouseAlias INT)
+BEGIN
+
+
+ DECLARE isFile boolean;
+ DECLARE datTo2359 DATETIME;
+
+ SET datTo2359 = util.dayEnd(datTo);
+
+ SELECT SUM(price) INTO isFile FROM agencia_descuadre;
+
+ IF NOT IFNULL(isFile,0) THEN
+
+ SELECT t.Id_Ticket,0 AS Total_Agencia,t.Id_Consigna,t.empresa_id,t.warehouse_id,
+ v.suma_componente AS VN, v.suma_componente - shipping_charge AS Difer,
+ e.shipping_charge AS teorico,t.Id_Agencia, t.Bultos,t.Id_Cliente, ap.zona
+
+ FROM Tickets t LEFT JOIN
+ (SELECT Id_Ticket, SUM(suma_componente) suma_componente,Fecha
+ FROM v_descuadre_porte2
+ WHERE Fecha BETWEEN datSince AND datTo2359
+ GROUP BY Id_Ticket) v ON t.Id_Ticket = v.Id_Ticket
+ LEFT JOIN (SELECT Id_Ticket, SUM(shipping_charge) shipping_charge, Fecha
+ FROM v_expeditions_shipping_charge2
+ WHERE Fecha BETWEEN datSince AND datTo2359
+ GROUP BY Id_Ticket
+ ) e ON t.Id_Ticket = e.Id_Ticket
+ JOIN Agencias a ON a.Id_Agencia = t.Id_Agencia
+ JOIN Consignatarios c ON t.Id_Consigna = c.Id_Consigna
+ JOIN Agencias_province ap ON ap.agency_id = a.agency_id AND ap.warehouse_id = t.warehouse_id AND ap.province_id = c.province_id
+ JOIN warehouse_group wg ON wg.warehouse_id =t.warehouse_id
+ WHERE DATE(t.Fecha) BETWEEN datSince AND datTo2359 AND a.agency_id = intAgency and wg.warehouse_alias_id = intWarehouseAlias;
+
+ ELSE
+
+ SELECT t.Id_Ticket, Round(sum_price , 2) AS Total_Agencia,t.Id_Consigna,t.empresa_id,t.warehouse_id,
+ v.suma_componente AS VN, IF(isFile,Round(sum_price, 2) - v.suma_componente,v.diferencia) AS Difer,
+ v.teorico_agencia AS teorico,zd.Id_Agencia, t.Bultos,t.Id_Cliente
+ FROM
+ (SELECT
+ *, SUM(price) sum_price
+ FROM
+ (select
+ t.Id_Ticket, zd.price,t.Id_Consigna, zd.date,t.empresa_id,t.warehouse_id,c.Descuento,t.Id_Agencia
+ from
+ agencia_descuadre zd
+ LEFT JOIN Tickets t ON t.Id_Ticket = zd.Id_Ticket
+ LEFT JOIN Clientes c ON c.Id_Cliente = t.Id_Cliente
+ ORDER BY t.Id_Cliente DESC) t
+ GROUP BY Id_Ticket,`date`) zd
+ LEFT JOIN
+ Tickets t ON zd.date = DATE(t.Fecha)
+ AND zd.Id_Consigna = t.Id_Consigna
+ AND zd.warehouse_id = t.warehouse_id
+ AND zd.Id_Agencia = t.Id_Agencia
+ 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
+ ORDER BY v.diferencia;
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `agencia_volume` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `agencia_volume`()
+BEGIN
+ DECLARE v_start DATETIME DEFAULT TIMESTAMP(CURDATE());
+ DECLARE v_end DATETIME DEFAULT TIMESTAMP(CURDATE(), '23:59:59');
+
+
+ SET v_start = IF(WEEKDAY(CURDATE()), CURDATE(),TIMESTAMPADD(DAY,-1,CURDATE()));
+ SET v_start = IF(CURDATE() = '2014-05-02', '2014-05-01',v_start);
+ DROP TEMPORARY TABLE IF EXISTS agenVOL;
+ CREATE TEMPORARY TABLE agenVOL
+ (
+ Id_Ticket INT PRIMARY KEY
+ ,Id_Agencia INT
+ ,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
+ FROM Tickets t
+ JOIN Agencias a USING(Id_Agencia)
+ JOIN Movimientos m USING(Id_Ticket)
+ 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 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)
+ FROM expeditions e
+ JOIN Tickets t ON t.Id_Ticket = e.ticket_id
+ JOIN Agencias a ON a.Id_Agencia = e.agency_id
+ 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 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
+ JOIN Agencias a ON a.Id_Agencia = t.Id_Agencia
+ JOIN agency ag ON ag.agency_id = a.agency_id
+ LEFT JOIN expeditions e ON e.ticket_id = t.Id_Ticket
+ 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 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*/
+ FROM agenVOL a
+ JOIN Agencias agen USING(Id_Agencia)
+ JOIN agency ag USING(agency_id)
+ GROUP BY ag.agency_id/*, Prioridad*/ ;
+
+ DROP TEMPORARY TABLE IF EXISTS agenVOL;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `alfa_invoices` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `alfa_invoices`(IN datFEC DATE)
+BEGIN
+
+DECLARE datSTART DATETIME;
+DECLARE vTotal DECIMAL(10,2) DEFAULT 0.00;
+
+SET @myId = -10000000;
+SET @myRef = 'factura';
+SET @myTotal = vTotal;
+
+SET datSTART = TIMESTAMPADD(DAY, -1 * DAYOFMONTH(datFEC) + 1, datfec);
+
+IF datFEC < '2017-07-01' THEN
+
+ SELECT Id_Factura `Invoice no`,
+ date(Fecha) as `Invoice date`,
+ Id_Cliente `Debtor no`,
+ `IF` `Vat nr`,
+ Razonsocial `Name`,
+ BI7 `Amount excl Vat 6%`,
+ BI16 `Amount excl Vat 19%`,
+ IVA7 `Vat 6%`,
+ IVA16 `Vat 19%`,
+ Importe `Total inc Vat`
+ from Facturas
+ INNER JOIN Clientes USING(Id_Cliente)
+ where empresa_id = 567
+ and Fecha BETWEEN datSTART AND datFEC
+ order by `Invoice date`, factura_id;
+
+ELSE
+
+SELECT * FROM
+ (
+ SELECT io.ref `Invoice no`,
+ io.issued `Invoice date`,
+ IF(@myId = io.id, '', clientFk) `Debtor no`,
+ IF(@myId = io.id, '', c.fi) `Vat nr`,
+ IF(@myId = io.id, '', c.socialName) `Name`,
+ taxableBase `Taxable Amount excl VAT`,
+ CONCAT(CAST(pgc.rate AS DECIMAL(2,0)) ,' %') `VAT Rate`,
+ CAST(vat AS DECIMAL(10,2)) `VAT Quote`,
+ CAST(@myTotal + taxableBase + vat AS DECIMAL(10,2)) `Total plus Vat`,
+ IF(@myId := io.id, NULL, NULL) as ControlField
+ FROM vn.invoiceOut io
+ JOIN vn.client c ON c.id = io.clientFk
+ JOIN vn.invoiceOutTax iot ON iot.invoiceOutFk = io.id
+ JOIN vn.pgc ON pgc.code = iot.pgcFk
+ WHERE io.companyFk = 567
+ AND io.issued BETWEEN datSTART AND datFEC
+ ORDER BY io.id, iot.id
+ ) t1
+ ORDER BY `Invoice date` DESC, `Invoice no`;
+
+END IF;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `article` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `article`()
+BEGIN
+ DROP TEMPORARY TABLE IF EXISTS `article_inventory`;
+ CREATE TEMPORARY TABLE `article_inventory`
+ (
+ `article_id` INT(11) NOT NULL PRIMARY KEY,
+ `future` DATETIME
+ )
+ ENGINE = MEMORY;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `articleTagUpdatePriority_kk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `articleTagUpdatePriority_kk`(IN vItem INT)
+BEGIN
+/*
+* DEPRECATED
+*/
+
+CALL vn.itemTagUpdatePriority(vItem);
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `article_available_single` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `article_available_single`(IN v_wh TINYINT, IN v_date DATETIME, IN id_single INT)
+BEGIN
+
+ CALL bionic_available_single (v_wh, v_date,id_single,0);
+
+
+ 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 ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `article_inventory_warehouses` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ DECLARE vTravelId INT;
+ DECLARE vDateTime DATETIME DEFAULT TIMESTAMP(vDate, '00:00:00');
+ DECLARE vDeleteDate DATE DEFAULT TIMESTAMPADD(DAY, -2, vDate);
+
+ DECLARE cWarehouses CURSOR FOR
+ SELECT id FROM warehouse WHERE inventario;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND
+ SET vDone = TRUE;
+
+ OPEN cWarehouses;
+
+ l: LOOP
+
+ SET vDone = FALSE;
+ FETCH cWarehouses INTO vWh;
+
+ IF vDone THEN
+ LEAVE l;
+ END IF;
+
+ INSERT INTO travel SET
+ warehouse_id_out = 13,
+ warehouse_id = vWh,
+ shipment = vDateTime,
+ landing = vDateTime,
+ agency_id = 53,
+ ref = 'inventario',
+ delivered = TRUE,
+ received = TRUE;
+
+ SELECT LAST_INSERT_ID() INTO vTravelId;
+
+ INSERT INTO Entradas SET
+ Id_Proveedor = 4,
+ Fecha = vDateTime,
+ Confirmada = TRUE,
+ Pedida = TRUE,
+ travel_id = vTravelId;
+
+ 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;
+
+ UPDATE article_inventory ai
+ JOIN
+ (
+ SELECT * FROM (
+ SELECT Id_Article, Id_Compra,warehouse_id
+ FROM Compres c
+ JOIN Entradas e USING (Id_Entrada)
+ JOIN travel tr ON tr.id = e.travel_id
+ WHERE Novincular = FALSE
+ AND costefijo > 0 AND tarifa2 > 0
+ AND NOT Redada
+ AND landing BETWEEN date_inv() AND vDate
+ ORDER BY (vWh = warehouse_id) DESC, landing DESC
+ ) t1
+ GROUP BY Id_Article
+ ) t
+ ON ai.article_id = t.Id_Article
+ SET ai.buy_id = t.Id_Compra;
+
+ INSERT INTO Compres (
+ Id_Entrada
+ ,Id_Article
+ ,Cantidad
+ ,Costefijo
+ ,Packing
+ ,Id_Cubo
+ ,Tarifa2
+ ,Tarifa3
+ ,Productor
+ )
+ SELECT
+ vEntryId
+ ,AI.article_id
+ ,IF(AI.visible < 0,0,AI.visible)
+ ,ifnull(C.Costefijo,0) + ifnull(C.Portefijo,0) + ifnull(C.Comisionfija,0) + ifnull(C.Embalajefijo,0)
+ ,C.Packing
+ ,C.Id_Cubo
+ ,C.Tarifa2
+ ,C.Tarifa3
+ ,C.Productor
+ FROM article_inventory AI
+ LEFT JOIN Compres C ON C.Id_Compra = AI.buy_id;
+
+ DROP TEMPORARY TABLE article_inventory;
+ END LOOP;
+
+ CLOSE cWarehouses;
+
+ UPDATE tblContadores SET FechaInventario = vDate;
+
+ DELETE e
+ FROM travel t
+ JOIN Entradas e ON e.travel_id = t.id
+ WHERE Id_Proveedor = 4
+ AND shipment <= vDeleteDate
+ AND (DAY(shipment) <> 1 OR shipment < TIMESTAMPADD(MONTH, -5, CURDATE()));
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `article_minacum` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+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;
+
+ 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
+ ENGINE = MEMORY
+ SELECT t.article_id, t.warehouse_id, minacum(dat, amount, v_date) AS amount FROM (
+ SELECT article_id, DATE(Fecha) AS dat, SUM(amount) AS amount, warehouse_id FROM (
+ SELECT Id_Article article_id, Fecha, -Cantidad AS amount, warehouse_id
+ FROM Movimientos m INNER JOIN Tickets t USING (Id_Ticket)
+ WHERE Fecha BETWEEN v_date_ini AND v_date_end
+ AND Cantidad != 0
+ AND (@aid IS NULL OR Id_Article = @aid)
+ AND (v_wh IS NULL OR t.warehouse_id = v_wh)
+ UNION ALL
+ SELECT Id_Article, t.landing, Cantidad, warehouse_id
+ FROM Compres c INNER JOIN Entradas e USING (Id_Entrada)
+ LEFT JOIN travel t ON e.travel_id = t.id
+ WHERE t.landing BETWEEN v_date_ini AND v_date_end
+ AND (v_wh IS NULL OR t.warehouse_id = v_wh)
+ AND e.Inventario = FALSE
+ AND Cantidad != 0
+ AND (@aid IS NULL OR Id_Article = @aid)
+ UNION ALL
+ SELECT Id_Article, t.shipment, -Cantidad, warehouse_id_out
+ FROM Compres c INNER JOIN Entradas e USING (Id_Entrada)
+ LEFT JOIN travel t ON e.travel_id = t.id
+ WHERE t.shipment BETWEEN v_date_ini AND v_date_end
+ AND (v_wh IS NULL OR t.warehouse_id_out = v_wh)
+ AND e.Inventario = FALSE
+ AND Cantidad != 0
+ AND (@aid IS NULL OR Id_Article = @aid)
+ ) t1
+ GROUP BY t1.article_id, dat, warehouse_id
+ ) t
+
+ GROUP BY t.article_id, warehouse_id HAVING amount != 0;
+ SET @aid = NULL;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `article_multiple_buy` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `article_multiple_buy`(v_date DATETIME, wh INT)
+BEGIN
+ DECLARE v_date_aux DATETIME;
+
+ SELECT TIMESTAMPADD(DAY, -90, CURDATE()) INTO v_date_aux;
+
+ ALTER TABLE article_inventory
+ ADD buy_id INT;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp;
+
+ CREATE TEMPORARY TABLE tmp
+ (KEY (Id_Article))
+ ENGINE = MEMORY
+ SELECT * FROM
+ (
+ SELECT Id_Article, Id_Compra
+ FROM bi.Last_buy_id
+ ORDER BY (wh = warehouse_id) DESC
+ ) t
+ GROUP BY Id_Article;
+
+ UPDATE article_inventory ai
+ JOIN tmp t ON ai.article_id = t.Id_Article
+ SET ai.buy_id = t.Id_Compra;
+
+ -- Los valores de hoy
+
+ TRUNCATE TABLE tmp;
+
+ INSERT INTO tmp
+ SELECT Id_Article, Id_Compra
+ FROM Compres c
+ JOIN Entradas e USING (Id_Entrada)
+ JOIN travel tr ON tr.id = e.travel_id
+ WHERE Novincular = FALSE
+ AND tarifa2 > 0
+ AND landing BETWEEN CURDATE() AND v_date
+ ORDER BY (wh = warehouse_id) DESC;
+
+ UPDATE article_inventory ai
+ INNER JOIN tmp t
+ ON ai.article_id = t.Id_Article
+ SET ai.buy_id = t.Id_Compra;
+
+ CREATE INDEX idx USING HASH ON article_inventory (buy_id);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `article_multiple_buy_date` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `article_multiple_buy_date`(IN date_ DATETIME, IN wh TINYINT(3))
+BEGIN
+
+ DECLARE datINV DATE;
+ SELECT FechaInventario INTO datINV FROM tblContadores;
+
+ ALTER TABLE `article_inventory`
+ ADD `buy_date` datetime NOT NULL;
+
+ UPDATE article_inventory INNER JOIN
+ (
+
+ SELECT * FROM
+ (
+ SELECT travel.landing AS bdate, Compres.Id_Article AS article_id
+ FROM Compres
+ JOIN Entradas USING(Id_Entrada)
+ JOIN travel ON travel.id = Entradas.travel_id
+
+ 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
+
+ ) AS temp
+ GROUP BY article_id
+ )
+ AS buy ON article_inventory.article_id = buy.article_id
+ SET article_inventory.buy_date = buy.bdate;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `article_multiple_buy_last` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `article_multiple_buy_last`(IN wh TINYINT, IN date_end DATETIME)
+BEGIN
+ DECLARE v_date DATETIME;
+
+ DROP TEMPORARY TABLE IF EXISTS article_buy_last;
+ CREATE TEMPORARY TABLE article_buy_last
+ SELECT * FROM (
+ SELECT c.Id_Article AS article_id, c.Id_Compra AS id
+ FROM Compres c INNER JOIN Entradas e USING(Id_Entrada)
+ INNER JOIN travel t ON t.id = e.travel_id
+ WHERE t.landing BETWEEN date_inv() AND date_end
+ AND c.Novincular = FALSE
+ AND c.tarifa2 > 0
+ ORDER BY t.landing DESC,(wh IN (0,t.warehouse_id)) DESC, (Id_Cubo IS NULL) ,article_id, (e.Id_proveedor = 4)
+ ) t
+ GROUP BY article_id;
+ ALTER TABLE article_buy_last ADD INDEX (article_id);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `article_visible_single` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `article_visible_single`(IN v_wh TINYINT,IN v_article INT)
+BEGIN
+DECLARE bisible FLOAT;
+CALL article_visible_single2(v_wh,v_article,@suma2);
+
+SET bisible = @suma2;
+SELECT bisible AS suma, A.Id_Article, A.Article, A.Medida, A.Tallos, A.Nicho, O.Abreviatura as origen, A.Color, A.Tipo, A.Nicho,
+ A.Categoria
+ FROM v_compres A INNER JOIN Origen O ON O.id = A.id_origen WHERE A.Id_Article =v_article AND A.warehouse_id = v_wh ORDER BY landing DESC LIMIT 1;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `article_visible_single2` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `article_visible_single2`(IN v_wh TINYINT,IN v_article INT,OUT int_amount INT)
+BEGIN
+
+ call item_stock(v_wh,CURDATE(),v_article);
+ call article_visible(v_wh);
+
+ SELECT SUM(stock) INTO int_amount FROM tmp_item WHERE item_id = v_article ;
+ SELECT IFNULL(SUM(amount),0) + IFNULL(int_amount,0) INTO int_amount
+ FROM article_visible
+ WHERE article_id = v_article;
+
+ DROP TEMPORARY TABLE tmp_item;
+ DROP TEMPORARY TABLE article_visible;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `availableTraslate` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `availableTraslate`(vWarehouseLanding INT, v_date DATE,vWarehouseShipment INT)
+proc: BEGIN
+ DECLARE v_date_ini DATE;
+ DECLARE v_date_end DATETIME;
+ DECLARE v_reserve_date DATETIME;
+ DECLARE v_date_inv DATE;
+
+ IF v_date < CURDATE()
+ THEN
+ LEAVE proc;
+ END IF;
+
+ 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');
+
+ SELECT FechaInventario INTO v_date_inv FROM vn2008.tblContadores;
+
+ 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
+ (PRIMARY KEY (item_id))
+ ENGINE = MEMORY
+ SELECT c.Id_Article item_id, MAX(landing) date_end
+ FROM vn2008.Compres c
+ JOIN vn2008.Entradas e ON c.Id_Entrada = e.Id_Entrada
+ JOIN vn2008.travel t ON t.id = e.travel_id
+ JOIN vn2008.warehouse w ON w.id = t.warehouse_id
+ WHERE t.landing BETWEEN v_date_inv AND v_date_ini
+ AND t.warehouse_id = vWarehouseLanding
+ AND NOT e.Inventario
+ 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());
+
+ 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;
+
+ INSERT INTO item_range
+ SELECT t.item_id, tr.landing
+ FROM t_item_last_buy t
+ JOIN Compres c ON c.Id_Compra = t.buy_id
+ JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada
+ JOIN travel tr ON tr.id = e.travel_id
+ LEFT JOIN item_range_copy i ON t.item_id = i.item_id
+ WHERE t.warehouse_id = vWarehouseShipment
+ ON DUPLICATE KEY UPDATE item_range.date_end = GREATEST(item_range.date_end,landing);
+
+ 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;
+ INSERT INTO item_range_copy1
+ SELECT c.item_id, TIMESTAMP(TIMESTAMPADD(DAY, t.life, c.date_end), '23:59:59') date_end FROM item_range c
+ 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;
+
+ DROP TEMPORARY TABLE IF EXISTS item_range_copy2;
+ CREATE TEMPORARY TABLE item_range_copy2 LIKE item_range_copy1;
+ INSERT INTO item_range_copy2
+ SELECT * FROM item_range_copy1;
+
+ DROP TEMPORARY TABLE IF EXISTS item_range_copy3;
+ CREATE TEMPORARY TABLE item_range_copy3 LIKE item_range_copy1;
+ INSERT INTO item_range_copy3
+ SELECT * FROM item_range_copy1;
+
+ DROP TEMPORARY TABLE IF EXISTS item_range_copy4;
+ CREATE TEMPORARY TABLE item_range_copy4 LIKE item_range_copy1;
+ INSERT INTO item_range_copy4
+ SELECT * FROM item_range_copy1;
+
+ DROP TEMPORARY TABLE IF EXISTS item_range_copy5;
+ CREATE TEMPORARY TABLE item_range_copy5 LIKE item_range_copy1;
+ INSERT INTO item_range_copy5
+ SELECT * FROM item_range_copy1;
+
+ -- Calcula el ATP
+
+ DROP TEMPORARY TABLE IF EXISTS availableTraslate;
+ CREATE TEMPORARY TABLE availableTraslate
+ (PRIMARY KEY (item_id))
+ ENGINE = MEMORY
+ SELECT t.item_id, SUM(stock) available FROM (
+ SELECT ti.item_id, stock
+ FROM vn2008.tmp_item ti
+ JOIN item_range ir ON ir.item_id = ti.item_id
+ UNION ALL
+ SELECT t.item_id, minacum(dt, amount, v_date) AS available FROM (
+ SELECT item_id, DATE(dat) dt, SUM(amount) amount FROM (
+ SELECT i.item_id, i.dat, i.amount
+ FROM vn2008.item_out i
+ JOIN item_range_copy1 ir ON ir.item_id = i.item_id
+ WHERE i.dat >= v_date_ini
+ AND (ir.date_end IS NULL OR i.dat <= ir.date_end)
+ AND i.warehouse_id = vWarehouseLanding
+ UNION ALL
+ SELECT m.Id_Article item_id, t.landing dat, m.Cantidad amount
+ FROM Compres m
+ JOIN Entradas e ON m.Id_Entrada = e.Id_Entrada
+ JOIN travel t ON e.travel_id = t.id
+ JOIN item_range_copy2 ir ON ir.item_id = m.Id_Article
+ WHERE
+ e.Inventario = 0
+ AND m.Cantidad <> 0
+ AND e.redada = 0
+ AND t.warehouse_id = vWarehouseLanding
+ AND t.landing >= v_date_ini
+ AND (ir.date_end IS NULL OR t.landing <= ir.date_end)
+
+ UNION ALL
+ SELECT i.item_id, i.dat, i.amount
+ FROM vn2008.item_entry_out i
+ JOIN item_range_copy3 ir ON ir.item_id = i.item_id
+ WHERE i.dat >= v_date_ini
+ AND (ir.date_end IS NULL OR i.dat <= ir.date_end)
+ AND i.warehouse_id = vWarehouseLanding
+ UNION ALL
+ SELECT r.item_id, r.shipment, -r.amount
+ FROM hedera.order_row r
+ JOIN hedera.`order` o ON o.id = r.order_id
+ JOIN item_range_copy4 ir ON ir.item_id = r.item_id
+ WHERE r.shipment >= v_date_ini
+ AND (ir.date_end IS NULL OR r.shipment <= ir.date_end)
+ AND r.warehouse_id = vWarehouseLanding
+ AND r.created >= v_reserve_date
+ AND NOT o.confirmed
+ ) t
+ GROUP BY item_id, dt
+ ) t
+ GROUP BY t.item_id
+ ) t GROUP BY t.item_id HAVING available != 0;
+
+ DROP TEMPORARY TABLE
+ vn2008.tmp_item
+ ,item_range
+ ,item_range_copy1
+ ,item_range_copy2
+ ,item_range_copy3
+ ,item_range_copy4
+ ,item_range_copy5;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `availableTraslatekk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `availableTraslatekk`(vWarehouseLanding INT, v_date DATE,vWarehouseShipment INT)
+proc: BEGIN
+ DECLARE v_date_ini DATE;
+ DECLARE v_date_end DATETIME;
+ DECLARE v_reserve_date DATETIME;
+ DECLARE v_date_inv DATE;
+
+ IF v_date < CURDATE()
+ THEN
+ LEAVE proc;
+ END IF;
+
+ 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');
+
+ SELECT FechaInventario INTO v_date_inv FROM vn2008.tblContadores;
+
+ 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
+ (PRIMARY KEY (item_id))
+ ENGINE = MEMORY
+ SELECT c.Id_Article item_id, MAX(landing) date_end
+ FROM vn2008.Compres c
+ JOIN vn2008.Entradas e ON c.Id_Entrada = e.Id_Entrada
+ JOIN vn2008.travel t ON t.id = e.travel_id
+ JOIN vn2008.warehouse w ON w.id = t.warehouse_id
+ WHERE t.landing BETWEEN v_date_inv AND v_date_ini
+ AND t.warehouse_id = vWarehouseLanding
+ AND NOT e.Inventario
+ AND NOT e.Redada
+ GROUP BY Id_Article;
+
+ SELECT c.Id_Article item_id, MAX(landing) date_end
+ FROM vn2008.Compres c
+ JOIN vn2008.Entradas e ON c.Id_Entrada = e.Id_Entrada
+ JOIN vn2008.travel t ON t.id = e.travel_id
+ JOIN vn2008.warehouse w ON w.id = t.warehouse_id
+ WHERE t.landing BETWEEN v_date_inv AND v_date_ini
+ AND t.warehouse_id = vWarehouseLanding
+ AND NOT e.Inventario
+ 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());
+
+ 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;
+
+ INSERT INTO item_range
+ SELECT t.item_id, tr.landing
+ FROM t_item_last_buy t
+ JOIN Compres c ON c.Id_Compra = t.buy_id
+ JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada
+ JOIN travel tr ON tr.id = e.travel_id
+ LEFT JOIN item_range_copy i ON t.item_id = i.item_id
+ WHERE t.warehouse_id = vWarehouseShipment
+ ON DUPLICATE KEY UPDATE item_range.date_end = GREATEST(item_range.date_end,landing);
+
+
+
+ SELECT t.item_id, tr.landing
+ FROM t_item_last_buy t
+ JOIN Compres c ON c.Id_Compra = t.buy_id
+ JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada
+ JOIN travel tr ON tr.id = e.travel_id
+ LEFT JOIN item_range_copy i ON t.item_id = i.item_id
+ WHERE t.warehouse_id = vWarehouseShipment;
+
+ 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;
+ INSERT INTO item_range_copy1
+ SELECT c.item_id, TIMESTAMP(TIMESTAMPADD(DAY, t.life, c.date_end), '23:59:59') date_end FROM item_range c
+ 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;
+
+ DROP TEMPORARY TABLE IF EXISTS item_range_copy2;
+ CREATE TEMPORARY TABLE item_range_copy2 LIKE item_range_copy1;
+ INSERT INTO item_range_copy2
+ SELECT * FROM item_range_copy1;
+
+ DROP TEMPORARY TABLE IF EXISTS item_range_copy3;
+ CREATE TEMPORARY TABLE item_range_copy3 LIKE item_range_copy1;
+ INSERT INTO item_range_copy3
+ SELECT * FROM item_range_copy1;
+
+ DROP TEMPORARY TABLE IF EXISTS item_range_copy4;
+ CREATE TEMPORARY TABLE item_range_copy4 LIKE item_range_copy1;
+ INSERT INTO item_range_copy4
+ SELECT * FROM item_range_copy1;
+
+ DROP TEMPORARY TABLE IF EXISTS item_range_copy5;
+ CREATE TEMPORARY TABLE item_range_copy5 LIKE item_range_copy1;
+ INSERT INTO item_range_copy5
+ SELECT * FROM item_range_copy1;
+
+ -- Calcula el ATP
+SELECT item_id, stock,'tmp_item'
+ FROM vn2008.tmp_item;
+
+ DROP TEMPORARY TABLE IF EXISTS availableTraslate;
+ CREATE TEMPORARY TABLE availableTraslate
+ (PRIMARY KEY (item_id))
+ ENGINE = MEMORY
+ SELECT t.item_id, SUM(stock) available FROM (
+ SELECT ti.item_id, stock
+ FROM vn2008.tmp_item ti
+ JOIN item_range ir ON ir.item_id = ti.item_id
+ UNION ALL
+ SELECT t.item_id, minacum(dt, amount, v_date) AS available FROM (
+ SELECT item_id, DATE(dat) dt, SUM(amount) amount FROM (
+ SELECT i.item_id, i.dat, i.amount
+ FROM vn2008.item_out i
+ JOIN item_range_copy1 ir ON ir.item_id = i.item_id
+ WHERE i.dat >= v_date_ini
+ AND (ir.date_end IS NULL OR i.dat <= ir.date_end)
+ AND i.warehouse_id = vWarehouseLanding
+ UNION ALL
+ SELECT i.item_id, i.dat, i.amount
+ FROM vn2008.item_entry_in i
+ JOIN item_range_copy2 ir ON ir.item_id = i.item_id
+ WHERE i.dat >= v_date_ini
+ AND (ir.date_end IS NULL OR i.dat <= ir.date_end)
+ AND i.warehouse_id = vWarehouseLanding
+ UNION ALL
+ SELECT i.item_id, i.dat, i.amount
+ FROM vn2008.item_entry_out i
+ JOIN item_range_copy3 ir ON ir.item_id = i.item_id
+ WHERE i.dat >= v_date_ini
+ AND (ir.date_end IS NULL OR i.dat <= ir.date_end)
+ AND i.warehouse_id = vWarehouseLanding
+ UNION ALL
+ SELECT r.item_id, r.shipment, -r.amount
+ FROM hedera.order_row r
+ JOIN hedera.`order` o ON o.id = r.order_id
+ JOIN item_range_copy4 ir ON ir.item_id = r.item_id
+ WHERE r.shipment >= v_date_ini
+ AND (ir.date_end IS NULL OR r.shipment <= ir.date_end)
+ AND r.warehouse_id = vWarehouseLanding
+ AND r.created >= v_reserve_date
+ AND NOT o.confirmed
+ ) t
+ GROUP BY item_id, dt
+ ) t
+ GROUP BY t.item_id
+ ) t GROUP BY t.item_id HAVING available != 0;
+SELECT i.item_id, i.dat, i.amount,'item_out',vWarehouseLanding
+ FROM vn2008.item_out i
+ JOIN item_range_copy1 ir ON ir.item_id = i.item_id
+ WHERE i.dat >= v_date_ini
+ AND (ir.date_end IS NULL OR i.dat <= ir.date_end)
+ AND i.warehouse_id = vWarehouseLanding;
+select * from availableTraslate;
+ DROP TEMPORARY TABLE
+ vn2008.tmp_item
+ ,item_range
+ ,item_range_copy1
+ ,item_range_copy2
+ ,item_range_copy3
+ ,item_range_copy4
+ ,item_range_copy5;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `availableTraslateTesting` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `availableTraslateTesting`(vWarehouseLanding INT, v_date DATE,vWarehouseShipment INT)
+proc: BEGIN
+ DECLARE v_date_ini DATE;
+ DECLARE v_date_end DATETIME;
+ DECLARE v_reserve_date DATETIME;
+ DECLARE v_date_inv DATE;
+
+ IF v_date < CURDATE()
+ THEN
+ LEAVE proc;
+ END IF;
+
+ 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');
+
+ SELECT FechaInventario INTO v_date_inv FROM vn2008.tblContadores;
+
+ 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
+ (PRIMARY KEY (item_id))
+ ENGINE = MEMORY
+ SELECT c.Id_Article item_id, MAX(landing) date_end
+ FROM vn2008.Compres c
+ JOIN vn2008.Entradas e ON c.Id_Entrada = e.Id_Entrada
+ JOIN vn2008.travel t ON t.id = e.travel_id
+ JOIN vn2008.warehouse w ON w.id = t.warehouse_id
+ WHERE t.landing BETWEEN v_date_inv AND v_date_ini
+ AND t.warehouse_id = vWarehouseLanding
+ AND NOT e.Inventario
+ 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 * FROM item_range t WHERE t.item_id = 41576;
+
+ 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;
+
+ SELECT 'update' , t.item_id, tr.landing
+ FROM t_item_last_buy t
+ JOIN Compres c ON c.Id_Compra = t.buy_id
+ JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada
+ JOIN travel tr ON tr.id = e.travel_id
+ LEFT JOIN item_range_copy i ON t.item_id = i.item_id
+ WHERE t.warehouse_id = vWarehouseShipment AND t.item_id = 41576;
+
+ INSERT INTO item_range
+ SELECT t.item_id, tr.landing
+ FROM t_item_last_buy t
+ JOIN Compres c ON c.Id_Compra = t.buy_id
+ JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada
+ JOIN travel tr ON tr.id = e.travel_id
+ LEFT JOIN item_range_copy i ON t.item_id = i.item_id
+ WHERE t.warehouse_id = vWarehouseShipment
+ ON DUPLICATE KEY UPDATE item_range.date_end = GREATEST(item_range.date_end,landing);
+
+ 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;
+ INSERT INTO item_range_copy1
+ SELECT c.item_id, TIMESTAMP(TIMESTAMPADD(DAY, t.life, c.date_end), '23:59:59') date_end FROM item_range c
+ 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;
+
+ select * from item_range_copy1 where item_id = 41576;
+
+ DROP TEMPORARY TABLE IF EXISTS item_range_copy2;
+ CREATE TEMPORARY TABLE item_range_copy2 LIKE item_range_copy1;
+ INSERT INTO item_range_copy2
+ SELECT * FROM item_range_copy1;
+
+ DROP TEMPORARY TABLE IF EXISTS item_range_copy3;
+ CREATE TEMPORARY TABLE item_range_copy3 LIKE item_range_copy1;
+ INSERT INTO item_range_copy3
+ SELECT * FROM item_range_copy1;
+
+ DROP TEMPORARY TABLE IF EXISTS item_range_copy4;
+ CREATE TEMPORARY TABLE item_range_copy4 LIKE item_range_copy1;
+ INSERT INTO item_range_copy4
+ SELECT * FROM item_range_copy1;
+
+ DROP TEMPORARY TABLE IF EXISTS item_range_copy5;
+ CREATE TEMPORARY TABLE item_range_copy5 LIKE item_range_copy1;
+ 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 ;
+
+ SELECT i.item_id, i.dat, i.amount
+ FROM vn2008.item_out i
+ JOIN item_range_copy1 ir ON ir.item_id = i.item_id
+ WHERE i.dat >= v_date_ini
+ AND (ir.date_end IS NULL OR i.dat <= ir.date_end)
+ AND i.warehouse_id = vWarehouseLanding;
+
+ SELECT m.Id_Article item_id, t.landing dat, m.Cantidad amount
+ FROM Compres m
+ JOIN Entradas e ON m.Id_Entrada = e.Id_Entrada
+ JOIN travel t ON e.travel_id = t.id
+ JOIN item_range_copy2 ir ON ir.item_id = m.Id_Article
+ WHERE
+ e.Inventario = 0
+ AND m.Cantidad <> 0
+ AND e.redada = 0
+ AND t.warehouse_id = vWarehouseLanding
+ AND t.landing >= v_date_ini
+ AND (ir.date_end IS NULL OR t.landing <= ir.date_end);
+
+ SELECT i.item_id, i.dat, i.amount
+ FROM vn2008.item_entry_out i
+ JOIN item_range_copy3 ir ON ir.item_id = i.item_id
+ WHERE i.dat >= v_date_ini
+ AND (ir.date_end IS NULL OR i.dat <= ir.date_end)
+ AND i.warehouse_id = vWarehouseLanding;
+ SELECT r.item_id, r.shipment, -r.amount
+ FROM hedera.order_row r
+ JOIN hedera.`order` o ON o.id = r.order_id
+ JOIN item_range_copy4 ir ON ir.item_id = r.item_id
+ WHERE r.shipment >= v_date_ini
+ AND (ir.date_end IS NULL OR r.shipment <= ir.date_end)
+ AND r.warehouse_id = vWarehouseLanding
+ AND r.created >= v_reserve_date
+ AND NOT o.confirmed;
+
+ DROP TEMPORARY TABLE IF EXISTS availableTraslate;
+ CREATE TEMPORARY TABLE availableTraslate
+ (PRIMARY KEY (item_id))
+ ENGINE = MEMORY
+ SELECT t.item_id, SUM(stock) available FROM (
+ SELECT ti.item_id, stock
+ FROM vn2008.tmp_item ti
+ JOIN item_range ir ON ir.item_id = ti.item_id
+ UNION ALL
+ SELECT t.item_id, minacum(dt, amount, v_date) AS available FROM (
+ SELECT item_id, DATE(dat) dt, SUM(amount) amount FROM (
+ SELECT i.item_id, i.dat, i.amount
+ FROM vn2008.item_out i
+ JOIN item_range_copy1 ir ON ir.item_id = i.item_id
+ WHERE i.dat >= v_date_ini
+ AND (ir.date_end IS NULL OR i.dat <= ir.date_end)
+ AND i.warehouse_id = vWarehouseLanding
+ UNION ALL
+ SELECT m.Id_Article item_id, t.landing dat, m.Cantidad amount
+ FROM Compres m
+ JOIN Entradas e ON m.Id_Entrada = e.Id_Entrada
+ JOIN travel t ON e.travel_id = t.id
+ JOIN item_range_copy2 ir ON ir.item_id = m.Id_Article
+ WHERE
+ e.Inventario = 0
+ AND m.Cantidad <> 0
+ AND e.redada = 0
+ AND t.warehouse_id = vWarehouseLanding
+ AND t.landing >= v_date_ini
+ AND (ir.date_end IS NULL OR t.landing <= ir.date_end)
+
+ UNION ALL
+ SELECT i.item_id, i.dat, i.amount
+ FROM vn2008.item_entry_out i
+ JOIN item_range_copy3 ir ON ir.item_id = i.item_id
+ WHERE i.dat >= v_date_ini
+ AND (ir.date_end IS NULL OR i.dat <= ir.date_end)
+ AND i.warehouse_id = vWarehouseLanding
+ UNION ALL
+ SELECT r.item_id, r.shipment, -r.amount
+ FROM hedera.order_row r
+ JOIN hedera.`order` o ON o.id = r.order_id
+ JOIN item_range_copy4 ir ON ir.item_id = r.item_id
+ WHERE r.shipment >= v_date_ini
+ AND (ir.date_end IS NULL OR r.shipment <= ir.date_end)
+ AND r.warehouse_id = vWarehouseLanding
+ AND r.created >= v_reserve_date
+ AND NOT o.confirmed
+ ) t
+ GROUP BY item_id, dt
+ ) t
+ GROUP BY t.item_id
+ ) t GROUP BY t.item_id HAVING available != 0;
+
+ select * from availableTraslate where item_id = 41576;
+
+ DROP TEMPORARY TABLE
+ vn2008.tmp_item
+ ,item_range
+ ,item_range_copy1
+ ,item_range_copy2
+ ,item_range_copy3
+ ,item_range_copy4
+ ,item_range_copy5;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `balance_create` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `balance_create`(IN vStartingMonth INT
+ , IN vEndingMonth INT
+ , IN vCompany INT
+ , IN vConsolidate BOOLEAN
+ , IN vInterGroupSalesIncluded BOOLEAN)
+BEGIN
+
+DECLARE v_sql TEXT;
+DECLARE strTABLE VARCHAR(20) DEFAULT "balance_nest_tree";
+DECLARE intGAP INTEGER DEFAULT 7;
+DECLARE intYEARS INTEGER DEFAULT 3;
+DECLARE vConsolidatedGroup INTEGER;
+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;
+
+CREATE TEMPORARY TABLE tmp.balance
+SELECT * FROM tmp.nest;
+
+DROP TEMPORARY TABLE IF EXISTS tmp.empresas_receptoras;
+DROP TEMPORARY TABLE IF EXISTS tmp.empresas_emisoras;
+
+IF vConsolidate THEN
+ SELECT empresa_grupo INTO vConsolidatedGroup FROM empresa WHERE id = vCompany;
+END IF;
+
+CREATE TEMPORARY TABLE tmp.empresas_receptoras
+ SELECT id as empresa_id
+ FROM vn2008.empresa
+ WHERE id = vCompany
+ OR empresa_grupo = vConsolidatedGroup;
+
+
+CREATE TEMPORARY TABLE tmp.empresas_emisoras
+ SELECT Id_Proveedor as empresa_id
+ FROM vn2008.Proveedores p;
+
+IF NOT vInterGroupSalesIncluded THEN
+
+ DELETE ee.*
+ FROM tmp.empresas_emisoras ee
+ JOIN vn2008.empresa e on e.id = ee.empresa_id
+ WHERE e.empresa_grupo = vConsolidatedGroup;
+
+ 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
+ , ee.empresa_id as emisora_id
+ , year(IFNULL(IFNULL(tr.dateBooking,tr.Fecha),IFNULL(r.dateBooking,r.Fecha))) as `year`
+ , month(IFNULL(IFNULL(tr.dateBooking,tr.Fecha),IFNULL(r.dateBooking,r.Fecha))) as `month`
+ , gastos_id as Id_Gasto
+ , sum(bi) as importe
+ FROM recibida r
+ JOIN recibida_iva ri on ri.recibida_id = r.id
+ JOIN tmp.empresas_receptoras er on er.empresa_id = r.empresa_id
+ JOIN tmp.empresas_emisoras ee ON ee.empresa_id = r.proveedor_id
+ LEFT JOIN vn2008.recibida_entrada re ON re.recibida_id = r.id
+ LEFT JOIN vn2008.recibida tr ON tr.id = re.awb_recibida
+ WHERE IFNULL(r.dateBooking,r.Fecha) between vStartingDate and CURDATE()
+ GROUP BY Id_Gasto, year, month, emisora_id, receptora_id;
+
+
+
+INSERT INTO tmp.balance_desglose(receptora_id
+ , emisora_id
+ , year
+ , month
+ , Id_Gasto
+ , importe)
+ SELECT gr.empresa_id
+ , gr.empresa_id
+ , year
+ , month
+ , Id_Gasto
+ , sum(importe)
+ FROM gastos_resumen gr
+ JOIN tmp.empresas_receptoras er on gr.empresa_id = er.empresa_id
+ WHERE year >= vStartingYear
+ AND month BETWEEN vStartingMonth AND vEndingMonth
+ GROUP BY Id_Gasto, year, month, gr.empresa_id;
+
+
+DELETE FROM tmp.balance_desglose
+ WHERE month < vStartingMonth
+ OR month > vEndingMonth;
+
+
+
+-- Ahora el balance
+SET v_sql = sql_printf (
+ '
+ ALTER TABLE tmp.balance
+ ADD COLUMN %t INT(10) NULL ,
+ ADD COLUMN %t INT(10) NULL ,
+ ADD COLUMN %t INT(10) NULL ,
+ ADD COLUMN Id_Gasto VARCHAR(10) NULL,
+ ADD COLUMN Gasto VARCHAR(45) NULL;
+ ',
+ YEAR(CURDATE())-2,
+ YEAR(CURDATE())-1,
+ YEAR(CURDATE())
+ );
+
+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
+JOIN (SELECT Id_Gasto, Gasto
+ FROM vn2008.Gastos
+ GROUP BY Id_Gasto) g ON g.Id_Gasto = bnt.Id_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
+
+ SET intYEARS = intYEARS - 1;
+
+ SET v_sql = sql_printf (
+ '
+ UPDATE tmp.balance b
+ JOIN
+ (
+ SELECT Id_Gasto, sum(Importe) as Importe
+ FROM tmp.balance_desglose
+ WHERE year = %v
+ GROUP BY Id_Gasto
+ ) sub on sub.Id_Gasto = b.Id_Gasto
+ SET %t = - Importe;
+ ',
+ YEAR(CURDATE()) - intYEARS,
+ YEAR(CURDATE()) - intYEARS
+ );
+
+ CALL sql_query (v_sql);
+
+END WHILE;
+
+-- Añadimos las ventas
+
+
+ SET v_sql = sql_printf (
+ '
+ UPDATE tmp.balance b
+ JOIN (
+ SELECT sum(IF(year = %v, venta, 0)) as y2
+ , sum(IF(year = %v, venta, 0)) as y1
+ , sum(IF(year = %v, venta, 0)) as y0
+ , c.Gasto
+
+ FROM bs.ventas_contables c
+ join tmp.empresas_receptoras er on er.empresa_id = c.empresa_id
+ WHERE month BETWEEN %v AND %v
+ GROUP BY c.Gasto
+
+ ) sub ON sub.Gasto = b.Id_Gasto
+ SET %t = IFNULL(%t,0) + sub.y2
+ , %t = IFNULL(%t,0) + sub.y1
+ , %t = IFNULL(%t,0) + sub.y0
+ ;
+
+ ',
+ YEAR(CURDATE()) - 2,
+ YEAR(CURDATE()) - 1,
+ YEAR(CURDATE()),
+ vStartingMonth,
+ vEndingMonth,
+ YEAR(CURDATE()) - 2, YEAR(CURDATE()) - 2,
+ YEAR(CURDATE()) - 1, YEAR(CURDATE()) - 1,
+ YEAR(CURDATE()), YEAR(CURDATE())
+
+ );
+
+ CALL sql_query (v_sql);
+
+-- Ventas intra grupo
+IF NOT vInterGroupSalesIncluded THEN
+
+ SELECT lft, rgt
+ INTO @grupoLft, @grupoRgt
+ FROM tmp.balance b
+ WHERE TRIM(b.`name`) = 'Grupo';
+
+ DELETE
+ FROM tmp.balance
+ WHERE lft BETWEEN @grupoLft AND @grupoRgt;
+
+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;
+
+UPDATE tmp.balance b
+JOIN
+(
+select b1.id, b1.name, sum(b2.`2015`) as `2015`, sum(b2.`2016`) as `2016`, sum(b2.`2017`) as `2017`
+from tmp.nest b1
+join tmp.balance_aux b2 on b2.lft between b1.lft and b1.rgt
+group by b1.id) sub on sub.id = b.id
+SET b.`2015` = sub.`2015`, b.`2016` = sub.`2016`, b.`2017` = sub.`2017`
+;
+
+
+
+SELECT *, concat('',ifnull(Id_Gasto,'')) as newgasto FROM tmp.balance;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `base_ticket` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `base_ticket`(IN Id_Ticket INT)
+BEGIN
+ SELECT
+ red(SUM(Cantidad * Preu * (100 - Descuento) / 100)) AS base
+ FROm
+ Movimientos m
+ INNER JOIN Tickets t USING (Id_Ticket)
+ WHERE t.Id_Ticket = Id_Ticket;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_available_` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `bionic_available_`(
+ v_date DATE,
+ 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;
+ DECLARE v_agency_id INT;
+ DECLARE v_wh INT;
+ DECLARE done BOOL;
+ DECLARE cur CURSOR FOR
+ SELECT warehouse_id, Fecha_envio FROM travel_tree;
+
+ 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;
+
+ CALL travel_tree (v_date,v_consigna, v_agency_id);
+
+ DROP TEMPORARY TABLE IF EXISTS t_bionic_available;
+ CREATE TEMPORARY TABLE t_bionic_available(
+ calc_id INT UNSIGNED,
+ PRIMARY KEY (calc_id)
+ )
+ ENGINE = MEMORY;
+
+ OPEN cur;
+ l: LOOP
+ SET done = FALSE;
+ FETCH cur INTO v_wh, v_shipment;
+
+ IF done THEN
+ LEAVE l;
+ END IF;
+
+ CALL `cache`.available_refresh (v_available_calc, FALSE, v_wh, v_shipment);
+
+ INSERT IGNORE INTO t_bionic_available (calc_id)
+ VALUES (v_available_calc);
+ END LOOP;
+
+ CLOSE cur;
+ DROP TEMPORARY TABLE travel_tree;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_available_articlelist` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `bionic_available_articlelist`(IN strART VARCHAR(50)
+ , IN minMED DOUBLE
+ , IN maxMED DOUBLE
+ , IN minPVP DOUBLE
+ , IN maxPVP DOUBLE)
+BEGIN
+
+DECLARE intSPACE_POS INT;
+DECLARE strSUBTR VARCHAR(50);
+DECLARE strFILTER VARCHAR(500);
+DECLARE v_sql TEXT;
+
+DROP TEMPORARY TABLE IF EXISTS articlelist;
+
+CREATE TEMPORARY table articlelist
+(Id_Article INT(11) PRIMARY KEY)
+ENGINE = INNODB;
+
+
+
+-- Arreglos
+
+SET minMED = IFNULL(minMED,0);
+SET minMED = IF(minMED = 0,0.01, minMED);
+SET maxMED = IFNULL(maxMED,9990);
+SET maxMED = IF(maxMED = 0,9990, maxMED);
+SET minPVP = IFNULL(minPVP,0);
+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);
+
+IF ASCII(strART) BETWEEN 48 AND 57 THEN
+
+ INSERT INTO articlelist(Id_Article) VALUES(CAST(strART AS UNSIGNED));
+
+ELSE
+
+ SET strFILTER = 'TRUE ';
+
+ WHILE LENGTH(strART) > 0 DO
+
+ SET intSPACE_POS = POSITION(' ' IN strART) ;
+
+ IF intSPACE_POS = 0 THEN
+
+ SET strFILTER = CONCAT(strFILTER, ' AND CONCAT(a.Id_Article,Article,t.Tipo) LIKE "%',strART,'%"');
+ SET strART = '';
+
+ ELSE
+
+ SET strFILTER = CONCAT(strFILTER, ' AND CONCAT(a.Id_Article,Article,t.Tipo) LIKE "%',LEFT(strART,intSPACE_POS - 1),'%"');
+ SET strART = TRIM(SUBSTRING(strART, intSPACE_POS));
+
+ END IF;
+
+
+ END WHILE;
+
+ if minpvp = 0.01 and maxpvp = 9990 then
+
+ SET v_sql = sql_printf (
+ '
+ REPLACE articlelist
+ SELECT a.Id_Article
+ FROM Articles a
+ LEFT JOIN Tipos t ON t.tipo_id = a.tipo_id
+ WHERE %s
+ AND Medida BETWEEN %v AND %v;
+ '
+
+ ,strFILTER
+ ,minMED
+ ,maxMED);
+ else
+
+ SET v_sql = sql_printf (
+ '
+ REPLACE articlelist
+ SELECT a.Id_Article
+ FROM Articles a
+ LEFT JOIN Tipos t ON t.tipo_id = a.tipo_id
+ JOIN (
+ SELECT DISTINCT Id_Article
+ FROM Movimientos m
+ JOIN Tickets t using(Id_Ticket)
+ JOIN Clientes c using(Id_Cliente)
+ WHERE Fecha > CURDATE() - INTERVAL 4 DAY
+ AND Preu BETWEEN %v AND %v
+ AND c.invoice <> 0
+ ) v on v.Id_Article = a.Id_Article
+ WHERE %s
+ AND Medida BETWEEN %v AND %v;
+ '
+ ,minPVP
+ ,maxPVP
+ ,strFILTER
+ ,minMED
+ ,maxMED);
+ end if;
+
+ CALL sql_query (v_sql);
+
+END IF;
+-- SELECT Id_Article, Article, Medida FROM Articles join articlelist using(Id_Article);
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_available_items_` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!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
+ 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;
+ CREATE TEMPORARY TABLE t_bionic_available_items
+ (INDEX (Id_Article))
+ ENGINE = MEMORY
+ SELECT a.Id_Article, a.Article
+ FROM `cache`.available c
+ JOIN Articles a ON c.item_id = a.Id_Article
+ JOIN t_bionic_available ba ON c.calc_id = ba.calc_id
+ WHERE c.available GROUP BY a.Article;
+
+ DROP TEMPORARY TABLE t_bionic_available;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_available_single` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `bionic_available_single`(IN v_wh TINYINT, IN v_date DATETIME, IN id_single INT, IN refresh TINYINT)
+BEGIN
+ DECLARE intcalc_id INT;
+ call cache.available_refresh(intcalc_id,refresh, v_wh,v_date);
+
+ SELECT available AS minimo FROM cache.available WHERE calc_id = intcalc_id AND item_id = id_single ;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_available_types_` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `bionic_available_types_`(
+ v_date DATE, -- fecha de recepcion de mercancia
+ 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);
+
+ DROP TEMPORARY TABLE IF EXISTS t_bionic_available_types;
+ CREATE TEMPORARY TABLE t_bionic_available_types
+ (INDEX (tipo_id))
+ ENGINE = MEMORY
+ SELECT a.tipo_id, t.Tipo
+ FROM `cache`.available c
+ 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
+ AND t.Orden != 0
+ GROUP BY t.tipo_id;
+
+ DROP TEMPORARY TABLE t_bionic_available;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_available_types_filter` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!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
+ 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;
+ SET v_list = '';
+
+ 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');
+
+ IF @table_exists THEN
+
+ SET v_list = 'JOIN articlelist AL ON AL.Id_Article = a.Id_Article ';
+
+ END IF;
+
+ SET v_sql = sql_printf (
+ '
+ CREATE TEMPORARY TABLE t_bionic_available_types
+ SELECT a.tipo_id, Tipo, reino, count(*) as item_count
+ FROM `cache`.available c
+ JOIN Articles a ON c.item_id = a.Id_Article
+ JOIN Tipos t ON t.tipo_id = a.tipo_id
+ JOIN reinos r ON r.id = t.reino_id
+ JOIN t_bionic_available ba ON c.calc_id = ba.calc_id
+ %s
+ WHERE c.available > 0
+ AND %s
+ GROUP BY a.tipo_id;
+ '
+ , v_list
+ , v_filter);
+
+
+
+
+ CALL sql_query (v_sql);
+
+
+
+ DROP TEMPORARY TABLE t_bionic_available;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_calc` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `bionic_calc`(
+ v_date DATE, -- fecha de recepcion de mercancia
+ v_consigna INT,
+ v_agencia INT)
+proc: BEGIN
+ DECLARE v_available_calc INT;
+ DECLARE v_shipment DATE;
+ DECLARE v_agency_id INT;
+ DECLARE v_customer INT;
+ DECLARE v_wh SMALLINT;
+ DECLARE done BOOL;
+ DECLARE cur CURSOR FOR
+ SELECT warehouse_id, Fecha_envio FROM vn2008.travel_tree;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.bionic_item;
+ DROP TEMPORARY TABLE IF EXISTS tmp.bionic_component;
+ 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
+ LEAVE l;
+ END IF;
+ CALL `cache`.available_refresh (v_available_calc, FALSE, v_wh, v_shipment);
+
+ CALL item_last_buy_ (v_wh, v_shipment);
+
+ INSERT INTO tmp.bionic_lot (warehouse_id, item_id, available, buy_id)
+ SELECT
+ v_wh,
+ i.item_id,
+ IFNULL(i.available, 0),
+ ilb.buy_id
+ FROM `cache`.available i
+ JOIN tmp.bionic_calc br ON br.item_id = i.item_id
+ LEFT JOIN Articles a ON a.Id_Article = i.item_id
+ LEFT JOIN t_item_last_buy ilb ON ilb.item_id = i.item_id
+ WHERE i.calc_id = v_available_calc
+ AND a.Id_Article != 100
+ AND i.available > 0;
+
+ DROP TEMPORARY TABLE t_item_last_buy;
+
+ END LOOP;
+
+ CLOSE cur;
+
+ CALL bionic_calc_component(v_consigna,v_agencia);
+
+ CREATE TEMPORARY TABLE tmp.bionic_item
+ ENGINE = MEMORY
+ SELECT b.item_id, SUM(b.available) available, p.name producer, a.Article item, a.Medida size, a.Tallos stems,
+ a.Categoria category, a.Color, a.Foto image, o.Abreviatura origin, bl.min_price price
+ FROM tmp.bionic_lot b
+ JOIN Articles a ON b.item_id = a.Id_Article
+ LEFT JOIN producer p ON p.producer_id = a.producer_id AND p.visible
+ JOIN Origen o ON o.id = a.id_origen
+ JOIN (
+ SELECT MIN(price) min_price, item_id
+ FROM tmp.bionic_price
+ GROUP BY item_id
+ ) bl ON bl.item_id = b.item_id
+ GROUP BY b.item_id;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_calc_clon` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ DECLARE v_agencia INT;
+ DECLARE v_consigna INT;
+ DECLARE v_landing DATE;
+ DECLARE v_agency INT;
+
+ REPLACE order_Tickets(order_id,Id_Ticket) VALUES(48, v_ticket);
+
+ SELECT t.Id_Cliente , t.warehouse_id, date(t.Fecha), t.Id_Consigna, t.Id_Agencia, t.landing, a.agency_id
+ INTO v_customer, v_wh, v_shipment, v_consigna, v_agencia, v_landing, v_agency
+ FROM vn2008.Agencias a
+ JOIN vn2008.Tickets t ON t.Id_Agencia = a.Id_Agencia
+ WHERE t.Id_Ticket = v_ticket;
+
+ DROP TEMPORARY TABLE IF EXISTS travel_tree;
+ 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
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.bionic_lot;
+ CREATE TEMPORARY TABLE tmp.bionic_lot
+ SELECT v_wh warehouse_id,NULL available,
+ m.Id_Article item_id,ilb.buy_id
+ FROM Movimientos m
+ LEFT JOIN t_item_last_buy ilb ON ilb.item_id = m.Id_Article
+ WHERE m.Id_Ticket = v_ticket GROUP BY m.Id_Article;
+
+ 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
+ SELECT Id_Movimiento, v_wh warehouse_id FROM Movimientos m
+ 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
+ SELECT Id_Movimiento, v_wh warehouse_id FROM Movimientos m
+ JOIN Tickets t on t.Id_Ticket = m.Id_Ticket WHERE m.Id_Ticket = v_ticket AND Preu > 0;
+ CALL bionic_movement_update(6);
+
+ IF v_landing IS NULL THEN
+ CALL travel_tree_shipment(v_shipment, v_consigna, v_agency,v_wh);
+ UPDATE Tickets t
+ JOIN travel_tree_shipment tts ON t.warehouse_id = tts.warehouse_id
+ SET t.landing = tts.landing
+ WHERE Id_Ticket = v_ticket;
+ END IF;
+
+ -- Log
+ call Ditacio(v_ticket
+ ,'Bioniza Ticket'
+ ,'T'
+ , 20
+ , 'proc bionic_calc_clon'
+ , NULL);
+
+ -- Limpieza
+ DROP TEMPORARY TABLE t_item_last_buy;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_calc_clonkk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ DECLARE v_agencia INT;
+ DECLARE v_consigna INT;
+ DECLARE v_landing DATE;
+
+ REPLACE order_Tickets(order_id,Id_Ticket) VALUES(48, v_ticket);
+
+ SELECT Id_Cliente , t.warehouse_id, date(t.Fecha), Id_Consigna , Id_Agencia
+ INTO v_customer ,v_wh, v_shipment , v_consigna , v_agencia
+ FROM vn2008.Agencias a
+ JOIN vn2008.Tickets t using(Id_Agencia)
+ WHERE Id_Ticket = v_ticket;
+
+ DROP TEMPORARY TABLE IF EXISTS travel_tree;
+ 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
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.bionic_lot;
+ CREATE TEMPORARY TABLE tmp.bionic_lot
+ SELECT v_wh warehouse_id,NULL available,
+ m.Id_Article item_id,ilb.buy_id
+ FROM Movimientos m
+ LEFT JOIN t_item_last_buy ilb ON ilb.item_id = m.Id_Article
+ WHERE m.Id_Ticket = v_ticket GROUP BY m.Id_Article;
+
+ 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
+ SELECT Id_Movimiento, v_wh warehouse_id FROM Movimientos m
+ 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
+ SELECT Id_Movimiento, v_wh warehouse_id FROM Movimientos m
+ JOIN Tickets t on t.Id_Ticket = m.Id_Ticket WHERE m.Id_Ticket = v_ticket AND Preu > 0;
+ CALL bionic_movement_update(6);
+
+
+ -- Log
+ call Ditacio(v_ticket
+ ,'Bioniza Ticket'
+ ,'T'
+ , 20
+ , 'proc bionic_calc_clon'
+ , NULL);
+
+ -- Limpieza
+ DROP TEMPORARY TABLE t_item_last_buy;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_calc_component` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!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
+
+ DECLARE v_customer INT;
+ 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;
+ SET @rate3 := 0;
+
+ DROP TEMPORARY TABLE IF EXISTS t_bionic_temp;
+ CREATE TEMPORARY TABLE t_bionic_temp
+ (PRIMARY KEY (item_id,warehouse_id))
+ ENGINE = MEMORY
+ SELECT
+ b.item_id, b.warehouse_id,available,
+ IF((@rate2 := IFNULL(pf.rate_2,c.Tarifa2)) < a.PVP AND a.`Min`, a.PVP, @rate2) * 1.0 rate_2,
+ IF((@rate3 := IFNULL(pf.rate_3,c.Tarifa3)) < a.PVP AND a.`Min`, a.PVP, @rate3) * 1.0 rate_3,
+ ifnull(pf.rate_3,0) AS min_price,
+ IFNULL(pf.Packing,c.Packing) packing,
+ IFNULL(pf.grouping,c.grouping) grouping,
+ ABS(IFNULL(pf.caja,c.caja)) box,
+ b.buy_id, a.tipo_id
+ FROM tmp.bionic_lot b
+ JOIN vn2008.Compres c ON b.buy_id = c.Id_Compra
+ JOIN vn2008.Articles a ON b.item_id = a.Id_Article
+ JOIN vn2008.Tipos t ON t.tipo_id = a.tipo_id
+ LEFT JOIN vn2008.reinos r ON r.id = t.reino_id
+ LEFT JOIN vn2008.PreciosEspeciales p ON a.Id_Article = p.Id_Article AND p.Id_Cliente = v_customer
+ LEFT JOIN (
+ SELECT * FROM (
+ SELECT p.item_id, p.grouping, p.Packing,p.caja, p.rate_2, p.rate_3, t.warehouse_id
+ FROM vn2008.price_fixed p
+ JOIN vn2008.travel_tree t ON t.warehouse_id = p.warehouse_id OR p.warehouse_id = 0
+ WHERE t.Fecha_envio BETWEEN p.date_start AND p.date_end ORDER BY p.item_id, p.warehouse_id DESC
+ ) 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
+ JOIN vn2008.Compres c ON b.buy_id = c.Id_Compra;
+
+ INSERT INTO tmp.bionic_component ( warehouse_id, item_id, component_id, cost)
+ SELECT b.warehouse_id, b.item_id, 28, Costefijo + Portefijo + Embalajefijo + Comisionfija
+ 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;
+
+ CREATE TEMPORARY TABLE t_components_base
+ SELECT bc.item_id, ROUND(SUM(cost), 4) AS base, bc.warehouse_id
+ 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)
+ FROM t_components_base cb
+ 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
+ FROM t_components_base cb
+ JOIN Clientes c on c.Id_Cliente = v_customer
+ JOIN bs.mana_spellers ms ON c.Id_Trabajador = ms.Id_Trabajador
+ WHERE ms.prices_modifier_activated
+ 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
+ JOIN bi.tarifa_componentes
+ JOIN t_bionic_temp b ON b.item_id = cb.item_id
+ 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
+ JOIN vn2008.Compres c ON b.buy_id = c.Id_Compra
+ 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
+ , 15
+ , COEFICIENTE_DE_INFLACION_GENERAL
+ * ROUND(
+ r.cm3
+ * IF(a.Vista = 1, (GREATEST(art.density,DENSIDAD_MINIMA_PESO_VOLUMETRICO) / DENSIDAD_MINIMA_PESO_VOLUMETRICO ) , 1)
+ * az.price
+ * az.inflacion
+ / VOLUMEN_CAJA_VERDNATURA, 4
+ ) cost
+ FROM t_bionic_temp b
+ JOIN vn2008.Articles art ON art.Id_Article = b.item_id
+ JOIN vn2008.Agencias a ON a.Id_Agencia = v_agencia
+ JOIN vn2008.Consignatarios c ON c.Id_Consigna = v_consigna
+ JOIN vn2008.Agencias_province ap ON ap.agency_id = a.agency_id AND ap.warehouse_id = b.warehouse_id AND ap.province_id = c.province_id
+ JOIN vn2008.Agencias_zonas az ON az.Id_Agencia = v_agencia AND az.zona = ap.zona AND az.Id_Article = 71 AND az.warehouse_id = b.warehouse_id
+ 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
+ , 41
+ , COEFICIENTE_DE_INFLACION_GENERAL
+ * ROUND(
+ r.cm3
+ * IF(a.Vista = 1, (GREATEST(art.density,DENSIDAD_MINIMA_PESO_VOLUMETRICO) / DENSIDAD_MINIMA_PESO_VOLUMETRICO ) , 1)
+ * awb.bonus
+ * az.inflacion
+ / VOLUMEN_CAJA_VERDNATURA, 4
+ ) cost
+ FROM t_bionic_temp b
+ JOIN vn2008.Articles art ON art.Id_Article = b.item_id
+ JOIN vn2008.Agencias a ON a.Id_Agencia = v_agencia
+ JOIN vn2008.Consignatarios c ON c.Id_Consigna = v_consigna
+ JOIN vn2008.Agencias_province ap ON ap.agency_id = a.agency_id AND ap.warehouse_id = b.warehouse_id AND ap.province_id = c.province_id
+ JOIN vn2008.Agencias_zonas az ON az.Id_Agencia = v_agencia AND az.zona = ap.zona AND az.Id_Article = 71 AND az.warehouse_id = b.warehouse_id
+ JOIN vn2008.agency_weekday_bonus awb ON awb.warehouse_id = az.warehouse_id AND awb.zona = az.zona AND a.agency_id = awb.agency_id
+ LEFT JOIN bi.rotacion r ON r.warehouse_id = b.warehouse_id AND r.Id_Article = b.item_id
+ 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
+ FROM t_bionic_temp b
+ JOIN vn.addressForPackaging ap
+ WHERE ap.addressFk = v_consigna;
+
+ 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
+ JOIN vn2008.travel_tree tt ON tt.warehouse_id = cb.warehouse_id
+ LEFT JOIN vn2008.preparation_percentage pp ON pp.week_day = weekday(tt.Fecha_envio) AND cb.warehouse_id = IFNULL(pp.warehouse_id,cb.warehouse_id)
+ 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
+ JOIN bi.tarifa_componentes t ON b.component_id = t.Id_Componente
+ JOIN PreciosEspeciales pe ON pe.Id_Cliente = v_customer AND pe.Id_Article = b.item_id
+ WHERE t.tarifa_class IS NULL
+ 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))
+ ENGINE = MEMORY
+ SELECT SUM(cost) sum_cost, b.item_id, b.warehouse_id, t.tarifa_class
+ FROM tmp.bionic_component b
+ 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
+ SELECT b.warehouse_id, item_id, 1 rate,
+ IF(box = 1, grouping, 1) grouping, SUM(sum_cost) price
+ FROM t_bionic_temp b
+ JOIN t_component_sum cs USING(item_id, warehouse_id)
+ 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
+ FROM t_bionic_temp b
+ JOIN t_component_sum cs USING(item_id, warehouse_id)
+ 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
+ FROM t_bionic_temp b
+ JOIN t_component_sum cs USING(item_id, warehouse_id)
+ 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
+ LIKE template_bionic_price;
+
+ INSERT INTO tmp.bionic_price (warehouse_id, item_id, rate, grouping, price)
+ SELECT * FROM (
+ SELECT * FROM t_bionic_rate ORDER BY price
+ ) t
+ GROUP BY item_id, warehouse_id, grouping;
+
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.travel_tree;
+ CREATE TEMPORARY TABLE tmp.travel_tree
+ ENGINE = MEMORY
+ SELECT * FROM travel_tree;
+
+ -- Limpieza
+
+ DROP TEMPORARY TABLE travel_tree;
+ DROP TEMPORARY TABLE t_bionic_temp;
+ DROP TEMPORARY TABLE t_component_sum;
+ DROP TEMPORARY TABLE t_components_base;
+ DROP TEMPORARY TABLE t_bionic_rate;
+ DROP TEMPORARY TABLE tmp.bionic_component_copy;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_calc_component_beta` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!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
+
+ DECLARE v_customer INT;
+ 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;
+ SET @rate3 := 0;
+
+ DROP TEMPORARY TABLE IF EXISTS t_bionic_temp;
+ CREATE TEMPORARY TABLE t_bionic_temp
+ (PRIMARY KEY (item_id,warehouse_id))
+ ENGINE = MEMORY
+ SELECT
+ b.item_id, b.warehouse_id,available,
+ IF((@rate2 := IFNULL(pf.rate_2,c.Tarifa2)) < a.PVP AND a.`Min`, a.PVP, @rate2) * 1.0 rate_2,
+ IF((@rate3 := IFNULL(pf.rate_3,c.Tarifa3)) < a.PVP AND a.`Min`, a.PVP, @rate3) * 1.0 rate_3,
+ ifnull(pf.rate_3,0) AS min_price,
+ IFNULL(pf.Packing,c.Packing) packing,
+ IFNULL(pf.grouping,c.grouping) grouping,
+ ABS(IFNULL(pf.caja,c.caja)) box,
+ b.buy_id, a.tipo_id
+ FROM tmp.bionic_lot b
+ JOIN vn2008.Compres c ON b.buy_id = c.Id_Compra
+ JOIN vn2008.Articles a ON b.item_id = a.Id_Article
+ JOIN vn2008.Tipos t ON t.tipo_id = a.tipo_id
+ LEFT JOIN vn2008.reinos r ON r.id = t.reino_id
+ LEFT JOIN vn2008.PreciosEspeciales p ON a.Id_Article = p.Id_Article AND p.Id_Cliente = v_customer
+ LEFT JOIN (
+ SELECT * FROM (
+ SELECT p.item_id, p.grouping, p.Packing,p.caja, p.rate_2, p.rate_3, t.warehouse_id
+ FROM vn2008.price_fixed p
+ JOIN vn2008.travel_tree t ON t.warehouse_id = p.warehouse_id OR p.warehouse_id = 0
+ WHERE t.Fecha_envio BETWEEN p.date_start AND p.date_end ORDER BY p.item_id, p.warehouse_id DESC
+ ) 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
+ JOIN vn2008.Compres c ON b.buy_id = c.Id_Compra;
+
+ INSERT INTO tmp.bionic_component ( warehouse_id, item_id, component_id, cost)
+ SELECT b.warehouse_id, b.item_id, 28, Costefijo + Portefijo + Embalajefijo + Comisionfija
+ 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;
+
+ CREATE TEMPORARY TABLE t_components_base
+ SELECT bc.item_id, ROUND(SUM(cost), 4) AS base, bc.warehouse_id
+ 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)
+ FROM t_components_base cb
+ 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
+ FROM t_components_base cb
+ JOIN Clientes c on c.Id_Cliente = v_customer
+ JOIN bs.mana_spellers ms ON c.Id_Trabajador = ms.Id_Trabajador
+ WHERE ms.prices_modifier_activated
+ 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
+ JOIN bi.tarifa_componentes
+ JOIN t_bionic_temp b ON b.item_id = cb.item_id
+ 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
+ JOIN vn2008.Compres c ON b.buy_id = c.Id_Compra
+ 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
+ , 15
+ , COEFICIENTE_DE_INFLACION_GENERAL
+ * ROUND(
+ r.cm3
+ * IF(a.Vista = 1, (GREATEST(art.density,DENSIDAD_MINIMA_PESO_VOLUMETRICO) / DENSIDAD_MINIMA_PESO_VOLUMETRICO ) , 1)
+ * az.price
+ * az.inflacion
+ / VOLUMEN_CAJA_VERDNATURA, 4
+ ) cost
+ FROM t_bionic_temp b
+ JOIN vn2008.Articles art ON art.Id_Article = b.item_id
+ JOIN vn2008.Agencias a ON a.Id_Agencia = v_agencia
+ JOIN vn2008.Consignatarios c ON c.Id_Consigna = v_consigna
+ JOIN vn2008.Agencias_province ap ON ap.agency_id = a.agency_id AND ap.warehouse_id = b.warehouse_id AND ap.province_id = c.province_id
+ JOIN vn2008.Agencias_zonas az ON az.Id_Agencia = v_agencia AND az.zona = ap.zona AND az.Id_Article = 71 AND az.warehouse_id = b.warehouse_id
+ 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
+ , 41
+ , COEFICIENTE_DE_INFLACION_GENERAL
+ * ROUND(
+ r.cm3
+ * IF(a.Vista = 1, (GREATEST(art.density,DENSIDAD_MINIMA_PESO_VOLUMETRICO) / DENSIDAD_MINIMA_PESO_VOLUMETRICO ) , 1)
+ * awb.bonus
+ * az.inflacion
+ / VOLUMEN_CAJA_VERDNATURA, 4
+ ) cost
+ FROM t_bionic_temp b
+ JOIN vn2008.Articles art ON art.Id_Article = b.item_id
+ JOIN vn2008.Agencias a ON a.Id_Agencia = v_agencia
+ JOIN vn2008.Consignatarios c ON c.Id_Consigna = v_consigna
+ JOIN vn2008.Agencias_province ap ON ap.agency_id = a.agency_id AND ap.warehouse_id = b.warehouse_id AND ap.province_id = c.province_id
+ JOIN vn2008.Agencias_zonas az ON az.Id_Agencia = v_agencia AND az.zona = ap.zona AND az.Id_Article = 71 AND az.warehouse_id = b.warehouse_id
+ JOIN vn2008.agency_weekday_bonus awb ON awb.warehouse_id = az.warehouse_id AND awb.zona = az.zona AND a.agency_id = awb.agency_id
+ LEFT JOIN bi.rotacion r ON r.warehouse_id = b.warehouse_id AND r.Id_Article = b.item_id
+ 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
+ FROM t_bionic_temp b
+ JOIN vn.addressForPackaging ap
+ WHERE ap.addressFk = v_consigna;
+
+ 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
+ JOIN vn2008.travel_tree tt ON tt.warehouse_id = cb.warehouse_id
+ LEFT JOIN vn2008.preparation_percentage pp ON pp.week_day = weekday(tt.Fecha_envio) AND cb.warehouse_id = IFNULL(pp.warehouse_id,cb.warehouse_id)
+ 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
+ JOIN bi.tarifa_componentes t ON b.component_id = t.Id_Componente
+ JOIN PreciosEspeciales pe ON pe.Id_Cliente = v_customer AND pe.Id_Article = b.item_id
+ WHERE t.tarifa_class IS NULL
+ 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))
+ ENGINE = MEMORY
+ SELECT SUM(cost) sum_cost, b.item_id, b.warehouse_id, t.tarifa_class
+ FROM tmp.bionic_component b
+ 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
+ SELECT b.warehouse_id, item_id, 1 rate,
+ IF(box = 1, grouping, 1) grouping, SUM(sum_cost) price
+ FROM t_bionic_temp b
+ JOIN t_component_sum cs USING(item_id, warehouse_id)
+ 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
+ FROM t_bionic_temp b
+ JOIN t_component_sum cs USING(item_id, warehouse_id)
+ 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
+ FROM t_bionic_temp b
+ JOIN t_component_sum cs USING(item_id, warehouse_id)
+ 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
+ LIKE template_bionic_price;
+
+ INSERT INTO tmp.bionic_price (warehouse_id, item_id, rate, grouping, price)
+ SELECT * FROM (
+ SELECT * FROM t_bionic_rate ORDER BY price
+ ) t
+ GROUP BY item_id, warehouse_id, grouping;
+
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.travel_tree;
+ CREATE TEMPORARY TABLE tmp.travel_tree
+ ENGINE = MEMORY
+ SELECT * FROM travel_tree;
+
+ -- Limpieza
+
+ DROP TEMPORARY TABLE travel_tree;
+ DROP TEMPORARY TABLE t_bionic_temp;
+ DROP TEMPORARY TABLE t_component_sum;
+ DROP TEMPORARY TABLE t_components_base;
+
+ DROP TEMPORARY TABLE t_bionic_rate;
+ DROP TEMPORARY TABLE tmp.bionic_component_copy;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_calc_date` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+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;
+ DECLARE v_province INT;
+ DECLARE v_landing DATE;
+
+ SELECT agency_id, DATE(Fecha), t.warehouse_id, province_id
+ INTO v_agency_id, v_shipment, v_wh, v_province
+ FROM Tickets t
+ JOIN Consignatarios c ON c.Id_Consigna = t.Id_Consigna
+ JOIN Agencias a ON a.Id_Agencia = t.Id_Agencia
+ WHERE Id_Ticket = v_ticket;
+
+ SELECT landing INTO v_landing FROM (
+ SELECT
+ @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)
+ AND agency_id = v_agency_id
+ ORDER BY
+ (province_id IS NOT NULL) * 3 + (week_day IS NOT NULL) DESC, landing
+ LIMIT 1
+ ) t;
+
+ IF v_landing IS NULL THEN
+ SET v_landing = v_shipment;
+ END IF;
+
+ UPDATE Tickets SET landing = v_landing WHERE Id_Ticket = v_ticket;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_calc_movement` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ DECLARE v_agencia INT;
+ DECLARE v_consigna INT;
+ DECLARE v_ticket BIGINT;
+ DECLARE v_id_article BIGINT;
+ DECLARE v_landing DATE;
+ DECLARE v_ticket_free BOOLEAN DEFAULT TRUE;
+
+
+ SELECT FALSE
+ INTO v_ticket_free
+ FROM Tickets t
+ JOIN Movimientos m ON m.Id_Ticket = t.Id_Ticket
+ LEFT JOIN vn.ticketState ts on ts.ticket = t.Id_Ticket
+ WHERE Id_Movimiento = v_id_mov
+ AND (t.Factura != ""
+ or
+ (
+ ts.alertLevel > 0
+ AND
+ m.Preu != 0
+ )
+ )
+ LIMIT 1;
+
+ SELECT Id_Ticket, Id_Article INTO v_ticket, v_id_article FROM Movimientos WHERE Id_Movimiento = v_id_mov;
+
+ REPLACE order_Tickets(order_id,Id_Ticket) VALUES(48, v_ticket);
+
+ SELECT Id_Cliente , t.warehouse_id, date(t.Fecha), Id_Consigna , Id_Agencia
+ INTO v_customer ,v_wh, v_shipment , v_consigna , v_agencia
+ FROM vn2008.Agencias a
+ JOIN vn2008.Tickets t using(Id_Agencia)
+ WHERE Id_Ticket = v_ticket;
+
+ DROP TEMPORARY TABLE IF EXISTS travel_tree;
+ 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
+ DELETE FROM t_item_last_buy WHERE item_id != v_id_article;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.bionic_lot;
+ CREATE TEMPORARY TABLE tmp.bionic_lot
+ SELECT v_wh warehouse_id,NULL available,
+ m.Id_Article item_id,ilb.buy_id
+ FROM Movimientos m
+ LEFT JOIN t_item_last_buy ilb ON ilb.item_id = m.Id_Article
+ WHERE m.Id_Movimiento = v_id_mov;
+
+ CALL bionic_calc_component(v_consigna,v_agencia);
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.movement;
+ CREATE TEMPORARY TABLE tmp.movement
+ (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
+
+ -- Log
+ call Ditacio(v_ticket
+ ,'Bioniza Linea'
+ ,'T'
+ , 20
+ , 'proc bionic_calc_movement '
+ , v_id_mov);
+
+ -- Limpieza
+
+ DROP TEMPORARY TABLE t_item_last_buy;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_calc_movement_ok` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ DECLARE v_agencia INT;
+ DECLARE v_consigna INT;
+ DECLARE v_landing DATE;
+
+ REPLACE order_Tickets(order_id,Id_Ticket) VALUES(48, v_ticket);
+
+ SELECT Id_Cliente , t.warehouse_id, date(t.Fecha), Id_Consigna , Id_Agencia
+ INTO v_customer ,v_wh, v_shipment , v_consigna , v_agencia
+ FROM vn2008.Agencias a
+ JOIN vn2008.Tickets t using(Id_Agencia)
+ WHERE Id_Ticket = v_ticket;
+
+ DROP TEMPORARY TABLE IF EXISTS travel_tree;
+ 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
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.bionic_lot;
+ CREATE TEMPORARY TABLE tmp.bionic_lot
+ SELECT v_wh warehouse_id,NULL available,
+ m.Id_Article item_id,ilb.buy_id
+ FROM Movimientos m
+ LEFT JOIN t_item_last_buy ilb ON ilb.item_id = m.Id_Article
+ WHERE m.Id_Ticket = v_ticket GROUP BY m.Id_Article;
+
+ CALL bionic_calc_component(v_consigna,v_agencia);
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.movement;
+ CREATE TEMPORARY TABLE tmp.movement
+ (PRIMARY KEY (Id_Movimiento)) ENGINE = MEMORY
+ 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'
+ , 20
+ , 'proc bionic_calc_movement_ok '
+ , NULL);
+
+ -- Limpieza
+ DROP TEMPORARY TABLE t_item_last_buy;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_calc_reverse` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `bionic_calc_reverse`(
+ vWarehouse INT,
+ vMargin DECIMAL(10,3),
+ vRetailedPrice DECIMAL(10,3),
+ vM3 DECIMAL(10,3),
+ vConsigna INT,
+ vAgencia INT)
+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 vCost DECIMAL(10,4) DEFAULT 0;
+ DECLARE vCustomer INT;
+ DECLARE vRecovery DECIMAL(10,4) DEFAULT 0;
+ DECLARE vMana DECIMAL(10,4) DEFAULT 0;
+ DECLARE vPort DECIMAL(10,4) DEFAULT 0;
+
+ 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
+ * az.price
+ * az.inflacion
+ / VOLUMEN_CAJA_VERDNATURA, 4
+ ) INTO vPort
+ FROM vn2008.Agencias a
+ JOIN vn2008.Consignatarios c ON c.Id_Consigna = vConsigna AND a.Id_Agencia = vAgencia
+ 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;
+
+ SELECT vCost,vRetailedPrice,vPort,vRecovery,vMana,vMargin,vCustomer;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_calc_ticket` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ DECLARE v_agencia INT;
+ DECLARE v_consigna INT;
+ DECLARE v_landing DATE;
+ DECLARE v_ticket_free BOOLEAN;
+ DECLARE v_agency INT;
+
+ CALL bionic_free();
+
+ SELECT (IFNULL(ts.alertLevel,0) >0 or IFNULL(Factura,"") != "") = FALSE
+ INTO v_ticket_free
+ 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);
+
+ SELECT Id_Cliente, t.warehouse_id, date(t.Fecha), Id_Consigna, t.Id_Agencia, landing, a.agency_id
+ INTO v_customer, v_wh, v_shipment, v_consigna, v_agencia, v_landing, v_agency
+ FROM vn2008.Tickets t LEFT JOIN vn2008.Agencias a ON t.Id_Agencia = a.Id_Agencia WHERE Id_Ticket = v_ticket;
+
+ DROP TEMPORARY TABLE IF EXISTS travel_tree;
+ 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
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.bionic_lot;
+ CREATE TEMPORARY TABLE tmp.bionic_lot
+ SELECT v_wh warehouse_id,NULL available,
+ m.Id_Article item_id,ilb.buy_id
+ FROM Movimientos m
+ LEFT JOIN t_item_last_buy ilb ON ilb.item_id = m.Id_Article
+ WHERE m.Id_Ticket = v_ticket GROUP BY m.Id_Article;
+
+ CALL bionic_calc_component(v_consigna,v_agencia);
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.movement;
+ CREATE TEMPORARY TABLE tmp.movement
+ (PRIMARY KEY (Id_Movimiento)) ENGINE = MEMORY
+ SELECT Id_Movimiento, v_wh warehouse_id
+ 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
+
+ IF v_landing IS NULL THEN
+
+ CALL travel_tree_shipment(v_shipment, v_consigna, v_agency,v_wh);
+ UPDATE Tickets t
+ JOIN travel_tree_shipment tts ON t.warehouse_id = tts.warehouse_id
+ SET t.landing = tts.landing
+ WHERE Id_Ticket = v_ticket;
+
+ END IF;
+ -- Limpieza
+ -- DROP TEMPORARY TABLE t_item_last_buy;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_free` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `bionic_free`()
+BEGIN
+ DROP TEMPORARY TABLE IF EXISTS tmp.bionic_lot;
+ DROP TEMPORARY TABLE IF EXISTS tmp.bionic_item;
+ DROP TEMPORARY TABLE IF EXISTS tmp.bionic_price;
+ DROP TEMPORARY TABLE IF EXISTS tmp.bionic_component;
+ DROP TEMPORARY TABLE IF EXISTS tmp.travel_tree;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_from_item` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `bionic_from_item`(
+ v_date DATE,
+ v_consigna INT,
+ v_agencia INT,
+ v_item INT)
+BEGIN
+ DROP TEMPORARY TABLE IF EXISTS tmp.bionic_calc;
+ CREATE TEMPORARY TABLE tmp.bionic_calc
+ (PRIMARY KEY (item_id))
+ ENGINE = MEMORY
+ SELECT v_item item_id;
+
+ CALL bionic_calc (v_date, v_consigna, v_agencia);
+
+ DROP TEMPORARY TABLE tmp.bionic_calc;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_from_order` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `bionic_from_order`(
+ v_date DATE, -- fecha de recepcion de mercancia
+ v_consigna INT,
+ v_agencia INT,
+ v_order INT)
+BEGIN
+ DROP TEMPORARY TABLE IF EXISTS tmp.bionic_calc;
+ CREATE TEMPORARY TABLE tmp.bionic_calc
+ (PRIMARY KEY (item_id))
+ ENGINE = MEMORY
+ SELECT item_id FROM order_row
+ WHERE order_id = v_order GROUP BY item_id;
+
+ CALL bionic_calc (v_date, v_consigna, v_agencia);
+ DROP TEMPORARY TABLE tmp.bionic_calc;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_from_ticket` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `bionic_from_ticket`(
+ v_date DATE, -- fecha de recepcion de mercancia
+ v_consigna INT,
+ v_agencia INT,
+ v_ticket INT)
+BEGIN
+ DECLARE int_warehouse SMALLINT;
+ DECLARE v_agency_id INT;
+ DECLARE v_shipment DATE;
+
+ SELECT warehouse_id INTO int_warehouse FROM Tickets WHERE Id_Ticket = v_ticket;
+ SELECT agency_id INTO v_agency_id FROM Agencias WHERE Id_Agencia = v_agencia;
+
+
+ CALL bionic_free();
+ CALL travel_tree(v_date,v_consigna, v_agency_id);
+
+
+ SELECT Fecha_envio INTO v_shipment FROM travel_tree WHERE warehouse_id = int_warehouse;
+
+ CALL item_last_buy_ (int_warehouse, v_shipment);
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.bionic_lot;
+ CREATE TEMPORARY TABLE tmp.bionic_lot
+ SELECT int_warehouse warehouse_id,NULL available,
+ m.Id_Article item_id,ilb.buy_id
+ FROM Movimientos m
+ LEFT JOIN t_item_last_buy ilb ON ilb.item_id = m.Id_Article
+ WHERE m.Id_Ticket = v_ticket
+ AND m.Id_Article != 100
+ GROUP BY warehouse_id, item_id;
+
+ DROP TEMPORARY TABLE t_item_last_buy;
+
+ 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;
+
+ IF IFNULL(v_shipment,CURDATE() - 1) < CURDATE() THEN
+ SIGNAL SQLSTATE '45000'
+ SET MESSAGE_TEXT = 'No se puede realizar el cambio';
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_from_type` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `bionic_from_type`(
+ v_date DATE, -- fecha de recepcion de mercancia
+ v_consigna INT,
+ v_agencia INT,
+ v_type INT)
+BEGIN
+ DROP TEMPORARY TABLE IF EXISTS tmp.bionic_calc;
+ CREATE TEMPORARY TABLE tmp.bionic_calc
+ (PRIMARY KEY (item_id))
+ ENGINE = MEMORY
+ SELECT Id_Article AS item_id FROM Articles WHERE tipo_id = v_type;
+
+ CALL bionic_calc (v_date, v_consigna, v_agencia);
+
+ DROP TEMPORARY TABLE tmp.bionic_calc;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_make_update` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `bionic_make_update`(
+ i_ticket INT
+ ,i_agencia INT
+ ,i_consigna INT
+ ,i_warehouse INT
+ ,d_shipment DATE
+ ,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;
+
+ UPDATE Tickets t
+ SET
+ t.Id_Agencia = i_agencia,
+ t.Id_Consigna = i_consigna,
+ t.warehouse_id = i_warehouse,
+ t.landing = d_landing,
+ t.Fecha = d_shipment
+ WHERE
+ t.Id_Ticket = i_ticket;
+
+ -- La opcion 8 es No realizar modificaciones en los precios
+
+ IF i_option <> 8
+ THEN
+ DROP TEMPORARY TABLE IF EXISTS tmp.movement;
+ CREATE TEMPORARY TABLE tmp.movement
+ (PRIMARY KEY (Id_Movimiento))
+ ENGINE = MEMORY
+ SELECT Id_Movimiento, i_warehouse warehouse_id
+ FROM Movimientos m WHERE m.Id_Ticket = i_ticket;
+
+ CALL bionic_movement_update (i_option);
+ DROP TEMPORARY TABLE tmp.movement;
+ END IF;
+
+ COMMIT;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_movement_update` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+
+ SET bolRENUEVA_COMPONENTES = TRUE;
+ SET bolRESPETA_PRECIOS = FALSE;
+
+ WHEN 2 THEN
+
+ SET intComponent = 17; -- greuge al client
+ SET bolRENUEVA_COMPONENTES = TRUE;
+ SET bolRESPETA_PRECIOS = TRUE;
+
+ WHEN 3 THEN
+
+ SET intComponent = 37; -- convertir en maná
+ SET bolRENUEVA_COMPONENTES = TRUE;
+ SET bolRESPETA_PRECIOS = TRUE;
+
+ WHEN 4 THEN
+
+ SET intComponent = 34; -- greuge contra la cartera del producto
+ SET bolRENUEVA_COMPONENTES = TRUE;
+ SET bolRESPETA_PRECIOS = TRUE;
+
+ WHEN 5 THEN
+
+ SET intComponent = 35; -- greuge contra la cartera del comprador
+ SET bolRENUEVA_COMPONENTES = TRUE;
+ SET bolRESPETA_PRECIOS = TRUE;
+
+ WHEN 6 THEN
+
+ SET intComponent = 36; -- descuadre para la empresa
+ 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
+ JOIN tmp.movement mo ON m.Id_Movimiento = mo.Id_Movimiento
+ 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
+ JOIN tmp.movement mo ON m.Id_Movimiento = mo.Id_Movimiento
+ 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;
+
+ SET bolRENUEVA_COMPONENTES = FALSE;
+ 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
+ JOIN tmp.movement mo ON m.Id_Movimiento = mo.Id_Movimiento;
+
+ 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
+
+ SET bolRENUEVA_COMPONENTES = TRUE;
+ SET bolRESPETA_PRECIOS = TRUE;
+
+ END CASE;
+
+ 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
+ JOIN tmp.movement mo ON m.Id_Movimiento = mo.Id_Movimiento
+ JOIN tmp.bionic_component bc ON bc.item_id = m.Id_Article AND bc.warehouse_id = mo.warehouse_id
+ LEFT JOIN Movimientos_componentes mc ON mc.Id_Movimiento = m.Id_Movimiento AND mc.Id_Componente = bc.component_id
+ LEFT JOIN tarifa_componentes tc ON tc.Id_Componente = bc.component_id
+ WHERE IF(mc.Id_Componente IS NULL AND tc.is_renewable = FALSE,FALSE,TRUE);
+
+ END IF;
+
+ IF bolRESPETA_PRECIOS THEN
+
+ REPLACE INTO vn2008.Movimientos_componentes(Id_Movimiento, Id_Componente, Valor)
+ SELECT m.Id_Movimiento,intComponent, round((m.Preu * (100 - m.Descuento) /100 ) - SUM(mc.Valor) ,3) dif
+ FROM Movimientos m
+ JOIN tmp.movement mo ON m.Id_Movimiento = mo.Id_Movimiento
+ LEFT JOIN Movimientos_componentes mc ON mc.Id_Movimiento = m.Id_Movimiento
+ WHERE mc.Id_Componente <> intComponent
+ GROUP BY m.Id_Movimiento
+ HAVING dif <> 0;
+
+ 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
+ JOIN (SELECT SUM(mc.Valor) sum_valor,mc.Id_Movimiento
+ FROM Movimientos_componentes mc
+ 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
+
+ -- 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
+ FROM Movimientos m
+ JOIN tmp.movement mo ON m.Id_Movimiento = mo.Id_Movimiento
+ JOIN Movimientos_componentes mc ON mc.Id_Movimiento = m.Id_Movimiento
+ WHERE mc.Id_Componente != 21
+ GROUP BY m.Id_Movimiento having round(v_valor,4) <> 0;
+
+ END IF;
+
+ -- Fija el Costfixat
+
+ UPDATE Movimientos m
+ JOIN (SELECT SUM(mc.Valor) sum_valor,mc.Id_Movimiento
+ FROM Movimientos_componentes mc
+ JOIN tmp.movement m ON m.Id_Movimiento = mc.Id_Movimiento
+ join bi.tarifa_componentes tc using(Id_Componente)
+ join bi.tarifa_componentes_series tcs on tcs.tarifa_componentes_series_id = tc.tarifa_componentes_series_id AND tcs.base
+ GROUP BY mc.Id_Movimiento) mc ON mc.Id_Movimiento = m.Id_Movimiento
+ SET m.CostFixat = sum_valor, PrecioFijado = 1;
+
+
+ -- PAK 2017-02-06
+ -- Familia PORTES, un unico componente de porte
+
+ 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 Tipo = 'Portes';
+
+ INSERT INTO Movimientos_componentes(Id_Movimiento, Id_Componente, Valor)
+ SELECT m.Id_Movimiento, 15, preu -- Reparto
+ 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 ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_movement_update_mode` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `bionic_movement_update_mode`(IN idMOV BIGINT, IN i_MODE INT)
+BEGIN
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.movement;
+ CREATE TEMPORARY TABLE tmp.movement
+ (PRIMARY KEY (Id_Movimiento)) ENGINE = MEMORY
+ SELECT Id_Movimiento, warehouse_id
+ FROM Movimientos m
+ JOIN Tickets t using(Id_Ticket)
+ WHERE m.Id_Movimiento = idMOV;
+
+ CALL bionic_movement_update(i_MODE);
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_movimiento_precio_update` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `bionic_movimiento_precio_update`(IN i_mov INT)
+BEGIN
+
+DECLARE d_compo_precio DOUBLE;
+DECLARE d_mov_precio DOUBLE;
+
+SELECT SUM(Valor) INTO d_compo_precio
+FROM bi.movimientos_componentes
+WHERE Id_Movimiento = i_mov;
+
+SELECT Preu INTO d_mov_precio
+FROM Movimientos
+WHERE Id_Movimiento = i_mov;
+
+IF d_mov_precio <> d_compo_precio
+AND d_compo_precio IS NOT NULL
+AND d_mov_precio IS NOT NULL
+THEN
+
+ INSERT INTO bi.movimientos_componentes(Id_Movimiento, Id_Componente, Valor)
+ VALUES (i_mov, 21, d_mov_precio - d_compo_precio)
+ ON DUPLICATE KEY UPDATE Valor = Valor + d_mov_precio - d_compo_precio ;
+
+END IF;
+
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_tickets_range_bionizar` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `bionic_tickets_range_bionizar`(IN datSTART DATE, IN datEND DATE)
+BEGIN
+DECLARE done BIT DEFAULT 0;
+DECLARE datEND_Midnight DATETIME DEFAULT vn2008.dayend(datEND);
+DECLARE v_ticket BIGINT;
+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
+ join vn2008.Articles a using(Id_Article)
+ left join vn2008.Movimientos_componentes mc using(Id_Movimiento)
+ join vn2008.Tipos tp on a.tipo_id = tp.tipo_id
+ where t.Fecha between datSTART and datEND_Midnight
+ and not tp.confeccion
+ and m.Cantidad > 0
+ and tp.reino_id != 6
+ group by Id_Movimiento
+ 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
+ (
+ SELECT DISTINCT t.Id_Ticket, 0
+ FROM Tickets t
+ JOIN Movimientos m on m.Id_Ticket = t.Id_Ticket
+ JOIN Articles a on a.Id_Article = m.Id_Article
+ JOIN Tipos tp on a.tipo_id = tp.tipo_id
+ JOIN Movimientos_componentes mc on mc.Id_Movimiento = m.Id_Movimiento
+ JOIN tarifa_componentes tc on tc.Id_Componente = mc.Id_Componente
+ WHERE (tarifa_componentes_series_id = 1 OR tp.reino_id = 6)
+ AND t.Fecha between datSTART and datEND_Midnight
+ ) sub on sub.Id_Ticket = t.Id_Ticket
+ WHERE sub.Id_Ticket IS NULL
+ 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
+ JOIN Tipos tp on tp.tipo_id = a.tipo_id
+ JOIN Tickets t on m.Id_Ticket = t.Id_Ticket
+ JOIN v_expeditions_shipping_charge v on v.Id_ticket = t.Id_Ticket
+ LEFT JOIN
+ (
+ SELECT m.Id_Ticket, count(Id_Componente) Lineas_conPorte
+ FROM Movimientos_componentes mc
+ JOIN Movimientos m using(Id_Movimiento)
+ JOIN Tickets t using(Id_Ticket)
+ WHERE Id_Componente = 15
+ AND Fecha between datSTART and datEND_Midnight
+ GROUP BY m.Id_Ticket
+ ) sub on sub.Id_Ticket = t.Id_Ticket
+ WHERE t.Fecha between datSTART and datEND_Midnight
+ AND Preu != 0
+ AND tp.reino_id != 6
+ AND shipping_charge > 1
+ GROUP BY m.Id_Ticket
+ HAVING Lineas_totales > IFNULL(Lineas_conPorte,0)
+
+
+
+) sub
+JOIN Tickets t ON t.Id_Ticket = sub.Id_Ticket
+JOIN warehouse w ON w.id = t.warehouse_id
+WHERE w.inventario;
+
+DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
+
+
+
+
+OPEN rs;
+
+FETCH rs INTO v_ticket ;
+
+WHILE NOT done DO
+
+ CALL bionic_calc_ticket(v_ticket);
+
+ call Ditacio(v_ticket
+ ,'Bioniza Ticket'
+ ,'T'
+ , 20
+ , 'proc bionic_tickets_range_bionizar'
+ , NULL);
+
+ FETCH rs INTO v_ticket ;
+
+END WHILE;
+
+
+CLOSE rs;
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bonus_comparados` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `bonus_comparados`()
+BEGIN
+
+SELECT CodigoTrabajador as Comercial
+ , T.Fecha
+ , bs.Id_Ticket
+ , T.Alias
+ , bs.Id_Article
+ , A.Article
+ , A.Medida
+ ,A.Categoria
+ , O.Abreviatura
+ , bs.amount
+ , bs.bonus
+ , amount * bonus * IF(bonus_buenos.bonus_sales_id IS NULL,0,1) as saldo
+FROM bonus_sales bs
+JOIN Articles A USING(Id_Article)
+JOIN Trabajadores USING(Id_Trabajador)
+JOIN Tickets T USING(Id_Ticket)
+JOIN Clientes C USING(Id_Cliente)
+JOIN Origen O ON O.id = A.id_origen
+JOIN Permisos P ON bs.Id_Trabajador = P.Id_Trabajador
+LEFT JOIN (
+ select b.bonus_sales_id
+ from bonus_sales b
+ left join Movimientos M using(Id_Ticket, Id_Article)
+ join Tickets T on T.Id_Ticket = b.Id_Ticket
+ where Fecha >= '2012-12-01'
+ and Cantidad > amount / 2
+ ) bonus_buenos USING(bonus_sales_id)
+
+WHERE T.Fecha > '2012-12-01' AND invoice AND Id_Grupo = 6;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `buy_label` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `buy_label`(IN entry_id_ INT, IN groupby TINYINT(1))
+BEGIN
+
+ DECLARE done INT DEFAULT 0;
+ DECLARE label INT;
+ DECLARE id INT;
+ DECLARE recordset CURSOR FOR SELECT Compres.Etiquetas, Compres.Id_Compra FROM Compres INNER JOIN
+ (SELECT e.Id_entrada FROM Entradas e INNER JOIN (
+ SELECT Id_Entrada,Inventario,Id_proveedor,travel_id,Id_Agencia FROM Entradas e1 INNER JOIN travel t ON e1.travel_id = t.id WHERE Id_Entrada = entry_id_) y
+ ON y.Inventario = e.Inventario AND e.travel_id = y.travel_id AND e.Id_proveedor = y.Id_proveedor AND y.Id_Agencia = e.Id_Agencia
+ WHERE (0 OR e.Id_Entrada = entry_id_)) entry_label
+ ON Compres.Id_Entrada = entry_label.Id_entrada
+ INNER JOIN Articles ON Compres.Id_Article = Articles.Id_Article WHERE Articles.Imprimir <> FALSE;
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
+
+ DROP TEMPORARY TABLE IF EXISTS `buy_label_source`;
+
+ CREATE TEMPORARY TABLE `buy_label_source`
+ (
+ `buy_id` INT(11) NOT NULL
+ )
+
+ ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+ OPEN recordset;
+
+ REPEAT
+
+ FETCH recordset INTO label, id;
+ WHILE label > 0 DO
+
+ SET label = label - 1;
+ INSERT INTO buy_label_source (buy_id) VALUES (id);
+
+ END WHILE;
+
+ UNTIL done END REPEAT;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `buy_label_bunch` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `buy_label_bunch`(IN entry_id_ INT, IN groupby TINYINT(1),IN single TINYINT(1), IN idCOM BIGINT)
+BEGIN
+ DECLARE done INT DEFAULT 0;
+ DECLARE date_ DATE;
+ DECLARE provider_id INT;
+ DECLARE agency_id INT;
+ DECLARE i_wh INT;
+ DECLARE label INT;
+ DECLARE id INT;
+ DECLARE recordset CURSOR FOR
+ SELECT ROUND(C.Cantidad / IF(C.caja = FALSE, 1,C.Grouping) + 0.49), C.Id_Compra
+ FROM Compres C
+ INNER JOIN entry_label ON C.Id_Entrada = entry_label.entry_id
+ INNER JOIN Articles A ON C.Id_Article = A.Id_Article
+ WHERE (A.Imprimir <> FALSE AND idCOM = 0 AND C.Novincular = FALSE)
+ OR idCOM = C.Id_Compra;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
+ SET idCOM = IFNULL(idCOM, 0);
+
+ DROP TEMPORARY TABLE IF EXISTS `entry_label`;
+ CREATE TEMPORARY TABLE `entry_label`
+ (
+ `entry_id` INT(11) NOT NULL
+ )
+ ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+
+ IF groupby <> FALSE THEN
+
+ SELECT Id_Proveedor, DATE(landing), travel.agency_id, warehouse_id INTO provider_id, date_, agency_id, i_wh
+ FROM Entradas
+ INNER JOIN travel ON travel.id = Entradas.travel_id
+
+ WHERE Id_Entrada = entry_id_;
+
+ INSERT INTO entry_label (entry_id) SELECT Entradas.Id_Entrada FROM Entradas
+
+ INNER JOIN travel ON travel.id = Entradas.travel_id
+
+ WHERE Entradas.Inventario = FALSE AND Entradas.Id_Proveedor = provider_id
+
+ AND warehouse_id = i_wh AND DATE(landing) = date_ AND travel.agency_id= agency_id;
+
+ ELSE
+
+ INSERT INTO entry_label (entry_id) VALUES (entry_id_);
+ SELECT landing INTO date_ FROM Entradas e
+ JOIN travel t ON t.id = e.travel_id
+ JOIN Compres c ON c.Id_Entrada = e.Id_Entrada
+ WHERE (entry_id_ = e.Id_Entrada OR c.Id_Compra = idCOM) LIMIT 1;
+
+ END IF;
+
+
+ DROP TEMPORARY TABLE IF EXISTS `buy_label_source`;
+
+ CREATE TEMPORARY TABLE `buy_label_source`
+ (
+ `buy_id` INT(11) NOT NULL
+ )
+ ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+
+ OPEN recordset;
+ FETCH recordset INTO label, id;
+ REPEAT
+ REPEAT
+
+ SET label = label - 1;
+ INSERT INTO buy_label_source (buy_id) VALUES (id);
+ UNTIL label <= 0 OR single END REPEAT;
+
+ INSERT INTO buy_label_source (buy_id) VALUES (0);
+ FETCH recordset INTO label, id;
+ UNTIL done END REPEAT;
+
+ SELECT C.Id_Article,@a := IF(A.min AND IFNULL(rate_3,C.Tarifa3) < A.PVP, A.PVP, IFNULL(rate_3,C.Tarifa3)) Tarifa2,
+ ROUND(IF(C.caja = FALSE, @a,@a * C.Grouping),2) AS Bunch,
+ ROUND(@a / A.Tallos,2) AS PPT,
+ A.Article, A.Medida, A.Color, A.Categoria, Abreviatura as Origen, C.Productor,
+ A.Tallos, C.grouping, E.Notas_Eva,P.Proveedor,C.Packing
+ FROM buy_label_source bls
+ LEFT JOIN Compres C ON C.Id_Compra = bls.buy_id
+ LEFT JOIN Entradas E ON E.Id_Entrada = C.Id_Entrada
+ LEFT JOIN Articles A ON A.Id_Article = C.Id_Article
+ LEFT JOIN Proveedores P ON P.Id_Proveedor = E.Id_Proveedor
+ LEFT JOIN Origen o ON A.id_origen = o.id
+ LEFT JOIN (
+ SELECT item_id, rate_3 FROM price_fixed
+ WHERE IFNULL(date_,CURDATE()) BETWEEN date_start AND date_end AND rate_3
+ 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`;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `buy_scan` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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');
+ END IF;
+
+ SELECT e.id, c.Id_Compra, c.Id_Article, a.do_photo
+ INTO v_edi, v_buy, v_item, v_do_photo
+ FROM buy_edi e
+ JOIN Compres c ON c.buy_edi_id = e.id
+ JOIN Articles a ON a.Id_Article = c.Id_Article
+ WHERE e.barcode = v_barcode
+ AND e.entry_year = YEAR(CURDATE())
+ ORDER BY c.Id_Compra
+ LIMIT 1;
+
+ UPDATE buy_edi SET scanned = TRUE WHERE id = v_edi;
+
+ UPDATE Compres
+ SET Vida = Vida + IF(v_labels != -1, v_labels, Etiquetas)
+ WHERE Id_Compra = v_buy;
+
+ IF v_do_photo THEN
+ UPDATE Articles SET do_photo = FALSE WHERE Id_Article = v_item;
+ END IF;
+
+ SELECT v_buy buy, v_do_photo do_photo;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `buy_split` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `buy_split`(v_buy INT, v_fv_entry INT, v_pca_entry INT)
+BEGIN
+ DECLARE v_item INT;
+ DECLARE v_packing INT;
+ DECLARE v_remaining INT;
+ DECLARE v_labels INT;
+ DECLARE v_remainder INT;
+ DECLARE v_is_buy INT;
+ DECLARE v_id INT;
+ DECLARE v_amount INT;
+ DECLARE v_done BOOL DEFAULT FALSE;
+
+ DECLARE cur CURSOR FOR
+ SELECT TRUE, c.Id_Compra, c.Cantidad - IFNULL((c.Vida * c.Packing), 0)
+ FROM Compres c
+ JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada
+ JOIN travel t ON t.id = e.travel_id
+ WHERE c.Id_Article = v_item
+ AND t.shipment = CURDATE() AND t.warehouse_id_out IN (7, 40)
+ AND t.warehouse_id NOT IN (44, 1)
+ AND NOT e.redada AND NOT e.Inventario
+ AND IFNULL(c.Vida, 0) < c.Etiquetas
+ LOCK IN SHARE MODE
+ UNION ALL
+ SELECT FALSE, m.Id_Movimiento, m.Cantidad - IFNULL(l.stem, 0)
+ FROM Movimientos m
+ JOIN Tickets t ON t.Id_Ticket = m.Id_Ticket
+ LEFT JOIN movement_label l ON l.Id_Movimiento = m.Id_Movimiento
+ WHERE m.Id_Article = v_item
+ AND t.Fecha = CURDATE() AND t.warehouse_id IN (7, 40)
+ AND NOT t.Etiquetasemitidas
+ AND IFNULL(l.stem, 0) < m.Cantidad
+ LOCK IN SHARE MODE;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND
+ SET v_done = TRUE;
+
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ 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
+ (
+ is_buy BOOL,
+ id INT,
+ labels INT,
+ remainder INT
+ )
+ ENGINE = MEMORY;
+
+ OPEN cur;
+
+ l: LOOP
+ SET v_done = FALSE;
+ FETCH cur INTO v_is_buy, v_id, v_amount;
+
+ IF v_done OR v_remaining = 0 THEN
+ LEAVE l;
+ END IF;
+
+ SET v_amount = LEAST(v_amount, v_remaining);
+ SET v_remaining = v_remaining - v_amount;
+ SET v_labels = v_amount DIV v_packing;
+
+ INSERT INTO tmp.split
+ VALUES (v_is_buy, v_id, v_labels, v_amount % v_packing);
+
+ IF v_is_buy
+ THEN
+ UPDATE Compres
+ SET Vida = Vida + v_labels
+ WHERE Id_Compra = v_id;
+ ELSE
+ INSERT INTO movement_label
+ SET
+ Id_Movimiento = v_id,
+ stem = v_amount,
+ label = v_labels
+ ON DUPLICATE KEY UPDATE
+ stem = stem + VALUES(stem),
+ label = label + VALUES(label);
+ END IF;
+ END LOOP;
+
+ 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
+ ENGINE = MEMORY
+ SELECT s.labels, s.remainder, w.`name` destination,
+ a.Id_Article, a.Article, a.Medida
+ FROM tmp.split s
+ JOIN Compres c ON c.Id_Compra = s.id
+ JOIN Articles a ON a.Id_Article = c.Id_Article
+ JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada
+ JOIN travel t ON t.id = e.travel_id
+ JOIN warehouse w ON t.warehouse_id = w.id
+ WHERE s.is_buy;
+
+ INSERT INTO tmp.aux
+ SELECT s.labels, s.remainder, o.Consignatario,
+ a.Id_Article, a.Article, a.Medida
+ FROM tmp.split s
+ JOIN Movimientos m ON m.Id_Movimiento = s.id
+ JOIN Articles a ON a.Id_Article = m.Id_Article
+ JOIN Tickets t ON t.Id_Ticket = m.Id_Ticket
+ JOIN Consignatarios o ON o.Id_Consigna = t.Id_Consigna
+ WHERE NOT s.is_buy;
+
+ SELECT * FROM tmp.aux;
+
+ -- Limpia y confirma cambios
+
+ DROP TEMPORARY TABLE
+ tmp.split,
+ tmp.aux;
+
+ COMMIT;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `buy_tarifas` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `buy_tarifas`(v_buy INT)
+BEGIN
+ DECLARE v_entry INT;
+ DECLARE v_wh INT;
+
+ SELECT Id_Entrada, warehouse_id
+ INTO v_entry, v_wh
+ FROM Compres
+ JOIN Entradas USING(Id_Entrada)
+ JOIN travel ON travel.id = travel_id
+ WHERE v_buy = Id_Compra;
+
+ CALL buy_tarifas_table (v_entry);
+
+ UPDATE Compres C
+ LEFT JOIN Cubos CB USING(Id_Cubo)
+ JOIN Articles A USING(Id_Article)
+ JOIN Tipos TP USING(tipo_id)
+ JOIN Entradas E USING(Id_Entrada)
+ JOIN travel TR ON TR.id = E.travel_id
+ JOIN Agencias AG ON TR.agency_id = AG.Id_Agencia
+ LEFT JOIN recibida_entrada re ON E.Id_Entrada = re.Id_Entrada
+ LEFT JOIN awb_recibida ar ON re.awb_recibida = ar.recibida_id
+ LEFT JOIN v_awb_volumen va ON va.awb_id = ar.awb_id
+ JOIN tblTARIFAS TC
+ SET C.Portefijo = @PF:=
+ IF (va.importe,
+ ROUND((va.importe * TP.density * CM3_2(C.Id_Cubo, C.Id_Article) / 1000) / (va.Vol_Total * 167 * C.Packing ),3),
+ ROUND(IFNULL(((AG.m3 * 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.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
+ THEN
+ UPDATE Compres
+ SET Tarifa2 = Tarifa3
+ WHERE Id_Compra = v_buy;
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `buy_tarifas_awb` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `buy_tarifas_awb`(IN strAWB varchar(18))
+BEGIN
+
+DECLARE datINV DATE;
+DECLARE wh_id INT;
+DECLARE idENTRADA INT;
+
+SELECT warehouse_id, E.Id_Entrada INTO wh_id, idENTRADA
+FROM Entradas E
+JOIN travel ON travel.id = travel_id
+JOIN recibida_entrada re on E.Id_Entrada = re.Id_Entrada
+JOIN awb_recibida ar ON re.awb_recibida = ar.recibida_id
+JOIN awb ON awb.id = ar.awb_id
+WHERE awb.codigo = strAWB
+LIMIT 1;
+
+
+ CALL buy_tarifas_table(idENTRADA);
+
+ UPDATE Compres C
+ LEFT JOIN Cubos CB USING(Id_Cubo)
+ JOIN Articles A USING(Id_Article)
+ JOIN Entradas E USING(Id_Entrada)
+ JOIN recibida_entrada re on E.Id_Entrada = re.Id_Entrada
+ JOIN awb_recibida ar ON re.awb_recibida = ar.recibida_id
+ JOIN v_awb_volumen va ON va.awb_id = ar.awb_id
+ JOIN Tipos TP USING(tipo_id)
+ JOIN travel TR ON TR.id = E.travel_id
+ JOIN Agencias AG ON TR.agency_id = AG.Id_Agencia
+ JOIN tblTARIFAS TC
+
+ SET C.Portefijo = @PF:= round((va.importe * TP.density * CM3_2(C.Id_Cubo, C.Id_Article) / 1000) / (va.Vol_Total * 167 * C.Packing ),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.Tarifa2 = @t2:= round(@t3 * (1 + ( (TC.t2 - TC.t3)/100) ),2),
+
+ C.Tarifa2 = @t2:= IF(@t2 <= @t3, @t3 , @t2)
+
+
+ WHERE va.codigo = strAWB ;
+
+
+CASE wh_id
+
+ WHEN 41 THEN -- Canarias
+
+ UPDATE Compres
+ SET Tarifa2 = Tarifa3
+ WHERE Id_Entrada = idENTRADA;
+
+
+ ELSE
+
+ BEGIN
+ END;
+
+END CASE;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `buy_tarifas_awb_bucle` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `buy_tarifas_awb_bucle`()
+BEGIN
+
+DECLARE strAWB VARCHAR(25);
+DECLARE done INT DEFAULT FALSE;
+DECLARE rs CURSOR FOR
+SELECT codigo
+FROM awb
+WHERE MYSQL_TIME > '2015-06-30' AND importe > 0 ;
+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
+
+ insert into killme select strAWB, MYSQL_TIME, importe from awb where codigo = strAWB;
+ call buy_tarifas_awb(strAWB);
+ FETCH rs INTO strAWB;
+ select * from killme order by fecha desc;
+END WHILE;
+
+
+
+drop temporary table killme;
+
+
+CLOSE rs;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `buy_tarifas_entry` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `buy_tarifas_entry`(IN idENTRADA INT(11))
+BEGIN
+
+ DECLARE datINV DATE;
+ DECLARE wh_id INT;
+ DECLARE m3i INTEGER;
+
+
+ SELECT warehouse_id INTO wh_id
+ FROM Entradas
+ JOIN travel ON travel.id = travel_id
+ WHERE Id_Entrada = idENTRADA;
+
+ CALL buy_tarifas_table(idENTRADA);
+
+ SELECT AG.m3 * sum( etiquetas * IFNULL(((AG.m3 * cm3_2(C.Id_Cubo, C.Id_Article)) / 1000000) ,0) ) /
+ sum(etiquetas * IFNULL(((AG.m3 * ( TP.density / 167 ) * cm3_2(C.Id_Cubo, C.Id_Article)) / 1000000) ,0)) INTO m3i
+ FROM Compres C
+ JOIN Articles A USING(Id_Article)
+ JOIN Entradas E USING(Id_Entrada)
+ JOIN Tipos TP USING(tipo_id)
+ JOIN travel TR ON TR.id = E.travel_id
+ JOIN Agencias AG ON TR.agency_id = AG.Id_Agencia
+ WHERE E.Id_Entrada = idENTRADA;
+
+
+
+ UPDATE Compres C
+ LEFT JOIN Cubos CB USING(Id_Cubo)
+ JOIN Articles A USING(Id_Article)
+ JOIN Entradas E USING(Id_Entrada)
+ LEFT JOIN recibida_entrada re on E.Id_Entrada = re.Id_Entrada
+ LEFT JOIN awb_recibida ar ON re.awb_recibida = ar.recibida_id
+ LEFT JOIN v_awb_volumen va ON va.awb_id = ar.awb_id
+ JOIN Tipos TP USING(tipo_id)
+ JOIN travel TR ON TR.id = E.travel_id
+ JOIN Agencias AG ON TR.agency_id = AG.Id_Agencia
+ JOIN tblTARIFAS TC
+
+ SET C.Portefijo = @PF:=
+ IF (va.importe,
+
+ round((va.importe * TP.density * CM3_2(C.Id_Cubo, C.Id_Article) / 1000) / (va.Vol_Total * 167 * C.Packing ),3),
+
+ 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.Tarifa2 = @t2:= round(@t3 * (1 + ( (TC.t2 - TC.t3)/100)),2),
+
+ C.Tarifa2 = @t2:= IF(@t2 <= @t3, @t3 , @t2)
+
+ WHERE C.Id_Entrada = idENTRADA ;
+
+
+ CASE wh_id
+
+ WHEN 41 THEN -- Canarias
+
+ UPDATE Compres
+ SET Tarifa2 = Tarifa3
+ WHERE Id_Entrada = idENTRADA;
+ ELSE
+
+ BEGIN
+ END;
+
+ END CASE;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `buy_tarifas_lot` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `buy_tarifas_lot`(IN idCOMPRA INT(11))
+BEGIN
+
+DECLARE intWHIN INTEGER(3);
+DECLARE intDAYS INTEGER(3);
+DECLARE dbM3 DOUBLE;
+DECLARE done INT DEFAULT 0;
+DECLARE datFEC DATE;
+DECLARE wh INTEGER(3);
+DECLARE idART INTEGER(11);
+DECLARE dbCOST DOUBLE;
+DECLARE m3value DOUBLE;
+DECLARE intLIFE INTEGER;
+DECLARE intPACK INTEGER;
+DECLARE intPromo DOUBLE;
+DECLARE whlc CURSOR FOR SELECT whin, days, m3 FROM warehouse_lc WHERE whout = @wh:= wh UNION ALL SELECT @wh, 0, 0 ;
+DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
+
+SELECT
+ Id_Article,
+ warehouse_id,
+ landing,
+ nz(Costefijo) + nz(Embalajefijo) + nz(Portefijo) + nz(Comisionfija),
+ life,
+ C.Packing,
+ (cm3_2(C.Id_Cubo, C.Id_Article) / 1000000) / C.Packing,
+ promo
+INTO idART , wh , datFEC , dbCOST , intLIFE, intPACK, m3value, intPromo FROM
+ Compres C
+ JOIN
+ Articles A USING (Id_Article)
+ JOIN
+ Tipos TP USING (tipo_id)
+ JOIN
+ Entradas E USING (Id_Entrada)
+ JOIN
+ travel tr ON tr.id = E.travel_id
+WHERE
+ Id_Compra = idCOMPRA;
+
+
+
+OPEN whlc;
+
+FETCH whlc INTO intWHIN, intDAYS, dbM3;
+
+WHILE NOT done DO
+
+SELECT idART , wh , datFEC , dbCOST , intLIFE, intPACK, m3value, intWHIN, intDAYS, dbM3, done, dbCOST + (m3value * dbM3);
+
+ INSERT INTO price_fixed(item_id,
+ rate_3,
+ rate_2,
+ date_start,
+ date_end,
+ warehouse_id)
+
+ SELECT idART,
+ round( (dbCOST + (m3value * dbM3)) / ((100 - t3 - intPromo )/100) , 2),
+ @tf2 := round((dbCOST + (m3value * dbM3)) / ((100 - t2 - intPromo)/100) ,2),
+ TIMESTAMPADD(DAY, intDAYS, datFEC),
+ TIMESTAMPADD(DAY, intLIFE, datFEC),
+ intWHIN
+ FROM tarifas
+ WHERE warehouse_id = intWHIN AND fecha <= TIMESTAMPADD(DAY, intDAYS, datFEC)
+ ORDER BY fecha DESC
+ LIMIT 1;
+
+FETCH whlc INTO intWHIN, intDAYS, dbM3;
+
+ END WHILE;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `buy_tarifas_recalcular_almacen` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `buy_tarifas_recalcular_almacen`(IN wh_id INT, IN datFEC DATE)
+BEGIN
+
+DECLARE done INT DEFAULT 0;
+DECLARE idE INT;
+
+DECLARE cur1 CURSOR FOR
+SELECT Id_Entrada
+FROM Entradas
+JOIN travel ON travel.id = travel_id
+WHERE landing >= datFEC AND wh_id IN (0,warehouse_id);
+
+DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
+
+OPEN cur1;
+
+REPEAT
+
+ FETCH cur1 INTO idE;
+
+ IF NOT done THEN
+
+ Call buy_tarifas_entry(idE);
+
+
+
+ END IF;
+
+
+UNTIL done END REPEAT;
+
+ CLOSE cur1;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `buy_tarifas_T3` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `buy_tarifas_T3`(IN idCOMPRA INT(11))
+BEGIN
+
+ DECLARE idENTRADA BIGINT;
+ DECLARE wh_id INT;
+
+ SELECT Id_Entrada, warehouse_id INTO idENTRADA, wh_id
+ FROM Compres
+ JOIN Entradas using(Id_Entrada)
+ JOIN travel ON travel.id = travel_id
+ WHERE idCOMPRA = Id_Compra;
+
+ CALL buy_tarifas_table(idENTRADA);
+
+ UPDATE Compres C
+ JOIN tblTARIFAS TC
+
+ SET
+ C.Tarifa3 = @t3:= C.Tarifa3,
+
+ C.Tarifa2 = @t2:= round(@t3 * (1 + ( (TC.t2 - TC.t3)/100) ),2),
+
+ C.Tarifa2 = @t2:= IF(@t2 <= @t3, @t3 + 0.01, @t2)
+
+ WHERE C.Id_Compra = idCOMPRA;
+
+ IF wh_id = 41 THEN -- Canarias
+
+ UPDATE Compres
+ SET Tarifa2 = Tarifa3
+ WHERE Id_Compra = idCOMPRA;
+
+ END IF;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `buy_tarifas_T3_pf` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `buy_tarifas_T3_pf`(IN idPRICE INT, IN t3 DOUBLE)
+BEGIN
+
+DECLARE idENTRADA BIGINT;
+DECLARE idCOMPRA BIGINT;
+DECLARE datFEC DATE;
+DECLARE wh INT;
+DECLARE idART BIGINT;
+
+SELECT date_start, warehouse_id, item_id INTO datFEC, wh, idART
+FROM price_fixed WHERE price_fixed_id = idPRICE;
+
+SELECT C.Id_Entrada, Id_Compra INTO idENTRADA, idCOMPRA
+FROM Compres C
+JOIN Entradas E using(Id_Entrada)
+JOIN travel TR on TR.id = E.travel_id
+WHERE Id_Article = idART
+AND wh IN (0, warehouse_id)
+AND Novincular = FALSE
+AND NOT Redada
+AND landing <= datFEC
+ORDER BY landing DESC
+LIMIT 1;
+
+CALL buy_tarifas_table(idENTRADA);
+
+SELECT
+
+ @t2:= round(t3 * (1 + ( (TC.t2 - TC.t3)/100) ),2) as rate_2b,
+
+ @t2:= IF(@t2 <= t3, t3 + 0.01, @t2) as rate_2
+
+FROM price_fixed PF
+ JOIN Compres C ON C.Id_Compra = idCOMPRA AND price_fixed_id = idPRICE
+ JOIN tblTARIFAS TC;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `buy_tarifas_table` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `buy_tarifas_table`(v_entry INT)
+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
+ ENGINE = MEMORY
+ SELECT * FROM
+ (
+ SELECT * FROM
+ (
+ SELECT t0, t1, t2, t3
+ FROM tarifas
+ WHERE fecha <= v_date
+ AND warehouse_id = v_wh
+ ORDER BY fecha DESC
+
+ ) sub
+ UNION ALL
+ SELECT t0, t1, t2, t3
+ FROM tblContadores
+ ) sub2
+ LIMIT 1;
+
+ -- pak 22/09/2015
+
+ UPDATE bi.rotacion r
+ JOIN Compres c ON c.Id_Article = r.Id_Article
+ SET cm3 = vn2008.cm3_unidad(c.Id_Compra)
+ WHERE Id_Entrada = v_entry
+ AND r.warehouse_id = v_wh;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `buy_transfer` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ DECLARE v_amount INT;
+ 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
+ JOIN Entradas e ON c.Id_Entrada = e.Id_Entrada
+ JOIN travel t ON t.id = e.travel_id
+ JOIN Articles a ON a.Id_Article = c.Id_Article
+ JOIN Tipos tp ON tp.tipo_id = a.tipo_id
+ WHERE c.Id_Compra = v_buy;
+
+ IF v_wh != v_holland_wh THEN
+ 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));
+
+ IF v_entry IS NULL THEN
+ LEAVE proc;
+ END IF;
+
+ -- Calcula la cantidad a trasladar
+
+ SELECT Id_Article INTO v_item
+ FROM Compres WHERE Id_Compra = v_buy;
+
+ SELECT IFNULL(SUM(amount), 0) INTO v_amount
+ FROM (
+ SELECT SUM(c.Cantidad) amount
+ FROM Compres c
+ JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada
+ JOIN travel t ON t.id = e.travel_id
+ WHERE c.Id_Article = v_item
+ AND t.landing = CURDATE()
+ AND t.warehouse_id = v_holland_wh
+ UNION ALL
+ SELECT -SUM(c.Cantidad)
+ FROM Compres c
+ JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada
+ JOIN travel t ON t.id = e.travel_id
+ WHERE c.Id_Article = v_item
+ AND t.shipment = CURDATE()
+ AND t.warehouse_id_out = v_holland_wh
+ UNION ALL
+ SELECT -SUM(Cantidad)
+ FROM Movimientos m
+ JOIN Tickets t ON t.Id_Ticket = m.Id_Ticket
+ WHERE m.Id_Article = v_item
+ AND t.Fecha = CURDATE()
+ AND t.warehouse_id = v_holland_wh
+ ) t;
+
+ IF v_amount <= 0 THEN
+ LEAVE proc;
+ END IF;
+
+ -- Crea la nueva línea de compra con el translado
+
+ INSERT INTO Compres (
+ Id_Article, Etiquetas, Cantidad, Id_Entrada,
+ Id_Cubo, Packing, grouping, caja, Costefijo, Portefijo,
+ Embalajefijo, Comisionfija, novincular, buy_edi_id)
+ SELECT
+ c.Id_Article,
+ v_amount DIV c.Packing,
+ v_amount,
+ v_entry,
+ c.Id_Cubo,
+ c.Packing,
+ c.grouping,
+ c.caja,
+ @cost := IFNULL(c.Costefijo, 0) + IFNULL(c.Comisionfija, 0) + IFNULL(c.Portefijo, 0),
+ @porte := ROUND((@cm3:= cm3_2(c.Id_Cubo, c.Id_Article)) * a.m3 / 1000000 / c.Packing, 3),
+ c.EmbalajeFijo,
+ @comision := ROUND(c.Costefijo * e.comision / 100, 3),
+ c.novincular,
+ c.buy_edi_id
+ FROM Compres c
+ JOIN Cubos cu ON cu.Id_Cubo = c.Id_Cubo
+ JOIN Entradas e ON e.Id_Entrada = v_entry
+ JOIN travel t ON t.id = e.travel_id
+ JOIN Agencias a ON t.agency_id = a.Id_Agencia
+ WHERE c.Id_Compra = v_buy;
+
+ CALL buy_tarifas (LAST_INSERT_ID());
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `Cajas_Saldo_Detalle` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `Cajas_Saldo_Detalle`()
+BEGIN
+
+ Select Proveedores.Id_Proveedor, Proveedor, Fecha, round(Importe) as Importe
+ from Proveedores
+ join
+ (
+ select Fecha, sub.Id_Proveedor, sum(Importe) as Importe
+ from
+
+ (
+
+ select round(sum(Importe),2) as Importe, TIMESTAMPADD(DAY,-1,CURDATE()) as Fecha, Id_Proveedor
+ from pago
+ join Proveedores using(Id_Proveedor)
+ where Fecha >= '2011-01-01'
+ and Id_Proveedor NOT IN (select id from empresa)
+ group by Id_Proveedor
+
+ union all
+
+ select IFNULL(-1 * round(sum(rv.Cantidad / if(Id_Moneda = 2,rate,1)),2),0) AS Vto, TIMESTAMPADD(DAY,-1,CURDATE()), proveedor_id
+ from recibida_vencimiento rv
+ join recibida r on r.id = rv.recibida_id
+ join reference_rate rr on rr.`date` = rv.fecha
+ join Proveedores P on P.Id_Proveedor = r.proveedor_id
+ join Paises PS on PS.Id = P.pais_id
+ where rv.fecha between '2011-01-01' and CURDATE()-1
+ and Id_Proveedor NOT IN (select id from empresa)
+ group by proveedor_id
+
+ union all
+
+ select -1 * round(rv.Cantidad / if(Id_Moneda = 2,currate(),1),2) AS Vto, rv.fecha, proveedor_id
+ from recibida_vencimiento rv
+ join recibida r on r.id = rv.recibida_id
+ join Proveedores P on P.Id_Proveedor = r.proveedor_id
+ join Paises PS on PS.Id = P.pais_id
+ where rv.fecha >= CURDATE()
+ and Id_Proveedor NOT IN (select id from empresa)
+
+ union all
+
+ select @remesas:= @pago:= @saldo:= 0.0000, curdate(), @prov:= 0) sub
+ group by Fecha,Id_Proveedor
+ ) sub2 using(Id_Proveedor)
+ having Importe < -100
+ ;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `CalculoRemesas` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `CalculoRemesas`(IN vFechaRemesa DATE)
+BEGIN
+
+
+DROP TEMPORARY TABLE IF EXISTS TMP_REMESAS;
+CREATE TEMPORARY TABLE TMP_REMESAS SELECT
+ CONCAT(p.NIF,REPEAT('0', 12-LENGTH(p.NIF))) as CIF1,
+ cli.Id_Cliente,
+ cli.Cliente,
+ cli.`IF` as NIF ,
+ cli.CC,
+ c.PaymentDate as Vencimiento,
+ 0 ImporteFac,
+ cast(c.Recibo as decimal(10,2)) as ImporteRec,
+ 0 as ImporteActual,
+ c.empresa_id,
+ cli.RazonSocial,
+ cast(c.Recibo as decimal(10,2)) as ImporteTotal,
+ cast(c.Recibo as decimal(10,2)) as Saldo,
+ p.Proveedor as Empresa,
+ e.abbreviation as EMP,
+ cli.cuenta,
+ CONCAT(cc_to_iban(CC),CC) AS Iban,
+ CONVERT(left(CC,4),UNSIGNED INT) AS nrbe ,
+ IF(c.empresa_id=442,sepavnl,sepafth) as SEPA,
+ IF(c.empresa_id=442,corevnl,corefth) as RecibidoCORE
+
+ FROM Clientes cli
+ JOIN
+ (SELECT empresa_id,
+ c.Id_Cliente,
+ sum(Importe) as Recibo,
+ IF((c.Vencimiento + graceDays) mod 30.001 <= day(vFechaRemesa)
+ ,TIMESTAMPADD(DAY, (c.Vencimiento + graceDays) MOD 30.001, LAST_DAY(TIMESTAMPADD(MONTH,-1,vFechaRemesa)))
+ ,TIMESTAMPADD(DAY, (c.Vencimiento + graceDays) MOD 30.001, LAST_DAY(TIMESTAMPADD(MONTH,-2,vFechaRemesa)))
+ ) as PaymentDate
+ FROM Clientes c
+ JOIN pay_met pm on pm.id = pay_met_id
+ JOIN
+ (
+ SELECT empresa_id, Id_Cliente, Importe
+ FROM Facturas f
+ JOIN Clientes c using(Id_Cliente)
+ JOIN pay_met pm on pm.id = pay_met_id
+ WHERE IF(Importe > 0,paymentday(Fecha,c.Vencimiento + graceDays), Fecha) <= vFechaRemesa
+ AND pay_met_id = 4 AND deudaviva
+
+ UNION ALL
+
+ SELECT empresa_id, Id_Cliente, - Entregado
+ FROM Recibos r
+ JOIN Clientes c using(Id_Cliente)
+ JOIN pay_met pm on pm.id = pay_met_id
+ WHERE pay_met_id = 4 AND deudaviva
+
+ ) sub using(Id_Cliente)
+ GROUP BY empresa_id, Id_Cliente
+ HAVING Recibo > 10
+ ) c on c.Id_Cliente = cli.Id_Cliente
+ JOIN Proveedores p on p.Id_Proveedor = c.empresa_id
+ JOIN empresa e on e.id = c.empresa_id;
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `calling` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `calling`()
+BEGIN
+
+DROP TEMPORARY TABLE IF EXISTS Agenda, Agenda2;
+
+
+ CREATE TEMPORARY TABLE IF NOT EXISTS Agenda (Telefono varchar(15) PRIMARY KEY, Cliente VARCHAR(45));
+
+CREATE TEMPORARY TABLE IF NOT EXISTS Agenda2 LIKE Agenda;
+
+REPLACE Agenda(Telefono, Cliente)
+ SELECT Telefono, Nombre from v_Agenda2;
+
+
+REPLACE Agenda(Telefono, Cliente)
+ SELECT DISTINCT src, clid FROM cdr WHERE src < 6000 AND clid NOT LIKE '%device%'
+ AND calldate > TIMESTAMPADD(DAY, -7,CURDATE()) ;
+
+
+
+INSERT INTO Agenda2(Telefono, Cliente)
+ SELECT Telefono, Cliente FROM Agenda;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `camiones` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `camiones`(vWarehouse INT, vDate DATE)
+BEGIN
+ SELECT Temperatura
+ ,ROUND(SUM(Etiquetas * cm3_2(Id_Cubo, Id_Article))) AS cm3
+ ,ROUND(SUM(IF(scanned,Etiquetas,0) * cm3_2(Id_Cubo, Id_Article))) AS cm3s
+ ,ROUND(SUM(Vida * cm3_2(Id_Cubo, Id_Article))) AS cm3e
+ FROM (
+ SELECT t.Temperatura, c.Etiquetas, c.Id_Cubo, c.Id_Article, b.scanned, c.Vida
+ FROM Compres c
+ LEFT JOIN buy_edi b ON b.id = c.buy_edi_id
+ JOIN Articles a ON a.Id_Article = c.Id_Article
+ JOIN Tipos t ON t.tipo_id = a.tipo_id
+ JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada
+ JOIN travel tr ON tr.id = e.travel_id
+ WHERE tr.warehouse_id = vWarehouse
+ AND tr.landing = vDate
+ ) sub
+ GROUP BY Temperatura;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `Campaigns_Generator` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `Campaigns_Generator`(IN datFEC DATE, IN intDAYS INT, IN intIMP INT)
+BEGIN
+DELETE FROM Campaigns;
+
+INSERT INTO Campaigns(Id_Cliente, Notas)
+SELECT T.Id_Cliente, CONCAT('Consumo año anterior: ',FORMAT(SUM(M.Cantidad * M.Preu * (100 - M.Descuento) / 100), 0), ' € ') as Total
+FROM Movimientos M
+INNER JOIN Tickets T ON T.Id_Ticket = M.Id_Ticket
+WHERE Date(T.Fecha) BETWEEN ADDDATE(datFEC,-1 * intDAYS) AND datFEC
+GROUP BY T.Id_Cliente;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `Campaigns_GeneratorKK` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `Campaigns_GeneratorKK`(IN datFEC DATE, IN intDAYS INT, IN intIMP INT)
+BEGIN
+DELETE FROM Campaigns;
+
+INSERT INTO Campaigns(Id_Cliente, Notas)
+SELECT T.Id_Cliente, CONCAT('Consumo año anterior: ',FORMAT(SUM(M.Cantidad * M.Preu * (100 - M.Descuento) / 100), 0), ' € ') as Total
+FROM Movimientos M
+INNER JOIN Tickets T ON T.Id_Ticket = M.Id_Ticket
+WHERE Date(T.Fecha) BETWEEN ADDDATE(datFEC,-1 * intDAYS) AND datFEC
+GROUP BY T.Id_Cliente;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `Canariaskk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `Canariaskk`(IN datFEC DATE, IN idWH INT , IN idEMP INT)
+BEGIN
+
+DECLARE idTICKET DOUBLE;
+
+
+CALL ticket_new_complet(4712, datFEC, idWH , 20, idEMP, NULL, NULL,NULL, idTICKET);
+
+
+INSERT INTO Movimientos (Id_Ticket, Id_Article, Concepte, Cantidad, Preu, PrecioFijado)
+SELECT idTICKET, 95, CONCAT(Codintrastat, ' : ', IF(Abreviatura = 'XYZ', 'NAC', Abreviatura), ' : ' , Nombotanic), sum(Cantidad), Preu, TRUE
+FROM Articles INNER JOIN Movimientos ON Articles.Id_Article = Movimientos.Id_Article
+ INNER JOIN Tickets ON Movimientos.Id_Ticket = Tickets.Id_Ticket
+ INNER JOIN Consignatarios ON Tickets.Id_Consigna = Consignatarios.Id_Consigna
+ INNER JOIN province ON Consignatarios.province_id = province.province_id
+ INNER JOIN Origen ON Articles.id_origen = Origen.id
+WHERE date(Tickets.Fecha) = datFEC AND province.name IN ('SANTA CRUZ DE TENERIFE','LAS PALMAS DE GRAN CANARIA')
+GROUP BY Nombotanic, Preu;
+
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `check_table_existence` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `check_table_existence`(IN table_name CHAR(64))
+BEGIN
+ DECLARE CONTINUE HANDLER FOR SQLSTATE '42S02' SET @err = 1;
+ SET @err = 0;
+ SET @table_name = table_name;
+ SET @sql_query = CONCAT('SELECT NULL FROM ',@table_name);
+ PREPARE stmt1 FROM @sql_query;
+ IF (@err = 1) THEN
+ SET @table_exists = 0;
+ ELSE
+ SET @table_exists = 1;
+ DEALLOCATE PREPARE stmt1;
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `clean` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `clean`(IN v_full TINYINT(1))
+BEGIN
+ DECLARE v_date DATETIME;
+ DECLARE v_date_fut DATE;
+ DECLARE v_date18 DATETIME;
+ DECLARE v_date8 DATE;
+ 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());
+ SET v_date6 = TIMESTAMPADD(DAY, -6,CURDATE());
+
+ 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)
+ INTO @id
+ FROM Tickets_dits
+ 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;
+ DELETE FROM log_articles WHERE ODBC_DATE < v_date;
+ DELETE FROM sms WHERE DATE_ODBC < v_date18;
+ DELETE FROM Movimientos_mark WHERE odbc_date < v_date;
+ DELETE FROM Splits WHERE Fecha < v_date18;
+ DELETE ts FROM Tickets_stack ts JOIN Tickets t ON ts.Id_Ticket = t.Id_Ticket WHERE t.Fecha < v_date;
+ DELETE tobs FROM ticket_observation tobs JOIN Tickets t ON tobs.Id_Ticket = t.Id_Ticket WHERE t.Fecha < v_date;
+ DELETE tobs FROM movement_label tobs JOIN Movimientos m ON tobs.Id_Movimiento = m.Id_Movimiento
+ JOIN Tickets t ON m.Id_Ticket = t.Id_Ticket WHERE t.Fecha < v_date;
+ DELETE FROM chat WHERE odbc_date < v_date;
+ DELETE FROM Extractos WHERE Fecha < v_date;
+ DELETE FROM Remesas WHERE `Fecha Remesa` < v_date18;
+ DELETE FROM sharingcart where datEND < v_date;
+ DELETE FROM sharingclient where datEND < v_date;
+ DELETE FROM Stockcontrol WHERE Datestart < v_date18;
+ DELETE FROM bi.comparativa_clientes WHERE Fecha < v_date18;
+ DELETE FROM reference_rate WHERE date < v_date18;
+
+ SELECT MAX(inter_id)
+ INTO @id
+ FROM vncontrol.inter
+ 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;
+ DELETE FROM cache.departure_limit WHERE Fecha < TIMESTAMPADD(MONTH,-1,CURDATE());
+ DELETE cm FROM Compres_mark cm
+ JOIN Compres c ON c.Id_Compra = cm.Id_Compra
+ 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 co FROM Compres_ok co JOIN Compres c ON c.Id_Compra = co.Id_Compra
+ 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);
+ SET v_date_fut = TIMESTAMPADD(MONTH, 3, v_date);
+ IF v_date_fut > '2000-12-31' THEN
+ SET v_date_fut = '2000-12-30';
+ END IF;
+
+ IF v_full THEN
+
+ DELETE FROM Tickets
+ WHERE (Fecha <= v_date AND Fecha NOT IN ('2000-01-01','2000-01-02'))
+ OR (Fecha BETWEEN v_date_fut AND '2000-12-31');
+
+ DELETE e.* FROM Entradas e
+ LEFT JOIN recibida_entrada re ON e.Id_Entrada = re.Id_Entrada
+ WHERE travel_id IS NULL
+ 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
+(
+SELECT DISTINCT t.Id_Ticket
+FROM Tickets t
+LEFT JOIN Movimientos m using(Id_Ticket)
+WHERE Id_Movimiento IS NULL
+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
+ SET empresa_id = 965
+ 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
+ FROM vn.workerTeam
+ GROUP BY team,user
+ HAVING duplicated
+ ) d ON d.team = w.team AND d.user = w.user AND d.id != w.id;
+
+INSERT INTO vn2008.daily_task_log(consulta) VALUES('clean END');
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `clean_launcher` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `clean_launcher`()
+BEGIN
+
+ call vn2008.clean(TRUE);
+ call vn.clean();
+ call vncontrol.clean();
+ call bi.clean();
+ call cache.clean();
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `Clientes_Calidad` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `Clientes_Calidad`()
+BEGIN
+
+ DECLARE intMONTH INTEGER;
+ DECLARE intYEAR INTEGER;
+
+ SET intYEAR = YEAR(Curdate());
+ SET intMONTH = MONTH(curdate())-1;
+
+ IF intMONTH = 0 THEN
+
+ SET intYEAR = intYEAR -1;
+ SET intMONTH = 12;
+
+ END IF;
+
+ UPDATE Clientes
+ SET
+ Calidad = 0;
+
+ TRUNCATE bi.calidad_detalle;
+
+ INSERT INTO bi.calidad_detalle(Id_Cliente,calidad_parametros_id,valor)
+ SELECT Id_Cliente, calidad_parametros_id, 0
+ 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)
+ FROM (
+ SELECT Id_Cliente, round(sum(importe)/1000) as Consumo
+ from bs.ventas v
+ join vn2008.time t on t.date = v.fecha
+ where year =intYEAR and month = intMONTH
+ 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
+ THEN 2
+
+ WHEN 1 -- contado
+ THEN -1
+
+ WHEN 5 -- tarjeta
+
+ THEN 1
+
+ WHEN 7 -- tarjeta
+
+ THEN 1
+
+ WHEN 6 -- contrareembolso
+ 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)
+ WHEN 0 THEN 2
+ WHEN 0.01 THEN 1
+ WHEN 0.02 THEN 0
+ WHEN 0.03 THEN -3
+ WHEN 0.04 THEN -6
+ ELSE -9
+ 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
+ FROM
+ ( SELECT Id_Cliente, sum(sub.Id_Trabajador = 4) / count(sub.Id_Trabajador) as Webs
+ FROM Tickets
+ JOIN
+ (SELECT Id_Ticket, Id_Trabajador
+ 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
+ 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
+ FROM
+ (SELECT Id_Cliente, MIN(Fecha) as Inicio
+ FROM Tickets
+ WHERE Fecha > '2001-01-01'
+ GROUP BY Id_Cliente
+ HAVING Inicio >= TIMESTAMPADD(DAY,-30,CURDATE())) sub ;
+
+ -- Ahora actualizamos la tabla Clientes
+
+ UPDATE Clientes
+ JOIN
+ (SELECT
+ Id_Cliente, SUM(valor) AS valoracion
+ FROM
+ bi.calidad_detalle
+ GROUP BY Id_Cliente) sub USING (Id_Cliente)
+ SET
+ 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
+ WHERE
+ u.role = 2
+ AND id NOT IN (SELECT DISTINCT
+ c.Id_Cliente
+ FROM
+ Clientes c LEFT JOIN Tickets t ON t.Id_Cliente = c.Id_Cliente
+ WHERE
+ Created > TIMESTAMPADD(MONTH, - 2, CURDATE()) OR
+ Fecha > TIMESTAMPADD(MONTH, - 2, CURDATE()));
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `Clientes_Calidad_detalle` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `Clientes_Calidad_detalle`(IN IdC INT)
+BEGIN
+
+
+SELECT descripcion Concepto, valor Puntos
+FROM bi.calidad_parametros
+JOIN bi.calidad_detalle using(calidad_parametros_id)
+WHERE Id_Cliente = idC;
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `clientes_saldos` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `clientes_saldos`()
+BEGIN
+
+
+
+DROP TEMPORARY TABLE IF EXISTS clientes_pendientes;
+
+CREATE TEMPORARY TABLE clientes_pendientes
+( Id_Cliente INT NOT NULL
+, empresa_id INT NOT NULL
+, saldo double NOT NULL
+, PRIMARY KEY(Id_Cliente, empresa_id));
+
+INSERT INTO clientes_pendientes
+SELECT Id_Cliente, empresa_id, sum(importe) as saldo
+ FROM
+ (
+ SELECT
+ Id_Cliente,
+ empresa_id,
+ - Entregado as importe
+
+ FROM
+ Recibos
+ JOIN
+ Clientes USING(Id_Cliente)
+ JOIN
+ pay_met p on p.id = pay_met_id
+ WHERE
+ deudaviva
+
+
+ UNION ALL
+
+
+ SELECT
+ Id_Cliente,
+ empresa_id,
+ Importe
+
+ FROM
+ Facturas
+ JOIN
+ Clientes USING(Id_Cliente)
+ JOIN
+ pay_met p on p.id = pay_met_id
+ WHERE
+ deudaviva
+
+
+ ) sub
+ GROUP BY empresa_id, Id_Cliente
+ having saldo > 0;
+
+
+
+ DROP TEMPORARY TABLE IF EXISTS cobros_pendientes;
+
+ CREATE TEMPORARY TABLE cobros_pendientes
+ (Id_Cliente INT
+ ,fecha DATE
+ ,empresa_id INT NOT NULL
+ ,saldo DOUBLE
+ ,PRIMARY KEY(Id_Cliente, empresa_id));
+
+
+
+ INSERT INTO cobros_pendientes(Id_Cliente
+ , fecha
+ , empresa_id
+ , saldo)
+
+
+
+ SELECT cp.Id_Cliente,
+ CASE (vencimiento > 30)
+
+ WHEN TRUE THEN
+
+ timestampadd(DAY,vencimiento,maxFecha)
+
+ ELSE
+
+ timestampadd(
+ DAY
+ ,vencimiento - day(maxFecha)
+ ,timestampadd(MONTH,1,maxFecha)
+ )
+
+ END as fecha,
+ cp.empresa_id,
+ cp.saldo
+ FROM clientes_pendientes cp
+ JOIN Clientes USING(Id_Cliente)
+ JOIN ( SELECT
+ max(Fecha) as maxFecha,
+ Id_Cliente,
+ empresa_id
+ FROM
+ Facturas
+ GROUP BY
+ Id_Cliente,
+ empresa_id
+ ) mf on mf.Id_Cliente = cp.Id_Cliente
+ AND mf.empresa_id = cp.empresa_id;
+
+
+ SELECT * FROM cobros_pendientes;
+
+ DROP TEMPORARY TABLE cobros_pendientes;
+ DROP TEMPORARY TABLE clientes_pendientes;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `clientManaGrouped` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `clientManaGrouped`(vClient INT)
+BEGIN
+
+ SELECT 'Tickets' as Grupo, CAST(sum(s.quantity * Valor) AS DECIMAL(10,2)) as Mana
+ FROM vn.ticket t
+ JOIN vn.address a ON a.id = t.addressFk
+ JOIN vn.sale s on s.ticketFk = t.id
+ JOIN vn2008.Movimientos_componentes mc on mc.Id_Movimiento = s.id
+ WHERE Id_Componente IN (37, 39)
+ AND t.shipped >= '2016-01-01'
+ AND t.clientFk = vClient
+
+ UNION ALL
+
+ SELECT 'Recibos' as Grupo, - sum(Entregado) as Mana
+ FROM vn2008.Recibos r
+ JOIN vn2008.Clientes c using(Id_Cliente)
+ WHERE r.Id_Banco = 66
+ AND r.Fechacobro >= '2016-01-01'
+ AND c.Id_Cliente = vClient
+
+ UNION ALL
+
+ 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á
+ AND g.Fecha > '2016-01-01'
+ AND c.Id_Cliente = vClient;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `clonWeeklyTickets` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `clonWeeklyTickets`(IN vWeek INT)
+BEGIN
+ DECLARE done BIT DEFAULT 0;
+ DECLARE vLanding DATE;
+ DECLARE vShipment DATE;
+ DECLARE vWarehouse INT;
+ DECLARE vTicket INT;
+ DECLARE vWeekDay INT;
+ DECLARE vClient INT;
+ DECLARE vEmpresa INT;
+ DECLARE vConsignatario INT;
+ DECLARE vAgencia INT;
+ DECLARE vNewTicket INT;
+ DECLARE vYear INT;
+
+ DECLARE rsTicket CURSOR FOR
+ SELECT tt.Id_Ticket, weekDay, Id_Cliente, warehouse_id, empresa_id, Id_Consigna, Id_Agencia
+ FROM Tickets_turno tt
+ JOIN Tickets t ON tt.Id_Ticket = t.Id_Ticket;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
+
+ SET done = 0;
+ SET vYear = YEAR(CURDATE()) + IF(vWeek < WEEK(CURDATE()),1, 0);
+
+ OPEN rsTicket;
+
+ FETCH rsTicket INTO vTicket, vWeekDay, vClient, vWarehouse, vEmpresa, vConsignatario, vAgencia;
+
+ WHILE NOT done DO
+
+ SELECT date INTO vShipment
+ FROM time
+ 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
+
+ IF (SELECT COUNT(*) FROM Agencias WHERE Id_Agencia = vAgencia AND Agencia LIKE '%turno%') THEN
+ SET vAgencia = NULL;
+ END IF;
+
+ CALL vn.ticketCreate(vClient, vShipment, vWarehouse, vEmpresa, vConsignatario, vAgencia, NULL, vLanding, vNewTicket);
+
+ INSERT INTO Movimientos (Id_Ticket, Id_Article, Concepte, Cantidad, Preu, Descuento, CostFixat, PrecioFijado)
+ SELECT vNewTicket, Id_Article, Concepte, Cantidad, Preu, Descuento, CostFixat, PrecioFijado
+ FROM Movimientos WHERE Id_Ticket = vTicket;
+
+ INSERT INTO Ordenes (orden,datorden,datticket,codvendedor,codcomprador,cantidad,preciomax,preu,id_article,id_cliente,comentario,
+ ok, total,datcompra,ko,id_movimiento)
+ SELECT o.orden,o.datorden,vShipment,o.codvendedor,o.codcomprador,o.cantidad,o.preciomax,o.preu,o.id_article,o.id_cliente,o.comentario,
+ o.ok, o.total,o.datcompra,o.ko,m2.Id_Movimiento
+ FROM Movimientos m JOIN Ordenes o ON o.Id_Movimiento = m.Id_Movimiento
+ JOIN Movimientos m2 ON m.Concepte = m2.Concepte AND m.Cantidad = m2.Cantidad AND m.Id_Article = m2.Id_Article
+ WHERE m.Id_Ticket = vTicket AND m2.Id_Ticket = vNewTicket;
+
+ INSERT INTO ticket_observation(Id_Ticket,observation_type_id,text) VALUES(vNewTicket,4,CONCAT('turno desde ticket: ',vTicket))
+ ON DUPLICATE KEY UPDATE text = CONCAT(ticket_observation.text,VALUES(text),' ');
+
+ CALL bionic_calc_clon(vNewTicket);
+ END IF;
+ FETCH rsTicket INTO vTicket, vWeekDay, vClient, vWarehouse, vEmpresa, vConsignatario, vAgencia;
+
+ END WHILE;
+
+ CLOSE rsTicket;
+
+ DROP TEMPORARY TABLE IF EXISTS travel_tree_shipment;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `cobro` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `cobro`(IN datFEC DATE
+ , IN idCLI INT
+ , IN dblIMPORTE DOUBLE
+ , IN idCAJA INT
+ , IN idPAYMET INT
+ , IN strCONCEPTO VARCHAR(40)
+ , IN idEMP INT
+ , IN idWH INT
+ , IN idTRABAJADOR INT)
+BEGIN
+
+ DECLARE bolCASH BOOLEAN;
+ DECLARE cuenta_banco BIGINT;
+ 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
+
+ SELECT Cuenta INTO cuenta_banco FROM Bancos WHERE Id_Banco = idCAJA;
+ SELECT Cuenta INTO cuenta_cliente FROM Clientes WHERE Id_Cliente = idCLI;
+ SELECT MAX(asien)+1 INTO max_asien FROM XDiario;
+
+ INSERT INTO XDiario (ASIEN,FECHA,SUBCTA,CONTRA,CONCEPTO,EURODEBE,EUROHABER,empresa_id)
+ SELECT max_asien,datFEC,SUBCTA,CONTRA,strCONCEPTO,EURODEBE,EUROHABER,idEMP FROM
+ (
+ SELECT cuenta_banco SUBCTA, cuenta_cliente CONTRA, 0 EURODEBE, dblIMPORTE EUROHABER
+ UNION ALL
+ SELECT cuenta_cliente SUBCTA, cuenta_banco CONTRA, dblIMPORTE EURODEBE, 0 EUROHABER
+ ) gf;
+
+
+ END IF;
+
+
+ -- CAJERA
+
+ INSERT INTO Cajas(Id_Trabajador
+ , Id_Banco
+ , Entrada
+ , Concepto
+ , Cajafecha
+ , Serie
+ , Partida
+ , Numero
+ ,empresa_id
+ ,warehouse_id)
+
+ VALUES ( idTRABAJADOR
+ , idCAJA
+ , dblIMPORTE
+ , strCONCEPTO
+ , datFEC
+ , 'A'
+ , TRUE
+ , idCLI
+ , idEMP
+ , idWH );
+
+
+
+ -- RECIBO
+ INSERT INTO Recibos(Entregado
+ ,Fechacobro
+ ,Id_Trabajador
+ ,Id_Banco
+ ,Id_Cliente
+ ,Id_Factura
+ ,empresa_id)
+
+ VALUES ( dblIMPORTE
+ , datFEC
+ , idTRABAJADOR
+ , idCAJA
+ , idCLI
+ , strCONCEPTO
+ , idEMP);
+
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `colas_launcher` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `colas_launcher`()
+BEGIN
+
+ INSERT INTO vn2008.Colas(Id_Informe,Id_Trabajador) VALUES (11,57);
+ INSERT INTO vn2008.Colas(Id_Informe) VALUES (16);
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `comercial_caducado` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+
+ 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
+ (
+ select Id_Cliente, sum(Importe) as Saldo
+ from
+ (
+ select Id_Cliente, Importe from Facturas
+ union all
+ select Id_Cliente, - Entregado from Recibos
+ ) sub
+ group by Id_Cliente
+ ) sindeuda on sindeuda.Id_Cliente = c.Id_Cliente
+
+ left join
+ (
+ select distinct Id_Cliente
+ from Facturas
+ where Fecha BETWEEN CURDATE() - INTERVAL 12 MONTH AND CURDATE()
+ ) f on f.Id_Cliente = c.Id_Cliente
+
+ left join
+ (
+ select distinct Id_Cliente
+ from Tickets
+ where Fecha between CURDATE() - INTERVAL 2 DAY AND CURDATE() + INTERVAL 200 DAY
+
+ ) 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
+
+
+ ) sub using(Id_Cliente)
+
+ set Id_Trabajador = 87 ;-- Alfredo Giner;
+
+end if;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `comparativa_clientes` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `comparativa_clientes`(IN v_date DATE,IN i_vendedor INT, IN i_comprador INT, IN i_tipo INT, IN i_wh INT, IN days INT)
+BEGIN
+
+DECLARE date_cyear_ini DATETIME;
+DECLARE date_cyear_end DATETIME;
+DECLARE date_lyear_ini DATETIME;
+DECLARE date_lyear_end DATETIME;
+DECLARE week_count TINYINT DEFAULT 7;
+
+
+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');
+SET date_lyear_ini = TIMESTAMPADD(DAY,-364,date_cyear_ini);
+SET date_lyear_end = TIMESTAMPADD(DAY,-364,date_cyear_end);
+
+ CALL article ();
+
+ INSERT INTO article_inventory (article_id)
+ SELECT Id_Article
+ FROM Articles a
+ JOIN Tipos t ON t.tipo_id = a.tipo_id
+ LEFT JOIN reinos r ON r.id = t.reino_id
+ WHERE (i_tipo = 0 OR a.tipo_id = i_tipo)
+ AND r.display <> 0;
+
+ IF v_date < CURDATE()
+ THEN
+ ALTER TABLE `article_inventory`
+ ADD `buy_id` INT NOT NULL DEFAULT 0,
+ ADD `buy_date` DATE DEFAULT '2000-01-01',
+ ADD `life` INT DEFAULT 0,
+ ADD `sd` INT DEFAULT 0,
+ ADD `avalaible` INT DEFAULT 0,
+ ADD `visible` INT DEFAULT 0;
+
+ ELSE
+ CALL inventario_multiple_2 (v_date, i_wh, days);
+ CALL article_multiple_buy (v_date, i_wh);
+ CALL article_multiple_buy_date (v_date, i_wh);
+ END IF;
+
+
+
+DROP TEMPORARY TABLE IF EXISTS clientcom;
+CREATE TEMPORARY TABLE clientcom
+SELECT vnperiod(Fecha) as period
+ ,Id_Article
+ , Cantidad
+ , Preu
+ , CS.Id_Cliente
+ FROM vn2008.Movimientos M
+ JOIN vn2008.Tickets T USING (Id_Ticket)
+ JOIN vn2008.Consignatarios CS USING(Id_Consigna)
+ JOIN vn2008.Clientes C ON C.Id_Cliente = CS.Id_Cliente
+ JOIN vn2008.Articles a USING (Id_Article)
+ LEFT JOIN vn2008.Tipos tp ON tp.tipo_id = a.tipo_id
+ LEFT JOIN vn2008.reinos r ON r.id = tp.reino_id
+ WHERE (T.Fecha BETWEEN date_cyear_ini AND date_cyear_end or T.Fecha BETWEEN date_lyear_ini AND date_lyear_end)
+ AND T.Id_Cliente NOT IN(400,200)
+ AND i_vendedor IN (0, C.Id_Trabajador )
+ AND i_comprador IN (0, tp.Id_Trabajador)
+ AND i_tipo IN (0,tp.tipo_id)
+ AND r.display <> 0 AND T.warehouse_id NOT IN (0,13)
+ ORDER BY period;
+
+DROP TEMPORARY TABLE IF EXISTS clientcom_periods;
+CREATE TEMPORARY TABLE clientcom_periods
+SELECT period, @order:= @order + 1 as period_order
+FROM (
+SELECT DISTINCT period, @order:=0
+FROM clientcom
+ORDER BY period) sub;
+
+SELECT cc.Id_Article
+ , cc.Id_Cliente
+ ,CAST(SUM(IF(period_order = 1, cc.Cantidad, 0)) AS SIGNED) AS lweek1
+ ,CAST(SUM(IF(period_order = 2, cc.Cantidad, 0)) AS SIGNED) AS lweek2
+ ,CAST(SUM(IF(period_order = 3, cc.Cantidad, 0)) AS SIGNED) AS lweek3
+ ,CAST(SUM(IF(period_order = 4, cc.Cantidad, 0)) AS SIGNED) AS lweek4
+ ,CAST(SUM(IF(period_order = 5, cc.Cantidad, 0)) AS SIGNED) AS lweek5
+ ,CAST(SUM(IF(period_order = 6, cc.Cantidad, 0)) AS SIGNED) AS lweek6
+ ,CAST(SUM(IF(period_order = 7, cc.Cantidad, 0)) AS SIGNED) AS lweek7
+ ,CAST(SUM(IF(period_order = 7+1, cc.Cantidad, 0)) AS SIGNED) AS cweek1
+ ,CAST(SUM(IF(period_order = 7+2, cc.Cantidad, 0)) AS SIGNED) AS cweek2
+ ,CAST(SUM(IF(period_order = 7+3, cc.Cantidad, 0)) AS SIGNED) AS cweek3
+ ,CAST(SUM(IF(period_order = 7+4, cc.Cantidad, 0)) AS SIGNED) AS cweek4
+ ,CAST(SUM(IF(period_order = 7+5, cc.Cantidad, 0)) AS SIGNED) AS cweek5
+ ,CAST(SUM(IF(period_order = 7+6, cc.Cantidad, 0)) AS SIGNED) AS cweek6
+ ,CAST(SUM(IF(period_order = 7+7, cc.Cantidad, 0)) AS SIGNED) AS cweek7
+
+ ,CAST(SUM(IF(period_order = 1, cc.Cantidad* Preu, 0)) AS SIGNED) AS lprice1
+ ,CAST(SUM(IF(period_order = 2, cc.Cantidad* Preu, 0)) AS SIGNED) AS lprice2
+ ,CAST(SUM(IF(period_order = 3, cc.Cantidad* Preu, 0)) AS SIGNED) AS lprice3
+ ,CAST(SUM(IF(period_order = 4, cc.Cantidad* Preu, 0)) AS SIGNED) AS lprice4
+ ,CAST(SUM(IF(period_order = 5, cc.Cantidad* Preu, 0)) AS SIGNED) AS lprice5
+ ,CAST(SUM(IF(period_order = 6, cc.Cantidad* Preu, 0)) AS SIGNED) AS lprice6
+ ,CAST(SUM(IF(period_order = 7, cc.Cantidad* Preu, 0)) AS SIGNED) AS lprice7
+ ,CAST(SUM(IF(period_order = 7+1, cc.Cantidad* Preu, 0)) AS SIGNED) AS cprice1
+ ,CAST(SUM(IF(period_order = 7+2, cc.Cantidad* Preu, 0)) AS SIGNED) AS cprice2
+ ,CAST(SUM(IF(period_order = 7+3, cc.Cantidad* Preu, 0)) AS SIGNED) AS cprice3
+ ,CAST(SUM(IF(period_order = 7+4, cc.Cantidad* Preu, 0)) AS SIGNED) AS cprice4
+ ,CAST(SUM(IF(period_order = 7+5, cc.Cantidad* Preu, 0)) AS SIGNED) AS cprice5
+ ,CAST(SUM(IF(period_order = 7+6, cc.Cantidad* Preu, 0)) AS SIGNED) AS cprice6
+ ,CAST(SUM(IF(period_order = 7+7, cc.Cantidad* Preu, 0)) AS SIGNED) AS cprice7
+
+ ,A.Article
+ ,A.Medida
+ ,A.Color
+ ,A.tipo_id
+ ,C.Cliente
+ ,T1.CodigoTrabajador as Comercial
+ ,O.Abreviatura as Origen
+ ,TT.ball as Tinta
+ ,r.reino as Reino
+ ,TP.Id_Tipo
+ ,JF.CodigoTrabajador as Equipo
+ ,T2.CodigoTrabajador as Comprador
+ ,TT.orden as Orden_Color
+
+,i.buy_id
+, i.life
+, CAST(IFNULL(i.sd,0) AS SIGNED) as sd
+,CAST(i.avalaible AS SIGNED) avalaible
+, CAST(i.visible AS SIGNED) visible
+, i.buy_date
+,P.Proveedor
+
+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
+JOIN Tipos TP ON TP.tipo_id = A.tipo_id
+JOIN reinos r ON r.id = TP.reino_id
+JOIN Trabajadores T2 ON T2.Id_Trabajador = TP.Id_Trabajador
+
+GROUP BY Id_Article,Id_Cliente;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `comparativa_clienteskk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `comparativa_clienteskk`(IN v_date DATE,IN i_vendedor INT, IN i_comprador INT, IN i_tipo INT, IN i_wh INT, IN days INT)
+BEGIN
+
+DECLARE date_cyear_ini DATETIME;
+DECLARE date_cyear_end DATETIME;
+DECLARE date_lyear_ini DATETIME;
+DECLARE date_lyear_end DATETIME;
+DECLARE week_count TINYINT DEFAULT 7;
+
+
+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');
+SET date_lyear_ini = TIMESTAMPADD(DAY,-364,date_cyear_ini);
+SET date_lyear_end = TIMESTAMPADD(DAY,-364,date_cyear_end);
+
+ CALL article ();
+
+ INSERT INTO article_inventory (article_id)
+ SELECT Id_Article FROM Articles a
+ JOIN Tipos t using(tipo_id)
+ WHERE i_tipo = 0 OR a.tipo_id = i_tipo
+ AND reino_id <> 6;
+
+ IF v_date < CURDATE()
+ THEN
+ ALTER TABLE `article_inventory`
+ ADD `buy_id` INT NOT NULL DEFAULT 0,
+ ADD `buy_date` DATE DEFAULT '2000-01-01',
+ ADD `life` INT DEFAULT 0,
+ ADD `sd` INT DEFAULT 0,
+ ADD `avalaible` INT DEFAULT 0,
+ ADD `visible` INT DEFAULT 0;
+
+ ELSE
+ CALL inventario_multiple_2 (v_date, i_wh, days);
+ CALL article_multiple_buy (v_date, i_wh);
+ CALL article_multiple_buy_date (v_date, i_wh);
+ END IF;
+
+
+
+DROP TEMPORARY TABLE IF EXISTS clientcom;
+CREATE TEMPORARY TABLE clientcom
+SELECT vnperiod(Fecha) as period
+ ,Id_Article
+ , Cantidad
+ , Preu
+ , CS.Id_Cliente
+ FROM vn2008.Movimientos M
+ JOIN vn2008.Tickets T USING (Id_Ticket)
+ JOIN vn2008.Consignatarios CS USING(Id_Consigna)
+ JOIN vn2008.Clientes C ON C.Id_Cliente = CS.Id_Cliente
+ JOIN vn2008.Articles A USING (Id_Article)
+ LEFT JOIN vn2008.Tipos USING(tipo_id)
+ WHERE (T.Fecha BETWEEN date_cyear_ini AND date_cyear_end or T.Fecha BETWEEN date_lyear_ini AND date_lyear_end)
+ AND T.Id_Cliente NOT IN(400,200)
+ AND i_vendedor IN (0, C.Id_Trabajador )
+ AND i_comprador IN (0, Tipos.Id_Trabajador)
+ AND i_tipo IN (0,Tipos.tipo_id)
+ AND reino_id <> 6 AND T.warehouse_id NOT IN (0,13)
+ ORDER BY period;
+
+DROP TEMPORARY TABLE IF EXISTS clientcom_periods;
+CREATE TEMPORARY TABLE clientcom_periods
+SELECT period, @order:= @order + 1 as period_order
+FROM (
+SELECT DISTINCT period, @order:=0
+FROM clientcom
+ORDER BY period) sub;
+
+SELECT cc.Id_Article
+ , cc.Id_Cliente
+ ,CAST(SUM(IF(period_order = 1, cc.Cantidad, 0)) AS SIGNED) AS lweek1
+ ,CAST(SUM(IF(period_order = 2, cc.Cantidad, 0)) AS SIGNED) AS lweek2
+ ,CAST(SUM(IF(period_order = 3, cc.Cantidad, 0)) AS SIGNED) AS lweek3
+ ,CAST(SUM(IF(period_order = 4, cc.Cantidad, 0)) AS SIGNED) AS lweek4
+ ,CAST(SUM(IF(period_order = 5, cc.Cantidad, 0)) AS SIGNED) AS lweek5
+ ,CAST(SUM(IF(period_order = 6, cc.Cantidad, 0)) AS SIGNED) AS lweek6
+ ,CAST(SUM(IF(period_order = 7, cc.Cantidad, 0)) AS SIGNED) AS lweek7
+ ,CAST(SUM(IF(period_order = 7+1, cc.Cantidad, 0)) AS SIGNED) AS cweek1
+ ,CAST(SUM(IF(period_order = 7+2, cc.Cantidad, 0)) AS SIGNED) AS cweek2
+ ,CAST(SUM(IF(period_order = 7+3, cc.Cantidad, 0)) AS SIGNED) AS cweek3
+ ,CAST(SUM(IF(period_order = 7+4, cc.Cantidad, 0)) AS SIGNED) AS cweek4
+ ,CAST(SUM(IF(period_order = 7+5, cc.Cantidad, 0)) AS SIGNED) AS cweek5
+ ,CAST(SUM(IF(period_order = 7+6, cc.Cantidad, 0)) AS SIGNED) AS cweek6
+ ,CAST(SUM(IF(period_order = 7+7, cc.Cantidad, 0)) AS SIGNED) AS cweek7
+
+ ,CAST(SUM(IF(period_order = 1, cc.Cantidad* Preu, 0)) AS SIGNED) AS lprice1
+ ,CAST(SUM(IF(period_order = 2, cc.Cantidad* Preu, 0)) AS SIGNED) AS lprice2
+ ,CAST(SUM(IF(period_order = 3, cc.Cantidad* Preu, 0)) AS SIGNED) AS lprice3
+ ,CAST(SUM(IF(period_order = 4, cc.Cantidad* Preu, 0)) AS SIGNED) AS lprice4
+ ,CAST(SUM(IF(period_order = 5, cc.Cantidad* Preu, 0)) AS SIGNED) AS lprice5
+ ,CAST(SUM(IF(period_order = 6, cc.Cantidad* Preu, 0)) AS SIGNED) AS lprice6
+ ,CAST(SUM(IF(period_order = 7, cc.Cantidad* Preu, 0)) AS SIGNED) AS lprice7
+ ,CAST(SUM(IF(period_order = 7+1, cc.Cantidad* Preu, 0)) AS SIGNED) AS cprice1
+ ,CAST(SUM(IF(period_order = 7+2, cc.Cantidad* Preu, 0)) AS SIGNED) AS cprice2
+ ,CAST(SUM(IF(period_order = 7+3, cc.Cantidad* Preu, 0)) AS SIGNED) AS cprice3
+ ,CAST(SUM(IF(period_order = 7+4, cc.Cantidad* Preu, 0)) AS SIGNED) AS cprice4
+ ,CAST(SUM(IF(period_order = 7+5, cc.Cantidad* Preu, 0)) AS SIGNED) AS cprice5
+ ,CAST(SUM(IF(period_order = 7+6, cc.Cantidad* Preu, 0)) AS SIGNED) AS cprice6
+ ,CAST(SUM(IF(period_order = 7+7, cc.Cantidad* Preu, 0)) AS SIGNED) AS cprice7
+
+ ,A.Article
+ ,A.Medida
+ ,A.Color
+ ,A.tipo_id
+ ,C.Cliente
+ ,T1.CodigoTrabajador as Comercial
+ ,O.Abreviatura as Origen
+ ,TT.ball as Tinta
+ ,r.reino as Reino
+ ,TP.Id_Tipo
+ ,JF.CodigoTrabajador as Equipo
+ ,T2.CodigoTrabajador as Comprador
+ ,TT.orden as Orden_Color
+
+,i.buy_id
+, i.life
+, CAST(IFNULL(i.sd,0) AS SIGNED) as sd
+,CAST(i.avalaible AS SIGNED) avalaible
+, CAST(i.visible AS SIGNED) visible
+, i.buy_date
+,P.Proveedor
+
+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
+JOIN Tipos TP ON TP.tipo_id = A.tipo_id
+JOIN reinos r ON r.id = TP.reino_id
+JOIN Trabajadores T2 ON T2.Id_Trabajador = TP.Id_Trabajador
+
+GROUP BY Id_Article,Id_Cliente;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `comparativa_clientes_tickets` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `comparativa_clientes_tickets`(IN i_week INT
+ , IN i_year INT
+ , IN i_vendedor INT
+ , IN i_comprador INT
+ , IN i_article INT
+ , IN i_cliente INT
+ , IN i_tipo INT
+ , IN i_reino INT
+ , IN i_equipo INT
+ , IN v_color varchar(3))
+BEGIN
+
+DECLARE datSTART DATETIME;
+DECLARE datEND DATETIME;
+
+SELECT min(date), TIMESTAMP(max(date),'23:59:59') INTO datSTART, datEND FROM time WHERE i_week = week AND i_year = year;
+
+
+
+SELECT T.Id_Ticket, Fecha, Alias, Id_Article, Concepte, Cantidad, Preu, M.Descuento, Cantidad * Preu * (100-M.Descuento)/100 as Importe, w.name as almacen
+FROM Movimientos M
+JOIN Tickets T using(Id_Ticket)
+JOIN warehouse w on w.id = T.warehouse_id
+JOIN Consignatarios CS using(Id_Consigna)
+JOIN Clientes C ON C.Id_Cliente = CS.Id_Cliente
+JOIN Trabajadores TR ON TR.Id_Trabajador = C.Id_Trabajador
+JOIN jerarquia J ON J.worker_id = TR.Id_Trabajador
+JOIN Articles A using(Id_Article)
+JOIN Tipos TP using(tipo_id)
+WHERE T.Fecha BETWEEN datSTART AND datEND
+AND i_vendedor IN (0, C.Id_Trabajador)
+AND i_comprador IN (0, TP.Id_Trabajador)
+AND i_cliente IN (0, CS.Id_Cliente)
+AND i_tipo IN (0, A.tipo_id)
+AND i_article IN (0,A.Id_Article)
+AND i_reino IN (0,TP.reino_id)
+AND i_equipo IN(0,J.boss_id)
+AND v_color IN ("",A.color);
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `comparative` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `comparative`(
+ v_date DATETIME
+ ,days TINYINT
+ ,i_wh TINYINT
+ ,i_tipo INT
+ ,i_filtro INT
+)
+BEGIN
+ DECLARE wstart INT;
+ DECLARE wend INT;
+ DECLARE cyear INT;
+ DECLARE date_cyear_ini DATETIME;
+ DECLARE date_cyear_end DATETIME;
+ DECLARE week_count TINYINT DEFAULT 7;
+ DECLARE date_lyear_ini DATETIME;
+ DECLARE date_lyear_end DATETIME;
+ 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 i INT DEFAULT 0;
+ DECLARE lastCOMP BIGINT; -- Almacena el ultimo valor del Periodo
+ DECLARE strFILTRO VARCHAR(255) DEFAULT 'TRUE';
+
+ IF i_filtro THEN
+ SELECT `sql` INTO strFILTRO FROM filtros WHERE id = i_filtro;
+ END IF;
+
+ SET corrector = 1;
+
+ IF days < 0 OR days > 30 THEN
+ SET days = 15;
+ END IF;
+
+ 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 ();
+
+ INSERT INTO article_inventory (article_id)
+ SELECT Id_Article FROM Articles a
+ JOIN Tipos t ON a.tipo_id = t.tipo_id
+ LEFT JOIN vn2008.reinos r ON r.id = t.reino_id
+ WHERE (i_tipo = 0 OR a.tipo_id = i_tipo)
+ AND r.display <> 0;
+
+ IF v_date < CURDATE()
+ THEN
+ ALTER TABLE `article_inventory`
+ ADD `buy_id` INT NOT NULL DEFAULT 0,
+ ADD `buy_date` DATE DEFAULT '2000-01-01',
+ ADD `life` INT DEFAULT 0,
+ ADD `sd` INT DEFAULT 0,
+ ADD `avalaible` INT DEFAULT 0,
+ ADD `visible` INT DEFAULT 0;
+
+ ELSE
+
+ CALL inventario_multiple_2 (v_date, i_wh, days);
+
+ CALL article_multiple_buy (v_date, i_wh);
+
+ CALL article_multiple_buy_date (v_date, i_wh);
+
+
+ END IF;
+
+
+ DROP TEMPORARY TABLE IF EXISTS wtable;
+
+ CREATE TEMPORARY TABLE wtable (
+ cy INT(6),
+ ly INT(6)
+ );
+
+ 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
+
+ UNTIL i = 7 END REPEAT;
+
+
+ SELECT cy, ly INTO w1, y1 FROM wtable limit 1;
+ SELECT cy, ly INTO w2, y2 FROM wtable WHERE cy > w1 limit 1;
+ SELECT cy, ly INTO w3, y3 FROM wtable WHERE cy > w2 limit 1;
+ SELECT cy, ly INTO w4, y4 FROM wtable WHERE cy > w3 limit 1;
+
+ SELECT cy, ly INTO w5, y5 FROM wtable WHERE cy > w4 limit 1;
+ SELECT cy, ly INTO w6, y6 FROM wtable WHERE cy > w5 limit 1;
+ SELECT cy, ly INTO w7, y7 FROM wtable WHERE cy > w6 limit 1;
+ DROP TEMPORARY TABLE wtable;
+
+ 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
+ (KEY (Id_Article))
+ ENGINE = MEMORY
+ SELECT Id_Article
+
+ ,CAST(SUM(IF(Periodo = y1, Cantidad, 0)) AS DECIMAL(10,0)) AS lweek1
+ ,CAST(SUM(IF(Periodo = y2, Cantidad, 0)) AS DECIMAL(10,0)) AS lweek2
+ ,CAST(SUM(IF(Periodo = y3, Cantidad, 0)) AS DECIMAL(10,0)) AS lweek3
+ ,CAST(SUM(IF(Periodo = y4, Cantidad, 0)) AS DECIMAL(10,0)) AS lweek4
+ ,CAST(SUM(IF(Periodo = y5, Cantidad, 0)) AS DECIMAL(10,0)) AS lweek5
+ ,CAST(SUM(IF(Periodo = y6, Cantidad, 0)) AS DECIMAL(10,0)) AS lweek6
+ ,CAST(SUM(IF(Periodo = y7, Cantidad, 0)) AS DECIMAL(10,0)) AS lweek7
+
+ ,CAST(SUM(IF(Periodo = y1, price, 0)) AS DECIMAL(10,0)) AS lprice1
+ ,CAST(SUM(IF(Periodo = y2, price, 0)) AS DECIMAL(10,0)) AS lprice2
+ ,CAST(SUM(IF(Periodo = y3, price, 0)) AS DECIMAL(10,0)) AS lprice3
+ ,CAST(SUM(IF(Periodo = y4, price, 0)) AS DECIMAL(10,0)) AS lprice4
+ ,CAST(SUM(IF(Periodo = y5, price, 0)) AS DECIMAL(10,0)) AS lprice5
+ ,CAST(SUM(IF(Periodo = y6, price, 0)) AS DECIMAL(10,0)) AS lprice6
+ ,CAST(SUM(IF(Periodo = y7, price, 0)) AS DECIMAL(10,0)) AS lprice7
+
+ FROM Comparativa
+ JOIN warehouse W on W.id = warehouse_id
+ WHERE (Periodo BETWEEN y1 and y7)
+ 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
+ (KEY (Id_Article))
+ ENGINE = MEMORY
+ SELECT Id_Article
+
+ ,CAST(SUM(IF(week = w1, Total, 0)) AS DECIMAL(10,0)) AS cweek1
+ ,CAST(SUM(IF(week = w2, Total, 0)) AS DECIMAL(10,0)) AS cweek2
+ ,CAST(SUM(IF(week = w3, Total, 0)) AS DECIMAL(10,0)) AS cweek3
+ ,CAST(SUM(IF(week = w4, Total, 0)) AS DECIMAL(10,0)) AS cweek4
+ ,CAST(SUM(IF(week = w5, Total, 0)) AS DECIMAL(10,0)) AS cweek5
+ ,CAST(SUM(IF(week = w6, Total, 0)) AS DECIMAL(10,0)) AS cweek6
+ ,CAST(SUM(IF(week = w7, Total, 0)) AS DECIMAL(10,0)) AS cweek7
+
+ ,CAST(SUM(IF(week = w1, price, 0)) AS DECIMAL(10,0)) AS cprice1
+ ,CAST(SUM(IF(week = w2, price, 0)) AS DECIMAL(10,0)) AS cprice2
+ ,CAST(SUM(IF(week = w3, price, 0)) AS DECIMAL(10,0)) AS cprice3
+ ,CAST(SUM(IF(week = w4, price, 0)) AS DECIMAL(10,0)) AS cprice4
+ ,CAST(SUM(IF(week = w5, price, 0)) AS DECIMAL(10,0)) AS cprice5
+ ,CAST(SUM(IF(week = w6, price, 0)) AS DECIMAL(10,0)) AS cprice6
+ ,CAST(SUM(IF(week = w7, price, 0)) AS DECIMAL(10,0)) AS cprice7
+
+ FROM (
+ SELECT A.Id_Article
+ ,CTS.period week
+ ,SUM(Cantidad) AS Total
+ ,TRUNCATE(SUM(Cantidad * IF(T.Fecha >= '2015-10-01',M.CostFixat,Preu * (100 - Descuento) / 100)),0) AS price
+ FROM Movimientos M
+ LEFT JOIN Tickets T ON T.Id_Ticket = M.Id_Ticket
+ INNER JOIN `time` CTS ON CTS.`date` = DATE(T.Fecha)
+ INNER JOIN Articles A USING (Id_Article)
+ INNER JOIN Tipos tp ON tp.tipo_id = A.tipo_id
+ LEFT JOIN reinos r ON r.id = tp.reino_id
+ JOIN warehouse W ON W.id = T.warehouse_id
+ WHERE Fecha BETWEEN date_cyear_ini AND date_cyear_end
+ AND T.Id_Cliente NOT IN(400,200)
+ AND IF(i_wh = 0, W.is_comparative, i_wh = T.warehouse_id)
+ AND r.display <> 0
+
+ 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
+ SELECT
+
+ an.nicho, p.name Productor, C.Packing, C.Costefijo
+ ,A.Color, Id_Tipo as Tipo,A.tipo_id, o.Abreviatura as Origen, A.Categoria
+ ,A.Tallos, A.Medida, A.Article, TR.CodigoTrabajador
+
+ ,cweek1, cweek2, cweek3, cweek4, cweek5, cweek6, cweek7
+ ,lweek1, lweek2, lweek3, lweek4, lweek5, lweek6, lweek7
+
+ ,cprice1, cprice2, cprice3, cprice4, cprice5, cprice6, cprice7
+ ,lprice1, lprice2, lprice3, lprice4, lprice5, lprice6, lprice7
+
+ ,A.Id_Article, i.buy_id , tp.life , CAST(IFNULL(i.sd,0) AS SIGNED) as sd
+ ,CAST(i.avalaible AS SIGNED) avalaible, CAST(i.visible AS SIGNED) visible, i.buy_date
+ ,E.Id_Proveedor AS provider_id, t.Orden, t.Tinta
+ ,A.offer, A.bargain, A.comments, A.relevancy
+ ,IF(cy.Id_Article IS NULL AND i.visible = 0 AND i.avalaible = 0 AND IFNULL(i.sd, 0) = 0, FALSE, TRUE) AS filtret
+
+ FROM article_inventory i
+ JOIN Articles A ON A.Id_Article = i.article_id
+ LEFT JOIN Articles_nicho an ON A.Id_Article = an.Id_Article AND an.warehouse_id = %s
+ LEFT JOIN producer p ON p.producer_id = A.producer_id
+ LEFT JOIN Tipos tp ON A.tipo_id = tp.tipo_id
+ LEFT JOIN vn2008.reinos r ON r.id = tp.reino_id
+ LEFT JOIN Trabajadores TR ON TR.Id_Trabajador = tp.Id_Trabajador
+ LEFT JOIN Tintas t ON t.Id_Tinta = A.color
+ LEFT JOIN Compres C ON i.buy_id = C.Id_Compra
+ LEFT JOIN Entradas E USING(Id_Entrada)
+ LEFT JOIN Origen o ON o.id = A.id_origen
+ LEFT JOIN last_year ly ON ly.Id_Article = A.Id_Article
+ LEFT JOIN cur_year cy ON cy.Id_Article = A.Id_Article AND (i.avalaible <> 0 OR i.visible <> 0 OR cweek1 OR cweek2 OR cweek3 OR cweek4
+ OR cweek5 OR cweek6 OR cweek7 OR lweek1 OR lweek2 OR lweek3 OR lweek4 OR lweek5
+ OR lweek6 OR lweek7)
+ WHERE r.display <> 0 AND %s '
+
+ ,i_wh,strFILTRO
+ ));
+ ALTER TABLE remcom
+ CHANGE COLUMN `cweek1` `cweek1` INT NOT NULL,
+ CHANGE COLUMN `cweek2` `cweek2` INT NOT NULL,
+ CHANGE COLUMN `cweek3` `cweek3` INT NOT NULL,
+ CHANGE COLUMN `cweek4` `cweek4` INT NOT NULL,
+ CHANGE COLUMN `cweek5` `cweek5` INT NOT NULL,
+ CHANGE COLUMN `cweek6` `cweek6` INT NOT NULL,
+ CHANGE COLUMN `cweek7` `cweek7` INT NOT NULL,
+ CHANGE COLUMN `lweek1` `lweek1` INT NOT NULL,
+ CHANGE COLUMN `lweek2` `lweek2` INT NOT NULL,
+ CHANGE COLUMN `lweek3` `lweek3` INT NOT NULL,
+ CHANGE COLUMN `lweek4` `lweek4` INT NOT NULL,
+ CHANGE COLUMN `lweek5` `lweek5` INT NOT NULL,
+ CHANGE COLUMN `lweek6` `lweek6` INT NOT NULL,
+ 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 */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `comparative2` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `comparative2`(
+ v_date DATETIME
+ ,days TINYINT
+ ,i_wh TINYINT
+ ,i_tipo INT
+ ,i_filtro INT
+)
+BEGIN
+ DECLARE wstart INT;
+ DECLARE wend INT;
+ DECLARE cyear INT;
+ DECLARE date_cyear_ini DATETIME;
+ DECLARE date_cyear_end DATETIME;
+ DECLARE week_count TINYINT DEFAULT 7;
+ DECLARE date_lyear_ini DATETIME;
+ DECLARE date_lyear_end DATETIME;
+ 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 i INT DEFAULT 0;
+ DECLARE lastCOMP BIGINT; -- Almacena el ultimo valor del Periodo
+ DECLARE strFILTRO VARCHAR(255) DEFAULT 'TRUE';
+
+ IF i_filtro THEN
+ SELECT `sql` INTO strFILTRO FROM filtros WHERE id = i_filtro;
+ END IF;
+
+ SET corrector = 1;
+
+ IF days < 0 OR days > 30 THEN
+ SET days = 15;
+ END IF;
+
+ 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 ();
+
+ INSERT INTO article_inventory (article_id)
+ SELECT Id_Article FROM Articles a
+ JOIN Tipos t ON a.tipo_id = t.tipo_id
+ LEFT JOIN vn2008.reinos r ON r.id = t.reino_id
+ WHERE (i_tipo = 0 OR a.tipo_id = i_tipo)
+ AND r.display <> 0;
+
+ IF v_date < CURDATE()
+ THEN
+ ALTER TABLE `article_inventory`
+ ADD `buy_id` INT NOT NULL DEFAULT 0,
+ ADD `buy_date` DATE DEFAULT '2000-01-01',
+ ADD `life` INT DEFAULT 0,
+ ADD `sd` INT DEFAULT 0,
+ ADD `avalaible` INT DEFAULT 0,
+ ADD `visible` INT DEFAULT 0;
+
+ ELSE
+
+ CALL inventario_multiple_2 (v_date, i_wh, days);
+
+ CALL article_multiple_buy (v_date, i_wh);
+
+ CALL article_multiple_buy_date (v_date, i_wh);
+
+
+ END IF;
+
+
+ DROP TEMPORARY TABLE IF EXISTS wtable;
+
+ CREATE TEMPORARY TABLE wtable (
+ cy INT(6),
+ ly INT(6)
+ );
+
+ 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
+
+ UNTIL i = 7 END REPEAT;
+
+
+ SELECT cy, ly INTO w1, y1 FROM wtable limit 1;
+ SELECT cy, ly INTO w2, y2 FROM wtable WHERE cy > w1 limit 1;
+ SELECT cy, ly INTO w3, y3 FROM wtable WHERE cy > w2 limit 1;
+ SELECT cy, ly INTO w4, y4 FROM wtable WHERE cy > w3 limit 1;
+
+ SELECT cy, ly INTO w5, y5 FROM wtable WHERE cy > w4 limit 1;
+ SELECT cy, ly INTO w6, y6 FROM wtable WHERE cy > w5 limit 1;
+ SELECT cy, ly INTO w7, y7 FROM wtable WHERE cy > w6 limit 1;
+ DROP TEMPORARY TABLE wtable;
+
+ 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
+ (KEY (Id_Article))
+ ENGINE = MEMORY
+ SELECT Id_Article
+
+ ,CAST(SUM(IF(Periodo = y1, Cantidad, 0)) AS DECIMAL(10,0)) AS lweek1
+ ,CAST(SUM(IF(Periodo = y2, Cantidad, 0)) AS DECIMAL(10,0)) AS lweek2
+ ,CAST(SUM(IF(Periodo = y3, Cantidad, 0)) AS DECIMAL(10,0)) AS lweek3
+ ,CAST(SUM(IF(Periodo = y4, Cantidad, 0)) AS DECIMAL(10,0)) AS lweek4
+ ,CAST(SUM(IF(Periodo = y5, Cantidad, 0)) AS DECIMAL(10,0)) AS lweek5
+ ,CAST(SUM(IF(Periodo = y6, Cantidad, 0)) AS DECIMAL(10,0)) AS lweek6
+ ,CAST(SUM(IF(Periodo = y7, Cantidad, 0)) AS DECIMAL(10,0)) AS lweek7
+
+ ,CAST(SUM(IF(Periodo = y1, price, 0)) AS DECIMAL(10,0)) AS lprice1
+ ,CAST(SUM(IF(Periodo = y2, price, 0)) AS DECIMAL(10,0)) AS lprice2
+ ,CAST(SUM(IF(Periodo = y3, price, 0)) AS DECIMAL(10,0)) AS lprice3
+ ,CAST(SUM(IF(Periodo = y4, price, 0)) AS DECIMAL(10,0)) AS lprice4
+ ,CAST(SUM(IF(Periodo = y5, price, 0)) AS DECIMAL(10,0)) AS lprice5
+ ,CAST(SUM(IF(Periodo = y6, price, 0)) AS DECIMAL(10,0)) AS lprice6
+ ,CAST(SUM(IF(Periodo = y7, price, 0)) AS DECIMAL(10,0)) AS lprice7
+
+ FROM Comparativa
+ JOIN warehouse W on W.id = warehouse_id
+ WHERE (Periodo BETWEEN y1 and y7)
+ 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
+ (KEY (Id_Article))
+ ENGINE = MEMORY
+ SELECT Id_Article
+
+ ,CAST(SUM(IF(week = w1, Total, 0)) AS DECIMAL(10,0)) AS cweek1
+ ,CAST(SUM(IF(week = w2, Total, 0)) AS DECIMAL(10,0)) AS cweek2
+ ,CAST(SUM(IF(week = w3, Total, 0)) AS DECIMAL(10,0)) AS cweek3
+ ,CAST(SUM(IF(week = w4, Total, 0)) AS DECIMAL(10,0)) AS cweek4
+ ,CAST(SUM(IF(week = w5, Total, 0)) AS DECIMAL(10,0)) AS cweek5
+ ,CAST(SUM(IF(week = w6, Total, 0)) AS DECIMAL(10,0)) AS cweek6
+ ,CAST(SUM(IF(week = w7, Total, 0)) AS DECIMAL(10,0)) AS cweek7
+
+ ,CAST(SUM(IF(week = w1, price, 0)) AS DECIMAL(10,0)) AS cprice1
+ ,CAST(SUM(IF(week = w2, price, 0)) AS DECIMAL(10,0)) AS cprice2
+ ,CAST(SUM(IF(week = w3, price, 0)) AS DECIMAL(10,0)) AS cprice3
+ ,CAST(SUM(IF(week = w4, price, 0)) AS DECIMAL(10,0)) AS cprice4
+ ,CAST(SUM(IF(week = w5, price, 0)) AS DECIMAL(10,0)) AS cprice5
+ ,CAST(SUM(IF(week = w6, price, 0)) AS DECIMAL(10,0)) AS cprice6
+ ,CAST(SUM(IF(week = w7, price, 0)) AS DECIMAL(10,0)) AS cprice7
+
+ FROM (
+ SELECT A.Id_Article
+ ,CTS.period week
+ ,SUM(Cantidad) AS Total
+ ,TRUNCATE(SUM(Cantidad * IF(T.Fecha >= '2015-10-01',M.CostFixat,Preu * (100 - Descuento) / 100)),0) AS price
+ FROM Movimientos M
+ LEFT JOIN Tickets T ON T.Id_Ticket = M.Id_Ticket
+ INNER JOIN `time` CTS ON CTS.`date` = DATE(T.Fecha)
+ INNER JOIN Articles A USING (Id_Article)
+ INNER JOIN Tipos tp ON tp.tipo_id = A.tipo_id
+ LEFT JOIN reinos r ON r.id = tp.reino_id
+ JOIN warehouse W ON W.id = T.warehouse_id
+ WHERE Fecha BETWEEN date_cyear_ini AND date_cyear_end
+ AND T.Id_Cliente NOT IN(400,200)
+ AND IF(i_wh = 0, W.is_comparative, i_wh = T.warehouse_id)
+ AND r.display <> 0
+
+ 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
+ SELECT
+
+ an.nicho, p.name Productor, C.Packing, C.Costefijo
+ ,A.Color, Id_Tipo as Tipo,A.tipo_id, o.Abreviatura as Origen, A.Categoria
+ ,A.Tallos, A.Medida, A.Article, TR.CodigoTrabajador
+
+ ,cweek1, cweek2, cweek3, cweek4, cweek5, cweek6, cweek7
+ ,lweek1, lweek2, lweek3, lweek4, lweek5, lweek6, lweek7
+
+ ,cprice1, cprice2, cprice3, cprice4, cprice5, cprice6, cprice7
+ ,lprice1, lprice2, lprice3, lprice4, lprice5, lprice6, lprice7
+
+ ,A.Id_Article, i.buy_id , i.life , CAST(IFNULL(i.sd,0) AS SIGNED) as sd
+ ,CAST(i.avalaible AS SIGNED) avalaible, CAST(i.visible AS SIGNED) visible, i.buy_date
+ ,E.Id_Proveedor AS provider_id, t.Orden, t.Tinta
+ ,A.offer, A.bargain, A.comments
+ ,IF(cy.Id_Article IS NULL AND i.visible = 0 AND i.avalaible = 0 AND IFNULL(i.sd, 0) = 0, FALSE, TRUE) AS filtret
+
+ FROM article_inventory i
+ JOIN Articles A ON A.Id_Article = i.article_id
+ LEFT JOIN Articles_nicho an ON A.Id_Article = an.Id_Article AND an.warehouse_id = %s
+ LEFT JOIN producer p ON p.producer_id = A.producer_id
+ LEFT JOIN Tipos tp ON A.tipo_id = tp.tipo_id
+ LEFT JOIN vn2008.reinos r ON r.id = tp.reino_id
+ LEFT JOIN Trabajadores TR ON TR.Id_Trabajador = tp.Id_Trabajador
+ LEFT JOIN Tintas t ON t.Id_Tinta = A.color
+ LEFT JOIN Compres C ON i.buy_id = C.Id_Compra
+ LEFT JOIN Entradas E USING(Id_Entrada)
+ LEFT JOIN Origen o ON o.id = A.id_origen
+ LEFT JOIN last_year ly ON ly.Id_Article = A.Id_Article
+ LEFT JOIN cur_year cy ON cy.Id_Article = A.Id_Article
+ WHERE r.display <> 0 AND (i.avalaible <> 0 OR i.visible <> 0 OR cweek1 OR cweek2 OR cweek3 OR cweek4
+ OR cweek5 OR cweek6 OR cweek7 OR lweek1 OR lweek2 OR lweek3 OR lweek4 OR lweek5
+ OR lweek6 OR lweek7)
+ AND %s LIMIT 20000'
+
+ ,i_wh,strFILTRO
+ ));
+ ALTER TABLE remcom
+ CHANGE COLUMN `cweek1` `cweek1` INT NOT NULL,
+ CHANGE COLUMN `cweek2` `cweek2` INT NOT NULL,
+ CHANGE COLUMN `cweek3` `cweek3` INT NOT NULL,
+ CHANGE COLUMN `cweek4` `cweek4` INT NOT NULL,
+ CHANGE COLUMN `cweek5` `cweek5` INT NOT NULL,
+ CHANGE COLUMN `cweek6` `cweek6` INT NOT NULL,
+ CHANGE COLUMN `cweek7` `cweek7` INT NOT NULL,
+ CHANGE COLUMN `lweek1` `lweek1` INT NOT NULL,
+ CHANGE COLUMN `lweek2` `lweek2` INT NOT NULL,
+ CHANGE COLUMN `lweek3` `lweek3` INT NOT NULL,
+ CHANGE COLUMN `lweek4` `lweek4` INT NOT NULL,
+ CHANGE COLUMN `lweek5` `lweek5` INT NOT NULL,
+ CHANGE COLUMN `lweek6` `lweek6` INT NOT NULL,
+ 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 */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `comparative_test` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `comparative_test`(
+ v_date DATETIME
+ ,days TINYINT
+ ,i_wh TINYINT
+ ,i_tipo INT
+ ,i_filtro INT
+)
+BEGIN
+ DECLARE wstart INT;
+ DECLARE wend INT;
+ DECLARE cyear INT;
+ DECLARE date_cyear_ini DATETIME;
+ DECLARE date_cyear_end DATETIME;
+ DECLARE week_count TINYINT DEFAULT 7;
+ DECLARE date_lyear_ini DATETIME;
+ DECLARE date_lyear_end DATETIME;
+ 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 i INT DEFAULT 0;
+ DECLARE lastCOMP BIGINT; -- Almacena el ultimo valor del Periodo
+ DECLARE strFILTRO VARCHAR(255) DEFAULT 'TRUE';
+
+ IF i_filtro THEN
+ SELECT `sql` INTO strFILTRO FROM filtros WHERE id = i_filtro;
+ END IF;
+
+ SET corrector = 1;
+
+ IF days < 0 OR days > 30 THEN
+ SET days = 15;
+ END IF;
+
+ 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 ();
+
+ INSERT INTO article_inventory (article_id)
+ SELECT Id_Article FROM Articles a
+ JOIN Tipos t ON a.tipo_id = t.tipo_id
+ LEFT JOIN vn2008.reinos r ON r.id = t.reino_id
+ WHERE (i_tipo = 0 OR a.tipo_id = i_tipo)
+ AND r.display <> 0;
+
+ IF v_date < CURDATE()
+ THEN
+ ALTER TABLE `article_inventory`
+ ADD `buy_id` INT NOT NULL DEFAULT 0,
+ ADD `buy_date` DATE DEFAULT '2000-01-01',
+ ADD `life` INT DEFAULT 0,
+ ADD `sd` INT DEFAULT 0,
+ ADD `avalaible` INT DEFAULT 0,
+ ADD `visible` INT DEFAULT 0;
+
+ ELSE
+
+ CALL inventario_multiple_2 (v_date, i_wh, days);
+
+ CALL article_multiple_buy (v_date, i_wh);
+
+ CALL article_multiple_buy_date (v_date, i_wh);
+
+
+ END IF;
+
+
+ DROP TEMPORARY TABLE IF EXISTS wtable;
+
+ CREATE TEMPORARY TABLE wtable (
+ cy INT(6),
+ ly INT(6)
+ );
+
+ 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
+
+ UNTIL i = 7 END REPEAT;
+
+
+ SELECT cy, ly INTO w1, y1 FROM wtable limit 1;
+ SELECT cy, ly INTO w2, y2 FROM wtable WHERE cy > w1 limit 1;
+ SELECT cy, ly INTO w3, y3 FROM wtable WHERE cy > w2 limit 1;
+ SELECT cy, ly INTO w4, y4 FROM wtable WHERE cy > w3 limit 1;
+
+ SELECT cy, ly INTO w5, y5 FROM wtable WHERE cy > w4 limit 1;
+ SELECT cy, ly INTO w6, y6 FROM wtable WHERE cy > w5 limit 1;
+ SELECT cy, ly INTO w7, y7 FROM wtable WHERE cy > w6 limit 1;
+ DROP TEMPORARY TABLE wtable;
+
+ 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
+ (KEY (Id_Article))
+ ENGINE = MEMORY
+ SELECT Id_Article
+
+ ,CAST(SUM(IF(Periodo = y1, Cantidad, 0)) AS DECIMAL(10,0)) AS lweek1
+ ,CAST(SUM(IF(Periodo = y2, Cantidad, 0)) AS DECIMAL(10,0)) AS lweek2
+ ,CAST(SUM(IF(Periodo = y3, Cantidad, 0)) AS DECIMAL(10,0)) AS lweek3
+ ,CAST(SUM(IF(Periodo = y4, Cantidad, 0)) AS DECIMAL(10,0)) AS lweek4
+ ,CAST(SUM(IF(Periodo = y5, Cantidad, 0)) AS DECIMAL(10,0)) AS lweek5
+ ,CAST(SUM(IF(Periodo = y6, Cantidad, 0)) AS DECIMAL(10,0)) AS lweek6
+ ,CAST(SUM(IF(Periodo = y7, Cantidad, 0)) AS DECIMAL(10,0)) AS lweek7
+
+ ,CAST(SUM(IF(Periodo = y1, price, 0)) AS DECIMAL(10,0)) AS lprice1
+ ,CAST(SUM(IF(Periodo = y2, price, 0)) AS DECIMAL(10,0)) AS lprice2
+ ,CAST(SUM(IF(Periodo = y3, price, 0)) AS DECIMAL(10,0)) AS lprice3
+ ,CAST(SUM(IF(Periodo = y4, price, 0)) AS DECIMAL(10,0)) AS lprice4
+ ,CAST(SUM(IF(Periodo = y5, price, 0)) AS DECIMAL(10,0)) AS lprice5
+ ,CAST(SUM(IF(Periodo = y6, price, 0)) AS DECIMAL(10,0)) AS lprice6
+ ,CAST(SUM(IF(Periodo = y7, price, 0)) AS DECIMAL(10,0)) AS lprice7
+
+ FROM Comparativa
+ JOIN warehouse W on W.id = warehouse_id
+ WHERE (Periodo BETWEEN y1 and y7)
+ 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
+ (KEY (Id_Article))
+ ENGINE = MEMORY
+ SELECT Id_Article
+
+ ,CAST(SUM(IF(week = w1, Total, 0)) AS DECIMAL(10,0)) AS cweek1
+ ,CAST(SUM(IF(week = w2, Total, 0)) AS DECIMAL(10,0)) AS cweek2
+ ,CAST(SUM(IF(week = w3, Total, 0)) AS DECIMAL(10,0)) AS cweek3
+ ,CAST(SUM(IF(week = w4, Total, 0)) AS DECIMAL(10,0)) AS cweek4
+ ,CAST(SUM(IF(week = w5, Total, 0)) AS DECIMAL(10,0)) AS cweek5
+ ,CAST(SUM(IF(week = w6, Total, 0)) AS DECIMAL(10,0)) AS cweek6
+ ,CAST(SUM(IF(week = w7, Total, 0)) AS DECIMAL(10,0)) AS cweek7
+
+ ,CAST(SUM(IF(week = w1, price, 0)) AS DECIMAL(10,0)) AS cprice1
+ ,CAST(SUM(IF(week = w2, price, 0)) AS DECIMAL(10,0)) AS cprice2
+ ,CAST(SUM(IF(week = w3, price, 0)) AS DECIMAL(10,0)) AS cprice3
+ ,CAST(SUM(IF(week = w4, price, 0)) AS DECIMAL(10,0)) AS cprice4
+ ,CAST(SUM(IF(week = w5, price, 0)) AS DECIMAL(10,0)) AS cprice5
+ ,CAST(SUM(IF(week = w6, price, 0)) AS DECIMAL(10,0)) AS cprice6
+ ,CAST(SUM(IF(week = w7, price, 0)) AS DECIMAL(10,0)) AS cprice7
+
+ FROM (
+ SELECT A.Id_Article
+ ,CTS.period week
+ ,SUM(Cantidad) AS Total
+ ,TRUNCATE(SUM(Cantidad * IF(T.Fecha >= '2015-10-01',M.CostFixat,Preu * (100 - Descuento) / 100)),0) AS price
+ FROM Movimientos M
+ LEFT JOIN Tickets T ON T.Id_Ticket = M.Id_Ticket
+ INNER JOIN `time` CTS ON CTS.`date` = DATE(T.Fecha)
+ INNER JOIN Articles A USING (Id_Article)
+ INNER JOIN Tipos tp ON tp.tipo_id = A.tipo_id
+ LEFT JOIN reinos r ON r.id = tp.reino_id
+ JOIN warehouse W ON W.id = T.warehouse_id
+ WHERE Fecha BETWEEN date_cyear_ini AND date_cyear_end
+ AND T.Id_Cliente NOT IN(400,200)
+ AND IF(i_wh = 0, W.is_comparative, i_wh = T.warehouse_id)
+ AND r.display <> 0
+
+ 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
+ SELECT
+
+ an.nicho, p.name Productor, C.Packing, C.Costefijo
+ ,A.Color, Id_Tipo as Tipo,A.tipo_id, o.Abreviatura as Origen, A.Categoria
+ ,A.Tallos, A.Medida, A.Article, TR.CodigoTrabajador
+
+ ,cweek1, cweek2, cweek3, cweek4, cweek5, cweek6, cweek7
+ ,lweek1, lweek2, lweek3, lweek4, lweek5, lweek6, lweek7
+
+ ,cprice1, cprice2, cprice3, cprice4, cprice5, cprice6, cprice7
+ ,lprice1, lprice2, lprice3, lprice4, lprice5, lprice6, lprice7
+
+ ,A.Id_Article, i.buy_id , tp.life , CAST(IFNULL(i.sd,0) AS SIGNED) as sd
+ ,CAST(i.avalaible AS SIGNED) avalaible, CAST(i.visible AS SIGNED) visible, i.buy_date
+ ,E.Id_Proveedor AS provider_id, t.Orden, t.Tinta
+ ,A.offer, A.bargain, A.comments, A.relevancy
+ ,IF(cy.Id_Article IS NULL AND i.visible = 0 AND i.avalaible = 0 AND IFNULL(i.sd, 0) = 0, FALSE, TRUE) AS filtret
+
+ FROM article_inventory i
+ JOIN Articles A ON A.Id_Article = i.article_id
+ LEFT JOIN Articles_nicho an ON A.Id_Article = an.Id_Article AND an.warehouse_id = %s
+ LEFT JOIN producer p ON p.producer_id = A.producer_id
+ LEFT JOIN Tipos tp ON A.tipo_id = tp.tipo_id
+ LEFT JOIN vn2008.reinos r ON r.id = tp.reino_id
+ LEFT JOIN Trabajadores TR ON TR.Id_Trabajador = tp.Id_Trabajador
+ LEFT JOIN Tintas t ON t.Id_Tinta = A.color
+ LEFT JOIN Compres C ON i.buy_id = C.Id_Compra
+ LEFT JOIN Entradas E USING(Id_Entrada)
+ LEFT JOIN Origen o ON o.id = A.id_origen
+ LEFT JOIN last_year ly ON ly.Id_Article = A.Id_Article
+ LEFT JOIN cur_year cy ON cy.Id_Article = A.Id_Article AND (i.avalaible <> 0 OR i.visible <> 0 OR cweek1 OR cweek2 OR cweek3 OR cweek4
+ OR cweek5 OR cweek6 OR cweek7 OR lweek1 OR lweek2 OR lweek3 OR lweek4 OR lweek5
+ OR lweek6 OR lweek7)
+ WHERE r.display <> 0 AND %s '
+
+ ,i_wh,strFILTRO
+ ));
+ ALTER TABLE remcom
+ CHANGE COLUMN `cweek1` `cweek1` INT NOT NULL,
+ CHANGE COLUMN `cweek2` `cweek2` INT NOT NULL,
+ CHANGE COLUMN `cweek3` `cweek3` INT NOT NULL,
+ CHANGE COLUMN `cweek4` `cweek4` INT NOT NULL,
+ CHANGE COLUMN `cweek5` `cweek5` INT NOT NULL,
+ CHANGE COLUMN `cweek6` `cweek6` INT NOT NULL,
+ CHANGE COLUMN `cweek7` `cweek7` INT NOT NULL,
+ CHANGE COLUMN `lweek1` `lweek1` INT NOT NULL,
+ CHANGE COLUMN `lweek2` `lweek2` INT NOT NULL,
+ CHANGE COLUMN `lweek3` `lweek3` INT NOT NULL,
+ CHANGE COLUMN `lweek4` `lweek4` INT NOT NULL,
+ CHANGE COLUMN `lweek5` `lweek5` INT NOT NULL,
+ CHANGE COLUMN `lweek6` `lweek6` INT NOT NULL,
+ 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 */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `compresFromTicket` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `compresFromTicket`(IN vTicketId BIGINT, IN vEntryId BIGINT)
+BEGIN
+
+ DECLARE vShipmentWarehouse INT;
+ DECLARE vShipmentDate INT;
+
+ SELECT warehouse_id_out, shipment
+ INTO vShipmentWarehouse, vShipmentDate
+ FROM travel tr
+ JOIN Entradas e ON e.travel_id = tr.id
+ WHERE Id_Entrada = vEntryId;
+
+ CALL item_last_buy_(vShipmentWarehouse,vShipmentDate);
+
+ INSERT INTO Compres(Id_Article,Cantidad, Id_Entrada, Id_Cubo, Packing, grouping, caja, Costefijo, Etiquetas)
+ SELECT m.Id_Article,
+ m.Cantidad,
+ vEntryId,
+ c.Id_Cubo,
+ c.Packing,
+ IF(c.grouping,c.grouping,1),
+ c.caja,
+ buyingAbsoluteCost(c.Id_Compra) Costefijo,
+ ifnull(floor(m.Cantidad / c.Packing),1) Etiquetas
+ FROM
+ Movimientos m
+ JOIN Articles a ON m.Id_Article = a.Id_Article
+ LEFT JOIN t_item_last_buy b ON m.Id_Article = b.item_id AND b.warehouse_id = vShipmentWarehouse
+ LEFT JOIN Compres c ON c.Id_Compra = b.buy_id
+ WHERE m.Id_Ticket = vTicketId;
+
+ CALL buy_tarifas_entry(vEntryId);
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `CompresTriggerBeforeDelete` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `CompresTriggerBeforeDelete`(oldId INT, oldEntrada INT)
+BEGIN
+
+ DECLARE hasToRecalculate BOOLEAN;
+ DECLARE newWarehouse INT;
+
+ SELECT Id_Compra INTO hasToRecalculate FROM vn.lastBuy lb
+ WHERE lb.id = oldId LIMIT 1;
+
+ IF hasToRecalculate THEN
+ SELECT warehouse_id INTO newWarehouse FROM travel t
+ JOIN Entradas e ON t.id = e.travel_id
+ WHERE e.Id_Entrada = oldEntrada;
+
+ CALL vn.lastBuyRefresh(newWarehouse);
+ END IF;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `compresTriggerBeforeInsert` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `compresTriggerBeforeInsert`(newNoVincular INT, newEntrada INT, newCompra INT, newItem INT)
+BEGIN
+ DECLARE newWarehouse INTEGER;
+
+ IF newNoVincular = FALSE THEN
+
+ UPDATE travel t
+ JOIN vn.lastBuy lb ON newItem = lb.item AND t.warehouse_id = lb.warehouse
+ JOIN Entradas e ON e.travel_id = t.id
+ SET lb.id = newCompra
+ WHERE e.Id_Entrada = newEntrada AND t.landing > lb.landing AND t.landing <= CURDATE();
+
+ END IF;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `compresTriggerBeforeUpdate` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `compresTriggerBeforeUpdate`(vOldEntrada INT, vNewEntrada INT, oldItem INT,
+ newItem INT, newNoVincular BOOLEAN, newCompra INT)
+BEGIN
+ DECLARE newWarehouse INTEGER;
+ DECLARE hasToRecalculate BOOLEAN;
+
+ IF newNoVincular = FALSE THEN
+ IF oldItem <> newItem OR vOldEntrada <> vNewEntrada THEN
+ SELECT Id_Compra INTO hasToRecalculate FROM travel t
+ JOIN Entradas e ON e.travel_id = t.id
+ JOIN vn.lastBuy lb ON lb.id = newCompra
+ WHERE e.Id_Entrada = vOldEntrada LIMIT 1;
+
+ IF hasToRecalculate THEN
+ SELECT warehouse_id INTO newWarehouse FROM travel t
+ JOIN Entradas e ON t.id = e.travel_id
+ WHERE e.Id_Entrada = vOldEntrada;
+ CALL vn.lastBuyRefresh(newWarehouse);
+ END IF;
+ END IF;
+ IF vOldEntrada <> vNewEntrada THEN
+
+ UPDATE Entradas oldEntrada
+ JOIN travel oldTravel ON oldEntrada.travel_id = oldtravel.id
+ JOIN Entradas newEntrada ON newEntrada.Id_Entrada = vNewEntrada
+ JOIN travel newTravel ON newTravel.id = newEntrada.travel_id
+ JOIN vn.lastBuy lb ON newItem = lb.item AND newTravel.warehouse_id = lb.warehouse
+ SET lb.id = newCompra
+ WHERE oldEntrada.Id_Entrada = vOldEntrada AND oldTravel.warehouse_id <> newTravel.warehouse_id
+ AND newTravel.landing > lb.landing AND newTravel.landing <= CURDATE();
+ END IF;
+ END IF;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `confection_control_source` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `confection_control_source`(vScopeDays TINYINT)
+BEGIN
+
+ DECLARE vMidnight DATETIME DEFAULT TIMESTAMP(CURDATE(),'23:59:59');
+ DECLARE vEndingDate DATETIME DEFAULT TIMESTAMPADD(DAY,vScopeDays,vMidnight);
+ DECLARE SAFE_ALERT_LEVEL INT DEFAULT 3;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.production_buffer;
+
+ CREATE TEMPORARY TABLE tmp.production_buffer
+ ENGINE = MEMORY
+ SELECT
+ date(t.Fecha) as Fecha,
+ hour(t.Fecha) as Hora,
+ hour(t.Fecha) as Departure,
+ t.Id_Ticket,
+ m.Id_Movimiento,
+ m.Cantidad,
+ m.Concepte,
+ ABS(m.Reservado) Reservado,
+ i.Categoria,
+ t.Alias as Cliente,
+ wh.name as Almacen,
+ t.warehouse_id,
+ cs.province_id,
+ a.agency_id,
+ ct.description as Taller,
+ stock.visible,
+ stock.available
+ FROM vn2008.Tickets t
+ JOIN vn2008.Agencias a ON a.Id_Agencia = t.Id_Agencia
+ JOIN vn2008.warehouse wh ON wh.id = t.warehouse_id
+ JOIN vn2008.Movimientos m ON m.Id_Ticket = t.Id_Ticket
+ JOIN vn2008.Articles i ON i.Id_Article = m.Id_Article
+ JOIN vn2008.Tipos tp ON tp.tipo_id = i.tipo_id
+ JOIN vn.confectionType ct ON ct.id = tp.confeccion
+ JOIN vn2008.Consignatarios cs on cs.Id_Consigna = t.Id_Consigna
+ LEFT JOIN vn.ticketState tls on tls.ticket = t.Id_Ticket
+ LEFT JOIN
+ (
+ SELECT item_id, sum(visible) visible, sum(available) available
+ FROM
+ (
+ SELECT a.item_id, 0 as visible, a.available
+ FROM cache.cache_calc cc
+ LEFT JOIN cache.available a ON a.calc_id = cc.id
+ WHERE cc.cache_id IN (2,8)
+ AND cc.params IN (concat("1/", CURDATE()),concat("44/", CURDATE()))
+
+ UNION ALL
+
+ SELECT v.item_id, v.visible, 0 as available
+ FROM cache.cache_calc cc
+ LEFT JOIN cache.visible v ON v.calc_id = cc.id
+ where cc.cache_id IN (2,8) and cc.params IN ("1","44")
+ ) sub
+ GROUP BY item_id
+ ) stock ON stock.item_id = m.Id_Article
+ WHERE tp.confeccion
+ AND wh.hasConfectionTeam
+ 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,
+ Id_Ticket,
+ Cantidad,
+ Concepte,
+ Categoria,
+ Cliente,
+ Almacen,
+ Taller
+ )
+ SELECT
+ tr.shipment AS Fecha,
+ e.Id_Entrada AS Id_Ticket,
+ c.Cantidad,
+ a.Article,
+ a.Categoria,
+ whi.name as Cliente,
+ who.name as Almacen,
+ ct.description as Taller
+ FROM vn2008.Compres c
+ JOIN vn2008.Entradas e ON e.Id_Entrada = c.Id_Entrada
+ JOIN vn2008.travel tr ON tr.id = e.travel_id
+ JOIN vn2008.warehouse whi ON whi.id = tr.warehouse_id
+ JOIN vn2008.warehouse who ON who.id = tr.warehouse_id_out
+ JOIN vn2008.Articles a ON a.Id_Article = c.Id_Article
+ JOIN vn2008.Tipos tp ON tp.tipo_id = a.tipo_id
+ JOIN vn.confectionType ct ON ct.id = tp.confeccion
+ WHERE who.hasConfectionTeam
+ AND tp.confeccion
+ AND tr.shipment BETWEEN CURDATE() AND vEndingDate;
+
+
+ SELECT * FROM tmp.production_buffer;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `createBouquet` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `createBouquet`(
+ vName VARCHAR(50),
+ vType int,
+ vSize int,
+ vColour VARCHAR(5),
+ OUT vItem INT(11)
+
+)
+BEGIN
+ DECLARE vDate DATE;
+ DECLARE vCodintrastat INT(11);
+
+ -- COMPROBAMOS SI EXISTE UN ARTÍCULO IGUAL.
+ SELECT
+ Id_Article
+ INTO vItem FROM
+ Articles
+ WHERE
+ (Id_Article BETWEEN 161000 AND 169000)
+ AND Article LIKE CONCAT('%', vName)
+ AND tipo_id = vType
+ AND Medida = vSize
+ 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,
+ vName,
+ vType,
+ vSize,
+ vColour,
+ 1
+ );
+ END IF;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `createWorker` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `createWorker`(
+ vName VARCHAR(50),
+ vCognames VARCHAR(50),
+ vDNI VARCHAR(9),
+ vAddress TEXT,
+ vPostalCode VARCHAR(5),
+ vTown VARCHAR(25),
+ vProvince SMALLINT(5),
+ vCompany SMALLINT(5),
+ vPhone VARCHAR(11),
+ vMail VARCHAR(80) CHARSET utf8,
+ vDniExpiration DATETIME,
+ vEmployeeBoss INT
+)
+BEGIN
+ DECLARE vClient INT;
+ DECLARE vUser INT;
+ DECLARE vWorker INT;
+ DECLARE vWorkerCode VARCHAR(8);
+ 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;
+
+ INSERT INTO Clientes (Id_Cliente, Cliente, Domicilio, `IF`, Telefono, province_id, Poblacion, CodPostal, RazonSocial, Contacto, Oficial, Descuento, Codpos, pay_met_id, Vencimiento, Credito)
+ 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);
+
+ SET vWorker = LAST_INSERT_ID();
+ ELSE
+ 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 ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `credit_update` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `credit_update`()
+BEGIN
+
+DECLARE dblDiferencia DOUBLE DEFAULT 10.0;
+DECLARE dblImporteRec,auxdblImporteRec DOUBLE DEFAULT 0.0;
+DECLARE dblImporteFac,auxdblImporteFac DOUBLE DEFAULT 0.0;
+DECLARE intIdRecibo,auxintIdRecibo INT (11) DEFAULT 0;
+DECLARE intId_Cliente,auxintId_Cliente,intId_ClienteRec,auxintId_ClienteRec INT DEFAULT 0;
+DECLARE bitFin,bitFinRecord,bitFinRecord1 BIT DEFAULT 0;
+DECLARE datFechaVencimiento DATE DEFAULT CURDATE();
+DECLARE intEmpresa_id INT DEFAULT 0;
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `customerDebtEvolution` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `customerDebtEvolution`(IN vCustomer INT)
+BEGIN
+
+SELECT * FROM
+(
+ SELECT day, date, @s:= round(IFNULL(Euros,0) + @s,2) as Saldo, Euros, Credito, 0 as Cero
+ FROM
+ (
+ SELECT day, date, IFNULL(Euros,0) as Euros, Credito
+ FROM time
+ JOIN (SELECT @s:= 0, - Credito as Credito FROM Clientes WHERE Id_Cliente = vCustomer) c
+ LEFT JOIN
+ (SELECT Euros, date(Fecha) as Fecha FROM
+ (
+ SELECT Fechacobro as Fecha, Entregado as Euros
+ FROM Recibos
+ WHERE Id_Cliente = vCustomer
+ AND Fechacobro >= '2017-01-01'
+ UNION ALL
+ SELECT paymentday(f.Fecha,c.Vencimiento), - Importe
+ FROM Facturas f
+ JOIN Clientes c ON f.Id_Cliente = c.Id_Cliente
+ WHERE f.Id_Cliente = vCustomer
+ AND Fecha >= '2017-01-01'
+ UNION ALL
+ SELECT '2016-12-31', Debt
+ FROM bi.customerDebtInventory
+ WHERE Id_Cliente = vCustomer
+ UNION ALL
+ SELECT Fecha, - SUM(Cantidad * Preu * (100 - Descuento ) * 1.10 / 100)
+ FROM Tickets t
+ JOIN Movimientos m on m.Id_Ticket = t.Id_Ticket
+ WHERE Id_Cliente = vCustomer
+ AND Factura IS NULL
+ AND Fecha >= '2017-01-01'
+ GROUP BY Fecha
+ ) sub2
+ ORDER BY Fecha
+ )sub ON time.date = sub.Fecha
+ WHERE time.date BETWEEN '2016-12-31' AND CURDATE()
+ ORDER BY date
+ ) sub3
+)sub4
+;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `cycDueDateClassification` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `cycDueDateClassification`(vCompany INT,vDate DATE)
+BEGIN
+
+ SELECT Fecha, Clasificacion, CAST(SUM(Importe) AS DECIMAL(10,2)) as Importe, empresa_id
+ FROM
+ (
+ SELECT CASE
+ WHEN C.Vencimiento <= 30 THEN '0-30 dias'
+ WHEN C.Vencimiento BETWEEN 31 AND 60 THEN '31-60 dias'
+ WHEN C.Vencimiento BETWEEN 61 AND 90 THEN '61-90 dias'
+ ELSE '> 90 dias'
+ END AS Clasificacion,
+ F.Importe,
+ C.Fecha,
+ F.empresa_id
+
+ FROM cyc_declaration C
+ JOIN Facturas F USING(factura_id)
+ WHERE C.Riesgo > 0 AND C.Fecha = vDate AND F.empresa_id = vCompany
+
+ ) cyc
+ GROUP BY Fecha, Clasificacion, empresa_id;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `cycGeneralClassification` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `cycGeneralClassification`(vCompany INT,vDate DATE)
+BEGIN
+ SELECT Fecha, Clasificacion, CAST(SUM(Importe) AS DECIMAL(10,2)) as Importe, empresa_id
+ FROM
+ (
+ SELECT CASE IFNULL(C.Riesgo,-1)
+ WHEN 0 THEN 'No aseguradas'
+ WHEN -1 THEN 'Clasificacion nada'
+ ELSE 'Asegurados'
+ END AS Clasificacion,
+ F.Importe,
+ C.Fecha,
+ F.empresa_id
+
+ FROM cyc_declaration C
+ JOIN Facturas F ON F.factura_id = C.factura_id
+ WHERE C.Fecha = vDate AND F.empresa_id = vCompany
+
+ ) cyc
+ GROUP BY Fecha, Clasificacion, empresa_id;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `cycNoInsurancedClassification` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `cycNoInsurancedClassification`(vCompany INT,vDate DATE)
+BEGIN
+
+SELECT 'ORG. PUBLICOS' AS Tipo, C.Fecha, CAST(SUM(F.Importe) AS DECIMAL(10,2)) as Importe, F.empresa_id
+
+ FROM cyc_declaration C
+ INNER JOIN Facturas F USING(factura_id)
+ JOIN Clientes CL USING(Id_Cliente)
+ WHERE C.Riesgo IS NULL
+ AND LEFT(CL.`IF`,1) = 'G'
+ AND C.Fecha = vDate AND F.empresa_id = vCompany
+
+GROUP BY Fecha, F.empresa_id
+
+UNION ALL
+
+SELECT 'VINCULADAS' , C.Fecha, CAST(SUM(F.Importe) AS DECIMAL(10,2)) as Importe, F.empresa_id
+
+ FROM cyc_declaration C
+ INNER JOIN Facturas F USING(factura_id)
+ WHERE C.Riesgo IS NULL
+ AND F.Id_Cliente IN(2066, 2067)
+ AND C.Fecha = vDate AND F.empresa_id = vCompany
+
+GROUP BY Fecha, F.empresa_id
+
+UNION ALL
+
+SELECT 'CONTADO', C.Fecha, CAST(SUM(F.Importe) AS DECIMAL(10,2)) as Importe, F.empresa_id
+
+ FROM cyc_declaration C
+ INNER JOIN Facturas F USING(factura_id)
+ JOIN Clientes CL USING(Id_Cliente)
+ WHERE C.Riesgo IS NULL
+ AND pay_met_id = 1
+ AND LEFT(CL.`IF`,1) <> 'G'
+ AND F.Id_Cliente NOT IN(2066, 2067)
+ AND C.Fecha = vDate AND F.empresa_id = vCompany
+
+GROUP BY Fecha, F.empresa_id
+
+UNION ALL
+
+SELECT 'OTROS', C.Fecha, CAST(SUM(F.Importe) AS DECIMAL(10,2)) as Importe, F.empresa_id
+
+ FROM cyc_declaration C
+ INNER JOIN Facturas F USING(factura_id)
+ JOIN Clientes CL USING(Id_Cliente)
+ WHERE C.Riesgo IS NULL
+ AND pay_met_id <> 1
+ AND LEFT(CL.`IF`,1) <> 'G'
+ AND F.Id_Cliente NOT IN(2066, 2067)
+ AND C.Fecha = vDate AND F.empresa_id = vCompany
+
+GROUP BY Fecha, F.empresa_id
+
+
+;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `cyc_mensual` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `cyc_mensual`(IN datFEC DATE)
+BEGIN
+
+REPLACE cyc_declaration(factura_id, Riesgo, Fecha, Vencimiento)
+SELECT F.factura_id, R.Riesgo, @fecha, IFNULL(C.Vencimiento,0)
+FROM Facturas F
+INNER JOIN Clientes C ON F.Id_Cliente = C.Id_Cliente
+INNER JOIN empresa E ON E.id = F.empresa_id
+LEFT JOIN
+ ( SELECT *
+ FROM (
+ SELECT Id_Cliente, Riesgo
+ FROM cyc
+ WHERE Fecha <= @fecha:= TIMESTAMPADD(DAY, -1 * DAY(datFEC), datFEC)
+ ORDER BY Fecha DESC
+ ) sub
+ GROUP BY Id_Cliente
+ ) R ON F.Id_Cliente = R.Id_Cliente
+WHERE E.cyc
+AND periodo(Fecha) = periodo(@fecha)
+;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `cyc_report2kk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `cyc_report2kk`()
+BEGIN
+
+SELECT Fecha, Clasificacion, CAST(SUM(Importe) AS DECIMAL(10,2)) as Importe, empresa_id
+FROM
+(
+ SELECT CASE
+ WHEN C.Vencimiento <= 30 THEN '0-30 dias'
+ WHEN C.Vencimiento BETWEEN 31 AND 60 THEN '31-60 dias'
+ WHEN C.Vencimiento BETWEEN 61 AND 90 THEN '61-90 dias'
+ ELSE '> 90 dias'
+ END AS Clasificacion,
+ F.Importe,
+ C.Fecha,
+ F.empresa_id
+
+ FROM cyc_declaration C
+ INNER JOIN Facturas F USING(factura_id)
+ WHERE C.Riesgo > 0
+
+) cyc
+GROUP BY Fecha, Clasificacion, empresa_id;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `cyc_reportkk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `cyc_reportkk`()
+BEGIN
+
+SELECT Fecha, Clasificacion, CAST(SUM(Importe) AS DECIMAL(10,2)) as Importe, empresa_id
+FROM
+(
+ SELECT CASE IFNULL(C.Riesgo,-1)
+ WHEN 0 THEN 'No aseguradas'
+ WHEN -1 THEN 'Sin clasificar'
+ ELSE 'Asegurados'
+ END AS Clasificacion,
+ F.Importe,
+ C.Fecha,
+ F.empresa_id
+
+ FROM cyc_declaration C
+ INNER JOIN Facturas F USING(factura_id)
+
+) cyc
+GROUP BY Fecha, Clasificacion, empresa_id;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `defaulterRanking` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `defaulterRanking`()
+BEGIN
+
+SELECT
+ c.Id_Cliente,
+ hasChanged,
+ Cliente,
+ amount as Deuda,
+ CodigoTrabajador,
+ CyC,
+ Apuntador,
+ Fecha_obs,
+ last_obs,
+ defaulterSince
+from
+ bi.defaulters d
+ join
+ (
+ SELECT customer_id Id_Cliente,SUM(amount) AS Saldo
+ FROM bi.customerRiskOverdue
+ GROUP BY customer_id
+ ) saldos ON saldos.Id_Cliente = d.client
+ join
+ Clientes c on c.Id_Cliente = d.client
+ join
+ Trabajadores t USING (Id_Trabajador)
+left join
+(
+SELECT Id_Cliente, last_obs, CodigoTrabajador as Apuntador, Fecha as Fecha_obs
+FROM
+(
+SELECT Id_Cliente, `text` as last_obs, CodigoTrabajador, client_observation.odbc_date as Fecha
+FROM client_observation
+JOIN Trabajadores using(Id_Trabajador)
+order by client_observation.odbc_date desc
+) sub GROUP BY Id_Cliente
+) obs on obs.Id_Cliente = d.client
+WHERE
+date = CURDATE()
+and amount > 0
+and not (Saldo > amount AND amount < 0)
+and CodigoTrabajador not in ('CYC','BUD','EJE')
+ORDER BY amount DESC;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `desglose_volume` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `desglose_volume`(IN agency_id INT)
+BEGIN
+ DECLARE v_start DATETIME DEFAULT TIMESTAMP(CURDATE());
+ DECLARE v_end DATETIME DEFAULT TIMESTAMP(CURDATE(), '23:59:59');
+
+ SET v_start = IF(WEEKDAY(CURDATE()), CURDATE(),TIMESTAMPADD(DAY,-1,CURDATE()));
+ SET v_start = IF(CURDATE() = '2014-05-02', '2014-05-01',v_start);
+
+ DROP TEMPORARY TABLE IF EXISTS zeleVOL;
+ CREATE TEMPORARY TABLE zeleVOL
+ (
+ Id_Ticket INT PRIMARY KEY
+ ,Provincia VARCHAR(30)
+ ,Bultos INT DEFAULT 0
+ ,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)
+ FROM Tickets t
+ JOIN Consignatarios c USING(Id_Consigna)
+ JOIN province p ON c.province_id = p.province_id
+ JOIN Movimientos m USING(Id_Ticket)
+ 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 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)
+ FROM expeditions e
+ JOIN Tickets t ON ticket_id = Id_Ticket
+ JOIN Consignatarios c USING(Id_Consigna)
+ JOIN province p ON c.province_id = p.province_id
+ 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 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
+ FROM
+ (
+ SELECT p.name AS province, Id_Ticket, COUNT(Id_Movimiento) l, SUM(Cantidad) c
+ FROM Movimientos m
+ JOIN Tickets t USING(Id_Ticket)
+ JOIN Consignatarios c USING(Id_Consigna)
+ JOIN province p ON c.province_id = p.province_id
+ JOIN Agencias a ON a.Id_Agencia = t.Id_Agencia
+ 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 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
+ GROUP BY Provincia;
+
+ DROP TEMPORARY TABLE IF EXISTS zeleVOL;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `dif_porte` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+create temporary table tmp.bionic_porte
+select Id_Ticket, sum(Valor * Cantidad) as bionic
+from vn2008.Movimientos m
+join vn2008.Movimientos_componentes mc using(Id_Movimiento)
+where Id_Componente = 15
+group by Id_Ticket;
+
+ALTER TABLE tmp.bionic_porte
+ADD KEY bp_Id_Ticket_ix (Id_Ticket);
+
+
+drop temporary table if exists tmp.shipping_porte;
+create temporary table tmp.shipping_porte
+select Id_Ticket, shipping_charge from vn2008.v_expeditions_shipping_charge where Fecha >= datFEC;
+
+ALTER TABLE tmp.shipping_porte
+ADD KEY sp_Id_Ticket_ix (Id_Ticket);
+
+
+drop temporary table if exists tmp.greuge_porte;
+create temporary table tmp.greuge_porte
+select Id as Id_Greuge, cast(right(Comentario,7) as decimal(10,0)) Id_Ticket, Importe
+FROM vn2008.Greuges
+where Comentario like 'dif_porte%';
+ALTER TABLE tmp.greuge_porte
+ADD KEY Id_Ticket_ix (Id_Ticket);
+select * from tmp.greuge_porte;
+
+
+
+SELECT Id_Ticket,shipping_charge as Teorico, bionic as Practico, Importe as Greuge, shipping_charge - bionic - Importe as dif
+FROM tmp.shipping_porte
+join tmp.greuge_porte using(Id_Ticket)
+join tmp.bionic_porte using(Id_Ticket)
+
+;
+
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `Ditacio` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `Ditacio`(IN intId INT,IN straccion varchar(100),IN strtabla CHAR(1),IN intIdTrabajador INT,
+IN straccion_old VARCHAR(100),IN straccion_new VARCHAR(100))
+proc_label:BEGIN
+
+ DECLARE intlengthaccion TINYINT;
+ DECLARE strtabla_dits VARCHAR(35);
+
+ SELECT CASE
+ WHEN strtabla='A' THEN 'Articles_dits'
+ WHEN strtabla='I' THEN 'Inventario_dits'
+ WHEN strtabla='E' THEN 'Entradas_dits'
+ WHEN strtabla='T' THEN 'Tickets_dits'
+ WHEN strtabla='C' THEN 'Clientes_dits'
+ WHEN strtabla='V' THEN 'travel_dits'
+ WHEN strtabla='R' THEN 'Rutas_dits'
+ WHEN strtabla='G' THEN 'Agencias_dits'
+ WHEN strtabla='S' THEN 'salarioDits'
+ ELSE NULL
+ END
+ INTO strtabla_dits;
+
+ IF (strtabla_dits IS NULL)
+ THEN LEAVE proc_label;
+ END IF;
+
+ SET @intIdTrabajador = intIdTrabajador;
+ SET @intId = intId;
+ SET @strvalue_old = straccion_old;
+ SET @strvalue_new = straccion_new;
+ SET @intidaccion = NULL;
+
+ SELECT idaccion_dits
+ INTO @intidaccion
+ FROM accion_dits
+ WHERE accion=left(straccion,CHAR_LENGTH(accion))
+ 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
+ SET @intidaccion = 103;
+ END IF;
+
+ SET @SQL=CONCAT('INSERT INTO ',strtabla_dits,' (idaccion_dits,Id_Trabajador,Id_Ticket,value_old,value_new)
+ VALUES (?,?,?,?,?)');
+
+ PREPARE stmt1 FROM @SQL;
+ EXECUTE stmt1 USING @intidaccion,@intIdTrabajador,@intId,@strvalue_old,@strvalue_new;
+ DEALLOCATE PREPARE stmt1;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `emailYesterdayPurchasesByConsigna` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `emailYesterdayPurchasesByConsigna`(IN v_Date DATE, IN v_Client_Id INT)
+BEGIN
+
+
+DECLARE MyIdTicket BIGINT;
+DECLARE MyAlias VARCHAR(50);
+DECLARE MyDomicilio VARCHAR(255);
+DECLARE MyPoblacion VARCHAR(25);
+DECLARE MyImporte DOUBLE;
+DECLARE MyMailTo VARCHAR(250);
+DECLARE MyMailReplyTo VARCHAR(250);
+DECLARE done INT DEFAULT FALSE;
+DECLARE emptyList INT DEFAULT 0;
+DECLARE txt TEXT;
+
+DECLARE rs CURSOR FOR
+SELECT t.Id_Ticket, Alias, cast(amount as decimal(10,2)) Importe, Domicilio, POBLACION
+FROM Tickets t
+JOIN Consignatarios cs on t.Id_Consigna = cs.Id_Consigna
+JOIN v_ticket_amount v on v.Id_Ticket = t.Id_Ticket
+WHERE t.Fecha BETWEEN v_Date AND dayend(v_Date)
+AND t.Id_Cliente = v_Client_Id;
+
+DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
+
+SET v_Date = IFNULL(v_Date, util.yesterday());
+
+OPEN rs;
+
+FETCH rs INTO MyIdTicket, MyAlias, MyImporte, MyDomicilio, MyPoblacion;
+
+SET emptyList = done;
+
+SET txt = CONCAT('
',
+ ' Relación de envíos.
',
+ 'Dia: ', v_Date, '
');
+
+WHILE NOT done DO
+
+ SET txt = CONCAT(txt, '
',
+ ''
+ , ' ', MyAlias, '
'
+ , ' ', MyDomicilio, '(', MyPoblacion, ')');
+
+FETCH rs INTO MyIdTicket, MyAlias, MyImporte, MyDomicilio, MyPoblacion;
+
+END WHILE;
+
+
+SET txt = CONCAT(txt,
+ '',
+ '
Puede acceder al detalle de los albaranes haciendo click sobre el número de Ticket',
+ '
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
+
+ SET MyMailTo = 'isabel@elisabethblumen.com,emunozca@loewe.es,pako@verdnatura.es';
+
+ END IF;
+
+ INSERT INTO mail(`to`, reply_to, subject, text)
+ VALUES (IFNULL(MyMailTo,'pako.natek@gmail.com'),'pako@verdnatura.es','Resumen de pedidos preparados',txt);
+
+END IF;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `emailYesterdayPurchasesLauncher` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `emailYesterdayPurchasesLauncher`()
+BEGIN
+
+DECLARE done INT DEFAULT 0;
+DECLARE vMyClientId INT;
+
+DECLARE rs CURSOR FOR
+SELECT Id_Cliente
+FROM Clientes
+WHERE EYPBC != 0;
+
+DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
+
+OPEN rs;
+
+FETCH rs INTO vMyClientId;
+
+WHILE NOT done DO
+
+ CALL emailYesterdayPurchasesByConsigna(util.yesterday(), vMyClientId);
+
+ FETCH rs INTO vMyClientId;
+
+END WHILE;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `embalajes_stocks` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `embalajes_stocks`(IN idPEOPLE INT, IN bolCLIENT BOOLEAN)
+BEGIN
+
+if bolCLIENT then
+
+ select m.Id_Article, Article, - cast(sum(m.Cantidad) as decimal) as Saldo
+ from Movimientos m
+ join Articles a on m.Id_Article = a.Id_Article
+ join Tipos tp on tp.tipo_id = a.tipo_id
+ join Tickets t using(Id_Ticket)
+ join Consignatarios cs using(Id_Consigna)
+ where cs.Id_Cliente = idPEOPLE
+ and Tipo = 'Contenedores'
+ and t.Fecha > '2010-01-01'
+ group by m.Id_Article;
+
+else
+
+select Id_Article, Article, sum(Cantidad) as Saldo
+from
+(select Id_Article, Cantidad
+from Compres c
+join Articles a using(Id_Article)
+join Tipos tp using(tipo_id)
+join Entradas e using(Id_Entrada)
+join travel tr on tr.id = travel_id
+where Id_Proveedor = idPEOPLE
+and landing >= '2010-01-01'
+and reino_id = 6
+
+union all
+
+select Id_Article, - Cantidad
+from Movimientos m
+join Articles a using(Id_Article)
+join Tipos tp using(tipo_id)
+join Tickets t using(Id_Ticket)
+join Consignatarios cs using(Id_Consigna)
+join proveedores_clientes pc on pc.Id_Cliente = cs.Id_Cliente
+where Id_Proveedor = idPEOPLE
+and reino_id = 6
+and t.Fecha > '2010-01-01') mov
+
+join Articles a using(Id_Article)
+group by Id_Article;
+
+end if;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `embalajes_stocks_detalle` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `embalajes_stocks_detalle`(IN idPEOPLE INT, IN idARTICLE INT, IN bolCLIENT BOOLEAN)
+BEGIN
+
+
+if bolCLIENT then
+
+ select m.Id_Article
+ , Article
+ , IF(Cantidad < 0, - Cantidad, NULL) as Entrada
+ , IF(Cantidad < 0, NULL, Cantidad) as Salida
+ , 'T' as Tabla
+ , t.Id_Ticket as Registro
+ , t.Fecha
+ , w.name as Almacen
+ , cast(Preu as Decimal(5,2)) Precio
+ , c.Cliente as Proveedor
+ , abbreviation as Empresa
+ from Movimientos m
+ join Articles a using(Id_Article)
+ join Tickets t using(Id_Ticket)
+ join empresa e on e.id = t.empresa_id
+ join warehouse w on w.id = t.warehouse_id
+ join Consignatarios cs using(Id_Consigna)
+ join Clientes c on c.Id_Cliente = cs.Id_Cliente
+ where cs.Id_Cliente = idPEOPLE
+ and m.Id_Article = idARTICLE
+ and t.Fecha > '2010-01-01';
+
+else
+
+select Id_Article, Tabla, Registro, Fecha, Article
+, w.name as Almacen, Entrada, Salida, Proveedor, cast(Precio as Decimal(5,2)) Precio
+
+from
+
+(select Id_Article
+ , IF(Cantidad > 0, Cantidad, NULL) as Entrada
+ , IF(Cantidad > 0, NULL,- Cantidad) as Salida
+ , 'E' as Tabla
+ , Id_Entrada as Registro
+ , landing as Fecha
+ , tr.warehouse_id
+ , Costefijo as Precio
+from Compres c
+join Entradas e using(Id_Entrada)
+join travel tr on tr.id = travel_id
+where Id_Proveedor = idPEOPLE
+and Id_Article = idARTICLE
+and landing >= '2010-01-01'
+
+union all
+
+select Id_Article
+ , IF(Cantidad < 0, - Cantidad, NULL) as Entrada
+ , IF(Cantidad < 0, NULL, Cantidad) as Salida
+ , 'T'
+ , Id_Ticket
+ , Fecha
+ , t.warehouse_id
+ , Preu
+from Movimientos m
+join Tickets t using(Id_Ticket)
+join Consignatarios cs using(Id_Consigna)
+join proveedores_clientes pc on pc.Id_Cliente = cs.Id_Cliente
+where Id_Proveedor = idPEOPLE
+and Id_Article = idARTICLE
+and t.Fecha > '2010-01-01') mov
+
+join Articles a using(Id_Article)
+join Proveedores p on Id_Proveedor = idPEOPLE
+join warehouse w on w.id = mov.warehouse_id
+;
+
+end if;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `EntradasTriggerBeforeDelete` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `EntradasTriggerBeforeDelete`(oldTravel INT, oldId INT)
+BEGIN
+
+ DECLARE hasToRecalculate BOOLEAN;
+ DECLARE newWarehouse INT;
+
+ SELECT Id_Compra INTO hasToRecalculate FROM Compres c
+ JOIN vn.lastBuy lb ON lb.id = c.Id_Compra
+ WHERE c.Id_Entrada = newId LIMIT 1;
+ IF hasToRecalculate THEN
+ SELECT warehouse_id INTO newWarehouse FROM travel WHERE id = oldTravel;
+ CALL vn.lastBuyRefresh(newWarehouse);
+ END IF;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `EntradasTriggerBeforeUpdate` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `EntradasTriggerBeforeUpdate`(oldTravel INT, newTravel INT, oldRedada BOOLEAN,
+ newRedada BOOLEAN, newId INT)
+BEGIN
+ DECLARE newWarehouse INTEGER;
+ DECLARE hasToRecalculate BOOLEAN;
+
+ IF oldRedada <> newRedada OR newTravel IS NULL THEN
+
+ SELECT Id_Compra INTO hasToRecalculate FROM Compres c
+ JOIN vn.lastBuy lb ON lb.id = c.Id_Compra
+ WHERE c.Id_Entrada = newId LIMIT 1;
+ IF hasToRecalculate THEN
+ SELECT warehouse_id INTO newWarehouse FROM travel WHERE id = newtravel;
+ CALL vn.lastBuyRefresh(newWarehouse);
+ END IF;
+ END IF;
+
+ IF newTravel <> oldTravel AND newTravel IS NOT NULL THEN
+ UPDATE travel t
+ JOIN Compres c ON c.Id_Entrada = newId
+ JOIN vn.lastBuy lb ON c.Id_Article = lb.item AND t.warehouse_id = lb.warehouse
+ SET lb.id = c.Id_Compra
+ WHERE t.id = newTravel AND t.landing BETWEEN date_inv() AND util.yesterday()
+ AND t.landing > lb.landing;
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `Entradas_Restar` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `Entradas_Restar`(IN Id_Minuendo INT, IN Id_Sustraendo INT)
+BEGIN
+
+UPDATE Compres c
+JOIN
+(
+ SELECT Id_Article, Cantidad
+ FROM Compres
+ WHERE Id_Entrada = Id_Sustraendo
+) sub using(Id_Article)
+SET c.Cantidad = c.Cantidad - sub.Cantidad
+WHERE Id_Entrada = Id_Minuendo;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `entryFromOrder` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `entryFromOrder`(IN vShipmentWarehouse INTEGER, IN vLandingWarehouse INTEGER, IN vItem INTEGER,
+ IN vAmount INTEGER,IN vVolume INTEGER,vCost DECIMAL(10,2), IN vRetailedPrice DECIMAL(10,2), vInOutDate DATE)
+BEGIN
+
+ DECLARE vTravel INT;
+ 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'
+ 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
+ INSERT INTO Cubos (Id_Cubo, Volumen)
+ VALUES (CONCAT('dm',vVolume/1000), vVolume);
+ SELECT LAST_INSERT_ID() INTO vBucket;
+ END IF;
+
+ INSERT INTO Compres(Id_Article,Cantidad, Id_Entrada, Id_Cubo, Packing, grouping, caja, Costefijo, Portefijo, Embalajefijo,
+ Comisionfija, Tarifa2, Tarifa3)
+ VALUES(vItem,
+ vAmount,
+ vEntry,
+ vBucket,
+ 1,
+ 1,
+ 0,
+ vCost,
+ 0,
+ 0,
+ 0,
+ vRetailedPrice,
+ vRetailedPrice);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `entryFromTicket` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `entryFromTicket`(IN vTicket INTEGER, IN vLandingWarehouse INTEGER)
+BEGIN
+
+ DECLARE vShipmentWarehouse INT;
+ DECLARE vLandingDate DATE;
+ DECLARE vShipmentDate DATE;
+ DECLARE vTravel INT;
+ DECLARE vEntry INT;
+
+ 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)
+ VALUES (vShipmentDate, vLandingDate, vLandingWarehouse, vShipmentWarehouse, 15);
+ 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'
+ SELECT LAST_INSERT_ID() INTO vEntry;
+ END IF;
+
+ CALL item_last_buy_(vShipmentWarehouse,vShipmentDate);
+
+ INSERT INTO Compres(Id_Article,Cantidad, Id_Entrada, Id_Cubo, Packing, grouping, caja, Costefijo, Portefijo, Embalajefijo,
+ Comisionfija, Tarifa2, Tarifa3)
+ SELECT m.Id_Article,
+ m.Cantidad,
+ vEntry,
+ c.Id_Cubo,
+ c.Packing,
+ IF(c.grouping,c.grouping,1),
+ c.caja,
+ Costefijo,
+ c.Portefijo,
+ c.Embalajefijo,
+ c.Comisionfija,
+ m.Preu Tarifa2,
+ m.Preu Tarifa3
+ FROM
+ Movimientos m
+ JOIN Articles a ON m.Id_Article = a.Id_Article
+ LEFT JOIN t_item_last_buy b ON m.Id_Article = b.item_id AND b.warehouse_id = vShipmentWarehouse
+ LEFT JOIN Compres c ON c.Id_Compra = b.buy_id
+ WHERE m.Id_Ticket = vTicket;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `entryWithItem` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `entryWithItem`(IN vShipmentWarehouse INTEGER, IN vLandingWarehouse INTEGER,
+ IN vItem INTEGER, IN vAmount INTEGER,IN vVolume INTEGER, IN vGrossMargin DECIMAL(10,2), vInOutDate DATE)
+BEGIN
+
+ DECLARE vLandingWarehouse INT;
+ DECLARE vLandingDate DATE;
+ DECLARE vShipmentDate DATE;
+ DECLARE vTravel INT;
+ 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'
+ 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)
+ VALUES (CONCAT('dm',vVolume/1000), vVolume);
+ SELECT LAST_INSERT_ID() INTO vBucket;
+ END IF;
+
+ INSERT INTO Compres(Id_Article,Cantidad, Id_Entrada, Id_Cubo, Packing, grouping, caja, Costefijo, Portefijo, Embalajefijo,
+ Comisionfija, Tarifa2, Tarifa3)
+ SELECT vItem,
+ vAmount,
+ vEntry,
+ vBucket,
+ 1 Packing,
+ 1 grouping,
+ 0 caja,
+ SUM(m.Preu),
+ 0 Portefijo,
+ 0 Embalajefijo,
+ 0 Comisionfija,
+ SUM(m.Preu) + vGrossMargin Tarifa2,
+ SUM(m.Preu) + vGrossMargin Tarifa3
+ FROM
+ Movimientos m
+ WHERE m.Id_Ticket = vTicket;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `envios_masivos` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+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
+FROM Tickets t
+JOIN Consignatarios c
+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
+FROM Tickets t
+JOIN Movimientos m
+WHERE m.Id_Ticket = idTICKET
+AND t.Id_Consigna BETWEEN IdCONSIGNA_DESDE AND IdCONSIGNA_HASTA;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `etiqueta_sambori` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `etiqueta_sambori`(IN lngEXPEDITION BIGINT, IN intMODE INT, IN intH INT, IN intFILAS INT)
+BEGIN
+
+DECLARE intCOLUMNAS INT;
+DECLARE intBULTOS INT;
+DECLARE intDESCARGAS INT;
+DECLARE intRUTA INT;
+DECLARE intPOSICIONES INT;
+
+
+
+SELECT Id_Ruta INTO intRUTA
+FROM Tickets t
+JOIN expeditions e on e.ticket_id = t.Id_Ticket
+WHERE e.expeditions_id = lngEXPEDITION;
+
+
+SELECT sum(Bultos) , count(*) , CEIL(SUM(CEIL(Bultos / intH)) / intFILAS), SUM(CEIL(Bultos / intH))
+ INTO intBULTOS,intDESCARGAS, intCOLUMNAS, intPOSICIONES
+from
+(
+SELECT Id_Consigna, sum(Bultos) Bultos
+FROM Tickets
+WHERE Id_Ruta = intRUTA
+group by Id_Consigna
+) sub;
+
+
+
+
+IF intMODE <> 2 THEN
+
+ SELECT
+ CONCAT( IF(posicion_min MOD intFILAS = 0, intFILAS, posicion_min MOD intFILAS)
+ , MID(' BCDEFG',CEIL(posicion_min /intFILAS),1)
+ , IF(posicion_min = posicion_max,'',' - ')
+ , IF(posicion_min = posicion_max,'',IF(posicion_max MOD intFILAS = 0, intFILAS, posicion_max MOD intFILAS))
+ , IF(posicion_min = posicion_max,'',MID(' BCDEFG',CEIL(posicion_max /intFILAS),1))
+
+ ) sambori,
+ t.Prioridad,
+ t.Id_Consigna,
+ CONCAT(e.counter, ' / ', t.Bultos) count_bultos,
+ e.expeditions_id,
+ zone,
+ Matricula Vehiculo,
+ trab.CodigoTrabajador Chofer,
+ Rutas.Id_Ruta,
+ RIGHT(Rutas.Id_Ruta, 2) Id_RutaSTR,
+ t.Bultos TotalBultos,
+ RIGHT(e.expeditions_id,3) expeditions_IDSTR
+ FROM
+ expeditions e
+ JOIN
+ Tickets t ON e.ticket_id = t.Id_Ticket
+ JOIN
+ (
+ select Prioridad, cast(@s - 1 as decimal(3,0)) as posicion_max, @s:= cast(@s - ubicaciones as decimal(3,0)) as posicion_min
+ from
+ (
+ select t.Prioridad, sum(t.Bultos) as bultos, CEIL(sum(t.bultos) / intH) as ubicaciones, @s := intPOSICIONES + 1
+ from Tickets t
+ where Id_Ruta = intRUTA
+ group by Prioridad) sub
+
+ ) posiciones on posiciones.Prioridad = t.Prioridad
+
+ JOIN
+ Consignatarios cs ON cs.Id_Consigna = t.Id_Consigna
+ JOIN
+ province p USING (province_id)
+ JOIN
+ Rutas ON t.Id_Ruta = Rutas.Id_Ruta
+ left JOIN
+ Vehiculos veh USING (Id_vehiculo)
+ left JOIN
+ Trabajadores trab ON Rutas.Id_Trabajador = trab.Id_Trabajador
+ WHERE
+ expeditions_id = lngEXPEDITION;
+ELSE
+
+
+ SELECT
+ CEIL((SUM(IF(t.Prioridad > t1.Prioridad,
+ t1.Bultos,
+ 0)) + e.Counter) / CEIL(SUM(t1.Bultos) / 13)) sambori,
+ t.Prioridad,
+ t.Id_Consigna,
+ CONCAT(e.counter, ' / ', t.Bultos) count_bultos,
+ e.expeditions_id,
+ zone,
+ Matricula Vehiculo,
+ trab.CodigoTrabajador Chofer,
+ Rutas.Id_Ruta,
+ RIGHT(Rutas.Id_Ruta, 2) Id_RutaSTR,
+ t.Bultos TotalBultos,
+ RIGHT(e.expeditions_id,3) expeditions_IDSTR
+ FROM
+ expeditions e
+ JOIN
+ Tickets t ON e.ticket_id = t.Id_Ticket
+ JOIN
+ Tickets t1 ON t.Id_Ruta = t1.Id_Ruta
+ JOIN
+ Consignatarios cs ON cs.Id_Consigna = t.Id_Consigna
+ JOIN
+ province p USING (province_id)
+ JOIN
+ Rutas ON t1.Id_Ruta = Rutas.Id_Ruta
+ LEFT JOIN
+ Vehiculos veh USING (Id_vehiculo)
+ LEFT JOIN
+ Trabajadores trab ON Rutas.Id_Trabajador = trab.Id_Trabajador
+ WHERE
+ expeditions_id = lngEXPEDITION;
+END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `etiqueta_sambori_2` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `etiqueta_sambori_2`(IN lngEXPEDITION BIGINT, IN intMODE INT, IN intH INT, IN intFILAS INT)
+BEGIN
+
+DECLARE intCOLUMNAS INT;
+DECLARE intBULTOS INT;
+DECLARE intDESCARGAS INT;
+DECLARE intRUTA INT;
+DECLARE intPOSICIONES INT;
+
+
+
+SELECT Id_Ruta INTO intRUTA
+FROM Tickets t
+JOIN expeditions e on e.ticket_id = t.Id_Ticket
+WHERE e.expeditions_id = lngEXPEDITION;
+
+
+SELECT sum(Bultos) , count(*) , CEIL(SUM(CEIL(Bultos / intH)) / intFILAS), SUM(CEIL(Bultos / intH))
+ INTO intBULTOS,intDESCARGAS, intCOLUMNAS, intPOSICIONES
+from
+(
+SELECT Id_Consigna, sum(Bultos) Bultos
+FROM Tickets
+WHERE Id_Ruta = intRUTA
+group by Id_Consigna
+) sub;
+
+
+
+
+IF intMODE <> 2 THEN
+
+ SELECT
+ CONCAT( IF(posicion_min MOD intFILAS = 0, intFILAS, posicion_min MOD intFILAS)
+ , MID(' BCDEFG',CEIL(posicion_min /intFILAS),1)
+ , IF(posicion_min = posicion_max,'',' - ')
+ , IF(posicion_min = posicion_max,'',IF(posicion_max MOD intFILAS = 0, intFILAS, posicion_max MOD intFILAS))
+ , IF(posicion_min = posicion_max,'',MID(' BCDEFG',CEIL(posicion_max /intFILAS),1))
+
+ ) sambori,
+ t.Prioridad,
+ t.Id_Consigna,
+ CONCAT(e.counter, ' / ', t.Bultos) count_bultos,
+ e.expeditions_id,
+ zone,
+ Matricula Vehiculo,
+ trab.CodigoTrabajador Chofer,
+ Rutas.Id_Ruta,
+ RIGHT(Rutas.Id_Ruta, 2) Id_RutaSTR
+ FROM
+ expeditions e
+ JOIN
+ Tickets t ON e.ticket_id = t.Id_Ticket
+ JOIN
+ (
+ select Prioridad, cast(@s - 1 as decimal(3,0)) as posicion_max, @s:= cast(@s - ubicaciones as decimal(3,0)) as posicion_min
+ from
+ (
+ select t.Prioridad, sum(t.Bultos) as bultos, CEIL(sum(t.bultos) / intH) as ubicaciones, @s := intPOSICIONES + 1
+ from Tickets t
+ where Id_Ruta = intRUTA
+ group by Prioridad) sub
+
+ ) posiciones on posiciones.Prioridad = t.Prioridad
+
+ JOIN
+ Consignatarios cs ON cs.Id_Consigna = t.Id_Consigna
+ JOIN
+ province p USING (province_id)
+ JOIN
+ Rutas ON t.Id_Ruta = Rutas.Id_Ruta
+ left JOIN
+ Vehiculos veh USING (Id_vehiculo)
+ left JOIN
+ Trabajadores trab ON Rutas.Id_Trabajador = trab.Id_Trabajador
+ WHERE
+ expeditions_id = lngEXPEDITION;
+ELSE
+
+
+ SELECT
+ CEIL((SUM(IF(t.Prioridad > t1.Prioridad,
+ t1.Bultos,
+ 0)) + e.Counter) / CEIL(SUM(t1.Bultos) / 13)) sambori,
+ t.Prioridad,
+ t.Id_Consigna,
+ CONCAT(e.counter, ' / ', t.Bultos) count_bultos,
+ e.expeditions_id,
+ zone,
+ Matricula Vehiculo,
+ trab.CodigoTrabajador Chofer,
+ Rutas.Id_Ruta,
+ RIGHT(Rutas.Id_Ruta, 2) Id_RutaSTR
+ FROM
+ expeditions e
+ JOIN
+ Tickets t ON e.ticket_id = t.Id_Ticket
+ JOIN
+ Tickets t1 ON t.Id_Ruta = t1.Id_Ruta
+ JOIN
+ Consignatarios cs ON cs.Id_Consigna = t.Id_Consigna
+ JOIN
+ province p USING (province_id)
+ JOIN
+ Rutas ON t1.Id_Ruta = Rutas.Id_Ruta
+ LEFT JOIN
+ Vehiculos veh USING (Id_vehiculo)
+ LEFT JOIN
+ Trabajadores trab ON Rutas.Id_Trabajador = trab.Id_Trabajador
+ WHERE
+ expeditions_id = lngEXPEDITION;
+END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `eti_list` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `eti_list`(IN wh_in INT)
+BEGIN
+
+SELECT warehouse.name AS Alm_Origen
+ , travel.shipment
+ , travel.shipment_hour AS ETD
+ , warehouse_1.name AS Alm_Destino
+ , travel.landing
+ ,travel.landing_hour AS ETA
+ , awb.codigo AS awb
+ , Entradas.Id_Entrada
+ , Sum(Compres.Etiquetas) AS bultos
+ , Agencias.Agencia
+ , producer.name AS producer
+ , Proveedores.Proveedor
+ , Sum(Compres.Vida) AS Impresas
+ , producer.producer_id
+ , IFNULL((Entradas.Confirmada AND length(Entradas.Notas) > 0),0) as Ready_to_print
+ FROM Compres
+ INNER JOIN Entradas ON Entradas.Id_Entrada = Compres.Id_Entrada
+ INNER JOIN travel ON Entradas.travel_id = travel.id
+ INNER JOIN warehouse AS warehouse_1 ON warehouse_1.id = travel.warehouse_id
+ INNER JOIN warehouse ON warehouse.id = travel.warehouse_id_out
+ INNER JOIN Agencias ON Agencias.Id_Agencia = travel.agency_id
+ LEFT JOIN recibida_entrada ON Entradas.Id_Entrada = recibida_entrada.Id_Entrada
+ LEFT JOIN awb_recibida ON recibida_entrada.awb_recibida = awb_recibida.recibida_id
+ LEFT JOIN awb ON awb_recibida.awb_id = awb.id
+ INNER JOIN Articles ON Compres.Id_Article = Articles.Id_Article
+ LEFT JOIN producer ON Articles.producer_id = producer.producer_id
+ INNER JOIN Proveedores ON Entradas.Id_Proveedor = Proveedores.Id_Proveedor
+
+
+ WHERE wh_in IN (travel.warehouse_id_out, travel.warehouse_id)
+ AND travel.landing Between TIMESTAMPADD(DAY,-7,CURDATE()) and TIMESTAMPADD(DAY,14,CURDATE())
+ GROUP BY warehouse.name, travel.shipment, travel.shipment_hour
+ , warehouse_1.name, travel.landing, travel.landing_hour
+ , awb.codigo, Entradas.Id_Entrada, Agencias.Agencia
+ , producer.name, Proveedores.Proveedor
+ ORDER BY travel.landing DESC;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `eti_to_print` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `eti_to_print`(IN idENTRADA INT, IN idPRODUCER INT)
+BEGIN
+
+select Vida as Impresas
+ ,Etiquetas as bultos
+ ,Packing
+ ,Id_Article
+ ,CONCAT(Article,' ',Medida,' ', Categoria) as Articat
+ ,p.name as marca
+ ,Proveedor
+ ,Id_Entrada
+ ,Id_Compra
+from Compres c
+join Entradas e using(Id_Entrada)
+join Proveedores using(Id_Proveedor)
+join travel tr on tr.id = e.travel_id
+join Articles a using(Id_Article)
+left join producer p using(producer_id)
+where Id_Entrada = idENTRADA
+ and idPRODUCER in (0,a.producer_id) ;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `f10_no_vincular` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `f10_no_vincular`(lngEntrada INTEGER)
+ DETERMINISTIC
+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
+ FROM Compres c
+ JOIN buy_edi be ON c.buy_edi_id = be.id AND be.fec = datFecha
+ LEFT JOIN Entradas_kop ek ON ek.Id_Entrada = c.Id_Entrada
+ WHERE
+ ((ek.Id_Entrada IS NOT NULL AND ek.sub IS NULL)
+ 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 (
+ SELECT * FROM f10_no_vincular_
+ ORDER BY pri DESC) t
+ GROUP BY Id_Article,Packing
+ HAVING count(Id_Compra) > 1 AND BIT_OR(Id_Entrada = 9200);
+
+ UPDATE Compres c
+ JOIN buy_edi be ON c.buy_edi_id = be.id AND be.fec = datFecha
+ JOIN f10_mismo_Packing f ON f.Id_Article = c.Id_Article AND c.Packing = f.Packing
+ LEFT JOIN Entradas_kop ek ON ek.Id_Entrada = f.Id_Entrada
+ SET c.Novincular = IF(c.Id_Compra = f.Id_Compra,0,1)
+ WHERE
+ ((ek.Id_Entrada IS NOT NULL AND ek.sub IS NULL)
+ 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 (
+ SELECT * FROM (
+ SELECT * FROM f10_no_vincular_
+ ORDER BY Id_Entrada = 9200 DESC) t
+ GROUP BY Id_Article,Packing ) t
+ GROUP BY Id_Article HAVING COUNT(*) > 1 AND BIT_OR(Id_Entrada = 9200);
+ SELECT 4;
+ UPDATE Compres c
+ JOIN buy_edi be ON c.buy_edi_id = be.id AND be.fec = datFecha
+ JOIN f10_mismo_Articulo f ON f.Id_Article = c.Id_Article
+ LEFT JOIN Entradas_kop ek ON ek.Id_Entrada = c.Id_Entrada
+ SET c.Id_Article = 90
+ WHERE c.Id_Entrada = 9200 AND be.ok <> FALSE;
+
+ DROP TEMPORARY TABLE IF EXISTS f10_no_vincular_;
+ DROP TEMPORARY TABLE IF EXISTS f10_mismo_Packing;
+ DROP TEMPORARY TABLE IF EXISTS f10_mismo_Articulo;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `F5` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `F5`(IN idT BIGINT)
+BEGIN
+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,
+ CS.Consignatario,
+ T.Id_Cliente,
+ T.Id_Trabajador,
+ T.Id_Ticket,
+ T.Fecha,
+ M.Id_Article,
+ M.Cantidad,
+ M.quantity,
+ M.Cantidad / IF(nz(Gro.Grouping) = 0,1,nz(Gro.Grouping)) as Paquetes,
+ M.Concepte,
+ A.Medida,
+ A.Color,
+ A.Categoria,
+ O.Abreviatura as Origen,
+ T.Localizacion,
+ CT.CodigoTrabajador as Vendedor,
+ T.Bultos,
+ T.Observaciones,
+ Ag.Agencia Tipo,
+ TR.CodigoTrabajador,
+ /*0 Seguro,*/
+ M.OK,
+ M.Reservado,
+ A.Tallos,
+ Gro.Grouping,
+ IF(`transaction`,right(concat('000000' ,M.Id_Article),6),M.Id_Movimiento) Id_Movimiento,
+ an.Nicho,
+ 'PEDIDO ASEGURADO' AS MSG,
+ T.Id_Ruta,
+ RT.Id_Vehiculo,
+ observation_type_id,
+ group_concat(IF(observation_type_id = 1,text,'') SEPARATOR '') 'sacador',
+ group_concat(IF(observation_type_id = 2,text,'') SEPARATOR '') 'encajador',
+ A.Foto,
+ 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
+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 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)
+ LEFT JOIN Trabajadores CT ON C.Id_Trabajador = CT.Id_Trabajador
+ LEFT JOIN Trabajadores TR ON TR.Id_Trabajador = T.Id_Trabajador
+ INNER JOIN Consignatarios CS ON T.Id_Consigna = CS.Id_Consigna
+ INNER JOIN Agencias Ag ON Ag.Id_Agencia = T.Id_Agencia
+ LEFT JOIN (
+ SELECT Id_Article, code as barcode
+ FROM barcodes
+ GROUP BY Id_Article
+ ) BC ON BC.Id_Article = A.Id_Article
+ LEFT JOIN Tipos TP USING(tipo_id)
+ LEFT JOIN reinos R ON TP.reino_id = R.id
+ LEFT JOIN Rutas RT USING(Id_Ruta)
+ LEFT JOIN ticket_observation tobs ON T.Id_Ticket = tobs.Id_ticket
+ AND (tobs.observation_type_id = 1 or tobs.observation_type_id = 2)
+
+ LEFT JOIN (
+ SELECT Id_Article, Grouping
+ FROM (
+ SELECT landing, Id_Article, CASE caja
+ WHEN 0 THEN 1
+ WHEN 2 THEN Packing
+ ELSE Grouping
+ END as Grouping
+ FROM Compres C
+ JOIN Entradas E USING(Id_Entrada)
+ JOIN travel TR ON TR.id = travel_id
+ WHERE warehouse_id = (SELECT warehouse_id FROM Tickets WHERE Id_Ticket = idT)
+ AND landing between (SELECT FechaInventario FROM tblContadores LIMIT 1) AND (SELECT date(Fecha) FROM Tickets WHERE Id_Ticket = idT)
+ ORDER BY landing DESC
+ ) GR1
+ GROUP BY Id_Article
+
+ ) Gro ON Gro.Id_Article = M.Id_Article
+ LEFT JOIN Movimientos_mark mm ON mm.Id_Movimiento = M.Id_Movimiento
+
+ WHERE T.Id_Ticket = idT group by M.Id_Movimiento;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `F5_entrada` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `F5_entrada`(IN idE BIGINT)
+BEGIN
+
+
+SELECT
+ NULL AS Sacador,
+ NULL AS Encajador,
+ v.Cantidad / v.Packing AS Paquetes,
+ v.Packing AS Grouping,
+ barcode,
+ 'ASEGURADO' AS asegurado,
+ reino,
+ r.orden,
+ Alias AS Consignatario,
+ v.Id_Proveedor AS Id_Cliente,
+ v.Pedida,
+ v.Confirmada,
+ NULL AS vendedor,
+ 10 AS Calidad,
+ LPAD(IFNULL(cooler_path_detail_id, an.Nicho),
+ 5,
+ '0') AS path,
+ TB.Id_Trabajador,
+ v.Id_Entrada AS Id_Ticket,
+ landing AS Fecha,
+ v.Id_Article,
+ v.Cantidad,
+ v.article AS Concepte,
+ v.Medida,
+ v.Color,
+ v.Categoria,
+ Abreviatura AS Origen,
+ NULL AS Localizacion,
+ 0 AS Bultos,
+ w.`name` AS Tipo,
+ CodigoTrabajador,
+ 0 AS OK,
+ 0 AS Reservado,
+ v.Tallos,
+ v.Id_Compra AS Id_Movimiento,
+ an.Nicho,
+ 'PEDIDO ASEGURADO' AS MSG,
+ 0 AS Seguro,
+ 0 AS Id_Ruta,
+ 0 AS Id_Vehiculo,
+ a.Foto,
+ pr.name as producer
+FROM
+ v_compres v
+ LEFT JOIN
+ Articles_nicho an ON v.Id_Article = an.Id_Article AND an.warehouse_id = v.warehouse_id_out
+ JOIN
+ warehouse w ON w.id = v.warehouse_id
+ LEFT JOIN
+ Tipos USING (tipo_id)
+ LEFT JOIN
+ reinos r ON r.id = Tipos.reino_id
+ LEFT JOIN
+ Trabajadores TB ON TB.Id_Trabajador = v.Id_Trabajador
+ LEFT JOIN
+ Proveedores p ON p.Id_Proveedor = v.Id_Proveedor
+ LEFT JOIN
+ (SELECT
+ Id_Article, code AS barcode
+ FROM
+ barcodes
+ GROUP BY Id_Article) BC ON BC.Id_Article = v.Id_Article
+ LEFT JOIN
+ Articles a ON a.Id_Article = v.Id_Article
+ LEFT JOIN
+ producer pr on pr.producer_id = a.producer_id
+ LEFT JOIN
+ cooler_path_detail c ON LEFT(v.Nicho, 3) = pasillo
+ LEFT JOIN
+ Origen o ON o.id = v.Id_origen
+WHERE
+ v.Id_Entrada = idE
+ AND v.tipo_id IS NOT NULL
+ AND v.reino_id <> 8
+ ;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `F5_entradakk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `F5_entradakk`(IN idE BIGINT)
+BEGIN
+
+
+SELECT
+ NULL AS Sacador,
+ NULL AS Encajador,
+ v.Cantidad / v.Packing AS Paquetes,
+ v.Packing AS Grouping,
+ barcode,
+ 'ASEGURADO' AS asegurado,
+ reino,
+ r.orden,
+ Alias AS Consignatario,
+ v.Id_Proveedor AS Id_Cliente,
+ v.Pedida,
+ v.Confirmada,
+ NULL AS vendedor,
+ 10 AS Calidad,
+ LPAD(IFNULL(cooler_path_detail_id, an.Nicho),
+ 5,
+ '0') AS path,
+ TB.Id_Trabajador,
+ v.Id_Entrada AS Id_Ticket,
+ landing AS Fecha,
+ v.Id_Article,
+ v.Cantidad,
+ v.article AS Concepte,
+ v.Medida,
+ v.Color,
+ v.Categoria,
+ Abreviatura AS Origen,
+ NULL AS Localizacion,
+ 0 AS Bultos,
+ w.`name` AS Tipo,
+ CodigoTrabajador,
+ 0 AS OK,
+ 0 AS Reservado,
+ v.Tallos,
+ v.Id_Compra AS Id_Movimiento,
+ an.Nicho,
+ 'PEDIDO ASEGURADO' AS MSG,
+ 0 AS Seguro,
+ 0 AS Id_Ruta,
+ 0 AS Id_Vehiculo,
+ a.Foto,
+ pr.name as producer
+FROM
+ v_compres v
+ LEFT JOIN
+ Articles_nicho an ON v.Id_Article = an.Id_Article AND an.warehouse_id = v.warehouse_id_out
+ JOIN
+ warehouse w ON w.id = v.warehouse_id
+ LEFT JOIN
+ Tipos USING (tipo_id)
+ LEFT JOIN
+ reinos r ON r.id = Tipos.reino_id
+ LEFT JOIN
+ Trabajadores TB ON TB.Id_Trabajador = v.Id_Trabajador
+ LEFT JOIN
+ Proveedores p ON p.Id_Proveedor = v.Id_Proveedor
+ LEFT JOIN
+ (SELECT
+ Id_Article, code AS barcode
+ FROM
+ barcodes
+ GROUP BY Id_Article) BC ON BC.Id_Article = v.Id_Article
+ LEFT JOIN
+ Articles a ON a.Id_Article = v.Id_Article
+ LEFT JOIN
+ producer pr on pr.producer_id = a.producer_id
+ LEFT JOIN
+ cooler_path_detail c ON LEFT(v.Nicho, 3) = pasillo
+ LEFT JOIN
+ Origen o ON o.id = v.Id_origen
+WHERE
+ v.Id_Entrada = idE
+ AND v.tipo_id IS NOT NULL
+ AND v.tipo_id <> 77
+ ;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `Facturas_Saltos` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `Facturas_Saltos`(IN datSTART DATE , IN datEND DATE)
+BEGIN
+
+
+DECLARE strSER1 VARCHAR(2);
+DECLARE strSER2 VARCHAR(2);
+DECLARE intEMP1 INT;
+DECLARE intEMP2 INT;
+DECLARE v_done BOOLEAN DEFAULT FALSE;
+DECLARE strFAC1 VARCHAR(11);
+DECLARE strFAC2 VARCHAR(11);
+
+
+DECLARE rs CURSOR FOR
+ SELECT Id_Factura, empresa_id, Serie
+ FROM Facturas
+ WHERE Fecha BETWEEN datSTART AND datEND
+ ORDER BY empresa_id, Serie, Id_Factura;
+
+DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_done = TRUE;
+
+OPEN rs;
+
+DROP TEMPORARY TABLE IF EXISTS Facturas_Saltarinas;
+
+CREATE TEMPORARY TABLE Facturas_Saltarinas
+(Factura_Inicial VARCHAR(11),
+ Factura_Final VARCHAR(11),
+ Empresa VARCHAR(3),
+ Serie VARCHAR(1));
+
+FETCH rs INTO strFAC1, intEMP1, strSER1;
+
+IF NOT v_done THEN
+
+ FETCH rs INTO strFAC2, intEMP2, strSER2;
+
+END IF;
+
+WHILE NOT v_done DO
+
+ IF strSER1 = strSER2 AND intEMP1 = intEMP2 AND right(strFAC2,5) - right(strFAC1,5) > 1 then
+
+ INSERT INTO Facturas_Saltarinas(Factura_Inicial, Factura_Final, Empresa, Serie)
+ SELECT strFAC1, strFAC2, abbreviation, strSER1
+ FROM empresa
+ WHERE id = intEMP1;
+
+ END IF;
+
+ SET strFAC1 = strFAC2;
+ SET intEMP1 = intEMP2;
+ SET STRSER1 = strSER2;
+
+ FETCH rs INTO strFAC2, intEMP2, strSER2;
+
+END WHILE;
+
+SELECT * FROM Facturas_Saltarinas;
+
+CLOSE rs;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `Factura_vuelve` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `Factura_vuelve`(IN strFactura VARCHAR(10), IN intCLI INT )
+BEGIN
+
+DECLARE dblIMPORTE DOUBLE;
+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
+ ,Fechacobro
+ ,Id_Trabajador
+ ,Id_Banco
+ ,Id_Cliente
+ ,empresa_id)
+
+VALUES (strFactura
+ ,-1 * dblIMPORTE
+ ,datFEC
+ ,2
+ ,430
+ ,intCLI_OLD
+ ,intEMP);
+
+-- Carga el cobro en la cuenta del nuevo cliente
+
+INSERT INTO Recibos(Id_Factura
+ ,Entregado
+ ,Fechacobro
+ ,Id_Trabajador
+ ,Id_Banco
+ ,Id_Cliente
+ ,empresa_id)
+
+VALUES (strFactura
+ ,dblIMPORTE
+ ,datFEC
+ ,2
+ ,430
+ ,intCLI
+ ,965);
+
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `fv_to_pcakk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `fv_to_pcakk`()
+BEGIN
+
+DECLARE idT INT;
+
+DECLARE idC INT;
+DECLARE newFEC DATE;
+DECLARE idEMP INT;
+DECLARE idCON INT;
+DECLARE intTIPO INT;
+DECLARE newTICKET INT;
+DECLARE newLANDING DATE;
+
+SELECT DISTINCT Id_Ticket INTO idT
+FROM Movimientos m
+JOIN Tickets t using(Id_Ticket)
+JOIN Articles a using(Id_Article)
+WHERE tipo_id = 19 AND Article like 'HEL %'
+AND Fecha between '2015-10-22' and '2015-10-31'
+AND warehouse_id =1 LIMIT 1;
+
+WHILE idT IS NOT NULL DO
+
+ SELECT Id_Cliente,Fecha,empresa_id,Id_Consigna,Id_Agencia , landing
+ INTO idC , newFEC, idEMP , idCON , intTIPO , newLANDING
+ FROM Tickets
+ WHERE Id_Ticket = idT;
+
+ CALL `ticket_new_complet`(idC ,newFEC, 44, 20, idEMP , idCON , intTIPO , NULL , newTICKET);
+
+ UPDATE Movimientos
+ JOIN Articles a using(Id_Article)
+ SET Id_Ticket = newTICKET
+ WHERE tipo_id = 19 AND Article like 'HEL %'
+ AND Id_Ticket = idT;
+
+ INSERT INTO order_Tickets (Id_Ticket, order_id)
+ SELECT newTICKET, order_id
+ FROM order_Tickets
+ WHERE Id_Ticket = idT;
+
+ UPDATE Tickets
+ SET landing = newLANDING
+ WHERE Id_Ticket = newTICKET;
+
+SET idT = NULL;
+
+SELECT DISTINCT Id_Ticket INTO idT
+FROM Movimientos m
+JOIN Tickets t using(Id_Ticket)
+JOIN Articles a using(Id_Article)
+WHERE tipo_id = 19 AND Article like 'HEL %'
+AND Fecha between '2015-10-22' and '2015-10-31'
+AND warehouse_id =1 LIMIT 1;
+
+END WHILE;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `gescartera_Estados` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `gescartera_Estados`(IN intAno INT,IN intMes INT,IN intDiasPerdidos INT)
+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 done,EsPerdido bit DEFAULT 0;
+DECLARE intEstado TINYINT(2) DEFAULT 0;
+DECLARE intNuevo INT DEFAULT 1;
+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
+on fac.Id_Factura=sub1.Factura
+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))
+group by Id_Cliente,Fecha
+order by sub1.Id_Cliente,FormatoFecha;
+
+DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
+DECLARE CONTINUE HANDLER FOR 1146
+BEGIN
+
+DROP TEMPORARY TABLE IF EXISTS GC;
+
+CREATE TEMPORARY TABLE GC (Id_Ticket BIGINT,Fecha DATE,Id_Cliente int,Estado SMALLINT) ENGINE=MEMORY;
+
+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;
+
+ WHILE NOT DONE DO
+ FETCH cursor1 INTO lngtIC2,intCLI2,datFEC2;
+ CASE
+ 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
+ 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
+ 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
+ SET auxdatFEC=datFEC2;
+ END CASE;
+ SET datFEC=datFEC2;
+ SET intCLI=intCLI2;
+ SET lngTIC = lngTIC2,auxdatFEC=datFEC2;
+
+ END WHILE;
+
+ CLOSE cursor1;
+
+
+ # inserto los registros de clientes sin ticket (Estado 4)
+ INSERT GC
+ SELECT 0,'2000-01-01',Id_Cliente,4
+ FROM vn2008.Clientes
+ WHERE Id_Cliente NOT IN
+ (select distinct Id_Cliente
+ FROM vn2008.Tickets order by id_cliente);
+
+ SELECT Id_Ticket, Fecha, Id_Cliente, CASE ESTADO
+ WHEN 1 THEN 'NUEVO'
+ WHEN 2 THEN 'PERDIDO'
+ WHEN 3 THEN 'RECUPERADO'
+ ELSE 'SIN TICKET' END AS Estado,CodigoTrabajador
+ FROM GC
+ INNER JOIN vn2008.Clientes cli USING (Id_Cliente)
+ INNER JOIN vn2008.Trabajadores trab USING (Id_Trabajador);
+
+END;
+
+ IF EXISTS (SELECT * FROM GC LIMIT 1) THEN
+
+ SELECT Id_Ticket, Fecha, Id_Cliente, CASE ESTADO
+ WHEN 1 THEN 'NUEVO'
+ WHEN 2 THEN 'PERDIDO'
+ WHEN 3 THEN 'RECUPERADO'
+ ELSE 'SIN TICKET' END AS Estado,CodigoTrabajador
+ FROM GC
+ INNER JOIN vn2008.Clientes cli USING (Id_Cliente)
+ INNER JOIN vn2008.Trabajadores trab USING (Id_Trabajador);
+
+ END IF;
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `get_barcodes_ticket` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `get_barcodes_ticket`(IN idT BIGINT)
+BEGIN
+
+ drop temporary TABLE IF EXISTS articles_ticket;
+ CREATE TEMPORARY TABLE IF NOT EXISTS articles_ticket
+ (PRIMARY KEY (Id_Article))
+ ENGINE = MEMORY
+ select distinct Id_Article from Movimientos where Id_Ticket = idT;
+
+ drop temporary TABLE IF EXISTS articles_ticket2;
+ CREATE TEMPORARY TABLE IF NOT EXISTS articles_ticket2
+ (PRIMARY KEY (Id_Article))
+ ENGINE = MEMORY
+ select * from articles_ticket;
+
+ drop temporary TABLE IF EXISTS articles_buys;
+ CREATE TEMPORARY TABLE IF NOT EXISTS articles_buys AS
+ select Id_Compra, a.Id_Article from v_compres c JOIN articles_ticket a ON a.Id_Article = c.Id_Article
+ where landing >= DATE_SUB(CURDATE(), INTERVAL 14 DAY);
+
+ SELECT distinct
+ code, a.Id_Article
+ FROM
+ barcodes b
+ inner join
+ articles_ticket a ON a.Id_Article = b.Id_Article
+ union
+ SELECT
+ Id_Compra as code, a.Id_Article
+ FROM
+ articles_buys c
+ inner join
+ articles_ticket2 a ON a.Id_Article = c.Id_Article;
+
+ drop temporary TABLE IF EXISTS articles_ticket;
+ drop temporary TABLE IF EXISTS articles_ticket2;
+ drop temporary TABLE IF EXISTS articles_buys;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `historico` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `historico`(IN idART INT, IN wh INT, IN v_virtual INT)
+BEGIN
+DECLARE datFEC DATETIME;
+
+SELECT Fechainventario INTO datFEC FROM tblContadores;
+SET @a = 0;
+SELECT DATE(Fecha) AS Fecha,
+ Entrada,
+ Salida,
+ OK,
+ Alias,
+ Referencia,
+ id,
+ @a := @a + IFNULL(Entrada,0) - IFNULL(Salida,0) as acumulado,
+ F5,
+ v_virtual,
+ Calidad,CodigoTrabajador
+FROM
+
+ ( SELECT TR.landing as Fecha,
+ C.Cantidad as Entrada,
+ NULL as Salida,
+ (TR.received != FALSE) as OK,
+ P.Proveedor as Alias,
+ E.Referencia as Referencia,
+ E.Id_Entrada as id,
+ TR.delivered as F5,
+ 0 as Calidad, tra.CodigoTrabajador
+ FROM Compres C
+ JOIN Entradas E USING (Id_Entrada)
+ JOIN travel TR ON TR.id = E.travel_id
+ JOIN Proveedores P USING (Id_Proveedor)
+ LEFT JOIN Articles a ON a.Id_Article = C.Id_Article
+ LEFT JOIN Tipos ti ON ti.Id_Tipo = a.tipo_id
+ LEFT JOIN Trabajadores tra ON tra.Id_Trabajador = ti.Id_Trabajador
+ WHERE TR.landing >= datFEC
+ AND wh IN (TR.warehouse_id , 0)
+ AND C.Id_Article = idART
+ AND E.Inventario = 0
+
+ UNION ALL
+
+ SELECT TR.shipment as Fecha,
+ NULL as Entrada,
+ C.Cantidad as Salida,
+ TR.delivered as OK,
+ P.Proveedor as Alias,
+ E.Referencia as Referencia,
+ E.Id_Entrada as id,
+ TR.delivered as F5,
+ 0 as Calidad, tra.CodigoTrabajador
+
+ FROM Compres C
+ JOIN Entradas E USING (Id_Entrada)
+ JOIN travel TR ON TR.id = E.travel_id
+ JOIN warehouse ON warehouse.id = TR.warehouse_id_out
+ JOIN Proveedores P USING (Id_Proveedor)
+ LEFT JOIN Articles a ON a.Id_Article = C.Id_Article
+ LEFT JOIN Tipos ti ON ti.Id_Tipo = a.tipo_id
+ LEFT JOIN Trabajadores tra ON tra.Id_Trabajador = ti.Id_Trabajador
+ WHERE TR.shipment >= datFEC
+ AND wh IN (TR.warehouse_id_out,0)
+ AND Id_Proveedor <> 4
+ AND C.Id_Article = idART
+ AND E.Inventario = 0
+ AND fuente = 0
+
+ UNION ALL
+
+ SELECT T.Fecha as Fecha,
+ NULL as Entrada,
+ M.Cantidad as Salida,
+ (IFNULL(ts.alertLevel,0) > 0) as OK,
+ T.Alias as Alias,
+ T.Localizacion as Referencia,
+ T.Id_Ticket as id,
+ T.PedidoImpreso EtiquetasEmitidas,
+ C.Calidad, tr.CodigoTrabajador
+
+ FROM Movimientos M
+ JOIN Tickets T USING (Id_Ticket)
+ LEFT JOIN vn.ticketState ts ON ts.ticket = T.Id_Ticket
+ JOIN Clientes C ON C.Id_Cliente = T.Id_Cliente
+ LEFT JOIN Trabajadores tr ON tr.Id_Trabajador = C.Id_Trabajador
+ WHERE T.Fecha >= datFEC
+ AND M.Id_Article = idART
+ AND wh IN (T.warehouse_id , 0)
+
+ ) AS Historico
+ORDER BY Fecha, OK DESC, Entrada DESC;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `historicoprecio` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `historicoprecio`( id_art INT, id_wh INT,id_datestart DATE,id_dateend DATE)
+BEGIN
+
+
+ SET @@max_sp_recursion_depth = 100 ;
+ DROP TEMPORARY TABLE IF EXISTS historicoprecio;
+
+ CREATE TEMPORARY TABLE historicoprecio
+ (
+ date_start DATE,
+ rate_0 DOUBLE,
+ rate_1 DOUBLE,
+ rate_2 DOUBLE,
+ rate_3 DOUBLE,
+ PRIMARY KEY (date_start)
+ )
+ ENGINE = MEMORY;
+
+
+ CALL historicoprecio2 (id_art,id_wh,id_datestart,id_dateend);
+
+
+ SET @a:= @b:= @c:= @d:= @e:= @f := @g:= @h:=0.0;
+ SELECT * FROM
+ (SELECT d.`date` landing,if(rate_0 IS NULL,@a,@a:=rate_0) Costefijo,if(rate_1 IS NULL,@b,@b:=rate_1) rate_1,
+ if(rate_2 IS NULL,@c,@c:=rate_2) rate_2,if(rate_3 IS NULL,@d,@d:=rate_3) rate_3,'PF' tipo FROM `time` d
+ LEFT JOIN historicoprecio hp ON d.`date` = hp.date_start WHERE d.`date` BETWEEN id_datestart AND id_dateend
+ UNION ALL
+ SELECT DISTINCT d.`date` ,if(Costefijo IS NULL,@e,@e:=Costefijo) Costefijo,if(Tarifa1 IS NULL,@f,@f:=Tarifa1),
+ if(Tarifa2 IS NULL,@g,@g:=Tarifa2),if(Tarifa3 IS NULL,@h,@h:=Tarifa3),'C'
+ FROM `time` d
+ LEFT JOIN travel t ON t.landing = d.`date`
+ LEFT JOIN Entradas e ON e.travel_id = t.id
+ LEFT JOIN Compres c ON c.Id_Entrada = e.Id_Entrada AND id_wh IN (0,warehouse_id) AND c.Id_Article = id_art AND NoVincular = FALSE
+ WHERE d.`date` BETWEEN id_datestart AND id_dateend
+ )
+ t ORDER BY landing DESC;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `historicoprecio2` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `historicoprecio2`( id_art INT, id_wh INT,id_datestart DATE,id_dateend DATE)
+BEGIN
+ DECLARE done BIT DEFAULT 0;
+ 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;
+
+ REPEAT
+
+ SET datini = NULL;
+ SET datfin = NULL;
+ SET dblrate0 = NULL;
+ SET dblrate1 = NULL;
+ SET dblrate2 = NULL;
+ SET dblrate3 = NULL;
+ SELECT date_start,date_end,rate_0,rate_1,rate_2,rate_3 INTO datini,datfin,dblrate0,dblrate1,dblrate2,dblrate3 FROM price_fixed
+ WHERE item_id = id_art AND warehouse_id IN (0,id_wh) AND date_end < id_dateend
+ AND date_end >= IFNULL(datfinaux,id_datestart) AND date_start = (SELECT MIN(date_start) FROM price_fixed
+ WHERE date_start >= IFNULL(datiniaux,TIMESTAMPADD(DAY,1,id_datestart)) AND item_id = id_art AND warehouse_id IN (0,id_wh) )
+ 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),
+ (datfin,dblrate0,dblrate1,dblrate2,dblrate3);
+ ELSE
+ INSERT INTO historicoprecio(date_start,rate_0,rate_1,rate_2,rate_3)
+ VALUES(TIMESTAMPADD(DAY,-1,datfinaux),dblrate0,dblrate1,dblrate2,dblrate3);
+ SET boolBeforeStart = FALSE;
+ END IF;
+ SET datiniaux=TIMESTAMPADD(DAY,1,datini);
+ SET datfinaux=datfin;
+
+ 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 ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `historico_absoluto` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `historico_absoluto`(IN idART INT, IN wh INT, IN datfecha DATETIME)
+BEGIN
+
+DECLARE inv_calculado INT;
+DECLARE inv INT;
+DECLARE today DATETIME;
+DECLARE fecha_inv DATETIME;
+SET today = curdate();
+
+ DROP TEMPORARY TABLE IF EXISTS historico_pasado;
+ CREATE TEMPORARY TABLE historico_pasado
+ SELECT *
+ FROM (
+ SELECT TR.landing as Fecha,
+ C.Cantidad as Entrada,
+ NULL as Salida,
+ (TR.received != FALSE) as OK,
+ P.Proveedor as Alias,
+ 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
+ INNER JOIN Entradas E USING (Id_Entrada)
+ INNER JOIN travel TR ON TR.id = E.travel_id
+ INNER JOIN Proveedores P USING (Id_Proveedor)
+ WHERE TR.landing >= '2001-01-01'
+ AND Id_proveedor <> 4
+ AND wh IN (TR.warehouse_id , 0)
+ AND C.Id_Article = idART
+ AND E.Inventario = 0
+
+ UNION ALL
+
+ SELECT TR.shipment as Fecha,
+ NULL as Entrada,
+ C.Cantidad as Salida,
+ TR.delivered as OK,
+ P.Proveedor as Alias,
+ E.Referencia as Referencia,
+ E.Id_Entrada as id,
+ TR.delivered as F5, 0 as Calidad
+ 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)
+
+ WHERE TR.shipment >= '2001-01-01'
+ AND wh = TR.warehouse_id_out
+ AND Id_Proveedor <> 4
+ AND C.Id_Article = idART
+ AND E.Inventario = 0
+
+ UNION ALL
+
+ SELECT T.Fecha as Fecha,
+ NULL as Entrada,
+ M.Cantidad as Salida,
+ (M.OK <> 0 OR T.Etiquetasemitidas <> 0 OR T.Factura IS NOT NULL) as OK,
+ T.Alias as Alias,
+ T.Factura as Referencia,
+ T.Id_Ticket,T.PedidoImpreso,
+ C.Calidad
+ FROM Movimientos M
+ INNER JOIN Tickets T USING (Id_Ticket)
+ JOIN Clientes C ON C.Id_Cliente = T.Id_Cliente
+ WHERE T.Fecha >= '2001-01-01'
+ AND M.Id_Article = idART
+ AND wh IN (T.warehouse_id , 0)
+ ) as t1 ORDER BY Fecha, Entrada DESC, OK DESC;
+
+ SELECT sum(Entrada) - sum(Salida) INTO inv_calculado
+ FROM historico_pasado
+ WHERE Fecha < datfecha;
+
+ -- WHERE historico_pasado.Fecha < fecha_inv ;
+
+
+SELECT p1.*, NULL as v_virtual FROM(
+ SELECT datfecha as Fecha,inv_calculado as Entrada, NULL as Salida,1 as OK,
+ 'Inventario calculado' as Alias, '' as Referencia, 0 as id, 1 as F5, 0 as Calidad
+ UNION ALL
+ SELECT * FROM historico_pasado WHERE Fecha >= datfecha
+ )as p1;
+
+
+DROP TEMPORARY TABLE historico_pasado;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `historico_joined` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `historico_joined`(IN idART INT, IN wh_joined INT, IN v_virtual INT)
+BEGIN
+DECLARE datFEC DATETIME;
+
+SELECT Fechainventario INTO datFEC FROM tblContadores;
+SET @a = 0;
+SELECT DATE(Fecha) AS Fecha,
+ Entrada,
+ Salida,
+ OK,
+ Alias,
+ Referencia,
+ id,
+ @a := @a + IFNULL(Entrada,0) - IFNULL(Salida,0) as acumulado,
+ F5,
+ v_virtual,
+ Calidad,CodigoTrabajador
+FROM
+
+ ( SELECT TR.landing as Fecha,
+ C.Cantidad as Entrada,
+ NULL as Salida,
+ (TR.received != FALSE) as OK,
+ P.Proveedor as Alias,
+ E.Referencia as Referencia,
+ E.Id_Entrada as id,
+ TR.delivered as F5,
+ 0 as Calidad, tra.CodigoTrabajador
+ FROM Compres C
+ JOIN Entradas E USING (Id_Entrada)
+ JOIN travel TR ON TR.id = E.travel_id
+ JOIN Proveedores P USING (Id_Proveedor)
+ LEFT JOIN Articles a ON a.Id_Article = C.Id_Article
+ LEFT JOIN Tipos ti ON ti.Id_Tipo = a.tipo_id
+ LEFT JOIN Trabajadores tra ON tra.Id_Trabajador = ti.Id_Trabajador
+ LEFT JOIN warehouse_joined wj ON wj.warehouse_id = TR.warehouse_id
+ WHERE TR.landing >= datFEC
+ AND wh_joined IN (wj.warehouse_alias_id , 0)
+ AND C.Id_Article = idART
+ AND E.Inventario = 0
+
+ UNION ALL
+
+ SELECT TR.shipment as Fecha,
+ NULL as Entrada,
+ C.Cantidad as Salida,
+ TR.delivered as OK,
+ P.Proveedor as Alias,
+ E.Referencia as Referencia,
+ E.Id_Entrada as id,
+ TR.delivered as F5,
+ 0 as Calidad, tra.CodigoTrabajador
+
+ FROM Compres C
+ JOIN Entradas E USING (Id_Entrada)
+ JOIN travel TR ON TR.id = E.travel_id
+ JOIN Proveedores P USING (Id_Proveedor)
+ LEFT JOIN Articles a ON a.Id_Article = C.Id_Article
+ LEFT JOIN Tipos ti ON ti.Id_Tipo = a.tipo_id
+ LEFT JOIN Trabajadores tra ON tra.Id_Trabajador = ti.Id_Trabajador
+ LEFT JOIN warehouse_joined wj ON wj.warehouse_id = TR.warehouse_id_out
+ WHERE TR.shipment >= datFEC
+ AND wh_joined IN (wj.warehouse_alias_id,0)
+ AND Id_Proveedor <> 4
+ AND C.Id_Article = idART
+ AND E.Inventario = 0
+
+ UNION ALL
+
+ SELECT T.Fecha as Fecha,
+ NULL as Entrada,
+ M.Cantidad as Salida,
+ (M.OK <> 0 OR T.Etiquetasemitidas <> 0 OR T.Factura IS NOT NULL) as OK,
+ T.Alias as Alias,
+ T.Localizacion as Referencia,
+ T.Id_Ticket as id,
+ T.PedidoImpreso EtiquetasEmitidas,
+ C.Calidad, tr.CodigoTrabajador
+
+ FROM Movimientos M
+ JOIN Tickets T USING (Id_Ticket)
+ JOIN Clientes C ON C.Id_Cliente = T.Id_Cliente
+ LEFT JOIN Trabajadores tr ON tr.Id_Trabajador = C.Id_Trabajador
+ LEFT JOIN warehouse_joined wj ON wj.warehouse_id = T.warehouse_id
+ WHERE T.Fecha >= datFEC
+ AND M.Id_Article = idART
+ AND wh_joined IN (wj.warehouse_alias_id , 0)
+
+ ) AS Historico
+ORDER BY Fecha, Entrada DESC, OK DESC;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `historico_multiple` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `historico_multiple`(IN idART INT)
+BEGIN
+
+DECLARE datFEC DATETIME;
+
+SELECT Fechainventario INTO datFEC FROM tblContadores;
+
+SET @a = 0;
+
+DROP TEMPORARY TABLE IF EXISTS hm1;
+
+CREATE TEMPORARY TABLE hm1
+SELECT DATE(Fecha) as Fecha,
+ Entrada,
+ Salida,
+ OK,
+ Referencia,
+ Historia.id,
+
+ wh,
+
+ `name` as wh_name
+
+FROM
+
+ ( SELECT TR.landing as Fecha,
+ C.Cantidad as Entrada,
+ NULL as Salida,
+
+ IF(warehouse_id = 44, 1, warehouse_id) as wh,
+ (TR.received != FALSE) as OK,
+ E.Referencia as Referencia,
+ E.Id_Entrada as id
+
+
+
+ FROM Compres C
+ INNER JOIN Entradas E USING (Id_Entrada)
+ INNER JOIN travel TR ON TR.id = E.travel_id
+ WHERE TR.landing >= datFEC
+ AND C.Id_Article = idART
+ AND E.Redada = 0
+
+ AND C.Cantidad <> 0
+
+ UNION ALL
+
+ SELECT TR.shipment as Fecha,
+ NULL as Entrada,
+ C.Cantidad as Salida,
+
+
+ IF(warehouse_id_out = 44, 1, warehouse_id_out) as wh,
+ TR.delivered as OK,
+
+ E.Referencia as Referencia,
+ E.Id_Entrada as id
+
+ FROM Compres C
+ INNER JOIN Entradas E USING (Id_Entrada)
+ INNER JOIN travel TR ON TR.id = E.travel_id
+ WHERE TR.shipment >= datFEC
+ AND C.Id_Article = idART
+
+ AND E.Redada = 0
+
+ AND C.Cantidad <> 0
+
+ UNION ALL
+
+ SELECT T.Fecha as Fecha,
+ NULL as Entrada,
+ M.Cantidad as Salida,
+ IF(warehouse_id = 44, 1, warehouse_id) as wh,
+
+ (M.OK <> 0 OR T.Etiquetasemitidas <> 0 OR T.Factura IS NOT NULL) as OK,
+ T.Factura as Referencia,
+ T.Id_Ticket as id
+
+ FROM Movimientos M
+ INNER JOIN Tickets T USING (Id_Ticket)
+ WHERE T.Fecha >= datFEC
+ AND M.Id_Article = idART
+
+ ) AS Historia
+
+ INNER JOIN warehouse ON warehouse.id = Historia.wh
+ORDER BY Fecha, Entrada DESC, OK DESC;
+
+
+DROP TEMPORARY TABLE IF EXISTS hm2;
+DROP TEMPORARY TABLE IF EXISTS hm3;
+DROP TEMPORARY TABLE IF EXISTS hm4;
+DROP TEMPORARY TABLE IF EXISTS hm5;
+DROP TEMPORARY TABLE IF EXISTS hm6;
+DROP TEMPORARY TABLE IF EXISTS hm7;
+DROP TEMPORARY TABLE IF EXISTS hm8;
+CREATE TEMPORARY TABLE hm2 SELECT * FROM hm1 WHERE wh = 19;
+CREATE TEMPORARY TABLE hm3 SELECT * FROM hm1 WHERE wh = 7;
+CREATE TEMPORARY TABLE hm4 SELECT * FROM hm1 WHERE wh = 1 or wh = 44;
+CREATE TEMPORARY TABLE hm5 SELECT * FROM hm1 WHERE wh = 5;
+CREATE TEMPORARY TABLE hm6 SELECT * FROM hm1 WHERE wh = 17;
+CREATE TEMPORARY TABLE hm7 SELECT * FROM hm1 WHERE wh = 37;
+CREATE TEMPORARY TABLE hm8 SELECT * FROM hm1 WHERE wh = 55;
+
+SELECT * FROM
+
+(
+
+SELECT Fecha, Entrada as BOGEntrada, Salida as BOGSalida, OK as BOGOK, Referencia as BOGReferencia, id as BOGid,
+
+ NULL AS VNHEntrada, NULL AS VNHSalida, NULL AS VNHOK, NULL AS VNHReferencia, NULL AS VNHid,
+
+ NULL AS SILEntrada, NULL AS SILSalida, NULL AS SILOK, NULL AS SILReferencia, NULL AS SILid,
+
+ NULL AS MADEntrada, NULL AS MADSalida, NULL AS MADOK, NULL AS MADReferencia, NULL AS MADid,
+
+ NULL AS MCFEntrada, NULL AS MCFSalida, NULL AS MCFOK, NULL AS MCFReferencia, NULL AS MCFid,
+
+ NULL AS VILEntrada, NULL AS VILSalida, NULL AS VILOK, NULL AS VILReferencia, NULL AS VILid,
+
+ NULL AS BAREntrada, NULL AS BARSalida, NULL AS BAROK, NULL AS BARReferencia, NULL AS BARid
+
+FROM hm2
+
+
+UNION ALL
+
+SELECT Fecha
+ , NULL, NULL, NULL, NULL, NULL
+ ,Entrada, Salida, OK, Referencia, id
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+FROM hm3
+
+
+
+UNION ALL
+
+SELECT Fecha
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+ , Entrada, Salida, OK, Referencia, id
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+FROM hm4
+
+UNION ALL
+
+SELECT Fecha
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+ , Entrada, Salida, OK, Referencia, id
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+FROM hm5
+
+UNION ALL
+
+SELECT Fecha
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+ , Entrada, Salida, OK, Referencia, id
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+FROM hm6
+
+UNION ALL
+
+SELECT Fecha
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+ , Entrada, Salida, OK, Referencia, id
+ , NULL, NULL, NULL, NULL, NULL
+
+
+FROM hm7
+
+UNION ALL
+
+SELECT Fecha
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+ , NULL, NULL, NULL, NULL, NULL
+ , Entrada, Salida, OK, Referencia, id
+
+FROM hm8
+
+) sub
+
+ORDER BY Fecha, BOGEntrada IS NULL, VNHEntrada IS NULL, SILEntrada IS NULL, MADEntrada IS NULL, MCFEntrada IS NULL, VILEntrada IS NULL, BAREntrada IS NULL;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ImporteSantos` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ImporteSantos`(IN dat_from date,IN dat_to date)
+BEGIN
+
+select codigotrabajador,Id_Cliente,Cliente,cast(sum(ImporteAnt) as decimal(10,0)) ImporteAnt,cast(sum(ImporteActual) as decimal(10,0)) ImporteActual
+from (
+ select codigotrabajador,cli.Id_Cliente Id_Cliente,Cliente,sum(amount) ImporteAnt,0 ImporteActual
+ from bi.ticket ti
+ 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
+select CodigoTrabajador,cli.Id_Cliente,Cliente,0 ImporteAnt,
+ IFNULL(round(sum(cantidad * Costfixat),2),2) ImporteActual
+ from Tickets ti
+ inner join Movimientos m using (Id_Ticket)
+ INNER JOIN vn2008.Articles a USING(Id_Article)
+ INNER JOIN Tipos tp ON tp.tipo_id = a.tipo_id
+ LEFT JOIN reinos r ON r.id = tp.reino_id
+ INNER JOIN vn2008.Consignatarios c USING(Id_Consigna)
+ inner join Clientes cli on c.Id_Cliente=cli.Id_cliente
+ inner join vn2008.Trabajadores on cli.Id_Trabajador=Trabajadores.Id_Trabajador
+ 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)
+)sub1
+group by CodigoTrabajador,Id_Cliente
+having (ImporteAnt<>0 or ImporteActual<>0)
+order by CodigoTrabajador,Id_Cliente;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `InsertarEspionaje` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `InsertarEspionaje`(intIdTrabajador INT(11),intIdEquipo int)
+BEGIN
+
+DECLARE intNReg TINYINT DEFAULT 0;
+
+SELECT Count(*) AS NReg
+INTO intNReg
+FROM Espionajes
+WHERE Fecha=Current_date
+AND Id_Trabajador=intIdTrabajador;
+
+IF (intNReg=0) THEN
+ INSERT INTO Espionajes (Id_Trabajador,Fecha,HoraEntrada,Id_Equipo)
+ VALUES (intIdTrabajador,CURRENT_DATE,CURRENT_TIME,intIdEquipo);
+ELSE
+ UPDATE Espionajes
+ SET HoraSalida=CURRENT_TIME
+ WHERE Id_Trabajador=intIdTrabajador
+ AND Fecha=curdate();
+END IF;
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `insert_producer_plantpassport` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `insert_producer_plantpassport`(IN idCompra INT)
+BEGIN
+ DECLARE last_insert INTEGER;
+
+ INSERT IGNORE INTO producer (`name`)
+ SELECT es.company_name
+ FROM vn2008.Compres c
+ JOIN vn2008.buy_edi be ON be.id = c.buy_edi_id
+ 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 */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `inventario_margen` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `inventario_margen`(IN d_START DATETIME, IN d_END DATETIME, IN i_tipo INT, IN i_filtro INT, IN i_wh INT)
+BEGIN
+
+ DECLARE d_INV DATETIME;
+ DECLARE bolREVERSE BOOLEAN DEFAULT 0;
+ DECLARE d_FEC2 DATETIME;
+ DECLARE d_FEC DATETIME;
+ DECLARE i_SECTOR INT DEFAULT 0;
+ DECLARE strFILTRO VARCHAR(255) DEFAULT 'TRUE';
+ DECLARE dblPORTE_m3 DOUBLE DEFAULT 45;
+ DECLARE intCASE INTEGER;
+ DECLARE ID_CLIENTE_COMPLEMENTOS INT DEFAULT 1927;
+ DECLARE ID_REINO_OTROS INT DEFAULT 6;
+ DECLARE ID_PROVEEDOR_INVENTARIO INT DEFAULT 4;
+ DECLARE ID_TRABAJADOR_MARIBEL INT DEFAULT 133;
+
+ IF i_filtro THEN
+ SELECT `sql` INTO strFILTRO FROM filtros WHERE id = i_filtro;
+ END IF;
+
+
+
+-- PREVIO: Crear una tabla para filtrar los articulos que interesan
+
+ DROP TEMPORARY TABLE IF EXISTS article_selection;
+
+ SET strFILTRO = REPLACE(strFILTRO, 'Id_Article','A.Id_Article');
+
+ CALL sql_query (sql_printf(
+ 'CREATE TEMPORARY TABLE article_selection
+ ENGINE = MEMORY
+ SELECT Id_Article
+ FROM Articles A
+ LEFT JOIN Tipos USING(tipo_id)
+ LEFT JOIN Trabajadores TR ON TR.Id_Trabajador = Tipos.Id_Trabajador
+ LEFT JOIN Tintas ON A.color = Tintas.Id_Tinta
+ LEFT JOIN Origen ON Origen.id = A.id_origen
+ WHERE %s AND %s AND reino_id != %v'
+ ,IF(i_tipo, CONCAT('tipo_id = ', i_tipo), 'TRUE')
+ ,strFILTRO
+ ,ID_REINO_OTROS
+ ));
+
+
+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
+ INNER JOIN Entradas E ON E.travel_id = TR.id
+ WHERE landing <= d_START
+ AND E.Id_Proveedor = ID_PROVEEDOR_INVENTARIO
+ AND i_wh IN (0,TR.warehouse_id)
+ ORDER BY landing DESC
+ LIMIT 1;
+
+ IF d_INV is null THEN
+
+ SELECT landing INTO d_INV
+ FROM travel TR
+ INNER JOIN Entradas E ON E.travel_id = TR.id
+ WHERE landing > d_START
+ AND E.Id_Proveedor = ID_PROVEEDOR_INVENTARIO
+ AND i_wh IN (0,TR.warehouse_id)
+ ORDER BY landing ASC
+ LIMIT 1;
+
+ 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
+
+ SET intCASE = 1;
+
+ELSE
+
+ IF d_INV > d_END THEN
+
+ SET intCASE = 3;
+
+ ELSE
+
+ SET intCASE = 2;
+
+ END IF;
+
+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,
+ Id_Article BIGINT,
+ Unidades INT,
+ Valor DOUBLE,
+ Sector INT DEFAULT 0 ) ENGINE = MEMORY;
+
+
+ALTER TABLE inv ADD PRIMARY KEY USING HASH (w_id, Id_Article, Sector);
+
+/************************** SECTOR INICIAL: 0 *****************************/
+
+CASE intCASE
+
+ WHEN 1 THEN
+
+ SET d_FEC = TIMESTAMP(d_INV,'00:00:00');
+ SET d_FEC2 = TIMESTAMP(TIMESTAMPADD(DAY,-1,d_START) ,'23:59:59');
+ SET bolREVERSE = FALSE;
+
+ ELSE
+
+ SET d_FEC = TIMESTAMP(d_START,'00:00:00');
+ SET d_FEC2 = TIMESTAMP(TIMESTAMPADD(DAY,-1,d_INV) ,'23:59:59');
+ SET bolREVERSE = TRUE;
+
+
+END CASE;
+
+
+-- Inicializamos el inventario
+
+
+ INSERT INTO inv(w_id, Id_Article, Unidades,Valor)
+ SELECT TR.warehouse_id, C.Id_Article, sum(C.Cantidad), ifnull(C.Costefijo,0) + IFNULL(C.Embalajefijo,0) + IFNULL(C.Portefijo,0) + IFNULL(C.Comisionfija,0)
+ FROM Compres C
+ INNER JOIN Articles A USING(Id_Article)
+ INNER JOIN Tipos TP USING(tipo_id)
+ INNER JOIN Entradas E USING (Id_Entrada)
+ INNER JOIN travel TR ON TR.id = E.travel_id
+ INNER JOIN warehouse w ON w.id = warehouse_id
+ JOIN article_selection USING(Id_Article)
+ WHERE landing = d_INV
+ AND w.comisionantes
+ AND i_wh IN (0,TR.warehouse_id)
+ AND E.Id_Proveedor = ID_PROVEEDOR_INVENTARIO
+ AND reino_id != ID_REINO_OTROS
+ 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)
+ FROM Compres C
+ INNER JOIN Articles A USING(Id_Article)
+ INNER JOIN Tipos TP USING(tipo_id)
+ INNER JOIN Entradas E USING (Id_Entrada)
+ INNER JOIN travel TR ON TR.id = E.travel_id
+ INNER JOIN warehouse w ON w.id = warehouse_id
+ JOIN article_selection USING(Id_Article)
+ WHERE landing BETWEEN d_FEC AND d_FEC2
+ AND i_wh IN (0,TR.warehouse_id)
+ AND w.comisionantes
+ AND NOT redada
+ AND reino_id != ID_REINO_OTROS
+ AND E.Id_Proveedor != ID_PROVEEDOR_INVENTARIO
+ AND TR.warehouse_id != TR.warehouse_id_out
+ ORDER BY landing DESC
+ 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)
+ FROM Compres C
+ INNER JOIN Articles A USING(Id_Article)
+ INNER JOIN Tipos TP USING(tipo_id)
+ INNER JOIN Entradas E USING (Id_Entrada)
+ INNER JOIN travel TR ON TR.id = E.travel_id
+ INNER JOIN warehouse w ON w.id = warehouse_id_out
+ JOIN article_selection USING(Id_Article)
+ WHERE shipment BETWEEN d_FEC AND d_FEC2
+ AND i_wh IN (0,TR.warehouse_id_out)
+ AND w.comisionantes
+ AND NOT redada
+ AND reino_id != ID_REINO_OTROS
+ AND E.Id_Proveedor != ID_PROVEEDOR_INVENTARIO
+ 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)
+ FROM Movimientos M
+ INNER JOIN Tickets T USING (Id_Ticket)
+ INNER JOIN Articles A USING(Id_Article)
+ INNER JOIN Tipos TP USING(tipo_id)
+ INNER JOIN warehouse w ON w.id = T.warehouse_id
+ INNER JOIN article_selection USING(Id_Article)
+ WHERE T.Fecha BETWEEN d_FEC AND d_FEC2
+ AND i_wh IN (0,T.warehouse_id)
+ AND w.comisionantes
+ AND reino_id != ID_REINO_OTROS
+ ON DUPLICATE KEY UPDATE inv.Unidades = inv.Unidades + (M.Cantidad * IF(bolREVERSE,1,-1));
+
+
+UPDATE inv SET Valor = inv.Unidades * Valor;
+
+
+/************************** SECTOR ENTRADAS: 1 *****************************/
+
+SET i_SECTOR = 1;
+
+
+ SET d_FEC = TIMESTAMP(d_START,'00:00:00');
+ SET d_FEC2 = TIMESTAMP(d_END ,'23:59:59');
+
+
+
+-- 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 )
+ , sum(C.Cantidad * (nz(Costefijo)+nz(Embalajefijo)+nz(Portefijo)+nz(Comisionfija)) )
+ FROM Compres C
+ INNER JOIN Articles A USING(Id_Article)
+ INNER JOIN Tipos TP USING(tipo_id)
+ INNER JOIN Entradas E USING (Id_Entrada)
+ INNER JOIN travel TR ON TR.id = E.travel_id
+ INNER JOIN warehouse w ON w.id = warehouse_id
+ JOIN article_selection USING(Id_Article)
+ WHERE landing BETWEEN d_FEC AND d_FEC2
+ AND i_wh IN (0,TR.warehouse_id)
+ AND w.comisionantes
+ AND NOT redada
+ AND E.Id_Proveedor != ID_PROVEEDOR_INVENTARIO
+ AND reino_id != ID_REINO_OTROS
+ AND TR.warehouse_id != TR.warehouse_id_out
+ GROUP BY TR.warehouse_id, C.Id_Article;
+
+
+
+
+/************************** 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 )
+ , sum( -1 * C.Cantidad * (nz(Costefijo) + nz(Embalajefijo) ))
+ FROM Compres C
+ INNER JOIN Articles A USING(Id_Article)
+ INNER JOIN Tipos TP USING(tipo_id)
+ INNER JOIN Entradas E USING (Id_Entrada)
+ INNER JOIN travel TR ON TR.id = E.travel_id
+ INNER JOIN warehouse w ON w.id = warehouse_id_out
+ JOIN article_selection USING(Id_Article)
+ WHERE shipment BETWEEN d_FEC AND d_FEC2
+ AND i_wh IN (0,TR.warehouse_id_out)
+ AND w.comisionantes
+ AND NOT redada
+ AND E.Id_Proveedor != ID_PROVEEDOR_INVENTARIO
+ AND reino_id != ID_REINO_OTROS
+ AND TR.warehouse_id != TR.warehouse_id_out
+ GROUP BY TR.warehouse_id_out, C.Id_Article ;
+
+
+
+/******************** SECTOR VENTAS: 3 **************************************/
+
+SET i_SECTOR = 3;
+
+
+DROP TEMPORARY TABLE IF EXISTS Cub;
+ CREATE TEMPORARY TABLE Cub
+ SELECT * FROM (SELECT * FROM bi.last_Id_Cubo order by Id_Compra desc) sub group by Id_Article, warehouse_id;
+
+ ALTER TABLE Cub ADD PRIMARY KEY USING HASH (Id_Article, warehouse_id);
+
+
+
+
+IF d_START >= '2015-10-01' THEN
+
+ INSERT INTO inv(Sector, w_id, Id_Article, Unidades, Valor)
+
+
+ SELECT i_SECTOR
+ , w.id
+ , M.Id_Article
+ , sum(-1 * M.Cantidad ) as Unidades
+ , sum(-1 * IF(T.Id_Cliente IN (200,400),0,1) * IFNULL(bsv.importe,0)) as Valor
+ FROM Movimientos M
+ LEFT JOIN bs.ventas bsv on bsv.Id_Movimiento = M.Id_Movimiento
+ INNER JOIN Tickets T USING (Id_Ticket)
+ INNER JOIN Articles A ON A.Id_Article = M.Id_Article
+ INNER JOIN Tipos TP on TP.tipo_id = A.tipo_id
+ INNER JOIN warehouse w ON w.id = T.warehouse_id
+ JOIN article_selection `AS` ON `AS`.Id_Article = M.Id_Article
+ WHERE T.Fecha BETWEEN d_FEC AND d_FEC2
+ 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;
+
+
+
+
+ELSE
+
+
+
+ INSERT INTO inv(Sector, w_id, Id_Article, Unidades, Valor)
+
+
+ SELECT i_SECTOR, w.id, M.Id_Article, sum(-1 * M.Cantidad )
+ ,
+
+ sum( -1
+ * M.Cantidad
+ * IF(CS.Id_Cliente IN (200,400),0,1)
+ * IF(
+ T.Fecha >= '2015-10-01'
+ , M.CostFixat
+ , (
+ ( M.Preu
+ * (100 - M.Descuento)
+ / 100
+ )
+ - IF(C.Descuento = 1 and T.Bultos > 0 and Fecha > '2013-07-01',
+ IFNULL( dblPORTE_m3 * (cm3_2(CB.Id_Cubo, CB.Id_Article) / 1000000) / CB.Packing ,0 )
+ ,0)
+ )
+ )
+
+ ) as Preu
+
+ FROM Movimientos M
+ INNER JOIN Tickets T USING (Id_Ticket)
+ LEFT JOIN Cub CB ON CB.Id_Article = M.Id_Article AND T.warehouse_id = CB.warehouse_id
+ INNER JOIN Consignatarios CS USING(Id_Consigna)
+ INNER JOIN Clientes C ON C.Id_Cliente = CS.Id_Cliente
+ INNER JOIN Articles A ON A.Id_Article = M.Id_Article
+ INNER JOIN Tipos TP USING(tipo_id)
+ INNER JOIN warehouse w ON w.id = T.warehouse_id
+ JOIN article_selection `AS` ON `AS`.Id_Article = M.Id_Article
+ WHERE T.Fecha BETWEEN d_FEC AND d_FEC2
+ 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;
+
+ CREATE TEMPORARY TABLE Ventas_Lastyear
+ SELECT CodigoTrabajador, TP.Id_Tipo,
+
+ sum(M.Cantidad
+ * IF(CS.Id_Cliente IN (200,400),0,1)
+ * IF(
+ T.Fecha >= '2015-10-01'
+ , M.CostFixat
+ , (
+ ( M.Preu
+ * (100 - M.Descuento)
+ / 100
+ )
+ - IF(C.Descuento = 1 and T.Bultos > 0 and Fecha > '2013-07-01',
+ IFNULL( dblPORTE_m3 * (cm3_2(CB.Id_Cubo, CB.Id_Article) / 1000000) / CB.Packing ,0 )
+ ,0)
+ )
+ )
+
+ ) as Importe
+ FROM Movimientos M
+ INNER JOIN Tickets T USING (Id_Ticket)
+ LEFT JOIN Cub CB ON CB.Id_Article = M.Id_Article AND T.warehouse_id = CB.warehouse_id
+ INNER JOIN Consignatarios CS USING(Id_Consigna)
+ INNER JOIN Clientes C ON C.Id_Cliente = CS.Id_Cliente
+ INNER JOIN Articles A ON A.Id_Article = M.Id_Article
+ INNER JOIN Tipos TP USING(tipo_id)
+ INNER JOIN Trabajadores TR ON TP.Id_Trabajador = TR.Id_Trabajador
+ INNER JOIN warehouse w ON w.id = T.warehouse_id
+ JOIN article_selection `AS` ON `AS`.Id_Article = M.Id_Article
+ WHERE T.Fecha BETWEEN TIMESTAMPADD(YEAR,-1,d_FEC) AND TIMESTAMPADD(YEAR,-1,d_FEC2)
+ 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;
+
+
+
+
+
+
+/******************** SECTOR FINAL: 4 **************************************/
+
+SET i_SECTOR = 4;
+
+
+CASE intCASE
+
+
+ WHEN 3 THEN
+
+ SET d_FEC = TIMESTAMP(TIMESTAMPADD(DAY,1,d_END),'00:00:00');
+ SET d_FEC2 = TIMESTAMP(TIMESTAMPADD(DAY,-1,d_INV),'23:59:59');
+ SET bolREVERSE = TRUE;
+
+ ELSE
+
+ SET d_FEC = TIMESTAMP(d_INV,'00:00:00');
+ SET d_FEC2 = TIMESTAMP(d_END ,'23:59:59');
+ SET bolREVERSE = FALSE;
+
+
+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)
+ SELECT i_SECTOR, TR.warehouse_id, C.Id_Article, sum(C.Cantidad), nz(Costefijo) + nz(Portefijo) + nz(Embalajefijo) + nz(Comisionfija)
+ FROM Compres C
+ INNER JOIN Articles A USING(Id_Article)
+ INNER JOIN Tipos TP USING(tipo_id)
+ INNER JOIN Entradas E USING (Id_Entrada)
+ INNER JOIN travel TR ON TR.id = E.travel_id
+ INNER JOIN warehouse w ON w.id = warehouse_id
+ JOIN article_selection USING(Id_Article)
+ WHERE landing = d_INV
+ AND i_wh IN (0,TR.warehouse_id)
+ AND E.Id_Proveedor = ID_PROVEEDOR_INVENTARIO
+ AND reino_id != ID_REINO_OTROS
+ AND w.comisionantes
+ 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(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)
+ FROM Compres C
+ INNER JOIN Articles A USING(Id_Article)
+ INNER JOIN Tipos TP USING(tipo_id)
+ INNER JOIN Entradas E USING (Id_Entrada)
+ INNER JOIN travel TR ON TR.id = E.travel_id
+ INNER JOIN warehouse w ON w.id = warehouse_id
+ JOIN article_selection USING(Id_Article)
+ WHERE landing BETWEEN d_FEC AND d_FEC2
+ AND i_wh IN (0,TR.warehouse_id)
+ AND NOT redada
+ AND w.comisionantes
+ AND E.Id_Proveedor != 4
+ AND reino_id != ID_REINO_OTROS
+ AND TR.warehouse_id != TR.warehouse_id_out
+ ORDER BY landing DESC
+ 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)
+ FROM Compres C
+ INNER JOIN Articles A USING(Id_Article)
+ INNER JOIN Tipos TP USING(tipo_id)
+ INNER JOIN Entradas E USING (Id_Entrada)
+ INNER JOIN travel TR ON TR.id = E.travel_id
+ INNER JOIN warehouse w ON w.id = warehouse_id_out
+ JOIN article_selection USING(Id_Article)
+ WHERE shipment BETWEEN d_FEC AND d_FEC2
+ AND i_wh IN (0,TR.warehouse_id_out)
+ AND NOT redada
+ AND w.comisionantes
+ AND E.Id_Proveedor != 4
+ AND reino_id != ID_REINO_OTROS
+
+ 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)
+ FROM Movimientos M
+ INNER JOIN Tickets T USING (Id_Ticket)
+ INNER JOIN Articles A USING(Id_Article)
+ INNER JOIN Tipos TP USING(tipo_id)
+ INNER JOIN warehouse w ON w.id = T.warehouse_id
+ JOIN article_selection USING(Id_Article)
+ WHERE T.Fecha BETWEEN d_FEC AND d_FEC2
+ AND i_wh IN (0,T.warehouse_id)
+ AND w.comisionantes
+ 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;
+
+CREATE TEMPORARY TABLE Margen_Desglose
+
+SELECT CASE Sector
+ WHEN 0 THEN 'Inventario Inicial'
+ WHEN 1 THEN 'Entradas'
+ WHEN 2 THEN 'Salidas'
+ WHEN 3 THEN 'Ventas'
+ WHEN 4 THEN 'Inventario Final' END AS Seccion
+ , w.name as Almacen, r.reino as Reino, Id_Article, Article, Medida, Unidades,Id_Tipo, round(Valor,0) as Valor , round(Valor/Unidades,3) as Precio, Sector
+FROM inv
+JOIN Articles USING(Id_Article)
+JOIN Tipos TP USING(tipo_id)
+JOIN warehouse w ON w.id = w_id
+JOIN reinos r ON r.id = TP.reino_id
+WHERE Unidades != 0
+ORDER BY Almacen, Sector
+;
+
+
+
+
+
+DROP TEMPORARY TABLE IF EXISTS Margen_Bruto;
+
+CREATE TEMPORARY TABLE Margen_Bruto
+
+SELECT Unidades_Vendidas, Coste, Venta,1 - round(coste / venta,2) as Margen
+FROM (
+SELECT w.name as Almacen, r.reino as Reino, Id_Article, Article, Medida, sum(IF(Sector = 3, -1,0) * Unidades) as Unidades_Vendidas
+ , @coste:= round(sum( IF(Sector != 3, Valor * IF(Sector = 4,-1,1), 0) ) ,0) as Coste
+ , @venta:= round(sum( IF(Sector = 3, - Valor, 0 ) ),0) as Venta
+FROM inv
+JOIN Articles USING(Id_Article)
+JOIN Tipos TP USING(tipo_id)
+JOIN warehouse w ON w.id = w_id
+JOIN reinos r ON r.id = TP.reino_id
+WHERE Unidades != 0
+
+) sub;
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `inventario_multiple` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+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;
+ DECLARE date_start DATETIME;
+ DECLARE date_yesterday DATETIME;
+ DECLARE date_tomorrow DATETIME;
+ DECLARE strWH VARCHAR(2);
+
+ SET strWH = IF(wh,wh,'%');
+ SET date_end = TIMESTAMPADD(DAY, 7, date_ticket);
+
+ CALL article ();
+
+ ALTER TABLE `article_inventory`
+ ADD `available` FLOAT(7,2) NOT NULL,
+ 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')
+ INTO date_start, date_end
+ FROM tblContadores;
+
+
+ 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)
+ SELECT item_id, stock, visible, available
+ FROM tmp_item;
+
+ 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
+
+ FROM (
+
+ SELECT Id_Article, -Cantidad AS amount
+
+ FROM Movimientos M INNER JOIN Tickets T USING (Id_Ticket)
+
+ WHERE Fecha >= date_order
+
+ AND Fecha < date_tomorrow
+
+ AND (M.OK != FALSE
+
+ OR T.Etiquetasemitidas != FALSE
+
+ OR T.Factura IS NOT NULL)
+
+ AND T.warehouse_id = wh
+
+ UNION ALL
+
+ SELECT Id_Article, Cantidad
+
+ FROM Compres C INNER JOIN Entradas E USING (Id_Entrada)
+
+ LEFT JOIN travel TR ON E.travel_id = TR.id
+
+ WHERE TR.landing >= date_order
+
+ AND TR.landing < date_tomorrow
+
+ AND TR.received != FALSE
+
+ AND TR.warehouse_id = wh
+
+ AND E.Inventario = FALSE
+
+ AND E.Redada = FALSE
+
+ UNION ALL
+
+ SELECT Id_Article, -Cantidad
+
+ FROM Compres C INNER JOIN Entradas E USING (Id_Entrada)
+
+ LEFT JOIN travel TR ON E.travel_id = TR.id
+
+ WHERE TR.shipment >= date_order
+
+ AND TR.shipment < date_tomorrow
+
+ AND TR.delivered != FALSE
+
+ AND TR.warehouse_id_out = wh
+
+ AND E.Inventario = FALSE
+
+ AND E.Redada = FALSE
+
+ ) AS T1
+
+ GROUP BY Id_Article
+
+ ON DUPLICATE KEY UPDATE
+
+ visible = inventory + VALUES(visible);
+
+
+ -- Disponible en el futuro
+ CALL item_travel (wh, date_order);
+
+ SET date_aux = DATE(date_order);
+
+ INSERT INTO article_inventory(article_id,available)
+
+ SELECT Tic3.Id_Article, minacum(dat, amount, date_aux) AS sd
+
+ FROM (
+
+ SELECT Tic2.Id_Article, DATE(Fecha) AS dat, SUM(amount) AS amount
+
+ FROM (
+
+ SELECT Id_Article, Fecha, -Cantidad AS amount
+
+ FROM Movimientos M
+
+ INNER JOIN Tickets T USING (Id_Ticket)
+
+ WHERE Fecha BETWEEN date_order AND date_end
+
+ AND T.warehouse_id = wh
+
+ UNION ALL
+
+ SELECT Id_Article, TR.landing, Cantidad
+
+ FROM Compres C INNER JOIN Entradas E USING (Id_Entrada)
+
+ LEFT JOIN travel TR ON E.travel_id = TR.id
+
+ WHERE TR.landing BETWEEN date_order AND date_end
+
+ AND TR.warehouse_id = wh
+
+ AND E.Inventario = FALSE
+
+ AND E.Redada = FALSE
+
+ UNION ALL
+
+ SELECT Id_Article, TR.shipment, -Cantidad
+
+ FROM Compres C INNER JOIN Entradas E USING (Id_Entrada)
+
+ LEFT JOIN travel TR ON E.travel_id = TR.id
+
+ WHERE TR.shipment BETWEEN date_order AND date_end
+
+ AND TR.warehouse_id_out = wh
+
+ AND E.Inventario = FALSE
+
+ AND E.Redada = FALSE
+
+ ) AS Tic2
+
+ GROUP BY Tic2.Id_Article, dat
+
+ ) Tic3
+
+ LEFT JOIN Articles A ON Tic3.Id_Article = A.Id_Article
+
+ LEFT JOIN Origen O ON O.id = A.id_origen
+
+ LEFT JOIN item_travel t ON t.wh = O.warehouse_id
+
+ WHERE dat < IFNULL(t.landing, date_end)
+
+ GROUP BY Tic3.Id_Article
+
+ ON DUPLICATE KEY UPDATE
+
+ available = IFNULL(inventory,0) + VALUES(available);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `inventario_multiple_2` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `inventario_multiple_2`(
+ date_ticket DATETIME
+ ,wh TINYINT
+ ,days_max TINYINT
+)
+proc: BEGIN
+ DECLARE date_end DATETIME DEFAULT CURDATE();
+ DECLARE date_start DATETIME;
+ DECLARE date_top DATETIME;
+ DECLARE date_tomorrow DATETIME;
+
+ SET date_ticket = DATE(date_ticket); -- PAK
+
+ ALTER TABLE `article_inventory`
+ ADD `avalaible` INT NOT NULL,
+ ADD `sd` INT NOT NULL,
+ ADD `rest` INT NOT NULL,
+ ADD `expected` INT NOT NULL,
+ ADD `inventory` INT NOT NULL,
+ ADD `visible` INT NOT NULL,
+ ADD `life` TINYINT NOT NULL DEFAULT '0';
+
+ IF date_ticket < CURDATE()
+ THEN
+ LEAVE proc;
+ END IF;
+
+ SELECT FechaInventario INTO date_start FROM tblContadores;
+
+ SET date_end = TIMESTAMP(TIMESTAMPADD(DAY, IF(days_max >= 0, days_max,15), date_ticket),'23:59:59');
+ 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
+
+ (
+
+ SELECT Id_Article, SUM(amount) as Subtotal FROM
+
+ (
+
+ SELECT Id_Article, -Cantidad AS amount
+
+ FROM Movimientos M
+ JOIN Tickets T USING (Id_Ticket)
+ JOIN warehouse W ON W.id = T.warehouse_id
+ WHERE DATE(Fecha) BETWEEN date_start AND date_ticket
+ AND IF(wh = 0, W.is_comparative, wh =T.warehouse_id)
+
+ UNION ALL
+
+ 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
+ WHERE TR.landing BETWEEN date_start AND date_ticket
+ AND IF(wh = 0, W.is_comparative, wh =TR.warehouse_id)
+ AND E.Inventario = 0
+ AND E.Redada = 0
+
+ UNION ALL
+
+ SELECT Id_Article, -Cantidad
+ 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_out
+ WHERE TR.shipment BETWEEN date_start AND date_ticket
+ AND IF(wh = 0, W.is_comparative, wh =TR.warehouse_id_out)
+ AND E.Inventario = 0
+ AND E.Redada = 0
+
+ ) AS T1
+
+ GROUP BY Id_Article
+
+ ) AS T2
+
+ ON AI.article_id = T2.Id_Article
+
+ SET AI.inventory = T2.Subtotal,
+
+ AI.visible = T2.Subtotal,
+
+ AI.avalaible = T2.Subtotal,
+
+ AI.sd = T2.Subtotal;
+
+ -- Calculo del visible
+
+ UPDATE article_inventory AI INNER JOIN
+ (
+ SELECT Id_Article, SUM(amount) as Subtotal FROM
+ (
+ 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
+ AND (M.OK = 0 AND T.Etiquetasemitidas = 0 AND T.Factura IS NULL)
+ AND IF(wh = 0, W.is_comparative, wh =T.warehouse_id)
+
+ UNION ALL
+
+ SELECT Id_Article, -Cantidad
+ 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
+ WHERE TR.landing = date_ticket
+ AND TR.received = 0
+ AND E.Inventario = 0
+ AND E.Redada = 0
+ AND IF(wh = 0, W.is_comparative, wh =TR.warehouse_id)
+
+ UNION ALL
+
+ SELECT Id_Article, Cantidad
+ FROM Compres C INNER JOIN Entradas E USING (Id_Entrada)
+ LEFT JOIN travel TR ON E.travel_id = TR.id
+ INNER JOIN warehouse W ON W.id = TR.warehouse_id_out
+ WHERE TR.shipment = date_ticket
+ AND TR.delivered = 0
+ AND E.Inventario = 0
+ AND E.Redada = 0
+ AND IF(wh = 0, W.is_comparative, wh =TR.warehouse_id_out)
+
+ ) AS T1
+
+ GROUP BY Id_Article
+
+ ) AS T2
+
+ ON AI.article_id = T2.Id_Article
+
+ SET AI.visible = AI.visible + T2.Subtotal;
+
+ -- Calculo del disponible
+
+ CALL item_travel (wh, date_ticket);
+
+ UPDATE article_inventory AI INNER JOIN
+ (
+ SELECT Tic3.Id_Article, SUM(amount) AS sd, minacum(Fecha, amount, date_ticket) as smd FROM
+ (
+
+ SELECT Tic2.Id_Article, Fecha, SUM(amount) AS amount FROM
+ (
+ SELECT Id_Article, DATE(Fecha) as Fecha, -Cantidad AS amount
+ FROM Movimientos M
+ JOIN Tickets T USING (Id_Ticket)
+ JOIN warehouse W ON W.id = T.warehouse_id
+ WHERE Fecha BETWEEN date_tomorrow AND date_end
+ AND IF(wh = 0, W.is_comparative, wh =T.warehouse_id)
+
+ UNION ALL
+
+ SELECT Id_Article, landing as Fecha, Cantidad
+ 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
+ WHERE TR.landing BETWEEN date_tomorrow AND date_end
+ AND IF(wh = 0, W.is_comparative, wh =TR.warehouse_id)
+ AND E.Inventario = 0
+ AND E.Redada = 0
+
+ UNION ALL
+
+ SELECT Id_Article, shipment as Fecha, -Cantidad
+ 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_out
+ WHERE TR.shipment BETWEEN date_tomorrow AND date_end
+ AND IF(wh = 0, W.is_comparative, wh =TR.warehouse_id_out)
+ AND E.Inventario = 0
+ AND E.Redada = 0
+
+ ) AS Tic2
+
+ GROUP BY Tic2.Id_Article, Fecha
+ ) Tic3
+
+ LEFT JOIN Articles A ON Tic3.Id_Article = A.Id_Article
+ LEFT JOIN Origen O ON O.id = A.id_origen
+ LEFT JOIN item_travel t ON t.wh = O.warehouse_id
+
+ WHERE Fecha < IF(days_max < 0 AND t.landing IS NOT NULL,
+ t.landing,
+ date_top)
+
+ GROUP BY Tic3.Id_Article
+
+
+ ) AS Tic5
+
+ ON Tic5.Id_Article = AI.article_id
+ SET AI.avalaible = IF(Tic5.smd > 0, AI.avalaible, AI.avalaible + Tic5.smd),
+ AI.sd = AI.inventory + Tic5.sd;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `inventario_multiple_inventarios` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `inventario_multiple_inventarios`(wh SMALLINT, date_ticket DATETIME)
+BEGIN
+ DECLARE date_order DATETIME;
+ DECLARE date_end DATETIME DEFAULT CURDATE();
+ DECLARE date_start DATETIME;
+
+ CALL article ();
+
+ 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 ,
+ 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;
+
+ SET date_order = TIMESTAMP(DATE(date_ticket), '00:00:00');
+
+ INSERT INTO article_inventory (article_id, visible)
+ SELECT Id_Article, SUM(amount)
+ FROM (
+ SELECT Id_Article, -Cantidad AS amount
+ FROM Movimientos M INNER JOIN Tickets T USING (Id_Ticket)
+ WHERE Fecha >= date_start
+ AND Fecha < date_order
+ AND T.warehouse_id = wh
+ UNION ALL
+ SELECT Id_Article, Cantidad
+ FROM Compres C INNER JOIN Entradas E USING (Id_Entrada)
+ LEFT JOIN travel TR ON E.travel_id = TR.id
+ WHERE TR.landing >= date_start
+ AND TR.landing < date_order
+ AND TR.warehouse_id = wh
+ AND E.Inventario = FALSE
+ UNION ALL
+ SELECT Id_Article, -Cantidad
+ FROM Compres C INNER JOIN Entradas E USING (Id_Entrada)
+ LEFT JOIN travel TR ON E.travel_id = TR.id
+ WHERE TR.shipment >= date_start
+ AND TR.shipment < date_order
+ AND TR.warehouse_id_out = wh
+ AND E.Inventario = FALSE
+ ) AS T1
+ GROUP BY Id_Article;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `inventario_multiple_joined` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `inventario_multiple_joined`(
+ date_ticket DATETIME
+ ,wh_joined TINYINT
+ ,days_max TINYINT
+)
+proc: BEGIN
+ DECLARE date_end DATETIME DEFAULT CURDATE();
+ DECLARE date_start DATETIME;
+ DECLARE date_top DATETIME;
+ DECLARE date_tomorrow DATETIME;
+ DECLARE i_avalaible INTEGER;
+ DECLARE wh INTEGER;
+
+ SET date_ticket = DATE(date_ticket); -- PAK
+
+ ALTER TABLE `article_inventory`
+ ADD `avalaible` INT NOT NULL,
+ ADD `sd` INT NOT NULL,
+ ADD `rest` INT NOT NULL,
+ ADD `expected` INT NOT NULL,
+ ADD `inventory` INT NOT NULL,
+ ADD `visible` INT NOT NULL,
+ ADD `life` TINYINT NOT NULL DEFAULT '0';
+
+ IF date_ticket < CURDATE()
+ THEN
+ LEAVE proc;
+ END IF;
+
+ SELECT FechaInventario INTO date_start FROM tblContadores;
+
+ SET date_end = TIMESTAMP(TIMESTAMPADD(DAY, IF(days_max >= 0, days_max,15), date_ticket),'23:59:59');
+ 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
+
+ (
+
+ SELECT Id_Article, SUM(amount) as Subtotal FROM
+
+ (
+
+ SELECT Id_Article, -Cantidad AS amount
+
+ 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 DATE(Fecha) BETWEEN date_start AND date_ticket
+ AND wh_joined IN (wj.warehouse_alias_id, 0)
+ UNION ALL
+
+ 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 = wj.warehouse_id -- JGF 15/12/14
+ WHERE TR.landing BETWEEN date_start AND date_ticket
+ AND wh_joined IN (wj.warehouse_alias_id, 0)
+
+ AND E.Inventario = 0
+ AND E.Redada = 0
+
+ UNION ALL
+
+ SELECT Id_Article, -Cantidad
+ FROM Compres C
+
+ 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
+ WHERE TR.shipment BETWEEN date_start AND date_ticket
+ AND wh_joined IN (wj.warehouse_alias_id,0)
+ AND E.Inventario = 0
+ AND E.Redada = 0
+ ) AS T1
+
+ GROUP BY Id_Article
+
+ ) AS T2
+
+ ON AI.article_id = T2.Id_Article
+
+ SET AI.inventory = T2.Subtotal,
+
+ AI.visible = T2.Subtotal,
+
+ AI.avalaible = T2.Subtotal,
+
+ AI.sd = T2.Subtotal;
+
+ SELECT avalaible INTO i_avalaible FROM article_inventory WHERE article_id = 21012;
+
+ -- Calculo del visible
+
+ UPDATE article_inventory AI INNER JOIN
+ (
+ SELECT Id_Article, SUM(amount) as Subtotal FROM
+ (
+ SELECT Id_Article, Cantidad AS amount
+ 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
+ AND (M.OK = 0 AND T.Etiquetasemitidas = 0 AND T.Factura IS NULL)
+ AND wh_joined IN (wj.warehouse_alias_id, 0)
+ UNION ALL
+ SELECT Id_Article, -Cantidad
+ FROM Compres C
+
+ 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
+ WHERE TR.landing = date_ticket
+
+ AND TR.received = 0
+ AND E.Inventario = 0
+ AND E.Redada = 0
+ AND wh_joined IN (wj.warehouse_alias_id, 0)
+
+ UNION ALL
+
+ 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
+ WHERE TR.shipment = date_ticket
+ AND TR.delivered = 0
+ AND E.Inventario = 0
+ AND E.Redada = 0
+ AND wh_joined IN (wj.warehouse_alias_id,0)
+ ) AS T1
+
+ GROUP BY Id_Article
+
+ ) AS T2
+
+ ON AI.article_id = T2.Id_Article
+
+ 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);
+
+ UPDATE article_inventory AI INNER JOIN
+ (
+ SELECT Tic3.Id_Article, SUM(amount) AS sd, minacum(Fecha, amount, date_ticket) as smd FROM
+ (
+
+ SELECT Tic2.Id_Article, Fecha, SUM(amount) AS amount FROM
+ (
+ SELECT Id_Article, DATE(Fecha) as Fecha, -Cantidad AS amount
+ 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 BETWEEN date_tomorrow AND date_end
+ AND wh_joined IN (wj.warehouse_alias_id, 0)
+
+ UNION ALL
+ SELECT Id_Article, landing as Fecha, Cantidad
+ FROM Compres C
+
+ 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
+ WHERE TR.landing BETWEEN date_tomorrow AND date_end
+ AND wh_joined IN (wj.warehouse_alias_id, 0)
+
+ AND E.Inventario = 0
+ AND E.Redada = 0
+ UNION ALL
+ SELECT Id_Article, shipment as Fecha, -Cantidad
+ FROM Compres C
+
+ 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
+ WHERE TR.shipment BETWEEN date_tomorrow AND date_end
+ AND wh_joined IN (wj.warehouse_alias_id,0)
+ AND E.Inventario = 0
+ AND E.Redada = 0
+ ) AS Tic2
+
+ GROUP BY Tic2.Id_Article, Fecha
+ ) Tic3
+
+ LEFT JOIN Articles A ON Tic3.Id_Article = A.Id_Article
+ LEFT JOIN Origen O ON O.id = A.id_origen
+ LEFT JOIN item_travel t ON t.wh = O.warehouse_id
+
+ WHERE Fecha < IF(days_max < 0 AND t.landing IS NOT NULL,
+ t.landing,
+ date_top)
+
+ GROUP BY Tic3.Id_Article
+
+
+ ) AS Tic5
+
+ ON Tic5.Id_Article = AI.article_id
+ SET AI.avalaible = IF(Tic5.smd > 0, AI.avalaible, AI.avalaible + Tic5.smd),
+ AI.sd = AI.inventory + Tic5.sd;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `inventario_multiple_reservas` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `inventario_multiple_reservas`(date_ticket DATETIME, wh INT, days_max INT)
+BEGIN
+ DECLARE date_end DATETIME DEFAULT CURDATE();
+ DECLARE date_start DATETIME;
+ DECLARE i_avalaible INTEGER;
+
+ SET date_ticket = DATE(date_ticket);
+
+ CALL article ();
+
+ INSERT INTO article_inventory (article_id)
+ SELECT a.Id_Article
+ FROM Articles a
+ JOIN Tipos tp ON tp.tipo_id = a.tipo_id
+ LEFT JOIN reinos r ON r.id = tp.reino_id
+ WHERE r.display <> 0;
+
+ ALTER TABLE `article_inventory`
+ ADD `avalaible` INT(11) NOT NULL,
+ ADD `sd` INT(11) NOT NULL,
+ ADD `rest` INT(11) NOT NULL,
+ ADD `expected` INT(11) NOT NULL,
+ ADD `inventory` INT(11) NOT NULL,
+ ADD `visible` INT(11) NOT NULL,
+ ADD `life` TINYINT(1) NOT NULL DEFAULT '0';
+
+ SELECT FechaInventario INTO date_start FROM tblContadores;
+
+ 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
+ (
+ SELECT Id_Article, SUM(amount) as Subtotal FROM (
+ SELECT Id_Article, -Cantidad AS amount
+ FROM Movimientos M
+ JOIN Tickets T USING (Id_Ticket)
+ JOIN warehouse W ON W.id = T.warehouse_id
+ WHERE Fecha BETWEEN date_start AND date_end
+ AND wh IN (T.warehouse_id, 0)
+ AND NOT W.fuente
+ UNION ALL
+ SELECT Id_Article, Cantidad
+ FROM Compres C
+ 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
+ WHERE TR.landing BETWEEN date_start AND date_ticket
+ AND wh IN (TR.warehouse_id, 0)
+ AND NOT W.fuente
+ AND E.Inventario = 0
+ AND E.Redada = 0
+ UNION ALL
+ SELECT Id_Article, -Cantidad
+ 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_out
+ WHERE TR.shipment BETWEEN date_start AND date_end
+ AND wh IN (TR.warehouse_id_out,0)
+ AND NOT W.fuente
+ AND E.Inventario = 0
+ AND E.Redada = 0
+ ) AS T1
+ GROUP BY Id_Article
+ ) AS T2
+ ON AI.article_id = T2.Id_Article
+ SET AI.inventory = T2.Subtotal,
+ AI.visible = T2.Subtotal,
+ AI.avalaible = T2.Subtotal,
+ AI.sd = T2.Subtotal;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `inventario_valorado` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `inventario_valorado`(IN d_FEC DATE, IN bol_DESGLOSE BOOLEAN)
+BEGIN
+
+
+
+
+ DECLARE d_INV DATE;
+ DECLARE bolREVERSE BOOLEAN DEFAULT 0;
+ DECLARE d_INV2 DATE;
+
+ SELECT landing INTO d_INV
+ FROM travel TR
+ INNER JOIN Entradas E ON E.travel_id = TR.id
+ WHERE landing <= d_FEC
+ AND E.Id_Proveedor = 4
+ ORDER BY landing DESC
+ LIMIT 1;
+
+
+
+ SET bolREVERSE = IF (d_INV is null, 1, 0);
+
+
+ IF bolREVERSE THEN
+
+ SELECT landing INTO d_INV2
+ FROM travel TR
+ INNER JOIN Entradas E ON E.travel_id = TR.id
+ WHERE landing >= d_FEC
+ AND E.Id_Proveedor = 4
+ ORDER BY landing ASC
+ LIMIT 1;
+
+ SET d_INV = TIMESTAMPADD(DAY,1,d_FEC);
+ SET d_FEC = d_INV2;
+
+
+
+ END IF;
+
+ DROP TEMPORARY TABLE IF EXISTS inv;
+
+ CREATE TEMPORARY TABLE inv
+ (w_id SMALLINT,
+ Id_Article BIGINT,
+ cantidad INT,
+ coste DOUBLE DEFAULT 0,
+ total DOUBLE DEFAULT 0) ENGINE = MEMORY;
+
+
+ ALTER TABLE inv ADD PRIMARY KEY USING HASH (w_id, Id_Article);
+
+
+
+ IF bolREVERSE = 1 THEN
+
+ INSERT INTO inv(w_id, Id_Article, cantidad)
+ SELECT TR.warehouse_id, C.Id_Article, SUM(C.Cantidad)
+ FROM Compres C
+ INNER JOIN Articles A USING(Id_Article)
+ INNER JOIN Entradas E USING (Id_Entrada)
+ INNER JOIN travel TR ON TR.id = E.travel_id
+ INNER JOIN Tipos t USING(tipo_id)
+ INNER JOIN warehouse w ON w.id = warehouse_id
+ WHERE landing = d_FEC
+ AND E.Id_Proveedor = 4
+ AND NOT w.fuente
+ AND t.inventory
+ AND reino_id NOT IN (7)
+ GROUP BY TR.warehouse_id, C.Id_Article;
+
+ END IF;
+
+ INSERT INTO inv(w_id, Id_Article, cantidad)
+ SELECT TR.warehouse_id, C.Id_Article, C.Cantidad * IF(bolREVERSE,-1,1)
+ FROM Compres C
+ INNER JOIN Articles A USING(Id_Article)
+ INNER JOIN Entradas E USING (Id_Entrada)
+ INNER JOIN travel TR ON TR.id = E.travel_id
+ INNER JOIN Tipos t USING(tipo_id)
+ INNER JOIN warehouse w ON w.id = TR.warehouse_id
+ WHERE landing BETWEEN d_INV AND TIMESTAMPADD(DAY, IF(bolREVERSE,-1,0) ,d_FEC)
+ AND NOT redada
+ AND NOT w.fuente
+ AND reino_id NOT IN (7)
+ AND t.inventory
+ ON DUPLICATE KEY UPDATE inv.cantidad = inv.cantidad + (C.Cantidad * IF(bolREVERSE,-1,1));
+
+ INSERT INTO inv(w_id, Id_Article, cantidad)
+ SELECT TR.warehouse_id_out, C.Id_Article, C.Cantidad * IF(bolREVERSE,1,-1)
+ FROM Compres C
+ INNER JOIN Articles A USING(Id_Article)
+ INNER JOIN Entradas E USING (Id_Entrada)
+ INNER JOIN travel TR ON TR.id = E.travel_id
+ INNER JOIN Tipos t USING(tipo_id)
+ INNER JOIN warehouse w ON w.id = warehouse_id_out
+ WHERE shipment BETWEEN d_INV AND TIMESTAMPADD(DAY, IF(bolREVERSE,-1,0) ,d_FEC)
+ AND NOT redada
+ AND NOT w.fuente
+ AND reino_id NOT IN (7)
+ AND t.inventory
+ ON DUPLICATE KEY UPDATE inv.cantidad = inv.cantidad + (C.Cantidad * IF(bolREVERSE,1,-1));
+
+ INSERT INTO inv(w_id, Id_Article, cantidad)
+ SELECT w.id, M.Id_Article, M.Cantidad * IF(bolREVERSE,1,-1)
+ FROM Movimientos M
+ INNER JOIN Tickets T USING (Id_Ticket)
+ INNER JOIN Clientes C USING(Id_Cliente)
+ INNER JOIN Articles A USING(Id_Article)
+ INNER JOIN Tipos t USING(tipo_id)
+ INNER JOIN warehouse w ON w.id = warehouse_id
+ WHERE T.Fecha BETWEEN d_INV AND TIMESTAMPADD(DAY, -1 ,d_FEC)
+ AND NOT w.fuente
+ AND reino_id NOT IN (7)
+ AND t.inventory
+ ON DUPLICATE KEY UPDATE inv.cantidad = inv.cantidad + M.Cantidad * IF(bolREVERSE,1,-1);
+
+
+ INSERT INTO inv(w_id, Id_Article, cantidad)
+ SELECT w.id, M.Id_Article, M.Cantidad * IF(bolREVERSE,0,-1)
+ FROM Movimientos M
+ INNER JOIN Tickets T USING (Id_Ticket)
+ INNER JOIN Clientes C USING(Id_Cliente)
+ INNER JOIN Articles A USING(Id_Article)
+ INNER JOIN Tipos t USING(tipo_id)
+ INNER JOIN warehouse w ON w.id = warehouse_id
+ WHERE T.Fecha = d_FEC
+ AND (d_FEC <> CURDATE() or (M.OK <> 0 or T.Etiquetasemitidas <> 0 ))
+ AND NOT w.fuente
+ AND reino_id NOT IN (7)
+ AND t.inventory
+ ON DUPLICATE KEY UPDATE inv.cantidad = inv.cantidad + M.Cantidad * IF(bolREVERSE,0,-1);
+
+ CALL item_last_buy_(NULL,d_FEC);
+
+ UPDATE inv
+ JOIN t_item_last_buy lb ON w_id = lb.warehouse_id AND inv.Id_Article = lb.item_id
+ JOIN Compres C ON C.Id_Compra = lb.buy_id
+ SET total = inv.cantidad * (ifnull(C.Costefijo,0) + IFNULL(C.Embalajefijo,0) + IFNULL(C.Portefijo,0) + IFNULL(C.Comisionfija,0)),
+ coste = ifnull(C.Costefijo,0) + IFNULL(C.Embalajefijo,0) + IFNULL(C.Portefijo,0) + IFNULL(C.Comisionfija,0)
+ WHERE inv.cantidad <> 0;
+
+ DELETE FROM inv WHERE Cantidad IS NULL or Cantidad = 0;
+
+ IF bol_DESGLOSE THEN
+
+ SELECT w_id, Id_Article, Article, Medida, Cantidad,Id_Tipo,reino_id, coste, cast(total as decimal(10,2)) total
+ FROM inv
+ JOIN warehouse w on w.id = w_id
+ JOIN Articles USING(Id_Article)
+ JOIN Tipos TP USING(tipo_id)
+ where w.valuatedInventory
+ and total > 0
+ order by total desc;
+
+ ELSE
+
+ SELECT w.name as Almacen, r.reino as Reino, cast(total as decimal) as Euros
+ FROM inv
+ JOIN warehouse w ON w.id = w_id
+ JOIN Articles A USING(Id_Article)
+ JOIN Tipos t USING(tipo_id)
+ JOIN reinos r ON r.id = t.reino_id
+ where w.valuatedInventory;
+
+ END IF;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `inventario_valorado_FTH` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `inventario_valorado_FTH`(IN d_FEC DATE, IN bol_DESGLOSE BOOLEAN, IN inv_value_new DOUBLE)
+BEGIN
+
+
+ DECLARE emp_id INT DEFAULT 791;
+ DECLARE inv_value DOUBLE ;
+
+ DECLARE d_INV DATE;
+ DECLARE bolREVERSE BOOLEAN DEFAULT 0;
+ DECLARE d_INV2 DATE;
+
+ SELECT landing INTO d_INV
+
+ FROM travel TR
+
+ INNER JOIN Entradas E ON E.travel_id = TR.id
+
+ WHERE landing <= d_FEC
+
+ AND E.Id_Proveedor = 4
+
+ ORDER BY landing DESC
+
+ LIMIT 1;
+
+
+
+ SET bolREVERSE = IF (d_INV is null, 1, 0);
+
+
+ IF bolREVERSE THEN
+
+ SELECT landing INTO d_INV2
+
+ FROM travel TR
+
+ INNER JOIN Entradas E ON E.travel_id = TR.id
+
+ WHERE landing >= d_FEC
+
+ AND E.Id_Proveedor = 4
+
+ ORDER BY landing ASC
+
+ LIMIT 1;
+
+ SET d_INV = TIMESTAMPADD(DAY,1,d_FEC);
+ SET d_FEC = d_INV2;
+
+
+
+ END IF;
+
+DROP TEMPORARY TABLE IF EXISTS inv;
+
+CREATE TEMPORARY TABLE inv
+ (w_id SMALLINT,
+ Id_Article BIGINT,
+ cantidad INT,
+ landing DATE,
+ Proveedor VARCHAR(30),
+ Id_Entrada BIGINT,
+ coste DOUBLE DEFAULT 0,
+ total DOUBLE DEFAULT 0) ENGINE = MEMORY;
+
+
+ALTER TABLE inv ADD PRIMARY KEY USING HASH (w_id, Id_Article);
+
+
+
+IF bolREVERSE = 1 THEN
+
+ INSERT INTO inv(w_id, Id_Article, cantidad)
+ SELECT TR.warehouse_id, C.Id_Article, SUM(C.Cantidad)
+ FROM Compres C
+ INNER JOIN Articles A USING(Id_Article)
+ INNER JOIN Entradas E USING (Id_Entrada)
+ INNER JOIN travel TR ON TR.id = E.travel_id
+ INNER JOIN Tipos t USING(tipo_id)
+ INNER JOIN warehouse w ON w.id = warehouse_id
+ WHERE landing = d_FEC
+ AND E.Id_Proveedor = 4
+ AND NOT w.fuente
+ AND A.tipo_id NOT IN (21,7)
+ AND reino_id NOT IN (6,7)
+ GROUP BY TR.warehouse_id, C.Id_Article;
+
+
+
+END IF;
+
+
+
+ INSERT INTO inv(w_id, Id_Article, cantidad)
+ SELECT TR.warehouse_id, C.Id_Article, C.Cantidad * IF(bolREVERSE,-1,1)
+ FROM Compres C
+ INNER JOIN Articles A USING(Id_Article)
+ INNER JOIN Entradas E USING (Id_Entrada)
+ INNER JOIN travel TR ON TR.id = E.travel_id
+ INNER JOIN Tipos t USING(tipo_id)
+ INNER JOIN warehouse w ON w.id = TR.warehouse_id
+ WHERE landing BETWEEN d_INV AND TIMESTAMPADD(DAY, IF(bolREVERSE,-1,0) ,d_FEC)
+ AND NOT redada
+ AND NOT w.fuente
+ AND reino_id NOT IN (6,7)
+ 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)
+ FROM Compres C
+ INNER JOIN Articles A USING(Id_Article)
+ INNER JOIN Entradas E USING (Id_Entrada)
+ INNER JOIN travel TR ON TR.id = E.travel_id
+ INNER JOIN Tipos t USING(tipo_id)
+ INNER JOIN warehouse w ON w.id = warehouse_id_out
+ WHERE shipment BETWEEN d_INV AND TIMESTAMPADD(DAY, IF(bolREVERSE,-1,0) ,d_FEC)
+ AND NOT redada
+ AND NOT w.fuente
+ AND reino_id NOT IN (6,7)
+ 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 w.id, M.Id_Article, M.Cantidad * IF(bolREVERSE,1,-1)
+ FROM Movimientos M
+ INNER JOIN Tickets T USING (Id_Ticket)
+ INNER JOIN Clientes C USING(Id_Cliente)
+ INNER JOIN Articles A USING(Id_Article)
+ INNER JOIN Tipos t USING(tipo_id)
+ INNER JOIN warehouse w ON w.id = warehouse_id
+ WHERE T.Fecha BETWEEN d_INV AND TIMESTAMPADD(DAY, -1 ,d_FEC)
+ AND empresa_id = emp_id AND NOT w.fuente
+ AND reino_id NOT IN (6,7)
+ 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)
+ FROM Movimientos M
+ INNER JOIN Tickets T USING (Id_Ticket)
+ INNER JOIN Clientes C USING(Id_Cliente)
+ INNER JOIN Articles A USING(Id_Article)
+ INNER JOIN Tipos t USING(tipo_id)
+ INNER JOIN warehouse w ON w.id = warehouse_id
+ WHERE T.Fecha = d_FEC
+ AND (d_FEC <> CURDATE() or (M.OK <> 0 or T.Etiquetasemitidas <> 0 ))
+ AND NOT w.fuente
+ AND empresa_id = emp_id
+ AND reino_id NOT IN (6,7)
+ 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
+ (
+ SELECT Id_Article
+ , warehouse_id
+ , Id_Entrada
+ , landing
+ , IF(Id_Proveedor = 13 AND warehouse_id_out = 7, 'VNH',Proveedor) Proveedor
+ , ifnull(C.Costefijo,0)
+ + IFNULL(C.Embalajefijo,0)
+ + IFNULL(C.Portefijo,0)
+ + IFNULL(C.Comisionfija,0) cost
+ FROM Compres C
+ JOIN Entradas E using(Id_Entrada)
+ JOIN Proveedores P using(Id_Proveedor)
+ JOIN travel tr on tr.id = travel_id
+ WHERE empresa_id = emp_id
+ AND landing between '2015-01-02' and '2015-08-31'
+ AND noVincular = FALSE
+ AND E.Id_Proveedor NOT IN (12,4,30,850,963,IF(warehouse_id_out = 7, -0.48, 13))
+ AND NOT redada
+ ORDER BY landing DESC
+ ) sub
+ GROUP BY Id_Article, warehouse_id
+ ) lb ON w_id = lb.warehouse_id AND inv.Id_Article = lb.Id_Article
+
+SET total = inv.cantidad * cost,
+coste = cost,
+inv.landing = lb.landing,
+inv.Proveedor = lb.Proveedor,
+inv.Id_Entrada = lb.Id_Entrada
+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);
+UPDATE inv SET total = cantidad * coste;
+
+
+IF bol_DESGLOSE THEN
+
+
+
+
+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
+and total > 0
+order by total desc;
+
+ELSE
+
+SELECT w.name as Almacen, r.reino as Reino, total as Euros
+FROM inv
+JOIN warehouse w ON w.id = w_id
+JOIN Articles A USING(Id_Article)
+JOIN Tipos t USING(tipo_id)
+JOIN reinos r ON r.id = t.reino_id
+;
+
+END IF;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `inventory_refresh` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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';
+
+ CALL article_inventory_warehouses (TIMESTAMPADD(DAY, -10, CURDATE()));
+
+ INSERT INTO daily_task_log
+ SET consulta = 'inventory_refresh-end';
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `invoice_newkk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `invoice_newkk`(
+ customer_id INT,
+ serie VARCHAR(10),
+ date_ini DATE,
+ date_end DATE,
+ date_invoice DATETIME,
+ ticket_id INT,
+ empresa_act INT,
+ Id_Trabajador INT
+)
+BEGIN
+ DECLARE invoice_id VARCHAR(30) DEFAULT NULL;
+ DECLARE date_vec DATE DEFAULT date_invoice;
+ DECLARE day_vec INT;
+ DECLARE bi_r DOUBLE DEFAULT 0;
+ DECLARE bi_g DOUBLE DEFAULT 0;
+ DECLARE bi_n DOUBLE DEFAULT 0;
+ DECLARE iva_r DOUBLE DEFAULT 0;
+ DECLARE iva_g DOUBLE DEFAULT 0;
+ DECLARE re_r DOUBLE DEFAULT 0;
+ DECLARE re_g DOUBLE DEFAULT 0;
+ DECLARE dblImporte DOUBLE DEFAULT 0;
+ DECLARE intpais_id TINYINT DEFAULT 1;
+ DECLARE intFac INTEGER;
+
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ SELECT TIMESTAMP (date_ini, '00:00:00') into date_ini;
+
+ SET date_invoice = IFNULL(date_invoice,CURDATE());
+
+ IF date_invoice >= '2015-12-01' AND empresa_act = 791 AND serie <> 'A' THEN
+ SIGNAL SQLSTATE '45000'
+ SET MESSAGE_TEXT ='ERROR_FTH_NO_EXISTE';
+ END IF;
+
+ DROP TEMPORARY TABLE IF EXISTS `iva_base`;
+ CREATE TEMPORARY TABLE `iva_base`
+ (
+ `id` VARCHAR(3) NOT NULL,
+ `base` DOUBLE NOT NULL DEFAULT 0,
+ PRIMARY KEY (`id`)
+ )
+ ENGINE = MEMORY;
+
+ DROP TEMPORARY TABLE IF EXISTS `ticket_invoice`;
+ CREATE TEMPORARY TABLE `ticket_invoice`
+ (
+ `ticket_id` INT NOT NULL,
+ PRIMARY KEY (`ticket_id`)
+ )
+ ENGINE = MEMORY;
+
+ START TRANSACTION;
+
+ SELECT pais_id INTO intpais_id FROM Proveedores WHERE Id_Proveedor = empresa_act;
+
+ IF ticket_id = 0 THEN
+
+ INSERT INTO ticket_invoice (ticket_id) SELECT Id_Ticket FROM Tickets WHERE (Fecha BETWEEN date_ini
+ AND DAYEND(date_end)) AND Id_Cliente = customer_id AND Factura IS NULL AND empresa_id = empresa_act ;
+
+ ELSE
+
+ INSERT INTO ticket_invoice (ticket_id) SELECT Id_Ticket FROM Tickets WHERE Id_Ticket = ticket_id
+ 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;
+
+ IF (SELECT COUNT(*) FROM ticket_invoice) > 0 THEN
+
+ INSERT INTO iva_base (id) SELECT tipoiva FROM tblIVA;
+
+ UPDATE iva_base
+ INNER JOIN
+ (SELECT tipo, SUM(base) base
+ FROM
+ (SELECT t.tipo, red(m.Cantidad * m.Preu * (100 - Descuento) / 100) AS base
+ FROM
+ Movimientos m
+ INNER JOIN ticket_invoice ti ON m.Id_Ticket = ti.ticket_id
+ INNER JOIN (SELECT t.tipo, Id_Article
+ FROM
+ (SELECT
+ date, iva_codigo_id, ic.tipo, iva_group_id
+ FROM
+ iva_group_codigo gi
+ INNER JOIN iva_codigo ic ON gi.iva_codigo_id = ic.id
+ INNER JOIN iva_tipo itp ON itp.id = ic.iva_tipo_id
+ WHERE
+ date <= date_invoice
+ AND Id_Pais = intpais_id
+ ORDER BY date DESC) t
+ INNER JOIN Articles USING (iva_group_id)
+ GROUP BY Id_Article) t USING (Id_Article)) sub
+ GROUP BY tipo) iva_movement ON iva_base.id = iva_movement.tipo
+ SET
+ iva_base.base = iva_movement.base;
+
+ IF (serie = 'H' OR serie = 'V' OR serie = 'E' OR serie = 'X') then
+ SELECT SUM(base) into dblImporte from iva_base;
+ ELSE
+
+ SET bi_r = (SELECT base FROM iva_base WHERE id = 'R');
+
+ SET bi_g = (SELECT base FROM iva_base WHERE id = 'G');
+ SET bi_n = (SELECT base FROM iva_base WHERE id = '0');
+ SET iva_r = red(bi_r * (SELECT iva FROM iva_codigo INNER JOIN iva_tipo it ON it.id = iva_tipo_id
+ WHERE tipo = 'R' AND Id_Pais = intpais_id AND Fecha <= date_invoice and iva ORDER BY fecha DESC, recargo DESC LIMIT 1) / 100 );
+ SET iva_g = red(bi_g * (SELECT iva FROM iva_codigo INNER JOIN iva_tipo it ON it.id = iva_tipo_id
+ WHERE tipo = 'G' AND Id_Pais = intpais_id AND Fecha <= date_invoice and iva ORDER BY fecha DESC, recargo DESC LIMIT 1) / 100 );
+ IF (SELECT IF(RE = 0, FALSE, TRUE) FROM Clientes WHERE Clientes.Id_cliente = customer_id) THEN
+
+ SET re_r = red(bi_r * (SELECT recargo FROM iva_codigo INNER JOIN iva_tipo it ON it.id = iva_tipo_id
+ WHERE tipo = 'R' AND Id_Pais = intpais_id AND Fecha <= date_invoice and iva ORDER BY fecha DESC, recargo DESC LIMIT 1) / 100 );
+ SET re_g = red(bi_g * (SELECT recargo FROM iva_codigo INNER JOIN iva_tipo it ON it.id = iva_tipo_id
+ WHERE tipo = 'G' AND Id_Pais = intpais_id AND Fecha <= date_invoice and iva ORDER BY fecha DESC, recargo DESC LIMIT 1) / 100 );
+ END IF;
+ SET dblImporte = bi_r + bi_g + bi_n + iva_r + iva_g + re_r + re_g ;
+ END IF;
+
+ END IF;
+
+ IF dblImporte <> 0 THEN
+
+ 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,
+ Serie,
+ Fecha,
+ Id_Cliente,
+ BI7,
+ BI16,
+ IVA7,
+ IVA16,
+ RE1,
+ RE4,
+ Importe,
+ Vencimiento,
+ empresa_id
+ )
+ VALUES
+ (
+ 1,
+ serie,
+ date_invoice,
+ customer_id,
+ bi_r,
+ bi_g,
+ iva_r,
+ iva_g,
+ re_r,
+ re_g,
+ dblImporte,
+ date_vec,
+ empresa_act
+ );
+
+ SET intFac = LAST_INSERT_ID();
+
+ SELECT Id_Factura INTO invoice_id FROM Facturas
+ WHERE factura_id = intFac;
+
+ UPDATE Tickets INNER JOIN ticket_invoice ON Tickets.Id_Ticket = ticket_invoice.ticket_id
+ SET Factura = invoice_id, Etiquetasemitidas = TRUE;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.updateInter;
+ CREATE TEMPORARY TABLE tmp.updateInter ENGINE = MEMORY
+ SELECT s.id,ti.ticket_id,Id_Trabajador
+ FROM ticket_invoice ti
+ JOIN vn.ticketState ts ON ti.ticket_id = ts.ticket
+ JOIN state s
+ WHERE IFNULL(ts.alertLevel,0) < 3 and s.`code` = vn.getAlert3State(ti.ticket_id);
+
+ INSERT INTO vncontrol.inter(state_id,Id_Ticket,Id_Trabajador)
+ 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;
+ END IF;
+
+ DROP TEMPORARY TABLE `iva_base`;
+ DROP TEMPORARY TABLE `ticket_invoice`;
+ COMMIT;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `itemTagArrangedUpdate` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `itemTagArrangedUpdate`(IN vItem BIGINT)
+BEGIN
+/**
+ * DEPRECATED
+ **/
+ CALL vn.itemTagArrangedUpdate(vItem);
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `itemTagArrangedUpdate_launcher` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `itemTagArrangedUpdate_launcher`()
+BEGIN
+
+ call vn2008.itemTagArrangedUpdate(0);
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `itemTagUpdatePriority` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `itemTagUpdatePriority`(IN vItem INT)
+BEGIN
+/*
+* DEPRECATED
+*/
+
+CALL vn.itemTagUpdatePriority(vItem);
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `item_buffer_tarifa_traveltreekk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ DECLARE v_agency_id INT;
+
+ DECLARE cur1 CURSOR FOR
+ SELECT warehouse_id, Fecha_envio
+ FROM travel_tree;
+
+ 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
+ CALL travel_tree(v_date,v_consigna, v_agency_id);
+ ELSE
+ DROP TEMPORARY TABLE IF EXISTS travel_tree;
+
+ CREATE TEMPORARY TABLE travel_tree (
+ warehouse_id SMALLINT NOT NULL,
+ Fecha_envio DATE NOT NULL,
+ Fecha_recepcion DATE NOT NULL,
+ PRIMARY KEY ( warehouse_id)
+ ) ENGINE = MEMORY;
+
+ INSERT INTO travel_tree
+ 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;
+
+ DROP TEMPORARY TABLE IF EXISTS buffer_multi;
+ CREATE TEMPORARY TABLE buffer_multi (
+ warehouse_id tinyint(4) NOT NULL ,
+ Id_Article int(11) NOT NULL ,
+ visible double DEFAULT NULL,
+ available double DEFAULT NULL,
+ future date DEFAULT NULL,
+ buy_inc int(11) DEFAULT NULL,
+ buy_last date DEFAULT NULL,
+ buy_id int(11) DEFAULT NULL,
+ `fixed` tinyint(4) DEFAULT '0',
+ rate_0 double DEFAULT NULL,
+ rate_1 double DEFAULT NULL,
+ rate_2 double DEFAULT NULL,
+ rate_3 double DEFAULT NULL,
+ Packing int(8) DEFAULT 1,
+ Grouping int(8) DEFAULT 1,
+ Productor VARCHAR(45) DEFAULT NULL,
+ caja tinyint(4) DEFAULT '0',
+ Origen VARCHAR(3) NOT NULL DEFAULT '---',
+ mark tinyint(4) DEFAULT '0',
+ `comment` VARCHAR(100),
+ foto VARCHAR(50),
+ Id_Tipo smallint(5),
+ Article VARCHAR(50),
+ PRIMARY KEY (Id_Article, warehouse_id)
+ ) ENGINE = MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;
+
+ WHILE NOT done
+ 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
+ FROM bionic_buffer bb
+ JOIN Articles A ON A.Id_Article = bb.id
+ JOIN Tipos TP ON TP.tipo_id = A.tipo_id
+ WHERE NOT (v_wh = 44 AND TP.reino_id IN (1,5))
+ AND NOT (v_wh = 1 AND TP.reino_id NOT IN (1,5));
+
+ INSERT INTO order_components(order_id, warehouse_id, Id_Article, Valor, Id_Componente)
+ SELECT i_order, v_wh, bb.Id_Article, Valor, Id_Componente
+ FROM components bb
+ JOIN Articles A ON A.Id_Article = bb.Id_Article
+ JOIN Tipos TP ON TP.tipo_id = A.tipo_id
+ WHERE NOT (v_wh = 44 AND TP.reino_id IN (1,5))
+ AND NOT (v_wh = 1 AND TP.reino_id NOT IN (1,5));
+
+ DROP TEMPORARY TABLE bionic_buffer;
+ DROP TEMPORARY TABLE components;
+
+ FETCH cur1 INTO v_wh, v_shipment;
+ END WHILE;
+
+ CLOSE cur1;
+
+ DROP TEMPORARY TABLE IF EXISTS buffer_multi_lotes;
+
+ CREATE TEMPORARY TABLE buffer_multi_lotes
+ ENGINE = MEMORY
+ SELECT buy_last as landing, warehouse_id, Id_Article, FLOOR(available/IF(caja = 1,Grouping,1)) AS Items,
+ IF(caja = 1,Grouping,1) AS Grouping, rate_1 AS Precio, 1 AS tarifa_class
+ FROM buffer_multi
+ WHERE caja < 2
+ AND (Packing > Grouping or caja = 0);
+
+ INSERT INTO buffer_multi_lotes
+ SELECT buy_last, warehouse_id, Id_Article, FLOOR(available/Packing) AS items, Packing AS Grouping, rate_2 AS Precio,2 AS tarifa_class
+ FROM buffer_multi
+ WHERE Packing > 0
+ AND available > Packing;
+
+ INSERT INTO buffer_multi_lotes
+ SELECT buy_last, warehouse_id, Id_Article, 1 AS items, available AS Grouping, rate_3 AS Precio,3 AS tarifa_class
+ FROM buffer_multi;
+
+ DROP TEMPORARY TABLE travel_tree;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `item_buffer_tarifa_traveltree_dupkk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!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_consigna INT,
+ v_agencia INT,
+ i_order INT,
+ v_wh TINYINT)
+BEGIN
+ DECLARE v_shipment DATE;
+ DECLARE v_agency_id INT;
+ DECLARE done BOOL DEFAULT FALSE;
+ DECLARE cur CURSOR FOR
+ SELECT warehouse_id, Fecha_envio FROM travel_tree;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
+
+ 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;
+
+ IF v_wh = 0
+ THEN
+ CALL vn2008.travel_tree(v_date,v_consigna, v_agency_id);
+ ELSE
+ CREATE TEMPORARY TABLE travel_tree
+ (PRIMARY KEY (warehouse_id))
+ ENGINE=MEMORY
+ 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;
+
+ WHILE NOT done
+ 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
+ )
+ SELECT i_order, 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
+ FROM bionic_buffer bb
+ JOIN Articles A on A.Id_Article = bb.id
+ JOIN Tipos TP on TP.tipo_id = A.tipo_id
+ WHERE NOT (v_wh = 44 AND TP.reino_id IN (1,5))
+ AND NOT (v_wh = 1 AND TP.reino_id NOT IN (1,5));
+
+ INSERT INTO cache.order_component (
+ order_id, warehouse_id, item_id, cost, component_id
+ )
+ SELECT i_order, v_wh, bb.Id_Article, Valor, Id_Componente
+ FROM components bb
+ JOIN Articles A on A.Id_Article = bb.Id_Article
+ JOIN Tipos TP on TP.tipo_id = A.tipo_id
+ WHERE NOT (v_wh = 44 AND TP.reino_id IN (1,5))
+ AND NOT (v_wh = 1 AND TP.reino_id NOT IN (1,5));
+
+ FETCH cur INTO v_wh, v_shipment;
+ END WHILE;
+
+ CLOSE cur;
+
+ INSERT INTO cache.order_stock_lot (
+ order_id,
+ landing,
+ warehouse_id,
+ item_id,
+ items,
+ grouping,
+ price,
+ rate_class
+ )
+ SELECT order_id, buy_last, warehouse_id, Id_Article, FLOOR(available / IF(caja = 1, Grouping, 1)), IF(caja = 1, Grouping, 1), rate_1, 1
+ FROM cache.order_stock
+ WHERE caja < 2
+ AND (Packing > Grouping or caja = 0)
+ UNION ALL
+ SELECT order_id, buy_last, warehouse_id, Id_Article, FLOOR(available/Packing), Packing, rate_2, 2
+ FROM cache.order_stock
+ WHERE Packing > 0
+ AND available > Packing
+ UNION ALL
+ SELECT order_id, buy_last, warehouse_id, Id_Article, 1, available, rate_3, 3
+ FROM cache.order_stock;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `item_buy` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `item_buy`(IN v_wh TINYINT, IN v_date DATETIME)
+BEGIN
+ DECLARE date_inv DATE;
+ ALTER TABLE item
+ ADD buy_id INT UNSIGNED;
+
+ IF v_date < (SELECT date_inv()) THEN
+ SELECT MIN(landing) INTO date_inv FROM travel t INNER JOIN Entradas e ON e.travel_id = t.id
+ WHERE warehouse_id_out = 13 AND landing <= v_date;
+ ELSE
+ SET date_inv = date_inv();
+ END IF;
+ UPDATE item i INNER JOIN (
+ SELECT * FROM (
+ SELECT c.Id_Article item_id, c.Id_Compra id
+ FROM Compres c INNER JOIN Entradas e USING(Id_Entrada)
+ INNER JOIN travel t ON t.id = e.travel_id
+ WHERE t.landing BETWEEN date_inv AND v_date
+ AND c.Novincular = FALSE
+ AND c.Tarifa2 >= 0
+ ORDER BY v_wh = t.warehouse_id DESC, t.landing DESC
+ ) t
+ GROUP BY item_id
+ ) t
+ ON i.id = t.item_id
+ SET i.buy_id = t.id;
+
+ CREATE INDEX buy USING HASH ON item (buy_id);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `item_buy_price` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `item_buy_price`(IN v_customer INT,IN date_ DATE,IN v_wh TINYINT)
+BEGIN
+ ALTER TABLE item
+ ADD price DOUBLE,
+ 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
+ JOIN Clientes c ON c.Id_cliente = v_customer
+ SET i.price = CASE c.Descuento
+
+ WHEN 0 THEN b.PVP
+ WHEN 1 THEN b.Tarifa1
+ WHEN 2 THEN b.Tarifa2
+ WHEN 3 THEN b.Tarifa3
+ ELSE IF(c.Descuento BETWEEN 4 AND 100, b.Tarifa2, round(b.Tarifa3 * (200 - c.Descuento) / 100 ,2) )
+ 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
+ JOIN v_price_fixed_group fp ON i.id = fp.item_id
+ SET i.price = CASE c.Descuento
+ WHEN 0 THEN fp.rate_0
+ WHEN 1 THEN fp.rate_1
+ WHEN 2 THEN fp.rate_2
+ WHEN 3 THEN fp.rate_3
+ ELSE fp.rate_3
+ END,
+ i.discount = 0
+ 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
+ JOIN PreciosEspeciales p ON i.id = p.Id_Article AND p.Id_Cliente = v_customer
+ 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 ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `item_cache_cleaner` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `item_cache_cleaner`()
+BEGIN
+ DECLARE v_lifetime INT DEFAULT 80;
+ DECLARE v_expired DATETIME DEFAULT TIMESTAMPADD(SECOND, -v_lifetime, NOW());
+
+ IF (SELECT MAX(id) FROM`cache`) < 32000
+ THEN
+ UPDATE `cache` SET age = age + 1 WHERE stamp < v_expired ORDER BY age DESC;
+
+ DELETE FROM `cache` WHERE stamp < TIMESTAMPADD(SECOND, -40, v_expired);
+
+ IF ROW_COUNT() > 0
+ THEN
+ DELETE a
+ FROM cache_a a
+ LEFT JOIN `cache` c ON c.id = a.cache_id
+ WHERE c.id IS NULL;
+ END IF;
+ ELSE
+ TRUNCATE TABLE `cache`;
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `item_catalog` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `item_catalog`(
+ v_wh INT
+ ,v_date DATE
+ ,v_customer INT
+)
+BEGIN
+ DECLARE v_cache SMALLINT;
+
+ CALL item_cache (v_cache, 'a', v_wh, v_date);
+
+ DROP TEMPORARY TABLE IF EXISTS item_catalog;
+
+ CREATE TEMPORARY TABLE item_catalog
+ (KEY (item_id))
+ ENGINE = MEMORY
+ SELECT
+ b.item_id
+ ,b.available
+ ,b.fixed
+ ,IFNULL(p.PrecioEspecial,(
+ CASE c.Descuento
+ WHEN 0 THEN b.rate_0
+ WHEN 1 THEN b.rate_1
+ WHEN 2 THEN b.rate_2
+ WHEN 3 THEN b.rate_3
+ ELSE NULL
+ END
+ )) AS price
+ ,be.S1 s1
+ ,be.S2 s2
+ ,0 discount
+ ,CASE co.caja WHEN 0 THEN 1 WHEN 2 THEN co.packing ELSE co.grouping END AS grouping
+ FROM cache_a b
+ JOIN Clientes c
+ ON c.Id_cliente = v_customer
+ JOIN Articles a
+ ON a.Id_Article = b.item_id
+ JOIN Tipos t
+ ON t.tipo_id = a.tipo_id
+ JOIN reinos r
+ ON r.id = t.reino_id
+ JOIN Compres co
+ ON co.Id_Compra = b.buy_id
+ LEFT JOIN buy_edi be
+ ON be.id = co.buy_edi_id
+ 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
+ DELETE c
+ FROM item_catalog c
+ JOIN Articles ON item_id = Id_Article
+ WHERE tipo_id = 105;
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `item_disp_virt` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `item_disp_virt`(v_wh SMALLINT, v_date DATETIME, id_single INT, v_cache INT)
+BEGIN
+ DROP TEMPORARY TABLE IF EXISTS wh_father;
+ DROP TEMPORARY TABLE IF EXISTS wh_son;
+ DROP TEMPORARY TABLE IF EXISTS article_inventory;
+
+ CREATE TEMPORARY TABLE wh_father
+ (
+ wh SMALLINT,
+ INDEX i (wh)
+ )
+ ENGINE = MEMORY;
+
+ CREATE TEMPORARY TABLE wh_son
+ (
+ wh INT,
+ INDEX i (wh)
+ )
+ ENGINE = MEMORY;
+
+ 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;
+
+ CALL item_travel_fixed(v_wh,v_date);
+ SET @@max_sp_recursion_depth = 10;
+
+ CALL item_disp_virt1 (v_wh, v_date, 0, id_single, v_cache);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `item_disp_virt1` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `item_disp_virt1`(v_wh SMALLINT, v_date DATETIME, direccion TINYINT, id_single INT, v_cache INT)
+BEGIN
+ DECLARE wh_cursor,done TINYINT DEFAULT 0;
+ DECLARE v_shipment_aux DATETIME DEFAULT NULL;
+ DECLARE v_date_cur DATETIME DEFAULT CURDATE();
+ DECLARE v_inv DATETIME;
+ 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);
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
+
+
+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
+ (
+ article_id INT PRIMARY KEY,
+ 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
+ AND t.warehouse_id = wh_cursor
+ AND t.shipment >= v_date
+ 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
+ ON DUPLICATE KEY UPDATE
+ amount = amount + VALUES(amount);'
+ ,v_wh
+ ));
+
+ FETCH cur1 INTO wh_cursor;
+ END WHILE;
+ CLOSE cur1;
+
+ 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
+ CALL item_disp_virt1(wh_cursor,v_shipment_aux,2, id_single, v_cache);
+ END IF;
+ FETCH cur2 INTO wh_cursor;
+
+ END WHILE;
+
+ 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);
+ END IF;
+ DELETE FROM cache_a WHERE cache_id = v_cache;
+
+ CALL hedera.sql_query (sql_printf (
+ 'INSERT INTO vn2008.cache_a (cache_id, item_id, visible, available, virtual, future)
+ SELECT %v, item_id, visible, available, IFNULL(amount,0) virtual, future
+ FROM vn2008.tmp_item
+ LEFT JOIN %t ON item_id = article_id
+ ON DUPLICATE KEY UPDATE
+ visible = VALUES(visible),
+ available = VALUES(available),
+ virtual = VALUES(virtual),
+ future = VALUES(future);'
+ ,v_cache
+ ,v_wh
+
+ ));
+ END IF;
+
+ CALL hedera.sql_query (sql_printf ('DROP TEMPORARY TABLE IF EXISTS %t;', v_wh));
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `item_express` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `item_express`(IN intWH INT, IN datFEC DATE)
+BEGIN
+
+DECLARE datINV DATE;
+
+
+
+SELECT FechaInventario INTO datINV FROM tblContadores LIMIT 1;
+
+
+SELECT sub1.Id_Article, Visible, Tarifa2
+FROM
+(SELECT Id_Article, SUM(Cantidad) as Visible
+FROM Compres C
+JOIN Entradas E USING(Id_Entrada)
+JOIN travel T ON T.id = E.travel_id
+WHERE shipment >= datINV
+AND landing <= datFEC
+AND Redada = 0
+AND warehouse_id = intWH
+GROUP BY Id_Article) sub1
+JOIN
+(
+SELECT * FROM
+(
+SELECT Id_Article, Tarifa2
+FROM Compres C
+JOIN Entradas E USING(Id_Entrada)
+JOIN travel T ON T.id = E.travel_id
+WHERE shipment >= datINV
+AND landing <= datFEC
+AND Redada = 0
+AND Novincular = 0
+AND warehouse_id = intWH
+ORDER BY landing DESC) sub
+GROUP BY Id_Article) sub2 USING(Id_Article);
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `item_last_buy_` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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);
+
+
+ DROP TEMPORARY TABLE IF EXISTS t_item_last_buy;
+ CREATE TEMPORARY TABLE t_item_last_buy
+ (PRIMARY KEY (item_id,warehouse_id))
+ ENGINE = MEMORY
+ SELECT item_id, buy_id, warehouse_id
+ FROM cache.last_buy
+ 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
+ SELECT item_id, buy_id, warehouse_id
+ FROM tmp.item_last_buy_from_interval
+ WHERE v_wh = warehouse_id OR v_wh IS NULL;
+
+
+ DROP TEMPORARY TABLE tmp.item_last_buy_from_interval;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `item_last_buy_from_interval` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ **/
+
+
+
+ IF v_date_end IS NULL
+ THEN
+ 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
+ SELECT c.Id_Article item_id, t.warehouse_id, multimax(t.landing, c.Id_Compra) buy_id, MAX(t.landing) landing
+ FROM Compres c
+ JOIN Entradas e USING (Id_Entrada)
+ JOIN travel t ON t.id = e.travel_id
+ WHERE t.landing BETWEEN v_date_ini AND v_date_end
+ AND (v_wh IS NULL OR t.warehouse_id = v_wh)
+ AND c.Tarifa2 > 0
+ AND NOT c.Novincular
+ GROUP BY item_id, warehouse_id;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `item_new` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `item_new`()
+BEGIN
+ CREATE TEMPORARY TABLE item
+ (
+ item_id INT UNSIGNED NOT NULL,
+ UNIQUE KEY USING HASH (item_id)
+ )
+ ENGINE = MEMORY;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `item_stock` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ DECLARE v_inv DATETIME;
+ DECLARE v_camp DATETIME;
+ DECLARE v_curdate DATETIME DEFAULT CURDATE();
+
+ SET v_date = TIMESTAMP(DATE(v_date), '00:00:00');
+
+ SELECT FechaInventario, TIMESTAMPADD(DAY, -campaign_life, campaign)
+ INTO v_inv, v_camp FROM tblContadores LIMIT 1;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp_item;
+ CREATE TEMPORARY TABLE tmp_item
+ (UNIQUE INDEX i USING HASH (item_id))
+ ENGINE = MEMORY
+ SELECT item_id, SUM(amount) stock, SUM(amount) visible, SUM(amount) available FROM (
+ SELECT item_id, amount FROM item_out
+ WHERE dat >= v_curdate AND dat < v_date
+ AND warehouse_id = v_wh
+ AND (v_item IS NULL OR item_id = v_item)
+ UNION ALL
+ SELECT item_id, amount FROM item_entry_in
+ WHERE dat >= v_curdate AND dat < v_date
+ AND warehouse_id = v_wh
+ AND (v_item IS NULL OR item_id = v_item)
+ UNION ALL
+ SELECT item_id, amount FROM item_entry_out
+ WHERE dat >= v_curdate AND dat < v_date
+ AND warehouse_id = v_wh
+ AND (v_item IS NULL OR item_id = v_item)
+ ) t
+ GROUP BY item_id HAVING stock != 0;
+
+ CALL `cache`.stock_refresh (FALSE);
+
+ INSERT INTO tmp_item (item_id,stock,visible,available)
+ SELECT item_id,amount,amount,amount FROM `cache`.stock
+ WHERE warehouse_id = v_wh AND (v_item IS NULL OR v_item = item_id)
+ ON DUPLICATE KEY UPDATE
+ stock = stock + VALUES(stock),
+ visible = visible + VALUES(visible),
+ available = available + VALUES(available);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `item_stock_avail` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `item_stock_avail`(IN v_wh TINYINT, IN v_date DATETIME, IN id_single INT,IN direccion TINYINT)
+BEGIN
+ DECLARE done INT DEFAULT 0;
+ DECLARE expr,expr1,expr2,expr3,expr4,expr5 TEXT;
+ 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*/
+ );
+
+
+ IF id_single IS NOT NULL THEN
+ SET expr = sql_printf('%s AND item_id = %v'
+ ,expr
+ ,id_single
+ );
+ END IF;
+
+ SET expr1 = sql_printf ('%s AND warehouse_id = %v '
+ ,expr
+ ,v_wh
+ );
+ 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),
+ dat DATE,
+ amount DOUBLE(8,2),
+ 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
+ FROM vn2008.%t WHERE %s'
+ ,_self
+ ,expr
+ );
+ END IF;
+
+ 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 (
+ SELECT t.item_id, minacum(dt, amount, %v) amount,w.landing FROM (
+ SELECT item_id, DATE(dat) dt, SUM(amount) amount FROM (
+ SELECT item_id, dat, amount
+ FROM item_out WHERE %s
+ UNION ALL
+ SELECT item_id, dat, amount
+ FROM item_entry_in WHERE %s
+ UNION ALL
+ SELECT item_id, dat, amount
+ FROM item_entry_out WHERE %s
+ %s
+ ) t
+ GROUP BY item_id, dt
+ ) t
+ LEFT JOIN Articles a ON a.Id_Article = t.item_id
+ LEFT JOIN Origen o ON o.id = a.id_origen
+ LEFT JOIN item_travel w ON w.wh = o.warehouse_id
+ WHERE IFNULL(dt < w.landing OR Id_Article > 170000, TRUE)
+ GROUP BY t.item_id
+ ) t
+ GROUP BY t.item_id HAVING available != 0
+ ON DUPLICATE KEY UPDATE
+ 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
+ (
+ item_id INT(11),
+ dat DATE,
+ amount DOUBLE(8,2),
+ PRIMARY KEY(item_id,dat)
+ )
+ 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
+ '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
+ AND warehouse_id = (SELECT son FROM warehouse_tree_bidi WHERE father = %v
+ LIMIT 1) GROUP BY warehouse_id
+ ',_son,v_date,v_wh,v_wh);
+
+ CALL sql_query (query);
+
+ TRUNCATE TABLE tmp_item;
+ END IF;
+ OPEN cur1;
+ FETCH cur1 INTO _auxshipment,_auxlanding;
+ WHILE !done DO
+ SET expr4 = sql_printf ('dat BETWEEN %v AND %v'
+ ,TIMESTAMP(DATE(_auxshipment), '00:00:00')
+ ,TIMESTAMP(TIMESTAMPADD(DAY, 15, v_date), '23:59:59')
+ );
+ IF id_single IS NOT NULL THEN
+ SET expr4 = sql_printf('%s AND item_id = %v'
+ ,expr4
+ ,id_single
+ );
+ END IF;
+
+ SET expr5 = sql_printf ('%s AND warehouse_id = %v'
+ ,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 (
+ SELECT t.item_id, minacum(dt, amount, %v) amount FROM (
+ SELECT item_id, DATE(dat) dt, SUM(amount) amount FROM (
+ SELECT item_id, dat, amount
+ FROM item_out WHERE %s
+ UNION ALL
+ SELECT item_id, dat, amount
+ FROM item_entry_in WHERE %s
+ UNION ALL
+ SELECT item_id, dat, amount
+ FROM item_entry_out WHERE %s
+ UNION ALL
+ SELECT item_id, dat, amount
+ FROM %t WHERE %s
+ ) t
+ GROUP BY item_id, dt
+ ) t
+ LEFT JOIN Articles a ON a.Id_Article = t.item_id
+ LEFT JOIN Origen o ON o.id = a.id_origen
+ LEFT JOIN item_travel w ON w.wh = o.warehouse_id
+ WHERE IFNULL(dt < w.landing OR Id_Article > 170000, TRUE)
+ GROUP BY t.item_id
+ ) t GROUP BY t.item_id HAVING available > 0
+ 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;
+
+ CLOSE cur1;
+ END IF;
+ CALL sql_query (sql_printf('DROP TEMPORARY TABLE IF EXISTS %t;',_self));
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `item_stock_avail_new` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `item_stock_avail_new`(IN v_wh TINYINT, IN v_date DATETIME, IN id_single INT,IN direccion TINYINT)
+BEGIN
+ DECLARE done INT DEFAULT 0;
+ DECLARE expr,expr1,expr2,expr3,expr4,expr5 TEXT;
+ DECLARE query TEXT;
+ 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
+ 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 viajes que arrivaran després de la v_date de cada almacen
+
+ 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')
+ );
+
+ IF id_single IS NOT NULL
+ THEN
+ SET expr = sql_printf('%s AND item_id = %v'
+ ,expr
+ ,id_single
+ );
+ END IF;
+
+ SET expr1 = sql_printf ('%s AND warehouse_id = %v '
+ ,expr
+ ,v_wh
+ );
+ 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
+ (
+ item_id INT(11),
+ dat DATE,
+ amount DOUBLE(8,2),
+ 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
+ FROM vn2008.%t WHERE %s'
+ ,_self
+ ,expr
+ );
+ END IF;
+
+ 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)
+ SELECT item_id, SUM(amount) AS available,landing as future FROM (
+ SELECT t.item_id, minacum(dt, amount, %v) amount,w.landing FROM (
+ SELECT item_id, DATE(dat) dt, SUM(amount) amount FROM (
+ SELECT item_id, dat, amount
+ FROM item_out WHERE %s
+ UNION ALL
+ SELECT item_id, dat, amount
+ FROM item_entry_in WHERE %s
+ UNION ALL
+ SELECT item_id, dat, amount
+ FROM item_entry_out WHERE %s
+ %s
+ ) t
+ GROUP BY item_id, dt
+ ) t
+ LEFT JOIN Articles a ON a.Id_Article = t.item_id
+ LEFT JOIN Origen o ON o.id = a.id_origen
+ LEFT JOIN item_travel w ON w.wh = o.warehouse_id
+ WHERE IFNULL(dt <= w.landing OR Id_Article > 170000, TRUE)
+ GROUP BY t.item_id
+ ) t
+ GROUP BY t.item_id HAVING available != 0
+ ON DUPLICATE KEY UPDATE
+ available = IFNULL(available,0) + VALUES(available)'
+ ,DATE(v_date)+0
+ ,expr1
+ ,expr1
+ ,expr1
+ ,expr2
+ );
+ 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(
+ 'CREATE TEMPORARY TABLE IF NOT EXISTS vn2008.%t
+ (
+ item_id INT(11),
+ dat DATE,
+ amount DOUBLE(8,2),
+ PRIMARY KEY(item_id,dat)
+ )
+ ENGINE = MEMORY;',
+ _son
+ ));
+
+ IF (direccion >= 2)
+ THEN
+ CALL sql_query (query);
+ CALL sql_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
+ AND warehouse_id = (SELECT son FROM warehouse_tree_bidi WHERE father = %v LIMIT 1)
+ GROUP BY warehouse_id'
+ ,_son
+ ,v_date
+ ,v_wh
+ ,v_wh
+ ));
+ TRUNCATE TABLE tmp_item;
+ END IF;
+
+ OPEN cur1;
+ FETCH cur1 INTO _auxshipment,_auxlanding;
+
+ WHILE !done
+ DO
+ SET expr4 = sql_printf ('dat BETWEEN %v AND %v'
+ ,TIMESTAMP(DATE(_auxshipment), '00:00:00')
+ ,TIMESTAMP(TIMESTAMPADD(DAY, 15, v_date), '23:59:59')
+ );
+
+ IF id_single IS NOT NULL
+ THEN
+ SET expr4 = sql_printf('%s AND item_id = %v'
+ ,expr4
+ ,id_single
+ );
+ END IF;
+
+ SET expr5 = sql_printf ('%s AND warehouse_id = %v'
+ ,expr4
+ ,v_wh
+ );
+
+ -- Afegir entrades menys eixides desde l'ultim dia
+
+ CALL sql_query (sql_printf (
+ 'INSERT INTO vn2008.%t (item_id,dat,amount)
+ SELECT item_id, %v, SUM(amount) AS available FROM (
+ SELECT t.item_id, minacum(dt, amount, %v) amount FROM (
+ SELECT item_id, DATE(dat) dt, SUM(amount) amount FROM (
+ SELECT item_id, dat, amount
+ FROM item_out WHERE %s
+ UNION ALL
+ SELECT item_id, dat, amount
+ FROM item_entry_in WHERE %s
+ UNION ALL
+ SELECT item_id, dat, amount
+ FROM item_entry_out WHERE %s
+ UNION ALL
+ SELECT item_id, dat, amount
+ FROM %t WHERE %s
+ ) t
+ GROUP BY item_id, dt
+ ) t
+ LEFT JOIN Articles a ON a.Id_Article = t.item_id
+ LEFT JOIN Origen o ON o.id = a.id_origen
+ LEFT JOIN item_travel w ON w.wh = o.warehouse_id
+ WHERE IFNULL(dt < w.landing OR Id_Article > 170000, TRUE)
+ GROUP BY t.item_id
+ ) t GROUP BY t.item_id HAVING available > 0
+ ON DUPLICATE KEY UPDATE
+ amount = IFNULL(amount,0) + VALUES(amount)'
+ ,_son
+ ,DATE(_auxlanding)+0
+ ,DATE(_auxshipment)+0
+ ,expr5
+ ,expr5
+ ,expr5
+ ,_self
+ ,expr4
+ ));
+
+ FETCH cur1 INTO _auxshipment,_auxlanding;
+ END WHILE;
+
+ CLOSE cur1;
+ END IF;
+
+ CALL sql_query (sql_printf('DROP TEMPORARY TABLE IF EXISTS %t', _self));
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `item_stock_visible` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `item_stock_visible`(v_wh SMALLINT, v_item INT)
+BEGIN
+ DECLARE v_curdate DATETIME DEFAULT TIMESTAMP(CURDATE(), '00:00:00');
+ DECLARE v_tomorrow DATETIME DEFAULT TIMESTAMPADD(HOUR, 24, CURDATE());
+
+ INSERT INTO tmp_item (item_id, visible)
+ SELECT item_id, SUM(amount) amount FROM (
+ SELECT item_id, amount FROM item_out
+ WHERE dat >= v_curdate
+ AND warehouse_id = v_wh
+ 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
+ WHERE received != FALSE
+ AND dat >= v_curdate AND dat < v_tomorrow
+ AND warehouse_id = v_wh
+ AND (v_item IS NULL OR item_id = v_item)
+ UNION ALL
+ SELECT item_id, amount FROM item_entry_out
+ WHERE delivered != FALSE
+ AND dat >= v_curdate AND dat < v_tomorrow
+ AND warehouse_id = v_wh
+ AND (v_item IS NULL OR item_id = v_item)
+ ) t
+ GROUP BY item_id
+ ON DUPLICATE KEY UPDATE
+ visible = IFNULL(stock,0) + VALUES(visible);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `item_travel` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `item_travel`(v_wh TINYINT, v_date DATETIME)
+BEGIN
+ DECLARE v_travel INT;
+ DECLARE v_wh_out INT;
+ DECLARE v_shipment DATETIME;
+ DECLARE v_campaign DATETIME;
+ DECLARE v_date_start DATETIME;
+
+ 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
+ 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;*/
+
+ 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
+ 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 ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `item_travel_fixed` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `item_travel_fixed`(v_wh TINYINT, v_date DATETIME)
+BEGIN
+ DECLARE v_travel INT;
+ DECLARE v_wh_out INT;
+ DECLARE v_shipment DATETIME;
+ DECLARE v_campaign DATETIME;
+ DECLARE v_date_start DATETIME;
+
+ DROP TEMPORARY TABLE IF EXISTS travel_top;
+ DROP TEMPORARY TABLE IF EXISTS item_travel_fixed;
+
+ CREATE TEMPORARY TABLE travel_top
+ (KEY (id))
+ ENGINE = MEMORY
+ SELECT 0 id, v_wh wh_out, v_date shipment;
+
+ REPEAT
+ SET v_travel = NULL;
+
+ SELECT t.id, wh_out, shipment
+ INTO v_travel, v_wh_out, v_shipment
+ FROM travel_top t
+ JOIN warehouse w ON w.id = wh_out AND fuente = 0
+ LIMIT 1;
+
+ INSERT INTO travel_top
+ SELECT t.id, warehouse_id_out, shipment/*, FALSE*/
+ FROM travel t
+ WHERE warehouse_id = v_wh_out
+ AND landing <= v_shipment
+ AND shipment >= CURDATE()
+ AND NOT delivered;
+
+ DELETE t
+ FROM travel_top t
+ JOIN warehouse w ON w.id = wh_out
+ WHERE t.id = v_travel AND fuente = 0;
+ UNTIL v_travel IS NULL
+ END REPEAT;
+
+
+ SELECT TIMESTAMPADD(DAY, -campaign_life, campaign), campaign
+ INTO v_date_start, v_campaign FROM tblContadores;
+
+ CREATE TEMPORARY TABLE item_travel_fixed
+ (KEY (wh))
+ ENGINE = MEMORY
+ SELECT * FROM
+ (
+ SELECT wh_out wh
+ FROM travel_top
+ WHERE wh_out <> v_wh
+ ) t
+ GROUP BY wh;
+
+ DROP TEMPORARY TABLE travel_top;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `item_travel_select` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `item_travel_select`(v_wh TINYINT, v_date DATETIME)
+BEGIN
+ DECLARE v_travel INT;
+ DECLARE v_wh_out INT;
+ DECLARE v_shipment DATETIME;
+ DECLARE v_campaign DATETIME;
+ DECLARE v_date_start DATETIME;
+
+ 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))
+ 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 cap al pasat
+
+ 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
+ AND IF(v_travel, landing <= v_shipment, landing > v_shipment)
+ AND shipment >= CURDATE()
+ AND delivered = FALSE;
+
+ UNTIL v_travel IS NULL
+ 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
+ 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 ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `item_travel_testing` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `item_travel_testing`(v_wh TINYINT, v_date DATETIME)
+BEGIN
+ DECLARE v_travel INT;
+ DECLARE v_wh_out INT;
+ DECLARE v_shipment DATETIME;
+ DECLARE v_campaign DATETIME;
+ DECLARE v_date_start DATETIME;
+
+
+
+ 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;
+
+ SET @rodaeta:= 0;
+
+ REPEAT
+ 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
+ SELECT -7 , @ordre:= @ordre + 1 , v_travel ,id, v_wh, warehouse_id_out, FALSE, IF(v_travel>0, v_date_start, landing), shipment
+ FROM travel
+ WHERE warehouse_id = v_wh_out
+ AND IF(v_travel>0, landing <= v_shipment, landing >= v_shipment)
+ AND shipment >= '2005-01-26' and shipment < '2005-02-28'
+ AND delivered = FALSE;
+
+ IF (SELECT Count(*) FROM travel_top WHERE RODA = -7) THEN
+ SET @rodaeta:= @rodaeta + 1;
+ update travel_top set RODA = @rodaeta where RODA = -7;
+ end if;
+
+ INSERT INTO travels_list
+ SELECT id, shipment, landing, warehouse_id, warehouse_id_out
+ FROM travel
+ WHERE warehouse_id = v_wh_out
+ AND IF(v_travel>0, landing <= v_shipment, landing >= v_shipment)
+ AND shipment >= '2005-01-26' and shipment < '2005-02-28'
+ AND delivered = FALSE;
+
+
+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
+ FROM travel_top
+ WHERE wh_out <> v_wh
+ ORDER BY landing
+ ) t
+ GROUP BY wh;
+
+SELECT * FROM item_travel;
+SELECT * FROM travel_top order by RODA, ORDRE;
+
+ DROP TEMPORARY TABLE travel_top;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ListaTicketsEncajados` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ListaTicketsEncajados`(IN intId_Trabajador int)
+BEGIN
+
+SELECT Agencia,Consignatario, ti.Id_Ticket, ts.worker Id_Trabajador,IFNULL(ncajas,0) AS ncajas,
+IFNULL(nbultos,0) AS nbultos,IFNULL(notros,0) AS notros,code AS Estado
+FROM Tickets ti
+INNER JOIN Consignatarios ON ti.Id_Consigna = Consignatarios.Id_consigna
+INNER JOIN Agencias ON ti.Id_Agencia = Agencias.Id_Agencia
+LEFT JOIN (select Ticket_Id,count(*) as ncajas from expeditions where Id_Article=94 group by ticket_id) sub1 on ti.Id_Ticket=sub1.Ticket_Id
+LEFT JOIN (select Ticket_Id,count(*) as nbultos from expeditions where Id_Article is null group by ticket_id) sub2 on ti.Id_Ticket=sub2.Ticket_Id
+LEFT JOIN (select Ticket_Id,count(*) as notros from expeditions where Id_Article >0 group by ticket_id) sub3 on ti.Id_Ticket=sub3.Ticket_Id
+INNER JOIN vn.ticketState ts ON ti.Id_ticket = ts.ticket
+WHERE ti.Fecha=curdate() and
+ts.worker=intId_Trabajador
+group by ti.Id_Ticket;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `malpagantes` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `malpagantes`()
+BEGIN
+
+set @cliente := 0;
+set @saldo := 0;
+
+Select Id_Cliente, Cliente from
+Clientes
+join
+(select distinct Id_Cliente
+from Facturas
+where Fecha > '2015-01-01') cli using(Id_Cliente)
+left join
+(
+select distinct Id_Cliente
+from
+(
+select Fecha
+ , @saldo := IF(@cliente = Id_Cliente, @saldo + Importe, Importe) Saldo
+ , @cliente := Id_Cliente as Id_Cliente
+from
+(
+select Id_Cliente, Fecha, Importe from
+
+(
+select Id_Cliente, -1 * Importe Importe, Fecha
+from Facturas
+union all
+select Id_Cliente, Entregado, Fechacobro
+from Recibos
+) sub
+order by Id_Cliente, Fecha
+) sub2
+) sub3
+where Saldo > -1
+and Fecha > '2015-01-01'
+
+) sub4 using(Id_Cliente)
+where sub4.Id_Cliente is null;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `mana_list` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `mana_list`(IN str VARCHAR(3))
+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
+
+ SET idT = cast(str as signed);
+
+ELSE
+
+ SELECT Id_Trabajador INTO idT
+ FROM Trabajadores
+ WHERE CodigoTrabajador = str;
+
+END IF;
+
+
+SELECT * FROM
+(
+SELECT Id_Ticket
+ , Alias
+ , t.Fecha as FechaTicket
+ , m.odbc_date as FechaAccion
+ , Id_Article
+ , CONCAT(IF(Id_Componente = 39, 'Auto: ',''),Concepte) Concepte
+ , Cantidad
+ , round(Valor,2) as Valor
+ , round(Cantidad * Valor,2) as MANA
+ FROM Movimientos_componentes mc
+ JOIN Movimientos m using(Id_Movimiento)
+ JOIN Tickets t using(Id_Ticket)
+ JOIN Consignatarios cs using(Id_Consigna)
+ JOIN Clientes c on c.Id_Cliente = cs.Id_Cliente
+ WHERE c.Id_Trabajador = idT
+ AND Id_Componente IN (39, 37)
+ and t.Fecha > TIMESTAMPADD(WEEK,-1,CURDATE())
+
+ UNION ALL
+
+SELECT NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL
+
+ UNION ALL
+
+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á
+ AND c.Id_Trabajador = idT
+
+ UNION ALL
+
+SELECT NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL
+
+ UNION ALL
+
+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á
+ AND c.Id_Trabajador = idT
+ ) t1
+ORDER BY FechaAccion DESC;
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `mana_requery` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `mana_requery`()
+BEGIN
+
+DECLARE MyFechaDesde DATE;
+
+SELECT max(dated) INTO MyFechaDesde
+FROM bs.manaCustomer;
+
+
+UPDATE bs.mana_spellers
+
+LEFT JOIN
+
+(
+
+ SELECT Id_Trabajador, sum(mana) as mana FROM
+
+ (
+ SELECT c.Id_Trabajador, Cantidad * Valor as mana
+ FROM Tickets t
+ JOIN Consignatarios cs using(Id_Consigna)
+ 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á
+ AND Fecha > MyFechaDesde
+
+ UNION ALL
+
+ SELECT c.Id_Trabajador, - Entregado
+ FROM Recibos r
+ JOIN Clientes c using(Id_Cliente)
+ WHERE Id_Banco = 66
+ AND Fechacobro > MyFechaDesde
+
+ UNION ALL
+
+ SELECT c.Id_Trabajador, g.Importe
+ FROM Greuges g
+ JOIN Clientes c using(Id_Cliente)
+ WHERE Greuges_type_id = 3 -- Maná
+ AND Fecha > MyFechaDesde
+
+ UNION ALL
+
+ SELECT c.Id_Trabajador, mana
+ FROM bs.manaCustomer mc
+ JOIN vn2008.Clientes c ON c.Id_Cliente = mc.Id_Cliente
+ WHERE dated = MyFechaDesde
+ ) sub
+
+ GROUP BY Id_Trabajador
+
+) m using(Id_Trabajador)
+
+SET used = IFNULL(m.mana,0);
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `massiveTicket` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ DECLARE defaultWorker INT DEFAULT 20;
+
+ CALL vn.ticketCreate ( customerId
+ , CURDATE()
+ , inventoryWarehouse
+ , defaultCompany
+ , NULL
+ , NULL
+ , NULL
+ , CURDATE()
+ , newTicketId);
+
+ INSERT INTO Movimientos( Id_Ticket
+ , Id_Article
+ , Concepte
+ , Preu
+ , Descuento
+ , Cantidad)
+
+ SELECT newTicketId
+ , Id_Article
+ , Concepte
+ , Preu
+ , Descuento
+ , Cantidad
+ FROM Movimientos m
+ JOIN Tickets t ON m.Id_Ticket = t.Id_Ticket
+ WHERE Id_Cliente = customerId
+ AND t.Fecha BETWEEN dateFROM AND DAYEND(dateTO);
+
+ SELECT newTicketId;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `mensaje` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+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);
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `monitoring_calls` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `monitoring_calls`(IN datFEC DATE)
+BEGIN
+
+SELECT Id_Trabajador, AVG(billsec) as Duracion, days.Fecha, Hora, SUM(Recibidas) as Entrantes, SUM(Emitidas) as Salientes
+FROM
+(
+SELECT Id_Trabajador, billsec, 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, '%')
+LEFT JOIN v_phonebook A ON A.Telefono = C.src
+WHERE calldate >= datFEC
+UNION ALL
+SELECT Id_Trabajador, billsec, NULL as Recibidas, 1 as Emitidas, date(calldate), hour(calldate)
+FROM Trabajadores T
+INNER JOIN cdr C ON C.src = T.extension
+LEFT JOIN v_phonebook A ON A.Telefono = C.dst
+WHERE calldate >= datFEC
+) llamadas
+INNER JOIN Permisos USING(Id_Trabajador)
+INNER JOIN
+(
+SELECT DISTINCT Fecha FROM Tickets WHERE Fecha >= datFEC
+) days USING(Fecha)
+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 */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `Movimiento_rechazo` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `Movimiento_rechazo`(IN idMOV BIGINT)
+BEGIN
+
+ DECLARE idC INT;
+ DECLARE newFEC DATE;
+ DECLARE intWarehouse INT;
+ DECLARE userNUM INT;
+ DECLARE intEmpresa INT;
+ DECLARE IdConsignatario INT;
+ DECLARE intIdAgencia INT;
+ DECLARE Id_NEWTICKET BIGINT;
+ DECLARE Id_NEWMOVIMIENTO BIGINT;
+ DECLARE datLanding DATE;
+ DECLARE v_start DATETIME;
+ DECLARE v_end DATETIME;
+ DECLARE intTicketActual INT;
+ DECLARE SYSTEM_WORKER INT DEFAULT 20;
+
+ SELECT Id_Trabajador INTO userNUM
+ FROM Trabajadores
+ WHERE user_id = account.userGetId();
+
+ IF userNUM IS NULL THEN
+ SET userNUM = 33;
+ end IF;
+
+ SELECT Id_Cliente
+ , Fecha
+ , warehouse_id
+ , empresa_id
+ , Id_Consigna
+ , Id_Agencia
+ , Landing
+ , Id_Ticket
+
+ INTO idC
+ , newFEC
+ , intWarehouse
+ , intEmpresa
+ , IdConsignatario
+ , intIdAgencia
+ , datLanding
+ , intTicketActual
+ FROM Tickets t
+ 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');
+
+ SELECT Id_Ticket INTO Id_NEWTICKET
+ FROM vn2008.Tickets t
+ WHERE IdConsignatario = t.Id_Consigna
+ 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.Factura IS NULL
+ AND t.Localizacion = 'RECHAZO'
+ AND t.PedidoImpreso = 0
+ AND t.Etiquetasemitidas = 0
+ AND vn2008.is_bionic(t.Id_Ticket)
+ AND t.Id_Cliente <> 1118
+ AND t.Id_Ticket <> intTicketActual
+ LIMIT 1;
+
+ IF Id_NEWTICKET IS NULL
+ THEN
+ Call vn.ticketCreate( idC
+ , newFEC
+ , intWarehouse
+ , intEmpresa
+ , IdConsignatario
+ , intIdAgencia
+ , NULL
+ , newFEC
+ , Id_NEWTICKET);
+
+ CALL bionic_calc_ticket(Id_NEWTICKET);
+ END IF;
+
+ INSERT INTO vncontrol.inter(Id_Ticket, Id_Trabajador, state_id)
+ SELECT Id_NEWTICKET, SYSTEM_WORKER, s.id
+ FROM vn2008.state s
+ WHERE s.code = 'FIXING';
+
+ UPDATE Tickets SET landing = datLanding WHERE Id_Ticket = Id_NEWTICKET;
+
+ INSERT INTO Movimientos(Id_Ticket, Id_Article, Concepte, Cantidad, Preu, Descuento)
+ SELECT Id_NEWTICKET, Id_Article, Concepte, Cantidad, Preu, Descuento
+ FROM Movimientos
+ WHERE Id_Movimiento = idMOV;
+
+ SELECT LAST_INSERT_ID() INTO Id_NEWMOVIMIENTO;
+
+ INSERT INTO Movimientos_componentes(Id_Movimiento, Id_Componente, Valor)
+ SELECT Id_NEWMOVIMIENTO, Id_Componente, Valor
+ FROM Movimientos_componentes
+ WHERE Id_Movimiento = idMOV;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `msg` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `msg`(IN memTXT VARCHAR(255), IN idREM INTEGER, idDES INTEGER)
+BEGIN
+ DECLARE last_ID INTEGER;
+ DECLARE codDES CHAR(3);
+
+ SELECT CodigoTrabajador INTO codDES FROM Trabajadores WHERE Id_Trabajador = idDES;
+
+ INSERT INTO Mensajes(Mensaje,Fecha,Remitente,Destinatario)
+ VALUES(memTXT, NOW(),idREM, idDES);
+
+ SELECT LAST_INSERT_ID() INTO last_ID;
+
+
+ INSERT INTO Incidencias(Incidencia,Id_Trabajador,Destino,Fecha,Fecha_Mod)
+ VALUES (CONCAT('@@ ',last_ID),idREM,codDES,NOW(),NOW());
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `nest_brother_add` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `nest_brother_add`(IN strTABLE VARCHAR(45)
+ ,IN strBROTHER_NEW VARCHAR(45)
+ ,IN idBROTHER_OLD INT
+ )
+BEGIN
+
+
+DECLARE v_sql TEXT;
+DECLARE myRight INT;
+
+DROP TEMPORARY TABLE IF EXISTS aux;
+CREATE TEMPORARY TABLE aux
+SELECT 0 as rgt;
+
+
+
+
+ SET v_sql = sql_printf (
+ '
+ UPDATE aux SET rgt = (SELECT rgt FROM %t WHERE id = %v);
+ ',
+ strTABLE,
+ idBROTHER_OLD);
+
+CALL sql_query (v_sql);
+
+SELECT rgt INTO myRight FROM aux;
+
+DROP TEMPORARY TABLE IF EXISTS aux;
+
+
+
+
+SET v_sql = sql_printf (
+ '
+ UPDATE %t SET rgt = rgt + 2 WHERE rgt > %v ORDER BY rgt DESC;
+ ',
+ strTABLE, myRight);
+
+CALL sql_query (v_sql);
+
+SET v_sql = sql_printf (
+ '
+ UPDATE %t SET lft = lft + 2 WHERE lft > %v ORDER BY lft DESC;
+ ',strTABLE, myRight);
+CALL sql_query (v_sql);
+
+SET v_sql = sql_printf (
+ '
+ INSERT INTO %t(name, lft, rgt) VALUES(%v, %v + 1, %v + 2);
+ ',strTABLE
+ ,strBROTHER_NEW
+ ,myRight
+ ,myRight);
+
+CALL sql_query (v_sql);
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `nest_child_add` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `nest_child_add`(IN strTABLE VARCHAR(45)
+ ,IN strCHILD VARCHAR(45)
+ ,IN idFATHER INT
+ )
+BEGIN
+
+
+DECLARE v_sql TEXT;
+DECLARE myLeft INT;
+
+DROP TEMPORARY TABLE IF EXISTS aux;
+CREATE TEMPORARY TABLE aux
+SELECT 0 as lft;
+
+
+
+ SET v_sql = sql_printf (
+ '
+ UPDATE aux SET lft = (SELECT lft FROM %t WHERE id = %v);
+ ',
+ strTABLE,
+ idFATHER);
+
+CALL sql_query (v_sql);
+
+SELECT lft INTO myLeft FROM aux;
+
+DROP TEMPORARY TABLE IF EXISTS aux;
+
+
+
+
+SET v_sql = sql_printf (
+ '
+ UPDATE %t SET rgt = rgt + 2 WHERE rgt > %v ORDER BY rgt DESC;
+ ',
+ strTABLE, myLeft);
+
+CALL sql_query (v_sql);
+
+SET v_sql = sql_printf (
+ '
+ UPDATE %t SET lft = lft + 2 WHERE lft > %v ORDER BY lft DESC;
+ ',strTABLE, myLeft);
+CALL sql_query (v_sql);
+
+SET v_sql = sql_printf (
+ '
+ INSERT INTO %t(name, lft, rgt) VALUES(%v, %v + 1, %v + 2);
+ ',strTABLE
+ ,strCHILD
+ ,myLeft
+ ,myLeft);
+
+CALL sql_query (v_sql);
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `nest_delete` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `nest_delete`(IN strTABLE VARCHAR(45) ,IN idNODE INT)
+BEGIN
+
+
+DECLARE v_sql TEXT;
+DECLARE myRight INT;
+DECLARE myLeft INT;
+DECLARE myWidth INT;
+
+DROP TEMPORARY TABLE IF EXISTS aux;
+CREATE TEMPORARY TABLE aux
+SELECT 0 as rgt, 0 as lft, 0 as wdt;
+
+
+ SET v_sql = sql_printf (
+ '
+ UPDATE aux a JOIN %t t SET a.rgt = t.rgt, a.lft = t.lft, a.wdt = t.rgt - t.lft + 1
+ WHERE t.id = %v;
+ ',
+ strTABLE,
+ idNODE);
+
+CALL sql_query (v_sql);
+
+SELECT rgt, lft, wdt INTO myRight, myLeft, myWidth FROM aux;
+
+DROP TEMPORARY TABLE IF EXISTS aux;
+
+SET v_sql = sql_printf (
+ '
+ DELETE FROM %t WHERE lft BETWEEN %v AND %v
+ ',strTABLE
+ ,myLeft
+ ,myRight);
+
+CALL sql_query (v_sql);
+
+
+
+SET v_sql = sql_printf (
+ '
+ UPDATE %t SET rgt = rgt - %v WHERE rgt > %v ORDER BY rgt;
+ ',strTABLE
+ ,myWidth
+ ,myRight);
+
+CALL sql_query (v_sql);
+
+SET v_sql = sql_printf (
+ '
+ UPDATE %t SET lft = lft - %v WHERE lft > %v ORDER BY lft;
+ ',strTABLE
+ ,myWidth
+ ,myRight);
+
+CALL sql_query (v_sql);
+
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `nest_leaves` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `nest_leaves`(IN strTABLE VARCHAR(20), IN strTABLE_LINES VARCHAR(40), IN strNEST_ID VARCHAR(40), IN intGAP INTEGER, IN bolSHOW BOOLEAN)
+BEGIN
+
+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
+ join vn2008.%t s using(id)
+ set n.time = s.odbc_date ;
+ ', strTABLE
+ );
+
+
+CALL sql_query (v_sql);
+
+
+-- Actualizamos el campo leaves para los nodos que tienen asociados
+SET v_sql = sql_printf (
+ '
+ update tmp.nest n
+ join
+ (
+ select %t as id, count(*) as leaves
+ from vn2008.%t
+ group by %t
+ ) s using(id)
+ set n.leaves = s.leaves
+ ;
+ ', strNEST_ID
+ , strTABLE_LINES
+ , strNEST_ID
+ );
+
+
+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
+select * from tmp.nest;
+
+drop temporary table if exists tmp.nest3;
+
+create temporary table tmp.nest3
+select * from tmp.nest;
+
+update tmp.nest
+join
+(
+select n.id, sum(n2.leaves) leaves
+from tmp.nest3 n
+join tmp.nest2 n2 on n2.lft between n.lft and n.rgt
+group by n.id
+) sub on sub.id = nest.id
+set nest.leaves = ifnull(sub.leaves,0);
+
+
+drop temporary table tmp.nest2;
+
+IF bolSHOW THEN
+ SELECT * FROM tmp.nest;
+END IF;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `nest_move` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `nest_move`(IN strTABLE VARCHAR(45) ,IN idNODE INT, IN idFATHER INT)
+BEGIN
+
+
+DECLARE v_sql TEXT;
+DECLARE myRight INT;
+DECLARE myLeft INT;
+DECLARE myWidth INT;
+DECLARE fatherRight INT;
+DECLARE fatherLeft INT;
+DECLARE gap INT;
+
+DROP TEMPORARY TABLE IF EXISTS aux;
+CREATE TEMPORARY TABLE aux
+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
+ WHERE t.id = %v;
+ ',
+ strTABLE,
+ idNODE);
+
+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
+ WHERE t.id = %v;
+ ',
+ strTABLE,
+ idFATHER);
+
+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 (
+ '
+ UPDATE %t SET rgt = rgt + %v WHERE rgt >= %v ORDER BY rgt DESC;
+ ',strTABLE
+ ,myWidth
+ ,fatherRight);
+
+CALL sql_query (v_sql);
+
+SET v_sql = sql_printf (
+ '
+ UPDATE %t SET lft = lft + %v WHERE lft >= %v ORDER BY lft DESC;
+ ',strTABLE
+ ,myWidth
+ ,fatherRight);
+
+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 (
+ '
+ UPDATE aux a JOIN %t t SET a.rgt = t.rgt, a.lft = t.lft
+ WHERE t.id = %v;
+ ',
+ strTABLE,
+ idNODE);
+
+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 (
+ '
+ UPDATE %t SET lft = lft + %v WHERE lft BETWEEN %v AND %v ORDER BY lft DESC;
+ ',strTABLE
+ ,gap
+ ,myLeft
+ ,myRight);
+
+CALL sql_query (v_sql);
+
+SET v_sql = sql_printf (
+ '
+ UPDATE %t SET rgt = rgt + %v WHERE rgt BETWEEN %v AND %v ORDER BY rgt DESC;
+ ',strTABLE
+ ,gap
+ ,myLeft
+ ,myRight);
+
+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;
+ ',strTABLE
+ ,myWidth
+ ,myLeft);
+
+CALL sql_query (v_sql);
+
+
+SET v_sql = sql_printf (
+ '
+ UPDATE %t SET rgt = rgt - %v WHERE rgt > %v ORDER BY rgt;
+ ',strTABLE
+ ,myWidth
+ ,myRight);
+
+CALL sql_query (v_sql);
+
+
+DROP TEMPORARY TABLE IF EXISTS aux;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `nest_query` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `nest_query`(IN strTABLE VARCHAR(45))
+BEGIN
+
+
+DECLARE v_sql TEXT;
+DECLARE v_max_depth INT;
+DECLARE v_current_depth INT;
+
+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
+
+ SELECT node.id node_id, COUNT(parent.id) - 1 as depth
+ FROM %t AS node,
+ %t AS parent
+ WHERE node.lft BETWEEN parent.lft AND parent.rgt
+ GROUP BY node.id
+ ORDER BY node.lft
+ ;
+ ',
+ strTABLE,
+ strTABLE
+ );
+
+
+CALL sql_query (v_sql);
+
+SELECT max(depth) FROM tmp.nest_depth INTO v_max_depth;
+SET v_current_depth = 2;
+
+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
+ SELECT child.id nest_id
+ ,child.lft
+ ,child.rgt
+ ,parent.id as ID0
+ ,parent.name as PARENT0
+ ,child.id as ID1
+ ,child.name as PARENT1
+ FROM %t AS parent
+ JOIN tmp.nest_depth nd ON nd.node_id = parent.id AND nd.depth = 0,
+ %t AS child
+ JOIN tmp.nest_depth_aux ndc ON ndc.node_id = child.id AND ndc.depth = 1
+ WHERE child.lft BETWEEN parent.lft + 1 AND parent.rgt
+ ORDER BY parent.lft;
+ ',
+ strTABLE,
+ strTABLE
+ );
+
+CALL sql_query (v_sql);
+
+CREATE TEMPORARY TABLE tmp.nest_aux
+SELECT * FROM tmp.nest;
+
+
+
+-- Bucle
+WHILE v_current_depth <= v_max_depth DO
+
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.nest;
+
+ SET v_sql = sql_printf (
+ '
+ CREATE TEMPORARY TABLE tmp.nest
+ SELECT parent.*
+ ,child.id as %v
+ ,child.name as %v
+ ,child.id as ID
+ FROM tmp.nest_aux AS parent
+ LEFT JOIN %t AS child ON child.lft BETWEEN parent.lft + 1 AND parent.rgt
+ LEFT JOIN tmp.nest_depth_aux ndc ON ndc.node_id = child.id
+ WHERE IFNULL(ndc.depth,%v) = %v
+ ORDER BY parent.lft;
+ '
+ ,CONCAT('ID',v_current_depth)
+ ,CONCAT('PARENT',v_current_depth)
+ ,strTABLE
+ ,v_current_depth
+ ,v_current_depth
+ );
+
+ CALL sql_query (v_sql);
+
+-- Actualizamos lft y rgt
+SET v_sql = sql_printf (
+ '
+ UPDATE tmp.nest
+ JOIN %t AS child ON child.id = nest.ID
+ SET nest.lft = child.lft, nest.rgt = child.rgt, nest_id = nest.ID'
+ ,strTABLE
+ );
+
+CALL sql_query (v_sql);
+
+
+
+ ALTER TABLE tmp.nest DROP COLUMN ID;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.nest_aux;
+ CREATE TEMPORARY TABLE tmp.nest_aux
+ SELECT * FROM tmp.nest;
+
+
+
+ SET v_current_depth = v_current_depth + 1;
+
+END WHILE;
+
+
+
+-- Eliminamos los campos duplicados
+SET v_current_depth = 0;
+
+WHILE v_current_depth <= v_max_depth DO
+
+ SET @id = 0;
+
+ SET v_sql = sql_printf (
+ '
+ UPDATE tmp.nest_aux
+ SET %t = IF(@id = %t, NULL, %t),
+ ID0 = IF(@id := %t, ID0, ID0),
+ %t = IF(length(%t), %t,NULL)
+ '
+ ,CONCAT('PARENT',v_current_depth)
+ ,CONCAT('ID',v_current_depth)
+ ,CONCAT('PARENT',v_current_depth)
+ ,CONCAT('ID',v_current_depth)
+ ,CONCAT('ID',v_current_depth)
+ ,CONCAT('PARENT',v_current_depth)
+ ,CONCAT('ID',v_current_depth)
+ );
+
+ CALL sql_query (v_sql);
+
+ SET v_current_depth = v_current_depth + 1;
+
+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;
+DROP TEMPORARY TABLE IF EXISTS tmp.nest_depth;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `nest_sons_list` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `nest_sons_list`(IN intID INT, IN strTABLE VARCHAR(45), IN bolSHOW BOOLEAN)
+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;
+
+DROP TEMPORARY TABLE IF EXISTS tmp.nest_sons;
+
+
+SET v_sql = sql_printf (
+ '
+ CREATE TEMPORARY TABLE tmp.nest_sons
+
+ SELECT DISTINCT node.id node_id
+ FROM %t AS node
+ JOIN %t AS parent ON node.lft between parent.lft and parent.rgt
+ WHERE parent.id = %v
+ ORDER BY node.lft
+ ;
+ ',
+ strTABLE,
+ strTABLE,
+ intID
+ );
+
+
+CALL sql_query (v_sql);
+
+IF bolSHOW THEN
+
+ SELECT * FROM tmp.nest_sons;
+
+END IF;
+
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `nest_tree` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `nest_tree`(IN strTABLE VARCHAR(20), IN intGAP INTEGER, IN bolSHOW BOOLEAN)
+BEGIN
+
+DECLARE v_sql TEXT;
+
+
+DROP TEMPORARY TABLE IF EXISTS tmp.nest;
+
+SET v_sql = sql_printf (
+ '
+ CREATE TEMPORARY TABLE tmp.nest
+ SELECT node.id
+ , CONCAT( REPEAT(REPEAT(" ",%v), COUNT(parent.id) - 1), node.name) AS name
+ , node.lft
+ , node.rgt
+ , COUNT(parent.id) - 1 as depth
+ , cast((node.rgt - node.lft - 1) / 2 as DECIMAL) as sons
+ FROM %t AS node,
+ %t AS parent
+ WHERE node.lft BETWEEN parent.lft AND parent.rgt
+ GROUP BY node.id
+ ORDER BY node.lft;
+ ',
+ intGAP,
+ strTABLE,
+ strTABLE
+ );
+
+
+CALL sql_query (v_sql);
+
+IF bolSHOW THEN
+ SELECT * FROM tmp.nest;
+END IF;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `newItem` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `newItem`(IN vTicket INTEGER, IN vVolume INTEGER, IN vQuantity INTEGER)
+BEGIN
+
+ DECLARE vLandingWarehouse INT;
+ DECLARE vLandingDate DATE;
+ DECLARE vShipmentDate DATE;
+ DECLARE vTravel INT;
+ DECLARE vEntry INT;
+
+ 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 ??
+
+ -- 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'
+ SELECT LAST_INSERT_ID() INTO vEntry;
+ END IF;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `niching` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `niching`(IN i_ini INT, IN i_end INT
+, IN i_bal INT, IN i_col INT )
+BEGIN
+
+DECLARE i INT(5);
+DECLARE j INT(5);
+
+DROP TEMPORARY TABLE IF EXISTS labels;
+
+CREATE TEMPORARY TABLE `labels`
+ (`label` VARCHAR(15) NULL)
+ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+
+WHILE i_ini <= i_end DO
+
+ SET i = i_bal;
+
+ WHILE i > 0 DO
+
+
+
+ SET j = i_col;
+ IF j = 0 THEN
+ INSERT INTO labels(label)
+ VALUES (CONCAT(i_ini,IF(i=0,' ',char(64 + i))));
+ ELSE
+
+ WHILE j > 0 DO
+
+ INSERT INTO labels(label)
+ VALUES (CONCAT(i_ini,char(64 + i), j));
+
+ SET j = j - 1;
+
+ END WHILE;
+ END IF;
+ SET i = i - 1;
+
+ END WHILE;
+
+SET i_ini = i_ini + 1;
+
+END WHILE;
+
+SELECT CONCAT('*',label,'*') as label, label as id FROM labels;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `nightly_tasks` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `nightly_tasks`()
+BEGIN
+
+DECLARE AUX INT;
+
+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', 'error nightly tasks' ,CONCAT('ERROR ', IFNULL(@errno,0), ': ', ifnull(@text,'texto')));
+ INSERT INTO vn2008.mail (`to`,`subject`,`text`) VALUES ('pako@verdnatura.es', 'error nightly tasks' ,CONCAT('ERROR ', IFNULL(@errno,0), ': ', ifnull(@text,'texto')));
+
+END;
+
+ INSERT INTO vn2008.daily_task_log(consulta) VALUES('arranca el event vn2008.nightly_tasks');
+
+
+ SELECT SLEEP(1) INTO AUX;
+ CALL vn2008.emailYesterdayPurchasesLauncher();
+ INSERT INTO vn2008.daily_task_log(consulta) VALUES('emailYesterdayPurchasesLauncher END');
+
+ SELECT SLEEP(1) INTO AUX;
+ CALL vn2008.inventory_refresh();
+ INSERT INTO vn2008.daily_task_log(consulta) VALUES('inventory refresh END');
+
+ SELECT SLEEP(1) INTO AUX;
+ 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;
+ CALL `bi`.`Ultima_Accion`;
+ INSERT INTO vn2008.daily_task_log(consulta) VALUES('ultima accion END');
+
+ SELECT SLEEP(1) INTO AUX;
+ CALL `bi`.`facturacion_media_anual_update`();
+ INSERT INTO vn2008.daily_task_log(consulta) VALUES('facturacion media anual END');
+
+ SELECT SLEEP(1) INTO AUX;
+ CALL vn2008.Clientes_calidad;
+ INSERT INTO vn2008.daily_task_log(consulta) VALUES('clientes calidad END');
+
+ SELECT SLEEP(1) INTO AUX;
+ CALL bi.rotacion_update;
+ INSERT INTO vn2008.daily_task_log(consulta) VALUES('rotation update END');
+
+ SELECT SLEEP(1) INTO AUX;
+ CALL bi.rutas_m3_add;
+ INSERT INTO vn2008.daily_task_log(consulta) VALUES('rutas_m3 END');
+
+ SELECT SLEEP(1) INTO AUX;
+ CALL vn2008.tarjetas_credito_0;
+ INSERT INTO vn2008.daily_task_log(consulta) VALUES('tarjetas credito 0 END');
+
+ SELECT SLEEP(1) INTO AUX;
+ CALL bi.comparativa_add();
+ INSERT INTO vn2008.daily_task_log(consulta) VALUES('comparativa add END');
+
+ SELECT SLEEP(1) INTO AUX;
+ call vn2008.recobro_credito(); -- PAK 12/01/2016
+ INSERT INTO vn2008.daily_task_log(consulta) VALUES('recobro_credito END');
+
+ SELECT SLEEP(1) INTO AUX;
+ CALL vn2008.accumulatorsReadingDateUpdate();
+ INSERT INTO vn2008.daily_task_log(consulta) VALUES('accumulatorsReadingDateUpdate END');
+
+ SELECT SLEEP(1) INTO AUX;
+ call vn2008.itemTagArrangedUpdate(0);
+ INSERT INTO vn2008.daily_task_log(consulta) VALUES('itemTagFormatUpdate END');
+
+ SELECT SLEEP(1) INTO AUX;
+ 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');
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `notify_passport` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `notify_passport`(IN idA INT, IN idEti SMALLINT, IN idPacking SMALLINT, IN idCompra INT)
+BEGIN
+ INSERT INTO vn2008.mail(`subject`,`text`,`to`)
+ SELECT 'Solicitar pasaporte',
+ CONCAT('Etiquetas: ',ifnull(idEti,0),', Packing: ',ifnull(idPacking,0),', Nombre: ',ifnull(a.Article,0),', buy_edi: ',ifnull(be.id,0),', Nombre botánico: ',
+ IFNULL(g.latin_genus_name,''),' ',IFNULL(s.latin_species_name,''),' , Productor: ',IFNULL(es.company_name,IFNULL(p.`name`,'')))
+ ,'ekt@verdnatura.es'
+ FROM vn2008.Articles a
+ LEFT JOIN vn2008.Articles_botanical ab ON ab.Id_Article = a.Id_Article
+ LEFT JOIN edi.genus g ON g.genus_id = ab.genus_id
+ LEFT JOIN edi.specie s ON IFNULL(s.specie_id,ab.specie_id) = ab.specie_id
+ LEFT JOIN vn2008.producer p ON p.producer_id = a.producer_id
+ LEFT JOIN vn2008.Compres c ON c.Id_Compra = idCompra
+ LEFT JOIN vn2008.buy_edi be ON c.buy_edi_id = be.id
+ LEFT JOIN edi.supplier es ON es.supplier_id = be.pro
+ WHERE a.Id_Article = idA;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `pay` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `pay`(IN datFEC DATE
+ , IN idPROV INT
+ , IN dblIMPORTE DOUBLE
+ , IN idMONEDA INT
+ , IN dblDIVISA DOUBLE
+ , IN idCAJA INT
+ , IN idPAYMET INT
+ , IN dblGASTOS DOUBLE
+ , IN strCONCEPTO VARCHAR(40)
+ , IN idEMP INT)
+BEGIN
+
+
+-- Registro en la tabla Cajas
+INSERT INTO Cajas ( Concepto
+ , Serie
+ , Numero
+ , Salida
+ , Cajafecha
+ , Partida
+ , Id_Banco
+ , Id_Trabajador
+ ,empresa_id
+ ,conciliado)
+
+SELECT CONCAT('n/pago a ', Proveedor)
+ , 'R'
+ , idPROV
+ , dblIMPORTE
+ , datFEC
+ , 1
+ , idCAJA
+ , 20
+ , idEMP
+ , 1
+FROM Proveedores
+WHERE Id_Proveedor = idPROV;
+
+
+-- Registro en la tabla pago
+INSERT INTO pago(fecha
+ , id_proveedor
+ , importe
+ , id_moneda
+ , divisa
+ , id_banco
+ , pay_met_id
+ , g_bancarios
+ , concepte
+ , empresa_id)
+
+ VALUES(datFEC
+ , idPROV
+ , dblIMPORTE
+ , idMONEDA
+ , IF(dblDIVISA = 0, NULL, dblDIVISA)
+ , idCAJA
+ , idPAYMET
+ , dblGASTOS
+ , strCONCEPTO
+ , idEMP);
+
+SELECT LAST_INSERT_ID() as pago_id;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `percentil` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `percentil`()
+BEGIN
+
+DECLARE max_range INT;
+
+DROP TEMPORARY TABLE IF EXISTS previa;
+
+CREATE TEMPORARY TABLE previa
+SELECT @posicion:= @posicion +1 as Posicion, Id_Cliente, Total FROM (
+SELECT Id_Cliente, Total FROM (
+SELECT Id_Cliente, SUM(Importe) as Total
+FROM Facturas
+INNER JOIN Clientes USING(Id_Cliente)
+INNER JOIN (SELECT @posicion := 0) sub_pos
+WHERE invoice
+AND YEAR(Fecha) = YEAR(CURDATE())
+GROUP BY Id_Cliente) sub
+ORDER BY Total
+) sub2;
+
+SELECT COUNT(*) INTO max_range FROM previa;
+
+UPDATE Clientes SET percentil = 0;
+
+UPDATE Clientes INNER JOIN previa USING(Id_Cliente)
+SET Clientes.percentil = ROUND(Posicion *100 / max_range,0);
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `portekk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ 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;
+ DECLARE intPROVINCIA INT;
+
+ SET @porte := 0;
+ SELECT c.province_id, 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 intPROVINCIA, 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;
+-- 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*/
+ ELSE
+ SELECT 0 price;
+ END IF;
+ ELSE
+ IF NOT dblvolumen THEN
+ IF bolCOD71 THEN
+ IF intVista = 2 AND intbultos BETWEEN 1 AND 2 THEN
+ 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
+ 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
+ CALL sql_query (sql_printf ('
+ SELECT price FROM Agencias_zonas az
+ WHERE Id_Agencia = %v AND %v = Id_Article AND az.warehouse_id = %v
+ AND zona = (SELECT zona FROM Agencias_province
+ WHERE warehouse_id = %v AND agency_id = %v and province_id = %v)'
+ ,intId_Agencia,intId_Article,intWarehouse_id,intWarehouse_id,int_agency_id,int_province_id));
+ END IF;
+ END IF;
+ ELSE
+ SELECT 0 price;
+ END IF;
+ ELSE -- Si es una agency con la columna por_volumen <> 0 calcula el porte por Volumen
+
+ CALL ticket_volumen(intId_Ticket);
+ SELECT MAX(Porte_total)/intbultos price FROM ticket_volumen;
+ DROP TEMPORARY TABLE IF EXISTS ticket_volumen;
+ END IF;
+ END IF;
+
+
+ SET @porte = price;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `PortesDesdeTicketkk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+
+ CREATE TEMPORARY TABLE portes (KEY (Id_Article)) ENGINE = MEMORY
+ SELECT Id_Article,round(SUM(Preu * (1 - (Descuento / 100)) * Cantidad)/ SUM(Cantidad),2) price, round(SUM(Preu * (1 - (Descuento / 100)) * Cantidad),2) importe,
+ round((SUM(Preu * (1 - (Descuento / 100)) * Cantidad) / SUM(Cantidad) - Tarifa2) * SUM(Cantidad),2) diferencia,Tarifa2,
+ v_date_end Fecha,SUM(Cantidad) Cantidad
+ FROM
+ (SELECT * FROM (
+ SELECT m.Id_Article, Tarifa2,m.Preu,m.Descuento,m.Cantidad,t.Fecha,t.warehouse_id,Id_Movimiento
+ FROM Compres c
+ JOIN Movimientos m ON m.Id_Article = c.Id_Article
+ JOIN Articles a ON a.Id_Article = c.Id_Article
+ JOIN Tipos tp ON tp.tipo_id = a.tipo_id
+ JOIN Tickets t ON t.Id_Ticket = m.Id_Ticket
+ JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada
+ JOIN travel tr ON tr.id = e.travel_id
+ WHERE t.Id_Ticket = intTicket AND Novincular = FALSE AND Tarifa2 > 0
+ AND t.warehouse_id = tr.warehouse_id AND tr.landing BETWEEN v_date_ini AND v_date_end
+ AND reino_id <> 6 ORDER BY tr.landing DESC) t
+ GROUP BY t.Id_Movimiento) t
+ GROUP BY Id_Article, warehouse_id
+ UNION all
+ SELECT Id_Article,Preu * (1 - (Descuento / 100)) ,Preu * (1 - (Descuento / 100)) * Cantidad ,
+ Preu * (1 - (Descuento / 100)) * Cantidad ,0 ,v_date_end, Cantidad FROM Movimientos
+ WHERE Id_Ticket= intTicket AND Id_Article = 71;
+
+ UPDATE portes p JOIN price_fixed pf ON p.Id_Article = pf.item_id AND Fecha BETWEEN date_start AND date_end AND pf.rate_2
+ SET diferencia = (price - rate_2) * Cantidad,Tarifa2 = rate_2;
+ ELSE
+ CREATE TEMPORARY TABLE portes (KEY (Id_Article)) ENGINE = MEMORY
+ SELECT Id_Article,Preu * (1 - (Descuento / 100)) price,Preu * (1 - (Descuento / 100)) * Cantidad importe,
+ 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 ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `precio` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `precio`( IN id_cli INT, id_art INT, id_wh INT )
+BEGIN
+DECLARE tarifa,descompte, packin,groupin,caj,minimo, id_compra INT DEFAULT 0;
+DECLARE importe_min, importe,bonus FLOAT DEFAULT NULL;
+
+SELECT PrecioEspecial INTO importe FROM PreciosEspeciales WHERE Id_Cliente = id_cli AND Id_Article = id_art;
+
+IF importe IS NULL THEN
+ SELECT `Min`, PVP INTO minimo, importe_min FROM `Articles` WHERE Id_Article = id_art;
+ SELECT Descuento
+ INTO tarifa
+ FROM Clientes
+ WHERE Id_Cliente = id_cli;
+
+ SELECT CASE
+ WHEN tarifa =0 THEN IF(minimo AND IFNULL(fp.rate_0,C.PVP) < importe_min, importe_min, IFNULL(fp.rate_0,C.PVP))
+ WHEN tarifa =1 THEN IF(minimo AND IFNULL(fp.rate_1,C.Tarifa1) < importe_min, importe_min, IFNULL(fp.rate_1,C.Tarifa1))
+ WHEN tarifa =2 THEN IF(minimo AND IFNULL(fp.rate_2,C.Tarifa2) < importe_min, importe_min, IFNULL(fp.rate_2,C.Tarifa2))
+ WHEN tarifa =3 THEN IF(minimo AND IFNULL(fp.rate_3,C.Tarifa3) < importe_min, importe_min, IFNULL(fp.rate_3,C.Tarifa3))
+ WHEN tarifa BETWEEN 4 AND 100 THEN Tarifa1
+ WHEN tarifa >100 THEN IF(minimo AND IFNULL(fp.rate_3,C.Tarifa3) * ( ( 200 - tarifa ) /100 ) < importe_min, importe_min,IFNULL(fp.rate_3,C.Tarifa3) * ( ( 200 - tarifa ) /100 ))
+ END, IFNULL(fp.Packing,C.Packing) Packing, C.Id_Compra,IFNULL(fp.grouping,C.grouping) grouping,IFNULL(fp.caja,C.caja) caja,fp.bonus INTO importe, packin, id_compra,groupin,caj,bonus
+ FROM Compres C
+ INNER JOIN Entradas E ON E.Id_Entrada = C.Id_Entrada
+ INNER JOIN travel T ON T.id = E.travel_id
+ LEFT JOIN price_fixed fp ON fp.item_id = id_art AND CURDATE() BETWEEN fp.date_start AND fp.date_end AND fp.warehouse_id IN (0,id_wh)
+ WHERE Id_Article = id_art
+ AND C.Novincular = FALSE
+ AND T.landing BETWEEN date_inv() AND CURDATE( )
+ AND T.warehouse_id = id_wh
+ ORDER BY T.landing DESC
+ LIMIT 1;
+
+ IF tarifa BETWEEN 4 AND 100 THEN SET descompte = tarifa;
+END IF;
+
+IF minimo <> FALSE THEN
+ IF importe < importe_min THEN
+ SET importe = importe_min;
+END IF;
+
+END IF;
+
+END IF;
+SELECT importe, descompte, tarifa, packin, id_compra,groupin,caj,bonus
+FROM DUAL;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `preOrdenarRuta` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `preOrdenarRuta`(IN vRutaId INT)
+BEGIN
+
+UPDATE Tickets mt
+JOIN (
+ SELECT tt.Id_Consigna, round(ifnull(avg(t.Prioridad),0),0) as Prioridad
+ from Tickets t
+ JOIN Tickets tt on tt.Id_Consigna = t.Id_Consigna
+ where t.Fecha > TIMESTAMPADD(YEAR,-1,CURDATE())
+ AND tt.Id_Ruta = vRutaId
+ GROUP BY Id_Consigna
+ ) sub ON sub.Id_Consigna = mt.Id_Consigna
+ SET mt.Prioridad = sub.Prioridad
+ WHERE mt.Id_Ruta = vRutaId;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `prepare_client_list` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `prepare_client_list`()
+BEGIN
+ DROP TEMPORARY TABLE IF EXISTS tmp.client_list;
+ CREATE TEMPORARY TABLE tmp.client_list
+ (PRIMARY KEY (Id_Cliente))
+ ENGINE = MEMORY
+ SELECT DISTINCT Id_Cliente
+ FROM tmp.ticket_list;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `prepare_ticket_list` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `prepare_ticket_list`(vStartingDate DATETIME, vEndingDate DATETIME)
+BEGIN
+ DROP TEMPORARY TABLE IF EXISTS tmp.ticket_list;
+ CREATE TEMPORARY TABLE tmp.ticket_list
+ (PRIMARY KEY (Id_Ticket))
+ ENGINE = MEMORY
+ SELECT t.Id_Ticket, c.Id_Cliente
+ FROM Tickets t
+ LEFT JOIN vn.ticketState ts ON ts.ticket = t.Id_Ticket
+ JOIN Clientes c ON c.Id_Cliente = t.Id_Cliente
+ JOIN clientes_tipo ct ON ct.clientes_tipo_id = c.clientes_tipo_id
+ WHERE ct.code IN ('normal','handMaking')
+ AND (
+ Fecha BETWEEN util.today() AND vEndingDate
+ OR (
+ ts.alertLevel < 3
+ AND t.Fecha >= vStartingDate
+ AND t.Fecha < util.today()
+ )
+ );
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `price_detail` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `price_detail`(IN idART INT, IN datLanding DATE)
+BEGIN
+ CALL item_last_buy_(NULL,datLanding);
+
+ SELECT 'Ultimas compras',NULL as Entrada, NULL as Almacen, NULL as Tarifa3, NULL as Tarifa2
+ UNION ALL
+ SELECT NULL, Id_Entrada, w.name, Tarifa3, Tarifa2
+ FROM Compres c
+ JOIN t_item_last_buy b ON c.Id_Compra = b.buy_id
+ JOIN warehouse w on w.id = b.warehouse_id
+ WHERE b.item_id = idART
+ UNION all
+ SELECT 'Precios fijados',NULL, NULL as Almacen, NULL as Tarifa3, NULL as Tarifa2
+ UNION ALL
+ SELECT NULL, CONCAT('de ', date_start, ' a ',date_end) , w.name, rate_3,rate_2
+ FROM price_fixed
+ JOIN warehouse w on w.id = warehouse_id
+ WHERE item_id = idART
+ AND datLanding BETWEEN date_start AND date_end;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `proc_end` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `proc_end`()
+BEGIN
+
+UPDATE stat SET `end` = NOW()
+WHERE id = (SELECT id FROM lastid);
+
+DROP TEMPORARY TABLE IF EXISTS lastid;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `proc_start` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `proc_start`(IN v_proc_id INT)
+BEGIN
+
+INSERT INTO stat(proc_id) VALUES(v_proc_id);
+
+
+DROP TEMPORARY TABLE IF EXISTS lastid;
+CREATE TEMPORARY TABLE lastid
+SELECT last_insert_id() id;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `production_buffer_problems` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `production_buffer_problems`()
+BEGIN
+/**
+ * Necesita la tabla tmp.ticket_list
+ */
+ DECLARE vToday DATETIME;
+ DECLARE vTomorrowMidnight DATETIME ;
+ DECLARE vWarehouse INT;
+ DECLARE vDate DATE;
+ DECLARE vAvailableCache INT;
+ DECLARE vVisibleCache INT;
+ DECLARE vDone BOOL;
+
+ DECLARE vCursor CURSOR FOR
+ SELECT DISTINCT warehouse_id, DATE(Fecha)
+ FROM tmp.ticket_list tt
+ JOIN Tickets t on tt.Id_Ticket = t.Id_Ticket
+ AND DATE(t.Fecha) BETWEEN CURDATE() AND TIMESTAMPADD(DAY,1.9,CURDATE());
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.buffer_problems;
+ CREATE TEMPORARY TABLE tmp.buffer_problems (
+ Id_Ticket INT(11),
+ problem VARCHAR(50),
+ INDEX (Id_Ticket)
+ )
+ ENGINE = MEMORY;
+
+ SET vToday = CURDATE();
+ SET vTomorrowMidnight = TIMESTAMP(TIMESTAMPADD(DAY, 1, CURDATE()), '23:59:59');
+
+ OPEN vCursor;
+
+ l: LOOP
+ SET vDone = FALSE;
+ FETCH vCursor INTO vWarehouse, vDate;
+
+ IF vDone THEN
+ LEAVE l;
+ END IF;
+
+ 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
+ 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
+ JOIN vn2008.Articles A ON A.Id_Article = M.Id_Article
+ JOIN vn2008.Tipos tp on tp.tipo_id = A.tipo_id
+ LEFT JOIN cache.visible v ON A.Id_Article = v.item_id AND v.calc_id = vVisibleCache
+ LEFT JOIN cache.available av ON av.item_id = A.Id_Article AND av.calc_id = vAvailableCache
+ WHERE date(t.Fecha) = vDate
+ AND reino_id NOT IN (8,6)
+ AND M.Cantidad > IFNULL(v.visible,0)
+ AND M.Cantidad > 0
+ AND IFNULL(av.available,0) < 0
+ AND M.OK = FALSE
+ 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
+ JOIN Tickets t on t.Id_Ticket = tt.Id_Ticket
+ LEFT JOIN vn2008.Movimientos M ON M.Id_Ticket = t.Id_Ticket
+ JOIN vn2008.Articles A ON A.Id_Article = M.Id_Article
+ JOIN vn2008.Tipos tp on tp.tipo_id = A.tipo_id
+ LEFT JOIN cache.visible v ON A.Id_Article = v.item_id AND v.calc_id = vVisibleCache
+ LEFT JOIN (
+ SELECT Id_Article FROM Articles_nicho
+ WHERE DATE(modificationDate) = CURDATE() AND warehouse_id = vWarehouse
+ ) nicho ON nicho.Id_Article = A.Id_Article
+ LEFT JOIN cache.available av ON av.item_id = A.Id_Article AND av.calc_id = vAvailableCache
+ WHERE IFNULL(av.available,0) >= 0
+ AND M.Cantidad > IFNULL(v.visible,0)
+ AND M.OK = FALSE
+ AND M.Reservado = FALSE
+ AND reino_id NOT IN (8,6)
+ AND date(t.Fecha) = vDate
+ AND NOT generic
+ AND CURDATE() = vDate
+ AND t.warehouse_id = vWarehouse
+ AND nicho.Id_Article IS NULL;
+ END LOOP;
+
+ CLOSE vCursor;
+
+ -- Código 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;
+
+ -- Congelado
+
+ INSERT INTO tmp.buffer_problems(Id_Ticket, problem)
+ SELECT DISTINCT tt.Id_Ticket, 'CONGELADO'
+ FROM tmp.ticket_list tt
+ JOIN Tickets t on t.Id_Ticket = tt.Id_Ticket
+ JOIN Clientes c on c.Id_Cliente = t.Id_Cliente
+ WHERE c.Congelado;
+
+ -- Riesgo
+
+ CALL risk_vs_client_list(CURDATE());
+
+ INSERT INTO tmp.buffer_problems(Id_Ticket, problem)
+ SELECT DISTINCT tt.Id_Ticket, 'RIESGO'
+ 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 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
+ */
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `production_buffer_problemsOptimizado` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `production_buffer_problemsOptimizado`()
+BEGIN
+/*
+ * Necesita la tabla tmp.ticket_list
+ *
+ */
+ DECLARE vWarehouse INT;
+ DECLARE vDate DATE;
+ DECLARE vAvailableCache INT;
+ DECLARE vVisibleCache INT;
+ DECLARE vDone INT DEFAULT 0;
+
+ DECLARE vCursor CURSOR FOR
+ SELECT DISTINCT warehouse_id, date(Fecha)
+ FROM tmp.ticket_list tt
+ JOIN Tickets t on tt.Id_Ticket = t.Id_Ticket
+ AND DATE(t.Fecha) BETWEEN CURDATE() AND TIMESTAMPADD(DAY,1.9,CURDATE());
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = 1;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.buffer_problems;
+ CREATE TEMPORARY TABLE tmp.buffer_problems (
+ Id_Ticket INT(11),
+ problem VARCHAR(50),
+ INDEX (Id_Ticket)
+ )
+ 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
+ (PRIMARY KEY (Id_Ticket))
+ ENGINE = MEMORY
+ SELECT tt.Id_Ticket, c.Id_Cliente
+ FROM tmp.ticket_list tt
+ JOIN Clientes c on c.Id_Cliente = tt.Id_Cliente
+ WHERE c.Congelado = 0;
+
+ -- RIESGO
+ CALL risk_vs_client_list(CURDATE());
+
+
+ INSERT INTO tmp.buffer_problems(Id_Ticket, problem)
+ SELECT DISTINCT tt.Id_Ticket, 'RIESGO'
+ FROM tmp.ticketListFiltered tt
+ JOIN Tickets t on t.Id_Ticket = tt.Id_Ticket
+ JOIN Agencias a on t.Id_Agencia = a.Id_Agencia
+ 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
+
+ -- 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;
+
+ OPEN vCursor;
+
+ WHILE NOT vDone
+ DO
+ FETCH vCursor INTO vWarehouse, vDate ;
+
+ 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
+ JOIN vn2008.Articles A ON A.Id_Article = M.Id_Article
+ JOIN vn2008.Tipos tp on tp.tipo_id = A.tipo_id
+ LEFT JOIN cache.visible v ON A.Id_Article = v.item_id AND v.calc_id = vVisibleCache
+ LEFT JOIN cache.available av ON av.item_id = A.Id_Article AND av.calc_id = vAvailableCache
+ WHERE date(t.Fecha) = vDate
+ AND reino_id != 6
+ AND M.Cantidad > IFNULL(v.visible,0)
+ AND IFNULL(av.available,0) < 0
+ AND M.OK = FALSE
+ 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
+ JOIN Tickets t on t.Id_Ticket = tt.Id_Ticket
+ LEFT JOIN vn2008.Movimientos M ON M.Id_Ticket = t.Id_Ticket
+ JOIN vn2008.Articles A ON A.Id_Article = M.Id_Article
+ JOIN vn2008.Tipos tp on tp.tipo_id = A.tipo_id
+ LEFT JOIN cache.visible v ON A.Id_Article = v.item_id AND v.calc_id = vVisibleCache
+ LEFT JOIN cache.available av ON av.item_id = A.Id_Article AND av.calc_id = vAvailableCache
+ WHERE IFNULL(av.available,0) >= 0
+ AND M.Cantidad > IFNULL(v.visible,0)
+ AND M.OK = FALSE
+ AND M.Reservado = FALSE
+ AND reino_id != 6
+ AND date(t.Fecha) = vDate
+ AND NOT generic
+ AND CURDATE() = vDate
+ AND t.warehouse_id = vWarehouse;
+ END WHILE;
+
+ CLOSE vCursor;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `production_buffer_set_priority` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `production_buffer_set_priority`()
+BEGIN
+
+DECLARE currentDayOfWeek INT;
+
+SET currentDayOfWeek = weekday(curdate());
+
+-- Sin provincia ni dia de envio
+UPDATE tmp.production_buffer pb
+LEFT JOIN
+(
+ SELECT agency_id
+ , warehouse_id
+ , max_hour
+ FROM agency_hour ah
+ WHERE subtract_day < 225
+ AND week_day is null
+ AND province_id is null
+
+) t on t.agency_id = pb.agency_id
+ and t.warehouse_id = pb.warehouse_id
+
+SET pb.Hora = IF(pb.Hora is null or pb.Hora = 0 or pb.Hora = 24,IFNULL(t.max_hour,24), pb.Hora)
+ ,pb.Departure =IFNULL(t.max_hour,0);
+
+
+-- Agencias sin provincia, machacan lo anterior si coinciden
+UPDATE tmp.production_buffer pb
+JOIN
+(
+ SELECT agency_id
+ , warehouse_id
+ , shipmentDay(week_day, subtract_day) as shipmentDay
+ , max_hour
+ FROM agency_hour ah
+ WHERE subtract_day < 225
+ AND agency_id is not null
+ AND week_day is not null
+ AND max_hour is not null
+ AND province_id is null
+ HAVING shipmentDay = currentDayOfWeek
+
+) t on t.agency_id = pb.agency_id
+ and t.warehouse_id = pb.warehouse_id
+
+SET pb.Hora = IF(pb.Hora is null or pb.Hora = 0 or pb.Hora = 24,t.max_hour, pb.Hora)
+,pb.Departure = t.max_hour
+;
+
+
+-- Agencias con provincia, se ejecuta para machacar lo anterior, si procede.
+UPDATE tmp.production_buffer pb
+JOIN
+(
+ SELECT agency_id
+ , warehouse_id
+ , shipmentDay(week_day, subtract_day) as shipmentDay
+ , max_hour
+ , province_id
+ FROM agency_hour ah
+ WHERE subtract_day < 225
+ AND agency_id is not null
+ AND week_day is not null
+ AND max_hour is not null
+ AND province_id is not null
+ HAVING shipmentDay = currentDayOfWeek
+
+) t on t.agency_id = pb.agency_id
+ and t.warehouse_id = pb.warehouse_id
+ and t.province_id = pb.province_id
+
+SET pb.Hora = IF(pb.Hora is null or pb.Hora = 0 or pb.Hora = 24,t.max_hour, pb.Hora)
+,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 */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `production_control_source` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `production_control_source`(vWarehouseId INT, vScopeDays TINYINT)
+BEGIN
+ DECLARE vMidnight DATETIME DEFAULT TIMESTAMP(CURDATE(),'23:59:59');
+ DECLARE vEndingDate DATETIME DEFAULT TIMESTAMPADD(DAY,vScopeDays,vMidnight);
+ DECLARE SAFE_ALERT_LEVEL INT DEFAULT 3;
+
+ CALL prepare_ticket_list(TIMESTAMPADD(DAY,-1,CURDATE()), vEndingDate);
+ CALL prepare_client_list;
+ CALL production_buffer_problems;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.production_buffer;
+ CREATE TEMPORARY TABLE tmp.production_buffer
+ (PRIMARY KEY(Id_Ticket))
+ ENGINE = MEMORY
+ SELECT t.Id_Ticket
+ , t.Id_Cliente
+ , t.warehouse_id
+ , t.Alias
+ , t.Bultos
+ , HOUR(t.Fecha) as Hora
+ , HOUR(t.Fecha) as Departure
+ , t.Id_Ruta
+ , IF(a.Vista = 2,ap.zona,0) as zona
+ , CS.Consignatario
+ , CS.CODPOSTAL
+ , CS.POBLACION
+ , p.name PROVINCIA
+ , IF(a.Vista= 2, CONCAT('ZONA ',ap.zona), a.Agencia) Agencia
+ , a.agency_id
+ , 0 AS `lines`
+ , CAST( 0 AS DECIMAL(5,2)) AS m3
+ , 0 AS problems
+ , " " as problem
+ , IFNULL(tls.state,2) AS state
+ , w.Codigotrabajador
+ , DATE(t.Fecha) AS Fecha
+ , Averiguar_ComercialCliente_IdTicket(t.Id_Ticket) AS Comercial
+ , p.province_id
+ , tls.productionOrder as state_order
+ , ifnull(tls.alertLevel,0) alert_level
+ , t.boxed as palletized
+ FROM tmp.ticket_list tt
+ JOIN Tickets t on tt.Id_Ticket = t.Id_Ticket
+ JOIN Consignatarios CS on CS.Id_Consigna = t.Id_Consigna
+ JOIN province p on p.province_id = CS.province_id
+ JOIN Agencias a ON a.Id_Agencia = t.Id_Agencia
+ LEFT JOIN Agencias_province ap on ap.province_id = CS.province_id AND ap.warehouse_id = t.warehouse_id AND ap.agency_id = a.agency_id
+ LEFT JOIN vn.ticketState tls on tls.ticket = tt.Id_Ticket
+ LEFT JOIN Trabajadores w on w.Id_Trabajador = tls.worker
+ WHERE t.warehouse_id = vWarehouseId
+ AND a.Vista IN (1,2,3);
+
+
+ -- Líneas y volumen por ticket
+
+ UPDATE tmp.production_buffer pb
+ JOIN (
+ SELECT m.Id_Ticket, COUNT(Id_Movimiento) as `lines`, cast( sum( m.Cantidad * r.cm3 / 1000000 ) as decimal(10,2)) as m3
+ FROM tmp.ticket_list tt
+ JOIN Movimientos m on tt.Id_Ticket = m.Id_Ticket
+ JOIN bi.rotacion r on m.Id_Article = r.Id_Article
+ WHERE r.warehouse_id = vWarehouseId
+ GROUP BY m.Id_Ticket
+ ) m on m.Id_Ticket = pb.Id_Ticket
+ SET pb.`lines` = m.`lines`,
+ pb.m3 = m.m3;
+
+ DELETE FROM tmp.production_buffer
+ WHERE `lines`= 0;
+
+ -- Cajas
+
+ ALTER TABLE tmp.production_buffer
+ ADD Cajas DOUBLE DEFAULT NULL;
+
+ UPDATE tmp.production_buffer pb
+ JOIN (
+ SELECT t.Id_Ticket, sum(floor(m.Cantidad / c.Packing) * bultoCubico) as Cajas
+ FROM tmp.ticket_list tt
+ JOIN Tickets t on tt.Id_Ticket = t.Id_Ticket
+ JOIN Movimientos m on m.Id_Ticket = t.Id_Ticket
+ JOIN cache.last_buy lb on lb.warehouse_id = t.warehouse_id AND lb.item_id = m.Id_Article
+ JOIN Compres c on c.Id_Compra = lb.buy_id
+ JOIN Cubos cb on cb.Id_Cubo = c.Id_Cubo
+ WHERE m.Cantidad > c.Packing
+ GROUP BY t.Id_Ticket
+ HAVING Cajas >= 1
+ ) 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;
+
+ UPDATE tmp.production_buffer pb
+ JOIN (
+ SELECT tt.Id_Ticket, COUNT(m.Id_Movimiento) as Lineas
+ FROM tmp.ticket_list tt
+ JOIN Movimientos m ON m.Id_Ticket = tt.Id_Ticket
+ JOIN Articles a ON a.Id_Article = m.Id_Article
+ JOIN Tipos tp ON tp.tipo_id = a.tipo_id
+ JOIN reinos r ON r.id = tp.reino_id
+ WHERE reino = 'Artificial'
+ GROUP BY tt.Id_Ticket
+ HAVING Lineas >= 1
+ ) sub ON sub.Id_Ticket = pb.Id_Ticket
+ SET pb.lineasArtificial = sub.Lineas;
+
+
+ -- Problemas por ticket
+
+ UPDATE tmp.production_buffer pb
+ JOIN (
+ SELECT Id_Ticket, COUNT(Id_Ticket) as problems, GROUP_CONCAT(problem) problem
+ FROM tmp.buffer_problems
+ GROUP BY Id_Ticket
+ ) p on p.Id_Ticket = pb.Id_Ticket
+ 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
+ , Id_Ticket
+ , Agencia
+ , Id_Cliente
+ , Consignatario
+ , state
+ , CodigoTrabajador
+ , m3
+ , `lines`
+ )
+ SELECT DISTINCT c.shipment AS Fecha
+ , c.Id_Entrada AS Id_Ticket
+ , warehouse.name
+ , c.Id_Proveedor
+ , c.ref AS Consignatario
+ , IF(BIT_OR(controlado.Id_Compra),6,IF(BIT_OR(preparado.Id_Compra),5,3)) AS state
+ , c.Id_Trabajador AS CodigoTrabajador
+ , round(sum(cm3) / 1000000,2) AS m3
+ , count(c.Id_Compra) as `lines`
+ FROM v_compres c
+ INNER JOIN warehouse ON c.warehouse_id = warehouse.id
+ LEFT JOIN Compres_ok preparado ON c.Id_Compra = preparado.Id_Compra AND preparado.valor = 1
+ LEFT JOIN Compres_ok controlado ON c.Id_Compra = controlado.Id_Compra AND controlado.valor = 2
+ WHERE warehouse_id_out = vWarehouseId AND IFNULL(c.Confirmada,FALSE) = FALSE
+ 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
+ , Id_Ticket
+ , Agencia
+ , Id_Cliente
+ , Consignatario
+ , state
+ , CodigoTrabajador
+ , alert_level
+ , warehouse_id
+ )
+ SELECT
+ DATE(t.Fecha) AS Fecha
+ , t.Id_Ticket
+ , a.Agencia
+ , t.Id_Cliente
+ , CS.Consignatario
+ , s.id as state
+ , w.Codigotrabajador
+ , ifnull(tls.alertLevel,0) alert_level
+ , vWarehouseId
+ FROM vn2008.Tickets t
+ JOIN vn2008.Consignatarios CS on CS.Id_Consigna = t.Id_Consigna
+ JOIN vn2008.Agencias a ON a.Id_Agencia = t.Id_Agencia
+ LEFT JOIN vn2008.warehouse_pickup wp ON wp.agency_id = a.Id_Agencia
+ LEFT JOIN vn.ticketState tls on tls.ticket = t.Id_Ticket
+ LEFT JOIN vn.state s ON s.id = tls.state
+ LEFT JOIN vn2008.Trabajadores w on w.Id_Trabajador = tls.worker
+ 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 */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `proveedores_extracto` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `proveedores_extracto`(IN idPROV INT, IN idMONEDA INT, IN idEMP INT)
+BEGIN
+
+
+SET @saldo_eur:= 0;
+SET @saldo_div:= 0;
+
+SELECT
+ *,
+ @saldo_eur:= round(@saldo_eur + IFNULL(Pago_Euros, 0) - IFNULL(Fac_Euros, 0) ,2 ) AS saldo_eur,
+ @saldo_div:= round(@saldo_div + IFNULL(Pago_Divisas, 0) - IFNULL(Fac_Divisas, 0) ,2 ) AS saldo_div
+FROM
+ (SELECT
+ *
+ FROM
+ (SELECT
+ 'R',
+ NULL as banco_id,
+ r.empresa_id,
+ r.serie,
+ r.id,
+ r.fecha,
+ CONCAT('S/Fra ', r.sref) sref,
+ if(r.moneda_id > 1,round(sum(divisa) / sum(cantidad),3),NULL) val_cambio,
+ CAST(sum(cantidad) as DECIMAL(10,2)) as Fac_Euros,
+ CAST(sum(divisa) as DECIMAL(10,2)) as Fac_Divisas,
+ NULL AS Pago_Euros,
+ NULL AS Pago_Divisas,
+ r.moneda_id,
+ r.contabilizada,
+ Moneda,
+ NULL as pago_sdc_id
+ FROM
+ recibida r
+ JOIN recibida_vencimiento rv on rv.recibida_id = r.id
+ JOIN Monedas m on m.Id_Moneda = r.moneda_id
+ WHERE
+ r.fecha > '2014-12-31'
+ AND r.proveedor_id = idPROV
+ AND idMONEDA IN (r.moneda_id, 0)
+ AND idEMP IN (r.empresa_id,0)
+ GROUP BY r.id
+
+
+
+ UNION ALL SELECT
+
+ 'P',
+ p.id_banco,
+ p.empresa_id,
+ NULL,
+ p.id,
+ Fecha,
+ CONCAT(IFNULL(name, ''), IF(pre.concepto <> '', CONCAT(' : ', pre.concepto), '')),
+ if(p.id_moneda > 1, p.divisa / importe, NULL) tip_cambio,
+ NULL,
+ NULL,
+ p.importe,
+ p.divisa,
+ p.id_moneda,
+ IFNULL(conciliado, 0),
+ Moneda,
+ pago_sdc_id
+ FROM
+ pago p
+ LEFT JOIN Monedas ON Monedas.Id_Moneda = p.id_moneda
+ LEFT JOIN Bancos ON p.id_banco = Bancos.Id_banco
+ LEFT JOIN pay_met pm ON p.pay_met_id = pm.id
+ LEFT JOIN Pagares pre ON pre.pago_id = p.id
+ WHERE
+ Fecha > '2014-12-31'
+ AND p.Id_Proveedor = idPROV
+ AND idMONEDA IN (p.id_moneda,0)
+ AND idEMP IN (p.empresa_id,0)
+ ) AS SUB
+ ORDER BY fecha) t;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `proveedores_extracto_vtos` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `proveedores_extracto_vtos`(IN idPROV INT, IN idMONEDA INT, IN idEMP INT)
+BEGIN
+
+
+SET @saldo_eur:= 0;
+SET @saldo_div:= 0;
+
+SELECT
+ *,
+ @saldo_eur:= round(@saldo_eur + IFNULL(Pago_Euros, 0) - IFNULL(Fac_Euros, 0) ,2 ) AS saldo_eur,
+ @saldo_div:= round(@saldo_div + IFNULL(Pago_Divisas, 0) - IFNULL(Fac_Divisas, 0) ,2 ) AS saldo_div
+FROM
+ (SELECT
+ *
+ FROM
+ (SELECT
+ 'V',
+ NULL as banco_id,
+ r.empresa_id,
+ r.serie,
+ r.id,
+ rv.fecha,
+ CONCAT('S/Fra ', r.sref) sref,
+ if(r.moneda_id > 1,round(sum(divisa) / sum(cantidad),3),NULL) val_cambio,
+ CAST(sum(cantidad) as DECIMAL(10,2)) as Fac_Euros,
+ CAST(sum(divisa) as DECIMAL(10,2)) as Fac_Divisas,
+ NULL AS Pago_Euros,
+ NULL AS Pago_Divisas,
+ r.moneda_id,
+ r.contabilizada,
+ Moneda,
+ NULL as pago_sdc_id
+ FROM
+ recibida r
+ JOIN recibida_vencimiento rv on rv.recibida_id = r.id
+ JOIN Monedas m on m.Id_Moneda = r.moneda_id
+ WHERE
+ r.fecha > '2014-12-31'
+ AND r.proveedor_id = idPROV
+ AND idMONEDA IN (r.moneda_id, 0)
+ AND idEMP IN (r.empresa_id,0)
+ GROUP BY rv.id
+
+
+
+ UNION ALL SELECT
+
+ 'P',
+ p.id_banco,
+ p.empresa_id,
+ NULL,
+ p.id,
+ Fecha,
+ CONCAT(IFNULL(name, ''), IF(pre.concepto <> '', CONCAT(' : ', pre.concepto), '')),
+ if(p.id_moneda > 1, p.divisa / importe, NULL) tip_cambio,
+ NULL,
+ NULL,
+ p.importe,
+ p.divisa,
+ p.id_moneda,
+ IFNULL(conciliado, 0),
+ Moneda,
+ pago_sdc_id
+ FROM
+ pago p
+ LEFT JOIN Monedas ON Monedas.Id_Moneda = p.id_moneda
+ LEFT JOIN Bancos ON p.id_banco = Bancos.Id_banco
+ LEFT JOIN pay_met pm ON p.pay_met_id = pm.id
+ LEFT JOIN Pagares pre ON pre.pago_id = p.id
+ WHERE
+ Fecha > '2014-12-31'
+ AND p.Id_Proveedor = idPROV
+ AND idMONEDA IN (p.id_moneda,0)
+ AND idEMP IN (p.empresa_id,0)
+ ) AS SUB
+ ORDER BY fecha, id) t;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `proveedores_saldo` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `proveedores_saldo`(IN datFEC DATE)
+BEGIN
+
+SET datFEC = IF(datfec < CURDATE(), CURDATE(), datfec);
+
+SELECT P.Id_Proveedor
+ , P.Proveedor
+ , P.empresa_id
+ , P.pay_met_id
+ , P.cuenta
+ , RED(IFNULL(sub_tot.Saldo,0) + IFNULL(sub_fut.Saldo,0) + IFNULL(sub_hoy.Saldo,0)) Total
+ , RED(IFNULL(sub_hoy.Saldo,0) + IFNULL(sub_fut.Saldo,0)) Inmediato
+ , RED(IFNULL(sub_hoy.Saldo,0)) Vencido
+FROM
+(SELECT Id_Proveedor, Proveedor, id as empresa_id, pay_met_id, P.cuenta FROM Proveedores P INNER JOIN empresa) P
+
+LEFT JOIN
+(
+SELECT Id_Proveedor, empresa_id, SUM(Sald) as Saldo
+FROM
+(
+SELECT RV.Fecha, SUM(-1* ROUND(IFNULL(cantidad,0) / IF(p.cuenta LIKE '___4______',rr.rate,1),2)) as Sald, proveedor_id as Id_Proveedor, empresa_id
+FROM recibida_vencimiento RV
+INNER JOIN recibida R ON RV.recibida_id = R.id
+INNER JOIN Proveedores p ON p.Id_Proveedor = R.proveedor_id
+INNER JOIN reference_rate rr ON rr.date=R.fecha
+WHERE RV.fecha > datFEC
+ AND R.contabilizada
+GROUP BY proveedor_id, empresa_id
+UNION ALL
+SELECT fecha, red(SUM(IFNULL(importe,0))), id_proveedor, empresa_id
+FROM pago
+WHERE fecha > datFEC
+GROUP BY id_proveedor, empresa_id
+) sub
+GROUP BY Id_Proveedor, empresa_id
+) sub_tot USING(Id_Proveedor, empresa_id)
+
+-- Saldo inmediato
+
+LEFT JOIN
+(
+SELECT Id_Proveedor, empresa_id, SUM(Sald) as Saldo
+FROM
+(
+SELECT RV.Fecha, SUM(-1* ROUND(IFNULL(cantidad,0)/ IF(p.cuenta LIKE '___4______',rr.rate,1),2)) as Sald, proveedor_id as Id_Proveedor, empresa_id
+FROM recibida_vencimiento RV
+INNER JOIN recibida R ON RV.recibida_id = R.id
+INNER JOIN Proveedores p ON p.Id_Proveedor = R.proveedor_id
+INNER JOIN reference_rate rr ON rr.date = R.fecha
+WHERE RV.fecha BETWEEN CURDATE() AND datFEC
+AND R.contabilizada
+GROUP BY proveedor_id, empresa_id
+UNION ALL
+SELECT fecha, ROUND(SUM(IFNULL(importe,0)),2), id_proveedor, empresa_id
+FROM pago
+WHERE fecha BETWEEN CURDATE() AND datFEC
+GROUP BY id_proveedor, empresa_id
+) sub3
+GROUP BY Id_Proveedor, empresa_id
+) sub_fut USING(Id_Proveedor, empresa_id)
+
+
+
+LEFT JOIN
+(
+SELECT Id_Proveedor, empresa_id, SUM(Sald) as Saldo
+FROM
+(
+SELECT RV.Fecha, SUM(-1* ROUND(IFNULL(cantidad,0)/ IF(p.cuenta LIKE '___4______',rr.rate,1),2)) as Sald, proveedor_id as Id_Proveedor, empresa_id
+FROM recibida_vencimiento RV
+INNER JOIN recibida R ON RV.recibida_id = R.id
+INNER JOIN Proveedores p ON p.Id_Proveedor = R.proveedor_id
+INNER JOIN reference_rate rr ON rr.date = R.fecha
+WHERE RV.fecha > '2014-12-31' AND RV.fecha < CURDATE()
+AND R.contabilizada
+GROUP BY proveedor_id, empresa_id
+UNION ALL
+SELECT fecha, red(SUM(IFNULL(importe,0))), id_proveedor, empresa_id
+FROM pago
+WHERE fecha > '2014-12-31' AND fecha < CURDATE()
+GROUP BY id_proveedor, empresa_id
+) sub5
+GROUP BY Id_Proveedor, empresa_id
+) sub_hoy USING(Id_Proveedor, empresa_id)
+WHERE abs(sub_tot.Saldo) >0.2
+ OR ABS(sub_fut.Saldo) >0.2
+ OR ABS(sub_hoy.Saldo) >0.2
+;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `proveedores_saldos` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `proveedores_saldos`()
+BEGIN
+
+ DECLARE startingDate DATETIME DEFAULT TIMESTAMPADD(MONTH,-3,CURDATE());
+
+ DROP TEMPORARY TABLE IF EXISTS saldos_iniciales;
+
+ CREATE TEMPORARY TABLE saldos_iniciales
+
+ (proveedor_id INT NOT NULL
+ , empresa_id INT NOT NULL
+ , saldo_inicial double NOT NULL
+ , saldo_final DOUBLE NOT NULL
+ , moneda_id INT NOT NULL
+ , 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 (
+ SELECT
+ p.id_proveedor,
+ p.empresa_id,
+ if(p.id_moneda = 1, p.importe, p.divisa) as importe,
+ if( p.fecha < startingDate,1,0) isBeforeStarting,
+ p.id_moneda moneda_id
+ FROM pago p
+ WHERE p.fecha > '2014-12-31'
+ AND p.empresa_id = 442
+ AND p.id_proveedor <> 567
+
+ UNION ALL
+
+ SELECT
+ r.proveedor_id,
+ r.empresa_id,
+ - if(r.moneda_id = 1, rv.cantidad, rv.divisa) AS Total,
+ if(rv.fecha < startingDate,1,0) isBeforeStarting,
+ r.moneda_id
+ FROM
+ recibida r
+ INNER JOIN recibida_vencimiento rv ON r.id = rv.recibida_id
+ WHERE r.fecha > '2014-12-31'
+ AND r.contabilizada AND r.empresa_id = 442
+ AND r.proveedor_id <> 567
+ ) sub
+ GROUP BY empresa_id, id_proveedor, moneda_id;
+
+ DROP TEMPORARY TABLE IF EXISTS vencimientos_pendientes;
+
+ CREATE TEMPORARY TABLE vencimientos_pendientes
+ (vencimiento_id INT, id INT auto_increment
+ ,fecha DATE
+ ,proveedor_id INT NOT NULL
+ ,empresa_id INT NOT NULL
+ ,importe DECIMAL(10,2) NOT NULL
+ ,moneda_id INT NOT NULL
+ ,pendiente DECIMAL(10,2) DEFAULT 0
+ ,saldo DECIMAL(10,2) DEFAULT 0
+ ,saldoFinal DECIMAL(10,2) DEFAULT 0
+ ,isPago BOOLEAN
+ ,conciliado BOOLEAN
+ ,PRIMARY KEY(id),
+ INDEX(proveedor_id,empresa_id,moneda_id))
+ ENGINE = MEMORY;
+
+ INSERT INTO vencimientos_pendientes(vencimiento_id
+ , fecha
+ , proveedor_id
+ , empresa_id
+ , importe
+ , moneda_id
+ , isPago
+ , conciliado)
+ SELECT p.id,
+ p.fecha,
+ p.id_proveedor,
+ p.empresa_id,
+ if(p.id_moneda = 1, p.importe, p.divisa) as importe,
+ p.id_moneda,
+ TRUE isPago,
+ p.conciliado
+ FROM pago p
+ WHERE p.fecha >= startingDate AND p.empresa_id = 442
+ AND p.id_proveedor <> 567
+ UNION ALL
+ SELECT rv.id
+ , rv.fecha
+ , r.proveedor_id
+ , r.empresa_id
+ , -if(r.moneda_id = 1, rv.cantidad, rv.divisa) as importe
+ , r.moneda_id
+ , FALSE
+ , TRUE
+ FROM recibida r
+ LEFT JOIN saldos_iniciales si ON r.empresa_id = si.empresa_id AND r.proveedor_id = si.proveedor_id AND r.moneda_id = si.moneda_id
+ INNER JOIN recibida_vencimiento rv ON r.id = rv.recibida_id
+ WHERE rv.fecha >= startingDate AND IFNULL(saldo_final,TRUE) <> 0
+ and r.contabilizada AND r.empresa_id = 442
+ 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;
+ set @moneda := 0.0;
+ SET @pendiente := 0.0;
+ SET @day := CURDATE();
+
+ 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
+ , 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
+ , vp.moneda_id = @moneda:= vp.moneda_id
+ , vp.fecha = @day:= vp.fecha
+ , vp.saldo = @saldo
+ , vp.pendiente = @pendiente;
+
+ CREATE TEMPORARY TABLE rowsToDelete
+ ENGINE = MEMORY
+ SELECT fecha,proveedor_id,empresa_id,moneda_id
+ FROM vencimientos_pendientes
+ WHERE saldo < 0.5 AND saldo > -0.5;
+
+ DELETE vp.* FROM vencimientos_pendientes vp JOIN rowsToDelete rd
+ ON vp.fecha <= rd.fecha AND vp.proveedor_id = rd.proveedor_id AND vp.empresa_id = rd.empresa_id AND vp.moneda_id = rd.moneda_id
+ WHERE isPago = FALSE;
+
+ SELECT vp.vencimiento_id
+ , vp.fecha
+ , vp.proveedor_id
+ , vp.empresa_id
+ , vp.moneda_id
+ , vp.importe
+ , vp.pendiente
+ , vp.saldo
+ , p.pay_met_id
+ , vp.isPago
+ , vp.conciliado
+ , vp.saldoFinal
+ FROM vencimientos_pendientes vp
+ LEFT JOIN Proveedores p ON p.Id_Proveedor = vp.proveedor_id;
+
+ DROP TEMPORARY TABLE vencimientos_pendientes;
+ DROP TEMPORARY TABLE saldos_iniciales;
+ DROP TEMPORARY TABLE rowsToDelete;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `proveedores_saldoskk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `proveedores_saldoskk`()
+BEGIN
+
+
+
+DROP TEMPORARY TABLE IF EXISTS proveedores_pendientes;
+
+CREATE TEMPORARY TABLE proveedores_pendientes
+( proveedor_id INT NOT NULL
+, empresa_id INT NOT NULL
+, saldo double NOT NULL
+, moneda_id INT NOT NULL
+, PRIMARY KEY(proveedor_id, empresa_id, moneda_id));
+
+INSERT INTO proveedores_pendientes
+SELECT id_proveedor, empresa_id, sum(importe) as saldo, id_moneda as moneda_id
+ FROM
+ (
+ SELECT
+ p.id_proveedor,
+ p.empresa_id,
+ - if(p.id_moneda = 1, p.importe, p.divisa) as importe,
+ p.id_moneda
+
+ FROM
+ pago p
+
+ WHERE
+
+ p.fecha > '2014-12-31'
+
+ UNION ALL
+
+ SELECT
+ r.proveedor_id,
+ r.empresa_id,
+ if(r.moneda_id = 1, rv.cantidad, rv.divisa) AS Total,
+ r.moneda_id
+
+ FROM
+ recibida r
+ INNER JOIN recibida_vencimiento rv ON r.id = rv.recibida_id
+ WHERE r.fecha > '2014-12-31' AND r.contabilizada
+ ) sub
+ GROUP BY empresa_id, id_proveedor, moneda_id
+ having saldo > 0;
+
+
+
+ DROP TEMPORARY TABLE IF EXISTS vencimientos_pendientes_aux;
+
+ CREATE TEMPORARY TABLE vencimientos_pendientes_aux
+ (vencimiento_id INT, id INT auto_increment
+ ,fecha DATE
+ ,proveedor_id INT NOT NULL
+ ,empresa_id INT NOT NULL
+ ,importe double NOT NULL
+ ,moneda_id INT NOT NULL
+ ,pendiente DOUBLE DEFAULT 0
+ ,PRIMARY KEY(id));
+
+ SET @imp:= 0;
+
+ INSERT INTO vencimientos_pendientes_aux(vencimiento_id
+ , fecha
+ , proveedor_id
+ , empresa_id
+ , importe
+ , moneda_id
+ , pendiente)
+
+
+
+ SELECT rv.id
+ , rv.fecha
+ , r.proveedor_id
+ , r.empresa_id
+ , @imp:= if(r.moneda_id = 1, rv.cantidad, rv.divisa) as importe
+ , r.moneda_id
+ , pp.saldo
+ FROM recibida r
+ INNER JOIN recibida_vencimiento rv ON r.id = rv.recibida_id
+ JOIN proveedores_pendientes pp ON pp.proveedor_id = r.proveedor_id AND pp.empresa_id = r.empresa_id AND pp.moneda_id = r.moneda_id
+ WHERE r.fecha > '2010-12-31'
+ and rv.fecha > TIMESTAMPADD(MONTH,-3,CURDATE())
+ and r.contabilizada;
+
+
+ DROP TEMPORARY TABLE IF EXISTS vencimientos_pendientes;
+
+ CREATE TEMPORARY TABLE vencimientos_pendientes
+ (vencimiento_id INT, id INT , id2 INT auto_increment
+ ,fecha DATE
+ ,proveedor_id INT NOT NULL
+ ,empresa_id INT NOT NULL
+ ,importe double NOT NULL
+ ,moneda_id INT NOT NULL
+ ,pendiente DOUBLE DEFAULT 0
+ ,saldo DOUBLE
+ ,PRIMARY KEY(id2));
+
+
+
+ INSERT INTO vencimientos_pendientes(vencimiento_id
+ , id
+ , fecha
+ , proveedor_id
+ , empresa_id
+ , importe
+ , moneda_id
+ , pendiente
+ , saldo)
+
+
+
+ SELECT vencimiento_id, id, fecha, proveedor_id, empresa_id, importe, moneda_id, 0, pp.saldo
+ FROM vencimientos_pendientes_aux vp
+ JOIN proveedores_pendientes pp USING(proveedor_id, empresa_id, moneda_id)
+ ORDER BY proveedor_id, empresa_id, moneda_id, fecha DESC, importe;
+
+ 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
+ , pendiente = @pend:= IF(saldo >= importe AND saldo > 0, importe, saldo)
+ , saldo = @saldo:= @saldo - @pend
+ , empresa_id = @emp:= empresa_id
+ , proveedor_id = @prov:= proveedor_id
+ , moneda_id = @moneda:= moneda_id;
+
+ SELECT vp.vencimiento_id
+ , vp.fecha
+ , vp.proveedor_id
+ , vp.empresa_id
+ , vp.moneda_id
+ , vp.importe
+ , vp.pendiente
+ , pp.saldo
+ FROM vencimientos_pendientes vp
+ JOIN proveedores_pendientes pp USING(proveedor_id, empresa_id, moneda_id)
+ WHERE pendiente > 0;
+
+ DROP TEMPORARY TABLE vencimientos_pendientes;
+ DROP TEMPORARY TABLE proveedores_pendientes;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `prueba_miguel` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `prueba_miguel`()
+BEGIN
+select 1;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `quadre_clientes` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `quadre_clientes`(IN datFEC DATETIME)
+BEGIN
+
+
+ DECLARE datSTART DATE;
+ SET datFEC = TIMESTAMP(datFEC,'23:59:59');
+ SELECT FIRSTDAYOFYEAR(datFEC) INTO datSTART;
+
+ SELECT P2.Alias, C.Id_Cliente, C.Cuenta, Gestion, Contaplus, Gestion - Contaplus as Diferencia, empresa_id, Cliente
+
+ FROM Clientes C
+
+ JOIN pay_met pm ON pm.id = C.pay_met_id
+
+ JOIN
+
+ (
+
+ SELECT empresa_id, Id_Cliente, round(sum(Gestion),2) as Gestion, round(sum(Contaplus),2) as Contaplus
+
+ FROM
+
+ (
+ SELECT empresa_id, Id_Cliente, Gestion, 0 as Contaplus
+
+ FROM
+
+ (
+ SELECT empresa_id, Id_Cliente, -1 * Importe as Gestion
+ FROM Facturas
+ WHERE Fecha BETWEEN datSTART AND datFEC
+ UNION ALL
+ SELECT empresa_id, Id_Cliente, Entregado
+ FROM Recibos
+ WHERE Fechacobro BETWEEN datSTART AND datFEC
+ ) G
+
+ WHERE empresa_id <> 965
+
+ UNION ALL
+
+ SELECT empresa_id, Id_Cliente, 0, round(nz(Eurohaber) - nz(Eurodebe),2) as Contaplus
+
+ FROM bi.XDiario_ALL XD
+
+ JOIN Clientes C ON C.Cuenta = XD.SUBCTA
+
+ WHERE Fecha BETWEEN datSTART AND datFEC
+
+ ) sub1
+
+ GROUP BY empresa_id, Id_Cliente
+
+ ) sub2 USING(Id_Cliente)
+
+ JOIN Proveedores P2 ON P2.Id_Proveedor = sub2.empresa_id
+
+ WHERE pm.deudaviva -- Cliente de perdidas no vale la pena revisarlo
+
+ HAVING ABS(Diferencia) > 0.05
+
+ ORDER BY Cliente;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `quadre_clientes_detalle` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `quadre_clientes_detalle`(IN idC INT, IN idE INT, IN datFEC DATETIME)
+BEGIN
+
+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
+(Fecha DATETIME,
+ TPVcount INT,
+ Factura DECIMAL(10,2) SIGNED,
+ Recibo DECIMAL(10,2) SIGNED,
+ CPcount INT,
+ Debe DECIMAL(10,2) SIGNED,
+ Haber DECIMAL(10,2) SIGNED,
+ Control INT DEFAULT 0,
+ PRIMARY KEY(Fecha, TPVcount, Factura, Recibo, CPcount, Debe, Haber))
+ 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
+ FROM Facturas
+ WHERE Id_Cliente = idC AND empresa_id = idE AND Fecha BETWEEN datSTART AND datFEC
+ GROUP BY Fecha, round(Importe,2)
+ UNION ALL
+ SELECT Fechacobro as Fecha, COUNT(*) as TPVcount, 0 as Factura, round(Entregado,2) as Recibo,COUNT(*) as CPCount, 0 as Debe, round(Entregado,2) as Haber, 3 as Control
+ FROM Recibos
+ 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 (
+ SELECT Fecha, COUNT(*) as TPVcount, round(Eurodebe,2) as Factura, round(Eurohaber,2) as Recibo, COUNT(*) as CPcount, round(Eurodebe,2) as Debe, round(Eurohaber,2) as Haber, 2 as Control
+ FROM bi.XDiario_ALL XD
+ JOIN Clientes C ON C.Cuenta = XD.SUBCTA
+ WHERE Id_Cliente = idC AND empresa_id = idE AND Fecha BETWEEN datSTART AND datFEC
+ AND (Eurodebe <> 0 OR Eurohaber <>0)
+ GROUP BY Fecha, round(Eurodebe,2), round(Eurohaber,2)
+ ) sub
+
+ ON DUPLICATE KEY UPDATE Control = -1;
+
+
+
+-- 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 ;
+DROP TEMPORARY TABLE IF EXISTS qFACTURAS;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `quadre_proveedores` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `quadre_proveedores`(IN datFEC DATETIME)
+BEGIN
+
+ DECLARE datSTART DATE;
+ SET datFEC = TIMESTAMP(datFEC,'23:59:59');
+
+ SELECT FIRSTDAYOFYEAR(datFEC) INTO datSTART;
+
+ SELECT P2.Alias, P.Id_Proveedor, P.Cuenta, Gestion, Contaplus, Gestion - Contaplus as Diferencia, empresa_id, P.Proveedor
+
+ FROM Proveedores P
+
+ JOIN
+
+ (
+
+ SELECT empresa_id, Id_Proveedor, round(sum(Gestion),2) as Gestion, round(sum(Contaplus),2) as Contaplus
+
+ FROM
+
+ (
+ SELECT empresa_id, proveedor_id as Id_Proveedor, Gestion, 0 as Contaplus
+
+ FROM
+
+ (
+ SELECT empresa_id, proveedor_id, -1 * sum(cantidad) as Gestion
+ FROM recibida_vencimiento rv
+ INNER JOIN recibida r ON r.id = rv.recibida_id
+ WHERE IFNULL(r.dateBooking,r.fecha) BETWEEN datSTART AND datFEC
+ AND r.contabilizada
+ GROUP BY r.id
+
+ UNION ALL
+
+ SELECT empresa_id, id_proveedor, importe
+ FROM pago
+ WHERE Fecha BETWEEN datSTART AND datFEC
+ AND conciliado
+ AND pay_met_id <> 18 -- Saldos iniciales
+ ) G
+
+ UNION ALL
+
+ SELECT empresa_id, Id_Proveedor, 0, round(nz(Eurodebe) - nz(Eurohaber),2) as Contaplus
+
+ FROM bi.XDiario_ALL XD
+
+ JOIN Proveedores P ON P.cuenta = XD.SUBCTA
+
+ WHERE Fecha BETWEEN datSTART AND datFEC
+
+
+ ) sub1
+
+
+ GROUP BY empresa_id, Id_Proveedor
+
+ ) sub2 USING(Id_Proveedor)
+
+ JOIN Proveedores P2 ON P2.Id_Proveedor = sub2.empresa_id
+
+ HAVING ABS(Diferencia) > 0.05
+
+ ORDER BY P.Proveedor;
+
+
+
+
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `quadre_proveedores_detalle` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `quadre_proveedores_detalle`(IN idP INT, IN idE INT, IN datFEC DATETIME)
+BEGIN
+
+DECLARE datSTART DATE;
+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
+(Fecha DATE,
+ TPVcount INT,
+ Factura DECIMAL(10,2) SIGNED,
+ Recibo DECIMAL(10,2) SIGNED,
+ CPcount INT,
+ Debe DECIMAL(10,2) SIGNED,
+ Haber DECIMAL(10,2) SIGNED,
+ Control INT DEFAULT 0,
+ PRIMARY KEY(Fecha, TPVcount, Factura, Recibo, CPcount, Debe, Haber))
+ ENGINE = InnoDB
+;
+
+-- Insertamos las facturas y los pagos 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
+ FROM (SELECT IFNULL(r.dateBooking,r.Fecha) as Fecha, sum(rv.cantidad) as Importe
+ FROM recibida_vencimiento rv
+ JOIN recibida r ON r.id = rv.recibida_id
+ WHERE proveedor_id = idP
+ AND empresa_id = idE
+ AND IFNULL(r.dateBooking,r.Fecha) BETWEEN datSTART AND datFEC
+ AND (r.contabilizada OR r.dateBooking)
+ GROUP BY r.id) F
+ GROUP BY Fecha, round(Importe,2)
+ UNION ALL
+ SELECT Fecha, COUNT(*) as TPVcount, 0 as Factura, round(importe,2) as Recibo,COUNT(*) as CPCount, 0 as Debe, round(importe,2) as Haber, 3 as Control
+ FROM pago
+ WHERE Id_Proveedor = idP AND empresa_id = idE AND Fecha BETWEEN datSTART AND datFEC
+ AND conciliado
+ GROUP BY Fecha, round(importe,2);
+
+-- Insertamos los asientos de contabilidad, marcando con control = -1 las repetidas
+INSERT INTO qFACTURAS
+ SELECT *
+ FROM (
+ SELECT Fecha, COUNT(*) as TPVcount, round(Eurohaber,2) as Factura, round(Eurodebe,2) as Recibo, COUNT(*) as CPcount, round(Eurohaber,2) as Debe, round(Eurodebe,2) as Haber, 2 as Control
+ FROM bi.XDiario_ALL XD
+ JOIN Proveedores P ON P.cuenta = XD.SUBCTA
+ WHERE Id_Proveedor = idP AND empresa_id = idE AND Fecha BETWEEN datSTART AND datFEC
+ AND (Eurodebe <> 0 OR Eurohaber <>0)
+ GROUP BY Fecha, round(Eurohaber,2), round(Eurodebe,2)
+ ) sub
+
+ ON DUPLICATE KEY UPDATE Control = -1;
+
+
+
+-- 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 ;
+
+DROP TEMPORARY TABLE IF EXISTS qFACTURAS;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `quadre_proveedores_test` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `quadre_proveedores_test`(IN datFEC DATETIME)
+BEGIN
+
+ DECLARE datSTART DATE;
+ SET datFEC = TIMESTAMP(datFEC,'23:59:59');
+
+ SELECT FIRSTDAYOFYEAR(datFEC) INTO datSTART;
+
+ SELECT P2.Alias, P.Id_Proveedor, P.Cuenta, Gestion, Contaplus, Gestion - Contaplus as Diferencia, empresa_id, P.Proveedor
+
+ FROM Proveedores P
+
+ JOIN
+
+ (
+
+ SELECT empresa_id, Id_Proveedor, round(sum(Gestion),2) as Gestion, round(sum(Contaplus),2) as Contaplus
+
+ FROM
+
+ (
+ SELECT empresa_id, proveedor_id as Id_Proveedor, Gestion, 0 as Contaplus
+
+ FROM
+
+ (
+ SELECT empresa_id, proveedor_id, -1 * sum(cantidad) as Gestion
+ FROM recibida_vencimiento rv
+ INNER JOIN recibida r ON r.id = rv.recibida_id
+ WHERE r.Fecha BETWEEN datSTART AND datFEC
+ AND r.contabilizada
+ GROUP BY r.id
+
+ UNION ALL
+
+ SELECT empresa_id, id_proveedor, importe
+ FROM pago
+ WHERE Fecha BETWEEN datSTART AND datFEC
+ AND conciliado
+ AND pay_met_id <> 18 -- Saldos iniciales
+ ) G
+
+ UNION ALL
+
+ SELECT empresa_id, Id_Proveedor, 0, round(nz(Eurodebe) - nz(Eurohaber),2) as Contaplus
+
+ FROM bi.XDiario_ALL XD
+
+ JOIN Proveedores P ON P.cuenta = XD.SUBCTA
+
+ WHERE Fecha BETWEEN datSTART AND datFEC
+
+
+ ) sub1
+
+
+ GROUP BY empresa_id, Id_Proveedor
+
+ ) sub2 USING(Id_Proveedor)
+
+ JOIN Proveedores P2 ON P2.Id_Proveedor = sub2.empresa_id
+
+ HAVING ABS(Diferencia) > 0.05
+
+ ORDER BY P.Proveedor;
+
+
+
+
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `radar` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `radar`(IN today DATETIME, IN worker INTEGER, IN scopeDays SMALLINT)
+BEGIN
+
+ DECLARE todayMidnight DATE DEFAULT TIMESTAMP(today,'23:59:59');
+ DECLARE yesterday DATETIME;
+ DECLARE maxDate DATETIME;
+ DECLARE datBUF DATETIME;
+ DECLARE warehouse INTEGER;
+ DECLARE done BIT DEFAULT 0;
+ DECLARE visible_calc INTEGER;
+ DECLARE available_calc INTEGER;
+ DECLARE dateStart DATE;
+
+ 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
+ SELECT T.Id_Ticket, T.Id_Cliente, C.Id_Trabajador
+ FROM Tickets T
+ LEFT JOIN vn.ticketState tls on tls.ticket = T.Id_Ticket
+ INNER JOIN Clientes C on C.Id_Cliente = T.Id_Cliente
+ INNER JOIN subordinate s1 ON C.Id_Trabajador = s1.Id_Trabajador
+ WHERE Fecha >= yesterday
+ AND Fecha <= maxDate AND T.Factura Is NULL
+ AND IFNULL(tls.alertLevel,0) < 3
+
+ UNION DISTINCT
+
+ SELECT Id_Ticket, s.Id_Cliente, s.Id_Trabajador
+ FROM sharingclient s
+ INNER JOIN Tickets T USING(Id_Cliente)
+ LEFT JOIN vn.ticketState tls on tls.ticket = T.Id_Ticket
+ INNER JOIN subordinate s2 ON s.Id_Trabajador = s2.Id_Trabajador
+ WHERE maxDate >= datSTART
+ AND datEND >= yesterday
+ AND date(Fecha) >= IF(yesterday > datSTART, yesterday, datSTART)
+ AND date(Fecha) <= IF(datEND > maxDate, maxDate, datEND)
+ AND IFNULL(tls.alertLevel,0) < 3
+
+ UNION DISTINCT
+
+ SELECT Id_Ticket, C.Id_Cliente, s.Id_Suplente
+ FROM Clientes C
+ INNER JOIN Tickets T USING(Id_Cliente)
+ LEFT JOIN vn.ticketState tls on tls.ticket = T.Id_Ticket
+ INNER JOIN sharingcart s ON s.Id_Trabajador = C.Id_Trabajador
+ INNER JOIN subordinate su on su.Id_Trabajador=Id_Suplente
+ WHERE maxDate >= datSTART
+ AND datEND >= yesterday
+ AND date(Fecha) >= IF(yesterday > datSTART, yesterday, datSTART)
+ AND date(Fecha) <= IF(datEND > maxDate, maxDate, datEND)
+ AND IFNULL(tls.alertLevel,0) < 3
+
+ UNION DISTINCT
+
+ SELECT Id_Ticket, C.Id_Cliente, C.Id_Trabajador
+ FROM Clientes C
+ 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
+ AND w.workerId = worker;
+
+ 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
+ (INDEX (Id_Cliente))
+ ENGINE = MEMORY
+ SELECT DISTINCT Id_Cliente FROM ticketRange;
+
+ DROP TEMPORARY TABLE IF EXISTS cr5;
+ CREATE TEMPORARY TABLE cr5
+ (INDEX (Id_Cliente))
+ 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
+ SELECT t.Id_Ticket ticket_id FROM Tickets t
+ STRAIGHT_JOIN tmp.client_list c ON t.Id_Cliente = c.Id_Cliente
+ WHERE Fecha BETWEEN dateStart AND maxDate
+ AND Factura Is NULL;
+
+ CALL ticket_total();
+
+ -- Generamos otra tabla temporal con los Tickets_iva
+
+ DROP TEMPORARY TABLE IF EXISTS tt3;
+ CREATE TEMPORARY TABLE tt3
+ ENGINE = MEMORY
+ SELECT * FROM ticket_total tt
+ JOIN ticketRange tr ON tr.Id_Ticket = tt.ticket_id;
+
+
+ -- Generamos la lista de tickets y sus datos
+
+ DROP TEMPORARY TABLE IF EXISTS Radartest;
+
+ CREATE TEMPORARY TABLE Radartest
+
+ 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,
+ IFNULL(state,'LIBRE') as Estado,
+ alertLevel,
+ alertCode,
+ Date(T.Fecha) as Fecha_Simple,
+ T.Importe,
+ C.Descuento,
+ C.calidad,
+ C.Id_Cliente,
+ p.`name` provincia
+ FROM Clientes C
+ INNER JOIN
+
+ (
+
+ SELECT T.* , A.Vista, A.Agencia, s.`name` as state, alertLevel, s.`code` AS alertCode, tt3.Id_Trabajador AS workerId,
+
+ tt3.total as Importe,
+
+ 0 AS inacabable
+
+ -- (-1 < ifnull(order_id,-1)) as isbionic
+
+ FROM Tickets T
+ LEFT JOIN vn.ticketState ts on ts.ticket = T.Id_Ticket
+ LEFT JOIN vn2008.state s on s.id = ts.state
+
+ 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
+
+ LEFT JOIN Consignatarios co ON co.Id_Consigna = T.Id_Consigna
+ LEFT JOIN province p ON p.province_id = co.province_id
+
+ LEFT JOIN
+
+ (
+
+ SELECT TOTAL.Id_Cliente, ROUND(SUM(amount),2) as Riesgo FROM
+
+ (SELECT cl.Id_Cliente, amount FROM bi.customer_risk cr
+ INNER JOIN tmp.client_list cl ON cr.customer_id = cl.Id_Cliente
+
+ UNION ALL
+
+ SELECT t.Id_Cliente, tt.total FROM ticket_total tt
+ INNER JOIN Tickets t ON t.Id_Ticket = tt.ticket_id
+ INNER JOIN cr5 C ON C.Id_Cliente = t.Id_Cliente
+ WHERE t.Fecha BETWEEN dateStart AND maxDate
+ AND t.Factura is null
+
+ ) as TOTAL GROUP BY TOTAL.Id_Cliente
+
+
+ ) AS Peligros ON Peligros.Id_Cliente = C.Id_Cliente
+ ;
+ -- Actualizamos el Riesgo con los tickets futuros
+ set @cliente:= 0;
+ SET @riesgo := 0;
+
+ UPDATE Radartest SET Riesgo =
+ IF(@cliente <> @cliente:= Id_Cliente , - Importe + @riesgo:= - Riesgo + Importe , - Importe + @riesgo:= @riesgo + Importe)
+ order by Id_Cliente, Fecha_Simple DESC;
+
+
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.ticket_list;
+
+ CREATE TEMPORARY TABLE tmp.ticket_list
+ SELECT Id_Ticket, Id_Cliente FROM Radartest;
+
+ CALL prepare_client_list();
+ CALL production_buffer_problems;
+
+ UPDATE Radartest r
+ JOIN (
+ SELECT Id_Ticket, GROUP_CONCAT(problem) problem
+ FROM tmp.buffer_problems
+ GROUP BY Id_Ticket
+ ) p on p.Id_Ticket = r.Id_Ticket
+ SET r.problem = p.problem;
+
+
+
+ SELECT R.*, Riesgo + Credito as Risk , CodigoTrabajador
+ FROM Radartest R
+ INNER JOIN vn2008.Trabajadores trab on R.Id_Trabajador=trab.Id_Trabajador;
+
+ END IF;
+
+ DROP TEMPORARY TABLE IF EXISTS ticketRange;
+ DROP TABLE IF EXISTS subordinate;
+ DROP TEMPORARY TABLE IF EXISTS tmp.client_list;
+ DROP TEMPORARY TABLE IF EXISTS cr5;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `radartest` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `radartest`(IN today DATETIME, IN worker INTEGER, IN scopeDays SMALLINT)
+BEGIN
+
+ DECLARE todayMidnight DATE DEFAULT TIMESTAMP(today,'23:59:59');
+ DECLARE yesterday DATETIME;
+ DECLARE maxDate DATETIME;
+ DECLARE datBUF DATETIME;
+ DECLARE warehouse INTEGER;
+ DECLARE done BIT DEFAULT 0;
+ DECLARE visible_calc INTEGER;
+ DECLARE available_calc INTEGER;
+ DECLARE dateStart DATE;
+
+ 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
+ SELECT T.Id_Ticket, T.Id_Cliente, C.Id_Trabajador
+ FROM Tickets T
+ LEFT JOIN vn.ticketState tls on tls.ticket = T.Id_Ticket
+ INNER JOIN Clientes C on C.Id_Cliente = T.Id_Cliente
+ INNER JOIN subordinate s1 ON C.Id_Trabajador = s1.Id_Trabajador
+ WHERE Fecha >= yesterday
+ AND Fecha <= maxDate AND T.Factura Is NULL
+ AND IFNULL(tls.alertLevel,0) < 3
+
+ UNION DISTINCT
+
+ SELECT Id_Ticket, s.Id_Cliente, s.Id_Trabajador
+ FROM sharingclient s
+ INNER JOIN Tickets T USING(Id_Cliente)
+ LEFT JOIN vn.ticketState tls on tls.ticket = T.Id_Ticket
+ INNER JOIN subordinate s2 ON s.Id_Trabajador = s2.Id_Trabajador
+ WHERE maxDate >= datSTART
+ AND datEND >= yesterday
+ AND date(Fecha) >= IF(yesterday > datSTART, yesterday, datSTART)
+ AND date(Fecha) <= IF(datEND > maxDate, maxDate, datEND)
+ AND IFNULL(tls.alertLevel,0) < 3
+
+ UNION DISTINCT
+
+ SELECT Id_Ticket, C.Id_Cliente, s.Id_Suplente
+ FROM Clientes C
+ INNER JOIN Tickets T USING(Id_Cliente)
+ LEFT JOIN vn.ticketState tls on tls.ticket = T.Id_Ticket
+ INNER JOIN sharingcart s ON s.Id_Trabajador = C.Id_Trabajador
+ INNER JOIN subordinate su on su.Id_Trabajador=Id_Suplente
+ WHERE maxDate >= datSTART
+ AND datEND >= yesterday
+ AND date(Fecha) >= IF(yesterday > datSTART, yesterday, datSTART)
+ AND date(Fecha) <= IF(datEND > maxDate, maxDate, datEND)
+ AND IFNULL(tls.alertLevel,0) < 3;
+
+ 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
+ (INDEX (Id_Cliente))
+ ENGINE = MEMORY
+ SELECT DISTINCT Id_Cliente FROM ticketRange;
+
+ DROP TEMPORARY TABLE IF EXISTS cr5;
+ CREATE TEMPORARY TABLE cr5
+ (INDEX (Id_Cliente))
+ 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
+ SELECT t.Id_Ticket ticket_id FROM Tickets t
+ STRAIGHT_JOIN tmp.client_list c ON t.Id_Cliente = c.Id_Cliente
+ WHERE Fecha BETWEEN dateStart AND maxDate
+ AND Factura Is NULL;
+
+ CALL ticket_total();
+
+
+ -- Generamos otra tabla temporal con los Tickets_iva
+
+ DROP TEMPORARY TABLE IF EXISTS tt3;
+ CREATE TEMPORARY TABLE tt3
+ ENGINE = MEMORY
+ SELECT * FROM ticket_total tt
+ JOIN ticketRange tr ON tr.Id_Ticket = tt.ticket_id;
+
+
+ -- Generamos la lista de tickets y sus datos
+
+ DROP TEMPORARY TABLE IF EXISTS Radartest;
+
+ CREATE TEMPORARY TABLE Radartest
+
+ 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,
+ IFNULL(state,'LIBRE') as Estado,
+ alertLevel,
+ Date(T.Fecha) as Fecha_Simple,
+ T.Importe,
+ C.Descuento,
+ C.calidad,
+ C.Id_Cliente,
+ p.`name` provincia
+ FROM Clientes C
+ INNER JOIN
+
+ (
+
+ SELECT T.* , A.Vista, A.Agencia, s.`name` as state, alertLevel, tt3.Id_Trabajador AS workerId,
+
+ tt3.total as Importe,
+
+ 0 AS inacabable
+
+ -- (-1 < ifnull(order_id,-1)) as isbionic
+
+ FROM Tickets T
+ LEFT JOIN vn.ticketState ts on ts.ticket = T.Id_Ticket
+ LEFT JOIN vn2008.state s on s.id = ts.state
+
+ 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
+
+ LEFT JOIN Consignatarios co ON co.Id_Consigna = T.Id_Consigna
+ LEFT JOIN province p ON p.province_id = co.province_id
+
+ LEFT JOIN
+
+ (
+
+ SELECT TOTAL.Id_Cliente, ROUND(SUM(amount),2) as Riesgo FROM
+
+ (SELECT cl.Id_Cliente, amount FROM bi.customer_risk cr
+ INNER JOIN tmp.client_list cl ON cr.customer_id = cl.Id_Cliente
+
+ UNION ALL
+
+ SELECT t.Id_Cliente, tt.total FROM ticket_total tt
+ INNER JOIN Tickets t ON t.Id_Ticket = tt.ticket_id
+ INNER JOIN cr5 C ON C.Id_Cliente = t.Id_Cliente
+ WHERE t.Fecha BETWEEN dateStart AND maxDate
+ AND t.Factura is null
+
+ ) as TOTAL GROUP BY TOTAL.Id_Cliente
+
+
+ ) AS Peligros ON Peligros.Id_Cliente = C.Id_Cliente
+
+
+ ;
+
+ -- Actualizamos el Riesgo con los tickets futuros
+ set @cliente:= 0;
+ SET @riesgo := 0;
+
+ UPDATE Radartest SET Riesgo =
+ IF(@cliente <> @cliente:= Id_Cliente , - Importe + @riesgo:= - Riesgo + Importe , - Importe + @riesgo:= @riesgo + Importe)
+ order by Id_Cliente, Fecha_Simple DESC;
+
+
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.ticket_list;
+
+ CREATE TEMPORARY TABLE tmp.ticket_list
+ SELECT Id_Ticket, Id_Cliente FROM Radartest;
+
+ CALL prepare_client_list();
+ CALL production_buffer_problems;
+
+ UPDATE Radartest r
+ JOIN (
+ SELECT Id_Ticket, GROUP_CONCAT(problem) problem
+ FROM tmp.buffer_problems
+ GROUP BY Id_Ticket
+ ) p on p.Id_Ticket = r.Id_Ticket
+ SET r.problem = p.problem;
+
+
+
+ SELECT R.*, Riesgo + Credito as Risk , CodigoTrabajador
+ FROM Radartest R
+ INNER JOIN vn2008.Trabajadores trab on R.Id_Trabajador=trab.Id_Trabajador;
+
+ END IF;
+
+ DROP TEMPORARY TABLE IF EXISTS ticketRange;
+ DROP TABLE IF EXISTS subordinate;
+ DROP TEMPORARY TABLE IF EXISTS tmp.client_list;
+ DROP TEMPORARY TABLE IF EXISTS cr5;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `radar_lostcalls` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `radar_lostcalls`()
+BEGIN
+
+SELECT Averiguar_ComercialCliente(C.Id_Cliente, calldate) as Comercial, C.Cliente AS Cliente, A2.Telefono
+, A.Nombre as Destino, t3.* FROM
+
+( SELECT * FROM
+ (SELECT * FROM
+ ( SELECT dstchannel, disposition, calldate,src,dst,1 as missed, TIMESTAMPADD(SECOND,duration,calldate) as hangupdate,
+ TIMESTAMPADD(SECOND, (-billsec),TIMESTAMPADD(SECOND,duration,calldate) ) as answerdate,
+ duration, billsec FROM
+ (SELECT * FROM
+ (SELECT * FROM cdr WHERE calldate > timestampadd(day, -4,curdate()) ORDER BY calldate DESC ) t
+ GROUP BY src
+ ) cdr_sub
+ WHERE (dstchannel = '' or disposition <> 'ANSWERED' or lastapp = 'Playback') AND dstchannel <> 'killed'
+ AND src > 6000
+ AND calldate > TIMESTAMPADD(DAY,-4,CURDATE())
+ UNION ALL
+ SELECT dstchannel, disposition, calldate,dst, 0,0,calldate,calldate,0,0
+ FROM cdr
+ WHERE dst > 6000
+ AND calldate > TIMESTAMPADD(WEEK,-4,CURDATE())
+ ) t
+ ORDER BY calldate DESC
+ ) t2 GROUP BY src
+ HAVING missed
+ ORDER BY calldate DESC
+) t3
+
+LEFT JOIN v_Agenda2 A2 ON CAST(A2.Telefono AS SIGNED) = t3.src
+LEFT JOIN v_Agenda2 A ON CAST(A.Telefono AS SIGNED) = t3.dst
+LEFT JOIN Clientes C ON C.Id_Cliente = A2.Id AND A2.Tipo = 'C'
+;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `radar_negativos` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ call article_minacum(NULL,CURDATE(),intRANGE);
+
+ SELECT a.Id_Article, a.Article, sub.warehouse_id, p.`name` producer, a.Medida, a.Categoria
+ , w.name as Almacen, sum(IFNULL(amount,0)) as Negativo
+ FROM (SELECT item_id, warehouse_id, amount
+ FROM cache.stock
+ WHERE amount > 0
+ UNION ALL
+ SELECT article_id, warehouse_id, amount
+ FROM article_minacum
+ ) sub
+ JOIN warehouse w on w.id = warehouse_id
+ JOIN Articles a on a.Id_Article = item_id
+ LEFT JOIN producer p on p.producer_id = a.producer_id
+ JOIN Tipos t on t.tipo_id = a.tipo_id
+ JOIN reinos r on r.id = t.reino_id
+ WHERE w.tpv
+ AND t.tipo_id NOT IN (61,101,100,99, 180, 7, 21)
+ AND r.display <> 0
+ AND a.Id_Article NOT IN (95,98)
+ GROUP BY item_id, warehouse_id
+ HAVING negativo < 0;
+
+ DROP TEMPORARY TABLE IF EXISTS article_minacum;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `recalculator` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `recalculator`(vTicketId INT)
+BEGIN
+ DECLARE vWh INT;
+ DECLARE vDate DATE;
+ DECLARE vCustomerId INT;
+ DECLARE vServiFac INT;
+
+ SELECT warehouse_id, Fecha, Id_Cliente, IFNULL(Factura, 0) != 0 OR Etiquetasemitidas != 0
+ INTO vWh, vDate, vCustomerId, vServiFac
+ FROM Tickets
+ WHERE Id_Ticket = vTicketId;
+
+ IF NOT vServiFac
+ THEN
+ DROP TEMPORARY TABLE IF EXISTS item;
+
+ CREATE TEMPORARY TABLE item
+ (INDEX (id))
+ ENGINE = MEMORY
+ SELECT Id_Article id, Id_Movimiento
+ FROM Movimientos
+ WHERE Preciofijado = FALSE
+ AND Id_Ticket = vTicketId
+ AND (Id_Article < 82 OR Id_Article > 100);
+
+ CALL item_buy (vWh, vDate);
+ CALL item_buy_price (vCustomerId, vDate, vWh);
+
+ UPDATE Movimientos
+ JOIN item USING (Id_Movimiento)
+ SET Preu = price,
+ Descuento = discount;
+
+ SELECT * FROM item;
+
+ DROP TEMPORARY TABLE item;
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `recalculator_plus` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `recalculator_plus`(vTicketId INT)
+BEGIN
+ CALL recalculator (vTicketId);
+
+ CREATE TEMPORARY TABLE movement
+ ENGINE = MEMORY
+ SELECT Id_Movimiento, Id_Article, Preu, Descuento, Cantidad, ABS(Preciofijado) AS PrecioFijado
+ FROM Movimientos
+ WHERE Id_Ticket = vTicketId
+ AND Reservado = FALSE
+ AND Id_Article NOT BETWEEN 85 AND 100
+ AND Id_Movimiento NOT IN
+ (
+ SELECT Id_Movimiento FROM Movimientos
+ WHERE Id_Ticket = vTicketId
+ AND Reservado = FALSE
+ AND Id_Article NOT BETWEEN 71 AND 100
+ GROUP BY Id_Article, Preu, Descuento, ABS(PrecioFijado)
+ HAVING COUNT(*) = 1
+ UNION ALL
+ SELECT Id_Movimiento FROM movement_label
+ ) FOR UPDATE;
+
+ CREATE TEMPORARY TABLE movement_u
+ ENGINE = MEMORY
+ SELECT Id_Movimiento, Id_Article, Preu, Descuento, PrecioFijado, SUM(Cantidad) amount
+ FROM movement
+ GROUP BY Id_Article, Preu, Descuento, PrecioFijado;
+
+ UPDATE Movimientos
+ JOIN movement_u u USING(Id_Movimiento)
+ JOIN Tickets T ON T.Id_Ticket = vTicketId
+ SET Cantidad = amount;
+
+ DELETE movement FROM movement JOIN movement_u USING (Id_Movimiento);
+ DELETE Movimientos FROM Movimientos JOIN movement USING (Id_Movimiento);
+
+ DROP TEMPORARY TABLE movement;
+ DROP TEMPORARY TABLE movement_u;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `recibida_select` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `recibida_select`(IN recibida INT)
+BEGIN
+ DECLARE cta_proveed VARCHAR(10);
+ DECLARE cta_proveeda VARCHAR(10);
+ DECLARE v_num_recibida INT;
+ DECLARE dblRefRate,dblRefMin,dblRef DOUBLE;
+
+ DECLARE NEW_id,NEW_empresa_id,NEW_proveedor_id INT;
+ DECLARE NEW_serie VARCHAR(1);
+ DECLARE NEW_fecha DATE;
+ DECLARE NEW_num_recibida VARCHAR(10);
+ DECLARE NEW_sref VARCHAR(20);
+
+ SELECT id,empresa_id,proveedor_id,serie,fecha,num_recibida,sref
+ INTO NEW_id,NEW_empresa_id,NEW_proveedor_id, NEW_serie,NEW_fecha,NEW_num_recibida, NEW_sref
+ FROM recibida WHERE id = recibida;
+
+
+ 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 = recibida 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;
+
+
+SELECT a,NEW_fecha,subcta,contra,concepto,eurodebe,eurohaber,baseeuro,NEW_serie,NEW_sref,iva,
+ (SELECT CONCAT(NEW_serie,'/', LPAD(v_num_recibida,5,'0'))),l340,LRECT349,TIPOOPE,AUXILIAR,NEW_empresa_id
+ FROM
+
+ (SELECT MAX(ASIEN) + 1 as a FROM XDiario) t
+
+ INNER JOIN
+
+ (
+
+ SELECT *,NEW_serie 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(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______'
+ 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 ic.iva_tipo_id = it.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 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,
+
+ 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 ,4),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
+
+ ) 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',dblRefRate,1)* (re.percentage / 100),2),NULL ,IF( @a:=@a+1 ,NULL,NULL) ,0, 0 l340,0 LRECT349,' ' TIPOOPE,'' AUXILIAR,r.serie
+
+ 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',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
+
+ 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
+
+ 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
+
+ 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),
+ (IF(@cont<@a,
+ eurodebe,
+ ROUND(bi-@total,2)
+ ))
+ ,NULL)eurodebe,eurohaber,baseeuro,iva,
+ IF(@total:=@total+eurodebe ,0,0) l340,0 LRECT349,
+ IF(@cont:=@cont+1,'','') TIPOOPE,'*' AUXILIAR,serie FROM (
+
+ SELECT CONCAT('COMPRA FRA ',p.Proveedor) concepto,ic.codigo subcta,p.Cuenta,ic.iva,
+ red(sum(costefijo * Cantidad / sub1.costetotal * sub2.importe)*0.21) eurodebe,NULL eurohaber,
+ ROUND(sum(costefijo * Cantidad / sub1.costetotal * sub2.importe),2) baseeuro,ri.bi,r.serie,pa.CEE,p.pais_id ppais_id,p2.pais_id p2pais_id
+
+ 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
+
+ FROM recibida_intrastat ri
+
+ WHERE ri.recibida_id = NEW_id
+
+ ) 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
+
+ JOIN Proveedores p ON p.Id_Proveedor = e.Id_Proveedor
+
+ JOIN Paises pa ON p.pais_id = pa.Id
+
+ JOIN recibida_iva ri ON ri.recibida_id = re.awb_recibida
+
+ JOIN recibida_iva ri2 ON ri2.recibida_id = re.recibida_id
+
+ JOIN iva_codigo ic ON ic.id = ri2.iva_id
+
+ JOIN recibida r ON r.id = re.recibida_id
+
+ 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;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `recibida_select2` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `recibida_select2`(IN recibida INT)
+BEGIN
+ DECLARE cta_proveed VARCHAR(10);
+ DECLARE cta_proveeda VARCHAR(10);
+ DECLARE v_num_recibida INT;
+ DECLARE dblRefRate,dblRefMin,dblRef DOUBLE;
+
+ DECLARE NEW_id,NEW_empresa_id,NEW_proveedor_id INT;
+ DECLARE NEW_serie VARCHAR(1);
+ DECLARE NEW_fecha DATE;
+ DECLARE NEW_num_recibida VARCHAR(10);
+ DECLARE NEW_sref VARCHAR(20);
+
+ SELECT id,empresa_id,proveedor_id,serie,fecha,num_recibida,sref
+ INTO NEW_id,NEW_empresa_id,NEW_proveedor_id, NEW_serie,NEW_fecha,NEW_num_recibida, NEW_sref
+ FROM recibida WHERE id = recibida;
+
+
+ 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 = recibida 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;
+
+
+SELECT CONCAT('COMPRA FRA ',p.Proveedor) concepto,ic.codigo subcta,p.Cuenta,ic.iva,
+ red(sum(costefijo * Cantidad / sub1.costetotal * sub2.importe)*0.21) eurodebe,NULL eurohaber,
+ ROUND(sum(costefijo * Cantidad / sub1.costetotal * sub2.importe),2) baseeuro,ri.bi,r.serie,pa.CEE,p.pais_id ppais_id,p2.pais_id p2pais_id
+
+ FROM awb_recibida ar
+
+ left JOIN recibida_entrada re ON ar.recibida_id = re.awb_recibida
+
+ left JOIN Compres c ON c.Id_Entrada = re.Id_Entrada
+
+ left JOIN Articles a ON a.Id_Article = c.Id_Article
+
+ left JOIN (
+
+ SELECT a.Codintrastat, sum(c.costefijo * c.Cantidad) as costetotal
+
+ FROM Compres c
+
+ left JOIN Articles a ON a.Id_Article = c.Id_Article
+
+ left JOIN recibida_entrada re ON re.Id_Entrada = c.Id_Entrada
+
+ left JOIN awb_recibida ar ON ar.recibida_id = re.awb_recibida
+
+ left JOIN awb aw ON ar.awb_id = aw.id
+
+ WHERE ar.recibida_id = NEW_id AND re.percentage/*JGF 27/08/14*/
+
+ GROUP BY a.Codintrastat
+
+ ) sub1 USING(Codintrastat)
+
+ left JOIN (
+
+ SELECT Codintrastat,ri.importe
+
+ FROM recibida_intrastat ri
+
+ WHERE ri.recibida_id = NEW_id
+
+ ) 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
+
+ left JOIN Proveedores p ON p.Id_Proveedor = e.Id_Proveedor
+
+ left JOIN Paises pa ON p.pais_id = pa.Id
+
+ left JOIN recibida_iva ri ON ri.recibida_id = re.awb_recibida
+
+ left JOIN recibida_iva ri2 ON ri2.recibida_id = re.recibida_id
+
+ left JOIN iva_codigo ic ON ic.id = ri2.iva_id
+
+ left JOIN recibida r ON r.id = re.recibida_id
+
+ 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
+ GROUP BY p.Id_Proveedor;
+
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `recobro_credito` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `recobro_credito`()
+BEGIN
+
+INSERT INTO vn2008.daily_task_log(consulta) VALUES('recobro_credito');
+
+DROP TEMPORARY TABLE IF EXISTS clientes_credit;
+CREATE TEMPORARY TABLE clientes_credit
+SELECT Id_Cliente, if (Credito > Recobro ,Credito - Recobro,0) as newCredit
+from
+(
+SELECT r.Id_Cliente, r.amount as Recobro, timestampadd(DAY, period, UltimaFecha) as Deadline, sub2.amount as Credito
+FROM vn2008.recovery r
+join
+ (
+ select Id_Cliente, amount , odbc_date as UltimaFecha
+ from
+ (
+ select * from credit
+ order by odbc_date desc
+ ) sub
+ group by Id_Cliente
+ ) sub2 using(Id_Cliente)
+
+where dend is null or dend >= curdate()
+group by Id_Cliente
+having Deadline <= curdate()
+) sub3
+where Credito > 0;
+
+UPDATE Clientes
+JOIN
+clientes_credit using(Id_Cliente)
+SET Clientes.Credito = newCredit;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `reinvoice` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `reinvoice`(Id_Factura VARCHAR(15))
+BEGIN
+ DECLARE date_invoice DATE;
+ DECLARE customer_id INTEGER;
+ DECLARE serie CHAR(1);
+ DECLARE bi DOUBLE;
+ DECLARE bi_diff DOUBLE;
+ DECLARE base_max DOUBLE;
+ DECLARE day_vec INT;
+ DECLARE bi_r DOUBLE DEFAULT 0;
+ DECLARE bi_g DOUBLE DEFAULT 0;
+ DECLARE bi_n DOUBLE DEFAULT 0;
+ DECLARE iva_r DOUBLE DEFAULT 0;
+ DECLARE iva_g DOUBLE DEFAULT 0;
+ DECLARE re_r DOUBLE DEFAULT 0;
+ DECLARE re_g DOUBLE DEFAULT 0;
+ DECLARE dblImporte DOUBLE DEFAULT 0;
+ DECLARE intpais_id TINYINT DEFAULT 1;
+ DECLARE intFac INTEGER;
+
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ DROP TEMPORARY TABLE IF EXISTS `iva_base`;
+ CREATE TEMPORARY TABLE `iva_base`
+ (
+ `id` VARCHAR(3) NOT NULL,
+ `base` DOUBLE NOT NULL DEFAULT 0,
+ PRIMARY KEY (`id`)
+ )
+ ENGINE = MEMORY;
+
+ DROP TEMPORARY TABLE IF EXISTS `ticket_invoice`;
+ CREATE TEMPORARY TABLE `ticket_invoice`
+ (
+ `ticket_id` INT NOT NULL,
+ PRIMARY KEY (`ticket_id`)
+ )
+ ENGINE = MEMORY;
+
+ START TRANSACTION;
+
+ SELECT pais_id,Fecha,f.Id_Factura,Id_Cliente INTO intpais_id,date_invoice,Id_Factura,customer_id FROM Proveedores p
+ JOIN Facturas f ON p.Id_Proveedor = f.empresa_id
+ WHERE f.Id_Factura = Id_Factura;
+
+ 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
+ INSERT INTO iva_base (id) SELECT tipoiva FROM tblIVA;
+
+ UPDATE iva_base
+ INNER JOIN
+ (SELECT tipo, SUM(base) base
+ FROM
+ (SELECT t.tipo, red(m.Cantidad * m.Preu * (100 - Descuento) / 100) AS base
+ FROM
+ Movimientos m
+ INNER JOIN ticket_invoice ti ON m.Id_Ticket = ti.ticket_id
+ INNER JOIN (SELECT t.tipo, Id_Article
+ FROM
+ (SELECT
+ date, iva_codigo_id, ic.tipo, iva_group_id
+ FROM
+ iva_group_codigo gi
+ INNER JOIN iva_codigo ic ON gi.iva_codigo_id = ic.id
+ INNER JOIN iva_tipo itp ON itp.id = ic.iva_tipo_id
+ WHERE
+ date <= date_invoice
+ AND Id_Pais = intpais_id
+ ORDER BY date DESC) t
+ INNER JOIN Articles USING (iva_group_id)
+ GROUP BY Id_Article) t USING (Id_Article)) sub
+ GROUP BY tipo) iva_movement ON iva_base.id = iva_movement.tipo
+ SET
+ iva_base.base = iva_movement.base;
+
+ IF (serie = 'H' OR serie = 'V' OR serie = 'E' OR serie = 'X') THEN
+ SELECT SUM(base) into dblImporte from iva_base;
+ ELSE
+
+ SET bi_r = (SELECT base FROM iva_base WHERE id = 'R');
+
+ SET bi_g = (SELECT base FROM iva_base WHERE id = 'G');
+ SET bi_n = (SELECT base FROM iva_base WHERE id = '0');
+ SET iva_r = red(bi_r * (SELECT iva FROM iva_codigo INNER JOIN iva_tipo it ON it.id = iva_tipo_id
+ WHERE tipo = 'R' AND Id_Pais = intpais_id AND Fecha <= date_invoice and iva ORDER BY fecha DESC, recargo DESC LIMIT 1) / 100 );
+ SET iva_g = red(bi_g * (SELECT iva FROM iva_codigo INNER JOIN iva_tipo it ON it.id = iva_tipo_id
+ WHERE tipo = 'G' AND Id_Pais = intpais_id AND Fecha <= date_invoice and iva ORDER BY fecha DESC, recargo DESC LIMIT 1) / 100 );
+
+ IF (SELECT IF(RE = 0, FALSE, TRUE) FROM Clientes WHERE Clientes.Id_cliente = customer_id)
+ THEN
+ SET re_r = red(bi_r * (SELECT recargo FROM iva_codigo INNER JOIN iva_tipo it ON it.id = iva_tipo_id
+ WHERE tipo = 'R' AND Id_Pais = intpais_id AND Fecha <= date_invoice and iva ORDER BY fecha DESC, recargo DESC LIMIT 1) / 100 );
+ SET re_g = red(bi_g * (SELECT recargo FROM iva_codigo INNER JOIN iva_tipo it ON it.id = iva_tipo_id
+ WHERE tipo = 'G' AND Id_Pais = intpais_id AND Fecha <= date_invoice and iva ORDER BY fecha DESC, recargo DESC LIMIT 1) / 100 );
+ END IF;
+
+ SET dblImporte = bi_r + bi_g + bi_n + iva_r + iva_g + re_r + re_g ;
+ END IF;
+ END IF;
+
+ IF (SELECT SUM(base) FROM iva_base) != 0
+ THEN
+ UPDATE Facturas
+ SET
+ BI7 = bi_r,
+ BI16 = bi_g,
+ IVA7 = iva_r,
+ IVA16 = iva_g,
+ RE1 = re_r,
+ RE4 = re_g,
+ Importe = dblImporte
+ WHERE Facturas.Id_Factura = Id_Factura;
+ END IF;
+
+ DROP TEMPORARY TABLE `iva_base`;
+ DROP TEMPORARY TABLE `ticket_invoice`;
+
+ COMMIT;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `resumen_produccion` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `resumen_produccion`(IN datSTART DATE, IN datEND DATE)
+BEGIN
+
+DECLARE datENDFIN DATETIME;
+DECLARE datSTART_LY DATETIME;
+DECLARE datEND_LY DATETIME;
+
+SET datENDFIN = DAYEND(datEND);
+SET datSTART_LY = TIMESTAMPADD(YEAR,-1,datSTART);
+SET datSTART_LY = TIMESTAMPADD(DAY,-1,datSTART_LY);
+
+SET datEND_LY = TIMESTAMPADD(YEAR,-1,datEND);
+SET datEND_LY = TIMESTAMPADD(DAY,-1,datEND_LY);
+
+DROP TEMPORARY TABLE IF EXISTS tblRESUMEN;
+
+CREATE TEMPORARY TABLE tblRESUMEN
+ (Agencia VARCHAR(30),
+ Vista INT(2),
+ Dia DATE,
+ Tickets INT(4),
+ unidades INT(11),
+ m3 INT(6),
+ bultos INT(6),
+ linea INT(11),
+ almacen VARCHAR(25),
+ importe DOUBLE,
+ año INT
+);
+
+INSERT INTO tblRESUMEN
+
+select Agencia, Vista, Dia, count(Id_Ticket) as Tickets, sum(unidades) as unidades, sum(Volumen) / 1000000 as m3
+ , sum(Bul1) as bultos, sum(lineas) as linea, almacen, SUM(importe) as importe, año
+from
+(
+select Agencia, Vista, date(Fecha) as Dia, sum(Cantidad) as unidades , sum(Cantidad * cm3) as Volumen
+ ,sum(IF (M.Id_Article IN (71,68,83,79, 85,89,91,92,93), Cantidad, 0)) as Bul1
+ , Id_Ticket, count(*) as lineas, IFNULL(T.Bultos,0) as Bul2, w.name as almacen, SUM(Cantidad * Preu * (100 - M.Descuento) / 100) importe, year(T.Fecha) as año
+ from Movimientos M
+ inner join Tickets T USING(Id_Ticket)
+ join warehouse w on T.warehouse_id = w.id
+ join bi.rotacion r on r.Id_Article = M.Id_Article and r.warehouse_id = T.warehouse_id
+ inner join Clientes C USING(Id_Cliente)
+ inner join Articles A on A.Id_Article = M.Id_Article
+ inner join Tipos TP USING(tipo_id)
+ join reinos re on re.id = TP.reino_id
+ inner join Agencias USING(Id_Agencia)
+ where (Fecha BETWEEN datSTART AND datENDFIN or Fecha BETWEEN datSTART_LY AND datEND_LY)
+ and re.display <> 0
+ and (invoice or Id_Cliente = 31) and C.Id_Cliente NOT IN (2066,2067,2068)
+ group by Id_Ticket) sub
+
+group by Agencia, Vista, Dia, almacen, año
+;
+
+SET lc_time_names = 'es_ES';
+
+SELECT *,
+ CASE Vista
+ WHEN 1 THEN 'Agencias'
+ WHEN 2 THEN 'Rutas'
+ WHEN 3 THEN 'Mercado'
+ ELSE 'Otras'
+ END as Sector
+ ,dayname(Dia) as Nombre_Dia
+ , week
+ , year
+
+
+ FROM tblRESUMEN
+ JOIN time t on t.date = Dia;
+
+DROP TEMPORARY TABLE IF EXISTS tblRESUMEN;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `risk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ SET v_date = IFNULL(v_date, CURDATE());
+ SET v_date_end = TIMESTAMP(v_date, '23:59:59');
+
+ DROP TEMPORARY TABLE IF EXISTS ticket_tmp;
+ CREATE TEMPORARY TABLE ticket_tmp
+ ENGINE = MEMORY
+ SELECT Id_Ticket ticket_id FROM Tickets t
+ WHERE (v_customer IS NULL OR Id_Cliente = v_customer)
+ AND t.Factura IS NULL
+ AND t.Fecha BETWEEN v_date_start AND v_date_end;
+
+ CALL ticket_total();
+
+
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.risk;
+ CREATE TEMPORARY TABLE tmp.risk
+ ENGINE = MEMORY
+ SELECT Id_Cliente, SUM(amount) risk
+ FROM Clientes c
+ JOIN (
+ SELECT customer_id, SUM(amount) amount
+ FROM bi.customer_risk
+ WHERE (v_customer IS NULL OR customer_id = v_customer)
+ GROUP BY customer_id
+ UNION ALL
+ SELECT Id_Cliente, SUM(Entregado)
+ FROM Recibos
+ WHERE (v_customer IS NULL OR Id_Cliente = v_customer)
+ AND 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
+ 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 (v_customer IS NULL OR t.customer_id = v_customer)
+ AND 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;
+
+ DROP TEMPORARY TABLE
+ ticket_total,
+ ticket_tmp;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `risk_vs_client_list` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ SET maxRiskDate = IFNULL(maxRiskDate, CURDATE());
+ SET endingDate = TIMESTAMP(maxRiskDate, '23:59:59');
+
+
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.client_list_2;
+ CREATE TEMPORARY TABLE tmp.client_list_2
+ (PRIMARY KEY (Id_Cliente))
+ ENGINE = MEMORY
+ SELECT *
+ FROM tmp.client_list;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.client_list_3;
+ CREATE TEMPORARY TABLE tmp.client_list_3
+ (PRIMARY KEY (Id_Cliente))
+ ENGINE = MEMORY
+ SELECT *
+ FROM tmp.client_list;
+
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.tickets_sin_facturar;
+ CREATE TEMPORARY TABLE tmp.tickets_sin_facturar
+ (PRIMARY KEY (Id_Cliente))
+ ENGINE = MEMORY
+ SELECT t.Id_Cliente, floor(IF(VIES, 1, 1.1) * sum(Cantidad * Preu * (100 - Descuento) / 100)) as total
+ FROM Movimientos m
+ JOIN Tickets t on m.Id_Ticket = t.Id_Ticket
+ JOIN tmp.client_list c on c.Id_Cliente = t.Id_Cliente
+ JOIN vn.client cl ON cl.id = t.Id_Cliente
+ WHERE Factura IS NULL
+ AND Fecha BETWEEN startingDate AND endingDate
+ GROUP BY t.Id_Cliente;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.risk;
+ CREATE TEMPORARY TABLE tmp.risk
+ (PRIMARY KEY (Id_Cliente))
+ ENGINE = MEMORY
+ SELECT Id_Cliente, SUM(amount) risk, sum(saldo) saldo
+ FROM Clientes c
+ JOIN (
+ SELECT customer_id, SUM(amount) amount,SUM(amount) saldo
+ FROM bi.customer_risk
+ JOIN tmp.client_list on Id_Cliente = customer_id
+ GROUP BY customer_id
+ UNION ALL
+ SELECT Id_Cliente, SUM(Entregado),SUM(Entregado)
+ FROM Recibos
+ JOIN tmp.client_list_2 using(Id_Cliente)
+ WHERE Fechacobro > endingDate
+ GROUP BY Id_Cliente
+ UNION ALL
+ SELECT Id_Cliente, total,0
+ FROM tmp.tickets_sin_facturar
+ UNION ALL
+ SELECT t.customer_id, CAST(-SUM(t.amount) / 100 AS DECIMAL(10,2)), CAST(-SUM(t.amount) / 100 AS DECIMAL(10,2))
+ FROM hedera.tpv_transaction t
+ JOIN tmp.client_list_3 on Id_Cliente = customer_id
+ 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;
+
+ DELETE r.*
+ FROM tmp.risk r
+ JOIN vn2008.Clientes c on c.Id_Cliente = r.Id_Cliente
+ JOIN vn2008.pay_met pm on pm.id = c.pay_met_id
+ WHERE IFNULL(r.saldo,0) < 10
+ AND r.risk <= MAX_RISK_ALLOWED
+ AND pm.`name` = 'TARJETA';
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `risk_vs_client_listbeta` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ SET maxRiskDate = IFNULL(maxRiskDate, CURDATE());
+ SET endingDate = TIMESTAMP(maxRiskDate, '23:59:59');
+
+
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.client_list_2;
+ CREATE TEMPORARY TABLE tmp.client_list_2
+ (PRIMARY KEY (Id_Cliente))
+ ENGINE = MEMORY
+ SELECT *
+ FROM tmp.client_list;
+ select 1;
+ DROP TEMPORARY TABLE IF EXISTS tmp.client_list_3;
+ CREATE TEMPORARY TABLE tmp.client_list_3
+ (PRIMARY KEY (Id_Cliente))
+ ENGINE = MEMORY
+ SELECT *
+ FROM tmp.client_list;
+
+ select 2;
+ DROP TEMPORARY TABLE IF EXISTS tmp.tickets_sin_facturar;
+ CREATE TEMPORARY TABLE tmp.tickets_sin_facturar
+ (PRIMARY KEY (Id_Cliente))
+ ENGINE = MEMORY
+ SELECT t.Id_Cliente, Cantidad as total
+ FROM Movimientos m
+ JOIN Tickets t on m.Id_Ticket = t.Id_Ticket
+ JOIN tmp.client_list c on c.Id_Cliente = t.Id_Cliente
+ WHERE Factura IS NULL
+ AND Fecha BETWEEN startingDate AND endingDate
+ GROUP BY t.Id_Cliente;
+select 3;
+ DROP TEMPORARY TABLE IF EXISTS tmp.risk;
+ CREATE TEMPORARY TABLE tmp.risk
+ (PRIMARY KEY (Id_Cliente))
+ ENGINE = MEMORY
+ SELECT Id_Cliente, SUM(amount) risk, sum(saldo) saldo
+ FROM Clientes c
+ JOIN (
+ SELECT customer_id, SUM(amount) amount,SUM(amount) saldo
+ FROM bi.customer_risk
+ JOIN tmp.client_list on Id_Cliente = customer_id
+ GROUP BY customer_id
+ UNION ALL
+ SELECT Id_Cliente, SUM(Entregado),SUM(Entregado)
+ FROM Recibos
+ JOIN tmp.client_list_2 using(Id_Cliente)
+ WHERE Fechacobro > endingDate
+ GROUP BY Id_Cliente
+ UNION ALL
+ SELECT Id_Cliente, total,0
+ FROM tmp.tickets_sin_facturar
+ UNION ALL
+ SELECT t.customer_id, CAST(-SUM(t.amount) / 100 AS DECIMAL(10,2)), CAST(-SUM(t.amount) / 100 AS DECIMAL(10,2))
+ FROM hedera.tpv_transaction t
+ JOIN tmp.client_list_3 on Id_Cliente = customer_id
+ 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;
+select 4;
+ DELETE r.*
+ FROM tmp.risk r
+ JOIN vn2008.Clientes c on c.Id_Cliente = r.Id_Cliente
+ JOIN vn2008.pay_met pm on pm.id = c.pay_met_id
+ WHERE IFNULL(r.saldo,0) < 10
+ AND r.risk <= MAX_RISK_ALLOWED
+ AND pm.`name` = 'TARJETA';
+select 5;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `Rutas_Graph` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `Rutas_Graph`()
+BEGIN
+
+DECLARE datSTART DATE DEFAULT TIMESTAMPADD(DAY,-3,CURDATE());
+DECLARE datEND DATE;
+
+SET datEND = vn2008.dayend(timestampadd(day,3,CURDATE()));
+
+CALL item_last_buy_(NULL,datSTART);
+
+Select cast(sum(Cantidad * vn2008.cm3_unidad(buy_id)) / 1000000 as DECIMAL(5,1)) as m3, Agencia, w.name as Almacen, date(R.Fecha) as Fecha_Ruta
+ from vn2008.Rutas R
+ JOIN vn2008.Agencias a on a.Id_Agencia = R.Id_Agencia
+ join vn2008.Tickets t using(Id_Ruta)
+ JOIN vn2008.warehouse w on w.id = t.warehouse_id
+ join vn2008.Movimientos m using(Id_Ticket)
+ JOIN cache.last_buy b ON m.Id_Article = b.item_id AND t.warehouse_id = b.warehouse_id
+ where R.Fecha between datSTART and datEND
+ group by Agencia, Almacen, Fecha_Ruta
+
+UNION ALL
+Select cast(sum(Cantidad * vn2008.cm3_unidad(buy_id)) / 1000000 as decimal(5,1)) as m3 ,Agencia, w.name as Almacen, timestampadd(day,1,t.Fecha) Fecha
+ from vn2008.Tickets t
+ join warehouse w on w.id = warehouse_id
+ join Agencias a using(Id_Agencia)
+ join vn2008.Movimientos m using(Id_Ticket)
+ JOIN cache.last_buy b ON m.Id_Article = b.item_id AND t.warehouse_id = b.warehouse_id
+ LEFT JOIN warehouse_pickup wp ON wp.agency_id = t.Id_Agencia and wp.warehouse_id = t.warehouse_id
+ JOIN warehouse_pickup is_rec ON is_rec.agency_id = t.Id_Agencia
+ 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
+ from Compres c JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada
+ JOIN travel t ON t.id = e.travel_id
+ JOIN Agencias a on a.Id_Agencia = t.agency_id
+ JOIN warehouse w on w.id = t.warehouse_id_out
+ JOIN warehouse_pickup wp ON wp.warehouse_id = t.warehouse_id_out
+ where t.shipment between TIMESTAMPADD(DAY,-1,datSTART) and TIMESTAMPADD(DAY,-1,datEND)
+ group by a.Agencia, Almacen, Fecha;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `saldos_bancos` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `saldos_bancos`()
+BEGIN
+
+declare datEND DATE;
+
+SET datEND = CURDATE() + INTERVAL 2 MONTH;
+
+drop table if exists bi.saldos_bancos;
+
+
+create table bi.saldos_bancos
+
+ select Semana, Mes, Año, Entrada
+ , Salida
+ , @saldo := IF(@banco = Id_Banco and @emp = empresa_id, @saldo,0) + ifnull(Entrada,0)-ifnull(Salida,0) as Saldo
+ , @banco := Id_Banco as Id_Banco
+ , @emp := empresa_id as empresa_id
+ , 'NUL' as Empresa
+
+ from
+ (
+ select * from
+ (
+ select t.week as Semana, t.year as Año, t.month as Mes, b.Id_Banco, sum(Entrada) as Entrada, sum(Salida) as Salida, @banco := 0, @saldo := 0, @emp := 0, e.id as empresa_id
+ from time t
+ join Bancos b on b.entity_id = 1
+ join empresa e on e.id IN (791,442)
+ left join
+ (
+ Select Id_Banco, Entrada, Salida, Cajafecha,empresa_id
+ from Cajas
+ where Cajafecha >= '2015-01-01'
+ and Serie = 'MB'
+ 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*/
+ union all
+ Select Id_Banco, Entregado, NULL, greatest(Fechacobro,TIMESTAMPADD(DAY,1,CURDATE())),empresa_id
+ from Recibos
+ where Fechacobro between CURDATE() and datEND
+ union all
+ Select IFNULL(Id_Banco,9999), Importe, NULL, Fecha,empresa_id
+ from Saldos_Prevision
+ where Fecha between CURDATE() and datEND
+ ) sub2 on t.date = sub2.Cajafecha and b.Id_Banco = sub2.Id_Banco and e.id = sub2.empresa_id
+
+ where t.date between '2015-01-01' and datEND
+ and b.cash != 1
+ group by b.Id_Banco, e.id, t.year, t.week
+ ) sub3
+ order by Id_Banco, empresa_id, Año, Mes, Semana
+ ) sub
+;
+
+update bi.saldos_bancos s
+join empresa e on e.id = s.empresa_id
+set s.Empresa = abbreviation;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `saldos_bancos_pordia` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `saldos_bancos_pordia`()
+BEGIN
+
+declare datEND DATE;
+
+SET datEND = CURDATE() + INTERVAL 2 MONTH;
+
+drop table if exists bi.saldos_bancos_pordia;
+
+
+create table bi.saldos_bancos_pordia
+
+ select Fecha, Entrada
+ , Salida
+ , @saldo := IF(@banco = Id_Banco and @emp = empresa_id, @saldo,0) + ifnull(Entrada,0)-ifnull(Salida,0) as Saldo
+ , @banco := Id_Banco as Id_Banco
+ , @emp := empresa_id as empresa_id
+ , 'NUL' as Empresa
+ , Año, Mes, Dia
+
+ from
+ (
+ select * from
+ (
+ select t.day as Dia, t.month as Mes,t.year as Año, t.date as Fecha, b.Id_Banco, sum(Entrada) as Entrada, sum(Salida) as Salida, @banco := 0, @saldo := 0, @emp := 0, e.id as empresa_id
+ from time t
+ join Bancos b on b.entity_id = 1
+ join empresa e on e.id IN (791,442)
+ left join
+ (
+ Select Id_Banco, Entrada, Salida, Cajafecha,empresa_id
+ from Cajas
+ where Cajafecha >= '2015-01-01'
+ and Serie = 'MB'
+ 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*/
+ 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
+ union all
+ Select IFNULL(Id_Banco,9999), Importe, NULL, Fecha,empresa_id
+ from Saldos_Prevision
+ where Fecha between CURDATE() and datEND
+ ) sub2 on t.date = sub2.Cajafecha and b.Id_Banco = sub2.Id_Banco and e.id = sub2.empresa_id
+
+ where t.date between '2015-01-01' and datEND
+ and b.cash != 1
+ group by b.Id_Banco, e.id, t.date
+ ) sub3
+ order by Id_Banco, empresa_id, Fecha
+ ) sub
+;
+
+update bi.saldos_bancos_pordia s
+join empresa e on e.id = s.empresa_id
+set s.Empresa = abbreviation;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `scan_rutas_view` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+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
+(
+select r.Fecha, Id_Ruta, r.Id_Trabajador, r.Id_Agencia, Id_Vehiculo, sum(m3) m3, sum(Bultos) Bultos, warehouse_id
+from Rutas r
+join Tickets t using(Id_Ruta)
+where r.Fecha >= timestampadd(day,-3,curdate())
+group by Id_Ruta, warehouse_id
+
+union all
+
+select ifnull(landing,Fecha), dayofmonth(Fecha) * 100000 + Id_Agencia ruta , count(*) as m3, Id_Agencia, null, null, sum(Bultos), warehouse_id
+from Tickets
+where Id_Ruta is null
+and Fecha between timestampadd(day,-3,curdate()) and dayend(curdate())
+group by ruta, warehouse_id
+) sub
+left join Vehiculos using(Id_Vehiculo)
+left join Agencias using(Id_Agencia)
+left join Trabajadores using(Id_Trabajador)
+left join warehouse w on w.id = sub.warehouse_id;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `sendTicket` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `sendTicket`(vDate DATE)
+BEGIN
+ IF vDate IS NULL THEN
+ SET vDate = AYER();
+ END IF;
+
+ INSERT INTO mail (`to`, `reply_to`, subject,text)
+ SELECT IFNULL(c.`e-mail`,CONCAT(u.name,'@verdnatura.es')),
+ CONCAT(u.name,'@verdnatura.es'),
+ CONCAT('Albaran ',Id_Ticket),
+CONCAT('Estimado cliente:
+
+Aquí tiene el enlace a su albarán.
+
+https://www.verdnatura.es/#!form=ecomerce/ticket&ticket=',Id_Ticket,
+'
+
+Estamos en periodo de pruebas para este nuevo método. En el caso de que tenga problemas para acceder a su albarán, responda a este correo explicando los detalles.
+
+Estamos trabajando para mejorar el acceso a sus documentos.Le agradecemos su colaboración.
+
+Reciba un muy cordial saludo,
+
+',tr.nombre, ' ', tr.apellidos,'
+',u.name,'@verdnatura.es
+
+Dpto. Comercial')
+ FROM Tickets t
+ JOIN Clientes c USING(Id_Cliente)
+ JOIN Trabajadores tr ON tr.Id_Trabajador = c.Id_Trabajador
+ JOIN account.user u ON tr.user_id = u.id
+ WHERE vDate = DATE(t.Fecha);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `splitAnthuriums2016` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `splitAnthuriums2016`()
+BEGIN
+
+DECLARE vStartingDate DATETIME DEFAULT '2016-10-18';
+DECLARE vEndingDate DATETIME DEFAULT '2016-10-31 23:59:00';
+DECLARE vMyTicket INT;
+DECLARE vNewTicket INT;
+DECLARE SILLA_PCA INT DEFAULT 44;
+DECLARE done INT DEFAULT 0;
+
+DECLARE rs CURSOR FOR
+SELECT DISTINCT Id_Ticket
+FROM Movimientos m
+JOIN Tickets t using(Id_Ticket)
+JOIN Articles a using(Id_Article)
+JOIN Tipos tp using(tipo_id)
+WHERE t.Fecha between vStartingDate and vEndingDate
+AND warehouse_id = 1
+AND
+ (
+ Id_Tipo = 'ANT'
+ OR
+ ( Id_Article = 100
+ AND
+ Concepte LIKE 'ANT%')
+ );
+
+DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
+
+OPEN rs;
+
+FETCH rs INTO vMyTicket;
+
+
+
+WHILE NOT done DO
+
+
+ INSERT INTO Tickets(Id_Cliente
+ , warehouse_id
+ , Fecha
+ , Alias
+ , Id_Consigna
+ , Id_Trabajador
+ , Id_Ruta
+ , empresa_id
+ , Id_Agencia
+ , landing)
+ SELECT Id_Cliente
+ , SILLA_PCA as warehouse_id
+ , Fecha
+ , Alias
+ , Id_Consigna
+ , Id_Trabajador
+ , Id_Ruta
+ , empresa_id
+ , Id_Agencia
+ , landing
+ FROM Tickets
+ WHERE Id_Ticket = vMyTicket;
+
+ 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)
+ SET Id_Ticket = vNewTicket
+ WHERE Id_Ticket = vMyTicket
+ AND (
+ Id_Tipo = 'ANT'
+ OR
+ ( m.Id_Article = 100
+ AND
+ Concepte LIKE 'ANT%')
+ );
+
+ FETCH rs INTO vMyTicket;
+
+END WHILE;
+
+CLOSE rs;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `splitHeliconias2016` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `splitHeliconias2016`()
+BEGIN
+
+DECLARE vStartingDate DATETIME DEFAULT '2016-10-18';
+DECLARE vEndingDate DATETIME DEFAULT '2016-10-31 23:59:00';
+DECLARE vMyTicket INT;
+DECLARE vNewTicket INT;
+DECLARE SILLA_PCA INT DEFAULT 44;
+DECLARE done INT DEFAULT 0;
+
+DECLARE rs CURSOR FOR
+SELECT DISTINCT Id_Ticket
+FROM Movimientos m
+JOIN Compres c ON Id_Entrada IN (100461, 100929) AND c.Id_Article = m.Id_Article
+JOIN Tickets t using(Id_Ticket)
+WHERE t.Fecha between vStartingDate and vEndingDate
+AND warehouse_id = 1;
+
+DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
+
+OPEN rs;
+
+FETCH rs INTO vMyTicket;
+
+
+
+WHILE NOT done DO
+
+
+ INSERT INTO Tickets(Id_Cliente
+ , warehouse_id
+ , Fecha
+ , Alias
+ , Id_Consigna
+ , Id_Trabajador
+ , Id_Ruta
+ , empresa_id
+ , Id_Agencia
+ , landing)
+ SELECT Id_Cliente
+ , SILLA_PCA as warehouse_id
+ , Fecha
+ , Alias
+ , Id_Consigna
+ , Id_Trabajador
+ , Id_Ruta
+ , empresa_id
+ , Id_Agencia
+ , landing
+ FROM Tickets
+ WHERE Id_Ticket = vMyTicket;
+
+ 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
+ WHERE Id_Ticket = vMyTicket
+ ;
+
+ FETCH rs INTO vMyTicket;
+
+END WHILE;
+
+CLOSE rs;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `splitOrquideas2016` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `splitOrquideas2016`()
+BEGIN
+
+DECLARE vStartingDate DATETIME DEFAULT '2016-10-18';
+DECLARE vEndingDate DATETIME DEFAULT '2016-10-31 23:59:00';
+DECLARE vMyTicket INT;
+DECLARE vNewTicket INT;
+DECLARE SILLA_PCA INT DEFAULT 44;
+DECLARE done INT DEFAULT 0;
+
+DECLARE rs CURSOR FOR
+SELECT DISTINCT Id_Ticket
+FROM Movimientos m
+JOIN Tickets t using(Id_Ticket)
+JOIN Articles a using(Id_Article)
+JOIN Tipos tp using(tipo_id)
+WHERE t.Fecha between vStartingDate and vEndingDate
+AND warehouse_id = 1
+AND
+ (
+ Id_Tipo = 'CYM'
+ OR
+ Id_Tipo = 'ORQ'
+ OR
+ ( Id_Article = 100
+ AND
+ Concepte LIKE 'CYM%')
+ );
+
+DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
+
+OPEN rs;
+
+FETCH rs INTO vMyTicket;
+
+
+
+WHILE NOT done DO
+
+
+ INSERT INTO Tickets(Id_Cliente
+ , warehouse_id
+ , Fecha
+ , Alias
+ , Id_Consigna
+ , Id_Trabajador
+ , Id_Ruta
+ , empresa_id
+ , Id_Agencia
+ , landing)
+ SELECT Id_Cliente
+ , SILLA_PCA as warehouse_id
+ , Fecha
+ , Alias
+ , Id_Consigna
+ , Id_Trabajador
+ , Id_Ruta
+ , empresa_id
+ , Id_Agencia
+ , landing
+ FROM Tickets
+ WHERE Id_Ticket = vMyTicket;
+
+ 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)
+ SET Id_Ticket = vNewTicket
+ WHERE Id_Ticket = vMyTicket
+ AND (
+ Id_Tipo = 'CYM'
+ OR
+ Id_Tipo = 'ORQ'
+ OR
+ ( Id_Article = 100
+ AND
+ Concepte LIKE 'CYM%')
+ );
+
+ FETCH rs INTO vMyTicket;
+
+END WHILE;
+
+CLOSE rs;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `splitRamos2016` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `splitRamos2016`()
+BEGIN
+
+DECLARE vStartingDate DATETIME DEFAULT '2016-10-21';
+DECLARE vEndingDate DATETIME DEFAULT '2016-10-31 23:59:00';
+DECLARE vMyTicket INT;
+DECLARE vNewTicket INT;
+DECLARE SILLA_PCA INT DEFAULT 44;
+DECLARE done INT DEFAULT 0;
+DECLARE vLinesNotToChange INT;
+
+DECLARE rs CURSOR FOR
+SELECT DISTINCT Id_Ticket
+ FROM Movimientos m
+ JOIN
+ (
+ SELECT DISTINCT Id_Article
+ FROM Compres c
+ JOIN Entradas e on c.Id_Entrada = e.Id_Entrada
+ JOIN travel tr on tr.id = travel_id
+ WHERE landing between vStartingDate and vEndingDate
+ AND warehouse_id = 44
+ AND Id_Proveedor = 850
+ ) c on c.Id_Article = m.Id_Article
+ JOIN Tickets t using(Id_Ticket)
+ WHERE t.Fecha between vStartingDate and vEndingDate
+ AND warehouse_id = 1
+ ;
+
+DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
+
+OPEN rs;
+
+FETCH rs INTO vMyTicket;
+
+
+
+WHILE NOT done DO
+
+ SELECT COUNT(*)
+ INTO vLinesNotToChange
+ FROM Movimientos m
+ LEFT JOIN
+ (
+ SELECT DISTINCT Id_Article
+ FROM Compres c
+ JOIN Entradas e on c.Id_Entrada = e.Id_Entrada
+ JOIN travel tr on tr.id = travel_id
+ WHERE landing between vStartingDate and vEndingDate
+ AND warehouse_id = 44
+ AND Id_Proveedor = 850
+ ) c on c.Id_Article = m.Id_Article
+ WHERE Id_Ticket = vMyTicket
+ AND c.Id_Article IS NULL;
+
+ IF vLinesNotToChange THEN
+
+ INSERT INTO Tickets(Id_Cliente
+ , warehouse_id
+ , Fecha
+ , Alias
+ , Id_Consigna
+ , Id_Trabajador
+ , Id_Ruta
+ , empresa_id
+ , Id_Agencia
+ , landing)
+ SELECT Id_Cliente
+ , SILLA_PCA as warehouse_id
+ , Fecha
+ , Alias
+ , Id_Consigna
+ , Id_Trabajador
+ , Id_Ruta
+ , empresa_id
+ , Id_Agencia
+ , landing
+ FROM Tickets
+ WHERE Id_Ticket = vMyTicket;
+
+ SELECT LAST_INSERT_ID() INTO vNewTicket;
+
+ -- SELECT vMyTicket, vNewTicket; SET done = 1;
+ UPDATE Movimientos m
+ JOIN
+ (
+ SELECT DISTINCT Id_Article
+ FROM Compres c
+ JOIN Entradas e on c.Id_Entrada = e.Id_Entrada
+ JOIN travel tr on tr.id = travel_id
+ WHERE landing between vStartingDate and vEndingDate
+ AND warehouse_id = 44
+ AND Id_Proveedor = 850
+ ) c on c.Id_Article = m.Id_Article
+ SET Id_Ticket = vNewTicket
+ WHERE Id_Ticket = vMyTicket;
+
+ ELSE
+
+ UPDATE Tickets
+ SET warehouse_id = 44
+ WHERE Id_Ticket = vMyTicket;
+
+ END IF;
+
+
+ FETCH rs INTO vMyTicket;
+
+END WHILE;
+
+CLOSE rs;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `sql_query` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `sql_query`(IN v_sql TEXT)
+BEGIN
+ SET @v_sql = v_sql;
+
+ PREPARE stmt FROM @v_sql;
+ EXECUTE stmt;
+ DEALLOCATE PREPARE stmt;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `subordinate` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `subordinate`( IN idWORKER INTEGER,IN CasoBase BOOL)
+BEGIN
+ DECLARE auxWorker INT;
+ DECLARE vCompanyId INT;
+
+ SELECT empresa_id
+ INTO vCompanyId
+ FROM Trabajadores
+ WHERE Id_Trabajador = idWORKER;
+
+ IF vCompanyId = 1381 THEN -- ORNAMENTALES
+
+ DROP TABLE IF EXISTS subordinate;
+ CREATE TABLE subordinate
+ (INDEX (Id_Trabajador)) ENGINE = MEMORY
+ SELECT Id_Trabajador,TRUE visited,0 boss
+ FROM Trabajadores
+ WHERE empresa_id = vCompanyId;
+
+ 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 ;
+ DROP TABLE IF EXISTS subordinate;
+ CREATE TABLE subordinate
+ (INDEX (Id_Trabajador)) ENGINE = MEMORY
+ SELECT idWORKER Id_Trabajador,TRUE visited,0 boss;
+ END IF;
+
+ INSERT INTO subordinate
+ SELECT Id_Trabajador,0,idWORKER FROM Trabajadores WHERE boss = idWORKER;
+ IF (SELECT COUNT(*) FROM subordinate WHERE visited = 0 AND idWORKER = boss LIMIT 1) > 0 THEN
+ SELECT Id_Trabajador into auxWorker FROM subordinate WHERE visited = 0 AND idWORKER = boss LIMIT 1;
+ REPEAT
+ CALL subordinate(auxWorker,FALSE);
+ UPDATE subordinate SET visited = TRUE WHERE Id_Trabajador = auxWorker;
+ SET auxWorker = 0;
+ SELECT Id_Trabajador into auxWorker FROM subordinate WHERE visited = 0 AND idWORKER = boss LIMIT 1;
+ UNTIL auxWorker = 0
+ 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 ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `subordinate2` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `subordinate2`( IN idWORKER INTEGER,IN CasoBase BOOL)
+BEGIN
+ DECLARE auxWorker INT;
+ DECLARE vCompanyId INT;
+
+ SELECT empresa_id
+ INTO vCompanyId
+ FROM Trabajadores
+ WHERE Id_Trabajador = idWORKER;
+
+ IF vCompanyId = 1381 THEN -- ORNAMENTALES
+
+ DROP TABLE IF EXISTS subordinate;
+ CREATE TABLE subordinate
+ (INDEX (Id_Trabajador)) ENGINE = MEMORY
+ SELECT Id_Trabajador,TRUE visited,0 boss
+ FROM Trabajadores
+ WHERE empresa_id = vCompanyId;
+
+ 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 ;
+ DROP TABLE IF EXISTS subordinate;
+ CREATE TABLE subordinate
+ (INDEX (Id_Trabajador)) ENGINE = MEMORY
+ SELECT idWORKER Id_Trabajador,TRUE visited,0 boss;
+ END IF;
+
+ INSERT INTO subordinate
+ SELECT Id_Trabajador,0,idWORKER FROM Trabajadores WHERE boss = idWORKER;
+ IF (SELECT COUNT(*) FROM subordinate WHERE visited = 0 AND idWORKER = boss LIMIT 1) > 0 THEN
+ SELECT Id_Trabajador into auxWorker FROM subordinate WHERE visited = 0 AND idWORKER = boss LIMIT 1;
+ REPEAT
+ CALL subordinate(auxWorker,FALSE);
+ UPDATE subordinate SET visited = TRUE WHERE Id_Trabajador = auxWorker;
+ SET auxWorker = 0;
+ SELECT Id_Trabajador into auxWorker FROM subordinate WHERE visited = 0 AND idWORKER = boss LIMIT 1;
+ UNTIL auxWorker = 0
+ END REPEAT;
+ END IF;
+
+ /*
+ end if;
+ */
+
+ END IF;
+
+ IF idWorker = 2 THEN
+ INSERT INTO subordinate(Id_Trabajador) VALUES (2);
+ END IF;
+
+ /*
+ IF CasoBase THEN
+ SELECT * FROM subordinate;
+ END IF;*/
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `suppliersDebt` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `suppliersDebt`()
+BEGIN
+
+ SELECT abbreviation as Empresa, Proveedor, Euros, empresa_id, proveedor_id
+ FROM
+ (
+ SELECT empresa_id, proveedor_id, cast(sum(Euros) AS DECIMAL(10,2)) as Euros
+ FROM
+ (
+ SELECT empresa_id, proveedor_id, -1 * cantidad as Euros
+ FROM recibida_vencimiento rv
+ INNER JOIN recibida r ON r.id = rv.recibida_id
+ WHERE r.fecha > '2014-12-31'
+
+ UNION ALL
+
+ SELECT empresa_id, id_proveedor, importe
+ FROM pago
+ WHERE fecha > '2014-12-31'
+ ) sub
+ GROUP BY empresa_id, proveedor_id
+ ) sub2
+ JOIN Proveedores p ON p.Id_Proveedor = sub2.proveedor_id
+ JOIN empresa e ON e.id = sub2.empresa_id
+ ;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `tarjetas_credito_0` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `tarjetas_credito_0`()
+BEGIN
+
+ DECLARE MyMaxID INT;
+
+ SELECT MAX(id) FROM credit INTO MyMaxID;
+
+ UPDATE Clientes
+ SET Credito = 0
+ WHERE pay_met_id = 5 -- TARJETA
+ ;
+
+ UPDATE credit
+ SET Id_Trabajador = 20
+ WHERE id > MyMaxID;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `tickets_in_a_week` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `tickets_in_a_week`(IN intWEEK INT(2), IN intYEAR INT(4), IN idART INT(11), IN intWH INT(2))
+BEGIN
+ DECLARE period INT(6) DEFAULT intYEAR * 100 + intWEEK;
+ 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;
+
+ SELECT T.Fecha,
+ T.Id_Ticket,
+ M.Cantidad,
+ M.Id_Article,
+ T.Alias,
+ M.PrecioFijado,
+ M.Preu,
+ M.Id_Movimiento,
+ T.warehouse_id,
+ W.name,
+ ticket_state(Factura, PedidoImpreso, Etiquetasemitidas, blocked) as Estado,
+ M.Descuento
+ FROM Movimientos M
+ INNER JOIN Tickets T using(Id_Ticket)
+ LEFT JOIN warehouse W ON W.id = T.warehouse_id
+ WHERE M.Id_Article = idART AND T.Fecha BETWEEN datINI and datFIN
+ AND IF(intWH = 0, W.comisionantes, intWH =T.warehouse_id)
+ ORDER BY T.Fecha, T.Id_Ticket;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `tickets_in_a_week_by_type` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `tickets_in_a_week_by_type`(IN intWEEK INT(2), IN intYEAR INT(4), IN idART INT(11), IN intWH INT(2))
+BEGIN
+
+ DECLARE intTIPO INT;
+ DECLARE period INT(6) DEFAULT intYEAR * 100 + intWEEK;
+ DECLARE datINI DATE;
+ DECLARE datFIN DATE;
+
+ 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;
+
+ SELECT T.Fecha,
+ T.Id_Ticket,
+ M.Cantidad,
+ M.Id_Article,
+ T.Alias,
+ M.PrecioFijado,
+ M.Preu,
+ M.Id_Movimiento,
+ T.warehouse_id,
+ W.name,
+ ticket_state(Factura, PedidoImpreso, Etiquetasemitidas, blocked) as Estado,
+ M.Descuento
+ FROM Movimientos M
+ JOIN Articles A using(Id_Article)
+ INNER JOIN Tickets T ON M.Id_Ticket = T.Id_Ticket
+ LEFT JOIN warehouse W ON W.id = T.warehouse_id
+ WHERE A.tipo_id = intTIPO
+ AND T.Fecha between datINI and datFIN
+ AND IF(intWH = 0, W.comisionantes, intWH =T.warehouse_id)
+ ORDER BY T.Fecha, T.Id_Ticket;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `tickets_week_joined` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `tickets_week_joined`(IN intWEEK INT(2), IN intYEAR INT(4), IN idART INT(11), IN intWhJoined INT(2))
+BEGIN
+
+
+ DECLARE datSTART date;
+ DECLARE datEND date;
+
+
+ SET datSTART = TIMESTAMPADD(YEAR,intYEAR,'0000-01-01');
+ SET datSTART = TIMESTAMPADD(WEEK, intWEEK-1,datSTART);
+ SET datSTART = TIMESTAMPADD(DAY,-1 * WEEKDAY(datSTART),datSTART);
+
+
+
+-- Año 2014
+/*
+IF datSTART = '2013-12-31' THEN
+
+ SET datSTART = '2013-12-30' ;
+
+END IF;
+*/
+
+
+ SET datEND = TIMESTAMPADD(DAY,7,datSTART);
+
+
+
+ SELECT T.Fecha,
+ T.Id_Ticket,
+ M.Cantidad,
+ M.Id_Article,
+ T.Alias,
+ M.PrecioFijado,
+ M.Preu,
+ M.Id_Movimiento,
+ T.warehouse_id,
+ wa.alias `name`,
+ ticket_state(Factura, PedidoImpreso, Etiquetasemitidas, blocked) as Estado,
+ M.Descuento
+ FROM Movimientos M
+ JOIN Tickets T ON M.Id_Ticket = T.Id_Ticket
+ JOIN warehouse_joined wj ON wj.warehouse_id = T.warehouse_id
+ JOIN warehouse_alias wa ON wa.warehouse_alias_id = wj.warehouse_alias_id
+ WHERE M.Id_Article = idART
+ AND T.Fecha between datSTART and datEND
+ AND intWhJoined IN (0,wj.warehouse_alias_id)
+ ORDER BY T.Fecha, T.Id_Ticket;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `tickets_week_type_joined` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `tickets_week_type_joined`(IN intWEEK INT(2), IN intYEAR INT(4), IN idART INT(11), IN intWhJoined INT(2))
+BEGIN
+
+ DECLARE intTIPO INT;
+ DECLARE datSTART date;
+ DECLARE datEND date;
+
+ SELECT tipo_id INTO intTIPO FROM Articles WHERE Id_Article = idART;
+
+ SET datSTART = TIMESTAMPADD(YEAR,intYEAR,'0000-01-01');
+ SET datSTART = TIMESTAMPADD(WEEK, intWEEK-1,datSTART);
+ SET datSTART = TIMESTAMPADD(DAY,-1 * WEEKDAY(datSTART),datSTART);
+
+ SET datEND = TIMESTAMPADD(DAY,7,datSTART);
+
+
+
+ SELECT T.Fecha,
+ T.Id_Ticket,
+ M.Cantidad,
+ M.Id_Article,
+ T.Alias,
+ M.PrecioFijado,
+ M.Preu,
+ M.Id_Movimiento,
+ T.warehouse_id,
+ wa.alias `name`,
+ ticket_state(Factura, PedidoImpreso, Etiquetasemitidas, blocked) as Estado,
+ M.Descuento
+ FROM Movimientos M
+ JOIN Articles A using(Id_Article)
+ INNER JOIN Tickets T ON M.Id_Ticket = T.Id_Ticket
+ JOIN warehouse_joined wj ON wj.warehouse_id = T.warehouse_id
+ JOIN warehouse_alias wa ON wa.warehouse_alias_id = wj.warehouse_alias_id
+ WHERE A.tipo_id = intTIPO
+ AND T.Fecha between datSTART and datEND
+ AND intWhJoined IN (0,wj.warehouse_alias_id)
+ ORDER BY T.Fecha, T.Id_Ticket;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticket_canarias` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ticket_canarias`(IN v_entrada BIGINT, IN v_ticket BIGINT)
+BEGIN
+
+
+set @w := 1;
+set @tr := 0;
+set @e := v_entrada;
+set @t := v_ticket;
+
+select id, IF(warehouse_id_out = 13, @w, warehouse_id_out) into @tr, @w from travel join Entradas on id = travel_id where Id_Entrada = @e;
+
+update travel tr join Entradas e on tr.id = e.travel_id set warehouse_id_out = 13 where Id_Entrada = @e and warehouse_id_out <> 13;
+
+update Tickets set warehouse_id = @w where Id_Ticket = @t;
+
+REPLACE order_Tickets(order_id, Id_Ticket) VALUES(48,@t);
+
+delete mc.* from Movimientos_componentes mc join Movimientos m using(Id_Movimiento) where Id_Ticket = @t;
+
+insert into Movimientos_componentes(Id_Movimiento, Id_Componente, Valor)
+select Id_Movimiento, 28, nz(Costefijo)
+from Movimientos m
+join Compres c on Id_Entrada = @e and c.Id_Article = m.Id_Article
+where Id_Ticket = @t
+on DUPLICATE KEY UPDATE Valor = nz(Costefijo) ;
+
+insert into Movimientos_componentes(Id_Movimiento, Id_Componente, Valor)
+select Id_Movimiento, 29, Preu - nz(Costefijo)
+from Movimientos m
+join Compres c on Id_Entrada = @e and c.Id_Article = m.Id_Article
+where Id_Ticket = @t
+on DUPLICATE KEY UPDATE Valor = Preu - nz(Costefijo) ;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticket_componentes` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ticket_componentes`(IN idTICKET BIGINT)
+BEGIN
+
+SET @a:=0;
+
+SELECT IF(@a = Id_Movimiento, NULL, Concepte) as Concepte
+ ,IF(@a = Id_Movimiento, NULL, Cantidad) as Cantidad
+ ,IF(@a = Id_Movimiento, NULL, Id_Article) as Id_Article
+ , @a:= Id_Movimiento as IdM
+ , Id_Article as IdA
+ , Componente
+ , Valor
+ , Importe
+ , base
+ , margen
+FROM
+(
+SELECT m.Id_Movimiento
+ , m.Concepte
+ , tc.Componente
+ , m.Cantidad
+ , mc.Valor
+ , round(m.Cantidad * mc.Valor,3) as Importe
+ , Id_Article
+ , base
+ , margen
+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
+INNER JOIN bi.tarifa_componentes_series tcs using(tarifa_componentes_series_id)
+WHERE m.Id_Ticket = idTICKET
+ORDER BY Id_Movimiento
+) sub;
+
+
+
+
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `Ticket_from_Entry` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `Ticket_from_Entry`(IN IdEntrada INT(11), IN IdCliente INT(6), IN IdEmpresa INT(4), IN buying_quote DOUBLE, IN Ratio DOUBLE)
+BEGIN
+
+ DECLARE idTICKET INT(11);
+
+ INSERT INTO Tickets(Id_Cliente, warehouse_id, Fecha, Alias, Id_Agencia, Id_Consigna, Id_Trabajador, empresa_id, Etiquetasemitidas, Localizacion)
+ SELECT IdCliente, 13, shipment, Consignatario, TR.agency_id, Id_Consigna, 20, IdEmpresa, TRUE, IdEntrada
+ FROM Entradas E
+ 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;
+
+ INSERT INTO Movimientos(Id_Ticket, Id_Article, Concepte, Cantidad, Preu, PrecioFijado)
+ SELECT idTICKET, Id_Article, Article, round(Cantidad * IF(Cantidad > round(1+ (1/buying_quote),0),buying_quote,1), 0), ROUND(Costefijo * Ratio,2), TRUE
+ FROM Compres c
+ JOIN Articles a using(Id_Article)
+ JOIN Tipos t on t.tipo_id = a.tipo_id
+ JOIN reinos r on r.id = t.reino_id
+ WHERE Id_Entrada = idEntrada
+ AND r.display <> 0
+ AND Cantidad * buying_quote > 1;
+
+ SELECT idTICKET;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `Ticket_from_Entry_cursor` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `Ticket_from_Entry_cursor`(IN IdEmpresa INt(4), IN IdCliente INT(5), IN buying_quote DOUBLE, IN Ratio DOUBLE)
+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
+JOIN travel TR ON TR.id = E.travel_id
+WHERE shipment BETWEEN '2013-04-01' AND '2013-04-30'
+AND warehouse_id = 17
+and warehouse_id_out = 1;
+
+
+
+DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
+
+OPEN cursor_entradas;
+
+REPEAT
+
+ FETCH cursor_entradas INTO IdEntrada;
+
+ CALL Ticket_from_Entry(IdEntrada, IdCliente, IdEmpresa, buying_quote, Ratio);
+
+
+UNTIL done END REPEAT;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticket_iva` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ BEGIN
+ DROP TEMPORARY TABLE IF EXISTS iva_group;
+ DROP TEMPORARY TABLE IF EXISTS iva_tax;
+ END;
+
+ SIGNAL clean;
+ DROP TEMPORARY TABLE IF EXISTS ticket_iva;
+
+ 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))
+ ENGINE = MEMORY
+ SELECT * FROM (
+ SELECT Id_Pais, iva_group_id, c.tipo
+ FROM iva_group_codigo g
+ JOIN iva_codigo c ON g.iva_codigo_id = c.id
+ JOIN iva_tipo t ON t.id = c.iva_tipo_id
+ WHERE date <= billing_date
+ ORDER BY date DESC
+ ) 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))
+ ENGINE = MEMORY
+ SELECT * FROM (
+ 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
+ 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))
+ ENGINE = MEMORY
+ SELECT ticket_id, b.tipo, bi, IF(has_iva, red(bi * iva), 0) iva, IF(has_re, red(bi * i.re), 0) re
+ FROM (
+ SELECT ticket_id, g.Id_Pais, g.tipo
+ ,SUM(red(m.Cantidad * m.Preu * (100 - m.Descuento) / 100)) AS bi
+ ,NOT(VIES AND p.pais_id <> c.Id_Pais) AS has_iva
+ ,RE != FALSE AS has_re
+ FROM ticket_tmp i
+ JOIN Tickets t ON t.Id_ticket = i.ticket_id
+ JOIN Clientes c ON c.Id_Cliente = t.Id_Cliente
+ JOIN Proveedores p ON p.Id_Proveedor = t.empresa_id
+ JOIN Movimientos m ON m.Id_Ticket = i.ticket_id
+ JOIN Articles a USING(Id_Article)
+ JOIN iva_group g ON g.Id_Pais = p.pais_id AND g.iva_group_id = a.iva_group_id
+ GROUP BY ticket_id, tipo
+ ) b
+ JOIN iva_tax i ON i.Id_Pais = b.Id_Pais AND i.tipo = b.tipo;
+
+ SIGNAL clean;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticket_locator` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ticket_locator`(IN date_ DATETIME,IN wh_ INT, IN days TINYINT)
+BEGIN
+ DECLARE DATEFEC DATE DEFAULT CURDATE();
+ DECLARE v_date_start DATETIME DEFAULT TIMESTAMPADD(MONTH, -2, CURDATE());
+ DECLARE v_date_end DATETIME DEFAULT TIMESTAMP(DATEFEC,'23:59:59');
+ DECLARE v_date_future DATETIME DEFAULT TIMESTAMPADD(DAY,days,v_date_end);
+
+ 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
+ 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_total2;
+ CREATE TEMPORARY TABLE `ticket_total2`
+ ENGINE = MEMORY
+ SELECT t.*,s.`order` state_order
+ 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.alert_level,0) <= 3
+ )
+ 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,state_order,
+ 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,''));
+
+
+ -- 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
+ 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;
+ DROP TEMPORARY TABLE IF EXISTS tmp.risk;
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticket_locatorbeta` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ticket_locatorbeta`(IN date_ DATETIME,IN wh_ INT, IN days TINYINT)
+BEGIN
+ DECLARE DATEFEC DATE DEFAULT CURDATE();
+ DECLARE v_date_start DATETIME DEFAULT TIMESTAMPADD(MONTH, -2, CURDATE());
+ DECLARE v_date_end DATETIME DEFAULT TIMESTAMP(DATEFEC,'23:59:59');
+ DECLARE v_date_future DATETIME DEFAULT TIMESTAMPADD(DAY,days,v_date_end);
+
+ 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
+ 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_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
+ 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))*/
+ /*
+ 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;
+ DROP TEMPORARY TABLE IF EXISTS tmp.risk;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticket_locator_experimental` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ticket_locator_experimental`(IN date_ DATETIME,IN wh_ INT, IN days TINYINT)
+BEGIN
+ DECLARE DATEFEC DATE DEFAULT CURDATE();
+ DECLARE v_date_start DATETIME DEFAULT TIMESTAMPADD(MONTH, -2, CURDATE());
+ DECLARE v_date_end DATETIME DEFAULT TIMESTAMP(DATEFEC,'23:59:59');
+ DECLARE v_date_future DATETIME DEFAULT TIMESTAMPADD(DAY,days,v_date_end);
+ DECLARE timeSTART DATETIME DEFAULT NOW();
+
+ 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
+ (INDEX idx USING HASH (ticket_id))
+ ENGINE = MEMORY
+ SELECT m.Id_Ticket as ticket_id, red(SUM(Cantidad * Preu * (100 - Descuento)/100)) AS total
+ FROM Movimientos m
+ JOIN Tickets t using(Id_Ticket)
+ WHERE t.Factura IS NULL
+ AND t.Fecha BETWEEN v_date_start AND v_date_future
+ GROUP BY ticket_id;
+
+
+
+ SELECT TIMEDIFF(NOW(), timeSTART), '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 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_
+ WHERE t1.Fecha BETWEEN TIMESTAMPADD(DAY,-5,DATE(date_)) AND TIMESTAMPADD(DAY,days,DATE(date_))
+ AND t1.Anotadoencaja = FALSE
+ AND t1.Etiquetasemitidas = FALSE
+ AND e.ticket_id IS NULL
+ AND IFNULL(aw.Vista,a.Vista) > 0
+ AND t1.warehouse_id = wh_;
+
+ SELECT TIMEDIFF(NOW(), timeSTART), 'TICKET_TOTAL2';
+
+ 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;
+
+ SELECT TIMEDIFF(NOW(), timeSTART), 'RISK';
+
+
+ CREATE TEMPORARY TABLE `Locator`
+ ENGINE = MEMORY
+ SELECT Congelado, Credito, risk Riesgo, Greuge, T.*,ticket_state(T.factura_id, T.PedidoImpreso, T.Etiquetasemitidas, T.Blocked) AS Estado,
+ Codigotrabajador, DATE(T.Fecha) AS Fecha_Simple, Averiguar_ComercialCliente_IdTicket(T.Id_Ticket) AS Comercial,C.calidad
+ 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 Trabajadores Tb ON Tb.Id_Trabajador = T.Id_Trabajador
+ LEFT JOIN tmp.risk as Peligros USING(Id_Cliente)
+ LEFT JOIN
+ (
+ SELECT Id_Cliente, SUM(Importe) AS Greuge FROM Greuges
+ GROUP BY Id_Cliente
+ ) AS Agravios USING(Id_Cliente);
+
+ SELECT TIMEDIFF(NOW(), timeSTART), 'LOCATOR';
+ALTER TABLE `Locator` ADD PRIMARY KEY(Id_Ticket);
+
+ SELECT TIMEDIFF(NOW(), timeSTART), 'LOCATOR INDEX';
+
+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,''));
+
+ 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
+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_;
+
+ SELECT TIMEDIFF(NOW(), timeSTART), 'ENTRADAS';
+-- TICKET PTE RECOGIDA
+INSERT INTO `Locator`(Fecha_Simple
+ , Id_Ticket
+ , Agencia
+ , Id_Cliente
+ , Alias
+ , PedidoImpreso
+ , CodigoTrabajador
+ , Fecha
+ , Estado
+ , Consignatario
+ , Vista
+ , PROVINCIA
+ , Riesgo
+ , Comercial
+ ,calidad
+ ,Bultos)
+
+SELECT date(t.Fecha)
+ , t.Id_Ticket
+ , a.Agencia
+ , t.Id_Cliente
+ , t.Alias
+ , t.PedidoImpreso
+ , UCASE(LEFT(w_out.name,5)) as CodigoTrabajador -- es el almacen de origen
+ , t.Fecha
+ , 0 as Estado
+ , t.Alias
+ ,3
+ , w.name
+ , NULL
+ ,Averiguar_ComercialCliente_IdTicket(t.Id_Ticket) AS Comercial
+ ,c.calidad
+ ,t.Bultos
+FROM Tickets t
+JOIN Clientes c using(Id_Cliente)
+JOIN warehouse w_out on w_out.id = t.warehouse_id
+JOIN warehouse w ON w.id = wh_
+JOIN Agencias a using(Id_Agencia)
+JOIN warehouse_pickup wp on wp.agency_id = t.Id_Agencia and wp.warehouse_id = wh_
+JOIN
+ (select Id_Ticket, state_id from
+ (
+ select Id_Ticket, odbc_date, state_id
+ from vncontrol.inter
+ where odbc_date >= timestampadd(day,-3,curdate())
+ order by odbc_date desc, state_id desc
+ ) sub
+ group by Id_Ticket
+ having state_id = 15 -- Pendiente de entrega
+ ) sub2 using(Id_Ticket);
+
+ SELECT TIMEDIFF(NOW(), timeSTART), 'PTE RECOGIDA';
+
+DROP TEMPORARY TABLE IF EXISTS ticket_tmp;
+DROP TEMPORARY TABLE IF EXISTS ticket_total;
+DROP TEMPORARY TABLE IF EXISTS ticket_total2;
+DROP TEMPORARY TABLE IF EXISTS tmp.risk;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticket_new` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ticket_new`(
+ IN idC INT
+ , IN newFEC DATE
+ , IN idWH INT
+ , IN idUSER INT
+ , IN idEMP INT
+ , IN idCON INT
+ , IN intTIPO INT
+ , IN idRUTA INT
+ , 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);
+
+ INSERT INTO Tickets (
+ Id_Cliente,
+ Fecha,
+ Id_Consigna,
+ Id_Trabajador,
+ Id_Agencia,
+ Alias,
+ Etiquetasemitidas,
+ Firmado,
+ warehouse_id,
+ Id_Ruta,
+ empresa_id,
+ landing)
+ SELECT
+ IdC,
+ newFEC,
+ Id_Consigna,
+ idUSER,
+ IF(intTIPO,intTIPO,Id_Agencia),
+ consignatario,
+ boolaux,
+ boolaux,
+ idWH,
+ IF(idRUTA,idRuta,NULL),
+ idEMP,
+ datLANDING
+ FROM Consignatarios c
+ INNER JOIN Agencias a USING(Id_Agencia)
+ WHERE IF(IdCON, Id_Consigna = IdCON, Predeterminada != 0)
+ AND Id_Cliente = idC
+ LIMIT 1;
+
+ SELECT LAST_INSERT_ID() INTO newTICKET;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticket_new_complet` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ticket_new_complet`(
+ IN idC INT
+ , IN newFEC DATE
+ , IN idWH INT
+ , IN idUSER INT
+ , IN idEMP INT
+ , IN idCON INT
+ , IN intTIPO INT
+ , IN idRUTA INT
+ , OUT newTICKET INT)
+BEGIN
+-- DEPRECATED usar ticketCreate
+ DECLARE boolaux TINYINT;
+
+
+ SET boolaux = If(IdC = 200 Or IdC = 400 Or intTIPO = 23, True, False);
+
+ INSERT INTO Tickets (
+ Id_Cliente,
+ Fecha,
+ Id_Consigna,
+ Id_Trabajador,
+ Id_Agencia,
+ Alias,
+ Etiquetasemitidas,
+ Firmado,
+ warehouse_id,
+ Id_Ruta,
+ empresa_id)
+ SELECT
+ IdC,
+ newFEC,
+ Id_Consigna,
+ idUSER,
+ IF(intTIPO,intTIPO,Id_Agencia),
+ consignatario,
+ boolaux,
+ boolaux,
+ idWH,
+ IF(idRUTA,idRuta,NULL),
+ idEMP
+ FROM Consignatarios c
+ INNER JOIN Agencias a USING(Id_Agencia)
+ WHERE IF(IdCON, Id_Consigna = IdCON, Predeterminada != 0)
+ AND Id_Cliente = idC
+ LIMIT 1;
+
+ SELECT LAST_INSERT_ID() INTO newTICKET;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticket_portes_cobrados` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ticket_portes_cobrados`(IN idTICKET BIGINT)
+BEGIN
+
+SELECT m.Id_Article, m.Concepte, m.Cantidad, mc.Valor, round(m.Cantidad * mc.Valor,2) as Porte
+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
+
+
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticket_portes_estimados` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ticket_portes_estimados`(IN vTicketId BIGINT)
+BEGIN
+
+SELECT
+ TICKET_FREIGHT(vTicketId) AS Porte_Volumen,
+ SUM(CAST(es.shipping_charge AS DECIMAL (10 , 2 ))) AS Porte_Bultos,
+ IFNULL(is_volumetric,0) AS is_volumetric
+FROM
+ vn2008.v_expeditions_shipping_charge2 es
+JOIN
+ vn2008.Tickets t on es.Id_Ticket = t.Id_Ticket
+LEFT JOIN
+ vn2008.Rutas r on r.Id_Ruta = t.Id_Ruta
+LEFT JOIN
+ vn2008.Agencias a on a.Id_Agencia = r.Id_Agencia
+WHERE
+ es.Id_Ticket = vTicketId;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticket_total` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ CALL ticket_iva (NULL);
+
+ CREATE TEMPORARY TABLE ticket_total
+ (INDEX idx USING HASH (ticket_id))
+ ENGINE = MEMORY
+ SELECT ticket_id, red(SUM(bi + iva + re)) AS total
+ FROM ticket_iva GROUP BY ticket_id;
+
+ DROP TEMPORARY TABLE ticket_iva;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticket_volumen` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ticket_volumen`(IN idT INT)
+BEGIN
+ DECLARE intWh INTEGER;
+ DECLARE datFecha DATE;
+
+ DROP TEMPORARY TABLE IF EXISTS ticket_volumen;
+ SELECT warehouse_id, Fecha INTO intWh,datFecha FROM Tickets WHERE Id_Ticket = idT;
+
+ CALL item_last_buy_(intWh,datFecha);
+
+ CREATE TEMPORARY TABLE IF NOT EXISTS ticket_volumen ENGINE MEMORY
+ SELECT Id_Article,Cantidad, Concepte, VolUd as m3_uni, Volumen as m3, @m3:= @m3 + ifnull(Volumen,0) as m3_total
+ FROM
+ (
+ SELECT round(cm3(Id_Compra)/1000000/Packing,3) as VolUd ,M.Cantidad,round(M.Cantidad * cm3(Id_Compra)/1000000/Packing,3) as Volumen,
+ M.Id_Article, Concepte, @m3:= 0, @vol:=0, Id_Agencia
+ FROM Movimientos M
+ JOIN t_item_last_buy b on M.Id_Article = b.item_id
+ JOIN Compres C ON C.Id_Compra = b.buy_id
+ JOIN Tickets T on T.Id_Ticket = M.Id_Ticket
+ WHERE M.Id_Ticket = idT
+ ) sub
+ JOIN Agencias a using(Id_Agencia);
+
+ DROP TEMPORARY TABLE t_item_last_buy;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `top_seller` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `top_seller`()
+BEGIN
+
+ drop table if exists top_sellers_min;
+ create temporary table top_sellers_min ENGINE = MEMORY
+ select a.Id_Article , tip.reino_id as Reino, count(m.Id_Article) as contados
+ from Movimientos m
+ inner join Tickets t
+ on m.Id_Ticket = t.Id_Ticket
+ inner join Articles a
+ on a.Id_Article = m.Id_Article
+ inner join Tipos tip
+ on a.tipo_id = tip.tipo_id
+ inner join reinos r
+ on r.id = tip.reino_id
+ where t.Fecha between timestampadd(day,-7,curdate()) and curdate()
+ group by m.Id_Article;
+
+ drop table if exists top_seller;
+ create temporary table top_seller ENGINE = MEMORY
+ select a.Article, tmp.Id_Article , a.Foto as foto, a.tipo_id as Id_Tipo,
+ tmp.Reino, r.reino as ReinoNombre, tip.Tipo as Tipo, tmp.contados
+ from top_sellers_min tmp
+ inner join Articles a
+ on a.Id_Article = tmp.Id_Article
+ inner join Tipos tip
+ on a.tipo_id = tip.tipo_id
+ inner join reinos r
+ on r.id = tmp.Reino
+ where tmp.Reino = 1
+ order by contados desc
+ limit 5;
+
+ insert into top_seller
+ select
+ a.Article, tmp.Id_Article , a.Foto as foto, a.tipo_id as Id_Tipo,
+ tmp.Reino, r.reino as ReinoNombre, tip.Tipo as Tipo, tmp.contados
+ from top_sellers_min tmp
+ inner join Articles a
+ on a.Id_Article = tmp.Id_Article
+ inner join Tipos tip
+ on a.tipo_id = tip.tipo_id
+ inner join reinos r
+ on r.id = tmp.Reino
+ where tmp.Reino = 2
+ order by contados desc
+ limit 5;
+
+ insert into top_seller
+ select
+ a.Article, tmp.Id_Article , a.Foto as foto, a.tipo_id as Id_Tipo,
+ tmp.Reino, r.reino as ReinoNombre, tip.Tipo as Tipo, tmp.contados
+ from top_sellers_min tmp
+ inner join Articles a
+ on a.Id_Article = tmp.Id_Article
+ inner join Tipos tip
+ on a.tipo_id = tip.tipo_id
+ inner join reinos r
+ on r.id = tmp.Reino
+ where tmp.Reino = 3
+ order by contados desc
+ limit 5;
+
+ insert into top_seller
+ select
+ a.Article, tmp.Id_Article , a.Foto as foto, a.tipo_id as Id_Tipo,
+ tmp.Reino, r.reino as ReinoNombre, tip.Tipo as Tipo, tmp.contados
+ from top_sellers_min tmp
+ inner join Articles a
+ on a.Id_Article = tmp.Id_Article
+ inner join Tipos tip
+ on a.tipo_id = tip.tipo_id
+ inner join reinos r
+ on r.id = tmp.Reino
+ where tmp.Reino = 4
+ order by contados desc
+ limit 5;
+
+ insert into top_seller
+ select
+ a.Article, tmp.Id_Article , a.Foto as foto, a.tipo_id as Id_Tipo,
+ tmp.Reino, r.reino as ReinoNombre, tip.Tipo as Tipo, tmp.contados
+ from top_sellers_min tmp
+ inner join Articles a
+ on a.Id_Article = tmp.Id_Article
+ inner join Tipos tip
+ on a.tipo_id = tip.tipo_id
+ inner join reinos r
+ on r.id = tmp.Reino
+ where tmp.Reino = 5
+ order by contados desc
+ limit 5;
+
+ insert into top_seller
+ select
+ a.Article, tmp.Id_Article , a.Foto as foto, a.tipo_id as Id_Tipo,
+ tmp.Reino, r.reino as ReinoNombre, tip.Tipo as Tipo, tmp.contados
+ from top_sellers_min tmp
+ inner join Articles a
+ on a.Id_Article = tmp.Id_Article
+ inner join Tipos tip
+ on a.tipo_id = tip.tipo_id
+ inner join reinos r
+ on r.id = tmp.Reino
+ where tmp.Reino = 7
+ order by contados desc
+ limit 5;
+
+ drop table if exists top_sellers_min;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `Trabuque` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `Trabuque`(IN intIDTICKET BIGINT, IN dblINCREMENTO DOUBLE )
+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;
+DECLARE dblAUMENTO DOUBLE DEFAULT 1;
+
+
+SELECT SUM(Cantidad * Preu * (100 - Descuento) / 100)
+INTO dblBASE_INICIAL
+FROM Movimientos
+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
+
+
+
+ WHILE (dblBASE_FINAL > dblBASE_INICIAL + dblINCREMENTO) or (dblAUMENTO < 0 ) DO
+
+ SET dblAUMENTO = dblAUMENTO - 0.01;
+
+ SELECT SUM(IF(@cantidad:= ROUND(dblAUMENTO * Cantidad),@cantidad,1) * Preu * (100 - Descuento) / 100)
+ INTO dblBASE_FINAL
+ FROM Movimientos
+ WHERE Id_Ticket = intIDTICKET;
+
+ END WHILE;
+
+ELSE
+
+ WHILE dblBASE_FINAL < dblBASE_INICIAL + dblINCREMENTO DO
+
+ SET dblAUMENTO = dblAUMENTO + 0.01;
+
+ SELECT SUM(IF(@cantidad:= ROUND(dblAUMENTO * Cantidad),@cantidad,1) * Preu * (100 - Descuento) / 100)
+ INTO dblBASE_FINAL
+ FROM Movimientos
+ WHERE Id_Ticket = intIDTICKET;
+
+ END WHILE;
+
+END IF;
+
+UPDATE Movimientos
+SET Cantidad = IF(@cantidad:= ROUND(dblAUMENTO * Cantidad),@cantidad,1)
+WHERE Id_Ticket = intIDTICKET;
+
+SELECT tipoiva
+ , ROUND(SUM(Cantidad * Preu * (100 - Descuento) / 100),2) as Base
+ , ROUND(ROUND(SUM(Cantidad * Preu * (100 - Descuento) / 100),2) * iva / 100,2) as Cuota
+FROM Movimientos M
+INNER JOIN Articles A USING(Id_Article)
+INNER JOIN tblIVA USING(tipoiva)
+WHERE Id_Ticket = intIDTICKET
+GROUP BY tipoiva;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `traslado` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `traslado`(IN i_entrada INTEGER)
+BEGIN
+ DECLARE dateShipment DATE;
+ DECLARE dateLanding DATE;
+ DECLARE warehouseShipment INTEGER;
+ DECLARE warehouseLanding INTEGER;
+ DECLARE v_calc_available INTEGER;
+ DECLARE v_calc_visible INTEGER;
+
+
+ SELECT shipment, landing, warehouse_id_out, warehouse_id
+ INTO dateShipment, dateLanding, warehouseShipment, warehouseLanding
+ FROM travel t JOIN Entradas e ON t.id = e.travel_id
+ WHERE Id_Entrada = i_entrada;
+
+ CALL buy_tarifas_table(i_entrada);
+
+ -- Traslado en almacen origen
+
+ DROP TEMPORARY TABLE IF EXISTS buy_edi_temp;
+
+ CREATE TEMPORARY TABLE buy_edi_temp
+ (KEY (Id_Article)) ENGINE = MEMORY
+
+ SELECT *
+ FROM (SELECT c.Id_Article, c.Id_Compra
+ FROM Compres c INNER JOIN Entradas e USING(Id_Entrada)
+ INNER JOIN travel t ON t.id = e.travel_id
+ WHERE t.landing BETWEEN date_inv() AND dateShipment
+ AND c.Novincular = FALSE
+ AND c.Tarifa2 >= 0
+ ORDER BY (warehouseShipment = t.warehouse_id) DESC, t.landing DESC) t
+ GROUP BY Id_Article;
+
+ IF dateShipment >= CURDATE() THEN
+
+ CALL 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
+ SELECT item_id, visible,0 available FROM `cache`.visible WHERE calc_id = v_calc_visible;
+ INSERT INTO tmp_item(item_id, available)
+ SELECT a.item_id, a.available FROM availableTraslate a
+ ON DUPLICATE KEY UPDATE available = a.available;
+ ELSE
+ CALL item_stock(warehouseShipment, dateShipment,NULL);
+ END IF;
+
+ DROP TEMPORARY TABLE IF EXISTS Traslados;
+ CREATE TEMPORARY TABLE Traslados ENGINE MEMORY
+ SELECT tp.Id_Tipo AS Tipo,
+
+ tp.reino_id,
+
+ ar.tipo_id,
+
+ ar.Id_Article AS article_id,
+
+ ar.Article,
+
+ ar.Medida,
+
+ ar.Categoria,
+
+ ar.Color,
+
+ Origen.abreviatura as Origen,
+
+ CE.Cantidad,
+
+ ar.Tallos,
+
+ CAST(AIM.visible AS DECIMAL(10,0)) as vis1,
+
+ CAST(AIM.available AS DECIMAL(10,0)) as dis1,
+
+ 0 as vis2,
+
+ 0 as dis2,
+
+ IFNULL(CE.grouping,C.grouping) as grouping,
+
+ IFNULL(CE.Packing,C.Packing) as Packing,
+
+ IFNULL(CE.caja,C.caja) as caja,
+
+ IFNULL(C.Productor, P2.Alias) AS Productor,
+
+ C.Id_Cubo,
+
+ 1 Tinta,
+
+ CE.Id_Compra,
+
+ CE.Etiquetas,
+
+ C.buy_edi_id,
+
+ tp.Id_Trabajador,
+
+ CB.Volumen,
+
+ CB.x, CB.y, CB.z,
+
+ IFNULL(C.Costefijo,0) Costefijo,
+
+ IFNULL(C.Comisionfija,0) Comisionfija,
+
+ IFNULL(C.Portefijo,0) Portefijo,
+
+ A.m3,
+
+ E.comision,
+
+ CB.Retornable,
+
+ IFNULL(CEB.Valor,CB.Valor) Valor,
+
+ t3, t2, tp.promo,
+
+ C.grouping groupingOrigin,
+
+ C.Packing PackingOrigin,
+
+ C.Id_Compra CompraOrigin
+
+ FROM Articles ar
+ LEFT JOIN tmp_item AIM ON AIM.item_id = ar.Id_Article
+ LEFT JOIN Tipos tp ON tp.tipo_id = ar.tipo_id
+ LEFT JOIN Origen ON Origen.id = ar.id_origen
+ LEFT JOIN buy_edi_temp lb ON lb.Id_Article = ar.Id_Article
+ LEFT JOIN Compres C ON C.Id_Compra = lb.Id_Compra
+ LEFT JOIN Cubos CB ON CB.Id_Cubo = C.Id_Cubo
+ LEFT JOIN Entradas E2 ON E2.Id_Entrada = C.Id_Entrada
+ LEFT JOIN Proveedores P2 ON P2.Id_Proveedor = E2.Id_Proveedor
+ LEFT JOIN Entradas E ON E.Id_Entrada = i_entrada
+ LEFT JOIN travel TR ON TR.id = E.travel_id
+ LEFT JOIN Agencias A ON A.Id_Agencia = TR.agency_id
+ LEFT JOIN Compres CE ON CE.Id_Article = ar.Id_Article AND CE.Id_Entrada = i_entrada
+ LEFT JOIN Cubos CEB ON CEB.Id_Cubo = CE.Id_Cubo
+ LEFT JOIN tblTARIFAS ON TRUE
+ WHERE tp.reino_id <> 6 AND tp.reino_id <> 8
+ AND E.Redada = FALSE;
+
+ 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);
+ CALL availableTraslate(warehouseLanding, dateLanding,warehouseShipment);
+
+ UPDATE Traslados t
+ LEFT JOIN availableTraslate a ON t.article_id = a.item_id
+ LEFT JOIN `cache`.visible v ON v.calc_id = v_calc_visible AND t.article_id = v.item_id
+ SET vis2 = v.visible, dis2 = a.available;
+
+ END IF;
+-- ---------------------------------------------
+
+ SELECT t.*,
+
+ Cantidad - MOD(Cantidad , grouping) as Subcantidad,
+
+ MOD(Cantidad , grouping) as Soll,
+
+ (IF(Volumen > 0,Volumen,x * y * IF(z = 0, Medida + 10, z))) / Packing as cm3,
+
+ Costefijo + Comisionfija + Portefijo AS Cost,
+
+ @porte := ROUND((IF(Volumen > 0,Volumen,x * y * IF(z = 0, Medida + 10, z))) * m3 / 1000000 / Packing ,3) AS Porte,
+
+ @comision := ROUND((Costefijo + Comisionfija + Portefijo) * comision / 100 ,3) AS Comision,
+
+ @embalaje := IF(Retornable != 0, 0,ROUND(Valor / Packing,3)) AS Embalaje,
+
+ @coste := IFNULL((Costefijo + Comisionfija + Portefijo),0) + IFNULL(@embalaje,0) + IFNULL(@porte,0) + IFNULL(@comision,0) AS Coste,
+
+ @t3 := ROUND(@coste / ( (100 - t3 - t.promo)/100),2) AS Tarifa3,
+
+ ROUND(@t3 * (1 + ((t2 - t3)/100)),2) AS Tarifa2,
+
+ 0 selected
+
+ FROM Traslados t
+ WHERE vis1 <> 0 OR dis1 <> 0 OR vis2 <> 0 OR dis2 <> 0
+ ORDER BY tipo_id, Article, Medida, Categoria, Origen;
+
+ DROP TEMPORARY TABLE IF EXISTS Traslados;
+ DROP TEMPORARY TABLE IF EXISTS tmp_item;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `trasladoBeta` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `trasladoBeta`(IN i_entrada INTEGER)
+BEGIN
+ DECLARE dateShipment DATE;
+ DECLARE dateLanding DATE;
+ DECLARE warehouseShipment INTEGER;
+ DECLARE warehouseLanding INTEGER;
+ DECLARE v_calc_available INTEGER;
+ DECLARE v_calc_visible INTEGER;
+
+ SELECT shipment, landing, warehouse_id_out, warehouse_id
+ INTO dateShipment, dateLanding, warehouseShipment, warehouseLanding
+ FROM travel t JOIN Entradas e ON t.id = e.travel_id
+ WHERE Id_Entrada = i_entrada;
+
+ CALL buy_tarifas_table(i_entrada);
+
+ -- Traslado en almacen origen
+
+ DROP TEMPORARY TABLE IF EXISTS buy_edi_temp;
+
+ CREATE TEMPORARY TABLE buy_edi_temp
+ (KEY (Id_Article)) ENGINE = MEMORY
+
+ SELECT * FROM (SELECT c.Id_Article, c.Id_Compra
+ FROM Compres c INNER JOIN Entradas e USING(Id_Entrada)
+ INNER JOIN travel t ON t.id = e.travel_id
+ WHERE t.landing BETWEEN date_inv() AND dateShipment
+ AND c.Novincular = FALSE
+ AND c.Tarifa2 >= 0
+ ORDER BY (warehouseShipment = t.warehouse_id) DESC, t.landing DESC) t
+ GROUP BY Id_Article;
+
+ 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;
+ CREATE TEMPORARY TABLE tmp_item (UNIQUE INDEX i USING HASH (item_id)) ENGINE = MEMORY
+ SELECT item_id, visible,0 available FROM `cache`.visible WHERE calc_id = v_calc_visible;
+ INSERT INTO tmp_item(item_id, available)
+ SELECT a.item_id, a.available FROM availableTraslate a
+ ON DUPLICATE KEY UPDATE available = a.available;
+ ELSE
+ CALL item_stock(warehouseShipment, dateShipment,NULL);
+ END IF;
+
+ DROP TEMPORARY TABLE IF EXISTS Traslados;
+ CREATE TEMPORARY TABLE Traslados ENGINE MEMORY
+ SELECT TP.Id_Tipo AS Tipo,
+
+ TP.reino_id,
+
+ ar.tipo_id,
+
+ ar.Id_Article AS article_id,
+
+ ar.Article,
+
+ ar.Medida,
+
+ ar.Categoria,
+
+ ar.Color,
+
+ Origen.abreviatura as Origen,
+
+ CE.Cantidad,
+
+ ar.Tallos,
+
+ CAST(AIM.visible AS DECIMAL(10,0)) as vis1,
+
+ CAST(AIM.available AS DECIMAL(10,0)) as dis1,
+
+ 0 as vis2,
+
+ 0 as dis2,
+
+ IFNULL(CE.grouping,C.grouping) as grouping,
+
+ IFNULL(CE.Packing,C.Packing) as Packing,
+
+ IFNULL(CE.caja,C.caja) as caja,
+
+ IFNULL(C.Productor, P2.Alias) AS Productor,
+
+ C.Id_Cubo,
+
+ 1 Tinta,
+
+ CE.Id_Compra,
+
+ CE.Etiquetas,
+
+ C.buy_edi_id,
+
+ TP.Id_Trabajador,
+
+ CB.Volumen,
+
+ CB.x, CB.y, CB.z,
+
+ IFNULL(C.Costefijo,0) Costefijo,
+
+ IFNULL(C.Comisionfija,0) Comisionfija,
+
+ IFNULL(C.Portefijo,0) Portefijo,
+
+ A.m3,
+
+ E.comision,
+
+ CB.Retornable,
+
+ IFNULL(CEB.Valor,CB.Valor) Valor,
+
+ t3, t2, TP.promo
+
+ FROM Articles ar
+ LEFT JOIN tmp_item AIM ON AIM.item_id = ar.Id_Article
+ LEFT JOIN Tipos TP USING(tipo_id)
+ LEFT JOIN Origen ON Origen.id = ar.id_origen
+ LEFT JOIN buy_edi_temp lb ON lb.Id_Article = ar.Id_Article
+ LEFT JOIN Compres C ON C.Id_Compra = lb.Id_Compra
+ LEFT JOIN Cubos CB ON CB.Id_Cubo = C.Id_Cubo
+ LEFT JOIN Entradas E2 ON E2.Id_Entrada = C.Id_Entrada
+ LEFT JOIN Proveedores P2 ON P2.Id_Proveedor = E2.Id_Proveedor
+ LEFT JOIN Entradas E ON E.Id_Entrada = i_entrada
+ LEFT JOIN travel TR ON TR.id = E.travel_id
+ LEFT JOIN Agencias A ON A.Id_Agencia = TR.agency_id
+ LEFT JOIN Compres CE ON CE.Id_Article = ar.Id_Article AND CE.Id_Entrada = i_entrada
+ LEFT JOIN Cubos CEB ON CEB.Id_Cubo = CE.Id_Cubo
+ LEFT JOIN tblTARIFAS ON TRUE
+ WHERE TP.reino_id <> 6 AND TP.reino_id <> 8
+ AND E.Redada = FALSE;
+
+
+ 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);
+ SELECT warehouseLanding, dateLanding,warehouseShipment;
+ CALL availableTraslateTesting(warehouseLanding, dateLanding,warehouseShipment);
+
+ SELECT * FROM availableTraslate;
+
+ UPDATE Traslados t
+ LEFT JOIN availableTraslate a ON t.article_id = a.item_id
+ LEFT JOIN `cache`.visible v ON v.calc_id = v_calc_visible AND t.article_id = v.item_id
+ SET vis2 = v.visible, dis2 = a.available;
+
+ END IF;
+-- ---------------------------------------------
+
+ SELECT t.*,
+
+ Cantidad - MOD(Cantidad , grouping) as Subcantidad,
+
+ MOD(Cantidad , grouping) as Soll,
+
+ (IF(Volumen > 0,Volumen,x * y * IF(z = 0, Medida + 10, z))) / Packing as cm3,
+
+ Costefijo + Comisionfija + Portefijo AS Cost,
+
+ @porte := ROUND((IF(Volumen > 0,Volumen,x * y * IF(z = 0, Medida + 10, z))) * m3 / 1000000 / Packing ,3) AS Porte,
+
+ @comision := ROUND((Costefijo + Comisionfija + Portefijo) * comision / 100 ,3) AS Comision,
+
+ @embalaje := IF(Retornable != 0, 0,ROUND(Valor / Packing,3)) AS Embalaje,
+
+ @coste := IFNULL((Costefijo + Comisionfija + Portefijo),0) + IFNULL(@embalaje,0) + IFNULL(@porte,0) + IFNULL(@comision,0) AS Coste,
+
+ @t3 := ROUND(@coste / ( (100 - t3 - t.promo)/100),2) AS Tarifa3,
+
+ ROUND(@t3 * (1 + ((t2 - t3)/100)),2) AS Tarifa2,
+
+ 0 selected
+
+ FROM Traslados t
+ WHERE vis1 <> 0 OR dis1 <> 0 OR vis2 <> 0 OR dis2 <> 0
+ ORDER BY tipo_id, Article, Medida, Categoria, Origen;
+
+ DROP TEMPORARY TABLE IF EXISTS Traslados;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `trasladoTesting` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `trasladoTesting`(IN i_entrada INTEGER)
+BEGIN
+ DECLARE dateShipment DATE;
+ DECLARE dateLanding DATE;
+ DECLARE warehouseShipment INTEGER;
+ DECLARE warehouseLanding INTEGER;
+ DECLARE v_calc_available INTEGER;
+ DECLARE v_calc_visible INTEGER;
+
+ SELECT shipment, landing, warehouse_id_out, warehouse_id
+ INTO dateShipment, dateLanding, warehouseShipment, warehouseLanding
+ FROM travel t JOIN Entradas e ON t.id = e.travel_id
+ WHERE Id_Entrada = i_entrada;
+
+ CALL buy_tarifas_table(i_entrada);
+
+ -- Traslado en almacen origen
+
+ DROP TEMPORARY TABLE IF EXISTS buy_edi_temp;
+
+ CREATE TEMPORARY TABLE buy_edi_temp
+ (KEY (Id_Article)) ENGINE = MEMORY
+
+ SELECT * FROM (SELECT c.Id_Article, c.Id_Compra
+ FROM Compres c INNER JOIN Entradas e USING(Id_Entrada)
+ INNER JOIN travel t ON t.id = e.travel_id
+ WHERE t.landing BETWEEN date_inv() AND dateShipment
+ AND c.Novincular = FALSE
+ AND c.Tarifa2 >= 0
+ ORDER BY (warehouseShipment = t.warehouse_id) DESC, t.landing DESC) t
+ GROUP BY Id_Article;
+
+ 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
+ SELECT item_id, visible,0 available FROM `cache`.visible WHERE calc_id = v_calc_visible;
+ INSERT INTO tmp_item(item_id, available)
+ SELECT a.item_id, a.available FROM `cache`.available a WHERE a.calc_id = v_calc_available
+ ON DUPLICATE KEY UPDATE available = a.available;
+ ELSE
+ CALL item_stock(warehouseShipment, dateShipment,NULL);
+ END IF;
+
+ DROP TEMPORARY TABLE IF EXISTS Traslados;
+ CREATE TEMPORARY TABLE Traslados ENGINE MEMORY
+ SELECT TP.Id_Tipo AS Tipo,
+
+ TP.reino_id,
+
+ ar.tipo_id,
+
+ ar.Id_Article AS article_id,
+
+ ar.Article,
+
+ ar.Medida,
+
+ ar.Categoria,
+
+ ar.Color,
+
+ Origen.abreviatura as Origen,
+
+ CE.Cantidad,
+
+ ar.Tallos,
+
+ CAST(AIM.visible AS DECIMAL(10,0)) as vis1,
+
+ CAST(AIM.available AS DECIMAL(10,0)) as dis1,
+
+ 0 as vis2,
+
+ 0 as dis2,
+
+ IFNULL(CE.grouping,C.grouping) as grouping,
+
+ IFNULL(CE.Packing,C.Packing) as Packing,
+
+ IFNULL(CE.caja,C.caja) as caja,
+
+ IFNULL(C.Productor, P2.Alias) AS Productor,
+
+ C.Id_Cubo,
+
+ 1 Tinta,
+
+ CE.Id_Compra,
+
+ CE.Etiquetas,
+
+ C.buy_edi_id,
+
+ TP.Id_Trabajador,
+
+ CB.Volumen,
+
+ CB.x, CB.y, CB.z,
+
+ IFNULL(C.Costefijo,0) Costefijo,
+
+ IFNULL(C.Comisionfija,0) Comisionfija,
+
+ IFNULL(C.Portefijo,0) Portefijo,
+
+ A.m3,
+
+ E.comision,
+
+ CB.Retornable,
+
+ IFNULL(CEB.Valor,CB.Valor) Valor,
+
+ t3, t2, TP.promo
+
+ FROM Articles ar
+ LEFT JOIN tmp_item AIM ON AIM.item_id = ar.Id_Article
+ LEFT JOIN Tipos TP USING(tipo_id)
+ LEFT JOIN Origen ON Origen.id = ar.id_origen
+ LEFT JOIN buy_edi_temp lb ON lb.Id_Article = ar.Id_Article
+ LEFT JOIN Compres C ON C.Id_Compra = lb.Id_Compra
+ LEFT JOIN Cubos CB ON CB.Id_Cubo = C.Id_Cubo
+ LEFT JOIN Entradas E2 ON E2.Id_Entrada = C.Id_Entrada
+ LEFT JOIN Proveedores P2 ON P2.Id_Proveedor = E2.Id_Proveedor
+ LEFT JOIN Entradas E ON E.Id_Entrada = i_entrada
+ LEFT JOIN travel TR ON TR.id = E.travel_id
+ LEFT JOIN Agencias A ON A.Id_Agencia = TR.agency_id
+ LEFT JOIN Compres CE ON CE.Id_Article = ar.Id_Article AND CE.Id_Entrada = i_entrada
+ LEFT JOIN Cubos CEB ON CEB.Id_Cubo = CE.Id_Cubo
+ LEFT JOIN tblTARIFAS ON TRUE
+ WHERE TP.reino_id <> 6 AND TP.reino_id <> 8
+ AND E.Redada = FALSE;
+
+
+ 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);
+ CALL availableTraslate(warehouseLanding, dateLanding,warehouseShipment);
+
+ UPDATE Traslados t
+ LEFT JOIN availableTraslate a ON t.article_id = a.item_id
+ LEFT JOIN `cache`.visible v ON v.calc_id = v_calc_visible AND t.article_id = v.item_id
+ SET vis2 = v.visible, dis2 = a.available;
+
+ END IF;
+-- ---------------------------------------------
+
+ SELECT t.*,
+
+ Cantidad - MOD(Cantidad , grouping) as Subcantidad,
+
+ MOD(Cantidad , grouping) as Soll,
+
+ (IF(Volumen > 0,Volumen,x * y * IF(z = 0, Medida + 10, z))) / Packing as cm3,
+
+ Costefijo + Comisionfija + Portefijo AS Cost,
+
+ @porte := ROUND((IF(Volumen > 0,Volumen,x * y * IF(z = 0, Medida + 10, z))) * m3 / 1000000 / Packing ,3) AS Porte,
+
+ @comision := ROUND((Costefijo + Comisionfija + Portefijo) * comision / 100 ,3) AS Comision,
+
+ @embalaje := IF(Retornable != 0, 0,ROUND(Valor / Packing,3)) AS Embalaje,
+
+ @coste := IFNULL((Costefijo + Comisionfija + Portefijo),0) + IFNULL(@embalaje,0) + IFNULL(@porte,0) + IFNULL(@comision,0) AS Coste,
+
+ @t3 := ROUND(@coste / ( (100 - t3 - t.promo)/100),2) AS Tarifa3,
+
+ ROUND(@t3 * (1 + ((t2 - t3)/100)),2) AS Tarifa2,
+
+ 0 selected
+
+ FROM Traslados t
+ WHERE vis1 <> 0 OR dis1 <> 0 OR vis2 <> 0 OR dis2 <> 0
+ ORDER BY tipo_id, Article, Medida, Categoria, Origen;
+
+ DROP TEMPORARY TABLE IF EXISTS Traslados;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `traslado_label` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `traslado_label`(IN intArticle INTEGER,IN i_entrada_FV INTEGER, IN i_entrada_PCA INTEGER)
+BEGIN
+
+DECLARE intEntrada INTEGER;
+DECLARE i_FV INTEGER;
+
+SELECT FV INTO i_FV
+FROM Articles a
+JOIN Tipos tp ON tp.tipo_id = a.tipo_id
+WHERE a.Id_Article = intArticle;
+
+SET intEntrada = IF(i_FV, i_entrada_FV,i_entrada_PCA);
+
+SET intEntrada = IF(intEntrada = 0, i_entrada_PCA + i_entrada_FV, intEntrada);
+
+
+ IF intEntrada > 0 THEN
+
+ CALL buy_tarifas_table(intEntrada);
+
+ INSERT INTO Compres (Id_Article, Etiquetas, Cantidad, Id_Entrada, Id_Cubo, Packing,grouping,caja,
+ Costefijo, Portefijo, Embalajefijo, Comisionfija, novincular,buy_edi_id)
+ SELECT
+ land.Id_Article,
+ land.Etiquetas - IFNULL(ship.Etiquetas,0) - (IFNULL(Ventas,0) / land.Packing),
+ land.Cantidad - IFNULL(ship.Cantidad,0) - IFNULL(Ventas,0),
+ intEntrada,
+ land.Id_Cubo,
+ land.Packing,
+ land.grouping,
+ land.caja,
+ @cost := ROUND(IFNULL(land.Costefijo, 0) + IFNULL(land.Comisionfija, 0) + IFNULL(land.Portefijo, 0),
+ 3) Costefij,
+ @porte := ROUND((@cm3:= cm3_2(land.Id_Cubo, land.Id_Article)) * a.m3 / 1000000 / land.Packing,
+ 3) Porte,
+ land.EmbalajeFijo AS Embalaje,
+ @comision := ROUND(land.Costefijo * e2.comision / 100, 3) Comision,
+ land.novincular,land.buy_edi_id
+ FROM (
+ 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
+ JOIN
+ travel t_land ON t_land.id = e_land.travel_id
+ 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
+ (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
+ JOIN Tickets t on t.Id_Ticket = m.Id_Ticket
+ WHERE t.Fecha = CURDATE() AND m.Id_Article = intArticle AND t.warehouse_id = 7) v on true
+ GROUP BY land.Id_Article;
+ CALL buy_tarifas(LAST_INSERT_ID());
+
+ END IF;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `traslado_label_2` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+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 */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `traslado_label_3` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+SELECT FV INTO i_FV
+FROM Articles a
+JOIN Tipos tp ON tp.tipo_id = a.tipo_id
+WHERE a.Id_Article = intArticle;
+
+SET intEntrada = IF(i_FV, i_entrada_FV,i_entrada_PCA);
+
+SET intEntrada = IF(intEntrada = 0, i_entrada_PCA + i_entrada_FV, intEntrada);
+
+
+ IF intEntrada > 0 THEN
+
+ CALL buy_tarifas_table(intEntrada);
+
+ INSERT INTO Compres (Id_Article, Etiquetas, Cantidad, Id_Entrada, Id_Cubo, Packing,grouping,caja,
+ Costefijo, Portefijo, Embalajefijo, Comisionfija, novincular,buy_edi_id)
+ SELECT
+ land.Id_Article,
+ land.Etiquetas - IFNULL(ship.Etiquetas,0) - (IFNULL(Ventas,0) / land.Packing),
+ land.Cantidad - IFNULL(ship.Cantidad,0) - IFNULL(Ventas,0),
+ intEntrada,
+ land.Id_Cubo,
+ land.Packing,
+ land.grouping,
+ land.caja,
+ @cost := ROUND(IFNULL(land.Costefijo, 0) + IFNULL(land.Comisionfija, 0) + IFNULL(land.Portefijo, 0),
+ 3) Costefij,
+ @porte := ROUND((@cm3:= cm3_2(land.Id_Cubo, land.Id_Article)) * a.m3 / 1000000 / land.Packing,
+ 3) Porte,
+ land.EmbalajeFijo AS Embalaje,
+ @comision := ROUND(land.Costefijo * e2.comision / 100, 3) Comision,
+ land.novincular,land.buy_edi_id
+ FROM (
+ 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
+ JOIN
+ travel t_land ON t_land.id = e_land.travel_id
+ 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
+ (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
+ JOIN Tickets t on t.Id_Ticket = m.Id_Ticket
+ WHERE t.Fecha = CURDATE() AND m.Id_Article = intArticle AND t.warehouse_id = 7) v on true
+ GROUP BY land.Id_Article;
+ CALL buy_tarifas(LAST_INSERT_ID());
+
+ END IF;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `traslado_ticket` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `traslado_ticket`(IN i_entrada INTEGER, IN i_ticket INTEGER)
+BEGIN
+
+ DECLARE intWarehouse INT;
+ DECLARE datTicket DATE;
+
+ SELECT warehouse_id, Fecha INTO intWarehouse,datTicket FROM Tickets WHERE Id_Ticket = i_ticket;
+
+ CALL buy_tarifas_table(i_entrada);
+
+ CALL item_last_buy_(intWarehouse,datTicket);
+
+
+ INSERT INTO Compres( Id_Article,
+ Cantidad,
+ Novincular,
+ Id_Entrada,
+ Id_Cubo,
+ Packing,
+ grouping,
+ caja,
+ Portefijo,
+ Comisionfija,
+ Embalajefijo,
+ Costefijo,
+ Productor,
+ Tarifa2,
+ Tarifa3
+ )
+
+ SELECT M.Id_Article,
+ IF(T.Id_Cliente IN (1625, 1118, 400), -1, 1) * M.Cantidad,
+
+ IF(T.Id_Cliente IN (1625, 1118, 400), TRUE, FALSE),
+ i_entrada,
+ IFNULL(C.Id_Cubo,'--'),
+ C.Packing,
+ C.grouping,
+ C.caja,
+ @pf := ROUND(@cm3:=cm3_2(IFNULL(C.Id_Cubo,'--'), b.item_id) * AG.m3 / 1000000 / C.Packing ,3) AS Porte,
+ @cf := IFNULL(ROUND(C.Costefijo * E.comision / 100 ,3),0) AS Comision,
+ @ef := ROUND(IF(CB.Retornable = FALSE,CB.Valor/ C.Packing,0) ,3) AS Embalaje,
+ @cost := ROUND(IFNULL(C.Costefijo,0) + @cf + @ef + @pf,3),
+ C.Productor,
+ @t3 := ROUND(@cost / ((100 - TC.t3)/100),2) Tarifa3,
+ @t2 := IF(@cost / ((100 - TC.t2)/100) <= @t3,@t3+0.01,@cost / ((100 - TC.t2)/100)) Tarifa2
+
+ FROM Movimientos M
+ LEFT JOIN Tickets T USING(Id_Ticket)
+ LEFT JOIN t_item_last_buy b ON M.Id_Article = b.item_id AND T.warehouse_id = b.warehouse_id
+ LEFT JOIN Compres C ON C.Id_Compra = b.buy_id
+ LEFT JOIN Cubos CB ON CB.Id_Cubo = C.Id_Cubo
+ LEFT JOIN Entradas E ON E.Id_Entrada = i_entrada
+ LEFT JOIN travel TR ON TR.id = E.travel_id
+ LEFT JOIN Agencias AG ON AG.Id_Agencia = TR.agency_id
+ LEFT JOIN Proveedores P ON P.Id_Proveedor = E.Id_Proveedor
+ JOIN tblTARIFAS TC
+ LEFT JOIN tblContadores ON TRUE
+ JOIN (SELECT m3 as ZEL_PORT FROM Agencias WHERE Id_Agencia = 618) Z
+ WHERE M.Id_Ticket = i_ticket;
+
+
+ DROP TEMPORARY TABLE t_item_last_buy;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `travelDetail` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `travelDetail`()
+BEGIN
+
+DECLARE vGap VARCHAR(10) DEFAULT ' ';
+DECLARE vDateFrom DATE DEFAULT TIMESTAMPADD(WEEK,-1,CURDATE());
+
+SELECT * FROM
+(
+SELECT
+ 1 as IsTravel,
+ tr.id as travel,
+ NULL as Entrada,
+ ag.Agencia,
+ tr.ref,
+ tr.shipment,
+ wo.name as OrigenCajas,
+ tr.landing,
+ w.name as Destino,
+ NULL as Etiquetas,
+ NULL as Notas_Eva,
+ kg,
+ cast(sum(tp.density * c.Etiquetas * IF(cb.Volumen, cb.Volumen, cb.X * cb.Y * cb.Z) / 1000000 ) as DECIMAL(10,0)) as loadedKg,
+ NULL as loadPriority,
+ NULL as awb
+ FROM travel tr
+ JOIN Entradas e ON e.travel_id = tr.id
+ JOIN Compres c ON c.Id_Entrada = e.Id_Entrada
+ JOIN Cubos cb ON cb.Id_Cubo = c.Id_Cubo
+ JOIN Articles a ON a.Id_Article = c.Id_Article
+ JOIN Tipos tp ON tp.tipo_id = a.tipo_id
+ JOIN warehouse w ON w.id = tr.warehouse_id
+ JOIN warehouse wo ON wo.id = tr.warehouse_id_out
+ JOIN Agencias ag ON ag.Id_Agencia = tr.agency_id
+ WHERE tr.landing >= vDateFrom
+ GROUP BY tr.id
+
+UNION ALL
+
+SELECT
+ 0 as IsTravel,
+ e.travel_id as travel,
+ e.Id_Entrada,
+ CONCAT(vGap,p.Proveedor),
+ e.Referencia,
+ tr.shipment,
+ wo.name as OrigenCajas,
+ tr.landing,
+ w.name as Destino,
+ sum(Etiquetas) as Etiquetas,
+ e.Notas_Eva,
+ NULL as kg,
+ cast(sum(tp.density * c.Etiquetas * IF(cb.Volumen, cb.Volumen, cb.X * cb.Y * cb.Z) / 1000000 ) as DECIMAL(10,0)) as loadedkg,
+ loadPriority,
+ CAST(awb.codigo AS DECIMAL(11,0)) as awb
+
+ FROM Entradas e
+ LEFT JOIN recibida_entrada re ON re.Id_Entrada = e.Id_Entrada
+ LEFT JOIN awb_recibida ar ON ar.recibida_id = re.awb_recibida
+ LEFT JOIN awb ON awb.id = ar.awb_id
+ JOIN Compres c ON c.Id_Entrada = e.Id_Entrada
+ JOIN Cubos cb ON cb.Id_Cubo = c.Id_Cubo
+ JOIN Articles a ON a.Id_Article = c.Id_Article
+ JOIN Tipos tp ON tp.tipo_id = a.tipo_id
+ JOIN Proveedores p ON p.Id_Proveedor = e.Id_Proveedor
+ JOIN travel tr ON tr.id = e.travel_id
+ JOIN warehouse w ON w.id = tr.warehouse_id
+ JOIN warehouse wo ON wo.id = tr.warehouse_id_out
+ WHERE tr.landing >= vDateFrom
+ GROUP BY e.Id_Entrada
+) sub
+ORDER BY landing, travel, IsTravel DESC, (loadPriority > 0) DESC,loadPriority, Agencia, Notas_Eva ;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `travel_tree` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ DECLARE vCur CURSOR FOR
+ SELECT w.id warehouse_id
+ FROM warehouse w
+ WHERE reserve;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
+
+ DROP TEMPORARY TABLE IF EXISTS travel_tree;
+ CREATE TEMPORARY TABLE travel_tree
+ (
+ warehouse_id TINYINT NOT NULL PRIMARY KEY,
+ Fecha_envio DATE NOT NULL,
+ Fecha_recepcion DATE NOT NULL
+ )
+ ENGINE = MEMORY;
+
+ -- Establecemos los almacenes y las fechas que van a entrar
+
+ OPEN vCur;
+
+ l: LOOP
+ SET vDone = FALSE;
+ FETCH vCur INTO vWh;
+
+ IF vDone THEN
+ LEAVE l;
+ END IF;
+
+ INSERT INTO travel_tree (warehouse_id, Fecha_envio, Fecha_recepcion)
+ SELECT vWh, shipping, vDate FROM (
+ SELECT TIMESTAMPADD(DAY, -ah.subtract_day, vDate) shipping, ah.max_hour
+ FROM agency_hour ah
+ LEFT JOIN Consignatarios c ON c.Id_Consigna = vAddress
+ WHERE ah.warehouse_id = vWh
+ AND (week_day = WEEKDAY(vDate)
+ OR week_day IS NULL)
+ AND (ah.agency_id = vAgency
+ OR ah.agency_id IS NULL)
+ AND (ah.province_id = c.province_id
+ OR ah.province_id IS NULL
+ OR vAddress IS NULL)
+ ORDER BY (
+ (ah.week_day IS NOT NULL) +
+ (ah.agency_id IS NOT NULL) +
+ ((ah.province_id IS NOT NULL) * 3)
+ ) DESC
+ LIMIT 1
+ ) t
+ WHERE shipping >= CURDATE()
+ AND IF(shipping = CURDATE(), max_hour > HOUR(NOW()), TRUE);
+ END LOOP;
+
+ CLOSE vCur;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `travel_tree_list` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ DECLARE vCur CURSOR FOR
+ SELECT DISTINCT agency_id
+ FROM agency
+ JOIN agency_hour USING(agency_id);
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
+
+ DROP TEMPORARY TABLE IF EXISTS agency_list;
+ CREATE TEMPORARY TABLE agency_list (
+ Id_Agencia INT NOT NULL,
+ Agencia VARCHAR(20),
+ description VARCHAR(45),
+ Vista VARCHAR(45),
+ shipment DATE,
+ Descripcion VARCHAR(45),
+ PRIMARY KEY(Id_Agencia)
+ )
+ ENGINE = MEMORY;
+
+ OPEN vCur;
+ FETCH vCur INTO vAgency;
+
+ WHILE NOT vDone
+ DO
+ CALL travel_tree (vDate, vAddress, vAgency);
+
+ INSERT INTO agency_list
+ SELECT a.Id_Agencia, a.Agencia, a.description,
+ a.Vista, t.Fecha_Envio, w.name as Descripcion
+ FROM Agencias a
+ JOIN travel_tree t
+ JOIN warehouse w on w.id = t.warehouse_id
+ WHERE agency_id = vAgency
+ AND a.web
+ ON DUPLICATE KEY UPDATE
+ Descripcion = CONCAT(Descripcion, ', ', w.name);
+
+ FETCH vCur INTO vAgency;
+ END WHILE;
+
+ CLOSE vCur;
+
+ SELECT * FROM agency_list;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `travel_tree_shipment` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ SELECT v_warehouse warehouse_id, v_envio landing FROM (
+ SELECT * FROM (
+ SELECT v_warehouse, TIMESTAMPADD(DAY, subtract_day, v_date) v_envio, subtract_day, ah.max_hour
+ FROM agency_hour ah
+ LEFT JOIN Consignatarios c ON c.Id_Consigna = v_consigna
+ WHERE (week_day = weekday(TIMESTAMPADD(DAY, subtract_day, v_date)) OR week_day IS NULL)
+ AND (ah.agency_id = v_agency OR ah.agency_id IS NULL)
+ AND ah.warehouse_id = v_warehouse
+ AND (ah.province_id = c.province_id OR ah.province_id IS NULL OR v_consigna IS NULL)
+ ORDER BY (
+ (ah.week_day IS NOT NULL) +
+ (ah.agency_id IS NOT NULL) +
+ ((ah.province_id IS NOT NULL)*3)
+ ) DESC
+ ) t
+ LIMIT 1
+ ) t
+ WHERE IF(v_date = CURDATE(), max_hour > HOUR(NOW()), TRUE) AND subtract_day < 225;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `turnoClon` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `turnoClon`(IN vWeek INT, IN vYear INT)
+BEGIN
+
+DECLARE done BIT DEFAULT 0;
+DECLARE myEntrada INT;
+DECLARE myWeekday INT;
+DECLARE myLanding DATE;
+DECLARE myShipment DATE;
+DECLARE myDateDiff INT;
+DECLARE myTravel INT;
+DECLARE myNuevaEntrada INT;
+DECLARE myWH_IN INT;
+DECLARE myWH_OUT INT;
+
+DECLARE rs CURSOR FOR
+SELECT Id_Entrada, weekDay FROM Entradas_turno;
+
+DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
+
+IF vWeek = 0 THEN
+
+ SET vWeek = WEEK(TIMESTAMPADD(WEEK,1,CURDATE()));
+ SET vYear = YEAR(TIMESTAMPADD(WEEK,1,CURDATE()));
+
+END IF;
+
+
+OPEN rs;
+
+FETCH rs INTO myEntrada, myWeekday;
+
+WHILE NOT done DO
+
+ SELECT DATEDIFF(landing,shipment), warehouse_id, warehouse_id_out INTO myDateDiff, myWH_IN, myWH_OUT
+ FROM travel t
+ JOIN Entradas e on e.travel_id = t.id
+ WHERE Id_Entrada = myEntrada;
+
+ SELECT date, TIMESTAMPADD(DAY, - myDateDiff, date)
+ INTO myLanding , myShipment
+ FROM time
+ WHERE year = vYear AND week = vWeek
+ AND WEEKDAY(date) = myWeekday;
+
+ SELECT t.id INTO myTravel
+ FROM travel t
+ WHERE shipment = myShipment
+ AND landing = myLanding
+ AND warehouse_id = myWH_IN
+ AND warehouse_id_out = myWH_OUT
+ LIMIT 1;
+
+ IF IFNULL(myTravel,0) = 0 THEN
+
+ INSERT INTO travel(shipment, shipment_hour, landing,landing_hour, warehouse_id, warehouse_id_out,agency_id, ref)
+ SELECT myShipment, shipment_hour, myLanding ,landing_hour, warehouse_id, warehouse_id_out,agency_id, ref
+ FROM travel t
+ JOIN Entradas e on e.travel_id = t.id
+ WHERE Id_Entrada = myEntrada;
+
+ SELECT LAST_INSERT_ID() INTO myTravel;
+
+
+ END IF;
+
+ INSERT INTO Entradas(Id_Proveedor,Referencia, Notas, Id_Moneda, empresa_id, travel_id)
+ SELECT Id_Proveedor, Referencia, Notas, Id_Moneda, empresa_id, myTravel
+ FROM Entradas
+ WHERE Id_Entrada = myEntrada;
+
+ 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)
+ SELECT myNuevaEntrada, Id_Article, Cantidad, Costefijo, Portefijo, Embalajefijo, Novincular, Comisionfija, Etiquetas, Packing
+ ,grouping, caja,/* container_id, */ Nicho, Id_Cubo, Tarifa1,Tarifa2,Tarifa3, PVP, Productor
+ FROM Compres
+ WHERE Id_Entrada = myEntrada;
+
+
+ FETCH rs INTO myEntrada, myWeekday;
+
+END WHILE;
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `turn_calculartiempomedio` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `turn_calculartiempomedio`()
+BEGIN
+
+DECLARE strTiempoAprox NVARCHAR(255);
+
+SELECT
+CASE WHEN @min>45 THEN concat(@hora:=@hora+1,' horas ')
+WHEN @hora >0 THEN concat(@hora,' horas ')
+WHEN @min>=0 and @min<15 THEN '15 Minutos'
+WHEN @min<30 THEN '30 Minutos'
+WHEN @min<45 THEN '45 Minutos'
+ELSE '' and @hora=@hora+1 END AS tiempoaprox
+INTO strTiempoAprox
+FROM (
+ select min(sub1.adate) as adate,max(sub1.bdate) as bdate,
+ @hora:=ROUND((TIMESTAMPDIFF(HOUR,min(sub1.adate),max(sub1.bdate)) /10),0),
+ @min:=ROUND((TIMESTAMPDIFF(MINUTE,min(sub1.adate),max(sub1.bdate)) mod 60)/10,0)
+ from (
+ select a.odbc_date as adate,b.odbc_date as bdate
+ from turn a
+ INNER JOIN turn b on a.number=(b.number-1)
+ WHERE TIMESTAMPDIFF(HOUR,b.odbc_date,a.odbc_date)<1
+ ORDER BY a.odbc_date DESC,b.odbc_date DESC
+ LIMIT 10) sub1) sub2;
+
+SELECT strTiempoAprox as TiempoAprox;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ubicator` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ubicator`(IN i_wh TINYINT, IN d_fecha DATE,IN filtro VARCHAR(255))
+BEGIN
+
+
+ DECLARE date_inv DATE;
+
+
+DROP TEMPORARY TABLE IF EXISTS stock_actual;
+DROP TEMPORARY TABLE IF EXISTS vn2008.tmp_ubicator_stock;
+
+
+SELECT FechaInventario INTO date_inv
+ FROM tblContadores LIMIT 1;
+
+
+CREATE TEMPORARY TABLE stock_actual
+SELECT Id_Article article_id,SUM(Cantidad) amount FROM (
+ SELECT Id_Article,Cantidad
+ FROM Compres c
+ JOIN Entradas e USING(Id_Entrada)
+ JOIN travel t ON t.id = e.travel_id
+ WHERE landing BETWEEN date_inv AND d_fecha
+ AND warehouse_id = i_wh AND NOT Redada
+
+ 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)
+ JOIN travel t ON t.id = e.travel_id
+ WHERE shipment BETWEEN date_inv AND CURDATE()
+ 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)
+ WHERE Fecha BETWEEN date_inv AND CURDATE()
+ AND warehouse_id = i_wh AND Etiquetasemitidas
+
+
+) 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,
+ CEIL(S.Suma/T.packing) as etiquetas,A.Medida,A.Nicho
+ FROM vn2008.Articles A
+ INNER JOIN
+ (SELECT article_id, amount as SUMA
+ FROM vn2008.stock_actual
+ WHERE amount > 0
+ ) as S ON S.article_id = A.Id_Article
+ LEFT JOIN (
+ SELECT * FROM (
+ SELECT c.Id_Article item_id, c.Id_Compra id, c.Id_Cubo,c.packing
+ FROM vn2008.Compres c INNER JOIN vn2008.Entradas e USING(Id_Entrada)
+ INNER JOIN vn2008.travel t ON t.id = e.travel_id
+ WHERE t.landing BETWEEN vn2008.date_inv() AND %v
+ AND c.Novincular = FALSE
+ AND c.Tarifa2 >= 0 AND Id_Cubo IS NOT NULL
+ ORDER BY 1 = t.warehouse_id DESC, t.landing DESC
+ ) t1 GROUP BY item_id
+ ) as T ON T.item_id = A.Id_Article
+ LEFT JOIN vn2008.Cubos C USING(Id_Cubo)
+ WHERE %s AND CEIL(S.Suma/T.packing) > 0',d_fecha,filtro));
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ubicator_calcularhuecosvacios` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ubicator_calcularhuecosvacios`(int_H int,int_X int,int_Y int,int_Z int,intId_Estanterias int,intId_Baldas int,contId_Estanterias int)
+BEGIN
+DECLARE intnumcubostotal,intnumcubosocup SMALLINT DEFAULT 0;
+DECLARE posX,posY,posZ,intId_Article,x_cubo,y_cubo INT DEFAULT 0;
+DECLARE strId_Cubo VARCHAR(10);
+DECLARE strArticle,strmodelo VARCHAR(50) DEFAULT '---';
+DECLARE intContador INT DEFAULT 1;
+
+ SELECT COUNT(*) INTO intnumcubosocup FROM Ubicator_Cajas
+ WHERE W=int_X and D=int_Y and Id_Estanterias=intId_Estanterias and Id_Baldas=intId_Baldas and NumEstanterias=contId_Estanterias;
+
+ SELECT W,D,H,Id_Cubo,Id_Article,modelo,Article,x,y
+ INTO posX,posY,posZ,strId_Cubo,intId_Article,strmodelo,strArticle,x_cubo,y_cubo
+ FROM Ubicator_Cajas
+ 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;
+ END WHILE;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ubicator_ordenacion` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+DECLARE strId_Cubo VARCHAR(10) DEFAULT '---';
+DECLARE intId_Article,Id_Article_aux,alturabalda,intZ_aux INT DEFAULT 0;
+DECLARE contId_Estanterias INT DEFAULT 1;
+DECLARE strmodelo VARCHAR(255) DEFAULT '---';
+DECLARE done BIT DEFAULT 0;
+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
+
+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.
+
+DROP TEMPORARY TABLE IF EXISTS ubicator_stock;
+
+SET @SQL=CONCAT('CREATE TEMPORARY TABLE IF NOT EXISTS ubicator_stock SELECT Id_Cubo,Etiquetas,Id_Article,X,Y,IF(Z=0,Medida,Z) Z,Article,Medida,IF(LOWER(Article) like "%mix%",1,0) AS MIX FROM tmp_ubicator_stock
+ ORDER BY MIX,',strOrdenacion);
+
+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.
+ CLOSE cursor_estanterias;
+ SET done=FALSE;
+ OPEN cursor_estanterias;
+ SET contId_Estanterias=contId_Estanterias+1;
+ 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;
+
+ SELECT H INTO alturabalda
+ FROM Baldas WHERE Id_Estanterias=intId_Estanterias and Baldas.Id_Baldas=intId_Baldas;
+
+ SET intPOSX=0,intPOSY=0,intPOSZ=0,intId_Baldas_aux=0;
+
+ ITERACION:WHILE NOT done DO
+ IF (NOT boolNoNextRecord) THEN
+ FETCH cursor_ubicator INTO strId_Cubo,intEtiquetas,intId_Article,intX,intY,intZ,strArticle,intMedida;
+ IF (DONE) THEN
+ LEAVE ITERACION;
+ END IF;
+ 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.
+ 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
+ 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
+ SET boolPasarX=FALSE,boolPasarZ=TRUE;
+ SET intPOSX=intPOSX-intX;
+ ELSE -- distinto articulo
+ 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
+ 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
+ SET intPOSY=intY,intPOSZ=intZ;
+ SET boolPasarX=TRUE,boolPasarZ=TRUE;
+ SET intPOSX=intPOSX+intCmNichoExtra;
+ END IF; -- article
+ END IF;
+ ELSE -- No apilable or posz<>0
+ 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 intPOSY=0;
+ END IF;
+ ELSE
+ SET boolPasarX=TRUE,boolPasarZ=TRUE;
+ 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
+ SET intPOSX=intPOSX+intCmNichoExtra;
+ END IF;
+ END IF; -- apilable
+
+ Condicional:loop
+ IF (NOT boolPasarX) THEN
+ IF (NOT boolPasarZ) THEN
+ IF (intD-intPOSY>intY) THEN -- cabe de profundo
+ 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
+ END IF;
+ -- @@@@ fin ultimo cambio
+ ELSE
+ SET intPOSY=intY;
+ END IF;
+ END IF; -- boolpasarz (depth)
+
+ IF (intH-intPOSZ>intZ) THEN
+ SET intPOSZ=intPOSZ+intZ;
+ ELSE
+ IF (intD-intPOSY>intY) THEN
+ SET boolPasarZ=FALSE,boolPasarX=FALSE,intPOSZ=intZ;
+ ITERATE Condicional;
+ END IF;
+ SET intPOSZ=intZ;
+ SET intPOSY=intY;
+ SET intPOSX=intPOSX+intX+intCmNichoExtra;
+ END IF;
+ END IF; -- boolpasarx
+
+ IF (intW-intPOSX>intX) THEN
+ SET intPOSX=intPOSX+intX;
+ ELSE
+ SET intPOSX=0,boolNoNextRecord=TRUE,Cantidad=Cantidad-1;
+ LEAVE ITERACION;
+ END IF;
+ 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 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;
+
+ IF (done) THEN
+ SET fin=TRUE;
+ END IF;
+UNTIL fin END REPEAT;
+CLOSE cursor_ubicator;
+CLOSE cursor_estanterias;
+
+-- select * from Ubicator_Cajas;
+-- select * from ubicator_stock;
+-- select * from Ubicator_CajasNoCaben;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ubicator_ordenacion_distrib` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+DECLARE strId_Cubo VARCHAR(10) DEFAULT '---';
+DECLARE intId_Article,Id_Article_aux,alturabalda,intZ_aux INT DEFAULT 0;
+DECLARE contId_Estanterias INT DEFAULT 0;
+DECLARE strmodelo VARCHAR(255) DEFAULT '---';
+DECLARE done BIT DEFAULT 0;
+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
+
+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.
+
+DROP TEMPORARY TABLE IF EXISTS ubicator_stock;
+IF (boolORDALFA) THEN
+ CREATE TEMPORARY TABLE IF NOT EXISTS ubicator_stock SELECT Id_Cubo,Etiquetas,Id_Article,X,Y,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,Z,Article,Medida FROM tmp_ubicator_stock
+ ORDER BY Id_Article;
+ END IF;
+
+-- Open Recordsets
+OPEN cursor_estanterias;
+OPEN cursor_ubicator;
+SET contId_Estanterias=0;
+REPEAT
+ FETCH cursor_estanterias INTO intId_Estanterias,intW,intD,strmodelo,intId_Baldas,intH,intposinicial,intposfinal;
+
+ IF (contId_Estanterias=0) THEN
+ SET contId_Estanterias=1;
+ SET auxintId_Estanterias=intId_Estanterias;
+ SELECT (intposfinal-intposinicial+1)*Id_Baldas into auxintposfinal from Baldas where Id_Estanterias=intId_Estanterias order by Id_Baldas DESC limit 1;
+ END IF;
+
+ IF (done) THEN
+ 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;
+ FETCH cursor_estanterias INTO intId_Estanterias,intW,intD,strmodelo,intId_Baldas,intH,intposinicial,intposfinal;
+ END IF;
+
+ IF (auxintId_Estanterias<>IFNULL(intId_Estanterias,auxintId_Estanterias)) THEN
+ SET done=TRUE;
+ END IF;
+ SET intnumdistrib=intnumdistrib+1;
+
+ IF (done) THEN -- Si llega a la ultima balda, empieza de nuevo.
+ 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;
+
+ SELECT H INTO alturabalda
+ FROM Baldas WHERE Id_Estanterias=intId_Estanterias and Baldas.Id_Baldas=intId_Baldas;
+
+ SET intPOSX=0,intPOSY=0,intPOSZ=0,intId_Baldas_aux=0;
+
+ ITERACION:WHILE NOT done DO
+ IF (NOT boolNoNextRecord) THEN
+ FETCH cursor_ubicator INTO strId_Cubo,intEtiquetas,intId_Article,intX,intY,intZ,strArticle,intMedida;
+ IF (DONE) THEN
+ LEAVE ITERACION;
+ END IF;
+ 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.
+ 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
+ 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
+ SET boolPasarX=FALSE,boolPasarZ=TRUE;
+ SET intPOSX=intPOSX-intX;
+ ELSE -- distinto articulo
+ 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
+ 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
+ SET intPOSY=intY,intPOSZ=intZ;
+ SET boolPasarX=TRUE,boolPasarZ=TRUE;
+ SET intPOSX=intPOSX+intCmNichoExtra;
+ END IF; -- article
+ END IF;
+ ELSE -- No apilable or posz<>0
+ IF (NOT boolESAPILABLE AND boolESABIERTO) THEN
+ SET boolPasarX=FALSE,boolPasarZ=FALSE;
+ -- @@@ cambio abierto no apilable
+ SET intPOSZ=0; -- no se puede subir en altura
+ 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
+ SET intPOSX=intPOSX+intCmNichoExtra;
+ END IF;
+ END IF; -- apilable
+
+ Condicional:loop
+ IF (NOT boolPasarX) THEN
+ IF (NOT boolPasarZ) THEN
+ IF (intD-intPOSY>intY) THEN -- cabe de profundo
+ SET intPOSY=intPOSY+intY;
+ ELSE
+ SET intPOSY=intY;
+ END IF;
+ END IF; -- boolpasarz (depth)
+
+ IF (intH-intPOSZ>intZ) THEN
+ SET intPOSZ=intPOSZ+intZ;
+ ELSE
+ IF (intD-intPOSY>intY) THEN
+ SET boolPasarZ=FALSE,boolPasarX=FALSE,intPOSZ=intZ;
+ ITERATE Condicional;
+ END IF;
+ SET intPOSZ=intZ;
+ SET intPOSY=intY, intPOSX=intPOSX+intX+intCmNichoExtra;
+ END IF;
+ END IF; -- boolpasarx
+
+ IF (intW-intPOSX>intX) THEN
+ SET intPOSX=intPOSX+intX;
+ ELSE
+ SET intPOSX=0,boolNoNextRecord=TRUE,Cantidad=Cantidad-1;
+ LEAVE ITERACION;
+ END IF;
+ 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 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;
+
+ IF (done) THEN
+ SET fin=TRUE;
+ END IF;
+
+UNTIL fin END REPEAT;
+CLOSE cursor_ubicator;
+CLOSE cursor_estanterias;
+
+-- select * from Ubicator_Cajas;
+-- select * from ubicator_stock;
+-- select * from Ubicator_CajasNoCaben;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ubicator_test` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ubicator_test`(IN i_wh TINYINT, IN d_fecha DATE,IN filtro VARCHAR(255))
+BEGIN
+
+
+ DECLARE date_inv DATE;
+
+
+DROP TEMPORARY TABLE IF EXISTS stock_actual;
+DROP TEMPORARY TABLE IF EXISTS vn2008.tmp_ubicator_stock;
+
+
+SELECT FechaInventario INTO date_inv
+ FROM tblContadores LIMIT 1;
+
+
+CREATE TEMPORARY TABLE stock_actual
+SELECT Id_Article article_id,SUM(Cantidad) amount FROM (
+ SELECT Id_Article,Cantidad
+ FROM Compres c
+ JOIN Entradas e USING(Id_Entrada)
+ JOIN travel t ON t.id = e.travel_id
+ WHERE landing BETWEEN date_inv AND d_fecha
+ AND warehouse_id = i_wh AND NOT Redada
+
+ UNION ALL
+
+ 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
+
+ UNION ALL
+
+ 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
+
+
+
+) 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,
+ CEIL(S.Suma/T.grouping) as etiquetas,A.Medida,A.Nicho
+ FROM vn2008.Articles A
+ INNER JOIN
+ (SELECT article_id, amount as SUMA
+ FROM vn2008.stock_actual
+ WHERE amount > 0
+ ) as S ON S.article_id = A.Id_Article
+ LEFT JOIN (
+ SELECT * FROM (
+ SELECT c.Id_Article item_id, c.Id_Compra id, c.Id_Cubo,c.grouping
+ FROM vn2008.Compres c INNER JOIN vn2008.Entradas e USING(Id_Entrada)
+ INNER JOIN vn2008.travel t ON t.id = e.travel_id
+ WHERE t.landing BETWEEN vn2008.date_inv() AND CURDATE()
+ AND c.Novincular = FALSE
+ AND c.Tarifa2 >= 0 AND Id_Cubo IS NOT NULL
+ ORDER BY 1 = t.warehouse_id DESC, t.landing DESC
+ ) t1 GROUP BY item_id
+ ) as T ON T.item_id = A.Id_Article
+ LEFT JOIN vn2008.Cubos C USING(Id_Cubo)
+ WHERE %s AND CEIL(S.Suma/T.grouping) > 0',filtro));
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `unary_delete` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ SELECT parent
+ INTO v_parent
+ FROM unary
+ WHERE id = v_node;
+
+ IF(v_delete = FALSE) THEN
+ UPDATE unary
+ SET parent = v_parent
+ WHERE parent = v_node;
+ END IF;
+
+ DELETE FROM unary
+ WHERE id = v_node;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `unary_insert` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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);
+
+ SELECT last_insert_id() INTO v_unary;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `unary_leaves` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.tree;
+ CREATE TEMPORARY TABLE tmp.tree
+ (INDEX (id))
+ ENGINE = MEMORY
+ SELECT v_top id, v_parent parent, v_depth depth;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.parent;
+ CREATE TEMPORARY TABLE tmp.parent
+ ENGINE = MEMORY
+ SELECT v_top id;
+
+ l: LOOP
+
+ SET v_depth = v_depth + 1;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.child;
+ CREATE TEMPORARY TABLE tmp.child
+ ENGINE = MEMORY
+ SELECT c.`id`, c.parent
+ FROM `unary` c
+ JOIN tmp.parent p ON c.`parent` = p.id;
+
+ DROP TEMPORARY TABLE tmp.parent;
+ CREATE TEMPORARY TABLE tmp.parent
+ ENGINE = MEMORY
+ SELECT c.id, c.parent
+ FROM tmp.child c
+ LEFT JOIN tmp.tree t ON t.id = c.id
+ WHERE t.id IS NULL;
+
+ INSERT INTO tmp.tree
+ SELECT id, parent, v_depth FROM tmp.parent;
+
+ SELECT COUNT(*) INTO v_count
+ FROM tmp.parent;
+
+ IF v_count = 0 THEN
+ LEAVE l;
+ END IF;
+ END LOOP;
+
+ DROP TEMPORARY TABLE
+ tmp.parent,
+ tmp.child;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `unary_scan_ident` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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);
+
+ CREATE TEMPORARY TABLE tmp.tree_ident
+ ENGINE = MEMORY
+ SELECT t.id,
+ CONCAT( REPEAT(REPEAT(" ",v_space), t.depth), sp.name) AS name
+ FROM tmp.tree t
+ INNER JOIN unary_scan sp
+ ON t.id = sp.id;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `unary_scan_insert` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ CALL unary_insert(v_unary, v_parent);
+
+ INSERT INTO unary_scan(name, unary_id, type) VALUES(v_name, v_unary, v_type);
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `unary_tops` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ ENGINE = MEMORY
+ SELECT s.`unary_id` AS id, s.name, s.odbc_date, s.type
+ FROM `unary_scan` s
+ INNER JOIN `unary` u ON s.unary_id = u.id
+ WHERE u.parent IS NULL;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `unary_update` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ SELECT parent
+ INTO v_parent
+ FROM unary
+ WHERE id = v_node;
+
+ IF(v_move = TRUE) THEN
+ UPDATE unary
+ SET parent = v_parent
+ WHERE parent = v_node;
+ END IF;
+
+ UPDATE unary
+ SET parent = v_new_parent
+ WHERE id = v_node;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `valor_faltas` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `valor_faltas`(IN intReino_id INT,IN dateDesde DATE,IN dateHasta DATE,IN wh INT)
+BEGIN
+
+ DROP TEMPORARY TABLE IF EXISTS item;
+
+ CREATE TEMPORARY TABLE item
+ SELECT Id_Article id,Id_Movimiento,Cantidad,Id_Tipo,Fecha
+ FROM Tickets t
+ JOIN Movimientos m USING (Id_Ticket)
+ JOIN Articles a USING (Id_Article)
+ JOIN Tipos tip USING (tipo_id)
+ WHERE
+ Id_Cliente = 400
+ AND Fecha BETWEEN dateDesde AND dateHasta
+ AND reino_id = 4;
+
+ CREATE INDEX pk USING HASH ON item (id);
+
+ CALL item_buy (wh, dateHasta);
+ CALL item_buy_price (1240,dateDesde,wh);
+
+SELECT *,Cantidad * price as total FROM item;
+
+DROP TEMPORARY TABLE item;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `verdecora` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `verdecora`(vDelivered DATE)
+BEGIN
+
+DECLARE vConsigna INT DEFAULT 21025;
+DECLARE vAgencia INT DEFAULT 639;
+
+DROP TEMPORARY TABLE IF EXISTS tmp.bionic_calc;
+
+ CREATE TEMPORARY TABLE tmp.bionic_calc
+ (PRIMARY KEY (item_id))
+ ENGINE = MEMORY
+ SELECT Id_Article AS item_id
+ FROM Articles
+ JOIN Tipos using(tipo_id)
+ WHERE reino_id IN (1,5)
+ AND Id_Article < 170000;
+
+CALL vn2008.bionic_calc(vDelivered, vConsigna, vAgencia);
+
+SELECT
+ bi.item_id AS 'Ref_VN',
+ iv.codin,
+ NULL as Recomendado,
+ bi.available as Disponible,
+ CASE c.caja
+ WHEN 0 THEN 1
+ WHEN 1 THEN c.grouping
+ WHEN 2 THEN c.packing
+ END AS 'Venta x',
+ c.Packing AS 'Uds/Caja',
+ bl.min_price as Precio,
+ REPLACE(bi.item,'_','') AS 'Artículo',
+ ita.tag1 as Caracter1,
+ ita.val1 as Valor1,
+ ita.tag2 as Caracter2,
+ ita.val2 as Valor2,
+ ita.tag3 as Caracter3,
+ ita.val3 as Valor3,
+ ita.tag4 as Caracter4,
+ ita.val4 as Valor4,
+ ita.tag5 as Caracter5,
+ ita.val5 as Valor5,
+ ita.tag6 as Caracter6,
+ ita.val6 as valor6
+
+FROM tmp.bionic_item bi
+ JOIN vn.itemTagArranged ita ON ita.itemFk = bi.item_id
+ JOIN bi.Last_buy_id lb ON lb.Id_Article = bi.item_id
+ JOIN vn2008.Compres c ON c.Id_Compra = lb.Id_Compra
+ JOIN (
+ SELECT MIN(price) min_price, item_id
+ FROM tmp.bionic_price
+ GROUP BY item_id
+ ) bl ON bl.item_id = bi.item_id
+ LEFT JOIN vn.itemVerdecora iv ON iv.itemFk = bi.item_id
+WHERE lb.warehouse_id = 1;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `vips_in_a_week` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `vips_in_a_week`(IN strCONDITION varchar(512))
+BEGIN
+call sql_query( CONCAT('SELECT C.Id_Cliente, C.Cliente, RED(SUM((M.Cantidad * M.Preu) * 100 - M.Descuento) / 100) as Importe
+ FROM Clientes C INNER JOIN Tickets T ON T.Id_Cliente = C.Id_Cliente
+ INNER JOIN Movimientos M ON M.Id_Ticket = T.Id_Ticket
+ INNER JOIN Articles A ON A.Id_Article = M.Id_Article
+ JOIN Tipos TP ON A.tipo_id = TP.tipo_id
+ INNER JOIN Trabajadores TR ON TR.Id_Trabajador = TP.Id_Trabajador
+ WHERE ',
+
+ strCONDITION,
+
+
+ ' GROUP BY Id_Cliente
+ HAVING Importe > 0
+ ORDER BY Importe DESC
+ ')
+
+
+);
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `vips_in_a_week_by_client` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `vips_in_a_week_by_client`(IN strCONDITION varchar(512))
+BEGIN
+
+call sql_query( CONCAT('SELECT M.Id_Article, A.Article, A.Medida, A.Color, A.Categoria,
+ SUM(M.Cantidad) Cantidad, M.Preu, M.Descuento,
+ RED(SUM(M.Cantidad) * M.Preu * (100 - M.Descuento) / 100) as Importe
+ FROM Clientes C INNER JOIN Tickets T ON T.Id_Cliente = C.Id_Cliente
+ INNER JOIN Movimientos M ON M.Id_Ticket = T.Id_Ticket
+ INNER JOIN Articles A ON A.Id_Article = M.Id_Article
+ JOIN Tipos TP ON A.tipo_id = TP.tipo_id
+ INNER JOIN Trabajadores TR ON TR.Id_Trabajador = TP.Id_Trabajador
+ WHERE ',
+
+ strCONDITION,
+
+ ' GROUP BY M.Id_Article, A.Article, A.Medida, A.Color, A.Categoria, M.Preu, M.Descuento '
+
+ )
+ );
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `volumetricoReparto` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `volumetricoReparto`( IN IdTicket INT(11), OUT atot DOUBLE )
+BEGIN
+
+ DECLARE ticket INT(11);
+
+ DECLARE rutaid INT(11);
+
+ DECLARE art INT(11);
+
+ DECLARE ax, ay, az, atot double;
+
+ DECLARE CUR1 CURSOR FOR SELECT a.Id_Article FROM vn2008.Movimientos m, vn2008.Articles a
+ WHERE m.Id_Ticket = IdTicket AND m.Id_Article = a.Id_Article ;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET @atot = 0;
+
+ set @atot = 0;
+
+ OPEN CUR1;
+
+ REPEAT
+
+ FETCH CUR1 INTO art ;
+
+ SELECT x, y, z into ax,ay,az
+ FROM vn2008.Cubos cu, vn2008.Compres co
+ WHERE cu.Id_Cubo = co.Id_Cubo AND Id_Compra =
+ (SELECT max(Id_Compra) FROM vn2008.Compres c
+ WHERE c.Id_Article = @art);
+
+ set @atot = @atot +((@ax * @ay * @az)* 1,10);
+
+ UNTIL done END REPEAT;
+ CLOSE CUR1;
+
+
+ select 'hola ',@atot;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `weekly_sales_new` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `weekly_sales_new`(v_wh SMALLINT, v_date_ini DATETIME, v_date_end DATETIME)
+BEGIN
+ IF v_date_end IS NULL THEN
+ SET v_date_end = v_date_ini;
+ END IF;
+
+ SET v_date_end = TIMESTAMPADD(DAY, 1, v_date_end);
+
+ CREATE TEMPORARY TABLE weekly_ticket
+ (INDEX idx USING HASH (Id_Ticket))
+ ENGINE = MEMORY
+ SELECT Id_Ticket, to_weeks (DATE(Fecha)) week, warehouse_id
+ FROM Tickets t
+ JOIN warehouse w ON w.id = t.warehouse_id
+ WHERE Fecha >= v_date_ini AND Fecha < v_date_end
+ AND Id_Cliente NOT IN (400, 200)
+ AND NOT w.fuente
+ AND v_wh IN (t.warehouse_id, 0);
+
+ CREATE TEMPORARY TABLE weekly_sales
+ ENGINE = MEMORY
+ SELECT week, warehouse_id, a.Id_Article item_id, SUM(Cantidad) AS amount,
+ SUM(Cantidad * Preu * (100 - Descuento) / 100) AS price
+ FROM Movimientos m
+ JOIN weekly_ticket t USING (Id_Ticket)
+ JOIN Articles a USING (Id_Article)
+ INNER JOIN Tipos USING (tipo_id)
+ WHERE reino_id != 6
+ GROUP BY week, warehouse_id, item_id;
+
+ DROP TEMPORARY TABLE weekly_ticket;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `XDiario_Quadrator` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `XDiario_Quadrator`()
+BEGIN
+
+UPDATE XDiario
+SET EURODEBE = ROUND(EURODEBE,2),
+ EUROHABER = ROUND(EUROHABER,2)
+WHERE NOT enlazado;
+
+
+UPDATE XDiario XD
+INNER JOIN
+(
+SELECT XD.id, SUBCTA, Quadre FROM XDiario XD
+INNER JOIN (
+SELECT ASIEN, SUM(IFNULL(ROUND(Eurodebe,2),0))- SUM(IFNULL(ROUND(EUROHABER,2),0)) as Quadre
+FROM XDiario
+WHERE enlazado = FALSE
+GROUP BY ASIEN
+HAVING Quadre != 0
+) sub USING(ASIEN)
+WHERE SUBCTA > '5999999999'
+GROUP BY ASIEN
+) sub2 USING(id)
+SET Eurohaber = IF(IFNULL(Eurohaber,0) = 0, Eurohaber, Eurohaber + Quadre),
+ Eurodebe = IF(IFNULL(Eurodebe,0) = 0, Eurodebe, Eurodebe - Quadre);
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `__camiones` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `__camiones`(vWarehouse INT, vDate DATE)
+BEGIN
+ CALL inventario_multiple_reservas(vDate, 7, 4848);
+ CALL article_multiple_buy(vDate, 7);
+
+ SELECT Temperatura
+ ,ROUND(SUM(Etiquetas * cm3_2(Id_Cubo, Id_Article))) AS cm3
+ ,ROUND(SUM(IF(scanned,Etiquetas,0) * cm3_2(Id_Cubo, Id_Article))) AS cm3s
+ ,ROUND(SUM(Vida * cm3_2(Id_Cubo, Id_Article))) AS cm3e
+ FROM (
+ SELECT t.Temperatura, c.Etiquetas, c.Id_Cubo, c.Id_Article, b.scanned, c.Vida
+ FROM Compres c
+ LEFT JOIN buy_edi b ON b.id = c.buy_edi_id
+ JOIN Articles a ON a.Id_Article = c.Id_Article
+ JOIN Tipos t ON t.tipo_id = a.tipo_id
+ JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada
+ JOIN travel tr ON tr.id = e.travel_id
+ WHERE tr.warehouse_id = vWarehouse
+ AND tr.landing = vDate
+ UNION ALL
+ SELECT t.Temperatura, @e:= ai.visible/c.packing, c.Id_Cubo, ai.article_id, @e, @e
+ FROM article_inventory ai
+ JOIN Compres c ON c.Id_Compra = ai.buy_id
+ JOIN Articles a ON a.Id_Article = ai.article_id
+ JOIN Tipos t ON t.tipo_id = a.tipo_id
+ WHERE avalaible > 0
+ ) sub
+ GROUP BY Temperatura;
+
+ DROP TEMPORARY TABLE article_inventory;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `__sql_signal` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `__sql_signal`(v_code CHAR(35))
+BEGIN
+ SIGNAL SQLSTATE '45000'
+ SET MESSAGE_TEXT = v_code;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Current Database: `bi`
+--
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `bi` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */;
+
+USE `bi`;
+
+--
+-- Table structure for table `Equalizator`
+--
+
+DROP TABLE IF EXISTS `Equalizator`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Equalizator` (
+ `Vista` int(11) NOT NULL,
+ `Pedido` int(11) DEFAULT NULL,
+ `Impreso` int(11) DEFAULT NULL,
+ `Encajado` int(11) DEFAULT NULL,
+ PRIMARY KEY (`Vista`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Greuge_Evolution`
+--
+
+DROP TABLE IF EXISTS `Greuge_Evolution`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Greuge_Evolution` (
+ `Id_Cliente` int(11) NOT NULL,
+ `Fecha` date NOT NULL,
+ `Greuge` decimal(10,2) NOT NULL DEFAULT '0.00',
+ `Ventas` decimal(10,2) NOT NULL DEFAULT '0.00',
+ `Fosil` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT 'greuge fósil, correspondiente a los clientes muertos',
+ `Recobro` decimal(10,2) NOT NULL DEFAULT '0.00',
+ PRIMARY KEY (`Id_Cliente`,`Fecha`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Almacenamos la evolucion del greuge de los ultimos dias ';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Greuge_comercial_recobro`
+--
+
+DROP TABLE IF EXISTS `Greuge_comercial_recobro`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Greuge_comercial_recobro` (
+ `Id_Trabajador` int(11) NOT NULL,
+ `recobro` decimal(10,2) NOT NULL DEFAULT '0.00',
+ `peso_cartera` decimal(10,2) NOT NULL DEFAULT '0.00',
+ PRIMARY KEY (`Id_Trabajador`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Greuges_comercial_detail`
+--
+
+DROP TABLE IF EXISTS `Greuges_comercial_detail`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Greuges_comercial_detail` (
+ `Id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `Id_Trabajador` int(10) unsigned NOT NULL,
+ `Comentario` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `Importe` decimal(10,2) NOT NULL,
+ `Fecha` datetime DEFAULT NULL,
+ PRIMARY KEY (`Id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=FIXED;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Last_buy_id`
+--
+
+DROP TABLE IF EXISTS `Last_buy_id`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Last_buy_id` (
+ `Id_Article` int(11) NOT NULL DEFAULT '90',
+ `Id_Compra` int(11) NOT NULL DEFAULT '0',
+ `warehouse_id` smallint(6) unsigned NOT NULL,
+ PRIMARY KEY (`warehouse_id`,`Id_Article`),
+ UNIQUE KEY `Id_Compra_UNIQUE` (`Id_Compra`),
+ CONSTRAINT `Id_CompraFK` FOREIGN KEY (`Id_Compra`) REFERENCES `vn2008`.`Compres` (`Id_Compra`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Last_buy_idBackUp`
+--
+
+DROP TABLE IF EXISTS `Last_buy_idBackUp`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Last_buy_idBackUp` (
+ `Id_Article` int(11) NOT NULL DEFAULT '90',
+ `Id_Compra` int(11) NOT NULL DEFAULT '0',
+ `warehouse_id` smallint(6) unsigned NOT NULL,
+ PRIMARY KEY (`Id_Article`,`warehouse_id`),
+ UNIQUE KEY `Id_Compra_UNIQUE` (`Id_Compra`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Radar`
+--
+
+DROP TABLE IF EXISTS `Radar`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Radar` (
+ `Propio` int(1) NOT NULL DEFAULT '0',
+ `Credito` double NOT NULL DEFAULT '0',
+ `Riesgo` double(19,2) DEFAULT NULL,
+ `Greuge` double DEFAULT NULL,
+ `Id_Ticket` int(11) NOT NULL DEFAULT '0',
+ `wh` smallint(6) unsigned NOT NULL DEFAULT '1',
+ `Fecha` datetime NOT NULL,
+ `Alias` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Vista` int(11) DEFAULT '0',
+ `Tipo` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'RECOGIDA',
+ `Id_Trabajador` int(11) DEFAULT '20',
+ `Solucion` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Localizacion` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Estado` varchar(15) CHARACTER SET utf8 DEFAULT NULL,
+ `Fecha_Simple` date DEFAULT NULL,
+ `Id_Comercial` int(11) DEFAULT '20',
+ `Risk` double NOT NULL DEFAULT '0',
+ `Rojo` bigint(21) DEFAULT '0',
+ `Naranja` bigint(21) DEFAULT '0',
+ `Amarillo` bigint(21) DEFAULT '0'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Ticket_Portes`
+--
+
+DROP TABLE IF EXISTS `Ticket_Portes`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Ticket_Portes` (
+ `Id_Ticket` int(11) NOT NULL,
+ `rate` tinyint(4) NOT NULL COMMENT 'Tarifa',
+ `real_amount` double NOT NULL COMMENT 'Cantidad pactada con la agencia',
+ `payed_amount` double NOT NULL COMMENT 'Cantidad reflejada en el Ticket',
+ PRIMARY KEY (`Id_Ticket`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `VelocityKK`
+--
+
+DROP TABLE IF EXISTS `VelocityKK`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `VelocityKK` (
+ `tipo_id` int(11) NOT NULL,
+ `Fecha` datetime NOT NULL,
+ `Disponible` int(11) DEFAULT NULL,
+ `Visible` int(11) DEFAULT NULL,
+ `velocity_id` int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (`velocity_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `XDiario_ALL`
+--
+
+DROP TABLE IF EXISTS `XDiario_ALL`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `XDiario_ALL` (
+ `empresa_id` int(5) NOT NULL,
+ `SUBCTA` varchar(11) COLLATE utf8_unicode_ci NOT NULL,
+ `Eurodebe` double DEFAULT NULL,
+ `Eurohaber` double DEFAULT NULL,
+ `Fecha` date DEFAULT NULL,
+ `FECHA_EX` date DEFAULT NULL,
+ KEY `Cuenta` (`SUBCTA`),
+ KEY `empresa` (`empresa_id`),
+ KEY `Fecha` (`Fecha`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `analisis_grafico_simple`
+--
+
+DROP TABLE IF EXISTS `analisis_grafico_simple`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `analisis_grafico_simple` (
+ `Año` smallint(5) unsigned NOT NULL,
+ `Semana` tinyint(3) unsigned NOT NULL,
+ `Importe` double DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `analisis_grafico_ventas`
+--
+
+DROP TABLE IF EXISTS `analisis_grafico_ventas`;
+/*!50001 DROP VIEW IF EXISTS `analisis_grafico_ventas`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `analisis_grafico_ventas` AS SELECT
+ 1 AS `Año`,
+ 1 AS `Semana`,
+ 1 AS `Importe`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `analisis_ventas`
+--
+
+DROP TABLE IF EXISTS `analisis_ventas`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `analisis_ventas` (
+ `Familia` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
+ `Reino` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `Comercial` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
+ `Comprador` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
+ `Provincia` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
+ `almacen` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
+ `Año` smallint(5) unsigned NOT NULL,
+ `Mes` tinyint(3) unsigned NOT NULL,
+ `Semana` tinyint(3) unsigned NOT NULL,
+ `Vista` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Importe` double NOT NULL,
+ KEY `Año` (`Año`,`Semana`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `analisis_ventas_almacen_evolution`
+--
+
+DROP TABLE IF EXISTS `analisis_ventas_almacen_evolution`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `analisis_ventas_almacen_evolution` (
+ `Semana` int(11) NOT NULL,
+ `Almacen` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
+ `Ventas` int(11) NOT NULL,
+ `Año` int(11) NOT NULL,
+ `Periodo` int(11) NOT NULL,
+ KEY `Almacen` (`Almacen`,`Periodo`),
+ KEY `Periodo` (`Periodo`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `analisis_ventas_comprador_evolution`
+--
+
+DROP TABLE IF EXISTS `analisis_ventas_comprador_evolution`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `analisis_ventas_comprador_evolution` (
+ `semana` int(11) NOT NULL,
+ `comprador` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
+ `ventas` int(11) NOT NULL,
+ `año` int(11) NOT NULL,
+ `periodo` int(11) NOT NULL,
+ UNIQUE KEY `comprador` (`comprador`,`periodo`),
+ KEY `periodo` (`periodo`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `analisis_ventas_familia_evolution`
+--
+
+DROP TABLE IF EXISTS `analisis_ventas_familia_evolution`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `analisis_ventas_familia_evolution` (
+ `semana` int(11) NOT NULL,
+ `familia` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `ventas` int(11) NOT NULL,
+ `año` int(11) NOT NULL,
+ `periodo` int(11) NOT NULL,
+ KEY `familia` (`familia`,`periodo`),
+ KEY `periodo` (`periodo`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `analisis_ventas_provincia_evolution`
+--
+
+DROP TABLE IF EXISTS `analisis_ventas_provincia_evolution`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `analisis_ventas_provincia_evolution` (
+ `semana` int(11) NOT NULL,
+ `provincia` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
+ `ventas` int(11) NOT NULL,
+ `año` int(11) NOT NULL,
+ `periodo` int(11) NOT NULL,
+ UNIQUE KEY `provincia` (`provincia`,`periodo`),
+ KEY `periodo` (`periodo`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `analisis_ventas_reino_evolution`
+--
+
+DROP TABLE IF EXISTS `analisis_ventas_reino_evolution`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `analisis_ventas_reino_evolution` (
+ `semana` int(11) NOT NULL,
+ `reino` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
+ `ventas` int(11) NOT NULL,
+ `año` int(11) NOT NULL,
+ `periodo` int(11) NOT NULL,
+ UNIQUE KEY `reino` (`reino`,`periodo`),
+ KEY `periodo` (`periodo`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `analisis_ventas_simple`
+--
+
+DROP TABLE IF EXISTS `analisis_ventas_simple`;
+/*!50001 DROP VIEW IF EXISTS `analisis_ventas_simple`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `analisis_ventas_simple` AS SELECT
+ 1 AS `Año`,
+ 1 AS `Semana`,
+ 1 AS `Importe`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `analisis_ventas_vendedor_evolution`
+--
+
+DROP TABLE IF EXISTS `analisis_ventas_vendedor_evolution`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `analisis_ventas_vendedor_evolution` (
+ `semana` int(11) NOT NULL,
+ `vendedor` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
+ `ventas` int(11) NOT NULL,
+ `año` int(11) NOT NULL,
+ `periodo` int(11) NOT NULL,
+ UNIQUE KEY `vendedor` (`vendedor`,`periodo`),
+ KEY `periodo` (`periodo`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `analisis_ventas_vista_evolution`
+--
+
+DROP TABLE IF EXISTS `analisis_ventas_vista_evolution`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `analisis_ventas_vista_evolution` (
+ `semana` int(11) NOT NULL,
+ `vista` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `ventas` int(11) NOT NULL,
+ `año` int(11) NOT NULL,
+ `periodo` int(11) NOT NULL,
+ UNIQUE KEY `vista` (`vista`,`periodo`),
+ KEY `periodo` (`periodo`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `calidad_detalle`
+--
+
+DROP TABLE IF EXISTS `calidad_detalle`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `calidad_detalle` (
+ `Id_Cliente` int(11) NOT NULL,
+ `calidad_parametros_id` int(2) NOT NULL,
+ `valor` int(3) DEFAULT NULL,
+ PRIMARY KEY (`Id_Cliente`,`calidad_parametros_id`),
+ KEY `calidad_parametros_detalle_idx` (`calidad_parametros_id`),
+ CONSTRAINT `calidad_parametros_detalle` FOREIGN KEY (`calidad_parametros_id`) REFERENCES `calidad_parametros` (`calidad_parametros_id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `calidad_parametros`
+--
+
+DROP TABLE IF EXISTS `calidad_parametros`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `calidad_parametros` (
+ `calidad_parametros_id` int(2) NOT NULL,
+ `descripcion` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`calidad_parametros_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `claims_ratio`
+--
+
+DROP TABLE IF EXISTS `claims_ratio`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `claims_ratio` (
+ `Id_Cliente` int(11) NOT NULL DEFAULT '0',
+ `Consumo` decimal(10,2) DEFAULT NULL,
+ `Reclamaciones` decimal(10,2) DEFAULT NULL,
+ `Ratio` decimal(5,2) DEFAULT NULL,
+ `recobro` decimal(5,2) DEFAULT NULL,
+ `inflacion` decimal(5,2) NOT NULL DEFAULT '1.00',
+ PRIMARY KEY (`Id_Cliente`),
+ CONSTRAINT `claims_ratio_ibfk_1` FOREIGN KEY (`Id_Cliente`) REFERENCES `vn2008`.`Clientes` (`id_cliente`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `comparativa_clientes`
+--
+
+DROP TABLE IF EXISTS `comparativa_clientes`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `comparativa_clientes` (
+ `Fecha` date NOT NULL DEFAULT '0000-00-00',
+ `Id_Cliente` int(11) NOT NULL DEFAULT '0',
+ `Propietario` int(11) DEFAULT NULL,
+ `titular` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
+ `suplente` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
+ `trabajador` int(11) DEFAULT NULL,
+ `actual` double DEFAULT NULL,
+ `pasado` double DEFAULT NULL,
+ `concepto` varchar(10) CHARACTER SET utf8 NOT NULL DEFAULT '',
+ KEY `cc_data_indez` (`Fecha`),
+ KEY `cc_Id_Cliente_index` (`Id_Cliente`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `customerDebtInventory`
+--
+
+DROP TABLE IF EXISTS `customerDebtInventory`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `customerDebtInventory` (
+ `Id_Cliente` int(11) NOT NULL,
+ `Debt` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT 'CREATE TABLE bi.customerDebtInventory\n\nSELECT Id_Cliente, sum(Euros) as Debt\n\nFROM \n(\nSELECT Id_Cliente, Entregado as Euros\n\nFROM Recibos \n\nWHERE Fechacobro < ''2017-01-01\n''\nUNION ALL\n\nSELECT Id_Cliente, - Importe \nFROM Facturas\nWHERE Fecha < ''2017-01-01''\n) sub \nGROUP BY Id_Cliente',
+ PRIMARY KEY (`Id_Cliente`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `customerRiskOverdue`
+--
+
+DROP TABLE IF EXISTS `customerRiskOverdue`;
+/*!50001 DROP VIEW IF EXISTS `customerRiskOverdue`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `customerRiskOverdue` AS SELECT
+ 1 AS `customer_id`,
+ 1 AS `amount`,
+ 1 AS `company_id`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `customer_risk`
+--
+
+DROP TABLE IF EXISTS `customer_risk`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `customer_risk` (
+ `customer_id` int(11) NOT NULL DEFAULT '0',
+ `company_id` smallint(6) unsigned NOT NULL DEFAULT '0',
+ `amount` decimal(10,2) DEFAULT NULL,
+ PRIMARY KEY (`customer_id`,`company_id`),
+ KEY `company_id` (`company_id`),
+ CONSTRAINT `customer_risk_ibfk_1` FOREIGN KEY (`customer_id`) REFERENCES `vn2008`.`Clientes` (`id_cliente`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `customer_risk_ibfk_2` FOREIGN KEY (`company_id`) REFERENCES `vn2008`.`empresa` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Saldo de apertura < 2015-01-01';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `daily_task_log`
+--
+
+DROP TABLE IF EXISTS `daily_task_log`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `daily_task_log` (
+ `state` varchar(250) COLLATE utf8_unicode_ci NOT NULL,
+ `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='No he encontrado el lugar en el que vicente almacena la hora en que se ejecutan las daily tasks, asi que he hecho esta tabla, a eliminar cuando se considere oportuno';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `defaulters`
+--
+
+DROP TABLE IF EXISTS `defaulters`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `defaulters` (
+ `client` int(11) NOT NULL,
+ `date` date NOT NULL,
+ `amount` double NOT NULL DEFAULT '0',
+ `defaulterSince` date DEFAULT NULL,
+ `hasChanged` tinyint(1) DEFAULT NULL,
+ PRIMARY KEY (`client`,`date`),
+ KEY `client` (`client`),
+ KEY `date` (`date`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `defaulting`
+--
+
+DROP TABLE IF EXISTS `defaulting`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `defaulting` (
+ `date` date NOT NULL,
+ `amount` double NOT NULL,
+ PRIMARY KEY (`date`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `f_tvc`
+--
+
+DROP TABLE IF EXISTS `f_tvc`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `f_tvc` (
+ `Id_Ticket` int(11) NOT NULL,
+ PRIMARY KEY (`Id_Ticket`),
+ CONSTRAINT `id_ticket_to_comisionantes` FOREIGN KEY (`Id_Ticket`) REFERENCES `vn2008`.`Tickets` (`Id_Ticket`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Almacenamos la lista de tickets para agilizar la consulta. Corresponde a los clientes REAL y en los almacenes COMISIONANTES';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `facturacion_media_anual`
+--
+
+DROP TABLE IF EXISTS `facturacion_media_anual`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `facturacion_media_anual` (
+ `Id_Cliente` int(11) NOT NULL,
+ `Consumo` double(17,0) DEFAULT NULL,
+ PRIMARY KEY (`Id_Cliente`),
+ CONSTRAINT `fmaId_Cliente` FOREIGN KEY (`Id_Cliente`) REFERENCES `vn2008`.`Clientes` (`id_cliente`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `last_Id_Cubo`
+--
+
+DROP TABLE IF EXISTS `last_Id_Cubo`;
+/*!50001 DROP VIEW IF EXISTS `last_Id_Cubo`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `last_Id_Cubo` AS SELECT
+ 1 AS `Id_Compra`,
+ 1 AS `Id_Article`,
+ 1 AS `warehouse_id`,
+ 1 AS `Id_Cubo`,
+ 1 AS `Packing`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `lastaction`
+--
+
+DROP TABLE IF EXISTS `lastaction`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `lastaction` (
+ `Id_Cliente` int(11) unsigned NOT NULL,
+ `Cliente` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `Ultima_accion` date DEFAULT NULL,
+ `Comercial` varchar(3) CHARACTER SET utf8 DEFAULT NULL,
+ PRIMARY KEY (`Id_Cliente`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `live_counter`
+--
+
+DROP TABLE IF EXISTS `live_counter`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `live_counter` (
+ `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `amount` double NOT NULL,
+ PRIMARY KEY (`odbc_date`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `mana_inventory_kk`
+--
+
+DROP TABLE IF EXISTS `mana_inventory_kk`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `mana_inventory_kk` (
+ `Id_Trabajador` int(11) NOT NULL,
+ `mana` double NOT NULL DEFAULT '0',
+ `dated` date NOT NULL,
+ PRIMARY KEY (`Id_Trabajador`,`dated`),
+ CONSTRAINT `fk_trabajador_mana_inventory` FOREIGN KEY (`Id_Trabajador`) REFERENCES `vn2008`.`Trabajadores` (`Id_Trabajador`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `movimientos_log`
+--
+
+DROP TABLE IF EXISTS `movimientos_log`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `movimientos_log` (
+ `idmovimientos_log` int(11) NOT NULL AUTO_INCREMENT,
+ `Id_Movimiento` int(11) NOT NULL,
+ `odbc_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `Id_Trabajador` int(11) NOT NULL,
+ `field_name` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `new_value` double DEFAULT NULL,
+ PRIMARY KEY (`idmovimientos_log`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `partitioning_information`
+--
+
+DROP TABLE IF EXISTS `partitioning_information`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `partitioning_information` (
+ `schema_name` varchar(10) CHARACTER SET utf8 NOT NULL,
+ `table_name` varchar(20) CHARACTER SET utf8 NOT NULL,
+ `date_field` varchar(20) CHARACTER SET utf8 DEFAULT NULL,
+ `table_depending` varchar(15) CHARACTER SET utf8 DEFAULT NULL,
+ `execution_order` tinyint(3) unsigned NOT NULL,
+ PRIMARY KEY (`schema_name`,`table_name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `primer_pedido`
+--
+
+DROP TABLE IF EXISTS `primer_pedido`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `primer_pedido` (
+ `Id_Cliente` int(11) NOT NULL,
+ `Id_Ticket` int(11) NOT NULL,
+ `month` tinyint(1) NOT NULL,
+ `year` smallint(2) NOT NULL,
+ `total` decimal(10,2) NOT NULL DEFAULT '0.00',
+ PRIMARY KEY (`Id_Cliente`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `rotacion`
+--
+
+DROP TABLE IF EXISTS `rotacion`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `rotacion` (
+ `Id_Article` int(11) NOT NULL,
+ `warehouse_id` smallint(6) unsigned NOT NULL,
+ `total` int(10) NOT NULL DEFAULT '0',
+ `rotacion` decimal(10,4) NOT NULL DEFAULT '0.0000',
+ `cm3` int(11) NOT NULL DEFAULT '0',
+ `almacenaje` decimal(10,4) NOT NULL DEFAULT '0.0000',
+ `manipulacion` decimal(10,4) NOT NULL DEFAULT '0.0000',
+ `auxiliar` decimal(10,4) NOT NULL DEFAULT '0.0000',
+ `mermas` decimal(10,4) NOT NULL DEFAULT '0.0000',
+ PRIMARY KEY (`Id_Article`,`warehouse_id`),
+ KEY `id_article_rotacion_idx` (`Id_Article`),
+ KEY `warehouse_id_rotacion_idx` (`warehouse_id`),
+ CONSTRAINT `id_article_rotaci` FOREIGN KEY (`Id_Article`) REFERENCES `vn2008`.`Articles` (`Id_Article`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `warehouse_id_rotaci` FOREIGN KEY (`warehouse_id`) REFERENCES `vn2008`.`warehouse` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Almacena los valores de rotacion en los ultimos 365 dias';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `saldos_bancos`
+--
+
+DROP TABLE IF EXISTS `saldos_bancos`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `saldos_bancos` (
+ `Semana` int(2) NOT NULL,
+ `Mes` int(2) NOT NULL,
+ `Año` int(4) NOT NULL,
+ `Entrada` double DEFAULT NULL,
+ `Salida` decimal(32,2) DEFAULT NULL,
+ `Saldo` double DEFAULT NULL,
+ `Id_Banco` int(11) NOT NULL DEFAULT '0',
+ `empresa_id` int(5) unsigned NOT NULL DEFAULT '0',
+ `Empresa` varchar(3) CHARACTER SET utf8 NOT NULL DEFAULT ''
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `saldos_bancos_pordia`
+--
+
+DROP TABLE IF EXISTS `saldos_bancos_pordia`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `saldos_bancos_pordia` (
+ `Fecha` date NOT NULL,
+ `Entrada` double DEFAULT NULL,
+ `Salida` decimal(32,2) DEFAULT NULL,
+ `Saldo` double DEFAULT NULL,
+ `Id_Banco` int(11) NOT NULL DEFAULT '0',
+ `empresa_id` int(5) unsigned NOT NULL DEFAULT '0',
+ `Empresa` varchar(3) CHARACTER SET utf8 NOT NULL DEFAULT '',
+ `Año` int(4) NOT NULL,
+ `Mes` int(2) NOT NULL,
+ `Dia` int(2) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `sales`
+--
+
+DROP TABLE IF EXISTS `sales`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `sales` (
+ `Id_Trabajador` int(10) unsigned NOT NULL,
+ `year` int(10) unsigned NOT NULL,
+ `month` int(10) unsigned NOT NULL,
+ `weight` int(11) NOT NULL DEFAULT '0',
+ `boss_aid` int(10) NOT NULL DEFAULT '0',
+ `boss_id` int(10) NOT NULL DEFAULT '0',
+ `comision` int(11) DEFAULT NULL,
+ PRIMARY KEY (`Id_Trabajador`,`year`,`month`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `tarifa_componentes`
+--
+
+DROP TABLE IF EXISTS `tarifa_componentes`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `tarifa_componentes` (
+ `Id_Componente` int(11) NOT NULL AUTO_INCREMENT,
+ `Componente` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `tarifa_componentes_series_id` int(11) NOT NULL,
+ `tarifa_class` smallint(6) DEFAULT NULL,
+ `tax` double DEFAULT NULL,
+ `is_renewable` tinyint(2) NOT NULL DEFAULT '1',
+ PRIMARY KEY (`Id_Componente`),
+ KEY `series_componentes_idx` (`tarifa_componentes_series_id`),
+ KEY `comp` (`tarifa_class`),
+ CONSTRAINT `serie_componente` FOREIGN KEY (`tarifa_componentes_series_id`) REFERENCES `tarifa_componentes_series` (`tarifa_componentes_series_id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `tarifa_componentes_series`
+--
+
+DROP TABLE IF EXISTS `tarifa_componentes_series`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `tarifa_componentes_series` (
+ `tarifa_componentes_series_id` int(11) NOT NULL AUTO_INCREMENT,
+ `Serie` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `base` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'Marca aquellas series que se utilizan para calcular el precio base de las ventas, a efectos estadisticos',
+ `margen` tinyint(4) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`tarifa_componentes_series_id`),
+ UNIQUE KEY `Serie_UNIQUE` (`Serie`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Permite organizar de forma ordenada los distintos componentes';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `tarifa_premisas`
+--
+
+DROP TABLE IF EXISTS `tarifa_premisas`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `tarifa_premisas` (
+ `Id_Premisa` int(11) NOT NULL AUTO_INCREMENT,
+ `premisa` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`Id_Premisa`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `tarifa_warehouse`
+--
+
+DROP TABLE IF EXISTS `tarifa_warehouse`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `tarifa_warehouse` (
+ `Id_Tarifa_Warehouse` int(11) NOT NULL AUTO_INCREMENT,
+ `warehouse_id` int(11) NOT NULL,
+ `Id_Premisa` int(11) NOT NULL,
+ `Valor` double NOT NULL,
+ PRIMARY KEY (`Id_Tarifa_Warehouse`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Almacena los valores de gasto por almacen';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `v_clientes_jerarquia`
+--
+
+DROP TABLE IF EXISTS `v_clientes_jerarquia`;
+/*!50001 DROP VIEW IF EXISTS `v_clientes_jerarquia`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_clientes_jerarquia` AS SELECT
+ 1 AS `Id_Cliente`,
+ 1 AS `Cliente`,
+ 1 AS `Comercial`,
+ 1 AS `Jefe`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `v_ventas_contables`
+--
+
+DROP TABLE IF EXISTS `v_ventas_contables`;
+/*!50001 DROP VIEW IF EXISTS `v_ventas_contables`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_ventas_contables` AS SELECT
+ 1 AS `year`,
+ 1 AS `month`,
+ 1 AS `importe`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `variablesKK`
+--
+
+DROP TABLE IF EXISTS `variablesKK`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `variablesKK` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `variable` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `value` double DEFAULT NULL,
+ `date` datetime DEFAULT NULL,
+ `text` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping routines for database 'bi'
+--
+/*!50003 DROP FUNCTION IF EXISTS `nz` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `nz`(dblCANTIDAD DOUBLE) RETURNS double
+BEGIN
+
+DECLARE dblRESULT DOUBLE;
+
+SET dblRESULT = IFNULL(dblCANTIDAD,0);
+
+RETURN dblRESULT;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `analisis_ventas_evolution_add` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `analisis_ventas_evolution_add`()
+BEGIN
+ DECLARE vPreviousPeriod INT;
+ DECLARE vCurrentPeriod INT;
+ DECLARE vLastPeriod INT;
+ DECLARE vMinPeriod INT DEFAULT 201400;
+ DECLARE vMaxPeriod INT DEFAULT vn2008.vnperiod(CURDATE());
+
+ DECLARE vYear INT;
+ DECLARE vWeek INT;
+
+ -- Almacen
+
+ SET vCurrentPeriod = IFNULL(vLastPeriod, vMinPeriod);
+
+ WHILE vCurrentPeriod < vMaxPeriod
+ DO
+ SELECT MAX(Periodo) INTO vPreviousPeriod
+ FROM bi.analisis_ventas_almacen_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_almacen_evolution
+ WHERE Periodo = vCurrentPeriod;
+
+ REPLACE bi.analisis_ventas_almacen_evolution(Almacen, Ventas, Semana,Año, Periodo)
+ SELECT Almacen, sum(Ventas) AS Ventas, vWeek, vYear, vCurrentPeriod
+ FROM (
+ SELECT almacen, sum(Importe) AS Ventas
+ FROM bi.analisis_ventas
+ WHERE vYear = Año
+ AND vWeek = Semana
+ GROUP BY almacen
+ UNION ALL
+ SELECT almacen, - sum(Importe) AS Ventas
+ FROM bi.analisis_ventas
+ WHERE vYear - 1 = Año
+ AND vWeek = Semana
+ GROUP BY almacen
+ UNION ALL
+ SELECT Almacen, Ventas
+ FROM bi.analisis_ventas_almacen_evolution
+ WHERE Periodo = vPreviousPeriod
+ ) sub
+ GROUP BY Almacen;
+ END WHILE;
+
+ -- Reino
+
+ SET vCurrentPeriod = vMinPeriod;
+
+ WHILE vCurrentPeriod < vMaxPeriod
+ DO
+ SELECT MAX(periodo) INTO vPreviousPeriod
+ FROM bi.analisis_ventas_reino_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_reino_evolution
+ WHERE Periodo = vCurrentPeriod;
+
+ REPLACE bi.analisis_ventas_reino_evolution(reino, ventas, semana,año, periodo)
+ SELECT reino, sum(ventas) AS ventas, vWeek, vYear, vCurrentPeriod
+ FROM (
+ SELECT Reino, sum(Importe) AS ventas
+ FROM bi.analisis_ventas
+ WHERE vYear = Año
+ AND vWeek = Semana
+ GROUP BY Reino
+ UNION ALL
+ SELECT Reino, - sum(Importe) AS ventas
+ FROM bi.analisis_ventas
+ WHERE vYear - 1 = Año
+ AND vWeek = Semana
+ GROUP BY Reino
+ UNION ALL
+ SELECT reino, ventas
+ FROM bi.analisis_ventas_reino_evolution
+ WHERE Periodo = vPreviousPeriod
+ ) sub
+ GROUP BY reino;
+ END WHILE;
+
+ -- Familia
+
+ SET vCurrentPeriod = vMinPeriod;
+
+ WHILE vCurrentPeriod < vMaxPeriod
+ DO
+ SELECT MAX(periodo) INTO vPreviousPeriod
+ FROM bi.analisis_ventas_familia_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_familia_evolution
+ WHERE Periodo = vCurrentPeriod;
+
+ REPLACE bi.analisis_ventas_familia_evolution(familia, ventas, semana,año, periodo)
+ SELECT Familia, sum(ventas) AS ventas, vWeek, vYear, vCurrentPeriod
+ FROM (
+ SELECT Familia, sum(Importe) AS ventas
+ FROM bi.analisis_ventas
+ WHERE vYear = Año
+ AND vWeek = Semana
+ GROUP BY familia
+ UNION ALL
+ SELECT Familia, - sum(Importe) AS ventas
+ FROM bi.analisis_ventas
+ WHERE vYear - 1 = Año
+ AND vWeek = Semana
+ GROUP BY familia
+ UNION ALL
+ SELECT familia, ventas
+ FROM bi.analisis_ventas_familia_evolution
+ WHERE Periodo = vPreviousPeriod
+ ) sub
+ 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;
+
+ WHILE vCurrentPeriod < vMaxPeriod
+ DO
+ SELECT MAX(periodo) INTO vPreviousPeriod
+ FROM bi.analisis_ventas_provincia_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_provincia_evolution
+ WHERE Periodo = vCurrentPeriod;
+
+ REPLACE bi.analisis_ventas_provincia_evolution(provincia, ventas, semana,año, periodo)
+ SELECT Provincia, sum(ventas) AS ventas, vWeek, vYear, vCurrentPeriod
+ FROM (
+ SELECT Provincia, sum(Importe) AS ventas
+ FROM bi.analisis_ventas
+ WHERE vYear = Año
+ AND vWeek = Semana
+ GROUP BY Provincia
+ UNION ALL
+ SELECT Provincia, - sum(Importe) AS ventas
+ FROM bi.analisis_ventas
+ WHERE vYear - 1 = Año
+ AND vWeek = Semana
+ GROUP BY Provincia
+ UNION ALL
+ SELECT provincia, ventas
+ FROM bi.analisis_ventas_provincia_evolution
+ WHERE Periodo = vPreviousPeriod
+ ) sub
+ GROUP BY Provincia;
+ END WHILE;
+
+ -- Vista
+
+ SET vCurrentPeriod = vMinPeriod;
+
+ WHILE vCurrentPeriod < vMaxPeriod
+ DO
+ SELECT MAX(periodo) INTO vPreviousPeriod
+ FROM bi.analisis_ventas_vista_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_vista_evolution
+ WHERE Periodo = vCurrentPeriod;
+
+ REPLACE bi.analisis_ventas_vista_evolution(vista, ventas, semana,año, periodo)
+ SELECT vista, sum(ventas) AS ventas, vWeek, vYear, vCurrentPeriod
+ FROM (
+ SELECT Vista, sum(Importe) AS ventas
+ FROM bi.analisis_ventas
+ WHERE vYear = Año
+ AND vWeek = Semana
+ GROUP BY Vista
+ UNION ALL
+ SELECT Vista, - sum(Importe) AS ventas
+ FROM bi.analisis_ventas
+ WHERE vYear - 1 = Año
+ AND vWeek = Semana
+ GROUP BY Vista
+ UNION ALL
+ SELECT vista, ventas
+ FROM bi.analisis_ventas_vista_evolution
+ WHERE Periodo = vPreviousPeriod
+ ) sub
+ GROUP BY Vista;
+ END WHILE;
+
+ -- Vendedor
+
+ SET vCurrentPeriod = vMinPeriod;
+
+ WHILE vCurrentPeriod < vMaxPeriod
+ DO
+ SELECT MAX(periodo) INTO vPreviousPeriod
+ FROM bi.analisis_ventas_vendedor_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_vendedor_evolution
+ WHERE Periodo = vCurrentPeriod;
+
+ REPLACE bi.analisis_ventas_vendedor_evolution(vendedor, ventas, semana,año, periodo)
+ SELECT Comercial AS vendedor, sum(ventas) AS ventas, vWeek, vYear, vCurrentPeriod
+ FROM (
+ SELECT Comercial, sum(Importe) AS ventas
+ from bi.analisis_ventas
+ WHERE vYear = Año
+ AND vWeek = Semana
+ GROUP BY Comercial
+ UNION ALL
+ SELECT Comercial, - sum(Importe) AS ventas
+ from bi.analisis_ventas
+ WHERE vYear - 1 = Año
+ AND vWeek = Semana
+ GROUP BY Comercial
+ UNION ALL
+ SELECT vendedor, ventas
+ FROM bi.analisis_ventas_vendedor_evolution
+ WHERE Periodo = vPreviousPeriod
+ ) sub
+ GROUP BY vendedor;
+ END WHILE;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `analisis_ventas_simple` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `analisis_ventas_simple`()
+BEGIN
+
+TRUNCATE bi.analisis_grafico_simple;
+
+INSERT INTO bi.analisis_grafico_simple SELECT * FROM bi.analisis_grafico_ventas;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `analisis_ventas_update` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `analisis_ventas_update`()
+BEGIN
+
+ DECLARE vLastMonth DATE;
+
+ SET vLastMonth = util.firstDayOfMonth(TIMESTAMPADD(MONTH, -1, CURDATE()));
+
+ DELETE FROM bi.analisis_ventas
+ WHERE Año > YEAR(vLastMonth)
+ OR (Año = YEAR(vLastMonth) AND Mes >= MONTH(vLastMonth));
+
+ INSERT INTO bi.analisis_ventas
+
+ SELECT
+ `tp`.`Tipo` AS `Familia`,
+ `r`.`reino` AS `Reino`,
+ `tr`.`CodigoTrabajador` AS `Comercial`,
+ `tr2`.`CodigoTrabajador` AS `Comprador`,
+ `p`.`name` AS `Provincia`,
+ `w`.`name` AS `almacen`,
+ `time`.`year` AS `Año`,
+ `time`.`month` AS `Mes`,
+ `time`.`week` AS `Semana`,
+ `v`.`vista` AS `Vista`,
+ `bt`.`importe` AS `Importe`
+ FROM
+ (((((((((`bs`.`ventas` `bt`
+ LEFT JOIN `vn2008`.`Tipos` `tp` ON ((`tp`.`tipo_id` = `bt`.`tipo_id`)))
+ LEFT JOIN `vn2008`.`reinos` `r` ON ((`r`.`id` = `tp`.`reino_id`)))
+ LEFT JOIN `vn2008`.`Clientes` c on c.Id_Cliente = bt.Id_Cliente
+ LEFT JOIN `vn2008`.`Trabajadores` `tr` ON ((`tr`.`Id_Trabajador` = `c`.`Id_Trabajador`)))
+ LEFT JOIN `vn2008`.`Trabajadores` `tr2` ON ((`tr2`.`Id_Trabajador` = `tp`.`Id_Trabajador`)))
+ JOIN vn2008.time on time.date = bt.fecha
+ JOIN vn2008.Movimientos m on m.Id_Movimiento = bt.Id_Movimiento
+ LEFT JOIN `vn2008`.`Tickets` `t` ON ((`t`.`Id_Ticket` = `m`.`Id_Ticket`)))
+ JOIN vn2008.Agencias a on a.Id_Agencia = t.Id_Agencia
+ LEFT JOIN `vn2008`.`Vistas` `v` ON ((`v`.`vista_id` = `a`.`Vista`)))
+ LEFT JOIN `vn2008`.`Consignatarios` `cs` ON ((`cs`.`Id_Consigna` = `t`.`Id_Consigna`)))
+ LEFT JOIN `vn2008`.`province` `p` ON ((`p`.`province_id` = `cs`.`province_id`)))
+ LEFT JOIN `vn2008`.`warehouse` `w` ON ((`w`.`id` = `t`.`warehouse_id`)))
+ WHERE bt.fecha >= vLastMonth AND r.mercancia;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `call_add` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `call_add`()
+BEGIN
+
+DECLARE datSTART DATETIME DEFAULT '2012-03-01'/*CURDATE()*/ ;
+-- control
+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)
+SELECT vn2008.Averiguar_ComercialCliente(pb.Id_Cliente,Fecha) CodTrabajadorCartera,ll.CodigoTrabajador, dur_in,
+ dur_out, ll.Fecha,YEAR(ll.Fecha) `year`, MONTH(ll.Fecha) `month`,WEEK(ll.Fecha,7) `week`, Hora,phone
+FROM
+(
+SELECT Id_Trabajador,CodigoTrabajador, IFNULL(billsec,0) dur_in, 0 dur_out, 1 as Recibidas, NULL as Emitidas, calldate as Fecha,
+ hour(calldate) as Hora,src as phone
+FROM vn2008.Trabajadores T
+INNER JOIN vn2008.cdr C ON C.dstchannel LIKE CONCAT('%', T.extension, '%')
+WHERE calldate >= datSTART AND LENGTH(C.src) >=9 AND disposition = 'ANSWERED' AND duration
+UNION ALL
+SELECT Id_Trabajador,CodigoTrabajador,0 dur_in, IFNULL(billsec,0) dur_out, NULL as Recibidas, 1 as Emitidas, date(calldate), hour(calldate),dst
+FROM vn2008.Trabajadores T
+INNER JOIN vn2008.cdr C ON C.src = T.extension
+WHERE calldate >= datSTART AND LENGTH(C.dst) >=9 AND disposition = 'ANSWERED' AND duration
+) ll
+INNER JOIN vn2008.Permisos USING(Id_Trabajador)
+LEFT JOIN vn2008.v_phonebook pb ON pb.Telefono = ll.phone
+WHERE Id_Grupo = 6;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `claim_ratio_routine` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `claim_ratio_routine`()
+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 *
+ Preu * (100 - Descuento) / 100 ,2) AS Importe, t.Id_Ticket
+ FROM vn2008.Tickets t
+ JOIN vn2008.Movimientos m ON m.Id_Ticket = t.Id_Ticket
+ WHERE Id_Article = 11
+ AND Concepte NOT LIKE '$%'
+ AND Fecha > '2014-01-01'
+ HAVING nz(Importe) <> 0;
+
+DELETE mc.*
+ FROM vn2008.Movimientos_componentes mc
+ JOIN vn2008.Movimientos m ON m.Id_Movimiento = mc.Id_Movimiento
+ JOIN vn2008.Tickets t ON t.Id_Ticket = m.Id_Ticket
+ WHERE m.Id_Article = 11
+ AND m.Concepte NOT LIKE '$%'
+ AND t.Fecha > '2017-01-01';
+
+INSERT INTO vn2008.Movimientos_componentes(Id_Movimiento, Id_Componente, Valor)
+ SELECT m.Id_Movimiento, 34, round(m.Preu * (100 - m.Descuento)/100,4)
+ FROM vn2008.Movimientos m
+ JOIN vn2008.Tickets t ON t.Id_Ticket = m.Id_Ticket
+ WHERE m.Id_Article = 11
+ AND m.Concepte NOT LIKE '$%'
+ AND t.Fecha > '2017-01-01';
+
+UPDATE vn2008.Movimientos m
+ JOIN vn2008.Tickets t ON t.Id_Ticket = m.Id_Ticket
+ SET Concepte = CONCAT('$ ',Concepte)
+ WHERE Id_Article = 11
+ 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)
+ SELECT cm.Fecha
+ , cm.Id_Cliente
+ , concat('Claim ',cm.id,' : ', m.Concepte)
+ ,round( -1 * ((sensib -1)/4) * Cantidad *
+ Preu * (100 - Descuento) / 100, 2) AS Reclamaciones
+ , 4
+ , m.Id_Ticket
+ FROM vn2008.Movimientos m
+ JOIN vn2008.cl_act ca USING(Id_Movimiento)
+ JOIN vn2008.cl_main cm ON cm.id = ca.cl_main_id
+ WHERE ca.cl_sol_id NOT IN (1,5)
+ 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)
+ SELECT cm.Fecha
+ , cm.Id_Cliente
+ , concat('Claim_mana ',cm.id,' : ', m.Concepte)
+ ,round( ((sensib -1)/4) * Cantidad * Preu * (100 - Descuento) / 100, 2)
+ AS Reclamaciones
+ ,3
+ ,m.Id_Ticket
+ FROM vn2008.Movimientos m
+ JOIN vn2008.cl_act ca USING(Id_Movimiento)
+ JOIN vn2008.cl_main cm ON cm.id = ca.cl_main_id
+ WHERE ca.cl_sol_id NOT IN (1,5)
+ AND ca.greuge = 0
+ 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
+ WHERE ca.cl_sol_id NOT IN (1,5)
+ AND ca.greuge = 0
+ AND cm.cl_est_id = 3;
+
+
+
+-- Recobros
+
+DROP TEMPORARY TABLE IF EXISTS tmp.ticket_list;
+CREATE TEMPORARY TABLE tmp.ticket_list
+(PRIMARY KEY (Id_Ticket))
+SELECT DISTINCT t.Id_Ticket
+ FROM vn2008.Movimientos_componentes mc
+ JOIN vn2008.Movimientos m ON mc.Id_Movimiento = m.Id_Movimiento
+ JOIN vn2008.Tickets t ON t.Id_Ticket = m.Id_Ticket
+ JOIN vn2008.Tickets_state ts ON ts.Id_Ticket = t.Id_Ticket
+ JOIN vncontrol.inter i ON i.inter_id = ts.inter_id
+ JOIN vn2008.state s ON s.id = i.state_id
+ WHERE mc.Id_Componente = 17
+ AND mc.greuge = 0
+ AND t.Fecha >= '2016-10-01'
+ AND t.Fecha < CURDATE()
+ AND t.warehouse_id <> 41
+ AND s.alert_level >= 3;
+
+DELETE g.*
+ FROM vn2008.Greuges g
+ JOIN tmp.ticket_list t ON g.Id_Ticket = t.Id_Ticket
+ WHERE Greuges_type_id = 2;
+
+INSERT INTO vn2008.Greuges (Id_Cliente,Comentario,Importe,Fecha,
+ Greuges_type_id, Id_Ticket)
+ SELECT Id_Cliente
+ ,concat('recobro ', m.Id_Ticket), - round(SUM(mc.Valor*Cantidad),2)
+ AS dif
+ ,date(t.Fecha)
+ , 2
+ ,tt.Id_Ticket
+ FROM vn2008.Movimientos m
+ JOIN vn2008.Tickets t ON t.Id_Ticket = m.Id_Ticket
+ JOIN tmp.ticket_list tt ON tt.Id_Ticket = t.Id_Ticket
+ JOIN vn2008.Movimientos_componentes mc
+ ON mc.Id_Movimiento = m.Id_Movimiento AND mc.Id_Componente = 17
+ GROUP BY t.Id_Ticket
+ HAVING ABS(dif) > 1;
+
+UPDATE vn2008.Movimientos_componentes mc
+ JOIN vn2008.Movimientos m ON m.Id_Movimiento = mc.Id_Movimiento
+ JOIN tmp.ticket_list tt ON tt.Id_Ticket = m.Id_Ticket
+ 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;
+
+REPLACE bi.claims_ratio(Id_Cliente, Consumo, Reclamaciones, Ratio, recobro)
+ SELECT fm.Id_Cliente, 12 * fm.Consumo, Reclamaciones,
+ round(Reclamaciones / (12*fm.Consumo),4) AS Ratio, 0
+ FROM bi.facturacion_media_anual fm
+ LEFT JOIN(
+ SELECT cm.Id_Cliente, round(sum(-1 * ((sensib -1)/4) *
+ Cantidad * Preu * (100 - Descuento) / 100))
+ AS Reclamaciones
+ FROM vn2008.Movimientos m
+ JOIN vn2008.cl_act ca
+ ON ca.Id_Movimiento = m.Id_Movimiento
+ JOIN vn2008.cl_main cm ON cm.id = ca.cl_main_id
+ WHERE ca.cl_sol_id NOT IN (1,5)
+ AND cm.cl_est_id = 3
+ AND cm.Fecha >= TIMESTAMPADD(YEAR, -1, CURDATE())
+ GROUP BY cm.Id_Cliente
+ ) 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
+ FROM vn2008.Greuges
+ WHERE Fecha <= CURDATE()
+ GROUP BY Id_Cliente
+ ) g ON g.Id_Cliente = cr.Id_Cliente
+ 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 ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `clean` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `clean`()
+BEGIN
+DECLARE vDateShort DATETIME;
+DECLARE vDateLong DATETIME;
+
+SET vDateShort = TIMESTAMPADD(MONTH, -2, CURDATE());
+SET vDateLong = TIMESTAMPADD(MONTH, -18,CURDATE());
+
+INSERT INTO bi.daily_task_log(state) VALUES('clean START');
+
+DELETE FROM bi.comparativa_clientes WHERE Fecha < vDateLong;
+DELETE FROM bi.Greuge_Evolution WHERE Fecha < vDateShort AND weekday(Fecha) != 1;
+
+INSERT INTO bi.daily_task_log(state) VALUES('clean END');
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `clean_launcher` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `clean_launcher`()
+BEGIN
+
+ call vn2008.clean(0);
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `comparativa_add` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `comparativa_add`()
+BEGIN
+ DECLARE lastCOMP INT; # Se trata de una variable para almacenar el ultimo valor del Periodo
+
+ 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
+
+ REPLACE vn2008.Comparativa(Periodo, Id_Article, warehouse_id, Cantidad,price)
+ SELECT vn2008.vnperiod(T.Fecha) AS Periodo
+ , Id_Article
+ , warehouse_id
+ , SUM(Cantidad) AS Total
+ , SUM(Cantidad * Preu * (100 - Descuento) / 100) precio
+ FROM vn2008.Movimientos M
+ JOIN vn2008.Tickets T USING (Id_Ticket)
+ JOIN vn2008.Articles A USING (Id_Article)
+ LEFT JOIN vn2008.Tipos ti ON ti.tipo_id = A.tipo_id
+ LEFT JOIN vn2008.reinos r ON r.id = ti.reino_id
+ WHERE T.Fecha BETWEEN TIMESTAMPADD(DAY,-60,CURDATE()) AND TIMESTAMPADD(DAY,-30,CURDATE())
+ AND T.Id_Cliente NOT IN(400,200)
+ AND display <> 0 AND warehouse_id NOT IN (0,13)
+ GROUP BY Id_Article, Periodo, warehouse_id;
+
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `comparativa_add_manual` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `comparativa_add_manual`(IN dat_START DATE, IN dat_END DATE)
+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);
+
+ DELETE FROM vn2008.Comparativa WHERE Periodo BETWEEN vn2008.vnperiod(dat_START) and vn2008.vnperiod(dat_END);
+
+ REPLACE vn2008.Comparativa(Periodo, Id_Article, warehouse_id, Cantidad,price)
+ SELECT tm.period AS Periodo
+ , M.Id_Article
+ , t.warehouse_id
+ , SUM(Cantidad) AS Total
+ , sum(v.importe) AS precio
+ FROM vn2008.Movimientos M
+ JOIN vn2008.Tickets t on t.Id_Ticket = M.Id_Ticket
+ JOIN bs.ventas v on v.Id_Movimiento = M.Id_Movimiento
+ JOIN vn2008.time tm on tm.date = v.fecha
+ JOIN vn2008.Tipos tp on v.tipo_id = tp.tipo_id
+ LEFT JOIN vn2008.reinos r ON r.id = tp.reino_id
+ WHERE v.fecha BETWEEN datINI and datFIN
+ AND r.display <> 0 AND t.warehouse_id NOT IN (0,13)
+ GROUP BY Id_Article, Periodo, t.warehouse_id;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `customer_risk_update` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `customer_risk_update`(v_customer INT, v_company INT, v_amount DECIMAL(10,2))
+BEGIN
+ IF v_amount IS NOT NULL
+ THEN
+ INSERT INTO bi.customer_risk
+ SET
+ customer_id = v_customer,
+ company_id = v_company,
+ amount = v_amount
+ ON DUPLICATE KEY UPDATE
+ amount = amount + VALUES(amount);
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `defaultersFromDate` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `defaultersFromDate`(IN vDate DATE)
+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
+ (select client, amount, defaulterSince
+ from defaulters
+ where date = vDate and hasChanged) today
+ join
+ (select client, amount
+ from defaulters
+ where date = TIMESTAMPADD(DAY,-1,vDate)) yesterday using(client)
+
+ having today.amount > 0 and difference <> 0
+ ) newDefaulters
+)t1 left join vn2008.Clientes c ON t1.client = c.Id_Cliente
+ left join vn.worker w ON w.id = c.Id_Trabajador;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `defaulting` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `defaulting`(IN vDate DATE)
+BEGIN
+ DECLARE vDone BOOLEAN;
+ DECLARE vClient INT;
+ DECLARE vAmount INT;
+ DECLARE vDateInvoice DATE;
+ DECLARE vAmountInvoice DECIMAL(10,2);
+ DECLARE vDueDay INT;
+ DECLARE vGraceDays INT;
+ DECLARE defaulters CURSOR FOR
+ SELECT client, amount, Vencimiento, graceDays FROM bi.defaulters d
+ JOIN vn2008.Clientes c ON c.Id_Cliente = d.client
+ JOIN vn2008.pay_met pm ON pm.id = c.pay_met_id
+ WHERE hasChanged AND date = vDate;
+
+ DECLARE invoices CURSOR FOR
+ SELECT Fecha, importe FROM vn2008.Facturas f
+ 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');
+
+ DELETE FROM bi.defaulters WHERE date = vDate;
+
+ INSERT INTO bi.defaulters(client, date, amount)
+ SELECT customer_id, vDate, FLOOR(SUM(amount)) AS amount
+ FROM bi.customerRiskOverdue
+ GROUP BY customer_id;
+
+ -- marcamos si ha cambiado y heredamos la fecha defaulterSince
+ UPDATE bi.defaulters d
+ JOIN (
+ SELECT * FROM(
+ SELECT client, amount , defaulterSince FROM bi.defaulters
+ WHERE date <= TIMESTAMPADD(DAY,-1, vDate)
+ ORDER BY date DESC) t GROUP BY client
+ ) yesterday using(client)
+ SET d.hasChanged = IF(d.amount <> yesterday.amount, 1, 0),
+ d.defaulterSince = yesterday.defaulterSince
+ WHERE d.date = vDate ;
+
+ OPEN defaulters;
+ defaulters: LOOP
+ SET vDone = FALSE;
+ SET vAmount = 0;
+ FETCH defaulters INTO vClient,vAmount, vDueDay, vGraceDays;
+ IF vDone THEN
+ LEAVE defaulters;
+ END IF;
+ OPEN invoices;
+ invoices:LOOP
+
+ FETCH invoices INTO vDateInvoice, vAmountInvoice;
+ IF vDone THEN
+ LEAVE invoices;
+ END IF;
+
+ IF TIMESTAMPADD(DAY, vGraceDays, vn2008.paymentday(vDateInvoice, vDueDay)) <= vDate THEN
+ SET vAmount = vAmount - vAmountInvoice;
+ IF vAmount <= 0 THEN
+ UPDATE defaulters SET defaulterSince = vn2008.paymentday(vDateInvoice, vDueDay)
+ WHERE client = vClient and date = vDate;
+
+ SET vAmount = 0;
+ LEAVE invoices;
+ END IF;
+ END IF;
+ END LOOP;
+ CLOSE invoices;
+ END LOOP;
+ CLOSE defaulters;
+ DELETE FROM bi.defaulting WHERE date = vDate;
+
+ INSERT INTO bi.defaulting(date, amount)
+ SELECT vDate, SUM(amount)
+ FROM bi.defaulters
+ WHERE date = vDate and amount > 0;
+
+ CALL vn.clientFreeze();
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `defaultingkk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `defaultingkk`(IN vDate DATE)
+BEGIN
+ DECLARE done BIT DEFAULT 0;
+ DECLARE vClient INT;
+ DECLARE vAmount INT;
+ DECLARE vDateInvoice DATE;
+ DECLARE vAmountInvoice DECIMAL(10,2);
+ DECLARE vDueDay INT;
+ DECLARE vGraceDays INT;
+ DECLARE defaulters CURSOR FOR
+ SELECT client, amount, Vencimiento, graceDays FROM bi.defaulters d
+ JOIN vn2008.Clientes c ON c.Id_Cliente = d.client
+ JOIN vn2008.pay_met pm ON pm.id = c.pay_met_id
+ WHERE hasChanged AND date = vDate;
+
+ DECLARE invoices CURSOR FOR
+ SELECT Fecha, importe FROM vn2008.Facturas f
+ 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');
+
+ DELETE FROM bi.defaulters WHERE date = vDate;
+
+ INSERT INTO bi.defaulters(client, date, amount)
+ SELECT customer_id, vDate, FLOOR(SUM(amount)) AS amount
+ 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
+ WHERE date = TIMESTAMPADD(DAY,-1, vDate)
+ GROUP BY client
+ ) yesterday using(client)
+ SET d.hasChanged = IF(d.amount <> yesterday.amount, 1, 0),
+ d.defaulterSince = yesterday.defaulterSince
+ WHERE d.date = vDate ;
+
+ OPEN defaulters;
+ defaulters: BEGIN
+ REPEAT
+ FETCH defaulters INTO vClient,vAmount, vDueDay, vGraceDays;
+ OPEN invoices;
+ invoices:BEGIN
+ REPEAT
+
+ FETCH invoices INTO vDateInvoice, vAmountInvoice;
+ IF TIMESTAMPADD(DAY, vGraceDays, vn2008.paymentday(vDateInvoice, vDueDay)) <= vDate THEN
+ SET vAmount = vAmount - vAmountInvoice;
+ IF vAmount < 0 THEN
+ UPDATE defaulters SET defaulterSince = vn2008.paymentday(vDateInvoice, vDueDay)
+ WHERE client = vClient and date = vDate;
+ SET vAmount = 0;
+ LEAVE invoices;
+ END IF;
+ END IF;
+ UNTIL done END REPEAT;
+ END invoices;
+ CLOSE invoices;
+ UNTIL done OR vClient IS NULL END REPEAT;
+ END defaulters;
+ CLOSE defaulters;
+ DELETE FROM bi.defaulting WHERE date = vDate;
+
+ INSERT INTO bi.defaulting(date, amount)
+ SELECT vDate, SUM(amount)
+ FROM bi.defaulters
+ WHERE date = vDate and amount > 0;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `defaulting_launcher` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `defaulting_launcher`()
+BEGIN
+
+ CALL bi.defaulting(curdate());
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `equaliza` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+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 */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `facturacion_media_anual_update` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+REPLACE bi.facturacion_media_anual(Id_Cliente, Consumo)
+select Id_Cliente, avg(Consumo)
+from (
+ Select Id_Cliente, YEAR(fecha) year, MONTH(fecha) month, sum(importe) as Consumo
+ from bs.ventas
+ where fecha >= TIMESTAMPADD(YEAR,-1,CURDATE())
+ group by Id_Cliente, year, month
+) vol
+group by Id_Cliente;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `greuge_dif_porte_add` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `greuge_dif_porte_add`()
+BEGIN
+
+DECLARE datSTART DATETIME DEFAULT TIMESTAMPADD(DAY,-10,CURDATE());
+DECLARE datEND DATETIME DEFAULT TIMESTAMPADD(DAY,-1,CURDATE());
+
+DROP TEMPORARY TABLE IF EXISTS tmp.dp;
+
+CREATE TEMPORARY TABLE tmp.dp
+ (PRIMARY KEY (Id_Ticket))
+ SELECT
+ t.Id_Ticket,
+ SUM(az.price * IF(
+ e.EsBulto = 71
+ AND ISNULL(e.Id_Article)
+ AND a.Vista = 2,
+ 0.75,
+ 1
+ )
+ ) AS teorico,
+ 00000.00 as practico,
+ 00000.00 as greuge
+ FROM
+ vn2008.Tickets t
+ JOIN vn2008.Clientes cli ON cli.Id_cliente = t.Id_Cliente
+ LEFT JOIN vn2008.expeditions e ON e.ticket_id = t.Id_Ticket
+ JOIN vn2008.Consignatarios c ON c.Id_Consigna = t.Id_Consigna
+ JOIN vn2008.Agencias a ON a.Id_Agencia = t.Id_Agencia
+ JOIN vn2008.Agencias_province ap ON t.warehouse_id = ap.warehouse_id
+ AND ap.province_id = c.province_id
+ AND ap.agency_id = a.agency_id
+ JOIN vn2008.Agencias_zonas az ON az.Id_Agencia = t.Id_Agencia
+ AND az.zona = ap.zona
+ AND t.warehouse_id = az.warehouse_id
+ AND az.Id_Article = e.EsBulto
+ WHERE
+ t.Fecha between datSTART AND datEND
+ AND cli.`real`
+ AND t.empresa_id IN (442 , 567)
+ GROUP BY t.Id_Ticket;
+
+DROP TEMPORARY TABLE IF EXISTS tmp.dp_aux;
+
+CREATE TEMPORARY TABLE tmp.dp_aux
+ (PRIMARY KEY (Id_Ticket))
+ SELECT t.Id_Ticket, sum(freight) as porte
+ FROM tmp.dp
+ JOIN vn2008.Tickets t ON t.Id_Ticket = dp.Id_Ticket
+ JOIN vn2008.Rutas r on r.Id_Ruta = t.Id_Ruta
+ JOIN vn2008.Agencias a on a.Id_Agencia = r.Id_Agencia
+ JOIN (
+ SELECT
+ M.Id_Ticket,
+ M.Cantidad * (vn2008.CM3(b.Id_Compra) / 1000000 / C.Packing) * (az.price / 0.08) AS freight
+ FROM
+ vn2008.Movimientos M
+ JOIN vn2008.Tickets t ON t.Id_Ticket = M.Id_Ticket
+ JOIN vn2008.Consignatarios c ON c.Id_Consigna = t.Id_Consigna
+ JOIN bi.Last_buy_id b ON M.Id_Article = b.Id_Article
+ AND t.warehouse_id = b.warehouse_id
+ JOIN vn2008.Compres C ON b.Id_Compra = C.Id_Compra
+ JOIN vn2008.Agencias a ON a.Id_Agencia = t.Id_Agencia
+ JOIN vn2008.Agencias_province ap ON t.warehouse_id = ap.warehouse_id
+ AND ap.province_id = c.province_id
+ AND ap.agency_id = a.agency_id
+ JOIN vn2008.Agencias_zonas az ON az.Id_Agencia = t.Id_Agencia
+ AND az.zona = ap.zona
+ AND t.warehouse_id = az.warehouse_id
+ AND az.Id_Article = 71
+ WHERE t.Fecha between datSTART AND datEND
+ ) vmv ON vmv.Id_Ticket = t.Id_Ticket
+ WHERE a.is_volumetric
+ GROUP BY t.Id_Ticket;
+
+ UPDATE tmp.dp
+ JOIN tmp.dp_aux using(Id_Ticket)
+ SET teorico = porte;
+
+DROP TEMPORARY TABLE IF EXISTS tmp.dp_aux;
+
+CREATE TEMPORARY TABLE tmp.dp_aux
+ (PRIMARY KEY (Id_Ticket))
+ SELECT dp.Id_Ticket, sum(Cantidad * Valor) as valor
+ FROM tmp.dp
+ JOIN vn2008.Movimientos m using(Id_Ticket)
+ JOIN vn2008.Movimientos_componentes mc using(Id_Movimiento)
+ WHERE Id_Componente = 15
+ GROUP BY m.Id_Ticket;
+
+UPDATE tmp.dp
+ JOIN tmp.dp_aux using(Id_Ticket)
+ SET practico = valor;
+
+DROP TEMPORARY TABLE tmp.dp_aux;
+
+CREATE TEMPORARY TABLE tmp.dp_aux
+ (PRIMARY KEY (Id_Ticket))
+ SELECT dp.Id_Ticket, Importe
+ FROM tmp.dp
+ JOIN
+ (
+ SELECT Id_Ticket, sum(Importe) as Importe
+ FROM vn2008.Greuges g
+ WHERE Greuges_type_id = 1
+ GROUP BY Id_Ticket
+ ) sub using(Id_Ticket);
+
+UPDATE tmp.dp
+ JOIN tmp.dp_aux using(Id_Ticket)
+ SET greuge = Importe;
+
+
+INSERT INTO vn2008.Greuges (Id_Cliente,Comentario,Importe,Fecha, Greuges_type_id, Id_Ticket)
+SELECT t.Id_Cliente
+ , concat('dif_porte ', dp.Id_Ticket)
+ , round(teorico - practico - greuge,2) as Importe
+ , date(t.Fecha)
+ , 1
+ ,t.Id_Ticket
+ FROM tmp.dp
+ JOIN vn2008.Tickets t on dp.Id_Ticket = t.Id_Ticket
+ WHERE ABS(teorico - practico - greuge) > 1;
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `Greuge_Evolution_Add` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+
+ */
+
+
+
+ DECLARE datFEC DATE;
+ DECLARE datFEC_TOMORROW DATE;
+ DECLARE datFEC_LASTYEAR 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', 'Greuge_Evolution_Add' ,CONCAT('ERROR ', IFNULL(@errno,0), ': ', ifnull(@text,'texto')));
+ INSERT INTO vn2008.mail (`to`,`subject`,`text`) VALUES ('pako@verdnatura.es', 'Greuge_Evolution_Add' ,CONCAT('ERROR ', IFNULL(@errno,0), ': ', ifnull(@text,'texto')));
+
+ END;
+
+ SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
+
+
+ INSERT INTO vn2008.daily_task_log(consulta) VALUES('Greuge Evolution Add START');
+
+ SELECT TIMESTAMPADD(DAY,1,MAX(Fecha)),TIMESTAMPADD(DAY,2,MAX(Fecha)) INTO datFEC, datFEC_TOMORROW FROM bi.Greuge_Evolution;
+
+ SET datFEC_LASTYEAR = TIMESTAMPADD(YEAR,-1,datFEC);
+
+ DELETE FROM bi.Greuge_Evolution WHERE Fecha >= datFEC;
+
+ DROP TEMPORARY TABLE IF EXISTS maxInvoice;
+
+ CREATE TEMPORARY TABLE maxInvoice
+ (PRIMARY KEY (Id_Cliente))
+ ENGINE = MEMORY
+ SELECT DISTINCT Id_Cliente, max(Fecha) as maxFecha
+ FROM vn2008.Facturas
+ GROUP BY Id_Cliente
+ HAVING maxFecha < timestampadd(month,-2,datFEC);
+
+ INSERT INTO vn2008.daily_task_log(consulta) VALUES('Greuge Evolution Add MIDDLE');
+
+ WHILE datFEC < CURDATE() DO
+
+ REPLACE bi.Greuge_Evolution(Id_Cliente, Fecha, Greuge, Ventas)
+
+ SELECT Id_Cliente, datFEC as Fecha, Greuge, Ventas
+
+ FROM
+
+ (
+ SELECT Id_Cliente, sum(Importe) as Greuge
+ FROM vn2008.Greuges
+ where Fecha <= datFEC
+ group by Id_Cliente
+
+ ) sub
+
+ RIGHT JOIN
+
+ (
+
+ SELECT Id_Cliente, sum(Ventas) as Ventas
+ FROM
+ (
+
+ SELECT Id_Cliente, IF (fecha != datFEC, -1,1) * (importe + recargo) as Ventas
+ FROM bs.ventas
+ WHERE fecha = datFEC or fecha = datFEC_LASTYEAR
+
+ UNION ALL
+
+ SELECT Id_Cliente, Ventas
+ FROM bi.Greuge_Evolution
+ WHERE Fecha = TIMESTAMPADD(DAY, -1, datFEC)
+
+ ) sub
+ group by Id_Cliente
+
+ ) v using(Id_Cliente)
+ ;
+
+
+ -- 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 (
+ SELECT cs.Id_Cliente, sum(Valor * Cantidad) as Importe
+ FROM vn2008.Tickets t
+ JOIN vn2008.Consignatarios cs on cs.Id_Consigna = t.Id_Consigna
+ JOIN vn2008.Movimientos m on m.Id_Ticket = t.Id_Ticket
+ 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
+ GROUP BY cs.Id_Cliente
+ ) sub using(Id_Cliente)
+ SET Recobro = Importe
+ WHERE ge.Fecha = datFEC;
+
+ INSERT INTO vn2008.daily_task_log(consulta) VALUES(CONCAT('Greuge Evolution ',datFEC));
+
+ SET datFEC = datFEC_TOMORROW;
+ SET datFEC_TOMORROW = TIMESTAMPADD(DAY,1,datFEC_TOMORROW);
+ SET datFEC_LASTYEAR = TIMESTAMPADD(YEAR,-1,datFEC);
+
+
+ END WHILE;
+
+ DROP TEMPORARY TABLE IF EXISTS maxInvoice;
+
+ INSERT INTO vn2008.daily_task_log(consulta) VALUES('Greuge Evolution Add END');
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `last_buy_id_add` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ Id_Article, Id_Compra, warehouse_id
+ FROM
+ vn2008.Compres c
+ JOIN vn2008.Entradas e USING (Id_Entrada)
+ JOIN vn2008.travel tr ON tr.id = e.travel_id
+ WHERE
+ Novincular = FALSE AND tarifa2 > 0 AND NOT Redada
+ AND landing > curdate()
+ 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
+ Id_Article, Id_Compra, warehouse_id
+ FROM
+ vn2008.Compres c
+ JOIN vn2008.Entradas e USING (Id_Entrada)
+ JOIN vn2008.travel tr ON tr.id = e.travel_id
+ WHERE
+ Novincular = FALSE AND tarifa2 > 0 AND NOT Redada
+ AND landing BETWEEN vn2008.date_inv() AND curdate()
+ ORDER BY landing DESC) t1
+GROUP BY Id_Article , warehouse_id;
+
+ TRUNCATE TABLE bi.Last_buy_idBackUp;
+ INSERT INTO bi.Last_buy_idBackUp
+ SELECT * FROM Last_buy_id;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `margenes` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `margenes`()
+BEGIN
+
+TRUNCATE TABLE bi.margenes;
+
+INSERT INTO bi.margenes
+SELECT Id_Article, Cantidad as Unidades, Cantidad * round(nz(Costefijo) + nz(Embalajefijo) + nz(Comisionfija) + nz(Portefijo),3) as Coste , w.name as almacen, month(landing) as Mes, year(landing) as Year, 0 as Venta
+FROM vn2008.Compres C
+JOIN vn2008.Entradas E using(Id_Entrada)
+JOIN vn2008.travel tr on tr.id = travel_id
+JOIN vn2008.warehouse w on w.id = tr.warehouse_id
+LEFT JOIN vn2008.Articles A using(Id_Article)
+JOIN vn2008.Tipos TP using(tipo_id)
+WHERE landing between '2013-01-01' and ' 2013-12-31'
+AND E.Id_Proveedor <> 4
+AND not redada
+AND not inventario
+union all
+SELECT Id_Article, Cantidad as Unidades, 0 as Coste , w.name, month(Fecha) as Mes, year(Fecha) as Year, Cantidad * round(Preu * (100 - M.Descuento) / 100,2) as Venta
+FROM vn2008.Movimientos M
+JOIN vn2008.Articles A using(Id_Article)
+JOIN vn2008.Tipos TP using(tipo_id)
+JOIN vn2008.Tickets T using(Id_Ticket)
+JOIN vn2008.Clientes C using(Id_Cliente)
+JOIN vn2008.warehouse w on w.id = warehouse_id
+WHERE Fecha between '2013-01-01' and ' 2013-12-31'
+AND (Id_Cliente = 31 or invoice)
+AND Id_Cliente NOT IN (2066,2067,2068);
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `nightly_tasks` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `nightly_tasks`()
+BEGIN
+
+call bi.analisis_ventas_evolution_add;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `nigthlyAnalisisVentas` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `nigthlyAnalisisVentas`()
+BEGIN
+
+ INSERT INTO vn2008.daily_task_log(consulta) VALUES('analisis ventas START');
+
+ CALL bi.analisis_ventas_update;
+ CALL bi.analisis_ventas_simple;
+ CALL bi.analisis_ventas_evolution_add;
+
+ INSERT INTO vn2008.daily_task_log(consulta) VALUES('analisis ventas END');
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `partitioning` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `partitioning`(IN intyear INT)
+BEGIN
+
+ DECLARE v_sql TEXT;
+ DECLARE strSquemaName VARCHAR(10);
+ DECLARE strTableName VARCHAR(20);
+ DECLARE strFieldName VARCHAR(20);
+ DECLARE strDateField VARCHAR(20);
+ DECLARE strTableDependingOn VARCHAR(20);
+ DECLARE strFieldDependingOn VARCHAR(20);
+ DECLARE done BIT DEFAULT 0;
+ DECLARE strCacheSchema VARCHAR(5);
+ DECLARE dat_start,dat_end DATE;
+ DECLARE cur1 CURSOR FOR
+ SELECT `schema_name`,`table_name` FROM `cache`.partitioning_information ORDER BY execution_order;
+ DECLARE cur2 CURSOR FOR
+ SELECT `schema_name`,`table_name`,`date_field` FROM `cache`.partitioning_information WHERE date_field > '' ORDER BY execution_order;
+ DECLARE cur3 CURSOR FOR
+ SELECT `schema_name`,`table_name`,`table_depending` FROM `cache`.partitioning_information WHERE table_depending > '' ORDER BY execution_order;
+ DECLARE cur4 CURSOR FOR
+ SELECT `schema_name`,`table_name`,`table_depending` FROM `cache`.partitioning_information WHERE table_depending > '' ORDER BY execution_order DESC;
+ DECLARE cur5 CURSOR FOR
+ SELECT `schema_name`,`table_name`,`date_field` FROM `cache`.partitioning_information WHERE date_field > '' ORDER BY execution_order DESC;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
+
+ SET FOREIGN_KEY_CHECKS=0;
+ IF LENGTH(intyear) <> 4 THEN
+ CALL el_año_debe_contener_4_caracteres_yyyy();
+ END IF;
+ SET dat_start = STR_TO_DATE(CONCAT('01,01,',intyear),'%d,%m,%Y');
+ SET dat_end = STR_TO_DATE(CONCAT('31,12,',intyear),'%d,%m,%Y');
+ SET strCacheSchema = CONCAT('vn_',right(intyear,2));
+ 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
+ SET v_sql = sql_printf ('CREATE TABLE IF NOT EXISTS %t.%t LIKE %t.%t',
+ strCacheSchema,
+ strTableName,
+ strSquemaName,
+ strTableName);
+
+ CALL vn2008.sql_query (v_sql);
+
+ FETCH cur1 INTO strSquemaName,strTableName;
+
+ END WHILE;
+ CLOSE cur1;
+
+ -- Insertamos en las tablas del cur2
+ OPEN cur2;
+ FETCH cur2 INTO strSquemaName,strTableName,strDateField;
+ WHILE NOT done DO
+ SET v_sql = sql_printf ('REPLACE INTO %t.%t SELECT * FROM %t.%t WHERE %t BETWEEN %v AND %v',
+ strCacheSchema,
+ strTableName,
+ strSquemaName,
+ strTableName,
+ strDateField,
+ dat_start,
+ dat_end);
+
+ SELECT v_sql;
+ CALL vn2008.sql_query (v_sql);
+
+ FETCH cur2 INTO strSquemaName,strTableName,strDateField;
+
+ 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
+ AND constraint_name = 'PRIMARY'
+ AND table_name = CONVERT(strTableDependingOn USING utf8) COLLATE utf8_general_ci;
+
+ SET v_sql = sql_printf ('REPLACE INTO %t.%t SELECT a.* FROM %t.%t a JOIN %t.%t b ON a.%t = b.%t',
+ strCacheSchema,
+ strTableName,
+ strSquemaName,
+ strTableName,
+ strCacheSchema,
+ strTableDependingOn,
+ strFieldName,
+ strFieldDependingOn);
+ select v_sql;
+ CALL vn2008.sql_query (v_sql);
+
+ FETCH cur3 INTO strSquemaName,strTableName,strTableDependingOn;
+ END WHILE;
+
+ 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
+ AND constraint_name = 'PRIMARY'
+ AND table_name = CONVERT(strTableDependingOn USING utf8) COLLATE utf8_general_ci;
+
+ SELECT v_sql;
+ SET v_sql = sql_printf ('DELETE a.* FROM %t.%t a JOIN %t.%t b ON a.%t = b.%t',
+ strSquemaName,
+ strTableName,
+ strCacheSchema,
+ strTableDependingOn,
+ strFieldName,
+ strFieldDependingOn);
+ CALL vn2008.sql_query (v_sql);
+
+ FETCH cur4 INTO strSquemaName,strTableName,strTableDependingOn;
+ END WHILE;
+
+ CLOSE cur4;
+
+ -- Borramos en las tablas del cur5
+ OPEN cur5;
+ SET done = 0;
+ FETCH cur5 INTO strSquemaName,strTableName,strDateField;
+ WHILE NOT done DO
+
+ SET v_sql = sql_printf ('DELETE FROM %t WHERE %t BETWEEN %v AND %v',
+ strTableName,
+ strDateField,
+ dat_start,
+ dat_end);
+ CALL vn2008.sql_query (v_sql);
+
+ FETCH cur5 INTO strSquemaName,strTableName,strDateField;
+
+ END WHILE;
+ CLOSE cur5;
+ SET FOREIGN_KEY_CHECKS=1;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `primer_pedido_add` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `primer_pedido_add`()
+BEGIN
+ INSERT IGNORE INTO bi.primer_pedido(Id_Ticket, Id_Cliente, month, year, total)
+ SELECT *
+ FROM
+ (SELECT
+ `m`.`Id_Ticket` ,
+ `v`.`Id_Cliente` ,
+ `t`.`month`,
+ `t`.`year`,
+ v.importe + v.recargo as total
+ FROM
+ bs.ventas v
+ JOIN
+ vn2008.Movimientos m on m.Id_Movimiento = v.Id_Movimiento
+ JOIN
+ vn2008.time t on t.date = v.fecha
+ WHERE
+ fecha > CURDATE() + INTERVAL -(1) YEAR
+ ORDER BY fecha) `s`
+ GROUP BY `s`.`Id_Cliente`;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `regularidad` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `regularidad`()
+BEGIN
+
+select Id_Cliente, Meses, IF(Antiguedad = 13,12,Antiguedad) , Meses / IF(Antiguedad = 13,12,Antiguedad) as Regularidad from (
+SELECT Id_Cliente, count(*) as Meses, FLOOR(DATEDIFF('2012-07-31', IF(Created < '2011-08-01','2011-08-01', Created)) / 30) +1 as Antiguedad from
+(
+
+SELECT DISTINCT Id_Cliente, Periodo(Fecha) as periodo from Facturas
+where Fecha between '2011-08-01' AND '2012-07-31'
+
+) sub
+
+join Clientes using(Id_Cliente)
+where Created <= '2012-07-31'
+
+group by Id_Cliente
+having Antiguedad > 0
+
+) sub44
+order by Antiguedad ;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `rotacion_update` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+
+ call rotacion_update_manual(1, 999999, TIMESTAMPADD(YEAR,-1,CURDATE()), CURDATE()) ;
+
+END if;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `rotacion_update_manual` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `rotacion_update_manual`(IN intART_DESDE INT, IN intART_HASTA INT, IN datSTART DATE, IN datEND DATE)
+BEGIN
+
+
+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
+ FROM
+ (
+ SELECT Id_Article, warehouse_id,
+ @intervalo:= IF(warehouse_id = @wh AND Id_Article = @art , DATEDIFF(Fecha, @fec),1) as Dias,
+ IF(warehouse_id = @wh AND Id_Article = @art , IF(@sd < 0,0,@sd) * @intervalo, IF(Unidades<0,0,Unidades)) as Saldo_Ponderado,
+ IF(warehouse_id = @wh AND Id_Article = @art , @sd:= @sd + Unidades, @sd:= Unidades) as Saldo
+
+ , @fec:= Fecha, @art:= Id_Article, @wh:= warehouse_id
+ FROM
+ (
+ SELECT Id_Article, landing as Fecha, sum(Cantidad) as Unidades, warehouse_id, @fec:= datSTART, @art := 0, @d := 0, @sd:= 0, @wh := 0, @intervalo := 0
+ FROM
+ (
+ SELECT Id_Article, landing, Cantidad, warehouse_id
+ FROM vn2008.Compres C
+ JOIN vn2008.Entradas E using(Id_Entrada)
+ JOIN vn2008.Articles A using(Id_Article)
+ JOIN vn2008.Tipos tp ON tp.tipo_id = A.tipo_id
+ LEFT JOIN vn2008.reinos r ON r.id = tp.reino_id
+ JOIN vn2008.travel tr on tr.id = travel_id
+ JOIN vn2008.warehouse w on w.id = tr.warehouse_id
+ WHERE landing between datSTART and datEND
+ AND Id_Article between intART_DESDE and intART_HASTA
+ AND Id_Proveedor <> 4
+ AND r.display <> 0
+ AND NOT E.Inventario
+ AND NOT fuente
+ AND NOT redada
+ UNION ALL
+ SELECT Id_Article, shipment, -Cantidad, warehouse_id_out
+ FROM vn2008.Compres C
+ JOIN vn2008.Entradas E using(Id_Entrada)
+ JOIN vn2008.Articles A using(Id_Article)
+ JOIN vn2008.Tipos tp ON tp.tipo_id = A.tipo_id
+ LEFT JOIN vn2008.reinos r ON r.id = tp.reino_id
+ JOIN vn2008.travel tr on tr.id = travel_id
+ JOIN vn2008.warehouse w on w.id = tr.warehouse_id_out
+ WHERE shipment between datSTART and datEND
+ AND Id_Article between intART_DESDE and intART_HASTA
+ AND Id_Proveedor <> 4
+ AND r.display <> 0
+ AND NOT fuente
+ AND NOT E.Inventario
+ AND NOT redada
+ UNION ALL
+ SELECT Id_Article, date(Fecha), -Cantidad, warehouse_id
+ FROM vn2008.Movimientos M
+ JOIN vn2008.Articles A using(Id_Article)
+ JOIN vn2008.Tipos tp ON tp.tipo_id = A.tipo_id
+ LEFT JOIN vn2008.reinos r ON r.id = tp.reino_id
+ JOIN vn2008.Tickets t using(Id_Ticket)
+ JOIN vn2008.warehouse w on w.id = t.warehouse_id
+ WHERE Fecha between datSTART and datEND
+ AND r.display <> 0
+ AND NOT fuente
+ AND Id_Article between intART_DESDE and intART_HASTA
+ AND Id_Cliente NOT IN (2066,2067,2068)
+ ) sub
+ GROUP BY Id_Article, warehouse_id, Fecha
+ ) sub2
+ ) sub4
+ JOIN
+ (
+ SELECT Id_Article, sum(Cantidad) as Total, warehouse_id
+ FROM vn2008.Compres C
+ JOIN vn2008.Entradas E using(Id_Entrada)
+ JOIN vn2008.Articles A using(Id_Article)
+ JOIN vn2008.Tipos tp ON tp.tipo_id = A.tipo_id
+ LEFT JOIN vn2008.reinos r ON r.id = tp.reino_id
+ JOIN vn2008.travel tr on tr.id = travel_id
+ JOIN vn2008.warehouse w on w.id = tr.warehouse_id
+ WHERE landing between datSTART and datEND
+ AND Id_Article between intART_DESDE and intART_HASTA
+ AND Id_Proveedor <> 4
+ AND NOT E.Inventario
+ AND r.display <> 0
+ AND NOT redada
+ AND NOT fuente
+ GROUP BY Id_Article, warehouse_id
+ ) sub3 using(Id_Article, warehouse_id)
+
+ GROUP BY Id_Article, warehouse_id;
+
+
+
+ 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
+ FROM bi.rotacion
+ WHERE Id_Article between intART_DESDE and intART_HASTA
+ GROUP BY warehouse_id
+ ) sub using(warehouse_id)
+
+JOIN (
+ SELECT warehouse_id, sum(Valor) as Coste_Auxiliar
+ FROM bi.tarifa_warehouse
+ WHERE Id_Premisa = 1
+ GROUP BY warehouse_id
+ ) sub2 using(warehouse_id)
+
+JOIN (
+ SELECT warehouse_id, sum(Valor) as Coste_Operativo
+ FROM bi.tarifa_warehouse
+ WHERE Id_Premisa IN (2,3)
+ GROUP BY warehouse_id
+ ) sub3 using(warehouse_id)
+
+JOIN (
+ SELECT warehouse_id, sum(Valor) as Coste_Manipulacion
+ FROM bi.tarifa_warehouse
+ WHERE Id_Premisa = 4
+ GROUP BY warehouse_id
+ ) sub4 using(warehouse_id)
+
+SET auxiliar = if(rotacion < 0,0,round(rotacion *cm3 * Coste_Auxiliar / Operacion,4))
+ ,almacenaje = if(rotacion < 0,0,round(rotacion *cm3 * Coste_Operativo / Operacion,4))
+ , manipulacion = if(rotacion < 0,0,round(rotacion *cm3 * Coste_Manipulacion / Operacion,4))
+ 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
+FROM vn2008.Articles a
+JOIN (SELECT tipo_id, warehouse_id, Id_Tipo, avg(rotacion) rotacion_m, avg(cm3) cm3_m, avg(almacenaje) alm_m, avg(manipulacion) man_m
+ , avg(auxiliar) aux_m, avg(mermas) merm_m
+ from bi.rotacion
+ join vn2008.Articles a using(Id_Article)
+ join vn2008.Tipos tp using(tipo_id)
+ group by tipo_id, warehouse_id) sub using(tipo_id)
+
+WHERE a.Id_Article between intART_DESDE and intART_HASTA
+ON DUPLICATE KEY UPDATE rotacion = rotacion;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `rotacion_update_manual_PCA` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `rotacion_update_manual_PCA`(IN datSTART DATE, IN datEND DATE)
+BEGIN
+
+
+DECLARE intLAPSO INT DEFAULT DATEDIFF(datEND,datSTART );
+DECLARE intART_DESDE BIGINT DEFAULT 1;
+DECLARE intART_HASTA BIGINT DEFAULT 100;
+
+WHILE intART_HASTA < 999999 DO
+
+ IF intART_HASTA MOD 1000 = 0 THEN
+
+ SELECT intART_HASTA;
+
+ 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
+ FROM
+ (
+ SELECT Id_Article, warehouse_id,
+ @intervalo:= IF(warehouse_id = @wh AND Id_Article = @art , DATEDIFF(Fecha, @fec),1) as Dias,
+ IF(warehouse_id = @wh AND Id_Article = @art , IF(@sd < 0,0,@sd) * @intervalo, IF(Unidades<0,0,Unidades)) as Saldo_Ponderado,
+ IF(warehouse_id = @wh AND Id_Article = @art , @sd:= @sd + Unidades, @sd:= Unidades) as Saldo
+
+ , @fec:= Fecha, @art:= Id_Article, @wh:= warehouse_id
+ FROM
+ (
+ SELECT Id_Article, landing as Fecha, sum(Cantidad) as Unidades, warehouse_id, @fec:= datSTART, @art := 0, @d := 0, @sd:= 0, @wh := 0, @intervalo := 0
+ FROM
+ (
+ SELECT Id_Article, landing, Cantidad, warehouse_id
+ FROM vn2008.Compres C
+ JOIN vn2008.Entradas E using(Id_Entrada)
+ JOIN vn2008.Articles A using(Id_Article)
+ JOIN vn2008.Tipos using(tipo_id)
+ JOIN vn2008.travel tr on tr.id = travel_id
+ JOIN vn2008.warehouse w on w.id = tr.warehouse_id
+ WHERE landing between datSTART and datEND
+ AND warehouse_id = 44
+ AND Id_Article between intART_DESDE and intART_HASTA
+ AND Id_Proveedor <> 4
+ AND reino_id IN (3,4)
+ AND NOT E.Inventario
+ AND NOT fuente
+ AND NOT redada
+ UNION ALL
+ SELECT Id_Article, shipment, -Cantidad, warehouse_id_out
+ FROM vn2008.Compres C
+ JOIN vn2008.Entradas E using(Id_Entrada)
+ JOIN vn2008.Articles A using(Id_Article)
+ JOIN vn2008.Tipos using(tipo_id)
+ JOIN vn2008.travel tr on tr.id = travel_id
+ JOIN vn2008.warehouse w on w.id = tr.warehouse_id_out
+ WHERE shipment between datSTART and datEND
+ AND warehouse_id_out = 44
+ AND Id_Article between intART_DESDE and intART_HASTA
+ AND Id_Proveedor <> 4
+ AND reino_id IN (3,4)
+ AND NOT fuente
+ AND NOT E.Inventario
+ AND NOT redada
+ UNION ALL
+ SELECT Id_Article, date(Fecha), -Cantidad, warehouse_id
+ FROM vn2008.Movimientos M
+ JOIN vn2008.Articles A using(Id_Article)
+ JOIN vn2008.Tipos using(tipo_id)
+ JOIN vn2008.Tickets t using(Id_Ticket)
+ JOIN vn2008.warehouse w on w.id = t.warehouse_id
+ WHERE Fecha between datSTART and datEND
+ AND t.warehouse_id = 44
+ AND reino_id IN (3,4)
+ AND NOT fuente
+ AND Id_Article between intART_DESDE and intART_HASTA
+ AND Id_Cliente NOT IN (2066,2067,2068)
+ ) sub
+ GROUP BY Id_Article, warehouse_id, Fecha
+ ) sub2
+ ) sub4
+ JOIN
+ (
+ SELECT Id_Article, sum(Cantidad) as Total, warehouse_id
+ FROM vn2008.Compres C
+ JOIN vn2008.Entradas E using(Id_Entrada)
+ JOIN vn2008.Articles A using(Id_Article)
+ JOIN vn2008.Tipos using(tipo_id)
+ JOIN vn2008.travel tr on tr.id = travel_id
+ JOIN vn2008.warehouse w on w.id = tr.warehouse_id
+ WHERE landing between datSTART and datEND
+ AND warehouse_id = 44
+ AND Id_Article between intART_DESDE and intART_HASTA
+ AND Id_Proveedor <> 4
+ AND NOT E.Inventario
+ AND reino_id IN (3,4)
+ AND NOT redada
+ AND NOT fuente
+ GROUP BY Id_Article, warehouse_id
+ ) sub3 using(Id_Article, warehouse_id)
+ GROUP BY Id_Article, warehouse_id;
+
+SET intART_DESDE = intART_DESDE + 100;
+SET intART_DESDE = intART_HASTA + 100;
+
+END WHILE;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `rotacion_volumen_update` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `rotacion_volumen_update`(IN vIdCompra BIGINT)
+BEGIN
+
+UPDATE bi.rotacion r
+JOIN vn2008.travel tr ON r.warehouse_id = tr.warehouse_id
+JOIN vn2008.Entradas e ON e.travel_id = tr.id
+JOIN vn2008.Compres c ON e.Id_Entrada = c.Id_Entrada AND c.Id_Article = r.Id_Article
+SET r.cm3 = vn2008.cm3_2(c.Id_Cubo, c.Id_Article) / c.Packing
+where c.Id_Compra = vIdCompra;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `rutas_m3_add` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `rutas_m3_add`()
+BEGIN
+
+ DECLARE datSTART DATE DEFAULT TIMESTAMPADD(DAY,-90,CURDATE());
+ DECLARE datEND DATE DEFAULT CURDATE();
+ DECLARE datFEC DATE;
+
+ IF hour(now()) between 5 and 24 then
+
+ SET datSTART = CURDATE();
+ SET datEND = TIMESTAMPADD(DAY,1,CURDATE());
+
+ end if;
+
+ SET datFEC = datSTART;
+
+ CALL vn2008.item_last_buy_(NULL,CURDATE());
+ WHILE datFEC <= datEND DO
+
+ UPDATE vn2008.Rutas R
+ JOIN (SELECT R.Id_Ruta, sum(Cantidad * vn2008.cm3_unidad(b.buy_id)) / 1000000 as m3
+ from vn2008.Rutas R
+ join vn2008.Tickets t using(Id_Ruta)
+ join vn2008.Movimientos m using(Id_Ticket)
+ join vn2008.t_item_last_buy b ON Id_Article = b.item_id AND b.warehouse_id = t.warehouse_id
+ where R.Fecha = datFEC AND R.m3 IS NULL
+ group by R.Id_Ruta
+ ) t using(Id_Ruta)
+ SET R.m3 = t.m3
+ WHERE R.m3 IS NULL;
+
+ SET datFEC = TIMESTAMPADD(DAY,1,datFEC);
+
+ END WHILE;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticket_add2kk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+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 datSTART = TIMESTAMPADD(DAY, -intNUMDAYS, CURDATE());
+
+
+ SET datEND = vn2008.DAYEND(datSTART);
+
+
+
+
+ -- Actualiza el valor de costfixat en Movimientos a efectos estadisticos
+update vn2008.Movimientos m
+join
+(
+select Id_Movimiento, round(IFNULL(sum(Valor) , IFNULL( Preu * (100 - m.Descuento) /100,0 ) ),2) as Cost
+from vn2008.Tickets t
+join vn2008.Movimientos m using(Id_Ticket)
+left join vn2008.Movimientos_componentes mc using(Id_Movimiento)
+join bi.tarifa_componentes tc using(Id_Componente)
+join bi.tarifa_componentes_series tcs on tcs.tarifa_componentes_series_id = tc.tarifa_componentes_series_id AND tcs.base
+where t.Fecha between datSTART AND datEND
+group by Id_Movimiento
+) sub using(Id_Movimiento)
+set CostFixat = Cost;
+
+
+
+
+ REPLACE INTO bi.ticket(Id_Ticket,Id_Cliente,`date`, tipo_id, `year`,`week`,`month`,`day`,`view`,amount,Id_Trabajador,Id_propietario )
+ SELECT t.Id_Ticket,c.Id_Cliente,t.Fecha `date`,tipo_id, year(Fecha) as `year`, vn2008.vnweek(Fecha) as `week`,
+ month(Fecha) as `month`,vn2008.vnday(Fecha) as `day`, A.Vista `view`,
+ IFNULL( round( sum(cantidad * Preu * (100 - m.Descuento)/100) ,2) ,0) as amount,
+ c.Id_Trabajador, c.Id_Trabajador
+ FROM vn2008.Tickets t
+ JOIN vn2008.Consignatarios cs using(Id_Consigna)
+ JOIN vn2008.warehouse W ON W.id = t.warehouse_id
+ INNER JOIN vn2008.Clientes c on cs.Id_Cliente = c.Id_Cliente
+ INNER JOIN vn2008.Movimientos m USING(Id_Ticket)
+ INNER JOIN vn2008.Articles USING(Id_Article)
+ INNER JOIN vn2008.Agencias A on A.Id_Agencia = t.Id_Agencia
+ INNER JOIN vn2008.Tipos TP USING(tipo_id)
+ WHERE Fecha BETWEEN datSTART AND datEND
+ AND NOT W.fuente
+ AND c.`Real`
+ 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;
+ */
+
+
+
+ IF (intNUMDAYS>0) THEN
+ CALL `bi`.`ticket_add2` (intNUMDAYS-1);
+ END IF;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticket_addkk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ticket_addkk`(intNUMDAYS INTEGER)
+BEGIN
+
+DECLARE datSTART DATETIME;
+
+ IF (intNUMDAYS > 0) THEN
+ SET datSTART = TIMESTAMPADD(DAY, -intNUMDAYS, CURDATE());
+ DELETE FROM bi.ticket where `date` >= datSTART ;
+ CALL `bi`.`ticket_add2` (intNUMDAYS);
+ DELETE FROM bi.ticket where `date` < '2001-01-01';
+ END IF;
+
+UPDATE bi.ticket bt
+JOIN vn2008.Tickets USING(Id_Ticket)
+JOIN vn2008.Consignatarios C USING(Id_Consigna)
+SET bt.Id_Cliente = C.Id_Cliente
+, bt.Id_Trabajador = @idT := vn2008.Averiguar_ComercialCliente_Id(C.Id_Cliente,bt.date)
+, bt.Id_propietario = @idT
+WHERE Tickets.Id_Cliente = 31 AND bt.date >= datSTART;
+
+
+-- Almacena los tickets que comisionan, para consultas rapidas
+
+truncate table bi.f_tvc;
+
+insert into bi.f_tvc
+select Id_Ticket
+from vn2008.Tickets t
+join vn2008.Consignatarios cs using(Id_Consigna)
+join vn2008.Clientes c on c.Id_Cliente = cs.Id_Cliente
+join vn2008.warehouse w on w.id = t.warehouse_id
+where c.`Real` = TRUE
+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)
+ where Fecha between TIMESTAMPADD(DAY,-46,CURDATE()) and TIMESTAMPADD(DAY, -1 - DAY(CURDATE()), CURDATE());
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticket_add_bydaykk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ticket_add_bydaykk`(datFEC DATE)
+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 datSTART = DATE(datFEC);
+ SET datEND = TIMESTAMPADD(DAY,30,datSTART);
+
+ DELETE FROM bi.ticket WHERE `date` between datSTART and datEND;
+
+ INSERT INTO bi.ticket(Id_Ticket,`date`, tipo_id, `year`,`week`,`month`,`view`,amount,Id_Trabajador, Id_Cliente, Id_Propietario )
+ SELECT t.Id_Ticket,t.Fecha `date`,tipo_id, vn2008.vnyear(Fecha) as `year`, vn2008.vnweek(Fecha) as `week`,
+ vn2008.vnmonth(Fecha) as `month`, A.Vista `view`, IFNULL(round(sum(cantidad * preu * (100 - m.Descuento)/100),2),0) as amount,
+ c.Id_Trabajador, c.Id_Cliente, ifnull(c.Id_Trabajador,20)
+ FROM vn2008.Tickets t
+ JOIN vn2008.Consignatarios cs using(Id_Consigna)
+ JOIN vn2008.warehouse W ON W.id = t.warehouse_id
+ INNER JOIN vn2008.Clientes c on c.Id_Cliente = cs.Id_Cliente
+ INNER JOIN vn2008.Movimientos m USING(Id_Ticket)
+ INNER JOIN vn2008.Articles USING(Id_Article)
+ INNER JOIN vn2008.Agencias A on A.Id_Agencia = t.Id_Agencia
+ INNER JOIN vn2008.Tipos TP USING(tipo_id)
+ LEFT JOIN vn2008.reinos r ON r.id = TP.reino_id
+ WHERE Fecha >= datSTART
+ AND Fecha < datEND
+ AND NOT W.fuente
+ AND (invoice or t.Id_Cliente in (5,31))
+ AND r.display <> 0
+ GROUP BY t.Id_Ticket,tipo_id
+ ON DUPLICATE KEY UPDATE amount = amount,
+ `view` = `view`,
+ `date` = `date`,
+ `week` = `week`,
+ `year` = `year`,
+ `month` = `month`,
+ tipo_id = tipo_id,
+ Id_Trabajador = Id_Trabajador,
+ Id_Cliente = Id_Cliente,
+ Id_Propietario = ifnull(Id_Trabajador,20);
+
+ 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;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `Ultima_Accion` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `Ultima_Accion`()
+BEGIN
+
+REPLACE INTO bi.lastaction(Id_Cliente, Cliente, Ultima_accion, Comercial)
+
+SELECT Id_Cliente, Cliente, Ultima_accion, Comercial
+FROM vn2008.Clientes
+JOIN
+(
+SELECT Id_Cliente, MAX(calldate) as Ultima_accion, vn2008.Averiguar_ComercialCliente(Id_Cliente, CURDATE()) as Comercial
+FROM
+(
+SELECT Id_Cliente, calldate
+FROM vn2008.cdr
+JOIN vn2008.Contactos CT on CT.Telefono = dst
+JOIN vn2008.Relaciones using(Id_Contacto)
+WHERE Id_Cliente IS NOT NULL
+AND duration > 30
+UNION ALL
+SELECT Id_Cliente, calldate
+FROM vn2008.cdr
+JOIN vn2008.Contactos CT on CT.Movil = dst
+JOIN vn2008.Relaciones using(Id_Contacto)
+WHERE Id_Cliente IS NOT NULL
+AND duration > 30
+UNION ALL
+SELECT Id_Cliente, calldate
+FROM vn2008.cdr
+JOIN vn2008.Clientes CT on CT.Telefono = dst
+WHERE duration > 30
+UNION ALL
+SELECT Id_Cliente, calldate
+FROM vn2008.cdr
+JOIN vn2008.Clientes CT on CT.Movil = dst
+WHERE duration > 30
+UNION ALL
+SELECT C.Id_Cliente, Fecha
+FROM vn2008.Tickets JOIN vn2008.Consignatarios C using(Id_Consigna)
+) sub
+GROUP BY Id_Cliente ) sub2 USING(Id_Cliente);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `Velocity_Add` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `Velocity_Add`()
+BEGIN
+
+DECLARE bol_EXISTS BOOL;
+DECLARE datMAX DATETIME;
+DECLARE v_buffer VARCHAR(11);
+DECLARE v_sql VARCHAR(255);
+
+
+
+SELECT MAX(Fecha) INTO datMAX FROM bi.Velocity;
+
+IF Date(datMAX) = CURDATE() AND hour(datMAX) > hour(now()) THEN
+
+
+ SET v_buffer = vn2008.buffer_name(CURDATE(),1);
+
+ SELECT count(*) INTO bol_EXISTS FROM information_schema.`TABLES`
+ WHERE TABLE_NAME = CONVERT(v_buffer using utf8) collate utf8_general_ci;
+
+ IF bol_EXISTS THEN
+
+ SET v_sql = sql_printf (
+ 'INSERT INTO bi.Velocity(tipo_id, Fecha, Disponible, Visible)
+ SELECT A.tipo_id, NOW(), sum(avalaible), sum(visible)
+ FROM vn2008.%t b
+ JOIN Articles A ON b.item_id = A.Id_Article GROUP BY tipo_id;
+ ',
+ v_buffer
+ );
+
+
+ CALL sql_query (v_sql);
+
+ END IF;
+
+END IF;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Current Database: `vn`
+--
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `vn` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */;
+
+USE `vn`;
+
+--
+-- Temporary view structure for view `accounting`
+--
+
+DROP TABLE IF EXISTS `accounting`;
+/*!50001 DROP VIEW IF EXISTS `accounting`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `accounting` AS SELECT
+ 1 AS `id`,
+ 1 AS `bank`,
+ 1 AS `account`,
+ 1 AS `accountingTypeFk`,
+ 1 AS `entityFk`,
+ 1 AS `isActive`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `accountingType`
+--
+
+DROP TABLE IF EXISTS `accountingType`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `accountingType` (
+ `id` smallint(6) NOT NULL DEFAULT '0',
+ `description` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='descripcio dels valors de la columna "cash" de la taula vn2008.Bancios';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `activityTaxDismissed`
+--
+
+DROP TABLE IF EXISTS `activityTaxDismissed`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `activityTaxDismissed` (
+ `clientFk` int(11) NOT NULL,
+ `isNotified` tinyint(1) DEFAULT '0',
+ `isDismissed` tinyint(1) DEFAULT '0',
+ `notified` int(11) DEFAULT '0',
+ PRIMARY KEY (`clientFk`),
+ CONSTRAINT `clientFk` FOREIGN KEY (`clientFk`) REFERENCES `vn2008`.`Clientes` (`id_cliente`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `address`
+--
+
+DROP TABLE IF EXISTS `address`;
+/*!50001 DROP VIEW IF EXISTS `address`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `address` AS SELECT
+ 1 AS `customer`,
+ 1 AS `warehouse`,
+ 1 AS `street`,
+ 1 AS `city`,
+ 1 AS `province`,
+ 1 AS `postalCode`,
+ 1 AS `phone`,
+ 1 AS `celular`,
+ 1 AS `nickname`,
+ 1 AS `id`,
+ 1 AS `defaultAddress`,
+ 1 AS `agency`,
+ 1 AS `active`,
+ 1 AS `longitude`,
+ 1 AS `latitude`,
+ 1 AS `clientFk`,
+ 1 AS `warehouseFk`,
+ 1 AS `provinceFk`,
+ 1 AS `mobile`,
+ 1 AS `agencyFk`,
+ 1 AS `isEqualizated`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `addressForPackaging`
+--
+
+DROP TABLE IF EXISTS `addressForPackaging`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `addressForPackaging` (
+ `addressFk` int(11) NOT NULL,
+ `packagingValue` decimal(10,2) NOT NULL DEFAULT '0.04',
+ PRIMARY KEY (`addressFk`),
+ CONSTRAINT `addresForPackaging_fk1` FOREIGN KEY (`addressFk`) REFERENCES `vn2008`.`Consignatarios` (`id_consigna`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `addressObservation`
+--
+
+DROP TABLE IF EXISTS `addressObservation`;
+/*!50001 DROP VIEW IF EXISTS `addressObservation`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `addressObservation` AS SELECT
+ 1 AS `id`,
+ 1 AS `addressFk`,
+ 1 AS `observationTypeFk`,
+ 1 AS `description`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `agency`
+--
+
+DROP TABLE IF EXISTS `agency`;
+/*!50001 DROP VIEW IF EXISTS `agency`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `agency` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `warehouse`,
+ 1 AS `warehouseFk`,
+ 1 AS `isVolumetric`,
+ 1 AS `bank`,
+ 1 AS `bankFk`,
+ 1 AS `warehouseNickname`,
+ 1 AS `warehouseAliasFk`,
+ 1 AS `own`,
+ 1 AS `labelZone`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `agencyHour`
+--
+
+DROP TABLE IF EXISTS `agencyHour`;
+/*!50001 DROP VIEW IF EXISTS `agencyHour`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `agencyHour` AS SELECT
+ 1 AS `id`,
+ 1 AS `agency`,
+ 1 AS `weekDay`,
+ 1 AS `warehouse`,
+ 1 AS `province`,
+ 1 AS `substractDay`,
+ 1 AS `maxHour`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `agencyMode`
+--
+
+DROP TABLE IF EXISTS `agencyMode`;
+/*!50001 DROP VIEW IF EXISTS `agencyMode`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `agencyMode` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `description`,
+ 1 AS `view`,
+ 1 AS `deliveryMethod`,
+ 1 AS `m3`,
+ 1 AS `cod71`,
+ 1 AS `web`,
+ 1 AS `agency`,
+ 1 AS `agencyFk`,
+ 1 AS `agencyService`,
+ 1 AS `agencyServiceFk`,
+ 1 AS `inflacion`,
+ 1 AS `isVolumetric`,
+ 1 AS `reportMail`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `agencyWarehouse`
+--
+
+DROP TABLE IF EXISTS `agencyWarehouse`;
+/*!50001 DROP VIEW IF EXISTS `agencyWarehouse`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `agencyWarehouse` AS SELECT
+ 1 AS `agencyFk`,
+ 1 AS `warehouseFk`,
+ 1 AS `agencyType`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `autonomousRegion`
+--
+
+DROP TABLE IF EXISTS `autonomousRegion`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `autonomousRegion` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `name` varchar(50) CHARACTER SET utf8 NOT NULL,
+ `geoFk` int(11) DEFAULT NULL,
+ `countryFk` mediumint(8) unsigned DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `countryFk` (`countryFk`),
+ CONSTRAINT `countryFk` FOREIGN KEY (`countryFk`) REFERENCES `vn2008`.`Paises` (`Id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `awb`
+--
+
+DROP TABLE IF EXISTS `awb`;
+/*!50001 DROP VIEW IF EXISTS `awb`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `awb` AS SELECT
+ 1 AS `id`,
+ 1 AS `code`,
+ 1 AS `package`,
+ 1 AS `weight`,
+ 1 AS `created`,
+ 1 AS `transitoryFk`,
+ 1 AS `taxFk`,
+ 1 AS `docFk`,
+ 1 AS `amount`,
+ 1 AS `freightFk`,
+ 1 AS `m3`,
+ 1 AS `stems`,
+ 1 AS `flightFk`,
+ 1 AS `volumeWeight`,
+ 1 AS `hb`,
+ 1 AS `rate`,
+ 1 AS `booked`,
+ 1 AS `issued`,
+ 1 AS `operated`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `bank`
+--
+
+DROP TABLE IF EXISTS `bank`;
+/*!50001 DROP VIEW IF EXISTS `bank`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `bank` AS SELECT
+ 1 AS `id`,
+ 1 AS `bank`,
+ 1 AS `account`,
+ 1 AS `cash`,
+ 1 AS `entityFk`,
+ 1 AS `isActive`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `bookingPlanner`
+--
+
+DROP TABLE IF EXISTS `bookingPlanner`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `bookingPlanner` (
+ `id` int(10) NOT NULL AUTO_INCREMENT,
+ `effectived` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `pgcFk` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
+ `taxAreaFk` varchar(15) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'SPAIN',
+ `priority` int(2) unsigned DEFAULT NULL,
+ `taxClassFk` tinyint(3) unsigned NOT NULL DEFAULT '1',
+ `countryFk` mediumint(8) unsigned NOT NULL DEFAULT '1',
+ PRIMARY KEY (`id`),
+ KEY `taxArea_bookingPlanner_idx` (`taxAreaFk`),
+ KEY `pgcFk_bookingPlanner_idx` (`pgcFk`),
+ KEY `taxClassFk` (`taxClassFk`),
+ KEY `countryFk` (`countryFk`),
+ CONSTRAINT `bookingPlanner_ibfk_1` FOREIGN KEY (`pgcFk`) REFERENCES `pgc` (`code`) ON DELETE CASCADE,
+ CONSTRAINT `bookingPlanner_ibfk_2` FOREIGN KEY (`taxClassFk`) REFERENCES `vn2008`.`iva_group` (`iva_group_id`) ON DELETE CASCADE,
+ CONSTRAINT `bookingPlanner_ibfk_3` FOREIGN KEY (`countryFk`) REFERENCES `vn2008`.`Paises` (`Id`) ON DELETE CASCADE,
+ CONSTRAINT `taxArea_bookingPlanner` FOREIGN KEY (`taxAreaFk`) REFERENCES `taxArea` (`code`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `botanicExport`
+--
+
+DROP TABLE IF EXISTS `botanicExport`;
+/*!50001 DROP VIEW IF EXISTS `botanicExport`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `botanicExport` AS SELECT
+ 1 AS `id`,
+ 1 AS `ediGenusFk`,
+ 1 AS `ediSpecieFk`,
+ 1 AS `countryFk`,
+ 1 AS `restriction`,
+ 1 AS `description`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `buy`
+--
+
+DROP TABLE IF EXISTS `buy`;
+/*!50001 DROP VIEW IF EXISTS `buy`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `buy` AS SELECT
+ 1 AS `id`,
+ 1 AS `entryFk`,
+ 1 AS `itemFk`,
+ 1 AS `amount`,
+ 1 AS `buyingValue`,
+ 1 AS `quantity`,
+ 1 AS `packageFk`,
+ 1 AS `stickers`,
+ 1 AS `freightValue`,
+ 1 AS `packageValue`,
+ 1 AS `comissionValue`,
+ 1 AS `packing`,
+ 1 AS `grouping`,
+ 1 AS `groupingMode`,
+ 1 AS `location`,
+ 1 AS `price1`,
+ 1 AS `price2`,
+ 1 AS `price3`,
+ 1 AS `minPrice`,
+ 1 AS `producer`,
+ 1 AS `printedStickers`,
+ 1 AS `isChecked`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `category`
+--
+
+DROP TABLE IF EXISTS `category`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `category` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `description` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `nick` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `city`
+--
+
+DROP TABLE IF EXISTS `city`;
+/*!50001 DROP VIEW IF EXISTS `city`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `city` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `provinceFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `client`
+--
+
+DROP TABLE IF EXISTS `client`;
+/*!50001 DROP VIEW IF EXISTS `client`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `client` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `fi`,
+ 1 AS `phone`,
+ 1 AS `fax`,
+ 1 AS `email`,
+ 1 AS `iban`,
+ 1 AS `dueDay`,
+ 1 AS `accountingAccount`,
+ 1 AS `isEqualizated`,
+ 1 AS `city`,
+ 1 AS `province`,
+ 1 AS `provinceFk`,
+ 1 AS `postcode`,
+ 1 AS `socialName`,
+ 1 AS `contact`,
+ 1 AS `Reexpedicion`,
+ 1 AS `hasToInvoice`,
+ 1 AS `Notas`,
+ 1 AS `notas_administracion`,
+ 1 AS `Copiafactura`,
+ 1 AS `Retener`,
+ 1 AS `Congelado`,
+ 1 AS `Id_Trabajador`,
+ 1 AS `workerFk`,
+ 1 AS `credit`,
+ 1 AS `cyc`,
+ 1 AS `Id_Pais`,
+ 1 AS `countryFk`,
+ 1 AS `activo`,
+ 1 AS `active`,
+ 1 AS `gestdoc`,
+ 1 AS `gestdocFk`,
+ 1 AS `calidad`,
+ 1 AS `paymentMethod`,
+ 1 AS `paymentMethodFk`,
+ 1 AS `registerDate`,
+ 1 AS `invoiceByEmail`,
+ 1 AS `isToBeMailed`,
+ 1 AS `channel`,
+ 1 AS `channelFk`,
+ 1 AS `VIES`,
+ 1 AS `sepavnl`,
+ 1 AS `corevnl`,
+ 1 AS `riskCalculated`,
+ 1 AS `corevnh`,
+ 1 AS `clientes_tipo_id`,
+ 1 AS `clientTypeFk`,
+ 1 AS `postcode_id`,
+ 1 AS `postcodeFk`,
+ 1 AS `mail_address`,
+ 1 AS `codpos`,
+ 1 AS `cplusTerIdNifFk`,
+ 1 AS `postalAddress`,
+ 1 AS `invoiceByAddress`,
+ 1 AS `isTaxDataChecked`,
+ 1 AS `isFreezed`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `clientCreditLimit`
+--
+
+DROP TABLE IF EXISTS `clientCreditLimit`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `clientCreditLimit` (
+ `id` int(11) NOT NULL,
+ `maxAmount` int(10) unsigned NOT NULL,
+ `roleFk` int(10) unsigned NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `clientManaCache`
+--
+
+DROP TABLE IF EXISTS `clientManaCache`;
+/*!50001 DROP VIEW IF EXISTS `clientManaCache`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `clientManaCache` AS SELECT
+ 1 AS `clientFk`,
+ 1 AS `mana`,
+ 1 AS `dated`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `clientObservation`
+--
+
+DROP TABLE IF EXISTS `clientObservation`;
+/*!50001 DROP VIEW IF EXISTS `clientObservation`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `clientObservation` AS SELECT
+ 1 AS `id`,
+ 1 AS `client`,
+ 1 AS `worker`,
+ 1 AS `text`,
+ 1 AS `creationDate`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `clientType`
+--
+
+DROP TABLE IF EXISTS `clientType`;
+/*!50001 DROP VIEW IF EXISTS `clientType`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `clientType` AS SELECT
+ 1 AS `id`,
+ 1 AS `code`,
+ 1 AS `type`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `company`
+--
+
+DROP TABLE IF EXISTS `company`;
+/*!50001 DROP VIEW IF EXISTS `company`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `company` AS SELECT
+ 1 AS `id`,
+ 1 AS `code`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `confectionType`
+--
+
+DROP TABLE IF EXISTS `confectionType`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `confectionType` (
+ `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
+ `description` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `config`
+--
+
+DROP TABLE IF EXISTS `config`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `config` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `mdbServer` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `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;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `country`
+--
+
+DROP TABLE IF EXISTS `country`;
+/*!50001 DROP VIEW IF EXISTS `country`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `country` AS SELECT
+ 1 AS `id`,
+ 1 AS `country`,
+ 1 AS `CEE`,
+ 1 AS `isUeeMember`,
+ 1 AS `Code`,
+ 1 AS `currencyFk`,
+ 1 AS `politicalCountryFk`,
+ 1 AS `geoFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `cplusCorrectingType`
+--
+
+DROP TABLE IF EXISTS `cplusCorrectingType`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cplusCorrectingType` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `description` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cplusInvoiceType472`
+--
+
+DROP TABLE IF EXISTS `cplusInvoiceType472`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cplusInvoiceType472` (
+ `id` int(10) unsigned NOT NULL,
+ `description` varchar(255) CHARACTER SET utf8 NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='(*18) TIPO FACTURA (Asientos)SOPORTADO – DEDUCIBLE (472)';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cplusInvoiceType477`
+--
+
+DROP TABLE IF EXISTS `cplusInvoiceType477`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cplusInvoiceType477` (
+ `id` int(10) unsigned NOT NULL,
+ `description` varchar(255) CHARACTER SET utf8 NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='(*18) TIPO FACTURA (Asientos)REPERCUTIDO - DEVENGADO (477)';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cplusRectificationType`
+--
+
+DROP TABLE IF EXISTS `cplusRectificationType`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cplusRectificationType` (
+ `id` int(10) unsigned NOT NULL,
+ `description` varchar(255) CHARACTER SET utf8 NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='(*20) TIPO RECTIFICATIVA (Asientos)';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cplusSubjectOp`
+--
+
+DROP TABLE IF EXISTS `cplusSubjectOp`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cplusSubjectOp` (
+ `id` int(10) unsigned NOT NULL,
+ `description` varchar(255) CHARACTER SET utf8 NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='(*17) TIPO OPERACIÓN SUJETA/NO SUJETA (Asientos)';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cplusTaxBreak`
+--
+
+DROP TABLE IF EXISTS `cplusTaxBreak`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cplusTaxBreak` (
+ `id` int(10) unsigned NOT NULL,
+ `description` varchar(255) CHARACTER SET utf8 NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='(*16) TIPO EXENCIÓN (Asientos)';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cplusTerIdNif`
+--
+
+DROP TABLE IF EXISTS `cplusTerIdNif`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cplusTerIdNif` (
+ `id` int(11) NOT NULL,
+ `description` varchar(255) CHARACTER SET utf8 NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cplusTrascendency472`
+--
+
+DROP TABLE IF EXISTS `cplusTrascendency472`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cplusTrascendency472` (
+ `id` int(10) unsigned NOT NULL,
+ `description` varchar(255) CHARACTER SET utf8 NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='(*15) CLAVE DE RÉGIMEN ESPECIAL O TRASCENDENCIA(Asientos)SOPORTADO – DEDUCIBLE (472)';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cplusTrascendency477`
+--
+
+DROP TABLE IF EXISTS `cplusTrascendency477`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cplusTrascendency477` (
+ `id` int(10) unsigned NOT NULL,
+ `description` varchar(255) CHARACTER SET utf8 NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='(*15) CLAVE DE RÉGIMEN ESPECIAL O TRASCENDENCIA(Asientos) REPERCUTIDO - DEVENGADO (477)';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `creditClassification`
+--
+
+DROP TABLE IF EXISTS `creditClassification`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `creditClassification` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `client` int(11) NOT NULL,
+ `dateStart` date NOT NULL,
+ `dateEnd` date DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `creditClassifClientFk_idx` (`client`),
+ KEY `creditClassifdateEnd_idx` (`dateEnd`),
+ CONSTRAINT `creditClassifClientFk` FOREIGN KEY (`client`) REFERENCES `vn2008`.`Clientes` (`id_cliente`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn`.`creditClassification_BEFORE_UPDATE` BEFORE UPDATE ON `creditClassification` FOR EACH ROW
+BEGIN
+ IF NEW.client <> OLD.client THEN
+ CALL util.throw('NOT_ALLOWED_CHANGE_CLIENT');
+ END IF;
+ IF NEW.dateEnd IS NOT NULL AND OLD.dateEnd IS NULL THEN
+ UPDATE vn2008.Clientes c
+ SET creditInsurance = 0 WHERE c.Id_cliente = NEW.client;
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+
+--
+-- Table structure for table `creditInsurance`
+--
+
+DROP TABLE IF EXISTS `creditInsurance`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `creditInsurance` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `creditClassification` int(11) DEFAULT NULL,
+ `credit` int(11) DEFAULT NULL,
+ `creationDate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `grade` tinyint(1) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `CreditInsurance_Fk1_idx` (`creditClassification`),
+ CONSTRAINT `CreditInsurance_Fk1` FOREIGN KEY (`creditClassification`) REFERENCES `creditClassification` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Detalla los clientes que tienen seguro de credito';
+/*!40101 SET character_set_client = @saved_cs_client */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn`.`creditInsurance_AFTER_INSERT` AFTER INSERT ON `creditInsurance` FOR EACH ROW
+BEGIN
+ UPDATE vn2008.Clientes c
+ JOIN vn.creditClassification cc ON cc.client = c.Id_Cliente
+ SET creditInsurance = NEW.credit WHERE cc.id = NEW.creditClassification;
+
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+
+--
+-- Table structure for table `dailyTaskLog`
+--
+
+DROP TABLE IF EXISTS `dailyTaskLog`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `dailyTaskLog` (
+ `state` varchar(250) COLLATE utf8_unicode_ci NOT NULL,
+ `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `deliveryError`
+--
+
+DROP TABLE IF EXISTS `deliveryError`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `deliveryError` (
+ `ticket` int(11) NOT NULL,
+ `description` varchar(255) CHARACTER SET latin1 NOT NULL,
+ `worker` int(11) NOT NULL,
+ `creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ KEY `errorTickets_idx` (`ticket`),
+ KEY `errorWorker_idx` (`worker`),
+ CONSTRAINT `errorTickets` FOREIGN KEY (`ticket`) REFERENCES `vn2008`.`Tickets` (`Id_Ticket`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `errorWorker` FOREIGN KEY (`worker`) REFERENCES `vn2008`.`Trabajadores` (`Id_Trabajador`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `deliveryMethod`
+--
+
+DROP TABLE IF EXISTS `deliveryMethod`;
+/*!50001 DROP VIEW IF EXISTS `deliveryMethod`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `deliveryMethod` AS SELECT
+ 1 AS `id`,
+ 1 AS `code`,
+ 1 AS `description`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `ediGenus`
+--
+
+DROP TABLE IF EXISTS `ediGenus`;
+/*!50001 DROP VIEW IF EXISTS `ediGenus`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `ediGenus` AS SELECT
+ 1 AS `id`,
+ 1 AS `latinGenusName`,
+ 1 AS `entried`,
+ 1 AS `dued`,
+ 1 AS `modified`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `ediSpecie`
+--
+
+DROP TABLE IF EXISTS `ediSpecie`;
+/*!50001 DROP VIEW IF EXISTS `ediSpecie`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `ediSpecie` AS SELECT
+ 1 AS `id`,
+ 1 AS `genusFk`,
+ 1 AS `latinSpeciesName`,
+ 1 AS `entried`,
+ 1 AS `dued`,
+ 1 AS `modified`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `entry`
+--
+
+DROP TABLE IF EXISTS `entry`;
+/*!50001 DROP VIEW IF EXISTS `entry`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `entry` AS SELECT
+ 1 AS `id`,
+ 1 AS `supplierFk`,
+ 1 AS `ref`,
+ 1 AS `isInventory`,
+ 1 AS `isConfirmed`,
+ 1 AS `isOrdered`,
+ 1 AS `isRaid`,
+ 1 AS `commission`,
+ 1 AS `created`,
+ 1 AS `evaNotes`,
+ 1 AS `travelFk`,
+ 1 AS `currencyFk`,
+ 1 AS `companyFk`,
+ 1 AS `gestDocFk`,
+ 1 AS `invoiceReceivedFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `especialPrice`
+--
+
+DROP TABLE IF EXISTS `especialPrice`;
+/*!50001 DROP VIEW IF EXISTS `especialPrice`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `especialPrice` AS SELECT
+ 1 AS `id`,
+ 1 AS `clientFk`,
+ 1 AS `itemFk`,
+ 1 AS `value`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `excuse`
+--
+
+DROP TABLE IF EXISTS `excuse`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `excuse` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `txt` varchar(255) CHARACTER SET latin1 NOT NULL,
+ `date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `expedition`
+--
+
+DROP TABLE IF EXISTS `expedition`;
+/*!50001 DROP VIEW IF EXISTS `expedition`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `expedition` AS SELECT
+ 1 AS `id`,
+ 1 AS `agency`,
+ 1 AS `agencyFk`,
+ 1 AS `ticket`,
+ 1 AS `ticketFk`,
+ 1 AS `isBox`,
+ 1 AS `printingTime`,
+ 1 AS `item`,
+ 1 AS `itemFk`,
+ 1 AS `counter`,
+ 1 AS `checked`,
+ 1 AS `workerFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `expence`
+--
+
+DROP TABLE IF EXISTS `expence`;
+/*!50001 DROP VIEW IF EXISTS `expence`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `expence` AS SELECT
+ 1 AS `id`,
+ 1 AS `taxTypeFk`,
+ 1 AS `name`,
+ 1 AS `isWithheld`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `family`
+--
+
+DROP TABLE IF EXISTS `family`;
+/*!50001 DROP VIEW IF EXISTS `family`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `family` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `life`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `grant`
+--
+
+DROP TABLE IF EXISTS `grant`;
+/*!50001 DROP VIEW IF EXISTS `grant`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `grant` AS SELECT
+ 1 AS `group`,
+ 1 AS `worker`,
+ 1 AS `company`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `grantGroup`
+--
+
+DROP TABLE IF EXISTS `grantGroup`;
+/*!50001 DROP VIEW IF EXISTS `grantGroup`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `grantGroup` AS SELECT
+ 1 AS `id`,
+ 1 AS `description`,
+ 1 AS `observationType`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `ink`
+--
+
+DROP TABLE IF EXISTS `ink`;
+/*!50001 DROP VIEW IF EXISTS `ink`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `ink` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `picture`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `intrastat`
+--
+
+DROP TABLE IF EXISTS `intrastat`;
+/*!50001 DROP VIEW IF EXISTS `intrastat`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `intrastat` AS SELECT
+ 1 AS `id`,
+ 1 AS `description`,
+ 1 AS `taxGroupFk`,
+ 1 AS `taxCodeFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `invoiceCorrection`
+--
+
+DROP TABLE IF EXISTS `invoiceCorrection`;
+/*!50001 DROP VIEW IF EXISTS `invoiceCorrection`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `invoiceCorrection` AS SELECT
+ 1 AS `correctingFk`,
+ 1 AS `correctedFk`,
+ 1 AS `cplusRectificationTypeFk`,
+ 1 AS `cplusInvoiceType477Fk`,
+ 1 AS `invoiceCorrectionTypeFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `invoiceCorrectionDataSource`
+--
+
+DROP TABLE IF EXISTS `invoiceCorrectionDataSource`;
+/*!50001 DROP VIEW IF EXISTS `invoiceCorrectionDataSource`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `invoiceCorrectionDataSource` AS SELECT
+ 1 AS `itemFk`,
+ 1 AS `quantity`,
+ 1 AS `concept`,
+ 1 AS `price`,
+ 1 AS `discount`,
+ 1 AS `refFk`,
+ 1 AS `saleFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `invoiceCorrectionType`
+--
+
+DROP TABLE IF EXISTS `invoiceCorrectionType`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `invoiceCorrectionType` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `description` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `description_UNIQUE` (`description`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `invoiceIn`
+--
+
+DROP TABLE IF EXISTS `invoiceIn`;
+/*!50001 DROP VIEW IF EXISTS `invoiceIn`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `invoiceIn` AS SELECT
+ 1 AS `id`,
+ 1 AS `serialNumber`,
+ 1 AS `serial`,
+ 1 AS `supplierFk`,
+ 1 AS `issued`,
+ 1 AS `supplierRef`,
+ 1 AS `isBooked`,
+ 1 AS `currencyFk`,
+ 1 AS `created`,
+ 1 AS `companyFk`,
+ 1 AS `docFk`,
+ 1 AS `booked`,
+ 1 AS `operated`,
+ 1 AS `cplusInvoiceType472Fk`,
+ 1 AS `cplusRectificationTypeFk`,
+ 1 AS `cplusSubjectOpFk`,
+ 1 AS `cplusTaxBreakFk`,
+ 1 AS `cplusTrascendency472Fk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `invoiceInAwb`
+--
+
+DROP TABLE IF EXISTS `invoiceInAwb`;
+/*!50001 DROP VIEW IF EXISTS `invoiceInAwb`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `invoiceInAwb` AS SELECT
+ 1 AS `invoiceInFk`,
+ 1 AS `awbFk`,
+ 1 AS `dua`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `invoiceInEntry`
+--
+
+DROP TABLE IF EXISTS `invoiceInEntry`;
+/*!50001 DROP VIEW IF EXISTS `invoiceInEntry`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `invoiceInEntry` AS SELECT
+ 1 AS `id`,
+ 1 AS `invoiceInFk`,
+ 1 AS `entryFk`,
+ 1 AS `percentage`,
+ 1 AS `invoiceInAwbFk`,
+ 1 AS `isBooked`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `invoiceInIntrastat`
+--
+
+DROP TABLE IF EXISTS `invoiceInIntrastat`;
+/*!50001 DROP VIEW IF EXISTS `invoiceInIntrastat`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `invoiceInIntrastat` AS SELECT
+ 1 AS `invoiceInFk`,
+ 1 AS `intrastatFk`,
+ 1 AS `amount`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `invoiceInSerial`
+--
+
+DROP TABLE IF EXISTS `invoiceInSerial`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `invoiceInSerial` (
+ `code` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
+ `description` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `cplusTerIdNifFk` int(11) NOT NULL DEFAULT '1',
+ PRIMARY KEY (`code`),
+ KEY `InvoiceInSerial_Fk1_idx` (`cplusTerIdNifFk`),
+ CONSTRAINT `InvoiceInSerial_Fk1` FOREIGN KEY (`cplusTerIdNifFk`) REFERENCES `cplusTerIdNif` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `invoiceInTax`
+--
+
+DROP TABLE IF EXISTS `invoiceInTax`;
+/*!50001 DROP VIEW IF EXISTS `invoiceInTax`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `invoiceInTax` AS SELECT
+ 1 AS `id`,
+ 1 AS `invoiceInFk`,
+ 1 AS `taxCodeFk`,
+ 1 AS `taxableBase`,
+ 1 AS `expenceFk`,
+ 1 AS `foreignValue`,
+ 1 AS `created`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `invoiceOut`
+--
+
+DROP TABLE IF EXISTS `invoiceOut`;
+/*!50001 DROP VIEW IF EXISTS `invoiceOut`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `invoiceOut` AS SELECT
+ 1 AS `id`,
+ 1 AS `ref`,
+ 1 AS `serial`,
+ 1 AS `issued`,
+ 1 AS `amount`,
+ 1 AS `clientFk`,
+ 1 AS `created`,
+ 1 AS `companyFk`,
+ 1 AS `dued`,
+ 1 AS `booked`,
+ 1 AS `cplusInvoiceType477Fk`,
+ 1 AS `cplusTaxBreakFk`,
+ 1 AS `cplusSubjectOpFk`,
+ 1 AS `cplusTrascendency477Fk`,
+ 1 AS `pdf`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `invoiceOutExpence`
+--
+
+DROP TABLE IF EXISTS `invoiceOutExpence`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `invoiceOutExpence` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `invoiceOutFk` int(10) unsigned NOT NULL,
+ `amount` decimal(10,2) NOT NULL DEFAULT '0.00',
+ `expenceFk` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
+ `created` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `invoiceOutExpence_restriccion` (`expenceFk`,`invoiceOutFk`),
+ KEY `invoiceOutExpence_FK_1_idx` (`invoiceOutFk`),
+ KEY `invoiceOutExpence_FK_2_idx` (`expenceFk`),
+ CONSTRAINT `invoiceOutExpence_FK_1` FOREIGN KEY (`invoiceOutFk`) REFERENCES `vn2008`.`Facturas` (`factura_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `invoiceOutExpence_FK_2` FOREIGN KEY (`expenceFk`) REFERENCES `vn2008`.`Gastos` (`Id_Gasto`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Desglosa la base imponible de una factura en funcion del tipo de gasto/venta';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `invoiceOutSerial`
+--
+
+DROP TABLE IF EXISTS `invoiceOutSerial`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `invoiceOutSerial` (
+ `code` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
+ `description` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `isTaxed` tinyint(1) NOT NULL DEFAULT '1',
+ `taxAreaFk` varchar(15) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'NATIONAL',
+ `isCEE` tinyint(1) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`code`),
+ KEY `taxAreaFk_idx` (`taxAreaFk`),
+ CONSTRAINT `invoiceOutSerial_ibfk_1` FOREIGN KEY (`taxAreaFk`) REFERENCES `taxArea` (`code`) ON DELETE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `invoiceOutTax`
+--
+
+DROP TABLE IF EXISTS `invoiceOutTax`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `invoiceOutTax` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `invoiceOutFk` int(10) unsigned NOT NULL,
+ `taxableBase` decimal(10,2) NOT NULL,
+ `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `vat` decimal(10,2) NOT NULL DEFAULT '0.00',
+ `pgcFk` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0000000000',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `invoiceOutTax_Resctriccion` (`invoiceOutFk`,`pgcFk`),
+ KEY `invoiceOutFk_idx` (`invoiceOutFk`),
+ KEY `pgcFk` (`pgcFk`),
+ CONSTRAINT `invoiceOutFk` FOREIGN KEY (`invoiceOutFk`) REFERENCES `vn2008`.`Facturas` (`factura_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `invoiceOutTax_ibfk_1` FOREIGN KEY (`pgcFk`) REFERENCES `pgc` (`code`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `item`
+--
+
+DROP TABLE IF EXISTS `item`;
+/*!50001 DROP VIEW IF EXISTS `item`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `item` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `familyFk`,
+ 1 AS `size`,
+ 1 AS `inkFk`,
+ 1 AS `category`,
+ 1 AS `stems`,
+ 1 AS `originFk`,
+ 1 AS `description`,
+ 1 AS `producerFk`,
+ 1 AS `intrastatFk`,
+ 1 AS `expenceFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `itemBotanical`
+--
+
+DROP TABLE IF EXISTS `itemBotanical`;
+/*!50001 DROP VIEW IF EXISTS `itemBotanical`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `itemBotanical` AS SELECT
+ 1 AS `itemFk`,
+ 1 AS `botanical`,
+ 1 AS `genusFk`,
+ 1 AS `specieFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `itemBotanicalWithGenus`
+--
+
+DROP TABLE IF EXISTS `itemBotanicalWithGenus`;
+/*!50001 DROP VIEW IF EXISTS `itemBotanicalWithGenus`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `itemBotanicalWithGenus` AS SELECT
+ 1 AS `itemFk`,
+ 1 AS `ediBotanic`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `itemConversor`
+--
+
+DROP TABLE IF EXISTS `itemConversor`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `itemConversor` (
+ `espItemFk` int(11) NOT NULL,
+ `genItemFk` int(11) DEFAULT NULL,
+ PRIMARY KEY (`espItemFk`),
+ KEY `itemConversor_fk2_idx` (`genItemFk`),
+ CONSTRAINT `itemConversor_fk1` FOREIGN KEY (`espItemFk`) REFERENCES `vn2008`.`Articles` (`Id_Article`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `itemConversor_fk2` FOREIGN KEY (`genItemFk`) REFERENCES `vn2008`.`Articles` (`Id_Article`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Relaciona los item específicos con los genéricos';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `itemTag`
+--
+
+DROP TABLE IF EXISTS `itemTag`;
+/*!50001 DROP VIEW IF EXISTS `itemTag`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `itemTag` AS SELECT
+ 1 AS `id`,
+ 1 AS `itemFk`,
+ 1 AS `tagFk`,
+ 1 AS `value`,
+ 1 AS `priority`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `itemTagArranged`
+--
+
+DROP TABLE IF EXISTS `itemTagArranged`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `itemTagArranged` (
+ `itemFk` int(11) NOT NULL,
+ `tag1` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `val1` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `tag2` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `val2` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `tag3` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `val3` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `tag4` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `val4` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `tag5` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `val5` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `tag6` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `val6` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`itemFk`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Cache de columnas de características de artículo';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `itemTagged`
+--
+
+DROP TABLE IF EXISTS `itemTagged`;
+/*!50001 DROP VIEW IF EXISTS `itemTagged`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `itemTagged` AS SELECT
+ 1 AS `itemFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `itemTaxCountry`
+--
+
+DROP TABLE IF EXISTS `itemTaxCountry`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `itemTaxCountry` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `itemFk` int(11) DEFAULT NULL,
+ `countryFk` mediumint(8) unsigned DEFAULT NULL,
+ `taxClassFk` tinyint(3) unsigned NOT NULL DEFAULT '1',
+ `effectived` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`id`),
+ KEY `taxClassFK_idx` (`taxClassFk`),
+ KEY `countryFK_paises_idx` (`countryFk`),
+ KEY `itemFK_Article_idx` (`itemFk`),
+ CONSTRAINT `countryFK_paises` FOREIGN KEY (`countryFk`) REFERENCES `vn2008`.`Paises` (`Id`) ON UPDATE CASCADE,
+ CONSTRAINT `itemFK_Article` FOREIGN KEY (`itemFk`) REFERENCES `vn2008`.`Articles` (`Id_Article`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `taxClassFK_Iva_Group` FOREIGN KEY (`taxClassFk`) REFERENCES `vn2008`.`iva_group` (`iva_group_id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Define la clase de iva por artículo y pais';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `itemVerdecora`
+--
+
+DROP TABLE IF EXISTS `itemVerdecora`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `itemVerdecora` (
+ `itemFk` int(11) NOT NULL,
+ `codin` int(11) DEFAULT NULL,
+ PRIMARY KEY (`itemFk`),
+ CONSTRAINT `itemVerdecora_fk1` FOREIGN KEY (`itemFk`) REFERENCES `vn2008`.`Articles` (`Id_Article`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Relaciona nuestros articulos con los de Verdecora';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `logClient`
+--
+
+DROP TABLE IF EXISTS `logClient`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `logClient` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `originFk` int(11) NOT NULL,
+ `userFk` int(10) unsigned NOT NULL,
+ `action` set('insert','update','delete') COLLATE utf8_unicode_ci NOT NULL,
+ `creationDate` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ `description` text COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `originFk` (`originFk`),
+ KEY `userFk` (`userFk`),
+ CONSTRAINT `logClient_ibfk_1` FOREIGN KEY (`originFk`) REFERENCES `vn2008`.`Clientes` (`id_cliente`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `logClient_ibfk_2` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `logEntry`
+--
+
+DROP TABLE IF EXISTS `logEntry`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `logEntry` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `originFk` int(11) NOT NULL,
+ `userFk` int(10) unsigned NOT NULL,
+ `action` set('insert','update','delete') COLLATE utf8_unicode_ci NOT NULL,
+ `creationDate` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ `description` text COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `userFk` (`userFk`),
+ KEY `logEntry_ibfk_1` (`originFk`),
+ CONSTRAINT `logEntry_ibfk_1` FOREIGN KEY (`originFk`) REFERENCES `vn2008`.`Entradas` (`Id_Entrada`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `logEntry_ibfk_2` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `logTicket`
+--
+
+DROP TABLE IF EXISTS `logTicket`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `logTicket` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `originFk` int(11) NOT NULL,
+ `userFk` int(10) unsigned NOT NULL,
+ `action` set('insert','update','delete') COLLATE utf8_unicode_ci NOT NULL,
+ `creationDate` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ `description` text COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `logTicketoriginFk` (`originFk`),
+ KEY `logTicketuserFk` (`userFk`),
+ CONSTRAINT `logTicket_ibfk_1` FOREIGN KEY (`originFk`) REFERENCES `vn2008`.`Tickets` (`Id_Ticket`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `logTicket_ibfk_2` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `logType`
+--
+
+DROP TABLE IF EXISTS `logType`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `logType` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `code` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `originTableName` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `logTableName` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `logWorker`
+--
+
+DROP TABLE IF EXISTS `logWorker`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `logWorker` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `originFk` int(11) NOT NULL,
+ `userFk` int(10) unsigned NOT NULL,
+ `action` set('insert','update','delete') COLLATE utf8_unicode_ci NOT NULL,
+ `creationDate` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ `description` text COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `workerFk_idx` (`originFk`),
+ KEY `userFk_idx` (`userFk`),
+ CONSTRAINT `userFk` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `workerFk` FOREIGN KEY (`originFk`) REFERENCES `vn2008`.`Trabajadores` (`Id_Trabajador`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `mail`
+--
+
+DROP TABLE IF EXISTS `mail`;
+/*!50001 DROP VIEW IF EXISTS `mail`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `mail` AS SELECT
+ 1 AS `id`,
+ 1 AS `senderFk`,
+ 1 AS `recipientFk`,
+ 1 AS `sender`,
+ 1 AS `replyTo`,
+ 1 AS `subject`,
+ 1 AS `body`,
+ 1 AS `plainTextBody`,
+ 1 AS `attachment`,
+ 1 AS `creationDate`,
+ 1 AS `sent`,
+ 1 AS `status`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `mailTemplates`
+--
+
+DROP TABLE IF EXISTS `mailTemplates`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `mailTemplates` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `name` varchar(50) CHARACTER SET utf8 NOT NULL,
+ `attachmentPath` text CHARACTER SET utf8 NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `manaSpellers`
+--
+
+DROP TABLE IF EXISTS `manaSpellers`;
+/*!50001 DROP VIEW IF EXISTS `manaSpellers`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `manaSpellers` AS SELECT
+ 1 AS `worker`,
+ 1 AS `size`,
+ 1 AS `used`,
+ 1 AS `pricesModifierRate`,
+ 1 AS `pricesModifierActivated`,
+ 1 AS `workerCode`,
+ 1 AS `firstname`,
+ 1 AS `name`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `message`
+--
+
+DROP TABLE IF EXISTS `message`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `message` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `uuid` varchar(50) CHARACTER SET utf8 NOT NULL,
+ `sender` varchar(50) CHARACTER SET utf8 NOT NULL,
+ `recipient` varchar(50) CHARACTER SET utf8 NOT NULL,
+ `message` longtext CHARACTER SET utf8,
+ `sendDate` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`id`),
+ KEY `sender` (`sender`),
+ KEY `recipient` (`recipient`),
+ KEY `uuid` (`uuid`(8))
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `messageInbox`
+--
+
+DROP TABLE IF EXISTS `messageInbox`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `messageInbox` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `uuid` varchar(50) CHARACTER SET utf8 NOT NULL,
+ `sender` varchar(50) CHARACTER SET utf8 NOT NULL,
+ `recipient` varchar(45) CHARACTER SET utf8 NOT NULL,
+ `finalRecipient` varchar(50) CHARACTER SET utf8 NOT NULL,
+ `message` longtext CHARACTER SET utf8,
+ `sendDate` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ `read` varchar(45) CHARACTER SET utf8 NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `uuid` (`uuid`(8)),
+ KEY `finalRecipient` (`finalRecipient`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `movement`
+--
+
+DROP TABLE IF EXISTS `movement`;
+/*!50001 DROP VIEW IF EXISTS `movement`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `movement` AS SELECT
+ 1 AS `id`,
+ 1 AS `item`,
+ 1 AS `ticket`,
+ 1 AS `concept`,
+ 1 AS `amount`,
+ 1 AS `quantity`,
+ 1 AS `price`,
+ 1 AS `discount`,
+ 1 AS `cost`,
+ 1 AS `reservado`,
+ 1 AS `od`,
+ 1 AS `priceFixed`,
+ 1 AS `lastUpdate`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `noticeCategory`
+--
+
+DROP TABLE IF EXISTS `noticeCategory`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `noticeCategory` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `keyName` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `subject` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `description` text COLLATE utf8_unicode_ci,
+ `isEnabled` tinyint(1) NOT NULL DEFAULT '1',
+ `requiredRole` int(11) NOT NULL DEFAULT '1',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `keyName_UNIQUE` (`keyName`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `noticeSubscription`
+--
+
+DROP TABLE IF EXISTS `noticeSubscription`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `noticeSubscription` (
+ `noticeCategoryFk` int(11) NOT NULL DEFAULT '0',
+ `userFk` int(10) unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`noticeCategoryFk`,`userFk`),
+ KEY `noticeSubscription_ibfk_2` (`userFk`),
+ CONSTRAINT `noticeSubscription_ibfk_1` FOREIGN KEY (`noticeCategoryFk`) REFERENCES `noticeCategory` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `noticeSubscription_ibfk_2` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `observationType`
+--
+
+DROP TABLE IF EXISTS `observationType`;
+/*!50001 DROP VIEW IF EXISTS `observationType`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `observationType` AS SELECT
+ 1 AS `id`,
+ 1 AS `description`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `origin`
+--
+
+DROP TABLE IF EXISTS `origin`;
+/*!50001 DROP VIEW IF EXISTS `origin`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `origin` AS SELECT
+ 1 AS `id`,
+ 1 AS `code`,
+ 1 AS `name`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `outgoingInvoice`
+--
+
+DROP TABLE IF EXISTS `outgoingInvoice`;
+/*!50001 DROP VIEW IF EXISTS `outgoingInvoice`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `outgoingInvoice` AS SELECT
+ 1 AS `id`,
+ 1 AS `serie`,
+ 1 AS `dateInvoice`,
+ 1 AS `total`,
+ 1 AS `dueDate`,
+ 1 AS `bank`,
+ 1 AS `client`,
+ 1 AS `remittance`,
+ 1 AS `remit`,
+ 1 AS `worker`,
+ 1 AS `creationDate`,
+ 1 AS `company`,
+ 1 AS `liquidacion?`,
+ 1 AS `isPdf`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `outgoingInvoiceVat`
+--
+
+DROP TABLE IF EXISTS `outgoingInvoiceVat`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `outgoingInvoiceVat` (
+ `outgoingInvoice` mediumint(8) NOT NULL,
+ `taxBase` decimal(12,2) DEFAULT NULL,
+ `equalizationTax` decimal(12,2) DEFAULT NULL,
+ `Vat` decimal(12,2) DEFAULT NULL,
+ PRIMARY KEY (`outgoingInvoice`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `package`
+--
+
+DROP TABLE IF EXISTS `package`;
+/*!50001 DROP VIEW IF EXISTS `package`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `package` AS SELECT
+ 1 AS `id`,
+ 1 AS `volume`,
+ 1 AS `width`,
+ 1 AS `height`,
+ 1 AS `depth`,
+ 1 AS `isPackageReturnable`,
+ 1 AS `created`,
+ 1 AS `itemFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `payMethod`
+--
+
+DROP TABLE IF EXISTS `payMethod`;
+/*!50001 DROP VIEW IF EXISTS `payMethod`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `payMethod` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `pgc`
+--
+
+DROP TABLE IF EXISTS `pgc`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `pgc` (
+ `code` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
+ `rate` decimal(10,2) NOT NULL,
+ `name` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `cplusTaxBreakFk` int(10) unsigned DEFAULT '1',
+ `mod340` tinyint(1) NOT NULL DEFAULT '0',
+ `mod347` tinyint(1) NOT NULL DEFAULT '0',
+ `cplusTrascendency477Fk` int(10) unsigned DEFAULT '1',
+ PRIMARY KEY (`code`),
+ KEY `pgc_fk1_idx` (`cplusTaxBreakFk`),
+ KEY `pgc_fk2_idx` (`cplusTrascendency477Fk`),
+ CONSTRAINT `pgc_fk1` FOREIGN KEY (`cplusTaxBreakFk`) REFERENCES `cplusTaxBreak` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `pgc_fk2` FOREIGN KEY (`cplusTrascendency477Fk`) REFERENCES `cplusTrascendency477` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Plan General Contable';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `pgcEqu`
+--
+
+DROP TABLE IF EXISTS `pgcEqu`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `pgcEqu` (
+ `vatFk` varchar(10) COLLATE utf8_unicode_ci NOT NULL COMMENT 'Cuenta de IVA',
+ `equFk` varchar(10) COLLATE utf8_unicode_ci NOT NULL COMMENT 'Cuenta de recargo de equivalencia',
+ PRIMARY KEY (`vatFk`,`equFk`),
+ KEY `pgcEqu_fk2_idx` (`equFk`),
+ CONSTRAINT `pgcEqu_fk1` FOREIGN KEY (`vatFk`) REFERENCES `pgc` (`code`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `pgcEqu_fk2` FOREIGN KEY (`equFk`) REFERENCES `pgc` (`code`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Recoge las cuentas contables con recargo de equivalencia e identifica a la que corresponde al iva y la que corresponde al recargo';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `plantpassport`
+--
+
+DROP TABLE IF EXISTS `plantpassport`;
+/*!50001 DROP VIEW IF EXISTS `plantpassport`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `plantpassport` AS SELECT
+ 1 AS `producerFk`,
+ 1 AS `plantpassportAuthorityFk`,
+ 1 AS `number`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `plantpassportAuthority`
+--
+
+DROP TABLE IF EXISTS `plantpassportAuthority`;
+/*!50001 DROP VIEW IF EXISTS `plantpassportAuthority`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `plantpassportAuthority` AS SELECT
+ 1 AS `id`,
+ 1 AS `denomination`,
+ 1 AS `countryFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `priceFixed`
+--
+
+DROP TABLE IF EXISTS `priceFixed`;
+/*!50001 DROP VIEW IF EXISTS `priceFixed`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `priceFixed` AS SELECT
+ 1 AS `itemFk`,
+ 1 AS `rate0`,
+ 1 AS `rate1`,
+ 1 AS `rate2`,
+ 1 AS `rate3`,
+ 1 AS `started`,
+ 1 AS `ended`,
+ 1 AS `bonus`,
+ 1 AS `warehouseFk`,
+ 1 AS `created`,
+ 1 AS `id`,
+ 1 AS `grouping`,
+ 1 AS `packing`,
+ 1 AS `box`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `printServerQueue`
+--
+
+DROP TABLE IF EXISTS `printServerQueue`;
+/*!50001 DROP VIEW IF EXISTS `printServerQueue`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `printServerQueue` AS SELECT
+ 1 AS `id`,
+ 1 AS `printerFk`,
+ 1 AS `priorityFk`,
+ 1 AS `reportFk`,
+ 1 AS `statusFk`,
+ 1 AS `started`,
+ 1 AS `finished`,
+ 1 AS `param1`,
+ 1 AS `workerFk`,
+ 1 AS `param2`,
+ 1 AS `param3`,
+ 1 AS `error`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `printingQueue`
+--
+
+DROP TABLE IF EXISTS `printingQueue`;
+/*!50001 DROP VIEW IF EXISTS `printingQueue`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `printingQueue` AS SELECT
+ 1 AS `id`,
+ 1 AS `printer`,
+ 1 AS `priority`,
+ 1 AS `report`,
+ 1 AS `state`,
+ 1 AS `startingTime`,
+ 1 AS `endingTime`,
+ 1 AS `text`,
+ 1 AS `worker`,
+ 1 AS `text2`,
+ 1 AS `text3`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `producer`
+--
+
+DROP TABLE IF EXISTS `producer`;
+/*!50001 DROP VIEW IF EXISTS `producer`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `producer` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `province`
+--
+
+DROP TABLE IF EXISTS `province`;
+/*!50001 DROP VIEW IF EXISTS `province`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `province` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `countryFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `referenceRate`
+--
+
+DROP TABLE IF EXISTS `referenceRate`;
+/*!50001 DROP VIEW IF EXISTS `referenceRate`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `referenceRate` AS SELECT
+ 1 AS `currencyFk`,
+ 1 AS `dated`,
+ 1 AS `value`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `role`
+--
+
+DROP TABLE IF EXISTS `role`;
+/*!50001 DROP VIEW IF EXISTS `role`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `role` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `description`,
+ 1 AS `hasLogin`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `route`
+--
+
+DROP TABLE IF EXISTS `route`;
+/*!50001 DROP VIEW IF EXISTS `route`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `route` AS SELECT
+ 1 AS `id`,
+ 1 AS `workerFk`,
+ 1 AS `created`,
+ 1 AS `vehicleFk`,
+ 1 AS `agencyFk`,
+ 1 AS `agencyModeFk`,
+ 1 AS `time`,
+ 1 AS `isOk`,
+ 1 AS `kmStart`,
+ 1 AS `kmEnd`,
+ 1 AS `started`,
+ 1 AS `finished`,
+ 1 AS `gestdocFk`,
+ 1 AS `cost`,
+ 1 AS `m3`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `sale`
+--
+
+DROP TABLE IF EXISTS `sale`;
+/*!50001 DROP VIEW IF EXISTS `sale`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `sale` AS SELECT
+ 1 AS `id`,
+ 1 AS `itemFk`,
+ 1 AS `ticketFk`,
+ 1 AS `concept`,
+ 1 AS `quantity`,
+ 1 AS `price`,
+ 1 AS `discount`,
+ 1 AS `reserved`,
+ 1 AS `isPicked`,
+ 1 AS `created`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `saleComponent`
+--
+
+DROP TABLE IF EXISTS `saleComponent`;
+/*!50001 DROP VIEW IF EXISTS `saleComponent`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `saleComponent` AS SELECT
+ 1 AS `saleFk`,
+ 1 AS `componentFk`,
+ 1 AS `value`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `solunionCAP`
+--
+
+DROP TABLE IF EXISTS `solunionCAP`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `solunionCAP` (
+ `creditInsurance` int(11) NOT NULL,
+ `dateStart` date NOT NULL,
+ `dateEnd` date NOT NULL,
+ `dateLeaving` date DEFAULT NULL,
+ PRIMARY KEY (`creditInsurance`,`dateStart`),
+ KEY `solunionCAPdateLeavingIdx` (`dateLeaving`),
+ CONSTRAINT `solunionCAP` FOREIGN KEY (`creditInsurance`) REFERENCES `creditInsurance` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn`.`solunionCAP_AFTER_INSERT` AFTER INSERT ON `solunionCAP` FOR EACH ROW
+BEGIN
+ UPDATE vn2008.Clientes c
+ JOIN creditClassification cc ON c.Id_Cliente = cc.client
+ JOIN creditInsurance ci ON ci.creditClassification = cc.id
+ SET creditInsurance = ci.credit * 2 WHERE ci.id = NEW.creditInsurance;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn`.`solunionCAP_AFTER_UPDATE` AFTER UPDATE ON `solunionCAP` FOR EACH ROW
+BEGIN
+ IF NEW.dateLeaving IS NOT NULL THEN
+ UPDATE vn2008.Clientes c
+ JOIN creditClassification cc ON c.Id_Cliente = cc.client
+ JOIN creditInsurance ci ON ci.creditClassification = cc.id
+ SET creditInsurance = ci.credit WHERE ci.id = OLD.creditInsurance;
+ ELSE
+ UPDATE vn2008.Clientes c
+ JOIN creditClassification cc ON c.Id_Cliente = cc.client
+ JOIN creditInsurance ci ON ci.creditClassification = cc.id
+ SET creditInsurance = ci.credit * 2 WHERE ci.id = OLD.creditInsurance;
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn`.`solunionCAP_BEFORE_DELETE` BEFORE DELETE ON `solunionCAP` FOR EACH ROW
+BEGIN
+ UPDATE vn2008.Clientes c
+ JOIN creditClassification cc ON c.Id_Cliente = cc.client
+ JOIN creditInsurance ci ON ci.creditClassification = cc.id
+ SET creditInsurance = ci.credit WHERE ci.id = OLD.creditInsurance;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+
+--
+-- Temporary view structure for view `state`
+--
+
+DROP TABLE IF EXISTS `state`;
+/*!50001 DROP VIEW IF EXISTS `state`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `state` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `order`,
+ 1 AS `alertLevel`,
+ 1 AS `code`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `stockBuyed`
+--
+
+DROP TABLE IF EXISTS `stockBuyed`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `stockBuyed` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `user` int(10) unsigned DEFAULT NULL,
+ `buyed` decimal(10,2) DEFAULT NULL,
+ `date` date DEFAULT NULL,
+ `creationDate` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ `reserved` decimal(10,2) DEFAULT NULL,
+ `requested` decimal(10,2) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `date_UNIQUE` (`date`,`user`),
+ KEY `stockBuyed_user_idx` (`user`),
+ CONSTRAINT `stockBuyedUserFk` FOREIGN KEY (`user`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `supplier`
+--
+
+DROP TABLE IF EXISTS `supplier`;
+/*!50001 DROP VIEW IF EXISTS `supplier`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `supplier` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `account`,
+ 1 AS `countryFk`,
+ 1 AS `nif`,
+ 1 AS `isFarmer`,
+ 1 AS `retAccount`,
+ 1 AS `commission`,
+ 1 AS `created`,
+ 1 AS `postcodeFk`,
+ 1 AS `isActive`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `tag`
+--
+
+DROP TABLE IF EXISTS `tag`;
+/*!50001 DROP VIEW IF EXISTS `tag`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `tag` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `free`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `taxArea`
+--
+
+DROP TABLE IF EXISTS `taxArea`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `taxArea` (
+ `code` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `taxClass`
+--
+
+DROP TABLE IF EXISTS `taxClass`;
+/*!50001 DROP VIEW IF EXISTS `taxClass`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `taxClass` AS SELECT
+ 1 AS `id`,
+ 1 AS `description`,
+ 1 AS `code`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `taxClassCode`
+--
+
+DROP TABLE IF EXISTS `taxClassCode`;
+/*!50001 DROP VIEW IF EXISTS `taxClassCode`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `taxClassCode` AS SELECT
+ 1 AS `taxClassFk`,
+ 1 AS `effectived`,
+ 1 AS `taxCodeFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `taxCode`
+--
+
+DROP TABLE IF EXISTS `taxCode`;
+/*!50001 DROP VIEW IF EXISTS `taxCode`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `taxCode` AS SELECT
+ 1 AS `id`,
+ 1 AS `dated`,
+ 1 AS `code`,
+ 1 AS `taxTypeFk`,
+ 1 AS `rate`,
+ 1 AS `equalizationTax`,
+ 1 AS `type`,
+ 1 AS `linkFk`,
+ 1 AS `isActive`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `taxType`
+--
+
+DROP TABLE IF EXISTS `taxType`;
+/*!50001 DROP VIEW IF EXISTS `taxType`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `taxType` AS SELECT
+ 1 AS `id`,
+ 1 AS `nickname`,
+ 1 AS `serial`,
+ 1 AS `TIPOOPE`,
+ 1 AS `description`,
+ 1 AS `countryFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `ticket`
+--
+
+DROP TABLE IF EXISTS `ticket`;
+/*!50001 DROP VIEW IF EXISTS `ticket`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `ticket` AS SELECT
+ 1 AS `id`,
+ 1 AS `clientFk`,
+ 1 AS `warehouseFk`,
+ 1 AS `shipped`,
+ 1 AS `landed`,
+ 1 AS `nickname`,
+ 1 AS `refFk`,
+ 1 AS `addressFk`,
+ 1 AS `isSigned`,
+ 1 AS `location`,
+ 1 AS `blocked`,
+ 1 AS `solution`,
+ 1 AS `path`,
+ 1 AS `routeFk`,
+ 1 AS `company`,
+ 1 AS `companyFk`,
+ 1 AS `agencyModeFk`,
+ 1 AS `loadingOrder`,
+ 1 AS `created`,
+ 1 AS `shipment`,
+ 1 AS `landing`,
+ 1 AS `customer`,
+ 1 AS `warehouse`,
+ 1 AS `client`,
+ 1 AS `address`,
+ 1 AS `agencyMode`,
+ 1 AS `signed`,
+ 1 AS `creationDate`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `ticketObservation`
+--
+
+DROP TABLE IF EXISTS `ticketObservation`;
+/*!50001 DROP VIEW IF EXISTS `ticketObservation`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `ticketObservation` AS SELECT
+ 1 AS `id`,
+ 1 AS `ticketFk`,
+ 1 AS `observationTypeFk`,
+ 1 AS `description`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `ticketPackage`
+--
+
+DROP TABLE IF EXISTS `ticketPackage`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `ticketPackage` (
+ `ticket` int(11) NOT NULL,
+ `counter` int(10) unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`ticket`),
+ CONSTRAINT `ticketPackage_ticketFk` FOREIGN KEY (`ticket`) REFERENCES `vn2008`.`Tickets` (`Id_Ticket`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `ticketPackaging`
+--
+
+DROP TABLE IF EXISTS `ticketPackaging`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `ticketPackaging` (
+ `id` int(11) NOT NULL,
+ `ticketFk` int(11) NOT NULL,
+ `packagingFk` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
+ `quantity` int(10) DEFAULT '0',
+ `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `pvp` double DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `ticketPackaging_fk1_idx` (`ticketFk`),
+ KEY `ticketPackaging_fk2_idx` (`packagingFk`),
+ CONSTRAINT `ticketPackaging_fk1` FOREIGN KEY (`ticketFk`) REFERENCES `vn2008`.`Tickets` (`Id_Ticket`) ON UPDATE CASCADE,
+ CONSTRAINT `ticketPackaging_fk2` FOREIGN KEY (`packagingFk`) REFERENCES `vn2008`.`Cubos` (`Id_Cubo`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `ticketState`
+--
+
+DROP TABLE IF EXISTS `ticketState`;
+/*!50001 DROP VIEW IF EXISTS `ticketState`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `ticketState` AS SELECT
+ 1 AS `ticketFk`,
+ 1 AS `ticket`,
+ 1 AS `state`,
+ 1 AS `productionOrder`,
+ 1 AS `alertLevel`,
+ 1 AS `code`,
+ 1 AS `worker`,
+ 1 AS `workerFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `ticketStateToday`
+--
+
+DROP TABLE IF EXISTS `ticketStateToday`;
+/*!50001 DROP VIEW IF EXISTS `ticketStateToday`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `ticketStateToday` AS SELECT
+ 1 AS `ticket`,
+ 1 AS `state`,
+ 1 AS `productionOrder`,
+ 1 AS `alertLevel`,
+ 1 AS `worker`,
+ 1 AS `code`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `ticketTracking`
+--
+
+DROP TABLE IF EXISTS `ticketTracking`;
+/*!50001 DROP VIEW IF EXISTS `ticketTracking`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `ticketTracking` AS SELECT
+ 1 AS `id`,
+ 1 AS `stateFk`,
+ 1 AS `created`,
+ 1 AS `ticketFk`,
+ 1 AS `workerFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `ticketTrolley`
+--
+
+DROP TABLE IF EXISTS `ticketTrolley`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `ticketTrolley` (
+ `ticket` int(11) NOT NULL,
+ `labelCount` int(11) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`ticket`),
+ CONSTRAINT `fk_ticketTrolley_vs_ticket` FOREIGN KEY (`ticket`) REFERENCES `vn2008`.`Tickets` (`Id_Ticket`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `time`
+--
+
+DROP TABLE IF EXISTS `time`;
+/*!50001 DROP VIEW IF EXISTS `time`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `time` AS SELECT
+ 1 AS `dated`,
+ 1 AS `period`,
+ 1 AS `month`,
+ 1 AS `year`,
+ 1 AS `day`,
+ 1 AS `week`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `travel`
+--
+
+DROP TABLE IF EXISTS `travel`;
+/*!50001 DROP VIEW IF EXISTS `travel`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `travel` AS SELECT
+ 1 AS `id`,
+ 1 AS `shipped`,
+ 1 AS `shipmentHour`,
+ 1 AS `landed`,
+ 1 AS `landingHour`,
+ 1 AS `warehouseInFk`,
+ 1 AS `warehouseOutFk`,
+ 1 AS `agencyFk`,
+ 1 AS `ref`,
+ 1 AS `isDelivered`,
+ 1 AS `isReceived`,
+ 1 AS `m3`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `travelObservation`
+--
+
+DROP TABLE IF EXISTS `travelObservation`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `travelObservation` (
+ `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
+ `originFk` int(11) NOT NULL,
+ `userFk` int(11) NOT NULL,
+ `description` text COLLATE utf8_unicode_ci NOT NULL,
+ `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Observaciones de travel';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `unary`
+--
+
+DROP TABLE IF EXISTS `unary`;
+/*!50001 DROP VIEW IF EXISTS `unary`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `unary` AS SELECT
+ 1 AS `id`,
+ 1 AS `parent`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `unaryScan`
+--
+
+DROP TABLE IF EXISTS `unaryScan`;
+/*!50001 DROP VIEW IF EXISTS `unaryScan`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `unaryScan` AS SELECT
+ 1 AS `unaryFk`,
+ 1 AS `name`,
+ 1 AS `created`,
+ 1 AS `type`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `unaryScanLine`
+--
+
+DROP TABLE IF EXISTS `unaryScanLine`;
+/*!50001 DROP VIEW IF EXISTS `unaryScanLine`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `unaryScanLine` AS SELECT
+ 1 AS `id`,
+ 1 AS `code`,
+ 1 AS `created`,
+ 1 AS `unaryScanFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `unaryScanLineBuy`
+--
+
+DROP TABLE IF EXISTS `unaryScanLineBuy`;
+/*!50001 DROP VIEW IF EXISTS `unaryScanLineBuy`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `unaryScanLineBuy` AS SELECT
+ 1 AS `unaryScanLineFk`,
+ 1 AS `itemFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `unaryScanLineExpedition`
+--
+
+DROP TABLE IF EXISTS `unaryScanLineExpedition`;
+/*!50001 DROP VIEW IF EXISTS `unaryScanLineExpedition`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `unaryScanLineExpedition` AS SELECT
+ 1 AS `unaryScanLineFk`,
+ 1 AS `expeditionFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `user`
+--
+
+DROP TABLE IF EXISTS `user`;
+/*!50001 DROP VIEW IF EXISTS `user`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `user` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `password`,
+ 1 AS `role`,
+ 1 AS `active`,
+ 1 AS `recoverPass`,
+ 1 AS `lastPassChange`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `vehicle`
+--
+
+DROP TABLE IF EXISTS `vehicle`;
+/*!50001 DROP VIEW IF EXISTS `vehicle`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `vehicle` AS SELECT
+ 1 AS `id`,
+ 1 AS `numberPlate`,
+ 1 AS `tradeMark`,
+ 1 AS `model`,
+ 1 AS `companyFk`,
+ 1 AS `warehouseFk`,
+ 1 AS `description`,
+ 1 AS `m3`,
+ 1 AS `isActive`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `warehouse`
+--
+
+DROP TABLE IF EXISTS `warehouse`;
+/*!50001 DROP VIEW IF EXISTS `warehouse`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `warehouse` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `isInventory`,
+ 1 AS `hasComission`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `warehouseAlias`
+--
+
+DROP TABLE IF EXISTS `warehouseAlias`;
+/*!50001 DROP VIEW IF EXISTS `warehouseAlias`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `warehouseAlias` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `worker`
+--
+
+DROP TABLE IF EXISTS `worker`;
+/*!50001 DROP VIEW IF EXISTS `worker`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `worker` AS SELECT
+ 1 AS `id`,
+ 1 AS `workerCode`,
+ 1 AS `firstName`,
+ 1 AS `name`,
+ 1 AS `userFk`,
+ 1 AS `bossFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `workerDocument`
+--
+
+DROP TABLE IF EXISTS `workerDocument`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `workerDocument` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `worker` int(10) unsigned DEFAULT NULL,
+ `document` int(11) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `workerDocument_ibfk_1` (`worker`),
+ KEY `workerDocument_ibfk_2` (`document`),
+ CONSTRAINT `workerDocument_ibfk_1` FOREIGN KEY (`worker`) REFERENCES `vn2008`.`Trabajadores` (`user_id`) ON UPDATE CASCADE,
+ CONSTRAINT `workerDocument_ibfk_2` FOREIGN KEY (`document`) REFERENCES `vn2008`.`gestdoc` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `workerTeam`
+--
+
+DROP TABLE IF EXISTS `workerTeam`;
+/*!50001 DROP VIEW IF EXISTS `workerTeam`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `workerTeam` AS SELECT
+ 1 AS `team`,
+ 1 AS `user`,
+ 1 AS `id`,
+ 1 AS `Id_Trabajador`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `workerTeam_kk`
+--
+
+DROP TABLE IF EXISTS `workerTeam_kk`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `workerTeam_kk` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `team` int(11) NOT NULL,
+ `user` int(10) unsigned NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `user_team_idx` (`user`),
+ CONSTRAINT `user_team` FOREIGN KEY (`user`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `workingHours`
+--
+
+DROP TABLE IF EXISTS `workingHours`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `workingHours` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `timeIn` datetime NOT NULL,
+ `timeOut` datetime DEFAULT NULL,
+ `userId` int(10) unsigned NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `user_working_hour_idx` (`userId`),
+ CONSTRAINT `user_working_hour` FOREIGN KEY (`userId`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Almacena horas de Entrada y de Salida del personal';
+/*!40101 SET character_set_client = @saved_cs_client */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn`.`workingHoursBeforeInsert` BEFORE INSERT ON `workingHours` FOR EACH ROW
+BEGIN
+ IF (SELECT COUNT(*) FROM workingHours WHERE userId = NEW.userId AND DATE(timeIn) = CURDATE()) > 0 THEN
+ CALL util.throw ('ALREADY_LOGGED');
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+
+--
+-- Table structure for table `zone`
+--
+
+DROP TABLE IF EXISTS `zone`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `zone` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `name` varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
+ `hour` int(11) NOT NULL,
+ `warehouseFk` int(11) NOT NULL,
+ `agencyFk` int(11) NOT NULL,
+ `travelingDays` int(11) NOT NULL DEFAULT '1',
+ PRIMARY KEY (`id`,`name`),
+ UNIQUE KEY `name_UNIQUE` (`name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `zoneCalendar`
+--
+
+DROP TABLE IF EXISTS `zoneCalendar`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `zoneCalendar` (
+ `zoneFk` int(11) NOT NULL,
+ `delivered` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`zoneFk`,`delivered`),
+ CONSTRAINT `zoneFk` FOREIGN KEY (`zoneFk`) REFERENCES `zone` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `zoneGeo`
+--
+
+DROP TABLE IF EXISTS `zoneGeo`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `zoneGeo` (
+ `zoneFk` varchar(45) CHARACTER SET utf8 NOT NULL,
+ `geoFk` int(11) NOT NULL,
+ `isIncluded` tinyint(1) DEFAULT NULL,
+ PRIMARY KEY (`zoneFk`,`geoFk`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping routines for database 'vn'
+--
+/*!50003 DROP FUNCTION IF EXISTS `agencyIsAvailable` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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());
+ DECLARE vProvince INT;
+ DECLARE isAvailable BOOL;
+
+ SELECT province INTO vProvince
+ FROM address
+ WHERE id = vAddress;
+
+ SELECT COUNT(*) > 0 INTO isAvailable
+ FROM agencyHour h
+ JOIN agencyMode a
+ ON a.agency = h.agency
+ WHERE (h.province = vProvince
+ OR h.province IS NULL)
+ AND (h.weekDay = vWday
+ OR h.weekDay IS NULL)
+ AND (h.substractDay < vMaxDays
+ OR (h.substractDay = vMaxDays AND h.maxHour > vHour))
+ AND a.id = vAgency;
+
+ RETURN isAvailable;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP FUNCTION IF EXISTS `clientGetDebt` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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);
+
+ SET vDate = IFNULL(vDate, CURDATE());
+
+ SET vDateIni = TIMESTAMPADD(MONTH,-2,CURDATE());
+ SET vDateEnd = TIMESTAMP(vDate, '23:59:59');
+
+ DROP TEMPORARY TABLE IF EXISTS vn2008.ticket_tmp;
+ CREATE TEMPORARY TABLE vn2008.ticket_tmp
+ (INDEX (ticket_id))
+ ENGINE = MEMORY
+ SELECT id ticket_id
+ FROM ticket
+ WHERE clientfK = vClient
+ AND refFk IS NULL
+ AND shipped BETWEEN vDateIni AND vDateEnd;
+
+ CALL vn2008.ticket_total ();
+
+ SELECT IFNULL(SUM(t.amount), 0) INTO vDebt
+ FROM (
+ SELECT SUM(total) amount
+ FROM vn2008.ticket_total
+ UNION ALL
+ SELECT SUM(Entregado)
+ FROM vn2008.Recibos
+ WHERE Id_Cliente = vClient
+ AND Fechacobro > vDateEnd
+ UNION ALL
+ SELECT SUM(amount)
+ FROM bi.customer_risk r
+ WHERE customer_id = vClient
+ UNION ALL
+ SELECT CAST(-SUM(amount) / 100 AS DECIMAL(10,2))
+ FROM hedera.tpv_transaction
+ WHERE customer_id = vClient
+ AND receipt_id IS NULL
+ AND `status` = 'ok'
+ ) t;
+
+ DROP TEMPORARY TABLE
+ vn2008.ticket_tmp,
+ vn2008.ticket_total;
+
+ RETURN vDebt;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `clientGetDebtKK` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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);
+
+ SET vDate = IFNULL(vDate, CURDATE());
+
+ SET vDateIni = TIMESTAMPADD(MONTH,-2,CURDATE());
+ SET vDateEnd = TIMESTAMP(vDate, '23:59:59');
+
+ DROP TEMPORARY TABLE IF EXISTS vn2008.ticket_tmp;
+ CREATE TEMPORARY TABLE vn2008.ticket_tmp
+ (INDEX (ticket_id))
+ ENGINE = MEMORY
+ SELECT id ticket_id
+ FROM ticket
+ WHERE `client` = vClient
+ AND refFk IS NULL
+ AND shipment BETWEEN vDateIni AND vDateEnd;
+
+ CALL vn2008.ticket_total ();
+
+ SELECT IFNULL(SUM(t.amount), 0) INTO vDebt
+ FROM (
+ SELECT SUM(total) amount
+ FROM vn2008.ticket_total
+ UNION ALL
+ SELECT SUM(Entregado)
+ FROM vn2008.Recibos
+ WHERE Id_Cliente = vClient
+ AND Fechacobro > vDateEnd
+ UNION ALL
+ SELECT SUM(amount)
+ FROM bi.customer_risk r
+ WHERE customer_id = vClient
+ UNION ALL
+ SELECT CAST(-SUM(amount) / 100 AS DECIMAL(10,2))
+ FROM hedera.tpv_transaction
+ WHERE customer_id = vClient
+ AND receipt_id IS NULL
+ AND `status` = 'ok'
+ ) t;
+
+ DROP TEMPORARY TABLE
+ vn2008.ticket_tmp,
+ vn2008.ticket_total;
+
+ RETURN vDebt;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `clientGetMana` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+SELECT max(dated) INTO vFromDated
+FROM vn.clientManaCache
+WHERE clientFk = vClient;
+
+SELECT sum(mana) INTO vMana
+ FROM
+ (
+ SELECT mana
+ FROM vn.clientManaCache
+ WHERE clientFk = vClient
+ AND dated = vFromDated
+
+ UNION ALL
+
+ SELECT s.quantity * Valor
+ FROM vn.ticket t
+ JOIN vn.address a ON a.id = t.addressFk
+ JOIN vn.sale s on s.ticketFk = t.id
+ JOIN vn2008.Movimientos_componentes mc on mc.Id_Movimiento = s.id
+ WHERE Id_Componente IN (37, 39)
+ AND t.shipped > vFromDated
+ AND t.clientFk = vClient
+
+ UNION ALL
+
+ SELECT - Entregado
+ FROM vn2008.Recibos r
+ JOIN vn2008.Clientes c using(Id_Cliente)
+ WHERE r.Id_Banco = 66
+ AND r.Fechacobro > vFromDated
+ AND c.Id_Cliente = vClient
+
+ UNION ALL
+
+ SELECT g.Importe
+ FROM vn2008.Greuges g
+ JOIN vn2008.Clientes c using(Id_Cliente)
+ WHERE g.Greuges_type_id = 3 -- Maná
+ AND g.Fecha > vFromDated
+ AND c.Id_Cliente = vClient
+
+ ) sub;
+
+RETURN IFNULL(vMana,0);
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `clientTaxArea` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ SELECT ct.Cee INTO vCee
+ FROM `client` c
+ JOIN country ct ON ct.id = c.countryFk
+ JOIN supplier s ON s.id = vCompanyFk
+ WHERE
+ c.id = vClientFk
+ AND c.vies
+ AND c.countryFk != s.countryFk;
+
+ IF vCee < 2 THEN
+ SET vTaxArea = 'CEE';
+ ELSEIF vCee = 2 THEN
+ SET vTaxArea = 'WORLD';
+ ELSE
+ SET vTaxArea = 'NATIONAL';
+ END IF;
+
+ RETURN vTaxArea;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `getAlert3State` */;
+ALTER DATABASE `vn` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `getAlert3State`(vTicket INT) RETURNS varchar(45) CHARSET latin1
+BEGIN
+ DECLARE vDeliveryType INTEGER DEFAULT 0;
+ DECLARE vWorker INT;
+ DECLARE isWaitingForPickUp BOOLEAN DEFAULT FALSE;
+ DECLARE vCode VARCHAR(45);
+
+ SELECT IFNULL(aw.Vista,a.Vista) INTO vDeliveryType
+ FROM vn2008.Tickets t
+ JOIN vn2008.Agencias a ON a.Id_Agencia = t.Id_Agencia
+ LEFT JOIN vn2008.agency_warehouse aw ON a.agency_id = aw.agency_id AND t.warehouse_id = aw.warehouse_id
+ WHERE Id_Ticket = vTicket;
+
+ SELECT getUser() INTO vWorker;
+
+ CASE vDeliveryType
+ WHEN 1 THEN -- AGENCIAS
+ SELECT COUNT(*) INTO isWaitingForPickUp
+ FROM vn2008.Tickets t
+ JOIN vn2008.warehouse_pickup w ON w.agency_id = t.Id_Agencia
+ WHERE t.Id_Ticket = vTicket AND w.warehouse_id <> t.warehouse_id;
+
+ IF isWaitingForPickUp THEN
+ SET vCode = 'WAITING_FOR_PICKUP';
+ ELSE
+ SET vCode = 'DELIVERED';
+ END IF;
+
+ WHEN 2 THEN -- REPARTO
+ SET vCode = 'ON_DELIVERY';
+
+ ELSE -- MERCADO, OTROS
+ SET vCode = 'DELIVERED';
+ END CASE;
+ RETURN vCode;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP FUNCTION IF EXISTS `getDueDate` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `getDueDate`(vDated DATE, vDayToPay INT) RETURNS date
+BEGIN
+
+DECLARE vDued DATE;
+
+SET vDued = IF (vDayToPay > 30 or vDayToPay < 1
+ ,TIMESTAMPADD(DAY, vDayToPay, vDated)
+ ,TIMESTAMPADD(DAY, vDayToPay, LAST_DAY(vDated)));
+
+RETURN vDued;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP FUNCTION IF EXISTS `getInventoryDate` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `getInventoryDate`() RETURNS date
+ DETERMINISTIC
+BEGIN
+ RETURN vn2008.date_inv();
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP FUNCTION IF EXISTS `getShipmentHour` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `getShipmentHour`(vTicket INT) RETURNS int(11)
+BEGIN
+ DECLARE vShipmentHour INT;
+
+ SELECT HOUR(shipment) INTO vShipmentHour
+ FROM ticket
+ WHERE id = vTicket;
+
+ IF vShipmentHour = 0
+ THEN
+ DROP TEMPORARY TABLE IF EXISTS tmp.production_buffer;
+ CREATE TEMPORARY TABLE tmp.production_buffer
+ ENGINE = MEMORY
+ SELECT am.agency as agency_id
+ , t.warehouse as warehouse_id
+ , a.province as province_id
+ , 0 as Hora
+ , 0 as Departure
+ FROM ticket t
+ JOIN agencyMode am on am.id = t.agencyMode
+ JOIN address a on a.id = t.address
+ WHERE t.id = vTicket;
+
+ CALL vn2008.production_buffer_set_priority;
+
+ SELECT Hora INTO vShipmentHour
+ FROM tmp.production_buffer;
+ END IF;
+
+ RETURN vShipmentHour;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP FUNCTION IF EXISTS `getSpecialPrice` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `getSpecialPrice`(vItemFk int(11),vClientFk int(11)) RETURNS decimal(10,2)
+BEGIN
+ DECLARE price DECIMAL(10,2);
+
+ SELECT rate3 INTO price
+ FROM vn.priceFixed
+ WHERE itemFk = vItemFk
+ AND CURDATE() BETWEEN started AND ended ORDER BY created DESC LIMIT 1;
+
+ SELECT `value` INTO price
+ FROM vn.especialPrice
+ WHERE itemFk = vItemFk
+ AND clientFk = vClientFk ;
+RETURN price;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `getTicketToPrepare` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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);
+ DECLARE vTicket INT DEFAULT NULL;
+
+ SET vYesterday = TIMESTAMPADD(DAY,-1,vToday);
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.workerComercial;
+ CREATE TEMPORARY TABLE tmp.workerComercial
+ ENGINE = MEMORY
+ SELECT worker FROM `grant` g
+ JOIN grantGroup gg ON g.group = gg.id
+ WHERE gg.description = 'Comerciales'
+ AND worker != 2; -- PAKO
+
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.production_buffer;
+ CREATE TEMPORARY TABLE tmp.production_buffer
+ ENGINE = MEMORY
+ SELECT t.id as ticket
+ , am.agency as agency_id
+ , t.warehouse as warehouse_id
+ , a.province as province_id
+ , Hour(t.shipment) as Hora
+ , Hour(t.shipment) as Departure
+ , tls.code
+ , IFNULL(t.loadingOrder,0) loadingOrder
+ FROM ticket t
+ JOIN ticketState tls on t.id = tls.ticket
+ JOIN agencyMode am on am.id = t.agencyMode
+ JOIN address a on a.id = t.address
+ LEFT JOIN tmp.workerComercial wc ON wc.worker = vWorker
+ WHERE t.shipment BETWEEN vYesterday AND vTodayvMidniight
+ AND t.warehouse = vWarehouse
+ AND
+ (
+ (tls.code = 'PRINTED' AND wc.worker IS NULL)
+ OR
+ (tls.code ='PICKER_DESIGNED' AND tls.worker = vWorker)
+ OR
+ (tls.code = 'PRINTED_BACK')
+ );
+
+
+ CALL vn2008.production_buffer_set_priority;
+
+ SELECT ticket INTO vTicket
+ FROM tmp.production_buffer
+ ORDER BY (code = 'PICKER_DESIGNED') DESC , Hora, loadingOrder
+ LIMIT 1;
+
+ RETURN vTicket;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP FUNCTION IF EXISTS `getTicketTrolleyLabelCount` */;
+ALTER DATABASE `vn` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `getTicketTrolleyLabelCount`(vTicket INT) RETURNS int(11)
+BEGIN
+
+DECLARE vLabelCount INT DEFAULT 0;
+
+SELECT labelCount INTO vLabelCount
+FROM ticketTrolley
+WHERE ticket = vTicket;
+
+SET vLabelCount = vLabelCount +1 ;
+
+REPLACE ticketTrolley(ticket,labelCount)
+SELECT vTicket, vLabelCount;
+
+RETURN vlabelCount;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP FUNCTION IF EXISTS `getUser` */;
+ALTER DATABASE `vn` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `getUser`() RETURNS int(11)
+ DETERMINISTIC
+BEGIN
+ RETURN getWorker();
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP FUNCTION IF EXISTS `getUserId` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `getUserId`(userName varchar(30)) RETURNS int(11)
+BEGIN
+ DECLARE vUser INT;
+
+ SELECT id INTO vUser
+ FROM account.user
+ WHERE `name` = userName;
+
+ RETURN vUser;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP FUNCTION IF EXISTS `getWorker` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `getWorker`() RETURNS int(11)
+ DETERMINISTIC
+BEGIN
+ DECLARE vUser INT;
+
+ SELECT id INTO vUser
+ FROM worker
+ WHERE userFk = account.userGetId();
+
+ RETURN vUser;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `getWorkerkk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `getWorkerkk`() RETURNS int(11)
+ DETERMINISTIC
+BEGIN
+ DECLARE vUser INT;
+
+ SELECT id INTO vUser
+ FROM worker
+ WHERE user = account.userGetId();
+
+ RETURN vUser;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `hasAnyNegativeBase` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ SELECT s.countryFk
+ INTO vCountry
+ FROM supplier s
+ JOIN ticket t ON t.companyFk = s.id
+ JOIN vn.ticketToInvoice tl ON tl.id = t.id
+ LIMIT 1;
+
+ SELECT COUNT(*) INTO hasAnyNegativeBase
+ FROM (
+ SELECT SUM(ROUND(s.quantity * s.price * (100 - s.discount)/100,2)) taxableBase
+ FROM sale s
+ JOIN item i ON i.id = s.itemFk
+ JOIN itemTaxCountry itc
+ ON itc.itemFk = i.id AND itc.countryFk = vCountry
+ JOIN vn.ticketToInvoice tl ON tl.id = s.ticketFk
+ GROUP BY itc.taxClassFk
+ HAVING taxableBase < 0
+ ) t1 ;
+
+ RETURN hasAnyNegativeBase;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `hasSomeNegativeBase` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `hasSomeNegativeBase`(vTicket INT) RETURNS tinyint(1)
+BEGIN
+
+ DECLARE vCountry INT;
+ DECLARE hasSomeNegativeBase BOOLEAN;
+
+ SELECT s.countryFk
+ INTO vCountry
+ FROM supplier s
+ JOIN ticket t ON t.companyFk = s.id
+ WHERE t.id = vTicket;
+
+ SELECT COUNT(*) INTO hasSomeNegativeBase
+ FROM (
+ SELECT SUM(ROUND(s.quantity * s.price * (100 - s.discount)/100,2)) taxableBase
+ FROM sale s
+ JOIN item i ON i.id = s.itemFk
+ JOIN itemTaxCountry itc
+ ON itc.itemFk = i.id AND itc.countryFk = vCountry
+ WHERE s.ticketFk = vTicket
+ GROUP BY itc.taxClassFk
+ HAVING taxableBase < 0
+ ) t1 ;
+
+ RETURN hasSomeNegativeBase;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `invoiceOutAmount` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `invoiceOutAmount`(vInvoiceRef VARCHAR(15)) RETURNS decimal(10,2)
+BEGIN
+ DECLARE totalAmount DECIMAL(10,2);
+
+ SELECT SUM(vat) INTO totalAmount
+ FROM
+ (
+ SELECT iot.vat
+ FROM invoiceOutTax iot
+ JOIN invoiceOut io ON io.id = iot.invoiceOutFk
+ WHERE io.ref = vInvoiceRef
+ UNION ALL
+ SELECT ioe.amount
+ FROM invoiceOutExpence ioe
+ JOIN invoiceOut io ON io.id = ioe.invoiceOutFk
+ WHERE io.ref = vInvoiceRef
+ ) t1;
+
+RETURN totalAmount;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `invoiceSerial` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ WHEN 'CEE'
+ THEN 'H'
+ WHEN 'WORLD'
+ THEN 'E'
+ WHEN 'NATIONAL'
+ THEN 'T'
+ END
+ INTO vSerie;
+ -- Factura multiple
+ ELSEIF vType = 'M' THEN
+ SELECT
+ CASE vArea
+ WHEN 'CEE'
+ THEN 'H'
+ WHEN 'WORLD'
+ THEN 'E'
+ WHEN 'NATIONAL'
+ THEN 'M'
+ END
+ INTO vSerie;
+ -- Factura global
+ ELSEIF vType = 'G' THEN
+ SELECT
+ CASE vArea
+ WHEN 'CEE'
+ THEN 'V'
+ WHEN 'WORLD'
+ THEN 'X'
+ WHEN 'NATIONAL'
+ THEN 'A'
+ END
+ INTO vSerie;
+ END IF;
+RETURN vSerie;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `isWorkerBoss` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `isWorkerBoss`(vUserId INT(11)) RETURNS tinyint(1)
+ DETERMINISTIC
+BEGIN
+
+ DECLARE subjectId INT(11) DEFAULT vUserId;
+ DECLARE tmpSubjectId INT(11);
+ DECLARE tmpBossId INT(11);
+
+ LOOP
+ SELECT
+ bossWorker.user_id AS tmpBossId,
+ subjectWorker.user_id AS tmpSubjectId
+ INTO tmpBossId, tmpSubjectId
+ FROM
+ vn2008.Trabajadores AS subjectWorker
+ JOIN
+ vn2008.Trabajadores AS bossWorker ON bossWorker.Id_Trabajador = subjectWorker.boss
+ WHERE
+ subjectWorker.user_id = subjectId;
+
+ IF tmpBossId = tmpSubjectId THEN
+ RETURN FALSE;
+ ELSEIF tmpBossId = account.userGetId() THEN
+ RETURN TRUE;
+ ELSE
+ SET subjectId = tmpBossId;
+ END IF;
+ END LOOP;
+
+RETURN FALSE;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP FUNCTION IF EXISTS `messageSend` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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();
+ DECLARE vUser VARCHAR(255) DEFAULT account.userGetName();
+
+ SET vRecipient = LOWER(vRecipient);
+
+ DROP TEMPORARY TABLE IF EXISTS tRecipients;
+ CREATE TEMPORARY TABLE tRecipients
+ SELECT u.name finalRecipient
+ FROM account.mailAlias a
+ JOIN account.mailAliasAccount aa ON aa.mailAlias = a.id
+ JOIN account.user u ON u.id = aa.account
+ WHERE a.alias = vRecipient COLLATE utf8_unicode_ci
+ AND u.name != vUser
+ AND u.active
+ UNION
+ SELECT u.name FROM account.user u
+ WHERE u.name = vRecipient
+ AND u.active;
+
+ SELECT COUNT(*) INTO vCount FROM tRecipients;
+
+ IF vCount = 0 THEN
+ RETURN vCount;
+ END IF;
+
+ SET vUuid = UUID();
+
+ INSERT INTO message
+ SET uuid = vUuid,
+ sender = vUser,
+ recipient = vRecipient,
+ message = vMessage,
+ sendDate = vSendDate;
+
+ INSERT INTO messageInbox (uuid, sender, recipient, finalRecipient, message, sendDate)
+ SELECT vUuid, vUser, vRecipient, finalRecipient, vMessage, vSendDate
+ FROM tRecipients;
+
+ DROP TEMPORARY TABLE tRecipients;
+ RETURN vCount;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP FUNCTION IF EXISTS `midnight` */;
+ALTER DATABASE `vn` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `midnight`(vDate DATE) RETURNS datetime
+ DETERMINISTIC
+BEGIN
+ RETURN TIMESTAMP(vDate,'23:59:59');
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP FUNCTION IF EXISTS `noticeHasActive` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ FROM noticeSubscription s
+ JOIN noticeCategory c ON c.id = s.noticeCategoryFk
+ WHERE c.keyName = vCategoryKey AND userFk = vUser;
+
+ RETURN vActive;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP FUNCTION IF EXISTS `phytoPassport` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `phytoPassport`(vRef VARCHAR(15)) RETURNS text CHARSET utf8
+BEGIN
+DECLARE vPhyto TEXT CHARSET utf8 COLLATE utf8_unicode_ci;
+SELECT
+ GROUP_CONCAT(i.id,
+ ':',
+ ppa.denomination,
+ ' ',
+ pp.number,
+ CHAR(13,10)
+ SEPARATOR '') fitosanitario
+ INTO vPhyto
+FROM
+ sale s
+ JOIN
+ ticket t ON t.id = s.ticketFk
+ JOIN
+ item i ON i.id = s.itemFk
+ JOIN
+ plantpassport pp ON pp.producerFk = i.producerFk
+ JOIN
+ plantpassportAuthority ppa ON ppa.id = pp.plantpassportAuthorityFk
+ JOIN
+ itemBotanicalWithGenus ib ON ib.itemFk = i.id
+ JOIN
+ botanicExport be ON be.restriction = 'Se Requiere Certificado'
+ LEFT JOIN
+ ediGenus eg ON eg.id = be.ediGenusFk
+ LEFT JOIN
+ ediSpecie es ON es.id = be.ediSpecieFk
+WHERE
+ t.refFk = vRef
+ AND ib.ediBotanic LIKE CONCAT(IFNULL(eg.latinGenusName, ''),
+ IF(latinSpeciesName > '',
+ CONCAT(' ', latinSpeciesName),
+ ''),
+ '%');
+RETURN vPhyto;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `ticketPositionInPath` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `ticketPositionInPath`(vTicketId INT) RETURNS varchar(10) CHARSET utf8
+BEGIN
+
+ DECLARE vRestTicketsMaxOrder INT;
+ DECLARE vRestTicketsMinOrder INT;
+ DECLARE vRestTicketsPacking INT;
+ DECLARE vMyProductionOrder INT;
+ DECLARE vPosition VARCHAR(10) DEFAULT 'MID';
+ DECLARE vMyPath INT;
+ DECLARE vMyWarehouse INT;
+ DECLARE PACKING_ORDER INT;
+ DECLARE vExpeditionsCount INT;
+ DECLARE vIsValenciaPath BOOLEAN DEFAULT FALSE;
+
+SELECT `order`
+ INTO PACKING_ORDER
+ FROM state
+ WHERE code = 'PACKING';
+
+SELECT t.routeFk, t.warehouseFk, IFNULL(ts.productionOrder,0)
+ INTO vMyPath, vMyWarehouse, vMyProductionOrder
+ FROM ticket t
+ LEFT JOIN ticketState ts on ts.ticket = t.id
+ WHERE t.id = vTicketId;
+
+SELECT (ag.`name` = 'VN_VALENCIA')
+ INTO vIsValenciaPath
+ FROM vn2008.Rutas r
+ JOIN vn2008.Agencias a on a.Id_Agencia = r.Id_Agencia
+ JOIN vn2008.agency ag on ag.agency_id = a.agency_id
+ WHERE r.Id_Ruta = vMyPath;
+
+IF vIsValenciaPath THEN -- Rutas Valencia
+
+ SELECT COUNT(*)
+ INTO vExpeditionsCount
+ FROM expedition e
+ JOIN ticket t ON t.id = e.ticket
+ WHERE t.routeFk = vMyPath;
+
+ SELECT MAX(ts.productionOrder), MIN(ts.productionOrder)
+ INTO vRestTicketsMaxOrder, vRestTicketsMinOrder
+ FROM ticket t
+ LEFT JOIN ticketState ts on t.id = ts.ticket
+ WHERE t.routeFk = vMyPath
+ AND t.warehouseFk = vMyWarehouse
+ AND t.id != vTicketid;
+
+ SELECT COUNT(*)
+ INTO vRestTicketsPacking
+ FROM ticket t
+ LEFT JOIN ticketState ts on t.id = ts.ticket
+ WHERE ts.productionOrder = PACKING_ORDER
+ AND t.routeFk = vMyPath
+ AND t.warehouseFk = vMyWarehouse
+ AND t.id != vTicketid;
+
+ IF vExpeditionsCount = 1 THEN
+ SET vPosition = 'FIRST';
+ ELSEIF vRestTicketsMinOrder > PACKING_ORDER THEN
+ SET vPosition = 'LAST';
+ ELSEIF vRestTicketsPacking THEN
+ SET vPosition = 'SHARED';
+ ELSE
+ SET vPosition = 'MID';
+ END IF;
+
+ELSE
+ SET vPosition = 'MID';
+
+END IF;
+
+RETURN vPosition;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `ticketPositionInPathkk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `ticketPositionInPathkk`(vTicketId INT) RETURNS varchar(10) CHARSET utf8
+BEGIN
+
+
+DECLARE vRestTicketsMaxOrder INT;
+DECLARE vRestTicketsMinOrder INT;
+DECLARE vRestTicketsPacking INT;
+DECLARE vMyProductionOrder INT;
+DECLARE vPosition VARCHAR(10) DEFAULT 'MID';
+DECLARE vMyPath INT;
+DECLARE vMyWarehouse INT;
+DECLARE PACKING_ORDER INT;
+DECLARE vExpeditionsCount INT;
+DECLARE vIsValenciaPath BOOLEAN DEFAULT FALSE;
+
+SELECT `order`
+ INTO PACKING_ORDER
+ FROM state
+ WHERE code = 'PACKING';
+
+SELECT path, warehouse, IFNULL(productionOrder,0)
+ INTO vMyPath, vMyWarehouse, vMyProductionOrder
+ FROM ticket t
+ LEFT JOIN ticketState ts on ts.ticket = t.id
+ WHERE id = vTicketId;
+
+SELECT (ag.`name` = 'VN_VALENCIA')
+ INTO vIsValenciaPath
+ FROM vn2008.Rutas r
+ JOIN vn2008.Agencias a on a.Id_Agencia = r.Id_Agencia
+ JOIN vn2008.agency ag on ag.agency_id = a.agency_id
+ WHERE r.Id_Ruta = vMyPath;
+
+
+IF vIsValenciaPath THEN -- Rutas Valencia
+
+ SELECT COUNT(*)
+ INTO vExpeditionsCount
+ FROM expedition e
+ JOIN ticket t ON t.id = e.ticket
+ WHERE t.path = vMyPath;
+
+ SELECT MAX(productionOrder), MIN(productionOrder)
+ INTO vRestTicketsMaxOrder, vRestTicketsMinOrder
+ FROM ticket t
+ LEFT JOIN ticketState ts on t.id = ts.ticket
+ WHERE t.path = vMyPath
+ AND t.warehouse = vMyWarehouse
+ AND t.id != vTicketid;
+
+ SELECT COUNT(*)
+ INTO vRestTicketsPacking
+ FROM ticket t
+ LEFT JOIN ticketState ts on t.id = ts.ticket
+ WHERE productionOrder = PACKING_ORDER
+ AND t.path = vMyPath
+ AND t.warehouse = vMyWarehouse
+ AND t.id != vTicketid;
+
+
+
+ IF vExpeditionsCount = 1 THEN
+
+ SET vPosition = 'FIRST';
+
+ ELSEIF vRestTicketsMinOrder > PACKING_ORDER THEN
+
+ SET vPosition = 'LAST';
+
+ ELSEIF vRestTicketsPacking THEN
+
+ SET vPosition = 'SHARED';
+
+ ELSE
+
+ SET vPosition = 'MID';
+
+ END IF;
+
+ELSE
+
+ SET vPosition = 'MID';
+
+END IF;
+
+RETURN vPosition;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `workerIsBoss` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ SELECT id INTO vWorkerId
+ FROM vn.worker
+ WHERE userFk = vUserId;
+ IF vWorkerId IS NULL THEN
+ CALL util.throw('USER_NOT_FOUND');
+ END IF;
+
+ DROP TEMPORARY TABLE IF EXISTS tCheckedWorker;
+ CREATE TEMPORARY TABLE tCheckedWorker
+ (PRIMARY KEY (workerFk))
+ ENGINE = MEMORY
+ SELECT id workerFk FROM worker LIMIT 0;
+ LOOP
+ SELECT bossFk INTO vBossId
+ FROM vn.worker
+ WHERE id = vWorkerId;
+ IF (SELECT COUNT(*) FROM tCheckedWorker WHERE workerFk = vBossId) THEN
+ CALL util.throw('INFINITE_LOOP');
+ END IF;
+ IF vBossId = vWorkerId THEN
+ RETURN FALSE;
+ ELSEIF vBossId = vn.getWorker() THEN
+ RETURN TRUE;
+ ELSE
+ INSERT INTO tCheckedWorker VALUES (vWorkerId);
+ SET vWorkerId = vBossId;
+ END IF;
+ END LOOP;
+ DROP TEMPORARY TABLE tCheckedWorker;
+ RETURN FALSE;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `agencyListAvailable` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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());
+ DECLARE vProvince INT;
+
+ SELECT province INTO vProvince
+ FROM address
+ WHERE id = vAddress;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.agencyAvailable;
+ CREATE TEMPORARY TABLE tmp.agencyAvailable
+ (INDEX (agency))
+ ENGINE = MEMORY
+ SELECT agency, warehouse
+ FROM agencyHour h
+ WHERE (province = vProvince
+ OR province IS NULL)
+ AND (weekDay = vWday
+ OR weekDay IS NULL)
+ AND (substractDay < vMaxDays
+ OR (substractDay = vMaxDays AND maxHour > vHour));
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `agencyListForMethod` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ FROM tmp.agencyAvailable a
+ JOIN agencyMode m
+ ON m.agency = a.agency
+ JOIN deliveryMethod d
+ ON d.id = m.deliveryMethod
+ WHERE d.code = vMethod COLLATE 'utf8_unicode_ci';
+
+ DROP TEMPORARY TABLE tmp.agencyAvailable;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `clean` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `clean`()
+BEGIN
+
+ DECLARE vDateShort DATETIME;
+
+ SET vDateShort = TIMESTAMPADD(MONTH, -2, CURDATE());
+
+ INSERT INTO vn.dailyTaskLog(state) VALUES('clean START');
+
+ DELETE FROM vn.message WHERE sendDate < vDateShort;
+
+ INSERT INTO vn.dailyTaskLog(state) VALUES('clean END');
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `clientFreeze` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `clientFreeze`()
+BEGIN
+
+ IF day(CURDATE()) IN (10,20,30) THEN
+
+ UPDATE vn.client c
+ JOIN bi.defaulters d ON d.client = c.id AND d.date = CURDATE()
+ JOIN vn.config ON TRUE
+ SET c.isFreezed = TRUE
+ WHERE d.amount > config.defaultersMaxAmount;
+
+ END IF;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `copyComponentsFromSaleList` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ FROM tmp.saleList
+ ORDER BY orden;
+
+ SET @order = 0;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.newSaleList;
+
+ CREATE TEMPORARY TABLE tmp.newSaleList
+ SELECT id as saleFk, @order := @order + 1 as orden
+ FROM vn.sale
+ WHERE ticketFk = vTargetTicketFk
+ ORDER BY saleFk;
+
+ INSERT INTO vn.saleComponent(saleFk,componentFk,value)
+ SELECT ns.saleFk, sc.componentFk, sc.value
+ FROM vn.saleComponent sc
+ JOIN tmp.saleList s ON s.saleFk = sc.saleFk
+ JOIN tmp.newSaleList ns ON ns.orden = s.orden;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `createExternalWorker` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `createExternalWorker`(
+ vFirstName VARCHAR(50),
+ vSurname1 VARCHAR(50),
+ vSurname2 VARCHAR(50),
+ vUser VARCHAR(20),
+ vPassword VARCHAR(50),
+ vWorkerCode VARCHAR(3)
+ )
+BEGIN
+
+ DECLARE vUserId INT;
+ DECLARE vWorkerPako INT DEFAULT 2;
+
+ INSERT INTO account.user(name,password,role)
+ 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;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `entryConverter` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `entryConverter`(vEntry INT)
+BEGIN
+
+ DECLARE vWarehouseIn INT;
+ DECLARE vWarehouseOut INT;
+ DECLARE vTravel INT;
+
+ DECLARE done BOOL DEFAULT FALSE;
+
+ DECLARE vId_Entrada INT;
+ DECLARE vId_Article INT;
+ DECLARE vEtiquetas INT;
+ DECLARE vId_Cubo VARCHAR(10);
+ DECLARE vPacking INT;
+ DECLARE vGrouping INT;
+ DECLARE vCantidad INT;
+ DECLARE vCostefijo DECIMAL(10,3);
+ DECLARE vPortefijo DECIMAL(10,3);
+ DECLARE vEmbalajefijo DECIMAL(10);
+ DECLARE vComisionfija DECIMAL(10,3);
+ DECLARE vCaja INT;
+ DECLARE vNicho VARCHAR(5);
+ DECLARE vTarifa1 DECIMAL(10,2);
+ DECLARE vTarifa2 DECIMAL(10,2);
+ DECLARE vTarifa3 DECIMAL(10,2);
+ DECLARE vPVP DECIMAL(10,2);
+ DECLARE vCompra INT;
+
+ DECLARE rs CURSOR FOR
+ SELECT
+ b.Id_Entrada,
+ b.Id_Article,
+ b.Etiquetas,
+ b.Id_Cubo,
+ b.Packing,
+ b.grouping,
+ b.Cantidad,
+ b.Costefijo,
+ b.Portefijo,
+ b.Embalajefijo,
+ b.Comisionfija,
+ b.caja,
+ b.Nicho,
+ b.Tarifa1,
+ b.Tarifa2,
+ b.Tarifa3,
+ b.PVP
+ FROM vn2008.Compres b
+ JOIN vn.itemConversor ic ON ic.espItemFk = b.Id_Article
+ WHERE Id_Entrada = vEntry;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
+
+ SELECT warehouseInFk, warehouseOutFk, tr.id
+ INTO vWarehouseIn, vWarehouseOut, vTravel
+ FROM travel tr
+ JOIN entry e ON e.travelFk = tr.id
+ WHERE e.id = vEntry;
+
+ UPDATE travel
+ SET warehouseInFk = vWarehouseOut,
+ warehouseOutFk = vWarehouseIn
+ WHERE id = vTravel;
+
+ UPDATE vn2008.Compres c
+ LEFT JOIN vn.itemConversor ic ON ic.espItemFk = c.Id_Article
+ SET Etiquetas = 0, Cantidad = 0
+ WHERE c.Id_Entrada = vEntry
+ AND ic.espItemFk IS NULL;
+
+ OPEN rs;
+
+ DELETE FROM vn2008.Compres WHERE Id_Entrada = vEntry;
+
+ FETCH rs INTO
+ vId_Entrada,
+ vId_Article,
+ vEtiquetas,
+ vId_Cubo,
+ vPacking,
+ vGrouping,
+ vCantidad,
+ vCostefijo,
+ vPortefijo,
+ vEmbalajefijo,
+ vComisionfija,
+ vCaja,
+ vNicho,
+ vTarifa1,
+ vTarifa2,
+ vTarifa3,
+ vPVP;
+
+ WHILE NOT done DO
+
+ -- Primero la linea original con las cantidades invertidas
+ INSERT INTO vn2008.Compres
+ (
+ Id_Entrada,
+ Id_Article,
+ Etiquetas,
+ Id_Cubo,
+ Packing,
+ grouping,
+ Cantidad,
+ Costefijo,
+ Portefijo,
+ Embalajefijo,
+ Comisionfija,
+ caja,
+ Nicho,
+ Tarifa1,
+ Tarifa2,
+ Tarifa3,
+ PVP
+ )
+ VALUES
+ (
+ vId_Entrada,
+ vId_Article,
+ - vEtiquetas,
+ vId_Cubo,
+ vPacking,
+ vGrouping,
+ - vCantidad,
+ vCostefijo,
+ vPortefijo,
+ vEmbalajefijo,
+ vComisionfija,
+ vCaja,
+ vNicho,
+ vTarifa1,
+ vTarifa2,
+ vTarifa3,
+ vPVP);
+
+ -- Ahora la linea nueva, con el item genérico
+ INSERT INTO vn2008.Compres
+ (
+ Id_Entrada,
+ Id_Article,
+ Etiquetas,
+ Id_Cubo,
+ Packing,
+ grouping,
+ Cantidad,
+ Costefijo,
+ Portefijo,
+ Embalajefijo,
+ Comisionfija,
+ caja,
+ Nicho,
+ Tarifa1,
+ Tarifa2,
+ Tarifa3,
+ PVP
+ )
+ SELECT
+ vId_Entrada,
+ genItemFk as Id_Article,
+ vEtiquetas,
+ vId_Cubo,
+ vPacking,
+ vGrouping,
+ vCantidad,
+ vCostefijo,
+ vPortefijo,
+ vEmbalajefijo,
+ vComisionfija,
+ vCaja,
+ vNicho,
+ vTarifa1,
+ vTarifa2,
+ vTarifa3,
+ vPVP
+ FROM itemConversor
+ WHERE espItemFk = vId_Article;
+
+ SELECT LAST_INSERT_ID()
+ INTO vCompra;
+
+ REPLACE vn2008.Compres_mark(Id_Compra,`comment`)
+ SELECT vCompra, vId_Article;
+
+
+ FETCH rs INTO
+ vId_Entrada,
+ vId_Article,
+ vEtiquetas,
+ vId_Cubo,
+ vPacking,
+ vGrouping,
+ vCantidad,
+ vCostefijo,
+ vPortefijo,
+ vEmbalajefijo,
+ vComisionfija,
+ vCaja,
+ vNicho,
+ vTarifa1,
+ vTarifa2,
+ vTarifa3,
+ vPVP;
+
+ END WHILE;
+
+
+ CLOSE rs;
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `getDebt` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ DECLARE MAX_RISK_ALLOWED INT DEFAULT 200;
+
+ SET vDateEnd = TIMESTAMP(IFNULL(vDate, CURDATE()), '23:59:59');
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.clientList2;
+ CREATE TEMPORARY TABLE tmp.clientList2
+ (PRIMARY KEY (Id_Cliente))
+ ENGINE = MEMORY
+ SELECT *
+ FROM tmp.client_list;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.clientList3;
+ CREATE TEMPORARY TABLE tmp.clientList3
+ (PRIMARY KEY (Id_Cliente))
+ ENGINE = MEMORY
+ SELECT *
+ FROM tmp.client_list;
+
+ DROP TEMPORARY TABLE IF EXISTS vn2008.ticket_tmp;
+ CREATE TEMPORARY TABLE vn2008.ticket_tmp
+ (INDEX (ticket_id))
+ ENGINE = MEMORY
+ SELECT id ticket_id, cl.Id_Cliente
+ FROM ticket t
+ JOIN tmp.clientList2 cl ON t.clientFk = cl.Id_Cliente
+ WHERE refFk IS NULL
+ AND shipped BETWEEN vDateIni AND vDateEnd;
+
+ CALL vn2008.ticket_total ();
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.risk;
+ CREATE TEMPORARY TABLE tmp.risk
+ (PRIMARY KEY (Id_Cliente))
+ ENGINE = MEMORY
+ SELECT Id_Cliente, SUM(amount) risk
+ FROM vn2008.Clientes c
+ JOIN (
+ SELECT customer_id, SUM(amount) amount
+ FROM bi.customer_risk cr
+ JOIN tmp.client_list on tmp.client_list.Id_Cliente = cr.customer_id
+ GROUP BY customer_id
+ UNION ALL
+ SELECT Id_Cliente, SUM(Entregado)
+ FROM vn2008.Recibos
+ JOIN tmp.clientList2 using(Id_Cliente)
+ WHERE Fechacobro > vDateIni
+ GROUP BY Id_Cliente
+ UNION ALL
+ SELECT t.Id_Cliente, total
+ FROM vn2008.ticket_total tt
+ JOIN vn2008.ticket_tmp t ON tt.ticket_id = t.ticket_id
+ UNION ALL
+ SELECT t.customer_id, CAST(-SUM(t.amount) / 100 AS DECIMAL(10,2))
+ FROM hedera.tpv_transaction t
+ JOIN tmp.clientList3 on Id_Cliente = customer_id
+ 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;
+
+ DROP TEMPORARY TABLE vn2008.ticket_tmp;
+ DROP TEMPORARY TABLE tmp.clientList2;
+ DROP TEMPORARY TABLE tmp.clientList3;
+ DROP TEMPORARY TABLE vn2008.ticket_total;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `getDebtkk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ DECLARE MAX_RISK_ALLOWED INT DEFAULT 200;
+
+ SET vDateEnd = TIMESTAMP(IFNULL(vDate, CURDATE()), '23:59:59');
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.clientList2;
+ CREATE TEMPORARY TABLE tmp.clientList2
+ (PRIMARY KEY (Id_Cliente))
+ ENGINE = MEMORY
+ SELECT *
+ FROM tmp.client_list;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.clientList3;
+ CREATE TEMPORARY TABLE tmp.clientList3
+ (PRIMARY KEY (Id_Cliente))
+ ENGINE = MEMORY
+ SELECT *
+ FROM tmp.client_list;
+
+ DROP TEMPORARY TABLE IF EXISTS vn2008.ticket_tmp;
+ CREATE TEMPORARY TABLE vn2008.ticket_tmp
+ (INDEX (ticket_id))
+ ENGINE = MEMORY
+ SELECT id ticket_id, cl.Id_Cliente
+ FROM ticket t
+ JOIN tmp.clientList2 cl ON t.client = cl.Id_Cliente
+ WHERE refFk IS NULL
+ AND shipment BETWEEN vDateIni AND vDateEnd;
+
+ CALL vn2008.ticket_total ();
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.risk;
+ CREATE TEMPORARY TABLE tmp.risk
+ (PRIMARY KEY (Id_Cliente))
+ ENGINE = MEMORY
+ SELECT Id_Cliente, SUM(amount) risk
+ FROM vn2008.Clientes c
+ JOIN (
+ SELECT customer_id, SUM(amount) amount
+ FROM bi.customer_risk cr
+ JOIN tmp.client_list on tmp.client_list.Id_Cliente = cr.customer_id
+ GROUP BY customer_id
+ UNION ALL
+ SELECT Id_Cliente, SUM(Entregado)
+ FROM vn2008.Recibos
+ JOIN tmp.clientList2 using(Id_Cliente)
+ WHERE Fechacobro > vDateIni
+ GROUP BY Id_Cliente
+ UNION ALL
+ SELECT t.Id_Cliente, total
+ FROM vn2008.ticket_total tt
+ JOIN vn2008.ticket_tmp t ON tt.ticket_id = t.ticket_id
+ UNION ALL
+ SELECT t.customer_id, CAST(-SUM(t.amount) / 100 AS DECIMAL(10,2))
+ FROM hedera.tpv_transaction t
+ JOIN tmp.clientList3 on Id_Cliente = customer_id
+ 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;
+
+ DROP TEMPORARY TABLE vn2008.ticket_tmp;
+ DROP TEMPORARY TABLE tmp.clientList2;
+ DROP TEMPORARY TABLE tmp.clientList3;
+ DROP TEMPORARY TABLE vn2008.ticket_total;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `getItemVisibleAvailable` */;
+ALTER DATABASE `vn` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `getItemVisibleAvailable`(IN vItem INT,IN vDate DATE,IN vWarehouse TINYINT,IN isForcedToRecalculate BOOLEAN)
+BEGIN
+
+ DECLARE vCacheVisibleCalculated INTEGER;
+ DECLARE vCacheAvailableCalculated INTEGER;
+
+ CALL cache.visible_refresh(vCacheVisibleCalculated, isForcedToRecalculate, vWarehouse);
+ CALL cache.available_refresh(vCacheAvailableCalculated, isForcedToRecalculate, vWarehouse, vDate);
+
+ SELECT a.Id_Article, a.Article, a.Medida, a.Tallos, a.caja, O.Abreviatura as origen, a.Color, tipo_id, an.Nicho,
+ a.Categoria, p.`name` as producer, v.visible, av.available
+ FROM vn2008.Articles a
+ LEFT JOIN vn2008.Articles_nicho an ON a.Id_Article = an.Id_Article AND an.warehouse_id = vWarehouse
+ LEFT JOIN vn2008.Origen O ON O.id = a.id_origen
+ LEFT JOIN vn2008.producer p ON p.producer_id = a.producer_id
+ LEFT JOIN cache.visible v ON (vItem IS NULL OR v.item_id = vItem) AND v.calc_id = vCacheVisibleCalculated
+ LEFT JOIN cache.available av ON (vItem IS NULL OR av.item_id = vItem) AND av.calc_id = vCacheAvailableCalculated
+ WHERE (vItem IS NULL OR a.Id_Article = vItem);
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `invoiceCorrectedSale` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ s.id,
+ s.itemFk,
+ s.quantity,
+ s.price,
+ s.discount
+ FROM sale s
+ JOIN ticket t ON t.id = s.ticketFk
+ WHERE t.invoice = vInvoiceOut;
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `invoiceExpenceMake` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ INSERT INTO invoiceOutExpence(
+ invoiceOutFk,
+ expenceFk,
+ amount
+ )
+ SELECT
+ vInvoice,
+ expenceFk,
+ SUM(ROUND(quantity * price * (100 - discount)/100,2)) amount
+ FROM ticketToInvoice t
+ JOIN sale s ON s.ticketFk = t.id
+ JOIN item i ON i.id = s.itemFk
+ GROUP BY i.expenceFk
+ HAVING amount != 0;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `invoiceFromAddress` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `invoiceFromAddress`(vMaxTicketDate DATETIME,vAddress INT,vCompany INT)
+BEGIN
+
+ DECLARE vMinDateTicket DATE DEFAULT TIMESTAMPADD(MONTH, -3, CURDATE());
+
+ SET vMaxTicketDate = vn2008.DAYEND(vMaxTicketDate);
+
+ DROP TEMPORARY TABLE IF EXISTS `ticketToInvoice`;
+
+ CREATE TEMPORARY TABLE `ticketToInvoice`
+ (PRIMARY KEY (`id`))
+ ENGINE = MEMORY
+ SELECT Id_Ticket id FROM vn2008.Tickets WHERE (Fecha BETWEEN vMinDateTicket
+ AND vMaxTicketDate) AND Id_Consigna = vAddress
+ AND Factura IS NULL AND empresa_id = vCompany;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `invoiceFromClient` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `invoiceFromClient`(vMaxTicketDate DATETIME, vClient INT, vCompany INT)
+BEGIN
+
+ DECLARE vMinDateTicket DATE DEFAULT TIMESTAMPADD(YEAR, -3, CURDATE());
+
+ SET vMaxTicketDate = vn2008.DAYEND(vMaxTicketDate);
+
+ DROP TEMPORARY TABLE IF EXISTS `ticketToInvoice`;
+
+ CREATE TEMPORARY TABLE `ticketToInvoice`
+ (PRIMARY KEY (`id`))
+ ENGINE = MEMORY
+ SELECT Id_Ticket id FROM vn2008.Tickets
+ WHERE Id_Cliente = vClient
+ AND Factura IS NULL
+ AND empresa_id = vCompany
+ AND (Fecha BETWEEN vMinDateTicket AND vMaxTicketDate)
+ ;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `invoiceFromTicket` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `invoiceFromTicket`(IN vTicket INT)
+BEGIN
+
+ DROP TEMPORARY TABLE IF EXISTS `ticketToInvoice`;
+
+ CREATE TEMPORARY TABLE `ticketToInvoice`
+ (PRIMARY KEY (`id`))
+ ENGINE = MEMORY
+ SELECT id FROM vn.ticket
+ WHERE id = vTicket AND refFk IS NULL;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `invoiceInBooking` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `invoiceInBooking`(vInvoiceInId INT)
+BEGIN
+ DECLARE vSerialNumber, vBookNumber, vBookNumberPlus1 INT;
+ DECLARE vTotalAmount DECIMAL(10,2);
+
+ DROP TEMPORARY TABLE IF EXISTS newInvoiceIn;
+
+ CREATE TEMPORARY TABLE newInvoiceIn
+ 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
+ FROM invoiceIn i
+ JOIN cplusInvoiceType472 cit ON cit.id = i.cplusInvoiceType472Fk
+ JOIN supplier s ON s.id = i.supplierFk
+ JOIN country c ON c.id = s.countryFk
+ JOIN supplier sc ON sc.id = i.companyFk
+ JOIN country cc ON cc.id = sc.countryFk
+ WHERE i.id = vInvoiceInId;
+
+ DROP TEMPORARY TABLE IF EXISTS newSupplier;
+ CREATE TEMPORARY TABLE newSupplier
+ SELECT
+ s.*,
+ REPLACE(s.account,' ','') supplierAccount,
+ IF(c.CEE < 2, TRUE, FALSE) isUeeMember
+ FROM supplier s
+ JOIN newInvoiceIn n
+ JOIN country c ON c.id = s.countryFk
+ WHERE s.id = n.supplierFk;
+
+ IF (SELECT isActive FROM newSupplier) = 0 THEN
+ CALL util.throw('INACTIVE_PROVIDER');
+ END IF;
+
+ SELECT IFNULL(MAX(i.serialNumber) + 1,1)
+ INTO vSerialNumber
+ FROM invoiceIn i
+ JOIN newInvoiceIn n
+ WHERE i.serial LIKE n.serial
+ AND YEAR(i.booked) = n.datedYear
+ AND i.companyFk = n.companyFk
+ GROUP BY i.companyFk;
+
+ SELECT MAX(ASIEN) + 1
+ INTO vBookNumber
+ FROM vn2008.XDiario;
+
+ SET vBookNumberPlus1 = vBookNumber + 1;
+
+ SELECT SUM(iit.taxableBase * IF(i.serial = 'R', 1 +(tc.rate/100),1))
+ INTO vTotalAmount
+ FROM invoiceIn i
+ JOIN invoiceInTax iit ON iit.invoiceInFk = i.id
+ JOIN taxCode tc ON iit.taxCodeFk = tc.id
+ WHERE i.id = vInvoiceInId;
+
+ -- Apunte del proveedor
+
+ INSERT INTO vn2008.XDiario(
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ EUROHABER,
+ CONCEPTO,
+ NFACTICK,
+ empresa_id)
+ SELECT
+ vBookNumber,
+ n.booked,
+ s.supplierAccount,
+ vTotalAmount,
+ n.conceptWithSupplier,
+ n.invoicesCount,
+ n.companyFk
+ FROM newInvoiceIn n
+ JOIN newSupplier s;
+
+ -- ----------------------------------------------------------- Linea de Gastos
+ INSERT INTO vn2008.XDiario (
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ CONTRA,
+ EURODEBE,
+ EUROHABER,
+ CONCEPTO,
+ NFACTICK,
+ empresa_id
+ )
+ SELECT
+ vBookNumber ASIEN,
+ n.booked FECHA,
+ if(
+ e.isWithheld,
+ LPAD(RIGHT(s.supplierAccount ,5),10,iit.expenceFk),
+ iit.expenceFk
+ ) SUBCTA,
+ s.supplierAccount CONTRA,
+ if(
+ e.isWithheld,
+ NULL,
+ ABS(ROUND(SUM(iit.taxableBase),2))
+ ) EURODEBE,
+ if(
+ e.isWithheld,
+ ABS(ROUND(SUM(iit.taxableBase),2)),
+ NULL
+ ) EUROHABER,
+ n.conceptWithSupplier CONCEPTO,
+ n.invoicesCount NFACTICK,
+ n.companyFk empresa_id
+ FROM newInvoiceIn n
+ JOIN newSupplier s
+ JOIN invoiceInTax iit ON iit.invoiceInFk = n.id
+ JOIN taxCode tc ON tc.id = iit.taxCodeFk
+ JOIN expence e ON e.id = iit.expenceFk AND e.taxTypeFk = tc.taxTypeFk
+ WHERE iit.expenceFk != 5660000002
+ GROUP BY iit.expenceFk;
+
+ -- Extracomunitarias gasto contra proveedor/acreedor
+ INSERT INTO vn2008.XDiario (
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ CONTRA,
+ EURODEBE,
+ CONCEPTO,
+ NFACTICK,
+ empresa_id
+ )
+ SELECT
+ vBookNumberPlus1 ASIEN,
+ IFNULL(a.booked, n.booked) FECHA,
+ iit.expenceFk SUBCTA,
+ s.account CONTRA,
+ ROUND(SUM(iit.taxableBase) * (iie.percentage / 100),2) EURODEBE,
+ CONCAT('COMPRA s/fra ',i.supplierRef,':',LEFT(s.name, 10)) CONCEPTO,
+ n.invoicesCount NFACTICK,
+ n.companyFk empresa_id
+ FROM newInvoiceIn n
+ JOIN invoiceInEntry iie ON iie.invoiceInAwbFk = n.id
+ JOIN invoiceInTax iit ON iit.invoiceInFk = iie.invoiceInFk
+ JOIN invoiceIn i ON i.id = iit.invoiceInFk
+ JOIN supplier s ON s.id = i.supplierFk
+ LEFT JOIN invoiceInAwb iia ON iia.invoiceInFk = n.id
+ LEFT JOIN awb a ON a.id = iia.awbFk
+ WHERE iie.percentage
+ GROUP BY i.id;
+
+ -- Extracomunitarias proveedor contra gasto
+ INSERT INTO vn2008.XDiario (
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ CONTRA,
+ EUROHABER,
+ CONCEPTO,
+ NFACTICK,
+ empresa_id
+ )
+ SELECT
+ vBookNumberPlus1 ASIEN,
+ IFNULL(a.booked, n.booked) FECHA,
+ s.account SUBCTA,
+ iit.expenceFk CONTRA,
+ ROUND(SUM(iit.taxableBase) * (iie.percentage / 100),2) EUROHABER,
+ CONCAT('COMPRA s/fra ',i.supplierRef,':',LEFT(s.name, 10)) CONCEPTO,
+ n.invoicesCount NFACTICK,
+ n.companyFk empresa_id
+ FROM newInvoiceIn n
+ JOIN invoiceInEntry iie ON iie.invoiceInAwbFk = n.id
+ JOIN invoiceInTax iit ON iit.invoiceInFk = iie.invoiceInFk
+ JOIN invoiceIn i ON i.id = iit.invoiceInFk
+ JOIN supplier s ON s.id = i.supplierFk
+ LEFT JOIN invoiceInAwb iia ON iia.invoiceInFk = n.id
+ LEFT JOIN awb a ON a.id = iia.awbFk
+ WHERE iie.percentage
+ GROUP BY i.id;
+
+ -- --------------------------------------------------------------------
+ -- ------- Lineas de IVA ---------------
+ -- --------------------------------------------------------------------
+
+ INSERT INTO vn2008.XDiario(
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ CONTRA,
+ EURODEBE,
+ BASEEURO,
+ CONCEPTO,
+ FACTURA,
+ IVA,
+ AUXILIAR,
+ SERIE,
+ TIPOOPE,
+ FECHA_EX,
+ FECHA_OP,
+ NFACTICK,
+ FACTURAEX,
+ L340,
+ LRECT349,
+ TIPOCLAVE,
+ TIPOEXENCI,
+ TIPONOSUJE,
+ TIPOFACT,
+ TIPORECTIF,
+ TERIDNIF,
+ TERNIF,
+ TERNOM,
+ FECREGCON,
+ empresa_id
+ )
+ SELECT vBookNumber ASIEN,
+ n.booked FECHA,
+ tc.code SUBCTA,
+ s.supplierAccount CONTRA,
+ SUM(ROUND(tc.rate/100*it.taxableBase + 0.0001,2)) EURODEBE,
+ SUM(it.taxableBase) BASEEURO,
+ GROUP_CONCAT(DISTINCT e.`name` SEPARATOR ', ') CONCEPTO,
+ vSerialNumber FACTURA,
+ tc.rate IVA,
+ IF(isUeeMember AND eWithheld.id IS NULL,'','*') AUXILIAR,
+ n.serial SERIE,
+ tt.TIPOOPE,
+ n.issued FECHA_EX,
+ n.operated FECHA_OP,
+ n.invoicesCount NFACTICK,
+ n.supplierRef FACTURAEX,
+ TRUE L340,
+ (isSameCountry OR NOT isUeeMember) LRECT349,
+ n.cplusTrascendency472Fk TIPOCLAVE,
+ n.cplusTaxBreakFk TIPOEXENCI,
+ n.cplusSubjectOpFk TIPONOSUJE,
+ n.cplusInvoiceType472Fk TIPOFACT,
+ n.cplusRectificationTypeFk TIPORECTIF,
+ iis.cplusTerIdNifFk TERIDNIF,
+ s.nif AS TERNIF,
+ s.name AS TERNOM,
+ n.booked FECREGCON,
+ n.companyFk
+
+ FROM newInvoiceIn n
+ JOIN newSupplier s
+ JOIN invoiceInTax it ON n.id = it.invoiceInFk
+ JOIN taxCode tc ON tc.id = it.taxCodeFk
+ JOIN taxType tt ON tt.id = tc.taxTypeFk
+ JOIN invoiceInSerial iis ON iis.code = tt.serial
+ JOIN expence e ON e.id = it.expenceFk AND e.taxTypeFk = tc.taxTypeFk
+ LEFT JOIN
+ (SELECT eWithheld.id
+ FROM invoiceInTax hold
+ JOIN expence eWithheld ON eWithheld.id = hold.expenceFk AND eWithheld.isWithheld
+ WHERE hold.invoiceInFk = 58262 LIMIT 1
+ ) eWithheld ON TRUE
+ WHERE tc.type != '-'
+ AND tc.isActive
+ GROUP BY tc.rate;
+
+ -- Linea iva inversor sujeto pasivo
+
+ INSERT INTO vn2008.XDiario(
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ CONTRA,
+ EUROHABER,
+ BASEEURO,
+ CONCEPTO,
+ FACTURA,
+ IVA,
+ AUXILIAR,
+ SERIE,
+ TIPOOPE,
+ FECHA_EX,
+ FECHA_OP,
+ NFACTICK,
+ FACTURAEX,
+ L340,
+ LRECT349,
+ TIPOCLAVE,
+ TIPOEXENCI,
+ TIPONOSUJE,
+ TIPOFACT,
+ TIPORECTIF,
+ TERIDNIF,
+ TERNIF,
+ TERNOM,
+ empresa_id
+ )
+
+ SELECT
+ vBookNumber ASIEN,
+ n.booked FECHA,
+ tcLink.code SUBCTA,
+ s.supplierAccount CONTRA,
+ ROUND(tcLink.rate/100*SUM(it.taxableBase) + 0.0001,2) EUROHABER,
+ ROUND(SUM(it.taxableBase),2) BASEEURO,
+ GROUP_CONCAT(DISTINCT e.`name` SEPARATOR ', ') CONCEPTO,
+ vSerialNumber FACTURA,
+ tcLink.rate IVA,
+ '*' AUXILIAR,
+ n.serial SERIE,
+ tt.TIPOOPE,
+ n.issued FECHA_EX,
+ n.operated FECHA_OP,
+ n.invoicesCount NFACTICK,
+ n.supplierRef FACTURAEX,
+ FALSE L340,
+ (isSameCountry OR NOT isUeeMember) LRECT349,
+ 1 TIPOCLAVE,
+ n.cplusTaxBreakFk TIPOEXENCI,
+ n.cplusSubjectOpFk TIPONOSUJE,
+ n.cplusInvoiceType472Fk TIPOFACT,
+ n.cplusRectificationTypeFk TIPORECTIF,
+ iis.cplusTerIdNifFk TERIDNIF,
+ s.nif AS TERNIF,
+ s.name AS TERNOM,
+ n.companyFk
+
+ FROM newInvoiceIn n
+ JOIN newSupplier s
+ JOIN invoiceInTax it ON n.id = it.invoiceInFk
+ JOIN taxCode tc ON tc.id = it.taxCodeFk
+ JOIN taxType tt ON tt.id = tc.taxTypeFk
+ JOIN invoiceInSerial iis ON iis.code = tt.serial
+ JOIN taxCode tcLink ON tcLink.linkFk = tc.linkFk AND tc.id != tcLink.id
+ JOIN expence e ON e.id = it.expenceFk AND e.taxTypeFk = tc.taxTypeFk
+ WHERE tc.isActive
+ GROUP BY tcLink.rate, e.id;
+
+ -- Iva Importacion pendiente
+
+ INSERT INTO vn2008.XDiario(
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ CONCEPTO,
+ EUROHABER,-- EURODEBE
+ SERIE,
+ empresa_id)
+
+ SELECT
+ vBookNumberPlus1,
+ a.booked,
+ '4700000999',
+ n.conceptWithSupplier,
+ ROUND(SUM(iii.amount * (tc.rate/100)),2) eurohaber,
+ n.serial,
+ n.companyFk
+ FROM newInvoiceIn n
+ JOIN invoiceInIntrastat iii ON n.id = iii.invoiceInFk
+ JOIN intrastat ii ON ii.id = iii.intrastatFk
+ JOIN taxCode tc ON tc.id = ii.taxCodeFk
+ JOIN invoiceInAwb iia ON iia.invoiceInFk = iii.invoiceInFk
+ JOIN awb a ON a.id = iia.awbFk
+ HAVING eurohaber IS NOT NULL;
+
+
+ -- Linea iva importacion extracomunitaria
+
+ SET @cont:=1;
+ SET @total:=0;
+ SET @base:=2;
+
+ INSERT INTO vn2008.XDiario(
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ CONTRA,
+ EURODEBE,
+ BASEEURO,
+ CONCEPTO,
+ FACTURA,
+ IVA,
+ AUXILIAR,
+ SERIE,
+ FECHA_EX,
+ FECHA_OP,
+ FACTURAEX,
+ NFACTICK,
+ L340,
+ LDIFADUAN,
+ TIPOCLAVE,
+ TIPOEXENCI,
+ TIPONOSUJE,
+ TIPOFACT,
+ TIPORECTIF,
+ TERIDNIF,
+ TERNIF,
+ TERNOM,
+ empresa_id,
+ FECREGCON
+ )
+
+ SELECT
+ vBookNumberPlus1 ASIEN,
+ x.FECHA,
+ x.SUBCTA,
+ x.CONTRA,
+ IF (n.isSameCountry OR NOT s.isUeeMember,
+ x.EURODEBE,
+ NULL
+ ) EURODEBE,
+ x.BASEEURO,
+ x.CONCEPTO,
+ vSerialNumber FACTURA,
+ x.IVA,
+ '*' AUXILIAR,
+ x.SERIE,
+ x.FECHA_EX,
+ x.FECHA_OP,
+ x.dua FACTURAEX,
+ n.invoicesCount NFACTICK,
+ IF(@total:=@total + x.EURODEBE AND @cont:=@cont + 1 ,1,1) L340,
+ TRUE LDIFADUAN,
+ x.TIPOCLAVE,
+ n.cplusTaxBreakFk TIPOEXENCI,
+ n.cplusSubjectOpFk TIPONOSUJE,
+ 5 TIPOFACT,
+ n.cplusRectificationTypeFk TIPORECTIF,
+ x.TERIDNIF,
+ x.TERNIF,
+ x.TERNOM,
+ n.companyFk,
+ IFNULL(x.FECREGCON,n.booked) FECREGCON
+
+ FROM newInvoiceIn n
+ 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,
+ tc.rate IVA,
+ ROUND(sum(b.buyingValue * b.quantity / intraSub.intrastatSum * taxSub.amount)*(tc.rate/100),2) EURODEBE,
+ ROUND(sum(b.buyingValue * b.quantity / intraSub.intrastatSum * taxSub.amount),2) BASEEURO,
+ ii.serial SERIE,
+ e.supplierFk,
+ iia.dua,
+ iis.cplusTerIdNifFk TERIDNIF,
+ s.nif AS TERNIF,
+ s.name AS TERNOM,
+ ii.booked FECREGCON,
+ ii.cplusTrascendency472Fk TIPOCLAVE,
+ a.issued FECHA_EX,
+ a.operated FECHA_OP,
+ a.booked FECHA
+ FROM invoiceInAwb iia
+ JOIN invoiceInEntry iie ON iie.invoiceInAwbFk = iia.invoiceInFk
+ JOIN awb a ON a.id = iia.awbFk
+ JOIN invoiceIn ii ON ii.id = iie.invoiceInFk
+ JOIN invoiceInSerial iis ON iis.code = ii.serial
+ JOIN buy b ON b.entryFk = iie.entryFk
+ JOIN item i ON i.id = b.itemFk
+ JOIN (
+ SELECT
+ i.intrastatFk,
+ sum(b.buyingValue * b.quantity) as intrastatSum
+ FROM buy b
+ JOIN item i ON i.id = b.itemFk
+ JOIN invoiceInEntry iie
+ ON iie.entryFk = b.entryFk
+ JOIN invoiceInAwb iia
+ ON iia.invoiceInFk = iie.invoiceInAwbFk
+ JOIN awb aw ON aw.id =iia.awbFk
+ WHERE iie.percentage AND iia.invoiceInFk = vInvoiceInId
+ GROUP BY i.intrastatFk
+ ) intraSub ON intraSub.intrastatFk = i.intrastatFk
+ JOIN (
+ SELECT
+ iii.intrastatFk,
+ iii.amount,
+ intr.taxCodeFk
+ FROM invoiceInIntrastat iii
+ JOIN intrastat intr
+ ON intr.id = iii.intrastatFk
+ WHERE iii.invoiceInFk = vInvoiceInId
+ ) taxSub ON taxSub.intrastatFk = i.intrastatFk
+ JOIN taxCode tc ON tc.id = taxSub.taxCodeFk
+ JOIN entry e ON e.id = iie.entryFk
+ JOIN supplier s ON s.id = e.supplierFk
+ WHERE iie.invoiceInAwbFk = vInvoiceInId AND iie.percentage
+ GROUP BY e.supplierFk, taxSub.taxCodeFk
+ ) 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,
+ isBooked = TRUE
+ WHERE
+ id = vInvoiceInId;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `invoiceInBookingCommon` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `invoiceInBookingCommon`(vInvoiceInId INT, OUT vSerialNumber INT)
+BEGIN
+
+ DROP TEMPORARY TABLE IF EXISTS newInvoiceIn;
+
+ CREATE TEMPORARY TABLE newInvoiceIn
+ 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
+ FROM invoiceIn i
+ JOIN cplusInvoiceType472 cit ON cit.id = i.cplusInvoiceType472Fk
+ JOIN supplier s ON s.id = i.supplierFk
+ JOIN country c ON c.id = s.countryFk
+ JOIN supplier sc ON sc.id = i.companyFk
+ JOIN country cc ON cc.id = sc.countryFk
+ WHERE i.id = vInvoiceInId;
+
+ DROP TEMPORARY TABLE IF EXISTS newSupplier;
+ CREATE TEMPORARY TABLE newSupplier
+ SELECT
+ s.*,
+ REPLACE(s.account,' ','') supplierAccount,
+ IF(c.CEE < 2, TRUE, FALSE) isUeeMember
+ FROM supplier s
+ JOIN newInvoiceIn n
+ JOIN country c ON c.id = s.countryFk
+ WHERE s.id = n.supplierFk;
+
+ IF (SELECT isActive FROM newSupplier) = 0 THEN
+ CALL util.throw('INACTIVE_PROVIDER');
+ END IF;
+
+ SELECT IFNULL(MAX(i.serialNumber) + 1,1)
+ INTO vSerialNumber
+ FROM invoiceIn i
+ JOIN newInvoiceIn n
+ WHERE i.serial LIKE n.serial
+ AND YEAR(i.booked) = n.datedYear
+ AND i.companyFk = n.companyFk
+ GROUP BY i.companyFk;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `invoiceInBookingExtra` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `invoiceInBookingExtra`(vInvoiceInId INT)
+BEGIN
+ DECLARE vBookNumber,vSerialNumber INT;
+
+ CALL invoiceInBookingCommon(vInvoiceInId,vSerialNumber);
+
+ SELECT MAX(ASIEN) + 1
+ INTO vBookNumber
+ FROM vn2008.XDiario;
+
+ -- Extracomunitarias gasto contra proveedor/acreedor
+ INSERT INTO vn2008.XDiario (
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ CONTRA,
+ EURODEBE,
+ CONCEPTO,
+ NFACTICK,
+ empresa_id
+ )
+ SELECT
+ vBookNumber ASIEN,
+ IFNULL(a.booked, n.booked) FECHA,
+ iit.expenceFk SUBCTA,
+ s.account CONTRA,
+ ROUND(SUM(iit.taxableBase) * (iie.percentage / 100),2) EURODEBE,
+ CONCAT('COMPRA s/fra ',i.supplierRef,':',LEFT(s.name, 10)) CONCEPTO,
+ n.invoicesCount NFACTICK,
+ n.companyFk empresa_id
+ FROM newInvoiceIn n
+ JOIN invoiceInEntry iie ON iie.invoiceInAwbFk = n.id
+ JOIN invoiceInTax iit ON iit.invoiceInFk = iie.invoiceInFk
+ JOIN invoiceIn i ON i.id = iit.invoiceInFk
+ JOIN supplier s ON s.id = i.supplierFk
+ LEFT JOIN invoiceInAwb iia ON iia.invoiceInFk = n.id
+ LEFT JOIN awb a ON a.id = iia.awbFk
+ WHERE iie.percentage
+ GROUP BY i.id;
+
+ -- Extracomunitarias proveedor contra gasto
+ INSERT INTO vn2008.XDiario (
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ CONTRA,
+ EUROHABER,
+ CONCEPTO,
+ NFACTICK,
+ empresa_id
+ )
+ SELECT
+ vBookNumber ASIEN,
+ IFNULL(a.booked, n.booked) FECHA,
+ s.account SUBCTA,
+ iit.expenceFk CONTRA,
+ ROUND(SUM(iit.taxableBase) * (iie.percentage / 100),2) EUROHABER,
+ CONCAT('COMPRA s/fra ',i.supplierRef,':',LEFT(s.name, 10)) CONCEPTO,
+ n.invoicesCount NFACTICK,
+ n.companyFk empresa_id
+ FROM newInvoiceIn n
+ JOIN invoiceInEntry iie ON iie.invoiceInAwbFk = n.id
+ JOIN invoiceInTax iit ON iit.invoiceInFk = iie.invoiceInFk
+ JOIN invoiceIn i ON i.id = iit.invoiceInFk
+ JOIN supplier s ON s.id = i.supplierFk
+ LEFT JOIN invoiceInAwb iia ON iia.invoiceInFk = n.id
+ LEFT JOIN awb a ON a.id = iia.awbFk
+ WHERE iie.percentage
+ GROUP BY i.id;
+
+ -- Iva Importacion pendiente
+
+ INSERT INTO vn2008.XDiario(
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ CONCEPTO,
+ EUROHABER,-- EURODEBE
+ SERIE,
+ empresa_id)
+
+ SELECT
+ vBookNumber,
+ a.booked,
+ '4700000999',
+ n.conceptWithSupplier,
+ ROUND(SUM(iii.amount * (tc.rate/100)),2) eurohaber,
+ n.serial,
+ n.companyFk
+ FROM newInvoiceIn n
+ JOIN invoiceInIntrastat iii ON n.id = iii.invoiceInFk
+ JOIN intrastat ii ON ii.id = iii.intrastatFk
+ JOIN taxCode tc ON tc.id = ii.taxCodeFk
+ JOIN invoiceInAwb iia ON iia.invoiceInFk = iii.invoiceInFk
+ JOIN awb a ON a.id = iia.awbFk
+ HAVING eurohaber IS NOT NULL;
+
+ -- Linea iva importacion extracomunitaria
+
+ SET @cont:=1;
+ SET @total:=0;
+
+ INSERT INTO vn2008.XDiario(
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ CONTRA,
+ EURODEBE,
+ BASEEURO,
+ CONCEPTO,
+ FACTURA,
+ IVA,
+ AUXILIAR,
+ SERIE,
+ FECHA_EX,
+ FECHA_OP,
+ FACTURAEX,
+ NFACTICK,
+ L340,
+ LDIFADUAN,
+ TIPOCLAVE,
+ TIPOEXENCI,
+ TIPONOSUJE,
+ TIPOFACT,
+ TIPORECTIF,
+ TERIDNIF,
+ TERNIF,
+ TERNOM,
+ empresa_id,
+ FECREGCON
+ )
+
+ SELECT
+ vBookNumber ASIEN,
+ x.FECHA,
+ x.SUBCTA,
+ x.CONTRA,
+ IF (n.isSameCountry OR NOT s.isUeeMember,
+ x.EURODEBE,
+ NULL
+ ) EURODEBE,
+ x.BASEEURO,
+ x.CONCEPTO,
+ vSerialNumber FACTURA,
+ x.IVA,
+ '*' AUXILIAR,
+ x.SERIE,
+ x.FECHA_EX,
+ x.FECHA_OP,
+ x.dua FACTURAEX,
+ n.invoicesCount NFACTICK,
+ IF(@total:=@total + x.EURODEBE AND @cont:=@cont + 1 ,1,1) L340,
+ TRUE LDIFADUAN,
+ x.TIPOCLAVE,
+ n.cplusTaxBreakFk TIPOEXENCI,
+ n.cplusSubjectOpFk TIPONOSUJE,
+ 5 TIPOFACT,
+ n.cplusRectificationTypeFk TIPORECTIF,
+ x.TERIDNIF,
+ x.TERNIF,
+ x.TERNOM,
+ n.companyFk,
+ IFNULL(x.FECREGCON,n.booked) FECREGCON
+
+ FROM newInvoiceIn n
+ 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,
+ tc.rate IVA,
+ ROUND(sum(b.buyingValue * b.quantity / intraSub.intrastatSum * taxSub.amount)*(tc.rate/100),2) EURODEBE,
+ ROUND(sum(b.buyingValue * b.quantity / intraSub.intrastatSum * taxSub.amount),2) BASEEURO,
+ ii.serial SERIE,
+ e.supplierFk,
+ iia.dua,
+ iis.cplusTerIdNifFk TERIDNIF,
+ s.nif AS TERNIF,
+ s.name AS TERNOM,
+ ii.booked FECREGCON,
+ ii.cplusTrascendency472Fk TIPOCLAVE,
+ a.issued FECHA_EX,
+ a.operated FECHA_OP,
+ a.booked FECHA
+ FROM invoiceInAwb iia
+ JOIN invoiceInEntry iie ON iie.invoiceInAwbFk = iia.invoiceInFk
+ JOIN awb a ON a.id = iia.awbFk
+ JOIN invoiceIn ii ON ii.id = iie.invoiceInFk
+ JOIN invoiceInSerial iis ON iis.code = ii.serial
+ JOIN buy b ON b.entryFk = iie.entryFk
+ JOIN item i ON i.id = b.itemFk
+ JOIN (
+ SELECT
+ i.intrastatFk,
+ sum(b.buyingValue * b.quantity) as intrastatSum
+ FROM buy b
+ JOIN item i ON i.id = b.itemFk
+ JOIN invoiceInEntry iie ON iie.entryFk = b.entryFk
+ JOIN invoiceInAwb iia ON iia.invoiceInFk = iie.invoiceInAwbFk
+ JOIN awb aw ON aw.id =iia.awbFk
+ WHERE iie.percentage AND iia.invoiceInFk = vInvoiceInId
+ GROUP BY i.intrastatFk
+ ) intraSub ON intraSub.intrastatFk = i.intrastatFk
+ JOIN (
+ SELECT
+ iii.intrastatFk,
+ iii.amount,
+ intr.taxCodeFk
+ FROM invoiceInIntrastat iii
+ JOIN intrastat intr ON intr.id = iii.intrastatFk
+ WHERE iii.invoiceInFk = vInvoiceInId
+ ) taxSub ON taxSub.intrastatFk = i.intrastatFk
+ JOIN taxCode tc ON tc.id = taxSub.taxCodeFk
+ JOIN entry e ON e.id = iie.entryFk
+ JOIN supplier s ON s.id = e.supplierFk
+ WHERE iie.invoiceInAwbFk = vInvoiceInId AND iie.percentage
+ GROUP BY e.supplierFk, taxSub.taxCodeFk
+ ) 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.isBooked = TRUE,
+ ii.booked = IFNULL(ii.booked,n.booked),
+ ii.operated = IFNULL(ii.operated,n.issued);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `invoiceInBookingkk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `invoiceInBookingkk`(vInvoiceInId INT)
+BEGIN
+ DECLARE vDocument VARCHAR(255);
+ DECLARE vSerialNumber, vBookNumber, vBookNumberPlus1 INT;
+ DECLARE vTotalAmount DECIMAL(10,2);
+
+ DROP TEMPORARY TABLE IF EXISTS newInvoiceIn;
+
+ CREATE TEMPORARY TABLE newInvoiceIn
+ 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
+ FROM invoiceIn i
+ JOIN cplusInvoiceType472 cit ON cit.id = i.cplusInvoiceType472Fk
+ JOIN supplier s ON s.id = i.supplierFk
+ JOIN country c ON c.id = s.countryFk
+ JOIN supplier sc ON sc.id = i.companyFk
+ JOIN country cc ON cc.id = sc.countryFk
+ WHERE i.id = vInvoiceInId;
+
+ DROP TEMPORARY TABLE IF EXISTS newSupplier;
+ CREATE TEMPORARY TABLE newSupplier
+ SELECT
+ s.*,
+ REPLACE(s.account,' ','') supplierAccount,
+ IF(c.CEE < 2, TRUE, FALSE) isUeeMember
+ FROM supplier s
+ JOIN newInvoiceIn n
+ JOIN country c ON c.id = s.countryFk
+ WHERE s.id = n.supplierFk;
+
+ IF (SELECT isActive FROM newSupplier) = 0 THEN
+ CALL util.throw('INACTIVE_PROVIDER');
+ END IF;
+
+ SELECT IFNULL(MAX(i.serialNumber) + 1,1)
+ INTO vSerialNumber
+ FROM invoiceIn i
+ JOIN newInvoiceIn n
+ WHERE i.serial LIKE n.serial
+ AND YEAR(i.booked) = n.datedYear
+ AND i.companyFk = n.companyFk
+ GROUP BY i.companyFk;
+
+ SELECT MAX(ASIEN) + 1
+ INTO vBookNumber
+ FROM vn2008.XDiario;
+
+ SET vBookNumberPlus1 = vBookNumber + 1;
+
+ SELECT CONCAT(serial,'/', LPAD(vSerialNumber,5,'0'))
+ INTO vDocument
+ FROM newInvoiceIn;
+
+ SELECT SUM(iit.taxableBase * IF(i.serial = 'R', 1 +(tc.rate/100),1))
+ INTO vTotalAmount
+ FROM invoiceIn i
+ 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,
+ FECHA,
+ SUBCTA,
+ EUROHABER,
+ CONCEPTO,
+ NFACTICK,
+ empresa_id)
+ SELECT
+ vBookNumber,
+ n.booked,
+ s.supplierAccount,
+ vTotalAmount,
+ n.conceptWithSupplier,
+ n.invoicesCount,
+ n.companyFk
+ FROM newInvoiceIn n
+ JOIN newSupplier s;
+
+ -- ----------------------------------------------------------- Linea de Gastos
+ INSERT INTO vn2008.XDiario (
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ CONTRA,
+ EURODEBE,
+ EUROHABER,
+ CONCEPTO,
+ NFACTICK,
+ empresa_id
+ )
+ SELECT
+ vBookNumber ASIEN,
+ n.booked FECHA,
+ if(
+ e.isWithheld,
+ LPAD(RIGHT(s.supplierAccount ,5),10,iit.expenceFk),
+ iit.expenceFk
+ ) SUBCTA,
+ s.supplierAccount CONTRA,
+ if(
+ e.isWithheld,
+ NULL,
+ ABS(ROUND(SUM(iit.taxableBase),2))
+ ) EURODEBE,
+ if(
+ e.isWithheld,
+ ABS(ROUND(SUM(iit.taxableBase),2)),
+ NULL
+ ) EUROHABER,
+ n.conceptWithSupplier CONCEPTO,
+ n.invoicesCount NFACTICK,
+ n.companyFk empresa_id
+ FROM newInvoiceIn n
+ JOIN newSupplier s
+ JOIN invoiceInTax iit ON iit.invoiceInFk = n.id
+ JOIN taxCode tc ON tc.id = iit.taxCodeFk
+ JOIN expence e ON e.id = iit.expenceFk AND e.taxTypeFk = tc.taxTypeFk
+ WHERE iit.expenceFk != 5660000002
+ GROUP BY iit.expenceFk;
+
+ -- Extracomunitarias gasto contra proveedor/acreedor
+ INSERT INTO vn2008.XDiario (
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ CONTRA,
+ EURODEBE,
+ CONCEPTO,
+ NFACTICK,
+ empresa_id
+ )
+ SELECT
+ vBookNumberPlus1 ASIEN,
+ IFNULL(a.booked, n.booked) FECHA,
+ iit.expenceFk SUBCTA,
+ s.account CONTRA,
+ ROUND(SUM(iit.taxableBase) * (iie.percentage / 100),2) EURODEBE,
+ CONCAT('COMPRA s/fra ',i.supplierRef,':',LEFT(s.name, 10)) CONCEPTO,
+ n.invoicesCount NFACTICK,
+ n.companyFk empresa_id
+ FROM newInvoiceIn n
+ JOIN invoiceInEntry iie ON iie.invoiceInAwbFk = n.id
+ JOIN invoiceInTax iit ON iit.invoiceInFk = iie.invoiceInFk
+ JOIN invoiceIn i ON i.id = iit.invoiceInFk
+ JOIN supplier s ON s.id = i.supplierFk
+ LEFT JOIN invoiceInAwb iia ON iia.invoiceInFk = n.id
+ LEFT JOIN awb a ON a.id = iia.awbFk
+ WHERE iie.percentage
+ GROUP BY i.id;
+
+ -- Extracomunitarias proveedor contra gasto
+ INSERT INTO vn2008.XDiario (
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ CONTRA,
+ EUROHABER,
+ CONCEPTO,
+ NFACTICK,
+ empresa_id
+ )
+ SELECT
+ vBookNumberPlus1 ASIEN,
+ IFNULL(a.booked, n.booked) FECHA,
+ s.account SUBCTA,
+ iit.expenceFk CONTRA,
+ ROUND(SUM(iit.taxableBase) * (iie.percentage / 100),2) EUROHABER,
+ CONCAT('COMPRA s/fra ',i.supplierRef,':',LEFT(s.name, 10)) CONCEPTO,
+ n.invoicesCount NFACTICK,
+ n.companyFk empresa_id
+ FROM newInvoiceIn n
+ JOIN invoiceInEntry iie ON iie.invoiceInAwbFk = n.id
+ JOIN invoiceInTax iit ON iit.invoiceInFk = iie.invoiceInFk
+ JOIN invoiceIn i ON i.id = iit.invoiceInFk
+ JOIN supplier s ON s.id = i.supplierFk
+ LEFT JOIN invoiceInAwb iia ON iia.invoiceInFk = n.id
+ LEFT JOIN awb a ON a.id = iia.awbFk
+ WHERE iie.percentage
+ GROUP BY i.id;
+
+ -- --------------------------------------------------------------------
+ -- ------- Lineas de IVA ---------------
+ -- --------------------------------------------------------------------
+
+ INSERT INTO vn2008.XDiario(
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ CONTRA,
+ EURODEBE,
+ BASEEURO,
+ CONCEPTO,
+ FACTURA,
+ IVA,
+ AUXILIAR,
+ SERIE,
+ TIPOOPE,
+ FECHA_EX,
+ FECHA_OP,
+ NFACTICK,
+ FACTURAEX,
+ L340,
+ LRECT349,
+ TIPOCLAVE,
+ TIPOEXENCI,
+ TIPONOSUJE,
+ TIPOFACT,
+ TIPORECTIF,
+ TERIDNIF,
+ TERNIF,
+ TERNOM,
+ FECREGCON,
+ empresa_id
+ )
+ SELECT
+ vBookNumber ASIEN,
+ n.booked FECHA,
+ tc.code SUBCTA,
+ s.supplierAccount CONTRA,
+ ROUND(tc.rate/100*it.taxableBase + 0.0001,2) EURODEBE,
+ it.taxableBase BASEEURO,
+ GROUP_CONCAT(DISTINCT e.`name` SEPARATOR ', ') CONCEPTO,
+ vSerialNumber FACTURA,
+ tc.rate IVA,
+ IF(isUeeMember AND eWithheld.id IS NULL,'','*') AUXILIAR,
+ n.serial SERIE,
+ tt.TIPOOPE,
+ n.issued FECHA_EX,
+ n.operated FECHA_OP,
+ n.invoicesCount NFACTICK,
+ n.supplierRef FACTURAEX,
+ TRUE L340,
+ (isSameCountry OR NOT isUeeMember) LRECT349,
+ n.cplusTrascendency472Fk TIPOCLAVE,
+ n.cplusTaxBreakFk TIPOEXENCI,
+ n.cplusSubjectOpFk TIPONOSUJE,
+ n.cplusInvoiceType472Fk TIPOFACT,
+ n.cplusRectificationTypeFk TIPORECTIF,
+ iis.cplusTerIdNifFk TERIDNIF,
+ s.nif AS TERNIF,
+ s.name AS TERNOM,
+ n.booked FECREGCON,
+ n.companyFk
+
+ FROM newInvoiceIn n
+ JOIN newSupplier s
+ JOIN invoiceInTax it ON n.id = it.invoiceInFk
+ JOIN taxCode tc ON tc.id = it.taxCodeFk
+ JOIN taxType tt ON tt.id = tc.taxTypeFk
+ JOIN invoiceInSerial iis ON iis.code = tt.serial
+ JOIN expence e ON e.id = it.expenceFk AND e.taxTypeFk = tc.taxTypeFk
+ LEFT JOIN invoiceInTax hold ON hold.invoiceInFk = n.id
+ LEFT JOIN expence eWithheld ON eWithheld.id = hold.expenceFk AND eWithheld.isWithheld
+ WHERE tc.type != '-'
+ AND tc.isActive
+ GROUP BY tc.rate;
+
+ -- Linea iva inversor sujeto pasivo
+
+ INSERT INTO vn2008.XDiario(
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ CONTRA,
+ EUROHABER,
+ BASEEURO,
+ CONCEPTO,
+ FACTURA,
+ IVA,
+ AUXILIAR,
+ SERIE,
+ TIPOOPE,
+ FECHA_EX,
+ FECHA_OP,
+ NFACTICK,
+ FACTURAEX,
+ L340,
+ LRECT349,
+ TIPOCLAVE,
+ TIPOEXENCI,
+ TIPONOSUJE,
+ TIPOFACT,
+ TIPORECTIF,
+ TERIDNIF,
+ TERNIF,
+ TERNOM,
+ empresa_id
+ )
+
+ SELECT
+ vBookNumber ASIEN,
+ n.booked FECHA,
+ tcLink.code SUBCTA,
+ s.supplierAccount CONTRA,
+ ROUND(tcLink.rate/100*SUM(it.taxableBase) + 0.0001,2) EUROHABER,
+ ROUND(SUM(it.taxableBase),2) BASEEURO,
+ GROUP_CONCAT(DISTINCT e.`name` SEPARATOR ', ') CONCEPTO,
+ vSerialNumber FACTURA,
+ tcLink.rate IVA,
+ '*' AUXILIAR,
+ n.serial SERIE,
+ tt.TIPOOPE,
+ n.issued FECHA_EX,
+ n.operated FECHA_OP,
+ n.invoicesCount NFACTICK,
+ n.supplierRef FACTURAEX,
+ FALSE L340,
+ (isSameCountry OR NOT isUeeMember) LRECT349,
+ 1 TIPOCLAVE,
+ n.cplusTaxBreakFk TIPOEXENCI,
+ n.cplusSubjectOpFk TIPONOSUJE,
+ n.cplusInvoiceType472Fk TIPOFACT,
+ n.cplusRectificationTypeFk TIPORECTIF,
+ iis.cplusTerIdNifFk TERIDNIF,
+ s.nif AS TERNIF,
+ s.name AS TERNOM,
+ n.companyFk
+
+ FROM newInvoiceIn n
+ JOIN newSupplier s
+ JOIN invoiceInTax it ON n.id = it.invoiceInFk
+ JOIN taxCode tc ON tc.id = it.taxCodeFk
+ JOIN taxType tt ON tt.id = tc.taxTypeFk
+ JOIN invoiceInSerial iis ON iis.code = tt.serial
+ JOIN taxCode tcLink ON tcLink.linkFk = tc.linkFk AND tc.id != tcLink.id
+ JOIN expence e ON e.id = it.expenceFk AND e.taxTypeFk = tc.taxTypeFk
+ WHERE tc.isActive
+ GROUP BY tcLink.rate, e.id;
+
+ -- Iva Importacion pendiente
+
+ INSERT INTO vn2008.XDiario(
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ CONCEPTO,
+ EUROHABER,-- EURODEBE
+ SERIE,
+ empresa_id)
+
+ SELECT
+ vBookNumberPlus1,
+ a.booked,
+ '4700000999',
+ n.conceptWithSupplier,
+ ROUND(SUM(iii.amount * (tc.rate/100)),2) eurohaber,
+ n.serial,
+ n.companyFk
+ FROM newInvoiceIn n
+ JOIN invoiceInIntrastat iii ON n.id = iii.invoiceInFk
+ JOIN intrastat ii ON ii.id = iii.intrastatFk
+ JOIN taxCode tc ON tc.id = ii.taxCodeFk
+ JOIN invoiceInAwb iia ON iia.invoiceInFk = iii.invoiceInFk
+ JOIN awb a ON a.id = iia.awbFk
+ HAVING eurohaber IS NOT NULL;
+
+
+ -- Linea iva importacion extracomunitaria
+
+ SET @cont:=1;
+ SET @total:=0;
+ SET @base:=2;
+
+ INSERT INTO vn2008.XDiario(
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ CONTRA,
+ EURODEBE,
+ BASEEURO,
+ CONCEPTO,
+ FACTURA,
+ IVA,
+ AUXILIAR,
+ SERIE,
+ FECHA_EX,
+ FECHA_OP,
+ FACTURAEX,
+ NFACTICK,
+ L340,
+ LDIFADUAN,
+ TIPOCLAVE,
+ TIPOEXENCI,
+ TIPONOSUJE,
+ TIPOFACT,
+ TIPORECTIF,
+ TERIDNIF,
+ TERNIF,
+ TERNOM,
+ empresa_id,
+ FECREGCON
+ )
+
+ SELECT
+ vBookNumberPlus1 ASIEN,
+ x.FECHA,
+ x.SUBCTA,
+ x.CONTRA,
+ IF (n.isSameCountry OR NOT s.isUeeMember,
+ x.EURODEBE,
+ NULL
+ ) EURODEBE,
+ x.BASEEURO,
+ x.CONCEPTO,
+ vSerialNumber FACTURA,
+ x.IVA,
+ '*' AUXILIAR,
+ x.SERIE,
+ x.FECHA_EX,
+ x.FECHA_OP,
+ x.dua FACTURAEX,
+ n.invoicesCount NFACTICK,
+ IF(@total:=@total + x.EURODEBE AND @cont:=@cont + 1 ,1,1) L340,
+ TRUE LDIFADUAN,
+ x.TIPOCLAVE,
+ n.cplusTaxBreakFk TIPOEXENCI,
+ n.cplusSubjectOpFk TIPONOSUJE,
+ 5 TIPOFACT,
+ n.cplusRectificationTypeFk TIPORECTIF,
+ x.TERIDNIF,
+ x.TERNIF,
+ x.TERNOM,
+ n.companyFk,
+ IFNULL(x.FECREGCON,n.booked) FECREGCON
+
+ FROM newInvoiceIn n
+ 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,
+ tc.rate IVA,
+ ROUND(sum(b.buyingValue * b.quantity / intraSub.intrastatSum * taxSub.amount)*(tc.rate/100),2) EURODEBE,
+ ROUND(sum(b.buyingValue * b.quantity / intraSub.intrastatSum * taxSub.amount),2) BASEEURO,
+ ii.serial SERIE,
+ e.supplierFk,
+ iia.dua,
+ iis.cplusTerIdNifFk TERIDNIF,
+ s.nif AS TERNIF,
+ s.name AS TERNOM,
+ ii.booked FECREGCON,
+ ii.cplusTrascendency472Fk TIPOCLAVE,
+ a.issued FECHA_EX,
+ a.operated FECHA_OP,
+ a.booked FECHA
+ FROM invoiceInAwb iia
+ JOIN invoiceInEntry iie ON iie.invoiceInAwbFk = iia.invoiceInFk
+ JOIN awb a ON a.id = iia.awbFk
+ JOIN invoiceIn ii ON ii.id = iie.invoiceInFk
+ JOIN invoiceInSerial iis ON iis.code = ii.serial
+ JOIN buy b ON b.entryFk = iie.entryFk
+ JOIN item i ON i.id = b.itemFk
+ JOIN (
+ SELECT
+ i.intrastatFk,
+ sum(b.buyingValue * b.quantity) as intrastatSum
+ FROM buy b
+ JOIN item i ON i.id = b.itemFk
+ JOIN invoiceInEntry iie
+ ON iie.entryFk = b.entryFk
+ JOIN invoiceInAwb iia
+ ON iia.invoiceInFk = iie.invoiceInAwbFk
+ JOIN awb aw ON aw.id =iia.awbFk
+ WHERE iie.percentage AND iia.invoiceInFk = vInvoiceInId
+ GROUP BY i.intrastatFk
+ ) intraSub ON intraSub.intrastatFk = i.intrastatFk
+ JOIN (
+ SELECT
+ iii.intrastatFk,
+ iii.amount,
+ intr.taxCodeFk
+ FROM invoiceInIntrastat iii
+ JOIN intrastat intr
+ ON intr.id = iii.intrastatFk
+ WHERE iii.invoiceInFk = vInvoiceInId
+ ) taxSub ON taxSub.intrastatFk = i.intrastatFk
+ JOIN taxCode tc ON tc.id = taxSub.taxCodeFk
+ JOIN entry e ON e.id = iie.entryFk
+ JOIN supplier s ON s.id = e.supplierFk
+ WHERE iie.invoiceInAwbFk = vInvoiceInId AND iie.percentage
+ GROUP BY e.supplierFk, taxSub.taxCodeFk
+ ) 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,
+ isBooked = TRUE
+ WHERE
+ id = vInvoiceInId;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `invoiceInBookingMain` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `invoiceInBookingMain`(vInvoiceInId INT)
+BEGIN
+ DECLARE vTotalAmount DECIMAL(10,2);
+ DECLARE vBookNumber,vSerialNumber INT;
+
+ CALL invoiceInBookingCommon(vInvoiceInId,vSerialNumber);
+
+ SELECT MAX(ASIEN) + 1
+ INTO vBookNumber
+ FROM vn2008.XDiario;
+
+ SELECT SUM(iit.taxableBase * IF(i.serial = 'R', 1 +(tc.rate/100),1))
+ INTO vTotalAmount
+ FROM newInvoiceIn i
+ JOIN invoiceInTax iit ON iit.invoiceInFk = i.id
+ JOIN taxCode tc ON iit.taxCodeFk = tc.id;
+
+ -- Apunte del proveedor
+
+ INSERT INTO vn2008.XDiario(
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ EUROHABER,
+ CONCEPTO,
+ NFACTICK,
+ empresa_id)
+ SELECT
+ vBookNumber,
+ n.booked,
+ s.supplierAccount,
+ vTotalAmount,
+ n.conceptWithSupplier,
+ n.invoicesCount,
+ n.companyFk
+ FROM newInvoiceIn n
+ JOIN newSupplier s;
+
+ -- ----------------------------------------------------------- Linea de Gastos
+ INSERT INTO vn2008.XDiario (
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ CONTRA,
+ EURODEBE,
+ EUROHABER,
+ CONCEPTO,
+ NFACTICK,
+ empresa_id
+ )
+ SELECT
+ vBookNumber ASIEN,
+ n.booked FECHA,
+ if(
+ e.isWithheld,
+ LPAD(RIGHT(s.supplierAccount ,5),10,iit.expenceFk),
+ iit.expenceFk
+ ) SUBCTA,
+ s.supplierAccount CONTRA,
+ if(
+ e.isWithheld,
+ NULL,
+ ABS(ROUND(SUM(iit.taxableBase),2))
+ ) EURODEBE,
+ if(
+ e.isWithheld,
+ ABS(ROUND(SUM(iit.taxableBase),2)),
+ NULL
+ ) EUROHABER,
+ n.conceptWithSupplier CONCEPTO,
+ n.invoicesCount NFACTICK,
+ n.companyFk empresa_id
+ FROM newInvoiceIn n
+ JOIN newSupplier s
+ JOIN invoiceInTax iit ON iit.invoiceInFk = n.id
+ JOIN taxCode tc ON tc.id = iit.taxCodeFk
+ JOIN expence e ON e.id = iit.expenceFk AND e.taxTypeFk = tc.taxTypeFk
+ WHERE iit.expenceFk != 5660000002
+ GROUP BY iit.expenceFk;
+
+
+ -- --------------------------------------------------------------------
+ -- ------- Lineas de IVA ---------------
+ -- --------------------------------------------------------------------
+
+ INSERT INTO vn2008.XDiario(
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ CONTRA,
+ EURODEBE,
+ BASEEURO,
+ CONCEPTO,
+ FACTURA,
+ IVA,
+ AUXILIAR,
+ SERIE,
+ TIPOOPE,
+ FECHA_EX,
+ FECHA_OP,
+ NFACTICK,
+ FACTURAEX,
+ L340,
+ LRECT349,
+ TIPOCLAVE,
+ TIPOEXENCI,
+ TIPONOSUJE,
+ TIPOFACT,
+ TIPORECTIF,
+ TERIDNIF,
+ TERNIF,
+ TERNOM,
+ FECREGCON,
+ empresa_id
+ )
+ SELECT vBookNumber ASIEN,
+ n.booked FECHA,
+ tc.code SUBCTA,
+ s.supplierAccount CONTRA,
+ SUM(ROUND(tc.rate/100*it.taxableBase + 0.0001,2)) EURODEBE,
+ SUM(it.taxableBase) BASEEURO,
+ GROUP_CONCAT(DISTINCT e.`name` SEPARATOR ', ') CONCEPTO,
+ vSerialNumber FACTURA,
+ tc.rate IVA,
+ IF(isUeeMember AND eWithheld.id IS NULL,'','*') AUXILIAR,
+ n.serial SERIE,
+ tt.TIPOOPE,
+ n.issued FECHA_EX,
+ n.operated FECHA_OP,
+ n.invoicesCount NFACTICK,
+ n.supplierRef FACTURAEX,
+ TRUE L340,
+ (isSameCountry OR NOT isUeeMember) LRECT349,
+ n.cplusTrascendency472Fk TIPOCLAVE,
+ n.cplusTaxBreakFk TIPOEXENCI,
+ n.cplusSubjectOpFk TIPONOSUJE,
+ n.cplusInvoiceType472Fk TIPOFACT,
+ n.cplusRectificationTypeFk TIPORECTIF,
+ iis.cplusTerIdNifFk TERIDNIF,
+ s.nif AS TERNIF,
+ s.name AS TERNOM,
+ n.booked FECREGCON,
+ n.companyFk
+
+ FROM newInvoiceIn n
+ JOIN newSupplier s
+ JOIN invoiceInTax it ON n.id = it.invoiceInFk
+ JOIN taxCode tc ON tc.id = it.taxCodeFk
+ JOIN taxType tt ON tt.id = tc.taxTypeFk
+ JOIN invoiceInSerial iis ON iis.code = tt.serial
+ JOIN expence e ON e.id = it.expenceFk AND e.taxTypeFk = tc.taxTypeFk
+ LEFT JOIN
+ (SELECT eWithheld.id
+ FROM invoiceInTax hold
+ JOIN expence eWithheld ON eWithheld.id = hold.expenceFk AND eWithheld.isWithheld
+ WHERE hold.invoiceInFk = 58262 LIMIT 1
+ ) eWithheld ON TRUE
+ WHERE tc.type != '-'
+ AND tc.isActive
+ GROUP BY tc.rate;
+
+ -- Linea iva inversor sujeto pasivo
+
+ INSERT INTO vn2008.XDiario(
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ CONTRA,
+ EUROHABER,
+ BASEEURO,
+ CONCEPTO,
+ FACTURA,
+ IVA,
+ AUXILIAR,
+ SERIE,
+ TIPOOPE,
+ FECHA_EX,
+ FECHA_OP,
+ NFACTICK,
+ FACTURAEX,
+ L340,
+ LRECT349,
+ TIPOCLAVE,
+ TIPOEXENCI,
+ TIPONOSUJE,
+ TIPOFACT,
+ TIPORECTIF,
+ TERIDNIF,
+ TERNIF,
+ TERNOM,
+ empresa_id
+ )
+
+ SELECT
+ vBookNumber ASIEN,
+ n.booked FECHA,
+ tcLink.code SUBCTA,
+ s.supplierAccount CONTRA,
+ ROUND(tcLink.rate/100*SUM(it.taxableBase) + 0.0001,2) EUROHABER,
+ ROUND(SUM(it.taxableBase),2) BASEEURO,
+ GROUP_CONCAT(DISTINCT e.`name` SEPARATOR ', ') CONCEPTO,
+ vSerialNumber FACTURA,
+ tcLink.rate IVA,
+ '*' AUXILIAR,
+ n.serial SERIE,
+ tt.TIPOOPE,
+ n.issued FECHA_EX,
+ n.operated FECHA_OP,
+ n.invoicesCount NFACTICK,
+ n.supplierRef FACTURAEX,
+ FALSE L340,
+ (isSameCountry OR NOT isUeeMember) LRECT349,
+ 1 TIPOCLAVE,
+ n.cplusTaxBreakFk TIPOEXENCI,
+ n.cplusSubjectOpFk TIPONOSUJE,
+ n.cplusInvoiceType472Fk TIPOFACT,
+ n.cplusRectificationTypeFk TIPORECTIF,
+ iis.cplusTerIdNifFk TERIDNIF,
+ s.nif AS TERNIF,
+ s.name AS TERNOM,
+ n.companyFk
+
+ FROM newInvoiceIn n
+ JOIN newSupplier s
+ JOIN invoiceInTax it ON n.id = it.invoiceInFk
+ JOIN taxCode tc ON tc.id = it.taxCodeFk
+ JOIN taxType tt ON tt.id = tc.taxTypeFk
+ JOIN invoiceInSerial iis ON iis.code = tt.serial
+ JOIN taxCode tcLink ON tcLink.linkFk = tc.linkFk AND tc.id != tcLink.id
+ JOIN expence e ON e.id = it.expenceFk AND e.taxTypeFk = tc.taxTypeFk
+ 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
+ ii.serialNumber = vSerialNumber,
+ ii.isBooked = TRUE;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `invoiceMakeByClient` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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);
+
+ IF vSerial <> 'R' AND NOT ISNULL(vInvoiceId) AND vInvoiceId <> 0 THEN
+ CALL invoiceOutBooking(vInvoiceId);
+ INSERT INTO printServerQueue(priorityFk, reportFk, param1) VALUES(1, 3, vInvoiceId);
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `invoiceMakeByTicket` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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);
+
+ IF vSerial <> 'R' AND NOT ISNULL(vInvoiceId) AND vInvoiceId <> 0 THEN
+ CALL invoiceOutBooking(vInvoiceId);
+ INSERT INTO printServerQueue(priorityFk, reportFk, param1) VALUES(1, 3, vInvoiceId);
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `invoiceOutAgain` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ DECLARE vTaxArea VARCHAR(15);
+ DECLARE vSpainCountryCode INT DEFAULT 1;
+
+ SELECT id
+ INTO vInvoice
+ FROM invoiceOut
+ WHERE ref = vInvoiceRef;
+
+ UPDATE invoiceOut
+ SET pdf = 0
+ WHERE id = vInvoice;
+
+ SELECT s.countryFk
+ INTO vCountry
+ 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',
+ 'EQU',
+ i.taxAreaFk)
+ INTO vTaxArea
+ FROM invoiceOutSerial i
+ JOIN invoiceOut io ON io.serial = i.code
+ JOIN ticket t ON t.refFk = io.ref
+ JOIN address a ON a.id = t.addressFk
+ JOIN client c ON c.id = t.clientFk
+ WHERE io.id = vInvoice
+ LIMIT 1;
+
+ DROP TEMPORARY TABLE IF EXISTS ticketToInvoice;
+
+ CREATE TEMPORARY TABLE ticketToInvoice
+ SELECT id
+ FROM ticket
+ WHERE refFk = vInvoiceRef;
+
+ CALL invoiceExpenceMake(vInvoice);
+ CALL invoiceTaxMake(vInvoice,vCountry,vTaxArea);
+
+ UPDATE invoiceOut io
+ JOIN (
+ SELECT SUM(amount) AS total
+ FROM invoiceOutExpence
+ WHERE invoiceOutFk = vInvoice
+ ) base
+ JOIN (
+ SELECT SUM(vat) AS total
+ FROM invoiceOutTax
+ WHERE invoiceOutFk = vInvoice
+ ) vat
+ SET io.amount = base.total + vat.total
+ WHERE io.id = vInvoice;
+
+ CALL vn.invoiceOutBooking(vInvoice);
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `invoiceOutAgainDateRange` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `invoiceOutAgainDateRange`(IN vFirstDate DATE, IN vLastDate DATE)
+BEGIN
+
+ DECLARE done BOOL DEFAULT FALSE;
+ DECLARE vInvoice INT;
+ DECLARE vInvoiceRef VARCHAR(15);
+ DECLARE vContador INT DEFAULT 0;
+
+ DECLARE rs CURSOR FOR
+ SELECT id, ref
+ FROM vn.invoiceOut
+ WHERE issued BETWEEN vFirstDate AND vLastDate
+ AND booked IS NULL;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
+
+ OPEN rs;
+
+ FETCH rs INTO vInvoice, vInvoiceRef;
+
+ WHILE NOT done DO
+
+ CALL vn.invoiceOutAgain(vInvoiceRef);
+
+ FETCH rs INTO vInvoice, vInvoiceRef;
+
+ SET vContador = vContador + 1;
+
+ IF vContador MOD 50 = 0 THEN
+
+ SELECT CONCAT(vContador, ' de momento') AS FACTURAS_ASENTADAS;
+
+ END IF;
+ END WHILE;
+
+ CLOSE rs;
+
+ SELECT CONCAT(vContador, ' total') AS FACTURAS_ASENTADAS;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `invoiceOutBooking` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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);
+ DECLARE isUEENotSpain INT DEFAULT 1;
+ DECLARE vOldBookNumber INT;
+
+ SELECT ASIEN
+ INTO vOldBookNumber
+ FROM vn2008.XDiario x
+ JOIN vn.invoiceOut io ON io.id = vInvoice
+ WHERE x.SERIE = io.serial
+ AND x.FACTURA = RIGHT(io.ref, LENGTH(io.ref) - 1)
+ LIMIT 1;
+
+ DELETE
+ FROM vn2008.XDiario
+ WHERE ASIEN = vOldBookNumber;
+
+ SELECT MAX(ASIEN) + 1
+ INTO vBookNumber
+ FROM vn2008.XDiario;
+
+ DROP TEMPORARY TABLE IF EXISTS rs;
+ CREATE TEMPORARY TABLE rs
+ SELECT
+ c.accountingAccount AS clientBookingAccount,
+ io.amount as totalAmount,
+ CONCAT('n/fra ', io.ref) as simpleConcept,
+ CONCAT('n/fra ', io.ref, ' ', c.name) as Concept,
+ io.serial AS SERIE,
+ io.issued AS FECHA_EX,
+ opDate.FECHA_OP,
+ io.issued AS FECHA,
+ 1 AS NFACTICK,
+ IF(ic.correctingFk,'D','') AS TIPOOPE,
+ io.cplusTrascendency477Fk AS TIPOCLAVE,
+ io.cplusTaxBreakFk AS TIPOEXENCI,
+ io.cplusSubjectOpFk AS TIPONOSUJE,
+ io.cplusInvoiceType477Fk AS TIPOFACT,
+ ic.cplusRectificationTypeFk AS TIPORECTIF,
+ io.companyFk,
+ RIGHT(io.ref, LENGTH(io.ref) - 1) AS invoiceNum,
+ IF(ct.CEE = 0, 1, IF(ct.CEE = isUEENotSpain,2,4)) AS TERIDNIF,
+ CONCAT(IF(ct.CEE = isUEENotSpain,ct.code,''),c.fi) AS TERNIF,
+ c.socialName AS TERNOM,
+ ior.serial AS SERIE_RT,
+ RIGHT(ior.ref, LENGTH(ior.ref) - 1) AS FACTU_RT,
+ ior.issued AS FECHA_RT,
+ IF(ior.id,TRUE,FALSE) AS RECTIFICA
+
+ FROM invoiceOut io
+ JOIN (
+ SELECT MAX(shipped) as FECHA_OP
+ FROM ticket t
+ JOIN invoiceOut io ON io.ref = t.refFk
+ WHERE io.id = vInvoice ) opDate
+ JOIN invoiceOutSerial ios ON ios.code = io.serial
+ JOIN client c ON c.id = io.clientFk
+ JOIN country ct ON ct.id = c.countryFk
+ LEFT JOIN invoiceCorrection ic ON ic.correctingFk = io.id
+ LEFT JOIN invoiceOut ior ON ior.id = ic.correctedFk
+ WHERE io.id = vInvoice;
+
+ -- Linea del cliente
+ INSERT INTO vn2008.XDiario(
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ EURODEBE,
+ CONCEPTO,
+ FECHA_EX,
+ FECHA_OP,
+ empresa_id
+ )
+ SELECT
+ vBookNumber AS ASIEN,
+ rs.FECHA,
+ rs.clientBookingAccount AS SUBCTA,
+ rs.totalAmount AS EURODEBE,
+ rs.simpleConcept AS CONCEPTO,
+ rs.FECHA_EX,
+ rs.FECHA_OP,
+ rs.companyFk AS empresa_id
+ FROM rs;
+
+ -- Lineas de gasto
+ INSERT INTO vn2008.XDiario(
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ CONTRA,
+ EUROHABER,
+ CONCEPTO,
+ FECHA_EX,
+ FECHA_OP,
+ empresa_id
+ )
+ SELECT
+ vBookNumber AS ASIEN,
+ rs.FECHA,
+ ioe.expenceFk AS SUBCTA,
+ rs.clientBookingAccount AS CONTRA,
+ ioe.amount AS EUROHABER,
+ rs.Concept AS CONCEPTO,
+ rs.FECHA_EX,
+ rs.FECHA_OP,
+ rs.companyFk AS empresa_id
+ FROM rs
+ JOIN invoiceOutExpence ioe
+ WHERE ioe.invoiceOutFk = vInvoice;
+
+ SELECT GROUP_CONCAT(`name` SEPARATOR ',')
+ INTO vExpenceConcept
+ FROM expence e
+ JOIN invoiceOutExpence ioe ON ioe.expenceFk = e.id
+ WHERE ioe.invoiceOutFk = vInvoice;
+
+ -- Lineas de IVA
+ INSERT INTO vn2008.XDiario(
+ ASIEN,
+ FECHA,
+ SUBCTA,
+ CONTRA,
+ EUROHABER,
+ BASEEURO,
+ CONCEPTO,
+ FACTURA,
+ IVA,
+ RECEQUIV,
+ AUXILIAR,
+ SERIE,
+ SERIE_RT,
+ FACTU_RT,
+ RECTIFICA,
+ FECHA_RT,
+ FECHA_OP,
+ FECHA_EX,
+ TIPOOPE,
+ NFACTICK,
+ TERIDNIF,
+ TERNIF,
+ TERNOM,
+ L340,
+ TIPOCLAVE,
+ TIPOEXENCI,
+ TIPONOSUJE,
+ TIPOFACT,
+ TIPORECTIF,
+ empresa_id
+ )
+ SELECT
+ vBookNumber AS ASIEN,
+ rs.FECHA,
+ iot.pgcFk AS SUBCTA,
+ rs.clientBookingAccount AS CONTRA,
+ iot.vat AS EUROHABER,
+ iot.taxableBase AS BASEEURO,
+ CONCAT(vExpenceConcept,' : ',rs.Concept) AS CONCEPTO,
+ rs.invoiceNum AS FACTURA,
+ IF(pe2.equFk,0,pgc.rate) AS IVA,
+ IF(pe2.equFk,0,pgce.rate) AS RECEQUIV,
+ IF(pgc.mod347,'','*') AS AUXILIAR,
+ rs.SERIE,
+ rs.SERIE_RT,
+ rs.FACTU_RT,
+ rs.RECTIFICA,
+ rs.FECHA_RT,
+ rs.FECHA_OP,
+ rs.FECHA_EX,
+ rs.TIPOOPE,
+ rs.NFACTICK,
+ rs.TERIDNIF,
+ rs.TERNIF,
+ rs.TERNOM,
+ pgc.mod340 AS L340,
+ pgc.cplusTrascendency477Fk AS TIPOCLAVE,
+ pgc.cplusTaxBreakFk as TIPOEXENCI,
+ rs.TIPONOSUJE,
+ rs.TIPOFACT,
+ rs.TIPORECTIF,
+ rs.companyFk AS empresa_id
+ 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 pgc pgce ON pgce.code = pe.equFk
+ LEFT JOIN pgcEqu pe2 ON pe2.equFk = iot.pgcFk -- --------------- Comprueba si la linea es de rec.equiv.
+ WHERE iot.invoiceOutFk = vInvoice;
+
+ UPDATE invoiceOut
+ SET booked = CURDATE()
+ WHERE id = vInvoice;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `invoiceOutBookingRange` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `invoiceOutBookingRange`()
+BEGIN
+
+/* Reasentar facturas
+*/
+
+
+ DECLARE vInvoice INT;
+ DECLARE vContador INT DEFAULT 0;
+
+ DECLARE done BOOL DEFAULT FALSE;
+
+ DECLARE rs CURSOR FOR
+ SELECT io.id
+ FROM invoiceOut io
+ WHERE RIGHT(ref,7) BETWEEN 1724215 AND 1724224
+ AND serial = 'T';
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
+
+ OPEN rs;
+
+ FETCH rs INTO vInvoice;
+
+ WHILE NOT done DO
+
+ CALL invoiceOutBooking(vInvoice);
+
+ FETCH rs INTO vInvoice ;
+
+ SET vContador = vContador + 1;
+
+ IF vContador MOD 50 = 0 THEN
+
+ SELECT CONCAT(vContador, ' de momento') AS FACTURAS_ASENTADAS;
+
+ END IF;
+
+ END WHILE;
+
+ CLOSE rs;
+
+ SELECT CONCAT(vContador, ' total') AS FACTURAS_ASENTADAS;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `invoiceOutFix_BI_RE_IVA` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `invoiceOutFix_BI_RE_IVA`()
+BEGIN
+
+DECLARE done BOOL DEFAULT FALSE;
+DECLARE vInvoice INT;
+
+DECLARE rs CURSOR FOR
+ SELECT factura_id
+ FROM vn2008.Facturas
+ WHERE Importe != BI7 + BI16 + RE4 + RE1 + IVA7 + IVA16
+ AND Fecha >= '2017-07-01';
+
+DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
+
+OPEN rs;
+
+FETCH rs INTO vInvoice;
+
+SELECT vInvoice, done;
+
+WHILE NOT done DO
+
+ UPDATE invoiceOut io
+ JOIN (
+ SELECT SUM(amount) AS total
+ FROM invoiceOutExpence
+ WHERE invoiceOutFk = vInvoice
+ ) base
+ JOIN (
+ SELECT SUM(vat) AS total
+ FROM invoiceOutTax
+ WHERE invoiceOutFk = vInvoice
+ ) vat
+ SET io.amount = base.total + vat.total
+ WHERE io.id = vInvoice;
+
+ UPDATE vn2008.Facturas
+ SET BI16 = 0,
+ BI7 = 0,
+ RE1 = 0,
+ RE4 = 0,
+ IVA7 = 0,
+ IVA16 = 0
+ WHERE factura_id = vInvoice;
+
+ UPDATE vn2008.Facturas f
+ JOIN invoiceOutTax iot ON iot.invoiceOutFk = f.factura_id
+ SET f.BI16 = iot.taxableBase, f.IVA16 = iot.vat
+ WHERE f.factura_id = vInvoice
+ AND iot.pgcFk IN ('4770000021' ,'4770000215', '4770000002','4771000000','4770000000','4770000020');
+
+ UPDATE vn2008.Facturas f
+ JOIN invoiceOutTax iot ON iot.invoiceOutFk = f.factura_id
+ SET f.RE4 = iot.vat
+ WHERE f.factura_id = vInvoice
+ AND iot.pgcFk = '4770000521';
+
+ UPDATE vn2008.Facturas f
+ JOIN invoiceOutTax iot ON iot.invoiceOutFk = f.factura_id
+ SET f.BI7 = iot.taxableBase, f.IVA7 = iot.vat
+ WHERE f.factura_id = vInvoice
+ AND iot.pgcFk IN ('4770000010' ,'4770000101');
+
+ UPDATE vn2008.Facturas f
+ JOIN invoiceOutTax iot ON iot.invoiceOutFk = f.factura_id
+ SET f.RE1 = iot.vat
+ WHERE f.factura_id = vInvoice
+ AND iot.pgcFk = '4770000110';
+
+FETCH rs INTO vInvoice;
+
+END WHILE;
+
+
+CLOSE rs;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `invoiceOutListByCompany` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `invoiceOutListByCompany`(vCompany INT, vStarted DATE, vEnded DATE)
+BEGIN
+
+SELECT
+ c.socialName as RazonSocial,
+ c.fi as NIF,
+ io.ref as Factura,
+ io.serial as Serie,
+ io.issued as Fecha,
+ io.amount as Importe,
+ c.id as Id_Cliente,
+ iot.taxableBase as Base,
+ pgc.rate as Tipo,
+ iot.vat as Cuota,
+ pgc.name as Concepto
+
+ FROM vn.invoiceOut io
+ JOIN vn.invoiceOutTax iot ON iot.invoiceOutFk = io.id
+ JOIN vn.client c ON c.id = io.clientFk
+ JOIN vn.pgc ON pgc.code = iot.pgcFk
+ WHERE io.companyFk = vCompany
+ AND io.issued BETWEEN vStarted AND vEnded
+ ORDER BY io.ref DESC;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `invoiceOutMake` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `invoiceOutMake`(
+ vSerial VARCHAR(255),
+ vInvoiceDate DATETIME,
+ 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;
+ DECLARE vCountry TINYINT DEFAULT 1;
+ DECLARE vTaxArea VARCHAR(15);
+ DECLARE vNewRef VARCHAR(255);
+ DECLARE vWorker INT DEFAULT vn.getWorker();
+ DECLARE vCompany INT;
+ DECLARE vClient INT;
+ DECLARE vCplusStandardInvoiceTypeFk INT DEFAULT 1;
+ DECLARE vCplusCorrectingInvoiceTypeFk INT DEFAULT 6;
+ DECLARE vCorrectingSerial VARCHAR(1) DEFAULT 'R';
+
+ SET vInvoiceDate = IFNULL(vInvoiceDate,CURDATE());
+
+ SELECT t.clientFk, t.companyFk
+ INTO vClient, vCompany
+ FROM ticketToInvoice tt
+ JOIN ticket t ON t.id = tt.id
+ LIMIT 1;
+
+ SELECT countryFk
+ INTO vCountry
+ FROM supplier
+ WHERE id = vCompany;
+
+ SELECT IF(a.isEqualizated
+ AND c.countryFk = vSpainCountryCode
+ AND i.taxAreaFk = 'NATIONAL',
+ 'EQU',
+ i.taxAreaFk)
+ INTO vTaxArea
+ FROM invoiceOutSerial i
+ JOIN ticketToInvoice tti
+ JOIN ticket t ON t.id = tti.id
+ JOIN address a ON a.id = t.addressFk
+ JOIN client c ON c.id = t.clientFk
+ WHERE i.code = vSerial
+ LIMIT 1;
+
+ INSERT INTO dailyTaskLog(state) VALUES('invoiceOutMake 1: START');
+
+ 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
+ SET t.shipped = '2000-02-01 00:00:00'
+ WHERE s.id IS NULL;
+
+ 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
+ JOIN client c ON c.id = t.clientFk
+ WHERE YEAR(t.shipped) < 2001
+ OR c.isTaxDataChecked = FALSE;
+ INSERT INTO dailyTaskLog(state) VALUES('invoiceOutMake 1.2');
+
+ SELECT SUM(quantity * price * (100 - discount)/100)
+ INTO vIsAnySaleToInvoice
+ FROM sale s
+ JOIN ticketToInvoice t on t.id = s.ticketFk;
+
+ INSERT INTO dailyTaskLog(state) VALUES('invoiceOutMake 1.3');
+
+ 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,
+ serial,
+ issued,
+ clientFk,
+ dued,
+ companyFk,
+ cplusInvoiceType477Fk
+ )
+ SELECT
+ 1,
+ vSerial,
+ vInvoiceDate,
+ vClient,
+ getDueDate(vInvoiceDate, dueDay),
+ vCompany,
+ IF(vSerial = vCorrectingSerial, vCplusCorrectingInvoiceTypeFk, vCplusStandardInvoiceTypeFk)
+ FROM client
+ WHERE id = vClient;
+
+
+ SET vNewInvoiceId = LAST_INSERT_ID();
+
+ SELECT ref
+ INTO vNewRef
+ FROM invoiceOut
+ WHERE id = vNewInvoiceId;
+
+ UPDATE ticket t
+ JOIN ticketToInvoice ti ON ti.id = t.id
+ SET t.refFk = vNewRef;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.updateInter;
+ CREATE TEMPORARY TABLE tmp.updateInter ENGINE = MEMORY
+ SELECT s.id,ti.id ticket_id,vWorker Id_Trabajador
+ FROM ticketToInvoice ti
+ JOIN vn.ticketState ts ON ti.id = ts.ticket
+ JOIN state s
+ WHERE IFNULL(ts.alertLevel,0) < 3 and s.`code` = vn.getAlert3State(ti.id);
+
+ INSERT INTO vncontrol.inter(state_id,Id_Ticket,Id_Trabajador)
+ SELECT * FROM tmp.updateInter;
+
+ INSERT INTO logTicket (action, userFk,originFk, description)
+ SELECT 'UPDATE',account.userGetId(),ti.id, CONCAT('CREA FACTURA ',vNewRef)
+ FROM ticketToInvoice ti;
+
+ CALL invoiceExpenceMake(vNewInvoiceId);
+ CALL invoiceTaxMake(vNewInvoiceId,vCountry,vTaxArea);
+
+ UPDATE invoiceOut io
+ JOIN (
+ SELECT SUM(amount) AS total
+ FROM invoiceOutExpence
+ WHERE invoiceOutFk = vNewInvoiceId
+ ) base
+ JOIN (
+ SELECT SUM(vat) AS total
+ FROM invoiceOutTax
+ WHERE invoiceOutFk = vNewInvoiceId
+ ) vat
+ 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
+ WHERE f.factura_id = vNewInvoiceId
+ AND iot.pgcFk IN ('4770000021' ,'4770000215', '4770000002','4771000000','4770000000','4770000020');
+
+ UPDATE vn2008.Facturas f
+ JOIN invoiceOutTax iot ON iot.invoiceOutFk = f.factura_id
+ SET f.RE4 = iot.vat
+ WHERE f.factura_id = vNewInvoiceId
+ AND iot.pgcFk = '4770000521';
+
+ UPDATE vn2008.Facturas f
+ JOIN invoiceOutTax iot ON iot.invoiceOutFk = f.factura_id
+ SET f.BI7 = iot.taxableBase, f.IVA7 = iot.vat
+ WHERE f.factura_id = vNewInvoiceId
+ AND iot.pgcFk IN ('4770000010' ,'4770000101');
+
+ UPDATE vn2008.Facturas f
+ JOIN invoiceOutTax iot ON iot.invoiceOutFk = f.factura_id
+ SET f.RE1 = iot.vat
+ WHERE f.factura_id = vNewInvoiceId
+ AND iot.pgcFk = '4770000110';
+ END IF;
+
+
+ INSERT INTO dailyTaskLog(state) VALUES('invoiceOutMake 3: END');
+
+ DROP TEMPORARY TABLE `ticketToInvoice`;
+ COMMIT;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `invoiceOutTaxAndExpence` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `invoiceOutTaxAndExpence`()
+BEGIN
+
+/* Para tickets ya facturados, vuelve a repetir el proceso de facturación.
+*
+* @param vInvoice Numero de factura
+*/
+
+
+
+ DECLARE vInvoice INT;
+ DECLARE vInvoiceRef VARCHAR(15);
+ DECLARE vCountry INT;
+ DECLARE vTaxArea VARCHAR(15);
+ DECLARE vContador INT DEFAULT 0;
+
+ DECLARE done BOOL DEFAULT FALSE;
+
+ DECLARE rs CURSOR FOR
+ SELECT id,ref
+ FROM invoiceOut io
+
+ WHERE issued >= '2017-07-01'
+ AND companyFk = 1381
+ AND io.amount IS NULL
+ ;
+
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
+
+ OPEN rs;
+
+ FETCH rs INTO vInvoice ,vInvoiceRef;
+
+ WHILE NOT done DO
+
+ SELECT s.countryFk
+ INTO vCountry
+ FROM supplier s
+ JOIN invoiceOut io ON io.companyFk = s.id
+ WHERE io.id = vInvoice;
+
+ SELECT IF(c.isEqualizated 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;
+
+ DROP TEMPORARY TABLE IF EXISTS ticketToInvoice;
+
+ CREATE TEMPORARY TABLE ticketToInvoice
+ SELECT id
+ FROM ticket
+ WHERE refFk = vInvoiceRef;
+
+ CALL invoiceExpenceMake(vInvoice);
+ CALL invoiceTaxMake(vInvoice,vCountry,vTaxArea);
+
+ FETCH rs INTO vInvoice ,vInvoiceRef;
+
+ SET vContador = vContador + 1;
+
+ IF vContador MOD 50 = 0 THEN
+
+ SELECT CONCAT(vContador, ' de momento') AS FACTURAS_ASENTADAS;
+
+ END IF;
+
+ END WHILE;
+
+ CLOSE rs;
+
+ SELECT CONCAT(vContador, ' total') AS FACTURAS_ASENTADAS;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `invoiceTaxMake` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ INSERT INTO invoiceOutTax(
+ invoiceOutFk,
+ pgcFk,
+ taxableBase,
+ vat
+ )
+ SELECT vInvoice,
+ bp.pgcFk,
+ SUM(ROUND(s.quantity * s.price * (100 - s.discount)/100,2)
+ ) taxableBase,
+ SUM(ROUND(s.quantity * s.price * (100 - s.discount)/100,2)
+ ) * pgc.rate / 100
+ FROM ticketToInvoice t
+ JOIN sale s ON s.ticketFk = t.id
+ JOIN item i ON i.id = s.itemFk
+ JOIN itemTaxCountry itc
+ ON itc.itemFk = i.id AND itc.countryFk = vCountry
+ JOIN bookingPlanner bp
+ ON bp.countryFk = vCountry
+ AND bp.taxAreaFk = vTaxArea
+ AND bp.taxClassFk = itc.taxClassFk
+ JOIN pgc ON pgc.code = bp.pgcFk
+ GROUP BY pgc.code
+ HAVING taxableBase != 0;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `itemTagArrangedUpdate` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ OR vItem = itemFk;
+
+ INSERT INTO itemTagArranged(itemFk)
+ SELECT id
+ FROM item
+ WHERE vItem IS NULL
+ OR vItem = id;
+
+ REPLACE itemTagArranged
+ SELECT i.id,
+ 'Medida' as tag1,
+ LEFT(i.size,15) as val1,
+ 'Color' as tag2,
+ LEFT(ink.`name`,15) as val2,
+ 'Categoria' as tag3,
+ LEFT(i.category,15) as val3,
+ 'Productor' as tag4,
+ LEFT(p.`name`,15) as val4,
+ 'Tallos' as tag5,
+ i.stems as val5,
+ 'Origen' as tag6,
+ o.code as val6,
+ i.description
+ FROM item i
+ LEFT JOIN itemTagged it ON it.itemFk = i.id
+ LEFT JOIN ink on ink.id = i.inkFk
+ JOIN origin o ON o.id = i.originFk
+ LEFT JOIN producer p ON p.id = i.producerFk
+ WHERE it.itemFk IS NULL
+ AND (vItem IS NULL OR vItem = i.id);
+
+ CALL itemTagUpdatePriority(vItem);
+
+ UPDATE itemTagArranged ita
+ JOIN itemTag it ON it.itemFk = ita.itemFk
+ JOIN tag t ON t.id = it.tagFk
+ SET tag1 = t.name, val1 = it.value
+ WHERE it.priority = 1
+ AND (vItem IS NULL OR vItem = it.itemFk);
+
+ UPDATE itemTagArranged ita
+ JOIN itemTag it ON it.itemFk = ita.itemFk
+ JOIN tag t ON t.id = it.tagFk
+ SET tag2 = t.name, val2 = it.value
+ WHERE it.priority = 2
+ AND (vItem IS NULL OR vItem = it.itemFk);
+
+ UPDATE itemTagArranged ita
+ JOIN itemTag it ON it.itemFk = ita.itemFk
+ JOIN tag t ON t.id = it.tagFk
+ SET tag3 = t.name, val3 = it.value
+ WHERE it.priority = 3
+ AND (vItem IS NULL OR vItem = it.itemFk);
+
+ UPDATE itemTagArranged ita
+ JOIN itemTag it ON it.itemFk = ita.itemFk
+ JOIN tag t ON t.id = it.tagFk
+ SET tag4 = t.name, val4 = it.value
+ WHERE it.priority = 4
+ AND (vItem IS NULL OR vItem = it.itemFk);
+
+ UPDATE itemTagArranged ita
+ JOIN itemTag it ON it.itemFk = ita.itemFk
+ JOIN tag t ON t.id = it.tagFk
+ SET tag5 = t.name, val5 = it.value
+ WHERE it.priority = 5
+ AND (vItem IS NULL OR vItem = it.itemFk);
+
+ UPDATE itemTagArranged ita
+ JOIN itemTag it ON it.itemFk = ita.itemFk
+ JOIN tag t ON t.id = it.tagFk
+ SET tag6 = t.name, val6 = it.value
+ WHERE it.priority = 6
+ AND (vItem IS NULL OR vItem = it.itemFk);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `itemTagUpdatePriority` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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);
+
+ SET @p := 0;
+ SET @a := 0;
+
+ UPDATE itemTag a
+ JOIN (
+ SELECT
+ id,
+ @p := IF(itemFk = @a, @p, 0) + 1 as NewPriority,
+ @a := itemFk
+ FROM itemTag
+ WHERE vItem IS NULL
+ OR vItem = itemFk
+ ORDER BY itemFk, priority
+ ) sub ON sub.id = a.id
+ SET a.priority = NewPriority;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `itemTagUpdatePriority_launcher` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `itemTagUpdatePriority_launcher`()
+BEGIN
+
+ CALL vn.itemTagUpdatePriority(0);
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `logAdd` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ FROM vn.logType
+ WHERE `code` = vTypeCode;
+
+ IF ISNULL(vTableName) THEN
+ CALL util.throw('CODE_NOT_FOUND');
+ END IF;
+
+ SET @qryLog := CONCAT(
+ 'INSERT INTO ', vTableName, ' (originFk, userFk, action, description)',
+ ' VALUES (', vOriginFk, ', ', account.userGetId(), ', "', vActionCode, '", "', vDescription, '")'
+ );
+
+ PREPARE stmt FROM @qryLog;
+ EXECUTE stmt;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `logShow` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ FROM vn.logType
+ WHERE `code` = vTypeCode;
+
+ IF ISNULL(vTableName) THEN
+ CALL util.throw('CODE_NOT_FOUND');
+ END IF;
+
+ SET @qryLog := CONCAT(
+ 'SELECT ot.id, ot.originFk, ot.userFk, u.name, ot.action, ot.creationDate, ot.description FROM ', vTableName, ' AS ot',
+ ' INNER JOIN account.user u ON u.id = ot.userFk',
+ ' WHERE ot.originFk = ', vOriginFk, ' ORDER BY ot.creationDate DESC'
+ );
+
+ PREPARE stmt FROM @qryLog;
+ EXECUTE stmt;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `mergeTicketUnattended` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `mergeTicketUnattended`(IN vMainTicket INT(11), IN hasSameAgency BOOLEAN)
+BEGIN
+
+ DECLARE isBilled BOOLEAN;
+ DECLARE arrayTickets VARCHAR(255);
+
+ SELECT Factura IS NOT NULL INTO isBilled FROM vn2008.Tickets WHERE Id_Ticket = vMainTicket;
+
+ IF NOT isBilled THEN
+
+ SELECT GROUP_CONCAT(distinct T.Id_Ticket) INTO arrayTickets
+ FROM vn2008.Tickets T LEFT JOIN vn.ticketState ts ON T.Id_Ticket = ts.ticket
+ JOIN vn2008.Tickets ticketOriginal ON ticketOriginal.Id_Ticket = vMainTicket
+ AND T.empresa_id = ticketOriginal.empresa_id
+ AND T.Id_Consigna = ticketOriginal.Id_Consigna
+ AND DATE(T.Fecha) = DATE(ticketOriginal.Fecha)
+ AND T.warehouse_id = ticketOriginal.warehouse_id
+ AND IF(hasSameAgency <> 0,T.Id_Agencia = ticketOriginal.Id_Agencia,TRUE)
+ LEFT JOIN vn.ticketState tsOriginal ON ticketOriginal.Id_Ticket = tsOriginal.ticket
+ WHERE ts.alertLevel < 3
+ AND T.Factura IS NULL
+ AND T.Anotadoencaja = FALSE
+ AND T.Id_Ticket <> vMainTicket
+ AND ts.alertLevel = tsOriginal.alertLevel;
+
+ CALL mergeTicketWithArray(vMainTicket,arrayTickets);
+
+ END IF;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `mergeTicketWithArray` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `mergeTicketWithArray`(IN vMainTicket INT(11), IN arrayTickets VARCHAR(50))
+BEGIN
+
+ DECLARE isBilled BOOLEAN;
+ DECLARE messageLog VARCHAR(50);
+ DECLARE company INT;
+ DECLARE messageForSplit VARCHAR(255);
+ DECLARE vMainSplit INT;
+ DECLARE worker INT(3);
+
+ SELECT Factura IS NOT NULL INTO isBilled FROM vn2008.Tickets WHERE Id_Ticket = vMainTicket;
+
+ IF NOT isBilled THEN
+
+ SELECT Id_Trabajador INTO worker from vn2008.Trabajadores where user_id = account.userGetId();
+ IF worker IS NULL THEN
+ SET worker = 20;
+ END IF;
+
+ 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
+ FROM vn2008.Tickets T
+ WHERE Id_Ticket IN (%s);',arrayTickets));
+
+ INSERT INTO vn2008.ticket_observation (Id_Ticket,observation_type_id,text)
+ SELECT vMainTicket,observation_type_id,CONCAT(' Ticket ', Id_Ticket, ':' , tco.text, '. ')
+ FROM vn2008.Tickets_to_fusion tf
+ INNER JOIN vn2008.ticket_observation tco USING(Id_Ticket)
+ ON DUPLICATE KEY UPDATE `text` = CONCAT(ticket_observation.`text`,CONCAT(' Ticket ', VALUES(Id_Ticket), ':' , VALUES(`text`), '. '));
+
+ UPDATE vn2008.Movimientos M
+ JOIN vn2008.Tickets_to_fusion USING(Id_Ticket)
+ SET M.Id_Ticket = vMainTicket;
+
+ UPDATE vn2008.expeditions M
+ JOIN vn2008.Tickets_to_fusion t ON t.Id_Ticket = M.ticket_id
+ SET M.ticket_id = vMainTicket;
+
+ UPDATE vn2008.Tickets
+ SET Bultos = (SELECT COUNT(*) FROM vn2008.expeditions WHERE ticket_id = vMainTicket AND EsBulto)
+ WHERE Id_Ticket = vMainTicket;
+
+ UPDATE vn2008.Tickets
+ JOIN vn2008.Tickets_to_fusion USING(Id_Ticket)
+ SET Fecha = TIMESTAMPADD(YEAR,-1 * (YEAR(Fecha)-2000), Fecha);
+
+ UPDATE vn2008.Tickets_dits ts
+ JOIN vn2008.Tickets_to_fusion t USING(Id_Ticket)
+ SET ts.Id_Ticket = vMainTicket;
+
+ UPDATE vn2008.Tickets
+ SET Localizacion = CONCAT(Tickets.Localizacion,' ',IFNULL((SELECT GROUP_CONCAT(Localizacion SEPARATOR ' ') FROM vn2008.Tickets_to_fusion),''))
+ WHERE Id_Ticket = vMainTicket;
+
+ UPDATE vn2008.Splits s
+ RIGHT JOIN vn2008.Tickets_to_fusion t USING(Id_Ticket)
+ SET s.Id_Ticket = vMainTicket;
+
+ IF (SELECT COUNT(*) FROM vn2008.Splits WHERE Id_Ticket=vMainTicket) > 1 THEN
+
+ SELECT Id_Split INTO vMainSplit FROM vn2008.Splits WHERE Id_Ticket = vMainTicket LIMIT 1;
+
+ SELECT group_concat(Notas,',') INTO messageForSplit FROM vn2008.Splits WHERE Id_Ticket = vMainTicket;
+ UPDATE vn2008.Splits SET Notas = messageForSplit WHERE Id_Split=vMainSplit;
+ UPDATE vn2008.Split_lines sl JOIN vn2008.Splits s USING (Id_Split) SET sl.Id_Split=vMainSplit WHERE Id_Ticket=vMainTicket;
+ DELETE FROM vn2008.Splits WHERE Id_Ticket=vMainTicket AND Id_Split<>vMainSplit;
+ END IF;
+
+ SELECT GROUP_CONCAT(Id_Ticket SEPARATOR ',') into messageLog FROM vn2008.Tickets_to_fusion;
+ 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 ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `noticeSend` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `noticeSend`(vCategoryKey VARCHAR(50), vSender INT, vRecipient INT, vBody TEXT)
+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
+
+ INSERT INTO vn.noticeInbox (noticeCategoryFk, senderFk, recipientFk, body)
+ VALUES (vCategoryId, vSender, vRecipient, vBody);
+
+ SELECT vSender, vRecipient;
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `observationAdd` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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');
+
+ IF ISNULL(vTableName) THEN
+ CALL util.throw('CODE_NOT_FOUND');
+ END IF;
+
+ SET @qryLog := CONCAT(
+ 'INSERT INTO ', vTableName, ' (originFk, userFk, description)',
+ ' VALUES (', vOriginFk, ', ', account.userGetId(), ', "', vDescription, '")'
+ );
+
+ PREPARE stmt FROM @qryLog;
+ EXECUTE stmt;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `printTrolleyLabel` */;
+ALTER DATABASE `vn` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ DECLARE vShipmentHour VARCHAR(10);
+
+ SELECT getTicketTrolleyLabelCount(vTicket) INTO vLabelCount;
+ SELECT getUser() INTO vWorker;
+ SELECT CONCAT(getShipmentHour(vTicket),':00') INTO vShipmentHour;
+
+ INSERT INTO printingQueue(printer
+ , priority
+ , report
+ , `text`
+ , worker
+ , text2
+ , text3)
+ VALUES (vPrinter
+ , PRIORITY
+ , vReport
+ , vTicket
+ , vWorker
+ , vLabelCount
+ , vShipmentHour);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `refund` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `refund`(IN vMainTicket INT, OUT vNewTicket INT)
+BEGIN
+
+ DECLARE vCustomer MEDIUMINT;
+ DECLARE vNewDate DATE;
+ DECLARE vWarehouse TINYINT;
+ DECLARE vCompany MEDIUMINT;
+ DECLARE vAddress MEDIUMINT;
+ DECLARE vRefundAgencyMode INT DEFAULT 23;
+
+ SELECT customer, TIMESTAMPADD(DAY, 1,shipment), warehouse, company, address
+ INTO vCustomer, vNewDate, vWarehouse, vCompany, vAddress
+ FROM ticket
+ WHERE id = vMainTicket;
+
+ CALL ticketCreate(vCustomer, vNewDate, vWarehouse, vCompany, vAddress, vRefundAgencyMode,NULL,vNewDate,vNewTicket);
+
+ INSERT INTO vn2008.Movimientos(Id_Ticket, Id_Article, Cantidad, Concepte, Preu, Descuento, PrecioFijado)
+ SELECT vNewTicket, Id_Article, - Cantidad, Concepte, Preu, Descuento, TRUE FROM vn2008.Movimientos WHERE Id_Ticket = vMainTicket;
+ SELECT vNewTicket;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `solunionRiskRequest` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `solunionRiskRequest`()
+BEGIN
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.client_list;
+ CREATE TEMPORARY TABLE tmp.client_list
+ (PRIMARY KEY (Id_Cliente))
+ ENGINE = MEMORY
+ SELECT * FROM (SELECT cc.client Id_Cliente, ci.grade FROM vn.creditClassification cc
+ JOIN vn.creditInsurance ci ON cc.id = ci.creditClassification
+ WHERE dateEnd IS NULL
+ ORDER BY ci.creationDate DESC) t1 GROUP BY Id_Cliente;
+
+ CALL vn2008.risk_vs_client_list(CURDATE());
+
+ SELECT
+ c.Id_Cliente, c.Cliente, c.Credito credito_vn, c.creditInsurance solunion, cast(r.risk as DECIMAL(10,0)) riesgo_vivo,
+ cast(c.creditInsurance - r.risk as decimal(10,0)) margen_vivo,
+ f.Consumo consumo_anual, c.Vencimiento, ci.grade
+ FROM
+ vn2008.Clientes c
+ JOIN tmp.risk r ON r.Id_Cliente = c.Id_Cliente
+ JOIN tmp.client_list ci ON c.Id_Cliente = ci.Id_Cliente
+ JOIN bi.facturacion_media_anual f ON c.Id_Cliente = f.Id_Cliente
+ GROUP BY Id_cliente;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.risk;
+ DROP TEMPORARY TABLE IF EXISTS tmp.client_list;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `stockBuyed` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `stockBuyed`(vDate DATE)
+BEGIN
+ DECLARE vVolume DECIMAL(10,2);
+ DECLARE vWarehouse INT DEFAULT 7;
+
+ CALL stockTraslation(vDate);
+
+ SELECT Volumen INTO vVolume FROM vn2008.Cubos WHERE Id_Cubo = 'cc' LIMIT 1;
+
+ INSERT INTO stockBuyed(user, buyed, `date`)
+ SELECT tr.user_id, SUM(0.6 * ( amount / c.packing ) * vn2008.cm3(Id_Compra))/vVolume buyed, vDate
+ FROM tmp_item i
+ JOIN vn2008.Articles a ON a.Id_Article = i.item_id
+ JOIN vn2008.Tipos t ON a.tipo_id = t.tipo_id
+ JOIN vn2008.reinos r ON r.id = t.reino_id
+ JOIN vn2008.Trabajadores tr ON tr.Id_Trabajador = t.Id_Trabajador
+ JOIN vn2008.t_item_last_buy ilb ON ilb.item_id = Id_Article AND ilb.warehouse_id = vWarehouse
+ JOIN vn2008.Compres c ON c.Id_compra = ilb.buy_id
+ WHERE r.display <> 0
+ GROUP BY tr.Id_Trabajador
+ ON DUPLICATE KEY UPDATE buyed = VALUES(buyed);
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `stockBuyedByWorker` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `stockBuyedByWorker`(vDate DATE, vWorker INT)
+BEGIN
+
+ DECLARE vVolume DECIMAL(10,2);
+ DECLARE vWarehouse INT DEFAULT 7;
+ CALL stockTraslation(vDate);
+
+ SELECT Volumen INTO vVolume FROM vn2008.Cubos WHERE Id_Cubo = 'cc' LIMIT 1;
+
+ SELECT c.Id_Entrada, a.Id_Article, a.Article, c.Cantidad, (0.6 * ( amount / c.packing ) * vn2008.cm3(Id_Compra))/vVolume buyed
+ FROM tmp_item i
+ JOIN vn2008.Articles a ON a.Id_Article = i.item_id
+ JOIN vn2008.Tipos t ON a.tipo_id = t.tipo_id
+ JOIN vn2008.reinos r ON r.id = t.reino_id
+ JOIN vn2008.Trabajadores tr ON tr.Id_Trabajador = t.Id_Trabajador
+ JOIN vn2008.t_item_last_buy ilb ON ilb.item_id = a.Id_Article AND ilb.warehouse_id = vWarehouse
+ JOIN vn2008.Compres c ON c.Id_compra = ilb.buy_id
+ WHERE r.display <> 0 AND tr.user_id = vWorker;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `stockTraslation` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ DELETE FROM stockBuyed WHERE `date` = vDate;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp_item;
+ CREATE TEMPORARY TABLE tmp_item
+ (UNIQUE INDEX i USING HASH (item_id))
+ ENGINE = MEMORY
+ SELECT item_id, SUM(amount) amount FROM vn2008.item_entry_in
+ WHERE dat = vDate
+ AND warehouse_id = vWarehouse
+ GROUP BY item_id HAVING amount != 0;
+
+ CALL `cache`.stock_refresh (FALSE);
+
+ INSERT INTO tmp_item (item_id,amount)
+ SELECT item_id,s.amount FROM `cache`.stock s
+ WHERE warehouse_id = vWarehouse
+ ON DUPLICATE KEY UPDATE
+ amount = tmp_item.amount + VALUES(amount);
+
+ CALL vn2008.item_last_buy_(vWarehouse,vDate);
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticketClosure` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ticketClosure`()
+BEGIN
+/**
+ * Realiza el cierre de todos los
+ * tickets de la table ticketClosure.
+ */
+
+ DECLARE vDone BOOL;
+ DECLARE vClientFk INT;
+ DECLARE vCredit INT;
+ DECLARE vPayMethod INT;
+ DECLARE vTicketFk INT;
+ DECLARE vIsToBeMailed BOOL;
+ DECLARE vIsTaxDataChecked BOOL;
+ DECLARE vCompanyFk INT;
+ DECLARE vDeliveryMethod INT;
+ DECLARE vAgencyFk INT;
+ DECLARE vAgencyModeFk INT;
+ DECLARE vWarehouseFk INT;
+ DECLARE vShipped DATE;
+ DECLARE vWarehouseVnh INT DEFAULT 7;
+ DECLARE vWarehouseFloramondo INT DEFAULT 40;
+ DECLARE vCompanyBlk INT DEFAULT 965;
+ DECLARE vCompanyCcs INT DEFAULT 69;
+ DECLARE vAgencyPackage INT DEFAULT 628;
+ DECLARE vPayMethodCard INT DEFAULT 5;
+ DECLARE vhasPackage BOOL DEFAULT 0;
+ DECLARE vPriority INT DEFAULT 1;
+ DECLARE vReportDeliveryNote INT DEFAULT 1;
+ DECLARE vReportInvoice INT DEFAULT 3;
+ DECLARE vNewPackageTicket INT;
+ DECLARE vNewInvoiceId INT;
+
+ 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');
+
+ OPEN cur;
+
+ proc: LOOP
+ SET vDone = FALSE;
+ SET vNewPackageTicket = 0;
+
+ FETCH cur INTO vTicketFk;
+
+ IF vDone THEN
+ LEAVE proc;
+ END IF;
+
+ -- ticketClosure start
+ INSERT INTO dailyTaskLog(state) VALUES(CONCAT('ticketClosure: ', vTicketFk, ' START'));
+ SELECT 1;
+ SELECT
+ c.id,
+ c.credit,
+ c.paymentMethodFk,
+ c.isToBeMailed,
+ c.isTaxDataChecked,
+ t.companyFk,
+ IFNULL(aw.agencyType, a.deliveryMethod) AS deliveryMethod,
+ a.id AS agencyFk,
+ t.agencyModeFk,
+ t.warehouseFk,
+ t.shipped
+ INTO vClientFk,
+ vCredit,
+ vPayMethod,
+ vIsToBeMailed,
+ vIsTaxDataChecked,
+ vCompanyFk,
+ vDeliveryMethod,
+ vAgencyFk,
+ vAgencyModeFk,
+ vWarehouseFk,
+ vShipped
+ FROM ticket t
+ INNER JOIN `client` c ON c.id = t.clientFk
+ LEFT JOIN agencyMode a ON a.id = t.agencyModeFk
+ 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
+ WHERE e.ticketFk = vTicketFk
+ AND p.isPackageReturnable
+ LIMIT 1;
+
+ 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
+ AND agencyModeFk = vAgencyPackage
+ AND clientFk = vClientFk
+ AND shipped = CURDATE()
+ AND refFk IS NULL
+ LIMIT 1;
+
+ IF ISNULL(vNewPackageTicket) OR vNewPackageTicket = 0 THEN
+ 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
+ JOIN item i ON i.id = e.itemFk
+ LEFT JOIN package p ON p.itemFk = i.id
+ WHERE e.ticketFk = vTicketFk AND p.isPackageReturnable
+ GROUP BY e.itemFk);
+
+ 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
+ JOIN item i ON i.id = e.itemFk
+ LEFT JOIN package p ON p.itemFk = i.id
+ 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
+ JOIN item i ON i.id = e.itemFk
+ WHERE e.ticketFk = vTicketFk
+ GROUP BY e.itemFk);
+ END IF;
+
+ 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
+ CALL invoiceMakeByClient(
+ vClientFk,
+ (SELECT invoiceSerial(vClientFk, vCompanyFk, 'M')),
+ vShipped,
+ vCompanyFk,
+ vNewInvoiceId);
+ ELSE
+ CALL invoiceMakeByTicket(vTicketFk, (SELECT invoiceSerial(vClientFk, vCompanyFk, 'R')), vNewInvoiceId);
+ END IF;
+
+
+ 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;
+
+ CLOSE cur;
+
+ INSERT INTO dailyTaskLog(state) VALUES('ticketClosure END');
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticketClosureAgencyList` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ CREATE TEMPORARY TABLE tmp.ticketClosure ENGINE = MEMORY (
+ SELECT
+ t.id AS ticketFk
+ FROM expedition e
+ INNER JOIN ticket t ON t.id = e.ticketFk
+ INNER JOIN tmp.ticketClosureAgencyList al ON al.agencyModeFk = t.agencyModeFk
+ LEFT JOIN ticketState ts ON ts.ticketFk = t.id
+ WHERE
+ ts.alertLevel = 2
+ AND t.warehouseFk = vWarehouseFk
+ AND DATE(t.shipped) BETWEEN DATE_ADD(vDateTo, INTERVAL -2 DAY) AND vDateTo
+ AND t.refFk IS NULL
+ GROUP BY e.ticketFk);
+
+ DROP TEMPORARY TABLE tmp.ticketClosureAgencyList;
+
+ CALL ticketClosure();
+
+ DROP TEMPORARY TABLE tmp.ticketClosure;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticketClosureAgencyListAdd` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ INSERT INTO tmp.ticketClosureAgencyList(agencyModeFk) VALUES(vAgencyModeFk);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticketClosureMultiWarehouse` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ CREATE TEMPORARY TABLE tmp.ticketClosure ENGINE = MEMORY (
+ SELECT
+ t.id AS ticketFk
+ FROM expedition e
+ INNER JOIN ticket t ON t.id = e.ticketFk
+ INNER JOIN warehouse w ON w.id = t.warehouseFk AND hasComission
+ LEFT JOIN ticketState ts ON ts.ticketFk = t.id
+ WHERE
+ ts.alertLevel = 2
+ AND DATE(t.shipped) BETWEEN DATE_ADD(vDateTo, INTERVAL -2 DAY) AND vDateTo
+ AND t.refFk IS NULL
+ GROUP BY e.ticketFk);
+
+ CALL ticketClosure();
+
+ DROP TEMPORARY TABLE tmp.ticketClosure;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticketClosureRoute` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ CREATE TEMPORARY TABLE tmp.ticketClosure ENGINE = MEMORY (
+ SELECT
+ t.id AS ticketFk
+ FROM expedition e
+ INNER JOIN ticket t ON t.id = e.ticketFk
+ LEFT JOIN ticketState ts ON ts.ticketFk = t.id
+ WHERE
+ ts.alertLevel = 2
+ AND t.warehouseFk = vWarehouseFk
+ AND t.routeFk = vRouteFk
+ AND DATE(t.shipped) BETWEEN DATE_ADD(vDateTo, INTERVAL -2 DAY) AND vDateTo
+ AND t.refFk IS NULL
+ GROUP BY e.ticketFk);
+
+ CALL ticketClosure();
+
+ DROP TEMPORARY TABLE tmp.ticketClosure;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticketClosureTicket` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ CREATE TEMPORARY TABLE tmp.ticketClosure ENGINE = MEMORY (
+ SELECT
+ t.id AS ticketFk
+ FROM expedition e
+ INNER JOIN ticket t ON t.id = e.ticketFk
+ LEFT JOIN ticketState ts ON ts.ticketFk = t.id
+ WHERE
+ ts.alertLevel = 2
+ AND t.id = vTicketFk
+ AND t.refFk IS NULL
+ GROUP BY e.ticketFk);
+
+ CALL ticketClosure();
+
+ DROP TEMPORARY TABLE tmp.ticketClosure;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticketClosureWarehouse` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ CREATE TEMPORARY TABLE ticketClosure ENGINE = MEMORY(
+ SELECT
+ t.id AS ticketFk
+ FROM expedition e
+ INNER JOIN ticket t ON t.id = e.ticketFk
+ LEFT JOIN ticketState ts ON ts.ticketFk = t.id
+ WHERE
+ ts.alertLevel = 2
+ AND t.warehouseFk = vWarehouseFk
+ AND DATE(t.shipped) BETWEEN DATE_ADD(vDateTo, INTERVAL -2 DAY) AND vDateTo
+ AND t.refFk IS NULL
+ GROUP BY e.ticketFk);
+
+ CALL ticketClosure();
+
+ DROP TEMPORARY TABLE tmp.ticketClosure;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticketCreate` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ticketCreate`(
+ IN vClientId INT
+ , IN vShipped DATE
+ , IN vWarehouseId INT
+ , IN vCompanyFk INT
+ , IN vAddressFk INT
+ , IN vAgencyType INT
+ , IN vRouteFk INT
+ , IN vlanded DATE
+ , OUT vNewTicket INT)
+BEGIN
+ DECLARE vClientOrnamentales INT DEFAULT 5270;
+ DECLARE vCompanyOrn INT DEFAULT 1381;
+ DECLARE vProvinceName VARCHAR(255);
+
+ SELECT p.name INTO vProvinceName
+ FROM vn.client c
+ JOIN province p ON p.id = c.province
+ WHERE c.id = vClientId;
+
+ IF vProvinceName IN ('SANTA CRUZ DE TENERIFE','LAS PALMAS DE GRAN CANARIA') AND vClientId <> vClientOrnamentales THEN
+ SET vCompanyFk = vCompanyOrn;
+ END IF;
+
+ INSERT INTO vn2008.Tickets (
+ Id_Cliente,
+ Fecha,
+ Id_Consigna,
+ Id_Agencia,
+ Alias,
+ warehouse_id,
+ Id_Ruta,
+ empresa_id,
+ landing)
+ SELECT
+ vClientId,
+ vShipped,
+ a.id,
+ IF(vAgencyType,vAgencyType,a.agencyFk),
+ a.nickname,
+ vWarehouseId,
+ IF(vRouteFk,vRouteFk,NULL),
+ vCompanyFk,
+ vlanded
+ FROM address a
+ JOIN agencyMode am ON am.id = a.agencyFk
+ WHERE IF(vAddressFk, a.id = vAddressFk, a.defaultAddress != 0)
+ AND a.clientFk = vClientId
+ LIMIT 1;
+
+ SET vNewTicket = LAST_INSERT_ID();
+
+ INSERT INTO ticketObservation(ticketFk, observationTypeFk, description)
+ SELECT vNewTicket,ao.observationTypeFk, ao.description
+ FROM addressObservation ao
+ JOIN address a ON a.id =ao.addressFk
+ WHERE a.clientFk = vClientId
+ AND IF(vAddressFk, a.id = vAddressFk, a.defaultAddress != 0);
+
+ CALL logAdd(vNewTicket,'insert','ticket',concat('CREA EL TICKET',' ',vNewTicket));
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticketToInvoiceByAddress` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ticketToInvoiceByAddress`(
+ vStarted DATE,
+ vEnded DATETIME,
+ vAddress INT,
+ vCompany INT
+ )
+BEGIN
+
+ SET vEnded = util.dayEnd(vEnded);
+
+ DROP TEMPORARY TABLE IF EXISTS vn.ticketToInvoice;
+
+ CREATE TEMPORARY TABLE vn.ticketToInvoice
+ SELECT id
+ FROM vn.ticket
+ WHERE addressFk = vAddress
+ AND companyFk = vCompany
+ AND shipped BETWEEN vStarted AND vEnded
+ AND refFk IS NULL;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticketToInvoiceByClient` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ticketToInvoiceByClient`(
+ vStarted DATE,
+ vEnded DATETIME,
+ vClient INT,
+ vCompany INT
+ )
+BEGIN
+
+ SET vEnded = util.dayEnd(vEnded);
+
+ DROP TEMPORARY TABLE IF EXISTS vn.ticketToInvoice;
+
+ CREATE TEMPORARY TABLE vn.ticketToInvoice
+ SELECT id
+ FROM vn.ticket
+ WHERE clientFk = vClient
+ AND companyFk = vCompany
+ AND shipped BETWEEN vStarted AND vEnded
+ AND refFk IS NULL;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticketToInvoiceByDate` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ticketToInvoiceByDate`(
+ vStarted DATE,
+ vEnded DATETIME,
+ vClient INT,
+ vCompany INT
+ )
+BEGIN
+
+ SET vEnded = util.dayEnd(vEnded);
+
+ DROP TEMPORARY TABLE IF EXISTS vn.ticketToInvoice;
+
+ CREATE TEMPORARY TABLE vn.ticketToInvoice
+ SELECT id
+ FROM vn.ticket
+ WHERE clientFk = vClient
+ AND companyFk = vCompany
+ AND shipped BETWEEN vStarted AND vEnded
+ AND refFk IS NULL;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticketToInvoiceByRef` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ DECLARE vTaxArea VARCHAR(15);
+ DECLARE vSpainCountryCode INT DEFAULT 1;
+
+ SELECT id
+ INTO vInvoice
+ FROM vn.invoiceOut
+ WHERE ref = vInvoiceRef;
+
+ SELECT s.countryFk
+ INTO vCountry
+ FROM vn.supplier s
+ JOIN vn.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 vn.invoiceOutSerial i
+ JOIN vn.invoiceOut io ON io.serial = i.code
+ JOIN vn.client c ON c.id = io.clientFk
+ WHERE io.id = vInvoice;
+
+ DROP TEMPORARY TABLE IF EXISTS vn.ticketToInvoice;
+
+ CREATE TEMPORARY TABLE vn.ticketToInvoice
+ SELECT id
+ FROM vn.ticket
+ WHERE refFk = vInvoiceRef;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticketToInvoiceByTicket` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ticketToInvoiceByTicket`(vTicket INT)
+BEGIN
+
+ DROP TEMPORARY TABLE IF EXISTS vn.ticketToInvoice;
+
+ CREATE TEMPORARY TABLE vn.ticketToInvoice
+ SELECT id
+ FROM vn.ticket
+ WHERE id = vTicket
+ AND refFk IS NULL;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticketTrackingAdd` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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 ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `workerDisable` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `workerDisable`(vUserId int)
+BEGIN
+
+ DELETE FROM account.account
+ WHERE user_id = vUserId;
+
+ UPDATE account.user
+ SET role = 2
+ WHERE id = vUserId;
+
+ UPDATE `client`
+ SET credit = 0
+ WHERE id = vUserId;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `workingHours` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `workingHours`(username varchar(255), logon boolean)
+BEGIN
+ DECLARE userid int(11);
+
+ SELECT vn.getUserId(username) INTO userid;
+ SELECT username, userid;
+ IF userid IS NOT NULL THEN
+ IF (logon) THEN
+ CALL vn.workingHoursTimeIn(userid);
+ ELSE
+ CALL vn.workingHoursTimeOut(userid);
+ END IF;
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `workingHoursTimeIn` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `workingHoursTimeIn`(vUserId INT(11))
+BEGIN
+ INSERT INTO vn.workingHours (timeIn, userId)
+ VALUES (NOW(),vUserId);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `workingHoursTimeOut` */;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `workingHoursTimeOut`(vUserId INT(11))
+BEGIN
+ UPDATE vn.workingHours
+ SET timeOut = NOW()
+ WHERE userId = vUserId
+ AND DATE(timeIn) = CURDATE();
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+
+--
+-- Current Database: `salix`
+--
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `salix` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */;
+
+USE `salix`;
+
+--
+-- Table structure for table `ACL`
+--
+
+DROP TABLE IF EXISTS `ACL`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `ACL` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `model` varchar(512) CHARACTER SET utf8 DEFAULT NULL,
+ `property` varchar(512) CHARACTER SET utf8 DEFAULT NULL,
+ `accessType` varchar(512) CHARACTER SET utf8 DEFAULT NULL,
+ `permission` varchar(512) CHARACTER SET utf8 DEFAULT NULL,
+ `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;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `AccessToken`
+--
+
+DROP TABLE IF EXISTS `AccessToken`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `AccessToken` (
+ `id` varchar(255) CHARACTER SET utf8 NOT NULL,
+ `ttl` int(11) DEFAULT NULL,
+ `scopes` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
+ `created` datetime DEFAULT NULL,
+ `userId` int(11) DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `Account`
+--
+
+DROP TABLE IF EXISTS `Account`;
+/*!50001 DROP VIEW IF EXISTS `Account`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `Account` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `password`,
+ 1 AS `roleFk`,
+ 1 AS `active`,
+ 1 AS `email`,
+ 1 AS `created`,
+ 1 AS `updated`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `Accounting`
+--
+
+DROP TABLE IF EXISTS `Accounting`;
+/*!50001 DROP VIEW IF EXISTS `Accounting`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `Accounting` AS SELECT
+ 1 AS `id`,
+ 1 AS `bank`,
+ 1 AS `account`,
+ 1 AS `accountingTypeFk`,
+ 1 AS `entityFk`,
+ 1 AS `isActive`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `Address`
+--
+
+DROP TABLE IF EXISTS `Address`;
+/*!50001 DROP VIEW IF EXISTS `Address`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `Address` AS SELECT
+ 1 AS `id`,
+ 1 AS `consignee`,
+ 1 AS `street`,
+ 1 AS `city`,
+ 1 AS `postcode`,
+ 1 AS `provinceFk`,
+ 1 AS `phone`,
+ 1 AS `mobile`,
+ 1 AS `isEnabled`,
+ 1 AS `isDefaultAddress`,
+ 1 AS `clientFk`,
+ 1 AS `defaultAgencyFk`,
+ 1 AS `longitude`,
+ 1 AS `latitude`,
+ 1 AS `isEqualizated`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `Agency`
+--
+
+DROP TABLE IF EXISTS `Agency`;
+/*!50001 DROP VIEW IF EXISTS `Agency`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `Agency` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `warehouseFk`,
+ 1 AS `isVolumetric`,
+ 1 AS `bankFk`,
+ 1 AS `warehouseAliasFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `AgencyMode`
+--
+
+DROP TABLE IF EXISTS `AgencyMode`;
+/*!50001 DROP VIEW IF EXISTS `AgencyMode`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `AgencyMode` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `description`,
+ 1 AS `agencyTypeFk`,
+ 1 AS `m3`,
+ 1 AS `agencyFk`,
+ 1 AS `inflation`,
+ 1 AS `sendMailTo`,
+ 1 AS `isForTicket`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `Bank`
+--
+
+DROP TABLE IF EXISTS `Bank`;
+/*!50001 DROP VIEW IF EXISTS `Bank`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `Bank` AS SELECT
+ 1 AS `id`,
+ 1 AS `bank`,
+ 1 AS `account`,
+ 1 AS `cash`,
+ 1 AS `entityFk`,
+ 1 AS `isActive`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `City`
+--
+
+DROP TABLE IF EXISTS `City`;
+/*!50001 DROP VIEW IF EXISTS `City`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `City` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `provinceFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `Client`
+--
+
+DROP TABLE IF EXISTS `Client`;
+/*!50001 DROP VIEW IF EXISTS `Client`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `Client` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `fi`,
+ 1 AS `socialName`,
+ 1 AS `contact`,
+ 1 AS `street`,
+ 1 AS `city`,
+ 1 AS `postcode`,
+ 1 AS `provinceFk`,
+ 1 AS `countryFk`,
+ 1 AS `email`,
+ 1 AS `phone`,
+ 1 AS `mobile`,
+ 1 AS `fax`,
+ 1 AS `active`,
+ 1 AS `discount`,
+ 1 AS `credit`,
+ 1 AS `creditInsurance`,
+ 1 AS `iban`,
+ 1 AS `dueDay`,
+ 1 AS `equalizationTax`,
+ 1 AS `hasToInvoice`,
+ 1 AS `invoiceByEmail`,
+ 1 AS `payMethodFk`,
+ 1 AS `salesPersonFk`,
+ 1 AS `contactChannelFk`,
+ 1 AS `sepaVnl`,
+ 1 AS `coreVnl`,
+ 1 AS `coreVnh`,
+ 1 AS `eypbc`,
+ 1 AS `quality`,
+ 1 AS `vies`,
+ 1 AS `isRelevant`,
+ 1 AS `typeFk`,
+ 1 AS `accountingAccount`,
+ 1 AS `created`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `ClientCredit`
+--
+
+DROP TABLE IF EXISTS `ClientCredit`;
+/*!50001 DROP VIEW IF EXISTS `ClientCredit`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `ClientCredit` AS SELECT
+ 1 AS `id`,
+ 1 AS `clientFk`,
+ 1 AS `employeeFk`,
+ 1 AS `amount`,
+ 1 AS `created`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `ClientCreditLimit`
+--
+
+DROP TABLE IF EXISTS `ClientCreditLimit`;
+/*!50001 DROP VIEW IF EXISTS `ClientCreditLimit`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `ClientCreditLimit` AS SELECT
+ 1 AS `id`,
+ 1 AS `maxAmount`,
+ 1 AS `roleFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `ClientObservation`
+--
+
+DROP TABLE IF EXISTS `ClientObservation`;
+/*!50001 DROP VIEW IF EXISTS `ClientObservation`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `ClientObservation` AS SELECT
+ 1 AS `id`,
+ 1 AS `clientFk`,
+ 1 AS `employeeFk`,
+ 1 AS `text`,
+ 1 AS `created`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `ClientType`
+--
+
+DROP TABLE IF EXISTS `ClientType`;
+/*!50001 DROP VIEW IF EXISTS `ClientType`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `ClientType` AS SELECT
+ 1 AS `id`,
+ 1 AS `code`,
+ 1 AS `type`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `ContactChannel`
+--
+
+DROP TABLE IF EXISTS `ContactChannel`;
+/*!50001 DROP VIEW IF EXISTS `ContactChannel`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `ContactChannel` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `Country`
+--
+
+DROP TABLE IF EXISTS `Country`;
+/*!50001 DROP VIEW IF EXISTS `Country`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `Country` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `inCee`,
+ 1 AS `code`,
+ 1 AS `currencyFk`,
+ 1 AS `realCountryFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `CreditClassification`
+--
+
+DROP TABLE IF EXISTS `CreditClassification`;
+/*!50001 DROP VIEW IF EXISTS `CreditClassification`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `CreditClassification` AS SELECT
+ 1 AS `id`,
+ 1 AS `clientFk`,
+ 1 AS `started`,
+ 1 AS `ended`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `Employee`
+--
+
+DROP TABLE IF EXISTS `Employee`;
+/*!50001 DROP VIEW IF EXISTS `Employee`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `Employee` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `surname`,
+ 1 AS `userFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `FakeProduction`
+--
+
+DROP TABLE IF EXISTS `FakeProduction`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `FakeProduction` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `ticketFk` int(11) NOT NULL DEFAULT '0',
+ `clientFk` int(11) NOT NULL DEFAULT '0',
+ `client` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `date` date DEFAULT NULL,
+ `hour` time DEFAULT NULL,
+ `city` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `province` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `provinceFk` smallint(6) unsigned NOT NULL DEFAULT '0',
+ `agency` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `agencyFk` smallint(6) NOT NULL,
+ `lines` int(1) NOT NULL DEFAULT '0',
+ `m3` decimal(5,2) NOT NULL DEFAULT '0.00',
+ `problems` int(1) NOT NULL DEFAULT '0',
+ `problem` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `stateFk` bigint(4) NOT NULL DEFAULT '0',
+ `workerfk` int(11) NOT NULL DEFAULT '0',
+ `worker` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `salesPersonFk` int(11) NOT NULL DEFAULT '0',
+ `salesPerson` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `state` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `boxes` double DEFAULT NULL,
+ `routeFk` int(10) unsigned DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `Message`
+--
+
+DROP TABLE IF EXISTS `Message`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `Message` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `uuid` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `sender` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `recipient` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `message` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `sendDate` datetime DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `MessageInbox`
+--
+
+DROP TABLE IF EXISTS `MessageInbox`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `MessageInbox` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `uuid` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `sender` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `recipient` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `finalRecipient` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `message` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `sendDate` datetime DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `PayMethod`
+--
+
+DROP TABLE IF EXISTS `PayMethod`;
+/*!50001 DROP VIEW IF EXISTS `PayMethod`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `PayMethod` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `graceDays`,
+ 1 AS `outstandingDebt`,
+ 1 AS `ibanRequired`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `Province`
+--
+
+DROP TABLE IF EXISTS `Province`;
+/*!50001 DROP VIEW IF EXISTS `Province`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `Province` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `countryFk`,
+ 1 AS `warehouseFk`,
+ 1 AS `zoneFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `Role`
+--
+
+DROP TABLE IF EXISTS `Role`;
+/*!50001 DROP VIEW IF EXISTS `Role`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `Role` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `description`,
+ 1 AS `created`,
+ 1 AS `modified`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `RoleMapping`
+--
+
+DROP TABLE IF EXISTS `RoleMapping`;
+/*!50001 DROP VIEW IF EXISTS `RoleMapping`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `RoleMapping` AS SELECT
+ 1 AS `id`,
+ 1 AS `principalType`,
+ 1 AS `principalId`,
+ 1 AS `roleId`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `Route`
+--
+
+DROP TABLE IF EXISTS `Route`;
+/*!50001 DROP VIEW IF EXISTS `Route`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `Route` AS SELECT
+ 1 AS `id`,
+ 1 AS `date`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `State`
+--
+
+DROP TABLE IF EXISTS `State`;
+/*!50001 DROP VIEW IF EXISTS `State`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `State` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `order`,
+ 1 AS `alertLevel`,
+ 1 AS `code`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `Ticket`
+--
+
+DROP TABLE IF EXISTS `Ticket`;
+/*!50001 DROP VIEW IF EXISTS `Ticket`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `Ticket` AS SELECT
+ 1 AS `id`,
+ 1 AS `agencyFk`,
+ 1 AS `employeeFk`,
+ 1 AS `date`,
+ 1 AS `hour`,
+ 1 AS `clientFk`,
+ 1 AS `addressFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `TicketState`
+--
+
+DROP TABLE IF EXISTS `TicketState`;
+/*!50001 DROP VIEW IF EXISTS `TicketState`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `TicketState` AS SELECT
+ 1 AS `id`,
+ 1 AS `ticketFk`,
+ 1 AS `stateFk`,
+ 1 AS `employeeFk`,
+ 1 AS `updated`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `Vehicle`
+--
+
+DROP TABLE IF EXISTS `Vehicle`;
+/*!50001 DROP VIEW IF EXISTS `Vehicle`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `Vehicle` AS SELECT
+ 1 AS `id`,
+ 1 AS `numberPlate`,
+ 1 AS `tradeMark`,
+ 1 AS `model`,
+ 1 AS `companyFk`,
+ 1 AS `warehouseFk`,
+ 1 AS `description`,
+ 1 AS `m3`,
+ 1 AS `isActive`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `Warehouse`
+--
+
+DROP TABLE IF EXISTS `Warehouse`;
+/*!50001 DROP VIEW IF EXISTS `Warehouse`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `Warehouse` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `tpv`,
+ 1 AS `inventory`,
+ 1 AS `isManaged`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `WarehouseAlias`
+--
+
+DROP TABLE IF EXISTS `WarehouseAlias`;
+/*!50001 DROP VIEW IF EXISTS `WarehouseAlias`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `WarehouseAlias` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `Worker`
+--
+
+DROP TABLE IF EXISTS `Worker`;
+/*!50001 DROP VIEW IF EXISTS `Worker`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `Worker` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `surname`,
+ 1 AS `userFk`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `Zone`
+--
+
+DROP TABLE IF EXISTS `Zone`;
+/*!50001 DROP VIEW IF EXISTS `Zone`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `Zone` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `printingOrder`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `user`
+--
+
+DROP TABLE IF EXISTS `user`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `user` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `realm` varchar(512) CHARACTER SET utf8 DEFAULT NULL,
+ `username` varchar(512) CHARACTER SET utf8 DEFAULT NULL,
+ `password` varchar(512) CHARACTER SET utf8 NOT NULL,
+ `email` varchar(512) CHARACTER SET utf8 NOT NULL,
+ `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;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping routines for database 'salix'
+--
+/*!50003 DROP PROCEDURE IF EXISTS `production_control_source` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `production_control_source`(IN idWarehouse INT, IN scopeDays TINYINT)
+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 ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Current Database: `bs`
+--
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `bs` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */;
+
+USE `bs`;
+
+--
+-- Temporary view structure for view `VentasPorCliente`
+--
+
+DROP TABLE IF EXISTS `VentasPorCliente`;
+/*!50001 DROP VIEW IF EXISTS `VentasPorCliente`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `VentasPorCliente` AS SELECT
+ 1 AS `Id_Cliente`,
+ 1 AS `VentaBasica`,
+ 1 AS `year`,
+ 1 AS `month`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `bancos_evolution`
+--
+
+DROP TABLE IF EXISTS `bancos_evolution`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `bancos_evolution` (
+ `Fecha` date NOT NULL,
+ `Id_Banco` int(11) NOT NULL,
+ `saldo` double NOT NULL DEFAULT '0',
+ `quilla` double NOT NULL DEFAULT '0',
+ `deuda` double NOT NULL DEFAULT '0',
+ `liquidez` double NOT NULL DEFAULT '0',
+ `disponibilidad ajena` double NOT NULL DEFAULT '0',
+ `saldo_aux` double NOT NULL DEFAULT '0' COMMENT 'Saldo auxiliar para el calculo de lo dispuesto en las polizas',
+ PRIMARY KEY (`Fecha`,`Id_Banco`),
+ KEY `fk_banco_evolution_idx` (`Id_Banco`),
+ CONSTRAINT `fk_banco_evolution` FOREIGN KEY (`Id_Banco`) REFERENCES `vn2008`.`Bancos` (`Id_Banco`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Almacena los saldos bancarios';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `carteras`
+--
+
+DROP TABLE IF EXISTS `carteras`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `carteras` (
+ `CodigoTrabajador` varchar(3) CHARACTER SET latin1 NOT NULL,
+ `Año` int(11) NOT NULL,
+ `Mes` int(11) NOT NULL,
+ `Peso` decimal(10,2) DEFAULT NULL,
+ PRIMARY KEY (`CodigoTrabajador`,`Año`,`Mes`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `compradores`
+--
+
+DROP TABLE IF EXISTS `compradores`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `compradores` (
+ `Id_Trabajador` int(11) NOT NULL,
+ `año` int(4) NOT NULL,
+ `semana` int(2) NOT NULL,
+ `importe` decimal(10,2) DEFAULT NULL,
+ `comision` decimal(10,2) DEFAULT NULL,
+ PRIMARY KEY (`Id_Trabajador`,`año`,`semana`),
+ CONSTRAINT `comprador_trabajador` FOREIGN KEY (`Id_Trabajador`) REFERENCES `vn2008`.`Trabajadores` (`Id_Trabajador`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `compradores_evolution`
+--
+
+DROP TABLE IF EXISTS `compradores_evolution`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `compradores_evolution` (
+ `Id_Trabajador` int(11) NOT NULL,
+ `fecha` date NOT NULL,
+ `importe` decimal(10,2) DEFAULT NULL,
+ PRIMARY KEY (`Id_Trabajador`,`fecha`),
+ CONSTRAINT `evo_trabajador` FOREIGN KEY (`Id_Trabajador`) REFERENCES `vn2008`.`Trabajadores` (`Id_Trabajador`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `experienceIberflora2016`
+--
+
+DROP TABLE IF EXISTS `experienceIberflora2016`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `experienceIberflora2016` (
+ `Id_Cliente` int(11) NOT NULL,
+ `isVisitor` tinyint(4) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`Id_Cliente`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Lista de clientes que participan en el estudio sobre la mejora del consumo tras la visita a las instalaciones de Silla';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `fondo_maniobra`
+--
+
+DROP TABLE IF EXISTS `fondo_maniobra`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `fondo_maniobra` (
+ `fecha` date NOT NULL,
+ `fondo` double DEFAULT NULL,
+ `clientes_facturas` double DEFAULT NULL,
+ `clientes_cobros` double DEFAULT NULL,
+ `proveedores_facturas` double DEFAULT NULL,
+ `proveedores_pagos` double DEFAULT NULL,
+ `fondo_medio` double DEFAULT NULL,
+ PRIMARY KEY (`fecha`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `manaCustomer`
+--
+
+DROP TABLE IF EXISTS `manaCustomer`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `manaCustomer` (
+ `Id_Cliente` int(11) NOT NULL,
+ `Mana` decimal(10,0) NOT NULL DEFAULT '0',
+ `dated` date NOT NULL,
+ PRIMARY KEY (`Id_Cliente`,`dated`),
+ CONSTRAINT `cliente_fk` FOREIGN KEY (`Id_Cliente`) REFERENCES `vn2008`.`Clientes` (`id_cliente`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `mana_spellers`
+--
+
+DROP TABLE IF EXISTS `mana_spellers`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `mana_spellers` (
+ `Id_Trabajador` int(11) NOT NULL,
+ `size` int(11) NOT NULL DEFAULT '300',
+ `used` int(11) NOT NULL DEFAULT '0',
+ `prices_modifier_rate` double NOT NULL DEFAULT '0',
+ `prices_modifier_activated` tinyint(1) NOT NULL DEFAULT '1',
+ PRIMARY KEY (`Id_Trabajador`),
+ KEY `fk_mana_spellers_Trabajadores_idx` (`Id_Trabajador`),
+ CONSTRAINT `fk_mana_spellers_Trabajadores` FOREIGN KEY (`Id_Trabajador`) REFERENCES `vn2008`.`Trabajadores` (`Id_Trabajador`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+ALTER DATABASE `bs` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `bs`.`mana_spellers_AFTER_INSERT` AFTER INSERT ON `mana_spellers` FOR EACH ROW
+BEGIN
+
+
+ REPLACE vn2008.Permisos(Id_Grupo, Id_Trabajador)
+ VALUES(6, NEW.Id_Trabajador);
+
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `bs` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+
+--
+-- Table structure for table `nightTask`
+--
+
+DROP TABLE IF EXISTS `nightTask`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `nightTask` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `started` datetime DEFAULT NULL,
+ `finished` datetime DEFAULT NULL,
+ `order` int(11) DEFAULT NULL,
+ `schema` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `procedure` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `bs`.`nightTaskBeforeInsert` BEFORE INSERT ON `nightTask` FOR EACH ROW
+BEGIN
+
+ IF NOT (NEW.`schema`REGEXP '^[0-9a-zA-Z_]+$') OR NOT (NEW.`procedure`REGEXP '^[0-9a-zA-Z_]+$') THEN
+
+ CALL util.throw('ONLY_ALPHANUMERICS_ALLOWED');
+
+ END IF;
+
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `bs`.`nightTaskBeforeUpdate` BEFORE UPDATE ON `nightTask` FOR EACH ROW
+BEGIN
+
+ IF NOT (NEW.`schema`REGEXP '^[0-9a-zA-Z_]+$') OR NOT (NEW.`procedure`REGEXP '^[0-9a-zA-Z_]+$') THEN
+
+ CALL util.throw('ONLY_ALPHANUMERICS_ALLOWED');
+
+ END IF;
+
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Temporary view structure for view `v_ventas`
+--
+
+DROP TABLE IF EXISTS `v_ventas`;
+/*!50001 DROP VIEW IF EXISTS `v_ventas`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `v_ventas` AS SELECT
+ 1 AS `importe`,
+ 1 AS `recargo`,
+ 1 AS `year`,
+ 1 AS `month`,
+ 1 AS `week`,
+ 1 AS `day`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `vendedores`
+--
+
+DROP TABLE IF EXISTS `vendedores`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `vendedores` (
+ `Id_Trabajador` int(11) NOT NULL,
+ `año` int(4) NOT NULL,
+ `mes` int(2) NOT NULL,
+ `importe` decimal(10,2) DEFAULT NULL,
+ `comision` decimal(10,2) DEFAULT NULL,
+ `comisionArrendada` decimal(10,2) DEFAULT NULL COMMENT 'comision proveniente de clientes que han sido donados. Ver tabla Clientes_cedidos',
+ `comisionCedida` decimal(10,2) DEFAULT NULL COMMENT 'comision generada por los clientes que han sido donados. Ver tabla Clientes_cedidos',
+ PRIMARY KEY (`Id_Trabajador`,`año`,`mes`),
+ CONSTRAINT `trabajador_trabajador` FOREIGN KEY (`Id_Trabajador`) REFERENCES `vn2008`.`Trabajadores` (`Id_Trabajador`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `vendedores_evolution`
+--
+
+DROP TABLE IF EXISTS `vendedores_evolution`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `vendedores_evolution` (
+ `Id_Trabajador` int(11) NOT NULL,
+ `fecha` date NOT NULL,
+ `importe` decimal(10,2) DEFAULT NULL,
+ PRIMARY KEY (`Id_Trabajador`,`fecha`),
+ CONSTRAINT `evo_vendedor_trabajador` FOREIGN KEY (`Id_Trabajador`) REFERENCES `vn2008`.`Trabajadores` (`Id_Trabajador`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `ventas`
+--
+
+DROP TABLE IF EXISTS `ventas`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `ventas` (
+ `Id_Movimiento` int(11) NOT NULL,
+ `importe` decimal(10,3) NOT NULL DEFAULT '0.000',
+ `recargo` decimal(10,3) NOT NULL DEFAULT '0.000',
+ `fecha` date NOT NULL,
+ `tipo_id` smallint(5) unsigned NOT NULL,
+ `Id_Cliente` int(11) NOT NULL DEFAULT '1',
+ `empresa_id` smallint(5) unsigned NOT NULL DEFAULT '442',
+ PRIMARY KEY (`Id_Movimiento`),
+ KEY `tip_to_tip_idx` (`tipo_id`),
+ KEY `clientes_bs_ventas_idx` (`Id_Cliente`),
+ KEY `empresa_bs_ventas_idx` (`empresa_id`),
+ KEY `fecha_bs` (`fecha`),
+ CONSTRAINT `clientes_bs_ventas` FOREIGN KEY (`Id_Cliente`) REFERENCES `vn2008`.`Clientes` (`id_cliente`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `empresa_bs_ventas` FOREIGN KEY (`empresa_id`) REFERENCES `vn2008`.`empresa` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `mov_to_mov` FOREIGN KEY (`Id_Movimiento`) REFERENCES `vn2008`.`Movimientos` (`Id_Movimiento`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `tip_to_tip` FOREIGN KEY (`tipo_id`) REFERENCES `vn2008`.`Tipos` (`tipo_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `ventas_contables`
+--
+
+DROP TABLE IF EXISTS `ventas_contables`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `ventas_contables` (
+ `year` int(4) NOT NULL,
+ `month` int(2) NOT NULL,
+ `venta` decimal(10,2) DEFAULT NULL,
+ `grupo` int(1) NOT NULL,
+ `reino_id` int(10) unsigned NOT NULL,
+ `tipo_id` smallint(5) unsigned NOT NULL,
+ `empresa_id` int(4) NOT NULL,
+ `gasto` varchar(10) CHARACTER SET latin1 NOT NULL,
+ PRIMARY KEY (`year`,`month`,`grupo`,`reino_id`,`tipo_id`,`empresa_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping routines for database 'bs'
+--
+/*!50003 DROP PROCEDURE IF EXISTS `bancos_evolution_add` */;
+ALTER DATABASE `bs` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `bancos_evolution_add`()
+BEGIN
+/*
+
+Inserta en la tabla bancos_evolution los saldos acumulados
+
+*/
+
+
+DECLARE vCurrentDate DATE;
+DECLARE vStartingDate DATE DEFAULT '2015-01-01';
+DECLARE vMaxDate DATE DEFAULT TIMESTAMPADD(MONTH, 2, CURDATE());
+
+SELECT max(Fecha)
+ INTO vStartingDate
+ FROM bs.bancos_evolution
+ WHERE Fecha > '2015-01-01';
+
+DELETE FROM bs.bancos_evolution
+WHERE Fecha > vStartingDate;
+
+SET vCurrentDate = vStartingDate;
+
+
+
+
+ WHILE vCurrentDate < vMaxDate DO
+
+ IF day(vCurrentDate) mod 28 = 0 then
+ SELECT vCurrentDate;
+ end if;
+
+
+ REPLACE bs.bancos_evolution( Fecha
+ ,Id_Banco
+ ,saldo)
+
+ SELECT vCurrentDate
+ , Id_Banco
+ , sum(saldo)
+
+ FROM
+ (
+
+ SELECT Id_Banco
+ ,saldo_aux as saldo
+ FROM bs.bancos_evolution
+
+ WHERE Fecha = TIMESTAMPADD(DAY,-1,vCurrentDate) -- los saldos acumulados del dia anterior
+
+ 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
+ WHERE cash IN (0,3)
+ AND Cajafecha = vCurrentDate
+ AND (Serie = 'MB' OR cash = 3)
+ GROUP BY Id_Banco
+
+ UNION ALL
+
+ SELECT id_banco, - importe -- pagos futuros
+ FROM vn2008.pago
+ WHERE fecha = vCurrentDate
+ AND fecha >= CURDATE()
+ AND NOT conciliado
+
+ UNION ALL
+
+ SELECT Id_Banco, Entregado -- cobros futuros
+ FROM vn2008.Recibos
+ WHERE Fechacobro = vCurrentDate
+ AND Fechacobro > CURDATE()
+
+ UNION ALL
+
+ SELECT sp.Id_Banco, Importe -- saldos de la tabla prevision
+ FROM vn2008.Saldos_Prevision sp
+ JOIN vn2008.Bancos b using(Id_Banco)
+ WHERE cash IN (0,3)
+ AND Fecha = vCurrentDate
+
+
+
+ )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
+ (
+ SELECT Id_Banco, - sum(importe) as quilla
+ FROM vn2008.Bancos_poliza
+ WHERE vCurrentDate between apertura AND IFNULL(cierre, vCurrentDate)
+ GROUP BY Id_Banco
+ ) sub using(Id_Banco)
+ SET be.quilla = sub.quilla
+ WHERE be.Fecha = vCurrentDate;
+
+
+ SET vCurrentDate = TIMESTAMPADD(DAY,1,vCurrentDate);
+
+ END WHILE;
+
+
+ -- Deuda
+ UPDATE bs.bancos_evolution be
+ JOIN vn2008.Bancos using(Id_Banco)
+ SET be.deuda = IF(cash = 3, be.saldo_aux, 0)
+ , be.saldo = IF(cash = 3, 0, be.saldo_aux)
+ 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 ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `bs` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `campaignComparative` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `campaignComparative`(vDateFrom DATE, vDateTo DATE)
+BEGIN
+ SELECT
+ workerName,
+ id,
+ name,
+ CAST(SUM(previousAmmount) AS DECIMAL(10, 0)) AS previousAmmount,
+ CAST(SUM(currentAmmount) AS DECIMAL(10, 0)) AS currentAmmount
+ FROM (
+ (SELECT
+ CONCAT(w.firstname, ' ', w.name) AS workerName,
+ c.id,
+ c.name,
+ SUM(v.importe) AS previousAmmount,
+ 0 currentAmmount
+ FROM bs.ventas v
+ INNER JOIN vn.`client` c ON v.Id_Cliente = c.id
+ INNER JOIN vn.worker w ON c.workerFk = w.id
+ WHERE v.fecha BETWEEN DATE_ADD(vDateFrom, INTERVAL - 1 YEAR)
+ AND DATE_ADD(vDateTo, INTERVAL - 1 YEAR)
+ GROUP BY w.id, v.Id_Cliente)
+ UNION ALL
+ (SELECT
+ CONCAT(w.firstname, ' ', w.name) AS workerName,
+ c.id,
+ c.name,
+ 0 AS previousAmmount,
+ SUM(s.quantity * s.price) AS currentAmmount
+ FROM vn.sale s
+ JOIN vn.ticket t ON t.id = s.ticketFk
+ JOIN vn.client c ON c.id = t.clientFk
+ JOIN vn.worker w ON c.workerFk = w.id
+ WHERE t.shipped BETWEEN vDateFrom
+ AND vDateTo
+ GROUP BY w.id, c.id)
+ ) comparative
+ GROUP BY workerName, id
+ HAVING (previousAmmount <> 0 OR currentAmmount <> 0)
+ ORDER BY workerName, id;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `carteras_add` */;
+ALTER DATABASE `bs` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `carteras_add`()
+BEGIN
+
+DELETE FROM bs.carteras
+WHERE Año >= YEAR(CURDATE()) - 1;
+
+INSERT INTO bs.carteras(Año,Mes,CodigoTrabajador,Peso)
+SELECT year as Año, month as Mes, CodigoTrabajador, sum(importe) as Peso
+FROM vn2008.time t
+JOIN bs.ventas v on t.date = v.fecha
+JOIN vn2008.Clientes c on c.Id_Cliente = v.Id_Cliente
+JOIN vn2008.Trabajadores tr on tr.Id_Trabajador = c.Id_Trabajador
+WHERE t.year >= YEAR(CURDATE()) - 1
+GROUP BY CodigoTrabajador, Año, Mes;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `bs` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `comercialesCompleto` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `comercialesCompleto`(IN vWorker INT)
+BEGIN
+
+SELECT
+ c.Id_Cliente id_cliente,
+ c.calidad,
+ c.Cliente cliente,
+ cr.recobro * 100 tarifa,
+ c.Telefono telefono,
+ c.movil,
+ c.POBLACION poblacion,
+ p.`name` provincia,
+ vn2008.red(f.futur) futur,
+ c.Credito credito,
+ pm.`name` forma_pago,
+ vn2008.red(c365 / 12) consumo_medio365,
+ vn2008.red(c365) consumo365,
+ vn2008.red(CmLy.peso) peso_mes_año_pasado,
+ vn2008.red(CmLy.peso * 1.19) objetivo,
+ tr.CodigoTrabajador,
+ vn2008.red(mes_actual.consumo) consumoMes,
+ vn2008.red(IFNULL(mes_actual.consumo, 0) - IFNULL(CmLy.peso * 1.19, 0)) como_lo_llevo,
+ DATE(LastTicket) ultimo_ticket,
+ dead.muerto,
+ g.Greuge,
+ cr.recobro
+FROM
+ vn2008.Clientes c
+ LEFT JOIN
+ (SELECT Id_Cliente, Greuge
+ FROM bi.Greuge_Evolution
+ WHERE Fecha = (SELECT MAX(Fecha) FROM bi.Greuge_Evolution)
+ ) g ON g.Id_Cliente = c.Id_Cliente
+ LEFT JOIN
+ vn2008.province p ON p.province_id = c.province_id
+ JOIN
+ vn2008.pay_met pm ON pm.id = c.pay_met_id
+ LEFT JOIN
+ vn2008.Trabajadores tr ON c.Id_Trabajador = tr.Id_Trabajador
+ LEFT JOIN
+ bi.claims_ratio cr on cr.Id_Cliente = c.Id_Cliente
+ LEFT JOIN
+ (SELECT
+ v.Id_Cliente, SUM(importe) c365
+ FROM
+ bs.ventas v
+ INNER JOIN vn2008.Clientes c USING (Id_Cliente)
+ LEFT JOIN vn2008.Trabajadores tr ON c.Id_Trabajador = tr.Id_Trabajador
+ WHERE
+ (c.Id_Trabajador = vWorker OR tr.boss = vWorker)
+ AND v.fecha BETWEEN TIMESTAMPADD(YEAR, - 1, CURDATE()) AND CURDATE()
+ GROUP BY v.Id_Cliente) c365 ON c365.Id_Cliente = c.Id_Cliente
+ LEFT JOIN
+ (SELECT
+ Id_Cliente, SUM(importe) consumo
+ FROM
+ bs.ventas v
+ INNER JOIN vn2008.Clientes c USING (Id_Cliente)
+ LEFT JOIN vn2008.Trabajadores tr ON c.Id_Trabajador = tr.Id_Trabajador
+ WHERE
+ (c.Id_Trabajador = vWorker OR tr.boss = vWorker)
+ AND (v.fecha BETWEEN TIMESTAMPADD(DAY, - DAY(CURDATE()) + 1, CURDATE()) AND CURDATE() - 1)
+ GROUP BY Id_Cliente) mes_actual ON mes_actual.Id_Cliente = c.Id_Cliente
+ LEFT JOIN
+ (SELECT
+ t.Id_Cliente,
+ SUM(m.preu * m.Cantidad * (1 - m.Descuento / 100)) futur
+ FROM
+ vn2008.Tickets t
+ JOIN vn2008.Clientes c ON c.Id_Cliente = t.Id_Cliente
+ JOIN vn2008.Movimientos m ON m.Id_Ticket = t.Id_Ticket
+ LEFT JOIN vn2008.Trabajadores tr ON c.Id_Trabajador = tr.Id_Trabajador
+ WHERE
+ (c.Id_Trabajador = vWorker OR tr.boss = vWorker)
+ AND DATE(Fecha) BETWEEN CURDATE() AND LAST_DAY(CURDATE())
+ GROUP BY Id_Cliente) f ON c.Id_Cliente = f.Id_Cliente
+ LEFT JOIN
+ (SELECT
+ MAX(t.Fecha) LastTicket, c.Id_Cliente
+ FROM
+ vn2008.Tickets t
+ JOIN vn2008.Clientes c ON c.Id_cliente = t.Id_Cliente
+ LEFT JOIN vn2008.Trabajadores tr ON c.Id_Trabajador = tr.Id_Trabajador
+
+ WHERE
+ (c.Id_Trabajador = vWorker OR tr.boss = vWorker)
+ GROUP BY t.Id_Cliente) LastTicket ON LastTicket.Id_Cliente = c.Id_Cliente
+ LEFT JOIN
+ (SELECT
+ SUM(importe) peso, c.Id_Cliente
+ FROM
+ bs.ventas v
+ JOIN vn2008.Clientes c ON c.Id_Cliente = v.Id_Cliente
+ LEFT JOIN vn2008.Trabajadores tr ON c.Id_Trabajador = tr.Id_Trabajador
+ WHERE
+ MONTH(fecha) = MONTH(CURDATE())
+ AND YEAR(fecha) = YEAR(CURDATE()) - 1
+ AND (c.Id_Trabajador = vWorker OR tr.boss = vWorker)
+ GROUP BY c.Id_Cliente) CmLy ON CmLy.Id_Cliente = c.Id_Cliente
+ LEFT JOIN
+ (SELECT
+ c.Id_Cliente,
+ IF(MAX(Fecha) < DATE_FORMAT(TIMESTAMPADD(MONTH, - 1, CURDATE()), '%Y- %m-01'), TRUE, FALSE) muerto
+ FROM
+ vn2008.Facturas f
+ JOIN vn2008.Clientes c ON c.Id_cliente = f.Id_Cliente
+ LEFT JOIN vn2008.Trabajadores tr ON c.Id_Trabajador = tr.Id_Trabajador
+ WHERE
+ (c.Id_Trabajador = vWorker OR tr.boss = vWorker)
+ GROUP BY Id_Cliente) dead ON dead.Id_Cliente = c.Id_Cliente
+WHERE
+ (c.Id_Trabajador = vWorker OR tr.boss = vWorker);
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `compradores_add` */;
+ALTER DATABASE `bs` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `compradores_add`(IN intYEAR INT, IN intWEEK_START INT, IN intWEEK_END INT)
+BEGIN
+
+REPLACE bs.compradores
+
+SELECT tp.Id_Trabajador
+ , intYEAR as año
+ , tm.week as semana
+ , sum(importe) as importe
+ , 0 as comision
+
+FROM bs.ventas v
+JOIN vn2008.time tm on tm.date = v.fecha
+JOIN vn2008.Tipos tp using(tipo_id)
+WHERE tm.year = intYEAR and tm.week between intWEEK_START and intWEEK_END
+AND reino_id != 6
+GROUP BY tp.Id_Trabajador, tm.week;
+
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `bs` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `compradores_evolution_add` */;
+ALTER DATABASE `bs` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+
+SELECT TIMESTAMPADD(DAY,1,MAX(fecha)) INTO datFEC FROM bs.compradores_evolution;
+
+ WHILE datFEC < CURDATE() DO
+
+ SELECT datFEC;
+
+ REPLACE bs.compradores_evolution( Id_Trabajador
+ , fecha
+ , importe)
+
+ SELECT Id_Trabajador
+ , datFEC as fecha
+ , sum(importe) as importe
+
+ FROM
+ (
+
+ SELECT Id_Trabajador
+ , importe
+ FROM bs.compradores_evolution
+ WHERE fecha = TIMESTAMPADD(DAY,-1,datFEC) -- las ventas acumuladas del dia anterior
+
+ 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
+ FROM bs.ventas v
+ JOIN vn2008.Tipos tp using(tipo_id)
+ WHERE fecha IN (datFEC, TIMESTAMPADD(DAY,-365,datFEC))
+ AND reino_id != 6
+
+ )sub
+ GROUP BY Id_Trabajador;
+
+
+
+
+ SET datFEC = TIMESTAMPADD(DAY,1,datFEC);
+
+ END WHILE;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `bs` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `fondo_evolution_add` */;
+ALTER DATABASE `bs` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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';
+
+
+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;
+ end if;
+
+
+ REPLACE bs.fondo_maniobra(Fecha, clientes_facturas, clientes_cobros,proveedores_facturas,proveedores_pagos, fondo)
+ SELECT datFEC as Fecha, Facturas, Cobros,Recibidas,Pagos, Facturas + Cobros + Recibidas + Pagos
+ FROM
+ (
+ SELECT Sum(Facturas.Importe) AS Facturas
+ FROM vn2008.Facturas
+ INNER JOIN vn2008.Clientes ON Facturas.Id_Cliente = Clientes.Id_cliente
+ WHERE Clientes.`real`
+ AND empresa_id <>1381
+ AND Fecha between '2011-01-01' and datFEC) fac
+ JOIN
+ (
+ SELECT - Sum(Entregado) AS Cobros
+ FROM vn2008.Recibos
+ INNER JOIN vn2008.Clientes ON Recibos.Id_Cliente = Clientes.Id_cliente
+ WHERE Clientes.`real`
+ AND empresa_id <> 1381
+ AND Fechacobro Between '2011-01-01' and datFEC) cob
+ JOIN
+ (
+ SELECT - Sum(cantidad) AS Recibidas
+ FROM vn2008.recibida
+ INNER JOIN vn2008.recibida_vencimiento ON recibida.id = recibida_vencimiento.recibida_id
+ WHERE empresa_id <> 1381
+ AND recibida.fecha Between '2015-01-01' and datFEC) rec
+ JOIN
+ (
+ SELECT Sum(importe) AS Pagos
+ FROM vn2008.pago
+ WHERE empresa_id <>1381 AND pago.fecha Between '2015-01-01' and datFEC) pag;
+
+
+
+ UPDATE bs.fondo_maniobra
+ JOIN
+ (SELECT avg(fondo) as media
+ FROM bs.fondo_maniobra
+ WHERE fecha <= datFEC) sub
+ SET fondo_medio = media
+ WHERE fecha = datFEC;
+
+
+ SET datFEC = TIMESTAMPADD(DAY,1,datFEC);
+
+ END WHILE;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `bs` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `manaCustomerFill_kk` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+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';
+DECLARE isDone BOOLEAN DEFAULT FALSE;
+
+DELETE FROM bs.manaCustomer;
+
+WHILE NOT isDone DO
+
+ SELECT TIMESTAMPADD(DAY,1,vToDated), TIMESTAMPADD(MONTH, 1, vToDated)
+ INTO vFromDated, vToDated;
+
+ IF vToDated >= CURDATE() THEN
+
+ SET vToDated = TIMESTAMPADD(SECOND,-1,CURDATE());
+ SET isDone = TRUE;
+
+ END IF;
+
+ INSERT INTO bs.manaCustomer(Id_Cliente, Mana)
+ SELECT Id_Cliente, newMana
+ FROM
+ (SELECT cs.Id_Cliente, - sum(Cantidad * Valor) as newMana
+ FROM vn2008.Tickets t
+ 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á
+ AND Fecha BETWEEN vFromDated AND vToDated
+ GROUP BY cs.Id_Cliente
+ ) t1
+ ON DUPLICATE KEY UPDATE Mana = Mana + newMana;
+
+ SELECT vFromDated, vToDated;
+
+END WHILE;
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `manaCustomerUpdate` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `manaCustomerUpdate`()
+BEGIN
+DECLARE vToDated DATE;
+ DECLARE vFromDated DATE;
+ DECLARE vForDeleteDated DATE;
+ DECLARE vManaId INT DEFAULT 37;
+ DECLARE vManaAutoId INT DEFAULT 39;
+ DECLARE vManaBankId INT DEFAULT 66;
+ DECLARE vManaGreugeTypeId INT DEFAULT 3;
+
+ SELECT IFNULL(max(dated), '2016-01-01')
+ INTO vFromDated
+ FROM bs.manaCustomer;
+
+ WHILE timestampadd(week,1,vFromDated) < CURDATE() DO
+
+ SELECT
+ timestampadd(week,1,vFromDated),
+ timestampadd(week,-4,vFromDated)
+ INTO
+ vToDated,
+ vForDeleteDated;
+
+ DELETE FROM bs.manaCustomer
+ WHERE dated <= vForDeleteDated;
+
+
+ INSERT INTO bs.manaCustomer(Id_Cliente, Mana, dated)
+
+ SELECT
+ Id_Cliente,
+ cast(sum(mana) as decimal(10,2)) as mana,
+ vToDated as dated
+ FROM
+
+ (
+ SELECT cs.Id_Cliente, Cantidad * Valor as mana
+ FROM vn2008.Tickets t
+ JOIN vn2008.Consignatarios cs using(Id_Consigna)
+ JOIN vn2008.Movimientos m on m.Id_Ticket = t.Id_Ticket
+ JOIN vn2008.Movimientos_componentes mc on mc.Id_Movimiento = m.Id_Movimiento
+ WHERE Id_Componente IN (vManaAutoId, vManaId)
+ AND Fecha > vFromDated
+ AND Fecha <= vToDated
+
+
+ UNION ALL
+
+ SELECT r.Id_Cliente, - Entregado
+ FROM vn2008.Recibos r
+ WHERE Id_Banco = vManaBankId
+ AND Fechacobro > vFromDated
+ AND Fechacobro <= vToDated
+
+ UNION ALL
+
+ SELECT g.Id_Cliente, g.Importe
+ FROM vn2008.Greuges g
+ WHERE Greuges_type_id = vManaGreugeTypeId
+ AND Fecha > vFromDated
+ AND Fecha <= vToDated
+
+ UNION ALL
+
+ SELECT Id_Cliente, mana
+ FROM bs.manaCustomer
+ WHERE dated = vFromDated
+ ) sub
+
+ GROUP BY Id_Cliente
+ HAVING Id_Cliente;
+
+ SET vFromDated = vToDated;
+
+ END WHILE;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `mana_price_modifier_update` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `mana_price_modifier_update`()
+BEGIN
+
+INSERT INTO vn2008.daily_task_log(consulta)
+VALUES ('bs.mana_price_modifier_update');
+
+UPDATE mana_spellers
+JOIN
+ (SELECT Id_Trabajador, floor(sum(importe)/12) as pesoCarteraMensual
+ FROM bs.vendedores v
+ WHERE año * 100 + mes >= (year(curdate()) -1) * 100 + month(curdate())
+ GROUP BY Id_Trabajador
+ ) ultimo_año_de_ventas using(Id_Trabajador)
+SET prices_modifier_rate = GREATEST(-0.05,LEAST(0.05,round(- used/pesoCarteraMensual,3))) ;
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `nightly_tasks` */;
+ALTER DATABASE `bs` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `nightly_tasks`()
+BEGIN
+
+DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN
+ INSERT INTO vn2008.mail SET `to` = 'informatica@verdnatura.es', subject = 'bs.nightly_tasks', `text` = CONCAT('ERROR ', @errno, ' (', @sqlstate, '): ', @text);
+ INSERT INTO vn2008.mail SET `to` = 'pako@verdnatura.es', subject = 'bs.nightly_tasks', `text` = CONCAT('ERROR ', @errno, ' (', @sqlstate, '): ', @text);
+END;
+
+ insert into vn2008.daily_task_log(consulta) VALUES('arranca el event bs.nightly_tasks');
+
+ call bancos_evolution_add;
+
+ call fondo_evolution_add;
+
+ call ventas_add(timestampadd(month,-1,curdate()),curdate());
+
+ call ventas_contables_add(YEAR(TIMESTAMPADD(MONTH,-1,CURDATE())), MONTH(TIMESTAMPADD(MONTH,-1,CURDATE())));
+
+ call bs.vendedores_add(year(curdate()), month(curdate()));
+
+ call bs.vendedores_add(year(timestampadd(month,-1,curdate()))
+ , month(timestampadd(month,-1,curdate()))
+ );
+
+ call carteras_add;
+
+ call vn2008.mana_inventory_requery;
+
+ call bs.mana_price_modifier_update;
+
+ call bs.manaCustomerUpdate;
+
+ insert into vn2008.daily_task_log(consulta) VALUES('finalitza el event bs.nightly_tasks');
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `bs` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `nightTaskLauncher` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `nightTaskLauncher`()
+BEGIN
+
+ DECLARE done BOOL DEFAULT FALSE;
+ DECLARE vSchema VARCHAR(255);
+ DECLARE vProcedure VARCHAR(255);
+ DECLARE vId INT;
+
+ DECLARE rs CURSOR FOR
+ SELECT id,`schema`, `procedure`
+ FROM bs.nightTask
+ WHERE IFNULL(finished,0) <= CURDATE()
+ ORDER BY `order`;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
+
+ OPEN rs;
+
+ FETCH rs INTO vId, vSchema, vProcedure;
+
+ WHILE NOT done DO
+
+ SELECT vId, vSchema, vProcedure;
+
+ UPDATE bs.nightTask
+ SET started = now()
+ WHERE id = vId;
+
+ CALL vn2008.sql_query (sql_printf('CALL %s.%s',vSchema, vProcedure));
+
+ UPDATE bs.nightTask
+ SET finished = now()
+ WHERE id = vId;
+
+ FETCH rs INTO vId, vSchema, vProcedure;
+
+ END WHILE;
+
+ CLOSE rs;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `nocturnEvent_Tickets_Bionizar` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+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());
+
+ INSERT INTO vn2008.daily_task_log(consulta) VALUES('Comença la rebionització de tickets ');
+
+WHILE MyDate < CURDATE() DO
+
+ CALL `vn2008`.`bionic_tickets_range_bionizar`(MyDate, MyDate);
+
+ SET MyDate = timestampadd(DAY,1,MyDate);
+
+ SELECT MyDate;
+
+END WHILE;
+
+ INSERT INTO vn2008.daily_task_log(consulta) VALUES('finalitza la rebionització de tickets ');
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `vendedores_add` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `vendedores_add`(IN intYEAR INT, IN intMONTH INT)
+BEGIN
+
+REPLACE vendedores
+
+SELECT c.Id_Trabajador
+ , intYEAR
+ , intMONTH
+ , sum(importe) as importe
+ , sum(importe) * 0.029 as comision
+ , 0 as comisionCedida
+ , 0 as comisionArrendada
+
+FROM ventas v
+JOIN vn2008.Clientes c on v.Id_Cliente = c.Id_Cliente
+JOIN vn2008.time on time.date = v.fecha
+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
+(
+SELECT cc.Id_Trabajador_old as Id_Trabajador
+ , sum(importe) * 0.029 * comision_old as cedido
+
+FROM ventas v
+JOIN vn2008.Clientes c on v.Id_Cliente = c.Id_Cliente
+JOIN vn2008.Clientes_cedidos cc on cc.Id_Cliente = c.Id_Cliente
+JOIN vn2008.time on time.date = v.fecha
+WHERE time.year = intYEAR and time.month = intMONTH
+AND c.Id_Trabajador is not null
+GROUP BY cc.Id_Trabajador_old
+) sub using(Id_Trabajador)
+SET comisionCedida = cedido, comision = comision - cedido
+WHERE año = intYEAR and mes = intMONTH;
+
+-- Ventas arrendadas
+
+UPDATE vendedores
+JOIN
+(
+SELECT cc.Id_Trabajador_new as Id_Trabajador
+ , sum(importe) * 0.029 * comision_new as arrendada
+
+FROM ventas v
+JOIN vn2008.Clientes c on v.Id_Cliente = c.Id_Cliente
+JOIN vn2008.Clientes_cedidos cc on cc.Id_Cliente = c.Id_Cliente AND v.fecha between datSTART and datEND
+JOIN vn2008.time on time.date = v.fecha
+WHERE time.year = intYEAR and time.month = intMONTH
+AND c.Id_Trabajador is not null
+GROUP BY cc.Id_Trabajador_new
+) sub using(Id_Trabajador)
+SET comisionArrendada = arrendada, comision = comision - arrendada
+WHERE año = intYEAR and mes = intMONTH;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `vendedores_add_launcher` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `vendedores_add_launcher`()
+BEGIN
+
+ call bs.vendedores_add(year(curdate()), month(curdate()));
+ call bs.vendedores_add(year(timestampadd(month,-1,curdate())), month(timestampadd(month,-1,curdate())));
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `vendedores_evolution_add` */;
+ALTER DATABASE `bs` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+
+SELECT TIMESTAMPADD(DAY,1,MAX(fecha)) INTO datFEC FROM bs.vendedores_evolution;
+
+ WHILE datFEC < CURDATE() DO
+
+ SELECT datFEC;
+
+ REPLACE bs.vendedores_evolution( Id_Trabajador
+ , fecha
+ , importe)
+
+ SELECT Id_Trabajador
+ , datFEC as fecha
+ , sum(importe) as importe
+
+ FROM
+ (
+
+ SELECT Id_Trabajador
+ , importe
+ FROM bs.vendedores_evolution
+ WHERE fecha = TIMESTAMPADD(DAY,-1,datFEC) -- las ventas acumuladas del dia anterior
+
+ 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
+ FROM bs.ventas v
+ JOIN vn2008.Movimientos m using(Id_Movimiento)
+ JOIN vn2008.Tickets t using(Id_Ticket)
+ JOIN vn2008.Consignatarios cs using(Id_Consigna)
+ JOIN vn2008.Clientes c on cs.Id_Cliente = c.Id_Cliente
+ JOIN vn2008.Tipos using(tipo_id)
+ WHERE v.fecha IN (datFEC, TIMESTAMPADD(DAY,-365,datFEC))
+ AND c.Id_Trabajador is not null
+ AND (Id_Article = 98 or Id_Article = 95 or reino_id != 6)
+ GROUP BY c.Id_Trabajador
+
+
+ )sub
+ GROUP BY Id_Trabajador;
+
+
+
+
+ SET datFEC = TIMESTAMPADD(DAY,1,datFEC);
+
+ END WHILE;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `bs` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `ventas_add` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ventas_add`(IN datSTART DATE, IN datEND DATE)
+BEGIN
+
+
+DECLARE vStartingPeriod INT;
+DECLARE vStartingDate DATETIME;
+DECLARE vEndingDate DATETIME;
+DECLARE TIPO_PATRIMONIAL INT DEFAULT 188;
+
+SET datEND = vn2008.dayend(datEND);
+SET vStartingDate = GREATEST('2015-10-01',datSTART);
+SET vEndingDate = vn2008.dayend(vStartingDate);
+
+DELETE FROM ventas
+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)
+ SELECT Id_Movimiento
+ , sum( IF(base, Cantidad * Valor, 0) ) as importe
+ , sum( IF(base, 0, Cantidad * Valor) ) as recargo
+ , vStartingDate
+ , a.tipo_id
+ , cs.Id_Cliente
+ , t.empresa_id
+ FROM vn2008.Movimientos_componentes mc
+ JOIN bi.tarifa_componentes tc using(Id_Componente)
+ JOIN bi.tarifa_componentes_series tcs using(tarifa_componentes_series_id)
+ JOIN vn2008.Movimientos m using(Id_Movimiento)
+ JOIN vn2008.Articles a using(Id_Article)
+ JOIN vn2008.Tipos tp using(tipo_id)
+ JOIN vn2008.reinos r on r.id = tp.reino_id
+ JOIN vn2008.Tickets t using(Id_Ticket)
+ JOIN vn2008.Consignatarios cs using(Id_Consigna)
+ JOIN vn2008.Clientes c on c.Id_Cliente = cs.Id_Cliente
+ JOIN vn2008.empresa e on e.id = empresa_id
+ WHERE t.Fecha between vStartingDate and vEndingDate
+ AND datEND >= '2015-10-01'
+ AND (
+ c.`Real` != 0
+ OR c.Razonsocial = 'MIRIAM FERRER TORIBIO'
+ OR c.Razonsocial = 'VERDNATURA COMPLEMENTOS'
+ )
+ AND Cantidad <> 0
+ AND a.tipo_id != TIPO_PATRIMONIAL
+ AND c.Id_Trabajador IS NOT NULL
+ AND m.Descuento <> 100
+ AND (m.Id_Article = 98 or m.Id_Article = 95 or r.mercancia != 0)
+ 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);
+
+ IF CURDATE() = '2017-02-28' THEN
+ SELECT vStartingDate;
+ END IF;
+
+END WHILE;
+
+
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ventas_add_launcher` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ventas_add_launcher`()
+BEGIN
+
+ call bs.ventas_add(timestampadd(week,-2,curdate()),curdate());
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ventas_contables_add` */;
+ALTER DATABASE `bs` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ WHERE year = vYear
+ AND month = vMonth;
+
+DROP TEMPORARY TABLE IF EXISTS tmp.ticket_list;
+
+CREATE TEMPORARY TABLE tmp.ticket_list
+ (PRIMARY KEY (Id_Ticket))
+ SELECT Id_Ticket
+ FROM vn2008.Tickets t
+ JOIN vn2008.Facturas f ON f.Id_Factura = t.Factura
+ WHERE year(f.Fecha) = vYear
+ AND month(f.Fecha) = vMonth;
+
+
+INSERT INTO bs.ventas_contables(year
+ , month
+ , venta
+ , grupo
+ , reino_id
+ , tipo_id
+ , empresa_id
+ , gasto)
+
+ SELECT vYear
+ , vMonth
+ , round(sum(Cantidad * Preu * (100 - m.Descuento)/100))
+ , if(
+ e.empresa_grupo = e2.empresa_grupo
+ ,1
+ ,if(e2.empresa_grupo,2,0)
+ ) as grupo
+ , tp.reino_id
+ , a.tipo_id
+ , t.empresa_id
+ , 7000000000
+ + if(e.empresa_grupo = e2.empresa_grupo
+ ,1
+ ,if(e2.empresa_grupo,2,0)
+ ) * 1000000
+ + IF(tp.Id_Trabajador = 24 , 7,tp.reino_id) * 10000 as Gasto
+ FROM vn2008.Movimientos m
+ JOIN vn2008.Tickets t on t.Id_Ticket = m.Id_Ticket
+ JOIN vn2008.Consignatarios cs on cs.Id_Consigna = t.Id_Consigna
+ JOIN vn2008.Clientes c on c.Id_Cliente = cs.Id_Cliente
+ JOIN tmp.ticket_list tt on tt.Id_Ticket = t.Id_Ticket
+ JOIN vn2008.Articles a on m.Id_Article = a.Id_Article
+ JOIN vn2008.empresa e on e.id = t.empresa_id
+ LEFT JOIN vn2008.empresa e2 on e2.Id_Cliente = c.Id_Cliente
+ JOIN vn2008.Tipos tp on tp.tipo_id = a.tipo_id
+ WHERE Cantidad <> 0
+ AND Preu <> 0
+ AND m.Descuento <> 100
+ AND a.tipo_id != TIPO_PATRIMONIAL
+ GROUP BY grupo, reino_id, tipo_id, empresa_id, Gasto;
+
+
+DROP TEMPORARY TABLE tmp.ticket_list;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `bs` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `ventas_contables_add_launcher` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ventas_contables_add_launcher`()
+BEGIN
+
+ call bs.ventas_contables_add(YEAR(TIMESTAMPADD(MONTH,-1,CURDATE())), MONTH(TIMESTAMPADD(MONTH,-1,CURDATE())));
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ventas_contables_por_cliente` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ventas_contables_por_cliente`(IN vYear INT, IN vMonth INT)
+BEGIN
+
+
+DROP TEMPORARY TABLE IF EXISTS tmp.ticket_list;
+
+CREATE TEMPORARY TABLE tmp.ticket_list
+ (PRIMARY KEY (Id_Ticket))
+ SELECT Id_Ticket
+ FROM vn2008.Tickets t
+ JOIN vn2008.Facturas f ON f.Id_Factura = t.Factura
+ WHERE year(f.Fecha) = vYear
+ AND month(f.Fecha) = vMonth;
+
+
+
+ SELECT vYear Año
+ , vMonth Mes
+ , t.Id_Cliente
+ , round(sum(Cantidad * Preu * (100 - m.Descuento)/100)) Venta
+ , if(
+ e.empresa_grupo = e2.empresa_grupo
+ ,1
+ ,if(e2.empresa_grupo,2,0)
+ ) as grupo
+ , t.empresa_id empresa
+ FROM vn2008.Movimientos m
+ JOIN vn2008.Tickets t on t.Id_Ticket = m.Id_Ticket
+ JOIN vn2008.Consignatarios cs on cs.Id_Consigna = t.Id_Consigna
+ JOIN vn2008.Clientes c on c.Id_Cliente = cs.Id_Cliente
+ JOIN tmp.ticket_list tt on tt.Id_Ticket = t.Id_Ticket
+ JOIN vn2008.Articles a on m.Id_Article = a.Id_Article
+ JOIN vn2008.empresa e on e.id = t.empresa_id
+ LEFT JOIN vn2008.empresa e2 on e2.Id_Cliente = c.Id_Cliente
+ JOIN vn2008.Tipos tp on tp.tipo_id = a.tipo_id
+ WHERE Cantidad <> 0
+ AND Preu <> 0
+ AND m.Descuento <> 100
+ AND a.tipo_id != 188
+ GROUP BY t.Id_Cliente, grupo,t.empresa_id;
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Current Database: `account`
+--
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `account` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */;
+
+USE `account`;
+
+--
+-- Table structure for table `account`
+--
+
+DROP TABLE IF EXISTS `account`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `account` (
+ `id` int(10) unsigned NOT NULL,
+ PRIMARY KEY (`id`),
+ CONSTRAINT `account_ibfk_3` FOREIGN KEY (`id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Users allowed to have an account';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `accountConfig`
+--
+
+DROP TABLE IF EXISTS `accountConfig`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `accountConfig` (
+ `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
+ `homedir` varchar(50) COLLATE utf8_unicode_ci NOT NULL COMMENT 'The base folder for users home directories',
+ `shell` varchar(50) COLLATE utf8_unicode_ci NOT NULL COMMENT 'The default shell',
+ `min` smallint(6) NOT NULL,
+ `max` smallint(6) NOT NULL,
+ `warn` smallint(6) NOT NULL,
+ `inact` smallint(6) NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Global configuration parameters for accounts';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `accountDovecot`
+--
+
+DROP TABLE IF EXISTS `accountDovecot`;
+/*!50001 DROP VIEW IF EXISTS `accountDovecot`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `accountDovecot` AS SELECT
+ 1 AS `name`,
+ 1 AS `password`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `accountLog`
+--
+
+DROP TABLE IF EXISTS `accountLog`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `accountLog` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `msg` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `pid` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `user` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `host` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `rhost` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `time` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `accountNss`
+--
+
+DROP TABLE IF EXISTS `accountNss`;
+/*!50001 DROP VIEW IF EXISTS `accountNss`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `accountNss` AS SELECT
+ 1 AS `surname`,
+ 1 AS `name`,
+ 1 AS `password`,
+ 1 AS `home`,
+ 1 AS `shell`,
+ 1 AS `min`,
+ 1 AS `max`,
+ 1 AS `warn`,
+ 1 AS `inact`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `accountPam`
+--
+
+DROP TABLE IF EXISTS `accountPam`;
+/*!50001 DROP VIEW IF EXISTS `accountPam`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `accountPam` AS SELECT
+ 1 AS `name`,
+ 1 AS `password`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `ldapConfig`
+--
+
+DROP TABLE IF EXISTS `ldapConfig`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `ldapConfig` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `host` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT 'The hostname of LDAP server',
+ `rdn` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT 'The LDAP user',
+ `password` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT 'Base64 encoded password',
+ `baseDn` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'The base DN to do the query',
+ `filter` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'Filter to apply to the query',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='LDAP server configuration parameters';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `mailAlias`
+--
+
+DROP TABLE IF EXISTS `mailAlias`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `mailAlias` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `alias` varchar(50) CHARACTER SET utf8 NOT NULL,
+ `isPublic` tinyint(4) NOT NULL DEFAULT '1',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `alias` (`alias`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Mail aliases';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `mailAliasAccount`
+--
+
+DROP TABLE IF EXISTS `mailAliasAccount`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `mailAliasAccount` (
+ `mailAlias` int(10) unsigned NOT NULL,
+ `account` int(10) unsigned NOT NULL,
+ PRIMARY KEY (`mailAlias`,`account`),
+ KEY `account` (`account`),
+ CONSTRAINT `account` FOREIGN KEY (`account`) REFERENCES `account` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `mailAlias` FOREIGN KEY (`mailAlias`) REFERENCES `mailAlias` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Mail alias that is assigned to each account';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `mailForward`
+--
+
+DROP TABLE IF EXISTS `mailForward`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `mailForward` (
+ `account` int(10) unsigned NOT NULL,
+ `forwardTo` varchar(250) CHARACTER SET utf8 NOT NULL,
+ PRIMARY KEY (`account`),
+ CONSTRAINT `mailForward_ibfk_1` FOREIGN KEY (`account`) REFERENCES `account` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Mail forwarding';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `role`
+--
+
+DROP TABLE IF EXISTS `role`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `role` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(14) COLLATE utf8_unicode_ci NOT NULL,
+ `description` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `hasLogin` tinyint(3) unsigned NOT NULL DEFAULT '0',
+ `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `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';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `roleInherit`
+--
+
+DROP TABLE IF EXISTS `roleInherit`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `roleInherit` (
+ `role` int(10) unsigned NOT NULL,
+ `inheritsFrom` int(10) unsigned NOT NULL,
+ PRIMARY KEY (`role`,`inheritsFrom`),
+ KEY `owner_id` (`inheritsFrom`),
+ CONSTRAINT `roleInherit_ibfk_1` FOREIGN KEY (`role`) REFERENCES `role` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `roleInherit_ibfk_2` FOREIGN KEY (`inheritsFrom`) REFERENCES `role` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Role inheritance';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `roleRole`
+--
+
+DROP TABLE IF EXISTS `roleRole`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `roleRole` (
+ `role` int(10) unsigned NOT NULL,
+ `inheritsFrom` int(10) unsigned NOT NULL,
+ UNIQUE KEY `role` (`role`,`inheritsFrom`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Calculated role inheritance';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `sambaConfig`
+--
+
+DROP TABLE IF EXISTS `sambaConfig`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `sambaConfig` (
+ `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
+ `host` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'The hosname of Samba server',
+ `sshUser` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'The SSH user to connect to servers',
+ `sshPass` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'The SSH password base64 encoded',
+ `domain` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'The default domain for mail accounts, its appended to the user name',
+ `uidBase` int(10) unsigned NOT NULL DEFAULT '10000' COMMENT 'The base for Unix uids',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Global configuration parameters for accounts';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `user`
+--
+
+DROP TABLE IF EXISTS `user`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `user` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(30) CHARACTER SET utf8 NOT NULL,
+ `password` char(64) COLLATE utf8_unicode_ci NOT NULL,
+ `role` int(10) unsigned NOT NULL DEFAULT '2',
+ `active` tinyint(1) NOT NULL DEFAULT '1',
+ `email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `sync` tinyint(4) NOT NULL DEFAULT '0',
+ `recoverPass` tinyint(3) unsigned NOT NULL DEFAULT '1',
+ `lastPassChange` datetime DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `name` (`name`),
+ 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';
+/*!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 */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `account`.`userBeforeInsert`
+BEFORE INSERT ON `user` FOR EACH ROW
+BEGIN
+ CALL userCheckName (NEW.`name`);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `account`.`userBeforeUpdate`
+BEFORE UPDATE ON `user` FOR EACH ROW
+BEGIN
+ IF OLD.`name` != NEW.`name` THEN
+ CALL userCheckName (NEW.`name`);
+ END IF;
+
+ IF NEW.`password` != OLD.`password`
+ OR (OLD.`password` IS NULL AND NEW.`password` IS NOT NULL)
+ THEN
+ SET NEW.lastPassChange = NOW();
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `userAfterUpdate`
+AFTER UPDATE ON `user` FOR EACH ROW
+BEGIN
+ IF NEW.role <> OLD.role
+ THEN
+ INSERT INTO vn2008.mail(`to`,reply_to,`subject`,`text`)
+ SELECT 'jgallego@verdnatura.es','jgallego@verdnatura.es','Rol modificado',
+ CONCAT(`name`,' ha modificado el rol del usuario ',NEW.`name`,' de ',OLD.role,' a ',NEW.role)
+ FROM account.user WHERE id = account.userGetId();
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+
+--
+-- Table structure for table `userPassword`
+--
+
+DROP TABLE IF EXISTS `userPassword`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `userPassword` (
+ `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
+ `length` tinyint(3) unsigned NOT NULL,
+ `nAlpha` tinyint(3) unsigned NOT NULL,
+ `nUpper` tinyint(3) unsigned NOT NULL,
+ `nDigits` tinyint(3) unsigned NOT NULL,
+ `nPunct` tinyint(3) unsigned NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Restrictions on user passwords';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `userRole`
+--
+
+DROP TABLE IF EXISTS `userRole`;
+/*!50001 DROP VIEW IF EXISTS `userRole`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `userRole` AS SELECT
+ 1 AS `id`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `userSession`
+--
+
+DROP TABLE IF EXISTS `userSession`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `userSession` (
+ `connectionId` int(10) unsigned NOT NULL,
+ `user` int(10) unsigned NOT NULL,
+ `userName` varchar(30) CHARACTER SET utf8 DEFAULT NULL,
+ `creationDate` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`connectionId`),
+ KEY `creationDate` (`creationDate`)
+) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `userView`
+--
+
+DROP TABLE IF EXISTS `userView`;
+/*!50001 DROP VIEW IF EXISTS `userView`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `userView` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `active`,
+ 1 AS `email`,
+ 1 AS `role`,
+ 1 AS `recoverPass`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Dumping routines for database 'account'
+--
+/*!50003 DROP FUNCTION IF EXISTS `toUnixDays` */;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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 ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP FUNCTION IF EXISTS `userGetId` */;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ WHERE connectionId = CONNECTION_ID();
+
+ IF vUser IS NULL THEN
+ SELECT id INTO vUser FROM user
+ WHERE name = LEFT(USER(), INSTR(USER(), '@') - 1);
+ END IF;
+
+ RETURN vUser;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP FUNCTION IF EXISTS `userGetMysqlRole` */;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ FROM role r
+ JOIN user u ON u.role = r.id
+ WHERE u.name = vUserName;
+
+ RETURN vRole;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP FUNCTION IF EXISTS `userGetName` */;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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();
+
+ IF vUser IS NULL THEN
+ SET vUser = LEFT(USER(), INSTR(USER(), '@') - 1);
+ END IF;
+
+ RETURN vUser;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP FUNCTION IF EXISTS `userGetNameFromId` */;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ FROM user
+ WHERE id = vId;
+
+ RETURN vName;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP FUNCTION IF EXISTS `userHasRole` */;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ FROM role
+ WHERE `name` = vRoleName COLLATE 'utf8_unicode_ci';
+
+ RETURN userHasRoleId (vRoleId);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP FUNCTION IF EXISTS `userHasRoleId` */;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ FROM userRole
+ WHERE id = vRoleId;
+
+ RETURN vHasRole;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `privSync` */;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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-';
+
+ DECLARE vTplExists BOOL;
+ DECLARE vTplHost VARCHAR(255);
+ DECLARE vPrefixedLike VARCHAR(255);
+
+ -- Comprueba que el usuario plantilla existe
+
+ SELECT COUNT(*) > 0, `Host`
+ INTO vTplExists, vTplHost
+ FROM mysql.user
+ WHERE `User` = vTplUser
+ LIMIT 1;
+
+ IF NOT vTplExists THEN
+ SIGNAL SQLSTATE '45000'
+ SET MESSAGE_TEXT = 'TEMPLATE_USER_NOT_EXISTS';
+ END IF;
+
+ -- Borra todos los privilegios calculados
+
+ SET vPrefixedLike = CONCAT(vPrefix, '%');
+
+ DELETE FROM mysql.user
+ WHERE `User` LIKE vPrefixedLike;
+
+ DELETE FROM mysql.db
+ WHERE `User` LIKE vPrefixedLike;
+
+ DELETE FROM mysql.tables_priv
+ WHERE `User` LIKE vPrefixedLike;
+
+ DELETE FROM mysql.columns_priv
+ WHERE `User` LIKE vPrefixedLike;
+
+ DELETE FROM mysql.procs_priv
+ WHERE `User` LIKE vPrefixedLike;
+
+ DELETE FROM mysql.proxies_priv
+ WHERE `Proxied_user` LIKE vPrefixedLike;
+
+ -- Tablas temporales
+
+ DROP TEMPORARY TABLE IF EXISTS tRole;
+ CREATE TEMPORARY TABLE tRole
+ ENGINE = MEMORY
+ SELECT
+ `name` role,
+ CONCAT(vPrefix, `name`) prefixedRole
+ FROM role
+ WHERE hasLogin;
+
+ DROP TEMPORARY TABLE IF EXISTS tRoleInherit;
+ CREATE TEMPORARY TABLE tRoleInherit
+ (INDEX (inheritsFrom))
+ ENGINE = MEMORY
+ SELECT
+ CONCAT(vPrefix, r.`name`) prefixedRole,
+ ri.`name` inheritsFrom
+ FROM role r
+ 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`,
+ `Host`,
+ `Password`,
+ `ssl_type`,
+ `ssl_cipher`,
+ `x509_issuer`,
+ `x509_subject`,
+ `max_questions`,
+ `max_updates`,
+ `max_connections`,
+ `max_user_connections`
+ )
+ SELECT
+ r.prefixedRole,
+ vTplHost,
+ IF('' != u.`Password`,
+ u.`Password`, t.`Password`),
+ IF('' != u.`ssl_type`,
+ u.`ssl_type`, t.`ssl_type`),
+ IF('' != u.`ssl_cipher`,
+ u.`ssl_cipher`, t.`ssl_cipher`),
+ IF('' != u.`x509_issuer`,
+ u.`x509_issuer`, t.`x509_issuer`),
+ IF('' != u.`x509_subject`,
+ u.`x509_subject`, t.`x509_subject`),
+ IF(0 != u.`max_questions`,
+ u.`max_questions`, t.`max_questions`),
+ IF(0 != u.`max_updates`,
+ u.`max_updates`, t.`max_updates`),
+ IF(0 != u.`max_connections`,
+ u.`max_connections`, t.`max_connections`),
+ IF(0 != u.`max_user_connections`,
+ u.`max_user_connections`, t.`max_user_connections`)
+ FROM tRole r
+ JOIN mysql.user t
+ ON t.`User` = vTplUser
+ AND t.`Host` = vTplHost
+ LEFT JOIN mysql.user u
+ ON u.`User` = r.role
+ AND u.`Host` = vHost;
+
+ INSERT INTO mysql.proxies_priv (
+ `User`,
+ `Host`,
+ `Proxied_user`,
+ `Proxied_host`,
+ `Grantor`
+ )
+ SELECT
+ '',
+ vHost,
+ prefixedRole,
+ vHost,
+ CONCAT(prefixedRole, '@', vTplHost)
+ FROM tRole;
+
+ -- Copia los privilegios globales del usuario
+
+ DROP TEMPORARY TABLE IF EXISTS tUserPriv;
+ CREATE TEMPORARY TABLE tUserPriv
+ (INDEX (prefixedRole))
+ ENGINE = MEMORY
+ SELECT
+ r.prefixedRole,
+ MAX(u.`Select_priv`) `Select_priv`,
+ MAX(u.`Insert_priv`) `Insert_priv`,
+ MAX(u.`Update_priv`) `Update_priv`,
+ MAX(u.`Delete_priv`) `Delete_priv`,
+ MAX(u.`Create_priv`) `Create_priv`,
+ MAX(u.`Drop_priv`) `Drop_priv`,
+ MAX(u.`Reload_priv`) `Reload_priv`,
+ MAX(u.`Shutdown_priv`) `Shutdown_priv`,
+ MAX(u.`Process_priv`) `Process_priv`,
+ MAX(u.`File_priv`) `File_priv`,
+ MAX(u.`Grant_priv`) `Grant_priv`,
+ MAX(u.`References_priv`) `References_priv`,
+ MAX(u.`Index_priv`) `Index_priv`,
+ MAX(u.`Alter_priv`) `Alter_priv`,
+ MAX(u.`Show_db_priv`) `Show_db_priv`,
+ MAX(u.`Super_priv`) `Super_priv`,
+ MAX(u.`Create_tmp_table_priv`) `Create_tmp_table_priv`,
+ MAX(u.`Lock_tables_priv`) `Lock_tables_priv`,
+ MAX(u.`Execute_priv`) `Execute_priv`,
+ MAX(u.`Repl_slave_priv`) `Repl_slave_priv`,
+ MAX(u.`Repl_client_priv`) `Repl_client_priv`,
+ MAX(u.`Create_view_priv`) `Create_view_priv`,
+ MAX(u.`Show_view_priv`) `Show_view_priv`,
+ MAX(u.`Create_routine_priv`) `Create_routine_priv`,
+ MAX(u.`Alter_routine_priv`) `Alter_routine_priv`,
+ MAX(u.`Create_user_priv`) `Create_user_priv`,
+ MAX(u.`Event_priv`) `Event_priv`,
+ MAX(u.`Trigger_priv`) `Trigger_priv`,
+ MAX(u.`Create_tablespace_priv`) `Create_tablespace_priv`
+ FROM tRoleInherit r
+ JOIN mysql.user u
+ ON u.`User` = r.inheritsFrom
+ AND u.`Host`= vHost
+ GROUP BY r.prefixedRole;
+
+ UPDATE mysql.user u
+ JOIN tUserPriv t
+ ON u.`User` = t.prefixedRole
+ AND u.`Host` = vHost
+ SET
+ u.`Select_priv`
+ = t.`Select_priv`,
+ u.`Insert_priv`
+ = t.`Insert_priv`,
+ u.`Update_priv`
+ = t.`Update_priv`,
+ u.`Delete_priv`
+ = t.`Delete_priv`,
+ u.`Create_priv`
+ = t.`Create_priv`,
+ u.`Drop_priv`
+ = t.`Drop_priv`,
+ u.`Reload_priv`
+ = t.`Reload_priv`,
+ u.`Shutdown_priv`
+ = t.`Shutdown_priv`,
+ u.`Process_priv`
+ = t.`Process_priv`,
+ u.`File_priv`
+ = t.`File_priv`,
+ u.`Grant_priv`
+ = t.`Grant_priv`,
+ u.`References_priv`
+ = t.`References_priv`,
+ u.`Index_priv`
+ = t.`Index_priv`,
+ u.`Alter_priv`
+ = t.`Alter_priv`,
+ u.`Show_db_priv`
+ = t.`Show_db_priv`,
+ u.`Super_priv`
+ = t.`Super_priv`,
+ u.`Create_tmp_table_priv`
+ = t.`Create_tmp_table_priv`,
+ u.`Lock_tables_priv`
+ = t.`Lock_tables_priv`,
+ u.`Execute_priv`
+ = t.`Execute_priv`,
+ u.`Repl_slave_priv`
+ = t.`Repl_slave_priv`,
+ u.`Repl_client_priv`
+ = t.`Repl_client_priv`,
+ u.`Create_view_priv`
+ = t.`Create_view_priv`,
+ u.`Show_view_priv`
+ = t.`Show_view_priv`,
+ u.`Create_routine_priv`
+ = t.`Create_routine_priv`,
+ u.`Alter_routine_priv`
+ = t.`Alter_routine_priv`,
+ u.`Create_user_priv`
+ = t.`Create_user_priv`,
+ u.`Event_priv`
+ = t.`Event_priv`,
+ u.`Trigger_priv`
+ = t.`Trigger_priv`,
+ u.`Create_tablespace_priv`
+ = t.`Create_tablespace_priv`;
+
+ DROP TEMPORARY TABLE tUserPriv;
+
+ -- Copia los privilegios a nivel de esquema
+
+ INSERT INTO mysql.db (
+ `User`,
+ `Host`,
+ `Db`,
+ `Select_priv`,
+ `Insert_priv`,
+ `Update_priv`,
+ `Delete_priv`,
+ `Create_priv`,
+ `Drop_priv`,
+ `Grant_priv`,
+ `References_priv`,
+ `Index_priv`,
+ `Alter_priv`,
+ `Create_tmp_table_priv`,
+ `Lock_tables_priv`,
+ `Create_view_priv`,
+ `Show_view_priv`,
+ `Create_routine_priv`,
+ `Alter_routine_priv`,
+ `Execute_priv`,
+ `Event_priv`,
+ `Trigger_priv`
+ )
+ SELECT
+ r.prefixedRole,
+ vTplHost,
+ t.`Db`,
+ MAX(t.`Select_priv`),
+ MAX(t.`Insert_priv`),
+ MAX(t.`Update_priv`),
+ MAX(t.`Delete_priv`),
+ MAX(t.`Create_priv`),
+ MAX(t.`Drop_priv`),
+ MAX(t.`Grant_priv`),
+ MAX(t.`References_priv`),
+ MAX(t.`Index_priv`),
+ MAX(t.`Alter_priv`),
+ MAX(t.`Create_tmp_table_priv`),
+ MAX(t.`Lock_tables_priv`),
+ MAX(t.`Create_view_priv`),
+ MAX(t.`Show_view_priv`),
+ MAX(t.`Create_routine_priv`),
+ MAX(t.`Alter_routine_priv`),
+ MAX(t.`Execute_priv`),
+ MAX(t.`Event_priv`),
+ MAX(t.`Trigger_priv`)
+ FROM tRoleInherit r
+ JOIN mysql.db t
+ ON t.`User` = r.inheritsFrom
+ AND t.`Host`= vHost
+ GROUP BY r.prefixedRole, t.`Db`;
+
+ -- Copia los privilegios a nivel de tabla
+
+ INSERT INTO mysql.tables_priv (
+ `User`,
+ `Host`,
+ `Db`,
+ `Table_name`,
+ `Grantor`,
+ `Timestamp`,
+ `Table_priv`,
+ `Column_priv`
+ )
+ SELECT
+ r.prefixedRole,
+ vTplHost,
+ t.`Db`,
+ t.`Table_name`,
+ t.`Grantor`,
+ MAX(t.`Timestamp`),
+ GROUP_CONCAT(CONCAT(t.`Table_priv`, ',')),
+ GROUP_CONCAT(CONCAT(t.`Column_priv`, ','))
+ FROM tRoleInherit r
+ JOIN mysql.tables_priv t
+ ON t.`User` = r.inheritsFrom
+ 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`,
+ `Host`,
+ `Db`,
+ `Table_name`,
+ `Column_name`,
+ `Timestamp`,
+ `Column_priv`
+ )
+ SELECT
+ r.prefixedRole,
+ vTplHost,
+ t.`Db`,
+ t.`Table_name`,
+ t.`Column_name`,
+ MAX(t.`Timestamp`),
+ GROUP_CONCAT(CONCAT(t.`Column_priv`, ','))
+ FROM tRoleInherit r
+ JOIN mysql.columns_priv t
+ ON t.`User` = r.inheritsFrom
+ 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`,
+ `Host`,
+ `Db`,
+ `Routine_name`,
+ `Routine_type`,
+ `Grantor`,
+ `Timestamp`,
+ `Proc_priv`
+ )
+ SELECT
+ r.prefixedRole,
+ vTplHost,
+ t.`Db`,
+ t.`Routine_name`,
+ t.`Routine_type`,
+ t.`Grantor`,
+ t.`Timestamp`,
+ t.`Proc_priv`
+ FROM tRoleInherit r
+ JOIN mysql.procs_priv t
+ ON t.`User` = r.inheritsFrom
+ AND t.`Host`= vHost;
+
+ -- Libera memoria
+
+ DROP TEMPORARY TABLE
+ tRole,
+ tRoleInherit;
+
+ FLUSH PRIVILEGES;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `roleGetDescendents` */;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ tmp.role, parents, childs;
+
+ CREATE TEMPORARY TABLE tmp.role
+ (UNIQUE (id))
+ ENGINE = MEMORY
+ SELECT vRole AS id;
+
+ CREATE TEMPORARY TABLE parents
+ ENGINE = MEMORY
+ SELECT vRole AS id;
+
+ CREATE TEMPORARY TABLE childs
+ LIKE parents;
+
+ REPEAT
+ DELETE FROM childs;
+ INSERT INTO childs
+ SELECT DISTINCT r.inheritsFrom id
+ FROM parents p
+ JOIN roleInherit r ON r.role = p.id
+ LEFT JOIN tmp.role t ON t.id = r.inheritsFrom
+ WHERE t.id IS NULL;
+
+ DELETE FROM parents;
+ INSERT INTO parents
+ SELECT * FROM childs;
+
+ INSERT INTO tmp.role
+ SELECT * FROM childs;
+
+ UNTIL ROW_COUNT() <= 0
+ END REPEAT;
+
+ -- If it is root all the roles are added
+
+ SELECT COUNT(*) > 0 INTO vIsRoot
+ FROM tmp.role
+ WHERE id = 0;
+
+ IF vIsRoot THEN
+ INSERT IGNORE INTO tmp.role (id)
+ SELECT id FROM role;
+ END IF;
+
+ -- Cleaning
+
+ DROP TEMPORARY TABLE
+ parents, childs;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `roleSync` */;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+
+ DECLARE cur CURSOR FOR
+ SELECT id FROM role;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
+
+ TRUNCATE TABLE roleRole;
+
+ OPEN cur;
+
+ l: LOOP
+ SET vDone = FALSE;
+ FETCH cur INTO vRoleId;
+
+ IF vDone THEN
+ LEAVE l;
+ END IF;
+
+ CALL roleGetDescendents (vRoleId);
+
+ INSERT INTO roleRole (role, inheritsFrom)
+ SELECT vRoleId, id FROM tmp.role;
+
+ DROP TEMPORARY TABLE tmp.role;
+ END LOOP;
+
+ CLOSE cur;
+
+ CALL privSync();
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `userChangePassword` */;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ INTO vPasswordOk
+ FROM user WHERE id = account.userGetId();
+
+ IF NOT vPasswordOk THEN
+ SIGNAL SQLSTATE '45000'
+ SET MESSAGE_TEXT = 'Invalid password';
+ END IF;
+
+ CALL userSetPassword (userGetName(), vPassword);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `userCheckName` */;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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';
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `userCheckPassword` */;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ DECLARE vNAlpha TINYINT DEFAULT 0;
+ DECLARE vNUpper TINYINT DEFAULT 0;
+ DECLARE vNDigits TINYINT DEFAULT 0;
+ DECLARE vNPunct TINYINT DEFAULT 0;
+
+ WHILE vI <= CHAR_LENGTH(vPassword)
+ DO
+ SET vChr = SUBSTRING(vPassword, vI, 1);
+
+ IF vChr REGEXP '[[:alpha:]]'
+ THEN
+ SET vNAlpha = vNAlpha+1;
+
+ IF vChr REGEXP '[A-Z]'
+ THEN
+ SET vNUpper = vNUpper+1;
+ END IF;
+ ELSEIF vChr REGEXP '[[:digit:]]'
+ THEN
+ SET vNDigits = vNDigits+1;
+ ELSEIF vChr REGEXP '[[:punct:]]'
+ THEN
+ SET vNPunct = vNPunct+1;
+ END IF;
+
+ SET vI = vI+1;
+ END WHILE;
+
+ SELECT
+ CHAR_LENGTH(vPassword) >= length
+ AND vNAlpha >= nAlpha
+ AND vNUpper >= nUpper
+ AND vNDigits >= nDigits
+ AND vNPunct >= nPunct
+ INTO vPasswordOk
+ FROM userPassword LIMIT 1;
+
+ IF NOT vPasswordOk THEN
+ SIGNAL SQLSTATE '45000'
+ SET MESSAGE_TEXT = 'Password does not meet requirements';
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `userLogin` */;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ WHERE name = vUserName
+ AND password = MD5(vPassword)
+ AND active;
+
+ IF vUserId IS NOT NULL
+ THEN
+ REPLACE INTO userSession (connectionId, user, userName)
+ VALUES (CONNECTION_ID(), vUserId, vUserName);
+ ELSE
+ SIGNAL SQLSTATE '45000'
+ SET MESSAGE_TEXT = 'INVALID_CREDENTIALS';
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `userLoginWithName` */;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ WHERE name = vUserName;
+
+ REPLACE INTO userSession (connectionId, user, userName)
+ VALUES (CONNECTION_ID(), vUserId, vUserName);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `userLogout` */;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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());
+
+ DELETE FROM userSession
+ WHERE connectionId = CONNECTION_ID()
+ OR creationDate < vCleanTime;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `userSetPassword` */;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ password = MD5(vPassword),
+ recoverPass = FALSE
+ WHERE `name` = vUserName;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `account` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+
+--
+-- Current Database: `cache`
+--
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `cache` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */;
+
+USE `cache`;
+
+--
+-- Table structure for table `available`
+--
+
+DROP TABLE IF EXISTS `available`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `available` (
+ `calc_id` int(10) unsigned NOT NULL,
+ `item_id` int(11) NOT NULL,
+ `available` int(11) NOT NULL,
+ KEY `calc_id_4` (`calc_id`) USING BTREE,
+ KEY `calc_id` (`item_id`,`calc_id`)
+) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `barcodes`
+--
+
+DROP TABLE IF EXISTS `barcodes`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `barcodes` (
+ `code` varchar(22) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+ `Id_Article` int(11) NOT NULL DEFAULT '0',
+ `Article` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Medida` int(10) unsigned DEFAULT NULL,
+ `Color` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Categoria` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `Producer` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cache`
+--
+
+DROP TABLE IF EXISTS `cache`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cache` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(50) CHARACTER SET utf8 NOT NULL,
+ `lifetime` time NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `name` (`name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cache_calc`
+--
+
+DROP TABLE IF EXISTS `cache_calc`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cache_calc` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `cache_id` int(10) unsigned NOT NULL,
+ `cacheName` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
+ `params` varchar(100) CHARACTER SET utf8 NOT NULL DEFAULT '',
+ `last_refresh` datetime DEFAULT NULL,
+ `expires` datetime DEFAULT NULL,
+ `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `connection_id` int(10) unsigned DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `cache_name` (`cache_id`,`params`),
+ KEY `cache_id` (`cache_id`),
+ KEY `cacheName` (`cacheName`),
+ KEY `expires` (`expires`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cache_valid`
+--
+
+DROP TABLE IF EXISTS `cache_valid`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cache_valid` (
+ `valid` tinyint(3) unsigned NOT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `daily_task_log`
+--
+
+DROP TABLE IF EXISTS `daily_task_log`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `daily_task_log` (
+ `state` varchar(250) COLLATE utf8_unicode_ci NOT NULL,
+ `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='No he encontrado el lugar en el que vicente almacena la hora en que se ejecutan las daily tasks, asi que he hecho esta tabla, a eliminar cuando se considere oportuno';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `departure_limit`
+--
+
+DROP TABLE IF EXISTS `departure_limit`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `departure_limit` (
+ `warehouse_id` smallint(6) unsigned NOT NULL,
+ `fecha` date NOT NULL,
+ `hora` int(11) NOT NULL DEFAULT '0',
+ `minSpeed` decimal(10,2) NOT NULL DEFAULT '0.00',
+ PRIMARY KEY (`warehouse_id`,`fecha`),
+ CONSTRAINT `warehouse_departure` FOREIGN KEY (`warehouse_id`) REFERENCES `vn2008`.`warehouse` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `equalizator`
+--
+
+DROP TABLE IF EXISTS `equalizator`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `equalizator` (
+ `warehouse_id` int(11) NOT NULL,
+ `Vista` int(11) NOT NULL,
+ `Pedido` int(11) DEFAULT NULL,
+ `Impreso` int(11) DEFAULT NULL,
+ `Encajado` int(11) DEFAULT NULL,
+ PRIMARY KEY (`Vista`,`warehouse_id`)
+) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `itemTagFormat`
+--
+
+DROP TABLE IF EXISTS `itemTagFormat`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `itemTagFormat` (
+ `itemFk` int(11) NOT NULL,
+ `labels1` varchar(80) CHARACTER SET utf8 DEFAULT NULL,
+ `values1` varchar(80) CHARACTER SET utf8 DEFAULT NULL,
+ `labels2` varchar(80) CHARACTER SET utf8 DEFAULT NULL,
+ `values2` varchar(80) CHARACTER SET utf8 DEFAULT NULL,
+ `description` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
+ PRIMARY KEY (`itemFk`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Almacena el formato para los tags de los articulos';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `item_range`
+--
+
+DROP TABLE IF EXISTS `item_range`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `item_range` (
+ `calc_id` int(11) NOT NULL,
+ `item_id` int(11) NOT NULL,
+ `date_end` datetime DEFAULT NULL,
+ KEY `calc_item` (`calc_id`,`item_id`),
+ KEY `calc_id` (`calc_id`) USING BTREE
+) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `last_buy`
+--
+
+DROP TABLE IF EXISTS `last_buy`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `last_buy` (
+ `item_id` int(10) unsigned NOT NULL,
+ `warehouse_id` smallint(5) unsigned NOT NULL,
+ `buy_id` int(10) unsigned DEFAULT NULL,
+ `landing` date DEFAULT NULL,
+ KEY `buy_id` (`buy_id`),
+ KEY `item_id` (`item_id`,`warehouse_id`),
+ KEY `warehouse_id` (`warehouse_id`) USING BTREE
+) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `prod_graphic_source`
+--
+
+DROP TABLE IF EXISTS `prod_graphic_source`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `prod_graphic_source` (
+ `m3` double NOT NULL DEFAULT '0',
+ `warehouse_id` int(11) NOT NULL,
+ `hora` int(11) NOT NULL,
+ `order` int(11) NOT NULL DEFAULT '0',
+ `alert_level` int(11) NOT NULL DEFAULT '0',
+ `Agencia` varchar(45) CHARACTER SET utf8 NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `stock`
+--
+
+DROP TABLE IF EXISTS `stock`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `stock` (
+ `warehouse_id` smallint(5) unsigned NOT NULL,
+ `item_id` int(10) unsigned NOT NULL,
+ `amount` int(11) NOT NULL,
+ KEY `warehouse_id` (`warehouse_id`,`item_id`),
+ KEY `warehouse_id_2` (`warehouse_id`) USING BTREE
+) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `visible`
+--
+
+DROP TABLE IF EXISTS `visible`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `visible` (
+ `calc_id` int(10) unsigned NOT NULL,
+ `item_id` int(11) NOT NULL,
+ `visible` int(11) NOT NULL,
+ KEY `id` (`calc_id`) USING BTREE,
+ KEY `calc_id` (`calc_id`,`item_id`)
+) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `weekly_sales`
+--
+
+DROP TABLE IF EXISTS `weekly_sales`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `weekly_sales` (
+ `week` int(10) unsigned NOT NULL,
+ `item_id` int(10) unsigned NOT NULL,
+ `warehouse_id` smallint(5) unsigned NOT NULL,
+ `amount` int(11) NOT NULL,
+ `price` double NOT NULL,
+ KEY `item_id` (`item_id`,`warehouse_id`),
+ KEY `week` (`week`) USING BTREE
+) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping routines for database 'cache'
+--
+/*!50003 DROP PROCEDURE IF EXISTS `available_refresh` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `available_refresh`(OUT v_calc INT, v_refresh BOOL, v_warehouse INT, v_date DATE)
+proc: BEGIN
+ DECLARE v_date_ini DATE;
+ DECLARE v_date_end DATETIME;
+ DECLARE v_reserve_date DATETIME;
+ DECLARE v_params CHAR(100);
+ DECLARE v_date_inv DATE;
+
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION
+ BEGIN
+ CALL cache_calc_unlock (v_calc);
+ RESIGNAL;
+ END;
+
+ IF v_date < CURDATE()
+ THEN
+ LEAVE proc;
+ END IF;
+
+ CALL vn2008.item_stock (v_warehouse, v_date, NULL);
+
+ SET v_params = CONCAT_WS('/', v_warehouse, v_date);
+ CALL cache_calc_start (v_calc, v_refresh, 'available', v_params);
+
+ IF !v_refresh
+ THEN
+ 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');
+
+ SELECT FechaInventario INTO v_date_inv FROM vn2008.tblContadores;
+
+ 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
+ (PRIMARY KEY (item_id))
+ ENGINE = MEMORY
+ SELECT c.item_id, IF(t.life IS NULL, NULL, TIMESTAMP(TIMESTAMPADD(DAY, t.life, c.landing), '23:59:59')) AS date_end
+ FROM (
+ SELECT c.Id_Article item_id, MAX(landing) landing
+ FROM vn2008.Compres c
+ JOIN vn2008.Entradas e ON c.Id_Entrada = e.Id_Entrada
+ JOIN vn2008.travel t ON t.id = e.travel_id
+ JOIN vn2008.warehouse w ON w.id = t.warehouse_id
+ WHERE t.landing BETWEEN v_date_inv AND v_date_ini
+ AND t.warehouse_id = v_warehouse
+ AND NOT e.Inventario
+ AND NOT e.Redada
+ GROUP BY Id_Article
+ ) c
+ 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;
+ INSERT INTO item_range_copy1
+ SELECT * FROM item_range;
+
+ DROP TEMPORARY TABLE IF EXISTS item_range_copy2;
+ CREATE TEMPORARY TABLE item_range_copy2 LIKE item_range;
+ INSERT INTO item_range_copy2
+ SELECT * FROM item_range;
+
+ DROP TEMPORARY TABLE IF EXISTS item_range_copy3;
+ CREATE TEMPORARY TABLE item_range_copy3 LIKE item_range;
+ INSERT INTO item_range_copy3
+ SELECT * FROM item_range;
+
+ DROP TEMPORARY TABLE IF EXISTS item_range_copy4;
+ CREATE TEMPORARY TABLE item_range_copy4 LIKE item_range;
+ INSERT INTO item_range_copy4
+ SELECT * FROM item_range;
+
+ -- Calcula el ATP
+
+ DELETE FROM available WHERE calc_id = v_calc;
+
+ INSERT INTO available (calc_id, item_id, available)
+ SELECT v_calc, t.item_id, SUM(stock) amount FROM (
+ SELECT ti.item_id, stock
+ FROM vn2008.tmp_item ti
+ JOIN item_range ir ON ir.item_id = ti.item_id
+ UNION ALL
+ SELECT t.item_id, minacum(dt, amount, v_date) AS available FROM (
+ SELECT item_id, DATE(dat) dt, SUM(amount) amount FROM (
+ SELECT i.item_id, i.dat, i.amount
+ FROM vn2008.item_out i
+ JOIN item_range_copy1 ir ON ir.item_id = i.item_id
+ WHERE i.dat >= v_date_ini
+ AND (ir.date_end IS NULL OR i.dat <= ir.date_end)
+ AND i.warehouse_id = v_warehouse
+ UNION ALL
+ SELECT i.item_id, i.dat, i.amount
+ FROM vn2008.item_entry_in i
+ JOIN item_range_copy2 ir ON ir.item_id = i.item_id
+ WHERE i.dat >= v_date_ini
+ AND (ir.date_end IS NULL OR i.dat <= ir.date_end)
+ AND i.warehouse_id = v_warehouse
+ UNION ALL
+ SELECT i.item_id, i.dat, i.amount
+ FROM vn2008.item_entry_out i
+ JOIN item_range_copy3 ir ON ir.item_id = i.item_id
+ WHERE i.dat >= v_date_ini
+ AND (ir.date_end IS NULL OR i.dat <= ir.date_end)
+ AND i.warehouse_id = v_warehouse
+ UNION ALL
+ SELECT r.item_id, r.shipment, -r.amount
+ FROM hedera.order_row r
+ JOIN hedera.`order` o ON o.id = r.order_id
+ JOIN item_range_copy4 ir ON ir.item_id = r.item_id
+ WHERE r.shipment >= v_date_ini
+ AND (ir.date_end IS NULL OR r.shipment <= ir.date_end)
+ AND r.warehouse_id = v_warehouse
+ AND r.created >= v_reserve_date
+ AND NOT o.confirmed
+ ) t
+ GROUP BY item_id, dt
+ ) t
+ GROUP BY t.item_id
+ ) t GROUP BY t.item_id HAVING amount != 0;
+
+
+ DROP TEMPORARY TABLE
+ vn2008.tmp_item
+ ,item_range
+ ,item_range_copy1
+ ,item_range_copy2
+ ,item_range_copy3
+ ,item_range_copy4;
+
+ CALL cache_calc_end (v_calc);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `available_refreshtest` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `available_refreshtest`(OUT v_calc INT, v_refresh BOOL, v_warehouse INT, v_date DATE)
+proc: BEGIN
+ DECLARE v_date_ini DATE;
+ DECLARE v_date_end DATETIME;
+ DECLARE v_reserve_date DATETIME;
+ DECLARE v_params CHAR(100);
+ DECLARE v_date_inv DATE;
+
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION
+ BEGIN
+ CALL cache_calc_unlock (v_calc);
+ RESIGNAL;
+ END;
+
+ IF v_date < CURDATE()
+ THEN
+ LEAVE proc;
+ END IF;
+
+ CALL vn2008.item_stock (v_warehouse, v_date, NULL);
+
+ SET v_params = CONCAT_WS('/', v_warehouse, v_date);
+ CALL cache_calc_start (v_calc, v_refresh, 'available', v_params);
+
+ IF !v_refresh
+ THEN
+ LEAVE proc;
+ END IF;
+
+ -- Limpia las caches antiguas
+
+ IF TRUE -- GET_LOCK('available/clean', 1)
+ THEN
+ DELETE FROM available WHERE calc_id NOT IN (
+ SELECT cc.id
+ FROM `cache` c
+ 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');
+
+ SELECT FechaInventario INTO v_date_inv FROM vn2008.tblContadores;
+
+ 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
+ (PRIMARY KEY (item_id))
+ ENGINE = MEMORY
+ SELECT c.item_id, IF(t.life IS NULL, NULL, TIMESTAMP(TIMESTAMPADD(DAY, t.life, c.landing), '23:59:59')) AS date_end
+ FROM (
+ SELECT c.Id_Article item_id, MAX(landing) landing
+ FROM vn2008.Compres c
+ JOIN vn2008.Entradas e ON c.Id_Entrada = e.Id_Entrada
+ JOIN vn2008.travel t ON t.id = e.travel_id
+ JOIN vn2008.warehouse w ON w.id = t.warehouse_id
+ WHERE t.landing BETWEEN v_date_inv AND v_date_ini
+ AND t.warehouse_id = v_warehouse
+ AND NOT e.Inventario
+ AND NOT e.Redada
+ GROUP BY Id_Article
+ ) c
+ 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;
+ INSERT INTO item_range_copy1
+ SELECT * FROM item_range;
+
+ DROP TEMPORARY TABLE IF EXISTS item_range_copy2;
+ CREATE TEMPORARY TABLE item_range_copy2 LIKE item_range;
+ INSERT INTO item_range_copy2
+ SELECT * FROM item_range;
+
+ DROP TEMPORARY TABLE IF EXISTS item_range_copy3;
+ CREATE TEMPORARY TABLE item_range_copy3 LIKE item_range;
+ INSERT INTO item_range_copy3
+ SELECT * FROM item_range;
+
+ DROP TEMPORARY TABLE IF EXISTS item_range_copy4;
+ CREATE TEMPORARY TABLE item_range_copy4 LIKE item_range;
+ INSERT INTO item_range_copy4
+ SELECT * FROM item_range;
+
+ -- Calcula el ATP
+
+ DELETE FROM available WHERE calc_id = v_calc;
+
+ INSERT INTO available (calc_id, item_id, available)
+ SELECT v_calc, t.item_id, SUM(stock) amount FROM (
+ SELECT ti.item_id, stock
+ FROM vn2008.tmp_item ti
+ JOIN item_range ir ON ir.item_id = ti.item_id
+ UNION ALL
+ SELECT t.item_id, minacum(dt, amount, v_date) AS available FROM (
+ SELECT item_id, DATE(dat) dt, SUM(amount) amount FROM (
+ SELECT i.item_id, i.dat, i.amount
+ FROM vn2008.item_out i
+ JOIN item_range_copy1 ir ON ir.item_id = i.item_id
+ WHERE i.dat >= v_date_ini
+ AND (ir.date_end IS NULL OR i.dat <= ir.date_end)
+ AND i.warehouse_id = v_warehouse
+ UNION ALL
+ SELECT i.item_id, i.dat, i.amount
+ FROM vn2008.item_entry_in i
+ JOIN item_range_copy2 ir ON ir.item_id = i.item_id
+ WHERE i.dat >= v_date_ini
+ AND (ir.date_end IS NULL OR i.dat <= ir.date_end)
+ AND i.warehouse_id = v_warehouse
+ UNION ALL
+ SELECT i.item_id, i.dat, i.amount
+ FROM vn2008.item_entry_out i
+ JOIN item_range_copy3 ir ON ir.item_id = i.item_id
+ WHERE i.dat >= v_date_ini
+ AND (ir.date_end IS NULL OR i.dat <= ir.date_end)
+ AND i.warehouse_id = v_warehouse
+ UNION ALL
+ SELECT r.item_id, r.shipment, -r.amount
+ FROM hedera.order_row r
+ JOIN hedera.`order` o ON o.id = r.order_id
+ JOIN item_range_copy4 ir ON ir.item_id = r.item_id
+ WHERE r.shipment >= v_date_ini
+ AND (ir.date_end IS NULL OR r.shipment <= ir.date_end)
+ AND r.warehouse_id = v_warehouse
+ AND r.created >= v_reserve_date
+ AND NOT o.confirmed
+ ) t
+ GROUP BY item_id, dt
+ ) t
+ GROUP BY t.item_id
+ ) t GROUP BY t.item_id HAVING amount != 0;
+
+ DROP TEMPORARY TABLE
+ vn2008.tmp_item
+ ,item_range
+ ,item_range_copy1
+ ,item_range_copy2
+ ,item_range_copy3
+ ,item_range_copy4;
+
+ CALL cache_calc_end (v_calc);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `barcodes_articles_update` */;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `barcodes_articles_update`()
+BEGIN
+
+REPLACE cache.barcodes
+
+ SELECT
+ `Articles`.`Id_Article` AS `code`,
+ `Articles`.`Id_Article` AS `Id_Article`,
+ `Articles`.`Article` AS `Article`,
+ `Articles`.`Medida` AS `Medida`,
+ `Articles`.`Color` AS `Color`,
+ `Articles`.`Categoria` AS `Categoria`,
+ `p`.`name` AS `Producer`
+ FROM
+ vn2008.Articles
+ LEFT JOIN vn2008.`producer` `p` using(producer_id);
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `barcodes_barcodes_update` */;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `barcodes_barcodes_update`()
+BEGIN
+
+REPLACE cache.barcodes
+
+ SELECT
+ `barcodes`.`code` AS `code`,
+ `barcodes`.`Id_Article` AS `Id_Article`,
+ `Articles`.`Article` AS `Article`,
+ `Articles`.`Medida` AS `Medida`,
+ `Articles`.`Color` AS `Color`,
+ `Articles`.`Categoria` AS `Categoria`,
+ `p`.`name` AS `Producer`
+ FROM
+ vn2008.`barcodes`
+ JOIN
+ vn2008.Articles using(Id_Article)
+ LEFT JOIN vn2008.`producer` `p` using(producer_id);
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `barcodes_compres_update` */;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `barcodes_compres_update`()
+BEGIN
+
+REPLACE cache.barcodes
+
+ SELECT
+ Compres.`Id_Compra` AS `code`,
+ Compres.`Id_Article` AS `Id_Article`,
+ `Articles`.`Article` AS `Article`,
+ `Articles`.`Medida` AS `Medida`,
+ `Articles`.`Color` AS `Color`,
+ `Articles`.`Categoria` AS `Categoria`,
+ producer.`name` AS `Producer`
+
+
+ FROM
+ vn2008.Compres
+ JOIN vn2008.Articles using(Id_Article)
+ LEFT JOIN vn2008.producer using(producer_id)
+ JOIN vn2008.Entradas using(Id_Entrada)
+ JOIN vn2008.travel on travel.id = travel_id
+ WHERE
+ landing >= TIMESTAMPADD(WEEK, -2, CURDATE())
+ ;
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `barcodes_expeditions_update` */;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `barcodes_expeditions_update`(IN idExpedition BIGINT)
+BEGIN
+
+REPLACE cache.barcodes
+
+ SELECT
+ `e`.`expeditions_id` AS `code`,
+ `Tickets`.`Id_Ruta` AS `Id_Article`,
+ `Tickets`.`Alias` AS `Article`,
+ `Tickets`.`Bultos` AS `Medida`,
+ `Tickets`.`Id_Ruta` AS `Color`,
+ `w`.`name` AS `Categoria`,
+ `a`.`Agencia` AS `Producer`
+ FROM
+ vn2008.expeditions `e`
+ JOIN vn2008.Tickets ON `Tickets`.`Id_Ticket` = `e`.`ticket_id`
+ JOIN vn2008.warehouse `w` ON `w`.`id` = `Tickets`.`warehouse_id`
+ JOIN vn2008.Rutas `r` ON `r`.`Id_Ruta` = `Tickets`.`Id_Ruta`
+ JOIN vn2008.Agencias `a` ON `a`.`Id_Agencia` = `r`.`Id_Agencia`
+ WHERE
+ idExpedition IN (e.expeditions_id,0)
+ AND
+ `Tickets`.`Fecha` >= (CURDATE() + INTERVAL -(2) DAY)
+
+
+ ;
+
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `barcodes_update` */;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `barcodes_update`()
+BEGIN
+
+ declare allExpeditions int default 0;
+
+ call barcodes_articles_update;
+
+ call barcodes_barcodes_update;
+
+ call barcodes_compres_update;
+
+ call barcodes_expeditions_update(allExpeditions);
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `cacheCalcClean` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `cacheCalcClean`()
+BEGIN
+ DECLARE vCleanTime DATETIME DEFAULT TIMESTAMPADD(MINUTE, -5, NOW());
+
+ DELETE FROM cache_calc WHERE expires < vCleanTime;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `cache_calc_end` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `cache_calc_end`(v_calc INT)
+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
+ cc.last_refresh = NOW(),
+ cc.expires = ADDTIME(NOW(), c.lifetime),
+ cc.connection_id = NULL
+ WHERE cc.id = v_calc;
+
+ SELECT c.name, ca.params INTO v_cache_name, v_params
+ FROM cache c
+ JOIN cache_calc ca ON c.id = ca.cache_id
+ WHERE ca.id = v_calc;
+
+ DO RELEASE_LOCK(CONCAT_WS('/', v_cache_name, IFNULL(v_params, '')));
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `cache_calc_start` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `cache_calc_start`(OUT v_calc INT, INOUT v_refresh BOOL, v_cache_name VARCHAR(50), v_params VARCHAR(100))
+proc: BEGIN
+ DECLARE v_valid BOOL;
+ DECLARE v_lock_id VARCHAR(100);
+ DECLARE v_cache_id INT;
+ DECLARE v_expires DATETIME;
+ DECLARE v_clean_time DATETIME;
+
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION
+ BEGIN
+ DO RELEASE_LOCK(v_lock_id);
+ RESIGNAL;
+ END;
+
+ 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;
+
+ IF !v_valid
+ THEN
+ DELETE FROM cache_calc;
+ 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);
+
+ IF !GET_LOCK(v_lock_id, 30)
+ THEN
+ SET v_calc = NULL;
+ SET v_refresh = FALSE;
+ 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
+ FROM cache c
+ LEFT JOIN cache_calc ca
+ 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
+ DO RELEASE_LOCK(v_lock_id);
+ SET v_refresh = FALSE;
+ LEAVE proc;
+ END IF;
+
+ -- Si el calculo no existe le crea una entrada en la tabla de calculos.
+
+ IF v_calc IS NULL
+ THEN
+ INSERT INTO cache_calc SET
+ cache_id = v_cache_id,
+ cacheName = v_cache_name,
+ params = v_params,
+ last_refresh = NULL,
+ expires = NULL,
+ connection_id = CONNECTION_ID();
+
+ SET v_calc = LAST_INSERT_ID();
+ ELSE
+ UPDATE cache_calc
+ SET
+ last_refresh = NULL,
+ expires = NULL,
+ connection_id = CONNECTION_ID()
+ WHERE id = v_calc;
+ END IF;
+
+ -- Si se debe recalcular mantiene el bloqueo y devuelve su identificador.
+
+ SET v_refresh = TRUE;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `cache_calc_unlock` */;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `cache_calc_unlock`(v_calc INT)
+BEGIN
+ DECLARE v_cache_name VARCHAR(50);
+ DECLARE v_params VARCHAR(100);
+
+ SELECT c.name, ca.params INTO v_cache_name, v_params
+ FROM cache c
+ JOIN cache_calc ca ON c.id = ca.cache_id
+ WHERE ca.id = v_calc;
+
+ DELETE FROM cache_calc WHERE id = v_calc;
+
+ DO RELEASE_LOCK(CONCAT_WS('/', v_cache_name, IFNULL(v_params, '')));
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `clean` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `clean`()
+BEGIN
+
+ DECLARE vDateShort DATETIME;
+
+ SET vDateShort = TIMESTAMPADD(MONTH, -1, CURDATE());
+
+ INSERT INTO cache.daily_task_log(state) VALUES('clean START');
+
+ DELETE FROM cache.departure_limit WHERE Fecha < vDateShort;
+
+ INSERT INTO cache.daily_task_log(state) VALUES('clean END');
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `departure_timing` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `departure_timing`()
+BEGIN
+
+DECLARE done BOOL DEFAULT FALSE;
+DECLARE rsDeparture INT;
+DECLARE rsHoras DECIMAL(5,2);
+DECLARE rsInicio DECIMAL(5,2);
+DECLARE resto DECIMAL(5,2);
+DECLARE horasProd DECIMAL(5,2);
+DECLARE inicioProd DECIMAL(5,2) DEFAULT 24.00;
+DECLARE myTime DECIMAL(5,2);
+DECLARE departureLimit INT;
+DECLARE myWarehouse INT;
+DECLARE myMinSpeed DECIMAL(10,2);
+
+
+DECLARE rs CURSOR FOR
+ SELECT Departure
+ , Sum(pb.m3)/(GREATEST(v.m3,IFNULL(minSpeed,0))/1.3) AS Horas
+ , curDate()+(Departure-(Sum(pb.m3)/(GREATEST(v.m3,IFNULL(minSpeed,0))/1.3))/24) AS InicioPreparacion
+ FROM tmp.production_buffer pb
+ JOIN vn2008.v_encajado_ultima_hora v ON v.warehouse_id = pb.warehouse_id
+ LEFT JOIN cache.departure_limit dp ON dp.warehouse_id = pb.warehouse_id AND dp.fecha = CURDATE()
+ WHERE pb.Fecha = CURDATE()
+ AND alert_level < 2
+ AND IFNULL(Departure,0) > 0
+ GROUP BY Departure
+ ORDER BY Departure DESC;
+
+DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
+
+SET myTime = HOUR(now()) + MINUTE(now()) / 60;
+
+SELECT warehouse_id INTO myWarehouse
+FROM tmp.production_buffer
+LIMIT 1;
+
+OPEN rs;
+
+FETCH rs INTO rsDeparture, rsHoras , rsInicio;
+
+-- SELECT rsDeparture, rsHoras , rsInicio, myWarehouse;
+
+WHILE NOT done DO
+
+ SET resto = IF(inicioProd < rsDeparture, rsDeparture - inicioProd,0);
+
+ SET inicioProd = rsDeparture - rsHoras;
+
+ IF inicioProd - resto < myTime THEN
+
+ SET done = TRUE;
+
+ ELSE
+
+ SET departureLimit = rsDeparture;
+
+ FETCH rs INTO rsDeparture, rsHoras , rsInicio;
+
+ -- SELECT rsDeparture, rsHoras , rsInicio;
+
+ END IF;
+
+END WHILE;
+
+SET departureLimit = IFNULL(departureLimit,24);
+SET departureLimit = IF(departureLimit = 0, 24, departureLimit);
+
+ SELECT minSpeed INTO myMinSpeed
+ FROM cache.departure_limit
+ WHERE warehouse_id = myWarehouse
+ AND fecha = CURDATE();
+
+ REPLACE cache.departure_limit(warehouse_id, fecha, hora, minSpeed)
+ VALUES (myWarehouse, CURDATE(), IFNULL(departureLimit,24), IFNULL(myMinSpeed,0));
+
+
+CLOSE rs;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `departure_timing_beta` */;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `departure_timing_beta`()
+BEGIN
+
+DECLARE done BOOL DEFAULT FALSE;
+DECLARE rsDeparture INT;
+DECLARE rsHoras DECIMAL(5,2);
+DECLARE rsInicio DECIMAL(5,2);
+DECLARE resto DECIMAL(5,2);
+DECLARE horasProd DECIMAL(5,2);
+DECLARE inicioProd DECIMAL(5,2) DEFAULT 24.00;
+DECLARE myTime DECIMAL(5,2);
+DECLARE departureLimit INT;
+DECLARE myWarehouse INT;
+
+DECLARE rs CURSOR FOR
+ SELECT Departure
+ , Sum(pb.m3)/GREATEST(v.m3,IFNULL(minSpeed,0)) AS Horas
+ , curDate()+(Departure-(Sum(pb.m3)/GREATEST(v.m3,IFNULL(minSpeed,0)))/24) AS InicioPreparacion
+ FROM tmp.production_buffer pb
+ JOIN vn2008.v_encajado_ultima_hora v ON v.warehouse_id = pb.warehouse_id
+ LEFT JOIN cache.departure_limit dp ON dp.warehouse_id = pb.warehouse_id AND dp.fecha = CURDATE()
+ WHERE pb.Fecha = CURDATE()
+ AND alert_level < 2
+ AND IFNULL(Departure,0) > 0
+ GROUP BY Departure
+ ORDER BY Departure DESC;
+
+DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
+
+
+
+SET myTime = HOUR(now()) + MINUTE(now()) / 60;
+
+SELECT warehouse_id INTO myWarehouse
+FROM tmp.production_buffer
+LIMIT 1;
+
+OPEN rs;
+
+FETCH rs INTO rsDeparture, rsHoras , rsInicio;
+
+SELECT rsDeparture, rsHoras , rsInicio, myWarehouse, done;
+
+WHILE NOT done DO
+
+ SET resto = IF(inicioProd < rsDeparture, rsDeparture - inicioProd,0);
+
+ SET inicioProd = rsDeparture - rsHoras;
+
+ SELECT rsDeparture, rsHoras , rsInicio, resto,inicioProd;
+
+ IF inicioProd - resto < myTime THEN
+
+ SET done = TRUE;
+
+ ELSE
+
+ SET departureLimit = rsDeparture;
+
+ FETCH rs INTO rsDeparture, rsHoras , rsInicio;
+
+ END IF;
+
+END WHILE;
+
+SELECT rsDeparture, rsHoras , rsInicio, resto,inicioProd;
+
+
+SET departureLimit = IFNULL(departureLimit,24);
+
+IF departureLimit > 0 THEN
+
+ REPLACE cache.departure_limit(warehouse_id, fecha, hora, minSpeed)
+ VALUES (myWarehouse, CURDATE(), departureLimit, myMinSpeed);
+
+END IF;
+
+CLOSE rs;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `departure_timing_kk` */;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `departure_timing_kk`()
+BEGIN
+
+DECLARE done BOOL DEFAULT FALSE;
+DECLARE rsDeparture INT;
+DECLARE rsHoras DECIMAL(5,2);
+DECLARE rsInicio DECIMAL(5,2);
+DECLARE resto DECIMAL(5,2);
+DECLARE horasProd DECIMAL(5,2);
+DECLARE inicioProd DECIMAL(5,2) DEFAULT 24.00;
+DECLARE myTime DECIMAL(5,2);
+DECLARE departureLimit INT;
+DECLARE myWarehouse INT;
+DECLARE myMinSpeed DECIMAL(10,2);
+
+
+DECLARE rs CURSOR FOR
+ SELECT Departure
+ , Sum(pb.m3)/(GREATEST(v.m3, 100)/1.3) AS Horas
+ , curDate()+(Departure-Sum(pb.m3)/(GREATEST(v.m3, 100)/1.3))/24 AS InicioPreparacion
+ FROM tmp.production_buffer pb
+ JOIN vn2008.v_encajado_ultima_hora v ON v.warehouse_id = pb.warehouse_id
+ WHERE Fecha = CURDATE()
+ AND alert_level < 2
+ AND IFNULL(Departure,0) > 0
+ GROUP BY Departure
+ ORDER BY Departure DESC;
+
+DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
+
+SELECT IFNULL(minSpeed,0) INTO myMinSpeed
+FROM cache.departure_limit
+WHERE warehouse_id = myWarehouse
+AND fecha = CURDATE();
+
+SET myTime = HOUR(now()) + MINUTE(now()) / 60;
+
+SELECT warehouse_id INTO myWarehouse
+FROM tmp.production_buffer
+LIMIT 1;
+
+OPEN rs;
+
+FETCH rs INTO rsDeparture, rsHoras , rsInicio;
+
+WHILE NOT done DO
+
+ SET resto = IF(inicioProd < rsDeparture, rsDeparture - inicioProd,0);
+
+ SET inicioProd = rsDeparture - rsHoras;
+
+ IF inicioProd - resto < myTime THEN
+
+ SET done = TRUE;
+
+ ELSE
+
+ SET departureLimit = rsDeparture;
+
+ FETCH rs INTO rsDeparture, rsHoras , rsInicio;
+
+ END IF;
+
+END WHILE;
+
+IF departureLimit > 0 THEN
+
+ REPLACE cache.departure_limit(warehouse_id, fecha, hora, minSpeed)
+ VALUES (myWarehouse, CURDATE(), departureLimit, myMinSpeed);
+
+END IF;
+
+CLOSE rs;
+
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `equaliza` */;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `equaliza`(wh_id INT)
+BEGIN
+ -- DEPRECATED usar equalizator_refesh
+
+
+
+ CALL equalizator_refresh (FALSE, wh_id);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `equalizator_refresh` */;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `equalizator_refresh`(v_refresh BOOL, wh_id INT)
+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 */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `item_range_refresh` */;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `item_range_refresh`(OUT v_calc INT, v_refresh BOOL, v_warehouse INT, v_date DATE)
+proc: BEGIN
+ DECLARE v_params CHAR(100);
+ DECLARE v_date_inv DATE;
+
+ IF v_date < CURDATE()
+ THEN
+ LEAVE proc;
+ END IF;
+
+ SET v_params = CONCAT_WS('/', v_warehouse, v_date);
+ CALL cache_calc_start (v_calc, v_refresh, 'item_range', v_params);
+
+ IF !v_refresh
+ THEN
+ LEAVE proc;
+ END IF;
+
+ -- Limpia las caches antiguas
+
+ DELETE FROM item_range WHERE calc_id NOT IN (
+ SELECT cc.id
+ FROM `cache` c
+ 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
+ (INDEX (item_id))
+ ENGINE = MEMORY
+ SELECT c.item_id, IF(t.life IS NULL, NULL, TIMESTAMPADD(DAY, t.life + 1, GREATEST(c.landing, b.landing))) AS date_end
+ FROM last_buy b
+ JOIN (
+ SELECT c.Id_Article item_id, MAX(landing) landing
+ FROM vn2008.Compres c
+ JOIN vn2008.Entradas e ON c.Id_Entrada = e.Id_Entrada
+ JOIN vn2008.travel t ON t.id = e.travel_id
+ JOIN vn2008.warehouse w ON w.id = t.warehouse_id
+ WHERE t.landing BETWEEN v_date_inv AND v_date
+ AND t.warehouse_id = v_warehouse
+ AND NOT e.Inventario
+ AND NOT e.Redada
+ GROUP BY item_id
+ ) c ON c.item_id = b.item_id
+ JOIN vn2008.Articles a ON a.Id_Article = b.item_id
+ JOIN vn2008.Tipos t ON t.tipo_id = a.tipo_id
+ 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
+ ENGINE = MEMORY
+ SELECT item_id, date_end FROM (
+ SELECT p.item_id, p.date_end
+ FROM vn2008.price_fixed p
+ LEFT JOIN tmp.item_range i USING(item_id)
+ WHERE IFNULL(i.date_end, v_date) 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;
+
+ -- Calcula los rangos
+
+ DELETE FROM item_range WHERE calc_id = v_calc;
+
+ INSERT INTO item_range (calc_id, item_id, date_end)
+ SELECT v_calc, item_id, date_end
+ FROM (
+ SELECT * FROM tmp.fix_range
+ UNION ALL
+ SELECT * FROM tmp.item_range
+ ) t
+ GROUP BY item_id;
+
+ -- Limpieza
+
+ DROP TEMPORARY TABLE tmp.item_range;
+ DROP TEMPORARY TABLE tmp.fix_range;
+
+ CALL cache_calc_end (v_calc);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `last_buy_refresh` */;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ DECLARE v_last_refresh DATE;
+
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION
+ BEGIN
+ CALL cache_calc_unlock (v_calc);
+ RESIGNAL;
+ END;
+
+ CALL cache_calc_start (v_calc, v_refresh, 'last_buy', NULL);
+
+ IF !v_refresh
+ THEN
+ 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());
+
+ CALL vn2008.item_last_buy_from_interval (NULL, v_date_ini, v_date_end);
+
+ DELETE FROM last_buy;
+
+ INSERT INTO last_buy (item_id, warehouse_id, buy_id, landing)
+ SELECT item_id, warehouse_id, buy_id, landing
+ FROM tmp.item_last_buy_from_interval;
+
+ DROP TEMPORARY TABLE tmp.item_last_buy_from_interval;
+
+ CALL cache_calc_end (v_calc);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `prod_graphic_refresh` */;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `prod_graphic_refresh`(v_refresh BOOL, wh_id INT)
+proc: BEGIN
+ DECLARE datEQ DATETIME;
+ DECLARE timDIF TIME;
+ DECLARE v_calc INT;
+
+ CALL cache_calc_start (v_calc, v_refresh, 'prod_graphic', wh_id);
+
+ IF !v_refresh
+ THEN
+ LEAVE proc;
+ END IF;
+
+ CALL vn2008.production_control_source(wh_id, 0);
+
+ DELETE FROM prod_graphic_source;
+
+ INSERT INTO prod_graphic_source (warehouse_id, alert_level, m3, hora, `order`, Agencia)
+ SELECT
+ wh_id,
+ pb.alert_level,
+ m3,
+ pb.Hora,
+ pb.state_order,
+ pb.Agencia
+ FROM tmp.production_buffer pb
+ WHERE Fecha = CURDATE()
+ ;
+
+
+ CALL cache_calc_end (v_calc);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `sales_refresh` */;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `sales_refresh`()
+proc:BEGIN
+
+ DECLARE v_calc INT;
+ DECLARE v_refresh BOOL DEFAULT TRUE;
+ DECLARE datMONTH INT;
+ DECLARE datYEAR INT;
+
+ CALL cache_calc_start (v_calc, v_refresh, 'sales', NULL);
+
+ IF !v_refresh
+ THEN
+ LEAVE proc;
+ END IF;
+
+
+ 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
+ from vn2008.time
+ where date <= CURDATE()
+ 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
+ join tmp.periods using(year,month)
+ left join (SELECT jerarquia.boss_id, jerarquia.worker_id
+ FROM vn2008.jerarquia
+ ) j on j.worker_id = v.Id_Trabajador
+ group by v.Id_Trabajador, year, month;
+
+
+
+ -- 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;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.periods;
+
+ CALL cache_calc_end (v_calc);
+
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `stock_refresh` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ DECLARE v_last_refresh DATETIME;
+
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION
+ BEGIN
+ CALL cache_calc_unlock (v_calc);
+ RESIGNAL;
+ END;
+
+ CALL cache_calc_start (v_calc, v_refresh, 'stock', NULL);
+
+ IF !v_refresh
+ THEN
+ LEAVE proc;
+ END IF;
+
+ SET v_date_inv = (SELECT FechaInventario FROM vn2008.tblContadores LIMIT 1);
+ SET v_curdate = CURDATE();
+
+ DELETE FROM stock;
+
+ INSERT INTO stock (item_id, warehouse_id, amount)
+ SELECT item_id, warehouse_id, SUM(amount) amount FROM
+ (
+ SELECT item_id, warehouse_id, amount FROM vn2008.item_out
+ WHERE dat >= v_date_inv AND dat < v_curdate
+ UNION ALL
+ SELECT item_id, warehouse_id, amount FROM vn2008.item_entry_in
+ WHERE dat >= v_date_inv AND dat < v_curdate
+ UNION ALL
+ SELECT item_id ,warehouse_id, amount FROM vn2008.item_entry_out
+ WHERE dat >= v_date_inv AND dat < v_curdate
+ ) t
+ GROUP BY item_id, warehouse_id HAVING amount != 0;
+
+ CALL cache_calc_end (v_calc);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `visible_refresh` */;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `visible_refresh`(OUT v_calc INT, v_refresh BOOL, v_warehouse INT)
+proc: BEGIN
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION
+ BEGIN
+ CALL cache_calc_unlock (v_calc);
+ RESIGNAL;
+ END;
+
+ CALL cache_calc_start (v_calc, v_refresh, 'visible', v_warehouse);
+
+ IF !v_refresh
+ THEN
+ LEAVE proc;
+ END IF;
+
+ -- Limpia las caches antiguas
+
+ IF TRUE -- GET_LOCK('visible/clean', 1)
+ THEN
+ DELETE FROM visible WHERE calc_id NOT IN (
+ SELECT cc.id
+ FROM `cache` c
+ 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);
+
+ DROP TEMPORARY TABLE IF EXISTS vn2008.tmp_item;
+ CREATE TEMPORARY TABLE vn2008.tmp_item
+ (PRIMARY KEY (item_id))
+ ENGINE = MEMORY
+ 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);
+
+ DELETE FROM visible WHERE calc_id = v_calc;
+
+ INSERT INTO visible (calc_id, item_id,visible)
+ SELECT v_calc, item_id, visible FROM vn2008.tmp_item;
+
+ CALL cache_calc_end (v_calc);
+
+ DROP TEMPORARY TABLE vn2008.tmp_item;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `weekly_sales_refresh` */;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `weekly_sales_refresh`(v_refresh BOOL)
+BEGIN
+ DECLARE v_week_ini INT;
+ DECLARE v_week_end INT;
+ DECLARE v_date_ini DATE;
+ DECLARE v_date_end DATE;
+ DECLARE v_last_refresh DATE;
+
+ IF GET_LOCK('weekly_sales', 300)
+ THEN
+ SELECT last_refresh INTO v_last_refresh FROM weekly_sales_info;
+
+ IF v_last_refresh IS NULL THEN
+ SET v_refresh = TRUE;
+ END IF;
+
+ IF v_refresh || v_last_refresh < CURDATE()
+ THEN
+ SET v_date_ini = TIMESTAMPADD(DAY, -(366 * 1.5), CURDATE());
+ SET v_date_end = TIMESTAMPADD(DAY, -1, CURDATE());
+
+ IF v_refresh
+ THEN
+ TRUNCATE TABLE weekly_sales;
+ ELSE
+ SET v_week_ini = vn2008.to_weeks (v_date_ini);
+ SET v_date_ini = TIMESTAMPADD(DAY, -WEEKDAY(v_last_refresh) - 7, v_last_refresh);
+ SET v_week_end = vn2008.to_weeks (v_date_ini);
+
+ DELETE FROM weekly_sales
+ WHERE week < v_week_ini OR week >= v_week_end;
+ END IF;
+
+ CALL vn2008.weekly_sales_new (0, v_date_ini, v_date_end);
+
+ INSERT INTO weekly_sales (item_id, week, warehouse_id, amount, price)
+ SELECT item_id, week, warehouse_id, amount, price FROM vn2008.weekly_sales;
+
+ DROP TEMPORARY TABLE vn2008.weekly_sales;
+
+ TRUNCATE TABLE weekly_sales_info;
+ INSERT INTO weekly_sales_info (last_refresh) VALUES (CURDATE());
+ END IF;
+
+ DO RELEASE_LOCK('weekly_sales');
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `cache` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+
+--
+-- Current Database: `pbx`
+--
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `pbx` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */;
+
+USE `pbx`;
+
+--
+-- Table structure for table `blacklist`
+--
+
+DROP TABLE IF EXISTS `blacklist`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `blacklist` (
+ `phone` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`phone`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Hangup input calls from this list';
+/*!40101 SET character_set_client = @saved_cs_client */;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `pbx`.`blacklistBeforeInsert`
+BEFORE INSERT ON `blacklist` FOR EACH ROW
+BEGIN
+ CALL phoneIsValid (NEW.phone);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `pbx`.`blacklistBerforeUpdate`
+BEFORE UPDATE ON `blacklist` FOR EACH ROW
+BEGIN
+ CALL phoneIsValid (NEW.phone);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+
+--
+-- Table structure for table `cdr`
+--
+
+DROP TABLE IF EXISTS `cdr`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cdr` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `call_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `clid` varchar(80) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+ `src` varchar(80) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+ `dst` varchar(80) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+ `dcontext` varchar(80) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+ `channel` varchar(80) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+ `dst_channel` varchar(80) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+ `last_app` varchar(80) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+ `last_data` varchar(80) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+ `duration` int(11) NOT NULL DEFAULT '0',
+ `billsec` int(11) NOT NULL DEFAULT '0',
+ `disposition` varchar(45) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+ `ama_flags` int(11) NOT NULL DEFAULT '0',
+ `account_code` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+ `unique_id` varchar(32) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+ `user_field` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+ PRIMARY KEY (`id`),
+ KEY `calldate` (`call_date`),
+ KEY `dst` (`dst`),
+ KEY `accountcode` (`account_code`),
+ KEY `dstchannel` (`dst_channel`),
+ KEY `disposition` (`disposition`),
+ KEY `src` (`src`)
+) ENGINE=MyISAM AUTO_INCREMENT=156174 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `cdrConf`
+--
+
+DROP TABLE IF EXISTS `cdrConf`;
+/*!50001 DROP VIEW IF EXISTS `cdrConf`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `cdrConf` AS SELECT
+ 1 AS `calldate`,
+ 1 AS `clid`,
+ 1 AS `src`,
+ 1 AS `dst`,
+ 1 AS `dcontext`,
+ 1 AS `channel`,
+ 1 AS `dstchannel`,
+ 1 AS `lastapp`,
+ 1 AS `lastdata`,
+ 1 AS `duration`,
+ 1 AS `billsec`,
+ 1 AS `disposition`,
+ 1 AS `amaflags`,
+ 1 AS `accountcode`,
+ 1 AS `uniqueid`,
+ 1 AS `userfield`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `config`
+--
+
+DROP TABLE IF EXISTS `config`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `config` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `sundayFestive` tinyint(4) NOT NULL,
+ `countryPrefix` varchar(20) CHARACTER SET utf8 DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Global configuration';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `followme`
+--
+
+DROP TABLE IF EXISTS `followme`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `followme` (
+ `extension` varchar(128) CHARACTER SET utf8 NOT NULL,
+ `phone` varchar(20) CHARACTER SET utf8 NOT NULL,
+ PRIMARY KEY (`extension`),
+ CONSTRAINT `followme_ibfk_1` FOREIGN KEY (`extension`) REFERENCES `sip` (`extension`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `pbx`.`followmeBeforeInsert`
+BEFORE INSERT ON `followme` FOR EACH ROW
+BEGIN
+ CALL pbx.phoneIsValid (NEW.phone);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `pbx`.`followmeBeforeUpdate`
+BEFORE UPDATE ON `followme` FOR EACH ROW
+BEGIN
+ CALL pbx.phoneIsValid (NEW.phone);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+
+--
+-- Temporary view structure for view `followmeConf`
+--
+
+DROP TABLE IF EXISTS `followmeConf`;
+/*!50001 DROP VIEW IF EXISTS `followmeConf`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `followmeConf` AS SELECT
+ 1 AS `name`,
+ 1 AS `music`,
+ 1 AS `context`,
+ 1 AS `takecall`,
+ 1 AS `declinecall`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `followmeConfig`
+--
+
+DROP TABLE IF EXISTS `followmeConfig`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `followmeConfig` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `music` varchar(50) CHARACTER SET utf8 DEFAULT NULL,
+ `context` varchar(50) CHARACTER SET utf8 NOT NULL,
+ `takeCall` char(1) CHARACTER SET utf8 NOT NULL,
+ `declineCall` char(1) CHARACTER SET utf8 NOT NULL,
+ `timeout` int(11) NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `followmeNumberConf`
+--
+
+DROP TABLE IF EXISTS `followmeNumberConf`;
+/*!50001 DROP VIEW IF EXISTS `followmeNumberConf`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `followmeNumberConf` AS SELECT
+ 1 AS `name`,
+ 1 AS `ordinal`,
+ 1 AS `phonenumber`,
+ 1 AS `timeout`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `queue`
+--
+
+DROP TABLE IF EXISTS `queue`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `queue` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `description` varchar(128) CHARACTER SET utf8 NOT NULL,
+ `name` varchar(128) CHARACTER SET utf8 NOT NULL,
+ `config` int(10) unsigned NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `name` (`name`),
+ UNIQUE KEY `description` (`description`),
+ KEY `config` (`config`),
+ CONSTRAINT `queue_ibfk_1` FOREIGN KEY (`config`) REFERENCES `queueConfig` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Queues';
+/*!40101 SET character_set_client = @saved_cs_client */;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `pbx`.`queueBeforeInsert`
+BEFORE INSERT ON `queue` FOR EACH ROW
+BEGIN
+ CALL queueIsValid (NEW.name);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `pbx`.`queueBeforeUpdate`
+BEFORE UPDATE ON `queue` FOR EACH ROW
+BEGIN
+ CALL queueIsValid (NEW.name);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+
+--
+-- Temporary view structure for view `queueConf`
+--
+
+DROP TABLE IF EXISTS `queueConf`;
+/*!50001 DROP VIEW IF EXISTS `queueConf`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `queueConf` AS SELECT
+ 1 AS `name`,
+ 1 AS `strategy`,
+ 1 AS `timeout`,
+ 1 AS `retry`,
+ 1 AS `weight`,
+ 1 AS `maxlen`,
+ 1 AS `ringinuse`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `queueConfig`
+--
+
+DROP TABLE IF EXISTS `queueConfig`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `queueConfig` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `strategy` varchar(128) CHARACTER SET utf8 NOT NULL,
+ `timeout` int(10) unsigned NOT NULL,
+ `retry` int(10) unsigned NOT NULL,
+ `weight` int(10) unsigned NOT NULL,
+ `maxLen` int(10) unsigned NOT NULL,
+ `ringInUse` tinyint(4) NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Default values for queues configuration';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `queueMember`
+--
+
+DROP TABLE IF EXISTS `queueMember`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `queueMember` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `queue` varchar(128) CHARACTER SET utf8 NOT NULL,
+ `extension` varchar(128) CHARACTER SET utf8 NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `queue` (`queue`,`extension`),
+ KEY `extension` (`extension`),
+ CONSTRAINT `queueMember_ibfk_1` FOREIGN KEY (`queue`) REFERENCES `queue` (`name`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `queueMember_ibfk_2` FOREIGN KEY (`extension`) REFERENCES `sip` (`extension`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Queue members';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `queueMemberConf`
+--
+
+DROP TABLE IF EXISTS `queueMemberConf`;
+/*!50001 DROP VIEW IF EXISTS `queueMemberConf`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `queueMemberConf` AS SELECT
+ 1 AS `uniqueid`,
+ 1 AS `queue_name`,
+ 1 AS `interface`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `queuePhone`
+--
+
+DROP TABLE IF EXISTS `queuePhone`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `queuePhone` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `queue` varchar(128) CHARACTER SET utf8 NOT NULL,
+ `phone` varchar(128) CHARACTER SET utf8 NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `queue` (`queue`,`phone`),
+ CONSTRAINT `queuePhone_ibfk_1` FOREIGN KEY (`queue`) REFERENCES `queue` (`name`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `pbx`.`queuePhoneBeforeInsert`
+BEFORE INSERT ON `queuePhone` FOR EACH ROW
+BEGIN
+ CALL phoneIsValid (NEW.phone);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `pbx`.`queuePhoneBeforeUpdate`
+BEFORE UPDATE ON `queuePhone` FOR EACH ROW
+BEGIN
+ CALL phoneIsValid (NEW.phone);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+
+--
+-- Table structure for table `schedule`
+--
+
+DROP TABLE IF EXISTS `schedule`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `schedule` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `weekDay` tinyint(3) unsigned NOT NULL COMMENT '0 = Monday, 6 = Sunday',
+ `timeStart` time NOT NULL,
+ `timeEnd` time NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `sip`
+--
+
+DROP TABLE IF EXISTS `sip`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `sip` (
+ `user_id` int(10) unsigned NOT NULL DEFAULT '0',
+ `extension` varchar(128) CHARACTER SET utf8 NOT NULL,
+ `secret` varchar(80) CHARACTER SET utf8 NOT NULL,
+ `caller_id` varchar(80) CHARACTER SET utf8 NOT NULL,
+ PRIMARY KEY (`user_id`),
+ UNIQUE KEY `extension` (`extension`),
+ CONSTRAINT `sip_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='SIP accounts';
+/*!40101 SET character_set_client = @saved_cs_client */;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `pbx`.`sipBeforeInsert`
+BEFORE INSERT ON `sip` FOR EACH ROW
+BEGIN
+ CALL extensionIsValid (NEW.extension);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `sipAfterInsert`
+AFTER INSERT ON `sip` FOR EACH ROW
+BEGIN
+ INSERT INTO sipReg (userId) VALUES (NEW.user_id);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `pbx`.`sipBeforeUpdate`
+BEFORE UPDATE ON `sip` FOR EACH ROW
+BEGIN
+ CALL extensionIsValid (NEW.extension);
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+
+--
+-- Temporary view structure for view `sipConf`
+--
+
+DROP TABLE IF EXISTS `sipConf`;
+/*!50001 DROP VIEW IF EXISTS `sipConf`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `sipConf` AS SELECT
+ 1 AS `id`,
+ 1 AS `name`,
+ 1 AS `secret`,
+ 1 AS `callerid`,
+ 1 AS `host`,
+ 1 AS `deny`,
+ 1 AS `permit`,
+ 1 AS `type`,
+ 1 AS `context`,
+ 1 AS `incominglimit`,
+ 1 AS `pickupgroup`,
+ 1 AS `careinvite`,
+ 1 AS `ipaddr`,
+ 1 AS `regseconds`,
+ 1 AS `port`,
+ 1 AS `defaultuser`,
+ 1 AS `useragent`,
+ 1 AS `lastms`,
+ 1 AS `fullcontact`,
+ 1 AS `regserver`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `sipConfig`
+--
+
+DROP TABLE IF EXISTS `sipConfig`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `sipConfig` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `host` varchar(40) CHARACTER SET utf8 DEFAULT NULL,
+ `deny` varchar(95) CHARACTER SET utf8 NOT NULL,
+ `permit` varchar(95) CHARACTER SET utf8 NOT NULL,
+ `type` enum('user','peer','friend') CHARACTER SET utf8 NOT NULL,
+ `context` varchar(80) CHARACTER SET utf8 NOT NULL,
+ `incomingLimit` varchar(10) CHARACTER SET utf8 NOT NULL,
+ `pickupGroup` varchar(10) CHARACTER SET utf8 NOT NULL,
+ `careInvite` varchar(10) CHARACTER SET utf8 NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Default values for SIP accounts';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `sipReg`
+--
+
+DROP TABLE IF EXISTS `sipReg`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `sipReg` (
+ `userId` int(10) unsigned NOT NULL,
+ `ipAddr` varchar(40) CHARACTER SET utf8 DEFAULT NULL,
+ `regSeconds` int(10) unsigned DEFAULT NULL,
+ `port` varchar(50) CHARACTER SET utf8 DEFAULT NULL,
+ `defaultUser` varchar(50) CHARACTER SET utf8 DEFAULT NULL,
+ `userAgent` varchar(80) CHARACTER SET utf8 DEFAULT NULL,
+ `lastMs` varchar(50) CHARACTER SET utf8 DEFAULT NULL,
+ `fullContact` varchar(50) CHARACTER SET utf8 DEFAULT NULL,
+ `regServer` varchar(20) CHARACTER SET utf8 DEFAULT NULL,
+ PRIMARY KEY (`userId`),
+ CONSTRAINT `sipReg_ibfk_1` FOREIGN KEY (`userId`) REFERENCES `sip` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='SIP registrations';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping routines for database 'pbx'
+--
+/*!50003 DROP FUNCTION IF EXISTS `clientFromPhone` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `clientFromPhone`(vPhone VARCHAR(255)) RETURNS int(11)
+ DETERMINISTIC
+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
+ ENGINE = MEMORY
+ SELECT id_cliente customer
+ FROM vn2008.Clientes c
+ WHERE telefono = vPhone
+ OR movil = vPhone
+ UNION
+ SELECT id_cliente
+ FROM vn2008.Consignatarios
+ WHERE telefono = vPhone
+ OR movil = vPhone
+ UNION
+ SELECT r.id_cliente
+ FROM vn2008.Relaciones r
+ JOIN vn2008.Contactos c ON r.Id_Contacto = c.Id_Contacto
+ WHERE c.telefono = vPhone
+ OR c.movil = vPhone;
+
+ SELECT t.customer INTO vClient
+ FROM tmp.customer t
+ JOIN vn2008.Clientes c ON c.id_cliente = t.customer
+ WHERE c.activo
+ LIMIT 1;
+
+ DROP TEMPORARY TABLE tmp.customer;
+
+ RETURN vClient;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `phoneFormat` */;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `phoneFormat`(vPhone VARCHAR(255)) RETURNS varchar(255) CHARSET utf8
+BEGIN
+ DECLARE vI INT DEFAULT 0;
+ DECLARE vChr VARCHAR(1);
+ DECLARE vLen INT DEFAULT LENGTH(vPhone);
+ DECLARE vNewPhone VARCHAR(255) DEFAULT '';
+
+ WHILE vI < vLen
+ DO
+ SET vChr = SUBSTR(vPhone, vI + 1, 1);
+
+ IF vChr REGEXP '^[0-9]$'
+ THEN
+ SET vNewPhone = CONCAT(vNewPhone, vChr);
+ ELSEIF vChr = '+' AND vI = 0
+ THEN
+ SET vNewPhone = CONCAT(vNewPhone, '00');
+ END IF;
+
+ SET vI = vI + 1;
+ END WHILE;
+
+ IF vNewPhone REGEXP '^0+$' OR vNewPhone = '' THEN
+ RETURN NULL;
+ END IF;
+
+ IF vNewPhone REGEXP '^0034' THEN
+ SET vNewPhone = SUBSTR(vNewPhone, 5);
+ END IF;
+
+ RETURN vNewPhone;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `extensionIsValid` */;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `extensionIsValid`(vExtension VARCHAR(255))
+ DETERMINISTIC
+BEGIN
+ DECLARE vIsValid BOOLEAN;
+
+ SET vIsValid = vExtension IS NULL
+ OR (vExtension REGEXP '^[0-9]{4}$'
+ AND MOD(vExtension, 100) != 0);
+
+ IF NOT vIsValid
+ THEN
+ SIGNAL SQLSTATE '45000'
+ SET MESSAGE_TEXT = 'EXTENSION_INVALID_FORMAT';
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `phoneIsValid` */;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `phoneIsValid`(vPhone VARCHAR(255))
+BEGIN
+ DECLARE vIsValid BOOLEAN;
+
+ SET vIsValid = vPhone IS NULL
+ OR (vPhone REGEXP '^[0-9]+$'
+ AND vPhone NOT REGEXP '^0+$'
+ AND vPhone NOT REGEXP '^0034');
+
+ IF NOT vIsValid
+ THEN
+ SIGNAL SQLSTATE '45000'
+ SET MESSAGE_TEXT = 'PHONE_INVALID_FORMAT';
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+/*!50003 DROP PROCEDURE IF EXISTS `queueIsValid` */;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `queueIsValid`(vQueue VARCHAR(255))
+ DETERMINISTIC
+BEGIN
+ DECLARE vIsValid BOOLEAN;
+
+ SET vIsValid = vQueue IS NULL
+ OR vQueue REGEXP '^[1-9][0-9]00$';
+
+ IF NOT vIsValid
+ THEN
+ SIGNAL SQLSTATE '45000'
+ SET MESSAGE_TEXT = 'QUEUE_INVALID_FORMAT';
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+ALTER DATABASE `pbx` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+
+--
+-- Current Database: `hedera`
+--
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `hedera` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */;
+
+USE `hedera`;
+
+--
+-- Temporary view structure for view `address_view`
+--
+
+DROP TABLE IF EXISTS `address_view`;
+/*!50001 DROP VIEW IF EXISTS `address_view`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `address_view` AS SELECT
+ 1 AS `id`,
+ 1 AS `customer_id`,
+ 1 AS `warehouse_id`,
+ 1 AS `name`,
+ 1 AS `city`,
+ 1 AS `province_id`,
+ 1 AS `zip_code`,
+ 1 AS `consignee`,
+ 1 AS `default`,
+ 1 AS `type_id`,
+ 1 AS `specs`,
+ 1 AS `insurance`,
+ 1 AS `postage`,
+ 1 AS `active`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `basket`
+--
+
+DROP TABLE IF EXISTS `basket`;
+/*!50001 DROP VIEW IF EXISTS `basket`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `basket` AS SELECT
+ 1 AS `id`,
+ 1 AS `date_make`,
+ 1 AS `date_send`,
+ 1 AS `customer_id`,
+ 1 AS `delivery_method_id`,
+ 1 AS `agency_id`,
+ 1 AS `address_id`,
+ 1 AS `company_id`,
+ 1 AS `note`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `basket_defaults`
+--
+
+DROP TABLE IF EXISTS `basket_defaults`;
+/*!50001 DROP VIEW IF EXISTS `basket_defaults`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `basket_defaults` AS SELECT
+ 1 AS `address_id`,
+ 1 AS `agency_id`,
+ 1 AS `delivery_method`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `basket_item`
+--
+
+DROP TABLE IF EXISTS `basket_item`;
+/*!50001 DROP VIEW IF EXISTS `basket_item`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `basket_item` AS SELECT
+ 1 AS `id`,
+ 1 AS `order_id`,
+ 1 AS `warehouse_id`,
+ 1 AS `item_id`,
+ 1 AS `amount`,
+ 1 AS `price`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `browser`
+--
+
+DROP TABLE IF EXISTS `browser`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `browser` (
+ `name` varchar(30) COLLATE utf8_unicode_ci NOT NULL COMMENT 'Browser name in browscap',
+ `version` float NOT NULL COMMENT 'Minimal version',
+ UNIQUE KEY `name` (`name`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='List of compatible web browsers and its version';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `config`
+--
+
+DROP TABLE IF EXISTS `config`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `config` (
+ `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
+ `default_lang` char(2) COLLATE utf8_unicode_ci NOT NULL COMMENT 'The default language if none is specified',
+ `https` tinyint(3) unsigned NOT NULL COMMENT 'Wether to force de use of HTTPS',
+ `cookie_life` smallint(5) unsigned NOT NULL COMMENT 'The cookies life, in days',
+ `jwtKey` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT 'The key used to encode/decode JWT tokens',
+ `default_form` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'Form loaded at web login',
+ `restUri` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `testRestUri` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `image_host` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `image_dir` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT 'Directory where images are allocated',
+ `guest_user` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'Guest user name',
+ `guest_pass` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'Guest password, base64 encoded',
+ `test_domain` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'The address for beta website',
+ `production_domain` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'The address for production website',
+ `pdfs_dir` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT 'Directory where pdfs are allocated',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Global configuration parameters';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `contact`
+--
+
+DROP TABLE IF EXISTS `contact`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `contact` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `recipient` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `customer_user`
+--
+
+DROP TABLE IF EXISTS `customer_user`;
+/*!50001 DROP VIEW IF EXISTS `customer_user`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `customer_user` AS SELECT
+ 1 AS `user_id`,
+ 1 AS `name`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `customer_view`
+--
+
+DROP TABLE IF EXISTS `customer_view`;
+/*!50001 DROP VIEW IF EXISTS `customer_view`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `customer_view` AS SELECT
+ 1 AS `user_id`,
+ 1 AS `name`,
+ 1 AS `email`,
+ 1 AS `mail`,
+ 1 AS `default_address`,
+ 1 AS `credit`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `form`
+--
+
+DROP TABLE IF EXISTS `form`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `form` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `description` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
+ `path` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `role_id` int(10) unsigned NOT NULL,
+ `parent` int(10) unsigned DEFAULT NULL,
+ `display_order` tinyint(4) unsigned NOT NULL DEFAULT '1',
+ PRIMARY KEY (`id`),
+ KEY `group_id` (`role_id`),
+ KEY `parent` (`parent`),
+ CONSTRAINT `form_ibfk_1` FOREIGN KEY (`role_id`) REFERENCES `account`.`role` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `form_ibfk_2` FOREIGN KEY (`parent`) REFERENCES `form` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `gallery`
+--
+
+DROP TABLE IF EXISTS `gallery`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `gallery` (
+ `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
+ `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `comment` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM AUTO_INCREMENT=33 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `image_config`
+--
+
+DROP TABLE IF EXISTS `image_config`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `image_config` (
+ `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Identifier',
+ `max_size` int(10) unsigned NOT NULL COMMENT 'Maximun size for uploaded images in MB',
+ `use_xsendfile` tinyint(4) NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Global image parameters';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `image_file`
+--
+
+DROP TABLE IF EXISTS `image_file`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `image_file` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `schema_id` int(10) unsigned NOT NULL,
+ `file` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `stamp` int(11) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `schema_id_file` (`schema_id`,`file`),
+ CONSTRAINT `image_file_ibfk_1` FOREIGN KEY (`schema_id`) REFERENCES `image_schema` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `image_schema`
+--
+
+DROP TABLE IF EXISTS `image_schema`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `image_schema` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `desc` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `max_width` int(10) unsigned NOT NULL,
+ `max_height` int(10) unsigned NOT NULL,
+ `schema` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `table` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `column` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `name` (`name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `image_schema_size`
+--
+
+DROP TABLE IF EXISTS `image_schema_size`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `image_schema_size` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `image_schema_id` int(10) unsigned NOT NULL,
+ `width` int(10) unsigned NOT NULL,
+ `height` int(10) unsigned NOT NULL,
+ `crop` tinyint(3) unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `image_schema_id` (`image_schema_id`),
+ CONSTRAINT `image_schema_size_ibfk_1` FOREIGN KEY (`image_schema_id`) REFERENCES `image_schema` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `invoice_view`
+--
+
+DROP TABLE IF EXISTS `invoice_view`;
+/*!50001 DROP VIEW IF EXISTS `invoice_view`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `invoice_view` AS SELECT
+ 1 AS `invoice_id`,
+ 1 AS `serial_num`,
+ 1 AS `issued`,
+ 1 AS `amount`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `language`
+--
+
+DROP TABLE IF EXISTS `language`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `language` (
+ `code` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
+ `name` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
+ `active` tinyint(1) unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`code`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `link`
+--
+
+DROP TABLE IF EXISTS `link`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `link` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `name` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
+ `description` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `link` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `image` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM AUTO_INCREMENT=35 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `location`
+--
+
+DROP TABLE IF EXISTS `location`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `location` (
+ `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
+ `lat` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
+ `lng` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
+ `title` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `address` varchar(75) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `postcode` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `city` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `province` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `phone` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `language` char(2) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `mail_config`
+--
+
+DROP TABLE IF EXISTS `mail_config`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `mail_config` (
+ `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Identifier',
+ `host` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'localhost' COMMENT 'SMTP host',
+ `port` smallint(6) NOT NULL DEFAULT '465' COMMENT 'SMTP port',
+ `secure` tinyint(1) NOT NULL DEFAULT '1' COMMENT 'Wether to use a secure connection',
+ `sender` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT 'The sender mail address',
+ `sender_name` varchar(75) COLLATE utf8_unicode_ci NOT NULL COMMENT 'The sender name',
+ `user` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'SMTP user',
+ `password` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'SMTP password, base64 encoded',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `metatag`
+--
+
+DROP TABLE IF EXISTS `metatag`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `metatag` (
+ `id` int(11) NOT NULL,
+ `name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `content` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `name` (`name`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `news`
+--
+
+DROP TABLE IF EXISTS `news`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `news` (
+ `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
+ `title` varchar(150) COLLATE utf8_unicode_ci NOT NULL,
+ `text` text COLLATE utf8_unicode_ci NOT NULL,
+ `image` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `user_id` int(10) unsigned NOT NULL,
+ `date_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `priority` tinyint(3) unsigned NOT NULL DEFAULT '3',
+ `tag` varchar(15) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'new',
+ PRIMARY KEY (`id`),
+ KEY `user` (`user_id`),
+ KEY `tag` (`tag`),
+ CONSTRAINT `news_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `account`.`account` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `news_ibfk_2` FOREIGN KEY (`tag`) REFERENCES `news_tag` (`name`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `news_tag`
+--
+
+DROP TABLE IF EXISTS `news_tag`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `news_tag` (
+ `name` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
+ `description` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `order`
+--
+
+DROP TABLE IF EXISTS `order`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `order` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `date_send` date NOT NULL DEFAULT '0000-00-00',
+ `customer_id` int(11) NOT NULL,
+ `delivery_method_id` int(11) DEFAULT '3',
+ `agency_id` int(11) DEFAULT '2',
+ `address_id` int(11) DEFAULT NULL,
+ `company_id` smallint(5) unsigned DEFAULT '442',
+ `note` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `source_app` set('WEB','ANDROID','IOS','TPV','TABLET_VN','') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'TPV',
+ `is_bionic` tinyint(1) NOT NULL DEFAULT '1',
+ `confirmed` tinyint(1) NOT NULL DEFAULT '0',
+ `date_make` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `first_row_stamp` datetime DEFAULT NULL,
+ `confirm_date` datetime DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `address` (`address_id`),
+ KEY `delivery_method` (`delivery_method_id`),
+ KEY `agency` (`agency_id`),
+ KEY `customer_id` (`customer_id`),
+ KEY `company_id` (`company_id`),
+ KEY `id` (`id`,`customer_id`),
+ KEY `source_app` (`source_app`),
+ CONSTRAINT `order_ibfk_5` FOREIGN KEY (`address_id`) REFERENCES `vn2008`.`Consignatarios` (`id_consigna`) ON UPDATE CASCADE,
+ CONSTRAINT `order_ibfk_8` FOREIGN KEY (`delivery_method_id`) REFERENCES `vn2008`.`Vistas` (`vista_id`) ON UPDATE CASCADE,
+ CONSTRAINT `order_ibfk_9` FOREIGN KEY (`agency_id`) REFERENCES `vn2008`.`Agencias` (`Id_Agencia`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `order_basket`
+--
+
+DROP TABLE IF EXISTS `order_basket`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `order_basket` (
+ `order_id` int(10) unsigned NOT NULL,
+ `customer_id` int(11) NOT NULL,
+ PRIMARY KEY (`order_id`,`customer_id`),
+ UNIQUE KEY `customer_id` (`customer_id`),
+ CONSTRAINT `order_basket_ibfk_1` FOREIGN KEY (`order_id`, `customer_id`) REFERENCES `order` (`id`, `customer_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `order_basket_ibfk_2` FOREIGN KEY (`order_id`) REFERENCES `order` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `order_basket_ibfk_3` FOREIGN KEY (`customer_id`) REFERENCES `vn2008`.`Clientes` (`id_cliente`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `order_check`
+--
+
+DROP TABLE IF EXISTS `order_check`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `order_check` (
+ `id` tinyint(1) unsigned NOT NULL AUTO_INCREMENT,
+ `max_time` time NOT NULL,
+ `deny_sunday` tinyint(1) unsigned NOT NULL,
+ `deny_day` date DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Conditions to check when an order is confirmed';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `order_check_festive`
+--
+
+DROP TABLE IF EXISTS `order_check_festive`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `order_check_festive` (
+ `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
+ `date` date NOT NULL,
+ `accept_orders` tinyint(1) unsigned NOT NULL DEFAULT '1',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `date` (`date`)
+) ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `order_check_wday`
+--
+
+DROP TABLE IF EXISTS `order_check_wday`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `order_check_wday` (
+ `weekday` tinyint(3) unsigned NOT NULL COMMENT '0 = Monday, 6 = Sunday',
+ `max_time` time NOT NULL,
+ PRIMARY KEY (`weekday`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `order_component`
+--
+
+DROP TABLE IF EXISTS `order_component`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `order_component` (
+ `order_row_id` int(10) unsigned NOT NULL,
+ `component_id` int(11) NOT NULL,
+ `price` decimal(12,4) NOT NULL,
+ PRIMARY KEY (`order_row_id`,`component_id`),
+ KEY `component_id` (`component_id`),
+ CONSTRAINT `order_component_ibfk_1` FOREIGN KEY (`order_row_id`) REFERENCES `order_row` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `order_config`
+--
+
+DROP TABLE IF EXISTS `order_config`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `order_config` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `employee_id` int(11) NOT NULL,
+ `delivery_agency` int(11) NOT NULL,
+ `guest_method` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
+ `guest_agency` int(11) NOT NULL,
+ `reserve_time` time NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `employee_id` (`employee_id`),
+ KEY `delivery_agency` (`delivery_agency`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `order_confirm_time`
+--
+
+DROP TABLE IF EXISTS `order_confirm_time`;
+/*!50001 DROP VIEW IF EXISTS `order_confirm_time`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `order_confirm_time` AS SELECT
+ 1 AS `date_make`,
+ 1 AS `source_app`,
+ 1 AS `customer_id`,
+ 1 AS `confirm_date`,
+ 1 AS `first_row_stamp`,
+ 1 AS `minutos`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `order_row`
+--
+
+DROP TABLE IF EXISTS `order_row`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `order_row` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `order_id` int(10) unsigned NOT NULL DEFAULT '0',
+ `item_id` int(11) NOT NULL DEFAULT '0',
+ `warehouse_id` int(11) DEFAULT NULL,
+ `shipment` date DEFAULT NULL,
+ `amount` smallint(6) unsigned NOT NULL DEFAULT '0',
+ `price` decimal(12,2) DEFAULT NULL,
+ `rate` smallint(5) unsigned DEFAULT NULL,
+ `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `Id_Movimiento` int(11) DEFAULT NULL COMMENT 'Deprecated',
+ PRIMARY KEY (`id`),
+ KEY `item` (`item_id`),
+ KEY `order_id` (`order_id`),
+ KEY `created` (`created`),
+ KEY `warehouse_shipment` (`warehouse_id`,`shipment`),
+ CONSTRAINT `order_row_ibfk_2` FOREIGN KEY (`item_id`) REFERENCES `vn2008`.`Articles` (`Id_Article`) ON UPDATE CASCADE,
+ CONSTRAINT `order_row_ibfk_3` FOREIGN KEY (`order_id`) REFERENCES `order` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB 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 */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `order_row_bi` BEFORE INSERT ON `order_row`
+FOR EACH ROW
+BEGIN
+ DECLARE v_is_first BOOLEAN;
+
+ SELECT (first_row_stamp IS NULL) INTO v_is_first
+ FROM `order`
+ WHERE id = NEW.order_id;
+
+ IF v_is_first THEN
+ UPDATE `order` SET first_row_stamp = NOW()
+ WHERE id = NEW.order_id;
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Temporary view structure for view `order_row_view`
+--
+
+DROP TABLE IF EXISTS `order_row_view`;
+/*!50001 DROP VIEW IF EXISTS `order_row_view`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `order_row_view` AS SELECT
+ 1 AS `id`,
+ 1 AS `order_id`,
+ 1 AS `warehouse_id`,
+ 1 AS `item_id`,
+ 1 AS `amount`,
+ 1 AS `price2`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `order_view`
+--
+
+DROP TABLE IF EXISTS `order_view`;
+/*!50001 DROP VIEW IF EXISTS `order_view`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `order_view` AS SELECT
+ 1 AS `id`,
+ 1 AS `date_make`,
+ 1 AS `date_send`,
+ 1 AS `customer_id`,
+ 1 AS `delivery_method_id`,
+ 1 AS `agency_id`,
+ 1 AS `note`,
+ 1 AS `address_id`,
+ 1 AS `company_id`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `restPriv`
+--
+
+DROP TABLE IF EXISTS `restPriv`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `restPriv` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `methodPath` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `role` int(10) unsigned NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `role` (`role`),
+ CONSTRAINT `restPriv_ibfk_1` FOREIGN KEY (`role`) REFERENCES `account`.`role` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `shelf`
+--
+
+DROP TABLE IF EXISTS `shelf`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `shelf` (
+ `id` int(10) unsigned NOT NULL,
+ `name` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
+ `nTrays` tinyint(3) unsigned NOT NULL,
+ `trayheight` mediumint(8) unsigned NOT NULL,
+ `topTrayHeight` mediumint(8) unsigned NOT NULL,
+ `width` mediumint(8) unsigned NOT NULL,
+ `depth` mediumint(8) unsigned NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Dimensiones de las estanterias';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `shelfConfig`
+--
+
+DROP TABLE IF EXISTS `shelfConfig`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `shelfConfig` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
+ `namePrefix` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `warehouse` smallint(5) unsigned NOT NULL,
+ `family` smallint(5) unsigned NOT NULL,
+ `shelf` int(10) unsigned NOT NULL,
+ `maxAmount` smallint(5) unsigned DEFAULT NULL,
+ `showPacking` tinyint(4) NOT NULL,
+ `stack` tinyint(4) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `shelf_id` (`shelf`),
+ KEY `family_id` (`family`),
+ KEY `warehouse_id` (`warehouse`),
+ CONSTRAINT `shelfConfig_ibfk_1` FOREIGN KEY (`family`) REFERENCES `vn2008`.`Tipos` (`tipo_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `shelfConfig_ibfk_2` FOREIGN KEY (`shelf`) REFERENCES `shelf` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `shelfConfig_ibfk_3` FOREIGN KEY (`warehouse`) REFERENCES `vn2008`.`warehouse` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `sms_config`
+--
+
+DROP TABLE IF EXISTS `sms_config`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `sms_config` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `uri` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `user` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `password` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `title` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='SMS configuration parameters';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `social`
+--
+
+DROP TABLE IF EXISTS `social`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `social` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `title` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `link` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `icon` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `priority` tinyint(3) unsigned NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `priority` (`priority`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `sql_message`
+--
+
+DROP TABLE IF EXISTS `sql_message`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `sql_message` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `code` char(35) COLLATE utf8_unicode_ci NOT NULL,
+ `description` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `code` (`code`)
+) ENGINE=MyISAM AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `survey`
+--
+
+DROP TABLE IF EXISTS `survey`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `survey` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `question` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `survey_answer`
+--
+
+DROP TABLE IF EXISTS `survey_answer`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `survey_answer` (
+ `id` int(10) unsigned NOT NULL,
+ `survey_id` int(10) unsigned NOT NULL,
+ `answer` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
+ `votes` int(10) unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `survey` (`survey_id`),
+ CONSTRAINT `survey_answer_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `survey` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `survey_vote`
+--
+
+DROP TABLE IF EXISTS `survey_vote`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `survey_vote` (
+ `survey_id` int(10) unsigned NOT NULL,
+ `user_id` int(10) unsigned NOT NULL,
+ PRIMARY KEY (`survey_id`,`user_id`),
+ KEY `user_id` (`user_id`),
+ CONSTRAINT `survey_vote_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `survey` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `survey_vote_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `ticket_row_view`
+--
+
+DROP TABLE IF EXISTS `ticket_row_view`;
+/*!50001 DROP VIEW IF EXISTS `ticket_row_view`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `ticket_row_view` AS SELECT
+ 1 AS `id`,
+ 1 AS `item_id`,
+ 1 AS `ticket_id`,
+ 1 AS `concept`,
+ 1 AS `amount`,
+ 1 AS `price`,
+ 1 AS `fixed`,
+ 1 AS `discount`,
+ 1 AS `cost`,
+ 1 AS `reserved`,
+ 1 AS `ok`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Temporary view structure for view `ticket_view`
+--
+
+DROP TABLE IF EXISTS `ticket_view`;
+/*!50001 DROP VIEW IF EXISTS `ticket_view`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `ticket_view` AS SELECT
+ 1 AS `id`,
+ 1 AS `customer_id`,
+ 1 AS `warehouse_id`,
+ 1 AS `date`,
+ 1 AS `delivery`,
+ 1 AS `alias`,
+ 1 AS `agency_id`,
+ 1 AS `note`,
+ 1 AS `invoice`,
+ 1 AS `address_id`,
+ 1 AS `employee_id`,
+ 1 AS `comments`,
+ 1 AS `signed`,
+ 1 AS `packages`,
+ 1 AS `location`,
+ 1 AS `hour`,
+ 1 AS `blocked`,
+ 1 AS `solution`,
+ 1 AS `company_id`,
+ 1 AS `type`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `tpv_config`
+--
+
+DROP TABLE IF EXISTS `tpv_config`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `tpv_config` (
+ `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
+ `currency` smallint(5) unsigned NOT NULL,
+ `terminal` tinyint(3) unsigned NOT NULL,
+ `transaction_type` tinyint(3) unsigned NOT NULL,
+ `employee_id` int(10) NOT NULL,
+ `url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'The bank web service URL for production environment',
+ `test_mode` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT 'Whether test mode is enabled',
+ `test_url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'The bank web service URL for test environment',
+ `test_key` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'The bank secret key for test environment',
+ `merchant_url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `employee_id` (`employee_id`),
+ CONSTRAINT `employee_id` FOREIGN KEY (`employee_id`) REFERENCES `vn2008`.`Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Virtual TPV parameters';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `tpv_error`
+--
+
+DROP TABLE IF EXISTS `tpv_error`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `tpv_error` (
+ `code` char(7) COLLATE utf8_unicode_ci NOT NULL,
+ `message` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT=' List of possible TPV errors';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `tpv_imap_config`
+--
+
+DROP TABLE IF EXISTS `tpv_imap_config`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `tpv_imap_config` (
+ `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
+ `host` varchar(150) COLLATE utf8_unicode_ci NOT NULL,
+ `user` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `pass` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
+ `clean_period` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
+ `success_folder` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `error_folder` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='IMAP configuration parameters for virtual TPV';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `tpv_merchant`
+--
+
+DROP TABLE IF EXISTS `tpv_merchant`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `tpv_merchant` (
+ `id` int(10) unsigned NOT NULL COMMENT 'Merchant identifier',
+ `description` varchar(50) COLLATE utf8_unicode_ci NOT NULL COMMENT 'Small description',
+ `company_id` smallint(6) unsigned DEFAULT NULL COMMENT 'Company associated with the merchant',
+ `bank_id` int(10) NOT NULL COMMENT 'The bank where merchant receipts are created',
+ `secret_key` varchar(50) COLLATE utf8_unicode_ci NOT NULL COMMENT 'The merchant secret key to sign transactions',
+ PRIMARY KEY (`id`),
+ KEY `bank_id` (`bank_id`),
+ KEY `company_id` (`company_id`),
+ KEY `id` (`id`,`company_id`),
+ CONSTRAINT `company_id` FOREIGN KEY (`company_id`) REFERENCES `vn2008`.`empresa` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `tpv_merchant_ibfk_1` FOREIGN KEY (`bank_id`) REFERENCES `vn2008`.`Bancos` (`Id_Banco`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Virtual TPV users and its associated company';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `tpv_merchant_enable`
+--
+
+DROP TABLE IF EXISTS `tpv_merchant_enable`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `tpv_merchant_enable` (
+ `merchant_id` int(10) unsigned NOT NULL DEFAULT '0',
+ `company_id` smallint(6) unsigned NOT NULL,
+ PRIMARY KEY (`merchant_id`,`company_id`),
+ UNIQUE KEY `company_id` (`company_id`),
+ CONSTRAINT `tpv_merchant_enable_ibfk_1` FOREIGN KEY (`merchant_id`, `company_id`) REFERENCES `tpv_merchant` (`id`, `company_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Virtual TPV enabled users';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `tpv_response`
+--
+
+DROP TABLE IF EXISTS `tpv_response`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `tpv_response` (
+ `id` smallint(5) unsigned NOT NULL,
+ `message` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='List of possible TPV reponses';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `tpv_transaction`
+--
+
+DROP TABLE IF EXISTS `tpv_transaction`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `tpv_transaction` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `merchant_id` int(10) unsigned NOT NULL,
+ `customer_id` int(11) NOT NULL,
+ `receipt_id` int(11) DEFAULT NULL,
+ `amount` int(10) unsigned NOT NULL,
+ `response` smallint(5) unsigned DEFAULT NULL COMMENT 'Status notified by bank: NULL if no notification, 0 if success, error otherwise',
+ `error_code` char(7) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `status` enum('started','ok','ko') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'started',
+ `date_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`id`),
+ KEY `merchant_id` (`merchant_id`),
+ KEY `receipt_id` (`receipt_id`),
+ KEY `user_id` (`customer_id`),
+ KEY `response` (`response`),
+ KEY `error_code` (`error_code`),
+ CONSTRAINT `receipt_id` FOREIGN KEY (`receipt_id`) REFERENCES `vn2008`.`Recibos` (`Id`) ON DELETE SET NULL ON UPDATE CASCADE,
+ CONSTRAINT `tpv_transaction_ibfk_1` FOREIGN KEY (`customer_id`) REFERENCES `vn2008`.`Clientes` (`id_cliente`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `tpv_transaction_ibfk_2` FOREIGN KEY (`merchant_id`) REFERENCES `tpv_merchant` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Transactions realized through the virtual TPV';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `tpv_transaction_view`
+--
+
+DROP TABLE IF EXISTS `tpv_transaction_view`;
+/*!50001 DROP VIEW IF EXISTS `tpv_transaction_view`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `tpv_transaction_view` AS SELECT
+ 1 AS `id`,
+ 1 AS `merchant_id`,
+ 1 AS `customer_id`,
+ 1 AS `receipt_id`,
+ 1 AS `amount`,
+ 1 AS `response`,
+ 1 AS `status`,
+ 1 AS `date_time`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `userSession`
+--
+
+DROP TABLE IF EXISTS `userSession`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `userSession` (
+ `created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `lastUpdate` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `ssid` char(64) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `data` text COLLATE utf8_unicode_ci,
+ `userVisit` int(10) unsigned DEFAULT NULL,
+ UNIQUE KEY `ssid` (`ssid`),
+ KEY `userVisit` (`userVisit`),
+ KEY `lastUpdate` (`lastUpdate`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `user_android`
+--
+
+DROP TABLE IF EXISTS `user_android`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `user_android` (
+ `user_id` int(10) unsigned NOT NULL,
+ `android_id` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`user_id`,`android_id`),
+ CONSTRAINT `user_android_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Temporary view structure for view `user_android_view`
+--
+
+DROP TABLE IF EXISTS `user_android_view`;
+/*!50001 DROP VIEW IF EXISTS `user_android_view`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `user_android_view` AS SELECT
+ 1 AS `user_id`,
+ 1 AS `android_id`*/;
+SET character_set_client = @saved_cs_client;
+
+--
+-- Table structure for table `visit`
+--
+
+DROP TABLE IF EXISTS `visit`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `visit` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `firstAgent` int(10) unsigned DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `firstAgent` (`firstAgent`),
+ CONSTRAINT `visit_ibfk_1` FOREIGN KEY (`firstAgent`) REFERENCES `visitAgent` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `visitAccess`
+--
+
+DROP TABLE IF EXISTS `visitAccess`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `visitAccess` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `agent` int(10) unsigned NOT NULL,
+ `stamp` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `ip` int(10) unsigned DEFAULT NULL,
+ `referer` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `visit_access_idx_agent` (`agent`),
+ KEY `stamp` (`stamp`),
+ CONSTRAINT `visitAccess_ibfk_1` FOREIGN KEY (`agent`) REFERENCES `visitAgent` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `visitAgent`
+--
+
+DROP TABLE IF EXISTS `visitAgent`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `visitAgent` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `visit` int(10) unsigned NOT NULL,
+ `firstAccess` int(10) unsigned DEFAULT NULL,
+ `platform` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `browser` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `version` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
+ `javascript` tinyint(3) unsigned DEFAULT NULL,
+ `cookies` tinyint(3) unsigned DEFAULT NULL,
+ `agent` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `visit_id` (`visit`),
+ KEY `firstAccess` (`firstAccess`),
+ CONSTRAINT `visitAgent_ibfk_1` FOREIGN KEY (`visit`) REFERENCES `visit` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `visitAgent_ibfk_2` FOREIGN KEY (`firstAccess`) REFERENCES `visitAccess` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `visitUser`
+--
+
+DROP TABLE IF EXISTS `visitUser`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `visitUser` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `access` int(10) unsigned NOT NULL,
+ `user` int(10) unsigned DEFAULT NULL,
+ `stamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`id`),
+ KEY `access_id` (`access`),
+ KEY `date_time` (`stamp`),
+ KEY `user_id` (`user`),
+ CONSTRAINT `visitUser_ibfk_1` FOREIGN KEY (`access`) REFERENCES `visitAccess` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping routines for database 'hedera'
+--
+/*!50003 DROP FUNCTION IF EXISTS `basketGetId` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `basketGetId`() RETURNS int(11)
+ DETERMINISTIC
+BEGIN
+ DECLARE v_order INT;
+
+ SELECT order_id INTO v_order FROM order_basket
+ WHERE customer_id = account.userGetId();
+
+ RETURN v_order;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `customer_get_debt` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `customer_get_debt`() RETURNS double
+BEGIN
+ DECLARE v_debt DOUBLE;
+
+ CALL customer_get_debt_by_company ();
+
+ SELECT SUM(amount) INTO v_debt
+ FROM t_customer_debt;
+
+ DROP TEMPORARY TABLE t_customer_debt;
+
+ RETURN v_debt;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `invoice_get_path` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `invoice_get_path`(v_invoice INT) RETURNS varchar(255) CHARSET utf8
+BEGIN
+ DECLARE v_issued DATE;
+ DECLARE v_serial VARCHAR(15);
+
+ SELECT Fecha, Id_Factura
+ INTO v_issued, v_serial
+ FROM vn2008.Facturas WHERE factura_id = v_invoice;
+
+ RETURN CONCAT_WS('/'
+ ,'invoice'
+ ,YEAR(v_issued)
+ ,MONTH(v_issued)
+ ,DAY(v_issued)
+ ,CONCAT(YEAR(v_issued), v_serial, '.pdf')
+ );
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `orderRowCheckAmount` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` FUNCTION `orderRowCheckAmount`(vOrder INT, vItem INT, vAmount INT) RETURNS int(11)
+BEGIN
+ DECLARE vGroup INT;
+ DECLARE vMod INT;
+ DECLARE vIsBionic BOOLEAN;
+
+ SELECT CASE caja WHEN 0 THEN 1 WHEN 2 THEN packing ELSE grouping END, o.is_bionic
+ INTO vGroup, vIsBionic
+ FROM `order` o
+ JOIN vn2008.v_compres c ON c.warehouse_id = o.wh_id
+ WHERE Id_Article = vItem AND o.id = vOrder AND c.landing <= o.date_send
+ ORDER BY landing DESC LIMIT 1;
+
+ IF !vIsBionic
+ THEN
+ SET vMod = MOD(vAmount, vGroup);
+
+ IF vMod
+ THEN
+ SET vAmount = vAmount + vGroup - vMod;
+ -- CALL util.warn ('ORDER_AMOUNT_ROUNDED');
+ END IF;
+ END IF;
+
+ RETURN vAmount;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `order_get_total` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+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;
+
+ CALL order_get_vat (v_order);
+
+ SELECT SUM(tax_base) + SUM(vat) + SUM(surcharge) INTO v_total
+ FROM t_order_vat;
+
+ DROP TEMPORARY TABLE t_order_vat;
+
+ RETURN v_total;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP FUNCTION IF EXISTS `userCheckRestPriv` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ WHERE methodPath = vMethodPath;
+
+ RETURN vRole IS NULL
+ OR account.userHasRoleId (vRole);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `agency_list_from_date` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+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;
+
+ DROP TEMPORARY TABLE IF EXISTS t_agency;
+ CREATE TEMPORARY TABLE t_agency
+ (
+ agency_id INT,
+ PRIMARY KEY (agency_id)
+ )
+ ENGINE = MEMORY;
+
+ OPEN cur;
+
+ l: LOOP
+ SET v_done = FALSE;
+ FETCH cur INTO v_agency;
+
+ IF v_done THEN
+ LEAVE l;
+ END IF;
+
+ CALL vn2008.travel_tree (v_date, v_address, v_agency);
+
+ -- No puedo usar IGNORE porque lanza un error 'invisible'
+
+ INSERT /* IGNORE */ INTO t_agency
+ SELECT a.Id_Agencia
+ FROM vn2008.Agencias a
+ JOIN vn2008.travel_tree t
+ JOIN vn2008.warehouse w on w.id = t.warehouse_id
+ WHERE a.agency_id = v_agency
+ ON DUPLICATE KEY UPDATE
+ agency_id = VALUES(agency_id);
+ END LOOP;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `basket_check` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+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';
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_status = 'NOT_EXISTS';
+ DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET v_status = 'BAD_CONFIG';
+
+ SELECT id, date_make
+ INTO v_order, v_created
+ FROM basket;
+
+ IF v_status = 'OK'
+ THEN
+ CALL order_check_config (v_order);
+
+ IF v_status = 'OK' AND v_created < TIMESTAMPADD(DAY, -1, NOW())
+ THEN
+ CALL order_update (v_order);
+ SET v_status = 'UPDATED';
+ END IF;
+ END IF;
+
+ SELECT v_status stat;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `basket_configure` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `basket_configure`(
+ v_delivery DATE,
+ v_delivery_method VARCHAR(45),
+ 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;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND
+ SET v_order = NULL;
+
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ START TRANSACTION;
+
+ SELECT vista_id INTO v_delivery_method_id
+ FROM vn2008.Vistas
+ WHERE code = v_delivery_method;
+
+ IF v_delivery_method = 'DELIVERY'
+ THEN
+ SELECT delivery_agency INTO v_agency
+ FROM order_config;
+ END IF;
+
+ IF v_delivery_method = 'PICKUP' AND v_address IS NULL
+ THEN
+ SELECT default_address INTO v_address
+ FROM customer_view;
+ END IF;
+
+ SET v_order = basketGetId();
+
+ IF v_order IS NULL
+ THEN
+ SELECT empresa_id INTO v_company
+ FROM vn2008.Clientes_empresa
+ WHERE Id_Cliente = account.userGetId()
+ AND CURDATE() BETWEEN fecha_ini AND fecha_fin
+ LIMIT 1;
+
+ INSERT INTO `order`
+ SET
+ customer_id = account.userGetId(),
+ date_send = v_delivery,
+ delivery_method_id = v_delivery_method_id,
+ agency_id = v_agency,
+ address_id = v_address,
+ source_app = 'WEB',
+ company_id = IFNULL(v_company, 442);
+
+ SET v_order = LAST_INSERT_ID();
+
+ INSERT INTO order_basket SET
+ customer_id = account.userGetId(),
+ order_id = v_order;
+ ELSE
+ UPDATE `order`
+ SET
+ date_send = v_delivery,
+ delivery_method_id = v_delivery_method_id,
+ agency_id = v_agency,
+ address_id = v_address
+ WHERE
+ id = v_order;
+
+ CALL order_update (v_order);
+ END IF;
+
+ CALL order_check_config (v_order);
+
+ COMMIT;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `basket_configure_for_guest` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `basket_configure_for_guest`()
+BEGIN
+ DECLARE v_method VARCHAR(45);
+ DECLARE v_agency INT;
+
+ SELECT guest_method, guest_agency
+ INTO v_method, v_agency
+ FROM order_config
+ LIMIT 1;
+
+ CALL basket_configure (CURDATE(), v_method, v_agency, NULL);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `basket_confirm` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `basket_confirm`()
+BEGIN
+ DECLARE v_order INT DEFAULT basketGetId ();
+
+ IF v_order IS NOT NULL
+ THEN
+ CALL order_confirm_bionic (v_order);
+
+ DELETE FROM order_basket
+ WHERE order_id = v_order;
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `basket_get_vat` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `basket_get_vat`()
+BEGIN
+ CALL order_get_vat (basketGetId());
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `basket_item_add` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `basket_item_add`(
+ v_warehouse INT,
+ v_item INT,
+ v_amount INT)
+BEGIN
+ DECLARE v_calc INT;
+ DECLARE v_order INT;
+ DECLARE v_type INT;
+ DECLARE v_row INT;
+ DECLARE v_add INT;
+ DECLARE v_available INT;
+ DECLARE v_done BOOLEAN;
+ DECLARE v_grouping INT;
+ DECLARE v_rate INT;
+ DECLARE v_shipment DATE;
+ DECLARE v_price DECIMAL(10,2);
+
+ DECLARE cur CURSOR FOR
+ SELECT grouping, price, rate
+ FROM tmp.bionic_price
+ WHERE warehouse_id = v_warehouse
+ AND item_id = v_item
+ ORDER BY grouping DESC;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND
+ SET v_done = TRUE;
+
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ CALL bionic_from_item (v_item);
+
+ START TRANSACTION;
+
+ SET v_order = basketGetId();
+
+ SELECT Fecha_envio INTO v_shipment
+ FROM tmp.travel_tree
+ WHERE warehouse_id = v_warehouse;
+
+ SELECT available INTO v_available
+ FROM tmp.bionic_lot
+ WHERE warehouse_id = v_warehouse
+ AND item_id = v_item;
+
+ IF v_amount > v_available
+ THEN
+ CALL util.throw ('ORDER_ROW_UNAVAILABLE');
+ END IF;
+
+ OPEN cur;
+
+ l: LOOP
+ SET v_done = FALSE;
+ FETCH cur INTO v_grouping, v_price, v_rate;
+
+ IF v_done THEN
+ LEAVE l;
+ END IF;
+
+ SET v_add = v_amount - MOD(v_amount, v_grouping);
+ SET v_amount = v_amount - v_add;
+
+ IF v_add = 0 THEN
+ ITERATE l;
+ END IF;
+
+ INSERT INTO order_row SET
+ order_id = v_order,
+ item_id = v_item,
+ warehouse_id = v_warehouse,
+ shipment = v_shipment,
+ rate = v_rate,
+ amount = v_add,
+ price = v_price;
+
+ SET v_row = LAST_INSERT_ID();
+
+ INSERT INTO order_component (order_row_id, component_id, price)
+ SELECT v_row, c.component_id, c.cost
+ FROM tmp.bionic_component c
+ JOIN bi.tarifa_componentes t
+ ON t.Id_Componente = c.component_id
+ AND (t.tarifa_class IS NULL OR t.tarifa_class = v_rate)
+ WHERE c.warehouse_id = v_warehouse
+ AND c.item_id = v_item;
+ END LOOP;
+
+ CLOSE cur;
+ COMMIT;
+
+ CALL vn2008.bionic_free ();
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_calc` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `bionic_calc`()
+BEGIN
+ DECLARE v_date DATE;
+ DECLARE v_address INT;
+ DECLARE v_agency INT;
+
+ SELECT date_send, address_id, agency_id
+ INTO v_date, v_address, v_agency
+ FROM basket;
+
+ CALL vn2008.bionic_calc (v_date, v_address, v_agency);
+
+ IF account.userGetName () = 'visitor'
+ THEN
+ DROP TEMPORARY TABLE tmp.bionic_component;
+ UPDATE tmp.bionic_item SET price = NULL;
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_from_basket` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `bionic_from_basket`()
+BEGIN
+ DECLARE v_order INT;
+ DECLARE v_date DATE;
+ DECLARE v_address INT;
+ DECLARE v_agency INT;
+
+ SELECT id, date_send, address_id, agency_id
+ INTO v_order, v_date, v_address, v_agency
+ FROM basket;
+
+ CALL vn2008.bionic_from_order (v_date, v_address, v_agency, v_order);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_from_item` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `bionic_from_item`(v_item INT)
+BEGIN
+ DECLARE v_date DATE;
+ DECLARE v_address INT;
+ DECLARE v_agency INT;
+
+ SELECT date_send, address_id, agency_id
+ INTO v_date, v_address, v_agency
+ FROM basket;
+
+ CALL vn2008.bionic_from_item (v_date, v_address, v_agency, v_item);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `bionic_from_type` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `bionic_from_type`(v_type INT)
+BEGIN
+ DECLARE v_date DATE;
+ DECLARE v_address INT;
+ DECLARE v_agency INT;
+
+ SELECT date_send, address_id, agency_id
+ INTO v_date, v_address, v_agency
+ FROM basket;
+
+ CALL vn2008.bionic_from_type (v_date, v_address, v_agency, v_type);
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `clean` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `clean`()
+BEGIN
+ DECLARE v_i INT DEFAULT 0;
+
+ WHILE v_i < 5
+ DO
+ DROP TEMPORARY TABLE IF EXISTS tmp;
+
+ CREATE TEMPORARY TABLE tmp
+ ENGINE = MEMORY
+ SELECT id, COUNT(*) c
+ FROM order_component
+ GROUP BY order_row_id, component_id
+ HAVING c > 1;
+
+ DELETE c FROM order_component c JOIN tmp t ON t.id = c.id;
+
+ DROP TEMPORARY TABLE tmp;
+
+ SET v_i = v_i + 1;
+ END WHILE;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `customer_get_debt_by_company` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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');
+
+ DROP TEMPORARY TABLE IF EXISTS vn2008.ticket_tmp;
+
+ CREATE TEMPORARY TABLE vn2008.ticket_tmp
+ (INDEX (ticket_id))
+ ENGINE = MEMORY
+ SELECT t.id ticket_id
+ FROM ticket_view t
+ JOIN ticket_row_view r ON t.id = r.ticket_id
+ JOIN tpv_merchant_enable m ON m.company_id = t.company_id
+ WHERE invoice IS NULL
+ AND date BETWEEN v_date_ini AND v_date_end
+ GROUP BY ticket_id
+ HAVING BIT_AND(fixed);
+
+ CALL vn2008.ticket_total ();
+
+ CREATE TEMPORARY TABLE t_customer_debt
+ ENGINE = MEMORY
+ SELECT e.id, e.abbreviation, IFNULL(SUM(t.amount), 0) amount
+ FROM vn2008.empresa e
+ JOIN tpv_merchant_enable m ON m.company_id = e.id
+ LEFT JOIN
+ (
+ SELECT SUM(t.total) amount, i.company_id
+ FROM vn2008.ticket_total t
+ JOIN ticket_view i ON i.id = t.ticket_id
+ GROUP BY i.company_id
+ UNION ALL
+ SELECT r.amount, r.company_id
+ FROM bi.customer_risk r
+ JOIN tpv_merchant_enable m ON m.company_id = r.company_id
+ WHERE customer_id = account.userGetId()
+ UNION ALL
+ SELECT -SUM(amount) / 100, company_id
+ FROM tpv_transaction_view t
+ JOIN tpv_merchant m ON m.id = t.merchant_id
+ WHERE t.receipt_id IS NULL AND t.status = 'ok'
+ GROUP BY company_id
+ ) t
+ ON t.company_id = e.id
+ GROUP BY e.id;
+
+ DROP TEMPORARY TABLE vn2008.ticket_tmp;
+ DROP TEMPORARY TABLE vn2008.ticket_total;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `formList` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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)
+ ORDER BY f.parent, f.display_order, f.id;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `itemAllocator` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `itemAllocator`(
+ vWh TINYINT
+ ,vDate DATE
+ ,vType INT
+ ,vPrefix VARCHAR(255)
+ ,vUseIds BOOLEAN
+)
+BEGIN
+ DECLARE vPrefixLen SMALLINT;
+ DECLARE vFilter VARCHAR(255) DEFAULT NULL;
+ DECLARE vDateInv DATE DEFAULT vn2008.date_inv();
+
+ SET vPrefixLen = LENGTH(vPrefix);
+
+ IF vPrefix IS NOT NULL AND vPrefixLen > 0
+ THEN
+ SET vFilter = CONCAT(vPrefix, '%');
+ SET vPrefixLen = vPrefixLen + 1;
+ END IF;
+
+ DROP TEMPORARY TABLE IF EXISTS filter;
+ CREATE TEMPORARY TABLE filter
+ (INDEX (item_id))
+ ENGINE = MEMORY
+ SELECT Id_Article item_id FROM vn2008.Articles
+ WHERE tipo_id = vType
+ AND (vFilter IS NULL OR Article LIKE vFilter);
+
+ DROP TEMPORARY TABLE IF EXISTS current_stock;
+ CREATE TEMPORARY TABLE current_stock
+ (INDEX (item_id))
+ ENGINE = MEMORY
+ SELECT item_id, SUM(Cantidad) amount FROM
+ (
+ SELECT Id_Article item_id, Cantidad
+ FROM vn2008.Compres c
+ JOIN vn2008.Entradas e USING(Id_Entrada)
+ JOIN vn2008.travel t ON t.id = e.travel_id
+ WHERE landing BETWEEN vDateInv AND vDate
+ AND warehouse_id = vWh
+ AND NOT Redada
+ UNION ALL
+ SELECT Id_Article, -Cantidad
+ FROM vn2008.Compres c
+ JOIN vn2008.Entradas e USING(Id_Entrada)
+ JOIN vn2008.travel t ON t.id = e.travel_id
+ WHERE shipment BETWEEN vDateInv AND CURDATE()
+ AND warehouse_id_out = vWh
+ AND NOT Redada
+ AND delivered
+ UNION ALL
+ SELECT m.Id_Article, -m.Cantidad
+ FROM vn2008.Movimientos m
+ JOIN vn2008.Tickets t USING(Id_Ticket)
+ JOIN vn.ticketState s ON s.ticket = t.Id_Ticket
+ WHERE t.Fecha BETWEEN vDateInv AND CURDATE()
+ AND t.warehouse_id = vWh
+ AND (t.Etiquetasemitidas OR s.alertLevel = 3)
+ ) t
+ GROUP BY item_id
+ HAVING amount > 0;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp;
+ CREATE TEMPORARY TABLE tmp
+ (INDEX (item_id))
+ ENGINE = MEMORY
+ SELECT * FROM
+ (
+ SELECT c.Id_Article item_id, c.Id_Compra id, c.Id_Cubo, c.packing
+ FROM vn2008.Compres c
+ JOIN vn2008.Entradas e USING(Id_Entrada)
+ JOIN vn2008.travel t ON t.id = e.travel_id
+ WHERE t.landing BETWEEN vDateInv AND vDate
+ AND c.Novincular = FALSE
+ AND c.Tarifa2 >= 0
+ AND Id_Cubo IS NOT NULL
+ ORDER BY t.warehouse_id = 1 DESC, t.landing DESC
+ ) t GROUP BY item_id;
+
+ DROP TEMPORARY TABLE IF EXISTS result;
+ CREATE TEMPORARY TABLE result
+ ENGINE = MEMORY
+ SELECT a.Id_Article, IF(vPrefixLen > 0, SUBSTRING(a.Article, vPrefixLen), a.Article) Article,
+ t.packing, CEIL(s.amount / t.packing) etiquetas, t.Id_Cubo, IF(c.z > 0, c.z, 0) z, c.x, c.y, a.Nicho
+ FROM vn2008.Articles a
+ JOIN filter f ON f.item_id = a.Id_Article
+ JOIN current_stock s ON s.item_id = a.Id_Article
+ LEFT JOIN tmp t ON t.item_id = a.Id_Article
+ LEFT JOIN vn2008.Cubos c ON c.Id_Cubo = t.Id_Cubo
+ WHERE CEIL(s.amount / t.packing) > 0
+ AND c.box;
+
+ IF vUseIds
+ THEN
+ SELECT * FROM result
+ ORDER BY Id_Article;
+ ELSE
+ SELECT * FROM result
+ ORDER BY Article, packing;
+ END IF;
+
+ DROP TEMPORARY TABLE
+ filter,
+ current_stock,
+ tmp,
+ result;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `itemListVisible` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `itemListVisible`(
+ vWh TINYINT
+ ,vDate DATE
+ ,vType VARCHAR(255)
+ ,vPrefix VARCHAR(255)
+)
+BEGIN
+ DECLARE vPrefixLen SMALLINT;
+ DECLARE vFilter VARCHAR(255) DEFAULT NULL;
+ DECLARE vDateInv DATE DEFAULT vn2008.date_inv();
+
+ SET vPrefixLen = LENGTH(vPrefix);
+
+ IF vPrefix IS NOT NULL AND vPrefixLen > 0
+ THEN
+ SET vFilter = CONCAT(vPrefix, '%');
+ SET vPrefixLen = vPrefixLen + 1;
+ END IF;
+
+ DROP TEMPORARY TABLE IF EXISTS filter;
+ CREATE TEMPORARY TABLE filter
+ (INDEX (item_id))
+ ENGINE = MEMORY
+ SELECT a.Id_Article item_id
+ FROM vn2008.Articles a
+ JOIN vn2008.Tipos t ON t.tipo_id = a.tipo_id
+ WHERE t.Id_Tipo = vType
+ AND (vFilter IS NULL OR a.Article LIKE vFilter);
+
+ DROP TEMPORARY TABLE IF EXISTS current_stock;
+ CREATE TEMPORARY TABLE current_stock
+ (INDEX (item_id))
+ ENGINE = MEMORY
+ SELECT item_id, SUM(Cantidad) amount FROM
+ (
+ SELECT Id_Article item_id, Cantidad
+ FROM vn2008.Compres c
+ JOIN vn2008.Entradas e USING(Id_Entrada)
+ JOIN vn2008.travel t ON t.id = e.travel_id
+ WHERE landing BETWEEN vDateInv AND vDate
+ AND warehouse_id = vWh
+ AND NOT Redada
+ UNION ALL
+ SELECT Id_Article, -Cantidad
+ FROM vn2008.Compres c
+ JOIN vn2008.Entradas e USING(Id_Entrada)
+ JOIN vn2008.travel t ON t.id = e.travel_id
+ WHERE shipment BETWEEN vDateInv AND CURDATE()
+ AND warehouse_id_out = vWh
+ AND NOT Redada
+ AND delivered
+ UNION ALL
+ SELECT m.Id_Article, -m.Cantidad
+ FROM vn2008.Movimientos m
+ JOIN vn2008.Tickets t USING(Id_Ticket)
+ JOIN vn.ticketState s ON s.ticket = t.Id_Ticket
+ WHERE t.Fecha BETWEEN vDateInv AND CURDATE()
+ AND t.warehouse_id = vWh
+ AND (t.Etiquetasemitidas OR s.alertLevel = 3)
+ ) t
+ GROUP BY item_id
+ HAVING amount > 0;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp;
+ CREATE TEMPORARY TABLE tmp
+ (INDEX (item_id))
+ ENGINE = MEMORY
+ SELECT * FROM
+ (
+ SELECT c.Id_Article item_id, c.Id_Compra id, c.Id_Cubo, c.packing
+ FROM vn2008.Compres c
+ JOIN vn2008.Entradas e USING(Id_Entrada)
+ JOIN vn2008.travel t ON t.id = e.travel_id
+ WHERE t.landing BETWEEN vDateInv AND vDate
+ AND c.Novincular = FALSE
+ AND c.Tarifa2 >= 0
+ AND Id_Cubo IS NOT NULL
+ ORDER BY t.warehouse_id = 1 DESC, t.landing DESC
+ ) t GROUP BY item_id;
+
+ DROP TEMPORARY TABLE IF EXISTS result;
+ CREATE TEMPORARY TABLE result
+ ENGINE = MEMORY
+ SELECT a.Id_Article itemId, IF(vPrefixLen > 0, SUBSTRING(a.Article, vPrefixLen), a.Article) item,
+ Medida size, CEIL(s.amount) amount, '' location
+ FROM vn2008.Articles a
+ JOIN filter f ON f.item_id = a.Id_Article
+ JOIN current_stock s ON s.item_id = a.Id_Article
+ LEFT JOIN tmp t ON t.item_id = a.Id_Article
+ LEFT JOIN vn2008.Cubos c ON c.Id_Cubo = t.Id_Cubo
+ WHERE s.amount > 0;
+
+ SELECT * FROM result
+ ORDER BY item, size;
+
+ DROP TEMPORARY TABLE
+ filter,
+ current_stock,
+ tmp,
+ result;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `item_available` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+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;
+
+ SELECT date_send, address_id, agency_id
+ INTO v_delivery, v_address, v_agency
+ FROM basket;
+
+ CALL vn2008.bionic_available_ (v_delivery, v_address, v_agency);
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.item_available;
+ CREATE TEMPORARY TABLE tmp.item_available
+ (INDEX (item_id))
+ ENGINE = MEMORY
+ SELECT c.item_id
+ FROM `cache`.available c
+ JOIN vn2008.t_bionic_available a ON c.calc_id = a.calc_id
+ WHERE c.available > 0
+ GROUP BY c.item_id;
+
+ DROP TEMPORARY TABLE vn2008.t_bionic_available;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `item_list` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `item_list`(v_warehouse SMALLINT, v_shipping DATE, v_realm INT, v_rate TINYINT)
+BEGIN
+ DECLARE v_calc INT;
+
+ CALL cache.available_refresh (v_calc, TRUE, v_warehouse, v_shipping);
+ CALL vn2008.item_last_buy_ (v_warehouse, v_shipping);
+
+ SELECT a.Id_Article, a.Article, a.Categoria, a.Medida, a.Tallos,
+ c.available, a.Color, o.Abreviatura, t.Tipo, a.tipo_id, a.Foto,
+ CASE b.caja
+ WHEN 0 THEN 1
+ WHEN 2 THEN b.packing
+ ELSE b.grouping
+ END AS grouping,
+ CASE v_rate
+ WHEN 1 THEN b.Tarifa1
+ WHEN 2 THEN b.Tarifa2
+ WHEN 3 THEN b.Tarifa3
+ ELSE NULL
+ END AS price
+ FROM cache.available c
+ JOIN vn2008.Articles a ON a.Id_Article = c.item_id
+ JOIN vn2008.t_item_last_buy l ON l.item_id = c.item_id
+ JOIN vn2008.Tipos t ON t.tipo_id = a.tipo_id
+ JOIN vn2008.reinos r ON t.reino_id = r.id
+ JOIN vn2008.Compres b ON b.Id_Compra = l.buy_id
+ LEFT JOIN vn2008.Origen o ON a.id_origen = o.id
+ WHERE c.calc_id = v_calc
+ AND c.available > 0
+ AND c.item_id != 90
+ AND r.display
+ AND (v_realm IS NULL OR v_realm = r.id)
+ ORDER BY a.tipo_id, Article, Medida;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `orderCheckDate` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `orderCheckDate`(vDate DATE)
+BEGIN
+ DECLARE vMaxTime TIME;
+ DECLARE vFestive BOOLEAN;
+ DECLARE vDenyDay DATE;
+ DECLARE vDenySunday BOOLEAN;
+
+ SELECT COUNT(*) INTO vFestive
+ FROM order_check_festive
+ WHERE TIMESTAMPADD(YEAR, -YEAR(vDate), vDate) = date
+ AND accept_orders = FALSE;
+
+ IF vDate < CURDATE()
+ THEN
+ CALL util.throw ('ORDER_DATE_PAST');
+ ELSEIF vFestive > 0
+ THEN
+ CALL util.throw ('ORDER_DATE_HOLIDAY');
+ ELSE
+ SELECT c.deny_sunday, c.deny_day, IFNULL(w.max_time, c.max_time)
+ INTO vDenySunday, vDenyDay, vMaxTime
+ FROM order_check c
+ LEFT JOIN order_check_wday w
+ ON w.weekday = WEEKDAY(CURDATE());
+
+ IF vDate = CURDATE() AND CURTIME() > vMaxTime
+ THEN
+ CALL util.throw ('ORDER_DATE_LAST');
+ ELSEIF WEEKDAY(vDate) = 6 AND vDenySunday
+ THEN
+ CALL util.throw ('ORDER_DATE_SUNDAY');
+ ELSEIF vDate = vDenyDay
+ THEN
+ CALL util.throw ('ORDER_DATE_SATURATED');
+ END IF;
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `orderNew` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `orderNew`()
+BEGIN
+ DECLARE vCount INT;
+ DECLARE vDeliveryMethod INT;
+ DECLARE vAgency INT;
+ DECLARE vAddress INT;
+ DECLARE vWarehouse INT DEFAULT NULL;
+
+ SELECT COUNT(*) INTO vCount FROM order_view;
+
+ IF vCount >= 3 THEN
+ CALL util.throw ('ORDER_MAX_EXCEEDED');
+ END IF;
+
+ SELECT co.Id_Consigna, co.Id_Agencia, a.Vista
+ INTO vAddress, vAgency, vDeliveryMethod
+ FROM vn2008.Clientes c
+ LEFT JOIN vn2008.Consignatarios co ON co.Id_Consigna = c.default_address
+ JOIN vn2008.Agencias a ON a.Id_Agencia = co.Id_Agencia
+ WHERE c.Id_cliente = user_id();
+
+ INSERT INTO `order`
+ SET
+ date_send = CURDATE(),
+ customer_id = user_id(),
+ delivery_method_id = IFNULL(vDeliveryMethod, DEFAULT(delivery_method_id)),
+ agency_id = IFNULL(vAgency, DEFAULT(agency_id)),
+ address_id = IFNULL(vAddress, DEFAULT(address_id)),
+ wh_id = IFNULL(vWarehouse, DEFAULT(wh_id)),
+ type_id = IFNULL(vAgency, DEFAULT(type_id)),
+ is_bionic = FALSE;
+
+ SELECT LAST_INSERT_ID() order_id;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `order_check_config` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ DECLARE v_address INT;
+ DECLARE v_ok BOOLEAN;
+
+ SELECT v.code, o.date_send, o.agency_id, o.address_id
+ INTO v_delivery_method, v_delivery, v_agency, v_address
+ FROM `order` o
+ 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
+ THEN
+ CALL util.throw ('ORDER_EMPTY_ADDRESS');
+ END IF;
+
+ -- Comprueba que la agencia es correcta
+
+ CALL agency_list_from_date (v_delivery, v_address);
+
+ SELECT COUNT(*) > 0 INTO v_ok
+ FROM t_agency
+ WHERE agency_id = v_agency;
+
+ DROP TEMPORARY TABLE t_agency;
+
+ IF !v_ok THEN
+ CALL util.throw ('ORDER_INVALID_AGENCY');
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `order_confirm_bionic` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ DECLARE v_shipment DATETIME;
+ DECLARE v_ticket INT;
+ DECLARE v_note VARCHAR(255);
+ DECLARE i_article INT;
+ DECLARE v_concepte VARCHAR(30);
+ DECLARE i_amount INT;
+ DECLARE d_price DOUBLE;
+ DECLARE i_movimiento INT;
+ DECLARE i_rate INT;
+ DECLARE i_worker INT;
+ DECLARE i_order_row INT;
+ DECLARE d_delivery DATE;
+ DECLARE i_address INT;
+ DECLARE i_agency INT;
+ DECLARE b_confirmed BOOLEAN;
+ DECLARE TICKET_FREE INT DEFAULT 2;
+ DECLARE SYSTEM_WORKER INT DEFAULT 20;
+
+ DECLARE cur_tick CURSOR FOR
+ SELECT t.Fecha_envio, r.warehouse_id
+ FROM `order` o
+ JOIN order_row r ON r.order_id = o.id
+ LEFT JOIN vn2008.travel_tree t ON t.warehouse_id = r.warehouse_id
+ WHERE o.id = v_order AND r.amount != 0
+ GROUP BY warehouse_id;
+
+ DECLARE cur_mov CURSOR FOR
+ SELECT r.id, r.item_id, a.Article, r.amount, r.price, r.rate
+ FROM order_row r
+ JOIN vn2008.Articles a ON a.Id_Article = r.item_id
+ WHERE r.amount != 0
+ AND r.warehouse_id = v_wh
+ AND r.order_id = v_order
+ ORDER BY r.rate DESC;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND
+ SET v_done = TRUE;
+
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION
+ BEGIN
+ ROLLBACK;
+ 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
+ FROM `order` o
+ 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;
+
+ IF !v_ok THEN
+ 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
+ WHERE user_id = account.userGetId();
+
+ IF i_worker IS NULL THEN
+ SELECT employee_id INTO i_worker FROM order_config;
+ END IF;
+
+ -- Crea los tickets del pedido
+
+ START TRANSACTION;
+
+ OPEN cur_tick;
+
+ tick_loop:
+ LOOP
+ SET v_ticket = NULL;
+ SET v_done = FALSE;
+ FETCH cur_tick INTO v_shipment, v_wh;
+
+ IF v_done THEN
+ 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
+ LEFT JOIN vn.ticketState tls on tls.ticket = t.Id_Ticket
+ JOIN `order` o
+ ON o.address_id = t.Id_Consigna
+ AND v_wh = t.warehouse_id
+ AND o.agency_id = t.Id_Agencia
+ AND t.landing = o.date_send
+ AND v_shipment = DATE(t.Fecha)
+ 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
+ INSERT INTO vn2008.Tickets (
+ Id_Cliente, Fecha, Alias, Id_Agencia, Id_Consigna,
+ Id_Trabajador, blocked, warehouse_id, Localizacion, landing
+ )
+ SELECT cs.Id_Cliente, IFNULL(v_shipment,CURDATE()), cs.Consignatario, o.agency_id, o.address_id,
+ i_worker, FALSE, v_wh, IF(v_shipment,'BIONIC','ERROR FECHA ENVIO'), o.date_send
+ FROM `order` o
+ JOIN vn2008.Consignatarios cs ON cs.Id_Consigna = o.address_id
+ WHERE o.id = v_order;
+
+ 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);
+
+ END IF;
+
+ 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)
+ ON DUPLICATE KEY UPDATE text = CONCAT(VALUES(text),'. ', text);
+ END IF;
+
+ -- Añade los movimientos y sus componentes
+
+ OPEN cur_mov;
+
+ mov_loop:
+ LOOP
+ SET v_done = FALSE;
+ FETCH cur_mov INTO i_order_row, i_article, v_concepte, i_amount, d_price, i_rate;
+
+ IF v_done THEN
+ LEAVE mov_loop;
+ END IF;
+
+ INSERT INTO vn2008.Movimientos
+ SET
+ Id_Article = i_article,
+ Id_Ticket = v_ticket,
+ Concepte = v_concepte,
+ Cantidad = i_amount,
+ Preu = d_price,
+ CostFixat = 0,
+ PrecioFijado = TRUE;
+
+ SET i_movimiento = LAST_INSERT_ID();
+
+ INSERT INTO vn2008.Movimientos_componentes (Id_Movimiento, Id_Componente, Valor)
+ SELECT i_movimiento, cm.component_id, cm.price
+ FROM order_component cm
+ JOIN bi.tarifa_componentes tc ON tc.Id_Componente = cm.component_id
+ WHERE cm.order_row_id = i_order_row
+ GROUP BY i_movimiento, cm.component_id;
+
+ UPDATE order_row SET Id_Movimiento = i_movimiento
+ WHERE id = i_order_row;
+
+ END LOOP;
+
+ CLOSE cur_mov;
+ -- Fija el Costfixat
+
+ UPDATE vn2008.Movimientos m
+ JOIN (SELECT SUM(mc.Valor) sum_valor,mc.Id_Movimiento
+ FROM vn2008.Movimientos_componentes mc
+ join bi.tarifa_componentes tc using(Id_Componente)
+ join bi.tarifa_componentes_series tcs on tcs.tarifa_componentes_series_id = tc.tarifa_componentes_series_id AND tcs.base
+ JOIN vn2008.Movimientos m ON m.Id_Movimiento = mc.Id_Movimiento
+ where m.Id_Ticket = v_ticket
+ GROUP BY mc.Id_Movimiento) mc ON mc.Id_Movimiento = m.Id_Movimiento
+ SET m.CostFixat = sum_valor;
+ END LOOP;
+
+ CLOSE cur_tick;
+
+ DELETE FROM order_basket WHERE order_id = v_order;
+ UPDATE `order` SET confirmed = TRUE, confirm_date = NOW()
+ WHERE id = v_order;
+
+ COMMIT;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `order_get_vat` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+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';
+ DECLARE CONTINUE HANDLER FOR clean
+ BEGIN
+ DROP TEMPORARY TABLE IF EXISTS t_vat_group;
+ DROP TEMPORARY TABLE IF EXISTS t_vat_tax;
+ END;
+
+ 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))
+ ENGINE = MEMORY
+ SELECT * FROM (
+ SELECT Id_Pais country_id, iva_group_id vat_group_id, c.tipo rate
+ FROM vn2008.iva_group_codigo g
+ JOIN vn2008.iva_codigo c ON g.iva_codigo_id = c.id
+ JOIN vn2008.iva_tipo t ON t.id = c.iva_tipo_id
+ WHERE date <= v_billing_date
+ ORDER BY date DESC
+ ) 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))
+ ENGINE = MEMORY
+ SELECT * FROM (
+ SELECT Id_Pais country_id, tipo rate,
+ CAST(iva / 100 AS DECIMAL(12, 2)) vat,
+ CAST(recargo / 100 AS DECIMAL(12, 2)) surcharge
+ FROM vn2008.iva_codigo
+ JOIN vn2008.iva_tipo t ON t.id = iva_tipo_id
+ WHERE Fecha <= v_billing_date AND iva
+ ORDER BY fecha DESC, recargo DESC
+ ) 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
+ (INDEX (order_id))
+ ENGINE = MEMORY
+ SELECT order_id, t.rate, t.tax_base,
+ IF(t.has_vat, t.tax_base * x.vat, 0) vat,
+ IF(t.has_surcharge, t.tax_base * x.surcharge, 0) surcharge
+ FROM (
+ SELECT o.id order_id, g.country_id, g.rate
+ ,SUM(m.amount * m.price) AS tax_base
+ ,NOT(c.VIES AND p.pais_id <> c.Id_Pais) AS has_vat
+ ,c.RE != FALSE AS has_surcharge
+ FROM `order` o
+ JOIN order_row m ON m.order_id = o.id
+ JOIN vn2008.Articles a ON a.Id_Article = m.item_id
+ JOIN vn2008.Clientes c ON c.Id_Cliente = o.customer_id
+ JOIN vn2008.Proveedores p ON p.Id_Proveedor = o.company_id
+ JOIN t_vat_group g ON g.country_id = p.pais_id AND g.vat_group_id = a.iva_group_id
+ WHERE o.id = v_order
+ GROUP BY order_id, rate
+ ) t
+ JOIN t_vat_tax x ON x.country_id = t.country_id AND x.rate = t.rate;
+
+ SIGNAL clean;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `order_update` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `order_update`(v_order INT)
+BEGIN
+ DECLARE v_date DATE;
+ DECLARE v_address INT;
+ DECLARE v_agency INT;
+ DECLARE v_nrows INT;
+
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ START TRANSACTION;
+
+ SELECT COUNT(*) INTO v_nrows
+ FROM order_row WHERE order_id = v_order;
+
+ IF v_nrows > 0
+ THEN
+ SELECT date_send, address_id, agency_id
+ INTO v_date, v_address, v_agency
+ FROM `order`
+ WHERE id = v_order;
+
+ CALL vn2008.bionic_from_order (v_date, v_address, v_agency, v_order);
+
+ DELETE c
+ FROM order_row r
+ JOIN order_component c ON c.order_row_id = r.id
+ WHERE r.order_id = v_order;
+
+ UPDATE order_row r
+ LEFT JOIN tmp.bionic_price l
+ ON l.warehouse_id = r.warehouse_id
+ AND l.item_id = r.item_id
+ AND l.rate = r.rate
+ LEFT JOIN tmp.travel_tree t
+ ON t.warehouse_id = r.warehouse_id
+ SET
+ r.price = l.price,
+ r.amount = IF(l.item_id IS NOT NULL, r.amount + IF(@m := MOD(r.amount, l.grouping), l.grouping - @m, 0), 0),
+ r.shipment = t.Fecha_envio
+ WHERE r.order_id = v_order;
+
+ INSERT INTO order_component (order_row_id, component_id, price)
+ SELECT r.id, c.component_id, c.cost
+ FROM order_row r
+ JOIN tmp.bionic_component c
+ ON c.warehouse_id = r.warehouse_id
+ AND c.item_id = r.item_id
+ JOIN bi.tarifa_componentes t
+ ON t.Id_Componente = c.component_id
+ AND (t.tarifa_class IS NULL OR t.tarifa_class = r.rate)
+ WHERE r.order_id = v_order;
+ END IF;
+
+ UPDATE `order` SET date_make = NOW()
+ WHERE id = v_order;
+
+ COMMIT;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `sql_query` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `sql_query`(IN v_sql TEXT)
+BEGIN
+ SET @v_sql = v_sql;
+
+ PREPARE stmt FROM @v_sql;
+ EXECUTE stmt;
+ DEALLOCATE PREPARE stmt;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `surveyVote` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `surveyVote`(vAnswer INT)
+BEGIN
+ DECLARE vSurvey INT;
+ DECLARE vCount TINYINT;
+ DECLARE EXIT HANDLER FOR 1062
+ CALL util.throw ('SURVEY_MAX_ONE_VOTE');
+
+ SELECT survey_id INTO vSurvey
+ FROM survey_answer WHERE id = vAnswer;
+
+ INSERT INTO survey_vote
+ VALUES (vSurvey, account.userGetId());
+
+ UPDATE survey_answer SET votes = votes + 1
+ WHERE id = vAnswer;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticketLog` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `ticketLog`(vticket INT)
+BEGIN
+ INSERT INTO vn2008.Tickets_dits
+ (idaccion_dits, Id_Trabajador, Id_Ticket)
+ SELECT 146, 4, id
+ FROM ticket_view WHERE id = vTicket;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `ticket_list` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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))
+ ENGINE = MEMORY
+ SELECT t.id ticket_id FROM ticket_view t
+ WHERE date > TIMESTAMP(DATE_FORMAT(TIMESTAMPADD(DAY, -25, CURDATE()), '%Y-%m-01'));
+
+ CALL vn2008.ticket_total ();
+
+ DROP TEMPORARY TABLE IF EXISTS t_movement_fixed;
+ CREATE TEMPORARY TABLE t_movement_fixed
+ (KEY (ticket_id))
+ ENGINE = MEMORY
+ SELECT ticket_id, BIT_AND(fixed != FALSE) all_fixed
+ FROM ticket_row_view
+ JOIN vn2008.ticket_tmp USING(ticket_id)
+ GROUP BY ticket_id;
+
+ SELECT i.ticket_id, IFNULL(v.delivery, v.`date`) `date`, city, consignee, type, company_id,
+ IF(all_fixed, t.total, NULL) total,
+ IF(v.date >= CURDATE() AND v.invoice IS NULL AND all_fixed
+ ,t.total
+ ,NULL
+ ) pending
+ FROM vn2008.ticket_tmp i
+ JOIN ticket_view v ON i.ticket_id = v.id
+ JOIN address_view c ON v.address_id = c.id
+ JOIN vn2008.ticket_total t USING(ticket_id)
+ LEFT JOIN t_movement_fixed m USING(ticket_id)
+ ORDER BY IFNULL(v.delivery, v.`date`) DESC, i.ticket_id DESC;
+
+ DROP TEMPORARY TABLE vn2008.ticket_tmp;
+ DROP TEMPORARY TABLE vn2008.ticket_total;
+ DROP TEMPORARY TABLE t_movement_fixed;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `transactionConfirm` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `transactionConfirm`(
+ vAmount INT
+ ,vOrder INT
+ ,vMerchant INT
+ ,vCurrency INT
+ ,vResponse INT
+ ,vErrorCode VARCHAR(10)
+)
+BEGIN
+ DECLARE vReceipt INT;
+ DECLARE vStatus VARCHAR(10);
+ DECLARE vCustomer INT;
+ DECLARE vBank INT;
+ DECLARE vCompany INT;
+ DECLARE vEmployee INT;
+ DECLARE vIsDuplicated BOOLEAN;
+ DECLARE vDate DATE;
+ DECLARE vConcept VARCHAR(25) DEFAULT 'Cobro Web';
+
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ START TRANSACTION;
+
+ SELECT COUNT(*) > 0 INTO vIsDuplicated
+ FROM tpv_transaction
+ WHERE id = vOrder AND response IS NOT NULL
+ FOR UPDATE;
+
+ IF vIsDuplicated
+ THEN
+ CALL util.throw ('TRANSACTION_DUPLICATED');
+ END IF;
+
+ IF vResponse BETWEEN 0 AND 99
+ THEN
+ SELECT
+ t.customer_id
+ ,m.bank_id
+ ,m.company_id
+ ,c.employee_id
+ ,DATE(t.date_time)
+ INTO
+ vCustomer
+ ,vBank
+ ,vCompany
+ ,vEmployee
+ ,vDate
+ FROM tpv_merchant m
+ JOIN tpv_config c ON c.id = 1
+ LEFT JOIN tpv_transaction t ON t.id = vOrder
+ WHERE m.id = vMerchant;
+
+ INSERT INTO vn2008.Recibos
+ SET
+ Entregado = vAmount / 100
+ ,Fechacobro = vDate
+ ,Id_Trabajador = vEmployee
+ ,Id_Banco = vBank
+ ,Id_Cliente = vCustomer
+ ,empresa_id = vCompany
+ ,Id_Factura = vConcept
+ ,conciliado = TRUE;
+
+ SET vReceipt = LAST_INSERT_ID();
+ SET vStatus = 'ok';
+
+ -- Código redundante
+
+ DO vn2008.till_entry
+ (
+ vCustomer
+ ,vBank
+ ,vAmount / 100
+ ,vConcept
+ ,vDate
+ ,'A'
+ ,TRUE
+ ,vCustomer
+ ,vCompany
+ ,vEmployee
+ );
+ ELSE
+ SET vReceipt = NULL;
+ SET vStatus = 'ko';
+ END IF;
+
+ UPDATE tpv_transaction
+ SET
+ merchant_id = vMerchant
+ ,receipt_id = vReceipt
+ ,amount = vAmount
+ ,response = vResponse
+ ,error_code = vErrorCode
+ ,status = vStatus
+ WHERE id = vOrder;
+
+ COMMIT;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `transactionConfirmAll` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `transactionConfirmAll`(vDate DATE)
+BEGIN
+ DECLARE vOrder INT;
+ DECLARE vDone BOOLEAN DEFAULT FALSE;
+ DECLARE vDateIni DATETIME DEFAULT TIMESTAMP(vDate, '00:00:00');
+ DECLARE vDateEnd DATETIME DEFAULT TIMESTAMP(vDate, '23:59:59');
+
+ DECLARE transactions CURSOR FOR
+ SELECT id
+ FROM tpv_transaction
+ WHERE date_time BETWEEN vDateIni AND vDateEnd
+ AND status = 'ok'
+ AND response IS NULL;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
+
+ OPEN transactions;
+
+ l: LOOP
+ FETCH transactions INTO vOrder;
+
+ IF vDone THEN
+ LEAVE l;
+ END IF;
+
+ CALL transactionConfirmById (vOrder);
+ END LOOP l;
+
+ CLOSE transactions;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `transactionConfirmById` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `transactionConfirmById`(
+ vOrder INT
+)
+BEGIN
+ DECLARE vAmount INT;
+ DECLARE vMerchant INT;
+ DECLARE vCurrency INT;
+
+ SELECT amount, merchant_id, currency
+ INTO vAmount, vMerchant, vCurrency
+ FROM tpv_transaction t
+ JOIN tpv_merchant m ON t.merchant_id = m.id
+ JOIN tpv_config c
+ WHERE t.id = vOrder;
+
+ CALL transactionConfirm (
+ vAmount
+ ,vOrder
+ ,vMerchant
+ ,vCurrency
+ ,0
+ ,NULL
+ );
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `transactionEnd` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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
+ WHERE id = vTransaction AND response IS NULL;
+ END IF;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `transactionStart` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+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;
+ DECLARE vUrl VARCHAR(255);
+ DECLARE vKey VARCHAR(50);
+ DECLARE vTestMode BOOLEAN;
+
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ START TRANSACTION;
+
+ IF vCompany IS NULL
+ THEN
+ SELECT company_id INTO vCompany
+ FROM tpv_merchant_enable LIMIT 1;
+ END IF;
+
+ SELECT merchant_id INTO vMerchant
+ FROM tpv_merchant_enable WHERE company_id = vCompany;
+
+ SELECT test_mode INTO vTestMode
+ FROM tpv_config;
+
+ IF NOT vTestMode
+ THEN
+ SELECT c.url, m.secret_key INTO vUrl, vKey
+ FROM tpv_merchant m
+ JOIN tpv_config c
+ WHERE m.id = vMerchant;
+ ELSE
+ SELECT test_url, test_key INTO vUrl, vKey
+ FROM tpv_config;
+ END IF;
+
+ INSERT INTO tpv_transaction_view
+ SET
+ merchant_id = vMerchant
+ ,customer_id = account.userGetId()
+ ,amount = vAmount;
+
+ SET vTransaction = LAST_INSERT_ID();
+
+ SELECT
+ vAmount amount
+ ,vTransaction transactionId
+ ,vMerchant merchant
+ ,currency
+ ,transaction_type transactionType
+ ,terminal
+ ,merchant_url merchantUrl
+ ,vUrl url
+ ,vKey secretKey
+ FROM tpv_config;
+
+ COMMIT;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `transactionUndo` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `transactionUndo`(
+ vOrder INT
+)
+BEGIN
+ DECLARE vCustomer INT;
+ DECLARE vAmount DOUBLE;
+ DECLARE vReceipt INT;
+ DECLARE vDate DATE;
+ DECLARE vBank INT;
+ DECLARE vAccount VARCHAR(12);
+ DECLARE vSubaccount VARCHAR(12);
+
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ START TRANSACTION;
+
+ SELECT
+ t.customer_id
+ ,t.amount / 100
+ ,t.receipt_id
+ ,DATE(t.date_time)
+ ,m.bank_id
+ INTO
+ vCustomer
+ ,vAmount
+ ,vReceipt
+ ,vDate
+ ,vBank
+ FROM tpv_transaction t
+ JOIN tpv_merchant m ON m.id = t.merchant_id
+ JOIN tpv_config c
+ 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
+ AND DATE(CajaFecha) = vDate
+ AND Entrada = vAmount
+ LIMIT 1;
+
+ -- Elimina los asientos contables
+
+ SELECT Cuenta INTO vSubaccount
+ FROM vn2008.Clientes WHERE Id_Cliente = vCustomer;
+
+ SELECT Cuenta INTO vAccount
+ FROM vn2008.Bancos WHERE Id_Banco = vBank;
+
+ DELETE FROM vn2008.XDiario
+ WHERE SUBCTA = vSubaccount
+ AND CONTRA = vAccount
+ AND DATE(FECHA) = vDate
+ AND EUROHABER = vAmount
+ LIMIT 1;
+
+ DELETE FROM vn2008.XDiario
+ WHERE CONTRA = vSubaccount
+ AND SUBCTA = vAccount
+ AND DATE(FECHA) = vDate
+ AND EURODEBE = vAmount
+ LIMIT 1;
+
+ -- Actualiza la transaccion
+
+ UPDATE tpv_transaction
+ SET response = NULL, status = 'started'
+ WHERE id = vOrder;
+
+ COMMIT;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `type_list` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = '' */ ;
+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;
+
+ SELECT date_send, address_id, agency_id
+ INTO v_date, v_address, v_agency
+ FROM basket;
+
+ CALL vn2008.bionic_available_types_ (v_date, v_address, v_agency);
+
+ SELECT t.tipo_id, t.Tipo
+ FROM vn2008.Tipos t
+ JOIN vn2008.t_bionic_available_types bt ON bt.tipo_id = t.tipo_id
+ WHERE t.reino_id = v_realm
+ ORDER BY t.Orden DESC, t.Tipo;
+
+ DROP TEMPORARY TABLE vn2008.t_bionic_available_types;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `visitRegister` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `visitRegister`(
+ vVisit INT
+ ,vPlatform VARCHAR(30)
+ ,vBrowser VARCHAR(30)
+ ,vVersion VARCHAR(15)
+ ,vJavascript TINYINT
+ ,vCookies TINYINT
+ ,vAgent VARCHAR(255)
+ ,vIp INT
+ ,vReferer VARCHAR(255)
+)
+BEGIN
+ DECLARE vFirstVisit TINYINT DEFAULT FALSE;
+ DECLARE vFirstAgent TINYINT DEFAULT FALSE;
+ 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
+ INSERT INTO visit SET id = DEFAULT;
+ SET vVisit = LAST_INSERT_ID();
+ SET vFirstVisit = TRUE;
+ END IF;
+
+ SELECT id INTO vAgentId FROM visitAgent
+ WHERE visit = vVisit
+ AND (agent = vAgent OR (vAgent IS NULL AND agent IS NULL))
+ LIMIT 1;
+
+ -- Registers the user agent
+
+ IF vAgentId IS NULL
+ THEN
+ INSERT INTO visitAgent SET
+ visit = vVisit
+ ,platform = vPlatform
+ ,browser = vBrowser
+ ,version = vVersion
+ ,javascript = vJavascript
+ ,cookies = vCookies
+ ,agent = vAgent;
+
+ SET vAgentId = LAST_INSERT_ID();
+ SET vFirstAgent = TRUE;
+ END IF;
+
+ IF vFirstVisit
+ THEN
+ UPDATE visit SET firstAgent = vAgentId
+ WHERE id = vVisit;
+ END IF;
+
+ -- Registers the user access
+
+ INSERT INTO visitAccess SET
+ agent = vAgentId
+ ,ip = vIp
+ ,referer = vReferer;
+
+ SET vAccessId = LAST_INSERT_ID();
+
+ IF vFirstAgent
+ THEN
+ UPDATE visitAgent SET firstAccess = vAccessId
+ WHERE id = vAgentId;
+ END IF;
+
+ -- Returns the visit info
+
+ SELECT vVisit visit, vAccessId access;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `visitUserNew` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8 */ ;
+/*!50003 SET character_set_results = utf8 */ ;
+/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+CREATE DEFINER=`root`@`%` PROCEDURE `visitUserNew`(
+ vAccess INT
+ ,vSsid VARCHAR(64)
+)
+BEGIN
+ DECLARE vUserVisit INT;
+
+ INSERT INTO visitUser SET
+ access = vAccess,
+ user = account.userGetId();
+
+ SET vUserVisit = LAST_INSERT_ID();
+
+ UPDATE userSession SET userVisit = vUserVisit
+ WHERE ssid = vSsid;
+
+ DELETE FROM userSession
+ WHERE lastUpdate < TIMESTAMPADD(HOUR, -1, NOW());
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+
+--
+-- Current Database: `vncontrol`
+--
+
+USE `vncontrol`;
+
+--
+-- Current Database: `edi`
+--
+
+USE `edi`;
+
+--
+-- Current Database: `vn2008`
+--
+
+USE `vn2008`;
+
+--
+-- Final view structure for view `V_edi_item_track`
+--
+
+/*!50001 DROP VIEW IF EXISTS `V_edi_item_track`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `V_edi_item_track` AS select `edi`.`item_track`.`item_id` AS `item_id`,`edi`.`item_track`.`s1` AS `s1`,`edi`.`item_track`.`s2` AS `s2`,`edi`.`item_track`.`s3` AS `s3`,`edi`.`item_track`.`s4` AS `s4`,`edi`.`item_track`.`s5` AS `s5`,`edi`.`item_track`.`s6` AS `s6`,`edi`.`item_track`.`kop` AS `kop`,`edi`.`item_track`.`pac` AS `pac`,`edi`.`item_track`.`cat` AS `cat`,`edi`.`item_track`.`ori` AS `ori`,`edi`.`item_track`.`pro` AS `pro`,`edi`.`item_track`.`sub` AS `sub`,`edi`.`item_track`.`package` AS `package` from `edi`.`item_track` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `VerEspionaje`
+--
+
+/*!50001 DROP VIEW IF EXISTS `VerEspionaje`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `VerEspionaje` AS select `Trabajadores`.`CodigoTrabajador` AS `CodigoTrabajador`,`Espionajes`.`Fecha` AS `Fecha`,`Espionajes`.`HoraEntrada` AS `HoraEntrada`,`Espionajes`.`HoraSalida` AS `HoraSalida`,`Espionajes`.`Id_Equipo` AS `Id_Equipo`,`Trabajadores`.`Id_Trabajador` AS `Id_Trabajador` from (`Espionajes` join `Trabajadores` on((`Espionajes`.`Id_Trabajador` = `Trabajadores`.`Id_Trabajador`))) order by `Trabajadores`.`CodigoTrabajador`,`Espionajes`.`Fecha` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `account_customer`
+--
+
+/*!50001 DROP VIEW IF EXISTS `account_customer`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `account_customer` AS select `e`.`description` AS `description`,`vn2008`.`cc_to_iban`(concat(`a`.`entity_id`,`a`.`office`,`a`.`DC`,`a`.`number`)) AS `iban`,`a`.`entity_id` AS `entity_id`,`a`.`office` AS `office`,`a`.`DC` AS `dc`,`a`.`number` AS `number` from ((`provider_account_customer` `c` join `Proveedores_account` `a` on((`a`.`Id_Proveedores_account` = `c`.`account_id`))) join `entity` `e` on((`a`.`entity_id` = `e`.`entity_id`))) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `awb_volume`
+--
+
+/*!50001 DROP VIEW IF EXISTS `awb_volume`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `awb_volume` AS select `ar`.`awb_id` AS `awb_id`,(((`c`.`Etiquetas` * `t`.`density`) * if((`cu`.`Volumen` > 0),`cu`.`Volumen`,((`cu`.`X` * `cu`.`Y`) * if((`cu`.`Z` = 0),(`a`.`Medida` + 10),`cu`.`Z`)))) / 167000) AS `volume` from (((((((`Compres` `c` join `Articles` `a` on((`c`.`Id_Article` = `a`.`Id_Article`))) join `Tipos` `t` on((`a`.`tipo_id` = `t`.`tipo_id`))) join `Cubos` `cu` on((`cu`.`Id_Cubo` = `c`.`Id_Cubo`))) join `Entradas` `e` on((`c`.`Id_Entrada` = `e`.`Id_Entrada`))) join `travel` `tr` on((`tr`.`id` = `e`.`travel_id`))) join `recibida_entrada` `re` on((`c`.`Id_Entrada` = `re`.`Id_Entrada`))) join `awb_recibida` `ar` on((`re`.`awb_recibida` = `ar`.`recibida_id`))) where (`tr`.`shipment` > makedate((year(curdate()) - 1),1)) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `cdr`
+--
+
+/*!50001 DROP VIEW IF EXISTS `cdr`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `cdr` AS select `c`.`call_date` AS `calldate`,`c`.`clid` AS `clid`,`c`.`src` AS `src`,`c`.`dst` AS `dst`,`c`.`dcontext` AS `dcontext`,`c`.`channel` AS `channel`,`c`.`dst_channel` AS `dstchannel`,`c`.`last_app` AS `lastapp`,`c`.`last_data` AS `lastdata`,`c`.`duration` AS `duration`,`c`.`billsec` AS `billsec`,`c`.`disposition` AS `disposition`,`c`.`ama_flags` AS `amaflags`,`c`.`account_code` AS `accountcode`,`c`.`unique_id` AS `uniqueid`,`c`.`user_field` AS `userfield` from `pbx`.`cdr` `c` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `clientMana`
+--
+
+/*!50001 DROP VIEW IF EXISTS `clientMana`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `clientMana` AS select `t`.`Id_Cliente` AS `Id_Cliente`,`mc`.`Valor` AS `ManaUnitario`,(`mc`.`Valor` * `m`.`Cantidad`) AS `ManaTotal`,`t`.`Id_Ticket` AS `Id_Ticket`,`m`.`Id_Article` AS `Id_Article`,`m`.`Concepte` AS `Concepte`,`m`.`Cantidad` AS `Cantidad`,`m`.`Preu` AS `Preu`,`t`.`Fecha` AS `Fecha`,`m`.`Id_Movimiento` AS `Id_Movimiento` from ((((`vn2008`.`Tickets` `t` join `vn2008`.`Movimientos` `m` on((`m`.`Id_Ticket` = `t`.`Id_Ticket`))) join `vn2008`.`Movimientos_componentes` `mc` on((`mc`.`Id_Movimiento` = `m`.`Id_Movimiento`))) join `vn2008`.`tarifa_componentes` `tc` on((`tc`.`Id_Componente` = `mc`.`Id_Componente`))) join `vn2008`.`tarifa_componentes_series` `tcs` on((`tc`.`tarifa_componentes_series_id` = `tcs`.`tarifa_componentes_series_id`))) where ((`t`.`Fecha` >= '2016-01-01') and (`tcs`.`Serie` = 'cartera_comercial') and (`mc`.`Valor` <> 0)) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `edi_article`
+--
+
+/*!50001 DROP VIEW IF EXISTS `edi_article`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `edi_article` AS select `edi`.`item`.`id` AS `id`,`edi`.`item`.`product_name` AS `product_name`,`edi`.`item`.`name` AS `name`,`edi`.`item`.`plant_id` AS `plant_id`,`edi`.`item`.`group_id` AS `group_id`,`edi`.`item`.`entry_date` AS `entry_date`,`edi`.`item`.`expiry_date` AS `expiry_date`,`edi`.`item`.`change_date_time` AS `change_date_time` from `edi`.`item` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `edi_bucket`
+--
+
+/*!50001 DROP VIEW IF EXISTS `edi_bucket`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `edi_bucket` AS select (cast(`edi`.`bucket`.`bucket_id` as char charset utf8) collate utf8_general_ci) AS `bucket_id`,`edi`.`bucket`.`bucket_type_id` AS `bucket_type_id`,`edi`.`bucket`.`description` AS `description`,`edi`.`bucket`.`x_size` AS `x_size`,`edi`.`bucket`.`y_size` AS `y_size`,`edi`.`bucket`.`z_size` AS `z_size`,`edi`.`bucket`.`entry_date` AS `entry_date`,`edi`.`bucket`.`expiry_date` AS `expiry_date`,`edi`.`bucket`.`change_date_time` AS `change_date_time` from `edi`.`bucket` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `edi_bucket_type`
+--
+
+/*!50001 DROP VIEW IF EXISTS `edi_bucket_type`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `edi_bucket_type` AS select `edi`.`bucket_type`.`bucket_type_id` AS `bucket_type_id`,`edi`.`bucket_type`.`description` AS `description`,`edi`.`bucket_type`.`entry_date` AS `entry_date`,`edi`.`bucket_type`.`expiry_date` AS `expiry_date`,`edi`.`bucket_type`.`change_date_time` AS `change_date_time` from `edi`.`bucket_type` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `edi_feature`
+--
+
+/*!50001 DROP VIEW IF EXISTS `edi_feature`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `edi_feature` AS select `edi`.`feature`.`item_id` AS `item_id`,`edi`.`feature`.`feature_type_id` AS `feature_type_id`,`edi`.`feature`.`feature_value` AS `feature_value`,`edi`.`feature`.`entry_date` AS `entry_date`,`edi`.`feature`.`expiry_date` AS `expiry_date`,`edi`.`feature`.`change_date_time` AS `change_date_time` from `edi`.`feature` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `edi_genus`
+--
+
+/*!50001 DROP VIEW IF EXISTS `edi_genus`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `edi_genus` AS select `edi`.`genus`.`genus_id` AS `genus_id`,`edi`.`genus`.`latin_genus_name` AS `latin_genus_name`,`edi`.`genus`.`entry_date` AS `entry_date`,`edi`.`genus`.`expiry_date` AS `expiry_date`,`edi`.`genus`.`change_date_time` AS `change_date_time` from `edi`.`genus` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `edi_item_feature`
+--
+
+/*!50001 DROP VIEW IF EXISTS `edi_item_feature`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `edi_item_feature` AS select `edi`.`item_feature`.`item_id` AS `item_id`,`edi`.`item_feature`.`presentation_order` AS `presentation_order`,`edi`.`item_feature`.`feature` AS `feature`,`edi`.`item_feature`.`regulation_type` AS `regulation_type`,`edi`.`item_feature`.`entry_date` AS `entry_date`,`edi`.`item_feature`.`expiry_date` AS `expiry_date`,`edi`.`item_feature`.`change_date_time` AS `change_date_time` from `edi`.`item_feature` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `edi_plant`
+--
+
+/*!50001 DROP VIEW IF EXISTS `edi_plant`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `edi_plant` AS select `edi`.`plant`.`plant_id` AS `plant_id`,`edi`.`plant`.`genus_id` AS `genus_id`,`edi`.`plant`.`specie_id` AS `specie_id`,`edi`.`plant`.`entry_date` AS `entry_date`,`edi`.`plant`.`expiry_date` AS `expiry_date`,`edi`.`plant`.`change_date_time` AS `change_date_time` from `edi`.`plant` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `edi_specie`
+--
+
+/*!50001 DROP VIEW IF EXISTS `edi_specie`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `edi_specie` AS select `edi`.`specie`.`specie_id` AS `specie_id`,`edi`.`specie`.`genus_id` AS `genus_id`,`edi`.`specie`.`latin_species_name` AS `latin_species_name`,`edi`.`specie`.`entry_date` AS `entry_date`,`edi`.`specie`.`expiry_date` AS `expiry_date`,`edi`.`specie`.`change_date_time` AS `change_date_time` from `edi`.`specie` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `edi_supplier`
+--
+
+/*!50001 DROP VIEW IF EXISTS `edi_supplier`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `edi_supplier` AS select `edi`.`supplier`.`supplier_id` AS `supplier_id`,`edi`.`supplier`.`company_name` AS `company_name` from `edi`.`supplier` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `edi_type`
+--
+
+/*!50001 DROP VIEW IF EXISTS `edi_type`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `edi_type` AS select `edi`.`type`.`type_id` AS `type_id`,`edi`.`type`.`type_group_id` AS `type_group_id`,`edi`.`type`.`description` AS `description`,`edi`.`type`.`entry_date` AS `entry_date`,`edi`.`type`.`expiry_date` AS `expiry_date`,`edi`.`type`.`change_date_time` AS `change_date_time` from `edi`.`type` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `edi_value`
+--
+
+/*!50001 DROP VIEW IF EXISTS `edi_value`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `edi_value` AS select `edi`.`value`.`type_id` AS `type_id`,`edi`.`value`.`type_value` AS `type_value`,`edi`.`value`.`type_description` AS `type_description`,`edi`.`value`.`entry_date` AS `entry_date`,`edi`.`value`.`expiry_date` AS `expiry_date`,`edi`.`value`.`change_date_time` AS `change_date_time` from `edi`.`value` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `itemTagArranged`
+--
+
+/*!50001 DROP VIEW IF EXISTS `itemTagArranged`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `itemTagArranged` AS select `i`.`itemFk` AS `itemFk`,`i`.`tag1` AS `tag1`,`i`.`val1` AS `val1`,`i`.`tag2` AS `tag2`,`i`.`val2` AS `val2`,`i`.`tag3` AS `tag3`,`i`.`val3` AS `val3`,`i`.`tag4` AS `tag4`,`i`.`val4` AS `val4`,`i`.`tag5` AS `tag5`,`i`.`val5` AS `val5`,`i`.`tag6` AS `tag6`,`i`.`val6` AS `val6`,`i`.`description` AS `description` from `vn`.`itemTagArranged` `i` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `item_entry_in`
+--
+
+/*!50001 DROP VIEW IF EXISTS `item_entry_in`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `item_entry_in` AS select `t`.`warehouse_id` AS `warehouse_id`,`t`.`landing` AS `dat`,`m`.`Id_Article` AS `item_id`,`m`.`Cantidad` AS `amount`,`t`.`received` AS `received` from ((`Compres` `m` join `Entradas` `e` on((`m`.`Id_Entrada` = `e`.`Id_Entrada`))) join `travel` `t` on((`e`.`travel_id` = `t`.`id`))) where ((`e`.`Inventario` = 0) and (`m`.`Cantidad` <> 0)) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `item_entry_out`
+--
+
+/*!50001 DROP VIEW IF EXISTS `item_entry_out`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `item_entry_out` AS select `t`.`warehouse_id_out` AS `warehouse_id`,`t`.`shipment` AS `dat`,`m`.`Id_Article` AS `item_id`,-(`m`.`Cantidad`) AS `amount`,`t`.`delivered` AS `delivered` from ((`Compres` `m` join `Entradas` `e` on((`m`.`Id_Entrada` = `e`.`Id_Entrada`))) join `travel` `t` on((`e`.`travel_id` = `t`.`id`))) where ((`e`.`Inventario` = 0) and (`e`.`Redada` = 0) and (`m`.`Cantidad` <> 0)) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `item_out`
+--
+
+/*!50001 DROP VIEW IF EXISTS `item_out`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `item_out` AS select `t`.`warehouse_id` AS `warehouse_id`,`t`.`Fecha` AS `dat`,`m`.`Id_Article` AS `item_id`,-(`m`.`Cantidad`) AS `amount`,`m`.`OK` AS `ok`,`m`.`Reservado` AS `Reservado`,(`ts`.`alertLevel` = 3) AS `ready`,`t`.`Factura` AS `invoice`,ifnull(`ts`.`alertLevel`,0) AS `alertLevel` from ((`vn2008`.`Movimientos` `m` join `vn2008`.`Tickets` `t` on((`m`.`Id_Ticket` = `t`.`Id_Ticket`))) left join `vn`.`ticketState` `ts` on((`t`.`Id_Ticket` = `ts`.`ticket`))) where (`m`.`Cantidad` <> 0) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `new_view`
+--
+
+/*!50001 DROP VIEW IF EXISTS `new_view`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `new_view` AS select `vn`.`workerDocument`.`id` AS `id`,`vn`.`workerDocument`.`worker` AS `worker`,`vn`.`workerDocument`.`document` AS `document` from `vn`.`workerDocument` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `order`
+--
+
+/*!50001 DROP VIEW IF EXISTS `order`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `order` AS select `hedera`.`order`.`id` AS `id`,`hedera`.`order`.`date_make` AS `date_make`,`hedera`.`order`.`date_send` AS `date_send`,`hedera`.`order`.`customer_id` AS `customer_id`,`hedera`.`order`.`delivery_method_id` AS `delivery_method_id`,`hedera`.`order`.`agency_id` AS `agency_id`,`hedera`.`order`.`address_id` AS `address_id`,`hedera`.`order`.`note` AS `note`,`hedera`.`order`.`confirmed` AS `confirmed`,`hedera`.`order`.`is_bionic` AS `is_bionic`,`hedera`.`order`.`source_app` AS `source_app` from `hedera`.`order` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `order_component`
+--
+
+/*!50001 DROP VIEW IF EXISTS `order_component`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `order_component` AS select `c`.`order_row_id` AS `order_row_id`,`c`.`component_id` AS `component_id`,`c`.`price` AS `price` from `hedera`.`order_component` `c` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `order_row`
+--
+
+/*!50001 DROP VIEW IF EXISTS `order_row`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `order_row` AS select `hedera`.`order_row`.`id` AS `id`,`hedera`.`order_row`.`order_id` AS `order_id`,`hedera`.`order_row`.`item_id` AS `item_id`,`hedera`.`order_row`.`warehouse_id` AS `warehouse_id`,`hedera`.`order_row`.`shipment` AS `shipment`,`hedera`.`order_row`.`amount` AS `amount`,`hedera`.`order_row`.`price` AS `price`,`hedera`.`order_row`.`rate` AS `rate`,`hedera`.`order_row`.`created` AS `created`,`hedera`.`order_row`.`Id_Movimiento` AS `Id_Movimiento` from `hedera`.`order_row` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `person_user`
+--
+
+/*!50001 DROP VIEW IF EXISTS `person_user`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `person_user` AS select `u`.`id` AS `id`,`u`.`role` AS `mysql_user_id`,`u`.`name` AS `name`,`u`.`password` AS `password`,`u`.`active` AS `active`,`u`.`lastPassChange` AS `last_pass_change` from `account`.`user` `u` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `person_user_idtrabajador`
+--
+
+/*!50001 DROP VIEW IF EXISTS `person_user_idtrabajador`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `person_user_idtrabajador` AS select `t`.`Id_Trabajador` AS `Id_Trabajador` from (`vn2008`.`person_user` `p` join `vn2008`.`Trabajadores` `t` on((`p`.`id` = `t`.`user_id`))) where (`t`.`user_id` = `account`.`userGetId`()) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `proveedores_clientes`
+--
+
+/*!50001 DROP VIEW IF EXISTS `proveedores_clientes`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `proveedores_clientes` AS select `Proveedores`.`Id_Proveedor` AS `Id_Proveedor`,`Proveedores`.`Proveedor` AS `Proveedor`,`Clientes`.`id_cliente` AS `Id_Cliente`,`Clientes`.`cliente` AS `Cliente` from (`Proveedores` join `Clientes` on((`Proveedores`.`NIF` = `Clientes`.`if`))) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `root`
+--
+
+/*!50001 DROP VIEW IF EXISTS `root`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`z-developer`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `root` AS select dayname(`h`.`confirm_date`) AS `DiadelaSemana`,hour(`h`.`confirm_date`) AS `Hora`,cast(`h`.`confirm_date` as date) AS `Fecha`,`h`.`source_app` AS `Dispositivo` from `hedera`.`order` `h` where `h`.`confirm_date` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `tarifa_componentes`
+--
+
+/*!50001 DROP VIEW IF EXISTS `tarifa_componentes`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `tarifa_componentes` AS select `bi`.`tarifa_componentes`.`Id_Componente` AS `Id_Componente`,`bi`.`tarifa_componentes`.`Componente` AS `Componente`,`bi`.`tarifa_componentes`.`tarifa_componentes_series_id` AS `tarifa_componentes_series_id`,`bi`.`tarifa_componentes`.`tarifa_class` AS `tarifa_class`,`bi`.`tarifa_componentes`.`tax` AS `tax`,`bi`.`tarifa_componentes`.`is_renewable` AS `is_renewable` from `bi`.`tarifa_componentes` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `tarifa_componentes_series`
+--
+
+/*!50001 DROP VIEW IF EXISTS `tarifa_componentes_series`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `tarifa_componentes_series` AS select `bi`.`tarifa_componentes_series`.`tarifa_componentes_series_id` AS `tarifa_componentes_series_id`,`bi`.`tarifa_componentes_series`.`Serie` AS `Serie`,`bi`.`tarifa_componentes_series`.`base` AS `base` from `bi`.`tarifa_componentes_series` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `ticketCreationData`
+--
+
+/*!50001 DROP VIEW IF EXISTS `ticketCreationData`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`z-developer`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `ticketCreationData` AS select dayname(`h`.`confirm_date`) AS `DiadelaSemana`,hour(`h`.`confirm_date`) AS `Hora`,cast(`h`.`confirm_date` as date) AS `Fecha`,`h`.`source_app` AS `Dispositivo` from `hedera`.`order` `h` where `h`.`confirm_date` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_Agenda`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_Agenda`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_Agenda` AS select 'P' AS `Tipo`,`Proveedores`.`Id_Proveedor` AS `Id`,`Proveedores`.`Proveedor` AS `Nombre`,`Proveedores`.`Telefono` AS `Telephone` from `Proveedores` where (`Proveedores`.`Telefono` is not null) union select 'C' AS `Tipo`,`Clientes`.`id_cliente` AS `Id`,`Clientes`.`cliente` AS `Cliente`,`Clientes`.`telefono` AS `Telefono` from `Clientes` where (`Clientes`.`telefono` is not null) union select 'C' AS `Tipo`,`Clientes`.`id_cliente` AS `Id`,`Clientes`.`cliente` AS `Cliente`,`Clientes`.`movil` AS `Movil` from `Clientes` where (`Clientes`.`movil` is not null) union select if(isnull(`Relaciones`.`Id_Proveedor`),'C','P') AS `Tipo`,if(isnull(`Relaciones`.`Id_Proveedor`),`Relaciones`.`Id_Cliente`,`Relaciones`.`Id_Proveedor`) AS `Id`,`Contactos`.`Nombre` AS `Nombre`,`Contactos`.`Telefono` AS `Telefono` from (`Contactos` join `Relaciones` on((`Contactos`.`Id_Contacto` = `Relaciones`.`Id_Contacto`))) where (`Contactos`.`Telefono` is not null) union select if(isnull(`Relaciones`.`Id_Proveedor`),'C','P') AS `Tipo`,if(isnull(`Relaciones`.`Id_Proveedor`),`Relaciones`.`Id_Cliente`,`Relaciones`.`Id_Proveedor`) AS `Id`,`Contactos`.`Nombre` AS `Nombre`,`Contactos`.`Movil` AS `Movil` from (`Contactos` join `Relaciones` on((`Contactos`.`Id_Contacto` = `Relaciones`.`Id_Contacto`))) where (`Contactos`.`Movil` is not null) union select 'T' AS `Tipo`,`Trabajadores`.`Id_Trabajador` AS `Id_Trabajador`,`Trabajadores`.`CodigoTrabajador` AS `CodigoTrabajador`,`Trabajadores`.`extension` AS `extension` from `Trabajadores` where (`Trabajadores`.`extension` is not null) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_Agenda2`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_Agenda2`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_Agenda2` AS select `v_Agenda`.`Tipo` AS `Tipo`,`v_Agenda`.`Id` AS `Id`,`v_Agenda`.`Nombre` AS `Nombre`,replace(`v_Agenda`.`Telephone`,' ','') AS `Telefono` from `v_Agenda` where `v_Agenda`.`Telephone` group by replace(`v_Agenda`.`Telephone`,' ','') */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_Articles_botanical`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_Articles_botanical`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_Articles_botanical` AS select `ab`.`Id_Article` AS `Id_Article`,ifnull(`ab`.`botanical`,concat(`g`.`latin_genus_name`,' ',ifnull(`s`.`latin_species_name`,''))) AS `edi_botanic` from ((`vn2008`.`Articles_botanical` `ab` left join `edi`.`genus` `g` on((`ab`.`genus_id` = `g`.`genus_id`))) left join `edi`.`specie` `s` on((`s`.`specie_id` = `ab`.`specie_id`))) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_Movimientos_Volumen_shipping_charge`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_Movimientos_Volumen_shipping_charge`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_Movimientos_Volumen_shipping_charge` AS select `M`.`Id_Ticket` AS `Id_Ticket`,`M`.`Id_Movimiento` AS `Id_Movimiento`,`t`.`Fecha` AS `Fecha`,`az`.`price` AS `price`,((`M`.`Cantidad` * ((`CM3`(`b`.`Id_Compra`) / 1000000) / `C`.`Packing`)) * (`az`.`price` / 0.08)) AS `freight` from (((((((`vn2008`.`Movimientos` `M` join `vn2008`.`Tickets` `t` on((`t`.`Id_Ticket` = `M`.`Id_Ticket`))) join `vn2008`.`Consignatarios` `c` on((`c`.`id_consigna` = `t`.`Id_Consigna`))) join `bi`.`Last_buy_id` `b` on(((`M`.`Id_Article` = `b`.`Id_Article`) and (`t`.`warehouse_id` = `b`.`warehouse_id`)))) join `vn2008`.`Compres` `C` on((`b`.`Id_Compra` = `C`.`Id_Compra`))) join `vn2008`.`Agencias` `a` on((`a`.`Id_Agencia` = `t`.`Id_Agencia`))) join `vn2008`.`Agencias_province` `ap` on(((`t`.`warehouse_id` = `ap`.`warehouse_id`) and (`ap`.`province_id` = `c`.`province_id`) and (`ap`.`agency_id` = `a`.`agency_id`)))) join `vn2008`.`Agencias_zonas` `az` on(((`az`.`Id_Agencia` = `t`.`Id_Agencia`) and (`az`.`zona` = `ap`.`zona`) and (`t`.`warehouse_id` = `az`.`warehouse_id`) and (`az`.`Id_Article` = 71)))) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_Ordenes`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_Ordenes`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_Ordenes` AS select `Ordenes`.`Id_ORDEN` AS `Id_ORDEN`,`Ordenes`.`ORDEN` AS `ORDEN`,`Ordenes`.`datORDEN` AS `datORDEN`,`Ordenes`.`datTICKET` AS `datTICKET`,`Ordenes`.`CodVENDEDOR` AS `CodVENDEDOR`,`Ordenes`.`CodCOMPRADOR` AS `CodCOMPRADOR`,`Ordenes`.`CANTIDAD` AS `CANTIDAD`,`Ordenes`.`PRECIOMAX` AS `PRECIOMAX`,`Ordenes`.`PREU` AS `PREU`,`Ordenes`.`Id_ARTICLE` AS `Id_ARTICLE`,`Ordenes`.`Id_CLIENTE` AS `Id_CLIENTE`,`Ordenes`.`COMENTARIO` AS `COMENTARIO`,`Ordenes`.`OK` AS `OK`,`Ordenes`.`TOTAL` AS `TOTAL`,`Ordenes`.`datCOMPRA` AS `datCOMPRA`,`Ordenes`.`KO` AS `KO`,`Ordenes`.`Id_Movimiento` AS `Id_Movimiento`,`Ordenes`.`odbc_date` AS `odbc_date` from `Ordenes` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_XDiario_ALL`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_XDiario_ALL`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_XDiario_ALL` AS select `bi`.`XDiario_ALL`.`empresa_id` AS `empresa_id`,`bi`.`XDiario_ALL`.`SUBCTA` AS `SUBCTA`,`bi`.`XDiario_ALL`.`Eurodebe` AS `Eurodebe`,`bi`.`XDiario_ALL`.`Eurohaber` AS `Eurohaber`,`bi`.`XDiario_ALL`.`Fecha` AS `Fecha`,`bi`.`XDiario_ALL`.`FECHA_EX` AS `FECHA_EX` from `bi`.`XDiario_ALL` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_accion`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_accion`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_accion` AS select `vncontrol`.`accion`.`accion_id` AS `accion_id`,`vncontrol`.`accion`.`accion` AS `accion` from `vncontrol`.`accion` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_account`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_account`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_account` AS select `a`.`id` AS `user_id` from `account`.`account` `a` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_analisis_ventas`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_analisis_ventas`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_analisis_ventas` AS select `bi`.`analisis_ventas`.`Familia` AS `Familia`,`bi`.`analisis_ventas`.`Reino` AS `Reino`,`bi`.`analisis_ventas`.`Comercial` AS `Comercial`,`bi`.`analisis_ventas`.`Comprador` AS `Comprador`,`bi`.`analisis_ventas`.`Provincia` AS `Provincia`,`bi`.`analisis_ventas`.`almacen` AS `almacen`,`bi`.`analisis_ventas`.`Año` AS `Año`,`bi`.`analisis_ventas`.`Mes` AS `Mes`,`bi`.`analisis_ventas`.`Semana` AS `Semana`,`bi`.`analisis_ventas`.`Vista` AS `Vista`,`bi`.`analisis_ventas`.`Importe` AS `Importe` from `bi`.`analisis_ventas` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_awb_volumen`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_awb_volumen`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_awb_volumen` AS select `a`.`id` AS `awb_id`,`a`.`codigo` AS `codigo`,`a`.`importe` AS `importe`,cast(sum(`v`.`volume`) as signed) AS `Vol_Total` from (`awb` `a` join `awb_volume` `v` on((`v`.`awb_id` = `a`.`id`))) group by `a`.`id` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_barcodes`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_barcodes`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_barcodes` AS select `Articles`.`Id_Article` AS `code`,`Articles`.`Id_Article` AS `Id_Article` from `Articles` union all select `barcodes`.`code` AS `code`,`barcodes`.`Id_Article` AS `Id_Article` from `barcodes` union all select `c`.`Id_Compra` AS `Id_Compra`,`c`.`Id_Article` AS `Id_Article` from ((`Compres` `c` join `Entradas` `e` on((`c`.`Id_Entrada` = `e`.`Id_Entrada`))) join `travel` `tr` on((`tr`.`id` = `e`.`travel_id`))) where (`tr`.`landing` >= (curdate() + interval -(15) day)) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_barcodes_plus`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_barcodes_plus`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_barcodes_plus` AS select `cache`.`barcodes`.`code` AS `code`,`cache`.`barcodes`.`Id_Article` AS `Id_Article`,`cache`.`barcodes`.`Article` AS `Article`,`cache`.`barcodes`.`Medida` AS `Medida`,`cache`.`barcodes`.`Color` AS `Color`,`cache`.`barcodes`.`Categoria` AS `Categoria`,`cache`.`barcodes`.`Producer` AS `Producer` from `cache`.`barcodes` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_botanic_export`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_botanic_export`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_botanic_export` AS select concat(ifnull(concat(`eg`.`latin_genus_name`,' '),''),ifnull(`es`.`latin_species_name`,'')) AS `Nom_botanic`,`be`.`Id_Paises` AS `Id_Paises`,`be`.`restriction` AS `restriction`,`be`.`description` AS `description` from ((`vn2008`.`botanic_export` `be` left join `vn2008`.`edi_genus` `eg` on((`be`.`edi_genus_id` = `eg`.`genus_id`))) left join `vn2008`.`edi_specie` `es` on((`be`.`edi_specie_id` = `es`.`specie_id`))) order by concat(`eg`.`latin_genus_name`,' ',`es`.`latin_species_name`) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_compres`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_compres`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_compres` AS select `TP`.`Id_Tipo` AS `Familia`,`RN`.`id` AS `reino_id`,`C`.`Id_Compra` AS `Id_Compra`,`C`.`Id_Entrada` AS `Id_Entrada`,`C`.`Id_Article` AS `Id_Article`,`C`.`Cantidad` AS `Cantidad`,`C`.`Costefijo` AS `Costefijo`,`C`.`Portefijo` AS `Portefijo`,`C`.`Novincular` AS `Novincular`,`C`.`Etiquetas` AS `Etiquetas`,`C`.`Packing` AS `Packing`,`C`.`grouping` AS `grouping`,`C`.`Comisionfija` AS `Comisionfija`,`C`.`Embalajefijo` AS `Embalajefijo`,`an`.`nicho` AS `Nicho`,`C`.`Id_Cubo` AS `Id_Cubo`,`C`.`Tarifa1` AS `Tarifa1`,`C`.`Tarifa2` AS `Tarifa2`,`C`.`Tarifa3` AS `Tarifa3`,`C`.`PVP` AS `PVP`,`C`.`Vida` AS `Vida`,`C`.`Id_Trabajador` AS `Id_Trabajador`,`C`.`punteo` AS `punteo`,`C`.`odbc_date` AS `odbc_date`,`E`.`Inventario` AS `Inventario`,`E`.`Id_Proveedor` AS `Id_Proveedor`,`E`.`Fecha` AS `Fecha`,`E`.`Confirmada` AS `Confirmada`,`E`.`Redada` AS `Redada`,`E`.`empresa_id` AS `empresa_id`,`E`.`travel_id` AS `travel_id`,`E`.`Pedida` AS `Pedida`,`E`.`recibida_id` AS `recibida_id`,`TR`.`id` AS `id`,`TR`.`shipment` AS `shipment`,`TR`.`landing` AS `landing`,`TR`.`warehouse_id` AS `warehouse_id`,`TR`.`warehouse_id_out` AS `warehouse_id_out`,`TR`.`agency_id` AS `agency_id`,`TR`.`ref` AS `ref`,`TR`.`delivered` AS `delivered`,`TR`.`received` AS `received`,`A`.`Article` AS `Article`,`A`.`Medida` AS `Medida`,`A`.`Tallos` AS `Tallos`,`C`.`caja` AS `caja`,`A`.`Categoria` AS `Categoria`,`A`.`id_origen` AS `id_origen`,`TP`.`Id_Tipo` AS `Tipo`,`A`.`tipo_id` AS `tipo_id`,`A`.`Color` AS `Color`,`A`.`Min` AS `Min`,(((`C`.`Costefijo` + `C`.`Embalajefijo`) + `C`.`Comisionfija`) + `C`.`Portefijo`) AS `Coste`,`W_OUT`.`fuente` AS `fuente`,`A`.`iva_group_id` AS `iva_group_id`,(if((`cb`.`Volumen` > 0),`cb`.`Volumen`,((`cb`.`X` * `cb`.`Y`) * if((`cb`.`Z` = 0),(`A`.`Medida` + 10),`cb`.`Z`))) * `C`.`Etiquetas`) AS `cm3`,`A`.`producer_id` AS `producer_id` from (((((((((`Compres` `C` join `Entradas` `E` on((`C`.`Id_Entrada` = `E`.`Id_Entrada`))) join `travel` `TR` on((`TR`.`id` = `E`.`travel_id`))) join `warehouse` `W_IN` on((`W_IN`.`id` = `TR`.`warehouse_id`))) join `warehouse` `W_OUT` on((`W_OUT`.`id` = `TR`.`warehouse_id_out`))) join `Articles` `A` on((`C`.`Id_Article` = `A`.`Id_Article`))) join `Tipos` `TP` on((`A`.`tipo_id` = `TP`.`tipo_id`))) join `reinos` `RN` on((`RN`.`id` = `TP`.`reino_id`))) join `Cubos` `cb` on((`cb`.`Id_Cubo` = `C`.`Id_Cubo`))) left join `Articles_nicho` `an` on(((`A`.`Id_Article` = `an`.`Id_Article`) and (`an`.`warehouse_id` = `W_IN`.`id`)))) where ((not(`W_IN`.`fuente`)) and (not(`E`.`Inventario`)) and (not(`E`.`Redada`))) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_departure_limit`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_departure_limit`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_departure_limit` AS select `cache`.`departure_limit`.`warehouse_id` AS `warehouse_id`,`cache`.`departure_limit`.`fecha` AS `fecha`,`cache`.`departure_limit`.`hora` AS `hora`,`cache`.`departure_limit`.`minSpeed` AS `minSpeed` from `cache`.`departure_limit` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_descuadre_bionic`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_descuadre_bionic`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_descuadre_bionic` AS select `t`.`Id_Ticket` AS `Id_Ticket`,`t`.`Alias` AS `Alias`,`m`.`Concepte` AS `Concepte`,sum(`mc`.`Valor`) AS `suma_componente`,`m`.`Preu` AS `Preu`,`m`.`Descuento` AS `Descuento`,(((`m`.`Preu` * (100 - `m`.`Descuento`)) / 100) - sum(`mc`.`Valor`)) AS `diferencia`,`t`.`Fecha` AS `Fecha`,((`m`.`Preu` > 0) and (`tp`.`reino_id` <> 6) and (`a`.`tipo_id` not in (7,115)) and (`t`.`warehouse_id` <> 41)) AS `benvenut` from ((((((`Movimientos` `m` join `Tickets` `t` on((`m`.`Id_Ticket` = `t`.`Id_Ticket`))) join `Clientes` `c` on((`t`.`Id_Cliente` = `c`.`id_cliente`))) join `warehouse` `w` on((`w`.`id` = `t`.`warehouse_id`))) join `Articles` `a` on((`m`.`Id_Article` = `a`.`Id_Article`))) join `Tipos` `tp` on((`a`.`tipo_id` = `tp`.`tipo_id`))) left join `Movimientos_componentes` `mc` on((`m`.`Id_Movimiento` = `mc`.`Id_Movimiento`))) where ((`t`.`Fecha` >= '2015-09-01') and (`t`.`empresa_id` in (442,791,567)) and `w`.`reserve` and `c`.`real` and (`tp`.`reino_id` <> 6)) group by `m`.`Id_Movimiento` having ((abs(`diferencia`) > 0.01) or isnull(`diferencia`)) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_descuadre_porte`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_descuadre_porte`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_descuadre_porte` AS select `t`.`Id_Ticket` AS `Id_Ticket`,round(sum((`mc`.`Valor` * `m`.`Cantidad`)),2) AS `suma_componente`,round(`es`.`shipping_charge`,2) AS `teorico_agencia`,round((sum((`mc`.`Valor` * `m`.`Cantidad`)) - `es`.`shipping_charge`),2) AS `diferencia`,`t`.`Fecha` AS `Fecha` from ((((`vn2008`.`Movimientos` `m` left join `vn2008`.`Movimientos_componentes` `mc` on((`m`.`Id_Movimiento` = `mc`.`Id_Movimiento`))) join `vn2008`.`tarifa_componentes` `tc` on(((`tc`.`Id_Componente` = `mc`.`Id_Componente`) and (`tc`.`tarifa_componentes_series_id` = 6)))) join `vn2008`.`Tickets` `t` on((`t`.`Id_Ticket` = `m`.`Id_Ticket`))) left join `vn2008`.`v_expeditions_shipping_charge` `es` on((`es`.`Id_Ticket` = `t`.`Id_Ticket`))) where ((`t`.`Fecha` >= '2015-09-01') and (`t`.`empresa_id` in (442,791,567))) group by `t`.`Id_Ticket` having ((abs(`diferencia`) > 0.01) or isnull(`diferencia`)) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_descuadre_porte2`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_descuadre_porte2`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_descuadre_porte2` AS select `t`.`Id_Ticket` AS `Id_Ticket`,(`mc`.`Valor` * `m`.`Cantidad`) AS `suma_componente`,`t`.`Fecha` AS `Fecha` from (((`vn2008`.`Movimientos` `m` left join `vn2008`.`Movimientos_componentes` `mc` on((`m`.`Id_Movimiento` = `mc`.`Id_Movimiento`))) join `vn2008`.`tarifa_componentes` `tc` on(((`tc`.`Id_Componente` = `mc`.`Id_Componente`) and (`tc`.`tarifa_componentes_series_id` = 6)))) join `vn2008`.`Tickets` `t` on((`t`.`Id_Ticket` = `m`.`Id_Ticket`))) where ((`t`.`Fecha` >= '2015-09-01') and (`t`.`empresa_id` in (442,791,567))) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_empresa`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_empresa`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_empresa` AS select `e`.`logo` AS `logo`,`e`.`id` AS `id`,`e`.`registro` AS `registro`,`e`.`gerente_id` AS `gerente_id`,`e`.`alta` AS `alta`,`t`.`Nombre` AS `Nombre`,`t`.`Apellidos` AS `Apellidos`,`p`.`Proveedor` AS `Proveedor`,`p`.`Domicilio` AS `Domicilio`,`p`.`CP` AS `CP`,`p`.`Localidad` AS `Localidad`,`p`.`NIF` AS `NIF`,`p`.`Telefono` AS `Telefono`,`p`.`Alias` AS `Alias`,`e`.`abbreviation` AS `abbreviation` from ((`empresa` `e` join `Trabajadores` `t` on((`t`.`Id_Trabajador` = `e`.`gerente_id`))) join `Proveedores` `p` on((`p`.`Id_Proveedor` = `e`.`id`))) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_encajado`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_encajado`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_encajado` AS select hour(`e`.`odbc_date`) AS `hora`,minute(`e`.`odbc_date`) AS `minuto`,ifnull(`c`.`Volumen`,94500) AS `cm3`,`t`.`warehouse_id` AS `warehouse_id` from ((`expeditions` `e` left join `Cubos` `c` on((`c`.`item_id` = `e`.`EsBulto`))) join `Tickets` `t` on((`t`.`Id_Ticket` = `e`.`ticket_id`))) where (`e`.`odbc_date` between curdate() and `DAYEND`(curdate())) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_encajado_ultima_hora`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_encajado_ultima_hora`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_encajado_ultima_hora` AS select sum((ifnull(`c`.`Volumen`,94500) / 1000000)) AS `m3`,`t`.`warehouse_id` AS `warehouse_id` from ((`expeditions` `e` left join `Cubos` `c` on((`c`.`item_id` = `e`.`EsBulto`))) join `Tickets` `t` on((`t`.`Id_Ticket` = `e`.`ticket_id`))) where ((`e`.`odbc_date` > (now() + interval -(1) hour)) and (`t`.`warehouse_id` in (1,44))) group by `t`.`warehouse_id` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_expeditions_shipping_charge`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_expeditions_shipping_charge`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_expeditions_shipping_charge` AS select `t`.`Id_Ticket` AS `Id_Ticket`,sum((`az`.`price` * if(((`e`.`EsBulto` = 71) and isnull(`e`.`Id_Article`) and (`a`.`Vista` = 2)),0.75,1))) AS `shipping_charge`,`t`.`Fecha` AS `Fecha` from ((((((`Tickets` `t` join `Clientes` `cli` on((`cli`.`id_cliente` = `t`.`Id_Cliente`))) left join `expeditions` `e` on((`e`.`ticket_id` = `t`.`Id_Ticket`))) join `Consignatarios` `c` on((`c`.`id_consigna` = `t`.`Id_Consigna`))) join `Agencias` `a` on((`a`.`Id_Agencia` = `t`.`Id_Agencia`))) join `Agencias_province` `ap` on(((`t`.`warehouse_id` = `ap`.`warehouse_id`) and (`ap`.`province_id` = `c`.`province_id`) and (`ap`.`agency_id` = `a`.`agency_id`)))) join `Agencias_zonas` `az` on(((`az`.`Id_Agencia` = `t`.`Id_Agencia`) and (`az`.`zona` = `ap`.`zona`) and (`t`.`warehouse_id` = `az`.`warehouse_id`) and (`az`.`Id_Article` = `e`.`EsBulto`)))) where ((`t`.`Fecha` >= '2015-10-01') and (`cli`.`real` <> 0) and (`t`.`empresa_id` in (442,791,567))) group by `t`.`Id_Ticket` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_expeditions_shipping_charge2`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_expeditions_shipping_charge2`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_expeditions_shipping_charge2` AS select `t`.`Id_Ticket` AS `Id_Ticket`,(`az`.`price` * if(((`e`.`EsBulto` = 71) and isnull(`e`.`Id_Article`) and (`a`.`Vista` = 2)),0.75,1)) AS `shipping_charge`,`t`.`Fecha` AS `Fecha`,`t`.`warehouse_id` AS `warehouse_id` from (((((`Tickets` `t` left join `expeditions` `e` on((`e`.`ticket_id` = `t`.`Id_Ticket`))) join `Consignatarios` `c` on((`c`.`id_consigna` = `t`.`Id_Consigna`))) join `Agencias` `a` on((`a`.`Id_Agencia` = `t`.`Id_Agencia`))) join `Agencias_province` `ap` on(((`t`.`warehouse_id` = `ap`.`warehouse_id`) and (`ap`.`province_id` = `c`.`province_id`) and (`ap`.`agency_id` = `a`.`agency_id`)))) join `Agencias_zonas` `az` on(((`az`.`Id_Agencia` = `t`.`Id_Agencia`) and (`az`.`zona` = `ap`.`zona`) and (`t`.`warehouse_id` = `az`.`warehouse_id`) and (`az`.`Id_Article` = `e`.`EsBulto`)))) where ((`t`.`Fecha` >= '2016-01-01') and (`t`.`empresa_id` in (442,567))) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_fallo`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_fallo`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_fallo` AS select `vncontrol`.`fallo`.`queja_id` AS `queja_id`,`vncontrol`.`fallo`.`accion_id` AS `accion_id` from `vncontrol`.`fallo` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_inter`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_inter`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_inter` AS select `vncontrol`.`inter`.`inter_id` AS `inter_id`,`vncontrol`.`inter`.`state_id` AS `state_id`,`vncontrol`.`inter`.`nota` AS `nota`,`vncontrol`.`inter`.`odbc_date` AS `odbc_date`,`vncontrol`.`inter`.`Id_Ticket` AS `Id_Ticket`,`vncontrol`.`inter`.`Id_Trabajador` AS `Id_Trabajador`,`vncontrol`.`inter`.`Id_Supervisor` AS `Id_supervisor` from `vncontrol`.`inter` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_jerarquia`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_jerarquia`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_jerarquia` AS select `jerarquia`.`worker_id` AS `Id_Trabajador`,`jerarquia`.`boss_id` AS `boss_id` from `jerarquia` union all select distinct `jerarquia`.`boss_id` AS `Id_Trabajador`,`jerarquia`.`boss_id` AS `boss_id` from `jerarquia` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_location`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_location`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_location` AS select `tl`.`longitude` AS `longitude`,`tl`.`latitude` AS `latitude`,`t`.`Id_Consigna` AS `Id_Consigna` from (`ticket_location` `tl` join `Tickets` `t` on((`t`.`Id_Ticket` = `tl`.`Id_Ticket`))) where (`t`.`Fecha` >= (curdate() + interval -(3) month)) group by `t`.`Id_Consigna` order by `t`.`Id_Ticket` desc */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_mana_spellers`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_mana_spellers`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_mana_spellers` AS select `bs`.`mana_spellers`.`Id_Trabajador` AS `Id_Trabajador`,`bs`.`mana_spellers`.`size` AS `size`,`bs`.`mana_spellers`.`used` AS `used` from `bs`.`mana_spellers` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_miriam`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_miriam`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_miriam` AS select `M`.`Id_Article` AS `Id_Article`,`M`.`Concepte` AS `Concepte`,`M`.`Cantidad` AS `Cantidad`,`M`.`Preu` AS `Preu`,`M`.`Descuento` AS `Descuento`,`T`.`Fecha` AS `Fecha`,`T`.`Id_Cliente` AS `Id_Cliente`,(((`M`.`Cantidad` * `M`.`Preu`) * (100 - `M`.`Descuento`)) / 100) AS `Importe` from (((`Tickets` `T` join `Movimientos` `M` on((`T`.`Id_Ticket` = `M`.`Id_Ticket`))) join `Articles` `A` on((`M`.`Id_Article` = `A`.`Id_Article`))) join `Tipos` `TP` on((`A`.`tipo_id` = `TP`.`tipo_id`))) where ((`T`.`Fecha` >= '2011-01-01') and (`A`.`tipo_id` = 7)) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_movimientos_log`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_movimientos_log`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_movimientos_log` AS select `bi`.`movimientos_log`.`idmovimientos_log` AS `idmovimientos_log`,`bi`.`movimientos_log`.`Id_Movimiento` AS `Id_Movimiento`,`bi`.`movimientos_log`.`odbc_date` AS `odbc_date`,`bi`.`movimientos_log`.`Id_Trabajador` AS `Id_Trabajador`,`bi`.`movimientos_log`.`field_name` AS `field_name`,`bi`.`movimientos_log`.`new_value` AS `new_value` from `bi`.`movimientos_log` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_movimientos_mark`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_movimientos_mark`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_movimientos_mark` AS select `Movimientos_mark`.`Id_Movimiento` AS `Id_Movimiento`,max(`Movimientos_mark`.`Id_Accion`) AS `Accion` from `Movimientos_mark` group by `Movimientos_mark`.`Id_Movimiento` having ((max(`Movimientos_mark`.`Id_Accion`) = '6') or (max(`Movimientos_mark`.`Id_Accion`) = '7')) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_pedidos_auto_preparados`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_pedidos_auto_preparados`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_pedidos_auto_preparados` AS select `t`.`CodigoTrabajador` AS `CodigoTrabajador`,`i`.`Id_Ticket` AS `Id_Ticket`,`i`.`odbc_date` AS `Momento` from ((`vn2008`.`v_jerarquia` `j` left join `vn2008`.`v_inter` `i` on((`j`.`Id_Trabajador` = `i`.`Id_Trabajador`))) join `vn2008`.`Trabajadores` `t` on((`t`.`Id_Trabajador` = `j`.`Id_Trabajador`))) where (`i`.`state_id` = 20) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_pedidos_auto_preparadoskk`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_pedidos_auto_preparadoskk`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_pedidos_auto_preparadoskk` AS select `t`.`CodigoTrabajador` AS `CodigoTrabajador`,`TK`.`Fecha` AS `Fecha`,`TK`.`Id_Ticket` AS `Id_Ticket`,`i`.`odbc_date` AS `Momento` from (((`vn2008`.`v_jerarquia` `j` left join `vn2008`.`v_inter` `i` on((`j`.`Id_Trabajador` = `i`.`Id_Trabajador`))) join `vn2008`.`Trabajadores` `t` on((`t`.`Id_Trabajador` = `j`.`Id_Trabajador`))) left join `vn2008`.`Tickets` `TK` on((`TK`.`Id_Ticket` = `i`.`Id_Ticket`))) where (`i`.`state_id` = 5) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_phonebook`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_phonebook`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_phonebook` AS select `Clientes`.`id_cliente` AS `Id_Cliente`,replace(`Clientes`.`telefono`,' ','') AS `Telefono` from `Clientes` where (`Clientes`.`telefono` and `Clientes`.`activo`) union select `Clientes`.`id_cliente` AS `Id_Cliente`,replace(`Clientes`.`movil`,' ','') AS `Movil` from `Clientes` where (`Clientes`.`movil` and `Clientes`.`activo`) union select `Consignatarios`.`Id_cliente` AS `Id_Cliente`,replace(`Consignatarios`.`telefono`,' ','') AS `TRIM(telefono)` from (`Consignatarios` join `Clientes` `c` on((`Consignatarios`.`Id_cliente` = `c`.`id_cliente`))) where (`Consignatarios`.`telefono` and `c`.`activo`) union select `Consignatarios`.`Id_cliente` AS `Id_Cliente`,replace(`Consignatarios`.`movil`,' ','') AS `TRIM(movil)` from (`Consignatarios` join `Clientes` `c` on((`Consignatarios`.`Id_cliente` = `c`.`id_cliente`))) where (`Consignatarios`.`movil` and `c`.`activo`) union select `r`.`Id_Cliente` AS `Id_Cliente`,replace(`c`.`Telefono`,' ','') AS `REPLACE(c.telefono,' ','')` from ((`Clientes` `cl` join `Relaciones` `r` on((`cl`.`id_cliente` = `r`.`Id_Cliente`))) join `Contactos` `c` on((`r`.`Id_Contacto` = `c`.`Id_Contacto`))) where (`cl`.`telefono` and `cl`.`activo`) union select `r`.`Id_Cliente` AS `Id_Cliente`,replace(`c`.`Movil`,' ','') AS `REPLACE(c.Movil,' ','')` from ((`Clientes` `cl` join `Relaciones` `r` on((`cl`.`id_cliente` = `r`.`Id_Cliente`))) join `Contactos` `c` on((`r`.`Id_Contacto` = `c`.`Id_Contacto`))) where (`cl`.`movil` and `cl`.`activo`) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_price_fixed`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_price_fixed`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_price_fixed` AS select `pf`.`warehouse_id` AS `warehouse_id`,`pf`.`item_id` AS `item_id`,`pf`.`rate_0` AS `rate_0`,`pf`.`rate_1` AS `rate_1`,`pf`.`rate_2` AS `rate_2`,`pf`.`rate_3` AS `rate_3`,`pf`.`date_start` AS `date_start`,`pf`.`date_end` AS `date_end`,`pf`.`bonus` AS `bonus`,`pf`.`grouping` AS `grouping`,`pf`.`Packing` AS `Packing`,`pf`.`caja` AS `caja` from `price_fixed` `pf` where (`pf`.`warehouse_id` < 1000) union all select `wg`.`warehouse_id` AS `warehouse_id`,`pf`.`item_id` AS `item_id`,`pf`.`rate_0` AS `rate_0`,`pf`.`rate_1` AS `rate_1`,`pf`.`rate_2` AS `rate_2`,`pf`.`rate_3` AS `rate_3`,`pf`.`date_start` AS `date_start`,`pf`.`date_end` AS `date_end`,`pf`.`bonus` AS `bonus`,`pf`.`grouping` AS `grouping`,`pf`.`Packing` AS `Packing`,`pf`.`caja` AS `caja` from (`price_fixed` `pf` join `warehouse_group` `wg`) where ((`wg`.`warehouse_alias_id` + 1000) = `pf`.`warehouse_id`) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_price_fixed_group`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_price_fixed_group`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_price_fixed_group` AS select `pf`.`warehouse_id` AS `warehouse_id`,`pf`.`item_id` AS `item_id`,`pf`.`rate_0` AS `rate_0`,`pf`.`rate_1` AS `rate_1`,`pf`.`rate_2` AS `rate_2`,`pf`.`rate_3` AS `rate_3`,`pf`.`date_start` AS `date_start`,`pf`.`date_end` AS `date_end`,`pf`.`bonus` AS `bonus`,`pf`.`grouping` AS `grouping`,`pf`.`Packing` AS `Packing`,`pf`.`caja` AS `caja` from `v_price_fixed` `pf` group by `pf`.`warehouse_id`,`pf`.`item_id`,`pf`.`date_start`,`pf`.`date_end` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_session`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_session`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_session` AS select 1 AS `id`,`t`.`CodigoTrabajador` AS `CodigoTrabajador`,if(isnull(`sc`.`Id_Suplente`),`c`.`Id_Trabajador`,`sc`.`Id_Suplente`) AS `Id_Trabajador`,`c`.`id_cliente` AS `Id_Cliente`,`c`.`cliente` AS `Cliente`,`s`.`lastUpdate` AS `Fecha` from ((((`hedera`.`userSession` `s` join `hedera`.`visitUser` `v` on((`v`.`id` = `s`.`userVisit`))) join `vn2008`.`Clientes` `c` on((`c`.`id_cliente` = `v`.`user`))) left join `vn2008`.`Trabajadores` `t` on((`c`.`Id_Trabajador` = `t`.`Id_Trabajador`))) left join `vn2008`.`sharingcart` `sc` on(((`sc`.`Id_Trabajador` = `c`.`Id_Trabajador`) and (curdate() between `sc`.`datSTART` and `sc`.`datEND`)))) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_ticket_amount`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_ticket_amount`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_ticket_amount` AS select `Movimientos`.`Id_Ticket` AS `Id_Ticket`,sum((((`Movimientos`.`Cantidad` * `Movimientos`.`Preu`) * (100 - `Movimientos`.`Descuento`)) / 100)) AS `amount` from (`Movimientos` join `Tickets` on((`Movimientos`.`Id_Ticket` = `Tickets`.`Id_Ticket`))) where (`Tickets`.`Fecha` >= (curdate() + interval -(6) month)) group by `Movimientos`.`Id_Ticket` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_trabajadores`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_trabajadores`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_trabajadores` AS select `t`.`CodigoTrabajador` AS `CodigoTrabajador`,`t`.`Nombre` AS `Nombre`,`t`.`Fecha_Inicio` AS `Fecha_Inicio`,`t`.`Password` AS `Password`,`t`.`user` AS `user`,`t`.`Apellidos` AS `Apellidos`,`t`.`Id_Trabajador` AS `Id_Trabajador`,`t`.`Foto` AS `Foto` from `vn2008`.`Trabajadores` `t` where (`t`.`Id_Cliente_Interno` = `account`.`userGetId`()) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_user`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_user`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_user` AS select `u`.`id` AS `id`,`u`.`role` AS `mysql_user_id`,`u`.`name` AS `name`,`u`.`password` AS `password`,`u`.`active` AS `active` from `account`.`user` `u` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_ventes`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_ventes`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_ventes` AS select `Agencias`.`Agencia` AS `Agencia`,`A`.`Categoria` AS `Categoria`,`A`.`tipo_id` AS `tipo_id`,`A`.`Medida` AS `Medida`,`A`.`Article` AS `Article`,`A`.`Color` AS `Color`,`CS`.`Id_cliente` AS `Id_Cliente`,`TP`.`Id_Tipo` AS `Tipo`,`T`.`Factura` AS `Factura`,`T`.`warehouse_id` AS `warehouse_id`,`M`.`Id_Movimiento` AS `Id_Movimiento`,`M`.`Id_Article` AS `Id_Article`,`TP`.`Id_Tipo` AS `Familia`,`M`.`Id_Ticket` AS `Id_Ticket`,`M`.`Concepte` AS `Concepte`,`M`.`Cantidad` AS `Cantidad`,`M`.`quantity` AS `quantity`,`M`.`Preu` AS `Preu`,`M`.`Descuento` AS `Descuento`,if((`T`.`Fecha` >= '2015-10-01'),`M`.`CostFixat`,((`M`.`Preu` * (100 - `M`.`Descuento`)) / 100)) AS `CostFixat`,`M`.`Reservado` AS `Reservado`,`M`.`OK` AS `OK`,`M`.`PrecioFijado` AS `PrecioFijado`,`M`.`odbc_date` AS `odbc_date`,cast(`T`.`Fecha` as date) AS `Fecha`,`T`.`Fecha` AS `FechaCompleta`,`CS`.`consignatario` AS `Alias`,`T`.`Id_Consigna` AS `Id_Consigna`,(((`M`.`Cantidad` * `M`.`Preu`) * (100 - `M`.`Descuento`)) / 100) AS `Importe`,`O`.`Origen` AS `Origen`,`TP`.`reino_id` AS `reino_id`,`C`.`invoice` AS `invoice`,`A`.`producer_id` AS `producer_id` from ((((((((`Movimientos` `M` join `Tickets` `T` on((`M`.`Id_Ticket` = `T`.`Id_Ticket`))) join `Consignatarios` `CS` on((`CS`.`id_consigna` = `T`.`Id_Consigna`))) join `Clientes` `C` on((`CS`.`Id_cliente` = `C`.`id_cliente`))) join `Articles` `A` on((`M`.`Id_Article` = `A`.`Id_Article`))) join `Origen` `O` on((`O`.`id` = `A`.`id_origen`))) join `Tipos` `TP` on((`A`.`tipo_id` = `TP`.`tipo_id`))) join `reinos` `r` on((`TP`.`reino_id` = `r`.`id`))) join `Agencias` on((`Agencias`.`Id_Agencia` = `T`.`Id_Agencia`))) where ((`T`.`Fecha` >= '2013-01-01') and (`C`.`real` > 0) and (`r`.`id` <> 6)) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_venteskk`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_venteskk`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_venteskk` AS select `Agencias`.`Agencia` AS `Agencia`,`A`.`Categoria` AS `Categoria`,`A`.`tipo_id` AS `tipo_id`,`A`.`Medida` AS `Medida`,`A`.`Article` AS `Article`,`A`.`Color` AS `Color`,`CS`.`Id_cliente` AS `Id_Cliente`,`TP`.`Id_Tipo` AS `Tipo`,`T`.`Factura` AS `Factura`,`T`.`warehouse_id` AS `warehouse_id`,`M`.`Id_Movimiento` AS `Id_Movimiento`,`M`.`Id_Article` AS `Id_Article`,`TP`.`Id_Tipo` AS `Familia`,`M`.`Id_Ticket` AS `Id_Ticket`,`M`.`Concepte` AS `Concepte`,`M`.`Cantidad` AS `Cantidad`,`M`.`quantity` AS `quantity`,`M`.`Preu` AS `Preu`,`M`.`Descuento` AS `Descuento`,if((`T`.`Fecha` >= '2015-10-01'),`M`.`CostFixat`,((`M`.`Preu` * (100 - `M`.`Descuento`)) / 100)) AS `CostFixat`,`M`.`Reservado` AS `Reservado`,`M`.`OK` AS `OK`,`M`.`PrecioFijado` AS `PrecioFijado`,`M`.`odbc_date` AS `odbc_date`,cast(`T`.`Fecha` as date) AS `Fecha`,`T`.`Fecha` AS `FechaCompleta`,`CS`.`consignatario` AS `Alias`,`T`.`Id_Consigna` AS `Id_Consigna`,(((`M`.`Cantidad` * `M`.`Preu`) * (100 - `M`.`Descuento`)) / 100) AS `Importe`,`O`.`Origen` AS `Origen`,`TP`.`reino_id` AS `reino_id`,`C`.`invoice` AS `invoice`,`A`.`producer_id` AS `producer_id` from ((((((((`Movimientos` `M` join `Tickets` `T` on((`M`.`Id_Ticket` = `T`.`Id_Ticket`))) join `Consignatarios` `CS` on((`CS`.`id_consigna` = `T`.`Id_Consigna`))) join `Clientes` `C` on((`CS`.`Id_cliente` = `C`.`id_cliente`))) join `Articles` `A` on((`M`.`Id_Article` = `A`.`Id_Article`))) join `Origen` `O` on((`O`.`id` = `A`.`id_origen`))) join `Tipos` `TP` on((`A`.`tipo_id` = `TP`.`tipo_id`))) join `reinos` `r` on((`TP`.`reino_id` = `r`.`id`))) join `Agencias` on((`Agencias`.`Id_Agencia` = `T`.`Id_Agencia`))) where ((`T`.`Fecha` >= '2013-01-01') and (`C`.`real` > 0) and (`r`.`id` <> 6)) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_warehouse`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_warehouse`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_warehouse` AS select `warehouse`.`id` AS `id`,`warehouse`.`name` AS `almacen` from `warehouse` union all select (1000 + `warehouse_alias`.`warehouse_alias_id`) AS `warehouse_alias_id`,concat(`warehouse_alias`.`alias`,'(G)') AS `concat(alias, '(G)')` from `warehouse_alias` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_xsubclien`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_xsubclien`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_xsubclien` AS select distinct `Facturas`.`Id_Cliente` AS `Id_Cliente`,`Facturas`.`empresa_id` AS `empresa_id` from `Facturas` where (`Facturas`.`Fecha` > (curdate() + interval -(2) month)) union select `Recibos`.`Id_Cliente` AS `Id_Cliente`,`Recibos`.`empresa_id` AS `empresa_id` from `Recibos` where (`Recibos`.`Fechacobro` > (curdate() + interval -(2) month)) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_xsubcuentas`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_xsubcuentas`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_xsubcuentas` AS select `Clientes`.`Cuenta` AS `COD`,`Clientes`.`razonSocial` AS `TITULO`,trim(`Clientes`.`if`) AS `NIF`,`Clientes`.`domicilio` AS `DOMICILIO`,`Clientes`.`poblacion` AS `POBLACION`,`province`.`name` AS `PROVINCIA`,`Clientes`.`codPostal` AS `CODPOSTAL`,`p`.`Codigo` AS `country_code`,`v_xsubclien`.`empresa_id` AS `empresa_id`,substr(`Clientes`.`e-mail`,1,(coalesce(nullif(locate(',',`Clientes`.`e-mail`),0),99) - 1)) AS `EMAIL`,`Clientes`.`cplusTerIdNifFk` AS `IDNIF` from (((`Clientes` join `v_xsubclien` on((`Clientes`.`id_cliente` = `v_xsubclien`.`Id_Cliente`))) left join `Paises` `p` on((`p`.`Id` = `Clientes`.`Id_Pais`))) join `province` on((`Clientes`.`province_id` = `province`.`province_id`))) where (`Clientes`.`oficial` <> 0) group by `Clientes`.`id_cliente`,`v_xsubclien`.`empresa_id` union all select `Proveedores`.`cuenta` AS `Cuenta`,`Proveedores`.`Proveedor` AS `Proveedor`,trim(`Proveedores`.`NIF`) AS `NIF`,`Proveedores`.`Domicilio` AS `Domicilio`,`Proveedores`.`Localidad` AS `Localidad`,`prov`.`name` AS `Provincia`,`Proveedores`.`CP` AS `CP`,`p`.`Codigo` AS `country_code`,`v_xsubprov`.`empresa_id` AS `empresa_id`,substr(`c`.`email`,1,(coalesce(nullif(locate(',',`c`.`email`),0),99) - 1)) AS `EMAIL`,if((`p`.`CEE` = 0),1,if((`p`.`CEE` = 1),2,4)) AS `IDNIF` from (((((`Proveedores` join `v_xsubprov` on((`Proveedores`.`Id_Proveedor` = `v_xsubprov`.`proveedor_id`))) left join `Paises` `p` on((`p`.`Id` = `Proveedores`.`pais_id`))) left join `province` `prov` on((`prov`.`province_id` = `Proveedores`.`province_id`))) left join `Relaciones` `r` on((`r`.`Id_Proveedor` = `Proveedores`.`Id_Proveedor`))) left join `Contactos` `c` on((`c`.`Id_Contacto` = `r`.`Id_Contacto`))) where (`Proveedores`.`oficial` <> 0) group by `v_xsubprov`.`proveedor_id`,`v_xsubprov`.`empresa_id` union all select `Gastos`.`Id_Gasto` AS `Id_Gasto`,`Gastos`.`Gasto` AS `Gasto`,NULL AS `NULL`,NULL AS `My_exp_NULL`,NULL AS `My_exp_1_NULL`,NULL AS `My_exp_2_NULL`,NULL AS `My_exp_3_NULL`,NULL AS `country_code`,`e`.`id` AS `id`,NULL AS `EMAIL`,1 AS `IDNIF` from (`Gastos` join `empresa` `e` on((`e`.`id` = 442))) union all select `Bancos`.`Cuenta` AS `Cuenta`,`Bancos`.`Banco` AS `Banco`,NULL AS `NULL`,NULL AS `My_exp_NULL`,NULL AS `My_exp_1_NULL`,NULL AS `My_exp_2_NULL`,NULL AS `My_exp_3_NULL`,NULL AS `country_code`,`e`.`id` AS `id`,NULL AS `EMAIL`,1 AS `IDNIF` from (`Bancos` join `empresa` `e` on((`e`.`id` = 442))) union all select lpad(right(`Proveedores`.`cuenta`,5),10,'47510000') AS `Cuenta`,`Proveedores`.`Proveedor` AS `Proveedor`,`Proveedores`.`NIF` AS `NIF`,`Proveedores`.`Domicilio` AS `Domicilio`,`Proveedores`.`Localidad` AS `Localidad`,`prov`.`name` AS `Provincia`,`Proveedores`.`CP` AS `CP`,`p`.`Codigo` AS `country_code`,`v_xsubprov`.`empresa_id` AS `empresa_id`,substr(`c`.`email`,1,(coalesce(nullif(locate(',',`c`.`email`),0),99) - 1)) AS `EMAIL`,if((`p`.`CEE` = 0),1,if((`p`.`CEE` = 1),2,4)) AS `IDNIF` from (((((`Proveedores` join `v_xsubprov` on((`Proveedores`.`Id_Proveedor` = `v_xsubprov`.`proveedor_id`))) left join `Paises` `p` on((`p`.`Id` = `Proveedores`.`pais_id`))) left join `province` `prov` on((`prov`.`province_id` = `Proveedores`.`province_id`))) left join `Relaciones` `r` on((`r`.`Id_Proveedor` = `Proveedores`.`Id_Proveedor`))) left join `Contactos` `c` on((`c`.`Id_Contacto` = `r`.`Id_Contacto`))) where (((`Proveedores`.`cuenta` like '_____3____') or (`Proveedores`.`cuenta` like '_____2____')) and (`Proveedores`.`oficial` = 1)) group by `v_xsubprov`.`proveedor_id`,`v_xsubprov`.`empresa_id` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_xsubprov`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_xsubprov`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_xsubprov` AS select `recibida`.`proveedor_id` AS `proveedor_id`,`recibida`.`empresa_id` AS `empresa_id` from `recibida` where (`recibida`.`fecha` > (curdate() + interval -(3) month)) group by `recibida`.`proveedor_id`,`recibida`.`empresa_id` union all select `pago`.`id_proveedor` AS `id_proveedor`,`pago`.`empresa_id` AS `empresa_id` from `pago` where (`pago`.`fecha` > (curdate() + interval -(3) month)) group by `pago`.`id_proveedor`,`pago`.`empresa_id` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `vnCreditClassification`
+--
+
+/*!50001 DROP VIEW IF EXISTS `vnCreditClassification`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `vnCreditClassification` AS select `vn`.`creditClassification`.`id` AS `id`,`vn`.`creditClassification`.`client` AS `client`,`vn`.`creditClassification`.`dateStart` AS `dateStart`,`vn`.`creditClassification`.`dateEnd` AS `dateEnd` from `vn`.`creditClassification` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `vnCreditInsurance`
+--
+
+/*!50001 DROP VIEW IF EXISTS `vnCreditInsurance`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `vnCreditInsurance` AS select `vn`.`creditInsurance`.`id` AS `id`,`vn`.`creditInsurance`.`creditClassification` AS `creditClassification`,`vn`.`creditInsurance`.`credit` AS `credit`,`vn`.`creditInsurance`.`creationDate` AS `creationDate`,`vn`.`creditInsurance`.`grade` AS `grade` from `vn`.`creditInsurance` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `vnSolunionCAP`
+--
+
+/*!50001 DROP VIEW IF EXISTS `vnSolunionCAP`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `vnSolunionCAP` AS select `vn`.`solunionCAP`.`creditInsurance` AS `creditInsurance`,`vn`.`solunionCAP`.`dateStart` AS `dateStart`,`vn`.`solunionCAP`.`dateEnd` AS `dateEnd`,`vn`.`solunionCAP`.`dateLeaving` AS `dateLeaving` from `vn`.`solunionCAP` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `workerDocument`
+--
+
+/*!50001 DROP VIEW IF EXISTS `workerDocument`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `workerDocument` AS select `vn`.`workerDocument`.`id` AS `id`,`vn`.`workerDocument`.`worker` AS `worker`,`vn`.`workerDocument`.`document` AS `document` from `vn`.`workerDocument` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `workerTeamCollegues`
+--
+
+/*!50001 DROP VIEW IF EXISTS `workerTeamCollegues`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `workerTeamCollegues` AS select distinct `w`.`Id_Trabajador` AS `workerId`,`t`.`Id_Trabajador` AS `collegueId` from (`vn`.`workerTeam` `w` join `vn`.`workerTeam` `t` on((`w`.`team` = `t`.`team`))) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `workerTeam_kk`
+--
+
+/*!50001 DROP VIEW IF EXISTS `workerTeam_kk`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `workerTeam_kk` AS select `w`.`team` AS `team`,`w`.`user` AS `user`,`w`.`id` AS `id`,`t`.`Id_Trabajador` AS `Id_Trabajador` from (`vn`.`workerTeam` `w` left join `vn2008`.`Trabajadores` `t` on((`t`.`user_id` = `w`.`user`))) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Current Database: `bi`
+--
+
+USE `bi`;
+
+--
+-- Final view structure for view `analisis_grafico_ventas`
+--
+
+/*!50001 DROP VIEW IF EXISTS `analisis_grafico_ventas`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `analisis_grafico_ventas` AS select `analisis_ventas`.`Año` AS `Año`,`analisis_ventas`.`Semana` AS `Semana`,sum(`analisis_ventas`.`Importe`) AS `Importe` from `analisis_ventas` group by `analisis_ventas`.`Año`,`analisis_ventas`.`Semana` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `analisis_ventas_simple`
+--
+
+/*!50001 DROP VIEW IF EXISTS `analisis_ventas_simple`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `analisis_ventas_simple` AS select `analisis_ventas`.`Año` AS `Año`,`analisis_ventas`.`Semana` AS `Semana`,sum(`analisis_ventas`.`Importe`) AS `Importe` from `analisis_ventas` group by `analisis_ventas`.`Año`,`analisis_ventas`.`Semana` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `customerRiskOverdue`
+--
+
+/*!50001 DROP VIEW IF EXISTS `customerRiskOverdue`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `customerRiskOverdue` AS select `cr`.`customer_id` AS `customer_id`,`cr`.`amount` AS `amount`,`cr`.`company_id` AS `company_id` from (((`bi`.`customer_risk` `cr` join `vn2008`.`empresa` `e` on((`e`.`id` = `cr`.`company_id`))) join `vn2008`.`Clientes` `c` on((`cr`.`customer_id` = `c`.`id_cliente`))) join `vn2008`.`pay_met` `pm` on((`pm`.`id` = `c`.`pay_met_id`))) where (`cr`.`amount` and `e`.`morosidad` and `pm`.`deudaviva`) union all select `f`.`Id_Cliente` AS `Id_Cliente`,-(round(`f`.`Importe`,2)) AS `importe`,`f`.`empresa_id` AS `empresa_id` from (((`vn2008`.`Facturas` `f` join `vn2008`.`Clientes` `c` on((`f`.`Id_Cliente` = `c`.`id_cliente`))) join `vn2008`.`empresa` `e` on((`e`.`id` = `f`.`empresa_id`))) join `vn2008`.`pay_met` `pm` on((`pm`.`id` = `c`.`pay_met_id`))) where ((`f`.`Fecha` > (curdate() + interval -(101) day)) and ((`vn2008`.`paymentday`(`f`.`Fecha`,`c`.`vencimiento`) + interval `pm`.`graceDays` day) > curdate()) and (`f`.`Importe` > 0) and `e`.`morosidad` and `pm`.`deudaviva`) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `last_Id_Cubo`
+--
+
+/*!50001 DROP VIEW IF EXISTS `last_Id_Cubo`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `last_Id_Cubo` AS select `C`.`Id_Compra` AS `Id_Compra`,`C`.`Id_Article` AS `Id_Article`,`tr`.`warehouse_id` AS `warehouse_id`,`C`.`Id_Cubo` AS `Id_Cubo`,`C`.`Packing` AS `Packing` from ((`vn2008`.`Compres` `C` join `vn2008`.`Entradas` `E` on((`C`.`Id_Entrada` = `E`.`Id_Entrada`))) join `vn2008`.`travel` `tr` on((`E`.`travel_id` = `tr`.`id`))) where ((`C`.`Id_Cubo` is not null) and (`C`.`Id_Cubo` <> '--') and (`tr`.`landing` > (curdate() - interval 18 month))) order by `C`.`Id_Compra` desc */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_clientes_jerarquia`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_clientes_jerarquia`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_clientes_jerarquia` AS select `c`.`id_cliente` AS `Id_Cliente`,`c`.`cliente` AS `Cliente`,`t`.`CodigoTrabajador` AS `Comercial`,`tj`.`CodigoTrabajador` AS `Jefe` from (((`vn2008`.`Clientes` `c` join `vn2008`.`Trabajadores` `t` on((`t`.`Id_Trabajador` = `c`.`Id_Trabajador`))) join `vn2008`.`jerarquia` on((`vn2008`.`jerarquia`.`worker_id` = `c`.`Id_Trabajador`))) join `vn2008`.`Trabajadores` `tj` on((`tj`.`Id_Trabajador` = `vn2008`.`jerarquia`.`boss_id`))) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_ventas_contables`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_ventas_contables`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_ventas_contables` AS select `vn2008`.`time`.`year` AS `year`,`vn2008`.`time`.`month` AS `month`,cast(sum((((`m`.`Cantidad` * `m`.`Preu`) * (100 - `m`.`Descuento`)) / 100)) as decimal(10,0)) AS `importe` from (((`vn2008`.`Tickets` `t` join `bi`.`f_tvc` on((`t`.`Id_Ticket` = `bi`.`f_tvc`.`Id_Ticket`))) join `vn2008`.`Movimientos` `m` on((`t`.`Id_Ticket` = `m`.`Id_Ticket`))) join `vn2008`.`time` on((`vn2008`.`time`.`date` = cast(`t`.`Fecha` as date)))) where (`t`.`Fecha` >= '2014-01-01') group by `vn2008`.`time`.`year`,`vn2008`.`time`.`month` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Current Database: `vn`
+--
+
+USE `vn`;
+
+--
+-- Final view structure for view `accounting`
+--
+
+/*!50001 DROP VIEW IF EXISTS `accounting`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `accounting` AS select `b`.`Id_Banco` AS `id`,`b`.`Banco` AS `bank`,`b`.`Cuenta` AS `account`,`b`.`cash` AS `accountingTypeFk`,`b`.`entity_id` AS `entityFk`,`b`.`activo` AS `isActive` from `vn2008`.`Bancos` `b` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `address`
+--
+
+/*!50001 DROP VIEW IF EXISTS `address`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `address` AS select `cs`.`Id_cliente` AS `customer`,`cs`.`warehouse_id` AS `warehouse`,`cs`.`domicilio` AS `street`,`cs`.`poblacion` AS `city`,`cs`.`province_id` AS `province`,`cs`.`codPostal` AS `postalCode`,`cs`.`telefono` AS `phone`,`cs`.`movil` AS `celular`,`cs`.`consignatario` AS `nickname`,`cs`.`id_consigna` AS `id`,`cs`.`predeterminada` AS `defaultAddress`,`cs`.`Id_Agencia` AS `agency`,`cs`.`active` AS `active`,`cs`.`longitude` AS `longitude`,`cs`.`latitude` AS `latitude`,`cs`.`Id_cliente` AS `clientFk`,`cs`.`warehouse_id` AS `warehouseFk`,`cs`.`province_id` AS `provinceFk`,`cs`.`movil` AS `mobile`,`cs`.`Id_Agencia` AS `agencyFk`,`cs`.`isEqualizated` AS `isEqualizated` from `vn2008`.`Consignatarios` `cs` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `addressObservation`
+--
+
+/*!50001 DROP VIEW IF EXISTS `addressObservation`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `addressObservation` AS select `co`.`consignatarios_observation_id` AS `id`,`co`.`Id_Consigna` AS `addressFk`,`co`.`observation_type_id` AS `observationTypeFk`,`co`.`text` AS `description` from `vn2008`.`consignatarios_observation` `co` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `agency`
+--
+
+/*!50001 DROP VIEW IF EXISTS `agency`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `agency` AS select `a`.`agency_id` AS `id`,`a`.`name` AS `name`,`a`.`warehouse_id` AS `warehouse`,`a`.`warehouse_id` AS `warehouseFk`,`a`.`por_volumen` AS `isVolumetric`,`a`.`Id_Banco` AS `bank`,`a`.`Id_Banco` AS `bankFk`,`a`.`warehouse_alias_id` AS `warehouseNickname`,`a`.`warehouse_alias_id` AS `warehouseAliasFk`,`a`.`propios` AS `own`,`a`.`zone_label` AS `labelZone` from `vn2008`.`agency` `a` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `agencyHour`
+--
+
+/*!50001 DROP VIEW IF EXISTS `agencyHour`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `agencyHour` AS select `h`.`agency_hour_id` AS `id`,`h`.`agency_id` AS `agency`,`h`.`week_day` AS `weekDay`,`h`.`warehouse_id` AS `warehouse`,`h`.`province_id` AS `province`,`h`.`subtract_day` AS `substractDay`,`h`.`max_hour` AS `maxHour` from `vn2008`.`agency_hour` `h` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `agencyMode`
+--
+
+/*!50001 DROP VIEW IF EXISTS `agencyMode`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `agencyMode` AS select `a`.`Id_Agencia` AS `id`,`a`.`Agencia` AS `name`,`a`.`description` AS `description`,`a`.`Vista` AS `view`,`a`.`Vista` AS `deliveryMethod`,`a`.`m3` AS `m3`,`a`.`cod71` AS `cod71`,`a`.`web` AS `web`,`a`.`agency_id` AS `agency`,`a`.`agency_id` AS `agencyFk`,`a`.`agency_service_id` AS `agencyService`,`a`.`agency_service_id` AS `agencyServiceFk`,`a`.`inflacion` AS `inflacion`,`a`.`is_volumetric` AS `isVolumetric`,`a`.`send_mail` AS `reportMail` from `vn2008`.`Agencias` `a` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `agencyWarehouse`
+--
+
+/*!50001 DROP VIEW IF EXISTS `agencyWarehouse`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `agencyWarehouse` AS select `a`.`agency_id` AS `agencyFk`,`a`.`warehouse_id` AS `warehouseFk`,`a`.`Vista` AS `agencyType` from `vn2008`.`agency_warehouse` `a` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `awb`
+--
+
+/*!50001 DROP VIEW IF EXISTS `awb`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `awb` AS select `a`.`id` AS `id`,`a`.`codigo` AS `code`,`a`.`bultos` AS `package`,`a`.`peso` AS `weight`,`a`.`MYSQL_TIME` AS `created`,`a`.`transitario_id` AS `transitoryFk`,`a`.`iva_id` AS `taxFk`,`a`.`gestdoc_id` AS `docFk`,`a`.`importe` AS `amount`,`a`.`carguera_id` AS `freightFk`,`a`.`m3` AS `m3`,`a`.`stems` AS `stems`,`a`.`flight_id` AS `flightFk`,`a`.`volume_weight` AS `volumeWeight`,`a`.`hb` AS `hb`,`a`.`rate` AS `rate`,`a`.`booked` AS `booked`,`a`.`issued` AS `issued`,`a`.`operated` AS `operated` from `vn2008`.`awb` `a` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `bank`
+--
+
+/*!50001 DROP VIEW IF EXISTS `bank`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `bank` AS select `b`.`Id_Banco` AS `id`,`b`.`Banco` AS `bank`,`b`.`Cuenta` AS `account`,`b`.`cash` AS `cash`,`b`.`entity_id` AS `entityFk`,`b`.`activo` AS `isActive` from `vn2008`.`Bancos` `b` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `botanicExport`
+--
+
+/*!50001 DROP VIEW IF EXISTS `botanicExport`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `botanicExport` AS select `be`.`botanic_export_id` AS `id`,`be`.`edi_genus_id` AS `ediGenusFk`,`be`.`edi_specie_id` AS `ediSpecieFk`,`be`.`Id_Paises` AS `countryFk`,`be`.`restriction` AS `restriction`,`be`.`description` AS `description` from `vn2008`.`botanic_export` `be` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `buy`
+--
+
+/*!50001 DROP VIEW IF EXISTS `buy`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `buy` AS select `c`.`Id_Compra` AS `id`,`c`.`Id_Entrada` AS `entryFk`,`c`.`Id_Article` AS `itemFk`,`c`.`Cantidad` AS `amount`,`c`.`Costefijo` AS `buyingValue`,`c`.`Cantidad` AS `quantity`,`c`.`Id_Cubo` AS `packageFk`,`c`.`Etiquetas` AS `stickers`,`c`.`Portefijo` AS `freightValue`,`c`.`Embalajefijo` AS `packageValue`,`c`.`Comisionfija` AS `comissionValue`,`c`.`Packing` AS `packing`,`c`.`grouping` AS `grouping`,`c`.`caja` AS `groupingMode`,`c`.`Nicho` AS `location`,`c`.`Tarifa1` AS `price1`,`c`.`Tarifa2` AS `price2`,`c`.`Tarifa3` AS `price3`,`c`.`PVP` AS `minPrice`,`c`.`Productor` AS `producer`,`c`.`Vida` AS `printedStickers`,`c`.`punteo` AS `isChecked` from `vn2008`.`Compres` `c` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `city`
+--
+
+/*!50001 DROP VIEW IF EXISTS `city`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `city` AS select `c`.`city_id` AS `id`,`c`.`name` AS `name`,`c`.`province_id` AS `provinceFk` from `vn2008`.`city` `c` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `client`
+--
+
+/*!50001 DROP VIEW IF EXISTS `client`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!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`.`telefono` AS `phone`,`c`.`fax` AS `fax`,`c`.`e-mail` AS `email`,`c`.`cc` AS `iban`,`c`.`vencimiento` AS `dueDay`,`c`.`Cuenta` AS `accountingAccount`,`c`.`RE` AS `isEqualizated`,`c`.`poblacion` AS `city`,`c`.`province_id` AS `province`,`c`.`province_id` AS `provinceFk`,`c`.`codPostal` AS `postcode`,`c`.`razonSocial` AS `socialName`,`c`.`contacto` AS `contact`,`c`.`reexpedicion` AS `Reexpedicion`,`c`.`invoice` AS `hasToInvoice`,`c`.`notas` AS `Notas`,`c`.`notas_administracion` AS `notas_administracion`,`c`.`copiaFactura` AS `Copiafactura`,`c`.`retener` AS `Retener`,`c`.`congelado` AS `Congelado`,`c`.`Id_Trabajador` AS `Id_Trabajador`,`c`.`Id_Trabajador` AS `workerFk`,`c`.`credito` AS `credit`,`c`.`cyc` AS `cyc`,`c`.`Id_Pais` AS `Id_Pais`,`c`.`Id_Pais` AS `countryFk`,`c`.`activo` AS `activo`,`c`.`activo` AS `active`,`c`.`gestdoc_id` AS `gestdoc`,`c`.`gestdoc_id` AS `gestdocFk`,`c`.`calidad` AS `calidad`,`c`.`pay_met_id` AS `paymentMethod`,`c`.`pay_met_id` AS `paymentMethodFk`,`c`.`created` AS `registerDate`,`c`.`mail` AS `invoiceByEmail`,`c`.`mail` AS `isToBeMailed`,`c`.`chanel_id` AS `channel`,`c`.`chanel_id` AS `channelFk`,`c`.`vies` AS `VIES`,`c`.`sepaVnl` AS `sepavnl`,`c`.`coreVnl` AS `corevnl`,`c`.`risk_calculated` AS `riskCalculated`,`c`.`coreVnh` AS `corevnh`,`c`.`clientes_tipo_id` AS `clientes_tipo_id`,`c`.`clientes_tipo_id` AS `clientTypeFk`,`c`.`postcode_id` AS `postcode_id`,`c`.`postcode_id` AS `postcodeFk`,`c`.`mail_address` AS `mail_address`,`c`.`codpos` AS `codpos`,`c`.`cplusTerIdNifFk` AS `cplusTerIdNifFk`,`c`.`domicilio` AS `postalAddress`,`c`.`invoiceByAddress` AS `invoiceByAddress`,`c`.`contabilizado` AS `isTaxDataChecked`,`c`.`congelado` AS `isFreezed` 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 */;
+
+--
+-- Final view structure for view `clientManaCache`
+--
+
+/*!50001 DROP VIEW IF EXISTS `clientManaCache`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `clientManaCache` AS select `mc`.`Id_Cliente` AS `clientFk`,`mc`.`Mana` AS `mana`,`mc`.`dated` AS `dated` from `bs`.`manaCustomer` `mc` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `clientObservation`
+--
+
+/*!50001 DROP VIEW IF EXISTS `clientObservation`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `clientObservation` AS select `vn2008`.`client_observation`.`client_observation_id` AS `id`,`vn2008`.`client_observation`.`Id_Cliente` AS `client`,`vn2008`.`client_observation`.`Id_Trabajador` AS `worker`,`vn2008`.`client_observation`.`text` AS `text`,`vn2008`.`client_observation`.`odbc_date` AS `creationDate` from `vn2008`.`client_observation` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `clientType`
+--
+
+/*!50001 DROP VIEW IF EXISTS `clientType`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `clientType` AS select `ct`.`clientes_tipo_id` AS `id`,`ct`.`code` AS `code`,`ct`.`tipo` AS `type` from `vn2008`.`clientes_tipo` `ct` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `company`
+--
+
+/*!50001 DROP VIEW IF EXISTS `company`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `company` AS select `e`.`id` AS `id`,`e`.`abbreviation` AS `code` from `vn2008`.`empresa` `e` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `country`
+--
+
+/*!50001 DROP VIEW IF EXISTS `country`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `country` AS select `p`.`Id` AS `id`,`p`.`Pais` AS `country`,`p`.`CEE` AS `CEE`,if((`p`.`CEE` < 2),1,0) AS `isUeeMember`,`p`.`Codigo` AS `Code`,`p`.`Id_Moneda` AS `currencyFk`,`p`.`Id_Paisreal` AS `politicalCountryFk`,`p`.`geoFk` AS `geoFk` from `vn2008`.`Paises` `p` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `deliveryMethod`
+--
+
+/*!50001 DROP VIEW IF EXISTS `deliveryMethod`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `deliveryMethod` AS select `d`.`vista_id` AS `id`,`d`.`code` AS `code`,`d`.`vista` AS `description` from `vn2008`.`Vistas` `d` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `ediGenus`
+--
+
+/*!50001 DROP VIEW IF EXISTS `ediGenus`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `ediGenus` AS select `g`.`genus_id` AS `id`,`g`.`latin_genus_name` AS `latinGenusName`,`g`.`entry_date` AS `entried`,`g`.`expiry_date` AS `dued`,`g`.`change_date_time` AS `modified` from `edi`.`genus` `g` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `ediSpecie`
+--
+
+/*!50001 DROP VIEW IF EXISTS `ediSpecie`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `ediSpecie` AS select `s`.`specie_id` AS `id`,`s`.`genus_id` AS `genusFk`,`s`.`latin_species_name` AS `latinSpeciesName`,`s`.`entry_date` AS `entried`,`s`.`expiry_date` AS `dued`,`s`.`change_date_time` AS `modified` from `edi`.`specie` `s` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `entry`
+--
+
+/*!50001 DROP VIEW IF EXISTS `entry`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `entry` AS select `e`.`Id_Entrada` AS `id`,`e`.`Id_Proveedor` AS `supplierFk`,`e`.`Referencia` AS `ref`,`e`.`Inventario` AS `isInventory`,`e`.`Confirmada` AS `isConfirmed`,`e`.`Pedida` AS `isOrdered`,`e`.`Redada` AS `isRaid`,`e`.`comision` AS `commission`,`e`.`odbc_date` AS `created`,`e`.`Notas_Eva` AS `evaNotes`,`e`.`travel_id` AS `travelFk`,`e`.`Id_Moneda` AS `currencyFk`,`e`.`empresa_id` AS `companyFk`,`e`.`gestdoc_id` AS `gestDocFk`,`e`.`recibida_id` AS `invoiceReceivedFk` from `vn2008`.`Entradas` `e` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `especialPrice`
+--
+
+/*!50001 DROP VIEW IF EXISTS `especialPrice`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `especialPrice` AS select `p`.`Id_PrecioEspecial` AS `id`,`p`.`Id_Cliente` AS `clientFk`,`p`.`Id_Article` AS `itemFk`,`p`.`PrecioEspecial` AS `value` from `vn2008`.`PreciosEspeciales` `p` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `expedition`
+--
+
+/*!50001 DROP VIEW IF EXISTS `expedition`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `expedition` AS select `e`.`expeditions_id` AS `id`,`e`.`agency_id` AS `agency`,`e`.`agency_id` AS `agencyFk`,`e`.`ticket_id` AS `ticket`,`e`.`ticket_id` AS `ticketFk`,`e`.`EsBulto` AS `isBox`,`e`.`odbc_date` AS `printingTime`,`e`.`Id_Article` AS `item`,`e`.`Id_Article` AS `itemFk`,`e`.`counter` AS `counter`,`e`.`checked` AS `checked`,`e`.`workerFk` AS `workerFk` from `vn2008`.`expeditions` `e` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `expence`
+--
+
+/*!50001 DROP VIEW IF EXISTS `expence`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `expence` AS select `g`.`Id_Gasto` AS `id`,`g`.`iva_tipo_id` AS `taxTypeFk`,`g`.`Gasto` AS `name`,`g`.`isWithheld` AS `isWithheld` from `vn2008`.`Gastos` `g` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `family`
+--
+
+/*!50001 DROP VIEW IF EXISTS `family`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `family` AS select `t`.`tipo_id` AS `id`,`t`.`Tipo` AS `name`,`t`.`life` AS `life` from `vn2008`.`Tipos` `t` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `grant`
+--
+
+/*!50001 DROP VIEW IF EXISTS `grant`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `grant` AS select `vn2008`.`Permisos`.`Id_Grupo` AS `group`,`vn2008`.`Permisos`.`Id_Trabajador` AS `worker`,`vn2008`.`Permisos`.`empresa_id` AS `company` from `vn2008`.`Permisos` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `grantGroup`
+--
+
+/*!50001 DROP VIEW IF EXISTS `grantGroup`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `grantGroup` AS select `vn2008`.`Grupos`.`id` AS `id`,`vn2008`.`Grupos`.`Grupo` AS `description`,`vn2008`.`Grupos`.`observation_type_id` AS `observationType` from `vn2008`.`Grupos` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `ink`
+--
+
+/*!50001 DROP VIEW IF EXISTS `ink`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `ink` AS select `c`.`Id_Tinta` AS `id`,`c`.`name` AS `name`,`c`.`Tinta` AS `picture` from `vn2008`.`Tintas` `c` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `intrastat`
+--
+
+/*!50001 DROP VIEW IF EXISTS `intrastat`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `intrastat` AS select `i`.`Codintrastat` AS `id`,`i`.`Definicion` AS `description`,`i`.`iva_group_id` AS `taxGroupFk`,`i`.`iva_codigo_id` AS `taxCodeFk` from `vn2008`.`Intrastat` `i` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `invoiceCorrection`
+--
+
+/*!50001 DROP VIEW IF EXISTS `invoiceCorrection`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `invoiceCorrection` AS select `ic`.`correctingFk` AS `correctingFk`,`ic`.`correctedFk` AS `correctedFk`,`ic`.`cplusRectificationTypeFk` AS `cplusRectificationTypeFk`,`ic`.`cplusInvoiceType477Fk` AS `cplusInvoiceType477Fk`,`ic`.`invoiceCorrectionTypeFk` AS `invoiceCorrectionTypeFk` from `vn2008`.`invoiceCorrection` `ic` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `invoiceCorrectionDataSource`
+--
+
+/*!50001 DROP VIEW IF EXISTS `invoiceCorrectionDataSource`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `invoiceCorrectionDataSource` AS select `s`.`itemFk` AS `itemFk`,`s`.`quantity` AS `quantity`,`s`.`concept` AS `concept`,`s`.`price` AS `price`,`s`.`discount` AS `discount`,`t`.`refFk` AS `refFk`,`s`.`id` AS `saleFk` from (`vn`.`sale` `s` join `vn`.`ticket` `t` on((`t`.`id` = `s`.`ticketFk`))) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `invoiceIn`
+--
+
+/*!50001 DROP VIEW IF EXISTS `invoiceIn`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `invoiceIn` AS select `r`.`id` AS `id`,`r`.`num_recibida` AS `serialNumber`,`r`.`serie` AS `serial`,`r`.`proveedor_id` AS `supplierFk`,`r`.`fecha` AS `issued`,`r`.`sref` AS `supplierRef`,`r`.`contabilizada` AS `isBooked`,`r`.`moneda_id` AS `currencyFk`,`r`.`MYSQL_TIME` AS `created`,`r`.`empresa_id` AS `companyFk`,`r`.`gestdoc_id` AS `docFk`,`r`.`dateBooking` AS `booked`,`r`.`dateOperation` AS `operated`,`r`.`cplusInvoiceType472Fk` AS `cplusInvoiceType472Fk`,`r`.`cplusRectificationTypeFk` AS `cplusRectificationTypeFk`,`r`.`cplusSubjectOpFk` AS `cplusSubjectOpFk`,`r`.`cplusTaxBreakFk` AS `cplusTaxBreakFk`,`r`.`cplusTrascendency472Fk` AS `cplusTrascendency472Fk` from `vn2008`.`recibida` `r` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `invoiceInAwb`
+--
+
+/*!50001 DROP VIEW IF EXISTS `invoiceInAwb`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `invoiceInAwb` AS select `a`.`recibida_id` AS `invoiceInFk`,`a`.`awb_id` AS `awbFk`,`a`.`dua` AS `dua` from `vn2008`.`awb_recibida` `a` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `invoiceInEntry`
+--
+
+/*!50001 DROP VIEW IF EXISTS `invoiceInEntry`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `invoiceInEntry` AS select `i`.`recibida_entrada_id` AS `id`,`i`.`recibida_id` AS `invoiceInFk`,`i`.`Id_Entrada` AS `entryFk`,`i`.`percentage` AS `percentage`,`i`.`awb_recibida` AS `invoiceInAwbFk`,`i`.`Contabilizado` AS `isBooked` from `vn2008`.`recibida_entrada` `i` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `invoiceInIntrastat`
+--
+
+/*!50001 DROP VIEW IF EXISTS `invoiceInIntrastat`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `invoiceInIntrastat` AS select `r`.`recibida_id` AS `invoiceInFk`,`r`.`Codintrastat` AS `intrastatFk`,`r`.`importe` AS `amount` from `vn2008`.`recibida_intrastat` `r` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `invoiceInTax`
+--
+
+/*!50001 DROP VIEW IF EXISTS `invoiceInTax`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `invoiceInTax` AS select `r`.`id` AS `id`,`r`.`recibida_id` AS `invoiceInFk`,`r`.`iva_id` AS `taxCodeFk`,`r`.`bi` AS `taxableBase`,`r`.`gastos_id` AS `expenceFk`,`r`.`divisa` AS `foreignValue`,`r`.`MYSQL_TIME` AS `created` from `vn2008`.`recibida_iva` `r` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `invoiceOut`
+--
+
+/*!50001 DROP VIEW IF EXISTS `invoiceOut`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `invoiceOut` AS select `f`.`factura_id` AS `id`,`f`.`Id_Factura` AS `ref`,`f`.`Serie` AS `serial`,`f`.`Fecha` AS `issued`,`f`.`Importe` AS `amount`,`f`.`Id_Cliente` AS `clientFk`,`f`.`odbc_date` AS `created`,`f`.`empresa_id` AS `companyFk`,`f`.`Vencimiento` AS `dued`,`f`.`booked` AS `booked`,`f`.`cplusInvoiceType477Fk` AS `cplusInvoiceType477Fk`,`f`.`cplusTaxBreakFk` AS `cplusTaxBreakFk`,`f`.`cplusSubjectOpFk` AS `cplusSubjectOpFk`,`f`.`cplusTrascendency477Fk` AS `cplusTrascendency477Fk`,`f`.`pdf` AS `pdf` from `vn2008`.`Facturas` `f` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `item`
+--
+
+/*!50001 DROP VIEW IF EXISTS `item`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `item` AS select `t`.`Id_Article` AS `id`,`t`.`Article` AS `name`,`t`.`tipo_id` AS `familyFk`,`t`.`Medida` AS `size`,`t`.`Color` AS `inkFk`,`t`.`Categoria` AS `category`,`t`.`Tallos` AS `stems`,`t`.`id_origen` AS `originFk`,`t`.`description` AS `description`,`t`.`producer_id` AS `producerFk`,`t`.`Codintrastat` AS `intrastatFk`,`t`.`expenceFk` AS `expenceFk` from `vn2008`.`Articles` `t` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `itemBotanical`
+--
+
+/*!50001 DROP VIEW IF EXISTS `itemBotanical`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `itemBotanical` AS select `ab`.`Id_Article` AS `itemFk`,`ab`.`botanical` AS `botanical`,`ab`.`genus_id` AS `genusFk`,`ab`.`specie_id` AS `specieFk` from `vn2008`.`Articles_botanical` `ab` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `itemBotanicalWithGenus`
+--
+
+/*!50001 DROP VIEW IF EXISTS `itemBotanicalWithGenus`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `itemBotanicalWithGenus` AS select `ib`.`itemFk` AS `itemFk`,ifnull(`ib`.`botanical`,concat(`g`.`latinGenusName`,' ',ifnull(`s`.`latinSpeciesName`,''))) AS `ediBotanic` from ((`vn`.`itemBotanical` `ib` left join `vn`.`ediGenus` `g` on((`g`.`id` = `ib`.`genusFk`))) left join `vn`.`ediSpecie` `s` on((`s`.`id` = `ib`.`specieFk`))) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `itemTag`
+--
+
+/*!50001 DROP VIEW IF EXISTS `itemTag`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `itemTag` AS select `t`.`id` AS `id`,`t`.`itemFk` AS `itemFk`,`t`.`tagFk` AS `tagFk`,`t`.`value` AS `value`,`t`.`priority` AS `priority` from `vn2008`.`itemTag` `t` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `itemTagged`
+--
+
+/*!50001 DROP VIEW IF EXISTS `itemTagged`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `itemTagged` AS select distinct `itemTag`.`itemFk` AS `itemFk` from `vn`.`itemTag` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `mail`
+--
+
+/*!50001 DROP VIEW IF EXISTS `mail`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `mail` AS select `vn2008`.`mail`.`id` AS `id`,`vn2008`.`mail`.`senderFk` AS `senderFk`,`vn2008`.`mail`.`recipientFk` AS `recipientFk`,`vn2008`.`mail`.`to` AS `sender`,`vn2008`.`mail`.`reply_to` AS `replyTo`,`vn2008`.`mail`.`subject` AS `subject`,`vn2008`.`mail`.`text` AS `body`,`vn2008`.`mail`.`plainTextBody` AS `plainTextBody`,`vn2008`.`mail`.`path` AS `attachment`,`vn2008`.`mail`.`DATE_ODBC` AS `creationDate`,`vn2008`.`mail`.`sent` AS `sent`,`vn2008`.`mail`.`error` AS `status` from `vn2008`.`mail` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `manaSpellers`
+--
+
+/*!50001 DROP VIEW IF EXISTS `manaSpellers`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `manaSpellers` AS select `bs`.`mana_spellers`.`Id_Trabajador` AS `worker`,`bs`.`mana_spellers`.`size` AS `size`,`bs`.`mana_spellers`.`used` AS `used`,`bs`.`mana_spellers`.`prices_modifier_rate` AS `pricesModifierRate`,`bs`.`mana_spellers`.`prices_modifier_activated` AS `pricesModifierActivated`,`vn2008`.`Trabajadores`.`CodigoTrabajador` AS `workerCode`,`vn2008`.`Trabajadores`.`Nombre` AS `firstname`,`vn2008`.`Trabajadores`.`Apellidos` AS `name` from (`bs`.`mana_spellers` join `vn2008`.`Trabajadores` on((`bs`.`mana_spellers`.`Id_Trabajador` = `vn2008`.`Trabajadores`.`Id_Trabajador`))) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `movement`
+--
+
+/*!50001 DROP VIEW IF EXISTS `movement`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `movement` AS select `m`.`Id_Movimiento` AS `id`,`m`.`Id_Article` AS `item`,`m`.`Id_Ticket` AS `ticket`,`m`.`Concepte` AS `concept`,`m`.`Cantidad` AS `amount`,`m`.`quantity` AS `quantity`,`m`.`Preu` AS `price`,`m`.`Descuento` AS `discount`,`m`.`CostFixat` AS `cost`,`m`.`Reservado` AS `reservado`,`m`.`OK` AS `od`,`m`.`PrecioFijado` AS `priceFixed`,`m`.`odbc_date` AS `lastUpdate` from `vn2008`.`Movimientos` `m` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `observationType`
+--
+
+/*!50001 DROP VIEW IF EXISTS `observationType`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `observationType` AS select `ot`.`observation_type_id` AS `id`,`ot`.`description` AS `description` from `vn2008`.`observation_type` `ot` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `origin`
+--
+
+/*!50001 DROP VIEW IF EXISTS `origin`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `origin` AS select `o`.`id` AS `id`,`o`.`Abreviatura` AS `code`,`o`.`Origen` AS `name` from `vn2008`.`Origen` `o` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `outgoingInvoice`
+--
+
+/*!50001 DROP VIEW IF EXISTS `outgoingInvoice`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `outgoingInvoice` AS select `vn2008`.`Facturas`.`Id_Factura` AS `id`,`vn2008`.`Facturas`.`Serie` AS `serie`,`vn2008`.`Facturas`.`Fecha` AS `dateInvoice`,`vn2008`.`Facturas`.`Importe` AS `total`,`vn2008`.`Facturas`.`Vencimiento` AS `dueDate`,`vn2008`.`Facturas`.`Id_Banco` AS `bank`,`vn2008`.`Facturas`.`Id_Cliente` AS `client`,`vn2008`.`Facturas`.`Id_Remesa` AS `remittance`,`vn2008`.`Facturas`.`Remesar` AS `remit`,`vn2008`.`Facturas`.`Id_Trabajador` AS `worker`,`vn2008`.`Facturas`.`odbc_date` AS `creationDate`,`vn2008`.`Facturas`.`empresa_id` AS `company`,`vn2008`.`Facturas`.`liquidacion` AS `liquidacion?`,`vn2008`.`Facturas`.`pdf` AS `isPdf` from `vn2008`.`Facturas` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `package`
+--
+
+/*!50001 DROP VIEW IF EXISTS `package`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `package` AS select `c`.`Id_Cubo` AS `id`,`c`.`Volumen` AS `volume`,`c`.`X` AS `width`,`c`.`Y` AS `height`,`c`.`Z` AS `depth`,`c`.`Retornable` AS `isPackageReturnable`,`c`.`odbc_date` AS `created`,`c`.`item_id` AS `itemFk` from `vn2008`.`Cubos` `c` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `payMethod`
+--
+
+/*!50001 DROP VIEW IF EXISTS `payMethod`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `payMethod` AS select `pm`.`id` AS `id`,`pm`.`name` AS `name` from `vn2008`.`pay_met` `pm` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `plantpassport`
+--
+
+/*!50001 DROP VIEW IF EXISTS `plantpassport`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `plantpassport` AS select `pp`.`producer_id` AS `producerFk`,`pp`.`plantpassport_authority_id` AS `plantpassportAuthorityFk`,`pp`.`number` AS `number` from `vn2008`.`plantpassport` `pp` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `plantpassportAuthority`
+--
+
+/*!50001 DROP VIEW IF EXISTS `plantpassportAuthority`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `plantpassportAuthority` AS select `ppa`.`plantpassport_authority_id` AS `id`,`ppa`.`denomination` AS `denomination`,`ppa`.`Paises_Id` AS `countryFk` from `vn2008`.`plantpassport_authority` `ppa` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `priceFixed`
+--
+
+/*!50001 DROP VIEW IF EXISTS `priceFixed`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `priceFixed` AS select `p`.`item_id` AS `itemFk`,`p`.`rate_0` AS `rate0`,`p`.`rate_1` AS `rate1`,`p`.`rate_2` AS `rate2`,`p`.`rate_3` AS `rate3`,`p`.`date_start` AS `started`,`p`.`date_end` AS `ended`,`p`.`bonus` AS `bonus`,`p`.`warehouse_id` AS `warehouseFk`,`p`.`odbc_date` AS `created`,`p`.`price_fixed_id` AS `id`,`p`.`grouping` AS `grouping`,`p`.`Packing` AS `packing`,`p`.`caja` AS `box` from `vn2008`.`price_fixed` `p` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `printServerQueue`
+--
+
+/*!50001 DROP VIEW IF EXISTS `printServerQueue`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `printServerQueue` AS select `c`.`Id_Cola` AS `id`,`c`.`Id_Impresora` AS `printerFk`,`c`.`Id_Prioridad` AS `priorityFk`,`c`.`Id_Informe` AS `reportFk`,`c`.`Id_Estado` AS `statusFk`,`c`.`Hora_Inicio` AS `started`,`c`.`Hora_Fin` AS `finished`,`c`.`Cola` AS `param1`,`c`.`Id_Trabajador` AS `workerFk`,`c`.`Cola2` AS `param2`,`c`.`Cola3` AS `param3`,`c`.`error` AS `error` from `vn2008`.`Colas` `c` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `printingQueue`
+--
+
+/*!50001 DROP VIEW IF EXISTS `printingQueue`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `printingQueue` AS select `c`.`Id_Cola` AS `id`,`c`.`Id_Impresora` AS `printer`,`c`.`Id_Prioridad` AS `priority`,`c`.`Id_Informe` AS `report`,`c`.`Id_Estado` AS `state`,`c`.`Hora_Inicio` AS `startingTime`,`c`.`Hora_Fin` AS `endingTime`,`c`.`Cola` AS `text`,`c`.`Id_Trabajador` AS `worker`,`c`.`Cola2` AS `text2`,`c`.`Cola3` AS `text3` from `vn2008`.`Colas` `c` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `producer`
+--
+
+/*!50001 DROP VIEW IF EXISTS `producer`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `producer` AS select `p`.`producer_id` AS `id`,`p`.`name` AS `name` from `vn2008`.`producer` `p` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `province`
+--
+
+/*!50001 DROP VIEW IF EXISTS `province`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `province` AS select `t`.`province_id` AS `id`,`t`.`name` AS `name`,`t`.`Paises_Id` AS `countryFk` from `vn2008`.`province` `t` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `referenceRate`
+--
+
+/*!50001 DROP VIEW IF EXISTS `referenceRate`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `referenceRate` AS select `r`.`moneda_id` AS `currencyFk`,`r`.`date` AS `dated`,`r`.`rate` AS `value` from `vn2008`.`reference_rate` `r` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `role`
+--
+
+/*!50001 DROP VIEW IF EXISTS `role`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `role` AS select `account`.`role`.`id` AS `id`,`account`.`role`.`name` AS `name`,`account`.`role`.`description` AS `description`,`account`.`role`.`hasLogin` AS `hasLogin` from `account`.`role` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `route`
+--
+
+/*!50001 DROP VIEW IF EXISTS `route`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `route` AS select `a`.`Id_Ruta` AS `id`,`a`.`Id_Trabajador` AS `workerFk`,`a`.`Fecha` AS `created`,`a`.`Id_Vehiculo` AS `vehicleFk`,`a`.`Id_Agencia` AS `agencyFk`,`a`.`Id_Agencia` AS `agencyModeFk`,`a`.`Hora` AS `time`,`a`.`ok` AS `isOk`,`a`.`km_start` AS `kmStart`,`a`.`km_end` AS `kmEnd`,`a`.`date_start` AS `started`,`a`.`date_end` AS `finished`,`a`.`gestdoc_id` AS `gestdocFk`,`a`.`cost` AS `cost`,`a`.`m3` AS `m3` from `vn2008`.`Rutas` `a` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `sale`
+--
+
+/*!50001 DROP VIEW IF EXISTS `sale`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `sale` AS select `m`.`Id_Movimiento` AS `id`,`m`.`Id_Article` AS `itemFk`,`m`.`Id_Ticket` AS `ticketFk`,`m`.`Concepte` AS `concept`,`m`.`Cantidad` AS `quantity`,`m`.`Preu` AS `price`,`m`.`Descuento` AS `discount`,`m`.`Reservado` AS `reserved`,`m`.`OK` AS `isPicked`,`m`.`odbc_date` AS `created` from `vn2008`.`Movimientos` `m` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `saleComponent`
+--
+
+/*!50001 DROP VIEW IF EXISTS `saleComponent`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `saleComponent` AS select `mc`.`Id_Movimiento` AS `saleFk`,`mc`.`Id_Componente` AS `componentFk`,`mc`.`Valor` AS `value` from `vn2008`.`Movimientos_componentes` `mc` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `state`
+--
+
+/*!50001 DROP VIEW IF EXISTS `state`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `state` AS select `s`.`id` AS `id`,`s`.`name` AS `name`,`s`.`order` AS `order`,`s`.`alert_level` AS `alertLevel`,`s`.`code` AS `code` from `vn2008`.`state` `s` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `supplier`
+--
+
+/*!50001 DROP VIEW IF EXISTS `supplier`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `supplier` AS select `p`.`Id_Proveedor` AS `id`,`p`.`Proveedor` AS `name`,`p`.`cuenta` AS `account`,`p`.`pais_id` AS `countryFk`,`p`.`NIF` AS `nif`,`p`.`Agricola` AS `isFarmer`,`p`.`cuentaret` AS `retAccount`,`p`.`ComisionProveedor` AS `commission`,`p`.`odbc_time` AS `created`,`p`.`postcode_id` AS `postcodeFk`,`p`.`active` AS `isActive` from `vn2008`.`Proveedores` `p` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `tag`
+--
+
+/*!50001 DROP VIEW IF EXISTS `tag`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `tag` AS select `t`.`id` AS `id`,`t`.`name` AS `name`,`t`.`free` AS `free` from `vn2008`.`tag` `t` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `taxClass`
+--
+
+/*!50001 DROP VIEW IF EXISTS `taxClass`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `taxClass` AS select `c`.`iva_group_id` AS `id`,`c`.`description` AS `description`,`c`.`code` AS `code` from `vn2008`.`iva_group` `c` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `taxClassCode`
+--
+
+/*!50001 DROP VIEW IF EXISTS `taxClassCode`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `taxClassCode` AS select `c`.`iva_group_id` AS `taxClassFk`,`c`.`date` AS `effectived`,`c`.`iva_codigo_id` AS `taxCodeFk` from `vn2008`.`iva_group_codigo` `c` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `taxCode`
+--
+
+/*!50001 DROP VIEW IF EXISTS `taxCode`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `taxCode` AS select `ic`.`id` AS `id`,`ic`.`fecha` AS `dated`,`ic`.`codigo` AS `code`,`ic`.`iva_tipo_id` AS `taxTypeFk`,`ic`.`iva` AS `rate`,`ic`.`recargo` AS `equalizationTax`,`ic`.`tipo` AS `type`,`ic`.`link` AS `linkFk`,`ic`.`isActive` AS `isActive` from `vn2008`.`iva_codigo` `ic` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `taxType`
+--
+
+/*!50001 DROP VIEW IF EXISTS `taxType`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `taxType` AS select `t`.`id` AS `id`,`t`.`alias` AS `nickname`,`t`.`serie_id` AS `serial`,`t`.`TIPOOPE` AS `TIPOOPE`,`t`.`descripcion` AS `description`,`t`.`Id_Pais` AS `countryFk` from `vn2008`.`iva_tipo` `t` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `ticket`
+--
+
+/*!50001 DROP VIEW IF EXISTS `ticket`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `ticket` AS select `t`.`Id_Ticket` AS `id`,`t`.`Id_Cliente` AS `clientFk`,`t`.`warehouse_id` AS `warehouseFk`,`t`.`Fecha` AS `shipped`,`t`.`landing` AS `landed`,`t`.`Alias` AS `nickname`,`t`.`Factura` AS `refFk`,`t`.`Id_Consigna` AS `addressFk`,`t`.`Firmado` AS `isSigned`,`t`.`Localizacion` AS `location`,`t`.`blocked` AS `blocked`,`t`.`Solucion` AS `solution`,`t`.`Id_Ruta` AS `path`,`t`.`Id_Ruta` AS `routeFk`,`t`.`empresa_id` AS `company`,`t`.`empresa_id` AS `companyFk`,`t`.`Id_Agencia` AS `agencyModeFk`,`t`.`Prioridad` AS `loadingOrder`,`t`.`odbc_date` AS `created`,`t`.`Fecha` AS `shipment`,`t`.`landing` AS `landing`,`t`.`Id_Cliente` AS `customer`,`t`.`warehouse_id` AS `warehouse`,`t`.`Id_Cliente` AS `client`,`t`.`Id_Consigna` AS `address`,`t`.`Id_Agencia` AS `agencyMode`,`t`.`Firmado` AS `signed`,`t`.`odbc_date` AS `creationDate` from `vn2008`.`Tickets` `t` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `ticketObservation`
+--
+
+/*!50001 DROP VIEW IF EXISTS `ticketObservation`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `ticketObservation` AS select `to`.`ticket_observation_id` AS `id`,`to`.`Id_Ticket` AS `ticketFk`,`to`.`observation_type_id` AS `observationTypeFk`,`to`.`text` AS `description` from `vn2008`.`ticket_observation` `to` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `ticketState`
+--
+
+/*!50001 DROP VIEW IF EXISTS `ticketState`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `ticketState` AS select `ts`.`Id_Ticket` AS `ticketFk`,`ts`.`Id_Ticket` AS `ticket`,`s`.`id` AS `state`,`s`.`order` AS `productionOrder`,`s`.`alert_level` AS `alertLevel`,`s`.`code` AS `code`,`i`.`Id_Trabajador` AS `worker`,`i`.`Id_Trabajador` AS `workerFk` from ((`vn2008`.`Tickets_state` `ts` join `vncontrol`.`inter` `i` on((`i`.`inter_id` = `ts`.`inter_id`))) join `vn2008`.`state` `s` on((`s`.`id` = `i`.`state_id`))) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `ticketStateToday`
+--
+
+/*!50001 DROP VIEW IF EXISTS `ticketStateToday`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `ticketStateToday` AS select `ts`.`ticket` AS `ticket`,`ts`.`state` AS `state`,`ts`.`productionOrder` AS `productionOrder`,`ts`.`alertLevel` AS `alertLevel`,`ts`.`worker` AS `worker`,`ts`.`code` AS `code` from (`vn`.`ticketState` `ts` join `vn`.`ticket` `t` on((`t`.`id` = `ts`.`ticket`))) where (`t`.`shipment` between curdate() and `midnight`(curdate())) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `ticketTracking`
+--
+
+/*!50001 DROP VIEW IF EXISTS `ticketTracking`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `ticketTracking` AS select `i`.`inter_id` AS `id`,`i`.`state_id` AS `stateFk`,`i`.`odbc_date` AS `created`,`i`.`Id_Ticket` AS `ticketFk`,`i`.`Id_Trabajador` AS `workerFk` from `vncontrol`.`inter` `i` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `time`
+--
+
+/*!50001 DROP VIEW IF EXISTS `time`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `time` AS select `t`.`date` AS `dated`,`t`.`period` AS `period`,`t`.`month` AS `month`,`t`.`year` AS `year`,`t`.`day` AS `day`,`t`.`week` AS `week` from `vn2008`.`time` `t` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `travel`
+--
+
+/*!50001 DROP VIEW IF EXISTS `travel`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `travel` AS select `t`.`id` AS `id`,`t`.`shipment` AS `shipped`,`t`.`shipment_hour` AS `shipmentHour`,`t`.`landing` AS `landed`,`t`.`landing_hour` AS `landingHour`,`t`.`warehouse_id` AS `warehouseInFk`,`t`.`warehouse_id_out` AS `warehouseOutFk`,`t`.`agency_id` AS `agencyFk`,`t`.`ref` AS `ref`,`t`.`delivered` AS `isDelivered`,`t`.`received` AS `isReceived`,`t`.`m3` AS `m3` from `vn2008`.`travel` `t` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `unary`
+--
+
+/*!50001 DROP VIEW IF EXISTS `unary`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `unary` AS select `a`.`id` AS `id`,`a`.`parent` AS `parent` from `vn2008`.`unary` `a` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `unaryScan`
+--
+
+/*!50001 DROP VIEW IF EXISTS `unaryScan`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `unaryScan` AS select `u`.`unary_id` AS `unaryFk`,`u`.`name` AS `name`,`u`.`odbc_date` AS `created`,`u`.`type` AS `type` from `vn2008`.`unary_scan` `u` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `unaryScanLine`
+--
+
+/*!50001 DROP VIEW IF EXISTS `unaryScanLine`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `unaryScanLine` AS select `u`.`id` AS `id`,`u`.`code` AS `code`,`u`.`odbc_date` AS `created`,`u`.`unary_id` AS `unaryScanFk` from `vn2008`.`unary_scan_line` `u` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `unaryScanLineBuy`
+--
+
+/*!50001 DROP VIEW IF EXISTS `unaryScanLineBuy`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `unaryScanLineBuy` AS select `u`.`scan_line_id` AS `unaryScanLineFk`,`u`.`Id_Article` AS `itemFk` from `vn2008`.`unary_scan_line_buy` `u` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `unaryScanLineExpedition`
+--
+
+/*!50001 DROP VIEW IF EXISTS `unaryScanLineExpedition`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `unaryScanLineExpedition` AS select `u`.`scan_line_id` AS `unaryScanLineFk`,`u`.`expedition_id` AS `expeditionFk` from `vn2008`.`unary_scan_line_expedition` `u` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `user`
+--
+
+/*!50001 DROP VIEW IF EXISTS `user`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `user` AS select `account`.`user`.`id` AS `id`,`account`.`user`.`name` AS `name`,`account`.`user`.`password` AS `password`,`account`.`user`.`role` AS `role`,`account`.`user`.`active` AS `active`,`account`.`user`.`recoverPass` AS `recoverPass`,`account`.`user`.`lastPassChange` AS `lastPassChange` from `account`.`user` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `vehicle`
+--
+
+/*!50001 DROP VIEW IF EXISTS `vehicle`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `vehicle` AS select `v`.`Id_Vehiculo` AS `id`,`v`.`Matricula` AS `numberPlate`,`v`.`Marca` AS `tradeMark`,`v`.`Modelo` AS `model`,`v`.`empresa_id` AS `companyFk`,`v`.`warehouseFk` AS `warehouseFk`,`v`.`description` AS `description`,`v`.`m3` AS `m3`,`v`.`active` AS `isActive` from `vn2008`.`Vehiculos` `v` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `warehouse`
+--
+
+/*!50001 DROP VIEW IF EXISTS `warehouse`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `warehouse` AS select `t`.`id` AS `id`,`t`.`name` AS `name`,`t`.`inventario` AS `isInventory`,`t`.`comisionantes` AS `hasComission` from `vn2008`.`warehouse` `t` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `warehouseAlias`
+--
+
+/*!50001 DROP VIEW IF EXISTS `warehouseAlias`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `warehouseAlias` AS select `wa`.`warehouse_alias_id` AS `id`,`wa`.`alias` AS `name` from `vn2008`.`warehouse_alias` `wa` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `worker`
+--
+
+/*!50001 DROP VIEW IF EXISTS `worker`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `worker` AS select `t`.`Id_Trabajador` AS `id`,`t`.`CodigoTrabajador` AS `workerCode`,`t`.`Nombre` AS `firstName`,`t`.`Apellidos` AS `name`,`t`.`user_id` AS `userFk`,`t`.`boss` AS `bossFk` from `vn2008`.`Trabajadores` `t` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `workerTeam`
+--
+
+/*!50001 DROP VIEW IF EXISTS `workerTeam`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `workerTeam` AS select `w`.`team` AS `team`,`w`.`user` AS `user`,`w`.`id` AS `id`,`t`.`Id_Trabajador` AS `Id_Trabajador` from (`vn2008`.`workerTeam` `w` left join `vn2008`.`Trabajadores` `t` on((`t`.`user_id` = `w`.`user`))) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Current Database: `salix`
+--
+
+USE `salix`;
+
+--
+-- Final view structure for view `Account`
+--
+
+/*!50001 DROP VIEW IF EXISTS `Account`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `Account` AS select `u`.`id` AS `id`,`u`.`name` AS `name`,`u`.`password` AS `password`,`u`.`role` AS `roleFk`,`u`.`active` AS `active`,`u`.`email` AS `email`,`u`.`created` AS `created`,`u`.`updated` AS `updated` from `account`.`user` `u` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `Accounting`
+--
+
+/*!50001 DROP VIEW IF EXISTS `Accounting`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `Accounting` AS select `b`.`Id_Banco` AS `id`,`b`.`Banco` AS `bank`,`b`.`Cuenta` AS `account`,`b`.`cash` AS `accountingTypeFk`,`b`.`entity_id` AS `entityFk`,`b`.`activo` AS `isActive` from `vn2008`.`Bancos` `b` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `Address`
+--
+
+/*!50001 DROP VIEW IF EXISTS `Address`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `Address` AS select `a`.`id_consigna` AS `id`,`a`.`consignatario` AS `consignee`,`a`.`domicilio` AS `street`,`a`.`poblacion` AS `city`,`a`.`codPostal` AS `postcode`,`a`.`province_id` AS `provinceFk`,`a`.`telefono` AS `phone`,`a`.`movil` AS `mobile`,`a`.`active` AS `isEnabled`,`a`.`predeterminada` AS `isDefaultAddress`,`a`.`Id_cliente` AS `clientFk`,`a`.`Id_Agencia` AS `defaultAgencyFk`,`a`.`longitude` AS `longitude`,`a`.`latitude` AS `latitude`,`a`.`isEqualizated` AS `isEqualizated` from `vn2008`.`Consignatarios` `a` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `Agency`
+--
+
+/*!50001 DROP VIEW IF EXISTS `Agency`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `Agency` AS select `a`.`agency_id` AS `id`,`a`.`name` AS `name`,`a`.`warehouse_id` AS `warehouseFk`,`a`.`por_volumen` AS `isVolumetric`,`a`.`Id_Banco` AS `bankFk`,`a`.`warehouse_alias_id` AS `warehouseAliasFk` from `vn2008`.`agency` `a` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `AgencyMode`
+--
+
+/*!50001 DROP VIEW IF EXISTS `AgencyMode`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `AgencyMode` AS select `a`.`Id_Agencia` AS `id`,`a`.`Agencia` AS `name`,`a`.`description` AS `description`,`a`.`Vista` AS `agencyTypeFk`,`a`.`m3` AS `m3`,`a`.`agency_id` AS `agencyFk`,`a`.`inflacion` AS `inflation`,`a`.`send_mail` AS `sendMailTo`,`a`.`tpv` AS `isForTicket` from `vn2008`.`Agencias` `a` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `Bank`
+--
+
+/*!50001 DROP VIEW IF EXISTS `Bank`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `Bank` AS select `b`.`Id_Banco` AS `id`,`b`.`Banco` AS `bank`,`b`.`Cuenta` AS `account`,`b`.`cash` AS `cash`,`b`.`entity_id` AS `entityFk`,`b`.`activo` AS `isActive` from `vn2008`.`Bancos` `b` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `City`
+--
+
+/*!50001 DROP VIEW IF EXISTS `City`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `City` AS select `c`.`city_id` AS `id`,`c`.`name` AS `name`,`c`.`province_id` AS `provinceFk` from `vn2008`.`city` `c` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `Client`
+--
+
+/*!50001 DROP VIEW IF EXISTS `Client`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!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`.`province_id` AS `provinceFk`,`c`.`Id_Pais` AS `countryFk`,`c`.`e-mail` AS `email`,`c`.`telefono` AS `phone`,`c`.`movil` AS `mobile`,`c`.`fax` AS `fax`,`c`.`activo` AS `active`,`c`.`descuento` AS `discount`,`c`.`credito` AS `credit`,`c`.`creditInsurance` AS `creditInsurance`,`c`.`cc` AS `iban`,`c`.`vencimiento` AS `dueDay`,`c`.`RE` AS `equalizationTax`,`c`.`invoice` AS `hasToInvoice`,`c`.`mail` AS `invoiceByEmail`,`c`.`pay_met_id` AS `payMethodFk`,`c`.`Id_Trabajador` AS `salesPersonFk`,`c`.`chanel_id` AS `contactChannelFk`,`c`.`sepaVnl` AS `sepaVnl`,`c`.`coreVnl` AS `coreVnl`,`c`.`coreVnh` AS `coreVnh`,`c`.`EYPBC` AS `eypbc`,`c`.`calidad` AS `quality`,`c`.`vies` AS `vies`,`c`.`real` AS `isRelevant`,`c`.`clientes_tipo_id` AS `typeFk`,`c`.`Cuenta` AS `accountingAccount`,`c`.`created` AS `created` 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 */;
+
+--
+-- Final view structure for view `ClientCredit`
+--
+
+/*!50001 DROP VIEW IF EXISTS `ClientCredit`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `ClientCredit` AS select `c`.`id` AS `id`,`c`.`Id_Cliente` AS `clientFk`,`c`.`Id_Trabajador` AS `employeeFk`,`c`.`amount` AS `amount`,`c`.`odbc_date` AS `created` from `vn2008`.`credit` `c` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `ClientCreditLimit`
+--
+
+/*!50001 DROP VIEW IF EXISTS `ClientCreditLimit`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `ClientCreditLimit` AS select `l`.`id` AS `id`,`l`.`maxAmount` AS `maxAmount`,`l`.`roleFk` AS `roleFk` from `vn`.`clientCreditLimit` `l` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `ClientObservation`
+--
+
+/*!50001 DROP VIEW IF EXISTS `ClientObservation`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `ClientObservation` AS select `o`.`client_observation_id` AS `id`,`o`.`Id_Cliente` AS `clientFk`,`o`.`Id_Trabajador` AS `employeeFk`,`o`.`text` AS `text`,`o`.`odbc_date` AS `created` from `vn2008`.`client_observation` `o` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `ClientType`
+--
+
+/*!50001 DROP VIEW IF EXISTS `ClientType`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `ClientType` AS select `ct`.`clientes_tipo_id` AS `id`,`ct`.`code` AS `code`,`ct`.`tipo` AS `type` from `vn2008`.`clientes_tipo` `ct` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `ContactChannel`
+--
+
+/*!50001 DROP VIEW IF EXISTS `ContactChannel`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `ContactChannel` AS select `c`.`chanel_id` AS `id`,`c`.`name` AS `name` from `vn2008`.`chanel` `c` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `Country`
+--
+
+/*!50001 DROP VIEW IF EXISTS `Country`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `Country` AS select `c`.`Id` AS `id`,`c`.`Pais` AS `name`,`c`.`CEE` AS `inCee`,`c`.`Codigo` AS `code`,`c`.`Id_Moneda` AS `currencyFk`,`c`.`Id_Paisreal` AS `realCountryFk` from `vn2008`.`Paises` `c` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `CreditClassification`
+--
+
+/*!50001 DROP VIEW IF EXISTS `CreditClassification`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `CreditClassification` AS select `vn`.`creditClassification`.`id` AS `id`,`vn`.`creditClassification`.`client` AS `clientFk`,`vn`.`creditClassification`.`dateStart` AS `started`,`vn`.`creditClassification`.`dateEnd` AS `ended` from `vn`.`creditClassification` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `Employee`
+--
+
+/*!50001 DROP VIEW IF EXISTS `Employee`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `Employee` AS select `e`.`Id_Trabajador` AS `id`,`e`.`Nombre` AS `name`,`e`.`Apellidos` AS `surname`,`e`.`user_id` AS `userFk` from `vn2008`.`Trabajadores` `e` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `PayMethod`
+--
+
+/*!50001 DROP VIEW IF EXISTS `PayMethod`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `PayMethod` AS select `m`.`id` AS `id`,`m`.`name` AS `name`,`m`.`graceDays` AS `graceDays`,`m`.`deudaviva` AS `outstandingDebt`,`m`.`ibanRequired` AS `ibanRequired` from `vn2008`.`pay_met` `m` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `Province`
+--
+
+/*!50001 DROP VIEW IF EXISTS `Province`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `Province` AS select `p`.`province_id` AS `id`,`p`.`name` AS `name`,`p`.`Paises_Id` AS `countryFk`,`p`.`warehouse_id` AS `warehouseFk`,`p`.`zone` AS `zoneFk` from `vn2008`.`province` `p` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `Role`
+--
+
+/*!50001 DROP VIEW IF EXISTS `Role`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `Role` AS select `r`.`id` AS `id`,`r`.`name` AS `name`,`r`.`description` AS `description`,`r`.`created` AS `created`,`r`.`modified` AS `modified` from `account`.`role` `r` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `RoleMapping`
+--
+
+/*!50001 DROP VIEW IF EXISTS `RoleMapping`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `RoleMapping` AS select ((`u`.`id` * 1000) + `r`.`inheritsFrom`) AS `id`,'USER' AS `principalType`,`u`.`id` AS `principalId`,`r`.`inheritsFrom` AS `roleId` from (`account`.`user` `u` join `account`.`roleRole` `r` on((`r`.`role` = `u`.`role`))) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `Route`
+--
+
+/*!50001 DROP VIEW IF EXISTS `Route`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `Route` AS select `r`.`Id_Ruta` AS `id`,`r`.`Fecha` AS `date` from `vn2008`.`Rutas` `r` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `State`
+--
+
+/*!50001 DROP VIEW IF EXISTS `State`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `State` AS select `s`.`id` AS `id`,`s`.`name` AS `name`,`s`.`order` AS `order`,`s`.`alert_level` AS `alertLevel`,`s`.`code` AS `code` from `vn2008`.`state` `s` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `Ticket`
+--
+
+/*!50001 DROP VIEW IF EXISTS `Ticket`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `Ticket` AS select `t`.`Id_Ticket` AS `id`,`t`.`Id_Agencia` AS `agencyFk`,`t`.`Id_Trabajador` AS `employeeFk`,`t`.`Fecha` AS `date`,`t`.`Hora` AS `hour`,`t`.`Id_Cliente` AS `clientFk`,`t`.`Id_Consigna` AS `addressFk` from `vn2008`.`Tickets` `t` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `TicketState`
+--
+
+/*!50001 DROP VIEW IF EXISTS `TicketState`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `TicketState` AS select `i`.`inter_id` AS `id`,`i`.`Id_Ticket` AS `ticketFk`,`i`.`state_id` AS `stateFk`,`i`.`Id_Trabajador` AS `employeeFk`,`i`.`odbc_date` AS `updated` from `vncontrol`.`inter` `i` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `Vehicle`
+--
+
+/*!50001 DROP VIEW IF EXISTS `Vehicle`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `Vehicle` AS select `v`.`Id_Vehiculo` AS `id`,`v`.`Matricula` AS `numberPlate`,`v`.`Marca` AS `tradeMark`,`v`.`Modelo` AS `model`,`v`.`empresa_id` AS `companyFk`,`v`.`warehouseFk` AS `warehouseFk`,`v`.`description` AS `description`,`v`.`m3` AS `m3`,`v`.`active` AS `isActive` from `vn2008`.`Vehiculos` `v` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `Warehouse`
+--
+
+/*!50001 DROP VIEW IF EXISTS `Warehouse`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `Warehouse` AS select `w`.`id` AS `id`,`w`.`name` AS `name`,`w`.`tpv` AS `tpv`,`w`.`inventario` AS `inventory`,`w`.`isManaged` AS `isManaged` from `vn2008`.`warehouse` `w` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `WarehouseAlias`
+--
+
+/*!50001 DROP VIEW IF EXISTS `WarehouseAlias`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `WarehouseAlias` AS select `wa`.`warehouse_alias_id` AS `id`,`wa`.`alias` AS `name` from `vn2008`.`warehouse_alias` `wa` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `Worker`
+--
+
+/*!50001 DROP VIEW IF EXISTS `Worker`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `Worker` AS select `e`.`Id_Trabajador` AS `id`,`e`.`Nombre` AS `name`,`e`.`Apellidos` AS `surname`,`e`.`user_id` AS `userFk` from `vn2008`.`Trabajadores` `e` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `Zone`
+--
+
+/*!50001 DROP VIEW IF EXISTS `Zone`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `Zone` AS select `z`.`zone_id` AS `id`,`z`.`name` AS `name`,`z`.`printingOrder` AS `printingOrder` from `vn2008`.`zones` `z` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Current Database: `bs`
+--
+
+USE `bs`;
+
+--
+-- Final view structure for view `VentasPorCliente`
+--
+
+/*!50001 DROP VIEW IF EXISTS `VentasPorCliente`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `VentasPorCliente` AS select `v`.`Id_Cliente` AS `Id_Cliente`,round(sum(`v`.`importe`),0) AS `VentaBasica`,`t`.`year` AS `year`,`t`.`month` AS `month` from (`vn2008`.`time` `t` join `bs`.`ventas` `v` on((`v`.`fecha` = `t`.`date`))) group by `v`.`Id_Cliente`,`t`.`year`,`t`.`month` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `v_ventas`
+--
+
+/*!50001 DROP VIEW IF EXISTS `v_ventas`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `v_ventas` AS select (`bs`.`ventas`.`importe` * `vn2008`.`Movimientos`.`Cantidad`) AS `importe`,`bs`.`ventas`.`recargo` AS `recargo`,`vn2008`.`time`.`year` AS `year`,`vn2008`.`time`.`month` AS `month`,`vn2008`.`time`.`week` AS `week`,`vn2008`.`time`.`day` AS `day` from ((`bs`.`ventas` join `vn2008`.`time` on((`vn2008`.`time`.`date` = `bs`.`ventas`.`fecha`))) join `vn2008`.`Movimientos` on((`bs`.`ventas`.`Id_Movimiento` = `vn2008`.`Movimientos`.`Id_Movimiento`))) group by `vn2008`.`time`.`date` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Current Database: `account`
+--
+
+USE `account`;
+
+--
+-- Final view structure for view `accountDovecot`
+--
+
+/*!50001 DROP VIEW IF EXISTS `accountDovecot`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `accountDovecot` AS select `u`.`name` AS `name`,`u`.`password` AS `password` from (`user` `u` join `account` `a` on((`a`.`id` = `u`.`id`))) where `u`.`active` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `accountNss`
+--
+
+/*!50001 DROP VIEW IF EXISTS `accountNss`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `accountNss` AS select `u`.`name` AS `surname`,`u`.`name` AS `name`,`u`.`password` AS `password`,concat(`c`.`homedir`,'/',`u`.`name`) AS `home`,`c`.`shell` AS `shell`,`c`.`min` AS `min`,`c`.`max` AS `max`,`c`.`warn` AS `warn`,`c`.`inact` AS `inact` from ((`user` `u` join `account` `a` on((`u`.`id` = `a`.`id`))) join `accountConfig` `c`) where (`u`.`active` <> 0) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `accountPam`
+--
+
+/*!50001 DROP VIEW IF EXISTS `accountPam`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `accountPam` AS select `u`.`name` AS `name`,`u`.`password` AS `password` from (`user` `u` join `account` `a` on((`u`.`id` = `a`.`id`))) where (`u`.`active` <> 0) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `userRole`
+--
+
+/*!50001 DROP VIEW IF EXISTS `userRole`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `userRole` AS select `r`.`inheritsFrom` AS `id` from (`roleRole` `r` join `user` `u` on((`u`.`role` = `r`.`role`))) where (`u`.`id` = `USERGETID`()) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `userView`
+--
+
+/*!50001 DROP VIEW IF EXISTS `userView`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `userView` AS select `u`.`id` AS `id`,`u`.`name` AS `name`,`u`.`active` AS `active`,`u`.`email` AS `email`,`u`.`role` AS `role`,`u`.`recoverPass` AS `recoverPass` from `user` `u` where (`u`.`name` = `account`.`userGetName`()) */
+/*!50002 WITH CASCADED CHECK OPTION */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Current Database: `cache`
+--
+
+USE `cache`;
+
+--
+-- Current Database: `pbx`
+--
+
+USE `pbx`;
+
+--
+-- Final view structure for view `cdrConf`
+--
+
+/*!50001 DROP VIEW IF EXISTS `cdrConf`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `cdrConf` AS select `c`.`call_date` AS `calldate`,`c`.`clid` AS `clid`,`c`.`src` AS `src`,`c`.`dst` AS `dst`,`c`.`dcontext` AS `dcontext`,`c`.`channel` AS `channel`,`c`.`dst_channel` AS `dstchannel`,`c`.`last_app` AS `lastapp`,`c`.`last_data` AS `lastdata`,`c`.`duration` AS `duration`,`c`.`billsec` AS `billsec`,`c`.`disposition` AS `disposition`,`c`.`ama_flags` AS `amaflags`,`c`.`account_code` AS `accountcode`,`c`.`unique_id` AS `uniqueid`,`c`.`user_field` AS `userfield` from `cdr` `c` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `followmeConf`
+--
+
+/*!50001 DROP VIEW IF EXISTS `followmeConf`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `followmeConf` AS select `f`.`extension` AS `name`,`c`.`music` AS `music`,`c`.`context` AS `context`,`c`.`takeCall` AS `takecall`,`c`.`declineCall` AS `declinecall` from (`followme` `f` join `followmeConfig` `c`) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `followmeNumberConf`
+--
+
+/*!50001 DROP VIEW IF EXISTS `followmeNumberConf`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `followmeNumberConf` AS select `f`.`extension` AS `name`,1 AS `ordinal`,`f`.`phone` AS `phonenumber`,`c`.`timeout` AS `timeout` from (`followme` `f` join `followmeConfig` `c`) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `queueConf`
+--
+
+/*!50001 DROP VIEW IF EXISTS `queueConf`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `queueConf` AS select `q`.`name` AS `name`,`c`.`strategy` AS `strategy`,`c`.`timeout` AS `timeout`,`c`.`retry` AS `retry`,`c`.`weight` AS `weight`,`c`.`maxLen` AS `maxlen`,`c`.`ringInUse` AS `ringinuse` from (`queue` `q` join `queueConfig` `c` on((`q`.`config` = `c`.`id`))) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `queueMemberConf`
+--
+
+/*!50001 DROP VIEW IF EXISTS `queueMemberConf`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `queueMemberConf` AS select `m`.`id` AS `uniqueid`,`m`.`queue` AS `queue_name`,concat('SIP/',`m`.`extension`) AS `interface` from `queueMember` `m` union all select `p`.`id` AS `id`,`p`.`queue` AS `queue`,concat('Local/',`p`.`phone`,'@outgoing') AS `phone` from `queuePhone` `p` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `sipConf`
+--
+
+/*!50001 DROP VIEW IF EXISTS `sipConf`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `sipConf` AS select `s`.`user_id` AS `id`,`s`.`extension` AS `name`,`s`.`secret` AS `secret`,`s`.`caller_id` AS `callerid`,`c`.`host` AS `host`,`c`.`deny` AS `deny`,`c`.`permit` AS `permit`,`c`.`type` AS `type`,`c`.`context` AS `context`,`c`.`incomingLimit` AS `incominglimit`,`c`.`pickupGroup` AS `pickupgroup`,`c`.`careInvite` AS `careinvite`,`r`.`ipAddr` AS `ipaddr`,`r`.`regSeconds` AS `regseconds`,`r`.`port` AS `port`,`r`.`defaultUser` AS `defaultuser`,`r`.`userAgent` AS `useragent`,`r`.`lastMs` AS `lastms`,`r`.`fullContact` AS `fullcontact`,`r`.`regServer` AS `regserver` from ((`sip` `s` left join `sipReg` `r` on((`s`.`user_id` = `r`.`userId`))) join `sipConfig` `c`) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Current Database: `hedera`
+--
+
+USE `hedera`;
+
+--
+-- Final view structure for view `address_view`
+--
+
+/*!50001 DROP VIEW IF EXISTS `address_view`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `address_view` AS select `a`.`id_consigna` AS `id`,`a`.`Id_cliente` AS `customer_id`,`a`.`warehouse_id` AS `warehouse_id`,`a`.`domicilio` AS `name`,`a`.`poblacion` AS `city`,`a`.`province_id` AS `province_id`,`a`.`codPostal` AS `zip_code`,`a`.`consignatario` AS `consignee`,`a`.`predeterminada` AS `default`,`a`.`Id_Agencia` AS `type_id`,`a`.`especificaciones` AS `specs`,`a`.`seguro` AS `insurance`,`a`.`porte` AS `postage`,`a`.`active` AS `active` from `vn2008`.`Consignatarios` `a` where (`a`.`Id_cliente` = `account`.`userGetId`()) */
+/*!50002 WITH CASCADED CHECK OPTION */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `basket`
+--
+
+/*!50001 DROP VIEW IF EXISTS `basket`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `basket` AS select `o`.`id` AS `id`,`o`.`date_make` AS `date_make`,`o`.`date_send` AS `date_send`,`o`.`customer_id` AS `customer_id`,`o`.`delivery_method_id` AS `delivery_method_id`,`o`.`agency_id` AS `agency_id`,`o`.`address_id` AS `address_id`,`o`.`company_id` AS `company_id`,`o`.`note` AS `note` from `hedera`.`order` `o` where (`o`.`id` = `basketGetId`()) */
+/*!50002 WITH CASCADED CHECK OPTION */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `basket_defaults`
+--
+
+/*!50001 DROP VIEW IF EXISTS `basket_defaults`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `basket_defaults` AS select `ad`.`id_consigna` AS `address_id`,`ad`.`Id_Agencia` AS `agency_id`,`v`.`code` AS `delivery_method` from (((`vn2008`.`Clientes` `c` left join `vn2008`.`Consignatarios` `ad` on((`ad`.`id_consigna` = `c`.`default_address`))) join `vn2008`.`Agencias` `a` on((`a`.`Id_Agencia` = `ad`.`Id_Agencia`))) join `vn2008`.`Vistas` `v` on((`v`.`vista_id` = `a`.`Vista`))) where (`c`.`id_cliente` = `account`.`userGetId`()) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `basket_item`
+--
+
+/*!50001 DROP VIEW IF EXISTS `basket_item`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `basket_item` AS select `r`.`id` AS `id`,`r`.`order_id` AS `order_id`,`r`.`warehouse_id` AS `warehouse_id`,`r`.`item_id` AS `item_id`,`r`.`amount` AS `amount`,`r`.`price` AS `price` from `hedera`.`order_row` `r` where (`r`.`order_id` = `basketGetId`()) */
+/*!50002 WITH CASCADED CHECK OPTION */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `customer_user`
+--
+
+/*!50001 DROP VIEW IF EXISTS `customer_user`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `customer_user` AS select `c`.`id_cliente` AS `user_id`,`c`.`cliente` AS `name` from `vn2008`.`Clientes` `c` where (`c`.`id_cliente` = `account`.`userGetId`()) */
+/*!50002 WITH CASCADED CHECK OPTION */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `customer_view`
+--
+
+/*!50001 DROP VIEW IF EXISTS `customer_view`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `customer_view` AS select `c`.`id_cliente` AS `user_id`,`c`.`cliente` AS `name`,`c`.`e-mail` AS `email`,`c`.`mail` AS `mail`,`c`.`default_address` AS `default_address`,`c`.`credito` AS `credit` from `vn2008`.`Clientes` `c` where (`c`.`id_cliente` = `account`.`userGetId`()) */
+/*!50002 WITH CASCADED CHECK OPTION */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `invoice_view`
+--
+
+/*!50001 DROP VIEW IF EXISTS `invoice_view`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `invoice_view` AS select `i`.`factura_id` AS `invoice_id`,`i`.`Id_Factura` AS `serial_num`,`i`.`Fecha` AS `issued`,`i`.`Importe` AS `amount` from `vn2008`.`Facturas` `i` where ((`i`.`Id_Cliente` = `account`.`userGetId`()) and `i`.`pdf`) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `order_confirm_time`
+--
+
+/*!50001 DROP VIEW IF EXISTS `order_confirm_time`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `order_confirm_time` AS select `o`.`date_make` AS `date_make`,`o`.`source_app` AS `source_app`,`o`.`customer_id` AS `customer_id`,`o`.`confirm_date` AS `confirm_date`,`o`.`first_row_stamp` AS `first_row_stamp`,(ceiling((((unix_timestamp(`o`.`confirm_date`) - unix_timestamp(`o`.`first_row_stamp`)) / 60) / 5)) * 5) AS `minutos` from `order` `o` where ((`o`.`confirm_date` is not null) and (`o`.`first_row_stamp` is not null)) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `order_row_view`
+--
+
+/*!50001 DROP VIEW IF EXISTS `order_row_view`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `order_row_view` AS select `r`.`id` AS `id`,`r`.`order_id` AS `order_id`,`r`.`warehouse_id` AS `warehouse_id`,`r`.`item_id` AS `item_id`,`r`.`amount` AS `amount`,`r`.`price` AS `price2` from `hedera`.`order_row` `r` where `r`.`order_id` in (select `order_view`.`id` AS `id` from `hedera`.`order_view`) */
+/*!50002 WITH CASCADED CHECK OPTION */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `order_view`
+--
+
+/*!50001 DROP VIEW IF EXISTS `order_view`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `order_view` AS select `o`.`id` AS `id`,`o`.`date_make` AS `date_make`,`o`.`date_send` AS `date_send`,`o`.`customer_id` AS `customer_id`,`o`.`delivery_method_id` AS `delivery_method_id`,`o`.`agency_id` AS `agency_id`,`o`.`note` AS `note`,`o`.`address_id` AS `address_id`,`o`.`company_id` AS `company_id` from `hedera`.`order` `o` where ((`o`.`customer_id` = `account`.`userGetId`()) and (`o`.`is_bionic` = 0)) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `ticket_row_view`
+--
+
+/*!50001 DROP VIEW IF EXISTS `ticket_row_view`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `ticket_row_view` AS select `m`.`Id_Movimiento` AS `id`,`m`.`Id_Article` AS `item_id`,`m`.`Id_Ticket` AS `ticket_id`,`m`.`Concepte` AS `concept`,`m`.`Cantidad` AS `amount`,`m`.`Preu` AS `price`,`m`.`PrecioFijado` AS `fixed`,`m`.`Descuento` AS `discount`,`m`.`CostFixat` AS `cost`,`m`.`Reservado` AS `reserved`,`m`.`OK` AS `ok` from (`vn2008`.`Movimientos` `m` join `hedera`.`ticket_view` `t` on((`m`.`Id_Ticket` = `t`.`id`))) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `ticket_view`
+--
+
+/*!50001 DROP VIEW IF EXISTS `ticket_view`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `ticket_view` AS select `t`.`Id_Ticket` AS `id`,`t`.`Id_Cliente` AS `customer_id`,`t`.`warehouse_id` AS `warehouse_id`,`t`.`Fecha` AS `date`,`t`.`landing` AS `delivery`,`t`.`Alias` AS `alias`,`t`.`Id_Agencia` AS `agency_id`,`t`.`Notas` AS `note`,`t`.`Factura` AS `invoice`,`t`.`Id_Consigna` AS `address_id`,`t`.`Id_Trabajador` AS `employee_id`,`t`.`Observaciones` AS `comments`,`t`.`Firmado` AS `signed`,`t`.`Bultos` AS `packages`,`t`.`Localizacion` AS `location`,`t`.`Hora` AS `hour`,`t`.`blocked` AS `blocked`,`t`.`Solucion` AS `solution`,`t`.`empresa_id` AS `company_id`,`a`.`Agencia` AS `type` from (`vn2008`.`Tickets` `t` join `vn2008`.`Agencias` `a` on((`t`.`Id_Agencia` = `a`.`Id_Agencia`))) where (`t`.`Id_Cliente` = `account`.`userGetId`()) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `tpv_transaction_view`
+--
+
+/*!50001 DROP VIEW IF EXISTS `tpv_transaction_view`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `tpv_transaction_view` AS select `t`.`id` AS `id`,`t`.`merchant_id` AS `merchant_id`,`t`.`customer_id` AS `customer_id`,`t`.`receipt_id` AS `receipt_id`,`t`.`amount` AS `amount`,`t`.`response` AS `response`,`t`.`status` AS `status`,`t`.`date_time` AS `date_time` from `hedera`.`tpv_transaction` `t` where (`t`.`customer_id` = `account`.`userGetId`()) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
+--
+-- Final view structure for view `user_android_view`
+--
+
+/*!50001 DROP VIEW IF EXISTS `user_android_view`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8 */;
+/*!50001 SET character_set_results = utf8 */;
+/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
+/*!50001 VIEW `user_android_view` AS select `a`.`user_id` AS `user_id`,`a`.`android_id` AS `android_id` from `hedera`.`user_android` `a` where (`a`.`user_id` = `account`.`userGetId`()) */
+/*!50002 WITH CASCADED CHECK OPTION */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+-- Dump completed on 2017-10-10 13:39:29
diff --git a/services/db/localDB02Inserts.sql b/services/db/localDB02Inserts.sql
new file mode 100644
index 000000000..3029777d2
--- /dev/null
+++ b/services/db/localDB02Inserts.sql
@@ -0,0 +1,245 @@
+INSERT INTO `salix`.`Role`(`id`, `name`, `description`, `created`, `modified`)
+ VALUES
+ (1, 'employee', 'Privilegios básicos de un empleado', CURDATE(), CURDATE()),
+ (2, 'customer', 'Privilegios básicos de un cliente', CURDATE(), CURDATE()),
+ (3, 'administrative', 'Tareas relacionadas con la contabilidad', CURDATE(), CURDATE()),
+ (4, 'salesPerson', 'Departamento de ventas', CURDATE(), CURDATE());
+
+INSERT INTO `salix`.`Account`(`id`,`name`,`password`,`roleFk`,`active`,`email`)
+ VALUES
+ (1, 'BruceWayne', 'ac754a330530832ba1bf7687f577da91', 2, 1, 'nightmare@verdnatura.es'),
+ (2, 'PetterParker', 'ac754a330530832ba1bf7687f577da91', 2, 1, 'nightmare@verdnatura.es'),
+ (3, 'ClarkKent', 'ac754a330530832ba1bf7687f577da91', 2, 1, 'nightmare@verdnatura.es'),
+ (4, 'TonyStark', 'ac754a330530832ba1bf7687f577da91', 2, 1, 'nightmare@verdnatura.es'),
+ (5, 'MaxEisenhardt', 'ac754a330530832ba1bf7687f577da91', 2, 1, 'nightmare@verdnatura.es'),
+ (6, 'DavidCharlesHaller', 'ac754a330530832ba1bf7687f577da91', 1, 1, 'nightmare@verdnatura.es'),
+ (7, 'HankPym', 'ac754a330530832ba1bf7687f577da91', 1, 1, 'nightmare@verdnatura.es'),
+ (8, 'CharlesXavier', 'ac754a330530832ba1bf7687f577da91', 4, 1, 'nightmare@verdnatura.es'),
+ (9, 'BruceBanner', 'ac754a330530832ba1bf7687f577da91', 1, 1, 'nightmare@verdnatura.es'),
+ (10, 'JessicaJones', 'ac754a330530832ba1bf7687f577da91', 3, 1, 'nightmare@verdnatura.es');
+
+INSERT INTO `salix`.`Country`(`id`, `name`, `inCee`, `code`, `currencyFk`, `realCountryFk`)
+ VALUES
+ (1, 'España', 0, 'ES', 1, 1),
+ (2, 'Italia', 1, 'IT', 1, 2),
+ (3, 'Alemania', 1, 'DE', 1, 3),
+ (4, 'Rumania', 1, 'RO', 1, 4),
+ (5, 'Holanda', 1, 'NL', 1, 5);
+
+INSERT INTO `salix`.`Warehouse`(`id`, `name`, `tpv`, `inventory`, `isManaged`)
+ VALUES
+ (1, 'Warehouse One', 01, 1, 1),
+ (2, 'Warehouse Two', 01, 1, 1),
+ (3, 'Warehouse Three', 01, 1, 1),
+ (4, 'Warehouse Four', 01, 1, 1),
+ (5, 'Warehouse Five', 01, 1, 0);
+
+INSERT INTO `salix`.`WarehouseAlias`(`id`, `name`)
+ VALUES
+ (1, 'Main Warehouse');
+
+INSERT INTO `vn`.`accountingType`(`id`, `description`)
+ VALUES
+ (1, 'Digital money'),
+ (2, 'Cash'),
+ (3, 'Card'),
+ (4, 'Stolen Money'),
+ (5, 'Miscellaneous');
+
+INSERT INTO `salix`.`Bank`(`id`, `bank`, `account`, `cash`, `entityFk`, `isActive`)
+ VALUES
+ (8, 'Pay on receipt', '0000000000', 4, 0, 1);
+
+INSERT INTO `salix`.`Agency`(`id`, `name`, `warehouseFk`, `isVolumetric`, `bankFk`, `warehouseAliasFk`)
+ VALUES
+ (1, 'inhouse pickup', 1, 0, 8, 1),
+ (2, 'Super-Man delivery', 1, 0, 8, 1),
+ (3, 'Teleportation device', 1, 0, 8, 1),
+ (4, 'Entanglement', 1, 0, 8, 1),
+ (5, 'Quantum break device', 1, 0, 8, 1),
+ (6, 'Walking', 1, 0, 8, 1);
+
+UPDATE `salix`.`AgencyMode` SET `id` = 1 WHERE `name` = 'inhouse pickup';
+UPDATE `salix`.`AgencyMode` SET `id` = 2 WHERE `name` = 'Super-Man delivery';
+UPDATE `salix`.`AgencyMode` SET `id` = 3 WHERE `name` = 'Teleportation device';
+UPDATE `salix`.`AgencyMode` SET `id` = 4 WHERE `name` = 'Entanglement';
+UPDATE `salix`.`AgencyMode` SET `id` = 5 WHERE `name` = 'Quantum break device';
+UPDATE `salix`.`AgencyMode` SET `id` = 6 WHERE `name` = 'Walking';
+
+INSERT INTO `salix`.`PayMethod`(`id`, `name`, `graceDays`, `outstandingDebt`, `ibanRequired`)
+ VALUES
+ (1, 'PayMethod one', 0, 001, 0),
+ (2, 'PayMethod two', 10, 001, 0),
+ (3, 'PayMethod three', 0, 001, 0),
+ (4, 'PayMethod four', 0, 001, 1),
+ (5, 'PayMethod five', 10, 001, 0);
+
+INSERT INTO `salix`.`Zone`(`id`, `name`, `printingOrder`)
+ VALUES
+ (1, 'zone one', 1),
+ (2, 'zone two', 2),
+ (3, 'zone three', 3);
+
+INSERT INTO `salix`.`Province`(`id`, `name`, `countryFk`, `warehouseFk`, `zoneFk`)
+ VALUES
+ (1, 'Provicen one', 1, NULL, 1),
+ (2, 'Provicen two', 1, NULL, 2),
+ (3, 'Provicen three', 1, NULL, 3),
+ (4, 'Provicen four', 1, NULL, 2),
+ (5, 'Provicen five', 1, NULL, 1);
+
+INSERT INTO `salix`.`ClientType`(`id`, `code`, `type`)
+ VALUES
+ (1, 'normal', 'Normal'),
+ (2, 'internalUse', 'Autoconsumo'),
+ (3, 'handMaking', 'Confección'),
+ (4, 'loses', 'Mermas');
+
+INSERT INTO `salix`.`City`(`id`, `name`, `provinceFk`)
+ VALUES
+ (1, 'Gotham', 1);
+
+
+INSERT INTO `vn`.`cplusTerIdNif`(`id`, `description`)
+ VALUES
+ (1, 'NIF');
+
+INSERT INTO `vn2008`.`Trabajadores`(`CodigoTrabajador`, `Id_Trabajador`, `Nombre`, `Apellidos`, `user`)
+ VALUES
+ ('LGN', 1, 'David Charles', 'Haller', 6),
+ ('ANT', 2, 'Hank', 'Pym', 7),
+ ('DCX', 3, 'Charles', 'Xavier', 8),
+ ('HLK', 4, 'Bruce', 'Banner', 9),
+ ('JJJ', 5, 'Jessica', 'Jones', 10);
+
+INSERT INTO `salix`.`ContactChannel`(`id`, `name`)
+ VALUES
+ (1, 'Rumors on the streets'),
+ (2, 'Metropolis newspaper'),
+ (3, 'Daily Bugle'),
+ (4, 'GCN Channel'),
+ (5, 'The Newspaper');
+
+INSERT INTO `salix`.`Client`(`id`, `name`, `fi`, `socialName`, `contact`, `street`, `city`, `postcode`, `provinceFk`, `countryFk`, `email`, `phone`, `mobile`, `fax`, `active`, `discount`, `credit`, `creditInsurance`, `iban`, `dueDay`, `equalizationTax`, `hasToInvoice`, `invoiceByEmail`, `payMethodFk`, `salesPersonFk`, `contactChannelFk`, `sepaVnl`, `coreVnl`, `coreVnh`, `eypbc`, `quality`, `vies`, `isRelevant`, `typeFk`, `accountingAccount`, `created`)
+ VALUES
+ (1, 'Bruce Wayne', '11111111B', 'Batman', 'Alfred', '1007 Mountain Drive, Gotham', 'Silla', 46460, 1, 1, 'nightmare@verdnatura.es', 1111111111, 222222222, 333333333, 1, 1, 300, NULL, NULL, 0, 1, 1, 1, 5, 4, 5, 1, 1, 1, 1, 10, 0, 1, 1, 1234567890, CURDATE()),
+ (2, 'Petter Parker', '22222222P', 'Spider-Man', 'Aunt May', '20 Ingram Street', 'Silla', 46460, 1, 1, 'nightmare@verdnatura.es', 1111111111, 222222222, 333333333, 1, 1, 300, NULL, NULL, 0, 1, 1, 1, 5, 4, 5, 1, 1, 1, 1, 10, 0, 1, 1, 1234567890, CURDATE()),
+ (3, 'Clark Kent', '33333333C', 'Super-Man', 'lois lane', '344 Clinton Street', 'Silla', 46460, 1, 1, 'nightmare@verdnatura.es', 1111111111, 222222222, 333333333, 1, 1, 300, NULL, NULL, 0, 1, 1, 1, 5, 4, 5, 1, 1, 1, 1, 10, 0, 1, 1, 1234567890, CURDATE()),
+ (4, 'Tony Stark', '44444444T', 'Iron-Man', 'Pepper Potts', '10880 Malibu Point', 'Silla', 46460, 1, 1, 'nightmare@verdnatura.es', 1111111111, 222222222, 333333333, 1, 1, 300, NULL, NULL, 0, 1, 1, 1, 5, 4, 5, 1, 1, 1, 1, 10, 0, 1, 1, 1234567890, CURDATE()),
+ (5, 'Max Eisenhardt', '55555555M', 'Magneto', 'Rogue', 'Unknown Whereabouts', 'Silla', 46460, 1, 1, 'nightmare@verdnatura.es', 1111111111, 222222222, 333333333, 1, 1, 300, NULL, NULL, 0, 1, 1, 1, 5, 4, 5, 1, 1, 1, 1, 10, 0, 1, 1, 1234567890, CURDATE()),
+ (6, 'DavidCharlesHaller', '66666666D', 'Legion', 'Charles Xavier', 'Evil hideout', 'Silla', 46460, 1, 1, 'nightmare@verdnatura.es', 1111111111, 222222222, 333333333, 1, 1, 300, NULL, NULL, 0, 1, 1, 1, 5, 4, 5, 1, 1, 1, 1, 10, 0, 1, 1, 1234567890, CURDATE()),
+ (7, 'Hank Pym', '77777777H', 'Ant-Man', 'Hawk', 'Anthill', 'Silla', 46460, 1, 1, 'nightmare@verdnatura.es', 1111111111, 222222222, 333333333, 1, 1, 300, NULL, NULL, 0, 1, 1, 1, 5, 4, 5, 1, 1, 1, 1, 10, 0, 1, 1, 1234567890, CURDATE()),
+ (8, 'Charles Xavier', '88888888C', 'Professor X', 'Beast', '3800 Victory Pkwy, Cincinnati, OH 45207, USA', 'Silla', 46460, 1, 1, 'nightmare@verdnatura.es', 1111111111, 222222222, 333333333, 1, 1, 300, NULL, NULL, 0, 1, 1, 1, 5, 4, 5, 1, 1, 1, 1, 10, 0, 1, 1, 1234567890, CURDATE()),
+ (9, 'Bruce Banner', '99999999B', 'Hulk', 'Black widow', 'Somewhere in New York', 'Silla', 46460, 1, 1, 'nightmare@verdnatura.es', 1111111111, 222222222, 333333333, 1, 1, 300, NULL, NULL, 0, 1, 1, 1, 5, 4, 5, 1, 1, 1, 1, 10, 0, 1, 1, 1234567890, CURDATE()),
+ (10, 'Jessica Jones', '10101010J', 'Jessica Jones', 'Luke Cage', 'NYCC 2015 Poster', 'Silla', 46460, 1, 1, 'nightmare@verdnatura.es', 1111111111, 222222222, 333333333, 1, 1, 300, NULL, NULL, 0, 1, 1, 1, 5, 4, 5, 1, 1, 1, 1, 10, 0, 1, 1, 1234567890, CURDATE());
+
+INSERT INTO `salix`.`Address`(`id`, `consignee`, `street`, `city`, `postcode`, `provinceFk`, `phone`, `mobile`, `isEnabled`, `isDefaultAddress`, `clientFk`, `defaultAgencyFk`, `longitude`, `latitude`, `isEqualizated`)
+ VALUES
+ (1, 'Bruce Wayne', 'The Bat cave', 'Silla', 46460, 1, NULL, NULL, 1, 1, 1, 2, NULL, NULL, 1),
+ (2, 'Petter Parker', 'NY roofs', 'Silla', 46460, 1, NULL, NULL, 1, 1, 2, 2, NULL, NULL, 1),
+ (3, 'Clark Kenn', 'The phone box', 'Silla', 46460, 1, NULL, NULL, 1, 1, 3, 2, NULL, NULL, 1),
+ (4, 'Tony Stark', 'Stark tower', 'Silla', 46460, 1, NULL, NULL, 1, 1, 4, 2, NULL, NULL, 1),
+ (5, 'Max Eisenhardt', 'The plastic cell', 'Silla', 46460, 1, NULL, NULL, 1, 1, 5, 2, NULL, NULL, 1),
+ (6, 'David Charles Haller', 'Many places', 'Silla', 46460, 1, NULL, NULL, 1, 1, 6, 2, NULL, NULL, 1),
+ (7, 'Hank Pym', 'Your pocket', 'Silla', 46460, 1, NULL, NULL, 1, 1, 7, 2, NULL, NULL, 1),
+ (8, 'Charles Xavier', 'Cerebro', 'Silla', 46460, 1, NULL, NULL, 1, 1, 8, 2, NULL, NULL, 1),
+ (9, 'Bruce Banner', 'Somewhere in Thailand', 'Silla', 46460, 1, NULL, NULL, 1, 1, 9, 2, NULL, NULL, 1),
+ (10,'Jessica Jones', 'Luke Cages Bar', 'Silla', 46460, 1, NULL, NULL, 1, 1, 10, 2, NULL, NULL, 1);
+
+INSERT INTO `salix`.`ClientCredit`(`id`, `clientFk`, `employeeFk`, `amount`, `created`)
+ VALUES
+ (1, 1, 1, 1200, CURDATE()),
+ (2, 2, 2, 800, CURDATE()),
+ (3, 3, 3, 200, CURDATE()),
+ (4, 4, 4, 90, CURDATE()),
+ (5, 5, 5, 90, CURDATE());
+
+INSERT INTO `salix`.`ClientCreditLimit`(`id`, `maxAmount`, `roleFk`)
+ VALUES
+ (1, 10000, 20),
+ (2, 600, 19),
+ (3, 0, 13);
+
+INSERT INTO `salix`.`ClientObservation`(`id`, `clientFk`, `employeeFk`, `text`, `created`)
+ VALUES
+ (1, 1, 1, 'Madness, as you know, is like gravity, all it takes is a little push', CURDATE()),
+ (2, 2, 1, 'With great power, comes great responsibility', CURDATE()),
+ (3, 3, 2, 'this is a job for Super-Man!', CURDATE()),
+ (4, 4, 2, 'yes... I am Iron-Man', CURDATE()),
+ (5, 5, 3, 'They do understand. Our mutant powers make us superior', CURDATE()),
+ (6, 6, 3, 'My name is Legion, for we are many!', CURDATE()),
+ (7, 7, 4, 'I think our first move should be calling the Avengers..', CURDATE()),
+ (8, 8, 4, 'Just because someone stumbles and loses their path, does not mean they are lost forever.', CURDATE()),
+ (9, 9, 5, 'HULK SMASH! ...', CURDATE()),
+ (10, 10, 5, 'They say everyone is born a hero. But if you let it, life will push you over the line until you are the villain. Problem is, you dont always know that you have crossed that line.', CURDATE());
+
+INSERT INTO `vn`.`creditClassification`(`id`, `client`, `dateStart`, `dateEnd`)
+ VALUES
+ (1, 1, CURDATE(), CURDATE()),
+ (2, 2, CURDATE(), CURDATE()),
+ (3, 3, CURDATE(), CURDATE()),
+ (4, 4, CURDATE(), CURDATE()),
+ (5, 5, CURDATE(), CURDATE());
+
+INSERT INTO `salix`.`Route`(`id`, `date`)
+ VALUES
+ (1, CURDATE()),
+ (2, CURDATE()),
+ (3, CURDATE()),
+ (4, CURDATE()),
+ (5, CURDATE()),
+ (6, CURDATE()),
+ (7, CURDATE());
+
+INSERT INTO `salix`.`State`(`id`, `name`, `order`, `alertLevel`, `code`)
+ VALUES
+ (1, 'To check', 2, 0, 'FIXING'),
+ (2, 'Owes', 1, 0, 'FREE'),
+ (3, 'Ok', 3, 0, 'OK');
+
+INSERT INTO `vn2008`.`empresa_grupo`(`empresa_grupo_id`, `grupo`)
+ VALUES
+ (1, 'Wayne Industries');
+
+INSERT INTO `vn2008`.`empresa`(`id`, `abbreviation`, `registro`, `gerente_id`, `alta`, `baja`, `logo`, `oficial`, `cyc`, `rgb`, `mail`, `cuno`, `ODBC_DATE`, `Id_Cliente`, `digito_factura`, `Id_Proveedores_account`, `morosidad`, `empresa_grupo`)
+ VALUES
+ ('442', 'VNL', 'Wayne Industries, Inc. operates as a warehouse for steel products. Wayne Industries, Inc. was founded in 1989 and is based in Wayne, Michigan.', '2', '1989-11-19', NULL, NULL, '1', '1', '00FF00', 'nightmare@verdnatura.es', NULL, '1989-08-11 12:31:22', '10', '1', NULL, '1', '1');
+
+ INSERT INTO `salix`.`Ticket`(`id`, `agencyFk`, `employeeFk`, `date`, `hour`, `clientFk`, `addressFk`)
+ VALUES
+ (1, 1, 1, CURDATE(), 0, 1, 1),
+ (2, 1, 1, CURDATE(), 0, 1, 2),
+ (3, 2, 2, CURDATE(), 0, 2, 3),
+ (4, 2, 2, CURDATE(), 0, 2, 4),
+ (5, 3, 3, CURDATE(), 0, 3, 5),
+ (6, 3, 3, CURDATE(), 0, 3, 6),
+ (7, 4, 4, CURDATE(), 0, 4, 7),
+ (8, 4, 4, CURDATE(), 0, 4, 8),
+ (9, 5, 5, CURDATE(), 0, 5, 9),
+ (10, 6, 5, CURDATE(), 0, 5, 10);
+
+INSERT INTO `salix`.`TicketState`(`id`, `ticketFk`, `stateFk`, `employeeFk`, `updated`)
+ VALUES
+ (1, 1, 1, 1, CURDATE()),
+ (2, 2, 2, 1, CURDATE()),
+ (3, 3, 3, 2, CURDATE()),
+ (4, 4, 1, 2, CURDATE()),
+ (5, 5, 2, 3, CURDATE()),
+ (6, 6, 3, 3, CURDATE()),
+ (7, 7, 1, 4, CURDATE()),
+ (8, 8, 2, 4, CURDATE()),
+ (9, 9, 3, 5, CURDATE()),
+ (10, 10, 1, 5, CURDATE());
+
+INSERT INTO `salix`.`Vehicle`(`id`, `numberPlate`, `tradeMark`, `model`, `companyFk`, `warehouseFk`, `description`, `m3`, `isActive`)
+ VALUES
+ (1, '3333-BAT', 'WAYNE INDUSTRIES', 'BATMOBILE', 442, 1, 'The ultimate war machine', 50, 1),
+ (2, '1111-IMK', 'STARK INDUSTRIES', 'MARK-III', 442, 1, 'Iron-Man Heavy Armor MARK-III', 18, 1),
+ (3, '2222-IMK', 'STARK INDUSTRIES', 'MARK-VI', 442, 1, 'Iron-Man Heavy Armor MARK-VI', 16, 1),
+ (4, '3333-IMK', 'STARK INDUSTRIES', 'MARK-VII', 442, 1, 'Iron-Man Heavy Armor MARK-VII', 14, 1),
+ (5, '4444-IMK', 'STARK INDUSTRIES', 'MARK-XLII', 442, 1, 'Iron-Man Heavy Armor MARK-XLII', 13, 1),
+ (6, '5555-IMK', 'STARK INDUSTRIES', 'MARK-XLV', 442, 1, 'Iron-Man Heavy Armor MARK-XLV', 12, 1);
+
+INSERT INTO `vn`.`config`(`id`, `mdbServer`, `fakeEmail`, `defaultersMaxAmount`)
+ VALUES
+(1, 'beta-server', 'nightmare@verdnatura.es', '200');