(920,'== Descripcion ==\n<strike>Una vez que ingresa los datos básicos de un producto, verifica que este producto tenga alguna composicion (solo los elementos básicos). Si la tiene, divide el proceso en 2 partes\n#Une 2 grupos de datos dentro del mismo subconjunto\n##Todos los productos-elementos de la [[VISTA:visprodadic]] cuyo codigo de producto sea igual al código de producto madre y que sea \"propiamente dichos\" (cuyo código de producto sea igual al código de elemento)\n##Todos los productos-elementos de la [[VISTA:visprodadic]] cuyo codigo de producto sea igual al código de producto madre y el código de producto sea diferente al codigo de elemento.\n###Incluye todos los productos-elementos de un nivel inferior. Esto se realiza seleccionando los elementos de la composicion como si fuesen productos y esos productos son la clave de búsqueda dentro de la misma tabla de composición.</strike> \'\'\'20120917\'\'\'\nUna vez que ingresa los datos básicos de un producto, inserta en [[TABLA:vidquoten3]] los componentes del producto señalado (solo los elementos básicos). Divide el proceso en 2 partes\n#Une 2 grupos de datos dentro del mismo subconjunto\n##Todos los productos-elementos de [[TABLA:componentes]], [[TABLA:productos]] y [[TABLA:precios]] cuyo codigo de producto sea igual al código de producto madre y que sea \"propiamente dichos\" (cuyo código de producto sea igual al código de elemento)\n##Todos los productos-elementos de de [[TABLA:componentes]], [[TABLA:productos]] y [[TABLA:precios]] cuyo codigo de producto sea igual al código de producto madre y el código de producto sea diferente al codigo de elemento.\n###Incluye todos los productos-elementos de un nivel inferior. Esto se realiza seleccionando los elementos de la composicion como si fuesen productos y esos productos son la clave de búsqueda dentro de la misma tabla de composición.\n\n== Composicion ==\n*<strike>[[VISTA:visproadic]]-></strike>\n*[[TABLA:productos]]->\n*[[TABLA:precios]]->\n*[[TABLA:componentes]]->\n*->[[TABLA:vidquoten3]]\n\n== SQL ==\n<small><pre>\n-- --------------------------------------------------------------------------------\n-- Routine DDL\n-- Note: comments before and after the routine body will not be stored by the server\n-- --------------------------------------------------------------------------------\nDELIMITER $$\n\nCREATE DEFINER=`sas_admin`@`%` PROCEDURE `AltaItemPresupuesto`(\n	IN pVidQuoteID INT(5), \n	IN pVidQuoteLPre INT(1), \n	IN pVidQuoteItem INT(5), \n	IN pVidQuoteProdID CHAR(8), \n	IN pVidQuoteProdCantidad INT(5), \n	IN pVidQuoteAncho INT(5), \n	IN pVidQuoteAlto INT(5), \n	IN pCoeficienteMU DECIMAL(5,2))\nBEGIN\n	-- --------------------------------------------------------------------------------\n	-- Inserta Registraciones pausibles de incorporar de acuerdo al tipo de \n	-- --------------------------------------------------------------------------------\n	INSERT INTO vidquoten3 (\n		VidQuoteID,\n		VidQuoteItem,\n		VidQuoteProdID,\n		VidQuoteProdCantidad,\n		VidQuoteElementoID,\n		VidQuoteComposicID,\n      VidQuoteElementoPM,\n		VidQuotePrecio,\n		VidQuotePrecioP)\n	SELECT\n		pVidQuoteID as VidQuoteID,\n		pVidQuoteItem as VidQuoteItem,\n		R1.ProductoID AS VidQuoteProdID,\n		pVidQuoteProdCantidad AS VidQuoteProdCantidad,\n		R1.ProdCmpID AS VidQuoteElementoID,\n		R1.ComposicID AS VidQuoteComposicID,\n      R1.ElementoPM AS VidQuoteElementoPM,\n		SUM(\n          CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`R1`.`PrecioProd`,\n			`R1`.`Magnitud`,\n			`R1`.`OffsetVanoAlto`,\n			`R1`.`OffsetVanoAncho`,\n			`R1`.`CoefVanoAlto`,\n			`R1`.`CoefVanoAncho`,\n			`R1`.`ValorElemento`) * pCoeficienteMU) AS VidQuotePrecio,\n		SUM(\n         CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`R1`.`PrecioProd`,\n			`R1`.`Magnitud`,\n			`R1`.`OffsetVanoAlto`,\n			`R1`.`OffsetVanoAncho`,\n			`R1`.`CoefVanoAlto`,\n			`R1`.`CoefVanoAncho`,\n			`R1`.`ValorElemento`) * pVidQuoteProdCantidad * pCoeficienteMU) AS VidQuotePrecioP\n\n	FROM\n		-- --------------------------------------------------------------------------------\n		-- Selecciona elementos de composicion iguales al producto \n		-- --------------------------------------------------------------------------------\n		((\n		SELECT \n		U1.ProductoID,\n		U1.ElementoID AS ProdCmpID,\n		U1.ComposicID,\n		U1.ElementoID,\n		U1.ElementoPM,\n		U2.Magnitud,\n		U1.ValorElemento,\n		U1.OffsetVanoAncho,\n		U1.OffsetVanoAlto,\n		U1.CoefVanoAncho,\n		U1.CoefVanoAlto,\n		(CASE (2)\n		  WHEN 0 THEN U3.PrecioProd00\n		  WHEN 1 THEN U3.PrecioProd01\n		  WHEN 2 THEN U3.PrecioProd02\n		  WHEN 3 THEN U3.PrecioProd03\n		END) AS PrecioProd\n		FROM\n		fzggestion.productos AS U2,\n		fzggestion.composicion AS U1,\n		fzggestion.precios AS U3\n		WHERE\n		U2.ProductoID = U1.ElementoID AND \n		U3.ProductoID = U2.ProductoID AND \n		U1.ProductoID = pVidQuoteProdID AND \n		U1.ElementoID = pVidQuoteProdID AND \n		U1.ElementoPM = 0)\n		-- --------------------------------------------------------------------------------\n		UNION\n		-- --------------------------------------------------------------------------------\n		-- Selecciona elementos de composicion diferentes al producto\n		-- --------------------------------------------------------------------------------\n		(\n		SELECT \n			T1.ProductoID,\n			T1.ElementoID AS ProdCmpID,\n			T1.ComposicID,\n			T2.ElementoID,\n			T1.ElementoPM,\n			T3.Magnitud,\n			T1.ValorElemento,        \n			T1.OffsetVanoAncho,\n			T1.OffsetVanoAlto,\n			T1.CoefVanoAncho,\n			T1.CoefVanoAlto,\n			(CASE (2)\n				WHEN 0 THEN `T4`.`PrecioProd00`\n				WHEN 1 THEN `T4`.`PrecioProd01`\n				WHEN 2 THEN `T4`.`PrecioProd02`\n				WHEN 3 THEN `T4`.`PrecioProd03`\n			END) AS PrecioProd\n		FROM\n			fzggestion.composicion AS T2,\n			fzggestion.composicion AS T1,\n			fzggestion.productos AS T3,\n			fzggestion.precios AS T4\n		WHERE\n			T2.ProductoID = T1.ElementoID AND \n			T3.ProductoID = T2.ElementoID AND \n			T4.ProductoID = T3.ProductoID AND \n			T1.ProductoID <> T1.ElementoID AND \n			T2.ElementoPM = 0 AND \n			T1.ProductoID = pVidQuoteProdID AND \n			T1.ElementoPM = 0\n		ORDER BY\n			T1.ProductoID ASC ,\n			T1.ElementoID ASC ,\n			T1.ComposicID ASC ,\n			T2.ElementoID ASC)\n		-- --------------------------------------------------------------------------------\n		-- R1 es el sinónimo de la union de las tablas \n		-- --------------------------------------------------------------------------------\n		) AS R1\n		GROUP BY\n			VidQuoteElementoID,\n			VidQuoteComposicID;\nEND\n</pre></small>\n\n== Bitácora ==\n*20120419\n**Cambio de esquema para colocar el cálculo de subitems.\n*20120917\n**Cambio de diseño [[FORM:Presupuesto]]\n<small><pre>\ndelimiter |\nCREATE PROCEDURE AltaItemPresupuesto (IN pVidQuoteID INT(5), IN pVidQuoteLPre INT(1), IN pVidQuoteItem INT(5), IN pVidQuoteProdID CHAR(8), IN pVidQuoteProdCantidad INT(5), IN pVidQuoteAncho INT(5), IN pVidQuoteAlto INT(5)) \nBEGIN\n	INSERT INTO vidquoten3 (\n		VidQuoteID,\n		VidQuoteLPre,\n		VidQuoteItem,\n		VidQuoteProdID,\n		VidQuoteProdCantidad,\n		VidQuoteAncho,\n		VidQuoteAlto,\n		VidQuoteElementoID,\n		VidQuotePrecio,\n		VidQuotePrecioP)\n	SELECT\n		pVidQuoteID,\n		pVidQuoteLPre,\n		pVidQuoteItem,\n		pVidQuoteProdID,\n		pVidQuoteProdCantidad,\n		pVidQuoteAncho,\n		pVidQuoteAlto,\n		`T3`.`ProdCmpID`,\n		SUM(CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`T3`.`PrecioProd`,\n			`T3`.`Magnitud`,\n			`T3`.`OffsetVanoAlto`,\n			`T3`.`OffsetVanoAncho`,\n			`T3`.`CoefVanoAlto`,\n			`T3`.`CoefVanoAncho`,\n			`T3`.`ValorElemento`)) AS pVidQuotePrecio,\n		SUM(CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`T3`.`PrecioProd`,\n			`T3`.`Magnitud`,\n			`T3`.`OffsetVanoAlto`,\n			`T3`.`OffsetVanoAncho`,\n			`T3`.`CoefVanoAlto`,\n			`T3`.`CoefVanoAncho`,\n			`T3`.`ValorElemento`) * pVidQuoteProdCantidad) AS pVidQuotePrecioP\n	FROM\n		(\n		SELECT\n		`T1`.`ProductoID` AS ProductoID,\n		`T1`.`ProductoID` AS ProdCmpID,\n		`T1`.`ElementoID`,\n		`T1`.`ValorElemento`,\n		`T1`.`Descripcion`,\n		`T1`.`Magnitud`,\n		`T1`.`OffsetVanoAncho`,\n		`T1`.`OffsetVanoAlto`,\n		`T1`.`CoefVanoAncho`,\n		`T1`.`CoefVanoAlto`,\n		(CASE (pVidQuoteLPre)\n		 WHEN 0 THEN `T1`.`PrecioProd00`\n		 WHEN 1 THEN `T1`.`PrecioProd01`\n		 WHEN 2 THEN `T1`.`PrecioProd02`\n		 WHEN 3 THEN `T1`.`PrecioProd03`\n		END) AS PrecioProd\n		FROM visprodadic AS T1\n		WHERE ProductoID=pVidQuoteProdID AND ElementoID=pVidQuoteProdID AND ElementoPM=1\n		UNION\n		SELECT \n		pVidQuoteProdID AS ProductoID,\n		`T2`.`ProductoID` AS ProdCmpID,\n		`T2`.`ElementoID`,\n		`T2`.`ValorElemento`,\n		`T2`.`Descripcion`,\n		`T2`.`Magnitud`,\n		`T2`.`OffsetVanoAncho`,\n		`T2`.`OffsetVanoAlto`,\n		`T2`.`CoefVanoAncho`,\n		`T2`.`CoefVanoAlto`,\n		(CASE (pVidQuoteLPre)\n		 WHEN 0 THEN `T2`.`PrecioProd00`\n		 WHEN 1 THEN `T2`.`PrecioProd01`\n		 WHEN 2 THEN `T2`.`PrecioProd02`\n		 WHEN 3 THEN `T2`.`PrecioProd03`\n		END) AS PrecioProd\n		FROM visprodadic AS T2\n		WHERE ProductoID IN \n			 (SELECT ElementoID \n			  FROM visprodadic \n			  WHERE ProductoID=pVidQuoteProdID AND ElementoID<>pVidQuoteProdID AND ElementoPM=1\n		 )\n		) AS T3\n	GROUP BY ProdCmpID;\nEND;|		\n</pre></small>\n*20121208\n**Se detecta errores en el cálculo combinado por la falta de propagación de atributos de componentes con niveles adicionales de composición (DVH, etc). Anterior:\n\n== Uso ==\n*[[MACRO:EventoBRCDetallePresupuesto]]\n== URL ==\nFZG.Procedure.AltaItemPresupuesto.sql','utf-8'),(921,'== Descripcion ==\n<strike>Una vez que ingresa los datos básicos de un producto, verifica que este producto tenga alguna composicion (solo los elementos básicos). Si la tiene, divide el proceso en 2 partes\n#Une 2 grupos de datos dentro del mismo subconjunto\n##Todos los productos-elementos de la [[VISTA:visprodadic]] cuyo codigo de producto sea igual al código de producto madre y que sea \"propiamente dichos\" (cuyo código de producto sea igual al código de elemento)\n##Todos los productos-elementos de la [[VISTA:visprodadic]] cuyo codigo de producto sea igual al código de producto madre y el código de producto sea diferente al codigo de elemento.\n###Incluye todos los productos-elementos de un nivel inferior. Esto se realiza seleccionando los elementos de la composicion como si fuesen productos y esos productos son la clave de búsqueda dentro de la misma tabla de composición.</strike> \'\'\'20120917\'\'\'\nUna vez que ingresa los datos básicos de un producto, inserta en [[TABLA:vidquoten3]] los componentes del producto señalado (solo los elementos básicos). Divide el proceso en 2 partes\n#Une 2 grupos de datos dentro del mismo subconjunto\n##Todos los productos-elementos de [[TABLA:componentes]], [[TABLA:productos]] y [[TABLA:precios]] cuyo codigo de producto sea igual al código de producto madre y que sea \"propiamente dichos\" (cuyo código de producto sea igual al código de elemento)\n##Todos los productos-elementos de de [[TABLA:componentes]], [[TABLA:productos]] y [[TABLA:precios]] cuyo codigo de producto sea igual al código de producto madre y el código de producto sea diferente al codigo de elemento.\n###Incluye todos los productos-elementos de un nivel inferior. Esto se realiza seleccionando los elementos de la composicion como si fuesen productos y esos productos son la clave de búsqueda dentro de la misma tabla de composición.\n== Composicion ==\n*<strike>[[VISTA:visproadic]]-></strike>\n*[[TABLA:productos]]->\n*[[TABLA:precios]]->\n*[[TABLA:componentes]]->\n*->[[TABLA:vidquoten3]]\n== SQL ==\n<small><pre>\nDROP PROCEDURE `AltaItemPresupuesto`;\ndelimiter $$\n\nCREATE DEFINER=`sas_admin`@`%` PROCEDURE `AltaItemPresupuesto`(\n	IN pVidQuoteID INT(5), \n	IN pVidQuoteLPre INT(1), \n	IN pVidQuoteItem INT(5), \n	IN pVidQuoteProdID CHAR(8), \n	IN pVidQuoteProdCantidad INT(5), \n	IN pVidQuoteAncho INT(5), \n	IN pVidQuoteAlto INT(5), \n	IN pCoeficienteMU DECIMAL(5,2))\nBEGIN\n	-- --------------------------------------------------------------------------------\n	-- Inserta Registraciones pausibles de incorporar de acuerdo al tipo de \n	-- --------------------------------------------------------------------------------\n    CALL DebugCheckPoint(\n        CONCAT(\n            CAST(pVidQuoteID AS CHAR),\"-\",\n            CAST(pVidQuoteLPre AS CHAR),\"-\",\n            CAST(pVidQuoteItem AS CHAR),\"-\",\n            pVidQuoteProdID,\"-\",\n            CAST(pVidQuoteProdCantidad AS CHAR),\"-\",\n            CAST(pVidQuoteAncho AS CHAR),\"-\",\n            CAST(pVidQuoteAlto AS CHAR),\"-\",\n            CAST(pCoeficienteMU AS CHAR)\n            )\n        );\n	INSERT INTO vidquoten3 (\n		VidQuoteID,\n		VidQuoteItem,\n		VidQuoteProdID,\n		VidQuoteProdCantidad,\n		VidQuoteElementoID,\n		VidQuoteComposicID,\n		VidQuoteElementoPM,\n		VidQuotePrecio,\n		VidQuotePrecioP)\n	SELECT\n		pVidQuoteID as VidQuoteID,\n		pVidQuoteItem as VidQuoteItem,\n		R1.ProductoID AS VidQuoteProdID,\n		pVidQuoteProdCantidad AS VidQuoteProdCantidad,\n		R1.ProdCmpID AS VidQuoteElementoID,\n		R1.ComposicID AS VidQuoteComposicID,\n		R1.ElementoPM AS VidQuoteElementoPM,\n		SUM(\n			CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`R1`.`PrecioProd`,\n			`R1`.`Magnitud`,\n			`R1`.`OffsetVanoAlto`,\n			`R1`.`OffsetVanoAncho`,\n			`R1`.`CoefVanoAlto`,\n			`R1`.`CoefVanoAncho`,\n			`R1`.`ValorElemento`) * pCoeficienteMU) AS VidQuotePrecio,\n		SUM(\n			CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`R1`.`PrecioProd`,\n			`R1`.`Magnitud`,\n			`R1`.`OffsetVanoAlto`,\n			`R1`.`OffsetVanoAncho`,\n			`R1`.`CoefVanoAlto`,\n			`R1`.`CoefVanoAncho`,\n			`R1`.`ValorElemento`) * pVidQuoteProdCantidad * pCoeficienteMU) AS VidQuotePrecioP\n\n	FROM\n		-- --------------------------------------------------------------------------------\n		-- Selecciona elementos de composicion iguales al producto \n		-- --------------------------------------------------------------------------------\n		((\n		SELECT \n			U1.ProductoID,\n			U1.ElementoID AS ProdCmpID,\n			U1.ComposicID,\n			U1.ElementoID,\n			U1.ElementoPM,\n			U2.Magnitud,\n			U1.ValorElemento,\n			U1.OffsetVanoAncho,\n			U1.OffsetVanoAlto,\n			U1.CoefVanoAncho,\n			U1.CoefVanoAlto,\n			(CASE (pVidQuoteLPre)\n				WHEN 0 THEN U3.PrecioProd00\n				WHEN 1 THEN U3.PrecioProd01\n				WHEN 2 THEN U3.PrecioProd02\n				WHEN 3 THEN U3.PrecioProd03\n			END) AS PrecioProd\n		FROM\n			fzggestion.productos AS U2,\n			fzggestion.composicion AS U1,\n			fzggestion.precios AS U3\n		WHERE\n			U2.ProductoID = U1.ElementoID AND \n			U3.ProductoID = U2.ProductoID AND \n			U1.ProductoID = pVidQuoteProdID AND \n			U1.ElementoID = pVidQuoteProdID AND \n			U1.ElementoPM = 0)\n		-- --------------------------------------------------------------------------------\n		UNION\n		-- --------------------------------------------------------------------------------\n		-- Selecciona elementos de composicion diferentes al producto\n		-- --------------------------------------------------------------------------------\n		(\n		SELECT \n			T1.ProductoID,\n			T1.ElementoID AS ProdCmpID,\n			T1.ComposicID,\n			T2.ElementoID,\n			T1.ElementoPM,\n			T3.Magnitud,\n			T1.ValorElemento * T2.ValorElemento AS ValorElemento,        \n			T1.OffsetVanoAncho + T2.OffsetVanoAncho AS OffsetVanoAncho,\n			T1.OffsetVanoAlto + T2.OffsetVanoAlto AS OffsetVanoAlto,\n			T1.CoefVanoAncho * T2.CoefVanoAncho AS CoefVanoAncho,\n			T1.CoefVanoAlto * T2.CoefVanoAlto AS CoefVanoAlto,\n			(CASE (pVidQuoteLPre)\n				WHEN 0 THEN `T4`.`PrecioProd00`\n				WHEN 1 THEN `T4`.`PrecioProd01`\n				WHEN 2 THEN `T4`.`PrecioProd02`\n				WHEN 3 THEN `T4`.`PrecioProd03`\n			END) AS PrecioProd\n		FROM\n			fzggestion.composicion AS T2,\n			fzggestion.composicion AS T1,\n			fzggestion.productos AS T3,\n			fzggestion.precios AS T4\n		WHERE\n			T2.ProductoID = T1.ElementoID AND \n			T3.ProductoID = T2.ElementoID AND \n			T4.ProductoID = T3.ProductoID AND \n			T1.ProductoID <> T1.ElementoID AND \n			T2.ElementoPM = 0 AND \n			T1.ProductoID = pVidQuoteProdID AND \n			T1.ElementoPM = 0\n		ORDER BY\n			T1.ProductoID ASC ,\n			T1.ElementoID ASC ,\n			T1.ComposicID ASC ,\n			T2.ElementoID ASC)\n		-- --------------------------------------------------------------------------------\n		-- R1 es el sinónimo de la union de las tablas \n		-- --------------------------------------------------------------------------------\n		) AS R1\n		GROUP BY\n			VidQuoteElementoID,\n			VidQuoteComposicID;\nEND$$\n</pre></small>\n== Bitácora ==\n*20120419\n**Cambio de esquema para colocar el cálculo de subitems.\n*20120917\n**Cambio de diseño [[FORM:Presupuesto]]\n<small><pre>\ndelimiter |\nCREATE PROCEDURE AltaItemPresupuesto (IN pVidQuoteID INT(5), IN pVidQuoteLPre INT(1), IN pVidQuoteItem INT(5), IN pVidQuoteProdID CHAR(8), IN pVidQuoteProdCantidad INT(5), IN pVidQuoteAncho INT(5), IN pVidQuoteAlto INT(5)) \nBEGIN\n	INSERT INTO vidquoten3 (\n		VidQuoteID,\n		VidQuoteLPre,\n		VidQuoteItem,\n		VidQuoteProdID,\n		VidQuoteProdCantidad,\n		VidQuoteAncho,\n		VidQuoteAlto,\n		VidQuoteElementoID,\n		VidQuotePrecio,\n		VidQuotePrecioP)\n	SELECT\n		pVidQuoteID,\n		pVidQuoteLPre,\n		pVidQuoteItem,\n		pVidQuoteProdID,\n		pVidQuoteProdCantidad,\n		pVidQuoteAncho,\n		pVidQuoteAlto,\n		`T3`.`ProdCmpID`,\n		SUM(CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`T3`.`PrecioProd`,\n			`T3`.`Magnitud`,\n			`T3`.`OffsetVanoAlto`,\n			`T3`.`OffsetVanoAncho`,\n			`T3`.`CoefVanoAlto`,\n			`T3`.`CoefVanoAncho`,\n			`T3`.`ValorElemento`)) AS pVidQuotePrecio,\n		SUM(CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`T3`.`PrecioProd`,\n			`T3`.`Magnitud`,\n			`T3`.`OffsetVanoAlto`,\n			`T3`.`OffsetVanoAncho`,\n			`T3`.`CoefVanoAlto`,\n			`T3`.`CoefVanoAncho`,\n			`T3`.`ValorElemento`) * pVidQuoteProdCantidad) AS pVidQuotePrecioP\n	FROM\n		(\n		SELECT\n		`T1`.`ProductoID` AS ProductoID,\n		`T1`.`ProductoID` AS ProdCmpID,\n		`T1`.`ElementoID`,\n		`T1`.`ValorElemento`,\n		`T1`.`Descripcion`,\n		`T1`.`Magnitud`,\n		`T1`.`OffsetVanoAncho`,\n		`T1`.`OffsetVanoAlto`,\n		`T1`.`CoefVanoAncho`,\n		`T1`.`CoefVanoAlto`,\n		(CASE (pVidQuoteLPre)\n		 WHEN 0 THEN `T1`.`PrecioProd00`\n		 WHEN 1 THEN `T1`.`PrecioProd01`\n		 WHEN 2 THEN `T1`.`PrecioProd02`\n		 WHEN 3 THEN `T1`.`PrecioProd03`\n		END) AS PrecioProd\n		FROM visprodadic AS T1\n		WHERE ProductoID=pVidQuoteProdID AND ElementoID=pVidQuoteProdID AND ElementoPM=1\n		UNION\n		SELECT \n		pVidQuoteProdID AS ProductoID,\n		`T2`.`ProductoID` AS ProdCmpID,\n		`T2`.`ElementoID`,\n		`T2`.`ValorElemento`,\n		`T2`.`Descripcion`,\n		`T2`.`Magnitud`,\n		`T2`.`OffsetVanoAncho`,\n		`T2`.`OffsetVanoAlto`,\n		`T2`.`CoefVanoAncho`,\n		`T2`.`CoefVanoAlto`,\n		(CASE (pVidQuoteLPre)\n		 WHEN 0 THEN `T2`.`PrecioProd00`\n		 WHEN 1 THEN `T2`.`PrecioProd01`\n		 WHEN 2 THEN `T2`.`PrecioProd02`\n		 WHEN 3 THEN `T2`.`PrecioProd03`\n		END) AS PrecioProd\n		FROM visprodadic AS T2\n		WHERE ProductoID IN \n			 (SELECT ElementoID \n			  FROM visprodadic \n			  WHERE ProductoID=pVidQuoteProdID AND ElementoID<>pVidQuoteProdID AND ElementoPM=1\n		 )\n		) AS T3\n	GROUP BY ProdCmpID;\nEND;|		\n</pre></small>\n*20121208\n**Se detecta errores en el cálculo combinado por la falta de propagación de atributos de componentes con niveles adicionales de composición (DVH, etc). Anterior:\n<small><pre>\n-- --------------------------------------------------------------------------------\n-- Routine DDL\n-- Note: comments before and after the routine body will not be stored by the server\n-- --------------------------------------------------------------------------------\nDELIMITER $$\n\nCREATE DEFINER=`sas_admin`@`%` PROCEDURE `AltaItemPresupuesto`(\n	IN pVidQuoteID INT(5), \n	IN pVidQuoteLPre INT(1), \n	IN pVidQuoteItem INT(5), \n	IN pVidQuoteProdID CHAR(8), \n	IN pVidQuoteProdCantidad INT(5), \n	IN pVidQuoteAncho INT(5), \n	IN pVidQuoteAlto INT(5), \n	IN pCoeficienteMU DECIMAL(5,2))\nBEGIN\n	-- --------------------------------------------------------------------------------\n	-- Inserta Registraciones pausibles de incorporar de acuerdo al tipo de \n	-- --------------------------------------------------------------------------------\n	INSERT INTO vidquoten3 (\n		VidQuoteID,\n		VidQuoteItem,\n		VidQuoteProdID,\n		VidQuoteProdCantidad,\n		VidQuoteElementoID,\n		VidQuoteComposicID,\n      VidQuoteElementoPM,\n		VidQuotePrecio,\n		VidQuotePrecioP)\n	SELECT\n		pVidQuoteID as VidQuoteID,\n		pVidQuoteItem as VidQuoteItem,\n		R1.ProductoID AS VidQuoteProdID,\n		pVidQuoteProdCantidad AS VidQuoteProdCantidad,\n		R1.ProdCmpID AS VidQuoteElementoID,\n		R1.ComposicID AS VidQuoteComposicID,\n      R1.ElementoPM AS VidQuoteElementoPM,\n		SUM(\n          CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`R1`.`PrecioProd`,\n			`R1`.`Magnitud`,\n			`R1`.`OffsetVanoAlto`,\n			`R1`.`OffsetVanoAncho`,\n			`R1`.`CoefVanoAlto`,\n			`R1`.`CoefVanoAncho`,\n			`R1`.`ValorElemento`) * pCoeficienteMU) AS VidQuotePrecio,\n		SUM(\n         CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`R1`.`PrecioProd`,\n			`R1`.`Magnitud`,\n			`R1`.`OffsetVanoAlto`,\n			`R1`.`OffsetVanoAncho`,\n			`R1`.`CoefVanoAlto`,\n			`R1`.`CoefVanoAncho`,\n			`R1`.`ValorElemento`) * pVidQuoteProdCantidad * pCoeficienteMU) AS VidQuotePrecioP\n\n	FROM\n		-- --------------------------------------------------------------------------------\n		-- Selecciona elementos de composicion iguales al producto \n		-- --------------------------------------------------------------------------------\n		((\n		SELECT \n		U1.ProductoID,\n		U1.ElementoID AS ProdCmpID,\n		U1.ComposicID,\n		U1.ElementoID,\n		U1.ElementoPM,\n		U2.Magnitud,\n		U1.ValorElemento,\n		U1.OffsetVanoAncho,\n		U1.OffsetVanoAlto,\n		U1.CoefVanoAncho,\n		U1.CoefVanoAlto,\n		(CASE (2)\n		  WHEN 0 THEN U3.PrecioProd00\n		  WHEN 1 THEN U3.PrecioProd01\n		  WHEN 2 THEN U3.PrecioProd02\n		  WHEN 3 THEN U3.PrecioProd03\n		END) AS PrecioProd\n		FROM\n		fzggestion.productos AS U2,\n		fzggestion.composicion AS U1,\n		fzggestion.precios AS U3\n		WHERE\n		U2.ProductoID = U1.ElementoID AND \n		U3.ProductoID = U2.ProductoID AND \n		U1.ProductoID = pVidQuoteProdID AND \n		U1.ElementoID = pVidQuoteProdID AND \n		U1.ElementoPM = 0)\n		-- --------------------------------------------------------------------------------\n		UNION\n		-- --------------------------------------------------------------------------------\n		-- Selecciona elementos de composicion diferentes al producto\n		-- --------------------------------------------------------------------------------\n		(\n		SELECT \n			T1.ProductoID,\n			T1.ElementoID AS ProdCmpID,\n			T1.ComposicID,\n			T2.ElementoID,\n			T1.ElementoPM,\n			T3.Magnitud,\n			T1.ValorElemento,        \n			T1.OffsetVanoAncho,\n			T1.OffsetVanoAlto,\n			T1.CoefVanoAncho,\n			T1.CoefVanoAlto,\n			(CASE (2)\n				WHEN 0 THEN `T4`.`PrecioProd00`\n				WHEN 1 THEN `T4`.`PrecioProd01`\n				WHEN 2 THEN `T4`.`PrecioProd02`\n				WHEN 3 THEN `T4`.`PrecioProd03`\n			END) AS PrecioProd\n		FROM\n			fzggestion.composicion AS T2,\n			fzggestion.composicion AS T1,\n			fzggestion.productos AS T3,\n			fzggestion.precios AS T4\n		WHERE\n			T2.ProductoID = T1.ElementoID AND \n			T3.ProductoID = T2.ElementoID AND \n			T4.ProductoID = T3.ProductoID AND \n			T1.ProductoID <> T1.ElementoID AND \n			T2.ElementoPM = 0 AND \n			T1.ProductoID = pVidQuoteProdID AND \n			T1.ElementoPM = 0\n		ORDER BY\n			T1.ProductoID ASC ,\n			T1.ElementoID ASC ,\n			T1.ComposicID ASC ,\n			T2.ElementoID ASC)\n		-- --------------------------------------------------------------------------------\n		-- R1 es el sinónimo de la union de las tablas \n		-- --------------------------------------------------------------------------------\n		) AS R1\n		GROUP BY\n			VidQuoteElementoID,\n			VidQuoteComposicID;\nEND\n</pre></small>\n== Uso ==\n*[[MACRO:EventoBRCDetallePresupuesto]]\n== URL ==\nFZG.Procedure.AltaItemPresupuesto.sql','utf-8'),(922,'[[Category:TKTOut]]\n====Data TKT====\n*\'\'\'Usuario:\'\'\' Lucas\n*\'\'\'Fecha:\'\'\' 20121206.1700\n*\'\'\'Soporte:\'\'\' SAS\n=====Incidente=====\n*Al tiempo de ejecutar un presupuesto, en apariencia, cuando se define restricciones en el offset de un elemento anidado dentro de la composición el calculo del mismo, hecho en forma directa con el offset restado del valor original no da lo mismo.\nProducto:VANO0002 con DVH 4+9+4 Incoloro versus el mismo DVH 4+9+4 como producto solo para las dimensiones 400x1650 y 350x1600\n=====WorkAround=====\n=====Resolución=====\n*Se detecta que no se propagan las características de los elementos componentes con niveles de composición adicional.\n*Se hizo tarea de cosmética sobre [[PROC:CalculoPrecio]]\n*Se modificaron los [[PROC:AltaItemPresupuesto]] y [[PROC:AltaItemPresupuestoTmp]] debido a que no se propagaba las características indicadas en los elementos que tenían un nivel adicional de composición. Se procedió a:\n**Multiplicar los coeficientes\n**Sumar los Offset\n=====Estado=====\n*Finalizado. 20121207.1930\n\n=====Observaciones=====\n*20121208.0014\n**Falta impactar las modificaciones en la base operativa.','utf-8'),(923,'== Descripción ==\nEl procedimiento está en función de la edición de los elementos de un producto compuesto durante la confección de un presupuesto.\nAgrega a la [[TABLA:vidquoten3tmp]] las registraciones correspondientes al producto a editar. Las características del proceso son las siguientes:\n*Selecciona registros de la [[TABLA:composicion]] que corresponde al producto seleccionado y agrega aquellos registros que no existan en la selececión original (Alta de producto)\n**Selecciona los registros de la [[TABLA:composicion]] cuyo elemento es igual al producto (producto propiamente dicho). Este punto se explicita para que no entre en loop\n**Selecciona los registros de la [[TABLA:composicion]] cuyos elementos son diferentes al producto (adicionales Básicos, Simple y Completo).\n***Dado que permite un grado de profundidad adicional, toma tanto los registros componentes sino también todos aquellos que están referenciados como elemento componente.\n***Establece una relación con las [[TABLA:productos]] y [[TABLA:precios]].\n***Establece una relación anidada con la misma [[TABLA:composicion]] para tomar todos los elementos como si fuesen productos y así tener en cuenta la definición en aquellos que tengan más de un componente y poder calcular el precio de acuerdo a los parámetros definidos\n**Agrega los datos resultantes a la [[TABLA:vidquoten3tmp]] previo borrado de los datos anteriores dentro de la tabla temporal para mantener la integridad de la operación para proceder a la edición. No se deben agregar aquellos registros ya existentes en la [[TABLA:vidquoten3]]\n\n== Composición ==\n* [[TABLA:composicion]]\n* [[TABLA:productos]]\n* [[TABLA:precios]]\n* [[TABLA:vidquoten3]]\n* [[TABLA:vidquoten3tmp]]\n\n== Código ==\n<small><pre>\nDROP PROCEDURE `AltaItemPresupuestoTmp`;\ndelimiter $$\n\nCREATE DEFINER=`sas_admin`@`%` PROCEDURE `AltaItemPresupuestoTmp`(\n	IN pVidQuoteID INT(5), \n	IN pVidQuoteLPre INT(1), \n	IN pVidQuoteItem INT(5), \n	IN pVidQuoteProdID CHAR(8), \n	IN pVidQuoteProdCantidad INT(5), \n	IN pVidQuoteAncho INT(5), \n	IN pVidQuoteAlto INT(5), \n	IN pCoeficienteMU DECIMAL(5,2),\n	IN pQuickSelect INT(1))\nBEGIN\n	-- --------------------------------------------------------------------------------\n	-- Inserta Registro de Auditoria\n	-- --------------------------------------------------------------------------------\n--     INSERT INTO debugstmt (Fecha,Hora,Texto) \n-- 		VALUES (\n-- 			CURDATE(),\n-- 			CURTIME(),\n-- 			CONCAT(\n-- 				CAST(pVidQuoteID AS CHAR),\"-\",\n-- 				CAST(pVidQuoteLPre AS CHAR),\"-\",\n-- 				CAST(pVidQuoteItem AS CHAR),\"-\",\n-- 				pVidQuoteProdID,\"-\",\n-- 				CAST(pVidQuoteProdCantidad AS CHAR),\"-\",\n-- 				CAST(pVidQuoteAncho AS CHAR),\"-\",\n-- 				CAST(pVidQuoteAlto AS CHAR)\n-- 				)\n-- 			);\n	-- --------------------------------------------------------------------------------\n	-- Elimina residuos de ediciones anteriores\n	-- --------------------------------------------------------------------------------\n--     CALL DebugCheckPoint(\n--         CONCAT(\n--         \"Prev - \",\n--         \"pVidQuoteID:\",\n--         CAST(pVidQuoteID AS CHAR),\"-\",\n--         \"pVidQuoteItem:\",\n--         CAST(pVidQuoteItem AS CHAR),\"-\",\n--         \"Delete Count:\",\n--         (SELECT CAST(Count(*) AS CHAR) \n--             FROM vidquoten3tmp \n--             WHERE\n--                 VidQuoteID=pVidQuoteID AND \n--                 VidQuoteItem=pVidQuoteItem)\n--         ));\n    DELETE FROM vidquoten3tmp WHERE VidQuoteID=pVidQuoteID AND VidQuoteItem=pVidQuoteItem;\n--     CALL DebugCheckPoint(\n--         CONCAT(\n--         \"Past - \",\n--         \"pVidQuoteID:\",\n--         CAST(pVidQuoteID AS CHAR),\"-\",\n--         \"pVidQuoteItem:\",\n--         CAST(pVidQuoteItem AS CHAR),\"-\",\n--         \"Delete Count:\",\n--         (SELECT CAST(Count(*) AS CHAR) \n--             FROM vidquoten3tmp \n--             WHERE\n--                 VidQuoteID=pVidQuoteID AND \n--                 VidQuoteItem=pVidQuoteItem)\n--         ));\n	-- --------------------------------------------------------------------------------\n	-- Inserta Registraciones anteriores del mismo Producto/Item\n	-- --------------------------------------------------------------------------------\n	INSERT INTO vidquoten3tmp (\n		VidQuoteID,\n		VidQuoteItem,\n		VidQuoteProdID,\n		VidQuoteProdCantidad,\n		VidQuoteElementoID,\n		VidQuoteComposicID,\n		VidQuoteElementoPM,\n		VidQuotePrecio,\n		VidQuotePrecioP,\n		VidQuoteIncluyeDet,\n		VidQuoteQuickSelect)\n	SELECT\n		S1.VidQuoteID,\n		S1.VidQuoteItem,\n		S1.VidQuoteProdID,\n		S1.VidQuoteProdCantidad,\n		S1.VidQuoteElementoID,\n		S1.VidQuoteComposicID,\n		S1.VidQuoteElementoPM,\n		S1.VidQuotePrecio,\n		S1.VidQuotePrecioP,\n		S1.VidQuoteIncluyeDet,\n		1 AS VidQuoteQuickSelect\n	FROM\n		vidquoten3 AS S1\n	WHERE\n		S1.VidQuoteID=pVidQuoteID AND \n		S1.VidQuoteItem=pVidQuoteItem;\n    CALL DebugCheckPoint(\"Past Inserta Registros VQ3 anteriores\");\n	-- --------------------------------------------------------------------------------\n	-- Inserta Registraciones pausibles de incorporar de acuerdo al tipo de \n	-- --------------------------------------------------------------------------------\n	INSERT INTO vidquoten3tmp (\n		VidQuoteID,\n		VidQuoteItem,\n		VidQuoteProdID,\n		VidQuoteProdCantidad,\n		VidQuoteElementoID,\n		VidQuoteComposicID,\n		VidQuoteElementoPM,\n		VidQuotePrecio,\n		VidQuotePrecioP)\n	SELECT\n		pVidQuoteID as VidQuoteID,\n		pVidQuoteItem as VidQuoteItem,\n		R1.ProductoID AS VidQuoteProdID,\n		pVidQuoteProdCantidad AS VidQuoteProdCantidad,\n		R1.ProdCmpID AS VidQuoteElementoID,\n		R1.ComposicID AS VidQuoteComposicID,\n		R1.ElementoPM AS VidQuoteElementoPM,\n		SUM(\n          CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`R1`.`PrecioProd`,\n			`R1`.`Magnitud`,\n			`R1`.`OffsetVanoAlto`,\n			`R1`.`OffsetVanoAncho`,\n			`R1`.`CoefVanoAlto`,\n			`R1`.`CoefVanoAncho`,\n			`R1`.`ValorElemento`) * pCoeficienteMU) AS VidQuotePrecio,\n		SUM(\n          CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`R1`.`PrecioProd`,\n			`R1`.`Magnitud`,\n			`R1`.`OffsetVanoAlto`,\n			`R1`.`OffsetVanoAncho`,\n			`R1`.`CoefVanoAlto`,\n			`R1`.`CoefVanoAncho`,\n			`R1`.`ValorElemento`) * pVidQuoteProdCantidad * pCoeficienteMU) AS VidQuotePrecioP\n\n	FROM\n		-- --------------------------------------------------------------------------------\n		-- Selecciona elementos de composicion iguales al producto \n		-- --------------------------------------------------------------------------------\n		((\n		SELECT \n			U1.ProductoID,\n			U1.ElementoID AS ProdCmpID,\n			U1.ComposicID,\n			U1.ElementoID,\n			U1.ElementoPM,\n			U2.Magnitud,\n			U1.ValorElemento,\n			U1.OffsetVanoAncho,\n			U1.OffsetVanoAlto,\n			U1.CoefVanoAncho,\n			U1.CoefVanoAlto,\n			(CASE (pVidQuoteLPre)\n				WHEN 0 THEN U3.PrecioProd00\n				WHEN 1 THEN U3.PrecioProd01\n				WHEN 2 THEN U3.PrecioProd02\n				WHEN 3 THEN U3.PrecioProd03\n			END) AS PrecioProd\n		FROM\n			fzggestion.productos AS U2,\n			fzggestion.composicion AS U1,\n			fzggestion.precios AS U3\n		WHERE\n			U2.ProductoID = U1.ElementoID AND \n			U3.ProductoID = U2.ProductoID AND \n			U1.ProductoID = pVidQuoteProdID AND \n			U1.ElementoID = pVidQuoteProdID AND \n			U1.ElementoPM <= pQuickSelect)\n		-- --------------------------------------------------------------------------------\n		UNION\n		-- --------------------------------------------------------------------------------\n		-- Selecciona elementos de composicion diferentes al producto\n		-- --------------------------------------------------------------------------------\n		(\n		SELECT \n			T1.ProductoID,\n			T1.ElementoID AS ProdCmpID,\n			T1.ComposicID,\n			T2.ElementoID,\n			T1.ElementoPM,\n-- 			T2.ElementoPM,\n			T3.Magnitud,\n			T1.ValorElemento * T2.ValorElemento AS ValorElemento,        \n			T1.OffsetVanoAncho + T2.OffsetVanoAncho AS OffsetVanoAncho,\n			T1.OffsetVanoAlto + T2.OffsetVanoAlto AS OffsetVanoAlto,\n			T1.CoefVanoAncho * T2.CoefVanoAncho AS CoefVanoAncho,\n			T1.CoefVanoAlto * T2.CoefVanoAlto AS CoefVanoAlto,\n			(CASE (pVidQuoteLPre)\n				WHEN 0 THEN `T4`.`PrecioProd00`\n				WHEN 1 THEN `T4`.`PrecioProd01`\n				WHEN 2 THEN `T4`.`PrecioProd02`\n				WHEN 3 THEN `T4`.`PrecioProd03`\n			END) AS PrecioProd\n		FROM\n			fzggestion.composicion AS T2,\n			fzggestion.composicion AS T1,\n			fzggestion.productos AS T3,\n			fzggestion.precios AS T4\n		WHERE\n			T2.ProductoID = T1.ElementoID AND \n			T3.ProductoID = T2.ElementoID AND \n			T4.ProductoID = T3.ProductoID AND \n			T1.ProductoID <> T1.ElementoID AND \n			T2.ElementoPM <= pQuickSelect AND \n			T1.ProductoID = pVidQuoteProdID AND \n			T1.ElementoPM <= pQuickSelect\n		ORDER BY\n			T1.ProductoID ASC ,\n			T1.ElementoID ASC ,\n			T1.ComposicID ASC ,\n			T2.ElementoID ASC)\n		-- --------------------------------------------------------------------------------\n		-- R1 es el sinónimo de la union de las tablas \n		-- --------------------------------------------------------------------------------\n		) AS R1\n      WHERE\n			CONCAT(R1.ProductoID,R1.ProdCmpID,LPAD(CAST(R1.ComposicID AS CHAR),3,\'000\'))\n      	NOT IN (\n				SELECT\n					CONCAT(VidQuoteProdID,VidQuoteElementoID,LPAD(CAST(VidQuoteComposicID AS CHAR),3,\'000\'))\n				FROM\n					vidquoten3tmp AS Q1 \n				WHERE \n					Q1.VidQuoteID=pVidQuoteID AND \n					Q1.VidQuoteItem=pVidQuoteItem)\n		GROUP BY\n			VidQuoteElementoID,\n			VidQuoteComposicID;\n    -- --------------------------------------------------------------------------------\n    -- Joint Para completar info de ElementoPM\n    -- --------------------------------------------------------------------------------\n    UPDATE\n        vidquoten3tmp AS T1,\n        composicion AS T2\n    SET\n        T1.VidQuoteElementoPM = T2.ElementoPM\n    WHERE\n        T1.VidQuoteID=pVidQuoteID AND\n        ISNULL(T1.VidQuoteElementoPM) AND\n        T1.VidQuoteProdID=T2.ProductoID AND\n        T1.VidQuoteElementoID=T2.ElementoID AND\n        T1.VidQuoteComposicID=T2.ComposicID;\nEND$$\n</pre><small>\n== Bitácora ==\n*20120904\n**Código Anterior\n<small><pre>\nDELIMITER $$\n\nCREATE DEFINER=`sas_admin`@`%` PROCEDURE `AltaItemPresupuestoTmp`(IN pVidQuoteID INT(5), IN pVidQuoteLPre INT(1), IN pVidQuoteItem INT(5), IN pVidQuoteProdID CHAR(8), IN pVidQuoteProdCantidad INT(5), IN pVidQuoteAncho INT(5), IN pVidQuoteAlto INT(5))\nBEGIN\n    INSERT INTO debugstmt (Fecha,Hora,Texto) VALUES (CURDATE(),CURTIME(),CONCAT(CAST(pVidQuoteID AS CHAR),\"-\",CAST(pVidQuoteLPre AS CHAR),\"-\",CAST(pVidQuoteItem AS CHAR),\"-\",pVidQuoteProdID,\"-\",CAST(pVidQuoteProdCantidad AS CHAR),\"-\",CAST(pVidQuoteAncho AS CHAR),\"-\",CAST(pVidQuoteAlto AS CHAR)));\n    DELETE FROM vidquoten3tmp WHERE VidQuoteID=pVidQuoteID AND VidQuoteItem=pVidQuoteItem;\n    INSERT INTO vidquoten3tmp (\n		VidQuoteID,\n		VidQuoteItem,\n		VidQuoteProdID,\n		VidQuoteProdCantidad,\n		VidQuoteElementoID,\n		VidQuotePrecio,\n		VidQuotePrecioP)\n	SELECT\n		pVidQuoteID,\n		pVidQuoteItem,\n		pVidQuoteProdID,\n		pVidQuoteProdCantidad,\n		`T3`.`ProdCmpID`,\n		SUM(CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`T3`.`PrecioProd`,\n			`T3`.`Magnitud`,\n			`T3`.`OffsetVanoAlto`,\n			`T3`.`OffsetVanoAncho`,\n			`T3`.`CoefVanoAlto`,\n			`T3`.`CoefVanoAncho`,\n			`T3`.`ValorElemento`)) AS pVidQuotePrecio,\n		SUM(CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`T3`.`PrecioProd`,\n			`T3`.`Magnitud`,\n			`T3`.`OffsetVanoAlto`,\n			`T3`.`OffsetVanoAncho`,\n			`T3`.`CoefVanoAlto`,\n			`T3`.`CoefVanoAncho`,\n			`T3`.`ValorElemento`) * pVidQuoteProdCantidad) AS pVidQuotePrecioP\n	FROM\n		(\n		SELECT\n		`T1`.`ProductoID` AS ProductoID,\n		`T1`.`ProductoID` AS ProdCmpID,\n		`T1`.`ElementoID`,\n		`T1`.`ValorElemento`,\n		`T1`.`Descripcion`,\n		`T1`.`Magnitud`,\n		`T1`.`OffsetVanoAncho`,\n		`T1`.`OffsetVanoAlto`,\n		`T1`.`CoefVanoAncho`,\n		`T1`.`CoefVanoAlto`,\n		(CASE (pVidQuoteLPre)\n		 WHEN 0 THEN `T1`.`PrecioProd00`\n		 WHEN 1 THEN `T1`.`PrecioProd01`\n		 WHEN 2 THEN `T1`.`PrecioProd02`\n		 WHEN 3 THEN `T1`.`PrecioProd03`\n		END) AS PrecioProd\n		FROM visprodadic AS T1\n		WHERE ProductoID=pVidQuoteProdID AND ElementoID=pVidQuoteProdID AND ElementoPM<=1\n		UNION\n		SELECT \n		pVidQuoteProdID AS ProductoID,\n		`T2`.`ProductoID` AS ProdCmpID,\n		`T2`.`ElementoID`,\n		`T2`.`ValorElemento`,\n		`T2`.`Descripcion`,\n		`T2`.`Magnitud`,\n		`T2`.`OffsetVanoAncho`,\n		`T2`.`OffsetVanoAlto`,\n		`T2`.`CoefVanoAncho`,\n		`T2`.`CoefVanoAlto`,\n		(CASE (pVidQuoteLPre)\n		 WHEN 0 THEN `T2`.`PrecioProd00`\n		 WHEN 1 THEN `T2`.`PrecioProd01`\n		 WHEN 2 THEN `T2`.`PrecioProd02`\n		 WHEN 3 THEN `T2`.`PrecioProd03`\n		END) AS PrecioProd\n		FROM visprodadic AS T2\n		WHERE ProductoID IN \n			 (SELECT ElementoID \n			  FROM visprodadic \n			  WHERE ProductoID=pVidQuoteProdID AND ElementoID<>pVidQuoteProdID AND ElementoPM<=1\n		 )\n		) AS T3\n	GROUP BY ProdCmpID;\nEND\n</pre></small>\n*20121009\n**Error de Change Management al subir el programa de TEST con los parámetros de prueba. Condición de la [[TABLA:vidquoten3tmp]] tipo \"SELECT IN\" para incorporar solo los registros que ya no existan en la [[TABLA:vidquoten3tmp]]. También se agrega la salvaguarda de grabación de ElementoPM en el caso de no integral y los errores de parámetros de prueba para [[PARM:pVidQuoteLPre]]\n<small><pre>\n-- --------------------------------------------------------------------------------\n-- Routine DDL\n-- Note: comments before and after the routine body will not be stored by the server\n-- --------------------------------------------------------------------------------\nDELIMITER $$\n\nCREATE DEFINER=`sas_admin`@`%` PROCEDURE `AltaItemPresupuestoTmp`(\n	IN pVidQuoteID INT(5), \n	IN pVidQuoteLPre INT(1), \n	IN pVidQuoteItem INT(5), \n	IN pVidQuoteProdID CHAR(8), \n	IN pVidQuoteProdCantidad INT(5), \n	IN pVidQuoteAncho INT(5), \n	IN pVidQuoteAlto INT(5), \n	IN pCoeficienteMU DECIMAL(5,2),\n	IN pQuickSelect INT(1))\nBEGIN\n	-- --------------------------------------------------------------------------------\n	-- Inserta Registro de Auditoria\n	-- --------------------------------------------------------------------------------\n    INSERT INTO debugstmt (Fecha,Hora,Texto) \n		VALUES (\n			CURDATE(),\n			CURTIME(),\n			CONCAT(\n				CAST(pVidQuoteID AS CHAR),\"-\",\n				CAST(pVidQuoteLPre AS CHAR),\"-\",\n				CAST(pVidQuoteItem AS CHAR),\"-\",\n				pVidQuoteProdID,\"-\",\n				CAST(pVidQuoteProdCantidad AS CHAR),\"-\",\n				CAST(pVidQuoteAncho AS CHAR),\"-\",\n				CAST(pVidQuoteAlto AS CHAR)\n				)\n			);\n	-- --------------------------------------------------------------------------------\n	-- Elimina residuos de ediciones anteriores\n	-- --------------------------------------------------------------------------------\n    DELETE FROM vidquoten3tmp WHERE VidQuoteID=pVidQuoteID AND VidQuoteItem=pVidQuoteItem;\n\n	-- --------------------------------------------------------------------------------\n	-- Inserta Registraciones anteriores del mismo Producto/Item\n	-- --------------------------------------------------------------------------------\n	INSERT INTO vidquoten3tmp (\n		VidQuoteID,\n		VidQuoteItem,\n		VidQuoteProdID,\n		VidQuoteProdCantidad,\n		VidQuoteElementoID,\n		VidQuoteComposicID,\n		VidQuotePrecio,\n		VidQuotePrecioP,\n		VidQuoteIncluyeDet,\n		VidQuoteQuickSelect)\n	SELECT\n		S1.VidQuoteID,\n		S1.VidQuoteItem,\n		S1.VidQuoteProdID,\n		S1.VidQuoteProdCantidad,\n		S1.VidQuoteElementoID,\n		S1.VidQuoteComposicID,\n		S1.VidQuotePrecio,\n		S1.VidQuotePrecioP,\n		S1.VidQuoteIncluyeDet,\n		1 AS VidQuoteQuickSelect\n	FROM\n		vidquoten3 AS S1\n	WHERE\n		S1.VidQuoteID=pVidQuoteID AND \n		S1.VidQuoteItem=pVidQuoteItem;\n	-- --------------------------------------------------------------------------------\n	-- Inserta Registraciones pausibles de incorporar de acuerdo al tipo de \n	-- --------------------------------------------------------------------------------\n	INSERT INTO vidquoten3tmp (\n		VidQuoteID,\n		VidQuoteItem,\n		VidQuoteProdID,\n		VidQuoteProdCantidad,\n		VidQuoteElementoID,\n		VidQuoteComposicID,\n		VidQuotePrecio,\n		VidQuotePrecioP)\n	SELECT\n		pVidQuoteID as VidQuoteID,\n		pVidQuoteItem as VidQuoteItem,\n		R1.ProductoID AS VidQuoteProdID,\n		pVidQuoteProdCantidad AS VidQuoteProdCantidad,\n		R1.ProdCmpID AS VidQuoteElementoID,\n		R1.ComposicID AS VidQuoteComposicID,\n		SUM(\n          CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`R1`.`PrecioProd`,\n			`R1`.`Magnitud`,\n			`R1`.`OffsetVanoAlto`,\n			`R1`.`OffsetVanoAncho`,\n			`R1`.`CoefVanoAlto`,\n			`R1`.`CoefVanoAncho`,\n			`R1`.`ValorElemento`) * pCoeficienteMU) AS VidQuotePrecio,\n		SUM(\n          CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`R1`.`PrecioProd`,\n			`R1`.`Magnitud`,\n			`R1`.`OffsetVanoAlto`,\n			`R1`.`OffsetVanoAncho`,\n			`R1`.`CoefVanoAlto`,\n			`R1`.`CoefVanoAncho`,\n			`R1`.`ValorElemento`) * pVidQuoteProdCantidad * pCoeficienteMU) AS VidQuotePrecioP\n\n	FROM\n		-- --------------------------------------------------------------------------------\n		-- Selecciona elementos de composicion iguales al producto \n		-- --------------------------------------------------------------------------------\n		((\n		SELECT \n		U1.ProductoID,\n		U1.ElementoID AS ProdCmpID,\n		U1.ComposicID,\n		U1.ElementoID,\n		U1.ElementoPM,\n		U2.Magnitud,\n		U1.ValorElemento,\n		U1.OffsetVanoAncho,\n		U1.OffsetVanoAlto,\n		U1.CoefVanoAncho,\n		U1.CoefVanoAlto,\n		(CASE (2)\n		  WHEN 0 THEN U3.PrecioProd00\n		  WHEN 1 THEN U3.PrecioProd01\n		  WHEN 2 THEN U3.PrecioProd02\n		  WHEN 3 THEN U3.PrecioProd03\n		END) AS PrecioProd\n		FROM\n		fzggestion.productos AS U2,\n		fzggestion.composicion AS U1,\n		fzggestion.precios AS U3\n		WHERE\n		U2.ProductoID = U1.ElementoID AND \n		U3.ProductoID = U2.ProductoID AND \n		U1.ProductoID = pVidQuoteProdID AND \n		U1.ElementoID = pVidQuoteProdID AND \n		U1.ElementoPM <= pQuickSelect)\n		-- --------------------------------------------------------------------------------\n		UNION\n		-- --------------------------------------------------------------------------------\n		-- Selecciona elementos de composicion diferentes al producto\n		-- --------------------------------------------------------------------------------\n		(\n		SELECT \n			T1.ProductoID,\n			T1.ElementoID AS ProdCmpID,\n			T1.ComposicID,\n			T2.ElementoID,\n			T2.ElementoPM,\n			T3.Magnitud,\n			T1.ValorElemento,        \n			T1.OffsetVanoAncho,\n			T1.OffsetVanoAlto,\n			T1.CoefVanoAncho,\n			T1.CoefVanoAlto,\n			(CASE (2)\n				WHEN 0 THEN `T4`.`PrecioProd00`\n				WHEN 1 THEN `T4`.`PrecioProd01`\n				WHEN 2 THEN `T4`.`PrecioProd02`\n				WHEN 3 THEN `T4`.`PrecioProd03`\n			END) AS PrecioProd\n		FROM\n			fzggestion.composicion AS T2,\n			fzggestion.composicion AS T1,\n			fzggestion.productos AS T3,\n			fzggestion.precios AS T4\n		WHERE\n			T2.ProductoID = T1.ElementoID AND \n			T3.ProductoID = T2.ElementoID AND \n			T4.ProductoID = T3.ProductoID AND \n			T1.ProductoID <> T1.ElementoID AND \n			T2.ElementoPM <= pQuickSelect AND \n			T1.ProductoID = pVidQuoteProdID AND \n			T1.ElementoPM <= pQuickSelect\n		ORDER BY\n			T1.ProductoID ASC ,\n			T1.ElementoID ASC ,\n			T1.ComposicID ASC ,\n			T2.ElementoID ASC)\n		-- --------------------------------------------------------------------------------\n		-- R1 es el sinónimo de la union de las tablas \n		-- --------------------------------------------------------------------------------\n		) AS R1\n      WHERE\n			CONCAT(R1.ProductoID,R1.ProdCmpID,LPAD(CAST(R1.ComposicID AS CHAR),3,\'000\'))\n      	NOT IN (\n				SELECT\n					CONCAT(VidQuoteProdID,VidQuoteElementoID,LPAD(CAST(VidQuoteComposicID AS CHAR),3,\'000\'))\n				FROM\n					vidquoten3tmp AS Q1 \n				WHERE \n					Q1.VidQuoteID=pVidQuoteID AND \n					Q1.VidQuoteItem=pVidQuoteItem)\n		GROUP BY\n			VidQuoteElementoID,\n			VidQuoteComposicID;\nEND\n</pre></small>\n*20121207\n**Se detecta errores en el cálculo combinado por la falta de propagación de atributos de componentes con niveles adicionales de composición (DVH, etc). Anterior: \n<small><pre>\n-- --------------------------------------------------------------------------------\n-- Routine DDL\n-- Note: comments before and after the routine body will not be stored by the server\n-- --------------------------------------------------------------------------------\nDELIMITER $$\n\nCREATE DEFINER=`sas_admin`@`%` PROCEDURE `AltaItemPresupuestoTmp`(\n	IN pVidQuoteID INT(5), \n	IN pVidQuoteLPre INT(1), \n	IN pVidQuoteItem INT(5), \n	IN pVidQuoteProdID CHAR(8), \n	IN pVidQuoteProdCantidad INT(5), \n	IN pVidQuoteAncho INT(5), \n	IN pVidQuoteAlto INT(5), \n	IN pCoeficienteMU DECIMAL(5,2),\n	IN pQuickSelect INT(1))\nBEGIN\n	-- --------------------------------------------------------------------------------\n	-- Inserta Registro de Auditoria\n	-- --------------------------------------------------------------------------------\n--     INSERT INTO debugstmt (Fecha,Hora,Texto) \n-- 		VALUES (\n-- 			CURDATE(),\n-- 			CURTIME(),\n-- 			CONCAT(\n-- 				CAST(pVidQuoteID AS CHAR),\"-\",\n-- 				CAST(pVidQuoteLPre AS CHAR),\"-\",\n-- 				CAST(pVidQuoteItem AS CHAR),\"-\",\n-- 				pVidQuoteProdID,\"-\",\n-- 				CAST(pVidQuoteProdCantidad AS CHAR),\"-\",\n-- 				CAST(pVidQuoteAncho AS CHAR),\"-\",\n-- 				CAST(pVidQuoteAlto AS CHAR)\n-- 				)\n-- 			);\n	-- --------------------------------------------------------------------------------\n	-- Elimina residuos de ediciones anteriores\n	-- --------------------------------------------------------------------------------\n--     CALL DebugCheckPoint(\n--         CONCAT(\n--         \"Prev - \",\n--         \"pVidQuoteID:\",\n--         CAST(pVidQuoteID AS CHAR),\"-\",\n--         \"pVidQuoteItem:\",\n--         CAST(pVidQuoteItem AS CHAR),\"-\",\n--         \"Delete Count:\",\n--         (SELECT CAST(Count(*) AS CHAR) \n--             FROM vidquoten3tmp \n--             WHERE\n--                 VidQuoteID=pVidQuoteID AND \n--                 VidQuoteItem=pVidQuoteItem)\n--         ));\n    DELETE FROM vidquoten3tmp WHERE VidQuoteID=pVidQuoteID AND VidQuoteItem=pVidQuoteItem;\n--     CALL DebugCheckPoint(\n--         CONCAT(\n--         \"Past - \",\n--         \"pVidQuoteID:\",\n--         CAST(pVidQuoteID AS CHAR),\"-\",\n--         \"pVidQuoteItem:\",\n--         CAST(pVidQuoteItem AS CHAR),\"-\",\n--         \"Delete Count:\",\n--         (SELECT CAST(Count(*) AS CHAR) \n--             FROM vidquoten3tmp \n--             WHERE\n--                 VidQuoteID=pVidQuoteID AND \n--                 VidQuoteItem=pVidQuoteItem)\n--         ));\n	-- --------------------------------------------------------------------------------\n	-- Inserta Registraciones anteriores del mismo Producto/Item\n	-- --------------------------------------------------------------------------------\n	INSERT INTO vidquoten3tmp (\n		VidQuoteID,\n		VidQuoteItem,\n		VidQuoteProdID,\n		VidQuoteProdCantidad,\n		VidQuoteElementoID,\n		VidQuoteComposicID,\n		VidQuoteElementoPM,\n		VidQuotePrecio,\n		VidQuotePrecioP,\n		VidQuoteIncluyeDet,\n		VidQuoteQuickSelect)\n	SELECT\n		S1.VidQuoteID,\n		S1.VidQuoteItem,\n		S1.VidQuoteProdID,\n		S1.VidQuoteProdCantidad,\n		S1.VidQuoteElementoID,\n		S1.VidQuoteComposicID,\n		S1.VidQuoteElementoPM,\n		S1.VidQuotePrecio,\n		S1.VidQuotePrecioP,\n		S1.VidQuoteIncluyeDet,\n		1 AS VidQuoteQuickSelect\n	FROM\n		vidquoten3 AS S1\n	WHERE\n		S1.VidQuoteID=pVidQuoteID AND \n		S1.VidQuoteItem=pVidQuoteItem;\n    CALL DebugCheckPoint(\"Past Inserta Registros VQ3 anteriores\");\n	-- --------------------------------------------------------------------------------\n	-- Inserta Registraciones pausibles de incorporar de acuerdo al tipo de \n	-- --------------------------------------------------------------------------------\n	INSERT INTO vidquoten3tmp (\n		VidQuoteID,\n		VidQuoteItem,\n		VidQuoteProdID,\n		VidQuoteProdCantidad,\n		VidQuoteElementoID,\n		VidQuoteComposicID,\n		VidQuoteElementoPM,\n		VidQuotePrecio,\n		VidQuotePrecioP)\n	SELECT\n		pVidQuoteID as VidQuoteID,\n		pVidQuoteItem as VidQuoteItem,\n		R1.ProductoID AS VidQuoteProdID,\n		pVidQuoteProdCantidad AS VidQuoteProdCantidad,\n		R1.ProdCmpID AS VidQuoteElementoID,\n		R1.ComposicID AS VidQuoteComposicID,\n		R1.ElementoPM AS VidQuoteElementoPM,\n		SUM(\n          CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`R1`.`PrecioProd`,\n			`R1`.`Magnitud`,\n			`R1`.`OffsetVanoAlto`,\n			`R1`.`OffsetVanoAncho`,\n			`R1`.`CoefVanoAlto`,\n			`R1`.`CoefVanoAncho`,\n			`R1`.`ValorElemento`) * pCoeficienteMU) AS VidQuotePrecio,\n		SUM(\n          CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`R1`.`PrecioProd`,\n			`R1`.`Magnitud`,\n			`R1`.`OffsetVanoAlto`,\n			`R1`.`OffsetVanoAncho`,\n			`R1`.`CoefVanoAlto`,\n			`R1`.`CoefVanoAncho`,\n			`R1`.`ValorElemento`) * pVidQuoteProdCantidad * pCoeficienteMU) AS VidQuotePrecioP\n\n	FROM\n		-- --------------------------------------------------------------------------------\n		-- Selecciona elementos de composicion iguales al producto \n		-- --------------------------------------------------------------------------------\n		((\n		SELECT \n		U1.ProductoID,\n		U1.ElementoID AS ProdCmpID,\n		U1.ComposicID,\n		U1.ElementoID,\n		U1.ElementoPM,\n		U2.Magnitud,\n		U1.ValorElemento,\n		U1.OffsetVanoAncho,\n		U1.OffsetVanoAlto,\n		U1.CoefVanoAncho,\n		U1.CoefVanoAlto,\n		(CASE (pVidQuoteLPre)\n		  WHEN 0 THEN U3.PrecioProd00\n		  WHEN 1 THEN U3.PrecioProd01\n		  WHEN 2 THEN U3.PrecioProd02\n		  WHEN 3 THEN U3.PrecioProd03\n		END) AS PrecioProd\n		FROM\n		fzggestion.productos AS U2,\n		fzggestion.composicion AS U1,\n		fzggestion.precios AS U3\n		WHERE\n		U2.ProductoID = U1.ElementoID AND \n		U3.ProductoID = U2.ProductoID AND \n		U1.ProductoID = pVidQuoteProdID AND \n		U1.ElementoID = pVidQuoteProdID AND \n		U1.ElementoPM <= pQuickSelect)\n		-- --------------------------------------------------------------------------------\n		UNION\n		-- --------------------------------------------------------------------------------\n		-- Selecciona elementos de composicion diferentes al producto\n		-- --------------------------------------------------------------------------------\n		(\n		SELECT \n			T1.ProductoID,\n			T1.ElementoID AS ProdCmpID,\n			T1.ComposicID,\n			T2.ElementoID,\n			T1.ElementoPM,\n-- 			T2.ElementoPM,\n			T3.Magnitud,\n			T1.ValorElemento,        \n			T1.OffsetVanoAncho,\n			T1.OffsetVanoAlto,\n			T1.CoefVanoAncho,\n			T1.CoefVanoAlto,\n			(CASE (pVidQuoteLPre)\n				WHEN 0 THEN `T4`.`PrecioProd00`\n				WHEN 1 THEN `T4`.`PrecioProd01`\n				WHEN 2 THEN `T4`.`PrecioProd02`\n				WHEN 3 THEN `T4`.`PrecioProd03`\n			END) AS PrecioProd\n		FROM\n			fzggestion.composicion AS T2,\n			fzggestion.composicion AS T1,\n			fzggestion.productos AS T3,\n			fzggestion.precios AS T4\n		WHERE\n			T2.ProductoID = T1.ElementoID AND \n			T3.ProductoID = T2.ElementoID AND \n			T4.ProductoID = T3.ProductoID AND \n			T1.ProductoID <> T1.ElementoID AND \n			T2.ElementoPM <= pQuickSelect AND \n			T1.ProductoID = pVidQuoteProdID AND \n			T1.ElementoPM <= pQuickSelect\n		ORDER BY\n			T1.ProductoID ASC ,\n			T1.ElementoID ASC ,\n			T1.ComposicID ASC ,\n			T2.ElementoID ASC)\n		-- --------------------------------------------------------------------------------\n		-- R1 es el sinónimo de la union de las tablas \n		-- --------------------------------------------------------------------------------\n		) AS R1\n      WHERE\n			CONCAT(R1.ProductoID,R1.ProdCmpID,LPAD(CAST(R1.ComposicID AS CHAR),3,\'000\'))\n      	NOT IN (\n				SELECT\n					CONCAT(VidQuoteProdID,VidQuoteElementoID,LPAD(CAST(VidQuoteComposicID AS CHAR),3,\'000\'))\n				FROM\n					vidquoten3tmp AS Q1 \n				WHERE \n					Q1.VidQuoteID=pVidQuoteID AND \n					Q1.VidQuoteItem=pVidQuoteItem)\n		GROUP BY\n			VidQuoteElementoID,\n			VidQuoteComposicID;\n    -- --------------------------------------------------------------------------------\n    -- Joint Para completar info de ElementoPM\n    -- --------------------------------------------------------------------------------\n    UPDATE\n        vidquoten3tmp AS T1,\n        composicion AS T2\n    SET\n        T1.VidQuoteElementoPM = T2.ElementoPM\n    WHERE\n        T1.VidQuoteID=pVidQuoteID AND\n        ISNULL(T1.VidQuoteElementoPM) AND\n        T1.VidQuoteProdID=T2.ProductoID AND\n        T1.VidQuoteElementoID=T2.ElementoID AND\n        T1.VidQuoteComposicID=T2.ComposicID;\nEND\n</pre><small>\n\n== Uso ==\n* [[MACRO:BotonEditarComponentes]]\n* [[FORM:Presupuesto]]','utf-8'),(924,'===Esquema de Actualizaciones===\n*[[Actualizacion DB]]\n\n=== Versión 1.1 ===\n====Release 20121201====\n=====Problemas Conocidos=====\n*[[FORM:Presupuesto]]. Aleatoriamente no hace el cálculo o no lo refresca correctamente.\n*[[TKT.FZG.000001]]. Se corrompe el archivo manifiest.rdf propio de la instalación del equipamiento laptop.\n*[[TKT.FZG.000002]]. Se detecta\n\n=====Correcciones y Agregados=====\n*[[FORM:Modulos]]. Rediseño del originario [[FORM:Predefinidos]] y puesta en producción.\n*[[FORM:Modulos]]. Cambio de diseño para incluir el [[FORM:Modulos.FormModulos.FormDetalleProducto.FormSubSet]] como control para el ingreso de ocurrencias de subconjuntos de lineas de control. Se crea la [[MACRO:ChangeFieldtxtSubSetTPFORMModulos]] para la validación del identificativo de Wide/Height del elemento.\n*[[TABLA:modulosdet]]. Cambio de esquema para albergar ocurrencias de Subconjuntos de \"lineas de control\" con el alta de la [[TABLA:modulossbs]].\n====Release 20121030====\n=====Problemas Conocidos=====\n*Aleatoriamente no elimina registros y cuando se visualiza o refresca la tabla, hace shutdown de la sesión\n=====Correcciones y Agregados=====\n* [[MACRO:AprobacionPresupuesto]]. Corrección. Se modifica la acción posterior de redespliegue de subformularios eliminando las instrucciones anteriores y sumando la rutina [[MACRO:ControlFormPresupuesto]]\n====Release 20121029====\n=====Problemas Conocidos=====\n=====Correcciones y Agregados=====\n* [[TABLA:vidquoten1]]. Corrección. Se agregan los controles de NOTNULL a los atributos de Cliente y de Agente Comercial.\n* [[FORM:Presupuesto]]. Corrección. Por diferencias aparentes en las versiones de la DB vs. ODBC se cambia el DataSource de [[FORM:Presupuesto.DataCliente]] para que lo haga sobre la [[TABLA:contactos]] y no sobre la [[VISTA:clientes]].\n* [[FORM:Presupuesto]]. Corrección. Se agregan los controles de límites para los atributos de Ancho y Alto dentro de [[FORM:Presupuestos.Productos]].\n**El esquema funciona haciendo un llamado básicamente a la rutina indicada en [[MACRO:CheckValidMeasure]] ante los eventos de ItemChange de ambas columnas.\n**Se modifica el esquema de [[MACRO:EventoBRCDetallePresupuesto]] que gestionaba a la fecha escencialmente el alta de registros en [[TABLA:viquoten3]] transfiriendo esa ejecución del alta a traves de [[MACRO:AltaProductoPresupuesto]] que se ejecuta en [[MACRO:EventoARADetallePresupuesto]] con los parámetros de acción provenientes de [[MACRO:EventoBRADetallePresupuesto]]. Es precisamente la [[MACRO:EventoARADetallePresupuesto]], donde efectua el chequeo [[MACRO:CheckValidMeasure]], que siendo declarada como función, retorna el valor del chequeo para que se mantenga dentro del mismo control en el caso de error.\n**Esta modificación general permite que el refresco del Control correspondiente al Subtotal lo haga aún si presiona el ícono de grabar sin efectuar el \"gesture\" natural de la secuencia de ingreso de datos (presionar [Enter]) del registro en el [[FORM:Presupuesto.Productos.ProductosGrid]].\n\n====Release 20121024====\n=====Correcciones y Agregados=====\n* [[FORM:PosicionCRM]]. Corrección de Data Source.\n* [[RPRT:IndividualCRM]]. Corrección de Data Source y MakeUp Fecha Detalle\n* [[FORM:ConsultaClienteCRM]]. Corrección de Data Source de [[FORM:ConsultaClienteCRM.MainForm.SFSaldo]]\n* [[TABLA:magnitudes]]. Agregado de tabla\n====Release 20121005====\n=====Problemas Conocidos=====\n* [[FORM:PosicionCRM]]. Existen diferencias en los origenes de datos por lo que muestra diferentes resultados de [[FORM:ConsultaClientesCRM]]\n=====Correcciones y Agregados=====\n* [[PROC:AltaItemPresupuestoTmp]]. Corrección. Error en el procedimiento. El error radicaba en que la condición de los registros existentes dentro de la [[TABLA:vidquoten3tmp]] para evitar el agregado de esos mismos registro por parte del procedimiento desde la [[TABLA:componentes]]. Los valores que existían eran las constantes utilizadas para las pruebas. Se procede al reemplazo por parte de los parámetros provenientes de la función que llama al procedimiento. Se agrega además un parche para asignar el atributo ElementoPM para aquellos Elementos que no han arrastrado previamente por algún motivo este elemento al momento de grabar.\n* [[VISTA:proveedores]]. Cambio de formato del tag\n* [[PROC:CalculoPrecio]]. Agregado de los cálculos correspondientes a las nuevas magnitudes ALto y ANcho.\n* [[FORM:Presupuesto]]. Corrección. Ordenamiento del vector de ProductosDSC.\n* [[FORM:Presupuesto]]. Agregado. Se agrega la opción dentro del ListBox correspondiente a ProductosDSC de \"Selección de Filtro\". Lanza la [[MACRO:ControlLista]] y recupera el valor anterior con [[MACRO:ResetFiltroProductoFORMPresupuesto]].\n* [[FORM:Presupuesto]]. Corrección. Se agrega la función para afectar las eliminaciones de productos.\n* [[FORM:Presupuesto]]. Corrección. Se elimina el tabstop del campo de aprobado.\n* [[FORM:Aux000002]]. Corrección. Se cambia la Property de Add record.\n* [[MACRO:SugerenciaContactoID]]. Se agrega la distinción para que pueda ser leido correctamente desde [[FORM:Aux000002]].\n* [[FORM:Presupuesto]]. Se elimina la visualización del boton de prueba en la zona de Composicion.\n* [[FORM:Presupuesto]]. Se agrega valor por defecto en [[CTRL:Presupuesto.txtVidQuoteACom]]\n* [[FORM:Presupuesto]]. Se agrega la visualización del FORM:ComponentesDisplay desde [[MACRO:EventoWhenLoadingFormCabecera]]\n====Release 20120912====\n=====Problemas Conocidos=====\n* [[FORM:Presupuesto]]. La ayuda específica de ingreso de la descripción de producto no funciona.\n* [[FORM:PosicionCRM]]. El reporte [[RPRT:IndividualCRM]] muestra problemas aleatorios en la última columna (despliega aleatoriamente decimales).\n=====Correcciones y Agregados=====\n* [[FORM:Presupuesto]]. Diseño. Agregado de Form:DataCliente para evitar repetir la consulta de los datos del cliente (descripción, coeficientes agregados, etc.)\n* [[FORM:Presupuesto]]. Diseño. Agregado de Form:DataAgente para evitar repetir la consulta ya que se agrega la modalidad de aplicar el coeficiente que tiene el agente comercial adicional al del cliente y a los definidos en el módulo de precios.\n* [[FORM:Presupuesto]]. Corrección. El [[CTRL:Presupuesto.ListaProducto]] pasa a depender de [[CTRL:Presupuesto.Cabecera]]\n* [[VISTA:acomerciales]]. Se cambia el nombre del ID principal por AComercialID y se agregan los datos de Coeficiente que proviene de la [[TABLA:contactos]].\n* [[TABLA:contactos]]. Se agrega un atributo que puede representar la fotografía o logo de la empresa contacto.\n* [[PROC:AltaItemPresupuesto]]. Correcciones y Test.\n* [[PROC:ActualizaItemPresupuesto]]. Correcciones y Test\n* [[TRIG:Actualiza_Item_Presupuesto]]. Creación en el evento SQL BEFORE UPDATE sobre [[TABLA:vidquoten2]] para reemplazar la ejecución del proceso de actualización en [[MACRO:EventoBRCDetallePresupuesto]]. Cuando activa el UPDATE, la [[MACRO:EventoBRCDetallePresupuesto]] solo refresca la [[TABLA:vidquoten3]]\n* [[PROC:CopiaPresupuesto]]. Reactivación a razón del rediseño [[FORM:Presupuesto]].\n* [[FORM:Presupuesto]]. Inclusion del ordenamiento por el atributo VidQuoteID dentro de [[TABLA:vidquoten1]]\n\n====Release 20120901====\n* [[FORM:Presupuesto]]. Cambio de diseño.\n* [[TABLA:precios]]. Agrega atributo para identificar el usuario del último cambio.\n* [[FORM:PreciosTabularNormal]]. Modificación. Agregado de columnas a la vista de la tabla. Fecha de última modificación y Usuario.\n* [[FORM:PreciosGeneral]]. Modificación. Ajustes de forma y agregado de columna de Usuario Evento.\n* [[FORM:ConsumoMasivoPrecios]]. Modificacion. Ajustes de forma y agregado de columnas a la vista de la tabla. Fecha de última modificación y Usuario.\n* [[FORM:Contactos]]. Ajuste y Rediseño. Se colocó el tipo de contacto en primer lugar para poder utilizar la función de sugerencia de código de contacto. Se rediseñó la función de sugerencia de código de contacto para que abarque todos los tipos de contactos.\n* [[VISTA:clientes]]. Cambio de condicion de la [[TABLA:contactos]] por cambio de tipo de variable del tag de clientes y el agregado de Coeficiente de MarkUp.\n* [[TABLA:telemecomp]]. Alta de Tabla.\n* [[FORM:ComposicionMasivoxProducto]]. Modificacion. Se cambió el tipo de lista de control del atributo ElementoPM\n* [[FORM:CopiaComposicion]]. Modificación. Se modificó el orden y el tipo de control de atributo ElementoPM\n* [[FORM:ComposicionProductoElemento]]. Modificacion. Se cambió el tipo de lista de control del atributo ElementoPM\n* [[FORM:CopiaComposicion]]. Corrección. Se actualizó la [[MACRO:CopiaComposicion]] para fijar posicion sobre la decisión de copiar datos anteriores\n* [[PROC:DuplicaProductoCompo]]. Se agrega el parámetro de descripción del producto destino.\n* [[TABLA:composicion]]. Agrega atributo ComposicID autoincremental para diferenciar aquellos que están duplicados.\n* [[FORM:ComposicionMasivoxProducto]]. Se edita para que adapte el ingreso del atributo Composic. Luego de las pruebas de test, la eliminación de un registro de Producto/Elemento similar, eliminaba todos los iguales.\n* [[TABLA:vidquoten3]]. Agrega atributo ComposicID autoincremental para diferenciar aquellos que están duplicados.\n* [[TABLA:vidquoten3tmp]]. Agrega atributo ComposicID para diferenciar aquellos que están duplicados.\n* [[PROC:AltaItemPresupuestoTmp]]. Se revisó e introdujeron los cambios asociados a la incorporación del atributo ComposicID de las [[TABLA:vidquoten3tmp]] y [[TABLA:vidquoten3]]\n* [[PROC:ActualizaPreciosTabular]]. Modificación. Corrección / Verificación de Fórmulas del Release 20120424.[[File:warning-icon-hi.png|20px]]\n* [[PROC:GrabaItemPresupuestoTmp]]. Generación para cerrar el círculo de edición de componentes durante el presupuesto.\n* [[PROC:ResetEdicionItemTmp]]. Creación para eliminar las registraciones temporarias en [[TABLA:vidquoten3tmp]]\n* [[FORM:Presupuesto]]. Cambios\n** Se habilita la posibilidad de solo consulta para todos los Presupuestos Aprobados con [[MACRO:ControlFormPresupuesto]].\n** Se limita la posibilidad de eliminar Presupuesto / Producto para Presupuestos Aprobados y se habilita el LOC (Last Opportunity Check) con [[MACRO:ConfirmaDeletePresupuesto]]\n** Chequeos [[FORM:PresupuestoV1.0]].\n***Form:Cabecera\n****[[MACRO:NewResetListBox]]: No es necesario. No se usa más la modificación del contenido del ListBox OTA.\n****[[MACRO:PresupuestoExpirado]]: Optimizar y agregar como función dentro de [[MACRO:ControlFormPresupuesto]]\n****[[MACRO:EventoWhenLoadingFromCabecera]]\n*****Confirmar [[MACRO:ChequeoLicenciaOK]]\n*****Eliminar limpieza ListBox\n*****Asigna default Fecha Presupuesto con [[MACRO:Hoy]]\n*****Eliminar Reset ListBoxes\n****[[MACRO:EventoBRADetallePresupuesto]]\n*****Sin Cambios\n****[[MACRO:EventoBRCDetallePresupuesto]]\n****[[MACRO:BotonActualizarPresupuesto]]\n*****Adaptación al nuevo [[PROC:ActualizaPreciosPresupuesto]]\n\n=== Versión 1 ===\n====Release 20120720====\n* [[FORM:Pagos]]. Creación.\n* [[TABLA:tdocumento]]. Rediseño. Se incorporan atributos para indicar cuales son los procesos que se incluye el documento para un posterior filtro.\n* [[FORM:ClientesCRM]]. Rediseño. Se reemplaza las tablas y se confecciona a partir de los presupuestos aprobados/pendientes y de las cobranzas.\n* [[FORM:Cobranzas]]. Modificación. Se agrega la posibilidad de asignación por cliente (cuenta corriente).\n* [[TABLA:accpayab]]. Creación.\n====Release 20120628====\n* [[FORM:Categorias]]. Rediseño. Se rediseña la interfaz de acuerdo a el nuevo lineamiento y se agrega un control de Grid para su mejor visualización.\n* [[FORM:PreciosGeneral]]. Rediseño. Se agrega el Control Grid sobre la [[TABLA:precios]] y los controles de navegación.\n* [[TABLA:vidquoten1]]. Se agrega el atributo para controlar si se efectua la medición en obra.\n====Release 20120627====\n* [[FORM:CopiaComposicion]]: Modificado: Se generan una nueva forma de copia duplicación de componentes. Se agregan además las funciones de Agregado masivo a partir de otro producto y de control de repetición de producto.\n* [[FORM:PresupuestoV1.0]]. Modificado. Se prepara el acceso de los Módulos permitiendo la copia de un módulo predefinido en forma completa.\n* [[FORM:ComposicionMasivoxProducto]]. Modificado. Se agrega un control de navegación para cada grupo de datos: Productos y Elementos.\n====Release 20120608====\n* [[FORM:Predefinidos]]. Creación. Genera una nueva instancia inicial con presupuestos \"preformateados\" que simulen un nivel inmediato superior al esquema Producto-Elemento-Parámetro que permitiría inicialmente generar anteproyectos. Queda pendiente el ingreso de este grupo como elemento manipulable.[[File:warning-icon-hi.png|20px]]\n* [[TABLA:predefcab]]. Creación\n* [[TABLA:predefdet]]. Creación\n====Release 20120515====\n* [[FORM:Productos]]. Modificación. Cambio del control de verificación del campo ProductoID. Cambio de Control y verificación en [[TABLA:productos]], [[TABLA:composicion]] y [[TABLA:precios]]. Se habilita función específica de verificación de integridad. Ok\n* [[FORM:Productos]]. Modificación. Corrección de código por bug en función iif en Basic en el evento AfterChangeRecordFORMProductos.\n* [[REPORTE:PresupuestoDirecto]]. Modificación. Agregado de Numéración de páginas para el caso de presupuestos de más de una hoja de extensión.\n* [[PROC:CalculaPrecioBase]]. Incorpora el cálculo de las magnitudes \"2H\" (cálculo en base a la altura indicada multiplicada por 2) y \"2W\" (cálculo en base al ancho indicado multiplicado por 2).\n* [[PROC:CalculoPrecio]]. Incorpora el cálculo de las magnitudes \"2H\" (cálculo en base a la altura indicada multiplicada por 2) y \"2W\" (cálculo en base al ancho indicado multiplicado por 2).\n* [[FORM:MasivoCoeficienteActualizacion]]. Asigna [[MACRO:CambioMasivoCoeficientesPrecios]] y agrega botón de limpieza con [[MACRO:LimpiarMasivoCoeficientesPrecios]]\n* [[PROC:CalculaPrecioBase]]. Modificación. Se agrega la alternativa dentro de la fórmula de Metro Lineal (ML) que calcule también en caso de:\n** Cuando se realice el calculo de componentes de un producto cuya valorización se debe definir Ancho y Alto (por si tiene elementos con magnitudes de Metro Cuadrado -M2-)\n** Cuando tenga algún componente que se refiera exclusivamente al Alto o Al Ancho, en cuyo caso se debe administrar el uso a través del CoeficienteAncho y CoeficienteAlto.[[File:warning-icon-hi.png|20px]]\n* [[PROC:CalculoPrecio]]. Modificación. Se agrega la alternativa dentro de la fórmula de Metro Lineal (ML) que calcule también en caso de:\n** Cuando se realice el calculo de componentes de un producto cuya valorización se debe definir Ancho y Alto (por si tiene elementos con magnitudes de Metro Cuadrado -M2-)\n** Cuando tenga algún componente que se refiera exclusivamente al Alto o Al Ancho, en cuyo caso se debe administrar el uso a través del CoeficienteAncho y CoeficienteAlto.[[File:warning-icon-hi.png|20px]]\n* [[PROC:CalculoMedidaReal]]. Se agrega la función para facilitar el cálculo de la medida real (con respecto al Vano) para la información para Producción.[[File:warning-icon-hi.png|20px]]\n====Release 20120507====\n* [[FORM:PrecioTabularXProceso]]. Modificación. Corrección posicion botones ejecución. Ok.\n* [[FORM:PrecioTabularXProceso]]. Modificación. Corrección alineamiento lbl Filtro. Ok.\n* [[FORM:PrecioTabularXProceso]]. Modificación. Agregado de Control de Navegación. Ok\n* [[FORM:Productos]]. Modificación. Agregado de Control de Navegación. Ok\n* [[FORM:PrecioTabularXProceso]]. Modificación. Agregado de Control de Navegación. Ok\n* [[FORM:PrecioTabuladoNormal]]. Modificación. Agregado de Control de Navegación. Ok\n* [[FORM:GestionMasivaXProducto]]. Modificación. Agregado de Control de Navegación. Ok\n* [[FORM:CambioMasivo]]. Modificación. Agregado de Control de Navegación. Ok\n* [[FORM:ComposicionProductos]]. Modificación. Agregado de Control de Navegación. Ok\n* [[FORM:GestionMasivaXElementos]]. Modificación. Agregado de Control de Navegación. Ok\n* [[FORM:GestionMasivaXElementos]]. Modificación. Agregado BoxControls, Activación de filtro. Ok\n====Release 20120424====\n* [[PROC:ActualizaPreciosTabular]]. Modificación. Corrección de Formulas.[[File:warning-icon-hi.png|20px]]\n====Release 20120409====\n* [[FORM:PresupuestoV1.0]]. Reemplazo de Iconos operativos por gráficos. Nuevo. Ok\n* [[FORM:PresupuestoV1.0]]. Agregado de Proceso de Copia de Presupuesto. Nuevo. Ok\n* [[FORM:PresupuestoV1.0]]. Agregado de Proceso de Filtro de Presupuestos con Boton On/Off. Nuevo. Ok\n* [[FORM:PresupuestoV1.0]]. Agregado de Hide/UnHide del Bloque de Parámetros de Elementos. Nuevo. Ok\n* [[TABLA:Precios]]. Reducción de decimales por cálculo automático de precios. Modificado. Ok.\n* [[FORM:Contactos]]. Reemplazo del Formulario por otro Diseño. Nuevo. Ok.\n* [[FORM:Contactos]]. Agregado de Proceso de Sugerencia de Contacto. Nuevo. Ok.\n* [[FORM:PrecioTabularNormal]]. Cambio de formato de campos de precios debido al cambio de estructura. Modificado. Ok.\n* [[FORM:MasivoCoeficientesActualizacion]]. Agregado de Formulario. Nuevo. Ok.\n* [[FORM:Productos]]. Cambio de Esquema de Filtro Inicial. Nuevo. Ok\n** Agregado de Esquema de Filtro.\n** Agregado de Hide/UnHide del Bloque de Filtro.\n* Corrección \"On Error\" en Acceso inicial a DB con 3 repeticiones posibles. Nuevo. Ok.\n* [[FORM:PresupuestoV1.0]]. Modificación. Corrección de los procesos de envío directo de correo al cliente. Ok.\n* [[FORM:PresupuestoV1.0]]. Modificación. Agregado del proceso de Aprobación de Presupuesto dentro del mismo formulario de ingreso / consulta para facilitar el proceso administrativo. Ok.\n* [[TABLA:Productos]]. Modificación. Agregado del atributo Reposicion. Ok. Enviado a Batch de Actualización de DB.\n* [[FORM:Productos]]. Modificación. Agregado del atributo Reposicion. Ok\n* [[FORM:Productos]]. Nuevo. Agregado de control tipo tabla en Filtro para búsqueda rápida. Ok\n* [[FORM:PresupuestoV1.0]]. Cambio de Relación entre DetallePresupuesto / Detalle Producto. Agregado de valores de Alto y Ancho. [[File:warning-icon-hi.png|20px]]\n* [[PROC:AltaItemPresupuesto]]. Modificacion. Cambio de esquema para incorporar subitems.\n* [[PROC:CalculoPrecio]]. Nuevo. Procedimiento para solo establecer el cálculo sin buscar los valores necesarios en [[VISTA:valprodadic]]\n====Release 20120328====\n* [[FORM:PresupuestoV1.0]]. Chequeo de Eliminación de Elemento Básico en Detalle de Producto. Nuevo. Ok\n* [[FORM:PresupuestoV1.0]]. Chequeo de incorporación de Elementos restantes. Modificado. Ok\n* [[FORM:PresupuestoV1.0]]. Imposibilidad de modificar un Elemento básico en un Presupuesto. Nuevo. Ok\n* [[FORM:PresupuestoV1.0]]. Cambio de esquema de Eventos en la cascada de subformularios. Modificado. Ok\n* [[FORM:PresupuestoV1.0]]. Incorporación de Botón de Actualización de Precios. Nuevo. Ok.\n* [[FORM:PrecioTabularXProceso]]. Cambio de Esquema de Filtro Inicial. Nuevo. Ok\n* [[FORM:PrecioTabularXProceso]]. Boton de limpieza campo Filtro. Nuevo. Ok\n* [[FORM:PrecioTabularXProceso]]. Cambio de Esquema de Filtro Inicial. Nuevo. Ok\n* [[FORM:PrecioTabularXProceso]]. Boton de limpieza campo Filtro. Nuevo. Ok\n* [[FORM:GestionMasivaPorProducto]]. Cambio de Esquema de Filtro Inicial. Nuevo. Ok\n* [[FORM:GestionMasivaPorProducto]]. Boton de limpieza campo Filtro. Nuevo. Ok\n* [[FORM:PreciosGeneral]]. Cambio de Esquema de Filtro Inicial. Nuevo. Ok\n* [[FORM:PreciosGeneral]]. Boton de limpieza campo Filtro. Nuevo. Ok\n* [[FORM:ProductosElementos]]. Eliminación Campo MarkUP. Modificado. Ok.\n* [[FORM:Contactos]]. Rediseño. Nuevo. En proceso de desarrollo.\n* Varios: Corrección de Acceso a URL de imagenes sobreimpresas de botones de acción. Correr carpeta \"Graficos\" como subdirectorio del main.\n====Release 20120112====\n* Activación de Wiki\n* Desarrollo y test de [[TRIGGER:Alta_Productos]]\n* Modificación de [[VISTA:visindetpre]]\n* Modificación de [[TABLA:composicion]]\n** Default values para Coeficientes Alto/Ancho y Offset Alto/Ancho\n====Release 20120113====\n* Alta Formulario Presupuesto: Aprobación\n** Por el período de prueba se visualizan todos los valores de VidQuoteEstado.\n* Alta Formulario Presupuestos Aprobados\n* Modificación Formulario Presupuesto: Alta + Pendientes\n** Solo se visualizarán los VidQuoteEstado<>1\n* Modificación de Mantenimiento>Productos\n** Control de ingreso de Magnitudes\n* Test Formulario Presupuesto\n** Errores generados por combinación padre-hijo-nieto en el esquema de VidQuoteEstado<>1.<br/><strike>El error estaba dado porque cuando daba de alta el registro de VidQuoten1 con VidQuoteEstado=NULL, grababa el registro saltaba al subformulario (bug?) pero no tenía referencia posible ya que se encontraba vigente el filtro VidQuoteEstado<>1 y perdía el registro padre, entonces duplicaba los registros hijo y generaba error de insert record por duplicación de clave.<br/>Se procedió a definir por default el valor 0 para el atributo VidQuoteEstado</Strike>\n====Release 20120118====\n* Modificación [[FORM:PresupuestoV1.0]]>Alta + Pendientes:\n** Se detecta la incompatibilidad en la integración de Triggers en MySQL - ODBC - LibreOffice.\n** Búsqueda de soluciones a partir de comportamiento de Eventos. Se cambia la gestión de resultados del despliegue de datos de Precios por código asociado al cambio de valores dentro del grid.\n** Se generan las funciones de usuario de Cálculo de Precio\n====Release 20120119====\n* Continua de 20120118\n** Se procede a eliminar los Triggers asociados a TABLA:vidquoten2\n** Se genera el procedimiento de Alta obligatoria de elementos asociados a producto\n====Release 20120120====\n* Modificación [[FORM:PresupuestoV1.0]]>Alta + Pendientes:\n** Se realiza código para reemplazar los Triggers asociados a TABLA:vidquoten2\n*** Se activan los eventos de BeforeAction para controlar la operación y AfterAction para ejecutar la operación. Se confeccionan procedimientos de control de registraciones\n*** Se activan los eventos de para la corrección de atributos de SUBFORM:DetalleProducto\n====Release 20120122====\n* Modificación de TABLA:contactos. Se agrega el atributo ContactoIDAbrv (\"Abreviatura\").\n* Modificación FORM:Contactos: Se agrega el atributo ContactoIDAbrv (\"Abreviatura\").\n* Modificación VISTA:Proveedores: Se agrega el atributo Abreviatura (\"Abreviatura\")\n* Modificación FORM:Productos: Se agregan los atributos Coeficientes Precios 1/2/3 y Proveedor.\n* Modificación FORM:Productos: Se corrige el ListBox de Magnitud y se cambia el ValueList por la consulta de la TABLA:Productos de las magnitudes existentes.\n====Release 20120123====\n* Control de Procedimiento de Impresión asignada (REPORT:Presupuesto Directo). OK.\n* Investigación sobre com.sun...executeDispatch\n* Investigación sobre Environmental Variables + MAC\n* Investigación sobre ExportToPDF Method.\n====Release 20120124====\n* Funcionalidad a botón de [[FORM:PresupuestoV1.0]]>Alta+Pendientes sobre envío de Correo.\n** Se detecta un bug en la integración Thunderbird - LibreOffice Basic: La bandera de \"No mostrar Dialogo\" no funciona.\n====Release 20120125====\n* Agregado de Agente Comercial\n** Agregado en [[TABLA:vidquoten1]]\n** Agregado en [[TABLA:contactos]]\n** Agregado de [[VISTA:acomerciales]]\n** Modificación de [[FORM:Contactos]].\n*** Agregado de Option\n** Modificación de [[FORM:Presupuestos>Alta+Pendientes]]\n*** Agregado de campo AComercial con Listbox en Abreviatura del ContactoID.\n====Release 20120127====\n* Modificacion [[TRIGGER:Alta_Producto]]\n** Agrega registro de Producto Básico en [[TABLA:composicion]].\n====Release 20120203====\n* Generación de [[REPORTE:Composicion.Productos]]\n* Generación de [[REPORTE:Lista.Precios.Vigentes]]\n* Generación de [[REPORTE:Contactos.Resumen]]\n* Modificación de [[REPORTE:Presupuesto]]\n** Ampliar Campo Producto\n** Cambiar variable filtro por \"_\"\n** Cambiar Dirección de Cliente.\n====Release 20120206====\n* Modificación [[TABLA:productos]]\n** Agregado ProductoPID:VARCHAR(15).\n** Identifica el código puente del proveedor para hacer el pedido correspondiente\n* Modificación [[FORM:productos]]\n** Agregado de campo de código puente','utf-8'),(925,'===Esquema de Actualizaciones===\n*[[Actualizacion DB]]\n\n=== Versión 1.1 ===\n====Release 20121201====\n=====Problemas Conocidos=====\n*[[FORM:Presupuesto]]. Aleatoriamente no hace el cálculo o no lo refresca correctamente.\n*[[TKT.FZG.000001]]. Se corrompe el archivo manifiest.rdf propio de la instalación del equipamiento laptop.\n*[[TKT.FZG.000002]]. Se detecta que no se propagan las características de los elementos componentes con niveles de composición adicional. Se hizo tarea de cosmética sobre [[PROC:CalculoPrecio]]. Se modificaron los [[PROC:AltaItemPresupuesto]] y [[PROC:AltaItemPresupuestoTmp]]. Se procedió a:\n**Multiplicar los coeficientes\n**Sumar los Offset\n\n=====Correcciones y Agregados=====\n*[[FORM:Modulos]]. Rediseño del originario [[FORM:Predefinidos]] y puesta en producción.\n*[[FORM:Modulos]]. Cambio de diseño para incluir el [[FORM:Modulos.FormModulos.FormDetalleProducto.FormSubSet]] como control para el ingreso de ocurrencias de subconjuntos de lineas de control. Se crea la [[MACRO:ChangeFieldtxtSubSetTPFORMModulos]] para la validación del identificativo de Wide/Height del elemento.\n*[[TABLA:modulosdet]]. Cambio de esquema para albergar ocurrencias de Subconjuntos de \"lineas de control\" con el alta de la [[TABLA:modulossbs]].\n\n====Release 20121030====\n=====Problemas Conocidos=====\n*Aleatoriamente no elimina registros y cuando se visualiza o refresca la tabla, hace shutdown de la sesión\n=====Correcciones y Agregados=====\n* [[MACRO:AprobacionPresupuesto]]. Corrección. Se modifica la acción posterior de redespliegue de subformularios eliminando las instrucciones anteriores y sumando la rutina [[MACRO:ControlFormPresupuesto]]\n====Release 20121029====\n=====Problemas Conocidos=====\n=====Correcciones y Agregados=====\n* [[TABLA:vidquoten1]]. Corrección. Se agregan los controles de NOTNULL a los atributos de Cliente y de Agente Comercial.\n* [[FORM:Presupuesto]]. Corrección. Por diferencias aparentes en las versiones de la DB vs. ODBC se cambia el DataSource de [[FORM:Presupuesto.DataCliente]] para que lo haga sobre la [[TABLA:contactos]] y no sobre la [[VISTA:clientes]].\n* [[FORM:Presupuesto]]. Corrección. Se agregan los controles de límites para los atributos de Ancho y Alto dentro de [[FORM:Presupuestos.Productos]].\n**El esquema funciona haciendo un llamado básicamente a la rutina indicada en [[MACRO:CheckValidMeasure]] ante los eventos de ItemChange de ambas columnas.\n**Se modifica el esquema de [[MACRO:EventoBRCDetallePresupuesto]] que gestionaba a la fecha escencialmente el alta de registros en [[TABLA:viquoten3]] transfiriendo esa ejecución del alta a traves de [[MACRO:AltaProductoPresupuesto]] que se ejecuta en [[MACRO:EventoARADetallePresupuesto]] con los parámetros de acción provenientes de [[MACRO:EventoBRADetallePresupuesto]]. Es precisamente la [[MACRO:EventoARADetallePresupuesto]], donde efectua el chequeo [[MACRO:CheckValidMeasure]], que siendo declarada como función, retorna el valor del chequeo para que se mantenga dentro del mismo control en el caso de error.\n**Esta modificación general permite que el refresco del Control correspondiente al Subtotal lo haga aún si presiona el ícono de grabar sin efectuar el \"gesture\" natural de la secuencia de ingreso de datos (presionar [Enter]) del registro en el [[FORM:Presupuesto.Productos.ProductosGrid]].\n\n====Release 20121024====\n=====Correcciones y Agregados=====\n* [[FORM:PosicionCRM]]. Corrección de Data Source.\n* [[RPRT:IndividualCRM]]. Corrección de Data Source y MakeUp Fecha Detalle\n* [[FORM:ConsultaClienteCRM]]. Corrección de Data Source de [[FORM:ConsultaClienteCRM.MainForm.SFSaldo]]\n* [[TABLA:magnitudes]]. Agregado de tabla\n====Release 20121005====\n=====Problemas Conocidos=====\n* [[FORM:PosicionCRM]]. Existen diferencias en los origenes de datos por lo que muestra diferentes resultados de [[FORM:ConsultaClientesCRM]]\n=====Correcciones y Agregados=====\n* [[PROC:AltaItemPresupuestoTmp]]. Corrección. Error en el procedimiento. El error radicaba en que la condición de los registros existentes dentro de la [[TABLA:vidquoten3tmp]] para evitar el agregado de esos mismos registro por parte del procedimiento desde la [[TABLA:componentes]]. Los valores que existían eran las constantes utilizadas para las pruebas. Se procede al reemplazo por parte de los parámetros provenientes de la función que llama al procedimiento. Se agrega además un parche para asignar el atributo ElementoPM para aquellos Elementos que no han arrastrado previamente por algún motivo este elemento al momento de grabar.\n* [[VISTA:proveedores]]. Cambio de formato del tag\n* [[PROC:CalculoPrecio]]. Agregado de los cálculos correspondientes a las nuevas magnitudes ALto y ANcho.\n* [[FORM:Presupuesto]]. Corrección. Ordenamiento del vector de ProductosDSC.\n* [[FORM:Presupuesto]]. Agregado. Se agrega la opción dentro del ListBox correspondiente a ProductosDSC de \"Selección de Filtro\". Lanza la [[MACRO:ControlLista]] y recupera el valor anterior con [[MACRO:ResetFiltroProductoFORMPresupuesto]].\n* [[FORM:Presupuesto]]. Corrección. Se agrega la función para afectar las eliminaciones de productos.\n* [[FORM:Presupuesto]]. Corrección. Se elimina el tabstop del campo de aprobado.\n* [[FORM:Aux000002]]. Corrección. Se cambia la Property de Add record.\n* [[MACRO:SugerenciaContactoID]]. Se agrega la distinción para que pueda ser leido correctamente desde [[FORM:Aux000002]].\n* [[FORM:Presupuesto]]. Se elimina la visualización del boton de prueba en la zona de Composicion.\n* [[FORM:Presupuesto]]. Se agrega valor por defecto en [[CTRL:Presupuesto.txtVidQuoteACom]]\n* [[FORM:Presupuesto]]. Se agrega la visualización del FORM:ComponentesDisplay desde [[MACRO:EventoWhenLoadingFormCabecera]]\n====Release 20120912====\n=====Problemas Conocidos=====\n* [[FORM:Presupuesto]]. La ayuda específica de ingreso de la descripción de producto no funciona.\n* [[FORM:PosicionCRM]]. El reporte [[RPRT:IndividualCRM]] muestra problemas aleatorios en la última columna (despliega aleatoriamente decimales).\n=====Correcciones y Agregados=====\n* [[FORM:Presupuesto]]. Diseño. Agregado de Form:DataCliente para evitar repetir la consulta de los datos del cliente (descripción, coeficientes agregados, etc.)\n* [[FORM:Presupuesto]]. Diseño. Agregado de Form:DataAgente para evitar repetir la consulta ya que se agrega la modalidad de aplicar el coeficiente que tiene el agente comercial adicional al del cliente y a los definidos en el módulo de precios.\n* [[FORM:Presupuesto]]. Corrección. El [[CTRL:Presupuesto.ListaProducto]] pasa a depender de [[CTRL:Presupuesto.Cabecera]]\n* [[VISTA:acomerciales]]. Se cambia el nombre del ID principal por AComercialID y se agregan los datos de Coeficiente que proviene de la [[TABLA:contactos]].\n* [[TABLA:contactos]]. Se agrega un atributo que puede representar la fotografía o logo de la empresa contacto.\n* [[PROC:AltaItemPresupuesto]]. Correcciones y Test.\n* [[PROC:ActualizaItemPresupuesto]]. Correcciones y Test\n* [[TRIG:Actualiza_Item_Presupuesto]]. Creación en el evento SQL BEFORE UPDATE sobre [[TABLA:vidquoten2]] para reemplazar la ejecución del proceso de actualización en [[MACRO:EventoBRCDetallePresupuesto]]. Cuando activa el UPDATE, la [[MACRO:EventoBRCDetallePresupuesto]] solo refresca la [[TABLA:vidquoten3]]\n* [[PROC:CopiaPresupuesto]]. Reactivación a razón del rediseño [[FORM:Presupuesto]].\n* [[FORM:Presupuesto]]. Inclusion del ordenamiento por el atributo VidQuoteID dentro de [[TABLA:vidquoten1]]\n\n====Release 20120901====\n* [[FORM:Presupuesto]]. Cambio de diseño.\n* [[TABLA:precios]]. Agrega atributo para identificar el usuario del último cambio.\n* [[FORM:PreciosTabularNormal]]. Modificación. Agregado de columnas a la vista de la tabla. Fecha de última modificación y Usuario.\n* [[FORM:PreciosGeneral]]. Modificación. Ajustes de forma y agregado de columna de Usuario Evento.\n* [[FORM:ConsumoMasivoPrecios]]. Modificacion. Ajustes de forma y agregado de columnas a la vista de la tabla. Fecha de última modificación y Usuario.\n* [[FORM:Contactos]]. Ajuste y Rediseño. Se colocó el tipo de contacto en primer lugar para poder utilizar la función de sugerencia de código de contacto. Se rediseñó la función de sugerencia de código de contacto para que abarque todos los tipos de contactos.\n* [[VISTA:clientes]]. Cambio de condicion de la [[TABLA:contactos]] por cambio de tipo de variable del tag de clientes y el agregado de Coeficiente de MarkUp.\n* [[TABLA:telemecomp]]. Alta de Tabla.\n* [[FORM:ComposicionMasivoxProducto]]. Modificacion. Se cambió el tipo de lista de control del atributo ElementoPM\n* [[FORM:CopiaComposicion]]. Modificación. Se modificó el orden y el tipo de control de atributo ElementoPM\n* [[FORM:ComposicionProductoElemento]]. Modificacion. Se cambió el tipo de lista de control del atributo ElementoPM\n* [[FORM:CopiaComposicion]]. Corrección. Se actualizó la [[MACRO:CopiaComposicion]] para fijar posicion sobre la decisión de copiar datos anteriores\n* [[PROC:DuplicaProductoCompo]]. Se agrega el parámetro de descripción del producto destino.\n* [[TABLA:composicion]]. Agrega atributo ComposicID autoincremental para diferenciar aquellos que están duplicados.\n* [[FORM:ComposicionMasivoxProducto]]. Se edita para que adapte el ingreso del atributo Composic. Luego de las pruebas de test, la eliminación de un registro de Producto/Elemento similar, eliminaba todos los iguales.\n* [[TABLA:vidquoten3]]. Agrega atributo ComposicID autoincremental para diferenciar aquellos que están duplicados.\n* [[TABLA:vidquoten3tmp]]. Agrega atributo ComposicID para diferenciar aquellos que están duplicados.\n* [[PROC:AltaItemPresupuestoTmp]]. Se revisó e introdujeron los cambios asociados a la incorporación del atributo ComposicID de las [[TABLA:vidquoten3tmp]] y [[TABLA:vidquoten3]]\n* [[PROC:ActualizaPreciosTabular]]. Modificación. Corrección / Verificación de Fórmulas del Release 20120424.[[File:warning-icon-hi.png|20px]]\n* [[PROC:GrabaItemPresupuestoTmp]]. Generación para cerrar el círculo de edición de componentes durante el presupuesto.\n* [[PROC:ResetEdicionItemTmp]]. Creación para eliminar las registraciones temporarias en [[TABLA:vidquoten3tmp]]\n* [[FORM:Presupuesto]]. Cambios\n** Se habilita la posibilidad de solo consulta para todos los Presupuestos Aprobados con [[MACRO:ControlFormPresupuesto]].\n** Se limita la posibilidad de eliminar Presupuesto / Producto para Presupuestos Aprobados y se habilita el LOC (Last Opportunity Check) con [[MACRO:ConfirmaDeletePresupuesto]]\n** Chequeos [[FORM:PresupuestoV1.0]].\n***Form:Cabecera\n****[[MACRO:NewResetListBox]]: No es necesario. No se usa más la modificación del contenido del ListBox OTA.\n****[[MACRO:PresupuestoExpirado]]: Optimizar y agregar como función dentro de [[MACRO:ControlFormPresupuesto]]\n****[[MACRO:EventoWhenLoadingFromCabecera]]\n*****Confirmar [[MACRO:ChequeoLicenciaOK]]\n*****Eliminar limpieza ListBox\n*****Asigna default Fecha Presupuesto con [[MACRO:Hoy]]\n*****Eliminar Reset ListBoxes\n****[[MACRO:EventoBRADetallePresupuesto]]\n*****Sin Cambios\n****[[MACRO:EventoBRCDetallePresupuesto]]\n****[[MACRO:BotonActualizarPresupuesto]]\n*****Adaptación al nuevo [[PROC:ActualizaPreciosPresupuesto]]\n\n=== Versión 1 ===\n====Release 20120720====\n* [[FORM:Pagos]]. Creación.\n* [[TABLA:tdocumento]]. Rediseño. Se incorporan atributos para indicar cuales son los procesos que se incluye el documento para un posterior filtro.\n* [[FORM:ClientesCRM]]. Rediseño. Se reemplaza las tablas y se confecciona a partir de los presupuestos aprobados/pendientes y de las cobranzas.\n* [[FORM:Cobranzas]]. Modificación. Se agrega la posibilidad de asignación por cliente (cuenta corriente).\n* [[TABLA:accpayab]]. Creación.\n====Release 20120628====\n* [[FORM:Categorias]]. Rediseño. Se rediseña la interfaz de acuerdo a el nuevo lineamiento y se agrega un control de Grid para su mejor visualización.\n* [[FORM:PreciosGeneral]]. Rediseño. Se agrega el Control Grid sobre la [[TABLA:precios]] y los controles de navegación.\n* [[TABLA:vidquoten1]]. Se agrega el atributo para controlar si se efectua la medición en obra.\n====Release 20120627====\n* [[FORM:CopiaComposicion]]: Modificado: Se generan una nueva forma de copia duplicación de componentes. Se agregan además las funciones de Agregado masivo a partir de otro producto y de control de repetición de producto.\n* [[FORM:PresupuestoV1.0]]. Modificado. Se prepara el acceso de los Módulos permitiendo la copia de un módulo predefinido en forma completa.\n* [[FORM:ComposicionMasivoxProducto]]. Modificado. Se agrega un control de navegación para cada grupo de datos: Productos y Elementos.\n====Release 20120608====\n* [[FORM:Predefinidos]]. Creación. Genera una nueva instancia inicial con presupuestos \"preformateados\" que simulen un nivel inmediato superior al esquema Producto-Elemento-Parámetro que permitiría inicialmente generar anteproyectos. Queda pendiente el ingreso de este grupo como elemento manipulable.[[File:warning-icon-hi.png|20px]]\n* [[TABLA:predefcab]]. Creación\n* [[TABLA:predefdet]]. Creación\n====Release 20120515====\n* [[FORM:Productos]]. Modificación. Cambio del control de verificación del campo ProductoID. Cambio de Control y verificación en [[TABLA:productos]], [[TABLA:composicion]] y [[TABLA:precios]]. Se habilita función específica de verificación de integridad. Ok\n* [[FORM:Productos]]. Modificación. Corrección de código por bug en función iif en Basic en el evento AfterChangeRecordFORMProductos.\n* [[REPORTE:PresupuestoDirecto]]. Modificación. Agregado de Numéración de páginas para el caso de presupuestos de más de una hoja de extensión.\n* [[PROC:CalculaPrecioBase]]. Incorpora el cálculo de las magnitudes \"2H\" (cálculo en base a la altura indicada multiplicada por 2) y \"2W\" (cálculo en base al ancho indicado multiplicado por 2).\n* [[PROC:CalculoPrecio]]. Incorpora el cálculo de las magnitudes \"2H\" (cálculo en base a la altura indicada multiplicada por 2) y \"2W\" (cálculo en base al ancho indicado multiplicado por 2).\n* [[FORM:MasivoCoeficienteActualizacion]]. Asigna [[MACRO:CambioMasivoCoeficientesPrecios]] y agrega botón de limpieza con [[MACRO:LimpiarMasivoCoeficientesPrecios]]\n* [[PROC:CalculaPrecioBase]]. Modificación. Se agrega la alternativa dentro de la fórmula de Metro Lineal (ML) que calcule también en caso de:\n** Cuando se realice el calculo de componentes de un producto cuya valorización se debe definir Ancho y Alto (por si tiene elementos con magnitudes de Metro Cuadrado -M2-)\n** Cuando tenga algún componente que se refiera exclusivamente al Alto o Al Ancho, en cuyo caso se debe administrar el uso a través del CoeficienteAncho y CoeficienteAlto.[[File:warning-icon-hi.png|20px]]\n* [[PROC:CalculoPrecio]]. Modificación. Se agrega la alternativa dentro de la fórmula de Metro Lineal (ML) que calcule también en caso de:\n** Cuando se realice el calculo de componentes de un producto cuya valorización se debe definir Ancho y Alto (por si tiene elementos con magnitudes de Metro Cuadrado -M2-)\n** Cuando tenga algún componente que se refiera exclusivamente al Alto o Al Ancho, en cuyo caso se debe administrar el uso a través del CoeficienteAncho y CoeficienteAlto.[[File:warning-icon-hi.png|20px]]\n* [[PROC:CalculoMedidaReal]]. Se agrega la función para facilitar el cálculo de la medida real (con respecto al Vano) para la información para Producción.[[File:warning-icon-hi.png|20px]]\n====Release 20120507====\n* [[FORM:PrecioTabularXProceso]]. Modificación. Corrección posicion botones ejecución. Ok.\n* [[FORM:PrecioTabularXProceso]]. Modificación. Corrección alineamiento lbl Filtro. Ok.\n* [[FORM:PrecioTabularXProceso]]. Modificación. Agregado de Control de Navegación. Ok\n* [[FORM:Productos]]. Modificación. Agregado de Control de Navegación. Ok\n* [[FORM:PrecioTabularXProceso]]. Modificación. Agregado de Control de Navegación. Ok\n* [[FORM:PrecioTabuladoNormal]]. Modificación. Agregado de Control de Navegación. Ok\n* [[FORM:GestionMasivaXProducto]]. Modificación. Agregado de Control de Navegación. Ok\n* [[FORM:CambioMasivo]]. Modificación. Agregado de Control de Navegación. Ok\n* [[FORM:ComposicionProductos]]. Modificación. Agregado de Control de Navegación. Ok\n* [[FORM:GestionMasivaXElementos]]. Modificación. Agregado de Control de Navegación. Ok\n* [[FORM:GestionMasivaXElementos]]. Modificación. Agregado BoxControls, Activación de filtro. Ok\n====Release 20120424====\n* [[PROC:ActualizaPreciosTabular]]. Modificación. Corrección de Formulas.[[File:warning-icon-hi.png|20px]]\n====Release 20120409====\n* [[FORM:PresupuestoV1.0]]. Reemplazo de Iconos operativos por gráficos. Nuevo. Ok\n* [[FORM:PresupuestoV1.0]]. Agregado de Proceso de Copia de Presupuesto. Nuevo. Ok\n* [[FORM:PresupuestoV1.0]]. Agregado de Proceso de Filtro de Presupuestos con Boton On/Off. Nuevo. Ok\n* [[FORM:PresupuestoV1.0]]. Agregado de Hide/UnHide del Bloque de Parámetros de Elementos. Nuevo. Ok\n* [[TABLA:Precios]]. Reducción de decimales por cálculo automático de precios. Modificado. Ok.\n* [[FORM:Contactos]]. Reemplazo del Formulario por otro Diseño. Nuevo. Ok.\n* [[FORM:Contactos]]. Agregado de Proceso de Sugerencia de Contacto. Nuevo. Ok.\n* [[FORM:PrecioTabularNormal]]. Cambio de formato de campos de precios debido al cambio de estructura. Modificado. Ok.\n* [[FORM:MasivoCoeficientesActualizacion]]. Agregado de Formulario. Nuevo. Ok.\n* [[FORM:Productos]]. Cambio de Esquema de Filtro Inicial. Nuevo. Ok\n** Agregado de Esquema de Filtro.\n** Agregado de Hide/UnHide del Bloque de Filtro.\n* Corrección \"On Error\" en Acceso inicial a DB con 3 repeticiones posibles. Nuevo. Ok.\n* [[FORM:PresupuestoV1.0]]. Modificación. Corrección de los procesos de envío directo de correo al cliente. Ok.\n* [[FORM:PresupuestoV1.0]]. Modificación. Agregado del proceso de Aprobación de Presupuesto dentro del mismo formulario de ingreso / consulta para facilitar el proceso administrativo. Ok.\n* [[TABLA:Productos]]. Modificación. Agregado del atributo Reposicion. Ok. Enviado a Batch de Actualización de DB.\n* [[FORM:Productos]]. Modificación. Agregado del atributo Reposicion. Ok\n* [[FORM:Productos]]. Nuevo. Agregado de control tipo tabla en Filtro para búsqueda rápida. Ok\n* [[FORM:PresupuestoV1.0]]. Cambio de Relación entre DetallePresupuesto / Detalle Producto. Agregado de valores de Alto y Ancho. [[File:warning-icon-hi.png|20px]]\n* [[PROC:AltaItemPresupuesto]]. Modificacion. Cambio de esquema para incorporar subitems.\n* [[PROC:CalculoPrecio]]. Nuevo. Procedimiento para solo establecer el cálculo sin buscar los valores necesarios en [[VISTA:valprodadic]]\n====Release 20120328====\n* [[FORM:PresupuestoV1.0]]. Chequeo de Eliminación de Elemento Básico en Detalle de Producto. Nuevo. Ok\n* [[FORM:PresupuestoV1.0]]. Chequeo de incorporación de Elementos restantes. Modificado. Ok\n* [[FORM:PresupuestoV1.0]]. Imposibilidad de modificar un Elemento básico en un Presupuesto. Nuevo. Ok\n* [[FORM:PresupuestoV1.0]]. Cambio de esquema de Eventos en la cascada de subformularios. Modificado. Ok\n* [[FORM:PresupuestoV1.0]]. Incorporación de Botón de Actualización de Precios. Nuevo. Ok.\n* [[FORM:PrecioTabularXProceso]]. Cambio de Esquema de Filtro Inicial. Nuevo. Ok\n* [[FORM:PrecioTabularXProceso]]. Boton de limpieza campo Filtro. Nuevo. Ok\n* [[FORM:PrecioTabularXProceso]]. Cambio de Esquema de Filtro Inicial. Nuevo. Ok\n* [[FORM:PrecioTabularXProceso]]. Boton de limpieza campo Filtro. Nuevo. Ok\n* [[FORM:GestionMasivaPorProducto]]. Cambio de Esquema de Filtro Inicial. Nuevo. Ok\n* [[FORM:GestionMasivaPorProducto]]. Boton de limpieza campo Filtro. Nuevo. Ok\n* [[FORM:PreciosGeneral]]. Cambio de Esquema de Filtro Inicial. Nuevo. Ok\n* [[FORM:PreciosGeneral]]. Boton de limpieza campo Filtro. Nuevo. Ok\n* [[FORM:ProductosElementos]]. Eliminación Campo MarkUP. Modificado. Ok.\n* [[FORM:Contactos]]. Rediseño. Nuevo. En proceso de desarrollo.\n* Varios: Corrección de Acceso a URL de imagenes sobreimpresas de botones de acción. Correr carpeta \"Graficos\" como subdirectorio del main.\n====Release 20120112====\n* Activación de Wiki\n* Desarrollo y test de [[TRIGGER:Alta_Productos]]\n* Modificación de [[VISTA:visindetpre]]\n* Modificación de [[TABLA:composicion]]\n** Default values para Coeficientes Alto/Ancho y Offset Alto/Ancho\n====Release 20120113====\n* Alta Formulario Presupuesto: Aprobación\n** Por el período de prueba se visualizan todos los valores de VidQuoteEstado.\n* Alta Formulario Presupuestos Aprobados\n* Modificación Formulario Presupuesto: Alta + Pendientes\n** Solo se visualizarán los VidQuoteEstado<>1\n* Modificación de Mantenimiento>Productos\n** Control de ingreso de Magnitudes\n* Test Formulario Presupuesto\n** Errores generados por combinación padre-hijo-nieto en el esquema de VidQuoteEstado<>1.<br/><strike>El error estaba dado porque cuando daba de alta el registro de VidQuoten1 con VidQuoteEstado=NULL, grababa el registro saltaba al subformulario (bug?) pero no tenía referencia posible ya que se encontraba vigente el filtro VidQuoteEstado<>1 y perdía el registro padre, entonces duplicaba los registros hijo y generaba error de insert record por duplicación de clave.<br/>Se procedió a definir por default el valor 0 para el atributo VidQuoteEstado</Strike>\n====Release 20120118====\n* Modificación [[FORM:PresupuestoV1.0]]>Alta + Pendientes:\n** Se detecta la incompatibilidad en la integración de Triggers en MySQL - ODBC - LibreOffice.\n** Búsqueda de soluciones a partir de comportamiento de Eventos. Se cambia la gestión de resultados del despliegue de datos de Precios por código asociado al cambio de valores dentro del grid.\n** Se generan las funciones de usuario de Cálculo de Precio\n====Release 20120119====\n* Continua de 20120118\n** Se procede a eliminar los Triggers asociados a TABLA:vidquoten2\n** Se genera el procedimiento de Alta obligatoria de elementos asociados a producto\n====Release 20120120====\n* Modificación [[FORM:PresupuestoV1.0]]>Alta + Pendientes:\n** Se realiza código para reemplazar los Triggers asociados a TABLA:vidquoten2\n*** Se activan los eventos de BeforeAction para controlar la operación y AfterAction para ejecutar la operación. Se confeccionan procedimientos de control de registraciones\n*** Se activan los eventos de para la corrección de atributos de SUBFORM:DetalleProducto\n====Release 20120122====\n* Modificación de TABLA:contactos. Se agrega el atributo ContactoIDAbrv (\"Abreviatura\").\n* Modificación FORM:Contactos: Se agrega el atributo ContactoIDAbrv (\"Abreviatura\").\n* Modificación VISTA:Proveedores: Se agrega el atributo Abreviatura (\"Abreviatura\")\n* Modificación FORM:Productos: Se agregan los atributos Coeficientes Precios 1/2/3 y Proveedor.\n* Modificación FORM:Productos: Se corrige el ListBox de Magnitud y se cambia el ValueList por la consulta de la TABLA:Productos de las magnitudes existentes.\n====Release 20120123====\n* Control de Procedimiento de Impresión asignada (REPORT:Presupuesto Directo). OK.\n* Investigación sobre com.sun...executeDispatch\n* Investigación sobre Environmental Variables + MAC\n* Investigación sobre ExportToPDF Method.\n====Release 20120124====\n* Funcionalidad a botón de [[FORM:PresupuestoV1.0]]>Alta+Pendientes sobre envío de Correo.\n** Se detecta un bug en la integración Thunderbird - LibreOffice Basic: La bandera de \"No mostrar Dialogo\" no funciona.\n====Release 20120125====\n* Agregado de Agente Comercial\n** Agregado en [[TABLA:vidquoten1]]\n** Agregado en [[TABLA:contactos]]\n** Agregado de [[VISTA:acomerciales]]\n** Modificación de [[FORM:Contactos]].\n*** Agregado de Option\n** Modificación de [[FORM:Presupuestos>Alta+Pendientes]]\n*** Agregado de campo AComercial con Listbox en Abreviatura del ContactoID.\n====Release 20120127====\n* Modificacion [[TRIGGER:Alta_Producto]]\n** Agrega registro de Producto Básico en [[TABLA:composicion]].\n====Release 20120203====\n* Generación de [[REPORTE:Composicion.Productos]]\n* Generación de [[REPORTE:Lista.Precios.Vigentes]]\n* Generación de [[REPORTE:Contactos.Resumen]]\n* Modificación de [[REPORTE:Presupuesto]]\n** Ampliar Campo Producto\n** Cambiar variable filtro por \"_\"\n** Cambiar Dirección de Cliente.\n====Release 20120206====\n* Modificación [[TABLA:productos]]\n** Agregado ProductoPID:VARCHAR(15).\n** Identifica el código puente del proveedor para hacer el pedido correspondiente\n* Modificación [[FORM:productos]]\n** Agregado de campo de código puente','utf-8'),(926,'===Esquema de Actualizaciones===\n*[[Actualizacion DB]]\n\n=== Versión 1.1 ===\n====Release 20121201====\n=====Problemas Conocidos=====\n*[[FORM:Presupuesto]]. Aleatoriamente no hace el cálculo o no lo refresca correctamente.\n*[[TKT:FZG.000001]]. Se corrompe el archivo manifiest.rdf propio de la instalación del equipamiento laptop.\n*[[TKT:FZG.000002]]. Se detecta que no se propagan las características de los elementos componentes con niveles de composición adicional. Se hizo tarea de cosmética sobre [[PROC:CalculoPrecio]]. Se modificaron los [[PROC:AltaItemPresupuesto]] y [[PROC:AltaItemPresupuestoTmp]]. Se procedió a:\n**Multiplicar los coeficientes\n**Sumar los Offset\n\n=====Correcciones y Agregados=====\n*[[FORM:Modulos]]. Rediseño del originario [[FORM:Predefinidos]] y puesta en producción.\n*[[FORM:Modulos]]. Cambio de diseño para incluir el [[FORM:Modulos.FormModulos.FormDetalleProducto.FormSubSet]] como control para el ingreso de ocurrencias de subconjuntos de lineas de control. Se crea la [[MACRO:ChangeFieldtxtSubSetTPFORMModulos]] para la validación del identificativo de Wide/Height del elemento.\n*[[TABLA:modulosdet]]. Cambio de esquema para albergar ocurrencias de Subconjuntos de \"lineas de control\" con el alta de la [[TABLA:modulossbs]].\n\n====Release 20121030====\n=====Problemas Conocidos=====\n*Aleatoriamente no elimina registros y cuando se visualiza o refresca la tabla, hace shutdown de la sesión\n=====Correcciones y Agregados=====\n* [[MACRO:AprobacionPresupuesto]]. Corrección. Se modifica la acción posterior de redespliegue de subformularios eliminando las instrucciones anteriores y sumando la rutina [[MACRO:ControlFormPresupuesto]]\n====Release 20121029====\n=====Problemas Conocidos=====\n=====Correcciones y Agregados=====\n* [[TABLA:vidquoten1]]. Corrección. Se agregan los controles de NOTNULL a los atributos de Cliente y de Agente Comercial.\n* [[FORM:Presupuesto]]. Corrección. Por diferencias aparentes en las versiones de la DB vs. ODBC se cambia el DataSource de [[FORM:Presupuesto.DataCliente]] para que lo haga sobre la [[TABLA:contactos]] y no sobre la [[VISTA:clientes]].\n* [[FORM:Presupuesto]]. Corrección. Se agregan los controles de límites para los atributos de Ancho y Alto dentro de [[FORM:Presupuestos.Productos]].\n**El esquema funciona haciendo un llamado básicamente a la rutina indicada en [[MACRO:CheckValidMeasure]] ante los eventos de ItemChange de ambas columnas.\n**Se modifica el esquema de [[MACRO:EventoBRCDetallePresupuesto]] que gestionaba a la fecha escencialmente el alta de registros en [[TABLA:viquoten3]] transfiriendo esa ejecución del alta a traves de [[MACRO:AltaProductoPresupuesto]] que se ejecuta en [[MACRO:EventoARADetallePresupuesto]] con los parámetros de acción provenientes de [[MACRO:EventoBRADetallePresupuesto]]. Es precisamente la [[MACRO:EventoARADetallePresupuesto]], donde efectua el chequeo [[MACRO:CheckValidMeasure]], que siendo declarada como función, retorna el valor del chequeo para que se mantenga dentro del mismo control en el caso de error.\n**Esta modificación general permite que el refresco del Control correspondiente al Subtotal lo haga aún si presiona el ícono de grabar sin efectuar el \"gesture\" natural de la secuencia de ingreso de datos (presionar [Enter]) del registro en el [[FORM:Presupuesto.Productos.ProductosGrid]].\n\n====Release 20121024====\n=====Correcciones y Agregados=====\n* [[FORM:PosicionCRM]]. Corrección de Data Source.\n* [[RPRT:IndividualCRM]]. Corrección de Data Source y MakeUp Fecha Detalle\n* [[FORM:ConsultaClienteCRM]]. Corrección de Data Source de [[FORM:ConsultaClienteCRM.MainForm.SFSaldo]]\n* [[TABLA:magnitudes]]. Agregado de tabla\n====Release 20121005====\n=====Problemas Conocidos=====\n* [[FORM:PosicionCRM]]. Existen diferencias en los origenes de datos por lo que muestra diferentes resultados de [[FORM:ConsultaClientesCRM]]\n=====Correcciones y Agregados=====\n* [[PROC:AltaItemPresupuestoTmp]]. Corrección. Error en el procedimiento. El error radicaba en que la condición de los registros existentes dentro de la [[TABLA:vidquoten3tmp]] para evitar el agregado de esos mismos registro por parte del procedimiento desde la [[TABLA:componentes]]. Los valores que existían eran las constantes utilizadas para las pruebas. Se procede al reemplazo por parte de los parámetros provenientes de la función que llama al procedimiento. Se agrega además un parche para asignar el atributo ElementoPM para aquellos Elementos que no han arrastrado previamente por algún motivo este elemento al momento de grabar.\n* [[VISTA:proveedores]]. Cambio de formato del tag\n* [[PROC:CalculoPrecio]]. Agregado de los cálculos correspondientes a las nuevas magnitudes ALto y ANcho.\n* [[FORM:Presupuesto]]. Corrección. Ordenamiento del vector de ProductosDSC.\n* [[FORM:Presupuesto]]. Agregado. Se agrega la opción dentro del ListBox correspondiente a ProductosDSC de \"Selección de Filtro\". Lanza la [[MACRO:ControlLista]] y recupera el valor anterior con [[MACRO:ResetFiltroProductoFORMPresupuesto]].\n* [[FORM:Presupuesto]]. Corrección. Se agrega la función para afectar las eliminaciones de productos.\n* [[FORM:Presupuesto]]. Corrección. Se elimina el tabstop del campo de aprobado.\n* [[FORM:Aux000002]]. Corrección. Se cambia la Property de Add record.\n* [[MACRO:SugerenciaContactoID]]. Se agrega la distinción para que pueda ser leido correctamente desde [[FORM:Aux000002]].\n* [[FORM:Presupuesto]]. Se elimina la visualización del boton de prueba en la zona de Composicion.\n* [[FORM:Presupuesto]]. Se agrega valor por defecto en [[CTRL:Presupuesto.txtVidQuoteACom]]\n* [[FORM:Presupuesto]]. Se agrega la visualización del FORM:ComponentesDisplay desde [[MACRO:EventoWhenLoadingFormCabecera]]\n====Release 20120912====\n=====Problemas Conocidos=====\n* [[FORM:Presupuesto]]. La ayuda específica de ingreso de la descripción de producto no funciona.\n* [[FORM:PosicionCRM]]. El reporte [[RPRT:IndividualCRM]] muestra problemas aleatorios en la última columna (despliega aleatoriamente decimales).\n=====Correcciones y Agregados=====\n* [[FORM:Presupuesto]]. Diseño. Agregado de Form:DataCliente para evitar repetir la consulta de los datos del cliente (descripción, coeficientes agregados, etc.)\n* [[FORM:Presupuesto]]. Diseño. Agregado de Form:DataAgente para evitar repetir la consulta ya que se agrega la modalidad de aplicar el coeficiente que tiene el agente comercial adicional al del cliente y a los definidos en el módulo de precios.\n* [[FORM:Presupuesto]]. Corrección. El [[CTRL:Presupuesto.ListaProducto]] pasa a depender de [[CTRL:Presupuesto.Cabecera]]\n* [[VISTA:acomerciales]]. Se cambia el nombre del ID principal por AComercialID y se agregan los datos de Coeficiente que proviene de la [[TABLA:contactos]].\n* [[TABLA:contactos]]. Se agrega un atributo que puede representar la fotografía o logo de la empresa contacto.\n* [[PROC:AltaItemPresupuesto]]. Correcciones y Test.\n* [[PROC:ActualizaItemPresupuesto]]. Correcciones y Test\n* [[TRIG:Actualiza_Item_Presupuesto]]. Creación en el evento SQL BEFORE UPDATE sobre [[TABLA:vidquoten2]] para reemplazar la ejecución del proceso de actualización en [[MACRO:EventoBRCDetallePresupuesto]]. Cuando activa el UPDATE, la [[MACRO:EventoBRCDetallePresupuesto]] solo refresca la [[TABLA:vidquoten3]]\n* [[PROC:CopiaPresupuesto]]. Reactivación a razón del rediseño [[FORM:Presupuesto]].\n* [[FORM:Presupuesto]]. Inclusion del ordenamiento por el atributo VidQuoteID dentro de [[TABLA:vidquoten1]]\n\n====Release 20120901====\n* [[FORM:Presupuesto]]. Cambio de diseño.\n* [[TABLA:precios]]. Agrega atributo para identificar el usuario del último cambio.\n* [[FORM:PreciosTabularNormal]]. Modificación. Agregado de columnas a la vista de la tabla. Fecha de última modificación y Usuario.\n* [[FORM:PreciosGeneral]]. Modificación. Ajustes de forma y agregado de columna de Usuario Evento.\n* [[FORM:ConsumoMasivoPrecios]]. Modificacion. Ajustes de forma y agregado de columnas a la vista de la tabla. Fecha de última modificación y Usuario.\n* [[FORM:Contactos]]. Ajuste y Rediseño. Se colocó el tipo de contacto en primer lugar para poder utilizar la función de sugerencia de código de contacto. Se rediseñó la función de sugerencia de código de contacto para que abarque todos los tipos de contactos.\n* [[VISTA:clientes]]. Cambio de condicion de la [[TABLA:contactos]] por cambio de tipo de variable del tag de clientes y el agregado de Coeficiente de MarkUp.\n* [[TABLA:telemecomp]]. Alta de Tabla.\n* [[FORM:ComposicionMasivoxProducto]]. Modificacion. Se cambió el tipo de lista de control del atributo ElementoPM\n* [[FORM:CopiaComposicion]]. Modificación. Se modificó el orden y el tipo de control de atributo ElementoPM\n* [[FORM:ComposicionProductoElemento]]. Modificacion. Se cambió el tipo de lista de control del atributo ElementoPM\n* [[FORM:CopiaComposicion]]. Corrección. Se actualizó la [[MACRO:CopiaComposicion]] para fijar posicion sobre la decisión de copiar datos anteriores\n* [[PROC:DuplicaProductoCompo]]. Se agrega el parámetro de descripción del producto destino.\n* [[TABLA:composicion]]. Agrega atributo ComposicID autoincremental para diferenciar aquellos que están duplicados.\n* [[FORM:ComposicionMasivoxProducto]]. Se edita para que adapte el ingreso del atributo Composic. Luego de las pruebas de test, la eliminación de un registro de Producto/Elemento similar, eliminaba todos los iguales.\n* [[TABLA:vidquoten3]]. Agrega atributo ComposicID autoincremental para diferenciar aquellos que están duplicados.\n* [[TABLA:vidquoten3tmp]]. Agrega atributo ComposicID para diferenciar aquellos que están duplicados.\n* [[PROC:AltaItemPresupuestoTmp]]. Se revisó e introdujeron los cambios asociados a la incorporación del atributo ComposicID de las [[TABLA:vidquoten3tmp]] y [[TABLA:vidquoten3]]\n* [[PROC:ActualizaPreciosTabular]]. Modificación. Corrección / Verificación de Fórmulas del Release 20120424.[[File:warning-icon-hi.png|20px]]\n* [[PROC:GrabaItemPresupuestoTmp]]. Generación para cerrar el círculo de edición de componentes durante el presupuesto.\n* [[PROC:ResetEdicionItemTmp]]. Creación para eliminar las registraciones temporarias en [[TABLA:vidquoten3tmp]]\n* [[FORM:Presupuesto]]. Cambios\n** Se habilita la posibilidad de solo consulta para todos los Presupuestos Aprobados con [[MACRO:ControlFormPresupuesto]].\n** Se limita la posibilidad de eliminar Presupuesto / Producto para Presupuestos Aprobados y se habilita el LOC (Last Opportunity Check) con [[MACRO:ConfirmaDeletePresupuesto]]\n** Chequeos [[FORM:PresupuestoV1.0]].\n***Form:Cabecera\n****[[MACRO:NewResetListBox]]: No es necesario. No se usa más la modificación del contenido del ListBox OTA.\n****[[MACRO:PresupuestoExpirado]]: Optimizar y agregar como función dentro de [[MACRO:ControlFormPresupuesto]]\n****[[MACRO:EventoWhenLoadingFromCabecera]]\n*****Confirmar [[MACRO:ChequeoLicenciaOK]]\n*****Eliminar limpieza ListBox\n*****Asigna default Fecha Presupuesto con [[MACRO:Hoy]]\n*****Eliminar Reset ListBoxes\n****[[MACRO:EventoBRADetallePresupuesto]]\n*****Sin Cambios\n****[[MACRO:EventoBRCDetallePresupuesto]]\n****[[MACRO:BotonActualizarPresupuesto]]\n*****Adaptación al nuevo [[PROC:ActualizaPreciosPresupuesto]]\n\n=== Versión 1 ===\n====Release 20120720====\n* [[FORM:Pagos]]. Creación.\n* [[TABLA:tdocumento]]. Rediseño. Se incorporan atributos para indicar cuales son los procesos que se incluye el documento para un posterior filtro.\n* [[FORM:ClientesCRM]]. Rediseño. Se reemplaza las tablas y se confecciona a partir de los presupuestos aprobados/pendientes y de las cobranzas.\n* [[FORM:Cobranzas]]. Modificación. Se agrega la posibilidad de asignación por cliente (cuenta corriente).\n* [[TABLA:accpayab]]. Creación.\n====Release 20120628====\n* [[FORM:Categorias]]. Rediseño. Se rediseña la interfaz de acuerdo a el nuevo lineamiento y se agrega un control de Grid para su mejor visualización.\n* [[FORM:PreciosGeneral]]. Rediseño. Se agrega el Control Grid sobre la [[TABLA:precios]] y los controles de navegación.\n* [[TABLA:vidquoten1]]. Se agrega el atributo para controlar si se efectua la medición en obra.\n====Release 20120627====\n* [[FORM:CopiaComposicion]]: Modificado: Se generan una nueva forma de copia duplicación de componentes. Se agregan además las funciones de Agregado masivo a partir de otro producto y de control de repetición de producto.\n* [[FORM:PresupuestoV1.0]]. Modificado. Se prepara el acceso de los Módulos permitiendo la copia de un módulo predefinido en forma completa.\n* [[FORM:ComposicionMasivoxProducto]]. Modificado. Se agrega un control de navegación para cada grupo de datos: Productos y Elementos.\n====Release 20120608====\n* [[FORM:Predefinidos]]. Creación. Genera una nueva instancia inicial con presupuestos \"preformateados\" que simulen un nivel inmediato superior al esquema Producto-Elemento-Parámetro que permitiría inicialmente generar anteproyectos. Queda pendiente el ingreso de este grupo como elemento manipulable.[[File:warning-icon-hi.png|20px]]\n* [[TABLA:predefcab]]. Creación\n* [[TABLA:predefdet]]. Creación\n====Release 20120515====\n* [[FORM:Productos]]. Modificación. Cambio del control de verificación del campo ProductoID. Cambio de Control y verificación en [[TABLA:productos]], [[TABLA:composicion]] y [[TABLA:precios]]. Se habilita función específica de verificación de integridad. Ok\n* [[FORM:Productos]]. Modificación. Corrección de código por bug en función iif en Basic en el evento AfterChangeRecordFORMProductos.\n* [[REPORTE:PresupuestoDirecto]]. Modificación. Agregado de Numéración de páginas para el caso de presupuestos de más de una hoja de extensión.\n* [[PROC:CalculaPrecioBase]]. Incorpora el cálculo de las magnitudes \"2H\" (cálculo en base a la altura indicada multiplicada por 2) y \"2W\" (cálculo en base al ancho indicado multiplicado por 2).\n* [[PROC:CalculoPrecio]]. Incorpora el cálculo de las magnitudes \"2H\" (cálculo en base a la altura indicada multiplicada por 2) y \"2W\" (cálculo en base al ancho indicado multiplicado por 2).\n* [[FORM:MasivoCoeficienteActualizacion]]. Asigna [[MACRO:CambioMasivoCoeficientesPrecios]] y agrega botón de limpieza con [[MACRO:LimpiarMasivoCoeficientesPrecios]]\n* [[PROC:CalculaPrecioBase]]. Modificación. Se agrega la alternativa dentro de la fórmula de Metro Lineal (ML) que calcule también en caso de:\n** Cuando se realice el calculo de componentes de un producto cuya valorización se debe definir Ancho y Alto (por si tiene elementos con magnitudes de Metro Cuadrado -M2-)\n** Cuando tenga algún componente que se refiera exclusivamente al Alto o Al Ancho, en cuyo caso se debe administrar el uso a través del CoeficienteAncho y CoeficienteAlto.[[File:warning-icon-hi.png|20px]]\n* [[PROC:CalculoPrecio]]. Modificación. Se agrega la alternativa dentro de la fórmula de Metro Lineal (ML) que calcule también en caso de:\n** Cuando se realice el calculo de componentes de un producto cuya valorización se debe definir Ancho y Alto (por si tiene elementos con magnitudes de Metro Cuadrado -M2-)\n** Cuando tenga algún componente que se refiera exclusivamente al Alto o Al Ancho, en cuyo caso se debe administrar el uso a través del CoeficienteAncho y CoeficienteAlto.[[File:warning-icon-hi.png|20px]]\n* [[PROC:CalculoMedidaReal]]. Se agrega la función para facilitar el cálculo de la medida real (con respecto al Vano) para la información para Producción.[[File:warning-icon-hi.png|20px]]\n====Release 20120507====\n* [[FORM:PrecioTabularXProceso]]. Modificación. Corrección posicion botones ejecución. Ok.\n* [[FORM:PrecioTabularXProceso]]. Modificación. Corrección alineamiento lbl Filtro. Ok.\n* [[FORM:PrecioTabularXProceso]]. Modificación. Agregado de Control de Navegación. Ok\n* [[FORM:Productos]]. Modificación. Agregado de Control de Navegación. Ok\n* [[FORM:PrecioTabularXProceso]]. Modificación. Agregado de Control de Navegación. Ok\n* [[FORM:PrecioTabuladoNormal]]. Modificación. Agregado de Control de Navegación. Ok\n* [[FORM:GestionMasivaXProducto]]. Modificación. Agregado de Control de Navegación. Ok\n* [[FORM:CambioMasivo]]. Modificación. Agregado de Control de Navegación. Ok\n* [[FORM:ComposicionProductos]]. Modificación. Agregado de Control de Navegación. Ok\n* [[FORM:GestionMasivaXElementos]]. Modificación. Agregado de Control de Navegación. Ok\n* [[FORM:GestionMasivaXElementos]]. Modificación. Agregado BoxControls, Activación de filtro. Ok\n====Release 20120424====\n* [[PROC:ActualizaPreciosTabular]]. Modificación. Corrección de Formulas.[[File:warning-icon-hi.png|20px]]\n====Release 20120409====\n* [[FORM:PresupuestoV1.0]]. Reemplazo de Iconos operativos por gráficos. Nuevo. Ok\n* [[FORM:PresupuestoV1.0]]. Agregado de Proceso de Copia de Presupuesto. Nuevo. Ok\n* [[FORM:PresupuestoV1.0]]. Agregado de Proceso de Filtro de Presupuestos con Boton On/Off. Nuevo. Ok\n* [[FORM:PresupuestoV1.0]]. Agregado de Hide/UnHide del Bloque de Parámetros de Elementos. Nuevo. Ok\n* [[TABLA:Precios]]. Reducción de decimales por cálculo automático de precios. Modificado. Ok.\n* [[FORM:Contactos]]. Reemplazo del Formulario por otro Diseño. Nuevo. Ok.\n* [[FORM:Contactos]]. Agregado de Proceso de Sugerencia de Contacto. Nuevo. Ok.\n* [[FORM:PrecioTabularNormal]]. Cambio de formato de campos de precios debido al cambio de estructura. Modificado. Ok.\n* [[FORM:MasivoCoeficientesActualizacion]]. Agregado de Formulario. Nuevo. Ok.\n* [[FORM:Productos]]. Cambio de Esquema de Filtro Inicial. Nuevo. Ok\n** Agregado de Esquema de Filtro.\n** Agregado de Hide/UnHide del Bloque de Filtro.\n* Corrección \"On Error\" en Acceso inicial a DB con 3 repeticiones posibles. Nuevo. Ok.\n* [[FORM:PresupuestoV1.0]]. Modificación. Corrección de los procesos de envío directo de correo al cliente. Ok.\n* [[FORM:PresupuestoV1.0]]. Modificación. Agregado del proceso de Aprobación de Presupuesto dentro del mismo formulario de ingreso / consulta para facilitar el proceso administrativo. Ok.\n* [[TABLA:Productos]]. Modificación. Agregado del atributo Reposicion. Ok. Enviado a Batch de Actualización de DB.\n* [[FORM:Productos]]. Modificación. Agregado del atributo Reposicion. Ok\n* [[FORM:Productos]]. Nuevo. Agregado de control tipo tabla en Filtro para búsqueda rápida. Ok\n* [[FORM:PresupuestoV1.0]]. Cambio de Relación entre DetallePresupuesto / Detalle Producto. Agregado de valores de Alto y Ancho. [[File:warning-icon-hi.png|20px]]\n* [[PROC:AltaItemPresupuesto]]. Modificacion. Cambio de esquema para incorporar subitems.\n* [[PROC:CalculoPrecio]]. Nuevo. Procedimiento para solo establecer el cálculo sin buscar los valores necesarios en [[VISTA:valprodadic]]\n====Release 20120328====\n* [[FORM:PresupuestoV1.0]]. Chequeo de Eliminación de Elemento Básico en Detalle de Producto. Nuevo. Ok\n* [[FORM:PresupuestoV1.0]]. Chequeo de incorporación de Elementos restantes. Modificado. Ok\n* [[FORM:PresupuestoV1.0]]. Imposibilidad de modificar un Elemento básico en un Presupuesto. Nuevo. Ok\n* [[FORM:PresupuestoV1.0]]. Cambio de esquema de Eventos en la cascada de subformularios. Modificado. Ok\n* [[FORM:PresupuestoV1.0]]. Incorporación de Botón de Actualización de Precios. Nuevo. Ok.\n* [[FORM:PrecioTabularXProceso]]. Cambio de Esquema de Filtro Inicial. Nuevo. Ok\n* [[FORM:PrecioTabularXProceso]]. Boton de limpieza campo Filtro. Nuevo. Ok\n* [[FORM:PrecioTabularXProceso]]. Cambio de Esquema de Filtro Inicial. Nuevo. Ok\n* [[FORM:PrecioTabularXProceso]]. Boton de limpieza campo Filtro. Nuevo. Ok\n* [[FORM:GestionMasivaPorProducto]]. Cambio de Esquema de Filtro Inicial. Nuevo. Ok\n* [[FORM:GestionMasivaPorProducto]]. Boton de limpieza campo Filtro. Nuevo. Ok\n* [[FORM:PreciosGeneral]]. Cambio de Esquema de Filtro Inicial. Nuevo. Ok\n* [[FORM:PreciosGeneral]]. Boton de limpieza campo Filtro. Nuevo. Ok\n* [[FORM:ProductosElementos]]. Eliminación Campo MarkUP. Modificado. Ok.\n* [[FORM:Contactos]]. Rediseño. Nuevo. En proceso de desarrollo.\n* Varios: Corrección de Acceso a URL de imagenes sobreimpresas de botones de acción. Correr carpeta \"Graficos\" como subdirectorio del main.\n====Release 20120112====\n* Activación de Wiki\n* Desarrollo y test de [[TRIGGER:Alta_Productos]]\n* Modificación de [[VISTA:visindetpre]]\n* Modificación de [[TABLA:composicion]]\n** Default values para Coeficientes Alto/Ancho y Offset Alto/Ancho\n====Release 20120113====\n* Alta Formulario Presupuesto: Aprobación\n** Por el período de prueba se visualizan todos los valores de VidQuoteEstado.\n* Alta Formulario Presupuestos Aprobados\n* Modificación Formulario Presupuesto: Alta + Pendientes\n** Solo se visualizarán los VidQuoteEstado<>1\n* Modificación de Mantenimiento>Productos\n** Control de ingreso de Magnitudes\n* Test Formulario Presupuesto\n** Errores generados por combinación padre-hijo-nieto en el esquema de VidQuoteEstado<>1.<br/><strike>El error estaba dado porque cuando daba de alta el registro de VidQuoten1 con VidQuoteEstado=NULL, grababa el registro saltaba al subformulario (bug?) pero no tenía referencia posible ya que se encontraba vigente el filtro VidQuoteEstado<>1 y perdía el registro padre, entonces duplicaba los registros hijo y generaba error de insert record por duplicación de clave.<br/>Se procedió a definir por default el valor 0 para el atributo VidQuoteEstado</Strike>\n====Release 20120118====\n* Modificación [[FORM:PresupuestoV1.0]]>Alta + Pendientes:\n** Se detecta la incompatibilidad en la integración de Triggers en MySQL - ODBC - LibreOffice.\n** Búsqueda de soluciones a partir de comportamiento de Eventos. Se cambia la gestión de resultados del despliegue de datos de Precios por código asociado al cambio de valores dentro del grid.\n** Se generan las funciones de usuario de Cálculo de Precio\n====Release 20120119====\n* Continua de 20120118\n** Se procede a eliminar los Triggers asociados a TABLA:vidquoten2\n** Se genera el procedimiento de Alta obligatoria de elementos asociados a producto\n====Release 20120120====\n* Modificación [[FORM:PresupuestoV1.0]]>Alta + Pendientes:\n** Se realiza código para reemplazar los Triggers asociados a TABLA:vidquoten2\n*** Se activan los eventos de BeforeAction para controlar la operación y AfterAction para ejecutar la operación. Se confeccionan procedimientos de control de registraciones\n*** Se activan los eventos de para la corrección de atributos de SUBFORM:DetalleProducto\n====Release 20120122====\n* Modificación de TABLA:contactos. Se agrega el atributo ContactoIDAbrv (\"Abreviatura\").\n* Modificación FORM:Contactos: Se agrega el atributo ContactoIDAbrv (\"Abreviatura\").\n* Modificación VISTA:Proveedores: Se agrega el atributo Abreviatura (\"Abreviatura\")\n* Modificación FORM:Productos: Se agregan los atributos Coeficientes Precios 1/2/3 y Proveedor.\n* Modificación FORM:Productos: Se corrige el ListBox de Magnitud y se cambia el ValueList por la consulta de la TABLA:Productos de las magnitudes existentes.\n====Release 20120123====\n* Control de Procedimiento de Impresión asignada (REPORT:Presupuesto Directo). OK.\n* Investigación sobre com.sun...executeDispatch\n* Investigación sobre Environmental Variables + MAC\n* Investigación sobre ExportToPDF Method.\n====Release 20120124====\n* Funcionalidad a botón de [[FORM:PresupuestoV1.0]]>Alta+Pendientes sobre envío de Correo.\n** Se detecta un bug en la integración Thunderbird - LibreOffice Basic: La bandera de \"No mostrar Dialogo\" no funciona.\n====Release 20120125====\n* Agregado de Agente Comercial\n** Agregado en [[TABLA:vidquoten1]]\n** Agregado en [[TABLA:contactos]]\n** Agregado de [[VISTA:acomerciales]]\n** Modificación de [[FORM:Contactos]].\n*** Agregado de Option\n** Modificación de [[FORM:Presupuestos>Alta+Pendientes]]\n*** Agregado de campo AComercial con Listbox en Abreviatura del ContactoID.\n====Release 20120127====\n* Modificacion [[TRIGGER:Alta_Producto]]\n** Agrega registro de Producto Básico en [[TABLA:composicion]].\n====Release 20120203====\n* Generación de [[REPORTE:Composicion.Productos]]\n* Generación de [[REPORTE:Lista.Precios.Vigentes]]\n* Generación de [[REPORTE:Contactos.Resumen]]\n* Modificación de [[REPORTE:Presupuesto]]\n** Ampliar Campo Producto\n** Cambiar variable filtro por \"_\"\n** Cambiar Dirección de Cliente.\n====Release 20120206====\n* Modificación [[TABLA:productos]]\n** Agregado ProductoPID:VARCHAR(15).\n** Identifica el código puente del proveedor para hacer el pedido correspondiente\n* Modificación [[FORM:productos]]\n** Agregado de campo de código puente','utf-8'),(927,'#REDIRECCIÓN [[TKT:FZG.000006]]','utf-8'),(928,'#REDIRECCIÓN [[TKT:FZG.000002]]','utf-8'),(929,'#REDIRECCIÓN [[TKT:FZG.000003]]','utf-8'),(930,'#REDIRECCIÓN [[TKT:FZG.000004]]','utf-8'),(931,'#REDIRECCIÓN [[TKT:FZG.000005]]','utf-8'),(932,'Lista de Tickets de Soporte Pendientes','utf-8'),(933,'[[Category:PROC]]\n== Descripción ==\nFunción de cálculo de precio en base a los parametros indicados sin acceder a base de datos de precios, ya con el valor del precio del producto indicado (dependiendo del tipo de cliente)\n== Composición ==\nSolo función de cálculo\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<small><pre>\n-- --------------------------------------------------------------------------------\n-- Routine DDL\n-- Note: comments before and after the routine body will not be stored by the server\n-- --------------------------------------------------------------------------------\nDELIMITER $$\n\nCREATE FUNCTION `CalculoPrecio`(\n	pAncho INT(4),\n	pAlto INT(4),\n	pPrecioProd DECIMAL(10,2),\n	pMagnitud CHAR(2),\n	pOffsetVanoAlto INT(11),\n	pOffsetVanoAncho INT(11),\n	pCoefVanoAlto DECIMAL(16,8),\n	pCoefVanoAncho DECIMAL(16,8),\n	pValorElemento DECIMAL(16,8))\n		RETURNS decimal(10,2)\nBEGIN\n	DECLARE pPrecioBase DECIMAL(10,2);\n	CASE pMagnitud\n		WHEN \'M2\' THEN \n			SET pPrecioBase = ((((pAlto+pOffsetVanoAlto) * pCoefVanoAlto) * ((pAncho+pOffsetVanoAncho) *\n			pCoefVanoAncho))/1000000) *	pValorElemento * pPrecioProd;\n		WHEN \'PR\' THEN\n			SET pPrecioBase = ((((pAlto+pOffsetVanoAlto) * 2 * pCoefVanoAlto) + ((pAncho+pOffsetVanoAncho) * \n			2 * pCoefVanoAncho)) / 1000 ) * pValorElemento * pPrecioProd;\n		WHEN \'ML\' THEN\n			SET pPrecioBase = (((pAncho+pOffsetVanoAncho) * pCoefVanoAncho) / 1000 ) * pValorElemento * pPrecioProd;\n		WHEN \'AL\' THEN \n			SET pPrecioBase = (((pAlto+pOffsetVanoAlto) * pCoefVanoAlto) / 1000 ) * pValorElemento * pPrecioProd;\n		WHEN \'AN\' THEN \n			SET pPrecioBase = (((pAncho+pOffsetVanoAncho) * pCoefVanoAncho) / 1000 ) * pValorElemento * pPrecioProd;\n		WHEN \'MG\' THEN \n			SET pPrecioBase = ((((pAlto+pOffsetVanoAlto)*pCoefVanoAlto) + ((pAncho+pOffsetVanoAncho)*pCoefVanoAncho))/1000) *\n			pValorElemento * pPrecioProd;\n	  ELSE \n		SET pPrecioBase = pValorElemento * pPrecioProd;\n	END CASE;\n	RETURN pPrecioBase;\nEND\n</pre></small>\n\n== Bitácora ==\n*20121017\n**Agregado de las nuevas magnitudes aplicables al ALto y al ANcho. Anterior:\n<small><pre>\nCREATE  FUNCTION `CalculoPrecio`(pAncho INT(4),pAlto INT(4),pPrecioProd DECIMAL(10,2),pMagnitud CHAR(2),pOffsetVanoAlto INT(11),pOffsetVanoAncho INT(11),pCoefVanoAlto DECIMAL(16,8),pCoefVanoAncho DECIMAL(16,8),pValorElemento DECIMAL(16,8)) RETURNS decimal(10,2)\nBEGIN\nDECLARE pPrecioBase DECIMAL(10,2);\n	CASE pMagnitud\n		WHEN \'M2\' THEN SET pPrecioBase = ((((pAlto+pOffsetVanoAlto) * pCoefVanoAlto) * ((pAncho+pOffsetVanoAncho) * pCoefVanoAncho))/1000000) *	pValorElemento * pPrecioProd;\n		WHEN \'PR\' THEN SET pPrecioBase = ((((pAlto+pOffsetVanoAlto) * 2 * pCoefVanoAlto) + ((pAncho+pOffsetVanoAncho) * 2 * pCoefVanoAncho)) / 1000 ) * pValorElemento * pPrecioProd;\n		WHEN \'ML\' THEN SET pPrecioBase = (((pAncho+pOffsetVanoAncho) * pCoefVanoAncho) / 1000 ) * pValorElemento * pPrecioProd;\n		WHEN \'MG\' THEN SET pPrecioBase = ((((pAlto+pOffsetVanoAlto)*pCoefVanoAlto) + ((pAncho+pOffsetVanoAncho)*pCoefVanoAncho))/1000) * pValorElemento * pPrecioProd;\n		WHEN \'2H\' THEN SET pPrecioBase = (((pAlto+pOffsetVanoAlto)*pCoefVanoAlto) /1000) * pValorElemento * 2 * pPrecioProd;\n		WHEN \'2W\' THEN SET pPrecioBase = (((pAncho+pOffsetVanoAncho)*pCoefVanoAncho)/1000) * pValorElemento * 2 * pPrecioProd;\n		ELSE SET pPrecioBase = pValorElemento * pPrecioProd;\n	END CASE;\n	RETURN pPrecioBase;\nEND\n</pre></small>\n== Uso ==\n== URL ==','utf-8'),(934,'Lista de Procedimientos SQL','utf-8'),(935,'===Estructuras de Trabajo===\n*[[:Category:TABLAS|Tablas]]\n*[[:Category:VISTAS|Vistas]]\n*[[:Category:MACROS|Macros]]\n*[[:Category:RPRT|Informes]]\n*[[:Category:PROC|Procedimientos]]','utf-8'),(936,'Lista de Macros','utf-8'),(937,'Lista de Informes','utf-8'),(938,'[[Category:PROC]]\n== Descripcion ==\n<strike>Una vez que ingresa los datos básicos de un producto, verifica que este producto tenga alguna composicion (solo los elementos básicos). Si la tiene, divide el proceso en 2 partes\n#Une 2 grupos de datos dentro del mismo subconjunto\n##Todos los productos-elementos de la [[VISTA:visprodadic]] cuyo codigo de producto sea igual al código de producto madre y que sea \"propiamente dichos\" (cuyo código de producto sea igual al código de elemento)\n##Todos los productos-elementos de la [[VISTA:visprodadic]] cuyo codigo de producto sea igual al código de producto madre y el código de producto sea diferente al codigo de elemento.\n###Incluye todos los productos-elementos de un nivel inferior. Esto se realiza seleccionando los elementos de la composicion como si fuesen productos y esos productos son la clave de búsqueda dentro de la misma tabla de composición.</strike> \'\'\'20120917\'\'\'\nUna vez que ingresa los datos básicos de un producto, inserta en [[TABLA:vidquoten3]] los componentes del producto señalado (solo los elementos básicos). Divide el proceso en 2 partes\n#Une 2 grupos de datos dentro del mismo subconjunto\n##Todos los productos-elementos de [[TABLA:componentes]], [[TABLA:productos]] y [[TABLA:precios]] cuyo codigo de producto sea igual al código de producto madre y que sea \"propiamente dichos\" (cuyo código de producto sea igual al código de elemento)\n##Todos los productos-elementos de de [[TABLA:componentes]], [[TABLA:productos]] y [[TABLA:precios]] cuyo codigo de producto sea igual al código de producto madre y el código de producto sea diferente al codigo de elemento.\n###Incluye todos los productos-elementos de un nivel inferior. Esto se realiza seleccionando los elementos de la composicion como si fuesen productos y esos productos son la clave de búsqueda dentro de la misma tabla de composición.\n== Composicion ==\n*<strike>[[VISTA:visproadic]]-></strike>\n*[[TABLA:productos]]->\n*[[TABLA:precios]]->\n*[[TABLA:componentes]]->\n*->[[TABLA:vidquoten3]]\n== SQL ==\n<small><pre>\nDROP PROCEDURE `AltaItemPresupuesto`;\ndelimiter $$\n\nCREATE DEFINER=`sas_admin`@`%` PROCEDURE `AltaItemPresupuesto`(\n	IN pVidQuoteID INT(5), \n	IN pVidQuoteLPre INT(1), \n	IN pVidQuoteItem INT(5), \n	IN pVidQuoteProdID CHAR(8), \n	IN pVidQuoteProdCantidad INT(5), \n	IN pVidQuoteAncho INT(5), \n	IN pVidQuoteAlto INT(5), \n	IN pCoeficienteMU DECIMAL(5,2))\nBEGIN\n	-- --------------------------------------------------------------------------------\n	-- Inserta Registraciones pausibles de incorporar de acuerdo al tipo de \n	-- --------------------------------------------------------------------------------\n    CALL DebugCheckPoint(\n        CONCAT(\n            CAST(pVidQuoteID AS CHAR),\"-\",\n            CAST(pVidQuoteLPre AS CHAR),\"-\",\n            CAST(pVidQuoteItem AS CHAR),\"-\",\n            pVidQuoteProdID,\"-\",\n            CAST(pVidQuoteProdCantidad AS CHAR),\"-\",\n            CAST(pVidQuoteAncho AS CHAR),\"-\",\n            CAST(pVidQuoteAlto AS CHAR),\"-\",\n            CAST(pCoeficienteMU AS CHAR)\n            )\n        );\n	INSERT INTO vidquoten3 (\n		VidQuoteID,\n		VidQuoteItem,\n		VidQuoteProdID,\n		VidQuoteProdCantidad,\n		VidQuoteElementoID,\n		VidQuoteComposicID,\n		VidQuoteElementoPM,\n		VidQuotePrecio,\n		VidQuotePrecioP)\n	SELECT\n		pVidQuoteID as VidQuoteID,\n		pVidQuoteItem as VidQuoteItem,\n		R1.ProductoID AS VidQuoteProdID,\n		pVidQuoteProdCantidad AS VidQuoteProdCantidad,\n		R1.ProdCmpID AS VidQuoteElementoID,\n		R1.ComposicID AS VidQuoteComposicID,\n		R1.ElementoPM AS VidQuoteElementoPM,\n		SUM(\n			CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`R1`.`PrecioProd`,\n			`R1`.`Magnitud`,\n			`R1`.`OffsetVanoAlto`,\n			`R1`.`OffsetVanoAncho`,\n			`R1`.`CoefVanoAlto`,\n			`R1`.`CoefVanoAncho`,\n			`R1`.`ValorElemento`) * pCoeficienteMU) AS VidQuotePrecio,\n		SUM(\n			CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`R1`.`PrecioProd`,\n			`R1`.`Magnitud`,\n			`R1`.`OffsetVanoAlto`,\n			`R1`.`OffsetVanoAncho`,\n			`R1`.`CoefVanoAlto`,\n			`R1`.`CoefVanoAncho`,\n			`R1`.`ValorElemento`) * pVidQuoteProdCantidad * pCoeficienteMU) AS VidQuotePrecioP\n\n	FROM\n		-- --------------------------------------------------------------------------------\n		-- Selecciona elementos de composicion iguales al producto \n		-- --------------------------------------------------------------------------------\n		((\n		SELECT \n			U1.ProductoID,\n			U1.ElementoID AS ProdCmpID,\n			U1.ComposicID,\n			U1.ElementoID,\n			U1.ElementoPM,\n			U2.Magnitud,\n			U1.ValorElemento,\n			U1.OffsetVanoAncho,\n			U1.OffsetVanoAlto,\n			U1.CoefVanoAncho,\n			U1.CoefVanoAlto,\n			(CASE (pVidQuoteLPre)\n				WHEN 0 THEN U3.PrecioProd00\n				WHEN 1 THEN U3.PrecioProd01\n				WHEN 2 THEN U3.PrecioProd02\n				WHEN 3 THEN U3.PrecioProd03\n			END) AS PrecioProd\n		FROM\n			fzggestion.productos AS U2,\n			fzggestion.composicion AS U1,\n			fzggestion.precios AS U3\n		WHERE\n			U2.ProductoID = U1.ElementoID AND \n			U3.ProductoID = U2.ProductoID AND \n			U1.ProductoID = pVidQuoteProdID AND \n			U1.ElementoID = pVidQuoteProdID AND \n			U1.ElementoPM = 0)\n		-- --------------------------------------------------------------------------------\n		UNION\n		-- --------------------------------------------------------------------------------\n		-- Selecciona elementos de composicion diferentes al producto\n		-- --------------------------------------------------------------------------------\n		(\n		SELECT \n			T1.ProductoID,\n			T1.ElementoID AS ProdCmpID,\n			T1.ComposicID,\n			T2.ElementoID,\n			T1.ElementoPM,\n			T3.Magnitud,\n			T1.ValorElemento * T2.ValorElemento AS ValorElemento,        \n			T1.OffsetVanoAncho + T2.OffsetVanoAncho AS OffsetVanoAncho,\n			T1.OffsetVanoAlto + T2.OffsetVanoAlto AS OffsetVanoAlto,\n			T1.CoefVanoAncho * T2.CoefVanoAncho AS CoefVanoAncho,\n			T1.CoefVanoAlto * T2.CoefVanoAlto AS CoefVanoAlto,\n			(CASE (pVidQuoteLPre)\n				WHEN 0 THEN `T4`.`PrecioProd00`\n				WHEN 1 THEN `T4`.`PrecioProd01`\n				WHEN 2 THEN `T4`.`PrecioProd02`\n				WHEN 3 THEN `T4`.`PrecioProd03`\n			END) AS PrecioProd\n		FROM\n			fzggestion.composicion AS T2,\n			fzggestion.composicion AS T1,\n			fzggestion.productos AS T3,\n			fzggestion.precios AS T4\n		WHERE\n			T2.ProductoID = T1.ElementoID AND \n			T3.ProductoID = T2.ElementoID AND \n			T4.ProductoID = T3.ProductoID AND \n			T1.ProductoID <> T1.ElementoID AND \n			T2.ElementoPM = 0 AND \n			T1.ProductoID = pVidQuoteProdID AND \n			T1.ElementoPM = 0\n		ORDER BY\n			T1.ProductoID ASC ,\n			T1.ElementoID ASC ,\n			T1.ComposicID ASC ,\n			T2.ElementoID ASC)\n		-- --------------------------------------------------------------------------------\n		-- R1 es el sinónimo de la union de las tablas \n		-- --------------------------------------------------------------------------------\n		) AS R1\n		GROUP BY\n			VidQuoteElementoID,\n			VidQuoteComposicID;\nEND$$\n</pre></small>\n== Bitácora ==\n*20120419\n**Cambio de esquema para colocar el cálculo de subitems.\n*20120917\n**Cambio de diseño [[FORM:Presupuesto]]\n<small><pre>\ndelimiter |\nCREATE PROCEDURE AltaItemPresupuesto (IN pVidQuoteID INT(5), IN pVidQuoteLPre INT(1), IN pVidQuoteItem INT(5), IN pVidQuoteProdID CHAR(8), IN pVidQuoteProdCantidad INT(5), IN pVidQuoteAncho INT(5), IN pVidQuoteAlto INT(5)) \nBEGIN\n	INSERT INTO vidquoten3 (\n		VidQuoteID,\n		VidQuoteLPre,\n		VidQuoteItem,\n		VidQuoteProdID,\n		VidQuoteProdCantidad,\n		VidQuoteAncho,\n		VidQuoteAlto,\n		VidQuoteElementoID,\n		VidQuotePrecio,\n		VidQuotePrecioP)\n	SELECT\n		pVidQuoteID,\n		pVidQuoteLPre,\n		pVidQuoteItem,\n		pVidQuoteProdID,\n		pVidQuoteProdCantidad,\n		pVidQuoteAncho,\n		pVidQuoteAlto,\n		`T3`.`ProdCmpID`,\n		SUM(CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`T3`.`PrecioProd`,\n			`T3`.`Magnitud`,\n			`T3`.`OffsetVanoAlto`,\n			`T3`.`OffsetVanoAncho`,\n			`T3`.`CoefVanoAlto`,\n			`T3`.`CoefVanoAncho`,\n			`T3`.`ValorElemento`)) AS pVidQuotePrecio,\n		SUM(CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`T3`.`PrecioProd`,\n			`T3`.`Magnitud`,\n			`T3`.`OffsetVanoAlto`,\n			`T3`.`OffsetVanoAncho`,\n			`T3`.`CoefVanoAlto`,\n			`T3`.`CoefVanoAncho`,\n			`T3`.`ValorElemento`) * pVidQuoteProdCantidad) AS pVidQuotePrecioP\n	FROM\n		(\n		SELECT\n		`T1`.`ProductoID` AS ProductoID,\n		`T1`.`ProductoID` AS ProdCmpID,\n		`T1`.`ElementoID`,\n		`T1`.`ValorElemento`,\n		`T1`.`Descripcion`,\n		`T1`.`Magnitud`,\n		`T1`.`OffsetVanoAncho`,\n		`T1`.`OffsetVanoAlto`,\n		`T1`.`CoefVanoAncho`,\n		`T1`.`CoefVanoAlto`,\n		(CASE (pVidQuoteLPre)\n		 WHEN 0 THEN `T1`.`PrecioProd00`\n		 WHEN 1 THEN `T1`.`PrecioProd01`\n		 WHEN 2 THEN `T1`.`PrecioProd02`\n		 WHEN 3 THEN `T1`.`PrecioProd03`\n		END) AS PrecioProd\n		FROM visprodadic AS T1\n		WHERE ProductoID=pVidQuoteProdID AND ElementoID=pVidQuoteProdID AND ElementoPM=1\n		UNION\n		SELECT \n		pVidQuoteProdID AS ProductoID,\n		`T2`.`ProductoID` AS ProdCmpID,\n		`T2`.`ElementoID`,\n		`T2`.`ValorElemento`,\n		`T2`.`Descripcion`,\n		`T2`.`Magnitud`,\n		`T2`.`OffsetVanoAncho`,\n		`T2`.`OffsetVanoAlto`,\n		`T2`.`CoefVanoAncho`,\n		`T2`.`CoefVanoAlto`,\n		(CASE (pVidQuoteLPre)\n		 WHEN 0 THEN `T2`.`PrecioProd00`\n		 WHEN 1 THEN `T2`.`PrecioProd01`\n		 WHEN 2 THEN `T2`.`PrecioProd02`\n		 WHEN 3 THEN `T2`.`PrecioProd03`\n		END) AS PrecioProd\n		FROM visprodadic AS T2\n		WHERE ProductoID IN \n			 (SELECT ElementoID \n			  FROM visprodadic \n			  WHERE ProductoID=pVidQuoteProdID AND ElementoID<>pVidQuoteProdID AND ElementoPM=1\n		 )\n		) AS T3\n	GROUP BY ProdCmpID;\nEND;|		\n</pre></small>\n*20121208\n**Se detecta errores en el cálculo combinado por la falta de propagación de atributos de componentes con niveles adicionales de composición (DVH, etc). Anterior:\n<small><pre>\n-- --------------------------------------------------------------------------------\n-- Routine DDL\n-- Note: comments before and after the routine body will not be stored by the server\n-- --------------------------------------------------------------------------------\nDELIMITER $$\n\nCREATE DEFINER=`sas_admin`@`%` PROCEDURE `AltaItemPresupuesto`(\n	IN pVidQuoteID INT(5), \n	IN pVidQuoteLPre INT(1), \n	IN pVidQuoteItem INT(5), \n	IN pVidQuoteProdID CHAR(8), \n	IN pVidQuoteProdCantidad INT(5), \n	IN pVidQuoteAncho INT(5), \n	IN pVidQuoteAlto INT(5), \n	IN pCoeficienteMU DECIMAL(5,2))\nBEGIN\n	-- --------------------------------------------------------------------------------\n	-- Inserta Registraciones pausibles de incorporar de acuerdo al tipo de \n	-- --------------------------------------------------------------------------------\n	INSERT INTO vidquoten3 (\n		VidQuoteID,\n		VidQuoteItem,\n		VidQuoteProdID,\n		VidQuoteProdCantidad,\n		VidQuoteElementoID,\n		VidQuoteComposicID,\n      VidQuoteElementoPM,\n		VidQuotePrecio,\n		VidQuotePrecioP)\n	SELECT\n		pVidQuoteID as VidQuoteID,\n		pVidQuoteItem as VidQuoteItem,\n		R1.ProductoID AS VidQuoteProdID,\n		pVidQuoteProdCantidad AS VidQuoteProdCantidad,\n		R1.ProdCmpID AS VidQuoteElementoID,\n		R1.ComposicID AS VidQuoteComposicID,\n      R1.ElementoPM AS VidQuoteElementoPM,\n		SUM(\n          CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`R1`.`PrecioProd`,\n			`R1`.`Magnitud`,\n			`R1`.`OffsetVanoAlto`,\n			`R1`.`OffsetVanoAncho`,\n			`R1`.`CoefVanoAlto`,\n			`R1`.`CoefVanoAncho`,\n			`R1`.`ValorElemento`) * pCoeficienteMU) AS VidQuotePrecio,\n		SUM(\n         CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`R1`.`PrecioProd`,\n			`R1`.`Magnitud`,\n			`R1`.`OffsetVanoAlto`,\n			`R1`.`OffsetVanoAncho`,\n			`R1`.`CoefVanoAlto`,\n			`R1`.`CoefVanoAncho`,\n			`R1`.`ValorElemento`) * pVidQuoteProdCantidad * pCoeficienteMU) AS VidQuotePrecioP\n\n	FROM\n		-- --------------------------------------------------------------------------------\n		-- Selecciona elementos de composicion iguales al producto \n		-- --------------------------------------------------------------------------------\n		((\n		SELECT \n		U1.ProductoID,\n		U1.ElementoID AS ProdCmpID,\n		U1.ComposicID,\n		U1.ElementoID,\n		U1.ElementoPM,\n		U2.Magnitud,\n		U1.ValorElemento,\n		U1.OffsetVanoAncho,\n		U1.OffsetVanoAlto,\n		U1.CoefVanoAncho,\n		U1.CoefVanoAlto,\n		(CASE (2)\n		  WHEN 0 THEN U3.PrecioProd00\n		  WHEN 1 THEN U3.PrecioProd01\n		  WHEN 2 THEN U3.PrecioProd02\n		  WHEN 3 THEN U3.PrecioProd03\n		END) AS PrecioProd\n		FROM\n		fzggestion.productos AS U2,\n		fzggestion.composicion AS U1,\n		fzggestion.precios AS U3\n		WHERE\n		U2.ProductoID = U1.ElementoID AND \n		U3.ProductoID = U2.ProductoID AND \n		U1.ProductoID = pVidQuoteProdID AND \n		U1.ElementoID = pVidQuoteProdID AND \n		U1.ElementoPM = 0)\n		-- --------------------------------------------------------------------------------\n		UNION\n		-- --------------------------------------------------------------------------------\n		-- Selecciona elementos de composicion diferentes al producto\n		-- --------------------------------------------------------------------------------\n		(\n		SELECT \n			T1.ProductoID,\n			T1.ElementoID AS ProdCmpID,\n			T1.ComposicID,\n			T2.ElementoID,\n			T1.ElementoPM,\n			T3.Magnitud,\n			T1.ValorElemento,        \n			T1.OffsetVanoAncho,\n			T1.OffsetVanoAlto,\n			T1.CoefVanoAncho,\n			T1.CoefVanoAlto,\n			(CASE (2)\n				WHEN 0 THEN `T4`.`PrecioProd00`\n				WHEN 1 THEN `T4`.`PrecioProd01`\n				WHEN 2 THEN `T4`.`PrecioProd02`\n				WHEN 3 THEN `T4`.`PrecioProd03`\n			END) AS PrecioProd\n		FROM\n			fzggestion.composicion AS T2,\n			fzggestion.composicion AS T1,\n			fzggestion.productos AS T3,\n			fzggestion.precios AS T4\n		WHERE\n			T2.ProductoID = T1.ElementoID AND \n			T3.ProductoID = T2.ElementoID AND \n			T4.ProductoID = T3.ProductoID AND \n			T1.ProductoID <> T1.ElementoID AND \n			T2.ElementoPM = 0 AND \n			T1.ProductoID = pVidQuoteProdID AND \n			T1.ElementoPM = 0\n		ORDER BY\n			T1.ProductoID ASC ,\n			T1.ElementoID ASC ,\n			T1.ComposicID ASC ,\n			T2.ElementoID ASC)\n		-- --------------------------------------------------------------------------------\n		-- R1 es el sinónimo de la union de las tablas \n		-- --------------------------------------------------------------------------------\n		) AS R1\n		GROUP BY\n			VidQuoteElementoID,\n			VidQuoteComposicID;\nEND\n</pre></small>\n== Uso ==\n*[[MACRO:EventoBRCDetallePresupuesto]]\n== URL ==\nFZG.Procedure.AltaItemPresupuesto.sql','utf-8'),(939,'[[Category:PROC]]\n== Descripción ==\nEl procedimiento está en función de la edición de los elementos de un producto compuesto durante la confección de un presupuesto.\nAgrega a la [[TABLA:vidquoten3tmp]] las registraciones correspondientes al producto a editar. Las características del proceso son las siguientes:\n*Selecciona registros de la [[TABLA:composicion]] que corresponde al producto seleccionado y agrega aquellos registros que no existan en la selececión original (Alta de producto)\n**Selecciona los registros de la [[TABLA:composicion]] cuyo elemento es igual al producto (producto propiamente dicho). Este punto se explicita para que no entre en loop\n**Selecciona los registros de la [[TABLA:composicion]] cuyos elementos son diferentes al producto (adicionales Básicos, Simple y Completo).\n***Dado que permite un grado de profundidad adicional, toma tanto los registros componentes sino también todos aquellos que están referenciados como elemento componente.\n***Establece una relación con las [[TABLA:productos]] y [[TABLA:precios]].\n***Establece una relación anidada con la misma [[TABLA:composicion]] para tomar todos los elementos como si fuesen productos y así tener en cuenta la definición en aquellos que tengan más de un componente y poder calcular el precio de acuerdo a los parámetros definidos\n**Agrega los datos resultantes a la [[TABLA:vidquoten3tmp]] previo borrado de los datos anteriores dentro de la tabla temporal para mantener la integridad de la operación para proceder a la edición. No se deben agregar aquellos registros ya existentes en la [[TABLA:vidquoten3]]\n\n== Composición ==\n* [[TABLA:composicion]]\n* [[TABLA:productos]]\n* [[TABLA:precios]]\n* [[TABLA:vidquoten3]]\n* [[TABLA:vidquoten3tmp]]\n\n== Código ==\n<small><pre>\nDROP PROCEDURE `AltaItemPresupuestoTmp`;\ndelimiter $$\n\nCREATE DEFINER=`sas_admin`@`%` PROCEDURE `AltaItemPresupuestoTmp`(\n	IN pVidQuoteID INT(5), \n	IN pVidQuoteLPre INT(1), \n	IN pVidQuoteItem INT(5), \n	IN pVidQuoteProdID CHAR(8), \n	IN pVidQuoteProdCantidad INT(5), \n	IN pVidQuoteAncho INT(5), \n	IN pVidQuoteAlto INT(5), \n	IN pCoeficienteMU DECIMAL(5,2),\n	IN pQuickSelect INT(1))\nBEGIN\n	-- --------------------------------------------------------------------------------\n	-- Inserta Registro de Auditoria\n	-- --------------------------------------------------------------------------------\n--     INSERT INTO debugstmt (Fecha,Hora,Texto) \n-- 		VALUES (\n-- 			CURDATE(),\n-- 			CURTIME(),\n-- 			CONCAT(\n-- 				CAST(pVidQuoteID AS CHAR),\"-\",\n-- 				CAST(pVidQuoteLPre AS CHAR),\"-\",\n-- 				CAST(pVidQuoteItem AS CHAR),\"-\",\n-- 				pVidQuoteProdID,\"-\",\n-- 				CAST(pVidQuoteProdCantidad AS CHAR),\"-\",\n-- 				CAST(pVidQuoteAncho AS CHAR),\"-\",\n-- 				CAST(pVidQuoteAlto AS CHAR)\n-- 				)\n-- 			);\n	-- --------------------------------------------------------------------------------\n	-- Elimina residuos de ediciones anteriores\n	-- --------------------------------------------------------------------------------\n--     CALL DebugCheckPoint(\n--         CONCAT(\n--         \"Prev - \",\n--         \"pVidQuoteID:\",\n--         CAST(pVidQuoteID AS CHAR),\"-\",\n--         \"pVidQuoteItem:\",\n--         CAST(pVidQuoteItem AS CHAR),\"-\",\n--         \"Delete Count:\",\n--         (SELECT CAST(Count(*) AS CHAR) \n--             FROM vidquoten3tmp \n--             WHERE\n--                 VidQuoteID=pVidQuoteID AND \n--                 VidQuoteItem=pVidQuoteItem)\n--         ));\n    DELETE FROM vidquoten3tmp WHERE VidQuoteID=pVidQuoteID AND VidQuoteItem=pVidQuoteItem;\n--     CALL DebugCheckPoint(\n--         CONCAT(\n--         \"Past - \",\n--         \"pVidQuoteID:\",\n--         CAST(pVidQuoteID AS CHAR),\"-\",\n--         \"pVidQuoteItem:\",\n--         CAST(pVidQuoteItem AS CHAR),\"-\",\n--         \"Delete Count:\",\n--         (SELECT CAST(Count(*) AS CHAR) \n--             FROM vidquoten3tmp \n--             WHERE\n--                 VidQuoteID=pVidQuoteID AND \n--                 VidQuoteItem=pVidQuoteItem)\n--         ));\n	-- --------------------------------------------------------------------------------\n	-- Inserta Registraciones anteriores del mismo Producto/Item\n	-- --------------------------------------------------------------------------------\n	INSERT INTO vidquoten3tmp (\n		VidQuoteID,\n		VidQuoteItem,\n		VidQuoteProdID,\n		VidQuoteProdCantidad,\n		VidQuoteElementoID,\n		VidQuoteComposicID,\n		VidQuoteElementoPM,\n		VidQuotePrecio,\n		VidQuotePrecioP,\n		VidQuoteIncluyeDet,\n		VidQuoteQuickSelect)\n	SELECT\n		S1.VidQuoteID,\n		S1.VidQuoteItem,\n		S1.VidQuoteProdID,\n		S1.VidQuoteProdCantidad,\n		S1.VidQuoteElementoID,\n		S1.VidQuoteComposicID,\n		S1.VidQuoteElementoPM,\n		S1.VidQuotePrecio,\n		S1.VidQuotePrecioP,\n		S1.VidQuoteIncluyeDet,\n		1 AS VidQuoteQuickSelect\n	FROM\n		vidquoten3 AS S1\n	WHERE\n		S1.VidQuoteID=pVidQuoteID AND \n		S1.VidQuoteItem=pVidQuoteItem;\n    CALL DebugCheckPoint(\"Past Inserta Registros VQ3 anteriores\");\n	-- --------------------------------------------------------------------------------\n	-- Inserta Registraciones pausibles de incorporar de acuerdo al tipo de \n	-- --------------------------------------------------------------------------------\n	INSERT INTO vidquoten3tmp (\n		VidQuoteID,\n		VidQuoteItem,\n		VidQuoteProdID,\n		VidQuoteProdCantidad,\n		VidQuoteElementoID,\n		VidQuoteComposicID,\n		VidQuoteElementoPM,\n		VidQuotePrecio,\n		VidQuotePrecioP)\n	SELECT\n		pVidQuoteID as VidQuoteID,\n		pVidQuoteItem as VidQuoteItem,\n		R1.ProductoID AS VidQuoteProdID,\n		pVidQuoteProdCantidad AS VidQuoteProdCantidad,\n		R1.ProdCmpID AS VidQuoteElementoID,\n		R1.ComposicID AS VidQuoteComposicID,\n		R1.ElementoPM AS VidQuoteElementoPM,\n		SUM(\n          CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`R1`.`PrecioProd`,\n			`R1`.`Magnitud`,\n			`R1`.`OffsetVanoAlto`,\n			`R1`.`OffsetVanoAncho`,\n			`R1`.`CoefVanoAlto`,\n			`R1`.`CoefVanoAncho`,\n			`R1`.`ValorElemento`) * pCoeficienteMU) AS VidQuotePrecio,\n		SUM(\n          CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`R1`.`PrecioProd`,\n			`R1`.`Magnitud`,\n			`R1`.`OffsetVanoAlto`,\n			`R1`.`OffsetVanoAncho`,\n			`R1`.`CoefVanoAlto`,\n			`R1`.`CoefVanoAncho`,\n			`R1`.`ValorElemento`) * pVidQuoteProdCantidad * pCoeficienteMU) AS VidQuotePrecioP\n\n	FROM\n		-- --------------------------------------------------------------------------------\n		-- Selecciona elementos de composicion iguales al producto \n		-- --------------------------------------------------------------------------------\n		((\n		SELECT \n			U1.ProductoID,\n			U1.ElementoID AS ProdCmpID,\n			U1.ComposicID,\n			U1.ElementoID,\n			U1.ElementoPM,\n			U2.Magnitud,\n			U1.ValorElemento,\n			U1.OffsetVanoAncho,\n			U1.OffsetVanoAlto,\n			U1.CoefVanoAncho,\n			U1.CoefVanoAlto,\n			(CASE (pVidQuoteLPre)\n				WHEN 0 THEN U3.PrecioProd00\n				WHEN 1 THEN U3.PrecioProd01\n				WHEN 2 THEN U3.PrecioProd02\n				WHEN 3 THEN U3.PrecioProd03\n			END) AS PrecioProd\n		FROM\n			fzggestion.productos AS U2,\n			fzggestion.composicion AS U1,\n			fzggestion.precios AS U3\n		WHERE\n			U2.ProductoID = U1.ElementoID AND \n			U3.ProductoID = U2.ProductoID AND \n			U1.ProductoID = pVidQuoteProdID AND \n			U1.ElementoID = pVidQuoteProdID AND \n			U1.ElementoPM <= pQuickSelect)\n		-- --------------------------------------------------------------------------------\n		UNION\n		-- --------------------------------------------------------------------------------\n		-- Selecciona elementos de composicion diferentes al producto\n		-- --------------------------------------------------------------------------------\n		(\n		SELECT \n			T1.ProductoID,\n			T1.ElementoID AS ProdCmpID,\n			T1.ComposicID,\n			T2.ElementoID,\n			T1.ElementoPM,\n-- 			T2.ElementoPM,\n			T3.Magnitud,\n			T1.ValorElemento * T2.ValorElemento AS ValorElemento,        \n			T1.OffsetVanoAncho + T2.OffsetVanoAncho AS OffsetVanoAncho,\n			T1.OffsetVanoAlto + T2.OffsetVanoAlto AS OffsetVanoAlto,\n			T1.CoefVanoAncho * T2.CoefVanoAncho AS CoefVanoAncho,\n			T1.CoefVanoAlto * T2.CoefVanoAlto AS CoefVanoAlto,\n			(CASE (pVidQuoteLPre)\n				WHEN 0 THEN `T4`.`PrecioProd00`\n				WHEN 1 THEN `T4`.`PrecioProd01`\n				WHEN 2 THEN `T4`.`PrecioProd02`\n				WHEN 3 THEN `T4`.`PrecioProd03`\n			END) AS PrecioProd\n		FROM\n			fzggestion.composicion AS T2,\n			fzggestion.composicion AS T1,\n			fzggestion.productos AS T3,\n			fzggestion.precios AS T4\n		WHERE\n			T2.ProductoID = T1.ElementoID AND \n			T3.ProductoID = T2.ElementoID AND \n			T4.ProductoID = T3.ProductoID AND \n			T1.ProductoID <> T1.ElementoID AND \n			T2.ElementoPM <= pQuickSelect AND \n			T1.ProductoID = pVidQuoteProdID AND \n			T1.ElementoPM <= pQuickSelect\n		ORDER BY\n			T1.ProductoID ASC ,\n			T1.ElementoID ASC ,\n			T1.ComposicID ASC ,\n			T2.ElementoID ASC)\n		-- --------------------------------------------------------------------------------\n		-- R1 es el sinónimo de la union de las tablas \n		-- --------------------------------------------------------------------------------\n		) AS R1\n      WHERE\n			CONCAT(R1.ProductoID,R1.ProdCmpID,LPAD(CAST(R1.ComposicID AS CHAR),3,\'000\'))\n      	NOT IN (\n				SELECT\n					CONCAT(VidQuoteProdID,VidQuoteElementoID,LPAD(CAST(VidQuoteComposicID AS CHAR),3,\'000\'))\n				FROM\n					vidquoten3tmp AS Q1 \n				WHERE \n					Q1.VidQuoteID=pVidQuoteID AND \n					Q1.VidQuoteItem=pVidQuoteItem)\n		GROUP BY\n			VidQuoteElementoID,\n			VidQuoteComposicID;\n    -- --------------------------------------------------------------------------------\n    -- Joint Para completar info de ElementoPM\n    -- --------------------------------------------------------------------------------\n    UPDATE\n        vidquoten3tmp AS T1,\n        composicion AS T2\n    SET\n        T1.VidQuoteElementoPM = T2.ElementoPM\n    WHERE\n        T1.VidQuoteID=pVidQuoteID AND\n        ISNULL(T1.VidQuoteElementoPM) AND\n        T1.VidQuoteProdID=T2.ProductoID AND\n        T1.VidQuoteElementoID=T2.ElementoID AND\n        T1.VidQuoteComposicID=T2.ComposicID;\nEND$$\n</pre><small>\n== Bitácora ==\n*20120904\n**Código Anterior\n<small><pre>\nDELIMITER $$\n\nCREATE DEFINER=`sas_admin`@`%` PROCEDURE `AltaItemPresupuestoTmp`(IN pVidQuoteID INT(5), IN pVidQuoteLPre INT(1), IN pVidQuoteItem INT(5), IN pVidQuoteProdID CHAR(8), IN pVidQuoteProdCantidad INT(5), IN pVidQuoteAncho INT(5), IN pVidQuoteAlto INT(5))\nBEGIN\n    INSERT INTO debugstmt (Fecha,Hora,Texto) VALUES (CURDATE(),CURTIME(),CONCAT(CAST(pVidQuoteID AS CHAR),\"-\",CAST(pVidQuoteLPre AS CHAR),\"-\",CAST(pVidQuoteItem AS CHAR),\"-\",pVidQuoteProdID,\"-\",CAST(pVidQuoteProdCantidad AS CHAR),\"-\",CAST(pVidQuoteAncho AS CHAR),\"-\",CAST(pVidQuoteAlto AS CHAR)));\n    DELETE FROM vidquoten3tmp WHERE VidQuoteID=pVidQuoteID AND VidQuoteItem=pVidQuoteItem;\n    INSERT INTO vidquoten3tmp (\n		VidQuoteID,\n		VidQuoteItem,\n		VidQuoteProdID,\n		VidQuoteProdCantidad,\n		VidQuoteElementoID,\n		VidQuotePrecio,\n		VidQuotePrecioP)\n	SELECT\n		pVidQuoteID,\n		pVidQuoteItem,\n		pVidQuoteProdID,\n		pVidQuoteProdCantidad,\n		`T3`.`ProdCmpID`,\n		SUM(CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`T3`.`PrecioProd`,\n			`T3`.`Magnitud`,\n			`T3`.`OffsetVanoAlto`,\n			`T3`.`OffsetVanoAncho`,\n			`T3`.`CoefVanoAlto`,\n			`T3`.`CoefVanoAncho`,\n			`T3`.`ValorElemento`)) AS pVidQuotePrecio,\n		SUM(CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`T3`.`PrecioProd`,\n			`T3`.`Magnitud`,\n			`T3`.`OffsetVanoAlto`,\n			`T3`.`OffsetVanoAncho`,\n			`T3`.`CoefVanoAlto`,\n			`T3`.`CoefVanoAncho`,\n			`T3`.`ValorElemento`) * pVidQuoteProdCantidad) AS pVidQuotePrecioP\n	FROM\n		(\n		SELECT\n		`T1`.`ProductoID` AS ProductoID,\n		`T1`.`ProductoID` AS ProdCmpID,\n		`T1`.`ElementoID`,\n		`T1`.`ValorElemento`,\n		`T1`.`Descripcion`,\n		`T1`.`Magnitud`,\n		`T1`.`OffsetVanoAncho`,\n		`T1`.`OffsetVanoAlto`,\n		`T1`.`CoefVanoAncho`,\n		`T1`.`CoefVanoAlto`,\n		(CASE (pVidQuoteLPre)\n		 WHEN 0 THEN `T1`.`PrecioProd00`\n		 WHEN 1 THEN `T1`.`PrecioProd01`\n		 WHEN 2 THEN `T1`.`PrecioProd02`\n		 WHEN 3 THEN `T1`.`PrecioProd03`\n		END) AS PrecioProd\n		FROM visprodadic AS T1\n		WHERE ProductoID=pVidQuoteProdID AND ElementoID=pVidQuoteProdID AND ElementoPM<=1\n		UNION\n		SELECT \n		pVidQuoteProdID AS ProductoID,\n		`T2`.`ProductoID` AS ProdCmpID,\n		`T2`.`ElementoID`,\n		`T2`.`ValorElemento`,\n		`T2`.`Descripcion`,\n		`T2`.`Magnitud`,\n		`T2`.`OffsetVanoAncho`,\n		`T2`.`OffsetVanoAlto`,\n		`T2`.`CoefVanoAncho`,\n		`T2`.`CoefVanoAlto`,\n		(CASE (pVidQuoteLPre)\n		 WHEN 0 THEN `T2`.`PrecioProd00`\n		 WHEN 1 THEN `T2`.`PrecioProd01`\n		 WHEN 2 THEN `T2`.`PrecioProd02`\n		 WHEN 3 THEN `T2`.`PrecioProd03`\n		END) AS PrecioProd\n		FROM visprodadic AS T2\n		WHERE ProductoID IN \n			 (SELECT ElementoID \n			  FROM visprodadic \n			  WHERE ProductoID=pVidQuoteProdID AND ElementoID<>pVidQuoteProdID AND ElementoPM<=1\n		 )\n		) AS T3\n	GROUP BY ProdCmpID;\nEND\n</pre></small>\n*20121009\n**Error de Change Management al subir el programa de TEST con los parámetros de prueba. Condición de la [[TABLA:vidquoten3tmp]] tipo \"SELECT IN\" para incorporar solo los registros que ya no existan en la [[TABLA:vidquoten3tmp]]. También se agrega la salvaguarda de grabación de ElementoPM en el caso de no integral y los errores de parámetros de prueba para [[PARM:pVidQuoteLPre]]\n<small><pre>\n-- --------------------------------------------------------------------------------\n-- Routine DDL\n-- Note: comments before and after the routine body will not be stored by the server\n-- --------------------------------------------------------------------------------\nDELIMITER $$\n\nCREATE DEFINER=`sas_admin`@`%` PROCEDURE `AltaItemPresupuestoTmp`(\n	IN pVidQuoteID INT(5), \n	IN pVidQuoteLPre INT(1), \n	IN pVidQuoteItem INT(5), \n	IN pVidQuoteProdID CHAR(8), \n	IN pVidQuoteProdCantidad INT(5), \n	IN pVidQuoteAncho INT(5), \n	IN pVidQuoteAlto INT(5), \n	IN pCoeficienteMU DECIMAL(5,2),\n	IN pQuickSelect INT(1))\nBEGIN\n	-- --------------------------------------------------------------------------------\n	-- Inserta Registro de Auditoria\n	-- --------------------------------------------------------------------------------\n    INSERT INTO debugstmt (Fecha,Hora,Texto) \n		VALUES (\n			CURDATE(),\n			CURTIME(),\n			CONCAT(\n				CAST(pVidQuoteID AS CHAR),\"-\",\n				CAST(pVidQuoteLPre AS CHAR),\"-\",\n				CAST(pVidQuoteItem AS CHAR),\"-\",\n				pVidQuoteProdID,\"-\",\n				CAST(pVidQuoteProdCantidad AS CHAR),\"-\",\n				CAST(pVidQuoteAncho AS CHAR),\"-\",\n				CAST(pVidQuoteAlto AS CHAR)\n				)\n			);\n	-- --------------------------------------------------------------------------------\n	-- Elimina residuos de ediciones anteriores\n	-- --------------------------------------------------------------------------------\n    DELETE FROM vidquoten3tmp WHERE VidQuoteID=pVidQuoteID AND VidQuoteItem=pVidQuoteItem;\n\n	-- --------------------------------------------------------------------------------\n	-- Inserta Registraciones anteriores del mismo Producto/Item\n	-- --------------------------------------------------------------------------------\n	INSERT INTO vidquoten3tmp (\n		VidQuoteID,\n		VidQuoteItem,\n		VidQuoteProdID,\n		VidQuoteProdCantidad,\n		VidQuoteElementoID,\n		VidQuoteComposicID,\n		VidQuotePrecio,\n		VidQuotePrecioP,\n		VidQuoteIncluyeDet,\n		VidQuoteQuickSelect)\n	SELECT\n		S1.VidQuoteID,\n		S1.VidQuoteItem,\n		S1.VidQuoteProdID,\n		S1.VidQuoteProdCantidad,\n		S1.VidQuoteElementoID,\n		S1.VidQuoteComposicID,\n		S1.VidQuotePrecio,\n		S1.VidQuotePrecioP,\n		S1.VidQuoteIncluyeDet,\n		1 AS VidQuoteQuickSelect\n	FROM\n		vidquoten3 AS S1\n	WHERE\n		S1.VidQuoteID=pVidQuoteID AND \n		S1.VidQuoteItem=pVidQuoteItem;\n	-- --------------------------------------------------------------------------------\n	-- Inserta Registraciones pausibles de incorporar de acuerdo al tipo de \n	-- --------------------------------------------------------------------------------\n	INSERT INTO vidquoten3tmp (\n		VidQuoteID,\n		VidQuoteItem,\n		VidQuoteProdID,\n		VidQuoteProdCantidad,\n		VidQuoteElementoID,\n		VidQuoteComposicID,\n		VidQuotePrecio,\n		VidQuotePrecioP)\n	SELECT\n		pVidQuoteID as VidQuoteID,\n		pVidQuoteItem as VidQuoteItem,\n		R1.ProductoID AS VidQuoteProdID,\n		pVidQuoteProdCantidad AS VidQuoteProdCantidad,\n		R1.ProdCmpID AS VidQuoteElementoID,\n		R1.ComposicID AS VidQuoteComposicID,\n		SUM(\n          CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`R1`.`PrecioProd`,\n			`R1`.`Magnitud`,\n			`R1`.`OffsetVanoAlto`,\n			`R1`.`OffsetVanoAncho`,\n			`R1`.`CoefVanoAlto`,\n			`R1`.`CoefVanoAncho`,\n			`R1`.`ValorElemento`) * pCoeficienteMU) AS VidQuotePrecio,\n		SUM(\n          CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`R1`.`PrecioProd`,\n			`R1`.`Magnitud`,\n			`R1`.`OffsetVanoAlto`,\n			`R1`.`OffsetVanoAncho`,\n			`R1`.`CoefVanoAlto`,\n			`R1`.`CoefVanoAncho`,\n			`R1`.`ValorElemento`) * pVidQuoteProdCantidad * pCoeficienteMU) AS VidQuotePrecioP\n\n	FROM\n		-- --------------------------------------------------------------------------------\n		-- Selecciona elementos de composicion iguales al producto \n		-- --------------------------------------------------------------------------------\n		((\n		SELECT \n		U1.ProductoID,\n		U1.ElementoID AS ProdCmpID,\n		U1.ComposicID,\n		U1.ElementoID,\n		U1.ElementoPM,\n		U2.Magnitud,\n		U1.ValorElemento,\n		U1.OffsetVanoAncho,\n		U1.OffsetVanoAlto,\n		U1.CoefVanoAncho,\n		U1.CoefVanoAlto,\n		(CASE (2)\n		  WHEN 0 THEN U3.PrecioProd00\n		  WHEN 1 THEN U3.PrecioProd01\n		  WHEN 2 THEN U3.PrecioProd02\n		  WHEN 3 THEN U3.PrecioProd03\n		END) AS PrecioProd\n		FROM\n		fzggestion.productos AS U2,\n		fzggestion.composicion AS U1,\n		fzggestion.precios AS U3\n		WHERE\n		U2.ProductoID = U1.ElementoID AND \n		U3.ProductoID = U2.ProductoID AND \n		U1.ProductoID = pVidQuoteProdID AND \n		U1.ElementoID = pVidQuoteProdID AND \n		U1.ElementoPM <= pQuickSelect)\n		-- --------------------------------------------------------------------------------\n		UNION\n		-- --------------------------------------------------------------------------------\n		-- Selecciona elementos de composicion diferentes al producto\n		-- --------------------------------------------------------------------------------\n		(\n		SELECT \n			T1.ProductoID,\n			T1.ElementoID AS ProdCmpID,\n			T1.ComposicID,\n			T2.ElementoID,\n			T2.ElementoPM,\n			T3.Magnitud,\n			T1.ValorElemento,        \n			T1.OffsetVanoAncho,\n			T1.OffsetVanoAlto,\n			T1.CoefVanoAncho,\n			T1.CoefVanoAlto,\n			(CASE (2)\n				WHEN 0 THEN `T4`.`PrecioProd00`\n				WHEN 1 THEN `T4`.`PrecioProd01`\n				WHEN 2 THEN `T4`.`PrecioProd02`\n				WHEN 3 THEN `T4`.`PrecioProd03`\n			END) AS PrecioProd\n		FROM\n			fzggestion.composicion AS T2,\n			fzggestion.composicion AS T1,\n			fzggestion.productos AS T3,\n			fzggestion.precios AS T4\n		WHERE\n			T2.ProductoID = T1.ElementoID AND \n			T3.ProductoID = T2.ElementoID AND \n			T4.ProductoID = T3.ProductoID AND \n			T1.ProductoID <> T1.ElementoID AND \n			T2.ElementoPM <= pQuickSelect AND \n			T1.ProductoID = pVidQuoteProdID AND \n			T1.ElementoPM <= pQuickSelect\n		ORDER BY\n			T1.ProductoID ASC ,\n			T1.ElementoID ASC ,\n			T1.ComposicID ASC ,\n			T2.ElementoID ASC)\n		-- --------------------------------------------------------------------------------\n		-- R1 es el sinónimo de la union de las tablas \n		-- --------------------------------------------------------------------------------\n		) AS R1\n      WHERE\n			CONCAT(R1.ProductoID,R1.ProdCmpID,LPAD(CAST(R1.ComposicID AS CHAR),3,\'000\'))\n      	NOT IN (\n				SELECT\n					CONCAT(VidQuoteProdID,VidQuoteElementoID,LPAD(CAST(VidQuoteComposicID AS CHAR),3,\'000\'))\n				FROM\n					vidquoten3tmp AS Q1 \n				WHERE \n					Q1.VidQuoteID=pVidQuoteID AND \n					Q1.VidQuoteItem=pVidQuoteItem)\n		GROUP BY\n			VidQuoteElementoID,\n			VidQuoteComposicID;\nEND\n</pre></small>\n*20121207\n**Se detecta errores en el cálculo combinado por la falta de propagación de atributos de componentes con niveles adicionales de composición (DVH, etc). Anterior: \n<small><pre>\n-- --------------------------------------------------------------------------------\n-- Routine DDL\n-- Note: comments before and after the routine body will not be stored by the server\n-- --------------------------------------------------------------------------------\nDELIMITER $$\n\nCREATE DEFINER=`sas_admin`@`%` PROCEDURE `AltaItemPresupuestoTmp`(\n	IN pVidQuoteID INT(5), \n	IN pVidQuoteLPre INT(1), \n	IN pVidQuoteItem INT(5), \n	IN pVidQuoteProdID CHAR(8), \n	IN pVidQuoteProdCantidad INT(5), \n	IN pVidQuoteAncho INT(5), \n	IN pVidQuoteAlto INT(5), \n	IN pCoeficienteMU DECIMAL(5,2),\n	IN pQuickSelect INT(1))\nBEGIN\n	-- --------------------------------------------------------------------------------\n	-- Inserta Registro de Auditoria\n	-- --------------------------------------------------------------------------------\n--     INSERT INTO debugstmt (Fecha,Hora,Texto) \n-- 		VALUES (\n-- 			CURDATE(),\n-- 			CURTIME(),\n-- 			CONCAT(\n-- 				CAST(pVidQuoteID AS CHAR),\"-\",\n-- 				CAST(pVidQuoteLPre AS CHAR),\"-\",\n-- 				CAST(pVidQuoteItem AS CHAR),\"-\",\n-- 				pVidQuoteProdID,\"-\",\n-- 				CAST(pVidQuoteProdCantidad AS CHAR),\"-\",\n-- 				CAST(pVidQuoteAncho AS CHAR),\"-\",\n-- 				CAST(pVidQuoteAlto AS CHAR)\n-- 				)\n-- 			);\n	-- --------------------------------------------------------------------------------\n	-- Elimina residuos de ediciones anteriores\n	-- --------------------------------------------------------------------------------\n--     CALL DebugCheckPoint(\n--         CONCAT(\n--         \"Prev - \",\n--         \"pVidQuoteID:\",\n--         CAST(pVidQuoteID AS CHAR),\"-\",\n--         \"pVidQuoteItem:\",\n--         CAST(pVidQuoteItem AS CHAR),\"-\",\n--         \"Delete Count:\",\n--         (SELECT CAST(Count(*) AS CHAR) \n--             FROM vidquoten3tmp \n--             WHERE\n--                 VidQuoteID=pVidQuoteID AND \n--                 VidQuoteItem=pVidQuoteItem)\n--         ));\n    DELETE FROM vidquoten3tmp WHERE VidQuoteID=pVidQuoteID AND VidQuoteItem=pVidQuoteItem;\n--     CALL DebugCheckPoint(\n--         CONCAT(\n--         \"Past - \",\n--         \"pVidQuoteID:\",\n--         CAST(pVidQuoteID AS CHAR),\"-\",\n--         \"pVidQuoteItem:\",\n--         CAST(pVidQuoteItem AS CHAR),\"-\",\n--         \"Delete Count:\",\n--         (SELECT CAST(Count(*) AS CHAR) \n--             FROM vidquoten3tmp \n--             WHERE\n--                 VidQuoteID=pVidQuoteID AND \n--                 VidQuoteItem=pVidQuoteItem)\n--         ));\n	-- --------------------------------------------------------------------------------\n	-- Inserta Registraciones anteriores del mismo Producto/Item\n	-- --------------------------------------------------------------------------------\n	INSERT INTO vidquoten3tmp (\n		VidQuoteID,\n		VidQuoteItem,\n		VidQuoteProdID,\n		VidQuoteProdCantidad,\n		VidQuoteElementoID,\n		VidQuoteComposicID,\n		VidQuoteElementoPM,\n		VidQuotePrecio,\n		VidQuotePrecioP,\n		VidQuoteIncluyeDet,\n		VidQuoteQuickSelect)\n	SELECT\n		S1.VidQuoteID,\n		S1.VidQuoteItem,\n		S1.VidQuoteProdID,\n		S1.VidQuoteProdCantidad,\n		S1.VidQuoteElementoID,\n		S1.VidQuoteComposicID,\n		S1.VidQuoteElementoPM,\n		S1.VidQuotePrecio,\n		S1.VidQuotePrecioP,\n		S1.VidQuoteIncluyeDet,\n		1 AS VidQuoteQuickSelect\n	FROM\n		vidquoten3 AS S1\n	WHERE\n		S1.VidQuoteID=pVidQuoteID AND \n		S1.VidQuoteItem=pVidQuoteItem;\n    CALL DebugCheckPoint(\"Past Inserta Registros VQ3 anteriores\");\n	-- --------------------------------------------------------------------------------\n	-- Inserta Registraciones pausibles de incorporar de acuerdo al tipo de \n	-- --------------------------------------------------------------------------------\n	INSERT INTO vidquoten3tmp (\n		VidQuoteID,\n		VidQuoteItem,\n		VidQuoteProdID,\n		VidQuoteProdCantidad,\n		VidQuoteElementoID,\n		VidQuoteComposicID,\n		VidQuoteElementoPM,\n		VidQuotePrecio,\n		VidQuotePrecioP)\n	SELECT\n		pVidQuoteID as VidQuoteID,\n		pVidQuoteItem as VidQuoteItem,\n		R1.ProductoID AS VidQuoteProdID,\n		pVidQuoteProdCantidad AS VidQuoteProdCantidad,\n		R1.ProdCmpID AS VidQuoteElementoID,\n		R1.ComposicID AS VidQuoteComposicID,\n		R1.ElementoPM AS VidQuoteElementoPM,\n		SUM(\n          CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`R1`.`PrecioProd`,\n			`R1`.`Magnitud`,\n			`R1`.`OffsetVanoAlto`,\n			`R1`.`OffsetVanoAncho`,\n			`R1`.`CoefVanoAlto`,\n			`R1`.`CoefVanoAncho`,\n			`R1`.`ValorElemento`) * pCoeficienteMU) AS VidQuotePrecio,\n		SUM(\n          CalculoPrecio(\n			pVidQuoteAncho, \n			pVidQuoteAlto,\n			`R1`.`PrecioProd`,\n			`R1`.`Magnitud`,\n			`R1`.`OffsetVanoAlto`,\n			`R1`.`OffsetVanoAncho`,\n			`R1`.`CoefVanoAlto`,\n			`R1`.`CoefVanoAncho`,\n			`R1`.`ValorElemento`) * pVidQuoteProdCantidad * pCoeficienteMU) AS VidQuotePrecioP\n\n	FROM\n		-- --------------------------------------------------------------------------------\n		-- Selecciona elementos de composicion iguales al producto \n		-- --------------------------------------------------------------------------------\n		((\n		SELECT \n		U1.ProductoID,\n		U1.ElementoID AS ProdCmpID,\n		U1.ComposicID,\n		U1.ElementoID,\n		U1.ElementoPM,\n		U2.Magnitud,\n		U1.ValorElemento,\n		U1.OffsetVanoAncho,\n		U1.OffsetVanoAlto,\n		U1.CoefVanoAncho,\n		U1.CoefVanoAlto,\n		(CASE (pVidQuoteLPre)\n		  WHEN 0 THEN U3.PrecioProd00\n		  WHEN 1 THEN U3.PrecioProd01\n		  WHEN 2 THEN U3.PrecioProd02\n		  WHEN 3 THEN U3.PrecioProd03\n		END) AS PrecioProd\n		FROM\n		fzggestion.productos AS U2,\n		fzggestion.composicion AS U1,\n		fzggestion.precios AS U3\n		WHERE\n		U2.ProductoID = U1.ElementoID AND \n		U3.ProductoID = U2.ProductoID AND \n		U1.ProductoID = pVidQuoteProdID AND \n		U1.ElementoID = pVidQuoteProdID AND \n		U1.ElementoPM <= pQuickSelect)\n		-- --------------------------------------------------------------------------------\n		UNION\n		-- --------------------------------------------------------------------------------\n		-- Selecciona elementos de composicion diferentes al producto\n		-- --------------------------------------------------------------------------------\n		(\n		SELECT \n			T1.ProductoID,\n			T1.ElementoID AS ProdCmpID,\n			T1.ComposicID,\n			T2.ElementoID,\n			T1.ElementoPM,\n-- 			T2.ElementoPM,\n			T3.Magnitud,\n			T1.ValorElemento,        \n			T1.OffsetVanoAncho,\n			T1.OffsetVanoAlto,\n			T1.CoefVanoAncho,\n			T1.CoefVanoAlto,\n			(CASE (pVidQuoteLPre)\n				WHEN 0 THEN `T4`.`PrecioProd00`\n				WHEN 1 THEN `T4`.`PrecioProd01`\n				WHEN 2 THEN `T4`.`PrecioProd02`\n				WHEN 3 THEN `T4`.`PrecioProd03`\n			END) AS PrecioProd\n		FROM\n			fzggestion.composicion AS T2,\n			fzggestion.composicion AS T1,\n			fzggestion.productos AS T3,\n			fzggestion.precios AS T4\n		WHERE\n			T2.ProductoID = T1.ElementoID AND \n			T3.ProductoID = T2.ElementoID AND \n			T4.ProductoID = T3.ProductoID AND \n			T1.ProductoID <> T1.ElementoID AND \n			T2.ElementoPM <= pQuickSelect AND \n			T1.ProductoID = pVidQuoteProdID AND \n			T1.ElementoPM <= pQuickSelect\n		ORDER BY\n			T1.ProductoID ASC ,\n			T1.ElementoID ASC ,\n			T1.ComposicID ASC ,\n			T2.ElementoID ASC)\n		-- --------------------------------------------------------------------------------\n		-- R1 es el sinónimo de la union de las tablas \n		-- --------------------------------------------------------------------------------\n		) AS R1\n      WHERE\n			CONCAT(R1.ProductoID,R1.ProdCmpID,LPAD(CAST(R1.ComposicID AS CHAR),3,\'000\'))\n      	NOT IN (\n				SELECT\n					CONCAT(VidQuoteProdID,VidQuoteElementoID,LPAD(CAST(VidQuoteComposicID AS CHAR),3,\'000\'))\n				FROM\n					vidquoten3tmp AS Q1 \n				WHERE \n					Q1.VidQuoteID=pVidQuoteID AND \n					Q1.VidQuoteItem=pVidQuoteItem)\n		GROUP BY\n			VidQuoteElementoID,\n			VidQuoteComposicID;\n    -- --------------------------------------------------------------------------------\n    -- Joint Para completar info de ElementoPM\n    -- --------------------------------------------------------------------------------\n    UPDATE\n        vidquoten3tmp AS T1,\n        composicion AS T2\n    SET\n        T1.VidQuoteElementoPM = T2.ElementoPM\n    WHERE\n        T1.VidQuoteID=pVidQuoteID AND\n        ISNULL(T1.VidQuoteElementoPM) AND\n        T1.VidQuoteProdID=T2.ProductoID AND\n        T1.VidQuoteElementoID=T2.ElementoID AND\n        T1.VidQuoteComposicID=T2.ComposicID;\nEND\n</pre><small>\n\n== Uso ==\n* [[MACRO:BotonEditarComponentes]]\n* [[FORM:Presupuesto]]','utf-8'),(940,'===20121201===\n====Alta de esquema Módulos====\n*Alta de [[TABLA:moduloscab]]\n*Alta de [[TABLA:modulosdet]]\n*Alta de [[TABLA:modulossbs]]\n*Alta de [[TABLA:bocetoscab]]\n*Alta de [[TABLA:bocetosdet]]\n*Alta de [[TABLA:bocetossbs]]\n\n====Actualización de [[TABLA:Productos]]====\n<pre>\nALTER TABLE `fzggestion`.`productos` \nADD COLUMN `ProductoGen` CHAR(8) NULL  FIRST ,\nADD COLUMN `ProductoDflt` INT(1) NULL  AFTER `ProductoGen` ,\nADD COLUMN `MagnitudIN` CHAR(2) NULL  AFTER `Magnitud` , \nADD COLUMN `MagCmpX` INT(5) NULL  AFTER `InsumoIMG` , \nADD COLUMN `MagCmpY` INT(5) NULL  AFTER `MagCmpX` , \nADD COLUMN `MagCmpZ` INT(5) NULL  AFTER `MagCmpY` , \nADD COLUMN `MagCmpW` INT(5) NULL  AFTER `MagCmpZ` \nADD COLUMN `Presentacion` VARCHAR(45) NULL  AFTER `MagCmpW` ,\nADD COLUMN `ProductoProy` INT(1) NULL DEFAULT 0  AFTER `Presentacion` ;\nUPDATE productos\nSET \n    ProductoGen = ProductoID,\n    ProductoDflt= 1\n</pre>\n====Actualización de [[RPRT:Presupuestos]]====\n\n===20121029===\n====Actualización de [[TABLA:vidquoten1]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten1` \nCHANGE COLUMN `VidQuoteCliente` `VidQuoteCliente` CHAR(8) NOT NULL  ,\nCHANGE COLUMN `VidQuoteACom` `VidQuoteACom` CHAR(4) NOT NULL  ;\n</pre>\n===20121005===\n====Actualización de [[PROC:AltaItemPresupuestoTmp]]====\n\n===20120831===\n====Agregar Nombre de Usuario [[TABLA:precios]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`precios` \n	ADD COLUMN `UserModificacion` VARCHAR(20) NULL AFTER `HoraModificacion` ;\nALTER TABLE `fzggestion`.`precios` \n	CHANGE COLUMN `FechaModificacion` `FechaEvento` DATE NULL DEFAULT NULL,\n	CHANGE COLUMN `HoraModificacion` `HoraEvento` TIME NULL DEFAULT NULL,\n	CHANGE COLUMN `UserModificacion` `UserEvento` VARCHAR(20) NULL DEFAULT NULL;\n</pre>\n*20120926.1915 [[File:checked.png|20px]]\n\n====Modificación de Triggers [[TABLA:precios]] [[File:checked.png|20px]]====\n<pre>\nDELIMITER $$\n\nUSE `fzggestion`$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Alta_Precio`\nBEFORE INSERT ON `fzggestion`.`precios`\nFOR EACH ROW\nBEGIN\n	SET\n	NEW.FechaEvento = CURDATE(),\n	NEW.HoraEvento = CURTIME(),\n	NEW.UserEvento	= USER();\nEND$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Actualiza_Precio`\nBEFORE UPDATE ON `fzggestion`.`precios`\nFOR EACH ROW\nBEGIN\n	SET\n	NEW.FechaEvento = CURDATE(),\n	NEW.HoraEvento = CURTIME(),\n	NEW.UserEvento	= USER();\nEND$$\n</pre>\n*20120926.1924 [[File:checked.png|20px]]\n\n====Modificacion de Estructura [[TABLA:contactos]] [[File:checked.png|20px]]====\n<pre>\nUPDATE contactos SET ClienteTag=1 WHERE ClienteTag=\"x\";\nUPDATE contactos SET ProveedorTag=1 WHERE ProveedorTag=\"x\";\nUPDATE contactos SET AComercialTag=1 WHERE AComercialTag=\"x\";\nUPDATE contactos SET OtrosTag=1 WHERE OtrosTag=\"x\";\nALTER TABLE `fzggestion`.`contactos` \n	CHANGE COLUMN `ClienteTag` `ClienteTag` INT(1) NULL DEFAULT NULL,\n	CHANGE COLUMN `ProveedorTag` `ProveedorTag` INT(1) NULL DEFAULT NULL, \n	CHANGE COLUMN `AComercialTag` `AComercialTag` INT(1) NULL DEFAULT NULL,\n	CHANGE COLUMN `OtrosTag` `OtrosTag` INT(1) NULL DEFAULT NULL;\n</pre>\n*20120926.1927 [[File:checked.png|20px]]\nVerificar los casos que no coincidan con los prefijos establecidos: 0->Cliente, 3->Proveedor, 5->Otros, 8->Agentes Comerciales\n*20120926.1928 No se verificó [[File:warning-icon-hi.png|20px]]\n\n====Agrega Atributo [[TABLA:contactos]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`contactos` ADD COLUMN `ImgContacto` BLOB NULL  AFTER `VigenciaDocs` ;\n</pre>\n*20120926.1939 [[File:checked.png|20px]]\n====Cambio de Condición para [[VISTA:clientes]] [[File:checked.png|20px]]====\n*20120926.1942 [[File:checked.png|20px]]\n\n====Alta de Tabla [[TABLA:telemecomp]] [[File:checked.png|20px]]====\n*20120926.1957\n** Alta generada [[File:checked.png|20px]]\n** Falta ingresar los datos [[File:warning-icon-hi.png|20px]]\n\n====Actualizar Routine [[PROC:DuplicaProductoCompo]] en DB [[File:checked.png|20px]]====\n*20120926.2007 [[File:checked.png|20px]]\n\n====Agregar atributo ComposicID a [[TABLA:vidquoten3]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten3` \nCHANGE COLUMN `VidQuoteElementoID` `VidQuoteElementoID` CHAR(8) NOT NULL AFTER `VidQuoteProdID`,\nCHANGE COLUMN `VidQuoteLPre` `VidQuoteLPre` INT(1) NULL DEFAULT NULL AFTER `VidQuoteElementoID;\n\nALTER TABLE `fzggestion`.`vidquoten3`\nADD COLUMN `VidQuoteComposicID` INT NOT NULL AFTER `VidQuoteElementoID` ,\nDROP PRIMARY KEY , ADD PRIMARY KEY (`VidQuoteID`,\n                                    `VidQuoteItem`,\n                                    `VidQuoteProdID`,\n                                    `VidQuoteElementoID`,\n                                    `VidQuoteComposicID`) ;\n</pre>\n*20120927.2014 [[File:checked.png|20px]]\n\n====Agregar atributo ComposicID a [[TABLA:vidquoten3tmp]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten3tmp` \nCHANGE COLUMN `VidQuoteElementoID` `VidQuoteElementoID` CHAR(8) NOT NULL AFTER `VidQuoteProdID`,\nCHANGE COLUMN `VidQuoteProdCantidad` `VidQuoteProdCantidad` INT(5) NULL DEFAULT NULL  AFTER `VidQuoteElementoID`;\n\nALTER TABLE `fzggestion`.`vidquoten3tmp`\nADD COLUMN `VidQuoteComposicID` INT NOT NULL AFTER `VidQuoteElementoID` ,\nDROP PRIMARY KEY , ADD PRIMARY KEY (`VidQuoteID`,\n                                    `VidQuoteItem`,\n                                    `VidQuoteProdID`,\n                                    `VidQuoteElementoID`,\n                                    `VidQuoteComposicID`) ;\n</pre>\n*20120926.2015 [[File:checked.png|20px]]\n\n====Agregar atributo ElementoPM a [[TABLA:vidquoten3tmp]][[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten3tmp` ADD COLUMN `VidQuoteElementoPM` INT(1) NULL  AFTER `VidQuoteComposicID` ;\n</pre>\n*[[20121004.1617]][[File:checked.png|20px]]\n\n====Agregar atributo ElementoPM a [[TABLA:vidquoten3]][[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten3` ADD COLUMN `VidQuoteElementoPM` INT(1) NULL  AFTER `VidQuoteComposicID` ;\n</pre>\n*20121004.1621 [[File:checked.png|20px]]\n\n====Reemplazar el código de [[PROC:GrabaItemPresupuestoTmp]][[File:checked.png|20px]] y [[PROC:AltaItemPresupuestoTmp]][[File:checked.png|20px]]====\nIncluye las modificaciones de inclusión de ElementoPM\n*20121004.1625 [[PROC:GrabaItemPresupuestoTmp]][[File:checked.png|20px]]\n*20121004.1630 [[PROC:GrabaItemPresupuestoTmp]][[File:checked.png|20px]]\n\n====Crea [[PROC:ResetEdicionItemTmp]][[File:checked.png|20px]]====\n*20121004.1655 [[File:checked.png|20px]]\n\n====Cambiar [[VISTA:acomerciales]][[File:checked.png|20px]]====\nRefleja el cambio de la estructura de la [[TABLA:contactos]]\n*20121004.1657 [[File:checked.png|20px]]\n\n====Agregar en [[TABLA:contactos]][[File:checked.png|20px]]====\nAgregar atributo que responde al imagen asociada al contacto.\n<pre>\nALTER TABLE `fzggestion`.`contactos` ADD COLUMN `ImgContacto` BLOB NULL  AFTER `VigenciaDocs` ;\n</pre>\n*20121004.1659 [[File:checked.png|20px]]\n====Alta del [[TRIG:Actualiza_Item_Presupuesto]][[File:checked.png|20px]]====\n*20121004.1718 [[File:checked.png|20px]]\n====Renovación del [[PROC:ActualizaPreciosPresupuesto]][[File:checked.png|20px]]====\n*20121004.1727 [[File:checked.png|20px]]\n====Renovación del [[PROC:ActualizaItemPresupuesto]][[File:checked.png|20px]]====\n*20121004.1727 [[File:checked.png|20px]]\n====Renovación del [[PROC:CopiaPresupuesto]][[File:checked.png|20px]]====\n*20121004.1727 [[File:checked.png|20px]]\n====Cambios estructura del [[PROC:GrabaItemPresupuestoTmp]][[File:checked.png|20px]]====\n*20121004.1625 [[File:checked.png|20px]]\n====Cambios estructura del [[TABLA:composicion]][[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`composicion` ADD COLUMN `ComposicID` INT NOT NULL AUTO_INCREMENT  AFTER `ElementoID` \n, DROP PRIMARY KEY \n, ADD PRIMARY KEY (`ProductoID`, `ElementoID`, `ComposicID`) ;\n</pre>\n*20121004.1857 [[File:checked.png|20px]]\n====Alta del [[PROC:AltaItemPresupuesto]][[File:checked.png|20px]]====\n*20121004.1937 [[File:checked.png|20px]]\n===20120702===\n====Agregado de atributo de Medicion en Obra [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten1` \n	ADD COLUMN `VidQuoteMedCheck` CHAR(1) NULL DEFAULT 0 AFTER `VidQuoteACom`;\n</pre>\n*20120926.1616 [[File:checked.png|20px]]\n====Actualización de dato de Vigencia de Documentos [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`contactos`\n	CHANGE COLUMN `CoeficienteAC` `CoeficienteAC` DECIMAL(5,2) NULL DEFAULT 1,\n	CHANGE COLUMN `VigenciaDocs` `VigenciaDocs` INT(2) NULL DEFAULT 15;\nUPDATE `fzggestion`.`contactos`\n	SET `VigenciaDocs` = 15\n	WHERE `VigenciaDocs`= 0 OR ISNULL(`VigenciaDocs`);\n</pre>\n*20120926.1634 [[File:checked.png|20px]]\n====Actualización de datos para el control de Cobranzas [[File:checked.png|20px]]====\nALTER TABLE `fzggestion`.`accreceiv` \n	ADD COLUMN `ClienteAR` CHAR(8) NULL DEFAULT NULL  AFTER `ImporteAR`,\n	DROP PRIMARY KEY,\n	ADD PRIMARY KEY (`TTransaccion`, `NTransaccion`);\n*20120926.1651 [[File:checked.png|20px]]\n\n====Crear [[VISTA:vistranscrm]] [[File:checked.png|20px]]====\n*2012092616.55 [[File:checked.png|20px]]\n\n====Crear [[TABLA:clientescrmqry]] [[File:checked.png|20px]] ====\n*20120926 [[File:checked.png|20px]]\n\n====Crear [[VISTA:chqactivos]] [[File:checked.png|20px]]====\n*20120926.1758 [[File:checked.png|20px]]\n\n====Crear [[TABLA:accpayab]] [[File:checked.png|20px]]====\n<pre>\ndelimiter $$\nCREATE TABLE `accpayab` (\n  `TTransaccion` char(2) NOT NULL DEFAULT \'AP\',\n  `NTransaccion` int(11) NOT NULL AUTO_INCREMENT,\n  `FechaAutAP` date DEFAULT NULL,\n  `FechaAP` date DEFAULT NULL,\n  `FormaAP` char(3) DEFAULT NULL,\n  `ImporteAP` decimal(10,2) DEFAULT NULL,\n  `ProveedAP` char(8) DEFAULT NULL,\n  `TDocumentoOrg` char(2) DEFAULT NULL,\n  `NDocumentoOrg` int(11) DEFAULT NULL,\n  `DDocumentoOrg` varchar(100) DEFAULT NULL,\n  PRIMARY KEY (`TTransaccion`,`NTransaccion`)\n) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin1$$\n\nCREATE TRIGGER `fzggestion`.`Alta_Pago`\nBEFORE INSERT ON `fzggestion`.`accpayab`\nFOR EACH ROW\nBEGIN\n	SET NEW.FechaAutAP = CURDATE();\nEND\n$$\n</pre>\n*20120926.1804 [[File:checked.png|20px]]\n\n====Modifica [[TABLA:fPago]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`fpago`\n	ADD COLUMN `FPagoAR` CHAR(1) NULL AFTER `FPagoDSC`,\n	ADD COLUMN `FPagoAP` CHAR(1) NULL AFTER `FPagoAR`;\n</pre>\n*20120926.1808 [[File:checked.png|20px]]\n\n====Rediseña [[TABLA:tdocumento]]====\n\n====Crea [[VISTA:vischtdisp]] [[File:checked.png|20px]]====\n*20120926.1835 [[File:checked.png|20px]]\n\n====Crea [[VISTA:vistotprod]] [[File:checked.png|20px]]====\n*20120926.1836 [[File:checked.png|20px]]\n\n====Crea [[TABLA:vidquoten3tmp]] [[File:checked.png|20px]]====\n*20120926.1902 [[File:checked.png|20px]]\n\n====Reemplazar todos los ElementoPM en Componentes por los nuevos valores [[File:checked.png|20px]]====\n<pre>\nUPDATE fzggestion.composicion SET ElementoPM=2 WHERE ElementoPM=0;\nUPDATE fzggestion.composicion SET ElementoPM=0 WHERE ElementoPM=1;\n</pre>\n*20120926.1908 [[File:checked.png|20px]]','utf-8'),(941,'==Tablas, Vistas==\n<pre>\n[[Category:TABLAS]]\n[[Category:VISTAS]]\n== Descripción ==\n== Composición ==\n== Estructura ==\n< pre>\n< /pre>\n== SQL ==\n< pre>\n< /pre>\n== Bitácora ==\n== Uso ==\n== URL ==\n</pre>\n\n==Formularios==\n<pre>\n[[Category:FORM]]\n== Descripción ==\n== Composición ==\n== Estructura ==\n== Código Relacionado ==\n== Bitácora ==\n== Uso ==\n</pre>\n\n==Macros==\n<pre>\n== Descripción ==\n== Biblioteca ==\n== Composición ==\n== Código ==\n< small>< pre>\n< /pre>< /small>\n== Bitácora ==\n== Uso ==\n</pre>\n==SqlCode==\n<pre>\n< small>< pre>\n< /pre>< /small>\n</pre>\n==Iconos Layout==\n*File:warning-icon-hi.png|20px [[File:warning-icon-hi.png|20px]]\n*File:checked.png|20px [[File:checked.png|20px]]\n==Tickets Soporte==\n<pre>\n[[Category:TKT]]\n====Data TKT====\n*\'\'\'Usuario:\'\'\' \n*\'\'\'Fecha:\'\'\' \n*\'\'\'Soporte:\'\'\' \n=====Incidente=====\n=====WorkAround=====\n=====Resolución=====\n=====Estado=====\n=====Observaciones=====\n</pre>','utf-8'),(942,'==Tablas, Vistas==\n<pre>\n[[Category:TABLAS]]\n[[Category:VISTAS]]\n== Descripción ==\n== Composición ==\n== Estructura ==\n< pre>\n< /pre>\n== SQL ==\n< pre>\n< /pre>\n== Bitácora ==\n== Uso ==\n== URL ==\n</pre>\n\n==Formularios==\n<pre>\n[[Category:FORM]]\n== Descripción ==\n== Composición ==\n== Estructura ==\n== Código Relacionado ==\n== Bitácora ==\n== Uso ==\n</pre>\n\n==Macros==\n<pre>\n[[Category:MACRO]]\n== Descripción ==\n== Biblioteca ==\n== Composición ==\n== Código ==\n< small>< pre>\n< /pre>< /small>\n== Bitácora ==\n== Uso ==\n</pre>\n\n==SqlCode==\n<pre>\n< small>< pre>\n< /pre>< /small>\n</pre>\n==Iconos Layout==\n*File:warning-icon-hi.png|20px [[File:warning-icon-hi.png|20px]]\n*File:checked.png|20px [[File:checked.png|20px]]\n==Tickets Soporte==\n<pre>\n[[Category:TKT]]\n====Data TKT====\n*\'\'\'Usuario:\'\'\' \n*\'\'\'Fecha:\'\'\' \n*\'\'\'Soporte:\'\'\' \n=====Incidente=====\n=====WorkAround=====\n=====Resolución=====\n=====Estado=====\n=====Observaciones=====\n</pre>','utf-8'),(943,'[[Category:TABLAS]]\n== Descripción ==\nContainer de cabecera de bocetos\n== Composición ==\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `bocetoscab` (\n  `BocetoID` char(8) NOT NULL DEFAULT \'\',\n  `ModuloID` char(8) NOT NULL,\n  `BocetoDSC` varchar(80) NOT NULL,\n  `BocetoVW` varchar(45) DEFAULT NULL,\n  `BocetoVH` varchar(45) DEFAULT NULL,\n  `BocetoIMG` blob,\n  `BocetoATH` varchar(10) NOT NULL,\n  `BocetoFec` date NOT NULL,\n  `BocetoEstado` int(1) NOT NULL DEFAULT \'0\',\n  PRIMARY KEY (`BocetoID`)\n) ENGINE=MyISAM DEFAULT CHARSET=latin1$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Baja_Boceto`\nAFTER DELETE ON `fzggestion`.`bocetoscab`\nFOR EACH ROW\nBEGIN\n    DELETE\n        FROM bocetosdet\n        WHERE bocetosdet.BocetoID=OLD.BocetoID;\nEND\n$$\n</pre>\n== Bitácora ==\n*20121201\n**Alta\n== Uso ==\n== URL ==','utf-8'),(944,'=== Estructuras de Datos ===\n==== Estructuras Tipo ====\n[[Estructuras SQL]]\n\n==== Tablas ====\n* [[TABLA:accreceiv]]\n* [[TABLA:accpayab]]\n* [[TABLA:catinsumos]]\n* [[TABLA:cmoneda]]\n* [[TABLA:composicion]]\n* [[TABLA:composicionqry]]\n* [[TABLA:contactos]]\n* [[TABLA:cpar]]\n* [[TABLA:debugstmt]]\n* [[TABLA:elementos]]\n* [[TABLA:insumos]]\n* [[TABLA:listasprecios]]\n* [[TABLA:logprecios]]\n* [[TABLA:magnitudes]]\n* [[TABLA:moduloscab]]\n* [[TABLA:modulosdet]]\n* [[TABLA:modulossbs]]\n* [[TABLA:monedas]]\n* [[TABLA:precios]]\n* [[TABLA:preciosqry]]\n* [[TABLA:productos]]\n* [[TABLA:reppresqry]]\n* [[TABLA:tdocumento]]\n* [[TABLA:telemecomp]]\n* [[TABLA:transacciones]]\n* [[TABLA:ttransac]]\n* [[TABLA:vidquoten1]]\n* [[TABLA:vidquoten2]]\n* [[TABLA:vidquoten3]]\n* [[TABLA:vidquoten3tmp]]\n* [[TABLA:vidquoten4]]\n===== Template Layout General =====\n* [[TEMP:LayoutGeneral]]\n\n==== Vistas ====\n[http://sqlformat.appspot.com/ SQLFormatBeautify]\n*[[VISTA:acomerciales]]\n*[[VISTA:clientes]]\n*[[VISTA:listavigente]]\n*[[VISTA:precioscmpl]]\n*[[VISTA:preciosvigact]]\n*[[VISTA:preciosvigentes]]\n*[[VISTA:proveedores]]\n*[[VISTA:viscabdetalla]]\n*[[VISTA:viscompcnt]]\n*[[VISTA:viscompodis]]\n*[[VISTA:viscomposimpl]]\n*[[VISTA:visdetaobs]]\n*[[VISTA:visdocpcob]]\n*[[VISTA:vistranscrm]]\n*[[VISTA:visintdetpre]]\n*[[VISTA:vislineabs]]\n*[[VISTA:visprdparam]]\n*[[VISTA:visprestot]]\n*[[VISTA:visprodadic]]\n*[[VISTA:visreppres]]\n*[[VISTA:visrprescmp]]\n*[[VISTA:vissubxitem]]\n*[[VISTA:chqactivos]]\n*[[VISTA:vischtdisp]]\n*[[VISTA:vischeckmod]]\n*[[VISTA:vistotprod]]\n\n<small>\n{| class=\"wikitable\"\n| <center>\'\'\'Nombre\'\'\'</center>\n| <center>\'\'\'Comando\'\'\'</center>\n| <center>\'\'\'Uso\'\'\'</center>\n| <center>\'\'\'Cross\'\'\'</center>\n\n|-\n| Viscabdetalla\n| FZG.Vista.viscabdetalla.sql\n| Vista utilizada para agregar la información de cual es la lista de precios a utilizar para el cliente del presupuesto en tiempo real.FORM: Presupuesto\n| Contactos, Vidquoten1\n\n|-\n| Proveedores\n| FZG.Vista.proveedores.sql\n| Visualización de Contactos “Proveedores”\n| Contactos\n\n|-\n| Clientes\n| FZG.Vista.clientes.sql\n| Visualización de Contactos “Clientes”\n| Contactos\n\n|-\n| Visreppres\n| FZG.Vista.visreppres.sql\n| Vista Reporte Presupuesto Individual. Para generar una línea completa con la información de detalle de los presupuestos con las combinaciones de información a incluir en el mismo. No contiene la información estática del cliente.\n| Vislineabs, Visdetaobs\n\n|-\n| Viscompodis\n| FZG.Vista.viscompodis.sql\n| Vista de productos (DISTINCT productos) dentro de la tabla de composición ordenada por alfabéticamente.\n| \n\n|-\n| Viscoposimpl\n| FZG.Vista.viscomposimpl.sql\n| Vista de los elementos de composicion con información para query\n| Productos, Composición\n\n|-\n| Visdetaobs\n| FZG.Vista.visdetaobs.sql\n| Une todas las Observaciones de cada item para los casos que se encuentren señaladas con la Descripción del Producto-Item\n| Productos, Vidquoten3\n\n|-\n| Visintdetpre\n| FZG.Vista.visintdetpre.sql\n| Reducción de vista Visprodadic aplicable al cálculo de presupuesto con los datos en tiempo real del presupuesto activo en formulario y calculando el precio correcto de acuerdo al cliente y el cálculo del valor del elemento de acuerdo al los valores de Alto y Ancho del Vano en tiempo real\n| Visprodadic, Vidquoten2\n\n|-\n| Vislineabs\n| [[FZG.Vista.vislineabs.sql]]\n| Define linea básica para reporte teniendo como base Vidquoten2, agregando la información de la cabecera + datos de descrpción de producto + el subtotal por Producto-Item\n| Vidquoten1, Vidquoten2, Productos, Vissubxitem\n\n|-\n| Visprodadic\n| FZG.Vista.visproadic.sql\n| Vista de tabla de componentes con la información de cada elemento como producto y de los precios vigentes.\n| Productos, Composicion, PreciosVigentes\n\n|-\n| Vissubxitem\n| FZG.Vista.vissubxitem.sql\n| Subtotal por Item de Presupuesto en tiempo real\n| Vidquoten3\n\n|-\n| Listavigente\n| \n| Selecciona solo el primer registro ordenado en forma descendente de la tabla de listasprecios\n| Listasprecios\n\n|-\n| Preciosvigentes\n| FZG.Vista.preciosvigentes.sql\n| Es la selección de la tabla de precios referenciando el mayor valor dentro de la tabla de listasprecios\n| Listasprecios, Precios\n\n|-\n| Preciosvigact\n| FZG.Vista.preciosvigact.sql\n| Vista de lista de precios vigentes con datos de productos para actualización columnar.FORM: Actualización por tipo de lista\n| Preciosvigentes, Productos\n\n|-\n| Precioscmpl\n| [[FZG.Vista.precioscmpl.sql]]\n| Vista de lista de precios completa con datos de productos. [[FORM: Precios Tabular x Proceso]]\n| Precios, Productos\n\n|-\n| Visprestot\n| FZG.Vista.visprestot.sql\n| Vista de Presupuestos Totalizados por Cliente\n| Visreppres\n\n|-\n| Viscompcnt\n| [[FZG.Vista.viscompcnt.sql]]\n| Vista resumen de Componentes completa con indicadores de estado de composición\n| composicion, producto\n|}</small>\n\n=== Objetos ===\n==== Formularios ====\n*[[FORM:Presupuesto]]\n*[[FORM:CopiaComposicion]]\n*[[FORM:Pagos]]\n*[[FORM:Cobranzas]]\n\n==== Reportes ====\n*[[RPRT:Presupuestos]]\n*[[RPRT:PresupuestosDirecto]]\n*[[RPRT:IndividualCRM]]\n\n=== Procedimientos ===\n*[[PROC:ActualizaItemPresupuesto]]\n*[[PROC:ActualizaPreciosPresupuesto]]\n*[[PROC:ActualizaPreciosTabular]]\n*[[PROC:AgregaProductoCompo]]\n*[[PROC:AltaItemPresupuesto]]\n*[[PROC:AltaItemPresupuestoTmp]]\n*[[PROC:CalculaPrecioBase]]\n*[[PROC:CalculoMedidaReal]]\n*[[PROC:CalculoPrecio]]\n*[[PROC:CopiaPresupuesto]]\n*[[PROC:DuplicaProductoCompo]]\n*[[PROC:GrabaItemPresupuestoTmp]]\n*[[PROC:ResetEdicionItemTmp]]\n\n=== Bibliotecas ===\n*[[LIBR:FazzGlassMcr]]\n*[[LIBR:SpanexB]]\n*[[LIBR:SpanexC]]','utf-8');
INSERT INTO `peg_text` VALUES (945,'=== Estructuras de Datos ===\n==== Estructuras Tipo ====\n[[Estructuras SQL]]\n\n==== Tablas ====\n* [[TABLA:accreceiv]]\n* [[TABLA:accpayab]]\n* [[TABLA:catinsumos]]\n* [[TABLA:cmoneda]]\n* [[TABLA:composicion]]\n* [[TABLA:composicionqry]]\n* [[TABLA:contactos]]\n* [[TABLA:cpar]]\n* [[TABLA:debugstmt]]\n* [[TABLA:elementos]]\n* [[TABLA:insumos]]\n* [[TABLA:listasprecios]]\n* [[TABLA:logprecios]]\n* [[TABLA:magnitudes]]\n* [[TABLA:monedas]]\n* [[TABLA:precios]]\n* [[TABLA:preciosqry]]\n* [[TABLA:productos]]\n* [[TABLA:reppresqry]]\n* [[TABLA:tdocumento]]\n* [[TABLA:telemecomp]]\n* [[TABLA:transacciones]]\n* [[TABLA:ttransac]]\n* [[TABLA:vidquoten1]]\n* [[TABLA:vidquoten2]]\n* [[TABLA:vidquoten3]]\n* [[TABLA:vidquoten3tmp]]\n* [[TABLA:vidquoten4]]\n===== Template Layout General =====\n* [[TEMP:LayoutGeneral]]\n\n==== Vistas ====\n[http://sqlformat.appspot.com/ SQLFormatBeautify]\n*[[VISTA:acomerciales]]\n*[[VISTA:clientes]]\n*[[VISTA:listavigente]]\n*[[VISTA:precioscmpl]]\n*[[VISTA:preciosvigact]]\n*[[VISTA:preciosvigentes]]\n*[[VISTA:proveedores]]\n*[[VISTA:viscabdetalla]]\n*[[VISTA:viscompcnt]]\n*[[VISTA:viscompodis]]\n*[[VISTA:viscomposimpl]]\n*[[VISTA:visdetaobs]]\n*[[VISTA:visdocpcob]]\n*[[VISTA:vistranscrm]]\n*[[VISTA:visintdetpre]]\n*[[VISTA:vislineabs]]\n*[[VISTA:visprdparam]]\n*[[VISTA:visprestot]]\n*[[VISTA:visprodadic]]\n*[[VISTA:visreppres]]\n*[[VISTA:visrprescmp]]\n*[[VISTA:vissubxitem]]\n*[[VISTA:chqactivos]]\n*[[VISTA:vischtdisp]]\n*[[VISTA:vischeckmod]]\n*[[VISTA:vistotprod]]\n\n<small>\n{| class=\"wikitable\"\n| <center>\'\'\'Nombre\'\'\'</center>\n| <center>\'\'\'Comando\'\'\'</center>\n| <center>\'\'\'Uso\'\'\'</center>\n| <center>\'\'\'Cross\'\'\'</center>\n\n|-\n| Viscabdetalla\n| FZG.Vista.viscabdetalla.sql\n| Vista utilizada para agregar la información de cual es la lista de precios a utilizar para el cliente del presupuesto en tiempo real.FORM: Presupuesto\n| Contactos, Vidquoten1\n\n|-\n| Proveedores\n| FZG.Vista.proveedores.sql\n| Visualización de Contactos “Proveedores”\n| Contactos\n\n|-\n| Clientes\n| FZG.Vista.clientes.sql\n| Visualización de Contactos “Clientes”\n| Contactos\n\n|-\n| Visreppres\n| FZG.Vista.visreppres.sql\n| Vista Reporte Presupuesto Individual. Para generar una línea completa con la información de detalle de los presupuestos con las combinaciones de información a incluir en el mismo. No contiene la información estática del cliente.\n| Vislineabs, Visdetaobs\n\n|-\n| Viscompodis\n| FZG.Vista.viscompodis.sql\n| Vista de productos (DISTINCT productos) dentro de la tabla de composición ordenada por alfabéticamente.\n| \n\n|-\n| Viscoposimpl\n| FZG.Vista.viscomposimpl.sql\n| Vista de los elementos de composicion con información para query\n| Productos, Composición\n\n|-\n| Visdetaobs\n| FZG.Vista.visdetaobs.sql\n| Une todas las Observaciones de cada item para los casos que se encuentren señaladas con la Descripción del Producto-Item\n| Productos, Vidquoten3\n\n|-\n| Visintdetpre\n| FZG.Vista.visintdetpre.sql\n| Reducción de vista Visprodadic aplicable al cálculo de presupuesto con los datos en tiempo real del presupuesto activo en formulario y calculando el precio correcto de acuerdo al cliente y el cálculo del valor del elemento de acuerdo al los valores de Alto y Ancho del Vano en tiempo real\n| Visprodadic, Vidquoten2\n\n|-\n| Vislineabs\n| [[FZG.Vista.vislineabs.sql]]\n| Define linea básica para reporte teniendo como base Vidquoten2, agregando la información de la cabecera + datos de descrpción de producto + el subtotal por Producto-Item\n| Vidquoten1, Vidquoten2, Productos, Vissubxitem\n\n|-\n| Visprodadic\n| FZG.Vista.visproadic.sql\n| Vista de tabla de componentes con la información de cada elemento como producto y de los precios vigentes.\n| Productos, Composicion, PreciosVigentes\n\n|-\n| Vissubxitem\n| FZG.Vista.vissubxitem.sql\n| Subtotal por Item de Presupuesto en tiempo real\n| Vidquoten3\n\n|-\n| Listavigente\n| \n| Selecciona solo el primer registro ordenado en forma descendente de la tabla de listasprecios\n| Listasprecios\n\n|-\n| Preciosvigentes\n| FZG.Vista.preciosvigentes.sql\n| Es la selección de la tabla de precios referenciando el mayor valor dentro de la tabla de listasprecios\n| Listasprecios, Precios\n\n|-\n| Preciosvigact\n| FZG.Vista.preciosvigact.sql\n| Vista de lista de precios vigentes con datos de productos para actualización columnar.FORM: Actualización por tipo de lista\n| Preciosvigentes, Productos\n\n|-\n| Precioscmpl\n| [[FZG.Vista.precioscmpl.sql]]\n| Vista de lista de precios completa con datos de productos. [[FORM: Precios Tabular x Proceso]]\n| Precios, Productos\n\n|-\n| Visprestot\n| FZG.Vista.visprestot.sql\n| Vista de Presupuestos Totalizados por Cliente\n| Visreppres\n\n|-\n| Viscompcnt\n| [[FZG.Vista.viscompcnt.sql]]\n| Vista resumen de Componentes completa con indicadores de estado de composición\n| composicion, producto\n|}</small>\n\n=== Objetos ===\n==== Formularios ====\n*[[FORM:Presupuesto]]\n*[[FORM:CopiaComposicion]]\n*[[FORM:Pagos]]\n*[[FORM:Cobranzas]]\n\n==== Reportes ====\n*[[RPRT:Presupuestos]]\n*[[RPRT:PresupuestosDirecto]]\n*[[RPRT:IndividualCRM]]\n\n=== Procedimientos ===\n*[[PROC:ActualizaItemPresupuesto]]\n*[[PROC:ActualizaPreciosPresupuesto]]\n*[[PROC:ActualizaPreciosTabular]]\n*[[PROC:AgregaProductoCompo]]\n*[[PROC:AltaItemPresupuesto]]\n*[[PROC:AltaItemPresupuestoTmp]]\n*[[PROC:CalculaPrecioBase]]\n*[[PROC:CalculoMedidaReal]]\n*[[PROC:CalculoPrecio]]\n*[[PROC:CopiaPresupuesto]]\n*[[PROC:DuplicaProductoCompo]]\n*[[PROC:GrabaItemPresupuestoTmp]]\n*[[PROC:ResetEdicionItemTmp]]\n\n=== Bibliotecas ===\n*[[LIBR:FazzGlassMcr]]\n*[[LIBR:SpanexB]]\n*[[LIBR:SpanexC]]','utf-8'),(946,'[[Category:TABLAS]]\n== Descripción ==\nTransacciones de Pagos\n== Composición ==\nTabla Plana + Triggers\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `accpayab` (\n  `TTransaccion` char(2) NOT NULL DEFAULT \'AP\',\n  `NTransaccion` int(11) NOT NULL AUTO_INCREMENT,\n  `FechaAutAP` date DEFAULT NULL,\n  `FechaAP` date DEFAULT NULL,\n  `FormaAP` char(3) DEFAULT NULL,\n  `ImporteAP` decimal(10,2) DEFAULT NULL,\n  `ProveedAP` char(8) DEFAULT NULL,\n  `TDocumentoOrg` char(2) DEFAULT NULL,\n  `NDocumentoOrg` int(11) DEFAULT NULL,\n  `DDocumentoOrg` varchar(100) DEFAULT NULL,\n  PRIMARY KEY (`TTransaccion`,`NTransaccion`)\n) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin1$$\n\nCREATE TRIGGER `fzggestion`.`Alta_Pago`\nBEFORE INSERT ON `fzggestion`.`accpayab`\nFOR EACH ROW\nBEGIN\n	SET NEW.FechaAutAP = CURDATE();\nEND\n$$\n</pre>\n== Bitácora ==\n*20120724\n**Alta\n== Uso ==\n== URL ==\n</pre>','utf-8'),(947,'[[Category:TABLAS]]\n== Descripción ==\nContainer de Detalle de Productos de un Boceto\n== Composición ==\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `bocetosdet` (\n  `BocetoID` char(8) NOT NULL,\n  `ProductoID` char(8) NOT NULL,\n  `ComposicID` int(5) NOT NULL AUTO_INCREMENT,\n  `CantidadPR` int(5) DEFAULT NULL,\n  `AnchoPredef` int(5) DEFAULT NULL,\n  `AltoPredef` int(5) DEFAULT NULL,\n  `DimensionChg` int(5) DEFAULT \'1\',\n  `CantidadChg` int(5) DEFAULT \'1\',\n  `ProductoChg` int(5) DEFAULT \'1\',\n  `ProductoVsb` int(5) DEFAULT \'1\',\n  `PosX` int(5) DEFAULT \'0\',\n  `PosY` int(5) DEFAULT \'0\',\n  PRIMARY KEY (`BocetoID`,`ProductoID`,`ComposicID`)\n) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=latin1$$\n</pre>\n== Bitácora ==\n== Uso ==\n*20121201\n**Alta\n== URL ==','utf-8'),(948,'=== Estructuras de Datos ===\n==== Estructuras Tipo ====\n[[Estructuras SQL]]\n\n==== Tablas ====\n* [[TABLA:catinsumos]]\n* [[TABLA:cmoneda]]\n* [[TABLA:composicion]]\n* [[TABLA:composicionqry]]\n* [[TABLA:contactos]]\n* [[TABLA:cpar]]\n* [[TABLA:debugstmt]]\n* [[TABLA:elementos]]\n* [[TABLA:insumos]]\n* [[TABLA:listasprecios]]\n* [[TABLA:logprecios]]\n* [[TABLA:magnitudes]]\n* [[TABLA:monedas]]\n* [[TABLA:precios]]\n* [[TABLA:preciosqry]]\n* [[TABLA:productos]]\n* [[TABLA:reppresqry]]\n* [[TABLA:tdocumento]]\n* [[TABLA:telemecomp]]\n* [[TABLA:transacciones]]\n* [[TABLA:ttransac]]\n* [[TABLA:vidquoten1]]\n* [[TABLA:vidquoten2]]\n* [[TABLA:vidquoten3]]\n* [[TABLA:vidquoten3tmp]]\n* [[TABLA:vidquoten4]]\n===== Template Layout General =====\n* [[TEMP:LayoutGeneral]]\n\n==== Vistas ====\n[http://sqlformat.appspot.com/ SQLFormatBeautify]\n*[[VISTA:acomerciales]]\n*[[VISTA:clientes]]\n*[[VISTA:listavigente]]\n*[[VISTA:precioscmpl]]\n*[[VISTA:preciosvigact]]\n*[[VISTA:preciosvigentes]]\n*[[VISTA:proveedores]]\n*[[VISTA:viscabdetalla]]\n*[[VISTA:viscompcnt]]\n*[[VISTA:viscompodis]]\n*[[VISTA:viscomposimpl]]\n*[[VISTA:visdetaobs]]\n*[[VISTA:visdocpcob]]\n*[[VISTA:vistranscrm]]\n*[[VISTA:visintdetpre]]\n*[[VISTA:vislineabs]]\n*[[VISTA:visprdparam]]\n*[[VISTA:visprestot]]\n*[[VISTA:visprodadic]]\n*[[VISTA:visreppres]]\n*[[VISTA:visrprescmp]]\n*[[VISTA:vissubxitem]]\n*[[VISTA:chqactivos]]\n*[[VISTA:vischtdisp]]\n*[[VISTA:vischeckmod]]\n*[[VISTA:vistotprod]]\n\n<small>\n{| class=\"wikitable\"\n| <center>\'\'\'Nombre\'\'\'</center>\n| <center>\'\'\'Comando\'\'\'</center>\n| <center>\'\'\'Uso\'\'\'</center>\n| <center>\'\'\'Cross\'\'\'</center>\n\n|-\n| Viscabdetalla\n| FZG.Vista.viscabdetalla.sql\n| Vista utilizada para agregar la información de cual es la lista de precios a utilizar para el cliente del presupuesto en tiempo real.FORM: Presupuesto\n| Contactos, Vidquoten1\n\n|-\n| Proveedores\n| FZG.Vista.proveedores.sql\n| Visualización de Contactos “Proveedores”\n| Contactos\n\n|-\n| Clientes\n| FZG.Vista.clientes.sql\n| Visualización de Contactos “Clientes”\n| Contactos\n\n|-\n| Visreppres\n| FZG.Vista.visreppres.sql\n| Vista Reporte Presupuesto Individual. Para generar una línea completa con la información de detalle de los presupuestos con las combinaciones de información a incluir en el mismo. No contiene la información estática del cliente.\n| Vislineabs, Visdetaobs\n\n|-\n| Viscompodis\n| FZG.Vista.viscompodis.sql\n| Vista de productos (DISTINCT productos) dentro de la tabla de composición ordenada por alfabéticamente.\n| \n\n|-\n| Viscoposimpl\n| FZG.Vista.viscomposimpl.sql\n| Vista de los elementos de composicion con información para query\n| Productos, Composición\n\n|-\n| Visdetaobs\n| FZG.Vista.visdetaobs.sql\n| Une todas las Observaciones de cada item para los casos que se encuentren señaladas con la Descripción del Producto-Item\n| Productos, Vidquoten3\n\n|-\n| Visintdetpre\n| FZG.Vista.visintdetpre.sql\n| Reducción de vista Visprodadic aplicable al cálculo de presupuesto con los datos en tiempo real del presupuesto activo en formulario y calculando el precio correcto de acuerdo al cliente y el cálculo del valor del elemento de acuerdo al los valores de Alto y Ancho del Vano en tiempo real\n| Visprodadic, Vidquoten2\n\n|-\n| Vislineabs\n| [[FZG.Vista.vislineabs.sql]]\n| Define linea básica para reporte teniendo como base Vidquoten2, agregando la información de la cabecera + datos de descrpción de producto + el subtotal por Producto-Item\n| Vidquoten1, Vidquoten2, Productos, Vissubxitem\n\n|-\n| Visprodadic\n| FZG.Vista.visproadic.sql\n| Vista de tabla de componentes con la información de cada elemento como producto y de los precios vigentes.\n| Productos, Composicion, PreciosVigentes\n\n|-\n| Vissubxitem\n| FZG.Vista.vissubxitem.sql\n| Subtotal por Item de Presupuesto en tiempo real\n| Vidquoten3\n\n|-\n| Listavigente\n| \n| Selecciona solo el primer registro ordenado en forma descendente de la tabla de listasprecios\n| Listasprecios\n\n|-\n| Preciosvigentes\n| FZG.Vista.preciosvigentes.sql\n| Es la selección de la tabla de precios referenciando el mayor valor dentro de la tabla de listasprecios\n| Listasprecios, Precios\n\n|-\n| Preciosvigact\n| FZG.Vista.preciosvigact.sql\n| Vista de lista de precios vigentes con datos de productos para actualización columnar.FORM: Actualización por tipo de lista\n| Preciosvigentes, Productos\n\n|-\n| Precioscmpl\n| [[FZG.Vista.precioscmpl.sql]]\n| Vista de lista de precios completa con datos de productos. [[FORM: Precios Tabular x Proceso]]\n| Precios, Productos\n\n|-\n| Visprestot\n| FZG.Vista.visprestot.sql\n| Vista de Presupuestos Totalizados por Cliente\n| Visreppres\n\n|-\n| Viscompcnt\n| [[FZG.Vista.viscompcnt.sql]]\n| Vista resumen de Componentes completa con indicadores de estado de composición\n| composicion, producto\n|}</small>\n\n=== Objetos ===\n==== Formularios ====\n*[[FORM:Presupuesto]]\n*[[FORM:CopiaComposicion]]\n*[[FORM:Pagos]]\n*[[FORM:Cobranzas]]\n\n==== Reportes ====\n*[[RPRT:Presupuestos]]\n*[[RPRT:PresupuestosDirecto]]\n*[[RPRT:IndividualCRM]]\n\n=== Procedimientos ===\n*[[PROC:ActualizaItemPresupuesto]]\n*[[PROC:ActualizaPreciosPresupuesto]]\n*[[PROC:ActualizaPreciosTabular]]\n*[[PROC:AgregaProductoCompo]]\n*[[PROC:AltaItemPresupuesto]]\n*[[PROC:AltaItemPresupuestoTmp]]\n*[[PROC:CalculaPrecioBase]]\n*[[PROC:CalculoMedidaReal]]\n*[[PROC:CalculoPrecio]]\n*[[PROC:CopiaPresupuesto]]\n*[[PROC:DuplicaProductoCompo]]\n*[[PROC:GrabaItemPresupuestoTmp]]\n*[[PROC:ResetEdicionItemTmp]]\n\n=== Bibliotecas ===\n*[[LIBR:FazzGlassMcr]]\n*[[LIBR:SpanexB]]\n*[[LIBR:SpanexC]]','utf-8'),(949,'[[Category:TABLAS]]\n== Descripción ==\nContainer de subconjunto de lineas de control de Bocetos\n== Composición ==\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `bocetossbs` (\n  `BocetoID` char(8) NOT NULL,\n  `ProductoID` char(8) NOT NULL,\n  `ComposicID` int(5) NOT NULL,\n  `SubSetTP` char(1) NOT NULL,\n  `SubSetNO` int(2) NOT NULL,\n  PRIMARY KEY (`BocetoID`,`ComposicID`,`ProductoID`,`SubSetTP`,`SubSetNO`)\n) ENGINE=InnoDB DEFAULT CHARSET=latin1$$\n</pre>\n== Bitácora ==\n*20121201\n**Alta\n== Uso ==\n== URL ==','utf-8'),(950,'[[Category:TABLAS]]\n== Descripción ==\nCabecera de Módulos de Producto\n== Composición ==\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `moduloscab` (\n  `ModuloID` char(8) NOT NULL DEFAULT \'\',\n  `ModuloDSC` varchar(80) NOT NULL,\n  `ModuloVW` int(5) DEFAULT \'0\',\n  `ModuloVH` int(5) DEFAULT \'0\',\n  `ModuloIMG` blob,\n  `ModuloATH` varchar(10) NOT NULL,\n  `ModuloFec` date NOT NULL,\n  PRIMARY KEY (`ModuloID`)\n) ENGINE=MyISAM DEFAULT CHARSET=latin1$$\n</pre>\n== Bitácora ==\n*20121121\n**Alta\n== Uso ==\n== URL ==','utf-8'),(951,'[[Category:TABLAS]]\n== Descripción ==\nDetalle de información de Modulos. Se relaciona jerárquicamente hacia arriba con [[TABLA:moduloscab]] y hacia abajo con [[TABLA:modulossbs]]\n== Composición ==\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `modulosdet` (\n  `ModuloID` char(8) NOT NULL,\n  `ProductoID` char(8) NOT NULL,\n  `ComposicID` int(5) NOT NULL AUTO_INCREMENT,\n  `CantidadPR` int(5) DEFAULT NULL,\n  `AnchoPredef` int(5) DEFAULT NULL,\n  `AltoPredef` int(5) DEFAULT NULL,\n  `DimensionChg` int(5) DEFAULT \'1\',\n  `CantidadChg` int(5) DEFAULT \'1\',\n  `ProductoChg` int(5) DEFAULT \'1\',\n  `ProductoVsb` int(5) DEFAULT \'1\',\n  `PosX` int(5) DEFAULT \'0\',\n  `PosY` int(5) DEFAULT \'0\',\n  PRIMARY KEY (`ModuloID`,`ProductoID`,`ComposicID`)\n) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=latin1$$\n</pre>\n== Bitácora ==\n*20121205\n**Cambio de esquema para albergar varias ocurrencias de subconjuntos de \"lineas de control\" para el chequeo de las dimensiones. Se elimina el trigger de automatización de ingreso ya que solo agrega líneas a la [[TABLA:modulossbs]] Anterior estructura:\n<pre>\ndelimiter $$\n\nCREATE TABLE `modulosdet` (\n  `ModuloID` char(8) NOT NULL,\n  `ProductoID` char(8) NOT NULL,\n  `ComposicID` int(5) NOT NULL AUTO_INCREMENT,\n  `CantidadPR` int(5) DEFAULT NULL,\n  `AnchoPredef` int(5) DEFAULT NULL,\n  `AltoPredef` int(5) DEFAULT NULL,\n  `DimensionChg` int(5) DEFAULT \'1\',\n  `CantidadChg` int(5) DEFAULT \'1\',\n  `ProductoChg` int(5) DEFAULT \'1\',\n  `SubSetAncho` int(5) DEFAULT \'1\',\n  `SubSetAlto` int(5) DEFAULT \'1\',\n  `ProductoVsb` int(5) DEFAULT \'1\',\n  PRIMARY KEY (`ModuloID`,`ProductoID`,`ComposicID`)\n) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=latin1$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Modifica_Modulo`\nBEFORE UPDATE ON `fzggestion`.`modulosdet`\nFOR EACH ROW\nBEGIN\n    SET\n    NEW.SubSetAncho = IF(NEW.SubSetAncho=0,NULL,NEW.SubSetAncho),\n    NEW.SubSetAlto  = IF(NEW.SubSetAlto=0,NULL,NEW.SubSetAlto);\nEND\n$$\n\n</pre>\n*20121121\n**Alta\n== Uso ==\n== URL ==','utf-8'),(952,'[[Category:TABLAS]]\n== Descripción ==\nTabla de Precios\n== SQL ==\n<pre>\nCREATE TABLE `precios` (\n  `Lista` int(11) NOT NULL,\n  `ProductoID` char(8) NOT NULL,\n  `PrecioProd00` decimal(12,2) DEFAULT NULL,\n  `PrecioProd01` decimal(12,2) DEFAULT NULL,\n  `PrecioProd02` decimal(12,2) DEFAULT NULL,\n  `PrecioProd03` decimal(12,2) DEFAULT NULL,\n  `FechaEvento` date DEFAULT NULL,\n  `HoraEvento` time DEFAULT NULL,\n  `UserEvento` varchar(20) DEFAULT NULL,\n  PRIMARY KEY (`Lista`,`ProductoID`)\n) ENGINE=MyISAM DEFAULT CHARSET=latin1$$\n</pre>\n\n== Bitácora ==\n== Uso ==\n== Triggers ==\n* [[TRIG:precios.AltaPrecio]]\n* [[TRIG:precios.ActualizaPrecio]]','utf-8'),(953,'[[Category:TABLAS]]\n== Descripción ==\nProductos Activos\n== Estructura ==\n<pre>\nProductoID	char(8) PK \nCategoriaID	char(4) \nDescripcion	char(80) \nProveedorID	char(4) \nReposicion	int(3) \nMagnitud	char(4) \nCoefP00P01	decimal(6,4) \nCoefP00P02	decimal(6,4) \nCoefP00P03	decimal(6,4) \nProductoPID	varchar(15) \nInsumoIMG	mediumblob \n</pre>\n\n== Triggers ==\n* Alta: [[TRIG:productos.AltaProducto]]\n* Baja: [[TRIG:productos.BajaProducto]]\n\n== Bitácora ==\n== Uso ==\n== URL ==','utf-8'),(954,'[[Category:TABLAS]]\n== Descripción ==\nTabla temporaria para almacenar un número de presupuesto asociado y transferir la info entre procesos no continuos\n== Composición ==\nTABLA:reppresqry\n== Estructura ==\n< pre>\n< /pre>\n== SQL ==\n< pre>\nCREATE TABLE `reppresqry` (\n  `VidQuoteID` int(11) NOT NULL,\n  PRIMARY KEY (`VidQuoteID`)\n) ENGINE=MyISAM DEFAULT CHARSET=latin1$$\n< /pre>\n== Bitácora ==\n== Uso ==\n*[[FORM:Presupuesto]]\n*[[REPORT:Presupuesto]]\n== URL ==','utf-8'),(955,'[[Category:TABLAS]]\n== Descripción ==\nTipos de Documento\n== Composición ==\nTabla Plana\n\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `tdocumento` (\n  `TDocumentoID` char(2) NOT NULL,\n  `TDocumentoDSC` varchar(45) DEFAULT NULL,\n  `TDocumentoAP` char(1) DEFAULT NULL,\n  `TDocumentoAR` char(1) DEFAULT NULL,\n  PRIMARY KEY (`TDocumentoID`)\n) ENGINE=MyISAM DEFAULT CHARSET=latin1$$\n</pre>\n\n== Bitácora ==\n== Uso ==\n== URL ==\n</pre>','utf-8'),(956,'[[Category:TABLAS]]\n== Descripción ==\nTipo de Elementos de Composición\n== Composición ==\n== SQL ==\n<pre>\nCREATE  TABLE `fzggestion`.`telemecomp` (\n  `TElementoID` INT(1) NOT NULL ,\n  `TElementoDSC` VARCHAR(45) NULL ,\n  PRIMARY KEY (`TElementoID`) );\n</pre>\n== Bitácora ==\n== Uso ==\nReferencial ElementoPM en [[TABLA:composicion]]\n== URL ==','utf-8'),(957,'=== Estructuras de Datos ===\n==== Estructuras Tipo ====\n[[Estructuras SQL]]\n\n==== Tablas ====\n* [[TABLA:catinsumos]]\n* [[TABLA:cmoneda]]\n* [[TABLA:composicionqry]]\n* [[TABLA:contactos]]\n* [[TABLA:cpar]]\n* [[TABLA:debugstmt]]\n* [[TABLA:elementos]]\n* [[TABLA:insumos]]\n* [[TABLA:listasprecios]]\n* [[TABLA:logprecios]]\n* [[TABLA:monedas]]\n* [[TABLA:preciosqry]]\n* [[TABLA:transacciones]]\n* [[TABLA:ttransac]]\n* [[TABLA:vidquoten1]]\n* [[TABLA:vidquoten2]]\n* [[TABLA:vidquoten3]]\n* [[TABLA:vidquoten3tmp]]\n* [[TABLA:vidquoten4]]\n===== Template Layout General =====\n* [[TEMP:LayoutGeneral]]\n\n==== Vistas ====\n[http://sqlformat.appspot.com/ SQLFormatBeautify]\n*[[VISTA:acomerciales]]\n*[[VISTA:clientes]]\n*[[VISTA:listavigente]]\n*[[VISTA:precioscmpl]]\n*[[VISTA:preciosvigact]]\n*[[VISTA:preciosvigentes]]\n*[[VISTA:proveedores]]\n*[[VISTA:viscabdetalla]]\n*[[VISTA:viscompcnt]]\n*[[VISTA:viscompodis]]\n*[[VISTA:viscomposimpl]]\n*[[VISTA:visdetaobs]]\n*[[VISTA:visdocpcob]]\n*[[VISTA:vistranscrm]]\n*[[VISTA:visintdetpre]]\n*[[VISTA:vislineabs]]\n*[[VISTA:visprdparam]]\n*[[VISTA:visprestot]]\n*[[VISTA:visprodadic]]\n*[[VISTA:visreppres]]\n*[[VISTA:visrprescmp]]\n*[[VISTA:vissubxitem]]\n*[[VISTA:chqactivos]]\n*[[VISTA:vischtdisp]]\n*[[VISTA:vischeckmod]]\n*[[VISTA:vistotprod]]\n\n<small>\n{| class=\"wikitable\"\n| <center>\'\'\'Nombre\'\'\'</center>\n| <center>\'\'\'Comando\'\'\'</center>\n| <center>\'\'\'Uso\'\'\'</center>\n| <center>\'\'\'Cross\'\'\'</center>\n\n|-\n| Viscabdetalla\n| FZG.Vista.viscabdetalla.sql\n| Vista utilizada para agregar la información de cual es la lista de precios a utilizar para el cliente del presupuesto en tiempo real.FORM: Presupuesto\n| Contactos, Vidquoten1\n\n|-\n| Proveedores\n| FZG.Vista.proveedores.sql\n| Visualización de Contactos “Proveedores”\n| Contactos\n\n|-\n| Clientes\n| FZG.Vista.clientes.sql\n| Visualización de Contactos “Clientes”\n| Contactos\n\n|-\n| Visreppres\n| FZG.Vista.visreppres.sql\n| Vista Reporte Presupuesto Individual. Para generar una línea completa con la información de detalle de los presupuestos con las combinaciones de información a incluir en el mismo. No contiene la información estática del cliente.\n| Vislineabs, Visdetaobs\n\n|-\n| Viscompodis\n| FZG.Vista.viscompodis.sql\n| Vista de productos (DISTINCT productos) dentro de la tabla de composición ordenada por alfabéticamente.\n| \n\n|-\n| Viscoposimpl\n| FZG.Vista.viscomposimpl.sql\n| Vista de los elementos de composicion con información para query\n| Productos, Composición\n\n|-\n| Visdetaobs\n| FZG.Vista.visdetaobs.sql\n| Une todas las Observaciones de cada item para los casos que se encuentren señaladas con la Descripción del Producto-Item\n| Productos, Vidquoten3\n\n|-\n| Visintdetpre\n| FZG.Vista.visintdetpre.sql\n| Reducción de vista Visprodadic aplicable al cálculo de presupuesto con los datos en tiempo real del presupuesto activo en formulario y calculando el precio correcto de acuerdo al cliente y el cálculo del valor del elemento de acuerdo al los valores de Alto y Ancho del Vano en tiempo real\n| Visprodadic, Vidquoten2\n\n|-\n| Vislineabs\n| [[FZG.Vista.vislineabs.sql]]\n| Define linea básica para reporte teniendo como base Vidquoten2, agregando la información de la cabecera + datos de descrpción de producto + el subtotal por Producto-Item\n| Vidquoten1, Vidquoten2, Productos, Vissubxitem\n\n|-\n| Visprodadic\n| FZG.Vista.visproadic.sql\n| Vista de tabla de componentes con la información de cada elemento como producto y de los precios vigentes.\n| Productos, Composicion, PreciosVigentes\n\n|-\n| Vissubxitem\n| FZG.Vista.vissubxitem.sql\n| Subtotal por Item de Presupuesto en tiempo real\n| Vidquoten3\n\n|-\n| Listavigente\n| \n| Selecciona solo el primer registro ordenado en forma descendente de la tabla de listasprecios\n| Listasprecios\n\n|-\n| Preciosvigentes\n| FZG.Vista.preciosvigentes.sql\n| Es la selección de la tabla de precios referenciando el mayor valor dentro de la tabla de listasprecios\n| Listasprecios, Precios\n\n|-\n| Preciosvigact\n| FZG.Vista.preciosvigact.sql\n| Vista de lista de precios vigentes con datos de productos para actualización columnar.FORM: Actualización por tipo de lista\n| Preciosvigentes, Productos\n\n|-\n| Precioscmpl\n| [[FZG.Vista.precioscmpl.sql]]\n| Vista de lista de precios completa con datos de productos. [[FORM: Precios Tabular x Proceso]]\n| Precios, Productos\n\n|-\n| Visprestot\n| FZG.Vista.visprestot.sql\n| Vista de Presupuestos Totalizados por Cliente\n| Visreppres\n\n|-\n| Viscompcnt\n| [[FZG.Vista.viscompcnt.sql]]\n| Vista resumen de Componentes completa con indicadores de estado de composición\n| composicion, producto\n|}</small>\n\n=== Objetos ===\n==== Formularios ====\n*[[FORM:Presupuesto]]\n*[[FORM:CopiaComposicion]]\n*[[FORM:Pagos]]\n*[[FORM:Cobranzas]]\n\n==== Reportes ====\n*[[RPRT:Presupuestos]]\n*[[RPRT:PresupuestosDirecto]]\n*[[RPRT:IndividualCRM]]\n\n=== Procedimientos ===\n*[[PROC:ActualizaItemPresupuesto]]\n*[[PROC:ActualizaPreciosPresupuesto]]\n*[[PROC:ActualizaPreciosTabular]]\n*[[PROC:AgregaProductoCompo]]\n*[[PROC:AltaItemPresupuesto]]\n*[[PROC:AltaItemPresupuestoTmp]]\n*[[PROC:CalculaPrecioBase]]\n*[[PROC:CalculoMedidaReal]]\n*[[PROC:CalculoPrecio]]\n*[[PROC:CopiaPresupuesto]]\n*[[PROC:DuplicaProductoCompo]]\n*[[PROC:GrabaItemPresupuestoTmp]]\n*[[PROC:ResetEdicionItemTmp]]\n\n=== Bibliotecas ===\n*[[LIBR:FazzGlassMcr]]\n*[[LIBR:SpanexB]]\n*[[LIBR:SpanexC]]','utf-8'),(958,'[[Category:TABLAS]]\n== Descripción ==\nEsquema de Cabecera de Registración de Presupuesto\n== Composición ==\n== Estructura ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `vidquoten1` (\n  `VidQuoteID` int(11) NOT NULL AUTO_INCREMENT,\n  `VidQuoteObra` char(20) DEFAULT NULL,\n  `VidQuoteCliente` char(8) NOT NULL,\n  `VidQuoteFecha` date DEFAULT NULL,\n  `VidQuoteFechaEst` date DEFAULT NULL,\n  `VidQuoteEstado` char(1) DEFAULT \'0\',\n  `VidQuoteACom` char(4) NOT NULL,\n  `VidQuoteMedCheck` char(1) DEFAULT \'0\',\n  PRIMARY KEY (`VidQuoteID`)\n) ENGINE=MyISAM AUTO_INCREMENT=72 DEFAULT CHARSET=latin1$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Baja_Presupuesto`\nAFTER DELETE ON `fzggestion`.`vidquoten1`\nFOR EACH ROW\nBEGIN\n    DELETE FROM vidquoten2\n    WHERE vidquoten2.VidQuoteID=OLD.VidQuoteID;\n    DELETE FROM vidquoten3\n    WHERE vidquoten3.VidQuoteID=OLD.VidQuoteID;\n  END\n$$\n</pre>\n== SQL ==\n<pre>\n</pre>\n== Bitácora ==\n*20121026\n**Alta de esta documentación\n**Modificación de la estructura. Agregado de control de NOTNULL para los atributos de Cliente y Agente Comercial\n<pre>\nALTER TABLE `fzggestion`.`vidquoten1` \nCHANGE COLUMN `VidQuoteCliente` `VidQuoteCliente` CHAR(8) NOT NULL  ,\nCHANGE COLUMN `VidQuoteACom` `VidQuoteACom` CHAR(4) NOT NULL  ;\n</pre>\n== Uso ==\n*[[FORM:Presupuesto]]\n*[[RPRT:Presupuesto]]\n== URL ==','utf-8'),(959,'[[Category:TABLAS]]\n== Descripción ==\n== Composición ==\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\n</pre>\n== Bitácora ==\n== Uso ==\n== URL ==','utf-8'),(960,'[[Category:TABLAS]]\n== Descripción ==\nBuffer temporario para permitir taggear opciones dentro de la confiormación presupuestaria\n== Composición ==\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `vidquoten3tmp` (\n  `VidQuoteID` int(11) NOT NULL,\n  `VidQuoteItem` int(11) NOT NULL,\n  `VidQuoteProdID` char(8) NOT NULL,\n  `VidQuoteElementoID` char(8) NOT NULL,\n  `VidQuoteComposicID` int(11) NOT NULL,\n  `VidQuoteElementoPM` int(1) DEFAULT NULL,\n  `VidQuoteProdCantidad` int(5) DEFAULT NULL,\n  `VidQuotePrecio` decimal(16,8) DEFAULT NULL,\n  `VidQuotePrecioP` decimal(16,8) DEFAULT NULL,\n  `VidQuoteIncluyeDet` tinyint(1) DEFAULT \'0\',\n  `VidQuoteQuickSelect` tinyint(1) DEFAULT \'0\',\n  PRIMARY KEY (`VidQuoteID`,`VidQuoteItem`,`VidQuoteProdID`,`VidQuoteElementoID`,`VidQuoteComposicID`)\n) ENGINE=MyISAM DEFAULT CHARSET=latin1$$\n</pre>\n== Bitácora ==\n*20120824\n**Alta de Tabla\n== Uso ==\n*[[FORM:Presupuesto]]\n== URL ==','utf-8'),(961,'=== Estructuras de Datos ===\n==== Estructuras Tipo ====\n[[Estructuras SQL]]\n\n==== Tablas ====\n* [[TABLA:catinsumos]]\n* [[TABLA:cmoneda]]\n* [[TABLA:composicionqry]]\n* [[TABLA:contactos]]\n* [[TABLA:cpar]]\n* [[TABLA:debugstmt]]\n* [[TABLA:elementos]]\n* [[TABLA:insumos]]\n* [[TABLA:listasprecios]]\n* [[TABLA:logprecios]]\n* [[TABLA:monedas]]\n* [[TABLA:preciosqry]]\n* [[TABLA:transacciones]]\n* [[TABLA:ttransac]]\n* [[TABLA:vidquoten2]]\n* [[TABLA:vidquoten4]]\n===== Template Layout General =====\n* [[TEMP:LayoutGeneral]]\n\n==== Vistas ====\n[http://sqlformat.appspot.com/ SQLFormatBeautify]\n*[[VISTA:acomerciales]]\n*[[VISTA:clientes]]\n*[[VISTA:listavigente]]\n*[[VISTA:precioscmpl]]\n*[[VISTA:preciosvigact]]\n*[[VISTA:preciosvigentes]]\n*[[VISTA:proveedores]]\n*[[VISTA:viscabdetalla]]\n*[[VISTA:viscompcnt]]\n*[[VISTA:viscompodis]]\n*[[VISTA:viscomposimpl]]\n*[[VISTA:visdetaobs]]\n*[[VISTA:visdocpcob]]\n*[[VISTA:vistranscrm]]\n*[[VISTA:visintdetpre]]\n*[[VISTA:vislineabs]]\n*[[VISTA:visprdparam]]\n*[[VISTA:visprestot]]\n*[[VISTA:visprodadic]]\n*[[VISTA:visreppres]]\n*[[VISTA:visrprescmp]]\n*[[VISTA:vissubxitem]]\n*[[VISTA:chqactivos]]\n*[[VISTA:vischtdisp]]\n*[[VISTA:vischeckmod]]\n*[[VISTA:vistotprod]]\n\n<small>\n{| class=\"wikitable\"\n| <center>\'\'\'Nombre\'\'\'</center>\n| <center>\'\'\'Comando\'\'\'</center>\n| <center>\'\'\'Uso\'\'\'</center>\n| <center>\'\'\'Cross\'\'\'</center>\n\n|-\n| Viscabdetalla\n| FZG.Vista.viscabdetalla.sql\n| Vista utilizada para agregar la información de cual es la lista de precios a utilizar para el cliente del presupuesto en tiempo real.FORM: Presupuesto\n| Contactos, Vidquoten1\n\n|-\n| Proveedores\n| FZG.Vista.proveedores.sql\n| Visualización de Contactos “Proveedores”\n| Contactos\n\n|-\n| Clientes\n| FZG.Vista.clientes.sql\n| Visualización de Contactos “Clientes”\n| Contactos\n\n|-\n| Visreppres\n| FZG.Vista.visreppres.sql\n| Vista Reporte Presupuesto Individual. Para generar una línea completa con la información de detalle de los presupuestos con las combinaciones de información a incluir en el mismo. No contiene la información estática del cliente.\n| Vislineabs, Visdetaobs\n\n|-\n| Viscompodis\n| FZG.Vista.viscompodis.sql\n| Vista de productos (DISTINCT productos) dentro de la tabla de composición ordenada por alfabéticamente.\n| \n\n|-\n| Viscoposimpl\n| FZG.Vista.viscomposimpl.sql\n| Vista de los elementos de composicion con información para query\n| Productos, Composición\n\n|-\n| Visdetaobs\n| FZG.Vista.visdetaobs.sql\n| Une todas las Observaciones de cada item para los casos que se encuentren señaladas con la Descripción del Producto-Item\n| Productos, Vidquoten3\n\n|-\n| Visintdetpre\n| FZG.Vista.visintdetpre.sql\n| Reducción de vista Visprodadic aplicable al cálculo de presupuesto con los datos en tiempo real del presupuesto activo en formulario y calculando el precio correcto de acuerdo al cliente y el cálculo del valor del elemento de acuerdo al los valores de Alto y Ancho del Vano en tiempo real\n| Visprodadic, Vidquoten2\n\n|-\n| Vislineabs\n| [[FZG.Vista.vislineabs.sql]]\n| Define linea básica para reporte teniendo como base Vidquoten2, agregando la información de la cabecera + datos de descrpción de producto + el subtotal por Producto-Item\n| Vidquoten1, Vidquoten2, Productos, Vissubxitem\n\n|-\n| Visprodadic\n| FZG.Vista.visproadic.sql\n| Vista de tabla de componentes con la información de cada elemento como producto y de los precios vigentes.\n| Productos, Composicion, PreciosVigentes\n\n|-\n| Vissubxitem\n| FZG.Vista.vissubxitem.sql\n| Subtotal por Item de Presupuesto en tiempo real\n| Vidquoten3\n\n|-\n| Listavigente\n| \n| Selecciona solo el primer registro ordenado en forma descendente de la tabla de listasprecios\n| Listasprecios\n\n|-\n| Preciosvigentes\n| FZG.Vista.preciosvigentes.sql\n| Es la selección de la tabla de precios referenciando el mayor valor dentro de la tabla de listasprecios\n| Listasprecios, Precios\n\n|-\n| Preciosvigact\n| FZG.Vista.preciosvigact.sql\n| Vista de lista de precios vigentes con datos de productos para actualización columnar.FORM: Actualización por tipo de lista\n| Preciosvigentes, Productos\n\n|-\n| Precioscmpl\n| [[FZG.Vista.precioscmpl.sql]]\n| Vista de lista de precios completa con datos de productos. [[FORM: Precios Tabular x Proceso]]\n| Precios, Productos\n\n|-\n| Visprestot\n| FZG.Vista.visprestot.sql\n| Vista de Presupuestos Totalizados por Cliente\n| Visreppres\n\n|-\n| Viscompcnt\n| [[FZG.Vista.viscompcnt.sql]]\n| Vista resumen de Componentes completa con indicadores de estado de composición\n| composicion, producto\n|}</small>\n\n=== Objetos ===\n==== Formularios ====\n*[[FORM:Presupuesto]]\n*[[FORM:CopiaComposicion]]\n*[[FORM:Pagos]]\n*[[FORM:Cobranzas]]\n\n==== Reportes ====\n*[[RPRT:Presupuestos]]\n*[[RPRT:PresupuestosDirecto]]\n*[[RPRT:IndividualCRM]]\n\n=== Procedimientos ===\n*[[PROC:ActualizaItemPresupuesto]]\n*[[PROC:ActualizaPreciosPresupuesto]]\n*[[PROC:ActualizaPreciosTabular]]\n*[[PROC:AgregaProductoCompo]]\n*[[PROC:AltaItemPresupuesto]]\n*[[PROC:AltaItemPresupuestoTmp]]\n*[[PROC:CalculaPrecioBase]]\n*[[PROC:CalculoMedidaReal]]\n*[[PROC:CalculoPrecio]]\n*[[PROC:CopiaPresupuesto]]\n*[[PROC:DuplicaProductoCompo]]\n*[[PROC:GrabaItemPresupuestoTmp]]\n*[[PROC:ResetEdicionItemTmp]]\n\n=== Bibliotecas ===\n*[[LIBR:FazzGlassMcr]]\n*[[LIBR:SpanexB]]\n*[[LIBR:SpanexC]]','utf-8'),(962,'[[Category:TABLAS]]\n== Descripción ==\n== Composición ==\n== SQL ==\n<pre>\nCREATE TABLE `listavsdim` (\n  `ListaID` int(11) NOT NULL AUTO_INCREMENT,\n  `ListaDimensionGRP` int(11) NOT NULL,\n  `ListaActiva` int(11) NOT NULL DEFAULT \'0\',\n  PRIMARY KEY (`ListaID`)\n) ENGINE=MyISAM DEFAULT CHARSET=latin1;\n</pre>\n== Bitácora ==\n== Uso ==\n== URL ==','utf-8'),(963,'[[Category:TABLAS]]\n== Descripción ==\nDefinicion de Tabla de acceso Magnitudes con las formulas para la versión 2\n== Composición ==\n== Estructura ==\n<pre>\nCREATE TABLE `magnitudes` (\n  `MagnitudID` char(2) NOT NULL,\n  `MagnitudDSC` varchar(45) DEFAULT NULL,\n  `MagnitudCLC` varchar(300) DEFAULT NULL,\n  PRIMARY KEY (`MagnitudID`)\n) ENGINE=MyISAM DEFAULT CHARSET=latin1$$\n</pre>\n\n== SQL ==\n< pre>\n< /pre>\n== Bitácora ==\n*20121018\n**Alta de Tabla\n*20121022\n**Insert Datos\n<pre>\nINSERT INTO `magnitudes` \nVALUES\n(\'AL\',\'Alto\',NULL),\n(\'AN\',\'Ancho\',NULL),\n(\'KG\',\'Kilogramo\',NULL),\n(\'M2\',\'Metro Cuadrado\',NULL),\n(\'MG\',\'Magnitud Galarza\',NULL),\n(\'ML\',\'Metro Lineal\',NULL),\n(\'PR\',\'Perimetro\',NULL),\n(\'UN\',\'Unidad\',\'y…™Ä®�HRø×�óÆ�G|¬^Ôñ}�L��\\\'ª3ý0”æË…¨9�Â…r£�©z¤?yª3®Fßª:ðÍ�\');\n</pre>\n\n== Uso ==\n== URL ==','utf-8'),(964,'[[Category:TABLAS]]\n== Descripción ==\n== Composición ==\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `listaatrib` (\n  `ListaAtribGRP` int(11) NOT NULL,\n  `ListaAtribProdID` char(8) NOT NULL,\n  `ListaAtribCol` int(11) NOT NULL,\n  `ListaAtribActiva` int(11) NOT NULL DEFAULT \'0\',\n  PRIMARY KEY (`ListaAtribGRP`,`ListaAtribCol`,`ListaAtribActiva`)\n) ENGINE=MyISAM DEFAULT CHARSET=latin1$$\n</pre>\n== Bitácora ==\n== Uso ==\n== URL ==','utf-8'),(965,'== Developing ==\n*[[Developing]]\n*[[Pendientes]]\n*[[SpanexDraw]]\n*[[:Categoría:TABLAS|Tablas]]\n\n== Gestión Retail Aberturas (Spanex) ==\n*[[GRA: Pendientes]]\n*[[GRA: Relaciones]]\n*[[GRA: Releases]]\n*[[GRA: PreciosABT]]\n*[[Spanex:Estructuras]]\n\n=== Gestión de Magnitudes ===\n\n==== Definiciones ====\n*Coeficiente: Por defecto, el valor es 1. Si necesita sumar al valor original, el coeficiente tiene que tener la parte entera al menos en 1. En el caso de magnitudes no estándar, los valores del precio del producto puede estar incluido en el mismo, por lo que hay que verificar en este caso los valores que se ingresen en la [[TABLA:precios]]\n*Offset: Por defecto, el valor es 0\n\n==== Atributos de Productos/Elementos ====\n* M2 = Metro Cuadrado\nPrecio Unitario = Precio determinado por tipo de cliente * (((((Ancho + OffsetAncho)*Coeficiente Ancho) * ((Alto + OffsetAlto)*Coeficiente Alto))/100000) * Coeficiente Elemento)\n\n* ML = Metro Lineal\n<Del>Precio Unitario = Precio determinado por tipo de cliente * (((((Ancho + OffsetAncho) * 2 * Coeficiente Ancho) + ((Alto + OffsetAlto) * 2 * Coeficiente Alto)) / 1000) * Coeficiente Elemento).</Del>\n\n* MG = Magnitud Galarza\nPrecio Unitario = Precio determinado por tipo de cliente * ((((Alto + OffsetAlto) * CoeficienteAlto) + (Ancho + OffsetAncho) * CoeficienteAncho)) / 1000) * Coeficiente Elemento)\n\n* UN = Unidad\nPrecio Unitario = Precio determinado por tipo de cliente * Coeficiente Elemento\n\n=== Triggers ===\n<small>\n{| class=\"wikitable\"\n| <center>\'\'\'Trigger\'\'\'</center>\n| <center>\'\'\'Event\'\'\'</center>\n| <center>\'\'\'Table\'\'\'</center>\n| <center>\'\'\'Statement\'\'\'</center>\n| <center>\'\'\'Timing\'\'\'</center>\n\n|-\n| Alta_ListasPrecios\n| INSERT\n| listasprecios\n| <pre>BEGIN\n   DECLARE vListaVieja,vListaNueva INT(5);\n   DECLARE vFechaModificacion DATE;\n   DECLARE vHoraModificacion TIME;\n   SET vListaNueva = (SELECT Lista FROM listavigente);\n   SET vListaVieja = (SELECT MAX(listasprecios.Lista) \n                      FROM listasprecios \n                      WHERE listasprecios.Lista <> NEW.Lista);\n   SET vFechaModificacion = CURDATE();\n   SET vHoraModificacion = CURTIME();\n   INSERT INTO precios (\n      `precios`.`Lista`,\n      `precios`.`ProductoID`,\n      `precios`.`PrecioProd01`,\n      `precios`.`PrecioProd02`,\n      `precios`.`PrecioProd03`,\n      `precios`.`FechaModificacion`,\n      `precios`.`HoraModificacion`)(\n   SELECT    vListaNueva,\n      `precios`.`ProductoID`,\n      `precios`.`PrecioProd01`,\n      `precios`.`PrecioProd02`,\n      `precios`.`PrecioProd03`,\n      vFechaModificacion,\n      vHoraModificacion\n   FROM precios \n   WHERE `precios`.`Lista` = vListaVieja);\nEND</pre>\n| AFTER\n\n|-\n| Alta_LogPrecios\n| INSERT\n| logprecios\n| <pre>BEGIN\n   DECLARE vCategoriaID,vProveedorID,vPaso VARCHAR(5);\n   SET vCategoriaID = IF(ISNULL(`NEW`.`CategoriaID`),\' \',`NEW`.`CategoriaID`);\n   SET vProveedorID = IF(ISNULL(`NEW`.`ProveedorID`),\' \',`NEW`.`ProveedorID`);\n   SET `NEW`.`FechaModificacion` = CURDATE();\n   SET `NEW`.`HoraModificacion` = CURTIME();\n   SET `NEW`.`Lista` = (SELECT max(`listasprecios`.`Lista`) FROM `listasprecios`);\n   IF ISNULL(NEW.CategoriaID) THEN\n      IF ISNULL(NEW.ProveedorID) THEN\n         UPDATE `precios`,`productos`\n         SET    `precios`.`PrecioProd01` = `precios`.`PrecioProd01` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd02` = `precios`.`PrecioProd02` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd03` = `precios`.`PrecioProd03` * `NEW`.`Coeficiente`,\n            `precios`.`FechaModificacion` = CURDATE(),\n            `precios`.`HoraModificacion` = CURTIME()\n         WHERE    `precios`.`ProductoID` = `productos`.`ProductoID` AND\n               `precios`.`Lista` = `NEW`.`Lista`;\n         SET vPaso=\'A\';\n      ELSE\n         UPDATE `precios`,`productos`\n         SET    `precios`.`PrecioProd01` = `precios`.`PrecioProd01` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd02` = `precios`.`PrecioProd02` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd03` = `precios`.`PrecioProd03` * `NEW`.`Coeficiente`,\n            `precios`.`FechaModificacion` = CURDATE(),\n            `precios`.`HoraModificacion` = CURTIME()\n         WHERE   `precios`.`ProductoID` = `productos`.`ProductoID` AND\n               `precios`.`Lista` = `NEW`.`Lista` AND\n               `productos`.`ProveedorID` = NEW.ProveedorID;\n         SET vPaso=\'B\';\n      END IF;\n   ELSE\n      IF ISNULL(NEW.ProveedorID) THEN\n         UPDATE `precios`,`productos`\n         SET    `precios`.`PrecioProd01` = `precios`.`PrecioProd01` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd02` = `precios`.`PrecioProd02` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd03` = `precios`.`PrecioProd03` * `NEW`.`Coeficiente`,\n            `precios`.`FechaModificacion` = CURDATE(),\n            `precios`.`HoraModificacion` = CURTIME()\n         WHERE   `precios`.`ProductoID` = `productos`.`ProductoID` AND\n               `precios`.`Lista` = `NEW`.`Lista` AND\n               `productos`.`CategoriaID` = NEW.CategoriaID;\n         SET vPaso=\'C\';\n      ELSE\n         UPDATE `precios`,`productos`\n         SET    `precios`.`PrecioProd01` = `precios`.`PrecioProd01` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd02` = `precios`.`PrecioProd02` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd03` = `precios`.`PrecioProd03` * `NEW`.`Coeficiente`,\n            `precios`.`FechaModificacion` = CURDATE(),\n            `precios`.`HoraModificacion` = CURTIME()\n         WHERE   \n            `precios`.`ProductoID` = `productos`.`ProductoID` AND\n            `precios`.`Lista` = `NEW`.`Lista` AND\n            `productos`.`CategoriaID` = vCategoriaID AND\n            `productos`.`ProveedorID` = vProveedorID;\n         SET vPaso=\'D\';\n      END IF;\n   END IF;\n   SET `NEW`.`RowsMod` = ROW_COUNT();\nEND</pre>\n| BEFORE\n\n|-\n| Alta_Precio\n| INSERT\n| precios\n| <pre>\'BEGIN\n   SET    NEW.FechaModificacion = CURDATE(),\n      NEW.HoraModificacion = CURTIME();\n  END\'</pre>\n| BEFORE\n\n|-\n| Actualiza_Precio\n| UPDATE\n| precios\n| <pre>\'BEGIN\n   SET    NEW.FechaModificacion = CURDATE(),\n      NEW.HoraModificacion = CURTIME();\n  END\'</pre>\n| BEFORE\n\n|-\n| Alta_Productos\n| INSERT\n| productos\n| <pre>BEGIN\n    DECLARE vLista INT(5);\n    DECLARE vProductoID CHAR(8);\n    SET vLista = (SELECT Lista FROM listavigente);\n    SET vProductoID = NEW.ProductoID;\n    INSERT INTO precios (`precios`.`Lista`, \n                  `precios`.`ProductoID`, \n                  `precios`.`PrecioProd00`,\n                  `precios`.`PrecioProd01`, \n                  `precios`.`PrecioProd02`, \n                  `precios`.`PrecioProd03`)\n           VALUES(vLista, vProductoID, 0, 0, 0, 0);\n    INSERT INTO composicion (`composicion`.`ProductoID`,\n                     `composicion`.`ElementoID`,\n                     `composicion`.`ValorElemento`,\n                     `composicion`.`ElementoPM`)\n           VALUES(vProductoID,vProductoID,1, 1);\nEND</pre>\n| BEFORE\n\n|-\n| Baja_Productos\n| DELETE\n| productos\n| <pre>BEGIN\n    DECLARE vLista INT(5);\n    DECLARE vProductoID CHAR(8);\n    SET vLista = (SELECT Lista FROM listavigente);\n    SET vProductoID = OLD.ProductoID;\n    DELETE FROM precios WHERE ProductoID=OLD.ProductoID AND Lista=vLista;\n    DELETE FROM composicion WHERE ProductoID=OLD.ProductoID OR ElementoID=OLD.ProductoID;\nEND</pre>\n| AFTER\n\n|-\n| AltaTransaccion\n| INSERT\n| transacciones\n| <pre>BEGIN\n   SET   NEW.TransaccFecha = CURDATE(),\n      NEW.TransaccHora = CURTIME();\nEND</pre>\n| BEFORE\n\n|-\n| Baja_Presupuesto\n| DELETE\n| vidquoten1\n| <pre>BEGIN\n    DELETE FROM vidquoten2\n    WHERE vidquoten2.VidQuoteID=OLD.VidQuoteID;\n    DELETE FROM vidquoten3\n    WHERE vidquoten3.VidQuoteID=OLD.VidQuoteID;\n  END</pre>\n| AFTER\n\n|-\n| Baja_Item_Presupuesto\n| DELETE\n| vidquoten2\n| <pre>\'BEGIN\n    DELETE FROM vidquoten3\n    WHERE vidquoten3.VidQuoteID=OLD.VidQuoteID AND\n     vidquoten3.VidQuoteItem=OLD.VidQuoteItem;\n  END\'</pre>\n| AFTER\n\n|-\n| Baja_Elemento_Presupuesto\n| DELETE\n| vidquoten3\n| <pre>BEGIN\n   DELETE FROM vidquoten4\n    WHERE    vidquoten4.VidQuoteID=OLD.VidQuoteID AND\n         vidquoten4.VidQuoteItem=OLD.VidQuoteItem AND\n         vidquoten4.VidQuoteElementoID=OLD.VidQuoteElementoID;\nEND</pre>\n| AFTER\n|}\n</small>\n\n=== Reportes ===\n<small>\n</small>\n\n=== Procedimientos ===\n<small>\n</small>\n\n=== ACL ===\n# Verificar que la ODB esté registrada en el profile de LO/OO (el getcontext hace referencia a eso)\n# Grabar con semilla de nombre de datasource con el texto -> \"sdbc:mysql:odbc:\'\'<datasource>\'\'\"\n\'\'\'Ingreso de Registro en Tabla\'\'\'\n<small><pre>\nINSERT INTO wscontrol (\n	wskey1,\n	wskey2,\n	wsKey3\n	) \nVALUES(\n	ENCODE(<MAC Address en minúscula sin separadores>,\"sdbc:mysql:odbc:<datasource>\"),\n	ENCODE(<Cantidad de Usuarios en formato fill 0 de 3 dígitos>,\"sdbc:mysql:odbc:<datasource>\"),\n	ENCODE(<FechaLimite en ISO Format>,\"sdbc:mysql:odbc:<datasource>\")\n	)\n</pre></small>\n\'\'\'Ejemplo\'\'\'\n<small><pre>\nINSERT INTO wscontrol (\n	wskey1,\n	wskey2,\n	wskey3\n	) \nVALUES(\n	ENCODE(SUBSTRING_INDEX(UUID(), \'-\', -1),\"sdbc:mysql:odbc:FazzGlassGestion\"),\n	ENCODE(\"001\",\"sdbc:mysql:odbc:FazzGlassGestion\"),\n	ENCODE(\"20121231\",\"sdbc:mysql:odbc:FazzGlassGestion\")\n	)\n</pre></small>\n\'\'\'Corroborar ACL\'\'\'\n<small><pre>\nSELECT\n	wskey1 AS Cantidad,\n	wskey2 AS Usuarios,\n	wskey3 AS FechaLimite,\n	CAST(DECODE(wskey1,\'sdbc:mysql:odbc:FazzGlassGestion\') AS Char(12)) AS DecMAC,\n	CAST(DECODE(wskey2,\'sdbc:mysql:odbc:FazzGlassGestion\') AS Char(03)) AS DecUsuarios,\n	CAST(DECODE(wskey3,\'sdbc:mysql:odbc:FazzGlassGestion\') AS Char(08)) AS DecFechaLimite\nFROM\n	wscontrol\n</pre></small>\n\'\'\'Alargar ACL 1 mes más\'\'\'\n<small><pre>\nUPDATE wscontrol \n    SET wskey3 = ENCODE(\n                 DATE_FORMAT(STR_TO_DATE(CAST(DECODE(wskey3,\'sdbc:mysql:odbc:FazzGlassGestion\') AS Char(08)),\n                  \'%Y%m%d\')+INTERVAL 1 MONTH,\'%Y%m%d\'),\n                 \"sdbc:mysql:odbc:FazzGlassGestion\")\n    WHERE CAST(DECODE(wskey1,\'sdbc:mysql:odbc:FazzGlassGestion\') AS Char(12)) = SUBSTRING_INDEX(UUID(),\'-\',-1)\n</pre></small>\n\'\'\'Cambiar Fecha ACL\'\'\'\n<small><pre>\nUPDATE wscontrol \n    SET wskey3 = ENCODE(\n                 \"20121231\",\n                 \"sdbc:mysql:odbc:FazzGlassGestion\")\n    WHERE CAST(DECODE(wskey1,\'sdbc:mysql:odbc:FazzGlassGestion\') AS Char(12)) = SUBSTRING_INDEX(UUID(),\'-\',-1)\n</pre></small>\n{{tecla|Ctrl|A}}\n\n=== Instalacion .odb ===\n*Copiar el documento .odb\n*Cambiar el usuario de la base de datos\n*Cambiar la constante [[oCheckEstadoLicencia]] a True\n*Grabar documento .odb\n*Cambiar a nivel de Sistema Operativo a ReadOnly\n\n=== Documentación de Usuario ===\n[[WikiUserSpanex]]\n=== Soporte-Bitacora ===\n*[[:Category:TKT|SpanexSupport -> Pendientes]]\n*[[:Category:TKTOut|SpanexSupport -> Finalizados]]','utf-8'),(966,'[[Category:TABLAS]]\n== Descripción ==\nContainer del registro de consulta de [[TABLA:composicion]]\n== Composición ==\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `composicionqry` (\n  `QueryID` int(11) NOT NULL AUTO_INCREMENT,\n  `ProductoID` char(8) DEFAULT NULL,\n  `ElementoID` char(8) DEFAULT NULL,\n  `ValorElemento` decimal(16,8) DEFAULT NULL,\n  `ElementoPM` int(1) DEFAULT \'0\',\n  `OffsetVanoAncho` int(11) DEFAULT \'0\',\n  `OffsetVanoAlto` int(11) DEFAULT \'0\',\n  `ProductoIDOrg` char(8) DEFAULT NULL,\n  `ProductoIDDst` char(8) DEFAULT NULL,\n  PRIMARY KEY (`QueryID`)\n) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1$$\n</pre>\n== Bitácora ==\n== Uso ==\n== URL ==','utf-8'),(967,'== Descripción ==\nTabla de ayuda de procedimientos y funciones de la base de datos de Spanex. Actua como snapshot a través del [[PROC:DebugCheckPoint]]\n== Composición ==\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `debugstmt` (\n  `iddebugstmt` int(11) NOT NULL AUTO_INCREMENT,\n  `Fecha` date DEFAULT NULL,\n  `Hora` time DEFAULT NULL,\n  `Texto` varchar(800) DEFAULT NULL,\n  PRIMARY KEY (`iddebugstmt`)\n) ENGINE=MyISAM AUTO_INCREMENT=1172 DEFAULT CHARSET=latin1$$\n[[Category:TABLAS]]\n</pre>\n== Bitácora ==\n== Uso ==\n[[PROC:DebugCheckPoint]]\n== URL ==','utf-8'),(968,'[[Category:PROC]]\n== Descripción ==\nProcedimiento de registración en Runtime de MySQL RDBMS\n== Composición ==\n== Código ==\n<small><pre>\ndelimiter $$\n\nCREATE DEFINER=`sas_admin`@`%` PROCEDURE `DebugCheckPoint`(IN pTexto VARCHAR(500))\nBEGIN\n    INSERT INTO debugstmt (Fecha,Hora,Texto) \n		VALUES (\n			CURDATE(),\n			CURTIME(),\n 			pTexto);\nEND$$\n</pre></small>\n== Bitácora ==\n== Uso ==','utf-8'),(969,'== Descripción ==\nTabla de ayuda de procedimientos y funciones de la base de datos de Spanex. Actua como snapshot a través del [[PROC:DebugCheckPoint]]\n== Composición ==\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `debugstmt` (\n  `iddebugstmt` int(11) NOT NULL AUTO_INCREMENT,\n  `Fecha` date DEFAULT NULL,\n  `Hora` time DEFAULT NULL,\n  `Texto` varchar(800) DEFAULT NULL,\n  PRIMARY KEY (`iddebugstmt`)\n) ENGINE=MyISAM AUTO_INCREMENT=1172 DEFAULT CHARSET=latin1$$\n</pre>\n\n== Bitácora ==\n== Uso ==\n[[PROC:DebugCheckPoint]]\n== URL ==','utf-8'),(970,'[[Category:TABLAS]]\n== Descripción ==\nContainer del Detalle de Productos de Presupuestos. Se relaciona al resto de las tablas de registraciones de Presupuestos de la siguiente manera:\n\n== Composición ==\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `vidquoten2` (\n  `VidQuoteID` int(11) NOT NULL,\n  `VidQuoteLPre` int(1) DEFAULT NULL,\n  `VidQuoteItem` int(11) NOT NULL AUTO_INCREMENT,\n  `VidQuotePredID` char(8) DEFAULT NULL,\n  `VidQuoteProdID` char(8) DEFAULT NULL,\n  `VidQuoteProdCantidad` int(5) DEFAULT NULL,\n  `VidQuoteAncho` int(5) DEFAULT NULL,\n  `VidQuoteAlto` int(5) DEFAULT NULL,\n  `VidQuotePrecio` decimal(10,2) DEFAULT NULL,\n  `VidQuoteDetalle` varchar(100) DEFAULT NULL,\n  PRIMARY KEY (`VidQuoteID`,`VidQuoteItem`)\n) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Actualiza_Item_Presupuesto`\nBEFORE UPDATE ON `fzggestion`.`vidquoten2`\nFOR EACH ROW\nBEGIN\n    -- --------------------------------------------------------\n    -- Changes on Price, change previous other attributes\n    -- --------------------------------------------------------\n    IF OLD.VidQuotePrecio = NEW.VidQuotePrecio THEN\n        SELECT VidQuoteCliente,VidQuoteACom INTO @Cliente,@AComercial FROM vidquoten1 WHERE vidquoten1.VidQuoteID = OLD.VidQuoteID;\n        SELECT CoeficienteAC INTO @CoeficienteAC from acomerciales WHERE acomerciales.Abreviatura = @AComercial;\n        SELECT CoeficienteAC,ListaPrecio INTO @CoeficienteCL,@Lista from clientes WHERE clientes.ClienteID = @Cliente;\n        CASE\n        WHEN NEW.VidQuoteProdID <> OLD.VidQuoteProdID THEN\n            -- --------------------------------------------------------\n            -- Changes on ProdID, change previous other attributes\n            -- --------------------------------------------------------\n            DELETE\n                FROM vidquoten3\n                WHERE\n                    vidquoten3.VidQuoteID = OLD.VidQuoteID AND\n                    vidquoten3.VidQuoteItem = OLD.VidQuoteItem;\n            CALL AltaItemPresupuesto(\n                OLD.VidQuoteID,\n                @Lista,\n                OLD.VidQuoteItem,\n                NEW.VidQuoteProdID,\n                NEW.VidQuoteProdCantidad,\n                NEW.VidQuoteAncho,\n                NEW.VidQuoteAlto,\n                @CoeficienteCL*@CoeficienteAC);\n        WHEN NEW.VidQuoteProdCantidad <> OLD.VidQuoteProdCantidad OR\n             NEW.VidQuoteAncho <> OLD.VidQuoteAncho OR\n             NEW.VidQuoteAlto <> OLD.VidQuoteAlto THEN\n            -- --------------------------------------------------------\n            -- Suppose Changes other attributes\n            -- --------------------------------------------------------\n            CALL ActualizaItemPresupuesto(\n                OLD.VidQuoteID,\n                OLD.VidQuoteItem,\n                NEW.VidQuoteProdCantidad,\n                NEW.VidQuoteAncho,\n                NEW.VidQuoteAlto,\n                @Lista,\n                @CoeficienteCL*@CoeficienteAC);\n        ELSE\n                SET @fly = NULL;\n        END CASE;\n        SET NEW.VidQuotePrecio = \n            (SELECT SUM(VidQuotePrecioP) AS VidQuotePrecioP\n            FROM\n                vidquoten3\n            WHERE\n                vidquoten3.VidQuoteID = OLD.VidQuoteID AND\n                vidquoten3.VidQuoteItem = OLD.VidQuoteItem\n            GROUP BY\n                VidQuoteID,VidQuoteItem);\n    END IF;\nEND\n$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Baja_Item_Presupuesto`\nAFTER DELETE ON `fzggestion`.`vidquoten2`\nFOR EACH ROW\nBEGIN\n    DELETE FROM vidquoten3\n    WHERE vidquoten3.VidQuoteID=OLD.VidQuoteID AND\n	  vidquoten3.VidQuoteItem=OLD.VidQuoteItem;\n  END\n$$\n</pre>\n== Bitácora ==\n== Uso ==\n[[FORM:Presupuesto]]\n== URL ==','utf-8'),(971,'=== Estructuras de Datos ===\n==== Estructuras Tipo ====\n[[Estructuras SQL]]\n\n==== Tablas ====\n* [[TABLA:catinsumos]]\n* [[TABLA:cmoneda]]\n* [[TABLA:contactos]]\n* [[TABLA:cpar]]\n* [[TABLA:elementos]]\n* [[TABLA:insumos]]\n* [[TABLA:listasprecios]]\n* [[TABLA:logprecios]]\n* [[TABLA:monedas]]\n* [[TABLA:preciosqry]]\n* [[TABLA:transacciones]]\n* [[TABLA:ttransac]]\n* [[TABLA:vidquoten4]]\n===== Template Layout General =====\n* [[TEMP:LayoutGeneral]]\n\n==== Vistas ====\n[http://sqlformat.appspot.com/ SQLFormatBeautify]\n*[[VISTA:acomerciales]]\n*[[VISTA:clientes]]\n*[[VISTA:listavigente]]\n*[[VISTA:precioscmpl]]\n*[[VISTA:preciosvigact]]\n*[[VISTA:preciosvigentes]]\n*[[VISTA:proveedores]]\n*[[VISTA:viscabdetalla]]\n*[[VISTA:viscompcnt]]\n*[[VISTA:viscompodis]]\n*[[VISTA:viscomposimpl]]\n*[[VISTA:visdetaobs]]\n*[[VISTA:visdocpcob]]\n*[[VISTA:vistranscrm]]\n*[[VISTA:visintdetpre]]\n*[[VISTA:vislineabs]]\n*[[VISTA:visprdparam]]\n*[[VISTA:visprestot]]\n*[[VISTA:visprodadic]]\n*[[VISTA:visreppres]]\n*[[VISTA:visrprescmp]]\n*[[VISTA:vissubxitem]]\n*[[VISTA:chqactivos]]\n*[[VISTA:vischtdisp]]\n*[[VISTA:vischeckmod]]\n*[[VISTA:vistotprod]]\n\n<small>\n{| class=\"wikitable\"\n| <center>\'\'\'Nombre\'\'\'</center>\n| <center>\'\'\'Comando\'\'\'</center>\n| <center>\'\'\'Uso\'\'\'</center>\n| <center>\'\'\'Cross\'\'\'</center>\n\n|-\n| Viscabdetalla\n| FZG.Vista.viscabdetalla.sql\n| Vista utilizada para agregar la información de cual es la lista de precios a utilizar para el cliente del presupuesto en tiempo real.FORM: Presupuesto\n| Contactos, Vidquoten1\n\n|-\n| Proveedores\n| FZG.Vista.proveedores.sql\n| Visualización de Contactos “Proveedores”\n| Contactos\n\n|-\n| Clientes\n| FZG.Vista.clientes.sql\n| Visualización de Contactos “Clientes”\n| Contactos\n\n|-\n| Visreppres\n| FZG.Vista.visreppres.sql\n| Vista Reporte Presupuesto Individual. Para generar una línea completa con la información de detalle de los presupuestos con las combinaciones de información a incluir en el mismo. No contiene la información estática del cliente.\n| Vislineabs, Visdetaobs\n\n|-\n| Viscompodis\n| FZG.Vista.viscompodis.sql\n| Vista de productos (DISTINCT productos) dentro de la tabla de composición ordenada por alfabéticamente.\n| \n\n|-\n| Viscoposimpl\n| FZG.Vista.viscomposimpl.sql\n| Vista de los elementos de composicion con información para query\n| Productos, Composición\n\n|-\n| Visdetaobs\n| FZG.Vista.visdetaobs.sql\n| Une todas las Observaciones de cada item para los casos que se encuentren señaladas con la Descripción del Producto-Item\n| Productos, Vidquoten3\n\n|-\n| Visintdetpre\n| FZG.Vista.visintdetpre.sql\n| Reducción de vista Visprodadic aplicable al cálculo de presupuesto con los datos en tiempo real del presupuesto activo en formulario y calculando el precio correcto de acuerdo al cliente y el cálculo del valor del elemento de acuerdo al los valores de Alto y Ancho del Vano en tiempo real\n| Visprodadic, Vidquoten2\n\n|-\n| Vislineabs\n| [[FZG.Vista.vislineabs.sql]]\n| Define linea básica para reporte teniendo como base Vidquoten2, agregando la información de la cabecera + datos de descrpción de producto + el subtotal por Producto-Item\n| Vidquoten1, Vidquoten2, Productos, Vissubxitem\n\n|-\n| Visprodadic\n| FZG.Vista.visproadic.sql\n| Vista de tabla de componentes con la información de cada elemento como producto y de los precios vigentes.\n| Productos, Composicion, PreciosVigentes\n\n|-\n| Vissubxitem\n| FZG.Vista.vissubxitem.sql\n| Subtotal por Item de Presupuesto en tiempo real\n| Vidquoten3\n\n|-\n| Listavigente\n| \n| Selecciona solo el primer registro ordenado en forma descendente de la tabla de listasprecios\n| Listasprecios\n\n|-\n| Preciosvigentes\n| FZG.Vista.preciosvigentes.sql\n| Es la selección de la tabla de precios referenciando el mayor valor dentro de la tabla de listasprecios\n| Listasprecios, Precios\n\n|-\n| Preciosvigact\n| FZG.Vista.preciosvigact.sql\n| Vista de lista de precios vigentes con datos de productos para actualización columnar.FORM: Actualización por tipo de lista\n| Preciosvigentes, Productos\n\n|-\n| Precioscmpl\n| [[FZG.Vista.precioscmpl.sql]]\n| Vista de lista de precios completa con datos de productos. [[FORM: Precios Tabular x Proceso]]\n| Precios, Productos\n\n|-\n| Visprestot\n| FZG.Vista.visprestot.sql\n| Vista de Presupuestos Totalizados por Cliente\n| Visreppres\n\n|-\n| Viscompcnt\n| [[FZG.Vista.viscompcnt.sql]]\n| Vista resumen de Componentes completa con indicadores de estado de composición\n| composicion, producto\n|}</small>\n\n=== Objetos ===\n==== Formularios ====\n*[[FORM:Presupuesto]]\n*[[FORM:CopiaComposicion]]\n*[[FORM:Pagos]]\n*[[FORM:Cobranzas]]\n\n==== Reportes ====\n*[[RPRT:Presupuestos]]\n*[[RPRT:PresupuestosDirecto]]\n*[[RPRT:IndividualCRM]]\n\n=== Procedimientos ===\n*[[PROC:ActualizaItemPresupuesto]]\n*[[PROC:ActualizaPreciosPresupuesto]]\n*[[PROC:ActualizaPreciosTabular]]\n*[[PROC:AgregaProductoCompo]]\n*[[PROC:AltaItemPresupuesto]]\n*[[PROC:AltaItemPresupuestoTmp]]\n*[[PROC:CalculaPrecioBase]]\n*[[PROC:CalculoMedidaReal]]\n*[[PROC:CalculoPrecio]]\n*[[PROC:CopiaPresupuesto]]\n*[[PROC:DuplicaProductoCompo]]\n*[[PROC:GrabaItemPresupuestoTmp]]\n*[[PROC:ResetEdicionItemTmp]]\n\n=== Bibliotecas ===\n*[[LIBR:FazzGlassMcr]]\n*[[LIBR:SpanexB]]\n*[[LIBR:SpanexC]]','utf-8'),(972,'','utf-8'),(973,'[[Category:TABLAS]]\n== Descripción ==\nContainer del Detalle de Productos de Presupuestos. Se relaciona al resto de las tablas de registraciones de Presupuestos de la siguiente manera:\n\n[[File:Esquema.Tablas.Presupuesto.jpg]]\n\n== Composición ==\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `vidquoten2` (\n  `VidQuoteID` int(11) NOT NULL,\n  `VidQuoteLPre` int(1) DEFAULT NULL,\n  `VidQuoteItem` int(11) NOT NULL AUTO_INCREMENT,\n  `VidQuotePredID` char(8) DEFAULT NULL,\n  `VidQuoteProdID` char(8) DEFAULT NULL,\n  `VidQuoteProdCantidad` int(5) DEFAULT NULL,\n  `VidQuoteAncho` int(5) DEFAULT NULL,\n  `VidQuoteAlto` int(5) DEFAULT NULL,\n  `VidQuotePrecio` decimal(10,2) DEFAULT NULL,\n  `VidQuoteDetalle` varchar(100) DEFAULT NULL,\n  PRIMARY KEY (`VidQuoteID`,`VidQuoteItem`)\n) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Actualiza_Item_Presupuesto`\nBEFORE UPDATE ON `fzggestion`.`vidquoten2`\nFOR EACH ROW\nBEGIN\n    -- --------------------------------------------------------\n    -- Changes on Price, change previous other attributes\n    -- --------------------------------------------------------\n    IF OLD.VidQuotePrecio = NEW.VidQuotePrecio THEN\n        SELECT VidQuoteCliente,VidQuoteACom INTO @Cliente,@AComercial FROM vidquoten1 WHERE vidquoten1.VidQuoteID = OLD.VidQuoteID;\n        SELECT CoeficienteAC INTO @CoeficienteAC from acomerciales WHERE acomerciales.Abreviatura = @AComercial;\n        SELECT CoeficienteAC,ListaPrecio INTO @CoeficienteCL,@Lista from clientes WHERE clientes.ClienteID = @Cliente;\n        CASE\n        WHEN NEW.VidQuoteProdID <> OLD.VidQuoteProdID THEN\n            -- --------------------------------------------------------\n            -- Changes on ProdID, change previous other attributes\n            -- --------------------------------------------------------\n            DELETE\n                FROM vidquoten3\n                WHERE\n                    vidquoten3.VidQuoteID = OLD.VidQuoteID AND\n                    vidquoten3.VidQuoteItem = OLD.VidQuoteItem;\n            CALL AltaItemPresupuesto(\n                OLD.VidQuoteID,\n                @Lista,\n                OLD.VidQuoteItem,\n                NEW.VidQuoteProdID,\n                NEW.VidQuoteProdCantidad,\n                NEW.VidQuoteAncho,\n                NEW.VidQuoteAlto,\n                @CoeficienteCL*@CoeficienteAC);\n        WHEN NEW.VidQuoteProdCantidad <> OLD.VidQuoteProdCantidad OR\n             NEW.VidQuoteAncho <> OLD.VidQuoteAncho OR\n             NEW.VidQuoteAlto <> OLD.VidQuoteAlto THEN\n            -- --------------------------------------------------------\n            -- Suppose Changes other attributes\n            -- --------------------------------------------------------\n            CALL ActualizaItemPresupuesto(\n                OLD.VidQuoteID,\n                OLD.VidQuoteItem,\n                NEW.VidQuoteProdCantidad,\n                NEW.VidQuoteAncho,\n                NEW.VidQuoteAlto,\n                @Lista,\n                @CoeficienteCL*@CoeficienteAC);\n        ELSE\n                SET @fly = NULL;\n        END CASE;\n        SET NEW.VidQuotePrecio = \n            (SELECT SUM(VidQuotePrecioP) AS VidQuotePrecioP\n            FROM\n                vidquoten3\n            WHERE\n                vidquoten3.VidQuoteID = OLD.VidQuoteID AND\n                vidquoten3.VidQuoteItem = OLD.VidQuoteItem\n            GROUP BY\n                VidQuoteID,VidQuoteItem);\n    END IF;\nEND\n$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Baja_Item_Presupuesto`\nAFTER DELETE ON `fzggestion`.`vidquoten2`\nFOR EACH ROW\nBEGIN\n    DELETE FROM vidquoten3\n    WHERE vidquoten3.VidQuoteID=OLD.VidQuoteID AND\n	  vidquoten3.VidQuoteItem=OLD.VidQuoteItem;\n  END\n$$\n</pre>\n== Bitácora ==\n== Uso ==\n[[FORM:Presupuesto]]\n== URL ==','utf-8'),(974,'[[Category:TABLAS]]\n== Descripción ==\nContainer del Detalle de Productos de Presupuestos. Se relaciona al resto de las tablas de registraciones de Presupuestos de la siguiente manera:\n[[File:Esquema.Tablas.Presupuesto.jpg|200px]]\n\n== Composición ==\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `vidquoten2` (\n  `VidQuoteID` int(11) NOT NULL,\n  `VidQuoteLPre` int(1) DEFAULT NULL,\n  `VidQuoteItem` int(11) NOT NULL AUTO_INCREMENT,\n  `VidQuotePredID` char(8) DEFAULT NULL,\n  `VidQuoteProdID` char(8) DEFAULT NULL,\n  `VidQuoteProdCantidad` int(5) DEFAULT NULL,\n  `VidQuoteAncho` int(5) DEFAULT NULL,\n  `VidQuoteAlto` int(5) DEFAULT NULL,\n  `VidQuotePrecio` decimal(10,2) DEFAULT NULL,\n  `VidQuoteDetalle` varchar(100) DEFAULT NULL,\n  PRIMARY KEY (`VidQuoteID`,`VidQuoteItem`)\n) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Actualiza_Item_Presupuesto`\nBEFORE UPDATE ON `fzggestion`.`vidquoten2`\nFOR EACH ROW\nBEGIN\n    -- --------------------------------------------------------\n    -- Changes on Price, change previous other attributes\n    -- --------------------------------------------------------\n    IF OLD.VidQuotePrecio = NEW.VidQuotePrecio THEN\n        SELECT VidQuoteCliente,VidQuoteACom INTO @Cliente,@AComercial FROM vidquoten1 WHERE vidquoten1.VidQuoteID = OLD.VidQuoteID;\n        SELECT CoeficienteAC INTO @CoeficienteAC from acomerciales WHERE acomerciales.Abreviatura = @AComercial;\n        SELECT CoeficienteAC,ListaPrecio INTO @CoeficienteCL,@Lista from clientes WHERE clientes.ClienteID = @Cliente;\n        CASE\n        WHEN NEW.VidQuoteProdID <> OLD.VidQuoteProdID THEN\n            -- --------------------------------------------------------\n            -- Changes on ProdID, change previous other attributes\n            -- --------------------------------------------------------\n            DELETE\n                FROM vidquoten3\n                WHERE\n                    vidquoten3.VidQuoteID = OLD.VidQuoteID AND\n                    vidquoten3.VidQuoteItem = OLD.VidQuoteItem;\n            CALL AltaItemPresupuesto(\n                OLD.VidQuoteID,\n                @Lista,\n                OLD.VidQuoteItem,\n                NEW.VidQuoteProdID,\n                NEW.VidQuoteProdCantidad,\n                NEW.VidQuoteAncho,\n                NEW.VidQuoteAlto,\n                @CoeficienteCL*@CoeficienteAC);\n        WHEN NEW.VidQuoteProdCantidad <> OLD.VidQuoteProdCantidad OR\n             NEW.VidQuoteAncho <> OLD.VidQuoteAncho OR\n             NEW.VidQuoteAlto <> OLD.VidQuoteAlto THEN\n            -- --------------------------------------------------------\n            -- Suppose Changes other attributes\n            -- --------------------------------------------------------\n            CALL ActualizaItemPresupuesto(\n                OLD.VidQuoteID,\n                OLD.VidQuoteItem,\n                NEW.VidQuoteProdCantidad,\n                NEW.VidQuoteAncho,\n                NEW.VidQuoteAlto,\n                @Lista,\n                @CoeficienteCL*@CoeficienteAC);\n        ELSE\n                SET @fly = NULL;\n        END CASE;\n        SET NEW.VidQuotePrecio = \n            (SELECT SUM(VidQuotePrecioP) AS VidQuotePrecioP\n            FROM\n                vidquoten3\n            WHERE\n                vidquoten3.VidQuoteID = OLD.VidQuoteID AND\n                vidquoten3.VidQuoteItem = OLD.VidQuoteItem\n            GROUP BY\n                VidQuoteID,VidQuoteItem);\n    END IF;\nEND\n$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Baja_Item_Presupuesto`\nAFTER DELETE ON `fzggestion`.`vidquoten2`\nFOR EACH ROW\nBEGIN\n    DELETE FROM vidquoten3\n    WHERE vidquoten3.VidQuoteID=OLD.VidQuoteID AND\n	  vidquoten3.VidQuoteItem=OLD.VidQuoteItem;\n  END\n$$\n</pre>\n== Bitácora ==\n== Uso ==\n[[FORM:Presupuesto]]\n== URL ==','utf-8'),(975,'[[Category:TABLAS]]\n== Descripción ==\nContainer del Detalle de Productos de Presupuestos. Se relaciona al resto de las tablas de registraciones de Presupuestos de la siguiente manera:\n[[File:Esquema.Tablas.Presupuesto.jpg|200px]]\nsiendo los atributos de relación con el nivel superior con VidQuoteID, mientras que hacia el nivel inferior con VidQuoteID+VidQuoteItem+VidQuoteProdID\n== Composición ==\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `vidquoten2` (\n  `VidQuoteID` int(11) NOT NULL,\n  `VidQuoteLPre` int(1) DEFAULT NULL,\n  `VidQuoteItem` int(11) NOT NULL AUTO_INCREMENT,\n  `VidQuotePredID` char(8) DEFAULT NULL,\n  `VidQuoteProdID` char(8) DEFAULT NULL,\n  `VidQuoteProdCantidad` int(5) DEFAULT NULL,\n  `VidQuoteAncho` int(5) DEFAULT NULL,\n  `VidQuoteAlto` int(5) DEFAULT NULL,\n  `VidQuotePrecio` decimal(10,2) DEFAULT NULL,\n  `VidQuoteDetalle` varchar(100) DEFAULT NULL,\n  PRIMARY KEY (`VidQuoteID`,`VidQuoteItem`)\n) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Actualiza_Item_Presupuesto`\nBEFORE UPDATE ON `fzggestion`.`vidquoten2`\nFOR EACH ROW\nBEGIN\n    -- --------------------------------------------------------\n    -- Changes on Price, change previous other attributes\n    -- --------------------------------------------------------\n    IF OLD.VidQuotePrecio = NEW.VidQuotePrecio THEN\n        SELECT VidQuoteCliente,VidQuoteACom INTO @Cliente,@AComercial FROM vidquoten1 WHERE vidquoten1.VidQuoteID = OLD.VidQuoteID;\n        SELECT CoeficienteAC INTO @CoeficienteAC from acomerciales WHERE acomerciales.Abreviatura = @AComercial;\n        SELECT CoeficienteAC,ListaPrecio INTO @CoeficienteCL,@Lista from clientes WHERE clientes.ClienteID = @Cliente;\n        CASE\n        WHEN NEW.VidQuoteProdID <> OLD.VidQuoteProdID THEN\n            -- --------------------------------------------------------\n            -- Changes on ProdID, change previous other attributes\n            -- --------------------------------------------------------\n            DELETE\n                FROM vidquoten3\n                WHERE\n                    vidquoten3.VidQuoteID = OLD.VidQuoteID AND\n                    vidquoten3.VidQuoteItem = OLD.VidQuoteItem;\n            CALL AltaItemPresupuesto(\n                OLD.VidQuoteID,\n                @Lista,\n                OLD.VidQuoteItem,\n                NEW.VidQuoteProdID,\n                NEW.VidQuoteProdCantidad,\n                NEW.VidQuoteAncho,\n                NEW.VidQuoteAlto,\n                @CoeficienteCL*@CoeficienteAC);\n        WHEN NEW.VidQuoteProdCantidad <> OLD.VidQuoteProdCantidad OR\n             NEW.VidQuoteAncho <> OLD.VidQuoteAncho OR\n             NEW.VidQuoteAlto <> OLD.VidQuoteAlto THEN\n            -- --------------------------------------------------------\n            -- Suppose Changes other attributes\n            -- --------------------------------------------------------\n            CALL ActualizaItemPresupuesto(\n                OLD.VidQuoteID,\n                OLD.VidQuoteItem,\n                NEW.VidQuoteProdCantidad,\n                NEW.VidQuoteAncho,\n                NEW.VidQuoteAlto,\n                @Lista,\n                @CoeficienteCL*@CoeficienteAC);\n        ELSE\n                SET @fly = NULL;\n        END CASE;\n        SET NEW.VidQuotePrecio = \n            (SELECT SUM(VidQuotePrecioP) AS VidQuotePrecioP\n            FROM\n                vidquoten3\n            WHERE\n                vidquoten3.VidQuoteID = OLD.VidQuoteID AND\n                vidquoten3.VidQuoteItem = OLD.VidQuoteItem\n            GROUP BY\n                VidQuoteID,VidQuoteItem);\n    END IF;\nEND\n$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Baja_Item_Presupuesto`\nAFTER DELETE ON `fzggestion`.`vidquoten2`\nFOR EACH ROW\nBEGIN\n    DELETE FROM vidquoten3\n    WHERE vidquoten3.VidQuoteID=OLD.VidQuoteID AND\n	  vidquoten3.VidQuoteItem=OLD.VidQuoteItem;\n  END\n$$\n</pre>\n== Bitácora ==\n== Uso ==\n[[FORM:Presupuesto]]\n== URL ==','utf-8'),(976,'[[Category:TABLAS]]\n== Descripción ==\nContainer del Detalle de Productos de Presupuestos. Se relaciona al resto de las tablas de registraciones de Presupuestos de la siguiente manera:\n[[File:Esquema.Tablas.Presupuesto.jpg|200px]]\n\nsiendo los atributos de relación con el nivel superior con VidQuoteID, mientras que hacia el nivel inferior con VidQuoteID+VidQuoteItem+VidQuoteProdID\n\n== Composición ==\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `vidquoten2` (\n  `VidQuoteID` int(11) NOT NULL,\n  `VidQuoteLPre` int(1) DEFAULT NULL,\n  `VidQuoteItem` int(11) NOT NULL AUTO_INCREMENT,\n  `VidQuotePredID` char(8) DEFAULT NULL,\n  `VidQuoteProdID` char(8) DEFAULT NULL,\n  `VidQuoteProdCantidad` int(5) DEFAULT NULL,\n  `VidQuoteAncho` int(5) DEFAULT NULL,\n  `VidQuoteAlto` int(5) DEFAULT NULL,\n  `VidQuotePrecio` decimal(10,2) DEFAULT NULL,\n  `VidQuoteDetalle` varchar(100) DEFAULT NULL,\n  PRIMARY KEY (`VidQuoteID`,`VidQuoteItem`)\n) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Actualiza_Item_Presupuesto`\nBEFORE UPDATE ON `fzggestion`.`vidquoten2`\nFOR EACH ROW\nBEGIN\n    -- --------------------------------------------------------\n    -- Changes on Price, change previous other attributes\n    -- --------------------------------------------------------\n    IF OLD.VidQuotePrecio = NEW.VidQuotePrecio THEN\n        SELECT VidQuoteCliente,VidQuoteACom INTO @Cliente,@AComercial FROM vidquoten1 WHERE vidquoten1.VidQuoteID = OLD.VidQuoteID;\n        SELECT CoeficienteAC INTO @CoeficienteAC from acomerciales WHERE acomerciales.Abreviatura = @AComercial;\n        SELECT CoeficienteAC,ListaPrecio INTO @CoeficienteCL,@Lista from clientes WHERE clientes.ClienteID = @Cliente;\n        CASE\n        WHEN NEW.VidQuoteProdID <> OLD.VidQuoteProdID THEN\n            -- --------------------------------------------------------\n            -- Changes on ProdID, change previous other attributes\n            -- --------------------------------------------------------\n            DELETE\n                FROM vidquoten3\n                WHERE\n                    vidquoten3.VidQuoteID = OLD.VidQuoteID AND\n                    vidquoten3.VidQuoteItem = OLD.VidQuoteItem;\n            CALL AltaItemPresupuesto(\n                OLD.VidQuoteID,\n                @Lista,\n                OLD.VidQuoteItem,\n                NEW.VidQuoteProdID,\n                NEW.VidQuoteProdCantidad,\n                NEW.VidQuoteAncho,\n                NEW.VidQuoteAlto,\n                @CoeficienteCL*@CoeficienteAC);\n        WHEN NEW.VidQuoteProdCantidad <> OLD.VidQuoteProdCantidad OR\n             NEW.VidQuoteAncho <> OLD.VidQuoteAncho OR\n             NEW.VidQuoteAlto <> OLD.VidQuoteAlto THEN\n            -- --------------------------------------------------------\n            -- Suppose Changes other attributes\n            -- --------------------------------------------------------\n            CALL ActualizaItemPresupuesto(\n                OLD.VidQuoteID,\n                OLD.VidQuoteItem,\n                NEW.VidQuoteProdCantidad,\n                NEW.VidQuoteAncho,\n                NEW.VidQuoteAlto,\n                @Lista,\n                @CoeficienteCL*@CoeficienteAC);\n        ELSE\n                SET @fly = NULL;\n        END CASE;\n        SET NEW.VidQuotePrecio = \n            (SELECT SUM(VidQuotePrecioP) AS VidQuotePrecioP\n            FROM\n                vidquoten3\n            WHERE\n                vidquoten3.VidQuoteID = OLD.VidQuoteID AND\n                vidquoten3.VidQuoteItem = OLD.VidQuoteItem\n            GROUP BY\n                VidQuoteID,VidQuoteItem);\n    END IF;\nEND\n$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Baja_Item_Presupuesto`\nAFTER DELETE ON `fzggestion`.`vidquoten2`\nFOR EACH ROW\nBEGIN\n    DELETE FROM vidquoten3\n    WHERE vidquoten3.VidQuoteID=OLD.VidQuoteID AND\n	  vidquoten3.VidQuoteItem=OLD.VidQuoteItem;\n  END\n$$\n</pre>\n== Bitácora ==\n== Uso ==\n[[FORM:Presupuesto]]\n== URL ==','utf-8'),(977,'[[Category:TABLAS]]\n== Descripción ==\nContainer del Detalle de Productos de Presupuestos. Se relaciona al resto de las tablas de registraciones de Presupuestos de la siguiente manera:\n[[File:Esquema.Tablas.Presupuesto.jpg|200px]]\n\nsiendo los atributos de relación con el nivel superior con VidQuoteID, mientras que hacia el nivel inferior con VidQuoteID+VidQuoteItem+VidQuoteProdID\n\n== Composición ==\n#Triggers\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `vidquoten2` (\n  `VidQuoteID` int(11) NOT NULL,\n  `VidQuoteLPre` int(1) DEFAULT NULL,\n  `VidQuoteItem` int(11) NOT NULL AUTO_INCREMENT,\n  `VidQuotePredID` char(8) DEFAULT NULL,\n  `VidQuoteProdID` char(8) DEFAULT NULL,\n  `VidQuoteProdCantidad` int(5) DEFAULT NULL,\n  `VidQuoteAncho` int(5) DEFAULT NULL,\n  `VidQuoteAlto` int(5) DEFAULT NULL,\n  `VidQuotePrecio` decimal(10,2) DEFAULT NULL,\n  `VidQuoteDetalle` varchar(100) DEFAULT NULL,\n  PRIMARY KEY (`VidQuoteID`,`VidQuoteItem`)\n) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Actualiza_Item_Presupuesto`\nBEFORE UPDATE ON `fzggestion`.`vidquoten2`\nFOR EACH ROW\nBEGIN\n    -- --------------------------------------------------------\n    -- Changes on Price, change previous other attributes\n    -- --------------------------------------------------------\n    IF OLD.VidQuotePrecio = NEW.VidQuotePrecio THEN\n        SELECT VidQuoteCliente,VidQuoteACom INTO @Cliente,@AComercial FROM vidquoten1 WHERE vidquoten1.VidQuoteID = OLD.VidQuoteID;\n        SELECT CoeficienteAC INTO @CoeficienteAC from acomerciales WHERE acomerciales.Abreviatura = @AComercial;\n        SELECT CoeficienteAC,ListaPrecio INTO @CoeficienteCL,@Lista from clientes WHERE clientes.ClienteID = @Cliente;\n        CASE\n        WHEN NEW.VidQuoteProdID <> OLD.VidQuoteProdID THEN\n            -- --------------------------------------------------------\n            -- Changes on ProdID, change previous other attributes\n            -- --------------------------------------------------------\n            DELETE\n                FROM vidquoten3\n                WHERE\n                    vidquoten3.VidQuoteID = OLD.VidQuoteID AND\n                    vidquoten3.VidQuoteItem = OLD.VidQuoteItem;\n            CALL AltaItemPresupuesto(\n                OLD.VidQuoteID,\n                @Lista,\n                OLD.VidQuoteItem,\n                NEW.VidQuoteProdID,\n                NEW.VidQuoteProdCantidad,\n                NEW.VidQuoteAncho,\n                NEW.VidQuoteAlto,\n                @CoeficienteCL*@CoeficienteAC);\n        WHEN NEW.VidQuoteProdCantidad <> OLD.VidQuoteProdCantidad OR\n             NEW.VidQuoteAncho <> OLD.VidQuoteAncho OR\n             NEW.VidQuoteAlto <> OLD.VidQuoteAlto THEN\n            -- --------------------------------------------------------\n            -- Suppose Changes other attributes\n            -- --------------------------------------------------------\n            CALL ActualizaItemPresupuesto(\n                OLD.VidQuoteID,\n                OLD.VidQuoteItem,\n                NEW.VidQuoteProdCantidad,\n                NEW.VidQuoteAncho,\n                NEW.VidQuoteAlto,\n                @Lista,\n                @CoeficienteCL*@CoeficienteAC);\n        ELSE\n                SET @fly = NULL;\n        END CASE;\n        SET NEW.VidQuotePrecio = \n            (SELECT SUM(VidQuotePrecioP) AS VidQuotePrecioP\n            FROM\n                vidquoten3\n            WHERE\n                vidquoten3.VidQuoteID = OLD.VidQuoteID AND\n                vidquoten3.VidQuoteItem = OLD.VidQuoteItem\n            GROUP BY\n                VidQuoteID,VidQuoteItem);\n    END IF;\nEND\n$$\n</pre>\n== Triggers ==\n<pre>\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Baja_Item_Presupuesto`\nAFTER DELETE ON `fzggestion`.`vidquoten2`\nFOR EACH ROW\nBEGIN\n    DELETE FROM vidquoten3\n    WHERE vidquoten3.VidQuoteID=OLD.VidQuoteID AND\n	  vidquoten3.VidQuoteItem=OLD.VidQuoteItem;\n  END\n$$\n</pre>\n== Bitácora ==\n== Uso ==\n[[FORM:Presupuesto]]\n== URL ==','utf-8'),(978,'[[Category:TABLAS]]\n== Descripción ==\nContainer del Detalle de Productos de Presupuestos. Se relaciona al resto de las tablas de registraciones de Presupuestos de la siguiente manera:\n[[File:Esquema.Tablas.Presupuesto.jpg|200px]]\n\nsiendo los atributos de relación con el nivel superior con VidQuoteID, mientras que hacia el nivel inferior con VidQuoteID+VidQuoteItem+VidQuoteProdID\n\n== Composición ==\n[[#Triggers]]\n\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `vidquoten2` (\n  `VidQuoteID` int(11) NOT NULL,\n  `VidQuoteLPre` int(1) DEFAULT NULL,\n  `VidQuoteItem` int(11) NOT NULL AUTO_INCREMENT,\n  `VidQuotePredID` char(8) DEFAULT NULL,\n  `VidQuoteProdID` char(8) DEFAULT NULL,\n  `VidQuoteProdCantidad` int(5) DEFAULT NULL,\n  `VidQuoteAncho` int(5) DEFAULT NULL,\n  `VidQuoteAlto` int(5) DEFAULT NULL,\n  `VidQuotePrecio` decimal(10,2) DEFAULT NULL,\n  `VidQuoteDetalle` varchar(100) DEFAULT NULL,\n  PRIMARY KEY (`VidQuoteID`,`VidQuoteItem`)\n) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Actualiza_Item_Presupuesto`\nBEFORE UPDATE ON `fzggestion`.`vidquoten2`\nFOR EACH ROW\nBEGIN\n    -- --------------------------------------------------------\n    -- Changes on Price, change previous other attributes\n    -- --------------------------------------------------------\n    IF OLD.VidQuotePrecio = NEW.VidQuotePrecio THEN\n        SELECT VidQuoteCliente,VidQuoteACom INTO @Cliente,@AComercial FROM vidquoten1 WHERE vidquoten1.VidQuoteID = OLD.VidQuoteID;\n        SELECT CoeficienteAC INTO @CoeficienteAC from acomerciales WHERE acomerciales.Abreviatura = @AComercial;\n        SELECT CoeficienteAC,ListaPrecio INTO @CoeficienteCL,@Lista from clientes WHERE clientes.ClienteID = @Cliente;\n        CASE\n        WHEN NEW.VidQuoteProdID <> OLD.VidQuoteProdID THEN\n            -- --------------------------------------------------------\n            -- Changes on ProdID, change previous other attributes\n            -- --------------------------------------------------------\n            DELETE\n                FROM vidquoten3\n                WHERE\n                    vidquoten3.VidQuoteID = OLD.VidQuoteID AND\n                    vidquoten3.VidQuoteItem = OLD.VidQuoteItem;\n            CALL AltaItemPresupuesto(\n                OLD.VidQuoteID,\n                @Lista,\n                OLD.VidQuoteItem,\n                NEW.VidQuoteProdID,\n                NEW.VidQuoteProdCantidad,\n                NEW.VidQuoteAncho,\n                NEW.VidQuoteAlto,\n                @CoeficienteCL*@CoeficienteAC);\n        WHEN NEW.VidQuoteProdCantidad <> OLD.VidQuoteProdCantidad OR\n             NEW.VidQuoteAncho <> OLD.VidQuoteAncho OR\n             NEW.VidQuoteAlto <> OLD.VidQuoteAlto THEN\n            -- --------------------------------------------------------\n            -- Suppose Changes other attributes\n            -- --------------------------------------------------------\n            CALL ActualizaItemPresupuesto(\n                OLD.VidQuoteID,\n                OLD.VidQuoteItem,\n                NEW.VidQuoteProdCantidad,\n                NEW.VidQuoteAncho,\n                NEW.VidQuoteAlto,\n                @Lista,\n                @CoeficienteCL*@CoeficienteAC);\n        ELSE\n                SET @fly = NULL;\n        END CASE;\n        SET NEW.VidQuotePrecio = \n            (SELECT SUM(VidQuotePrecioP) AS VidQuotePrecioP\n            FROM\n                vidquoten3\n            WHERE\n                vidquoten3.VidQuoteID = OLD.VidQuoteID AND\n                vidquoten3.VidQuoteItem = OLD.VidQuoteItem\n            GROUP BY\n                VidQuoteID,VidQuoteItem);\n    END IF;\nEND\n$$\n</pre>\n== Triggers ==\n<pre>\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Baja_Item_Presupuesto`\nAFTER DELETE ON `fzggestion`.`vidquoten2`\nFOR EACH ROW\nBEGIN\n    DELETE FROM vidquoten3\n    WHERE vidquoten3.VidQuoteID=OLD.VidQuoteID AND\n	  vidquoten3.VidQuoteItem=OLD.VidQuoteItem;\n  END\n$$\n</pre>\n== Bitácora ==\n== Uso ==\n[[FORM:Presupuesto]]\n== URL ==','utf-8'),(979,'[[Category:VISTAS]]\n== Descripción ==\nVista de Tabla de Contactos solo con el Tag de AComerciales.\n== Composición ==\n*[[TABLA:contactos]]\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\nCREATE VIEW `acomerciales` AS\nSELECT `contactos`.`ContactoID` AS `AComercialID`,\n       `contactos`.`ContactoIDAbrv` AS `Abreviatura`,\n       `contactos`.`RazonSocial` AS `RazonSocial`,\n       `contactos`.`Direccion` AS `Direccion`,\n       `contactos`.`Localidad` AS `Localidad`,\n       `contactos`.`Provincia` AS `Provincia`,\n       `contactos`.`Pais` AS `Pais`,\n       `contactos`.`CPostal` AS `CPostal`,\n       `contactos`.`CUIT` AS `CUIT`,\n       `contactos`.`Area` AS `Area`,\n       `contactos`.`Telefono1` AS `Telefono1`,\n       `contactos`.`Telefono2` AS `Telefono2`,\n       `contactos`.`Telefono3` AS `Telefono3`,\n       `contactos`.`TelefonoM` AS `TelefonoM`,\n       `contactos`.`TelefonoF` AS `TelefonoF`,\n       `contactos`.`Correo1` AS `Correo1`,\n       `contactos`.`Correo2` AS `Correo2`,\n       `contactos`.`NContacto` AS `NContacto`,\n       `contactos`.`AContacto` AS `AContacto`,\n       `contactos`.`CoeficienteAC` AS `CoeficienteAC`,\n       `contactos`.`Notas` AS `Notas`,\n       `contactos`.`ImgContacto` AS `LogoAC`\nFROM `contactos`\nWHERE (`contactos`.`AComercialTag` = 1)\n</pre>\n\n== Bitácora ==\n*20120125\n**Alta Vista\n*20120911\n**Cambio de Condición para reflejar el cambio de estructura de la [[TABLA:contactos]]\n*20120917\n**Cambia denominación ID y agrega el atributo de \"ImgContacto\" como \"LogoAC\"\n\n== Uso ==\n*[[FORM:presupuesto]]','utf-8'),(980,'[[Category:VISTAS]]\n== Descripción ==\nVista de Tabla de Contactos solo con el Tag de Clientes\n== Composición ==\n*[[TABLA:contactos]]\n== SQL ==\n<pre>\nCREATE VIEW `clientes` AS\nSELECT \n    `contactos`.`ContactoID` AS `ClienteID`,\n    `contactos`.`RazonSocial` AS `RazonSocial`,\n    `contactos`.`Direccion` AS `Direccion`,\n    `contactos`.`Localidad` AS `Localidad`,\n    `contactos`.`Provincia` AS `Provincia`,\n    `contactos`.`Pais` AS `Pais`,\n    `contactos`.`CPostal` AS `CPostal`,\n    `contactos`.`CUIT` AS `CUIT`,\n    `contactos`.`Area` AS `Area`,\n    `contactos`.`Telefono1` AS `Telefono1`,\n    `contactos`.`Telefono2` AS `Telefono2`,\n    `contactos`.`Telefono3` AS `Telefono3`,\n    `contactos`.`TelefonoM` AS `TelefonoM`,\n    `contactos`.`TelefonoF` AS `TelefonoF`,\n    `contactos`.`Correo1` AS `Correo1`,\n    `contactos`.`Correo2` AS `Correo2`,\n    `contactos`.`NContacto` AS `NContacto`,\n    `contactos`.`AContacto` AS `AContacto`,\n    `contactos`.`ListaPrecio` AS `ListaPrecio`,\n    `contactos`.`CoeficienteAC` AS `CoeficienteAC`,\n    `contactos`.`VigenciaDocs` AS `VigenciaDocs`,\n    `contactos`.`ImgContacto` AS `ImgContacto`,\n    `contactos`.`Notas` AS `Notas`\nFROM `contactos`\nWHERE (`contactos`.`ClienteTag` = 1)\n</pre>\n\n== Bitácora ==\n*20120831\n**Cambio de Condición por cambio de tipo de variable\n*20120917\n**Agregado de atributos de Logo, Vigencia y Coeficiente a la vista.\n\n== Uso ==\n*[[FORM:Presupuesto]]\n\n== URL ==','utf-8'),(981,'[[Category:VISTAS]]\n== Descripción ==\nVista de la [[TABLA:checkbook]] de los registros in documento destino asociado\n== Composición ==\n*[[TABLA:checkbook]] \n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\nCREATE VIEW `chqactivos` AS\nSELECT `CheckBookID` AS `CheckBookID`,\n       `Entidad` AS `Entidad`,\n       `Sucursal` AS `Sucursal`,\n       `DocPropio` AS `DocPropio`,\n       `CuentaOrg` AS `CuentaOrg`,\n       `DocumentoID` AS `DocumentoID`,\n       `FechaDocumento` AS `FechaDocumento`,\n       `ImporteDocumento` AS `ImporteDocumento`,\n       `TDocumentoOrg` AS `TDocumentoOrg`,\n       `NDocumentoOrg` AS `NDocumentoOrg`,\n       `TTransaccOrg` AS `TTransaccOrg`,\n       `NTransaccOrg` AS `NTransaccOrg`,\n       `TTransaccDst` AS `TTransaccDst`,\n       `NTransaccDst` AS `NTransaccDst`\nFROM `checkbook`\nWHERE isnull(`TTransaccDst`)\n</pre>\n== Bitácora ==\n== Uso ==\n*[[FORM:Cheques]]\n== URL ==','utf-8'),(982,'[[Category:TABLAS]]\n== Descripción ==\nContainer de libro de cheques \n== Composición ==\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `checkbook` (\n  `CheckBookID` int(11) NOT NULL AUTO_INCREMENT,\n  `Entidad` char(3) DEFAULT NULL,\n  `Sucursal` varchar(45) DEFAULT NULL,\n  `DocPropio` char(1) DEFAULT NULL,\n  `CuentaOrg` varchar(20) DEFAULT NULL,\n  `DocumentoID` int(11) DEFAULT NULL,\n  `FechaDocumento` date DEFAULT NULL,\n  `ImporteDocumento` decimal(19,2) DEFAULT NULL,\n  `TDocumentoOrg` char(2) DEFAULT NULL,\n  `NDocumentoOrg` int(11) DEFAULT NULL,\n  `TTransaccOrg` char(2) DEFAULT NULL,\n  `NTransaccOrg` int(11) DEFAULT NULL,\n  `TTransaccDst` varchar(2) DEFAULT NULL,\n  `NTransaccDst` int(11) DEFAULT NULL,\n  PRIMARY KEY (`CheckBookID`)\n) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1$$\n</pre>\n== Bitácora ==\n== Uso ==\n[[FORM:Cheques]]\n== URL ==','utf-8'),(983,'===20121201===\n====Alta de esquema Módulos====\n*Alta de [[TABLA:moduloscab]]\n*Alta de [[TABLA:modulosdet]]\n*Alta de [[TABLA:modulossbs]]\n*Alta de [[TABLA:bocetoscab]]\n*Alta de [[TABLA:bocetosdet]]\n*Alta de [[TABLA:bocetossbs]]\n====Baja TABLA:logprecios====\ndrop table `fzggestion`.`logprecios`;\n\n====Actualización de [[TABLA:Productos]]====\n<pre>\nALTER TABLE `fzggestion`.`productos` \nADD COLUMN `ProductoGen` CHAR(8) NULL  FIRST ,\nADD COLUMN `ProductoDflt` INT(1) NULL  AFTER `ProductoGen` ,\nADD COLUMN `MagnitudIN` CHAR(2) NULL  AFTER `Magnitud` , \nADD COLUMN `MagCmpX` INT(5) NULL  AFTER `InsumoIMG` , \nADD COLUMN `MagCmpY` INT(5) NULL  AFTER `MagCmpX` , \nADD COLUMN `MagCmpZ` INT(5) NULL  AFTER `MagCmpY` , \nADD COLUMN `MagCmpW` INT(5) NULL  AFTER `MagCmpZ` \nADD COLUMN `Presentacion` VARCHAR(45) NULL  AFTER `MagCmpW` ,\nADD COLUMN `ProductoProy` INT(1) NULL DEFAULT 0  AFTER `Presentacion` ;\nUPDATE productos\nSET \n    ProductoGen = ProductoID,\n    ProductoDflt= 1\n</pre>\n====Actualización de [[RPRT:Presupuestos]]====\n\n===20121029===\n====Actualización de [[TABLA:vidquoten1]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten1` \nCHANGE COLUMN `VidQuoteCliente` `VidQuoteCliente` CHAR(8) NOT NULL  ,\nCHANGE COLUMN `VidQuoteACom` `VidQuoteACom` CHAR(4) NOT NULL  ;\n</pre>\n===20121005===\n====Actualización de [[PROC:AltaItemPresupuestoTmp]]====\n\n===20120831===\n====Agregar Nombre de Usuario [[TABLA:precios]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`precios` \n	ADD COLUMN `UserModificacion` VARCHAR(20) NULL AFTER `HoraModificacion` ;\nALTER TABLE `fzggestion`.`precios` \n	CHANGE COLUMN `FechaModificacion` `FechaEvento` DATE NULL DEFAULT NULL,\n	CHANGE COLUMN `HoraModificacion` `HoraEvento` TIME NULL DEFAULT NULL,\n	CHANGE COLUMN `UserModificacion` `UserEvento` VARCHAR(20) NULL DEFAULT NULL;\n</pre>\n*20120926.1915 [[File:checked.png|20px]]\n\n====Modificación de Triggers [[TABLA:precios]] [[File:checked.png|20px]]====\n<pre>\nDELIMITER $$\n\nUSE `fzggestion`$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Alta_Precio`\nBEFORE INSERT ON `fzggestion`.`precios`\nFOR EACH ROW\nBEGIN\n	SET\n	NEW.FechaEvento = CURDATE(),\n	NEW.HoraEvento = CURTIME(),\n	NEW.UserEvento	= USER();\nEND$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Actualiza_Precio`\nBEFORE UPDATE ON `fzggestion`.`precios`\nFOR EACH ROW\nBEGIN\n	SET\n	NEW.FechaEvento = CURDATE(),\n	NEW.HoraEvento = CURTIME(),\n	NEW.UserEvento	= USER();\nEND$$\n</pre>\n*20120926.1924 [[File:checked.png|20px]]\n\n====Modificacion de Estructura [[TABLA:contactos]] [[File:checked.png|20px]]====\n<pre>\nUPDATE contactos SET ClienteTag=1 WHERE ClienteTag=\"x\";\nUPDATE contactos SET ProveedorTag=1 WHERE ProveedorTag=\"x\";\nUPDATE contactos SET AComercialTag=1 WHERE AComercialTag=\"x\";\nUPDATE contactos SET OtrosTag=1 WHERE OtrosTag=\"x\";\nALTER TABLE `fzggestion`.`contactos` \n	CHANGE COLUMN `ClienteTag` `ClienteTag` INT(1) NULL DEFAULT NULL,\n	CHANGE COLUMN `ProveedorTag` `ProveedorTag` INT(1) NULL DEFAULT NULL, \n	CHANGE COLUMN `AComercialTag` `AComercialTag` INT(1) NULL DEFAULT NULL,\n	CHANGE COLUMN `OtrosTag` `OtrosTag` INT(1) NULL DEFAULT NULL;\n</pre>\n*20120926.1927 [[File:checked.png|20px]]\nVerificar los casos que no coincidan con los prefijos establecidos: 0->Cliente, 3->Proveedor, 5->Otros, 8->Agentes Comerciales\n*20120926.1928 No se verificó [[File:warning-icon-hi.png|20px]]\n\n====Agrega Atributo [[TABLA:contactos]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`contactos` ADD COLUMN `ImgContacto` BLOB NULL  AFTER `VigenciaDocs` ;\n</pre>\n*20120926.1939 [[File:checked.png|20px]]\n====Cambio de Condición para [[VISTA:clientes]] [[File:checked.png|20px]]====\n*20120926.1942 [[File:checked.png|20px]]\n\n====Alta de Tabla [[TABLA:telemecomp]] [[File:checked.png|20px]]====\n*20120926.1957\n** Alta generada [[File:checked.png|20px]]\n** Falta ingresar los datos [[File:warning-icon-hi.png|20px]]\n\n====Actualizar Routine [[PROC:DuplicaProductoCompo]] en DB [[File:checked.png|20px]]====\n*20120926.2007 [[File:checked.png|20px]]\n\n====Agregar atributo ComposicID a [[TABLA:vidquoten3]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten3` \nCHANGE COLUMN `VidQuoteElementoID` `VidQuoteElementoID` CHAR(8) NOT NULL AFTER `VidQuoteProdID`,\nCHANGE COLUMN `VidQuoteLPre` `VidQuoteLPre` INT(1) NULL DEFAULT NULL AFTER `VidQuoteElementoID;\n\nALTER TABLE `fzggestion`.`vidquoten3`\nADD COLUMN `VidQuoteComposicID` INT NOT NULL AFTER `VidQuoteElementoID` ,\nDROP PRIMARY KEY , ADD PRIMARY KEY (`VidQuoteID`,\n                                    `VidQuoteItem`,\n                                    `VidQuoteProdID`,\n                                    `VidQuoteElementoID`,\n                                    `VidQuoteComposicID`) ;\n</pre>\n*20120927.2014 [[File:checked.png|20px]]\n\n====Agregar atributo ComposicID a [[TABLA:vidquoten3tmp]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten3tmp` \nCHANGE COLUMN `VidQuoteElementoID` `VidQuoteElementoID` CHAR(8) NOT NULL AFTER `VidQuoteProdID`,\nCHANGE COLUMN `VidQuoteProdCantidad` `VidQuoteProdCantidad` INT(5) NULL DEFAULT NULL  AFTER `VidQuoteElementoID`;\n\nALTER TABLE `fzggestion`.`vidquoten3tmp`\nADD COLUMN `VidQuoteComposicID` INT NOT NULL AFTER `VidQuoteElementoID` ,\nDROP PRIMARY KEY , ADD PRIMARY KEY (`VidQuoteID`,\n                                    `VidQuoteItem`,\n                                    `VidQuoteProdID`,\n                                    `VidQuoteElementoID`,\n                                    `VidQuoteComposicID`) ;\n</pre>\n*20120926.2015 [[File:checked.png|20px]]\n\n====Agregar atributo ElementoPM a [[TABLA:vidquoten3tmp]][[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten3tmp` ADD COLUMN `VidQuoteElementoPM` INT(1) NULL  AFTER `VidQuoteComposicID` ;\n</pre>\n*[[20121004.1617]][[File:checked.png|20px]]\n\n====Agregar atributo ElementoPM a [[TABLA:vidquoten3]][[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten3` ADD COLUMN `VidQuoteElementoPM` INT(1) NULL  AFTER `VidQuoteComposicID` ;\n</pre>\n*20121004.1621 [[File:checked.png|20px]]\n\n====Reemplazar el código de [[PROC:GrabaItemPresupuestoTmp]][[File:checked.png|20px]] y [[PROC:AltaItemPresupuestoTmp]][[File:checked.png|20px]]====\nIncluye las modificaciones de inclusión de ElementoPM\n*20121004.1625 [[PROC:GrabaItemPresupuestoTmp]][[File:checked.png|20px]]\n*20121004.1630 [[PROC:GrabaItemPresupuestoTmp]][[File:checked.png|20px]]\n\n====Crea [[PROC:ResetEdicionItemTmp]][[File:checked.png|20px]]====\n*20121004.1655 [[File:checked.png|20px]]\n\n====Cambiar [[VISTA:acomerciales]][[File:checked.png|20px]]====\nRefleja el cambio de la estructura de la [[TABLA:contactos]]\n*20121004.1657 [[File:checked.png|20px]]\n\n====Agregar en [[TABLA:contactos]][[File:checked.png|20px]]====\nAgregar atributo que responde al imagen asociada al contacto.\n<pre>\nALTER TABLE `fzggestion`.`contactos` ADD COLUMN `ImgContacto` BLOB NULL  AFTER `VigenciaDocs` ;\n</pre>\n*20121004.1659 [[File:checked.png|20px]]\n====Alta del [[TRIG:Actualiza_Item_Presupuesto]][[File:checked.png|20px]]====\n*20121004.1718 [[File:checked.png|20px]]\n====Renovación del [[PROC:ActualizaPreciosPresupuesto]][[File:checked.png|20px]]====\n*20121004.1727 [[File:checked.png|20px]]\n====Renovación del [[PROC:ActualizaItemPresupuesto]][[File:checked.png|20px]]====\n*20121004.1727 [[File:checked.png|20px]]\n====Renovación del [[PROC:CopiaPresupuesto]][[File:checked.png|20px]]====\n*20121004.1727 [[File:checked.png|20px]]\n====Cambios estructura del [[PROC:GrabaItemPresupuestoTmp]][[File:checked.png|20px]]====\n*20121004.1625 [[File:checked.png|20px]]\n====Cambios estructura del [[TABLA:composicion]][[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`composicion` ADD COLUMN `ComposicID` INT NOT NULL AUTO_INCREMENT  AFTER `ElementoID` \n, DROP PRIMARY KEY \n, ADD PRIMARY KEY (`ProductoID`, `ElementoID`, `ComposicID`) ;\n</pre>\n*20121004.1857 [[File:checked.png|20px]]\n====Alta del [[PROC:AltaItemPresupuesto]][[File:checked.png|20px]]====\n*20121004.1937 [[File:checked.png|20px]]\n===20120702===\n====Agregado de atributo de Medicion en Obra [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten1` \n	ADD COLUMN `VidQuoteMedCheck` CHAR(1) NULL DEFAULT 0 AFTER `VidQuoteACom`;\n</pre>\n*20120926.1616 [[File:checked.png|20px]]\n====Actualización de dato de Vigencia de Documentos [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`contactos`\n	CHANGE COLUMN `CoeficienteAC` `CoeficienteAC` DECIMAL(5,2) NULL DEFAULT 1,\n	CHANGE COLUMN `VigenciaDocs` `VigenciaDocs` INT(2) NULL DEFAULT 15;\nUPDATE `fzggestion`.`contactos`\n	SET `VigenciaDocs` = 15\n	WHERE `VigenciaDocs`= 0 OR ISNULL(`VigenciaDocs`);\n</pre>\n*20120926.1634 [[File:checked.png|20px]]\n====Actualización de datos para el control de Cobranzas [[File:checked.png|20px]]====\nALTER TABLE `fzggestion`.`accreceiv` \n	ADD COLUMN `ClienteAR` CHAR(8) NULL DEFAULT NULL  AFTER `ImporteAR`,\n	DROP PRIMARY KEY,\n	ADD PRIMARY KEY (`TTransaccion`, `NTransaccion`);\n*20120926.1651 [[File:checked.png|20px]]\n\n====Crear [[VISTA:vistranscrm]] [[File:checked.png|20px]]====\n*2012092616.55 [[File:checked.png|20px]]\n\n====Crear [[TABLA:clientescrmqry]] [[File:checked.png|20px]] ====\n*20120926 [[File:checked.png|20px]]\n\n====Crear [[VISTA:chqactivos]] [[File:checked.png|20px]]====\n*20120926.1758 [[File:checked.png|20px]]\n\n====Crear [[TABLA:accpayab]] [[File:checked.png|20px]]====\n<pre>\ndelimiter $$\nCREATE TABLE `accpayab` (\n  `TTransaccion` char(2) NOT NULL DEFAULT \'AP\',\n  `NTransaccion` int(11) NOT NULL AUTO_INCREMENT,\n  `FechaAutAP` date DEFAULT NULL,\n  `FechaAP` date DEFAULT NULL,\n  `FormaAP` char(3) DEFAULT NULL,\n  `ImporteAP` decimal(10,2) DEFAULT NULL,\n  `ProveedAP` char(8) DEFAULT NULL,\n  `TDocumentoOrg` char(2) DEFAULT NULL,\n  `NDocumentoOrg` int(11) DEFAULT NULL,\n  `DDocumentoOrg` varchar(100) DEFAULT NULL,\n  PRIMARY KEY (`TTransaccion`,`NTransaccion`)\n) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin1$$\n\nCREATE TRIGGER `fzggestion`.`Alta_Pago`\nBEFORE INSERT ON `fzggestion`.`accpayab`\nFOR EACH ROW\nBEGIN\n	SET NEW.FechaAutAP = CURDATE();\nEND\n$$\n</pre>\n*20120926.1804 [[File:checked.png|20px]]\n\n====Modifica [[TABLA:fPago]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`fpago`\n	ADD COLUMN `FPagoAR` CHAR(1) NULL AFTER `FPagoDSC`,\n	ADD COLUMN `FPagoAP` CHAR(1) NULL AFTER `FPagoAR`;\n</pre>\n*20120926.1808 [[File:checked.png|20px]]\n\n====Rediseña [[TABLA:tdocumento]]====\n\n====Crea [[VISTA:vischtdisp]] [[File:checked.png|20px]]====\n*20120926.1835 [[File:checked.png|20px]]\n\n====Crea [[VISTA:vistotprod]] [[File:checked.png|20px]]====\n*20120926.1836 [[File:checked.png|20px]]\n\n====Crea [[TABLA:vidquoten3tmp]] [[File:checked.png|20px]]====\n*20120926.1902 [[File:checked.png|20px]]\n\n====Reemplazar todos los ElementoPM en Componentes por los nuevos valores [[File:checked.png|20px]]====\n<pre>\nUPDATE fzggestion.composicion SET ElementoPM=2 WHERE ElementoPM=0;\nUPDATE fzggestion.composicion SET ElementoPM=0 WHERE ElementoPM=1;\n</pre>\n*20120926.1908 [[File:checked.png|20px]]','utf-8'),(984,'===20121201===\n====Alta de esquema Módulos====\n*Alta de [[TABLA:moduloscab]]\n*Alta de [[TABLA:modulosdet]]\n*Alta de [[TABLA:modulossbs]]\n*Alta de [[TABLA:bocetoscab]]\n*Alta de [[TABLA:bocetosdet]]\n*Alta de [[TABLA:bocetossbs]]\n====Baja TABLA:logprecios====\n<pre>\ndrop table `fzggestion`.`logprecios`;\n</pre>\n\n====Actualización de [[TABLA:Productos]]====\n<pre>\nALTER TABLE `fzggestion`.`productos` \nADD COLUMN `ProductoGen` CHAR(8) NULL  FIRST ,\nADD COLUMN `ProductoDflt` INT(1) NULL  AFTER `ProductoGen` ,\nADD COLUMN `MagnitudIN` CHAR(2) NULL  AFTER `Magnitud` , \nADD COLUMN `MagCmpX` INT(5) NULL  AFTER `InsumoIMG` , \nADD COLUMN `MagCmpY` INT(5) NULL  AFTER `MagCmpX` , \nADD COLUMN `MagCmpZ` INT(5) NULL  AFTER `MagCmpY` , \nADD COLUMN `MagCmpW` INT(5) NULL  AFTER `MagCmpZ` \nADD COLUMN `Presentacion` VARCHAR(45) NULL  AFTER `MagCmpW` ,\nADD COLUMN `ProductoProy` INT(1) NULL DEFAULT 0  AFTER `Presentacion` ;\nUPDATE productos\nSET \n    ProductoGen = ProductoID,\n    ProductoDflt= 1\n</pre>\n====Actualización de [[RPRT:Presupuestos]]====\n\n===20121029===\n====Actualización de [[TABLA:vidquoten1]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten1` \nCHANGE COLUMN `VidQuoteCliente` `VidQuoteCliente` CHAR(8) NOT NULL  ,\nCHANGE COLUMN `VidQuoteACom` `VidQuoteACom` CHAR(4) NOT NULL  ;\n</pre>\n===20121005===\n====Actualización de [[PROC:AltaItemPresupuestoTmp]]====\n\n===20120831===\n====Agregar Nombre de Usuario [[TABLA:precios]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`precios` \n	ADD COLUMN `UserModificacion` VARCHAR(20) NULL AFTER `HoraModificacion` ;\nALTER TABLE `fzggestion`.`precios` \n	CHANGE COLUMN `FechaModificacion` `FechaEvento` DATE NULL DEFAULT NULL,\n	CHANGE COLUMN `HoraModificacion` `HoraEvento` TIME NULL DEFAULT NULL,\n	CHANGE COLUMN `UserModificacion` `UserEvento` VARCHAR(20) NULL DEFAULT NULL;\n</pre>\n*20120926.1915 [[File:checked.png|20px]]\n\n====Modificación de Triggers [[TABLA:precios]] [[File:checked.png|20px]]====\n<pre>\nDELIMITER $$\n\nUSE `fzggestion`$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Alta_Precio`\nBEFORE INSERT ON `fzggestion`.`precios`\nFOR EACH ROW\nBEGIN\n	SET\n	NEW.FechaEvento = CURDATE(),\n	NEW.HoraEvento = CURTIME(),\n	NEW.UserEvento	= USER();\nEND$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Actualiza_Precio`\nBEFORE UPDATE ON `fzggestion`.`precios`\nFOR EACH ROW\nBEGIN\n	SET\n	NEW.FechaEvento = CURDATE(),\n	NEW.HoraEvento = CURTIME(),\n	NEW.UserEvento	= USER();\nEND$$\n</pre>\n*20120926.1924 [[File:checked.png|20px]]\n\n====Modificacion de Estructura [[TABLA:contactos]] [[File:checked.png|20px]]====\n<pre>\nUPDATE contactos SET ClienteTag=1 WHERE ClienteTag=\"x\";\nUPDATE contactos SET ProveedorTag=1 WHERE ProveedorTag=\"x\";\nUPDATE contactos SET AComercialTag=1 WHERE AComercialTag=\"x\";\nUPDATE contactos SET OtrosTag=1 WHERE OtrosTag=\"x\";\nALTER TABLE `fzggestion`.`contactos` \n	CHANGE COLUMN `ClienteTag` `ClienteTag` INT(1) NULL DEFAULT NULL,\n	CHANGE COLUMN `ProveedorTag` `ProveedorTag` INT(1) NULL DEFAULT NULL, \n	CHANGE COLUMN `AComercialTag` `AComercialTag` INT(1) NULL DEFAULT NULL,\n	CHANGE COLUMN `OtrosTag` `OtrosTag` INT(1) NULL DEFAULT NULL;\n</pre>\n*20120926.1927 [[File:checked.png|20px]]\nVerificar los casos que no coincidan con los prefijos establecidos: 0->Cliente, 3->Proveedor, 5->Otros, 8->Agentes Comerciales\n*20120926.1928 No se verificó [[File:warning-icon-hi.png|20px]]\n\n====Agrega Atributo [[TABLA:contactos]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`contactos` ADD COLUMN `ImgContacto` BLOB NULL  AFTER `VigenciaDocs` ;\n</pre>\n*20120926.1939 [[File:checked.png|20px]]\n====Cambio de Condición para [[VISTA:clientes]] [[File:checked.png|20px]]====\n*20120926.1942 [[File:checked.png|20px]]\n\n====Alta de Tabla [[TABLA:telemecomp]] [[File:checked.png|20px]]====\n*20120926.1957\n** Alta generada [[File:checked.png|20px]]\n** Falta ingresar los datos [[File:warning-icon-hi.png|20px]]\n\n====Actualizar Routine [[PROC:DuplicaProductoCompo]] en DB [[File:checked.png|20px]]====\n*20120926.2007 [[File:checked.png|20px]]\n\n====Agregar atributo ComposicID a [[TABLA:vidquoten3]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten3` \nCHANGE COLUMN `VidQuoteElementoID` `VidQuoteElementoID` CHAR(8) NOT NULL AFTER `VidQuoteProdID`,\nCHANGE COLUMN `VidQuoteLPre` `VidQuoteLPre` INT(1) NULL DEFAULT NULL AFTER `VidQuoteElementoID;\n\nALTER TABLE `fzggestion`.`vidquoten3`\nADD COLUMN `VidQuoteComposicID` INT NOT NULL AFTER `VidQuoteElementoID` ,\nDROP PRIMARY KEY , ADD PRIMARY KEY (`VidQuoteID`,\n                                    `VidQuoteItem`,\n                                    `VidQuoteProdID`,\n                                    `VidQuoteElementoID`,\n                                    `VidQuoteComposicID`) ;\n</pre>\n*20120927.2014 [[File:checked.png|20px]]\n\n====Agregar atributo ComposicID a [[TABLA:vidquoten3tmp]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten3tmp` \nCHANGE COLUMN `VidQuoteElementoID` `VidQuoteElementoID` CHAR(8) NOT NULL AFTER `VidQuoteProdID`,\nCHANGE COLUMN `VidQuoteProdCantidad` `VidQuoteProdCantidad` INT(5) NULL DEFAULT NULL  AFTER `VidQuoteElementoID`;\n\nALTER TABLE `fzggestion`.`vidquoten3tmp`\nADD COLUMN `VidQuoteComposicID` INT NOT NULL AFTER `VidQuoteElementoID` ,\nDROP PRIMARY KEY , ADD PRIMARY KEY (`VidQuoteID`,\n                                    `VidQuoteItem`,\n                                    `VidQuoteProdID`,\n                                    `VidQuoteElementoID`,\n                                    `VidQuoteComposicID`) ;\n</pre>\n*20120926.2015 [[File:checked.png|20px]]\n\n====Agregar atributo ElementoPM a [[TABLA:vidquoten3tmp]][[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten3tmp` ADD COLUMN `VidQuoteElementoPM` INT(1) NULL  AFTER `VidQuoteComposicID` ;\n</pre>\n*[[20121004.1617]][[File:checked.png|20px]]\n\n====Agregar atributo ElementoPM a [[TABLA:vidquoten3]][[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten3` ADD COLUMN `VidQuoteElementoPM` INT(1) NULL  AFTER `VidQuoteComposicID` ;\n</pre>\n*20121004.1621 [[File:checked.png|20px]]\n\n====Reemplazar el código de [[PROC:GrabaItemPresupuestoTmp]][[File:checked.png|20px]] y [[PROC:AltaItemPresupuestoTmp]][[File:checked.png|20px]]====\nIncluye las modificaciones de inclusión de ElementoPM\n*20121004.1625 [[PROC:GrabaItemPresupuestoTmp]][[File:checked.png|20px]]\n*20121004.1630 [[PROC:GrabaItemPresupuestoTmp]][[File:checked.png|20px]]\n\n====Crea [[PROC:ResetEdicionItemTmp]][[File:checked.png|20px]]====\n*20121004.1655 [[File:checked.png|20px]]\n\n====Cambiar [[VISTA:acomerciales]][[File:checked.png|20px]]====\nRefleja el cambio de la estructura de la [[TABLA:contactos]]\n*20121004.1657 [[File:checked.png|20px]]\n\n====Agregar en [[TABLA:contactos]][[File:checked.png|20px]]====\nAgregar atributo que responde al imagen asociada al contacto.\n<pre>\nALTER TABLE `fzggestion`.`contactos` ADD COLUMN `ImgContacto` BLOB NULL  AFTER `VigenciaDocs` ;\n</pre>\n*20121004.1659 [[File:checked.png|20px]]\n====Alta del [[TRIG:Actualiza_Item_Presupuesto]][[File:checked.png|20px]]====\n*20121004.1718 [[File:checked.png|20px]]\n====Renovación del [[PROC:ActualizaPreciosPresupuesto]][[File:checked.png|20px]]====\n*20121004.1727 [[File:checked.png|20px]]\n====Renovación del [[PROC:ActualizaItemPresupuesto]][[File:checked.png|20px]]====\n*20121004.1727 [[File:checked.png|20px]]\n====Renovación del [[PROC:CopiaPresupuesto]][[File:checked.png|20px]]====\n*20121004.1727 [[File:checked.png|20px]]\n====Cambios estructura del [[PROC:GrabaItemPresupuestoTmp]][[File:checked.png|20px]]====\n*20121004.1625 [[File:checked.png|20px]]\n====Cambios estructura del [[TABLA:composicion]][[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`composicion` ADD COLUMN `ComposicID` INT NOT NULL AUTO_INCREMENT  AFTER `ElementoID` \n, DROP PRIMARY KEY \n, ADD PRIMARY KEY (`ProductoID`, `ElementoID`, `ComposicID`) ;\n</pre>\n*20121004.1857 [[File:checked.png|20px]]\n====Alta del [[PROC:AltaItemPresupuesto]][[File:checked.png|20px]]====\n*20121004.1937 [[File:checked.png|20px]]\n===20120702===\n====Agregado de atributo de Medicion en Obra [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten1` \n	ADD COLUMN `VidQuoteMedCheck` CHAR(1) NULL DEFAULT 0 AFTER `VidQuoteACom`;\n</pre>\n*20120926.1616 [[File:checked.png|20px]]\n====Actualización de dato de Vigencia de Documentos [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`contactos`\n	CHANGE COLUMN `CoeficienteAC` `CoeficienteAC` DECIMAL(5,2) NULL DEFAULT 1,\n	CHANGE COLUMN `VigenciaDocs` `VigenciaDocs` INT(2) NULL DEFAULT 15;\nUPDATE `fzggestion`.`contactos`\n	SET `VigenciaDocs` = 15\n	WHERE `VigenciaDocs`= 0 OR ISNULL(`VigenciaDocs`);\n</pre>\n*20120926.1634 [[File:checked.png|20px]]\n====Actualización de datos para el control de Cobranzas [[File:checked.png|20px]]====\nALTER TABLE `fzggestion`.`accreceiv` \n	ADD COLUMN `ClienteAR` CHAR(8) NULL DEFAULT NULL  AFTER `ImporteAR`,\n	DROP PRIMARY KEY,\n	ADD PRIMARY KEY (`TTransaccion`, `NTransaccion`);\n*20120926.1651 [[File:checked.png|20px]]\n\n====Crear [[VISTA:vistranscrm]] [[File:checked.png|20px]]====\n*2012092616.55 [[File:checked.png|20px]]\n\n====Crear [[TABLA:clientescrmqry]] [[File:checked.png|20px]] ====\n*20120926 [[File:checked.png|20px]]\n\n====Crear [[VISTA:chqactivos]] [[File:checked.png|20px]]====\n*20120926.1758 [[File:checked.png|20px]]\n\n====Crear [[TABLA:accpayab]] [[File:checked.png|20px]]====\n<pre>\ndelimiter $$\nCREATE TABLE `accpayab` (\n  `TTransaccion` char(2) NOT NULL DEFAULT \'AP\',\n  `NTransaccion` int(11) NOT NULL AUTO_INCREMENT,\n  `FechaAutAP` date DEFAULT NULL,\n  `FechaAP` date DEFAULT NULL,\n  `FormaAP` char(3) DEFAULT NULL,\n  `ImporteAP` decimal(10,2) DEFAULT NULL,\n  `ProveedAP` char(8) DEFAULT NULL,\n  `TDocumentoOrg` char(2) DEFAULT NULL,\n  `NDocumentoOrg` int(11) DEFAULT NULL,\n  `DDocumentoOrg` varchar(100) DEFAULT NULL,\n  PRIMARY KEY (`TTransaccion`,`NTransaccion`)\n) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin1$$\n\nCREATE TRIGGER `fzggestion`.`Alta_Pago`\nBEFORE INSERT ON `fzggestion`.`accpayab`\nFOR EACH ROW\nBEGIN\n	SET NEW.FechaAutAP = CURDATE();\nEND\n$$\n</pre>\n*20120926.1804 [[File:checked.png|20px]]\n\n====Modifica [[TABLA:fPago]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`fpago`\n	ADD COLUMN `FPagoAR` CHAR(1) NULL AFTER `FPagoDSC`,\n	ADD COLUMN `FPagoAP` CHAR(1) NULL AFTER `FPagoAR`;\n</pre>\n*20120926.1808 [[File:checked.png|20px]]\n\n====Rediseña [[TABLA:tdocumento]]====\n\n====Crea [[VISTA:vischtdisp]] [[File:checked.png|20px]]====\n*20120926.1835 [[File:checked.png|20px]]\n\n====Crea [[VISTA:vistotprod]] [[File:checked.png|20px]]====\n*20120926.1836 [[File:checked.png|20px]]\n\n====Crea [[TABLA:vidquoten3tmp]] [[File:checked.png|20px]]====\n*20120926.1902 [[File:checked.png|20px]]\n\n====Reemplazar todos los ElementoPM en Componentes por los nuevos valores [[File:checked.png|20px]]====\n<pre>\nUPDATE fzggestion.composicion SET ElementoPM=2 WHERE ElementoPM=0;\nUPDATE fzggestion.composicion SET ElementoPM=0 WHERE ElementoPM=1;\n</pre>\n*20120926.1908 [[File:checked.png|20px]]','utf-8'),(985,'===20121201===\n====Alta de esquema Módulos====\n*Alta de [[TABLA:moduloscab]]\n*Alta de [[TABLA:modulosdet]]\n*Alta de [[TABLA:modulossbs]]\n*Alta de [[TABLA:bocetoscab]]\n*Alta de [[TABLA:bocetosdet]]\n*Alta de [[TABLA:bocetossbs]]\n====Baja TABLA:logprecios====\n<pre>\ndrop table `fzggestion`.`logprecios`;\n</pre>\n====Baja TABLA:precios_old====\n<pre>\ndrop table `fzggestion`.`precios_old`;\n</pre>\n====Baja TABLA:predefcab====\n<pre>\ndrop table `fzggestion`.`predefcab`;\n</pre>\n====Baja TABLA:predefdet====\n<pre>\ndrop table `fzggestion`.`predefdet`;\n</pre>\n====Actualización de [[TABLA:Productos]]====\n<pre>\nALTER TABLE `fzggestion`.`productos` \nADD COLUMN `ProductoGen` CHAR(8) NULL  FIRST ,\nADD COLUMN `ProductoDflt` INT(1) NULL  AFTER `ProductoGen` ,\nADD COLUMN `MagnitudIN` CHAR(2) NULL  AFTER `Magnitud` , \nADD COLUMN `MagCmpX` INT(5) NULL  AFTER `InsumoIMG` , \nADD COLUMN `MagCmpY` INT(5) NULL  AFTER `MagCmpX` , \nADD COLUMN `MagCmpZ` INT(5) NULL  AFTER `MagCmpY` , \nADD COLUMN `MagCmpW` INT(5) NULL  AFTER `MagCmpZ` \nADD COLUMN `Presentacion` VARCHAR(45) NULL  AFTER `MagCmpW` ,\nADD COLUMN `ProductoProy` INT(1) NULL DEFAULT 0  AFTER `Presentacion` ;\nUPDATE productos\nSET \n    ProductoGen = ProductoID,\n    ProductoDflt= 1\n</pre>\n====Actualización de [[RPRT:Presupuestos]]====\n\n===20121029===\n====Actualización de [[TABLA:vidquoten1]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten1` \nCHANGE COLUMN `VidQuoteCliente` `VidQuoteCliente` CHAR(8) NOT NULL  ,\nCHANGE COLUMN `VidQuoteACom` `VidQuoteACom` CHAR(4) NOT NULL  ;\n</pre>\n===20121005===\n====Actualización de [[PROC:AltaItemPresupuestoTmp]]====\n\n===20120831===\n====Agregar Nombre de Usuario [[TABLA:precios]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`precios` \n	ADD COLUMN `UserModificacion` VARCHAR(20) NULL AFTER `HoraModificacion` ;\nALTER TABLE `fzggestion`.`precios` \n	CHANGE COLUMN `FechaModificacion` `FechaEvento` DATE NULL DEFAULT NULL,\n	CHANGE COLUMN `HoraModificacion` `HoraEvento` TIME NULL DEFAULT NULL,\n	CHANGE COLUMN `UserModificacion` `UserEvento` VARCHAR(20) NULL DEFAULT NULL;\n</pre>\n*20120926.1915 [[File:checked.png|20px]]\n\n====Modificación de Triggers [[TABLA:precios]] [[File:checked.png|20px]]====\n<pre>\nDELIMITER $$\n\nUSE `fzggestion`$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Alta_Precio`\nBEFORE INSERT ON `fzggestion`.`precios`\nFOR EACH ROW\nBEGIN\n	SET\n	NEW.FechaEvento = CURDATE(),\n	NEW.HoraEvento = CURTIME(),\n	NEW.UserEvento	= USER();\nEND$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Actualiza_Precio`\nBEFORE UPDATE ON `fzggestion`.`precios`\nFOR EACH ROW\nBEGIN\n	SET\n	NEW.FechaEvento = CURDATE(),\n	NEW.HoraEvento = CURTIME(),\n	NEW.UserEvento	= USER();\nEND$$\n</pre>\n*20120926.1924 [[File:checked.png|20px]]\n\n====Modificacion de Estructura [[TABLA:contactos]] [[File:checked.png|20px]]====\n<pre>\nUPDATE contactos SET ClienteTag=1 WHERE ClienteTag=\"x\";\nUPDATE contactos SET ProveedorTag=1 WHERE ProveedorTag=\"x\";\nUPDATE contactos SET AComercialTag=1 WHERE AComercialTag=\"x\";\nUPDATE contactos SET OtrosTag=1 WHERE OtrosTag=\"x\";\nALTER TABLE `fzggestion`.`contactos` \n	CHANGE COLUMN `ClienteTag` `ClienteTag` INT(1) NULL DEFAULT NULL,\n	CHANGE COLUMN `ProveedorTag` `ProveedorTag` INT(1) NULL DEFAULT NULL, \n	CHANGE COLUMN `AComercialTag` `AComercialTag` INT(1) NULL DEFAULT NULL,\n	CHANGE COLUMN `OtrosTag` `OtrosTag` INT(1) NULL DEFAULT NULL;\n</pre>\n*20120926.1927 [[File:checked.png|20px]]\nVerificar los casos que no coincidan con los prefijos establecidos: 0->Cliente, 3->Proveedor, 5->Otros, 8->Agentes Comerciales\n*20120926.1928 No se verificó [[File:warning-icon-hi.png|20px]]\n\n====Agrega Atributo [[TABLA:contactos]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`contactos` ADD COLUMN `ImgContacto` BLOB NULL  AFTER `VigenciaDocs` ;\n</pre>\n*20120926.1939 [[File:checked.png|20px]]\n====Cambio de Condición para [[VISTA:clientes]] [[File:checked.png|20px]]====\n*20120926.1942 [[File:checked.png|20px]]\n\n====Alta de Tabla [[TABLA:telemecomp]] [[File:checked.png|20px]]====\n*20120926.1957\n** Alta generada [[File:checked.png|20px]]\n** Falta ingresar los datos [[File:warning-icon-hi.png|20px]]\n\n====Actualizar Routine [[PROC:DuplicaProductoCompo]] en DB [[File:checked.png|20px]]====\n*20120926.2007 [[File:checked.png|20px]]\n\n====Agregar atributo ComposicID a [[TABLA:vidquoten3]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten3` \nCHANGE COLUMN `VidQuoteElementoID` `VidQuoteElementoID` CHAR(8) NOT NULL AFTER `VidQuoteProdID`,\nCHANGE COLUMN `VidQuoteLPre` `VidQuoteLPre` INT(1) NULL DEFAULT NULL AFTER `VidQuoteElementoID;\n\nALTER TABLE `fzggestion`.`vidquoten3`\nADD COLUMN `VidQuoteComposicID` INT NOT NULL AFTER `VidQuoteElementoID` ,\nDROP PRIMARY KEY , ADD PRIMARY KEY (`VidQuoteID`,\n                                    `VidQuoteItem`,\n                                    `VidQuoteProdID`,\n                                    `VidQuoteElementoID`,\n                                    `VidQuoteComposicID`) ;\n</pre>\n*20120927.2014 [[File:checked.png|20px]]\n\n====Agregar atributo ComposicID a [[TABLA:vidquoten3tmp]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten3tmp` \nCHANGE COLUMN `VidQuoteElementoID` `VidQuoteElementoID` CHAR(8) NOT NULL AFTER `VidQuoteProdID`,\nCHANGE COLUMN `VidQuoteProdCantidad` `VidQuoteProdCantidad` INT(5) NULL DEFAULT NULL  AFTER `VidQuoteElementoID`;\n\nALTER TABLE `fzggestion`.`vidquoten3tmp`\nADD COLUMN `VidQuoteComposicID` INT NOT NULL AFTER `VidQuoteElementoID` ,\nDROP PRIMARY KEY , ADD PRIMARY KEY (`VidQuoteID`,\n                                    `VidQuoteItem`,\n                                    `VidQuoteProdID`,\n                                    `VidQuoteElementoID`,\n                                    `VidQuoteComposicID`) ;\n</pre>\n*20120926.2015 [[File:checked.png|20px]]\n\n====Agregar atributo ElementoPM a [[TABLA:vidquoten3tmp]][[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten3tmp` ADD COLUMN `VidQuoteElementoPM` INT(1) NULL  AFTER `VidQuoteComposicID` ;\n</pre>\n*[[20121004.1617]][[File:checked.png|20px]]\n\n====Agregar atributo ElementoPM a [[TABLA:vidquoten3]][[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten3` ADD COLUMN `VidQuoteElementoPM` INT(1) NULL  AFTER `VidQuoteComposicID` ;\n</pre>\n*20121004.1621 [[File:checked.png|20px]]\n\n====Reemplazar el código de [[PROC:GrabaItemPresupuestoTmp]][[File:checked.png|20px]] y [[PROC:AltaItemPresupuestoTmp]][[File:checked.png|20px]]====\nIncluye las modificaciones de inclusión de ElementoPM\n*20121004.1625 [[PROC:GrabaItemPresupuestoTmp]][[File:checked.png|20px]]\n*20121004.1630 [[PROC:GrabaItemPresupuestoTmp]][[File:checked.png|20px]]\n\n====Crea [[PROC:ResetEdicionItemTmp]][[File:checked.png|20px]]====\n*20121004.1655 [[File:checked.png|20px]]\n\n====Cambiar [[VISTA:acomerciales]][[File:checked.png|20px]]====\nRefleja el cambio de la estructura de la [[TABLA:contactos]]\n*20121004.1657 [[File:checked.png|20px]]\n\n====Agregar en [[TABLA:contactos]][[File:checked.png|20px]]====\nAgregar atributo que responde al imagen asociada al contacto.\n<pre>\nALTER TABLE `fzggestion`.`contactos` ADD COLUMN `ImgContacto` BLOB NULL  AFTER `VigenciaDocs` ;\n</pre>\n*20121004.1659 [[File:checked.png|20px]]\n====Alta del [[TRIG:Actualiza_Item_Presupuesto]][[File:checked.png|20px]]====\n*20121004.1718 [[File:checked.png|20px]]\n====Renovación del [[PROC:ActualizaPreciosPresupuesto]][[File:checked.png|20px]]====\n*20121004.1727 [[File:checked.png|20px]]\n====Renovación del [[PROC:ActualizaItemPresupuesto]][[File:checked.png|20px]]====\n*20121004.1727 [[File:checked.png|20px]]\n====Renovación del [[PROC:CopiaPresupuesto]][[File:checked.png|20px]]====\n*20121004.1727 [[File:checked.png|20px]]\n====Cambios estructura del [[PROC:GrabaItemPresupuestoTmp]][[File:checked.png|20px]]====\n*20121004.1625 [[File:checked.png|20px]]\n====Cambios estructura del [[TABLA:composicion]][[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`composicion` ADD COLUMN `ComposicID` INT NOT NULL AUTO_INCREMENT  AFTER `ElementoID` \n, DROP PRIMARY KEY \n, ADD PRIMARY KEY (`ProductoID`, `ElementoID`, `ComposicID`) ;\n</pre>\n*20121004.1857 [[File:checked.png|20px]]\n====Alta del [[PROC:AltaItemPresupuesto]][[File:checked.png|20px]]====\n*20121004.1937 [[File:checked.png|20px]]\n===20120702===\n====Agregado de atributo de Medicion en Obra [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten1` \n	ADD COLUMN `VidQuoteMedCheck` CHAR(1) NULL DEFAULT 0 AFTER `VidQuoteACom`;\n</pre>\n*20120926.1616 [[File:checked.png|20px]]\n====Actualización de dato de Vigencia de Documentos [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`contactos`\n	CHANGE COLUMN `CoeficienteAC` `CoeficienteAC` DECIMAL(5,2) NULL DEFAULT 1,\n	CHANGE COLUMN `VigenciaDocs` `VigenciaDocs` INT(2) NULL DEFAULT 15;\nUPDATE `fzggestion`.`contactos`\n	SET `VigenciaDocs` = 15\n	WHERE `VigenciaDocs`= 0 OR ISNULL(`VigenciaDocs`);\n</pre>\n*20120926.1634 [[File:checked.png|20px]]\n====Actualización de datos para el control de Cobranzas [[File:checked.png|20px]]====\nALTER TABLE `fzggestion`.`accreceiv` \n	ADD COLUMN `ClienteAR` CHAR(8) NULL DEFAULT NULL  AFTER `ImporteAR`,\n	DROP PRIMARY KEY,\n	ADD PRIMARY KEY (`TTransaccion`, `NTransaccion`);\n*20120926.1651 [[File:checked.png|20px]]\n\n====Crear [[VISTA:vistranscrm]] [[File:checked.png|20px]]====\n*2012092616.55 [[File:checked.png|20px]]\n\n====Crear [[TABLA:clientescrmqry]] [[File:checked.png|20px]] ====\n*20120926 [[File:checked.png|20px]]\n\n====Crear [[VISTA:chqactivos]] [[File:checked.png|20px]]====\n*20120926.1758 [[File:checked.png|20px]]\n\n====Crear [[TABLA:accpayab]] [[File:checked.png|20px]]====\n<pre>\ndelimiter $$\nCREATE TABLE `accpayab` (\n  `TTransaccion` char(2) NOT NULL DEFAULT \'AP\',\n  `NTransaccion` int(11) NOT NULL AUTO_INCREMENT,\n  `FechaAutAP` date DEFAULT NULL,\n  `FechaAP` date DEFAULT NULL,\n  `FormaAP` char(3) DEFAULT NULL,\n  `ImporteAP` decimal(10,2) DEFAULT NULL,\n  `ProveedAP` char(8) DEFAULT NULL,\n  `TDocumentoOrg` char(2) DEFAULT NULL,\n  `NDocumentoOrg` int(11) DEFAULT NULL,\n  `DDocumentoOrg` varchar(100) DEFAULT NULL,\n  PRIMARY KEY (`TTransaccion`,`NTransaccion`)\n) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin1$$\n\nCREATE TRIGGER `fzggestion`.`Alta_Pago`\nBEFORE INSERT ON `fzggestion`.`accpayab`\nFOR EACH ROW\nBEGIN\n	SET NEW.FechaAutAP = CURDATE();\nEND\n$$\n</pre>\n*20120926.1804 [[File:checked.png|20px]]\n\n====Modifica [[TABLA:fPago]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`fpago`\n	ADD COLUMN `FPagoAR` CHAR(1) NULL AFTER `FPagoDSC`,\n	ADD COLUMN `FPagoAP` CHAR(1) NULL AFTER `FPagoAR`;\n</pre>\n*20120926.1808 [[File:checked.png|20px]]\n\n====Rediseña [[TABLA:tdocumento]]====\n\n====Crea [[VISTA:vischtdisp]] [[File:checked.png|20px]]====\n*20120926.1835 [[File:checked.png|20px]]\n\n====Crea [[VISTA:vistotprod]] [[File:checked.png|20px]]====\n*20120926.1836 [[File:checked.png|20px]]\n\n====Crea [[TABLA:vidquoten3tmp]] [[File:checked.png|20px]]====\n*20120926.1902 [[File:checked.png|20px]]\n\n====Reemplazar todos los ElementoPM en Componentes por los nuevos valores [[File:checked.png|20px]]====\n<pre>\nUPDATE fzggestion.composicion SET ElementoPM=2 WHERE ElementoPM=0;\nUPDATE fzggestion.composicion SET ElementoPM=0 WHERE ElementoPM=1;\n</pre>\n*20120926.1908 [[File:checked.png|20px]]','utf-8'),(986,'=== Estructuras de Datos ===\n==== Estructuras Tipo ====\n[[Estructuras SQL]]\n\n==== Tablas ====\n* [[TABLA:catinsumos]]\n* [[TABLA:cmoneda]]\n* [[TABLA:contactos]]\n* [[TABLA:cpar]]\n* [[TABLA:elementos]]\n* [[TABLA:insumos]]\n* [[TABLA:listasprecios]]\n* [[TABLA:monedas]]\n* [[TABLA:preciosqry]]\n* [[TABLA:transacciones]]\n* [[TABLA:ttransac]]\n* [[TABLA:vidquoten4]]\n===== Template Layout General =====\n* [[TEMP:LayoutGeneral]]\n\n==== Vistas ====\n[http://sqlformat.appspot.com/ SQLFormatBeautify]\n*[[VISTA:acomerciales]]\n*[[VISTA:clientes]]\n*[[VISTA:listavigente]]\n*[[VISTA:precioscmpl]]\n*[[VISTA:preciosvigact]]\n*[[VISTA:preciosvigentes]]\n*[[VISTA:proveedores]]\n*[[VISTA:viscabdetalla]]\n*[[VISTA:viscompcnt]]\n*[[VISTA:viscompodis]]\n*[[VISTA:viscomposimpl]]\n*[[VISTA:visdetaobs]]\n*[[VISTA:visdocpcob]]\n*[[VISTA:vistranscrm]]\n*[[VISTA:visintdetpre]]\n*[[VISTA:vislineabs]]\n*[[VISTA:visprdparam]]\n*[[VISTA:visprestot]]\n*[[VISTA:visprodadic]]\n*[[VISTA:visreppres]]\n*[[VISTA:visrprescmp]]\n*[[VISTA:vissubxitem]]\n*[[VISTA:chqactivos]]\n*[[VISTA:vischtdisp]]\n*[[VISTA:vischeckmod]]\n*[[VISTA:vistotprod]]\n\n<small>\n{| class=\"wikitable\"\n| <center>\'\'\'Nombre\'\'\'</center>\n| <center>\'\'\'Comando\'\'\'</center>\n| <center>\'\'\'Uso\'\'\'</center>\n| <center>\'\'\'Cross\'\'\'</center>\n\n|-\n| Viscabdetalla\n| FZG.Vista.viscabdetalla.sql\n| Vista utilizada para agregar la información de cual es la lista de precios a utilizar para el cliente del presupuesto en tiempo real.FORM: Presupuesto\n| Contactos, Vidquoten1\n\n|-\n| Proveedores\n| FZG.Vista.proveedores.sql\n| Visualización de Contactos “Proveedores”\n| Contactos\n\n|-\n| Clientes\n| FZG.Vista.clientes.sql\n| Visualización de Contactos “Clientes”\n| Contactos\n\n|-\n| Visreppres\n| FZG.Vista.visreppres.sql\n| Vista Reporte Presupuesto Individual. Para generar una línea completa con la información de detalle de los presupuestos con las combinaciones de información a incluir en el mismo. No contiene la información estática del cliente.\n| Vislineabs, Visdetaobs\n\n|-\n| Viscompodis\n| FZG.Vista.viscompodis.sql\n| Vista de productos (DISTINCT productos) dentro de la tabla de composición ordenada por alfabéticamente.\n| \n\n|-\n| Viscoposimpl\n| FZG.Vista.viscomposimpl.sql\n| Vista de los elementos de composicion con información para query\n| Productos, Composición\n\n|-\n| Visdetaobs\n| FZG.Vista.visdetaobs.sql\n| Une todas las Observaciones de cada item para los casos que se encuentren señaladas con la Descripción del Producto-Item\n| Productos, Vidquoten3\n\n|-\n| Visintdetpre\n| FZG.Vista.visintdetpre.sql\n| Reducción de vista Visprodadic aplicable al cálculo de presupuesto con los datos en tiempo real del presupuesto activo en formulario y calculando el precio correcto de acuerdo al cliente y el cálculo del valor del elemento de acuerdo al los valores de Alto y Ancho del Vano en tiempo real\n| Visprodadic, Vidquoten2\n\n|-\n| Vislineabs\n| [[FZG.Vista.vislineabs.sql]]\n| Define linea básica para reporte teniendo como base Vidquoten2, agregando la información de la cabecera + datos de descrpción de producto + el subtotal por Producto-Item\n| Vidquoten1, Vidquoten2, Productos, Vissubxitem\n\n|-\n| Visprodadic\n| FZG.Vista.visproadic.sql\n| Vista de tabla de componentes con la información de cada elemento como producto y de los precios vigentes.\n| Productos, Composicion, PreciosVigentes\n\n|-\n| Vissubxitem\n| FZG.Vista.vissubxitem.sql\n| Subtotal por Item de Presupuesto en tiempo real\n| Vidquoten3\n\n|-\n| Listavigente\n| \n| Selecciona solo el primer registro ordenado en forma descendente de la tabla de listasprecios\n| Listasprecios\n\n|-\n| Preciosvigentes\n| FZG.Vista.preciosvigentes.sql\n| Es la selección de la tabla de precios referenciando el mayor valor dentro de la tabla de listasprecios\n| Listasprecios, Precios\n\n|-\n| Preciosvigact\n| FZG.Vista.preciosvigact.sql\n| Vista de lista de precios vigentes con datos de productos para actualización columnar.FORM: Actualización por tipo de lista\n| Preciosvigentes, Productos\n\n|-\n| Precioscmpl\n| [[FZG.Vista.precioscmpl.sql]]\n| Vista de lista de precios completa con datos de productos. [[FORM: Precios Tabular x Proceso]]\n| Precios, Productos\n\n|-\n| Visprestot\n| FZG.Vista.visprestot.sql\n| Vista de Presupuestos Totalizados por Cliente\n| Visreppres\n\n|-\n| Viscompcnt\n| [[FZG.Vista.viscompcnt.sql]]\n| Vista resumen de Componentes completa con indicadores de estado de composición\n| composicion, producto\n|}</small>\n\n=== Objetos ===\n==== Formularios ====\n*[[FORM:Presupuesto]]\n*[[FORM:CopiaComposicion]]\n*[[FORM:Pagos]]\n*[[FORM:Cobranzas]]\n\n==== Reportes ====\n*[[RPRT:Presupuestos]]\n*[[RPRT:PresupuestosDirecto]]\n*[[RPRT:IndividualCRM]]\n\n=== Procedimientos ===\n*[[PROC:ActualizaItemPresupuesto]]\n*[[PROC:ActualizaPreciosPresupuesto]]\n*[[PROC:ActualizaPreciosTabular]]\n*[[PROC:AgregaProductoCompo]]\n*[[PROC:AltaItemPresupuesto]]\n*[[PROC:AltaItemPresupuestoTmp]]\n*[[PROC:CalculaPrecioBase]]\n*[[PROC:CalculoMedidaReal]]\n*[[PROC:CalculoPrecio]]\n*[[PROC:CopiaPresupuesto]]\n*[[PROC:DuplicaProductoCompo]]\n*[[PROC:GrabaItemPresupuestoTmp]]\n*[[PROC:ResetEdicionItemTmp]]\n\n=== Bibliotecas ===\n*[[LIBR:FazzGlassMcr]]\n*[[LIBR:SpanexB]]\n*[[LIBR:SpanexC]]','utf-8'),(987,'[[Category:TABLAS]]\n== Descripción ==\nContainer de datos de licenciamiento. \n== Composición ==\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `wscontrol` (\n  `wsid` int(11) NOT NULL AUTO_INCREMENT,\n  `wskey1` varchar(30) DEFAULT NULL,\n  `wskey2` varchar(30) DEFAULT NULL,\n  `wskey3` varchar(30) DEFAULT NULL,\n  `wstest` varchar(30) DEFAULT NULL,\n  PRIMARY KEY (`wsid`)\n) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1$$\n</pre>\n== Bitácora ==\n== Uso ==\nSolo en acceso a [[MACRO:Main]] con las siguientes características:\n#Verificar que la ODB esté registrada en el profile de LO/OO (el getcontext hace referencia a eso)\n#Grabar con semilla de nombre de datasource con el texto -> \"sdbc:mysql:odbc:\'\'<datasource>\'\'\"\n===Ingreso de Registro en Tabla===\n<small><pre>\nINSERT INTO wscontrol (\n	wskey1,\n	wskey2,\n	wsKey3\n	) \nVALUES(\n	ENCODE(<MAC Address en minúscula sin separadores>,\"sdbc:mysql:odbc:<datasource>\"),\n	ENCODE(<Cantidad de Usuarios en formato fill 0 de 3 dígitos>,\"sdbc:mysql:odbc:<datasource>\"),\n	ENCODE(<FechaLimite en ISO Format>,\"sdbc:mysql:odbc:<datasource>\")\n	)\n</pre></small>\n===Ejemplo===\n<small><pre>\nINSERT INTO wscontrol (\n	wskey1,\n	wskey2,\n	wskey3\n	) \nVALUES(\n	ENCODE(SUBSTRING_INDEX(UUID(), \'-\', -1),\"sdbc:mysql:odbc:FazzGlassGestion\"),\n	ENCODE(\"001\",\"sdbc:mysql:odbc:FazzGlassGestion\"),\n	ENCODE(\"20121231\",\"sdbc:mysql:odbc:FazzGlassGestion\")\n	)\n</pre></small>\n===Corroborar ACL===\n<small><pre>\nSELECT\n	wskey1 AS Cantidad,\n	wskey2 AS Usuarios,\n	wskey3 AS FechaLimite,\n	CAST(DECODE(wskey1,\'sdbc:mysql:odbc:FazzGlassGestion\') AS Char(12)) AS DecMAC,\n	CAST(DECODE(wskey2,\'sdbc:mysql:odbc:FazzGlassGestion\') AS Char(03)) AS DecUsuarios,\n	CAST(DECODE(wskey3,\'sdbc:mysql:odbc:FazzGlassGestion\') AS Char(08)) AS DecFechaLimite\nFROM\n	wscontrol\n</pre></small>\n===Alargar ACL 1 mes más===\n<small><pre>\nUPDATE wscontrol \n    SET wskey3 = ENCODE(\n                 DATE_FORMAT(STR_TO_DATE(CAST(DECODE(wskey3,\'sdbc:mysql:odbc:FazzGlassGestion\') AS Char(08)),\n                  \'%Y%m%d\')+INTERVAL 1 MONTH,\'%Y%m%d\'),\n                 \"sdbc:mysql:odbc:FazzGlassGestion\")\n    WHERE CAST(DECODE(wskey1,\'sdbc:mysql:odbc:FazzGlassGestion\') AS Char(12)) = SUBSTRING_INDEX(UUID(),\'-\',-1)\n</pre></small>\n===Cambiar Fecha ACL===\n<small><pre>\nUPDATE wscontrol \n    SET wskey3 = ENCODE(\n                 \"20121231\",\n                 \"sdbc:mysql:odbc:FazzGlassGestion\")\n    WHERE CAST(DECODE(wskey1,\'sdbc:mysql:odbc:FazzGlassGestion\') AS Char(12)) = SUBSTRING_INDEX(UUID(),\'-\',-1)\n</pre></small>\n== URL ==','utf-8'),(988,'== Developing ==\n*[[Developing]]\n*[[Pendientes]]\n*[[SpanexDraw]]\n*[[:Categoría:TABLAS|Tablas]]\n\n== Gestión Retail Aberturas (Spanex) ==\n*[[GRA: Pendientes]]\n*[[GRA: Relaciones]]\n*[[GRA: Releases]]\n*[[GRA: PreciosABT]]\n*[[Spanex:Estructuras]]\n\n=== Gestión de Magnitudes ===\n\n==== Definiciones ====\n*Coeficiente: Por defecto, el valor es 1. Si necesita sumar al valor original, el coeficiente tiene que tener la parte entera al menos en 1. En el caso de magnitudes no estándar, los valores del precio del producto puede estar incluido en el mismo, por lo que hay que verificar en este caso los valores que se ingresen en la [[TABLA:precios]]\n*Offset: Por defecto, el valor es 0\n\n==== Atributos de Productos/Elementos ====\n* M2 = Metro Cuadrado\nPrecio Unitario = Precio determinado por tipo de cliente * (((((Ancho + OffsetAncho)*Coeficiente Ancho) * ((Alto + OffsetAlto)*Coeficiente Alto))/100000) * Coeficiente Elemento)\n\n* ML = Metro Lineal\n<Del>Precio Unitario = Precio determinado por tipo de cliente * (((((Ancho + OffsetAncho) * 2 * Coeficiente Ancho) + ((Alto + OffsetAlto) * 2 * Coeficiente Alto)) / 1000) * Coeficiente Elemento).</Del>\n\n* MG = Magnitud Galarza\nPrecio Unitario = Precio determinado por tipo de cliente * ((((Alto + OffsetAlto) * CoeficienteAlto) + (Ancho + OffsetAncho) * CoeficienteAncho)) / 1000) * Coeficiente Elemento)\n\n* UN = Unidad\nPrecio Unitario = Precio determinado por tipo de cliente * Coeficiente Elemento\n\n=== Triggers ===\n<small>\n{| class=\"wikitable\"\n| <center>\'\'\'Trigger\'\'\'</center>\n| <center>\'\'\'Event\'\'\'</center>\n| <center>\'\'\'Table\'\'\'</center>\n| <center>\'\'\'Statement\'\'\'</center>\n| <center>\'\'\'Timing\'\'\'</center>\n\n|-\n| Alta_ListasPrecios\n| INSERT\n| listasprecios\n| <pre>BEGIN\n   DECLARE vListaVieja,vListaNueva INT(5);\n   DECLARE vFechaModificacion DATE;\n   DECLARE vHoraModificacion TIME;\n   SET vListaNueva = (SELECT Lista FROM listavigente);\n   SET vListaVieja = (SELECT MAX(listasprecios.Lista) \n                      FROM listasprecios \n                      WHERE listasprecios.Lista <> NEW.Lista);\n   SET vFechaModificacion = CURDATE();\n   SET vHoraModificacion = CURTIME();\n   INSERT INTO precios (\n      `precios`.`Lista`,\n      `precios`.`ProductoID`,\n      `precios`.`PrecioProd01`,\n      `precios`.`PrecioProd02`,\n      `precios`.`PrecioProd03`,\n      `precios`.`FechaModificacion`,\n      `precios`.`HoraModificacion`)(\n   SELECT    vListaNueva,\n      `precios`.`ProductoID`,\n      `precios`.`PrecioProd01`,\n      `precios`.`PrecioProd02`,\n      `precios`.`PrecioProd03`,\n      vFechaModificacion,\n      vHoraModificacion\n   FROM precios \n   WHERE `precios`.`Lista` = vListaVieja);\nEND</pre>\n| AFTER\n\n|-\n| Alta_LogPrecios\n| INSERT\n| logprecios\n| <pre>BEGIN\n   DECLARE vCategoriaID,vProveedorID,vPaso VARCHAR(5);\n   SET vCategoriaID = IF(ISNULL(`NEW`.`CategoriaID`),\' \',`NEW`.`CategoriaID`);\n   SET vProveedorID = IF(ISNULL(`NEW`.`ProveedorID`),\' \',`NEW`.`ProveedorID`);\n   SET `NEW`.`FechaModificacion` = CURDATE();\n   SET `NEW`.`HoraModificacion` = CURTIME();\n   SET `NEW`.`Lista` = (SELECT max(`listasprecios`.`Lista`) FROM `listasprecios`);\n   IF ISNULL(NEW.CategoriaID) THEN\n      IF ISNULL(NEW.ProveedorID) THEN\n         UPDATE `precios`,`productos`\n         SET    `precios`.`PrecioProd01` = `precios`.`PrecioProd01` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd02` = `precios`.`PrecioProd02` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd03` = `precios`.`PrecioProd03` * `NEW`.`Coeficiente`,\n            `precios`.`FechaModificacion` = CURDATE(),\n            `precios`.`HoraModificacion` = CURTIME()\n         WHERE    `precios`.`ProductoID` = `productos`.`ProductoID` AND\n               `precios`.`Lista` = `NEW`.`Lista`;\n         SET vPaso=\'A\';\n      ELSE\n         UPDATE `precios`,`productos`\n         SET    `precios`.`PrecioProd01` = `precios`.`PrecioProd01` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd02` = `precios`.`PrecioProd02` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd03` = `precios`.`PrecioProd03` * `NEW`.`Coeficiente`,\n            `precios`.`FechaModificacion` = CURDATE(),\n            `precios`.`HoraModificacion` = CURTIME()\n         WHERE   `precios`.`ProductoID` = `productos`.`ProductoID` AND\n               `precios`.`Lista` = `NEW`.`Lista` AND\n               `productos`.`ProveedorID` = NEW.ProveedorID;\n         SET vPaso=\'B\';\n      END IF;\n   ELSE\n      IF ISNULL(NEW.ProveedorID) THEN\n         UPDATE `precios`,`productos`\n         SET    `precios`.`PrecioProd01` = `precios`.`PrecioProd01` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd02` = `precios`.`PrecioProd02` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd03` = `precios`.`PrecioProd03` * `NEW`.`Coeficiente`,\n            `precios`.`FechaModificacion` = CURDATE(),\n            `precios`.`HoraModificacion` = CURTIME()\n         WHERE   `precios`.`ProductoID` = `productos`.`ProductoID` AND\n               `precios`.`Lista` = `NEW`.`Lista` AND\n               `productos`.`CategoriaID` = NEW.CategoriaID;\n         SET vPaso=\'C\';\n      ELSE\n         UPDATE `precios`,`productos`\n         SET    `precios`.`PrecioProd01` = `precios`.`PrecioProd01` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd02` = `precios`.`PrecioProd02` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd03` = `precios`.`PrecioProd03` * `NEW`.`Coeficiente`,\n            `precios`.`FechaModificacion` = CURDATE(),\n            `precios`.`HoraModificacion` = CURTIME()\n         WHERE   \n            `precios`.`ProductoID` = `productos`.`ProductoID` AND\n            `precios`.`Lista` = `NEW`.`Lista` AND\n            `productos`.`CategoriaID` = vCategoriaID AND\n            `productos`.`ProveedorID` = vProveedorID;\n         SET vPaso=\'D\';\n      END IF;\n   END IF;\n   SET `NEW`.`RowsMod` = ROW_COUNT();\nEND</pre>\n| BEFORE\n\n|-\n| Alta_Precio\n| INSERT\n| precios\n| <pre>\'BEGIN\n   SET    NEW.FechaModificacion = CURDATE(),\n      NEW.HoraModificacion = CURTIME();\n  END\'</pre>\n| BEFORE\n\n|-\n| Actualiza_Precio\n| UPDATE\n| precios\n| <pre>\'BEGIN\n   SET    NEW.FechaModificacion = CURDATE(),\n      NEW.HoraModificacion = CURTIME();\n  END\'</pre>\n| BEFORE\n\n|-\n| Alta_Productos\n| INSERT\n| productos\n| <pre>BEGIN\n    DECLARE vLista INT(5);\n    DECLARE vProductoID CHAR(8);\n    SET vLista = (SELECT Lista FROM listavigente);\n    SET vProductoID = NEW.ProductoID;\n    INSERT INTO precios (`precios`.`Lista`, \n                  `precios`.`ProductoID`, \n                  `precios`.`PrecioProd00`,\n                  `precios`.`PrecioProd01`, \n                  `precios`.`PrecioProd02`, \n                  `precios`.`PrecioProd03`)\n           VALUES(vLista, vProductoID, 0, 0, 0, 0);\n    INSERT INTO composicion (`composicion`.`ProductoID`,\n                     `composicion`.`ElementoID`,\n                     `composicion`.`ValorElemento`,\n                     `composicion`.`ElementoPM`)\n           VALUES(vProductoID,vProductoID,1, 1);\nEND</pre>\n| BEFORE\n\n|-\n| Baja_Productos\n| DELETE\n| productos\n| <pre>BEGIN\n    DECLARE vLista INT(5);\n    DECLARE vProductoID CHAR(8);\n    SET vLista = (SELECT Lista FROM listavigente);\n    SET vProductoID = OLD.ProductoID;\n    DELETE FROM precios WHERE ProductoID=OLD.ProductoID AND Lista=vLista;\n    DELETE FROM composicion WHERE ProductoID=OLD.ProductoID OR ElementoID=OLD.ProductoID;\nEND</pre>\n| AFTER\n\n|-\n| AltaTransaccion\n| INSERT\n| transacciones\n| <pre>BEGIN\n   SET   NEW.TransaccFecha = CURDATE(),\n      NEW.TransaccHora = CURTIME();\nEND</pre>\n| BEFORE\n\n|-\n| Baja_Presupuesto\n| DELETE\n| vidquoten1\n| <pre>BEGIN\n    DELETE FROM vidquoten2\n    WHERE vidquoten2.VidQuoteID=OLD.VidQuoteID;\n    DELETE FROM vidquoten3\n    WHERE vidquoten3.VidQuoteID=OLD.VidQuoteID;\n  END</pre>\n| AFTER\n\n|-\n| Baja_Item_Presupuesto\n| DELETE\n| vidquoten2\n| <pre>\'BEGIN\n    DELETE FROM vidquoten3\n    WHERE vidquoten3.VidQuoteID=OLD.VidQuoteID AND\n     vidquoten3.VidQuoteItem=OLD.VidQuoteItem;\n  END\'</pre>\n| AFTER\n\n|-\n| Baja_Elemento_Presupuesto\n| DELETE\n| vidquoten3\n| <pre>BEGIN\n   DELETE FROM vidquoten4\n    WHERE    vidquoten4.VidQuoteID=OLD.VidQuoteID AND\n         vidquoten4.VidQuoteItem=OLD.VidQuoteItem AND\n         vidquoten4.VidQuoteElementoID=OLD.VidQuoteElementoID;\nEND</pre>\n| AFTER\n|}\n</small>\n\n=== Reportes ===\n<small>\n</small>\n\n=== Procedimientos ===\n<small>\n</small>\n\n=== Instalacion .odb ===\n*Copiar el documento .odb\n*Cambiar el usuario de la base de datos\n*Cambiar la constante [[oCheckEstadoLicencia]] a True\n*Grabar documento .odb\n*Cambiar a nivel de Sistema Operativo a ReadOnly\n\n=== Documentación de Usuario ===\n[[WikiUserSpanex]]\n=== Soporte-Bitacora ===\n*[[:Category:TKT|SpanexSupport -> Pendientes]]\n*[[:Category:TKTOut|SpanexSupport -> Finalizados]]','utf-8'),(989,'== Developing ==\n*[[Developing]]\n*[[Pendientes]]\n*[[SpanexDraw]]\n*[[Spanex:Estructuras]]\n\n== Gestión Retail Aberturas (Spanex) ==\n*[[GRA: Pendientes]]\n*[[GRA: Relaciones]]\n*[[GRA: Releases]]\n*[[GRA: PreciosABT]]\n\n=== Gestión de Magnitudes ===\n\n==== Definiciones ====\n*Coeficiente: Por defecto, el valor es 1. Si necesita sumar al valor original, el coeficiente tiene que tener la parte entera al menos en 1. En el caso de magnitudes no estándar, los valores del precio del producto puede estar incluido en el mismo, por lo que hay que verificar en este caso los valores que se ingresen en la [[TABLA:precios]]\n*Offset: Por defecto, el valor es 0\n\n==== Atributos de Productos/Elementos ====\n* M2 = Metro Cuadrado\nPrecio Unitario = Precio determinado por tipo de cliente * (((((Ancho + OffsetAncho)*Coeficiente Ancho) * ((Alto + OffsetAlto)*Coeficiente Alto))/100000) * Coeficiente Elemento)\n\n* ML = Metro Lineal\n<Del>Precio Unitario = Precio determinado por tipo de cliente * (((((Ancho + OffsetAncho) * 2 * Coeficiente Ancho) + ((Alto + OffsetAlto) * 2 * Coeficiente Alto)) / 1000) * Coeficiente Elemento).</Del>\n\n* MG = Magnitud Galarza\nPrecio Unitario = Precio determinado por tipo de cliente * ((((Alto + OffsetAlto) * CoeficienteAlto) + (Ancho + OffsetAncho) * CoeficienteAncho)) / 1000) * Coeficiente Elemento)\n\n* UN = Unidad\nPrecio Unitario = Precio determinado por tipo de cliente * Coeficiente Elemento\n\n=== Triggers ===\n<small>\n{| class=\"wikitable\"\n| <center>\'\'\'Trigger\'\'\'</center>\n| <center>\'\'\'Event\'\'\'</center>\n| <center>\'\'\'Table\'\'\'</center>\n| <center>\'\'\'Statement\'\'\'</center>\n| <center>\'\'\'Timing\'\'\'</center>\n\n|-\n| Alta_ListasPrecios\n| INSERT\n| listasprecios\n| <pre>BEGIN\n   DECLARE vListaVieja,vListaNueva INT(5);\n   DECLARE vFechaModificacion DATE;\n   DECLARE vHoraModificacion TIME;\n   SET vListaNueva = (SELECT Lista FROM listavigente);\n   SET vListaVieja = (SELECT MAX(listasprecios.Lista) \n                      FROM listasprecios \n                      WHERE listasprecios.Lista <> NEW.Lista);\n   SET vFechaModificacion = CURDATE();\n   SET vHoraModificacion = CURTIME();\n   INSERT INTO precios (\n      `precios`.`Lista`,\n      `precios`.`ProductoID`,\n      `precios`.`PrecioProd01`,\n      `precios`.`PrecioProd02`,\n      `precios`.`PrecioProd03`,\n      `precios`.`FechaModificacion`,\n      `precios`.`HoraModificacion`)(\n   SELECT    vListaNueva,\n      `precios`.`ProductoID`,\n      `precios`.`PrecioProd01`,\n      `precios`.`PrecioProd02`,\n      `precios`.`PrecioProd03`,\n      vFechaModificacion,\n      vHoraModificacion\n   FROM precios \n   WHERE `precios`.`Lista` = vListaVieja);\nEND</pre>\n| AFTER\n\n|-\n| Alta_LogPrecios\n| INSERT\n| logprecios\n| <pre>BEGIN\n   DECLARE vCategoriaID,vProveedorID,vPaso VARCHAR(5);\n   SET vCategoriaID = IF(ISNULL(`NEW`.`CategoriaID`),\' \',`NEW`.`CategoriaID`);\n   SET vProveedorID = IF(ISNULL(`NEW`.`ProveedorID`),\' \',`NEW`.`ProveedorID`);\n   SET `NEW`.`FechaModificacion` = CURDATE();\n   SET `NEW`.`HoraModificacion` = CURTIME();\n   SET `NEW`.`Lista` = (SELECT max(`listasprecios`.`Lista`) FROM `listasprecios`);\n   IF ISNULL(NEW.CategoriaID) THEN\n      IF ISNULL(NEW.ProveedorID) THEN\n         UPDATE `precios`,`productos`\n         SET    `precios`.`PrecioProd01` = `precios`.`PrecioProd01` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd02` = `precios`.`PrecioProd02` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd03` = `precios`.`PrecioProd03` * `NEW`.`Coeficiente`,\n            `precios`.`FechaModificacion` = CURDATE(),\n            `precios`.`HoraModificacion` = CURTIME()\n         WHERE    `precios`.`ProductoID` = `productos`.`ProductoID` AND\n               `precios`.`Lista` = `NEW`.`Lista`;\n         SET vPaso=\'A\';\n      ELSE\n         UPDATE `precios`,`productos`\n         SET    `precios`.`PrecioProd01` = `precios`.`PrecioProd01` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd02` = `precios`.`PrecioProd02` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd03` = `precios`.`PrecioProd03` * `NEW`.`Coeficiente`,\n            `precios`.`FechaModificacion` = CURDATE(),\n            `precios`.`HoraModificacion` = CURTIME()\n         WHERE   `precios`.`ProductoID` = `productos`.`ProductoID` AND\n               `precios`.`Lista` = `NEW`.`Lista` AND\n               `productos`.`ProveedorID` = NEW.ProveedorID;\n         SET vPaso=\'B\';\n      END IF;\n   ELSE\n      IF ISNULL(NEW.ProveedorID) THEN\n         UPDATE `precios`,`productos`\n         SET    `precios`.`PrecioProd01` = `precios`.`PrecioProd01` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd02` = `precios`.`PrecioProd02` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd03` = `precios`.`PrecioProd03` * `NEW`.`Coeficiente`,\n            `precios`.`FechaModificacion` = CURDATE(),\n            `precios`.`HoraModificacion` = CURTIME()\n         WHERE   `precios`.`ProductoID` = `productos`.`ProductoID` AND\n               `precios`.`Lista` = `NEW`.`Lista` AND\n               `productos`.`CategoriaID` = NEW.CategoriaID;\n         SET vPaso=\'C\';\n      ELSE\n         UPDATE `precios`,`productos`\n         SET    `precios`.`PrecioProd01` = `precios`.`PrecioProd01` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd02` = `precios`.`PrecioProd02` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd03` = `precios`.`PrecioProd03` * `NEW`.`Coeficiente`,\n            `precios`.`FechaModificacion` = CURDATE(),\n            `precios`.`HoraModificacion` = CURTIME()\n         WHERE   \n            `precios`.`ProductoID` = `productos`.`ProductoID` AND\n            `precios`.`Lista` = `NEW`.`Lista` AND\n            `productos`.`CategoriaID` = vCategoriaID AND\n            `productos`.`ProveedorID` = vProveedorID;\n         SET vPaso=\'D\';\n      END IF;\n   END IF;\n   SET `NEW`.`RowsMod` = ROW_COUNT();\nEND</pre>\n| BEFORE\n\n|-\n| Alta_Precio\n| INSERT\n| precios\n| <pre>\'BEGIN\n   SET    NEW.FechaModificacion = CURDATE(),\n      NEW.HoraModificacion = CURTIME();\n  END\'</pre>\n| BEFORE\n\n|-\n| Actualiza_Precio\n| UPDATE\n| precios\n| <pre>\'BEGIN\n   SET    NEW.FechaModificacion = CURDATE(),\n      NEW.HoraModificacion = CURTIME();\n  END\'</pre>\n| BEFORE\n\n|-\n| Alta_Productos\n| INSERT\n| productos\n| <pre>BEGIN\n    DECLARE vLista INT(5);\n    DECLARE vProductoID CHAR(8);\n    SET vLista = (SELECT Lista FROM listavigente);\n    SET vProductoID = NEW.ProductoID;\n    INSERT INTO precios (`precios`.`Lista`, \n                  `precios`.`ProductoID`, \n                  `precios`.`PrecioProd00`,\n                  `precios`.`PrecioProd01`, \n                  `precios`.`PrecioProd02`, \n                  `precios`.`PrecioProd03`)\n           VALUES(vLista, vProductoID, 0, 0, 0, 0);\n    INSERT INTO composicion (`composicion`.`ProductoID`,\n                     `composicion`.`ElementoID`,\n                     `composicion`.`ValorElemento`,\n                     `composicion`.`ElementoPM`)\n           VALUES(vProductoID,vProductoID,1, 1);\nEND</pre>\n| BEFORE\n\n|-\n| Baja_Productos\n| DELETE\n| productos\n| <pre>BEGIN\n    DECLARE vLista INT(5);\n    DECLARE vProductoID CHAR(8);\n    SET vLista = (SELECT Lista FROM listavigente);\n    SET vProductoID = OLD.ProductoID;\n    DELETE FROM precios WHERE ProductoID=OLD.ProductoID AND Lista=vLista;\n    DELETE FROM composicion WHERE ProductoID=OLD.ProductoID OR ElementoID=OLD.ProductoID;\nEND</pre>\n| AFTER\n\n|-\n| AltaTransaccion\n| INSERT\n| transacciones\n| <pre>BEGIN\n   SET   NEW.TransaccFecha = CURDATE(),\n      NEW.TransaccHora = CURTIME();\nEND</pre>\n| BEFORE\n\n|-\n| Baja_Presupuesto\n| DELETE\n| vidquoten1\n| <pre>BEGIN\n    DELETE FROM vidquoten2\n    WHERE vidquoten2.VidQuoteID=OLD.VidQuoteID;\n    DELETE FROM vidquoten3\n    WHERE vidquoten3.VidQuoteID=OLD.VidQuoteID;\n  END</pre>\n| AFTER\n\n|-\n| Baja_Item_Presupuesto\n| DELETE\n| vidquoten2\n| <pre>\'BEGIN\n    DELETE FROM vidquoten3\n    WHERE vidquoten3.VidQuoteID=OLD.VidQuoteID AND\n     vidquoten3.VidQuoteItem=OLD.VidQuoteItem;\n  END\'</pre>\n| AFTER\n\n|-\n| Baja_Elemento_Presupuesto\n| DELETE\n| vidquoten3\n| <pre>BEGIN\n   DELETE FROM vidquoten4\n    WHERE    vidquoten4.VidQuoteID=OLD.VidQuoteID AND\n         vidquoten4.VidQuoteItem=OLD.VidQuoteItem AND\n         vidquoten4.VidQuoteElementoID=OLD.VidQuoteElementoID;\nEND</pre>\n| AFTER\n|}\n</small>\n\n=== Reportes ===\n<small>\n</small>\n\n=== Procedimientos ===\n<small>\n</small>\n\n=== Instalacion .odb ===\n*Copiar el documento .odb\n*Cambiar el usuario de la base de datos\n*Cambiar la constante [[oCheckEstadoLicencia]] a True\n*Grabar documento .odb\n*Cambiar a nivel de Sistema Operativo a ReadOnly\n\n=== Documentación de Usuario ===\n[[WikiUserSpanex]]\n=== Soporte-Bitacora ===\n*[[:Category:TKT|SpanexSupport -> Pendientes]]\n*[[:Category:TKTOut|SpanexSupport -> Finalizados]]','utf-8'),(990,'[[Category:TABLAS]]\n== Descripción ==\nContainer de información de personas físicas y jurídicas\n== Composición ==\nExiste una \"composición\" interna que esta dada a la fecha por las agrupaciones:\n*Clientes\n*Proveedores\n*Agentes Comerciales\n*Otros\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `contactos` (\n  `ContactoID` char(8) NOT NULL,\n  `RazonSocial` varchar(45) DEFAULT NULL,\n  `Direccion` varchar(45) DEFAULT NULL,\n  `Localidad` varchar(45) DEFAULT NULL,\n  `Provincia` varchar(45) DEFAULT NULL,\n  `Pais` varchar(20) DEFAULT NULL,\n  `CPostal` varchar(7) DEFAULT NULL,\n  `CUIT` varchar(13) DEFAULT NULL,\n  `Area` varchar(20) DEFAULT NULL,\n  `Telefono1` varchar(15) DEFAULT NULL,\n  `Telefono2` varchar(15) DEFAULT NULL,\n  `Telefono3` varchar(15) DEFAULT NULL,\n  `TelefonoM` varchar(15) DEFAULT NULL,\n  `TelefonoF` varchar(15) DEFAULT NULL,\n  `Correo1` varchar(40) DEFAULT NULL,\n  `Correo2` varchar(40) DEFAULT NULL,\n  `NContacto` varchar(40) DEFAULT NULL,\n  `AContacto` varchar(40) DEFAULT NULL,\n  `ListaPrecio` int(1) DEFAULT NULL,\n  `Notas` varchar(240) DEFAULT NULL,\n  `ClienteTag` int(1) DEFAULT NULL,\n  `ProveedorTag` int(1) DEFAULT NULL,\n  `AComercialTag` int(1) DEFAULT NULL,\n  `OtrosTag` int(1) DEFAULT NULL,\n  `ContactoIDAbrv` char(4) DEFAULT NULL,\n  `CoeficienteAC` decimal(5,2) DEFAULT \'1.00\',\n  `VigenciaDocs` int(2) DEFAULT \'15\',\n  `ImgContacto` blob,\n  PRIMARY KEY (`ContactoID`)\n) ENGINE=MyISAM DEFAULT CHARSET=latin1$$\n\n</pre>\n== Bitácora ==\n== Uso ==\nEstá asociada a esta tabla las [[VISTA:clientes]] y [[VISTA:proveedores]] y [[VISTA:acomerciales]]\n== URL ==','utf-8'),(991,'[[Category:TABLAS]]\n== Descripción ==\nContainer de información de personas físicas y jurídicas\n== Composición ==\nExiste una \"composición\" interna que esta dada a la fecha por las agrupaciones:\n*Clientes [[VISTA:clientes]]\n*Proveedores [[VISTA:proveedores]]\n*Agentes Comerciales [[VISTA:acomerciales]]\n*Otros\n\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `contactos` (\n  `ContactoID` char(8) NOT NULL,\n  `RazonSocial` varchar(45) DEFAULT NULL,\n  `Direccion` varchar(45) DEFAULT NULL,\n  `Localidad` varchar(45) DEFAULT NULL,\n  `Provincia` varchar(45) DEFAULT NULL,\n  `Pais` varchar(20) DEFAULT NULL,\n  `CPostal` varchar(7) DEFAULT NULL,\n  `CUIT` varchar(13) DEFAULT NULL,\n  `Area` varchar(20) DEFAULT NULL,\n  `Telefono1` varchar(15) DEFAULT NULL,\n  `Telefono2` varchar(15) DEFAULT NULL,\n  `Telefono3` varchar(15) DEFAULT NULL,\n  `TelefonoM` varchar(15) DEFAULT NULL,\n  `TelefonoF` varchar(15) DEFAULT NULL,\n  `Correo1` varchar(40) DEFAULT NULL,\n  `Correo2` varchar(40) DEFAULT NULL,\n  `NContacto` varchar(40) DEFAULT NULL,\n  `AContacto` varchar(40) DEFAULT NULL,\n  `ListaPrecio` int(1) DEFAULT NULL,\n  `Notas` varchar(240) DEFAULT NULL,\n  `ClienteTag` int(1) DEFAULT NULL,\n  `ProveedorTag` int(1) DEFAULT NULL,\n  `AComercialTag` int(1) DEFAULT NULL,\n  `OtrosTag` int(1) DEFAULT NULL,\n  `ContactoIDAbrv` char(4) DEFAULT NULL,\n  `CoeficienteAC` decimal(5,2) DEFAULT \'1.00\',\n  `VigenciaDocs` int(2) DEFAULT \'15\',\n  `ImgContacto` blob,\n  PRIMARY KEY (`ContactoID`)\n) ENGINE=MyISAM DEFAULT CHARSET=latin1$$\n\n</pre>\n== Bitácora ==\n== Uso ==\nEstá asociada a esta tabla las [[VISTA:clientes]] y [[VISTA:proveedores]] y [[VISTA:acomerciales]]\n== URL ==','utf-8'),(992,'=== Estructuras de Datos ===\n==== Estructuras Tipo ====\n[[Estructuras SQL]]\n\n==== Tablas ====\n* [[TABLA:catinsumos]]\n* [[TABLA:cmoneda]]\n* [[TABLA:contactos]]\n* [[TABLA:cpar]]\n* [[TABLA:elementos]]\n* [[TABLA:insumos]]\n* [[TABLA:listasprecios]]\n* [[TABLA:monedas]]\n* [[TABLA:preciosqry]]\n* [[TABLA:transacciones]]\n* [[TABLA:ttransac]]\n* [[TABLA:vidquoten4]]\n===== Template Layout General =====\n* [[TEMP:LayoutGeneral]]\n\n==== Vistas ====\n[http://sqlformat.appspot.com/ SQLFormatBeautify]\n*[[VISTA:listavigente]]\n*[[VISTA:precioscmpl]]\n*[[VISTA:viscabdetalla]]\n*[[VISTA:viscompcnt]]\n*[[VISTA:viscompodis]]\n*[[VISTA:viscomposimpl]]\n*[[VISTA:visdetaobs]]\n*[[VISTA:visdocpcob]]\n*[[VISTA:vistranscrm]]\n*[[VISTA:visintdetpre]]\n*[[VISTA:vislineabs]]\n*[[VISTA:visprdparam]]\n*[[VISTA:visprestot]]\n*[[VISTA:visprodadic]]\n*[[VISTA:visreppres]]\n*[[VISTA:visrprescmp]]\n*[[VISTA:vissubxitem]]\n*[[VISTA:chqactivos]]\n*[[VISTA:vischtdisp]]\n*[[VISTA:vischeckmod]]\n*[[VISTA:vistotprod]]\n\n<small>\n{| class=\"wikitable\"\n| <center>\'\'\'Nombre\'\'\'</center>\n| <center>\'\'\'Comando\'\'\'</center>\n| <center>\'\'\'Uso\'\'\'</center>\n| <center>\'\'\'Cross\'\'\'</center>\n\n|-\n| Viscabdetalla\n| FZG.Vista.viscabdetalla.sql\n| Vista utilizada para agregar la información de cual es la lista de precios a utilizar para el cliente del presupuesto en tiempo real.FORM: Presupuesto\n| Contactos, Vidquoten1\n\n|-\n| Proveedores\n| FZG.Vista.proveedores.sql\n| Visualización de Contactos “Proveedores”\n| Contactos\n\n|-\n| Clientes\n| FZG.Vista.clientes.sql\n| Visualización de Contactos “Clientes”\n| Contactos\n\n|-\n| Visreppres\n| FZG.Vista.visreppres.sql\n| Vista Reporte Presupuesto Individual. Para generar una línea completa con la información de detalle de los presupuestos con las combinaciones de información a incluir en el mismo. No contiene la información estática del cliente.\n| Vislineabs, Visdetaobs\n\n|-\n| Viscompodis\n| FZG.Vista.viscompodis.sql\n| Vista de productos (DISTINCT productos) dentro de la tabla de composición ordenada por alfabéticamente.\n| \n\n|-\n| Viscoposimpl\n| FZG.Vista.viscomposimpl.sql\n| Vista de los elementos de composicion con información para query\n| Productos, Composición\n\n|-\n| Visdetaobs\n| FZG.Vista.visdetaobs.sql\n| Une todas las Observaciones de cada item para los casos que se encuentren señaladas con la Descripción del Producto-Item\n| Productos, Vidquoten3\n\n|-\n| Visintdetpre\n| FZG.Vista.visintdetpre.sql\n| Reducción de vista Visprodadic aplicable al cálculo de presupuesto con los datos en tiempo real del presupuesto activo en formulario y calculando el precio correcto de acuerdo al cliente y el cálculo del valor del elemento de acuerdo al los valores de Alto y Ancho del Vano en tiempo real\n| Visprodadic, Vidquoten2\n\n|-\n| Vislineabs\n| [[FZG.Vista.vislineabs.sql]]\n| Define linea básica para reporte teniendo como base Vidquoten2, agregando la información de la cabecera + datos de descrpción de producto + el subtotal por Producto-Item\n| Vidquoten1, Vidquoten2, Productos, Vissubxitem\n\n|-\n| Visprodadic\n| FZG.Vista.visproadic.sql\n| Vista de tabla de componentes con la información de cada elemento como producto y de los precios vigentes.\n| Productos, Composicion, PreciosVigentes\n\n|-\n| Vissubxitem\n| FZG.Vista.vissubxitem.sql\n| Subtotal por Item de Presupuesto en tiempo real\n| Vidquoten3\n\n|-\n| Listavigente\n| \n| Selecciona solo el primer registro ordenado en forma descendente de la tabla de listasprecios\n| Listasprecios\n\n|-\n| Preciosvigentes\n| FZG.Vista.preciosvigentes.sql\n| Es la selección de la tabla de precios referenciando el mayor valor dentro de la tabla de listasprecios\n| Listasprecios, Precios\n\n|-\n| Preciosvigact\n| FZG.Vista.preciosvigact.sql\n| Vista de lista de precios vigentes con datos de productos para actualización columnar.FORM: Actualización por tipo de lista\n| Preciosvigentes, Productos\n\n|-\n| Precioscmpl\n| [[FZG.Vista.precioscmpl.sql]]\n| Vista de lista de precios completa con datos de productos. [[FORM: Precios Tabular x Proceso]]\n| Precios, Productos\n\n|-\n| Visprestot\n| FZG.Vista.visprestot.sql\n| Vista de Presupuestos Totalizados por Cliente\n| Visreppres\n\n|-\n| Viscompcnt\n| [[FZG.Vista.viscompcnt.sql]]\n| Vista resumen de Componentes completa con indicadores de estado de composición\n| composicion, producto\n|}</small>\n\n=== Objetos ===\n==== Formularios ====\n*[[FORM:Presupuesto]]\n*[[FORM:CopiaComposicion]]\n*[[FORM:Pagos]]\n*[[FORM:Cobranzas]]\n\n==== Reportes ====\n*[[RPRT:Presupuestos]]\n*[[RPRT:PresupuestosDirecto]]\n*[[RPRT:IndividualCRM]]\n\n=== Procedimientos ===\n*[[PROC:ActualizaItemPresupuesto]]\n*[[PROC:ActualizaPreciosPresupuesto]]\n*[[PROC:ActualizaPreciosTabular]]\n*[[PROC:AgregaProductoCompo]]\n*[[PROC:AltaItemPresupuesto]]\n*[[PROC:AltaItemPresupuestoTmp]]\n*[[PROC:CalculaPrecioBase]]\n*[[PROC:CalculoMedidaReal]]\n*[[PROC:CalculoPrecio]]\n*[[PROC:CopiaPresupuesto]]\n*[[PROC:DuplicaProductoCompo]]\n*[[PROC:GrabaItemPresupuestoTmp]]\n*[[PROC:ResetEdicionItemTmp]]\n\n=== Bibliotecas ===\n*[[LIBR:FazzGlassMcr]]\n*[[LIBR:SpanexB]]\n*[[LIBR:SpanexC]]','utf-8'),(993,'===20121201===\n====Alta de esquema Módulos====\n*Alta de [[TABLA:moduloscab]]\n*Alta de [[TABLA:modulosdet]]\n*Alta de [[TABLA:modulossbs]]\n*Alta de [[TABLA:bocetoscab]]\n*Alta de [[TABLA:bocetosdet]]\n*Alta de [[TABLA:bocetossbs]]\n====Baja de Tablas y Vistas sin uso====\n<pre>\ndrop table `fzggestion`.`logprecios`;\ndrop table `fzggestion`.`precios_old`;\ndrop table `fzggestion`.`predefcab`;\ndrop table `fzggestion`.`predefdet`;\ndrop view `fzggestion`.`preciosvigact`;\n</pre>\n====Actualización de [[TABLA:Productos]]====\n<pre>\nALTER TABLE `fzggestion`.`productos` \nADD COLUMN `ProductoGen` CHAR(8) NULL  FIRST ,\nADD COLUMN `ProductoDflt` INT(1) NULL  AFTER `ProductoGen` ,\nADD COLUMN `MagnitudIN` CHAR(2) NULL  AFTER `Magnitud` , \nADD COLUMN `MagCmpX` INT(5) NULL  AFTER `InsumoIMG` , \nADD COLUMN `MagCmpY` INT(5) NULL  AFTER `MagCmpX` , \nADD COLUMN `MagCmpZ` INT(5) NULL  AFTER `MagCmpY` , \nADD COLUMN `MagCmpW` INT(5) NULL  AFTER `MagCmpZ` \nADD COLUMN `Presentacion` VARCHAR(45) NULL  AFTER `MagCmpW` ,\nADD COLUMN `ProductoProy` INT(1) NULL DEFAULT 0  AFTER `Presentacion` ;\nUPDATE productos\nSET \n    ProductoGen = ProductoID,\n    ProductoDflt= 1\n</pre>\n====Actualización de [[RPRT:Presupuestos]]====\n\n===20121029===\n====Actualización de [[TABLA:vidquoten1]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten1` \nCHANGE COLUMN `VidQuoteCliente` `VidQuoteCliente` CHAR(8) NOT NULL  ,\nCHANGE COLUMN `VidQuoteACom` `VidQuoteACom` CHAR(4) NOT NULL  ;\n</pre>\n===20121005===\n====Actualización de [[PROC:AltaItemPresupuestoTmp]]====\n\n===20120831===\n====Agregar Nombre de Usuario [[TABLA:precios]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`precios` \n	ADD COLUMN `UserModificacion` VARCHAR(20) NULL AFTER `HoraModificacion` ;\nALTER TABLE `fzggestion`.`precios` \n	CHANGE COLUMN `FechaModificacion` `FechaEvento` DATE NULL DEFAULT NULL,\n	CHANGE COLUMN `HoraModificacion` `HoraEvento` TIME NULL DEFAULT NULL,\n	CHANGE COLUMN `UserModificacion` `UserEvento` VARCHAR(20) NULL DEFAULT NULL;\n</pre>\n*20120926.1915 [[File:checked.png|20px]]\n\n====Modificación de Triggers [[TABLA:precios]] [[File:checked.png|20px]]====\n<pre>\nDELIMITER $$\n\nUSE `fzggestion`$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Alta_Precio`\nBEFORE INSERT ON `fzggestion`.`precios`\nFOR EACH ROW\nBEGIN\n	SET\n	NEW.FechaEvento = CURDATE(),\n	NEW.HoraEvento = CURTIME(),\n	NEW.UserEvento	= USER();\nEND$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Actualiza_Precio`\nBEFORE UPDATE ON `fzggestion`.`precios`\nFOR EACH ROW\nBEGIN\n	SET\n	NEW.FechaEvento = CURDATE(),\n	NEW.HoraEvento = CURTIME(),\n	NEW.UserEvento	= USER();\nEND$$\n</pre>\n*20120926.1924 [[File:checked.png|20px]]\n\n====Modificacion de Estructura [[TABLA:contactos]] [[File:checked.png|20px]]====\n<pre>\nUPDATE contactos SET ClienteTag=1 WHERE ClienteTag=\"x\";\nUPDATE contactos SET ProveedorTag=1 WHERE ProveedorTag=\"x\";\nUPDATE contactos SET AComercialTag=1 WHERE AComercialTag=\"x\";\nUPDATE contactos SET OtrosTag=1 WHERE OtrosTag=\"x\";\nALTER TABLE `fzggestion`.`contactos` \n	CHANGE COLUMN `ClienteTag` `ClienteTag` INT(1) NULL DEFAULT NULL,\n	CHANGE COLUMN `ProveedorTag` `ProveedorTag` INT(1) NULL DEFAULT NULL, \n	CHANGE COLUMN `AComercialTag` `AComercialTag` INT(1) NULL DEFAULT NULL,\n	CHANGE COLUMN `OtrosTag` `OtrosTag` INT(1) NULL DEFAULT NULL;\n</pre>\n*20120926.1927 [[File:checked.png|20px]]\nVerificar los casos que no coincidan con los prefijos establecidos: 0->Cliente, 3->Proveedor, 5->Otros, 8->Agentes Comerciales\n*20120926.1928 No se verificó [[File:warning-icon-hi.png|20px]]\n\n====Agrega Atributo [[TABLA:contactos]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`contactos` ADD COLUMN `ImgContacto` BLOB NULL  AFTER `VigenciaDocs` ;\n</pre>\n*20120926.1939 [[File:checked.png|20px]]\n====Cambio de Condición para [[VISTA:clientes]] [[File:checked.png|20px]]====\n*20120926.1942 [[File:checked.png|20px]]\n\n====Alta de Tabla [[TABLA:telemecomp]] [[File:checked.png|20px]]====\n*20120926.1957\n** Alta generada [[File:checked.png|20px]]\n** Falta ingresar los datos [[File:warning-icon-hi.png|20px]]\n\n====Actualizar Routine [[PROC:DuplicaProductoCompo]] en DB [[File:checked.png|20px]]====\n*20120926.2007 [[File:checked.png|20px]]\n\n====Agregar atributo ComposicID a [[TABLA:vidquoten3]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten3` \nCHANGE COLUMN `VidQuoteElementoID` `VidQuoteElementoID` CHAR(8) NOT NULL AFTER `VidQuoteProdID`,\nCHANGE COLUMN `VidQuoteLPre` `VidQuoteLPre` INT(1) NULL DEFAULT NULL AFTER `VidQuoteElementoID;\n\nALTER TABLE `fzggestion`.`vidquoten3`\nADD COLUMN `VidQuoteComposicID` INT NOT NULL AFTER `VidQuoteElementoID` ,\nDROP PRIMARY KEY , ADD PRIMARY KEY (`VidQuoteID`,\n                                    `VidQuoteItem`,\n                                    `VidQuoteProdID`,\n                                    `VidQuoteElementoID`,\n                                    `VidQuoteComposicID`) ;\n</pre>\n*20120927.2014 [[File:checked.png|20px]]\n\n====Agregar atributo ComposicID a [[TABLA:vidquoten3tmp]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten3tmp` \nCHANGE COLUMN `VidQuoteElementoID` `VidQuoteElementoID` CHAR(8) NOT NULL AFTER `VidQuoteProdID`,\nCHANGE COLUMN `VidQuoteProdCantidad` `VidQuoteProdCantidad` INT(5) NULL DEFAULT NULL  AFTER `VidQuoteElementoID`;\n\nALTER TABLE `fzggestion`.`vidquoten3tmp`\nADD COLUMN `VidQuoteComposicID` INT NOT NULL AFTER `VidQuoteElementoID` ,\nDROP PRIMARY KEY , ADD PRIMARY KEY (`VidQuoteID`,\n                                    `VidQuoteItem`,\n                                    `VidQuoteProdID`,\n                                    `VidQuoteElementoID`,\n                                    `VidQuoteComposicID`) ;\n</pre>\n*20120926.2015 [[File:checked.png|20px]]\n\n====Agregar atributo ElementoPM a [[TABLA:vidquoten3tmp]][[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten3tmp` ADD COLUMN `VidQuoteElementoPM` INT(1) NULL  AFTER `VidQuoteComposicID` ;\n</pre>\n*[[20121004.1617]][[File:checked.png|20px]]\n\n====Agregar atributo ElementoPM a [[TABLA:vidquoten3]][[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten3` ADD COLUMN `VidQuoteElementoPM` INT(1) NULL  AFTER `VidQuoteComposicID` ;\n</pre>\n*20121004.1621 [[File:checked.png|20px]]\n\n====Reemplazar el código de [[PROC:GrabaItemPresupuestoTmp]][[File:checked.png|20px]] y [[PROC:AltaItemPresupuestoTmp]][[File:checked.png|20px]]====\nIncluye las modificaciones de inclusión de ElementoPM\n*20121004.1625 [[PROC:GrabaItemPresupuestoTmp]][[File:checked.png|20px]]\n*20121004.1630 [[PROC:GrabaItemPresupuestoTmp]][[File:checked.png|20px]]\n\n====Crea [[PROC:ResetEdicionItemTmp]][[File:checked.png|20px]]====\n*20121004.1655 [[File:checked.png|20px]]\n\n====Cambiar [[VISTA:acomerciales]][[File:checked.png|20px]]====\nRefleja el cambio de la estructura de la [[TABLA:contactos]]\n*20121004.1657 [[File:checked.png|20px]]\n\n====Agregar en [[TABLA:contactos]][[File:checked.png|20px]]====\nAgregar atributo que responde al imagen asociada al contacto.\n<pre>\nALTER TABLE `fzggestion`.`contactos` ADD COLUMN `ImgContacto` BLOB NULL  AFTER `VigenciaDocs` ;\n</pre>\n*20121004.1659 [[File:checked.png|20px]]\n====Alta del [[TRIG:Actualiza_Item_Presupuesto]][[File:checked.png|20px]]====\n*20121004.1718 [[File:checked.png|20px]]\n====Renovación del [[PROC:ActualizaPreciosPresupuesto]][[File:checked.png|20px]]====\n*20121004.1727 [[File:checked.png|20px]]\n====Renovación del [[PROC:ActualizaItemPresupuesto]][[File:checked.png|20px]]====\n*20121004.1727 [[File:checked.png|20px]]\n====Renovación del [[PROC:CopiaPresupuesto]][[File:checked.png|20px]]====\n*20121004.1727 [[File:checked.png|20px]]\n====Cambios estructura del [[PROC:GrabaItemPresupuestoTmp]][[File:checked.png|20px]]====\n*20121004.1625 [[File:checked.png|20px]]\n====Cambios estructura del [[TABLA:composicion]][[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`composicion` ADD COLUMN `ComposicID` INT NOT NULL AUTO_INCREMENT  AFTER `ElementoID` \n, DROP PRIMARY KEY \n, ADD PRIMARY KEY (`ProductoID`, `ElementoID`, `ComposicID`) ;\n</pre>\n*20121004.1857 [[File:checked.png|20px]]\n====Alta del [[PROC:AltaItemPresupuesto]][[File:checked.png|20px]]====\n*20121004.1937 [[File:checked.png|20px]]\n===20120702===\n====Agregado de atributo de Medicion en Obra [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten1` \n	ADD COLUMN `VidQuoteMedCheck` CHAR(1) NULL DEFAULT 0 AFTER `VidQuoteACom`;\n</pre>\n*20120926.1616 [[File:checked.png|20px]]\n====Actualización de dato de Vigencia de Documentos [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`contactos`\n	CHANGE COLUMN `CoeficienteAC` `CoeficienteAC` DECIMAL(5,2) NULL DEFAULT 1,\n	CHANGE COLUMN `VigenciaDocs` `VigenciaDocs` INT(2) NULL DEFAULT 15;\nUPDATE `fzggestion`.`contactos`\n	SET `VigenciaDocs` = 15\n	WHERE `VigenciaDocs`= 0 OR ISNULL(`VigenciaDocs`);\n</pre>\n*20120926.1634 [[File:checked.png|20px]]\n====Actualización de datos para el control de Cobranzas [[File:checked.png|20px]]====\nALTER TABLE `fzggestion`.`accreceiv` \n	ADD COLUMN `ClienteAR` CHAR(8) NULL DEFAULT NULL  AFTER `ImporteAR`,\n	DROP PRIMARY KEY,\n	ADD PRIMARY KEY (`TTransaccion`, `NTransaccion`);\n*20120926.1651 [[File:checked.png|20px]]\n\n====Crear [[VISTA:vistranscrm]] [[File:checked.png|20px]]====\n*2012092616.55 [[File:checked.png|20px]]\n\n====Crear [[TABLA:clientescrmqry]] [[File:checked.png|20px]] ====\n*20120926 [[File:checked.png|20px]]\n\n====Crear [[VISTA:chqactivos]] [[File:checked.png|20px]]====\n*20120926.1758 [[File:checked.png|20px]]\n\n====Crear [[TABLA:accpayab]] [[File:checked.png|20px]]====\n<pre>\ndelimiter $$\nCREATE TABLE `accpayab` (\n  `TTransaccion` char(2) NOT NULL DEFAULT \'AP\',\n  `NTransaccion` int(11) NOT NULL AUTO_INCREMENT,\n  `FechaAutAP` date DEFAULT NULL,\n  `FechaAP` date DEFAULT NULL,\n  `FormaAP` char(3) DEFAULT NULL,\n  `ImporteAP` decimal(10,2) DEFAULT NULL,\n  `ProveedAP` char(8) DEFAULT NULL,\n  `TDocumentoOrg` char(2) DEFAULT NULL,\n  `NDocumentoOrg` int(11) DEFAULT NULL,\n  `DDocumentoOrg` varchar(100) DEFAULT NULL,\n  PRIMARY KEY (`TTransaccion`,`NTransaccion`)\n) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin1$$\n\nCREATE TRIGGER `fzggestion`.`Alta_Pago`\nBEFORE INSERT ON `fzggestion`.`accpayab`\nFOR EACH ROW\nBEGIN\n	SET NEW.FechaAutAP = CURDATE();\nEND\n$$\n</pre>\n*20120926.1804 [[File:checked.png|20px]]\n\n====Modifica [[TABLA:fPago]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`fpago`\n	ADD COLUMN `FPagoAR` CHAR(1) NULL AFTER `FPagoDSC`,\n	ADD COLUMN `FPagoAP` CHAR(1) NULL AFTER `FPagoAR`;\n</pre>\n*20120926.1808 [[File:checked.png|20px]]\n\n====Rediseña [[TABLA:tdocumento]]====\n\n====Crea [[VISTA:vischtdisp]] [[File:checked.png|20px]]====\n*20120926.1835 [[File:checked.png|20px]]\n\n====Crea [[VISTA:vistotprod]] [[File:checked.png|20px]]====\n*20120926.1836 [[File:checked.png|20px]]\n\n====Crea [[TABLA:vidquoten3tmp]] [[File:checked.png|20px]]====\n*20120926.1902 [[File:checked.png|20px]]\n\n====Reemplazar todos los ElementoPM en Componentes por los nuevos valores [[File:checked.png|20px]]====\n<pre>\nUPDATE fzggestion.composicion SET ElementoPM=2 WHERE ElementoPM=0;\nUPDATE fzggestion.composicion SET ElementoPM=0 WHERE ElementoPM=1;\n</pre>\n*20120926.1908 [[File:checked.png|20px]]','utf-8'),(994,'===20121201===\n====Alta de esquema Módulos====\n*Alta de [[TABLA:moduloscab]]\n*Alta de [[TABLA:modulosdet]]\n*Alta de [[TABLA:modulossbs]]\n*Alta de [[TABLA:bocetoscab]]\n*Alta de [[TABLA:bocetosdet]]\n*Alta de [[TABLA:bocetossbs]]\n====Baja de Tablas y Vistas sin uso====\n<pre>\ndrop table `fzggestion`.`logprecios`;\ndrop table `fzggestion`.`precios_old`;\ndrop table `fzggestion`.`predefcab`;\ndrop table `fzggestion`.`predefdet`;\ndrop view `fzggestion`.`preciosvigact`;\n</pre>\n====Actualización de [[TABLA:productos]]====\n<pre>\nALTER TABLE `fzggestion`.`productos` \nADD COLUMN `ProductoGen` CHAR(8) NULL  FIRST ,\nADD COLUMN `ProductoDflt` INT(1) NULL  AFTER `ProductoGen` ,\nADD COLUMN `MagnitudIN` CHAR(2) NULL  AFTER `Magnitud` , \nADD COLUMN `MagCmpX` INT(5) NULL  AFTER `InsumoIMG` , \nADD COLUMN `MagCmpY` INT(5) NULL  AFTER `MagCmpX` , \nADD COLUMN `MagCmpZ` INT(5) NULL  AFTER `MagCmpY` , \nADD COLUMN `MagCmpW` INT(5) NULL  AFTER `MagCmpZ` \nADD COLUMN `Presentacion` VARCHAR(45) NULL  AFTER `MagCmpW` ,\nADD COLUMN `ProductoProy` INT(1) NULL DEFAULT 0  AFTER `Presentacion` ;\nUPDATE productos\nSET \n    ProductoGen = ProductoID,\n    ProductoDflt= 1\n</pre>\n\n====Actualización de [[RPRT:Presupuestos]]====\n\n===20121029===\n====Actualización de [[TABLA:vidquoten1]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten1` \nCHANGE COLUMN `VidQuoteCliente` `VidQuoteCliente` CHAR(8) NOT NULL  ,\nCHANGE COLUMN `VidQuoteACom` `VidQuoteACom` CHAR(4) NOT NULL  ;\n</pre>\n===20121005===\n====Actualización de [[PROC:AltaItemPresupuestoTmp]]====\n\n===20120831===\n====Agregar Nombre de Usuario [[TABLA:precios]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`precios` \n	ADD COLUMN `UserModificacion` VARCHAR(20) NULL AFTER `HoraModificacion` ;\nALTER TABLE `fzggestion`.`precios` \n	CHANGE COLUMN `FechaModificacion` `FechaEvento` DATE NULL DEFAULT NULL,\n	CHANGE COLUMN `HoraModificacion` `HoraEvento` TIME NULL DEFAULT NULL,\n	CHANGE COLUMN `UserModificacion` `UserEvento` VARCHAR(20) NULL DEFAULT NULL;\n</pre>\n*20120926.1915 [[File:checked.png|20px]]\n\n====Modificación de Triggers [[TABLA:precios]] [[File:checked.png|20px]]====\n<pre>\nDELIMITER $$\n\nUSE `fzggestion`$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Alta_Precio`\nBEFORE INSERT ON `fzggestion`.`precios`\nFOR EACH ROW\nBEGIN\n	SET\n	NEW.FechaEvento = CURDATE(),\n	NEW.HoraEvento = CURTIME(),\n	NEW.UserEvento	= USER();\nEND$$\n\nCREATE\nDEFINER=`sas_admin`@`%`\nTRIGGER `fzggestion`.`Actualiza_Precio`\nBEFORE UPDATE ON `fzggestion`.`precios`\nFOR EACH ROW\nBEGIN\n	SET\n	NEW.FechaEvento = CURDATE(),\n	NEW.HoraEvento = CURTIME(),\n	NEW.UserEvento	= USER();\nEND$$\n</pre>\n*20120926.1924 [[File:checked.png|20px]]\n\n====Modificacion de Estructura [[TABLA:contactos]] [[File:checked.png|20px]]====\n<pre>\nUPDATE contactos SET ClienteTag=1 WHERE ClienteTag=\"x\";\nUPDATE contactos SET ProveedorTag=1 WHERE ProveedorTag=\"x\";\nUPDATE contactos SET AComercialTag=1 WHERE AComercialTag=\"x\";\nUPDATE contactos SET OtrosTag=1 WHERE OtrosTag=\"x\";\nALTER TABLE `fzggestion`.`contactos` \n	CHANGE COLUMN `ClienteTag` `ClienteTag` INT(1) NULL DEFAULT NULL,\n	CHANGE COLUMN `ProveedorTag` `ProveedorTag` INT(1) NULL DEFAULT NULL, \n	CHANGE COLUMN `AComercialTag` `AComercialTag` INT(1) NULL DEFAULT NULL,\n	CHANGE COLUMN `OtrosTag` `OtrosTag` INT(1) NULL DEFAULT NULL;\n</pre>\n*20120926.1927 [[File:checked.png|20px]]\nVerificar los casos que no coincidan con los prefijos establecidos: 0->Cliente, 3->Proveedor, 5->Otros, 8->Agentes Comerciales\n*20120926.1928 No se verificó [[File:warning-icon-hi.png|20px]]\n\n====Agrega Atributo [[TABLA:contactos]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`contactos` ADD COLUMN `ImgContacto` BLOB NULL  AFTER `VigenciaDocs` ;\n</pre>\n*20120926.1939 [[File:checked.png|20px]]\n====Cambio de Condición para [[VISTA:clientes]] [[File:checked.png|20px]]====\n*20120926.1942 [[File:checked.png|20px]]\n\n====Alta de Tabla [[TABLA:telemecomp]] [[File:checked.png|20px]]====\n*20120926.1957\n** Alta generada [[File:checked.png|20px]]\n** Falta ingresar los datos [[File:warning-icon-hi.png|20px]]\n\n====Actualizar Routine [[PROC:DuplicaProductoCompo]] en DB [[File:checked.png|20px]]====\n*20120926.2007 [[File:checked.png|20px]]\n\n====Agregar atributo ComposicID a [[TABLA:vidquoten3]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten3` \nCHANGE COLUMN `VidQuoteElementoID` `VidQuoteElementoID` CHAR(8) NOT NULL AFTER `VidQuoteProdID`,\nCHANGE COLUMN `VidQuoteLPre` `VidQuoteLPre` INT(1) NULL DEFAULT NULL AFTER `VidQuoteElementoID;\n\nALTER TABLE `fzggestion`.`vidquoten3`\nADD COLUMN `VidQuoteComposicID` INT NOT NULL AFTER `VidQuoteElementoID` ,\nDROP PRIMARY KEY , ADD PRIMARY KEY (`VidQuoteID`,\n                                    `VidQuoteItem`,\n                                    `VidQuoteProdID`,\n                                    `VidQuoteElementoID`,\n                                    `VidQuoteComposicID`) ;\n</pre>\n*20120927.2014 [[File:checked.png|20px]]\n\n====Agregar atributo ComposicID a [[TABLA:vidquoten3tmp]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten3tmp` \nCHANGE COLUMN `VidQuoteElementoID` `VidQuoteElementoID` CHAR(8) NOT NULL AFTER `VidQuoteProdID`,\nCHANGE COLUMN `VidQuoteProdCantidad` `VidQuoteProdCantidad` INT(5) NULL DEFAULT NULL  AFTER `VidQuoteElementoID`;\n\nALTER TABLE `fzggestion`.`vidquoten3tmp`\nADD COLUMN `VidQuoteComposicID` INT NOT NULL AFTER `VidQuoteElementoID` ,\nDROP PRIMARY KEY , ADD PRIMARY KEY (`VidQuoteID`,\n                                    `VidQuoteItem`,\n                                    `VidQuoteProdID`,\n                                    `VidQuoteElementoID`,\n                                    `VidQuoteComposicID`) ;\n</pre>\n*20120926.2015 [[File:checked.png|20px]]\n\n====Agregar atributo ElementoPM a [[TABLA:vidquoten3tmp]][[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten3tmp` ADD COLUMN `VidQuoteElementoPM` INT(1) NULL  AFTER `VidQuoteComposicID` ;\n</pre>\n*[[20121004.1617]][[File:checked.png|20px]]\n\n====Agregar atributo ElementoPM a [[TABLA:vidquoten3]][[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten3` ADD COLUMN `VidQuoteElementoPM` INT(1) NULL  AFTER `VidQuoteComposicID` ;\n</pre>\n*20121004.1621 [[File:checked.png|20px]]\n\n====Reemplazar el código de [[PROC:GrabaItemPresupuestoTmp]][[File:checked.png|20px]] y [[PROC:AltaItemPresupuestoTmp]][[File:checked.png|20px]]====\nIncluye las modificaciones de inclusión de ElementoPM\n*20121004.1625 [[PROC:GrabaItemPresupuestoTmp]][[File:checked.png|20px]]\n*20121004.1630 [[PROC:GrabaItemPresupuestoTmp]][[File:checked.png|20px]]\n\n====Crea [[PROC:ResetEdicionItemTmp]][[File:checked.png|20px]]====\n*20121004.1655 [[File:checked.png|20px]]\n\n====Cambiar [[VISTA:acomerciales]][[File:checked.png|20px]]====\nRefleja el cambio de la estructura de la [[TABLA:contactos]]\n*20121004.1657 [[File:checked.png|20px]]\n\n====Agregar en [[TABLA:contactos]][[File:checked.png|20px]]====\nAgregar atributo que responde al imagen asociada al contacto.\n<pre>\nALTER TABLE `fzggestion`.`contactos` ADD COLUMN `ImgContacto` BLOB NULL  AFTER `VigenciaDocs` ;\n</pre>\n*20121004.1659 [[File:checked.png|20px]]\n====Alta del [[TRIG:Actualiza_Item_Presupuesto]][[File:checked.png|20px]]====\n*20121004.1718 [[File:checked.png|20px]]\n====Renovación del [[PROC:ActualizaPreciosPresupuesto]][[File:checked.png|20px]]====\n*20121004.1727 [[File:checked.png|20px]]\n====Renovación del [[PROC:ActualizaItemPresupuesto]][[File:checked.png|20px]]====\n*20121004.1727 [[File:checked.png|20px]]\n====Renovación del [[PROC:CopiaPresupuesto]][[File:checked.png|20px]]====\n*20121004.1727 [[File:checked.png|20px]]\n====Cambios estructura del [[PROC:GrabaItemPresupuestoTmp]][[File:checked.png|20px]]====\n*20121004.1625 [[File:checked.png|20px]]\n====Cambios estructura del [[TABLA:composicion]][[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`composicion` ADD COLUMN `ComposicID` INT NOT NULL AUTO_INCREMENT  AFTER `ElementoID` \n, DROP PRIMARY KEY \n, ADD PRIMARY KEY (`ProductoID`, `ElementoID`, `ComposicID`) ;\n</pre>\n*20121004.1857 [[File:checked.png|20px]]\n====Alta del [[PROC:AltaItemPresupuesto]][[File:checked.png|20px]]====\n*20121004.1937 [[File:checked.png|20px]]\n===20120702===\n====Agregado de atributo de Medicion en Obra [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`vidquoten1` \n	ADD COLUMN `VidQuoteMedCheck` CHAR(1) NULL DEFAULT 0 AFTER `VidQuoteACom`;\n</pre>\n*20120926.1616 [[File:checked.png|20px]]\n====Actualización de dato de Vigencia de Documentos [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`contactos`\n	CHANGE COLUMN `CoeficienteAC` `CoeficienteAC` DECIMAL(5,2) NULL DEFAULT 1,\n	CHANGE COLUMN `VigenciaDocs` `VigenciaDocs` INT(2) NULL DEFAULT 15;\nUPDATE `fzggestion`.`contactos`\n	SET `VigenciaDocs` = 15\n	WHERE `VigenciaDocs`= 0 OR ISNULL(`VigenciaDocs`);\n</pre>\n*20120926.1634 [[File:checked.png|20px]]\n====Actualización de datos para el control de Cobranzas [[File:checked.png|20px]]====\nALTER TABLE `fzggestion`.`accreceiv` \n	ADD COLUMN `ClienteAR` CHAR(8) NULL DEFAULT NULL  AFTER `ImporteAR`,\n	DROP PRIMARY KEY,\n	ADD PRIMARY KEY (`TTransaccion`, `NTransaccion`);\n*20120926.1651 [[File:checked.png|20px]]\n\n====Crear [[VISTA:vistranscrm]] [[File:checked.png|20px]]====\n*2012092616.55 [[File:checked.png|20px]]\n\n====Crear [[TABLA:clientescrmqry]] [[File:checked.png|20px]] ====\n*20120926 [[File:checked.png|20px]]\n\n====Crear [[VISTA:chqactivos]] [[File:checked.png|20px]]====\n*20120926.1758 [[File:checked.png|20px]]\n\n====Crear [[TABLA:accpayab]] [[File:checked.png|20px]]====\n<pre>\ndelimiter $$\nCREATE TABLE `accpayab` (\n  `TTransaccion` char(2) NOT NULL DEFAULT \'AP\',\n  `NTransaccion` int(11) NOT NULL AUTO_INCREMENT,\n  `FechaAutAP` date DEFAULT NULL,\n  `FechaAP` date DEFAULT NULL,\n  `FormaAP` char(3) DEFAULT NULL,\n  `ImporteAP` decimal(10,2) DEFAULT NULL,\n  `ProveedAP` char(8) DEFAULT NULL,\n  `TDocumentoOrg` char(2) DEFAULT NULL,\n  `NDocumentoOrg` int(11) DEFAULT NULL,\n  `DDocumentoOrg` varchar(100) DEFAULT NULL,\n  PRIMARY KEY (`TTransaccion`,`NTransaccion`)\n) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin1$$\n\nCREATE TRIGGER `fzggestion`.`Alta_Pago`\nBEFORE INSERT ON `fzggestion`.`accpayab`\nFOR EACH ROW\nBEGIN\n	SET NEW.FechaAutAP = CURDATE();\nEND\n$$\n</pre>\n*20120926.1804 [[File:checked.png|20px]]\n\n====Modifica [[TABLA:fPago]] [[File:checked.png|20px]]====\n<pre>\nALTER TABLE `fzggestion`.`fpago`\n	ADD COLUMN `FPagoAR` CHAR(1) NULL AFTER `FPagoDSC`,\n	ADD COLUMN `FPagoAP` CHAR(1) NULL AFTER `FPagoAR`;\n</pre>\n*20120926.1808 [[File:checked.png|20px]]\n\n====Rediseña [[TABLA:tdocumento]]====\n\n====Crea [[VISTA:vischtdisp]] [[File:checked.png|20px]]====\n*20120926.1835 [[File:checked.png|20px]]\n\n====Crea [[VISTA:vistotprod]] [[File:checked.png|20px]]====\n*20120926.1836 [[File:checked.png|20px]]\n\n====Crea [[TABLA:vidquoten3tmp]] [[File:checked.png|20px]]====\n*20120926.1902 [[File:checked.png|20px]]\n\n====Reemplazar todos los ElementoPM en Componentes por los nuevos valores [[File:checked.png|20px]]====\n<pre>\nUPDATE fzggestion.composicion SET ElementoPM=2 WHERE ElementoPM=0;\nUPDATE fzggestion.composicion SET ElementoPM=0 WHERE ElementoPM=1;\n</pre>\n*20120926.1908 [[File:checked.png|20px]]','utf-8'),(995,'=== Estructuras de Datos ===\n==== Estructuras Tipo ====\n[[Estructuras SQL]]\n\n===== Template Layout General =====\n* [[TEMP:LayoutGeneral]]\n\n==== Vistas ====\n[http://sqlformat.appspot.com/ SQLFormatBeautify]\n*[[VISTA:listavigente]]\n*[[VISTA:precioscmpl]]\n*[[VISTA:viscabdetalla]]\n*[[VISTA:viscompcnt]]\n*[[VISTA:viscompodis]]\n*[[VISTA:viscomposimpl]]\n*[[VISTA:visdetaobs]]\n*[[VISTA:visdocpcob]]\n*[[VISTA:vistranscrm]]\n*[[VISTA:visintdetpre]]\n*[[VISTA:vislineabs]]\n*[[VISTA:visprdparam]]\n*[[VISTA:visprestot]]\n*[[VISTA:visprodadic]]\n*[[VISTA:visreppres]]\n*[[VISTA:visrprescmp]]\n*[[VISTA:vissubxitem]]\n*[[VISTA:chqactivos]]\n*[[VISTA:vischtdisp]]\n*[[VISTA:vischeckmod]]\n*[[VISTA:vistotprod]]\n\n<small>\n{| class=\"wikitable\"\n| <center>\'\'\'Nombre\'\'\'</center>\n| <center>\'\'\'Comando\'\'\'</center>\n| <center>\'\'\'Uso\'\'\'</center>\n| <center>\'\'\'Cross\'\'\'</center>\n\n|-\n| Viscabdetalla\n| FZG.Vista.viscabdetalla.sql\n| Vista utilizada para agregar la información de cual es la lista de precios a utilizar para el cliente del presupuesto en tiempo real.FORM: Presupuesto\n| Contactos, Vidquoten1\n\n|-\n| Proveedores\n| FZG.Vista.proveedores.sql\n| Visualización de Contactos “Proveedores”\n| Contactos\n\n|-\n| Clientes\n| FZG.Vista.clientes.sql\n| Visualización de Contactos “Clientes”\n| Contactos\n\n|-\n| Visreppres\n| FZG.Vista.visreppres.sql\n| Vista Reporte Presupuesto Individual. Para generar una línea completa con la información de detalle de los presupuestos con las combinaciones de información a incluir en el mismo. No contiene la información estática del cliente.\n| Vislineabs, Visdetaobs\n\n|-\n| Viscompodis\n| FZG.Vista.viscompodis.sql\n| Vista de productos (DISTINCT productos) dentro de la tabla de composición ordenada por alfabéticamente.\n| \n\n|-\n| Viscoposimpl\n| FZG.Vista.viscomposimpl.sql\n| Vista de los elementos de composicion con información para query\n| Productos, Composición\n\n|-\n| Visdetaobs\n| FZG.Vista.visdetaobs.sql\n| Une todas las Observaciones de cada item para los casos que se encuentren señaladas con la Descripción del Producto-Item\n| Productos, Vidquoten3\n\n|-\n| Visintdetpre\n| FZG.Vista.visintdetpre.sql\n| Reducción de vista Visprodadic aplicable al cálculo de presupuesto con los datos en tiempo real del presupuesto activo en formulario y calculando el precio correcto de acuerdo al cliente y el cálculo del valor del elemento de acuerdo al los valores de Alto y Ancho del Vano en tiempo real\n| Visprodadic, Vidquoten2\n\n|-\n| Vislineabs\n| [[FZG.Vista.vislineabs.sql]]\n| Define linea básica para reporte teniendo como base Vidquoten2, agregando la información de la cabecera + datos de descrpción de producto + el subtotal por Producto-Item\n| Vidquoten1, Vidquoten2, Productos, Vissubxitem\n\n|-\n| Visprodadic\n| FZG.Vista.visproadic.sql\n| Vista de tabla de componentes con la información de cada elemento como producto y de los precios vigentes.\n| Productos, Composicion, PreciosVigentes\n\n|-\n| Vissubxitem\n| FZG.Vista.vissubxitem.sql\n| Subtotal por Item de Presupuesto en tiempo real\n| Vidquoten3\n\n|-\n| Listavigente\n| \n| Selecciona solo el primer registro ordenado en forma descendente de la tabla de listasprecios\n| Listasprecios\n\n|-\n| Preciosvigentes\n| FZG.Vista.preciosvigentes.sql\n| Es la selección de la tabla de precios referenciando el mayor valor dentro de la tabla de listasprecios\n| Listasprecios, Precios\n\n|-\n| Preciosvigact\n| FZG.Vista.preciosvigact.sql\n| Vista de lista de precios vigentes con datos de productos para actualización columnar.FORM: Actualización por tipo de lista\n| Preciosvigentes, Productos\n\n|-\n| Precioscmpl\n| [[FZG.Vista.precioscmpl.sql]]\n| Vista de lista de precios completa con datos de productos. [[FORM: Precios Tabular x Proceso]]\n| Precios, Productos\n\n|-\n| Visprestot\n| FZG.Vista.visprestot.sql\n| Vista de Presupuestos Totalizados por Cliente\n| Visreppres\n\n|-\n| Viscompcnt\n| [[FZG.Vista.viscompcnt.sql]]\n| Vista resumen de Componentes completa con indicadores de estado de composición\n| composicion, producto\n|}</small>\n\n=== Objetos ===\n==== Formularios ====\n*[[FORM:Presupuesto]]\n*[[FORM:CopiaComposicion]]\n*[[FORM:Pagos]]\n*[[FORM:Cobranzas]]\n\n==== Reportes ====\n*[[RPRT:Presupuestos]]\n*[[RPRT:PresupuestosDirecto]]\n*[[RPRT:IndividualCRM]]\n\n=== Procedimientos ===\n*[[PROC:ActualizaItemPresupuesto]]\n*[[PROC:ActualizaPreciosPresupuesto]]\n*[[PROC:ActualizaPreciosTabular]]\n*[[PROC:AgregaProductoCompo]]\n*[[PROC:AltaItemPresupuesto]]\n*[[PROC:AltaItemPresupuestoTmp]]\n*[[PROC:CalculaPrecioBase]]\n*[[PROC:CalculoMedidaReal]]\n*[[PROC:CalculoPrecio]]\n*[[PROC:CopiaPresupuesto]]\n*[[PROC:DuplicaProductoCompo]]\n*[[PROC:GrabaItemPresupuestoTmp]]\n*[[PROC:ResetEdicionItemTmp]]\n\n=== Bibliotecas ===\n*[[LIBR:FazzGlassMcr]]\n*[[LIBR:SpanexB]]\n*[[LIBR:SpanexC]]','utf-8'),(996,'[[Category:VISTAS]]\n== Descripción ==\nVista de tabla de componentes con la información de cada elemento como producto y de los precios vigentes. \n== Composición ==\n*TABLA:composicion\n*TABLA:productos\n*TABLA:precios\n\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\nCREATE VIEW `visprodadic` AS \nSELECT\n    `composicion`.`ProductoID` AS `ProductoID`,\n    `composicion`.`ElementoID` AS `ElementoID`,\n    `composicion`.`ValorElemento` AS `ValorElemento`,\n    `composicion`.`ElementoPM` AS `ElementoPM`,\n    `productos`.`Descripcion` AS `Descripcion`,\n    `productos`.`Magnitud` AS `Magnitud`,\n    `composicion`.`OffsetVanoAncho` AS `OffsetVanoAncho`,\n    `composicion`.`OffsetVanoAlto` AS `OffsetVanoAlto`,\n    `composicion`.`CoefVanoAncho` AS `CoefVanoAncho`,\n    `composicion`.`CoefVanoAlto` AS `CoefVanoAlto`,\n    `precios`.`PrecioProd00` AS `PrecioProd00`,\n    `precios`.`PrecioProd01` AS `PrecioProd01`,\n    `precios`.`PrecioProd02` AS `PrecioProd02`,\n    `precios`.`PrecioProd03` AS `PrecioProd03` \nFROM ((`productos` JOIN `composicion`) JOIN `precios`) \nWHERE\n    ((`productos`.`ProductoID` = `composicion`.`ElementoID`) AND \n    (`precios`.`ProductoID` = `productos`.`ProductoID`))\n</pre>\n== Bitácora ==\n== Uso ==\n== URL ==','utf-8'),(997,'[[Category:VISTAS]]\n== Descripción ==\nVista Reporte Presupuesto Individual. Para generar una línea completa con la información de detalle de los presupuestos con las combinaciones de información a incluir en el mismo. No contiene la información estática del cliente. \n== Composicion ==\n*[[VISTA:vislineabs]]\n*[[VISTA:visdetaobs]]\n\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\nCREATE VIEW `visreppres` AS \nSELECT\n    `vislineabs`.`VidQuoteID` AS `VidQuoteID`,\n    `vislineabs`.`VidQuoteObra` AS `VidQuoteObra`,\n    `vislineabs`.`VidQuoteCliente` AS `VidQuoteCliente`,\n    `vislineabs`.`VidQuoteFecha` AS `VidQuoteFecha`,`vislineabs`.\n    `VidQuoteItem` AS `VidQuoteItem`,\n    `vislineabs`.`VidQuoteProdCantidad` AS `VidQuoteProdCantidad`,\n    `vislineabs`.`VidQuoteProdID` AS `VidQuoteProdID`,\n    IF(ISNULL(`visdetaobs`.`Observaciones`),\n        `vislineabs`.`Descripcion`,\n        CONCAT(\n            `vislineabs`.`Descripcion`,\n            \' (Incluye \',\n            CONVERT(`visdetaobs`.`Observaciones` using utf8),\')\')) AS `VidQuoteDetalle`,\n    `vislineabs`.`VidQuotePrecioS` AS `VidQuotePrecioS` \nFROM\n    (`vislineabs` LEFT JOIN `visdetaobs` ON\n    (((`visdetaobs`.`VidQuoteID` = `vislineabs`.`VidQuoteID`) AND \n    (`visdetaobs`.`VidQuoteItem` = `vislineabs`.`VidQuoteItem`))))\n</pre>\n== Bitácora ==\n== Uso ==\n== URL ==','utf-8'),(998,'[[Category:VISTAS]]\n== Descripción ==\nCompleta con información estática del cliente para el presupuesto indicado en el registro de [[TABLA:reppresqry]]\n== Composición ==\n*[[VISTA:visreppres]]\n*[[TABLA:clientes]]\n*[[TABLA:reppresqry]]\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\nCREATE VIEW visrprescmp AS\nSELECT \n    visreppres.VidQuoteID,\n    visreppres.VidQuoteObra,\n    visreppres.VidQuoteCliente,\n    visreppres.VidQuoteFecha,\n    visreppres.VidQuoteItem,\n    visreppres.VidQuoteProdCantidad,\n    visreppres.VidQuoteProdID,\n    visreppres.VidQuoteDetalle,\n    visreppres.VidQuotePrecioS,\n    clientes.RazonSocial,\n    clientes.Direccion,\n    clientes.Localidad,\n    clientes.Provincia\nFROM\n    fzggestion.clientes AS clientes,\n    fzggestion.visreppres AS visreppres\nWHERE\n    clientes.ClienteID = visreppres.VidQuoteCliente AND\n    visreppres.VidQuoteID IN (SELECT VidQuoteID FROM reppresqry)\nORDER BY visreppres.VidQuoteID ASC ,visreppres.VidQuoteObra ASC ,\n			visreppres.VidQuoteCliente ASC ,visreppres.VidQuoteItem ASC\n</pre>\n\n== Bitácora ==\n== Uso ==\n[[REPORTE:PresupuestosDirecto]]\n\n== URL ==\n[[FZG.Vista.visprescmp.sql]]','utf-8'),(999,'[[Category:VISTAS]]\n== Descripción ==\nSubtotaliza los productos de los presupuestos\n== Composición ==\n*[[TABLA:vidquoten3]]\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\nCREATE VIEW `vissubxitem` AS\nSELECT `vidquoten3`.`VidQuoteID` AS `VidQuoteID`,\n       `vidquoten3`.`VidQuoteItem` AS `VidQuoteItem`,\n       sum(`vidquoten3`.`VidQuotePrecioP`) AS `VidQuotePrecioS`\nFROM `vidquoten3`\nGROUP BY `vidquoten3`.`VidQuoteID`,\n         `vidquoten3`.`VidQuoteItem`\n</pre>\n== Bitácora ==\n== Uso ==\n== URL ==','utf-8'),(1000,'[[Category:VISTAS]]\n== Descripción ==\nVista de Cheques disponibles para Endosar\n== Composición ==\n[[TABLA:checkbook]]\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\nCREATE VIEW `vischtdisp` AS\nSELECT \'CHT\' AS `TransaccTest`,\n       `checkbook`.`CheckBookID` AS `CheckBookID`,\n       `checkbook`.`Entidad` AS `Entidad`,\n       `checkbook`.`FechaDocumento` AS `FechaDocumento`,\n       `checkbook`.`ImporteDocumento` AS `ImporteDocumento`\nFROM `checkbook`\nWHERE (isnull(`checkbook`.`NTransaccDst`)\n       AND isnull(`checkbook`.`TTransaccDst`))\n</pre>\n== Bitácora ==\n== Uso ==\n== URL ==','utf-8'),(1001,'[[Category:VISTAS]]\n== Descripción ==\nVista de Lineas Totalizadoras por presupuesto y por producto\n== Composición ==\n*[[TABLA:vidquoten3]]\n*[[TABLA:productos]]\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\nCREATE VIEW `vistotprod` AS\nSELECT `vidquoten3`.`VidQuoteID` AS `VidQuoteID`,\n       `vidquoten3`.`VidQuoteItem` AS `VidQuoteItem`,\n       `vidquoten3`.`VidQuoteProdCantidad` AS `VidQuoteProdCantidad`,\n       `vidquoten3`.`VidQuoteProdID` AS `VidQuoteProdID`,\n       `productos`.`Descripcion` AS `Descripcion`,\n       sum(`vidquoten3`.`VidQuotePrecioP`) AS `VidQuotePrecioP`\nFROM (`vidquoten3`\n      JOIN `productos`)\nWHERE (`productos`.`ProductoID` = `vidquoten3`.`VidQuoteProdID`)\nGROUP BY `vidquoten3`.`VidQuoteID`,\n         `vidquoten3`.`VidQuoteItem`,\n         `vidquoten3`.`VidQuoteProdID`\n</pre>\n== Bitácora ==\n*20120824\n**Alta de Vista\n== Uso ==\n+[[FORM:Presupuestos]]\n== URL ==','utf-8'),(1002,'=== Estructuras de Datos ===\n==== Estructuras Tipo ====\n[[Estructuras SQL]]\n\n===== Template Layout General =====\n* [[TEMP:LayoutGeneral]]\n\n==== Vistas ====\n[http://sqlformat.appspot.com/ SQLFormatBeautify]\n*[[VISTA:listavigente]]\n*[[VISTA:precioscmpl]]\n*[[VISTA:viscabdetalla]]\n*[[VISTA:viscompcnt]]\n*[[VISTA:viscompodis]]\n*[[VISTA:viscomposimpl]]\n*[[VISTA:visdetaobs]]\n*[[VISTA:visdocpcob]]\n*[[VISTA:vistranscrm]]\n*[[VISTA:visintdetpre]]\n*[[VISTA:vislineabs]]\n*[[VISTA:visprdparam]]\n\n<small>\n{| class=\"wikitable\"\n| <center>\'\'\'Nombre\'\'\'</center>\n| <center>\'\'\'Comando\'\'\'</center>\n| <center>\'\'\'Uso\'\'\'</center>\n| <center>\'\'\'Cross\'\'\'</center>\n\n|-\n| Viscabdetalla\n| FZG.Vista.viscabdetalla.sql\n| Vista utilizada para agregar la información de cual es la lista de precios a utilizar para el cliente del presupuesto en tiempo real.FORM: Presupuesto\n| Contactos, Vidquoten1\n\n|-\n| Proveedores\n| FZG.Vista.proveedores.sql\n| Visualización de Contactos “Proveedores”\n| Contactos\n\n|-\n| Clientes\n| FZG.Vista.clientes.sql\n| Visualización de Contactos “Clientes”\n| Contactos\n\n|-\n| Visreppres\n| FZG.Vista.visreppres.sql\n| Vista Reporte Presupuesto Individual. Para generar una línea completa con la información de detalle de los presupuestos con las combinaciones de información a incluir en el mismo. No contiene la información estática del cliente.\n| Vislineabs, Visdetaobs\n\n|-\n| Viscompodis\n| FZG.Vista.viscompodis.sql\n| Vista de productos (DISTINCT productos) dentro de la tabla de composición ordenada por alfabéticamente.\n| \n\n|-\n| Viscoposimpl\n| FZG.Vista.viscomposimpl.sql\n| Vista de los elementos de composicion con información para query\n| Productos, Composición\n\n|-\n| Visdetaobs\n| FZG.Vista.visdetaobs.sql\n| Une todas las Observaciones de cada item para los casos que se encuentren señaladas con la Descripción del Producto-Item\n| Productos, Vidquoten3\n\n|-\n| Visintdetpre\n| FZG.Vista.visintdetpre.sql\n| Reducción de vista Visprodadic aplicable al cálculo de presupuesto con los datos en tiempo real del presupuesto activo en formulario y calculando el precio correcto de acuerdo al cliente y el cálculo del valor del elemento de acuerdo al los valores de Alto y Ancho del Vano en tiempo real\n| Visprodadic, Vidquoten2\n\n|-\n| Vislineabs\n| [[FZG.Vista.vislineabs.sql]]\n| Define linea básica para reporte teniendo como base Vidquoten2, agregando la información de la cabecera + datos de descrpción de producto + el subtotal por Producto-Item\n| Vidquoten1, Vidquoten2, Productos, Vissubxitem\n\n|-\n| Visprodadic\n| FZG.Vista.visproadic.sql\n| Vista de tabla de componentes con la información de cada elemento como producto y de los precios vigentes.\n| Productos, Composicion, PreciosVigentes\n\n|-\n| Vissubxitem\n| FZG.Vista.vissubxitem.sql\n| Subtotal por Item de Presupuesto en tiempo real\n| Vidquoten3\n\n|-\n| Listavigente\n| \n| Selecciona solo el primer registro ordenado en forma descendente de la tabla de listasprecios\n| Listasprecios\n\n|-\n| Preciosvigentes\n| FZG.Vista.preciosvigentes.sql\n| Es la selección de la tabla de precios referenciando el mayor valor dentro de la tabla de listasprecios\n| Listasprecios, Precios\n\n|-\n| Preciosvigact\n| FZG.Vista.preciosvigact.sql\n| Vista de lista de precios vigentes con datos de productos para actualización columnar.FORM: Actualización por tipo de lista\n| Preciosvigentes, Productos\n\n|-\n| Precioscmpl\n| [[FZG.Vista.precioscmpl.sql]]\n| Vista de lista de precios completa con datos de productos. [[FORM: Precios Tabular x Proceso]]\n| Precios, Productos\n\n|-\n| Visprestot\n| FZG.Vista.visprestot.sql\n| Vista de Presupuestos Totalizados por Cliente\n| Visreppres\n\n|-\n| Viscompcnt\n| [[FZG.Vista.viscompcnt.sql]]\n| Vista resumen de Componentes completa con indicadores de estado de composición\n| composicion, producto\n|}</small>\n\n=== Objetos ===\n==== Formularios ====\n*[[FORM:Presupuesto]]\n*[[FORM:CopiaComposicion]]\n*[[FORM:Pagos]]\n*[[FORM:Cobranzas]]\n\n==== Reportes ====\n*[[RPRT:Presupuestos]]\n*[[RPRT:PresupuestosDirecto]]\n*[[RPRT:IndividualCRM]]\n\n=== Procedimientos ===\n*[[PROC:ActualizaItemPresupuesto]]\n*[[PROC:ActualizaPreciosPresupuesto]]\n*[[PROC:ActualizaPreciosTabular]]\n*[[PROC:AgregaProductoCompo]]\n*[[PROC:AltaItemPresupuesto]]\n*[[PROC:AltaItemPresupuestoTmp]]\n*[[PROC:CalculaPrecioBase]]\n*[[PROC:CalculoMedidaReal]]\n*[[PROC:CalculoPrecio]]\n*[[PROC:CopiaPresupuesto]]\n*[[PROC:DuplicaProductoCompo]]\n*[[PROC:GrabaItemPresupuestoTmp]]\n*[[PROC:ResetEdicionItemTmp]]\n\n=== Bibliotecas ===\n*[[LIBR:FazzGlassMcr]]\n*[[LIBR:SpanexB]]\n*[[LIBR:SpanexC]]','utf-8'),(1003,'[[Category:VISTAS]]\n== Descripción ==\nVista Transacciones de CRM\n== Composición ==\n*[[TABLA:vidquoten1]]\n*[[TABLA:vidquoten3]]\n*[[TABLA:accreceiv]]\n\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\nCREATE VIEW `fzggestion`.`vistranscrm` AS\n(\nSELECT DISTINCT\n    T1.VidQuoteCliente AS VidQuoteCliente,\n    \'QT\' AS TTransaccion,\n    T2.VidQuoteID AS NTransaccion,\n    T1.VidQuoteObra AS VidQuoteObra,\n    T1.VidQuoteFecha AS VidQuoteFecha,\n    T1.VidQuoteEstado AS VidQuoteEstado,\n    SUM(T2.VidQuotePrecioP) * - 1 AS VidQuotePrecioP\nFROM\n    vidquoten1 AS T1,\n    vidquoten3 AS T2\nWHERE\n    T1.VidQuoteEstado = \'1\' AND T1.VidQuoteID = T2.VidQuoteID\nGROUP BY T2.VidQuoteID\nORDER BY VidQuoteCliente ASC , VidQuoteID ASC)\nUNION\n(SELECT \n    T3.ClienteAR AS VidQuoteCliente,\n    T3.TTransaccion AS TTransaccion,\n    T3.NTransaccion as NTransaccion,\n    \' \' AS VidQuoteObra,\n    T3.FechaAR AS VidQuoteFecha,\n    \'1\' AS VidQuoteEstado,\n    T3.ImporteAR AS VidQuotePrecioP\nFROM\n    accreceiv AS T3\n)\nORDER BY VidQuoteCliente\n</pre>\n== Bitácora ==\n== Uso ==\n*[[FORM:ConsultaClientesCRM]]\n== URL ==','utf-8'),(1004,'[[Category:VISTAS]]\n== Descripción ==\n== Composición ==\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<small><pre>\nCREATE VIEW `visintdetpre` AS\nSELECT \n	`vidquoten2`.`VidQuoteID` AS `VidQuoteID`,\n	`vidquoten2`.`VidQuoteItem` AS `VidQuoteItem`,\n	`vidquoten2`.`VidQuoteProdCantidad` AS `VidQuoteProdCantidad`,\n	`vidquoten2`.`VidQuoteProdID` AS `VidQuoteProdID`,\n	`vidquoten2`.`VidQuoteAncho` AS `VidQuoteAncho`,\n	`vidquoten2`.`VidQuoteAlto` AS `VidQuoteAlto`,\n	`visprodadic`.`ElementoID` AS `ElementoID`,\n	`visprodadic`.`ValorElemento` AS `ValorElemento`,\n	`visprodadic`.`ElementoPM` AS `ElementoPM`,\n	`visprodadic`.`Descripcion` AS `Descripcion`,\n	`visprodadic`.`Magnitud` AS `Magnitud`,\n	(CASE `visprodadic`.`Magnitud`\n		WHEN \'M2\' THEN \n			((((((`vidquoten2`.`VidQuoteAlto` + `visprodadic`.`OffsetVanoAlto`) * `visprodadic`.`CoefVanoAlto`) * \n			((`vidquoten2`.`VidQuoteAncho` + `visprodadic`.`OffsetVanoAncho`) * `visprodadic`.`CoefVanoAncho`)) / 1000000) * \n			`visprodadic`.`ValorElemento`) * \n			(CASE `vidquoten2`.`VidQuoteLPre` \n				WHEN 1 THEN `visprodadic`.`PrecioProd01` \n				WHEN 2 THEN `visprodadic`.`PrecioProd02` \n				WHEN 3 THEN `visprodadic`.`PrecioProd03` END))\n		WHEN \'PR\' THEN \n			(((((((`vidquoten2`.`VidQuoteAlto` + `visprodadic`.`OffsetVanoAlto`) * 2) * \n			`visprodadic`.`CoefVanoAlto`) + (((`vidquoten2`.`VidQuoteAncho` + `visprodadic`.`OffsetVanoAncho`) * 2) * \n			`visprodadic`.`CoefVanoAncho`)) / 1000) * `visprodadic`.`ValorElemento`) * \n			(CASE `vidquoten2`.`VidQuoteLPre` \n				WHEN 1 THEN `visprodadic`.`PrecioProd01` \n				WHEN 2 THEN `visprodadic`.`PrecioProd02` \n				WHEN 3 THEN `visprodadic`.`PrecioProd03` END))\n		WHEN \'ML\' THEN \n			((((((`vidquoten2`.`VidQuoteAncho` + `visprodadic`.`OffsetVanoAncho`) * 2) * \n			`visprodadic`.`CoefVanoAncho`) / 1000) * `visprodadic`.`ValorElemento`) * \n			(CASE `vidquoten2`.`VidQuoteLPre` \n				WHEN 1 THEN `visprodadic`.`PrecioProd01` \n				WHEN 2 THEN `visprodadic`.`PrecioProd02` \n				WHEN 3 THEN `visprodadic`.`PrecioProd03` END))\n		WHEN \'MG\' THEN \n			((((((`vidquoten2`.`VidQuoteAlto` + `visprodadic`.`OffsetVanoAlto`) * `visprodadic`.`CoefVanoAlto`) + \n			((`vidquoten2`.`VidQuoteAncho` + `visprodadic`.`OffsetVanoAncho`) * `visprodadic`.`CoefVanoAncho`)) / 1000) * \n			`visprodadic`.`ValorElemento`) * \n			(CASE `vidquoten2`.`VidQuoteLPre` \n				WHEN 1 THEN `visprodadic`.`PrecioProd01` \n				WHEN 2 THEN `visprodadic`.`PrecioProd02` \n				WHEN 3 THEN `visprodadic`.`PrecioProd03` END))\n		ELSE (`visprodadic`.`ValorElemento` * \n				(CASE `vidquoten2`.`VidQuoteLPre` \n					WHEN 1 THEN `visprodadic`.`PrecioProd01` \n					WHEN 2 THEN `visprodadic`.`PrecioProd02` \n					WHEN 3 THEN `visprodadic`.`PrecioProd03` END))\n	END) AS `PrecioBase`\nFROM (`visprodadic`\n	JOIN `vidquoten2`)\nWHERE (`visprodadic`.`ProductoID` = `vidquoten2`.`VidQuoteProdID`)\n</pre></small>\n== Bitácora ==\n== Uso ==\n*[[MACRO:LookupData]]\n*[[MACRO:NewResetListBoxDetalleProducto]]\n\n== URL ==','utf-8'),(1005,'[[Category:VISTAS]]\n== Descripción ==\nDefine linea básica para reporte teniendo como base Vidquoten2, agregando la información de la cabecera + datos de descrpción de producto + el subtotal por Producto-Item \n== Composición ==\n*[[TABLA:vidquoten1]]\n*[[TABLA:vidquoten2]]\n*[[TABLA:productos]]\n*[[VISTA:vissubxitem]]\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\nCREATE VIEW `fzggestion`.`vislineabs` AS \nSELECT \n    `fzggestion`.`vidquoten2`.`VidQuoteID` AS `VidQuoteID`,\n    `fzggestion`.`vidquoten1`.`VidQuoteObra` AS `VidQuoteObra`,\n    `fzggestion`.`vidquoten1`.`VidQuoteCliente` AS `VidQuoteCliente`,\n    `fzggestion`.`vidquoten1`.`VidQuoteFecha` AS `VidQuoteFecha`,\n    `fzggestion`.`vidquoten1`.`VidQuoteEstado` AS `VidQuoteEstado`,\n    `fzggestion`.`vidquoten2`.`VidQuoteItem` AS `VidQuoteItem`,\n    `fzggestion`.`vidquoten2`.`VidQuoteProdCantidad` AS `VidQuoteProdCantidad`,\n    `fzggestion`.`vidquoten2`.`VidQuoteProdID` AS `VidQuoteProdID`,\n    IF((`fzggestion`.`vidquoten2`.`VidQuoteAncho` > 0),\n    IF((`fzggestion`.`vidquoten2`.`VidQuoteAlto` > 0),\n        CONCAT(CONVERT(`fzggestion`.`productos`.`Descripcion` USING utf8),\n            \' -Dimension(mm):[\',\n            LPAD(CAST(`fzggestion`.`vidquoten2`.`VidQuoteAncho` AS CHAR charset utf8),4,\'0000\'),\n            \'x\',\n            LPAD(CAST(`fzggestion`.`vidquoten2`.`VidQuoteAlto` AS CHAR charset utf8),4,\'0000\'),\n            \']-\'),\n        CONCAT(CONVERT(`fzggestion`.`productos`.`Descripcion` USING utf8),\n            \' -Largo(mm):[\',\n            LPAD(CAST(`fzggestion`.`vidquoten2`.`VidQuoteAncho` AS CHAR charset utf8),4,\'0000\'),\n            \']-\')),\n            CONVERT(`fzggestion`.`productos`.`Descripcion` using utf8)) AS `Descripcion`,\n    `vissubxitem`.`VidQuotePrecioS` AS `VidQuotePrecioS` \nFROM\n    (((`fzggestion`.`vidquoten1` JOIN \n    `fzggestion`.`vidquoten2`) JOIN \n    `fzggestion`.`productos`) JOIN \n    `fzggestion`.`vissubxitem`) \nWHERE\n    ((`fzggestion`.`vidquoten1`.`VidQuoteID` = `fzggestion`.`vidquoten2`.`VidQuoteID`) AND \n    (`fzggestion`.`productos`.`ProductoID` = `fzggestion`.`vidquoten2`.`VidQuoteProdID`) AND \n    (`vissubxitem`.`VidQuoteID` = `fzggestion`.`vidquoten2`.`VidQuoteID`) AND \n    (`vissubxitem`.`VidQuoteItem` = `fzggestion`.`vidquoten2`.`VidQuoteItem`))\n</pre>\n\n== Bitácora ==\n== Uso ==\n== URL ==','utf-8'),(1006,'[[Category:VISTAS]]\n== Descripción ==\nVista de la tabla de Productos indicando con \"Parametros\" aquellos elementos que tienen parámetros asociados.\n== Composición ==\n*[[TABLA:productos]]\n*[[TABLA:valadicprod]]\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\nCREATE VIEW `visprdparam` AS \nSELECT\n	`productos`.`ProductoID` AS `ProductoID`,\n	`productos`.`Descripcion` AS `Descripcion`,\n	`productos`.`ProductoID` IN (SELECT DISTINCT `valadicprod`.`ProductoID` FROM `valadicprod`) AS `Parametros` \nFROM `productos` \nORDER BY `productos`.`Descripcion\n</pre>\n== Bitácora ==\n== Uso ==\n*[[FORM:MasivoPorElemento]]\n\n== URL ==','utf-8'),(1007,'[[Category:VISTAS]]\n== Descripción ==\nUne todas las Observaciones de cada item para los casos que se encuentren señaladas con la Descripción del Producto-Item \n== Composicion ==\n*[[TABLA:vidquoten3]]\n*[[TABLA:productos]]\n\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\nCREATE VIEW `fzggestion`.`visdetaobs` AS \nSELECT\n    `fzggestion`.`vidquoten3`.`VidQuoteID` AS `VidQuoteID`,\n    `fzggestion`.`vidquoten3`.`VidQuoteItem` AS `VidQuoteItem`,\n    `fzggestion`.`vidquoten3`.`VidQuoteIncluyeDet` AS `VidQuoteIncluyeDet`,\n    GROUP_CONCAT(`fzggestion`.`productos`.`Descripcion` SEPARATOR \', \') AS `Observaciones` \nFROM\n    (`fzggestion`.`productos` JOIN `fzggestion`.`vidquoten3`) \nWHERE \n    ((`fzggestion`.`productos`.`ProductoID` = `fzggestion`.`vidquoten3`.`VidQuoteElementoID`) AND \n    (`fzggestion`.`vidquoten3`.`VidQuoteIncluyeDet` = 1)) \nGROUP BY \n    `fzggestion`.`vidquoten3`.`VidQuoteID`,`fzggestion`.`vidquoten3`.`VidQuoteItem`\n</pre>\n== Bitácora ==\n== Uso ==\n== URL ==','utf-8'),(1008,'[[Category:VISTAS]]\n== Descripción ==\nVista de la [[TABLA:composicion]] con el agregado de la descripción del elemento que lo relaciona con la [[TABLA:productos]]\n== Composición ==\n*[[TABLA:composicion]]\n*[[TABLA:productos]]\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\nCREATE VIEW `viscomposimpl` AS\nSELECT `composicion`.`ProductoID` AS `ProductoID`,\n       `composicion`.`ElementoID` AS `ElementoID`,\n       `productos`.`Descripcion` AS `Descripcion`,\n       `composicion`.`ValorElemento` AS `ValorElemento`,\n       `composicion`.`ElementoPM` AS `ElementoPM`,\n       CONCAT(	format(`composicion`.`OffsetVanoAncho`,0),\',\',\n					format(`composicion`.`OffsetVanoAlto`,0)) AS `Offset`,\n       CONCAT(	format(`composicion`.`CoefVanoAncho`,4),\',\',\n					format(`composicion`.`CoefVanoAlto`,4)) AS `CoefWH`\nFROM (`productos`\n      JOIN `composicion`)\nWHERE (`productos`.`ProductoID` = `composicion`.`ElementoID`)\n</pre>\n== Bitácora ==\n*20120608\n**Se agregan las columnas correspondientes a los Coeficientes de Alto y Ancho de acuerdo a la modificación de la estructura de Composicion hecha para la \"Magnitud Galarza\"\n<pre>\n       CONCAT(	format(`composicion`.`CoefVanoAncho`,4),\',\',\n					format(`composicion`.`CoefVanoAlto`,4)) AS `CoefWH`\n</pre>\n== Uso ==\n[[FORM:CopiaComposicion]]\n== URL ==','utf-8'),(1009,'=== Estructuras de Datos ===\n==== Estructuras Tipo ====\n[[Estructuras SQL]]\n\n===== Template Layout General =====\n* [[TEMP:LayoutGeneral]]\n\n==== Vistas ====\n[http://sqlformat.appspot.com/ SQLFormatBeautify]\n\n<small>\n{| class=\"wikitable\"\n| <center>\'\'\'Nombre\'\'\'</center>\n| <center>\'\'\'Comando\'\'\'</center>\n| <center>\'\'\'Uso\'\'\'</center>\n| <center>\'\'\'Cross\'\'\'</center>\n\n|-\n| Viscabdetalla\n| FZG.Vista.viscabdetalla.sql\n| Vista utilizada para agregar la información de cual es la lista de precios a utilizar para el cliente del presupuesto en tiempo real.FORM: Presupuesto\n| Contactos, Vidquoten1\n\n|-\n| Proveedores\n| FZG.Vista.proveedores.sql\n| Visualización de Contactos “Proveedores”\n| Contactos\n\n|-\n| Clientes\n| FZG.Vista.clientes.sql\n| Visualización de Contactos “Clientes”\n| Contactos\n\n|-\n| Visreppres\n| FZG.Vista.visreppres.sql\n| Vista Reporte Presupuesto Individual. Para generar una línea completa con la información de detalle de los presupuestos con las combinaciones de información a incluir en el mismo. No contiene la información estática del cliente.\n| Vislineabs, Visdetaobs\n\n|-\n| Viscompodis\n| FZG.Vista.viscompodis.sql\n| Vista de productos (DISTINCT productos) dentro de la tabla de composición ordenada por alfabéticamente.\n| \n\n|-\n| Viscoposimpl\n| FZG.Vista.viscomposimpl.sql\n| Vista de los elementos de composicion con información para query\n| Productos, Composición\n\n|-\n| Visdetaobs\n| FZG.Vista.visdetaobs.sql\n| Une todas las Observaciones de cada item para los casos que se encuentren señaladas con la Descripción del Producto-Item\n| Productos, Vidquoten3\n\n|-\n| Visintdetpre\n| FZG.Vista.visintdetpre.sql\n| Reducción de vista Visprodadic aplicable al cálculo de presupuesto con los datos en tiempo real del presupuesto activo en formulario y calculando el precio correcto de acuerdo al cliente y el cálculo del valor del elemento de acuerdo al los valores de Alto y Ancho del Vano en tiempo real\n| Visprodadic, Vidquoten2\n\n|-\n| Vislineabs\n| [[FZG.Vista.vislineabs.sql]]\n| Define linea básica para reporte teniendo como base Vidquoten2, agregando la información de la cabecera + datos de descrpción de producto + el subtotal por Producto-Item\n| Vidquoten1, Vidquoten2, Productos, Vissubxitem\n\n|-\n| Visprodadic\n| FZG.Vista.visproadic.sql\n| Vista de tabla de componentes con la información de cada elemento como producto y de los precios vigentes.\n| Productos, Composicion, PreciosVigentes\n\n|-\n| Vissubxitem\n| FZG.Vista.vissubxitem.sql\n| Subtotal por Item de Presupuesto en tiempo real\n| Vidquoten3\n\n|-\n| Listavigente\n| \n| Selecciona solo el primer registro ordenado en forma descendente de la tabla de listasprecios\n| Listasprecios\n\n|-\n| Preciosvigentes\n| FZG.Vista.preciosvigentes.sql\n| Es la selección de la tabla de precios referenciando el mayor valor dentro de la tabla de listasprecios\n| Listasprecios, Precios\n\n|-\n| Preciosvigact\n| FZG.Vista.preciosvigact.sql\n| Vista de lista de precios vigentes con datos de productos para actualización columnar.FORM: Actualización por tipo de lista\n| Preciosvigentes, Productos\n\n|-\n| Precioscmpl\n| [[FZG.Vista.precioscmpl.sql]]\n| Vista de lista de precios completa con datos de productos. [[FORM: Precios Tabular x Proceso]]\n| Precios, Productos\n\n|-\n| Visprestot\n| FZG.Vista.visprestot.sql\n| Vista de Presupuestos Totalizados por Cliente\n| Visreppres\n\n|-\n| Viscompcnt\n| [[FZG.Vista.viscompcnt.sql]]\n| Vista resumen de Componentes completa con indicadores de estado de composición\n| composicion, producto\n|}</small>\n\n=== Objetos ===\n==== Formularios ====\n*[[FORM:Presupuesto]]\n*[[FORM:CopiaComposicion]]\n*[[FORM:Pagos]]\n*[[FORM:Cobranzas]]\n\n==== Reportes ====\n*[[RPRT:Presupuestos]]\n*[[RPRT:PresupuestosDirecto]]\n*[[RPRT:IndividualCRM]]\n\n=== Procedimientos ===\n*[[PROC:ActualizaItemPresupuesto]]\n*[[PROC:ActualizaPreciosPresupuesto]]\n*[[PROC:ActualizaPreciosTabular]]\n*[[PROC:AgregaProductoCompo]]\n*[[PROC:AltaItemPresupuesto]]\n*[[PROC:AltaItemPresupuestoTmp]]\n*[[PROC:CalculaPrecioBase]]\n*[[PROC:CalculoMedidaReal]]\n*[[PROC:CalculoPrecio]]\n*[[PROC:CopiaPresupuesto]]\n*[[PROC:DuplicaProductoCompo]]\n*[[PROC:GrabaItemPresupuestoTmp]]\n*[[PROC:ResetEdicionItemTmp]]\n\n=== Bibliotecas ===\n*[[LIBR:FazzGlassMcr]]\n*[[LIBR:SpanexB]]\n*[[LIBR:SpanexC]]','utf-8'),(1010,'==Tablas, Vistas==\n<pre>\n[[Category:TABLAS]]\n[[Category:VISTAS]]\n== Descripción ==\n== Composición ==\n== Estructura ==\n< pre>\n< /pre>\n== SQL ==\n< pre>\n< /pre>\n== Bitácora ==\n== Uso ==\n== URL ==\n</pre>\n\n==Formularios==\n<pre>\n[[Category:FORM]]\n== Descripción ==\n== Composición ==\n== Estructura ==\n== Código Relacionado ==\n== Bitácora ==\n== Uso ==\n</pre>\n\n==Macros, Procedimientos, Funciones==\n<pre>\n[[Category:MACRO]]\n[[Category:PROC]]\n== Descripción ==\n== Biblioteca ==\n== Composición ==\n== Código ==\n< small>< pre>\n< /pre>< /small>\n== Bitácora ==\n== Uso ==\n</pre>\n\n==SqlCode==\n<pre>\n< small>< pre>\n< /pre>< /small>\n</pre>\n==Iconos Layout==\n*File:warning-icon-hi.png|20px [[File:warning-icon-hi.png|20px]]\n*File:checked.png|20px [[File:checked.png|20px]]\n==Tickets Soporte==\n<pre>\n[[Category:TKT]]\n====Data TKT====\n*\'\'\'Usuario:\'\'\' \n*\'\'\'Fecha:\'\'\' \n*\'\'\'Soporte:\'\'\' \n=====Incidente=====\n=====WorkAround=====\n=====Resolución=====\n=====Estado=====\n=====Observaciones=====\n</pre>','utf-8'),(1011,'[[Category:PROC]]\n== Descripción ==\nActualiza los precios unitario y subtotal en la [[TABLA:vidquoten3]] de un Producto determinado para todos sus componentes.\n\n== Composición ==\n*[[TABLA:composicion]]\n*[[TABLA:vidquoten3]]\n*[[TABLA:precios]]\n*[[TABLA:productos]]\n== Código ==\n<small><pre>\n-- --------------------------------------------------------------------------------\n-- Routine DDL\n-- Note: comments before and after the routine body will not be stored by the server\n-- --------------------------------------------------------------------------------\nDELIMITER $$\n\nCREATE DEFINER=`sas_admin`@`%` PROCEDURE `ActualizaItemPresupuesto`(\n    IN pVidQuoteID INT(5),\n    IN pVidQuoteItem INT(5),\n    IN pVidQuoteProdCantidad INT(5),\n    IN pVidQuoteAncho INT(5),\n    IN pVidQuoteAlto INT(5),\n    IN pVidQuoteLista INT(1),\n    IN pCoeficienteAC DECIMAL(10,5))\nBEGIN\n-- ----------------------------------------------------\n-- Update from tables with ProductoID=ElementoID\n-- ----------------------------------------------------\n-- SET\n-- @pVidQuoteID = 50,\n-- @pVidQuoteItem = 3,\n-- @pVidQuoteProdCantidad = 1,\n-- @pVidQuoteAncho = 1000,\n-- @pVidQuoteAlto = 1000,\n-- @pVidQuoteLista = 1,\n-- @pCoeficienteAC = 1.0;\n-- CALL DebugCheckPoint(\n--     CONCAT(\n--     \"PROC:ActualizaItemPresupuesto\",\"/VAR/\",\n--     CAST(pVidQuoteID AS CHAR),\"-\",\n--     CAST(pVidQuoteLista AS CHAR),\"-\",\n--     CAST(pVidQuoteItem AS CHAR),\"-\",\n--     CAST(pVidQuoteProdCantidad AS CHAR),\"-\",\n--     CAST(pVidQuoteAncho AS CHAR),\"-\",\n--     CAST(pVidQuoteAlto AS CHAR),\"-\",\n--     CAST(pCoeficienteAC AS CHAR)\n--     ));\nUPDATE\n    composicion AS T2,\n    vidquoten3 AS T1,\n    precios AS T3,\n    productos AS T4\nSET \n    T1.VidQuotePrecio = CalculoPrecio(\n                        pVidQuoteAncho, \n                        pVidQuoteAlto,\n                        (CASE (pVidQuoteLista)\n                          WHEN 0 THEN T3.PrecioProd00\n                          WHEN 1 THEN T3.PrecioProd01\n                          WHEN 2 THEN T3.PrecioProd02\n                          WHEN 3 THEN T3.PrecioProd03\n                        END),\n                        T4.Magnitud,\n                        T2.OffsetVanoAlto,\n                        T2.OffsetVanoAncho,\n                        T2.CoefVanoAlto,\n                        T2.CoefVanoAncho,\n                        T2.ValorElemento) * pCoeficienteAC,\n    T1.VidQuotePrecioP= CalculoPrecio(\n                        pVidQuoteAncho, \n                        pVidQuoteAlto,\n                        (CASE (pVidQuoteLista)\n                          WHEN 0 THEN T3.PrecioProd00\n                          WHEN 1 THEN T3.PrecioProd01\n                          WHEN 2 THEN T3.PrecioProd02\n                          WHEN 3 THEN T3.PrecioProd03\n                        END),\n                        T4.Magnitud,\n                        T2.OffsetVanoAlto,\n                        T2.OffsetVanoAncho,\n                        T2.CoefVanoAlto,\n                        T2.CoefVanoAncho,\n                        T2.ValorElemento) * pCoeficienteAC * pVidQuoteProdCantidad \nWHERE\n    T1.VidQuoteID = pVidQuoteID AND\n    T1.VidQuoteItem = pVidQuoteItem AND\n    T2.ProductoID = T1.VidQuoteProdID AND \n    T2.ElementoID = T1.VidQuoteElementoID AND \n    T2.ComposicID = T1.VidQuoteComposicID AND \n    T4.ProductoID = T3.ProductoID AND \n    T3.ProductoID = T2.ElementoID AND \n    T1.VidQuoteProdID = T1.VidQuoteElementoID;\n-- ----------------------------------------------------\n-- Update from tables with ProductoID<>ElementoID\n-- ----------------------------------------------------\nUPDATE\n    vidquoten3 AS W1,\n    (SELECT \n        V1.VidQuoteID,\n        V1.VidQuoteItem,\n        V1.VidQuoteProdID,\n        V1.VidQuoteElementoID,\n        V1.VidQuoteComposicID,\n        SUM(CalculoPrecio(\n            pVidQuoteAncho, \n            pVidQuoteAlto,\n            (CASE (pVidQuoteLista)\n              WHEN 0 THEN V4.PrecioProd00\n              WHEN 1 THEN V4.PrecioProd01\n              WHEN 2 THEN V4.PrecioProd02\n              WHEN 3 THEN V4.PrecioProd03\n            END),\n            V5.Magnitud,\n            V2.OffsetVanoAlto + V3.OffsetVanoAlto,\n            V2.OffsetVanoAncho + V3.OffsetVanoAncho,\n            V2.CoefVanoAlto * V3.CoefVanoAlto,\n            V2.CoefVanoAncho * V3.CoefVanoAncho,\n            V2.ValorElemento * V3.ValorElemento)) * pCoeficienteAC AS VidQuotePrecio,\n        SUM(CalculoPrecio(\n            pVidQuoteAncho, \n            pVidQuoteAlto,\n            (CASE (pVidQuoteLista)\n              WHEN 0 THEN V4.PrecioProd00\n              WHEN 1 THEN V4.PrecioProd01\n              WHEN 2 THEN V4.PrecioProd02\n              WHEN 3 THEN V4.PrecioProd03\n            END),\n            V5.Magnitud,\n            V2.OffsetVanoAlto + V3.OffsetVanoAlto,\n            V2.OffsetVanoAncho + V3.OffsetVanoAncho,\n            V2.CoefVanoAlto * V3.CoefVanoAlto,\n            V2.CoefVanoAncho * V3.CoefVanoAncho,\n            V2.ValorElemento * V3.ValorElemento)) * pCoeficienteAC * pVidQuoteProdCantidad AS VidQuotePrecioP\n    FROM\n        fzggestion.composicion AS V3,\n        fzggestion.composicion AS V2,\n        fzggestion.vidquoten3 AS V1,\n        fzggestion.precios AS V4,\n        fzggestion.productos AS V5\n    WHERE\n        V1.VidQuoteID = pVidQuoteID AND\n        V1.VidQuoteItem = pVidQuoteItem AND\n        V3.ProductoID = V2.ElementoID AND \n        V2.ProductoID = V1.VidQuoteProdID AND \n        V2.ElementoID = V1.VidQuoteElementoID AND \n        V2.ComposicID = V1.VidQuoteComposicID AND \n        V4.ProductoID = V3.ElementoID AND \n        V5.ProductoID = V4.ProductoID AND \n        V1.VidQuoteProdID <> V1.VidQuoteElementoID AND \n        V3.ElementoPM = 0\n    GROUP BY\n        V1.VidQuoteID,\n        V1.VidQuoteItem,\n        V1.VidQuoteElementoID,\n        V1.VidQuoteComposicID) AS W2\nSET\n    W1.VidQuotePrecio = W2.VidQuotePrecio,\n    W1.VidQuotePrecioP = W2.VidQuotePrecioP\nWHERE\n    -- ----------------------------------------------------------\n    -- Join between result of calculating prices and vidquoten3\n    -- ----------------------------------------------------------\n    W2.VidQuoteID = W1.VidQuoteID AND \n    W2.VidQuoteItem = W1.VidQuoteItem AND \n    W2.VidQuoteProdID = W1.VidQuoteProdID AND \n    W2.VidQuoteElementoID = W1.VidQuoteElementoID AND \n    W2.VidQuoteComposicID = W1.VidQuoteComposicID AND\n    -- ----------------------------------------------------------\n    -- Select what Qoute will be affected\n    -- ----------------------------------------------------------\n    W1.VidQuoteID = pVidQuoteID AND\n    -- ----------------------------------------------------------\n    -- Select records not PPD\n    -- ----------------------------------------------------------\n    W1.VidQuoteProdID <> W1.VidQuoteElementoID;\nEND\n</pre></small>\n== Bitácora ==\n*20120921\n**Alta ante rediseño de [[FORM:Presupuesto]]\n== Uso ==\n*[[FORM:Presupuesto]]\n*[[TRIG:Actualiza_Item_Presupuesto]]','utf-8'),(1012,'[[Category:PROC]]\n== Descripción ==\nActualizador de precios de un presupuesto indicado. Toma toda la información existente y la actualiza de acuerdo a la lista de precios vigente. Luego de actualizar los precios a nivel Elemento, procede a actualizar los precios del detalle del presupuesto invocando un UPDATE ficticio para que ejecute sin Dead-Lock a través del [[TRIG:Actualiza_Item_Presupuesto]]\n\n== Composición ==\n*[[TABLA:vidquoten3]]\n*[[TABLA:vidquoten2]]\n*[[TABLA:precios]]\n*[[TABLA:productos]]\n*[[TABLA:composicion]]\n== Código ==\n<small><pre>\n-- --------------------------------------------------------------------------------\n-- Routine DDL\n-- Note: comments before and after the routine body will not be stored by the server\n-- --------------------------------------------------------------------------------\nDELIMITER $$\n\nCREATE DEFINER=`sas_admin`@`%` PROCEDURE `ActualizaPreciosPresupuesto`(\n    IN pVidQuoteID INT(5),\n--    IN pVidQuoteItem INT(5),\n    IN pVidQuoteLista INT(1),\n    IN pCoeficienteAC DECIMAL(10,5))\nBEGIN\n-- ----------------------------------------------------\n-- Update from tables with ProductoID=ElementoID\n-- ----------------------------------------------------\nUPDATE\n    composicion AS T2,\n    vidquoten3 AS T1,\n    precios AS T3,\n    productos AS T4,\n    vidquoten2 AS T5\nSET \n    T1.VidQuotePrecio = CalculoPrecio(\n                        T5.VidQuoteAncho, \n                        T5.VidQuoteAlto,\n                        (CASE (pVidQuoteLista)\n                          WHEN 0 THEN T3.PrecioProd00\n                          WHEN 1 THEN T3.PrecioProd01\n                          WHEN 2 THEN T3.PrecioProd02\n                          WHEN 3 THEN T3.PrecioProd03\n                        END),\n                        T4.Magnitud,\n                        T2.OffsetVanoAlto,\n                        T2.OffsetVanoAncho,\n                        T2.CoefVanoAlto,\n                        T2.CoefVanoAncho,\n                        T2.ValorElemento) * pCoeficienteAC,\n    T1.VidQuotePrecioP= CalculoPrecio(\n                        T5.VidQuoteAncho, \n                        T5.VidQuoteAlto,\n                        (CASE (pVidQuoteLista)\n                          WHEN 0 THEN T3.PrecioProd00\n                          WHEN 1 THEN T3.PrecioProd01\n                          WHEN 2 THEN T3.PrecioProd02\n                          WHEN 3 THEN T3.PrecioProd03\n                        END),\n                        T4.Magnitud,\n                        T2.OffsetVanoAlto,\n                        T2.OffsetVanoAncho,\n                        T2.CoefVanoAlto,\n                        T2.CoefVanoAncho,\n                        T2.ValorElemento) * pCoeficienteAC * T5.VidQuoteProdCantidad \nWHERE\n    T1.VidQuoteID = pVidQuoteID AND\n--    T1.VidQuoteItem = IF(ISNULL(pVidQuoteItem),T1.VidQuoteItem,pVidQuoteItem) AND\n    T2.ProductoID = T1.VidQuoteProdID AND \n    T2.ElementoID = T1.VidQuoteElementoID AND \n    T2.ComposicID = T1.VidQuoteComposicID AND \n    T4.ProductoID = T3.ProductoID AND \n    T5.VidQuoteID = T1.VidQuoteID AND \n    T5.VidQuoteItem = T1.VidQuoteItem AND \n    T3.ProductoID = T2.ElementoID AND \n    T1.VidQuoteProdID = T1.VidQuoteElementoID;\n-- ----------------------------------------------------\n-- Update from tables with ProductoID<>ElementoID\n-- ----------------------------------------------------\nUPDATE\n    vidquoten3 AS W1,\n    (SELECT \n        V1.VidQuoteID,\n        V1.VidQuoteItem,\n        V1.VidQuoteProdID,\n        V1.VidQuoteElementoID,\n        V1.VidQuoteComposicID,\n        SUM(CalculoPrecio(\n            V6.VidQuoteAncho, \n            V6.VidQuoteAlto,\n            (CASE (pVidQuoteLista)\n              WHEN 0 THEN V4.PrecioProd00\n              WHEN 1 THEN V4.PrecioProd01\n              WHEN 2 THEN V4.PrecioProd02\n              WHEN 3 THEN V4.PrecioProd03\n            END),\n            V5.Magnitud,\n            V2.OffsetVanoAlto + V3.OffsetVanoAlto,\n            V2.OffsetVanoAncho + V3.OffsetVanoAncho,\n            V2.CoefVanoAlto * V3.CoefVanoAlto,\n            V2.CoefVanoAncho * V3.CoefVanoAncho,\n            V2.ValorElemento * V3.ValorElemento)) * pCoeficienteAC AS VidQuotePrecio,\n        SUM(CalculoPrecio(\n            V6.VidQuoteAncho, \n            V6.VidQuoteAlto,\n            (CASE (pVidQuoteLista)\n              WHEN 0 THEN V4.PrecioProd00\n              WHEN 1 THEN V4.PrecioProd01\n              WHEN 2 THEN V4.PrecioProd02\n              WHEN 3 THEN V4.PrecioProd03\n            END),\n            V5.Magnitud,\n            V2.OffsetVanoAlto + V3.OffsetVanoAlto,\n            V2.OffsetVanoAncho + V3.OffsetVanoAncho,\n            V2.CoefVanoAlto * V3.CoefVanoAlto,\n            V2.CoefVanoAncho * V3.CoefVanoAncho,\n            V2.ValorElemento * V3.ValorElemento)) * pCoeficienteAC * V6.VidQuoteProdCantidad AS VidQuotePrecioP\n    FROM\n        fzggestion.composicion AS V3,\n        fzggestion.composicion AS V2,\n        fzggestion.vidquoten3 AS V1,\n        fzggestion.precios AS V4,\n        fzggestion.productos AS V5,\n        fzggestion.vidquoten2 AS V6\n    WHERE\n        V1.VidQuoteID = pVidQuoteID AND\n--       V1.VidQuoteItem = IF(ISNULL(pVidQuoteItem),V1.VidQuoteItem,pVidQuoteItem) AND\n        V6.VidQuoteID = V1.VidQuoteID AND \n        V6.VidQuoteItem = V1.VidQuoteItem AND\n        V3.ProductoID = V2.ElementoID AND \n        V2.ProductoID = V1.VidQuoteProdID AND \n        V2.ElementoID = V1.VidQuoteElementoID AND \n        V2.ComposicID = V1.VidQuoteComposicID AND \n        V4.ProductoID = V3.ElementoID AND \n        V5.ProductoID = V4.ProductoID AND \n        V1.VidQuoteProdID <> V1.VidQuoteElementoID AND \n        V3.ElementoPM = 0\n    GROUP BY\n        V1.VidQuoteID,\n        V1.VidQuoteItem,\n        V1.VidQuoteElementoID,\n        V1.VidQuoteComposicID) AS W2\nSET\n    W1.VidQuotePrecio = W2.VidQuotePrecio,\n    W1.VidQuotePrecioP = W2.VidQuotePrecioP\nWHERE\n    -- ----------------------------------------------------------\n    -- Join between result of calculating prices and vidquoten3\n    -- ----------------------------------------------------------\n    W2.VidQuoteID = W1.VidQuoteID AND \n    W2.VidQuoteItem = W1.VidQuoteItem AND \n    W2.VidQuoteProdID = W1.VidQuoteProdID AND \n    W2.VidQuoteElementoID = W1.VidQuoteElementoID AND \n    W2.VidQuoteComposicID = W1.VidQuoteComposicID AND\n    -- ----------------------------------------------------------\n    -- Select what Qoute will be affected\n    -- ----------------------------------------------------------\n    W1.VidQuoteID = pVidQuoteID AND\n    -- ----------------------------------------------------------\n    -- Select records not PPD\n    -- ----------------------------------------------------------\n    W1.VidQuoteProdID <> W1.VidQuoteElementoID;\n-- ----------------------------------------------------------\n-- Update Precios Resumen on vidquoten2. No effect on others\n-- fields than VidQuotePrecio\n-- ----------------------------------------------------------\nUPDATE\n    vidquoten2 AS T1\nSET\n    T1.VidQuoteProdCantidad=T1.VidQuoteProdCantidad\nWHERE\n    T1.VidQuoteID = pVidQuoteID;\nEND\n</pre></small>\n\n== Bitácora ==\n*20120921\n**Actualización de acuerdo al cambio de diseño de [[FORM:Presupuesto]]\n<small><pre>\n-- --------------------------------------------------------------------------------\n-- Routine DDL\n-- Note: comments before and after the routine body will not be stored by the server\n-- --------------------------------------------------------------------------------\nDELIMITER $$\n\nCREATE DEFINER=`sas_admin`@`%` PROCEDURE `ActualizaPreciosPresupuesto_OLD`(IN pVidQuoteID INT(5))\nBEGIN\n	UPDATE vidquoten3 AS T5,\n    (\n    SELECT\n		T4.VidQuoteProdID,\n      T4.VidQuoteElementoID,\n		T4.VidQuoteProdCantidad,\n		T4.VidQuoteAncho,\n		T4.VidQuoteAlto,\n      T4.PrecioProd,\n		SUM(CalculoPrecio(\n			T4.VidQuoteAncho, \n			T4.VidQuoteAlto,\n			T4.PrecioProd,\n			T4.Magnitud,\n			T4.OffsetVanoAlto,\n			T4.OffsetVanoAncho,\n			T4.CoefVanoAlto,\n			T4.CoefVanoAncho,\n			T4.ValorElemento)) AS VidQuotePrecio,\n		SUM(CalculoPrecio(\n			T4.VidQuoteAncho, \n			T4.VidQuoteAlto,\n			T4.PrecioProd,\n			T4.Magnitud,\n			T4.OffsetVanoAlto,\n			T4.OffsetVanoAncho,\n			T4.CoefVanoAlto,\n			T4.CoefVanoAncho,\n			T4.ValorElemento) * T4.VidQuoteProdCantidad) AS VidQuotePrecioP\n	FROM\n	((SELECT \n		 T1.VidQuoteLPre AS VidQuoteLPre,\n		 T1.VidQuoteProdID AS VidQuoteProdID,\n		 T1.VidQuoteElementoID AS VidQuoteElementoID,\n		 T2.ElementoID AS ElementoID,\n		 T1.VidQuoteProdCantidad AS VidQuoteProdCantidad,\n		 T1.VidQuoteAncho AS VidQuoteAncho,\n		 T1.VidQuoteAlto AS VidQuoteAlto,\n		 T2.Magnitud,\n		 T2.ValorElemento AS ValorElemento,\n		 T2.OffsetVanoAncho AS OffsetVanoAncho,\n		 T2.OffsetVanoAlto AS OffsetVanoAlto,\n		 T2.CoefVanoAncho AS CoefVanoAncho,\n		 T2.CoefVanoAlto AS CoefVanoAlto,\n		(CASE (T1.VidQuoteLPre)\n		     WHEN 0 THEN T2.`PrecioProd00`\n			WHEN 1 THEN T2.`PrecioProd01`\n			WHEN 2 THEN T2.`PrecioProd02`\n			WHEN 3 THEN T2.`PrecioProd03`\n			END) AS PrecioProd\n	FROM\n		 { OJ fzggestion.visprodadic AS T2\n		     RIGHT OUTER JOIN\n		 fzggestion.vidquoten3 AS T1 ON T2.ProductoID = T1.VidQuoteProdID AND T2.ElementoID = T1.VidQuoteElementoID }\n	WHERE\n		 T1.VidQuoteProdID=VidQuoteElementoID AND T1.VidQuoteID = pVidQuoteID)\n	UNION\n	(SELECT \n		 T1.VidQuoteLPre AS VidQuoteLPre,\n		 T1.VidQuoteProdID AS VidQuoteProdID,\n		 T1.VidQuoteElementoID AS VidQuoteElementoID,\n		 T2.ElementoID AS ElementoID,\n		 T1.VidQuoteProdCantidad AS VidQuoteProdCantidad,\n		 T1.VidQuoteAncho AS VidQuoteAncho,\n		 T1.VidQuoteAlto AS VidQuoteAlto,\n		 T2.Magnitud,\n		 T3.ValorElemento * T2.ValorElemento AS ValorElemento,\n		 T3.OffsetVanoAncho + T2.OffsetVanoAncho AS OffsetVanoAncho,\n		 T3.OffsetVanoAlto + T2.OffsetVanoAlto AS OffsetVanoAlto,\n		 T3.CoefVanoAncho * T2.CoefVanoAncho AS CoefVanoAncho,\n		 T3.CoefVanoAlto * T2.CoefVanoAlto AS CoefVanoAlto,\n		(CASE (T1.VidQuoteLPre)\n		     WHEN 0 THEN T2.`PrecioProd00`\n			WHEN 1 THEN T2.`PrecioProd01`\n			WHEN 2 THEN T2.`PrecioProd02`\n			WHEN 3 THEN T2.`PrecioProd03`\n			END) AS PrecioProd\n	FROM\n		 { OJ fzggestion.visprodadic AS T2\n		     RIGHT OUTER JOIN\n		 fzggestion.vidquoten3 AS T1 ON T2.ProductoID = T1.VidQuoteElementoID },\n		 fzggestion.visprodadic AS T3\n	WHERE\n		 T3.ProductoID = T1.VidQuoteProdID AND \n		 T3.ElementoID = T1.VidQuoteElementoID AND \n		 T1.VidQuoteProdID <> T1.VidQuoteElementoID AND T1.VidQuoteID = pVidQuoteID)\n	ORDER BY VidQuoteProdID,VidQuoteElementoID,ElementoID) AS T4\n	GROUP BY VidQuoteProdID,VidQuoteElementoID) AS T6\n	SET T5.VidQuotePrecio = T6.VidQuotePrecio, T5.VidQuotePrecioP = T6.VidQuotePrecioP\n	WHERE\n		 T5.VidQuoteID = pVidQuoteID AND \n		 T5.VidQuoteProdID = T6.VidQuoteProdID AND \n		 T5.VidQuoteElementoID = T6.VidQuoteElementoID;\nEND\n</pre></small>\n*20120925\n**Reestructura actualización del atributo de precio debido a que se incorpora el [[TRIG:Actualiza_Item_Presupuesto]] y produce un dead-lock al gestionar las mismas tablas. Se modifica el [[TRIG:Actualiza_Item_Presupuesto]] y se hace un UPDATE falso para forzar el Trigger de actualización a hacer el recálculo.\n<small><pre>\nUPDATE\n    vidquoten2 AS T1,\n    (SELECT \n        VidQuoteID,\n        VidQuoteItem,\n        VidQuoteProdCantidad,\n        VidQuoteProdID,\n        SUM(VidQuotePrecioP) AS VidQuotePrecioP\n    FROM\n        vidquoten3\n    GROUP BY\n        VidQuoteID,\n        VidQuoteItem) AS T2\nSET\n    T1.VidQuotePrecio=T2.VidQuotePrecioP\nWHERE\n    T1.VidQuoteID = pVidQuoteID AND\n    T1.VidQuoteID = T2.VidQuoteID AND\n    T1.VidQuoteItem = T2.VidQuoteItem;\nEND\n</pre></small>\n\n== Uso ==\n*[[FORM:Presupuesto]]\n*[[MACRO:BotonActualizarPresupuesto]]\n*[[TRIG:Actualiza_Item_Presupuesto]]','utf-8'),(1013,'[[Category:PROC]]\n== Descripción ==\nCalcula los valores de las diferentes listas de precios vigentes a partir de un valor indicado y los coeficientes de actualización asociados a cada producto.\n\n== Composición ==\n*[[TABLA:precios]]\n*[[TABLA:productos]]\n\n== Codigo ==\n<small><pre>\nDELIMITER $$\n\nCREATE DEFINER=`sas_admin`@`%` PROCEDURE `ActualizaPreciosTabular`(IN pFiltro VARCHAR(300), IN pAccion VARCHAR(2))\nBEGIN\n	SET @wcn = \" `precios`.`ProductoID`=`productos`.`ProductoID` AND `precios`.`Lista` = (SELECT Lista FROM listavigente)\";\n	SET @qry = \"UPDATE precios,productos SET \";\n    CASE pAccion\n		WHEN \"1\" THEN \n			BEGIN\n				SET @fld = \" \";\n				SET @fld = CONCAT(@fld,\"`precios`.`PrecioProd01` = `precios`.`PrecioProd00` * `productos`.`CoefP00P01`,\");\n				SET @fld = CONCAT(@fld,\"`precios`.`PrecioProd02` = `precios`.`PrecioProd00` * `productos`.`CoefP00P02`,\");\n				SET @fld = CONCAT(@fld,\"`precios`.`PrecioProd03` = `precios`.`PrecioProd00` * `productos`.`CoefP00P03`\");\n			END;\n		WHEN \"2\" THEN SET @fld = \" `precios`.`PrecioProd00` = `precios`.`PrecioProd01` / `productos`.`CoefP00P01`\";\n		WHEN \"3\" THEN SET @fld = \" `precios`.`PrecioProd00` = `precios`.`PrecioProd02` / `productos`.`CoefP00P02`\";\n		WHEN \"4\" THEN SET @fld = \" `precios`.`PrecioProd00` = `precios`.`PrecioProd03` / `productos`.`CoefP00P03`\";\n	END CASE;\n	IF pFiltro <> \"\" THEN SET @wcn = CONCAT(@wcn,\" AND \",pFiltro);\n	END IF;\n	SET @qry = CONCAT(@qry,@fld,\" WHERE \",@wcn);\n	PREPARE stmt FROM @qry;\n	EXECUTE stmt;\n	DEALLOCATE PREPARE stmt;\nEND\n</pre></small>\n\n== Bitácora ==\n*20120907\n**Se corrige la línea \'\'\'SET @fld = \" \"\'\'\' debido a que estaba tipeado \'\'\'@fls\'\'\'\n**Se cambia la variable \'\'\'@sql\'\'\' por \'\'\'@qry\'\'\'. Aparentemente la nueva versión de la DB toma la variable @sql como una constante del sistema\n\n== Uso ==\n*[[MACRO:RecalculaPrecios]]\n*[[FORM:PreciosTabularxProcesos]]','utf-8'),(1014,'[[Category:PROC]]\n== Descripción ==\nAgrega componentes de otro producto a un producto existente\n== Composición ==\n* [[TABLA:composicion]]\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\nDELIMITER $$\n\nCREATE PROCEDURE `AgregaProductoCompo`(IN pProductoIDOrg VARCHAR(8), IN pProductoIDDst VARCHAR(8), IN pProductoDSC VARCHAR(80))\nBEGIN\n	INSERT INTO composicion (\n		`composicion`.`ProductoID`,\n		`composicion`.`ElementoID`,\n		`composicion`.`ValorElemento`,\n		`composicion`.`ElementoPM`,\n		`composicion`.`OffsetVanoAncho`,\n		`composicion`.`OffsetVanoAlto`,\n		`composicion`.`CoefVanoAncho`,\n		`composicion`.`CoefVanoAlto`)(\n	SELECT\n		pProductoIDDst,\n		`composicion`.`ElementoID`,\n		`composicion`.`ValorElemento`,\n		`composicion`.`ElementoPM`,\n		`composicion`.`OffsetVanoAncho`,\n		`composicion`.`OffsetVanoAlto`,\n		`composicion`.`CoefVanoAncho`,\n		`composicion`.`CoefVanoAlto`\n	FROM composicion\n	WHERE `composicion`.`ProductoID` = pProductoIDOrg AND\n          `composicion`.`ElementoID` NOT IN \n            (SELECT ElementoID \n            FROM composicion \n            WHERE `composicion`.`ProductoID` = pProductoIDDst)\n    );\nEND\n</pre>\n== Bitácora ==\n* 20120627\n** Agregado como botón en el proceso correspondiente\n\n== Uso ==\n* [[FORM:CopiaComposicion]]\n* [[MACRO:AgregaComposicion]]\n\n== URL ==','utf-8'),(1015,'[[Category:PROC]]\n== Descripción ==\nCalcula el precio de un producto de acuerdo a parámetros mínimos y accediendo a la base de datos indicada\n== Composición ==\n*[[VISTA:visprodadic]]\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<small><pre>\nDELIMITER $$\n\nCREATE FUNCTION `CalculaPrecioBase`(pProducto VARCHAR(8), pElemento VARCHAR(8), pAncho INT(5), pAlto INT(5), pLista INT(1)) RETURNS DECIMAL(10,2)\nBEGIN\n  DECLARE pPrecioBase DECIMAL(10,2);\n  SET pPrecioBase = (SELECT\n	CASE `visprodadic`.`Magnitud`\n	WHEN \'M2\'\n	 THEN\n	  ((((pAlto+`visprodadic`.`OffsetVanoAlto`)*`visprodadic`.`CoefVanoAlto`) *\n	  ((pAncho+`visprodadic`.`OffsetVanoAncho`)*`visprodadic`.`CoefVanoAncho`))/1000000) *\n	   `visprodadic`.`ValorElemento` * \n	   (CASE (pLista)\n	    WHEN 1 THEN `visprodadic`.`PrecioProd01`\n	    WHEN 2 THEN `visprodadic`.`PrecioProd02`\n	    WHEN 3 THEN `visprodadic`.`PrecioProd03`\n	    END)\n	WHEN \'PR\'\n	 THEN\n	  ((((pAlto+`visprodadic`.`OffsetVanoAlto`) * 2 * `visprodadic`.`CoefVanoAlto`) + \n	  ((pAncho+`visprodadic`.`OffsetVanoAncho`) * 2 * `visprodadic`.`CoefVanoAncho`))\n       / 1000 ) * \n	  `visprodadic`.`ValorElemento` *\n	   (CASE (pLista)\n	    WHEN 1 THEN `visprodadic`.`PrecioProd01`\n	    WHEN 2 THEN `visprodadic`.`PrecioProd02`\n	    WHEN 3 THEN `visprodadic`.`PrecioProd03`\n	    END)\n	WHEN \'ML\'\n	 THEN\n	   (((pAncho+`visprodadic`.`OffsetVanoAncho`) * `visprodadic`.`CoefVanoAncho`) / 1000 ) * \n	   `visprodadic`.`ValorElemento` * \n	   (CASE (pLista)\n	    WHEN 1 THEN `visprodadic`.`PrecioProd01`\n	    WHEN 2 THEN `visprodadic`.`PrecioProd02`\n	    WHEN 3 THEN `visprodadic`.`PrecioProd03`\n	    END)\n	WHEN \'MG\'\n	 THEN\n	  ((((pAlto+`visprodadic`.`OffsetVanoAlto`)*`visprodadic`.`CoefVanoAlto`) +\n	  ((pAncho+`visprodadic`.`OffsetVanoAncho`)*`visprodadic`.`CoefVanoAncho`))/1000) *\n	  `visprodadic`.`ValorElemento` *\n	   (CASE (pLista)\n	    WHEN 1 THEN `visprodadic`.`PrecioProd01`\n	    WHEN 2 THEN `visprodadic`.`PrecioProd02`\n	    WHEN 3 THEN `visprodadic`.`PrecioProd03`\n	    END)\n	WHEN \'2H\'\n	 THEN\n	  (((pAlto+`visprodadic`.`OffsetVanoAlto`)*`visprodadic`.`CoefVanoAlto`) / 1000) * 2 *\n	  `visprodadic`.`ValorElemento` *\n	   (CASE (pLista)\n	    WHEN 1 THEN `visprodadic`.`PrecioProd01`\n	    WHEN 2 THEN `visprodadic`.`PrecioProd02`\n	    WHEN 3 THEN `visprodadic`.`PrecioProd03`\n	    END)\n	WHEN \'2W\'\n	 THEN\n	  (((pAncho+`visprodadic`.`OffsetVanoAncho`)*`visprodadic`.`CoefVanoAncho`) / 1000) * 2 *\n	  `visprodadic`.`ValorElemento` *\n	   (CASE (pLista)\n	    WHEN 1 THEN `visprodadic`.`PrecioProd01`\n	    WHEN 2 THEN `visprodadic`.`PrecioProd02`\n	    WHEN 3 THEN `visprodadic`.`PrecioProd03`\n	    END)\n	ELSE\n	   `visprodadic`.`ValorElemento` * \n	   (CASE (pLista)\n	    WHEN 1 THEN `visprodadic`.`PrecioProd01`\n	    WHEN 2 THEN `visprodadic`.`PrecioProd02`\n	    WHEN 3 THEN `visprodadic`.`PrecioProd03`\n	    END)\n	END AS `PrecioBase`\n	FROM `visprodadic` \n	WHERE `visprodadic`.`ProductoID` = pProducto AND\n		  `visprodadic`.`ElementoID` = pElemento);\n	RETURN pPrecioBase;\nEND$$\n</pre></small>\n\n== Bitácora ==\n*20120520\n**Incorpora el cálculo de las magnitudes \"2H\" (cálculo en base a la altura indicada multiplicada por 2) y \"2W\" (cálculo en base al ancho indicado multiplicado por 2).\n\n== Uso ==\n== URL ==','utf-8'),(1016,'[[Category:PROC]]\n== Descripción ==\n== Composición ==\nNo Tiene. Solo Función\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\nDELIMITER $$\n\nCREATE FUNCTION `CalculoMedidaReal`(pMedida INT(5),pOffset INT(11),pCoeficiente DECIMAL(16,8)) RETURNS INT(5)\nBEGIN\n	DECLARE pMedidaReal DECIMAL(10,2);\n	SET pMedidaReal = (pMedida+pOffset) * pCoeficiente;\n	RETURN pMedidaReal;\nEND\n</pre>\n== Bitácora ==\n== Uso ==\n== URL ==','utf-8'),(1017,'[[Category:PROC]]\n== Descripción ==\nCopia la información de un presupuesto seleccionado a otro nuevo.\n== Composición ==\n*[[TABLA:vidquoten1]]\n*[[TABLA:vidquoten2]]\n*[[TABLA:vidquoten3]]\n\n== Código ==\n<small><pre>\n-- --------------------------------------------------------------------------------\n-- Routine DDL\n-- Note: comments before and after the routine body will not be stored by the server\n-- --------------------------------------------------------------------------------\nDELIMITER $$\n\nCREATE DEFINER=`sas_admin`@`%` PROCEDURE `CopiaPresupuesto`(IN pVidQuoteID INT(5))\nBEGIN\n    -- ------------------------------------------------------\n    -- Insert from parameter QuoteID into itself\n    -- ------------------------------------------------------\n    INSERT INTO vidquoten1 (\n    `VidQuoteID`,\n    `VidQuoteObra`,\n    `VidQuoteCliente`,\n    `VidQuoteFecha`,\n    `VidQuoteFechaEst`,\n    `VidQuoteEstado`,\n    `VidQuoteACom`,\n    `VidQuoteMedCheck`)\n    SELECT\n    NULL,\n    `vidquoten1`.`VidQuoteObra`,\n    `vidquoten1`.`VidQuoteCliente`,\n    `vidquoten1`.`VidQuoteFecha`,\n    `vidquoten1`.`VidQuoteFechaEst`,\n    `vidquoten1`.`VidQuoteEstado`,\n    `vidquoten1`.`VidQuoteACom`,\n    `vidquoten1`.`VidQuoteMedCheck`\n    FROM `vidquoten1`\n    WHERE `vidquoten1`.`VidQuoteID`= pVidQuoteID;\n    -- ------------------------------------------------------\n    -- Take ID generated by AI\n    -- ------------------------------------------------------\n    SET @npr = LAST_INSERT_ID();\n    -- ------------------------------------------------------\n    -- Insert from parameter QuoteID into itself with @npr\n    -- ------------------------------------------------------\n    INSERT INTO `fzggestion`.`vidquoten2`\n    (`VidQuoteID`,\n    `VidQuoteItem`,\n    `VidQuotePredID`,\n    `VidQuoteProdID`,\n    `VidQuoteProdCantidad`,\n    `VidQuoteAncho`,\n    `VidQuoteAlto`,\n    `VidQuotePrecio`,\n    `VidQuoteDetalle`)\n    SELECT\n    @npr,\n    `vidquoten2`.`VidQuoteItem`,\n    `vidquoten2`.`VidQuotePredID`,\n    `vidquoten2`.`VidQuoteProdID`,\n    `vidquoten2`.`VidQuoteProdCantidad`,\n    `vidquoten2`.`VidQuoteAncho`,\n    `vidquoten2`.`VidQuoteAlto`,\n    `vidquoten2`.`VidQuotePrecio`,\n    `vidquoten2`.`VidQuoteDetalle`\n    FROM `vidquoten2`\n    WHERE `vidquoten2`.`VidQuoteID`= pVidQuoteID;\n    -- ------------------------------------------------------\n    -- Insert from parameter QuoteID into itself with @npr\n    -- ------------------------------------------------------\n    INSERT INTO `vidquoten3`\n    (`VidQuoteID`,\n    `VidQuoteItem`,\n    `VidQuoteProdID`,\n    `VidQuoteElementoID`,\n    `VidQuoteComposicID`,\n    `VidQuoteProdCantidad`,\n    `VidQuoteAncho`,\n    `VidQuoteAlto`,\n    `VidQuotePrecio`,\n    `VidQuotePrecioP`,\n    `VidQuoteIncluyeDet`)\n    SELECT\n    @npr,\n    `vidquoten3`.`VidQuoteItem`,\n    `vidquoten3`.`VidQuoteProdID`,\n    `vidquoten3`.`VidQuoteElementoID`,\n    `vidquoten3`.`VidQuoteComposicID`,\n    `vidquoten3`.`VidQuoteProdCantidad`,\n    `vidquoten3`.`VidQuoteAncho`,\n    `vidquoten3`.`VidQuoteAlto`,\n    `vidquoten3`.`VidQuotePrecio`,\n    `vidquoten3`.`VidQuotePrecioP`,\n    `vidquoten3`.`VidQuoteIncluyeDet`\n    FROM `fzggestion`.`vidquoten3`\n    WHERE `vidquoten3`.`VidQuoteID`= pVidQuoteID;\nEND\n</pre></small>\n== Bitácora ==\n*20120409\n**Alta para [[FORM:Presupuesto.v1.0]]\n<small><pre>\ndelimiter $$\n\nCREATE PROCEDURE `CopiaPresupuesto` (IN pVidQuoteID INT(5))\n\nBEGIN\n\nINSERT INTO vidquoten1 (\n`VidQuoteID`,\n`VidQuoteObra`,\n`VidQuoteCliente`,\n`VidQuoteFecha`,\n`VidQuoteValidez`,\n`VidQuoteFechaEst`,\n`VidQuoteEstado`,\n`VidQuoteACom`)\nSELECT\nNULL,\n`vidquoten1`.`VidQuoteObra`,\n`vidquoten1`.`VidQuoteCliente`,\n`vidquoten1`.`VidQuoteFecha`,\n`vidquoten1`.`VidQuoteValidez`,\n`vidquoten1`.`VidQuoteFechaEst`,\n`vidquoten1`.`VidQuoteEstado`,\n`vidquoten1`.`VidQuoteACom`\nFROM `fzggestion`.`vidquoten1`\nWHERE `vidquoten1`.`VidQuoteID`= pVidQuoteID;\n\nSET @npr = LAST_INSERT_ID();\n\nINSERT INTO `fzggestion`.`vidquoten2`\n(`VidQuoteID`,\n`VidQuoteLPre`,\n`VidQuoteItem`,\n`VidQuoteProdID`,\n`VidQuoteProdCantidad`,\n`VidQuoteAncho`,\n`VidQuoteAlto`,\n`VidQuotePrecio`,\n`VidQuoteDetalle`)\nSELECT\n@npr,\n`vidquoten2`.`VidQuoteLPre`,\n`vidquoten2`.`VidQuoteItem`,\n`vidquoten2`.`VidQuoteProdID`,\n`vidquoten2`.`VidQuoteProdCantidad`,\n`vidquoten2`.`VidQuoteAncho`,\n`vidquoten2`.`VidQuoteAlto`,\n`vidquoten2`.`VidQuotePrecio`,\n`vidquoten2`.`VidQuoteDetalle`\nFROM `fzggestion`.`vidquoten2`\nWHERE `vidquoten2`.`VidQuoteID`= pVidQuoteID;\n\nINSERT INTO `fzggestion`.`vidquoten3`\n(`VidQuoteID`,\n`VidQuoteLPre`,\n`VidQuoteItem`,\n`VidQuoteProdID`,\n`VidQuoteProdCantidad`,\n`VidQuoteAncho`,\n`VidQuoteAlto`,\n`VidQuoteElementoID`,\n`VidQuotePrecio`,\n`VidQuotePrecioP`,\n`VidQuoteIncluyeDet`)\nSELECT\n@npr,\n`vidquoten3`.`VidQuoteLPre`,\n`vidquoten3`.`VidQuoteItem`,\n`vidquoten3`.`VidQuoteProdID`,\n`vidquoten3`.`VidQuoteProdCantidad`,\n`vidquoten3`.`VidQuoteAncho`,\n`vidquoten3`.`VidQuoteAlto`,\n`vidquoten3`.`VidQuoteElementoID`,\n`vidquoten3`.`VidQuotePrecio`,\n`vidquoten3`.`VidQuotePrecioP`,\n`vidquoten3`.`VidQuoteIncluyeDet`\nFROM `fzggestion`.`vidquoten3`\nWHERE `vidquoten3`.`VidQuoteID`= pVidQuoteID;\n\nINSERT INTO `fzggestion`.`vidquoten4`\n(`VidQuoteID`,\n`VidQuoteItem`,\n`VidQuoteProdID`,\n`VidQuoteElementoID`,\n`VidQuoteValorID`,\n`VidQuoteVTipo`,\n`VidQuoteVNecesario`,\n`VidQuoteVEntero`,\n`VidQuoteVDecimal`,\n`VidQuoteVTexto`)\nSELECT\n@npr,\n`vidquoten4`.`VidQuoteItem`,\n`vidquoten4`.`VidQuoteProdID`,\n`vidquoten4`.`VidQuoteElementoID`,\n`vidquoten4`.`VidQuoteValorID`,\n`vidquoten4`.`VidQuoteVTipo`,\n`vidquoten4`.`VidQuoteVNecesario`,\n`vidquoten4`.`VidQuoteVEntero`,\n`vidquoten4`.`VidQuoteVDecimal`,\n`vidquoten4`.`VidQuoteVTexto`\nFROM `fzggestion`.`vidquoten4`\nWHERE `vidquoten4`.`VidQuoteID`= pVidQuoteID;\nEND$$\n</pre></small>\n*20120925\n**Actualización de los atributos a utilizar y eliminación provisoria de la información de [[TABLA:vidquoten4]]\n== Uso ==\n*[[FORM:Presupuesto]]\n*[[MACRO:PresupuestoCopia]]','utf-8'),(1018,'[[Category:PROC]]\n== Descripción ==\nDuplica la composición de un producto sobre otro producto. Ya que existe el [[TRIG:productos.alta]] sobre la [[TABLA:productos]] que genera en forma automática los registros de [[TABLA:precios]] y [[TABLA:composicion]] ante el alta de un producto, se eliminan los correspondientes a la [[TABLA:composicion]]\n== Composición ==\n* [[TABLA:productos]]\n* [[TABLA:composicion]]\n\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<small><pre>\nDELIMITER $$\n\nCREATE DEFINER=`sas_admin`@`%` PROCEDURE `DuplicaProductoCompo`(IN pProductoIDOrg VARCHAR(8), IN pProductoIDDst VARCHAR(8), IN pProductoDSC VARCHAR(80))\nBEGIN\n    DELETE FROM productos WHERE `productos`.`ProductoID` = pProductoIDDst;\n    INSERT INTO productos\n        (`productos`.`ProductoID`,\n        `productos`.`CategoriaID`,\n        `productos`.`Descripcion`,\n        `productos`.`ProveedorID`,\n        `productos`.`Reposicion`,\n        `productos`.`Magnitud`,\n        `productos`.`CoefP00P01`,\n        `productos`.`CoefP00P02`,\n        `productos`.`CoefP00P03`,\n        `productos`.`ProductoPID`,\n        `productos`.`InsumoIMG`)(\n	SELECT\n        pProductoIDDst,\n        `productos`.`CategoriaID`,\n        pProductoDSC,\n        `productos`.`ProveedorID`,\n        `productos`.`Reposicion`,\n        `productos`.`Magnitud`,\n        `productos`.`CoefP00P01`,\n        `productos`.`CoefP00P02`,\n        `productos`.`CoefP00P03`,\n        `productos`.`ProductoPID`,\n        `productos`.`InsumoIMG`\n	FROM productos\n	WHERE `productos`.`ProductoID` = pProductoIDOrg);\n	DELETE FROM composicion WHERE ProductoID = pProductoIDDst;\n	INSERT INTO composicion (\n		`composicion`.`ProductoID`,\n		`composicion`.`ElementoID`,\n		`composicion`.`ValorElemento`,\n		`composicion`.`ElementoPM`,\n		`composicion`.`OffsetVanoAncho`,\n		`composicion`.`OffsetVanoAlto`,\n		`composicion`.`CoefVanoAncho`,\n		`composicion`.`CoefVanoAlto`)(\n	SELECT\n		pProductoIDDst,\n		`composicion`.`ElementoID`,\n		`composicion`.`ValorElemento`,\n		`composicion`.`ElementoPM`,\n		`composicion`.`OffsetVanoAncho`,\n		`composicion`.`OffsetVanoAlto`,\n		`composicion`.`CoefVanoAncho`,\n		`composicion`.`CoefVanoAlto`\n	FROM composicion\n	WHERE `composicion`.`ProductoID` = pProductoIDOrg);\nEND\n</pre></small>\n\n== Bitácora ==\n*20100608\n**Al tiempo de reformular el [[FORM:CopiaComposicion]], se modifica el procedimiento que depende del [[BTN:Copiar]] del [[FORM:CopiaComposicion]]. Código Previo:\n<small><pre>\nDELIMITER $$\nCREATE DEFINER=`sas_admin`@`%` PROCEDURE `DuplicaProductoCompo`(IN pProductoIDOrg VARCHAR(8), IN pProductoIDDst VARCHAR(8))\nBEGIN\n	INSERT INTO composicion (\n		`composicion`.`ProductoID`,\n		`composicion`.`ElementoID`,\n		`composicion`.`ValorElemento`,\n		`composicion`.`ElementoPM`,\n		`composicion`.`OffsetVanoAncho`,\n		`composicion`.`OffsetVanoAlto`)(\n	SELECT\n		pProductoIDDst,\n		`composicion`.`ElementoID`,\n		`composicion`.`ValorElemento`,\n		`composicion`.`ElementoPM`,\n		`composicion`.`OffsetVanoAncho`,\n		`composicion`.`OffsetVanoAlto`\n	FROM `fzggestion`.`composicion`\n	WHERE `composicion`.`ProductoID` = pProductoIDOrg);\nEND\n</pre></small>\n*20120904\n**Se agrega al actual la cláusula de eliminación de los datos anteriores del producto destino si existiese.  Código Previo:\n<small><pre>\nDELIMITER $$\n\nCREATE PROCEDURE `DuplicaProductoCompo`(IN pProductoIDOrg VARCHAR(8), IN pProductoIDDst VARCHAR(8), IN pProductoDSC VARCHAR(80))\nBEGIN\n    INSERT INTO productos\n        (`productos`.`ProductoID`,\n        `productos`.`CategoriaID`,\n        `productos`.`Descripcion`,\n        `productos`.`ProveedorID`,\n        `productos`.`Reposicion`,\n        `productos`.`Magnitud`,\n        `productos`.`CoefP00P01`,\n        `productos`.`CoefP00P02`,\n        `productos`.`CoefP00P03`,\n        `productos`.`ProductoPID`,\n        `productos`.`InsumoIMG`)(\n	SELECT\n        pProductoIDDst,\n        `productos`.`CategoriaID`,\n        pProductoDSC,\n        `productos`.`ProveedorID`,\n        `productos`.`Reposicion`,\n        `productos`.`Magnitud`,\n        `productos`.`CoefP00P01`,\n        `productos`.`CoefP00P02`,\n        `productos`.`CoefP00P03`,\n        `productos`.`ProductoPID`,\n        `productos`.`InsumoIMG`\n	FROM productos\n	WHERE `productos`.`ProductoID` = pProductoIDOrg);\n	DELETE FROM composicion WHERE ProductoID = pProductoIDDst;\n	INSERT INTO composicion (\n		`composicion`.`ProductoID`,\n		`composicion`.`ElementoID`,\n		`composicion`.`ValorElemento`,\n		`composicion`.`ElementoPM`,\n		`composicion`.`OffsetVanoAncho`,\n		`composicion`.`OffsetVanoAlto`,\n		`composicion`.`CoefVanoAncho`,\n		`composicion`.`CoefVanoAlto`)(\n	SELECT\n		pProductoIDDst,\n		`composicion`.`ElementoID`,\n		`composicion`.`ValorElemento`,\n		`composicion`.`ElementoPM`,\n		`composicion`.`OffsetVanoAncho`,\n		`composicion`.`OffsetVanoAlto`,\n		`composicion`.`CoefVanoAncho`,\n		`composicion`.`CoefVanoAlto`\n	FROM composicion\n	WHERE `composicion`.`ProductoID` = pProductoIDOrg);\nEND\n</pre></small>\n\n== Uso ==\n== URL ==','utf-8'),(1019,'[[Category:PROC]]\n== Descripción ==\nTraslada las modificaciones hechas sobre la [[TABLA:vidquoten3tmp]] a la definitiva [[TABLA:vidquoten3]]\n== Composición ==\n*[[TABLA:vidquoten3]]\n*[[TABLA:vidquoten3tmp]]\n\n== Código ==\n<small><pre>\n-- --------------------------------------------------------------------------------\n-- Routine DDL\n-- Note: comments before and after the routine body will not be stored by the server\n-- --------------------------------------------------------------------------------\nDELIMITER $$\n\nCREATE DEFINER=`sas_admin`@`%` PROCEDURE `GrabaItemPresupuestoTmp`(IN pVidQuoteID INT(5), IN pVidQuoteItem INT(5))\nBEGIN\n    DELETE FROM\n        vidquoten3 \n    WHERE\n        VidQuoteID=pVidQuoteID AND \n        VidQuoteItem=pVidQuoteItem;\n	-- -------------------------------------------------------------\n	INSERT INTO vidquoten3 (\n        VidQuoteID,\n        VidQuoteItem,\n        VidQuoteProdID,\n        VidQuoteProdCantidad,\n        VidQuoteElementoID,\n        VidQuoteComposicID,\n        VidQuoteElementoPM,\n        VidQuotePrecio,\n        VidQuotePrecioP,\n        VidQuoteIncluyeDet)\n	SELECT\n        VidQuoteID,\n        VidQuoteItem,\n        VidQuoteProdID,\n        VidQuoteProdCantidad,\n        VidQuoteElementoID,\n        VidQuoteComposicID,\n        VidQuoteElementoPM,\n        VidQuotePrecio,\n        VidQuotePrecioP,\n        IF(VidQuoteProdID=VidQuoteElementoID,\n            0,\n            VidQuoteIncluyeDet)\n            AS VidQuoteIncluyeDet\n    FROM\n        vidquoten3tmp AS T1\n    WHERE\n        T1.VidQuoteID=pVidQuoteID AND \n        T1.VidQuoteItem=pVidQuoteItem AND \n        T1.VidQuoteQuickSelect=1;\n	-- -------------------------------------------------------------\n	DELETE FROM\n        vidquoten3tmp\n    WHERE \n        VidQuoteID=pVidQuoteID AND \n        VidQuoteItem=pVidQuoteItem;\nEND\n</pre></small>\n== Bitácora ==\n*20121002\n**Gestión interna de corrección automático ante los [[CTRL:VidQuoteIncluyeDet]]. Modifica el valor proveniente del formulario para el atributo cuando el código de producto y código de elemento son iguales (porque no corresponde agregarlo ya que ya está incluido el text dentro de la descripción del producto. Anterior:\n<small><pre>\nDELIMITER $$\n\nCREATE DEFINER=`sas_admin`@`%` PROCEDURE `GrabaItemPresupuestoTmp`(IN pVidQuoteID INT(5), IN pVidQuoteItem INT(5))\nBEGIN\n    DELETE FROM vidquoten3 WHERE VidQuoteID=pVidQuoteID AND VidQuoteItem=pVidQuoteItem;\n	INSERT INTO vidquoten3 (\n		VidQuoteID,\n		VidQuoteItem,\n		VidQuoteProdID,\n		VidQuoteProdCantidad,\n		VidQuoteElementoID,\n		VidQuotePrecio,\n		VidQuotePrecioP,\n       VidQuoteIncluyeDet)\n	SELECT\n		VidQuoteID,\n		VidQuoteItem,\n		VidQuoteProdID,\n		VidQuoteProdCantidad,\n       VidQuoteElementoID,\n       VidQuotePrecio,\n       VidQuotePrecioP,\n       VidQuoteIncluyeDet\n	FROM\n        vidquoten3tmp\n    WHERE\n        VidQuoteID=pVidQuoteID AND VidQuoteItem=pVidQuoteItem;\nEND\n</pre></small>\n\n== Uso ==\n*[[FORM:Presupuesto]]\n*[[MACRO:BotonEditarComponentes]]','utf-8'),(1020,'[[Category:PROC]]\n== Descripción ==\nElimina las registraciones temporales al tiempo de pulsar el reset de la operación de edición de componentes en presupuesto.\n== Composición ==\n[[TABLA:vidquoten3tmp]]\n== Código ==\n<small><pre>\ndelimiter $$\n\nCREATE DEFINER=`sas_admin`@`%` PROCEDURE `ResetEdicionItemTmp`(IN pVidQuoteID INT(5), IN pVidQuoteItem INT(5))\nBEGIN\n   DECLARE vVarNum INT(5);\n   SET vVarNum = (\n        SELECT COUNT(*) FROM vidquoten3\n        WHERE \n            VidQuoteID=pVidQuoteID AND \n            VidQuoteItem=pVidQuoteItem);\n   CALL DebugCheckPoint(\n        CONCAT(\n        \"PROC:ResetEdicionItemTmp\",\"/\",\n        \"Cantidad Registros DELETE: \",\n        CAST(vVarNum AS CHAR)\n        ));\n	DELETE\n	FROM vidquoten3tmp\n	WHERE\n		VidQuoteID=pVidQuoteID AND \n		VidQuoteItem=pVidQuoteItem;\n    SET vVarNum = (\n        SELECT COUNT(*) FROM vidquoten3\n        WHERE \n            VidQuoteID=pVidQuoteID AND \n            VidQuoteItem=pVidQuoteItem);\n    CALL DebugCheckPoint(\n        CONCAT(\n        \"PROC:ResetEdicionItemTmp\",\"/\",\n        \"Cantidad Registros DELETE: \",\n        CAST(vVarNum AS CHAR)\n        ));\nEND$$\n</pre></small>\n== Bitácora ==\n*20120908\n**Creación\n== Uso ==\n[[FORM:Presupuesto]]','utf-8'),(1021,'=== Estructuras de Datos ===\n==== Estructuras Tipo ====\n[[Estructuras SQL]]\n\n===== Template Layout General =====\n* [[TEMP:LayoutGeneral]]\n\n==== Vistas ====\n[http://sqlformat.appspot.com/ SQLFormatBeautify]\n\n<small>\n{| class=\"wikitable\"\n| <center>\'\'\'Nombre\'\'\'</center>\n| <center>\'\'\'Comando\'\'\'</center>\n| <center>\'\'\'Uso\'\'\'</center>\n| <center>\'\'\'Cross\'\'\'</center>\n\n|-\n| Viscabdetalla\n| FZG.Vista.viscabdetalla.sql\n| Vista utilizada para agregar la información de cual es la lista de precios a utilizar para el cliente del presupuesto en tiempo real.FORM: Presupuesto\n| Contactos, Vidquoten1\n\n|-\n| Proveedores\n| FZG.Vista.proveedores.sql\n| Visualización de Contactos “Proveedores”\n| Contactos\n\n|-\n| Clientes\n| FZG.Vista.clientes.sql\n| Visualización de Contactos “Clientes”\n| Contactos\n\n|-\n| Visreppres\n| FZG.Vista.visreppres.sql\n| Vista Reporte Presupuesto Individual. Para generar una línea completa con la información de detalle de los presupuestos con las combinaciones de información a incluir en el mismo. No contiene la información estática del cliente.\n| Vislineabs, Visdetaobs\n\n|-\n| Viscompodis\n| FZG.Vista.viscompodis.sql\n| Vista de productos (DISTINCT productos) dentro de la tabla de composición ordenada por alfabéticamente.\n| \n\n|-\n| Viscoposimpl\n| FZG.Vista.viscomposimpl.sql\n| Vista de los elementos de composicion con información para query\n| Productos, Composición\n\n|-\n| Visdetaobs\n| FZG.Vista.visdetaobs.sql\n| Une todas las Observaciones de cada item para los casos que se encuentren señaladas con la Descripción del Producto-Item\n| Productos, Vidquoten3\n\n|-\n| Visintdetpre\n| FZG.Vista.visintdetpre.sql\n| Reducción de vista Visprodadic aplicable al cálculo de presupuesto con los datos en tiempo real del presupuesto activo en formulario y calculando el precio correcto de acuerdo al cliente y el cálculo del valor del elemento de acuerdo al los valores de Alto y Ancho del Vano en tiempo real\n| Visprodadic, Vidquoten2\n\n|-\n| Vislineabs\n| [[FZG.Vista.vislineabs.sql]]\n| Define linea básica para reporte teniendo como base Vidquoten2, agregando la información de la cabecera + datos de descrpción de producto + el subtotal por Producto-Item\n| Vidquoten1, Vidquoten2, Productos, Vissubxitem\n\n|-\n| Visprodadic\n| FZG.Vista.visproadic.sql\n| Vista de tabla de componentes con la información de cada elemento como producto y de los precios vigentes.\n| Productos, Composicion, PreciosVigentes\n\n|-\n| Vissubxitem\n| FZG.Vista.vissubxitem.sql\n| Subtotal por Item de Presupuesto en tiempo real\n| Vidquoten3\n\n|-\n| Listavigente\n| \n| Selecciona solo el primer registro ordenado en forma descendente de la tabla de listasprecios\n| Listasprecios\n\n|-\n| Preciosvigentes\n| FZG.Vista.preciosvigentes.sql\n| Es la selección de la tabla de precios referenciando el mayor valor dentro de la tabla de listasprecios\n| Listasprecios, Precios\n\n|-\n| Preciosvigact\n| FZG.Vista.preciosvigact.sql\n| Vista de lista de precios vigentes con datos de productos para actualización columnar.FORM: Actualización por tipo de lista\n| Preciosvigentes, Productos\n\n|-\n| Precioscmpl\n| [[FZG.Vista.precioscmpl.sql]]\n| Vista de lista de precios completa con datos de productos. [[FORM: Precios Tabular x Proceso]]\n| Precios, Productos\n\n|-\n| Visprestot\n| FZG.Vista.visprestot.sql\n| Vista de Presupuestos Totalizados por Cliente\n| Visreppres\n\n|-\n| Viscompcnt\n| [[FZG.Vista.viscompcnt.sql]]\n| Vista resumen de Componentes completa con indicadores de estado de composición\n| composicion, producto\n|}</small>\n\n=== Objetos ===\n==== Formularios ====\n*[[FORM:Presupuesto]]\n*[[FORM:CopiaComposicion]]\n*[[FORM:Pagos]]\n*[[FORM:Cobranzas]]\n\n==== Reportes ====\n*[[RPRT:Presupuestos]]\n*[[RPRT:PresupuestosDirecto]]\n*[[RPRT:IndividualCRM]]\n\n=== Bibliotecas ===\n*[[LIBR:FazzGlassMcr]]\n*[[LIBR:SpanexB]]\n*[[LIBR:SpanexC]]','utf-8'),(1022,'===Estructuras de Trabajo===\n*[[:Category:TABLAS|Tablas]]\n*[[:Category:VISTAS|Vistas]]\n*[[:Category:MACROS|Macros]]\n*[[:Category:RPRT|Informes]]\n*[[:Category:PROC|Procedimientos]]\n*[[:Category:LIBR|Bibliotecas]]','utf-8'),(1023,'[[Category:LIBR]]\n*[[MACRO:AccesaMRIStarDesktop]]\n*[[MACRO:AccesaMRIThisComponent]]\n*[[MACRO:AccesaMRIThisDatabaseDocument]]\n*[[MACRO:ActivaFiltroCheques]]\n*[[MACRO:ActivaFiltroContactos]]\n*[[MACRO:ActivaFiltroPredefinidos]]\n*[[MACRO:ActivaFiltroPresupuesto]]\n*[[MACRO:ActivaFiltroProductosGeneral]]\n*[[MACRO:ActivaNuevaListaPrecio]]\n*[[MACRO:AfterRecordChangeFORMProductos]]\n*[[MACRO:AfterUpdateElementoDProducto]]\n*[[MACRO:AgregaComposicion]]\n*[[MACRO:AplicarCambioMasivoPrecios]]\n*[[MACRO:ApruebaPresupuesto]]\n*[[MACRO:ARAEndosoCheque]]\n*[[MACRO:BotonAbrirPredefinidos]]\n*[[MACRO:BotonEnviarCorreoPresupuesto]]\n*[[MACRO:BotonImprimirPresupuesto]]\n*[[MACRO:BotonSeleccionaPredefinido]]\n*[[MACRO:BRAEndosoCheque]]\n*[[MACRO:CambioMasivoCoeficientesPrecios]]\n*[[MACRO:CentrarMensaje]]\n*[[MACRO:ChangeFieldtxtProductoIDFORMCopiaComp]]\n*[[MACRO:ChangeFieldtxtProductoIDFORMProductos]]\n*[[MACRO:CheckLicenceOK]]\n*[[MACRO:ChequeoProductoRepetido]]\n*[[MACRO:ChequeoValorLicenciaOK]]\n*[[MACRO:ConfirmeEliminarDetalleProducto]]\n*[[MACRO:ConfirmeEliminarLogPrecio]]\n*[[MACRO:ConfirmeEliminarProducto]]\n*[[MACRO:ConfirmeEliminarProductoCore]]\n*[[MACRO:CopiaComposicion]]\n*[[MACRO:DateStampPrecioUpdate]]\n*[[MACRO:DateTodbDate]]\n*[[MACRO:EliminaContenidoCampo]]\n*[[MACRO:EnviaQryPresupuesto]]\n*[[MACRO:EscondeBarras]]\n*[[MACRO:EventoAfterRecordAction]]\n*[[MACRO:EventoARADetallePresupuesto]]\n*[[MACRO:EventoBeforeRecordChange]]\n*[[MACRO:EventoBeforeReloading]]\n*[[MACRO:EventoBRADetallePresupuesto]]\n*[[MACRO:EventoBRADetalleProducto]]\n*[[MACRO:EventoBRAProductosCore]]\n*[[MACRO:EventoBRCDetallePresupuesto]]\n*[[MACRO:EventoBRCDetalleProducto]]\n*[[MACRO:EventoWhenLoading]]\n*[[MACRO:EventoWhenLoadingFormCabecera]]\n*[[MACRO:EventoWhenLoadingFORMCobranzas]]\n*[[MACRO:EventoWhenLoadingFORMPagos]]\n*[[MACRO:EventoWhenReloading]]\n*[[MACRO:FileAttributeString]]\n*[[MACRO:GeneraFechaListaPrecio]]\n*[[MACRO:GeneraNuevoDefaultListaPrecio]]\n*[[MACRO:GeneraResguardo]]\n*[[MACRO:GrabaScriptBkp]]\n*[[MACRO:Hoy]]\n*[[MACRO:ImprimeQryPresupuesto]]\n*[[MACRO:LayoutIn]]\n*[[MACRO:LayoutOut]]\n*[[MACRO:LimpiarMasivoCoeficientesPrecios]]\n*[[MACRO:LookupData]]\n*[[MACRO:Main]]\n*[[MACRO:NewProductoListbox]]\n*[[MACRO:NewResetListBoxDetalleProducto]]\n*[[MACRO:onClickOpenForm]]\n*[[MACRO:OpenForm]]\n*[[MACRO:OpenMainMenu]]\n*[[MACRO:OptionBtnAR]]\n*[[MACRO:OptionBtnOrdenChq]]\n*[[MACRO:PresupuestoCopia]]\n*[[MACRO:PresupuestoExpirado]]\n*[[MACRO:QuerySimple]]\n*[[MACRO:RecalculaPrecios]]\n*[[MACRO:ReemplazaStr]]\n*[[MACRO:ReporteClientesCRM]]\n*[[MACRO:ResguardoEjecutar]]\n*[[MACRO:ResguardoInicializa]]\n*[[MACRO:ResguardoSalir]]\n*[[MACRO:RestituyeFiltroOriginal]]\n*[[MACRO:SugerenciaImporteCheque]]\n*[[MACRO:Sugerencio]]\n*[[MACRO:SwitchBarras]]\n*[[MACRO:SwitchCheckboxParam]]\n*[[MACRO:Test]]\n*[[MACRO:TestMRI]]\n*[[MACRO:TestThisComponent]]\n*[[MACRO:TestThisControl]]\n*[[MACRO:TextoStatusBar]]\n*[[MACRO:VisibleDetalleElementoGrid]]\n*[[MACRO:VisibleFiltroPresupuesto]]','utf-8'),(1024,'[[Category:LIBR]]\n*[[MACRO:ActivaFiltroValoresGeneral]]\n*[[MACRO:ActivaRelacionForm]]\n*[[MACRO:ActualizaDB]]\n*[[MACRO:ActualizaRegistroCheckBox]]\n*[[MACRO:AltaProductoPresupuesto]]\n*[[MACRO:AprobacionPresupuesto]]\n*[[MACRO:BotonActualizarPresupuesto]]\n*[[MACRO:BotonContactosExpress]]\n*[[MACRO:BotonEditarComponentes]]\n*[[MACRO:CheckValidMeasure]]\n*[[MACRO:ConfirmaDeletePresupuesto]]\n*[[MACRO:ControlFormPresupuesto]]\n*[[MACRO:ControlLista]]\n*[[MACRO:CopiaComponenteSimple]]\n*[[MACRO:DefineAccionForm]]\n*[[MACRO:DespliegaGrid]]\n*[[MACRO:DespliegaListBox]]\n*[[MACRO:EndosarTercerosEnGrilla]]\n*[[MACRO:EnviaClienteIDCobranza]]\n*[[MACRO:EventoWhenReceivingFocus]]\n*[[MACRO:FiltroPlusText]]\n*[[MACRO:iiif]]\n*[[MACRO:MenuArbol]]\n*[[MACRO:MuestraSubForm]]\n*[[MACRO:OptionBtnAP]]\n*[[MACRO:RecalculaSubTotalProductoTmp]]\n*[[MACRO:ResetFiltroProductoFORMPresupuesto]]\n*[[MACRO:RoundN]]\n*[[MACRO:SelectC_selectionChanged]]\n*[[MACRO:SelectS_getSelection]]\n*[[MACRO:SelectS_select]]\n*[[MACRO:SplitMsg]]\n*[[MACRO:SugerenciaContactoID]]\n*[[MACRO:Tree_disposing]]\n*[[MACRO:Tree_requestChildNodes]]\n*[[MACRO:Tree_treeCollapsed]]\n*[[MACRO:Tree_treeCollapsing]]\n*[[MACRO:Tree_treeExpanded]]\n*[[MACRO:Tree_treeExpanding]]\n*[[MACRO:VisibleIngresoCheque]]','utf-8'),(1025,'[[Category:LIBR]]\n*[[MACRO:CuadroPrueba]]\n*[[MACRO:CuadroPrueba1]]\n*[[MACRO:CuadroPrueba2]]\n*[[MACRO:EventoAfterUpdatingProductoID]]\n*[[MACRO:EventoBeforeUpdating]]\n*[[MACRO:EventoChanged]]\n*[[MACRO:EventoExecAction]]\n*[[MACRO:EventoItemStatusChanged]]\n*[[MACRO:PruebaDraw]]\n*[[MACRO:ShowToolbars]]\n*[[MACRO:StartDocument]]\n*[[MACRO:XGridSelection_disposing]]\n*[[MACRO:XGridSelection_selectionChanged]]','utf-8'),(1026,'Lista de Bibliotecas asociadas','utf-8'),(1027,'=== Estructuras de Datos ===\n==== Estructuras Tipo ====\n[[Estructuras SQL]]\n\n===== Template Layout General =====\n* [[TEMP:LayoutGeneral]]\n\n==== Vistas ====\n[http://sqlformat.appspot.com/ SQLFormatBeautify]\n\n<small>\n{| class=\"wikitable\"\n| <center>\'\'\'Nombre\'\'\'</center>\n| <center>\'\'\'Comando\'\'\'</center>\n| <center>\'\'\'Uso\'\'\'</center>\n| <center>\'\'\'Cross\'\'\'</center>\n\n|-\n| Viscabdetalla\n| FZG.Vista.viscabdetalla.sql\n| Vista utilizada para agregar la información de cual es la lista de precios a utilizar para el cliente del presupuesto en tiempo real.FORM: Presupuesto\n| Contactos, Vidquoten1\n\n|-\n| Proveedores\n| FZG.Vista.proveedores.sql\n| Visualización de Contactos “Proveedores”\n| Contactos\n\n|-\n| Clientes\n| FZG.Vista.clientes.sql\n| Visualización de Contactos “Clientes”\n| Contactos\n\n|-\n| Visreppres\n| FZG.Vista.visreppres.sql\n| Vista Reporte Presupuesto Individual. Para generar una línea completa con la información de detalle de los presupuestos con las combinaciones de información a incluir en el mismo. No contiene la información estática del cliente.\n| Vislineabs, Visdetaobs\n\n|-\n| Viscompodis\n| FZG.Vista.viscompodis.sql\n| Vista de productos (DISTINCT productos) dentro de la tabla de composición ordenada por alfabéticamente.\n| \n\n|-\n| Viscoposimpl\n| FZG.Vista.viscomposimpl.sql\n| Vista de los elementos de composicion con información para query\n| Productos, Composición\n\n|-\n| Visdetaobs\n| FZG.Vista.visdetaobs.sql\n| Une todas las Observaciones de cada item para los casos que se encuentren señaladas con la Descripción del Producto-Item\n| Productos, Vidquoten3\n\n|-\n| Visintdetpre\n| FZG.Vista.visintdetpre.sql\n| Reducción de vista Visprodadic aplicable al cálculo de presupuesto con los datos en tiempo real del presupuesto activo en formulario y calculando el precio correcto de acuerdo al cliente y el cálculo del valor del elemento de acuerdo al los valores de Alto y Ancho del Vano en tiempo real\n| Visprodadic, Vidquoten2\n\n|-\n| Vislineabs\n| [[FZG.Vista.vislineabs.sql]]\n| Define linea básica para reporte teniendo como base Vidquoten2, agregando la información de la cabecera + datos de descrpción de producto + el subtotal por Producto-Item\n| Vidquoten1, Vidquoten2, Productos, Vissubxitem\n\n|-\n| Visprodadic\n| FZG.Vista.visproadic.sql\n| Vista de tabla de componentes con la información de cada elemento como producto y de los precios vigentes.\n| Productos, Composicion, PreciosVigentes\n\n|-\n| Vissubxitem\n| FZG.Vista.vissubxitem.sql\n| Subtotal por Item de Presupuesto en tiempo real\n| Vidquoten3\n\n|-\n| Listavigente\n| \n| Selecciona solo el primer registro ordenado en forma descendente de la tabla de listasprecios\n| Listasprecios\n\n|-\n| Preciosvigentes\n| FZG.Vista.preciosvigentes.sql\n| Es la selección de la tabla de precios referenciando el mayor valor dentro de la tabla de listasprecios\n| Listasprecios, Precios\n\n|-\n| Preciosvigact\n| FZG.Vista.preciosvigact.sql\n| Vista de lista de precios vigentes con datos de productos para actualización columnar.FORM: Actualización por tipo de lista\n| Preciosvigentes, Productos\n\n|-\n| Precioscmpl\n| [[FZG.Vista.precioscmpl.sql]]\n| Vista de lista de precios completa con datos de productos. [[FORM: Precios Tabular x Proceso]]\n| Precios, Productos\n\n|-\n| Visprestot\n| FZG.Vista.visprestot.sql\n| Vista de Presupuestos Totalizados por Cliente\n| Visreppres\n\n|-\n| Viscompcnt\n| [[FZG.Vista.viscompcnt.sql]]\n| Vista resumen de Componentes completa con indicadores de estado de composición\n| composicion, producto\n|}</small>\n\n=== Objetos ===\n==== Formularios ====\n*[[FORM:Presupuesto]]\n*[[FORM:CopiaComposicion]]\n*[[FORM:Pagos]]\n*[[FORM:Cobranzas]]\n\n==== Reportes ====\n*[[RPRT:Presupuestos]]\n*[[RPRT:PresupuestosDirecto]]\n*[[RPRT:IndividualCRM]]','utf-8'),(1028,'[[Category:RPRT]]\n== Descripción ==\nA partir de la ejecución, se indica en [[TABLA:reppresqry]] el presupuesto fetcheado en ese momento. Se hace una combinación a partir de la [[TABLA:vidquoten2]] combinada con [[TABLA:vidquoten3]] tomando en 2 partes (por la diferencia entre el [[CTRL:VidQuoteIncluyeDet]]) seleccionando todos los registro en la 1º parte y en la segunda todos aquellos que que no tengan el valor del [[CTRL:VidQuoteIncluyeDet]] = 0 y que no se encuentren dentro de la primera parte. Se agregan para completar el cuadro los datos complementarios de [[TABLA:vidquoten1]], [[TABLA:productos]], [[VISTA:clientes]] y un totalizador por presupuesto que no es posible de generar dentro de la 4º forma normal con las tablas al tiempo de ejecuación del reporte propiamente dicho.\n\n== Composición ==\n*[[TABLA:vidquoten2]]\n*[[TABLA:vidquoten3]]\n*[[TABLA:vidquoten1]]\n*[[TABLA:productos]]\n*[[VISTA:clientes]]\n*[[TABLA:reppresqry]]\n== SQL ==\n<small><pre>\nSELECT \n    U2.VidQuoteID,\n    U2.VidQuoteItem,\n    U2.VidQuoteProdCantidad,\n    U2.VidQuoteProdID,\n    U2.Dimension,\n    U2.Precio,\n    U2.VidQuoteFecha,\n    U2.VidQuoteCliente,\n    U2.VidQuoteObra,\n    U2.RazonSocial,\n    U2.Direccion,\n    U2.Localidad,\n    U2.Provincia,\n    U2.VidQuoteElementoID,\n    U2.VidQuoteComposicID,\n    U2.VidQuoteIncluyeDet,\n    U2.DescripcionGral,\n    U2.DescripcionElemento,\n    U1.PrecioPresup\nFROM\n-- -----------------------------------\n    (\n    SELECT\n        VidQuoteID,\n        SUM(VidQuotePrecio) AS PrecioPresup\n    FROM\n        vidquoten2\n    WHERE\n        VidQuoteID IN (SELECT VidQuoteID FROM reppresqry)) AS U1,\n-- -----------------------------------\n    (\n    SELECT \n        vidquoten2.VidQuoteID AS VidQuoteID,\n        vidquoten2.VidQuoteItem AS VidQuoteItem,\n        vidquoten2.VidQuoteProdCantidad AS VidQuoteProdCantidad,\n        vidquoten2.VidQuoteProdID AS VidQuoteProdID,\n        CASE\n            WHEN `vidquoten2`.`VidQuoteAlto` > 0 THEN\n                CONCAT(\'Dimension(mm): [\',\n                CAST(`vidquoten2`.`VidQuoteAncho` AS CHAR),\'x\',\n                CAST(`vidquoten2`.`VidQuoteAlto` AS CHAR),\']\')\n            WHEN `vidquoten2`.`VidQuoteAlto` > 0 THEN\n                CONCAT(\'Largo(mm): [\',\n                CAST(`vidquoten2`.`VidQuoteAncho` AS CHAR),\']\')\n            ELSE\n                \'\'\n        END AS Dimension,\n        vidquoten2.VidQuotePrecio AS Precio,\n        vidquoten1.VidQuoteFecha AS VidQuoteFecha,\n        vidquoten1.VidQuoteCliente AS VidQuoteCliente,\n        vidquoten1.VidQuoteObra AS VidQuoteObra,\n        clientes.RazonSocial AS RazonSocial,\n        clientes.Direccion AS Direccion,\n        clientes.Localidad AS Localidad,\n        clientes.Provincia AS Provincia,\n        vidquoten3.VidQuoteElementoID AS VidQuoteElementoID,\n        vidquoten3.VidQuoteComposicID AS VidQuoteComposicID,\n        vidquoten3.VidQuoteIncluyeDet AS VidQuoteIncluyeDet,\n        productos.Descripcion AS DescripcionGral,\n        IF(vidquoten3.VidQuoteIncluyeDet = 1,\n            productos_1.Descripcion,\n            \'\') AS DescripcionElemento\n    FROM\n        vidquoten1 AS vidquoten1,\n        vidquoten2 AS vidquoten2,\n        vidquoten3 AS vidquoten3,\n        productos AS productos,\n        productos AS productos_1,\n        clientes AS clientes\n    WHERE\n        vidquoten3.VidQuoteIncluyeDet = 1 AND \n        vidquoten1.VidQuoteID = vidquoten2.VidQuoteID AND \n        vidquoten3.VidQuoteID = vidquoten2.VidQuoteID AND \n        vidquoten3.VidQuoteItem = vidquoten2.VidQuoteItem AND\n        vidquoten1.VidQuoteCliente = clientes.ClienteID AND\n        productos.ProductoID = vidquoten3.VidQuoteProdID AND \n        productos_1.ProductoID = vidquoten3.VidQuoteElementoID AND \n        vidquoten2.VidQuoteID IN (SELECT VidQuoteID FROM reppresqry)\n    UNION\n    SELECT \n        vidquoten2.VidQuoteID AS VidQuoteID,\n        vidquoten2.VidQuoteItem AS VidQuoteItem,\n        vidquoten2.VidQuoteProdCantidad AS VidQuoteProdCantidad,\n        vidquoten2.VidQuoteProdID AS VidQuoteProdID,\n        CASE\n            WHEN `vidquoten2`.`VidQuoteAlto` > 0 THEN\n                CONCAT(\'Dimension(mm): [\',\n                CAST(`vidquoten2`.`VidQuoteAncho` AS CHAR),\'x\',\n                CAST(`vidquoten2`.`VidQuoteAlto` AS CHAR),\']\')\n            WHEN `vidquoten2`.`VidQuoteAlto` > 0 THEN\n                CONCAT(\'Largo(mm): [\',\n                CAST(`vidquoten2`.`VidQuoteAncho` AS CHAR),\']\')\n            ELSE\n                \'\'\n        END AS Dimension,\n        vidquoten2.VidQuotePrecio AS Precio,\n        vidquoten1.VidQuoteFecha AS VidQuoteFecha,\n        vidquoten1.VidQuoteCliente AS VidQuoteCliente,\n        vidquoten1.VidQuoteObra AS VidQuoteObra,\n        clientes.RazonSocial AS RazonSocial,\n        clientes.Direccion AS Direccion,\n        clientes.Localidad AS Localidad,\n        clientes.Provincia AS Provincia,\n        vidquoten3.VidQuoteElementoID AS VidQuoteElementoID,\n        vidquoten3.VidQuoteComposicID AS VidQuoteComposicID,\n        vidquoten3.VidQuoteIncluyeDet AS VidQuoteIncluyeDet,\n        productos.Descripcion AS DescripcionGral,\n        IF(vidquoten3.VidQuoteIncluyeDet = 1,\n            productos_1.Descripcion,\n            \'\') AS DescripcionElemento\n    FROM\n        vidquoten1 AS vidquoten1,\n        vidquoten2 AS vidquoten2,\n        vidquoten3 AS vidquoten3,\n        productos AS productos,\n        productos AS productos_1,\n        clientes AS clientes\n    WHERE\n        vidquoten2.VidQuoteID IN (SELECT VidQuoteID FROM reppresqry) AND\n        vidquoten3.VidQuoteIncluyeDet = 0 AND\n        vidquoten1.VidQuoteID = vidquoten2.VidQuoteID AND \n        vidquoten3.VidQuoteID = vidquoten2.VidQuoteID AND \n        vidquoten3.VidQuoteItem = vidquoten2.VidQuoteItem AND \n        vidquoten1.VidQuoteCliente = clientes.ClienteID AND\n        productos.ProductoID = vidquoten3.VidQuoteProdID AND \n        productos_1.ProductoID = vidquoten3.VidQuoteElementoID AND\n        vidquoten2.VidQuoteItem NOT IN (\n            SELECT \n                vidquoten2.VidQuoteItem AS VidQuoteItem\n            FROM\n                vidquoten2 AS vidquoten2,\n                vidquoten3 AS vidquoten3\n            WHERE\n                vidquoten3.VidQuoteIncluyeDet = 1 AND\n                vidquoten3.VidQuoteID = vidquoten2.VidQuoteID AND \n                vidquoten3.VidQuoteItem = vidquoten2.VidQuoteItem AND \n                vidquoten2.VidQuoteID IN (SELECT VidQuoteID FROM reppresqry)\n            GROUP BY\n                vidquoten2.VidQuoteItem)\n    ) AS U2 \n-- -----------------------------------\nWHERE\n    U1.VidQuoteID=U2.VidQuoteID\n</pre></small>\n== Bitácora ==\n*20121122\n**Cambio de formato visualización de Dimension a solicitud de FZG. Anterior:\n<small><pre>\nSELECT \n    U2.VidQuoteID,\n    U2.VidQuoteItem,\n    U2.VidQuoteProdCantidad,\n    U2.VidQuoteProdID,\n    U2.Dimension,\n    U2.Precio,\n    U2.VidQuoteFecha,\n    U2.VidQuoteCliente,\n    U2.VidQuoteObra,\n    U2.RazonSocial,\n    U2.Direccion,\n    U2.Localidad,\n    U2.Provincia,\n    U2.VidQuoteElementoID,\n    U2.VidQuoteComposicID,\n    U2.VidQuoteIncluyeDet,\n    U2.DescripcionGral,\n    U2.DescripcionElemento,\n    U1.PrecioPresup\nFROM\n-- -----------------------------------\n    (\n    SELECT\n        VidQuoteID,\n        SUM(VidQuotePrecio) AS PrecioPresup\n    FROM\n        vidquoten2\n    WHERE\n        VidQuoteID IN (SELECT VidQuoteID FROM reppresqry)) AS U1,\n-- -----------------------------------\n    (\n    SELECT \n        vidquoten2.VidQuoteID AS VidQuoteID,\n        vidquoten2.VidQuoteItem AS VidQuoteItem,\n        vidquoten2.VidQuoteProdCantidad AS VidQuoteProdCantidad,\n        vidquoten2.VidQuoteProdID AS VidQuoteProdID,\n        CASE\n            WHEN `vidquoten2`.`VidQuoteAlto` > 0 THEN\n                CONCAT(\'Dimension(mm): [\',\n                LPAD(CAST(`vidquoten2`.`VidQuoteAncho` AS CHAR),4,\'0000\'),\'x\',\n                LPAD(CAST(`vidquoten2`.`VidQuoteAlto` AS CHAR),4,\'0000\'),\']\')\n            WHEN `vidquoten2`.`VidQuoteAlto` > 0 THEN\n                CONCAT(\'Largo(mm): [\',\n                LPAD(CAST(`vidquoten2`.`VidQuoteAncho` AS CHAR),4,\'0000\'),\']\')\n            ELSE\n                \'\'\n        END AS Dimension,\n        vidquoten2.VidQuotePrecio AS Precio,\n        vidquoten1.VidQuoteFecha AS VidQuoteFecha,\n        vidquoten1.VidQuoteCliente AS VidQuoteCliente,\n        vidquoten1.VidQuoteObra AS VidQuoteObra,\n        clientes.RazonSocial AS RazonSocial,\n        clientes.Direccion AS Direccion,\n        clientes.Localidad AS Localidad,\n        clientes.Provincia AS Provincia,\n        vidquoten3.VidQuoteElementoID AS VidQuoteElementoID,\n        vidquoten3.VidQuoteComposicID AS VidQuoteComposicID,\n        vidquoten3.VidQuoteIncluyeDet AS VidQuoteIncluyeDet,\n        productos.Descripcion AS DescripcionGral,\n        IF(vidquoten3.VidQuoteIncluyeDet = 1,\n            productos_1.Descripcion,\n            \'\') AS DescripcionElemento\n    FROM\n        vidquoten1 AS vidquoten1,\n        vidquoten2 AS vidquoten2,\n        vidquoten3 AS vidquoten3,\n        productos AS productos,\n        productos AS productos_1,\n        clientes AS clientes\n    WHERE\n        vidquoten3.VidQuoteIncluyeDet = 1 AND \n        vidquoten1.VidQuoteID = vidquoten2.VidQuoteID AND \n        vidquoten3.VidQuoteID = vidquoten2.VidQuoteID AND \n        vidquoten3.VidQuoteItem = vidquoten2.VidQuoteItem AND\n        vidquoten1.VidQuoteCliente = clientes.ClienteID AND\n        productos.ProductoID = vidquoten3.VidQuoteProdID AND \n        productos_1.ProductoID = vidquoten3.VidQuoteElementoID AND \n        vidquoten2.VidQuoteID IN (SELECT VidQuoteID FROM reppresqry)\n    UNION\n    SELECT \n        vidquoten2.VidQuoteID AS VidQuoteID,\n        vidquoten2.VidQuoteItem AS VidQuoteItem,\n        vidquoten2.VidQuoteProdCantidad AS VidQuoteProdCantidad,\n        vidquoten2.VidQuoteProdID AS VidQuoteProdID,\n        CASE\n            WHEN `vidquoten2`.`VidQuoteAlto` > 0 THEN\n                CONCAT(\'Dimension(mm): [\',\n                LPAD(CAST(`vidquoten2`.`VidQuoteAncho` AS CHAR),4,\'0000\'),\'x\',\n                LPAD(CAST(`vidquoten2`.`VidQuoteAlto` AS CHAR),4,\'0000\'),\']\')\n            WHEN `vidquoten2`.`VidQuoteAlto` > 0 THEN\n                CONCAT(\'Largo(mm): [\',\n                LPAD(CAST(`vidquoten2`.`VidQuoteAncho` AS CHAR),4,\'0000\'),\']\')\n            ELSE\n                \'\'\n        END AS Dimension,\n        vidquoten2.VidQuotePrecio AS Precio,\n        vidquoten1.VidQuoteFecha AS VidQuoteFecha,\n        vidquoten1.VidQuoteCliente AS VidQuoteCliente,\n        vidquoten1.VidQuoteObra AS VidQuoteObra,\n        clientes.RazonSocial AS RazonSocial,\n        clientes.Direccion AS Direccion,\n        clientes.Localidad AS Localidad,\n        clientes.Provincia AS Provincia,\n        vidquoten3.VidQuoteElementoID AS VidQuoteElementoID,\n        vidquoten3.VidQuoteComposicID AS VidQuoteComposicID,\n        vidquoten3.VidQuoteIncluyeDet AS VidQuoteIncluyeDet,\n        productos.Descripcion AS DescripcionGral,\n        IF(vidquoten3.VidQuoteIncluyeDet = 1,\n            productos_1.Descripcion,\n            \'\') AS DescripcionElemento\n    FROM\n        vidquoten1 AS vidquoten1,\n        vidquoten2 AS vidquoten2,\n        vidquoten3 AS vidquoten3,\n        productos AS productos,\n        productos AS productos_1,\n        clientes AS clientes\n    WHERE\n        vidquoten2.VidQuoteID IN (SELECT VidQuoteID FROM reppresqry) AND\n        vidquoten3.VidQuoteIncluyeDet = 0 AND\n        vidquoten1.VidQuoteID = vidquoten2.VidQuoteID AND \n        vidquoten3.VidQuoteID = vidquoten2.VidQuoteID AND \n        vidquoten3.VidQuoteItem = vidquoten2.VidQuoteItem AND \n        vidquoten1.VidQuoteCliente = clientes.ClienteID AND\n        productos.ProductoID = vidquoten3.VidQuoteProdID AND \n        productos_1.ProductoID = vidquoten3.VidQuoteElementoID AND\n        vidquoten2.VidQuoteItem NOT IN (\n            SELECT \n                vidquoten2.VidQuoteItem AS VidQuoteItem\n            FROM\n                vidquoten2 AS vidquoten2,\n                vidquoten3 AS vidquoten3\n            WHERE\n                vidquoten3.VidQuoteIncluyeDet = 1 AND\n                vidquoten3.VidQuoteID = vidquoten2.VidQuoteID AND \n                vidquoten3.VidQuoteItem = vidquoten2.VidQuoteItem AND \n                vidquoten2.VidQuoteID IN (SELECT VidQuoteID FROM reppresqry)\n            GROUP BY\n                vidquoten2.VidQuoteItem)\n    ) AS U2 \n-- -----------------------------------\nWHERE\n    U1.VidQuoteID=U2.VidQuoteID\n</pre></small>\n*20121101\n**CheckStatus\n<small><pre>\nSELECT \n    U2.VidQuoteID,\n    U2.VidQuoteItem,\n    U2.VidQuoteProdCantidad,\n    U2.VidQuoteProdID,\n    U2.Dimension,\n    U2.Precio,\n    U2.VidQuoteFecha,\n    U2.VidQuoteCliente,\n    U2.VidQuoteObra,\n    U2.RazonSocial,\n    U2.Direccion,\n    U2.Localidad,\n    U2.Provincia,\n    U2.VidQuoteElementoID,\n    U2.VidQuoteComposicID,\n    U2.VidQuoteIncluyeDet,\n    U2.DescripcionGral,\n    U2.DescripcionElemento,\n    U1.PrecioPresup\nFROM\n-- -----------------------------------\n    (\n    SELECT\n        VidQuoteID,\n        SUM(VidQuotePrecio) AS PrecioPresup\n    FROM\n        vidquoten2\n    WHERE\n        VidQuoteID IN (SELECT VidQuoteID FROM reppresqry)) AS U1,\n-- -----------------------------------\n    (\n    SELECT \n        vidquoten2.VidQuoteID AS VidQuoteID,\n        vidquoten2.VidQuoteItem AS VidQuoteItem,\n        vidquoten2.VidQuoteProdCantidad AS VidQuoteProdCantidad,\n        vidquoten2.VidQuoteProdID AS VidQuoteProdID,\n        CASE\n            WHEN `vidquoten2`.`VidQuoteAlto` > 0 THEN\n                CONCAT(\'Dimension(mm): [\',\n                LPAD(CAST(`vidquoten2`.`VidQuoteAncho` AS CHAR),4,\'0000\'),\'x\',\n                LPAD(CAST(`vidquoten2`.`VidQuoteAlto` AS CHAR),4,\'0000\'),\']\')\n            WHEN `vidquoten2`.`VidQuoteAlto` > 0 THEN\n                CONCAT(\'Largo(mm): [\',\n                LPAD(CAST(`vidquoten2`.`VidQuoteAncho` AS CHAR),4,\'0000\'),\']\')\n            ELSE\n                \'\'\n        END AS Dimension,\n        vidquoten2.VidQuotePrecio AS Precio,\n        vidquoten1.VidQuoteFecha AS VidQuoteFecha,\n        vidquoten1.VidQuoteCliente AS VidQuoteCliente,\n        vidquoten1.VidQuoteObra AS VidQuoteObra,\n        clientes.RazonSocial AS RazonSocial,\n        clientes.Direccion AS Direccion,\n        clientes.Localidad AS Localidad,\n        clientes.Provincia AS Provincia,\n        vidquoten3.VidQuoteElementoID AS VidQuoteElementoID,\n        vidquoten3.VidQuoteComposicID AS VidQuoteComposicID,\n        vidquoten3.VidQuoteIncluyeDet AS VidQuoteIncluyeDet,\n        productos.Descripcion AS DescripcionGral,\n        IF(vidquoten3.VidQuoteIncluyeDet = 1,\n            productos_1.Descripcion,\n            \'\') AS DescripcionElemento\n    FROM\n        vidquoten1 AS vidquoten1,\n        vidquoten2 AS vidquoten2,\n        vidquoten3 AS vidquoten3,\n        productos AS productos,\n        productos AS productos_1,\n        clientes AS clientes\n    WHERE\n        vidquoten3.VidQuoteIncluyeDet = 1 AND \n        vidquoten1.VidQuoteID = vidquoten2.VidQuoteID AND \n        vidquoten3.VidQuoteID = vidquoten2.VidQuoteID AND \n        vidquoten3.VidQuoteItem = vidquoten2.VidQuoteItem AND\n        vidquoten1.VidQuoteCliente = clientes.ClienteID AND\n        productos.ProductoID = vidquoten3.VidQuoteProdID AND \n        productos_1.ProductoID = vidquoten3.VidQuoteElementoID AND \n        vidquoten2.VidQuoteID IN (SELECT VidQuoteID FROM reppresqry)\n    UNION\n    SELECT \n        vidquoten2.VidQuoteID AS VidQuoteID,\n        vidquoten2.VidQuoteItem AS VidQuoteItem,\n        vidquoten2.VidQuoteProdCantidad AS VidQuoteProdCantidad,\n        vidquoten2.VidQuoteProdID AS VidQuoteProdID,\n        CASE\n            WHEN `vidquoten2`.`VidQuoteAlto` > 0 THEN\n                CONCAT(\'Dimension(mm): [\',\n                LPAD(CAST(`vidquoten2`.`VidQuoteAncho` AS CHAR),4,\'0000\'),\'x\',\n                LPAD(CAST(`vidquoten2`.`VidQuoteAlto` AS CHAR),4,\'0000\'),\']\')\n            WHEN `vidquoten2`.`VidQuoteAlto` > 0 THEN\n                CONCAT(\'Largo(mm): [\',\n                LPAD(CAST(`vidquoten2`.`VidQuoteAncho` AS CHAR),4,\'0000\'),\']\')\n            ELSE\n                \'\'\n        END AS Dimension,\n        vidquoten2.VidQuotePrecio AS Precio,\n        vidquoten1.VidQuoteFecha AS VidQuoteFecha,\n        vidquoten1.VidQuoteCliente AS VidQuoteCliente,\n        vidquoten1.VidQuoteObra AS VidQuoteObra,\n        clientes.RazonSocial AS RazonSocial,\n        clientes.Direccion AS Direccion,\n        clientes.Localidad AS Localidad,\n        clientes.Provincia AS Provincia,\n        vidquoten3.VidQuoteElementoID AS VidQuoteElementoID,\n        vidquoten3.VidQuoteComposicID AS VidQuoteComposicID,\n        vidquoten3.VidQuoteIncluyeDet AS VidQuoteIncluyeDet,\n        productos.Descripcion AS DescripcionGral,\n        IF(vidquoten3.VidQuoteIncluyeDet = 1,\n            productos_1.Descripcion,\n            \'\') AS DescripcionElemento\n    FROM\n        vidquoten1 AS vidquoten1,\n        vidquoten2 AS vidquoten2,\n        vidquoten3 AS vidquoten3,\n        productos AS productos,\n        productos AS productos_1,\n        clientes AS clientes\n    WHERE\n        vidquoten2.VidQuoteID IN (SELECT VidQuoteID FROM reppresqry) AND\n        vidquoten3.VidQuoteIncluyeDet = 0 AND\n        vidquoten1.VidQuoteID = vidquoten2.VidQuoteID AND \n        vidquoten3.VidQuoteID = vidquoten2.VidQuoteID AND \n        vidquoten3.VidQuoteItem = vidquoten2.VidQuoteItem AND \n        vidquoten1.VidQuoteCliente = clientes.ClienteID AND\n        productos.ProductoID = vidquoten3.VidQuoteProdID AND \n        productos_1.ProductoID = vidquoten3.VidQuoteElementoID AND\n        vidquoten2.VidQuoteItem NOT IN (\n            SELECT \n                vidquoten2.VidQuoteItem AS VidQuoteItem\n            FROM\n                vidquoten2 AS vidquoten2,\n                vidquoten3 AS vidquoten3\n            WHERE\n                vidquoten3.VidQuoteIncluyeDet = 1 AND\n                vidquoten3.VidQuoteID = vidquoten2.VidQuoteID AND \n                vidquoten3.VidQuoteItem = vidquoten2.VidQuoteItem AND \n                vidquoten2.VidQuoteID IN (SELECT VidQuoteID FROM reppresqry)\n            GROUP BY\n                vidquoten2.VidQuoteItem)\n    ) AS U2 \n-- -----------------------------------\nWHERE\n    U1.VidQuoteID=U2.VidQuoteID\n</pre></small>\n*20121002\n**Cambio de Estructura por Requerimiento. Query anterior:\n<small><pre>\nSELECT \n    `visreppres`.`VidQuoteID`,\n    `visreppres`.`VidQuoteObra`,\n    `visreppres`.`VidQuoteCliente`,\n    `visreppres`.`VidQuoteFecha`,\n    `visreppres`.`VidQuoteItem`,\n    `visreppres`.`VidQuoteProdCantidad`,\n    `visreppres`.`VidQuoteProdID`,\n    `visreppres`.`VidQuoteDetalle`,\n    `visreppres`.`VidQuotePrecioS`,\n    `clientes`.`RazonSocial`,\n    `clientes`.`Direccion`,\n    `clientes`.`Localidad`,\n    `clientes`.`Provincia`\nFROM\n    `fzggestion`.`clientes` AS `clientes`,\n    `fzggestion`.`visreppres` AS `visreppres`\nWHERE\n    `clientes`.`ClienteID` = `visreppres`.`VidQuoteCliente`\nORDER BY \n    `visreppres`.`VidQuoteID` ASC,\n    `visreppres`.`VidQuoteObra` ASC,\n    `visreppres`.`VidQuoteCliente` ASC,\n    `visreppres`.`VidQuoteItem` ASC\n</pre></small>\n== URL ==','utf-8'),(1029,'[[Category:RPRT]]\n== Descripción ==\n== Composición ==\n*[[VISTA:visrprescmp]]\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\n</pre>\n== Bitácora ==\n== URL ==','utf-8'),(1030,'[[Category:RPRT]]\n== Descripción ==\nImprime el informe individual por cliente seleccionado de los antecedentes de transacciones. La ejecución proviene del [[FORM:ConsultaCRM]] y [[FORM:PosicionCRM]]\n== Composición ==\n*[[TABLA:vidquoten1]]\n*[[TABLA:vidquoten3]]\n*[[TABLA:clientes]]\n*[[TABLA:clientescrmqry]]\n\n== Estructura ==\n<small><pre>\nSELECT \n    T1.VidQuoteCliente,\n    T2.RazonSocial,\n    T1.TTransaccion,\n    T1.NTransaccion,\n    T1.VidQuoteFecha,\n    T1.VidQuoteObra,\n    T1.VidQuotePrecioP\nFROM \n    ((SELECT DISTINCT\n        vidquoten1.VidQuoteCliente  AS VidQuoteCliente,\n        \'OT\'                        AS TTransaccion,\n        vidquoten3.VidQuoteID       AS NTransaccion,\n        vidquoten1.VidQuoteFecha    AS VidQuoteFecha,\n        vidquoten1.VidQuoteObra     AS VidQuoteObra,\n        SUM(vidquoten3.VidQuotePrecioP) \n                                    AS VidQuotePrecioP\n    FROM\n        vidquoten1 AS vidquoten1,\n        vidquoten3 AS vidquoten3\n    WHERE\n        vidquoten1.VidQuoteID = vidquoten3.VidQuoteID AND\n        vidquoten1.VidQuoteEstado = \'1\'\n    GROUP By VidQuoteCliente,TTransaccion,NTransaccion)\n\n    UNION\n    (SELECT\n        IF(ISNULL(`accreceiv`.`ClienteAR`),\'00000000\',`accreceiv`.`ClienteAR`) \n                                        AS VidQuoteCliente,\n        `accreceiv`.`TDocumentoOrg`     AS TTransaccion,\n        `accreceiv`.`NDocumentoOrg`     AS NTransaccion,\n        `accreceiv`.`FechaAR`           AS VidQuoteFecha,\n        \'\'                              AS VidQuoteObra,\n        `accreceiv`.`ImporteAR` * -1    AS VidQuotePrecioP\n    FROM `fzggestion`.`accreceiv`)) AS T1,\n\n    clientes as T2\nWHERE\n    T1.VidQuoteCliente = T2.ClienteID\n    AND\n    T1.VidQuoteCliente IN (\n        SELECT \n            clienteID\n        FROM\n            clientescrmqry)\nORDER BY T1.VidQuoteCliente, T1.VidQuoteFecha\n</pre></small>\n== Código Relacionado ==\n== Bitácora ==\n== Uso ==','utf-8'),(1031,'[[Category:RPRT]]\n== Descripción ==\nImprime el informe individual por cliente seleccionado de los antecedentes de transacciones. La ejecución proviene del [[FORM:ConsultaCRM]] y [[FORM:PosicionCRM]]\n== Composición ==\n*[[TABLA:vidquoten1]]\n*[[TABLA:vidquoten3]]\n*[[VISTA:clientes]]\n*[[TABLA:clientescrmqry]]\n\n== Estructura ==\n<small><pre>\nSELECT \n    T1.VidQuoteCliente,\n    T2.RazonSocial,\n    T1.TTransaccion,\n    T1.NTransaccion,\n    T1.VidQuoteFecha,\n    T1.VidQuoteObra,\n    T1.VidQuotePrecioP\nFROM \n    ((SELECT DISTINCT\n        vidquoten1.VidQuoteCliente  AS VidQuoteCliente,\n        \'OT\'                        AS TTransaccion,\n        vidquoten3.VidQuoteID       AS NTransaccion,\n        vidquoten1.VidQuoteFecha    AS VidQuoteFecha,\n        vidquoten1.VidQuoteObra     AS VidQuoteObra,\n        SUM(vidquoten3.VidQuotePrecioP) \n                                    AS VidQuotePrecioP\n    FROM\n        vidquoten1 AS vidquoten1,\n        vidquoten3 AS vidquoten3\n    WHERE\n        vidquoten1.VidQuoteID = vidquoten3.VidQuoteID AND\n        vidquoten1.VidQuoteEstado = \'1\'\n    GROUP By VidQuoteCliente,TTransaccion,NTransaccion)\n\n    UNION\n    (SELECT\n        IF(ISNULL(`accreceiv`.`ClienteAR`),\'00000000\',`accreceiv`.`ClienteAR`) \n                                        AS VidQuoteCliente,\n        `accreceiv`.`TDocumentoOrg`     AS TTransaccion,\n        `accreceiv`.`NDocumentoOrg`     AS NTransaccion,\n        `accreceiv`.`FechaAR`           AS VidQuoteFecha,\n        \'\'                              AS VidQuoteObra,\n        `accreceiv`.`ImporteAR` * -1    AS VidQuotePrecioP\n    FROM `fzggestion`.`accreceiv`)) AS T1,\n\n    clientes as T2\nWHERE\n    T1.VidQuoteCliente = T2.ClienteID\n    AND\n    T1.VidQuoteCliente IN (\n        SELECT \n            clienteID\n        FROM\n            clientescrmqry)\nORDER BY T1.VidQuoteCliente, T1.VidQuoteFecha\n</pre></small>\n== Código Relacionado ==\n== Bitácora ==\n== Uso ==','utf-8'),(1032,'http://ayuda.cloudoffice.com.ar/index.php?title=<pagina>&action=edit\n==Tablas, Vistas==\n<pre>\n[[Category:TABLAS]]\n[[Category:VISTAS]]\n== Descripción ==\n== Composición ==\n== Estructura ==\n< pre>\n< /pre>\n== SQL ==\n< pre>\n< /pre>\n== Bitácora ==\n== Uso ==\n== URL ==\n</pre>\n\n==Formularios==\n<pre>\n[[Category:FORM]]\n== Descripción ==\n== Composición ==\n== Estructura ==\n== Código Relacionado ==\n== Bitácora ==\n== Uso ==\n</pre>\n\n==Macros, Procedimientos, Funciones==\n<pre>\n[[Category:MACRO]]\n[[Category:PROC]]\n== Descripción ==\n== Biblioteca ==\n== Composición ==\n== Código ==\n< small>< pre>\n< /pre>< /small>\n== Bitácora ==\n== Uso ==\n</pre>\n\n==SqlCode==\n<pre>\n< small>< pre>\n< /pre>< /small>\n</pre>\n==Iconos Layout==\n*File:warning-icon-hi.png|20px [[File:warning-icon-hi.png|20px]]\n*File:checked.png|20px [[File:checked.png|20px]]\n==Tickets Soporte==\n<pre>\n[[Category:TKT]]\n====Data TKT====\n*\'\'\'Usuario:\'\'\' \n*\'\'\'Fecha:\'\'\' \n*\'\'\'Soporte:\'\'\' \n=====Incidente=====\n=====WorkAround=====\n=====Resolución=====\n=====Estado=====\n=====Observaciones=====\n</pre>','utf-8'),(1033,'===Estructuras de Trabajo===\n*[[:Category:TABLAS|Tablas]]\n*[[:Category:VISTAS|Vistas]]\n*[[:Category:MACROS|Macros]]\n*[[:Category:RPRT|Informes]]\n*[[:Category:PROC|Procedimientos]]\n*[[:Category:LIBR|Bibliotecas]]\n*[[Estructuras SQL|CódigoSQL]]','utf-8'),(1034,'===== Referencias =====\n*[[TEMP:LayoutGeneral|Templates de Layout]]\n[http://sqlformat.appspot.com/ SQLFormatBeautify]\n\n<small>\n{| class=\"wikitable\"\n| <center>\'\'\'Nombre\'\'\'</center>\n| <center>\'\'\'Comando\'\'\'</center>\n| <center>\'\'\'Uso\'\'\'</center>\n| <center>\'\'\'Cross\'\'\'</center>\n\n|-\n| Viscabdetalla\n| FZG.Vista.viscabdetalla.sql\n| Vista utilizada para agregar la información de cual es la lista de precios a utilizar para el cliente del presupuesto en tiempo real.FORM: Presupuesto\n| Contactos, Vidquoten1\n\n|-\n| Proveedores\n| FZG.Vista.proveedores.sql\n| Visualización de Contactos “Proveedores”\n| Contactos\n\n|-\n| Clientes\n| FZG.Vista.clientes.sql\n| Visualización de Contactos “Clientes”\n| Contactos\n\n|-\n| Visreppres\n| FZG.Vista.visreppres.sql\n| Vista Reporte Presupuesto Individual. Para generar una línea completa con la información de detalle de los presupuestos con las combinaciones de información a incluir en el mismo. No contiene la información estática del cliente.\n| Vislineabs, Visdetaobs\n\n|-\n| Viscompodis\n| FZG.Vista.viscompodis.sql\n| Vista de productos (DISTINCT productos) dentro de la tabla de composición ordenada por alfabéticamente.\n| \n\n|-\n| Viscoposimpl\n| FZG.Vista.viscomposimpl.sql\n| Vista de los elementos de composicion con información para query\n| Productos, Composición\n\n|-\n| Visdetaobs\n| FZG.Vista.visdetaobs.sql\n| Une todas las Observaciones de cada item para los casos que se encuentren señaladas con la Descripción del Producto-Item\n| Productos, Vidquoten3\n\n|-\n| Visintdetpre\n| FZG.Vista.visintdetpre.sql\n| Reducción de vista Visprodadic aplicable al cálculo de presupuesto con los datos en tiempo real del presupuesto activo en formulario y calculando el precio correcto de acuerdo al cliente y el cálculo del valor del elemento de acuerdo al los valores de Alto y Ancho del Vano en tiempo real\n| Visprodadic, Vidquoten2\n\n|-\n| Vislineabs\n| [[FZG.Vista.vislineabs.sql]]\n| Define linea básica para reporte teniendo como base Vidquoten2, agregando la información de la cabecera + datos de descrpción de producto + el subtotal por Producto-Item\n| Vidquoten1, Vidquoten2, Productos, Vissubxitem\n\n|-\n| Visprodadic\n| FZG.Vista.visproadic.sql\n| Vista de tabla de componentes con la información de cada elemento como producto y de los precios vigentes.\n| Productos, Composicion, PreciosVigentes\n\n|-\n| Vissubxitem\n| FZG.Vista.vissubxitem.sql\n| Subtotal por Item de Presupuesto en tiempo real\n| Vidquoten3\n\n|-\n| Listavigente\n| \n| Selecciona solo el primer registro ordenado en forma descendente de la tabla de listasprecios\n| Listasprecios\n\n|-\n| Preciosvigentes\n| FZG.Vista.preciosvigentes.sql\n| Es la selección de la tabla de precios referenciando el mayor valor dentro de la tabla de listasprecios\n| Listasprecios, Precios\n\n|-\n| Preciosvigact\n| FZG.Vista.preciosvigact.sql\n| Vista de lista de precios vigentes con datos de productos para actualización columnar.FORM: Actualización por tipo de lista\n| Preciosvigentes, Productos\n\n|-\n| Precioscmpl\n| [[FZG.Vista.precioscmpl.sql]]\n| Vista de lista de precios completa con datos de productos. [[FORM: Precios Tabular x Proceso]]\n| Precios, Productos\n\n|-\n| Visprestot\n| FZG.Vista.visprestot.sql\n| Vista de Presupuestos Totalizados por Cliente\n| Visreppres\n\n|-\n| Viscompcnt\n| [[FZG.Vista.viscompcnt.sql]]\n| Vista resumen de Componentes completa con indicadores de estado de composición\n| composicion, producto\n|}</small>\n\n=== Objetos ===\n==== Formularios ====\n*[[FORM:Presupuesto]]\n*[[FORM:CopiaComposicion]]\n*[[FORM:Pagos]]\n*[[FORM:Cobranzas]]\n\n==== Reportes ====\n*[[RPRT:Presupuestos]]\n*[[RPRT:PresupuestosDirecto]]\n*[[RPRT:IndividualCRM]]','utf-8'),(1035,'===== Referencias =====\n*[[TEMP:LayoutGeneral|Templates de Layout]]\n*[http://sqlformat.appspot.com/ SQLFormatBeautify]\n\n<small>\n{| class=\"wikitable\"\n| <center>\'\'\'Nombre\'\'\'</center>\n| <center>\'\'\'Comando\'\'\'</center>\n| <center>\'\'\'Uso\'\'\'</center>\n| <center>\'\'\'Cross\'\'\'</center>\n\n|-\n| Viscabdetalla\n| FZG.Vista.viscabdetalla.sql\n| Vista utilizada para agregar la información de cual es la lista de precios a utilizar para el cliente del presupuesto en tiempo real.FORM: Presupuesto\n| Contactos, Vidquoten1\n\n|-\n| Proveedores\n| FZG.Vista.proveedores.sql\n| Visualización de Contactos “Proveedores”\n| Contactos\n\n|-\n| Clientes\n| FZG.Vista.clientes.sql\n| Visualización de Contactos “Clientes”\n| Contactos\n\n|-\n| Visreppres\n| FZG.Vista.visreppres.sql\n| Vista Reporte Presupuesto Individual. Para generar una línea completa con la información de detalle de los presupuestos con las combinaciones de información a incluir en el mismo. No contiene la información estática del cliente.\n| Vislineabs, Visdetaobs\n\n|-\n| Viscompodis\n| FZG.Vista.viscompodis.sql\n| Vista de productos (DISTINCT productos) dentro de la tabla de composición ordenada por alfabéticamente.\n| \n\n|-\n| Viscoposimpl\n| FZG.Vista.viscomposimpl.sql\n| Vista de los elementos de composicion con información para query\n| Productos, Composición\n\n|-\n| Visdetaobs\n| FZG.Vista.visdetaobs.sql\n| Une todas las Observaciones de cada item para los casos que se encuentren señaladas con la Descripción del Producto-Item\n| Productos, Vidquoten3\n\n|-\n| Visintdetpre\n| FZG.Vista.visintdetpre.sql\n| Reducción de vista Visprodadic aplicable al cálculo de presupuesto con los datos en tiempo real del presupuesto activo en formulario y calculando el precio correcto de acuerdo al cliente y el cálculo del valor del elemento de acuerdo al los valores de Alto y Ancho del Vano en tiempo real\n| Visprodadic, Vidquoten2\n\n|-\n| Vislineabs\n| [[FZG.Vista.vislineabs.sql]]\n| Define linea básica para reporte teniendo como base Vidquoten2, agregando la información de la cabecera + datos de descrpción de producto + el subtotal por Producto-Item\n| Vidquoten1, Vidquoten2, Productos, Vissubxitem\n\n|-\n| Visprodadic\n| FZG.Vista.visproadic.sql\n| Vista de tabla de componentes con la información de cada elemento como producto y de los precios vigentes.\n| Productos, Composicion, PreciosVigentes\n\n|-\n| Vissubxitem\n| FZG.Vista.vissubxitem.sql\n| Subtotal por Item de Presupuesto en tiempo real\n| Vidquoten3\n\n|-\n| Listavigente\n| \n| Selecciona solo el primer registro ordenado en forma descendente de la tabla de listasprecios\n| Listasprecios\n\n|-\n| Preciosvigentes\n| FZG.Vista.preciosvigentes.sql\n| Es la selección de la tabla de precios referenciando el mayor valor dentro de la tabla de listasprecios\n| Listasprecios, Precios\n\n|-\n| Preciosvigact\n| FZG.Vista.preciosvigact.sql\n| Vista de lista de precios vigentes con datos de productos para actualización columnar.FORM: Actualización por tipo de lista\n| Preciosvigentes, Productos\n\n|-\n| Precioscmpl\n| [[FZG.Vista.precioscmpl.sql]]\n| Vista de lista de precios completa con datos de productos. [[FORM: Precios Tabular x Proceso]]\n| Precios, Productos\n\n|-\n| Visprestot\n| FZG.Vista.visprestot.sql\n| Vista de Presupuestos Totalizados por Cliente\n| Visreppres\n\n|-\n| Viscompcnt\n| [[FZG.Vista.viscompcnt.sql]]\n| Vista resumen de Componentes completa con indicadores de estado de composición\n| composicion, producto\n|}</small>\n\n=== Objetos ===\n==== Formularios ====\n*[[FORM:Presupuesto]]\n*[[FORM:CopiaComposicion]]\n*[[FORM:Pagos]]\n*[[FORM:Cobranzas]]\n\n==== Reportes ====\n*[[RPRT:Presupuestos]]\n*[[RPRT:PresupuestosDirecto]]\n*[[RPRT:IndividualCRM]]','utf-8'),(1036,'===== Referencias =====\n*[[TEMP:LayoutGeneral|Templates de Layout]]\n*[http://sqlformat.appspot.com/ SQLFormatBeautify]\n\n<small>\n{| class=\"wikitable\"\n| <center>\'\'\'Nombre\'\'\'</center>\n| <center>\'\'\'Comando\'\'\'</center>\n| <center>\'\'\'Uso\'\'\'</center>\n| <center>\'\'\'Cross\'\'\'</center>\n\n|-\n| Viscabdetalla\n| FZG.Vista.viscabdetalla.sql\n| Vista utilizada para agregar la información de cual es la lista de precios a utilizar para el cliente del presupuesto en tiempo real.FORM: Presupuesto\n| Contactos, Vidquoten1\n\n|-\n| Proveedores\n| FZG.Vista.proveedores.sql\n| Visualización de Contactos “Proveedores”\n| Contactos\n\n|-\n| Clientes\n| FZG.Vista.clientes.sql\n| Visualización de Contactos “Clientes”\n| Contactos\n\n|-\n| Visreppres\n| FZG.Vista.visreppres.sql\n| Vista Reporte Presupuesto Individual. Para generar una línea completa con la información de detalle de los presupuestos con las combinaciones de información a incluir en el mismo. No contiene la información estática del cliente.\n| Vislineabs, Visdetaobs\n\n|-\n| Viscompodis\n| FZG.Vista.viscompodis.sql\n| Vista de productos (DISTINCT productos) dentro de la tabla de composición ordenada por alfabéticamente.\n| \n\n|-\n| Viscoposimpl\n| FZG.Vista.viscomposimpl.sql\n| Vista de los elementos de composicion con información para query\n| Productos, Composición\n\n|-\n| Visdetaobs\n| FZG.Vista.visdetaobs.sql\n| Une todas las Observaciones de cada item para los casos que se encuentren señaladas con la Descripción del Producto-Item\n| Productos, Vidquoten3\n\n|-\n| Visintdetpre\n| FZG.Vista.visintdetpre.sql\n| Reducción de vista Visprodadic aplicable al cálculo de presupuesto con los datos en tiempo real del presupuesto activo en formulario y calculando el precio correcto de acuerdo al cliente y el cálculo del valor del elemento de acuerdo al los valores de Alto y Ancho del Vano en tiempo real\n| Visprodadic, Vidquoten2\n\n|-\n| Vislineabs\n| [[FZG.Vista.vislineabs.sql]]\n| Define linea básica para reporte teniendo como base Vidquoten2, agregando la información de la cabecera + datos de descrpción de producto + el subtotal por Producto-Item\n| Vidquoten1, Vidquoten2, Productos, Vissubxitem\n\n|-\n| Visprodadic\n| FZG.Vista.visproadic.sql\n| Vista de tabla de componentes con la información de cada elemento como producto y de los precios vigentes.\n| Productos, Composicion, PreciosVigentes\n\n|-\n| Vissubxitem\n| FZG.Vista.vissubxitem.sql\n| Subtotal por Item de Presupuesto en tiempo real\n| Vidquoten3\n\n|-\n| Listavigente\n| \n| Selecciona solo el primer registro ordenado en forma descendente de la tabla de listasprecios\n| Listasprecios\n\n|-\n| Preciosvigentes\n| FZG.Vista.preciosvigentes.sql\n| Es la selección de la tabla de precios referenciando el mayor valor dentro de la tabla de listasprecios\n| Listasprecios, Precios\n\n|-\n| Preciosvigact\n| FZG.Vista.preciosvigact.sql\n| Vista de lista de precios vigentes con datos de productos para actualización columnar.FORM: Actualización por tipo de lista\n| Preciosvigentes, Productos\n\n|-\n| Precioscmpl\n| [[FZG.Vista.precioscmpl.sql]]\n| Vista de lista de precios completa con datos de productos. [[FORM: Precios Tabular x Proceso]]\n| Precios, Productos\n\n|-\n| Visprestot\n| FZG.Vista.visprestot.sql\n| Vista de Presupuestos Totalizados por Cliente\n| Visreppres\n\n|-\n| Viscompcnt\n| [[FZG.Vista.viscompcnt.sql]]\n| Vista resumen de Componentes completa con indicadores de estado de composición\n| composicion, producto\n|}</small>\n\n=== Objetos ===\n==== Formularios ====\n*[[FORM:Presupuesto]]\n*[[FORM:CopiaComposicion]]\n*[[FORM:Pagos]]\n*[[FORM:Cobranzas]]','utf-8'),(1037,'[[Category:FORM]]\n== Descripción ==\nPermite la copia o agregado de componentes de un producto a otro, sea este último un producto activo o un nuevo producto.\nSe divide en 3 secciones tales como:\n* Filtro\n* Producto Origen\n* Producto Destino\nEn el caso de Producto Destino cuenta con las siguientes características:\nAnaliza la existencia de otro producto con el mismo identificador. Procede previamente a transformar en mayúsculas el código de producto destino.\nEn el caso de existir el producto, solicita la confirmación por parte del usuario y copia la descripción actual del producto destino para facilitar su posible modificación.\nDespliega 2 botones para procesar la información:\nCopia: Si es sobre un producto nuevo, copia toda la estrucutra ([[TABLA:productos]], [[TABLA:composicion]], [[TABLA:precios]]).\nCopia: Si es sobre un producto existente, elimina el anterior y genera una copia de toda la estructura con el código nuevo.\nAgregado: Solo si el producto existe, agrega los componentes del producto original sobre el producto destino, solo de aquellos productos que no se encuentren ya especificados en el producto destino en forma previa.\n== Composición ==\n* TABLA:productos\n* TABLA:composicion\n* TABLA:precios\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\n</pre>\n== Bitácora ==\n== Uso ==\n== URL ==','utf-8'),(1038,'[[Category:FORM]]\n== Descripción ==\nIngresa registraciones que representan pagos de proveedores y gastos \n== Composición ==\n*[[TABLA:accpayab]]\n*[[TABLA:checkbook]]\n== Estructura ==\n*FormPagos\n**FormChequeTerceros\n**FormChequePropios\n\n== Código Relacionado ==\n*[[OBJETO:FormPago]]\n**[[EVENTO:AfterRecordChange]]\n***[[MODULO:SpanexB]]\n****[[MACRO:VisibleIngresoCheque]]\n*[[OBJETO:FormPago]]\n**[[EVENTO:WhenLoading]]\n***[[MODULO:FazzGlassMcr]]\n****[[MACRO:EventoWhenLoadingFORMPagos]]\n*[[OBJETO:txtFormaAP]]\n**[[EVENTO:Changed]]\n***[[MODULO:SpanexB]]\n****[[MACRO:VisibleIngresoCheque]]\n*[[OBJETO:txtFiltro]]\n**[[EVENTO:Changed]]\n***[[MODULO:FazzGlassMcr]]\n****[[MACRO:ActivaFiltroProductosGeneral]]\n*[[OBJETO:BtnEndosoTerceros]]\n**[[EVENTO:MouseButtonPressed]]\n***[[MODULO:SpanexB]]\n****[[MACRO:EndosarTercerosEnGrilla]]\n*[[OBJETO:FormChequePropios]]\n**[[EVENTO:AfterReseting]]\n***[[MODULO:FazzGlassMcr]]\n****[[MACRO:SugerenciaImporteCheque]]\n\n== Bitácora ==\n== Uso ==\n== URL ==\n\n[[GRA:_Relaciones#Formularios|Formularios Gestión Retail Aberturas]]','utf-8'),(1039,'[[Category:FORM]]\n== Descripción ==\nGestión de Cotizaciones.\nEl formularios\n[[File:FZG.FORMS.Presupuesto.Relaciones.Macros.jpg]]\n== Composición ==\n== Estructura ==\n== Código Relacionado ==\n== Bitácora ==\n== Uso ==','utf-8'),(1040,'[[Category:FORM]]\n== Descripción ==\nGestion de registraciones que representan cobranzas sobre trabajos realizados\n== Composición ==\n*[[TABLA:accreceiv]]\n*[[TABLA:checkbook]]\n== Estructura ==\n*FormCobranzas\n**FormCheque\n**Boxes\n\n== Código Relacionado ==\n*[[OBJETO:FormCobranzas]]\n**[[EVENTO:WhenLoading]]\n***[[MODULO:FazzGlassMcr]]\n****[[MACRO:EventoWhenLoadingFORMCobranzas]]\n*[[OBJETO:FormCobranzas]]\n**[[EVENTO:AfterRecordChange]]\n***[[MODULO:SpanexB]]\n****[[MACRO:VisibleIngresoCheque]]\n*[[OBJETO:BotonEliminaContenido_txtFiltro]]\n**[[EVENTO:MouseButtonPressed]]\n***[[MODULO:FazzGlassMcr]]\n****[[MACRO:EliminaContenidoCampo]]\n*[[OBJETO:txtFiltro]]\n**[[EVENTO:Changed]]\n***[[MODULO:FazzGlassMcr]]\n****[[MACRO:ActivaFiltroProductosGeneral]]\n*[[OBJETO:OptionBtnAR]]\n**[[EVENTO:ItemStatusChanged]]\n***[[MODULO:FazzGlassMcr]]\n****[[MACRO:OpcionCtrlxCliente]]\n*[[OBJETO:OpcionCtrlxDoc]]\n**[[EVENTO:ItemStatusChanged]]\n***[[MODULO:FazzGlassMcr]]\n****[[MACRO:OpcionCtrlxCliente]]\n*[[OBJETO:txtFormaAR]]\n**[[EVENTO:Changed]]\n***[[MODULO:SpanexB]]\n****[[MACRO:VisibleIngresoCheque]]\n*[[OBJETO:fmtNDocumentoOrg]]\n**[[EVENTO:Changed]]\n***[[MODULO:SpanexB]]\n****[[MACRO:EnviaClienteIDCobranza]]\n*[[OBJETO:FormCheque]]\n**[[EVENTO:AfterReseting]]\n***[[MODULO:FazzGlassMcr]]\n****[[MACRO:SugerenciaImporteCheque]]\n\n== Bitácora ==\n== Uso ==\n\n[[GRA:_Relaciones#Formularios|Formularios Gestión Retail Aberturas]]','utf-8'),(1041,'===== Referencias =====\n*[[TEMP:LayoutGeneral|Templates de Layout]]\n*[http://sqlformat.appspot.com/ SQLFormatBeautify]\n\n<small>\n{| class=\"wikitable\"\n| <center>\'\'\'Nombre\'\'\'</center>\n| <center>\'\'\'Comando\'\'\'</center>\n| <center>\'\'\'Uso\'\'\'</center>\n| <center>\'\'\'Cross\'\'\'</center>\n\n|-\n| Viscabdetalla\n| FZG.Vista.viscabdetalla.sql\n| Vista utilizada para agregar la información de cual es la lista de precios a utilizar para el cliente del presupuesto en tiempo real.FORM: Presupuesto\n| Contactos, Vidquoten1\n\n|-\n| Proveedores\n| FZG.Vista.proveedores.sql\n| Visualización de Contactos “Proveedores”\n| Contactos\n\n|-\n| Clientes\n| FZG.Vista.clientes.sql\n| Visualización de Contactos “Clientes”\n| Contactos\n\n|-\n| Visreppres\n| FZG.Vista.visreppres.sql\n| Vista Reporte Presupuesto Individual. Para generar una línea completa con la información de detalle de los presupuestos con las combinaciones de información a incluir en el mismo. No contiene la información estática del cliente.\n| Vislineabs, Visdetaobs\n\n|-\n| Viscompodis\n| FZG.Vista.viscompodis.sql\n| Vista de productos (DISTINCT productos) dentro de la tabla de composición ordenada por alfabéticamente.\n| \n\n|-\n| Viscoposimpl\n| FZG.Vista.viscomposimpl.sql\n| Vista de los elementos de composicion con información para query\n| Productos, Composición\n\n|-\n| Visdetaobs\n| FZG.Vista.visdetaobs.sql\n| Une todas las Observaciones de cada item para los casos que se encuentren señaladas con la Descripción del Producto-Item\n| Productos, Vidquoten3\n\n|-\n| Visintdetpre\n| FZG.Vista.visintdetpre.sql\n| Reducción de vista Visprodadic aplicable al cálculo de presupuesto con los datos en tiempo real del presupuesto activo en formulario y calculando el precio correcto de acuerdo al cliente y el cálculo del valor del elemento de acuerdo al los valores de Alto y Ancho del Vano en tiempo real\n| Visprodadic, Vidquoten2\n\n|-\n| Vislineabs\n| [[FZG.Vista.vislineabs.sql]]\n| Define linea básica para reporte teniendo como base Vidquoten2, agregando la información de la cabecera + datos de descrpción de producto + el subtotal por Producto-Item\n| Vidquoten1, Vidquoten2, Productos, Vissubxitem\n\n|-\n| Visprodadic\n| FZG.Vista.visproadic.sql\n| Vista de tabla de componentes con la información de cada elemento como producto y de los precios vigentes.\n| Productos, Composicion, PreciosVigentes\n\n|-\n| Vissubxitem\n| FZG.Vista.vissubxitem.sql\n| Subtotal por Item de Presupuesto en tiempo real\n| Vidquoten3\n\n|-\n| Listavigente\n| \n| Selecciona solo el primer registro ordenado en forma descendente de la tabla de listasprecios\n| Listasprecios\n\n|-\n| Preciosvigentes\n| FZG.Vista.preciosvigentes.sql\n| Es la selección de la tabla de precios referenciando el mayor valor dentro de la tabla de listasprecios\n| Listasprecios, Precios\n\n|-\n| Preciosvigact\n| FZG.Vista.preciosvigact.sql\n| Vista de lista de precios vigentes con datos de productos para actualización columnar.FORM: Actualización por tipo de lista\n| Preciosvigentes, Productos\n\n|-\n| Precioscmpl\n| [[FZG.Vista.precioscmpl.sql]]\n| Vista de lista de precios completa con datos de productos. [[FORM: Precios Tabular x Proceso]]\n| Precios, Productos\n\n|-\n| Visprestot\n| FZG.Vista.visprestot.sql\n| Vista de Presupuestos Totalizados por Cliente\n| Visreppres\n\n|-\n| Viscompcnt\n| [[FZG.Vista.viscompcnt.sql]]\n| Vista resumen de Componentes completa con indicadores de estado de composición\n| composicion, producto\n|}</small>','utf-8'),(1042,'===Estructuras de Trabajo===\n*[[:Category:TABLAS|Tablas]]\n*[[:Category:VISTAS|Vistas]]\n*[[:Category:FORMS|Formularios]]\n*[[:Category:MACROS|Macros]]\n*[[:Category:RPRT|Informes]]\n*[[:Category:PROC|Procedimientos]]\n*[[:Category:LIBR|Bibliotecas]]\n*[[Estructuras SQL|CódigoSQL]]','utf-8'),(1043,'Lista de Formularios asociados','utf-8'),(1044,'===Estructuras de Trabajo===\n*[[:Category:TABLAS|Tablas]]\n*[[:Category:VISTAS|Vistas]]\n*[[:Category:FORM|Formularios]]\n*[[:Category:MACROS|Macros]]\n*[[:Category:RPRT|Informes]]\n*[[:Category:PROC|Procedimientos]]\n*[[:Category:LIBR|Bibliotecas]]\n*[[Estructuras SQL|CódigoSQL]]','utf-8'),(1045,'Lista de Formularios Asociados','utf-8'),(1046,'*\'\'\'20120901\'\'\'\n**<del>Controlar Accesos por IP</del>\n**Licensing. Como*s + Precios -> Documentar\n**Transacciones\n**<del>SendTo - PDF</del>\n**Parser\n***[\'\'value;value;...\'\']\n***{\'\'expresion\'\'}\n**Librería de Ventanas\n**Gráficos\n**Rutinas Java\n**Pruebas URL Windows\n**Vista de Agentes Comerciales\n**Resguardo diario\n**Eliminar Frame Access Tables by User\n**Hide Database Objects Tables&Queries - Sarraceno\n*\'\'\'20121002\'\'\'\n**Agregar un \"MAILTO\" sobre un InputBox como Adicional\n**Agregar un PushButton para identificar valores con IVA\n**Agregar una Magnitud tipo RANGO.\n*\'\'\'20121017\'\'\'\n**Modificar [[FORM:Productos]] para incluir vista Grid.\n**Cambiar Control Magnitud en [[FORM:Productos]] para que impacte en la nueva [[TABLA:Magnitudes]]\n**No permitir el cambio de layout del [[FORM:Presupuestos.ProductosGrid]]\n*\'\'\'20101024\'\'\'\n**Veriicar comportamiento aleatorio en la eliminación de registros en [[FORM:Presupuestos.Productos]]\n**Análisis de los precios que se despliegan en los controles de grid en [[FORM:Presupuesto]] con Warning.','utf-8'),(1047,'== Developing ==\n*[[Developing]]\n*[[Pendientes]]\n*[[SpanexDraw]]\n*[[Spanex:Estructuras]]\n\n== Gestión Retail Aberturas (Spanex) ==\n*[[GRA: Relaciones]]\n*[[GRA: Releases]]\n*[[GRA: PreciosABT]]\n\n=== Gestión de Magnitudes ===\n\n==== Definiciones ====\n*Coeficiente: Por defecto, el valor es 1. Si necesita sumar al valor original, el coeficiente tiene que tener la parte entera al menos en 1. En el caso de magnitudes no estándar, los valores del precio del producto puede estar incluido en el mismo, por lo que hay que verificar en este caso los valores que se ingresen en la [[TABLA:precios]]\n*Offset: Por defecto, el valor es 0\n\n==== Atributos de Productos/Elementos ====\n* M2 = Metro Cuadrado\nPrecio Unitario = Precio determinado por tipo de cliente * (((((Ancho + OffsetAncho)*Coeficiente Ancho) * ((Alto + OffsetAlto)*Coeficiente Alto))/100000) * Coeficiente Elemento)\n\n* ML = Metro Lineal\n<Del>Precio Unitario = Precio determinado por tipo de cliente * (((((Ancho + OffsetAncho) * 2 * Coeficiente Ancho) + ((Alto + OffsetAlto) * 2 * Coeficiente Alto)) / 1000) * Coeficiente Elemento).</Del>\n\n* MG = Magnitud Galarza\nPrecio Unitario = Precio determinado por tipo de cliente * ((((Alto + OffsetAlto) * CoeficienteAlto) + (Ancho + OffsetAncho) * CoeficienteAncho)) / 1000) * Coeficiente Elemento)\n\n* UN = Unidad\nPrecio Unitario = Precio determinado por tipo de cliente * Coeficiente Elemento\n\n=== Triggers ===\n<small>\n{| class=\"wikitable\"\n| <center>\'\'\'Trigger\'\'\'</center>\n| <center>\'\'\'Event\'\'\'</center>\n| <center>\'\'\'Table\'\'\'</center>\n| <center>\'\'\'Statement\'\'\'</center>\n| <center>\'\'\'Timing\'\'\'</center>\n\n|-\n| Alta_ListasPrecios\n| INSERT\n| listasprecios\n| <pre>BEGIN\n   DECLARE vListaVieja,vListaNueva INT(5);\n   DECLARE vFechaModificacion DATE;\n   DECLARE vHoraModificacion TIME;\n   SET vListaNueva = (SELECT Lista FROM listavigente);\n   SET vListaVieja = (SELECT MAX(listasprecios.Lista) \n                      FROM listasprecios \n                      WHERE listasprecios.Lista <> NEW.Lista);\n   SET vFechaModificacion = CURDATE();\n   SET vHoraModificacion = CURTIME();\n   INSERT INTO precios (\n      `precios`.`Lista`,\n      `precios`.`ProductoID`,\n      `precios`.`PrecioProd01`,\n      `precios`.`PrecioProd02`,\n      `precios`.`PrecioProd03`,\n      `precios`.`FechaModificacion`,\n      `precios`.`HoraModificacion`)(\n   SELECT    vListaNueva,\n      `precios`.`ProductoID`,\n      `precios`.`PrecioProd01`,\n      `precios`.`PrecioProd02`,\n      `precios`.`PrecioProd03`,\n      vFechaModificacion,\n      vHoraModificacion\n   FROM precios \n   WHERE `precios`.`Lista` = vListaVieja);\nEND</pre>\n| AFTER\n\n|-\n| Alta_LogPrecios\n| INSERT\n| logprecios\n| <pre>BEGIN\n   DECLARE vCategoriaID,vProveedorID,vPaso VARCHAR(5);\n   SET vCategoriaID = IF(ISNULL(`NEW`.`CategoriaID`),\' \',`NEW`.`CategoriaID`);\n   SET vProveedorID = IF(ISNULL(`NEW`.`ProveedorID`),\' \',`NEW`.`ProveedorID`);\n   SET `NEW`.`FechaModificacion` = CURDATE();\n   SET `NEW`.`HoraModificacion` = CURTIME();\n   SET `NEW`.`Lista` = (SELECT max(`listasprecios`.`Lista`) FROM `listasprecios`);\n   IF ISNULL(NEW.CategoriaID) THEN\n      IF ISNULL(NEW.ProveedorID) THEN\n         UPDATE `precios`,`productos`\n         SET    `precios`.`PrecioProd01` = `precios`.`PrecioProd01` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd02` = `precios`.`PrecioProd02` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd03` = `precios`.`PrecioProd03` * `NEW`.`Coeficiente`,\n            `precios`.`FechaModificacion` = CURDATE(),\n            `precios`.`HoraModificacion` = CURTIME()\n         WHERE    `precios`.`ProductoID` = `productos`.`ProductoID` AND\n               `precios`.`Lista` = `NEW`.`Lista`;\n         SET vPaso=\'A\';\n      ELSE\n         UPDATE `precios`,`productos`\n         SET    `precios`.`PrecioProd01` = `precios`.`PrecioProd01` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd02` = `precios`.`PrecioProd02` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd03` = `precios`.`PrecioProd03` * `NEW`.`Coeficiente`,\n            `precios`.`FechaModificacion` = CURDATE(),\n            `precios`.`HoraModificacion` = CURTIME()\n         WHERE   `precios`.`ProductoID` = `productos`.`ProductoID` AND\n               `precios`.`Lista` = `NEW`.`Lista` AND\n               `productos`.`ProveedorID` = NEW.ProveedorID;\n         SET vPaso=\'B\';\n      END IF;\n   ELSE\n      IF ISNULL(NEW.ProveedorID) THEN\n         UPDATE `precios`,`productos`\n         SET    `precios`.`PrecioProd01` = `precios`.`PrecioProd01` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd02` = `precios`.`PrecioProd02` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd03` = `precios`.`PrecioProd03` * `NEW`.`Coeficiente`,\n            `precios`.`FechaModificacion` = CURDATE(),\n            `precios`.`HoraModificacion` = CURTIME()\n         WHERE   `precios`.`ProductoID` = `productos`.`ProductoID` AND\n               `precios`.`Lista` = `NEW`.`Lista` AND\n               `productos`.`CategoriaID` = NEW.CategoriaID;\n         SET vPaso=\'C\';\n      ELSE\n         UPDATE `precios`,`productos`\n         SET    `precios`.`PrecioProd01` = `precios`.`PrecioProd01` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd02` = `precios`.`PrecioProd02` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd03` = `precios`.`PrecioProd03` * `NEW`.`Coeficiente`,\n            `precios`.`FechaModificacion` = CURDATE(),\n            `precios`.`HoraModificacion` = CURTIME()\n         WHERE   \n            `precios`.`ProductoID` = `productos`.`ProductoID` AND\n            `precios`.`Lista` = `NEW`.`Lista` AND\n            `productos`.`CategoriaID` = vCategoriaID AND\n            `productos`.`ProveedorID` = vProveedorID;\n         SET vPaso=\'D\';\n      END IF;\n   END IF;\n   SET `NEW`.`RowsMod` = ROW_COUNT();\nEND</pre>\n| BEFORE\n\n|-\n| Alta_Precio\n| INSERT\n| precios\n| <pre>\'BEGIN\n   SET    NEW.FechaModificacion = CURDATE(),\n      NEW.HoraModificacion = CURTIME();\n  END\'</pre>\n| BEFORE\n\n|-\n| Actualiza_Precio\n| UPDATE\n| precios\n| <pre>\'BEGIN\n   SET    NEW.FechaModificacion = CURDATE(),\n      NEW.HoraModificacion = CURTIME();\n  END\'</pre>\n| BEFORE\n\n|-\n| Alta_Productos\n| INSERT\n| productos\n| <pre>BEGIN\n    DECLARE vLista INT(5);\n    DECLARE vProductoID CHAR(8);\n    SET vLista = (SELECT Lista FROM listavigente);\n    SET vProductoID = NEW.ProductoID;\n    INSERT INTO precios (`precios`.`Lista`, \n                  `precios`.`ProductoID`, \n                  `precios`.`PrecioProd00`,\n                  `precios`.`PrecioProd01`, \n                  `precios`.`PrecioProd02`, \n                  `precios`.`PrecioProd03`)\n           VALUES(vLista, vProductoID, 0, 0, 0, 0);\n    INSERT INTO composicion (`composicion`.`ProductoID`,\n                     `composicion`.`ElementoID`,\n                     `composicion`.`ValorElemento`,\n                     `composicion`.`ElementoPM`)\n           VALUES(vProductoID,vProductoID,1, 1);\nEND</pre>\n| BEFORE\n\n|-\n| Baja_Productos\n| DELETE\n| productos\n| <pre>BEGIN\n    DECLARE vLista INT(5);\n    DECLARE vProductoID CHAR(8);\n    SET vLista = (SELECT Lista FROM listavigente);\n    SET vProductoID = OLD.ProductoID;\n    DELETE FROM precios WHERE ProductoID=OLD.ProductoID AND Lista=vLista;\n    DELETE FROM composicion WHERE ProductoID=OLD.ProductoID OR ElementoID=OLD.ProductoID;\nEND</pre>\n| AFTER\n\n|-\n| AltaTransaccion\n| INSERT\n| transacciones\n| <pre>BEGIN\n   SET   NEW.TransaccFecha = CURDATE(),\n      NEW.TransaccHora = CURTIME();\nEND</pre>\n| BEFORE\n\n|-\n| Baja_Presupuesto\n| DELETE\n| vidquoten1\n| <pre>BEGIN\n    DELETE FROM vidquoten2\n    WHERE vidquoten2.VidQuoteID=OLD.VidQuoteID;\n    DELETE FROM vidquoten3\n    WHERE vidquoten3.VidQuoteID=OLD.VidQuoteID;\n  END</pre>\n| AFTER\n\n|-\n| Baja_Item_Presupuesto\n| DELETE\n| vidquoten2\n| <pre>\'BEGIN\n    DELETE FROM vidquoten3\n    WHERE vidquoten3.VidQuoteID=OLD.VidQuoteID AND\n     vidquoten3.VidQuoteItem=OLD.VidQuoteItem;\n  END\'</pre>\n| AFTER\n\n|-\n| Baja_Elemento_Presupuesto\n| DELETE\n| vidquoten3\n| <pre>BEGIN\n   DELETE FROM vidquoten4\n    WHERE    vidquoten4.VidQuoteID=OLD.VidQuoteID AND\n         vidquoten4.VidQuoteItem=OLD.VidQuoteItem AND\n         vidquoten4.VidQuoteElementoID=OLD.VidQuoteElementoID;\nEND</pre>\n| AFTER\n|}\n</small>\n\n=== Reportes ===\n<small>\n</small>\n\n=== Procedimientos ===\n<small>\n</small>\n\n=== Instalacion .odb ===\n*Copiar el documento .odb\n*Cambiar el usuario de la base de datos\n*Cambiar la constante [[oCheckEstadoLicencia]] a True\n*Grabar documento .odb\n*Cambiar a nivel de Sistema Operativo a ReadOnly\n\n=== Documentación de Usuario ===\n[[WikiUserSpanex]]\n=== Soporte-Bitacora ===\n*[[:Category:TKT|SpanexSupport -> Pendientes]]\n*[[:Category:TKTOut|SpanexSupport -> Finalizados]]','utf-8'),(1048,'== Developing ==\n*[[Developing]]\n*[[Pendientes|Requirements]]\n*[[SpanexDraw|Spanex:Draw]]\n*[[Spanex:Estructuras]]\n\n== Gestión Retail Aberturas (Spanex) ==\n*[[GRA: Relaciones]]\n*[[GRA: Releases]]\n*[[GRA: PreciosABT]]\n\n=== Gestión de Magnitudes ===\n\n==== Definiciones ====\n*Coeficiente: Por defecto, el valor es 1. Si necesita sumar al valor original, el coeficiente tiene que tener la parte entera al menos en 1. En el caso de magnitudes no estándar, los valores del precio del producto puede estar incluido en el mismo, por lo que hay que verificar en este caso los valores que se ingresen en la [[TABLA:precios]]\n*Offset: Por defecto, el valor es 0\n\n==== Atributos de Productos/Elementos ====\n* M2 = Metro Cuadrado\nPrecio Unitario = Precio determinado por tipo de cliente * (((((Ancho + OffsetAncho)*Coeficiente Ancho) * ((Alto + OffsetAlto)*Coeficiente Alto))/100000) * Coeficiente Elemento)\n\n* ML = Metro Lineal\n<Del>Precio Unitario = Precio determinado por tipo de cliente * (((((Ancho + OffsetAncho) * 2 * Coeficiente Ancho) + ((Alto + OffsetAlto) * 2 * Coeficiente Alto)) / 1000) * Coeficiente Elemento).</Del>\n\n* MG = Magnitud Galarza\nPrecio Unitario = Precio determinado por tipo de cliente * ((((Alto + OffsetAlto) * CoeficienteAlto) + (Ancho + OffsetAncho) * CoeficienteAncho)) / 1000) * Coeficiente Elemento)\n\n* UN = Unidad\nPrecio Unitario = Precio determinado por tipo de cliente * Coeficiente Elemento\n\n=== Triggers ===\n<small>\n{| class=\"wikitable\"\n| <center>\'\'\'Trigger\'\'\'</center>\n| <center>\'\'\'Event\'\'\'</center>\n| <center>\'\'\'Table\'\'\'</center>\n| <center>\'\'\'Statement\'\'\'</center>\n| <center>\'\'\'Timing\'\'\'</center>\n\n|-\n| Alta_ListasPrecios\n| INSERT\n| listasprecios\n| <pre>BEGIN\n   DECLARE vListaVieja,vListaNueva INT(5);\n   DECLARE vFechaModificacion DATE;\n   DECLARE vHoraModificacion TIME;\n   SET vListaNueva = (SELECT Lista FROM listavigente);\n   SET vListaVieja = (SELECT MAX(listasprecios.Lista) \n                      FROM listasprecios \n                      WHERE listasprecios.Lista <> NEW.Lista);\n   SET vFechaModificacion = CURDATE();\n   SET vHoraModificacion = CURTIME();\n   INSERT INTO precios (\n      `precios`.`Lista`,\n      `precios`.`ProductoID`,\n      `precios`.`PrecioProd01`,\n      `precios`.`PrecioProd02`,\n      `precios`.`PrecioProd03`,\n      `precios`.`FechaModificacion`,\n      `precios`.`HoraModificacion`)(\n   SELECT    vListaNueva,\n      `precios`.`ProductoID`,\n      `precios`.`PrecioProd01`,\n      `precios`.`PrecioProd02`,\n      `precios`.`PrecioProd03`,\n      vFechaModificacion,\n      vHoraModificacion\n   FROM precios \n   WHERE `precios`.`Lista` = vListaVieja);\nEND</pre>\n| AFTER\n\n|-\n| Alta_LogPrecios\n| INSERT\n| logprecios\n| <pre>BEGIN\n   DECLARE vCategoriaID,vProveedorID,vPaso VARCHAR(5);\n   SET vCategoriaID = IF(ISNULL(`NEW`.`CategoriaID`),\' \',`NEW`.`CategoriaID`);\n   SET vProveedorID = IF(ISNULL(`NEW`.`ProveedorID`),\' \',`NEW`.`ProveedorID`);\n   SET `NEW`.`FechaModificacion` = CURDATE();\n   SET `NEW`.`HoraModificacion` = CURTIME();\n   SET `NEW`.`Lista` = (SELECT max(`listasprecios`.`Lista`) FROM `listasprecios`);\n   IF ISNULL(NEW.CategoriaID) THEN\n      IF ISNULL(NEW.ProveedorID) THEN\n         UPDATE `precios`,`productos`\n         SET    `precios`.`PrecioProd01` = `precios`.`PrecioProd01` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd02` = `precios`.`PrecioProd02` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd03` = `precios`.`PrecioProd03` * `NEW`.`Coeficiente`,\n            `precios`.`FechaModificacion` = CURDATE(),\n            `precios`.`HoraModificacion` = CURTIME()\n         WHERE    `precios`.`ProductoID` = `productos`.`ProductoID` AND\n               `precios`.`Lista` = `NEW`.`Lista`;\n         SET vPaso=\'A\';\n      ELSE\n         UPDATE `precios`,`productos`\n         SET    `precios`.`PrecioProd01` = `precios`.`PrecioProd01` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd02` = `precios`.`PrecioProd02` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd03` = `precios`.`PrecioProd03` * `NEW`.`Coeficiente`,\n            `precios`.`FechaModificacion` = CURDATE(),\n            `precios`.`HoraModificacion` = CURTIME()\n         WHERE   `precios`.`ProductoID` = `productos`.`ProductoID` AND\n               `precios`.`Lista` = `NEW`.`Lista` AND\n               `productos`.`ProveedorID` = NEW.ProveedorID;\n         SET vPaso=\'B\';\n      END IF;\n   ELSE\n      IF ISNULL(NEW.ProveedorID) THEN\n         UPDATE `precios`,`productos`\n         SET    `precios`.`PrecioProd01` = `precios`.`PrecioProd01` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd02` = `precios`.`PrecioProd02` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd03` = `precios`.`PrecioProd03` * `NEW`.`Coeficiente`,\n            `precios`.`FechaModificacion` = CURDATE(),\n            `precios`.`HoraModificacion` = CURTIME()\n         WHERE   `precios`.`ProductoID` = `productos`.`ProductoID` AND\n               `precios`.`Lista` = `NEW`.`Lista` AND\n               `productos`.`CategoriaID` = NEW.CategoriaID;\n         SET vPaso=\'C\';\n      ELSE\n         UPDATE `precios`,`productos`\n         SET    `precios`.`PrecioProd01` = `precios`.`PrecioProd01` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd02` = `precios`.`PrecioProd02` * `NEW`.`Coeficiente`,\n            `precios`.`PrecioProd03` = `precios`.`PrecioProd03` * `NEW`.`Coeficiente`,\n            `precios`.`FechaModificacion` = CURDATE(),\n            `precios`.`HoraModificacion` = CURTIME()\n         WHERE   \n            `precios`.`ProductoID` = `productos`.`ProductoID` AND\n            `precios`.`Lista` = `NEW`.`Lista` AND\n            `productos`.`CategoriaID` = vCategoriaID AND\n            `productos`.`ProveedorID` = vProveedorID;\n         SET vPaso=\'D\';\n      END IF;\n   END IF;\n   SET `NEW`.`RowsMod` = ROW_COUNT();\nEND</pre>\n| BEFORE\n\n|-\n| Alta_Precio\n| INSERT\n| precios\n| <pre>\'BEGIN\n   SET    NEW.FechaModificacion = CURDATE(),\n      NEW.HoraModificacion = CURTIME();\n  END\'</pre>\n| BEFORE\n\n|-\n| Actualiza_Precio\n| UPDATE\n| precios\n| <pre>\'BEGIN\n   SET    NEW.FechaModificacion = CURDATE(),\n      NEW.HoraModificacion = CURTIME();\n  END\'</pre>\n| BEFORE\n\n|-\n| Alta_Productos\n| INSERT\n| productos\n| <pre>BEGIN\n    DECLARE vLista INT(5);\n    DECLARE vProductoID CHAR(8);\n    SET vLista = (SELECT Lista FROM listavigente);\n    SET vProductoID = NEW.ProductoID;\n    INSERT INTO precios (`precios`.`Lista`, \n                  `precios`.`ProductoID`, \n                  `precios`.`PrecioProd00`,\n                  `precios`.`PrecioProd01`, \n                  `precios`.`PrecioProd02`, \n                  `precios`.`PrecioProd03`)\n           VALUES(vLista, vProductoID, 0, 0, 0, 0);\n    INSERT INTO composicion (`composicion`.`ProductoID`,\n                     `composicion`.`ElementoID`,\n                     `composicion`.`ValorElemento`,\n                     `composicion`.`ElementoPM`)\n           VALUES(vProductoID,vProductoID,1, 1);\nEND</pre>\n| BEFORE\n\n|-\n| Baja_Productos\n| DELETE\n| productos\n| <pre>BEGIN\n    DECLARE vLista INT(5);\n    DECLARE vProductoID CHAR(8);\n    SET vLista = (SELECT Lista FROM listavigente);\n    SET vProductoID = OLD.ProductoID;\n    DELETE FROM precios WHERE ProductoID=OLD.ProductoID AND Lista=vLista;\n    DELETE FROM composicion WHERE ProductoID=OLD.ProductoID OR ElementoID=OLD.ProductoID;\nEND</pre>\n| AFTER\n\n|-\n| AltaTransaccion\n| INSERT\n| transacciones\n| <pre>BEGIN\n   SET   NEW.TransaccFecha = CURDATE(),\n      NEW.TransaccHora = CURTIME();\nEND</pre>\n| BEFORE\n\n|-\n| Baja_Presupuesto\n| DELETE\n| vidquoten1\n| <pre>BEGIN\n    DELETE FROM vidquoten2\n    WHERE vidquoten2.VidQuoteID=OLD.VidQuoteID;\n    DELETE FROM vidquoten3\n    WHERE vidquoten3.VidQuoteID=OLD.VidQuoteID;\n  END</pre>\n| AFTER\n\n|-\n| Baja_Item_Presupuesto\n| DELETE\n| vidquoten2\n| <pre>\'BEGIN\n    DELETE FROM vidquoten3\n    WHERE vidquoten3.VidQuoteID=OLD.VidQuoteID AND\n     vidquoten3.VidQuoteItem=OLD.VidQuoteItem;\n  END\'</pre>\n| AFTER\n\n|-\n| Baja_Elemento_Presupuesto\n| DELETE\n| vidquoten3\n| <pre>BEGIN\n   DELETE FROM vidquoten4\n    WHERE    vidquoten4.VidQuoteID=OLD.VidQuoteID AND\n         vidquoten4.VidQuoteItem=OLD.VidQuoteItem AND\n         vidquoten4.VidQuoteElementoID=OLD.VidQuoteElementoID;\nEND</pre>\n| AFTER\n|}\n</small>\n\n=== Reportes ===\n<small>\n</small>\n\n=== Procedimientos ===\n<small>\n</small>\n\n=== Instalacion .odb ===\n*Copiar el documento .odb\n*Cambiar el usuario de la base de datos\n*Cambiar la constante [[oCheckEstadoLicencia]] a True\n*Grabar documento .odb\n*Cambiar a nivel de Sistema Operativo a ReadOnly\n\n=== Documentación de Usuario ===\n[[WikiUserSpanex]]\n=== Soporte-Bitacora ===\n*[[:Category:TKT|SpanexSupport -> Pendientes]]\n*[[:Category:TKTOut|SpanexSupport -> Finalizados]]','utf-8'),