(827,'Gestión Retail Industria\n\n== Spalnex Gestion ==\nSpanex es una aplicación orientada a satisfacer la demanda de soporte a la gestión de productos y servicios de terminación del mercado de la construcción civil. Esta gestión toma forma de una serie de módulos que articulan los diferentes procesos de gestión administrativa y los concernientes a los propios de producción.\n\nBasado y diseñado en herramientas de código abierto, la aplicación desde su concepción, tiene el claro objetivo que la misma un engranaje eficiente en la cadena de maximización del retorno de la inversión.\n\nConsta de módulos que permiten desde la definición de componentes de productos y servicios hasta el control de la producción de los mismos.\nExisten 2 entidades principales con las que se trabaja dentro de la aplicación, a saber:\n\n* Productos\n* Contactos\n\nDentro del concepto de \'\'\'Productos\'\'\' quedan incluidos todos aquellos elementos que puede conformar un producto terminado, un modelo o un conjunto de elementos a comercializar como así también, aquellos que puedan ser comercializados por si solos.\nDentro del concepto de \'\'\'Contactos\'\'\' quedan incluidos todas aquellas personas físicas o jurídicas que sean objeto de alguna operación dentro de la aplicación.\n\nLa versión actual no incluye la gestión gráfica del armado de los elementos, sin que esto sea un impedimento para poder generar productos comercializables.\n\nPara profundizar en los conceptos, se detallan a continuación algunos subesquemas que son de importancia dentro de la aplicación.\n\n=== Gestión de Productos ===\nEn la gestión de productos se engloban una serie de procesos necesarios para mantener la integridad y el normal desenvolvimiento de los módulos de la aplicación. Aquí se han definido en forma individual (obviamente interrelacionadas entre si) varias entidades a saber:\n\nNota: a lo largo de esta ayuda, se podrán observar algunos gráficos conceptuales que tienen como algunas figuras que significan\n\n[[Archivo:FZG.DOCS.Procesos.Ayuda.jpg|center|Vista Conceptual del Proceso]]\n\nDenominamos productos a todos los Productos Terminados y/o Materias Primas que lo componen. Dentro de esta estructura de información incluye la información referida a las magnitudes de control del producto y los coeficientes de precios a aplicar sobre precios de costo del producto para la venta y la imagen del producto, en el caso que exista\n\n[[Archivo:FZG.DOCS.Procesos.Productos.jpg|center|Vista Conceptual del Proceso]]\n\nSe observará más adelante que el concepto de producto es amplio y que incluye subproductos, parámetros de subproductos, precios, composiciones diferenciadas y otros elementos que permiten tener un mantener un portfolio de productos muy variada. Para esto se subdivide los productos en:\n\n*Productos PPD: (Propiamente Dicho. A partir de aquí, \"Productos\"\n*Precios: Precios de los productos\n*Composiciones: Conformación de conjuntos de productos o elementos para conformar otros productos comercializables. Se incluyen aquellos aspectos de control de forma, y categoría de producto. Es necesario aclarar que dada la versatilidad de la aplicación, puede incluirse dentro de un producto compuesto, otros subproductos o elementos tales como Mano de Obra, Colocación, Transporte, etc.\n\n==== Productos ====\nAl tiempo del ingreso de la información de producto, y a efectos de mantener la integridad de las estructuras de información, una vez finalizado el ingreso de la información de ese producto, al almacenarse, también genera en forma automática registraciones dentro de las estructuras de precios y de composición, con los valores de precios en 0 y un registro de composición con los valores de coeficientes asociados en 0\n\nEs importante diferenciar los coeficientes indicados dentro de la estructura de producto y los indicados dentro de la estructura de composición. Dada la facilidad de integración de \"productos\" o \"kits\" con diferentes \"componentes\" o \"elementos\", un elemento dentro de un producto puede tener valores diferentes a el mismo elemento aplicado para otro producto. En el caso de productos como las aberturas, probablemente las dimensiones reales de los interiores de una ventana sean diferentes a las de otro modelo de ventana aunque estas ventanas en si tengan la misma dimensión. En el caso que se desee precisión de costos, estos coeficientes y valores serán de suma importancia.\n\n==== Precios ====\nSe refiere a la lista de precios. \nDebe existir una registración de precios por cada producto activo. Si el ingreso del producto se realiza dentro de los procesos normales, esta registración debiera existir.\nPor cada registración existen, a la fecha, 4 tipos de precios diferentes. Normalmente, El precio \"0\" está indicado como Precio de Costo\". El resto (3 definidos en el release 20120328) puede ser aplicado a discreción del usuario. Nuestra sugerencia es dividir la política comercial en 3 tipos de clientes. La asignación del tipo de cliente se realiza dentro del Mantenimiento de Contactos.\n\n[[Archivo:FZG.DOCS.Procesos.Precios.jpg|center|Vista Conceptual del Proceso]]\n\nLos valores de cada uno de los precios por Tipo de Cliente pueden automatizarse a través de los coeficientes de Precios establecidos dentro del esquema de datos de Producto.\n\nExisten a la fecha 5 procesos que afectan directamente este concepto:\n\n*Cambio Masivo: Aplica un coeficiente de actualización a todos los tipos de precios de acuerdo a un filtro de producto dado.\n*Masivo Coeficientes Actualización: Permite modificar los coeficientes de actualización de acuerdo al \"Precio 0\" en forma masiva de acuerdo a un filtro de producto dado.\n*Precios General: Permite modificar los valores de precios (no coeficientes) por producto individual.\n*Precios Tabular Normal: Permite modificar los valores de precios por producto en un formato tabular.\n*Precios Tabular por Proceso: Permite modificar los valores de precios por conjunto de productos, aplicando en forma selectiva el coeficiente a utilizar.\n\n==== Composición ====\nEsta estructura de información alberga una matriz de Producto-Elemento/Componente de Producto. Esta esquema permite definir los elementos componentes de un producto sean estos básicos (necesarios) o optativos.\n\n[[Archivo:FZG.DOCS.Procesos.Composicion.jpg|center|Vista Conceptual del Proceso]]\n\nUn simple ejemplo de esta definición es el siguiente:\n\n<small>\n{| class=\"wikitable\"\n|+\n!Producto\n!Componentes\n!Necesario\n|-\n|Ventana Corrediza \"XXXXX\"\n|Marco Línea \"XXXXX\"<br/>Vidrio Incoloro 4mm<br/>Vidrio Templado Opaco<br/>Accesorios Línea \"XXXXX\"<br/>Instalación Ventana Corrediza \"XXXXXX\"\n|align=\"center\" |Si<br/>No<br/>No<br/>Si<br/>Si\n|-\n|}\n</small>\n\nEn el ejemplo precedente, observamos una abertura con sus componentes y con la posibilidad de definir entre 2 opciones con que tipo de interior se podrá presupuestar.\n\nEste esquema permite mantener variable la definición de productos de acuerdo a los precios individuales de cada elemento.\n\nDebido a que de este esquema partirá el cálculo de los precios, por defecto, al ingresar un nuevo producto, en forma automática se agregará un registro de componente (mínimo) con los datos del Elemento igual al Producto. Esto no debe modificarse a menos que quiera establecer un producto compuesto, en cuyo caso, solo será necesario contar con un producto básico.\n\n==== Proveedores ====\nSe refiere a los códigos de proveedores. Inicialmente se utiliza para diferencias los productos de acuerdo a su procedencia y para facilitar el proceso de cambio de precios, siendo estos códigos los atributos de diferenciación entre materias primas similares.\n\n=== Presupuestos ===\n----\nEste módulo permite gestionar presupuestaciones para clientes de forma amena y precisa, dependiendo su amplia flexibilidad de cuales hayan sido los datos ingresados en la conformación de los productos.\n\nEs posible \n\n\n==== Presupuestos ====\n\nEste proceso permite la gestión de propuestas de venta para todo tipo de clientes. Cuenta con un diseño que permite una visualización integral de los productos y procesos que intervienen en la conformación de esta propuesta de venta. Las acciones posibles dentro de este proceso son:\n\n*Propuestas\n**Alta\n***Propuestas de Ventas\n***Rápida de Clientes\n**Modificación\n***Productos\n***Cantidades\n***Dimensiones\n***Inclusiones\n***Actualización de Precios\n**Consulta\n***Consulta Registro secuencial\n***Consulta por Filtros\n**Activación\n**Impresión\n**Envío por circuito de correo electrónico\n**Copia de Presupuestos\n\n===== Características =====\n====== Diseño ======\nLa pantalla de presentación de este proceso presenta las siguientes elementos:\n\n* \'\'\'Cabecera\'\'\': Son los datos principales del formulario.\n** \'\'\'Datos de Cliente\'\'\': Es la información del contacto \"Cliente\" seleccionado que impacta en forma directa sobre la cotización de los productos dentro de la propuesta\n* \'\'\'Productos\'\'\': Se detallan todos los productos que formarán parte del presupuesto\n* \'\'\'Composición\'\'\': Se detalla todos los elementos que conforma un producto y sus adicionales.\n** \'\'\'Detalle Composición\'\'\': Es la información de los elementos componentes de cada producto presupuestado que impactan en forma directa sobre la cotización de ese elemento dentro del producto seleccionado dentro de la propuesta.\n\n[[Archivo:FZG.DOCS.Procesos.Presupuesto.jpg|center|Vista Conceptual del Proceso]]\n\n\'\'\'Cabecera\'\'\': Se destaca la inclusión de los datos del cliente y la asignación de un agente de venta del presupuesto. Es importante la definición de los datos del cliente ingresado dado que dependiendo de la tipificación del mismo varariá en forma directa los precios a aplicar en los presupuestos. Últimamente, se a agregado la información de Agente Comercial que corresponde a quién es responsable del presupuesto y gestor del cumplimiento del ingreso de toda la información necesaria tanto para el cálculo presupuestario sino también para su posterior fabricación en caso de ser aprobado.\n\n[[Archivo:FZG.DOCS.Pantalla.Presupuesto.jpg|center|Vista Conceptual del Proceso]]\n\n\'\'\'Detalle Presupuesto\'\'\': Se detallan los datos mínimos de Productos necesarios para la confección del presupuesto. Estos datos son: Cantidad, Producto (Código y/o Descripción), Ancho/Largo y finalmente Alto. Para los casos de productos definidos con Magnitud igual a Unidad (UN), solo tomará la información indicada en el campo de Cantidad.\n\nAl tiempo del ingreso de la información de Productos, en forma automática se completará la sección de \'\'\'Detalle Producto\'\'\'. Esta sección es la que permitirá agregar los adicionales definidos en su oportunidad para completar el producto mencionado. Cabe aclarar, que solo se podrán agregar o eliminar lo elementos del Detalle de Producto que no formen parte del [[Esquema Básico de un Producto]]. A su vez, si los Elementos de los Productos ingresados tuviesen Parámetros adicionales a especificar, se agregarán en forma automática dentro de la 4º sección del formulario.\n\nDentro del detalle del producto se observan los siguientes datos:\n* Elemento: Código del elemento que forma parte del Producto\n* Descripción Elemento: Descripción del elemento que forma parte del Producto\n* Precio Unitario: Precio por Unidad de Magnitud del Producto de acuerdo a las condiciones del presupuesto (Tipo de Cliente, magnitud especificada, etc.)\n* Precio: Precio del Elemento de acuerdo a las condiciones del presupuesto y las cantidades especificadas.\n* Detalle: Indicador para incluir la Descripción del Elemento dentro de la Descripción impresa del Presupuesto al Cliente.\n\nEsta sección del formulario presenta las siguientes características:\n* Es indistinto el ingreso por Código de Elemento o por la Descripción del mismo.\n* Los campos de Código de Elemento y Descripción del Elemento poseen un botón de ayuda contextual. Solo se desplegarán los valores tanto de Código de Elemento como de Descripción de Elemento indicados dentro de la Composición de Producto.\n\nAdemás, como se mencionó anteriormente, existe una 4º Sección de \'\'\'Parámetros Adicionales\'\'\' que pueden afectar a un Presupuesto. En este caso, se detallan los valores distintos a las medidas generales que afectan al presupuesto y su posterior diseño o colocación.\nEn esta sección pueden incluirse cualquier valor y depende de lo ingresado dentro de la tabla de [[Valores Adicionales de Productos]] (Ver [[Mantenimiento de Datos Auxiliares]])\n\nLas características definidas de este formulario son las siguientes:\n* El esquema de información posee 4 grupos de datos ya comentados.\n* Los grupos de datos son independientes excepto al tiempo de ejecución de este mismo formulario y en las acciones de ingreso de información de cada grupo.\n** El alta de un Producto en el Detalle Presupuesto presupone el ingreso en forma automática de al menos una registración en el Detalle Producto.\n** El alta de un Producto se referencia a el Producto en si y su composición si la misma tiene más de un Elemento asociado.\n\n==== Presupuesto: Aprobación ====\nA los efectos futuros de gestión de fábrica y de cobranzas, cada elemento aprobado no podrá ser modificado.\n\n==== Presupuesto: Aprobados ====\nConsulta de Presupuestos Aprobados a la fecha.\n\n=== Gestión de Valores ===\n----\nUna de las características de la aplicación es que puede hacer un seguimiento de los valores afectados dentro del proceso de gestion de comercialización, sin que esto reemplaze las formas y comprobantes fiscales, siendo de exclusivo uso interno de la empresa.\n\nEsta gestión se divide en\n\n*Cheques\n*Pagos\n*Cobranzas\n\nTodos estos procesos sirven como \'\'hoja de trabajo\'\' para las registraciones legales y/o fiscales correspondientes y \'\'\'no es objetivo de la presente aplicación reemplazar las mismas\'\'\'.\n\n==== Cheques ====\nRepresenta la registración de cheques de terceros entregados en parte de pago. Los mismos son incorporados por medio del proceso de cobranza y pueden ser endosados en el proceso de Pagos.\n\nEste proceso solo es de consulta y sirve para tener control de los valores registrados y disponibles.\n\n==== Cobranzas ====\nRepresenta la registración de las cobranzas\n\n==== Pagos ====\nRepresenta la registración de las pagos de proveedores/gastos generales. Posee la característica de asociar formas de pago para un mejor control de los valores destinados a tal efecto.\nLos atributos definidos para esta registración son:\n*# de la Transaccion\n*Fecha de la Transaccion\n*Fecha Valor del Pago\n*Forma de Pago: En este caso, las formas habilitadas hasta el momento son las siguientes\n**CHT - Cheque de Terceros: Cheques de Terceros aptos para Endosar. \n**OPP - Orden de Pago Proveedores: Cheques propios o cualquier otro documento ejecutable a entregar\n**EFO - Efectivo Caja Chica\n*Proveedor / Razon Social\n*Tipo de Documento Origen: El documento que origina la obligación de pago\n**OC - Orden de Compra\n**FC - Factura\n*NºDocumento\n*Importe\n*Detalle: Permite el ingreso del detalle del pago o la factura para su clara identificación.\n*Imagen Documento Origen: Este proceso permite adosar la imagen del documento para su fácil visualización en caso de ser requerido\n\nEn la pantalla correspondiente, se despliegan 3 grandes bloques de información:\n*Filtro General: para la visualización de las registraciones de pago efectuadas\n*Pagos: para la visualiación en detalle de las registraciones de pago efectuadas\n*Documento Asociado: En esta ventana se desplegarán diferentes tipo de controles asociados a la forma de pago seleccionada o elegida para la registración de pago\nEn el caso de indicar como forma de pago el código \"CHT - Cheque de Terceros, a la derecha de la registración se desplegará la ventana de documentos asociado es en la que se emarcarán todos los cheques existentes disponibles para su endoso. Para seleccionar los mismos, pulse sobre la grilla de visualización de los documentos.\nEn el caso de indicar como forma de pago el código \"OPP - Orden de Pago Proveedores, a la derecha de la registración se desplegará la ventana con la posibilidad de inscribir el documento emitido.\nEn el caso de indicar como forma de pago el código \"EFO\" se no se habilitará la ventana de Documento asociado, solo quedando habilitados los atributos arriba indicados.\n\n== Generalidades ==\n\nEsta versión de la aplicación se encuentra desarrollada bajo un ambiente propicio para la gestión de tareas generales de oficina. Este esquema permite gestionar la información en forma clara y sencilla mientras se tenga conocimiento de la estructura de información de la aplicación.\n\nComo ya se encuentra indicado, la gestión de datos se encuentra basada en la definición de formularios que permiten en general el ingreso y mantenimiento de la información volcada dentro de la base de datos de la aplicación.\n\nMuchos de los formularios ya tienen incorporada dentro del mismo una facilidad de filtro simple, que atañe a los Productos, Categoría o Proveedor de los mismos, pero también es posible realizar búsquedas de mayor precisión con el entorno donde se ha desarrollado la aplicación\n\nEstos formularios, en su gran mayoría a menos que se especifique lo contrario, permiten gestionar el ingreso modificación y eliminación de documentos o registraciones ingresadas en la aplicación.\n\nEl otro elemento que es posible ejecutar dentro de los formularios es la de consulta y consulta parcial. Para esto último en necesario indicar cuales van a ser los atributos por los cuales esos datos van a estar desplegados. A nivel del usuario, la definición de la consulta parcial consiste en presentar el mismo formulario pero en blanco para poder indicar, campo por campo cuales van a ser los datos que servirá de atributo de selección de la visualización.\n\nPara el caso particular de los campos de texto que desconozcamos parte del criterio, el mismo puede ser reemplazado por la siguiente sintaxis:\n<small><pre>\nLIKE %<cadena de caracteres que respondan a la búsqueda>%\n</pre></small>\n\nComo se indica en el párrafo anterior, es imprescindible anteponer el prefijo \"LIKE\" antes a la cadena de caracteres. Se observa también que a ambos lados de la cadena de caracteres se sitúa el signo de porcentaje (%). Este signo tiene la función de comodín. Las siguientes cadenas sirven de ejemplo:\n<small><pre>\nLIKE Ventana%\n</pre></small>\nIndicará que ese criterio de búsqueda será para todos los elementos que comiencen con la palabra \"Ventana\".\n<small><pre>\nLIKE %Vidrio%\n</pre></small>\nIndicará que ese criterio de búsqueda será para todos los elementos que tengan en cualquier posición dentro del campo seleccionado la palabra \"Ventana\".\n\n== Referencia Rápida ==\n===Productos===\n====¿Que sucede cuando se ingresa un nuevo Producto?====\nEl ingreso de un nuevo Producto se utiliza cada vez que exista un producto o elemento componente de un producto para indicar los elementos mínimos de identificación de ese Producto o \"Materia Prima\" (denominado \"Elemento\"). Además, en forma automática se generan registraciones tanto en las tablas de Precios como en la de Composición, marcando en esta última el atributo de Elemento Primario para asociarlo en el caso que se coloque como elemento único dentro de una presupuestación.\n===Composicion===\n===Modulos===\n====¿Que es un Módulo?====\nEs un conjunto de productos o elementos que componen un módulo o modelo de producto. Generalmente se aplica para productos o partes de un proyecto de construcción.\n====¿Quién genera un nuevo módulo?====\nEl usuario con capacidades de diseño de productos.\n\n===Bocetos===\n===Precios===\n===Contactos===\n====¿A que se refiere el Mantenimiento de Contactos?====\nLa aplicación define como Contacto a toda persona física o jurídica que tenga relevancia dentro del proceso. Esto significa que tanto los Clientes, Proveedores, Agentes Comerciales y otras personas, deben figurar dentro de esta Entidad. La diferenciación de cada uno de ellos se encuentra en la asignación las diferentes categorías desplegadas en el formulario correspondiente.\n\n===Presupuestos===\n====¿Que sucede cuando elimino un presupuesto?====\nSe eliminan todas las registraciones asociadas (productos y elementos asociados al producto.\n====¿Que sucede cuando elimino un producto de un presupuesto?====\nSe eliminan todas las registraciones asociadas (de elementos componentes de ese producto en ese presupuesto, que pueden variar en cada presupuesto).\n====¿Que sucede cuando modifico las dimensiones de un producto en un presupuesto?====\nSe actualizan los precios en ese presupuesto con la última lista de precios vigente de todos los elementos asociados a las magnitudes del producto modificado.\n====¿Que sucede cuando modifico las cantidades de un producto en un presupuesto?====\nDe la misma manera cuando se modifican las magnitudes, se actualizan los precios en ese presupuesto con la última lista de precios vigente de todos los elementos asociados a las magnitudes del producto modificado.\n====¿Que sucede cuando modifico un producto (Código de Producto o Descripción indistintamente)?====\nSe procede a eliminar las registraciones existentes del producto modificado y se agregan los elementos asociados a ese producto con el precio actualizado de acuerdo a la lista de precios vigente.\n====¿Se puede recuperar un presupuesto eliminado?====\nNo. En el caso que se haya pulsado por error la tecla de eliminación, existe una pregunta de seguridad antes de eliminar físicamente la registración del presupuesto.\n====¿Que sucede cuando ingreso un producto en un presupuesto?====\nLa aplicación automáticamente ingresa como elementos básicos aquellos que hayan sido señalados como básicos dentro del esquema de Composición de Producto. Si el Producto tiene otros elementos asociados pero no están definidos como básicos, es posible ingresarlos debajo de los básicos. En este caso en particular, solo estará permitido ingresar aquellos productos asociados en la composición previa y no otros Productos/Elementos.\n====¿Que significa Aprobar un Presupuesto?====\nEs el proceso que permite \"fijar\" un prespuesto y que no pueda ser modificado.\n====¿Porque no puedo enviar por correo electrónico un presupuesto?====\nProbablemente no esté incorporado el dato de Correo Electrónico Principal dentro de Contactos. Proceda a mantener actualizada la información de Contactos.\n\n===Valores===\n\n== Glosario ==\n{|\n! Concepto\n! Definición\n|-\n|\'\'Formularios\'\'\n|Los formularios ofrecen un método o rutina para el ingreso controlado de datos. En si, un formulario consiste en un conjunto de elementos o controles que mantiene un dato.\n|-\n| \'\'Base de Datos\'\'\n| Conjunto de componentes de información. Puede contener estructuras de datos como así también rutinas y funciones asociadas a las estructuras de datos\n|-\n| \'\'Tabla\'\'\n| Conjunto de datos referentes una entidad de información. Puede ser representada como una planilla de 2 dimensiones con registraciones y atributos comunes de esa entidad de información.\n|-\n| \'\'Entidad\'\'\n| Conjunto de datos referentes que conforman una unidad cuyos atributos la diferencian de otras unidades registrales. La conformación de una entidad se puede dar basada en solo una tabla o un conjunto de ellas.\n|-\n|}','utf-8'),(828,'Gestión Retail Industria\n\n== Spalnex Gestion ==\nSpanex es una aplicación orientada a satisfacer la demanda de soporte a la gestión de productos y servicios de terminación del mercado de la construcción civil. Esta gestión toma forma de una serie de módulos que articulan los diferentes procesos de gestión administrativa y los concernientes a los propios de producción.\n\nBasado y diseñado en herramientas de código abierto, la aplicación desde su concepción, tiene el claro objetivo que la misma un engranaje eficiente en la cadena de maximización del retorno de la inversión.\n\nConsta de módulos que permiten desde la definición de componentes de productos y servicios hasta el control de la producción de los mismos.\nExisten 2 entidades principales con las que se trabaja dentro de la aplicación, a saber:\n\n* Productos\n* Contactos\n\nDentro del concepto de \'\'\'Productos\'\'\' quedan incluidos todos aquellos elementos que puede conformar un producto terminado, un modelo o un conjunto de elementos a comercializar como así también, aquellos que puedan ser comercializados por si solos.\nDentro del concepto de \'\'\'Contactos\'\'\' quedan incluidos todas aquellas personas físicas o jurídicas que sean objeto de alguna operación dentro de la aplicación.\n\nLa versión actual no incluye la gestión gráfica del armado de los elementos, sin que esto sea un impedimento para poder generar productos comercializables.\n\nPara profundizar en los conceptos, se detallan a continuación algunos subesquemas que son de importancia dentro de la aplicación.\n\n=== Gestión de Productos ===\nEn la gestión de productos se engloban una serie de procesos necesarios para mantener la integridad y el normal desenvolvimiento de los módulos de la aplicación. Aquí se han definido en forma individual (obviamente interrelacionadas entre si) varias entidades a saber:\n\nNota: a lo largo de esta ayuda, se podrán observar algunos gráficos conceptuales que tienen como algunas figuras que significan\n\n[[Archivo:FZG.DOCS.Procesos.Ayuda.jpg|center|Vista Conceptual del Proceso]]\n\nDenominamos productos a todos los Productos Terminados y/o Materias Primas que lo componen. Dentro de esta estructura de información incluye la información referida a las magnitudes de control del producto y los coeficientes de precios a aplicar sobre precios de costo del producto para la venta y la imagen del producto, en el caso que exista\n\n[[Archivo:FZG.DOCS.Procesos.Productos.jpg|center|Vista Conceptual del Proceso]]\n\nSe observará más adelante que el concepto de producto es amplio y que incluye subproductos, parámetros de subproductos, precios, composiciones diferenciadas y otros elementos que permiten tener un mantener un portfolio de productos muy variada. Para esto se subdivide los productos en:\n\n*Productos PPD: (Propiamente Dicho. A partir de aquí, \"Productos\"\n*Precios: Precios de los productos\n*Composiciones: Conformación de conjuntos de productos o elementos para conformar otros productos comercializables. Se incluyen aquellos aspectos de control de forma, y categoría de producto. Es necesario aclarar que dada la versatilidad de la aplicación, puede incluirse dentro de un producto compuesto, otros subproductos o elementos tales como Mano de Obra, Colocación, Transporte, etc.\n\n==== Productos ====\nAl tiempo del ingreso de la información de producto, y a efectos de mantener la integridad de las estructuras de información, una vez finalizado el ingreso de la información de ese producto, al almacenarse, también genera en forma automática registraciones dentro de las estructuras de precios y de composición, con los valores de precios en 0 y un registro de composición con los valores de coeficientes asociados en 0\n\nEs importante diferenciar los coeficientes indicados dentro de la estructura de producto y los indicados dentro de la estructura de composición. Dada la facilidad de integración de \"productos\" o \"kits\" con diferentes \"componentes\" o \"elementos\", un elemento dentro de un producto puede tener valores diferentes a el mismo elemento aplicado para otro producto. En el caso de productos como las aberturas, probablemente las dimensiones reales de los interiores de una ventana sean diferentes a las de otro modelo de ventana aunque estas ventanas en si tengan la misma dimensión. En el caso que se desee precisión de costos, estos coeficientes y valores serán de suma importancia.\n\n==== Precios ====\nSe refiere a la lista de precios. \nDebe existir una registración de precios por cada producto activo. Si el ingreso del producto se realiza dentro de los procesos normales, esta registración debiera existir.\nPor cada registración existen, a la fecha, 4 tipos de precios diferentes. Normalmente, El precio \"0\" está indicado como Precio de Costo\". El resto (3 definidos en el release 20120328) puede ser aplicado a discreción del usuario. Nuestra sugerencia es dividir la política comercial en 3 tipos de clientes. La asignación del tipo de cliente se realiza dentro del Mantenimiento de Contactos.\n\n[[Archivo:FZG.DOCS.Procesos.Precios.jpg|center|Vista Conceptual del Proceso]]\n\nLos valores de cada uno de los precios por Tipo de Cliente pueden automatizarse a través de los coeficientes de Precios establecidos dentro del esquema de datos de Producto.\n\nExisten a la fecha 5 procesos que afectan directamente este concepto:\n\n*Cambio Masivo: Aplica un coeficiente de actualización a todos los tipos de precios de acuerdo a un filtro de producto dado.\n*Masivo Coeficientes Actualización: Permite modificar los coeficientes de actualización de acuerdo al \"Precio 0\" en forma masiva de acuerdo a un filtro de producto dado.\n*Precios General: Permite modificar los valores de precios (no coeficientes) por producto individual.\n*Precios Tabular Normal: Permite modificar los valores de precios por producto en un formato tabular.\n*Precios Tabular por Proceso: Permite modificar los valores de precios por conjunto de productos, aplicando en forma selectiva el coeficiente a utilizar.\n\n==== Composición ====\nEsta estructura de información alberga una matriz de Producto-Elemento/Componente de Producto. Esta esquema permite definir los elementos componentes de un producto sean estos básicos (necesarios) o optativos.\n\n[[Archivo:FZG.DOCS.Procesos.Composicion.jpg|center|Vista Conceptual del Proceso]]\n\nUn simple ejemplo de esta definición es el siguiente:\n\n<small>\n{| class=\"wikitable\"\n|+\n!Producto\n!Componentes\n!Necesario\n|-\n|Ventana Corrediza \"XXXXX\"\n|Marco Línea \"XXXXX\"<br/>Vidrio Incoloro 4mm<br/>Vidrio Templado Opaco<br/>Accesorios Línea \"XXXXX\"<br/>Instalación Ventana Corrediza \"XXXXXX\"\n|align=\"center\" |Si<br/>No<br/>No<br/>Si<br/>Si\n|-\n|}\n</small>\n\nEn el ejemplo precedente, observamos una abertura con sus componentes y con la posibilidad de definir entre 2 opciones con que tipo de interior se podrá presupuestar.\n\nEste esquema permite mantener variable la definición de productos de acuerdo a los precios individuales de cada elemento.\n\nDebido a que de este esquema partirá el cálculo de los precios, por defecto, al ingresar un nuevo producto, en forma automática se agregará un registro de componente (mínimo) con los datos del Elemento igual al Producto. Esto no debe modificarse a menos que quiera establecer un producto compuesto, en cuyo caso, solo será necesario contar con un producto básico.\n\n==== Proveedores ====\nSe refiere a los códigos de proveedores. Inicialmente se utiliza para diferencias los productos de acuerdo a su procedencia y para facilitar el proceso de cambio de precios, siendo estos códigos los atributos de diferenciación entre materias primas similares.\n\n=== Presupuestos ===\n----\nEste módulo permite gestionar presupuestaciones para clientes de forma amena y precisa, dependiendo su amplia flexibilidad de cuales hayan sido los datos ingresados en la conformación de los productos.\n\nEs posible \n\n\n==== Presupuestos ====\n\nEste proceso permite la gestión de propuestas de venta para todo tipo de clientes. Cuenta con un diseño que permite una visualización integral de los productos y procesos que intervienen en la conformación de esta propuesta de venta. Las acciones posibles dentro de este proceso son:\n\n*Propuestas\n**Alta\n***Propuestas de Ventas\n***Rápida de Clientes\n**Modificación\n***Productos\n***Cantidades\n***Dimensiones\n***Inclusiones\n***Actualización de Precios\n**Consulta\n***Consulta Registro secuencial\n***Consulta por Filtros\n**Activación\n**Impresión\n**Envío por circuito de correo electrónico\n**Copia de Presupuestos\n\n===== Características =====\n====== Diseño ======\nLa pantalla de presentación de este proceso presenta las siguientes elementos:\n\n* \'\'\'Cabecera\'\'\': Son los datos principales del formulario.\n** \'\'\'Datos de Cliente\'\'\': Es la información del contacto \"Cliente\" seleccionado que impacta en forma directa sobre la cotización de los productos dentro de la propuesta\n* \'\'\'Productos\'\'\': Se detallan todos los productos que formarán parte del presupuesto\n* \'\'\'Composición\'\'\': Se detalla todos los elementos que conforma un producto y sus adicionales.\n** \'\'\'Detalle Composición\'\'\': Es la información de los elementos componentes de cada producto presupuestado que impactan en forma directa sobre la cotización de ese elemento dentro del producto seleccionado dentro de la propuesta.\n\n[[Archivo:FZG.DOCS.Procesos.Presupuesto.jpg|center|Vista Conceptual del Proceso]]\n\n\'\'\'Cabecera\'\'\': Se destaca la inclusión de los datos del cliente y la asignación de un agente de venta del presupuesto. Es importante la definición de los datos del cliente ingresado dado que dependiendo de la tipificación del mismo varariá en forma directa los precios a aplicar en los presupuestos. Últimamente, se a agregado la información de Agente Comercial que corresponde a quién es responsable del presupuesto y gestor del cumplimiento del ingreso de toda la información necesaria tanto para el cálculo presupuestario sino también para su posterior fabricación en caso de ser aprobado.\n\n[[Archivo:FZG.DOCS.Pantalla.Presupuesto.jpg|center|Vista Conceptual del Proceso]]\n\n\'\'\'Detalle Presupuesto\'\'\': Se detallan los datos mínimos de Productos necesarios para la confección del presupuesto. Estos datos son: Cantidad, Producto (Código y/o Descripción), Ancho/Largo y finalmente Alto. Para los casos de productos definidos con Magnitud igual a Unidad (UN), solo tomará la información indicada en el campo de Cantidad.\n\nAl tiempo del ingreso de la información de Productos, en forma automática se completará la sección de \'\'\'Detalle Producto\'\'\'. Esta sección es la que permitirá agregar los adicionales definidos en su oportunidad para completar el producto mencionado. Cabe aclarar, que solo se podrán agregar o eliminar lo elementos del Detalle de Producto que no formen parte del [[Esquema Básico de un Producto]]. A su vez, si los Elementos de los Productos ingresados tuviesen Parámetros adicionales a especificar, se agregarán en forma automática dentro de la 4º sección del formulario.\n\nDentro del detalle del producto se observan los siguientes datos:\n* Elemento: Código del elemento que forma parte del Producto\n* Descripción Elemento: Descripción del elemento que forma parte del Producto\n* Precio Unitario: Precio por Unidad de Magnitud del Producto de acuerdo a las condiciones del presupuesto (Tipo de Cliente, magnitud especificada, etc.)\n* Precio: Precio del Elemento de acuerdo a las condiciones del presupuesto y las cantidades especificadas.\n* Detalle: Indicador para incluir la Descripción del Elemento dentro de la Descripción impresa del Presupuesto al Cliente.\n\nEsta sección del formulario presenta las siguientes características:\n* Es indistinto el ingreso por Código de Elemento o por la Descripción del mismo.\n* Los campos de Código de Elemento y Descripción del Elemento poseen un botón de ayuda contextual. Solo se desplegarán los valores tanto de Código de Elemento como de Descripción de Elemento indicados dentro de la Composición de Producto.\n\nAdemás, como se mencionó anteriormente, existe una 4º Sección de \'\'\'Parámetros Adicionales\'\'\' que pueden afectar a un Presupuesto. En este caso, se detallan los valores distintos a las medidas generales que afectan al presupuesto y su posterior diseño o colocación.\nEn esta sección pueden incluirse cualquier valor y depende de lo ingresado dentro de la tabla de [[Valores Adicionales de Productos]] (Ver [[Mantenimiento de Datos Auxiliares]])\n\nLas características definidas de este formulario son las siguientes:\n* El esquema de información posee 4 grupos de datos ya comentados.\n* Los grupos de datos son independientes excepto al tiempo de ejecución de este mismo formulario y en las acciones de ingreso de información de cada grupo.\n** El alta de un Producto en el Detalle Presupuesto presupone el ingreso en forma automática de al menos una registración en el Detalle Producto.\n** El alta de un Producto se referencia a el Producto en si y su composición si la misma tiene más de un Elemento asociado.\n\n==== Presupuesto: Aprobación ====\nA los efectos futuros de gestión de fábrica y de cobranzas, cada elemento aprobado no podrá ser modificado.\n\n==== Presupuesto: Aprobados ====\nConsulta de Presupuestos Aprobados a la fecha.\n\n=== Gestión de Valores ===\n----\nUna de las características de la aplicación es que puede hacer un seguimiento de los valores afectados dentro del proceso de gestion de comercialización, sin que esto reemplaze las formas y comprobantes fiscales, siendo de exclusivo uso interno de la empresa.\n\nEsta gestión se divide en\n\n*Cheques\n*Pagos\n*Cobranzas\n\nTodos estos procesos sirven como \'\'hoja de trabajo\'\' para las registraciones legales y/o fiscales correspondientes y \'\'\'no es objetivo de la presente aplicación reemplazar las mismas\'\'\'.\n\n==== Cheques ====\nRepresenta la registración de cheques de terceros entregados en parte de pago. Los mismos son incorporados por medio del proceso de cobranza y pueden ser endosados en el proceso de Pagos.\n\nEste proceso solo es de consulta y sirve para tener control de los valores registrados y disponibles.\n\n==== Cobranzas ====\nRepresenta la registración de las cobranzas\n\n==== Pagos ====\nRepresenta la registración de las pagos de proveedores/gastos generales. Posee la característica de asociar formas de pago para un mejor control de los valores destinados a tal efecto.\nLos atributos definidos para esta registración son:\n*# de la Transaccion\n*Fecha de la Transaccion\n*Fecha Valor del Pago\n*Forma de Pago: En este caso, las formas habilitadas hasta el momento son las siguientes\n**CHT - Cheque de Terceros: Cheques de Terceros aptos para Endosar. \n**OPP - Orden de Pago Proveedores: Cheques propios o cualquier otro documento ejecutable a entregar\n**EFO - Efectivo Caja Chica\n*Proveedor / Razon Social\n*Tipo de Documento Origen: El documento que origina la obligación de pago\n**OC - Orden de Compra\n**FC - Factura\n*NºDocumento\n*Importe\n*Detalle: Permite el ingreso del detalle del pago o la factura para su clara identificación.\n*Imagen Documento Origen: Este proceso permite adosar la imagen del documento para su fácil visualización en caso de ser requerido\n\nEn la pantalla correspondiente, se despliegan 3 grandes bloques de información:\n*Filtro General: para la visualización de las registraciones de pago efectuadas\n*Pagos: para la visualiación en detalle de las registraciones de pago efectuadas\n*Documento Asociado: En esta ventana se desplegarán diferentes tipo de controles asociados a la forma de pago seleccionada o elegida para la registración de pago\nEn el caso de indicar como forma de pago el código \"CHT - Cheque de Terceros, a la derecha de la registración se desplegará la ventana de documentos asociado es en la que se emarcarán todos los cheques existentes disponibles para su endoso. Para seleccionar los mismos, pulse sobre la grilla de visualización de los documentos.\nEn el caso de indicar como forma de pago el código \"OPP - Orden de Pago Proveedores, a la derecha de la registración se desplegará la ventana con la posibilidad de inscribir el documento emitido.\nEn el caso de indicar como forma de pago el código \"EFO\" se no se habilitará la ventana de Documento asociado, solo quedando habilitados los atributos arriba indicados.\n\n== Generalidades ==\n\nEsta versión de la aplicación se encuentra desarrollada bajo un ambiente propicio para la gestión de tareas generales de oficina. Este esquema permite gestionar la información en forma clara y sencilla mientras se tenga conocimiento de la estructura de información de la aplicación.\n\nComo ya se encuentra indicado, la gestión de datos se encuentra basada en la definición de formularios que permiten en general el ingreso y mantenimiento de la información volcada dentro de la base de datos de la aplicación.\n\nMuchos de los formularios ya tienen incorporada dentro del mismo una facilidad de filtro simple, que atañe a los Productos, Categoría o Proveedor de los mismos, pero también es posible realizar búsquedas de mayor precisión con el entorno donde se ha desarrollado la aplicación\n\nEstos formularios, en su gran mayoría a menos que se especifique lo contrario, permiten gestionar el ingreso modificación y eliminación de documentos o registraciones ingresadas en la aplicación.\n\nEl otro elemento que es posible ejecutar dentro de los formularios es la de consulta y consulta parcial. Para esto último en necesario indicar cuales van a ser los atributos por los cuales esos datos van a estar desplegados. A nivel del usuario, la definición de la consulta parcial consiste en presentar el mismo formulario pero en blanco para poder indicar, campo por campo cuales van a ser los datos que servirá de atributo de selección de la visualización.\n\nPara el caso particular de los campos de texto que desconozcamos parte del criterio, el mismo puede ser reemplazado por la siguiente sintaxis:\n<small><pre>\nLIKE %<cadena de caracteres que respondan a la búsqueda>%\n</pre></small>\n\nComo se indica en el párrafo anterior, es imprescindible anteponer el prefijo \"LIKE\" antes a la cadena de caracteres. Se observa también que a ambos lados de la cadena de caracteres se sitúa el signo de porcentaje (%). Este signo tiene la función de comodín. Las siguientes cadenas sirven de ejemplo:\n<small><pre>\nLIKE Ventana%\n</pre></small>\nIndicará que ese criterio de búsqueda será para todos los elementos que comiencen con la palabra \"Ventana\".\n<small><pre>\nLIKE %Vidrio%\n</pre></small>\nIndicará que ese criterio de búsqueda será para todos los elementos que tengan en cualquier posición dentro del campo seleccionado la palabra \"Ventana\".\n\n== Referencia Rápida ==\n===Productos===\n====¿Que sucede cuando se ingresa un nuevo Producto?====\nEl ingreso de un nuevo Producto se utiliza cada vez que exista un producto o elemento componente de un producto para indicar los elementos mínimos de identificación de ese Producto o \"Materia Prima\" (denominado \"Elemento\"). Además, en forma automática se generan registraciones tanto en las tablas de Precios como en la de Composición, marcando en esta última el atributo de Elemento Primario para asociarlo en el caso que se coloque como elemento único dentro de una presupuestación.\n===Composicion===\n===Modulos===\n====¿Que es un Módulo?====\nEs un conjunto de productos o elementos que componen un módulo o modelo de producto. Generalmente se aplica para productos o partes de un proyecto de construcción.\n====¿Quién genera un nuevo módulo?====\nEl usuario con capacidades de diseño de productos.\n\n===Bocetos===\n====¿Que es un Boceto?====\nUn Boceto es un Módulo al que se le pueden aplicar modificaciones que respondan a un proyecto determinado. Estas modificaciones están restringidas de acuerdo a lo definido dentro del módulo.\n====¿Quién puede crear un boceto?====\nGeneralmente los bocetos se preparan a partir de nuevos proyectos definidos. Sería necesario el acceso a los procesos de Modulos para generarlo y luego si puede ser modificado de acuerdo a las restricciones definidas dentro de esos mismos procesos.\n====¿Que operaciones puedo hacer sobre un boceto?====\nExisten algunas restricciones a tener en cuenta cuando se confecciona un boceto:\n*Si bien un boceto puede generarse a partir de un módulo, una vez que a partir del boceto se genera un Producto, el boceto queda bloqueado (no puede modificarse ni eliminarse) y tiene una relación unívoca con el producto.\n*Mientras que el boceto no haya generado un producto nuevo, el mismo puede ser modificado.\n*El boceto puede copiarse en otro boceto\n*El boceto puede ser chequeado en su composición en relación a las dimensiones del vano a través de su definición dentro del módulo (correspondencia de subconjuntos de elementos.\n\n===Precios===\n===Contactos===\n====¿A que se refiere el Mantenimiento de Contactos?====\nLa aplicación define como Contacto a toda persona física o jurídica que tenga relevancia dentro del proceso. Esto significa que tanto los Clientes, Proveedores, Agentes Comerciales y otras personas, deben figurar dentro de esta Entidad. La diferenciación de cada uno de ellos se encuentra en la asignación las diferentes categorías desplegadas en el formulario correspondiente.\n\n===Presupuestos===\n====¿Que sucede cuando elimino un presupuesto?====\nSe eliminan todas las registraciones asociadas (productos y elementos asociados al producto.\n====¿Que sucede cuando elimino un producto de un presupuesto?====\nSe eliminan todas las registraciones asociadas (de elementos componentes de ese producto en ese presupuesto, que pueden variar en cada presupuesto).\n====¿Que sucede cuando modifico las dimensiones de un producto en un presupuesto?====\nSe actualizan los precios en ese presupuesto con la última lista de precios vigente de todos los elementos asociados a las magnitudes del producto modificado.\n====¿Que sucede cuando modifico las cantidades de un producto en un presupuesto?====\nDe la misma manera cuando se modifican las magnitudes, se actualizan los precios en ese presupuesto con la última lista de precios vigente de todos los elementos asociados a las magnitudes del producto modificado.\n====¿Que sucede cuando modifico un producto (Código de Producto o Descripción indistintamente)?====\nSe procede a eliminar las registraciones existentes del producto modificado y se agregan los elementos asociados a ese producto con el precio actualizado de acuerdo a la lista de precios vigente.\n====¿Se puede recuperar un presupuesto eliminado?====\nNo. En el caso que se haya pulsado por error la tecla de eliminación, existe una pregunta de seguridad antes de eliminar físicamente la registración del presupuesto.\n====¿Que sucede cuando ingreso un producto en un presupuesto?====\nLa aplicación automáticamente ingresa como elementos básicos aquellos que hayan sido señalados como básicos dentro del esquema de Composición de Producto. Si el Producto tiene otros elementos asociados pero no están definidos como básicos, es posible ingresarlos debajo de los básicos. En este caso en particular, solo estará permitido ingresar aquellos productos asociados en la composición previa y no otros Productos/Elementos.\n====¿Que significa Aprobar un Presupuesto?====\nEs el proceso que permite \"fijar\" un prespuesto y que no pueda ser modificado.\n====¿Porque no puedo enviar por correo electrónico un presupuesto?====\nProbablemente no esté incorporado el dato de Correo Electrónico Principal dentro de Contactos. Proceda a mantener actualizada la información de Contactos.\n\n===Valores===\n\n== Glosario ==\n{|\n! Concepto\n! Definición\n|-\n|\'\'Formularios\'\'\n|Los formularios ofrecen un método o rutina para el ingreso controlado de datos. En si, un formulario consiste en un conjunto de elementos o controles que mantiene un dato.\n|-\n| \'\'Base de Datos\'\'\n| Conjunto de componentes de información. Puede contener estructuras de datos como así también rutinas y funciones asociadas a las estructuras de datos\n|-\n| \'\'Tabla\'\'\n| Conjunto de datos referentes una entidad de información. Puede ser representada como una planilla de 2 dimensiones con registraciones y atributos comunes de esa entidad de información.\n|-\n| \'\'Entidad\'\'\n| Conjunto de datos referentes que conforman una unidad cuyos atributos la diferencian de otras unidades registrales. La conformación de una entidad se puede dar basada en solo una tabla o un conjunto de ellas.\n|-\n|}','utf-8'),(829,'===20121201===\n====Actualización de [[TABLA:Productos]]====\n<pre>\nALTER TABLE `fzggestion`.`productos` \nADD COLUMN `ProductoGen` CHAR(8) NULL  FIRST , \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 `Presentacion` VARCHAR(45) NULL  AFTER `MagCmpZ ;\n</pre>\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'),(830,'===20121201===\n====Actualización de [[TABLA:Productos]]====\n<pre>\nALTER TABLE `fzggestion`.`productos` \nADD COLUMN `ProductoGen` CHAR(8) NULL  FIRST , \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` ;\n</pre>\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'),(831,'===20121201===\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` ;\n</pre>\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'),(832,'===20121201===\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` ;\nUPDATE productos\nSET \n    ProductoGen = ProductoID,\n    ProductoDflt= 1\n</pre>\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'),(833,'===Esquema de Actualizaciones===\n*[[Actualizacion DB]]\n=== Versión 1.1 ===\n====Release 20121201====\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 20121030====\n=====Problemas Conocidos=====\n*Aleatoriamente no elimina registros y cuando se visualiza o refresca la tabla, hace shutdown de la sesión\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'),(834,'===Esquema de Actualizaciones===\n*[[Actualizacion DB]]\n=== Versión 1.1 ===\n====Release 20121201====\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 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'),(835,'===Esquema de Actualizaciones===\n*[[Actualizacion DB]]\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=====Correcciones y Agregados=====\n*[[FORM:Modulos]]. Rediseño del originario [[FORM:Predefinidos]] y puesta en producción.\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'),(836,'','utf-8'),(837,'===Esquema de Actualizaciones===\n*[[Actualizacion DB]]\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=====Correcciones y Agregados=====\n*[[FORM:Modulos]]. Rediseño del originario [[FORM:Predefinidos]] y puesta en producción.\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:SpanexGestion.FORM.Modulos.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'),(838,'===Esquema de Actualizaciones===\n*[[Actualizacion DB]]\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=====Correcciones y Agregados=====\n*[[FORM:Modulos]]. Rediseño del originario [[FORM:Predefinidos]] y puesta en producción.\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'),(839,'== Descripción ==\n== Composición ==\n== Imagen ==\n\n[[File:SpanexGestion.FORM.Modulos.png]]\n== Estructura ==\n== Código Relacionado ==\n== Bitácora ==\n== Uso ==','utf-8'),(840,'== Descripción ==\n== Composición ==\n== Imagen ==\n\n[[File:SpanexGestion.FORM.Modulos.png|200px]]\n\n== Estructura ==\n== Código Relacionado ==\n== Bitácora ==\n== Uso ==','utf-8'),(841,'== Descripción ==\n== Composición ==\n== Imagen ==\n\n[[File:SpanexGestion.FORM.Modulos.png|400px]]\n\n== Estructura ==\n== Código Relacionado ==\n== Bitácora ==\n== Uso ==','utf-8'),(842,'== Descripción ==\nProceso de Definición de un módulo o modelo o kit de producto cuyos elementos no sean dependientes en forma taxativa a un vano o espacio de trabajo determinado sino que esté incluido en el mismo\n== Composición ==\n*[[TABLA:moduloscab]]\n*[[TABLA:modulosdet]]\n== Imagen ==\n[[File:SpanexGestion.FORM.Modulos.png|400px]]\n== Estructura ==\n*FormModulos\n**FormComponentes\n== Código Relacionado ==\n*[[MACRO:ControlBotonesFormModulos]]\n*[[MACRO:ConfirmaDeleteModulo]]\n== Bitácora ==\n*20121130\n**Alta de Formulario\n== Uso ==','utf-8'),(843,'===20121201===\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===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'),(844,'===20121201===\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:Presupuesto]]====\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'),(845,'===20121201===\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'),(846,'== Descripción ==\nChequea los campos de dimensiones dentro del [[FORM:Presupuesto]]\n== Biblioteca ==\n== Composición ==\n== Código ==\n< small>< pre>\n< /pre>< /small>\n== Bitácora ==\n== Uso ==','utf-8'),(847,'== Descripción ==\nChequea los campos de dimensiones dentro del [[FORM:Presupuesto]]\n== Biblioteca ==\n[[LIBR:SpanexB]]\n== Composición ==\n== Código ==\n< small>< pre>\n< /pre>< /small>\n== Bitácora ==\n*20121115\n**Alta:\n<small><pre>\nfunction CheckValidMeasure (Optional oEvent as Object)\n\n	\'Test(oEvent)\n	CheckValidMeasure		= True\n	oController				= ThisComponent.CurrentController\n	if IsMissing(oEvent) Then\n		oFormCabecera		= ThisComponent.DrawPage.Forms(0)\n		oFormProductos		= oFormCabecera.getByName(\"Productos\")\n		oFormProductosGrid	= oFormProductos.getByName(\"ProductosGrid\")\n		oCampoAncho			= oFormProductosGrid.getByName(\"fmtVidQuoteAncho\")\n		oCampoAlto			= oFormProductosGrid.getByName(\"fmtVidQuoteAlto\")\n		oCampoName			= \"CheckValidMeasure\"\n		oMagnitud			= oFormProductosGrid.getByName(\"txtVidQuoteMagnitud\").CurrentValue\n	else\n		oEvento				= oEvent\n		oCampo				= oEvento.Source.Model\n		oCampoName			= oEvento.Source.Model.Name\n		oFormProductosGrid	= oEvento.Source.Model.Parent\n		oMagnitud			= oFormProductosGrid.getByName(\"txtVidQuoteMagnitud\").CurrentValue	\n	end if\n\n	\'MsgBox \"Test\"\n	select case oCampoName\n		case \"fmtVidQuoteAncho\"\n			select case oMagnitud\n				case \"M2\",\"MG\",\"PR\",\"AN\",\"ML\"\n					if oCampo.CurrentValue < 100 Then\n						oMensaje	= \"La magnitud definida del producto requiere completar este campo\"\n						MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n						oGridView	= oController.GetControl(oFormProductosGrid)\n						oCampoView	= oGridView.getByIndex(3)\n						oGridView.setFocus()\n						oGridView.setCurrentColumnPosition(3)\n						CheckValidMeasure		= False\n						\'Test(oGridView)\n					end if\n				case \"UN\"\n			end select\n		case \"fmtVidQuoteAlto\"\n			select case oMagnitud\n				case \"M2\",\"MG\",\"PR\",\"AL\"\n					if oCampo.CurrentValue < 100 Then\n						oMensaje	= \"La magnitud definida del producto requiere completar este campo\"\n						MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n						oGridView	= oController.GetControl(oFormProductosGrid)\n						oCampoView	= oGridView.getByIndex(4)\n						oGridView.setFocus()\n						oGridView.setCurrentColumnPosition(4)\n						CheckValidMeasure		= False\n						\'Test(oGridView)\n					end if\n				case \"ML\",\"AN\",\"UN\"\n			end select\n		case \"CheckValidMeasure\"\n			oCampo	= oCampoAncho\n			select case oMagnitud\n				case \"M2\",\"MG\",\"PR\",\"AN\",\"ML\"\n					if oCampo.CurrentValue < 100 Then\n						oMensaje	= \"La magnitud definida del producto requiere completar este campo (Ancho/Lrg)\"\n						MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n						oGridView	= oController.GetControl(oFormProductosGrid)\n						oCampoView	= oGridView.getByIndex(4)\n						oGridView.setFocus()\n						CheckValidMeasure		= False\n					end if\n				case \"UN\"\n			end select\n			if CheckValidMeasure Then\n				oCampo	= oCampoAlto\n				select case oMagnitud\n					case \"M2\",\"MG\",\"PR\",\"AL\"\n						if oCampo.CurrentValue < 100 Then\n							oMensaje	= \"La magnitud definida del producto requiere completar este campo (Alto)\"\n							MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n							oGridView	= oController.GetControl(oFormProductosGrid)\n							oCampoView	= oGridView.getByIndex(4)\n							oGridView.setFocus()\n							CheckValidMeasure		= False\n						end if\n					case \"ML\",\"AN\",\"UN\"\n				end select\n			end if\n	end select\nend function\n</pre></small>\n== Uso ==','utf-8'),(848,'== Descripción ==\nChequea los campos de dimensiones dentro del [[FORM:Presupuesto]]\n== Biblioteca ==\n[[LIBR:SpanexB]]\n== Composición ==\n== Código ==\n<small><pre>\n</pre></small>\n\n== Bitácora ==\n*20121115\n**Alta:\n<small><pre>\nfunction CheckValidMeasure (Optional oEvent as Object)\n\n	\'Test(oEvent)\n	CheckValidMeasure		= True\n	oController				= ThisComponent.CurrentController\n	if IsMissing(oEvent) Then\n		oFormCabecera		= ThisComponent.DrawPage.Forms(0)\n		oFormProductos		= oFormCabecera.getByName(\"Productos\")\n		oFormProductosGrid	= oFormProductos.getByName(\"ProductosGrid\")\n		oCampoAncho			= oFormProductosGrid.getByName(\"fmtVidQuoteAncho\")\n		oCampoAlto			= oFormProductosGrid.getByName(\"fmtVidQuoteAlto\")\n		oCampoName			= \"CheckValidMeasure\"\n		oMagnitud			= oFormProductosGrid.getByName(\"txtVidQuoteMagnitud\").CurrentValue\n	else\n		oEvento				= oEvent\n		oCampo				= oEvento.Source.Model\n		oCampoName			= oEvento.Source.Model.Name\n		oFormProductosGrid	= oEvento.Source.Model.Parent\n		oMagnitud			= oFormProductosGrid.getByName(\"txtVidQuoteMagnitud\").CurrentValue	\n	end if\n\n	\'MsgBox \"Test\"\n	select case oCampoName\n		case \"fmtVidQuoteAncho\"\n			select case oMagnitud\n				case \"M2\",\"MG\",\"PR\",\"AN\",\"ML\"\n					if oCampo.CurrentValue < 100 Then\n						oMensaje	= \"La magnitud definida del producto requiere completar este campo\"\n						MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n						oGridView	= oController.GetControl(oFormProductosGrid)\n						oCampoView	= oGridView.getByIndex(3)\n						oGridView.setFocus()\n						oGridView.setCurrentColumnPosition(3)\n						CheckValidMeasure		= False\n						\'Test(oGridView)\n					end if\n				case \"UN\"\n			end select\n		case \"fmtVidQuoteAlto\"\n			select case oMagnitud\n				case \"M2\",\"MG\",\"PR\",\"AL\"\n					if oCampo.CurrentValue < 100 Then\n						oMensaje	= \"La magnitud definida del producto requiere completar este campo\"\n						MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n						oGridView	= oController.GetControl(oFormProductosGrid)\n						oCampoView	= oGridView.getByIndex(4)\n						oGridView.setFocus()\n						oGridView.setCurrentColumnPosition(4)\n						CheckValidMeasure		= False\n						\'Test(oGridView)\n					end if\n				case \"ML\",\"AN\",\"UN\"\n			end select\n		case \"CheckValidMeasure\"\n			oCampo	= oCampoAncho\n			select case oMagnitud\n				case \"M2\",\"MG\",\"PR\",\"AN\",\"ML\"\n					if oCampo.CurrentValue < 100 Then\n						oMensaje	= \"La magnitud definida del producto requiere completar este campo (Ancho/Lrg)\"\n						MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n						oGridView	= oController.GetControl(oFormProductosGrid)\n						oCampoView	= oGridView.getByIndex(4)\n						oGridView.setFocus()\n						CheckValidMeasure		= False\n					end if\n				case \"UN\"\n			end select\n			if CheckValidMeasure Then\n				oCampo	= oCampoAlto\n				select case oMagnitud\n					case \"M2\",\"MG\",\"PR\",\"AL\"\n						if oCampo.CurrentValue < 100 Then\n							oMensaje	= \"La magnitud definida del producto requiere completar este campo (Alto)\"\n							MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n							oGridView	= oController.GetControl(oFormProductosGrid)\n							oCampoView	= oGridView.getByIndex(4)\n							oGridView.setFocus()\n							CheckValidMeasure		= False\n						end if\n					case \"ML\",\"AN\",\"UN\"\n				end select\n			end if\n	end select\nend function\n</pre></small>\n== Uso ==','utf-8'),(849,'== Descripción ==\nChequea los campos de dimensiones dentro del [[FORM:Presupuesto]]\n== Biblioteca ==\n[[LIBR:SpanexB]]\n== Composición ==\n== Código ==\n<small><pre>\nfunction CheckValidMeasure (Optional oEvent as Object)\n\n	\'Test(oEvent)\n	CheckValidMeasure		= True\n	oController				= ThisComponent.CurrentController\n	if IsMissing(oEvent) Then\n		oFormCabecera		= ThisComponent.DrawPage.Forms(0)\n		oFormProductos		= oFormCabecera.getByName(\"Productos\")\n		oFormProductosGrid	= oFormProductos.getByName(\"ProductosGrid\")\n		oCampoAncho			= oFormProductosGrid.getByName(\"fmtVidQuoteAncho\")\n		oCampoAlto			= oFormProductosGrid.getByName(\"fmtVidQuoteAlto\")\n		oCampoName			= \"CheckValidMeasure\"\n		oMagnitud			= oFormProductosGrid.getByName(\"txtVidQuoteMagnitud\").CurrentValue\n	else\n		oEvento				= oEvent\n		oCampo				= oEvento.Source.Model\n		oCampoName			= oEvento.Source.Model.Name\n		oFormProductosGrid	= oEvento.Source.Model.Parent\n		oMagnitud			= oFormProductosGrid.getByName(\"txtVidQuoteMagnitud\").CurrentValue	\n	end if\n\n	\'MsgBox \"Test\"\n	select case oCampoName\n		case \"fmtVidQuoteAncho\"\n			select case oMagnitud\n				case \"M2\",\"MG\",\"PR\",\"AN\",\"ML\"\n					if oCampo.CurrentValue < 25 Then\n						oMensaje	= \"La magnitud definida del producto requiere completar este campo con valores válidos\"\n						MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n						oGridView	= oController.GetControl(oFormProductosGrid)\n						oCampoView	= oGridView.getByIndex(3)\n						oGridView.setFocus()\n						oGridView.setCurrentColumnPosition(3)\n						CheckValidMeasure		= False\n						\'Test(oGridView)\n					end if\n				case \"UN\"\n			end select\n		case \"fmtVidQuoteAlto\"\n			select case oMagnitud\n				case \"M2\",\"MG\",\"PR\",\"AL\"\n					if oCampo.CurrentValue < 25 Then\n						oMensaje	= \"La magnitud definida del producto requiere completar este campo con valores válidos\"\n						MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n						oGridView	= oController.GetControl(oFormProductosGrid)\n						oCampoView	= oGridView.getByIndex(4)\n						oGridView.setFocus()\n						oGridView.setCurrentColumnPosition(4)\n						CheckValidMeasure		= False\n						\'Test(oGridView)\n					end if\n				case \"ML\",\"AN\",\"UN\"\n			end select\n		case \"CheckValidMeasure\"\n			oCampo	= oCampoAncho\n			select case oMagnitud\n				case \"M2\",\"MG\",\"PR\",\"AN\",\"ML\"\n					if oCampo.CurrentValue < 25 Then\n						oMensaje	= \"La magnitud definida del producto requiere completar este campo (Ancho/Lrg) con valores válidos\"\n						MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n						oGridView	= oController.GetControl(oFormProductosGrid)\n						oCampoView	= oGridView.getByIndex(4)\n						oGridView.setFocus()\n						CheckValidMeasure		= False\n					end if\n				case \"UN\"\n			end select\n			if CheckValidMeasure Then\n				oCampo	= oCampoAlto\n				select case oMagnitud\n					case \"M2\",\"MG\",\"PR\",\"AL\"\n						if oCampo.CurrentValue < 25 Then\n							oMensaje	= \"La magnitud definida del producto requiere completar este campo (Alto) con valores válidos\"\n							MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n							oGridView	= oController.GetControl(oFormProductosGrid)\n							oCampoView	= oGridView.getByIndex(4)\n							oGridView.setFocus()\n							CheckValidMeasure		= False\n						end if\n					case \"ML\",\"AN\",\"UN\"\n				end select\n			end if\n	end select\nend function\n</pre></small>\n\n== Bitácora ==\n*20121115\n**Alta:\n<small><pre>\nfunction CheckValidMeasure (Optional oEvent as Object)\n\n	\'Test(oEvent)\n	CheckValidMeasure		= True\n	oController				= ThisComponent.CurrentController\n	if IsMissing(oEvent) Then\n		oFormCabecera		= ThisComponent.DrawPage.Forms(0)\n		oFormProductos		= oFormCabecera.getByName(\"Productos\")\n		oFormProductosGrid	= oFormProductos.getByName(\"ProductosGrid\")\n		oCampoAncho			= oFormProductosGrid.getByName(\"fmtVidQuoteAncho\")\n		oCampoAlto			= oFormProductosGrid.getByName(\"fmtVidQuoteAlto\")\n		oCampoName			= \"CheckValidMeasure\"\n		oMagnitud			= oFormProductosGrid.getByName(\"txtVidQuoteMagnitud\").CurrentValue\n	else\n		oEvento				= oEvent\n		oCampo				= oEvento.Source.Model\n		oCampoName			= oEvento.Source.Model.Name\n		oFormProductosGrid	= oEvento.Source.Model.Parent\n		oMagnitud			= oFormProductosGrid.getByName(\"txtVidQuoteMagnitud\").CurrentValue	\n	end if\n\n	\'MsgBox \"Test\"\n	select case oCampoName\n		case \"fmtVidQuoteAncho\"\n			select case oMagnitud\n				case \"M2\",\"MG\",\"PR\",\"AN\",\"ML\"\n					if oCampo.CurrentValue < 100 Then\n						oMensaje	= \"La magnitud definida del producto requiere completar este campo\"\n						MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n						oGridView	= oController.GetControl(oFormProductosGrid)\n						oCampoView	= oGridView.getByIndex(3)\n						oGridView.setFocus()\n						oGridView.setCurrentColumnPosition(3)\n						CheckValidMeasure		= False\n						\'Test(oGridView)\n					end if\n				case \"UN\"\n			end select\n		case \"fmtVidQuoteAlto\"\n			select case oMagnitud\n				case \"M2\",\"MG\",\"PR\",\"AL\"\n					if oCampo.CurrentValue < 100 Then\n						oMensaje	= \"La magnitud definida del producto requiere completar este campo\"\n						MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n						oGridView	= oController.GetControl(oFormProductosGrid)\n						oCampoView	= oGridView.getByIndex(4)\n						oGridView.setFocus()\n						oGridView.setCurrentColumnPosition(4)\n						CheckValidMeasure		= False\n						\'Test(oGridView)\n					end if\n				case \"ML\",\"AN\",\"UN\"\n			end select\n		case \"CheckValidMeasure\"\n			oCampo	= oCampoAncho\n			select case oMagnitud\n				case \"M2\",\"MG\",\"PR\",\"AN\",\"ML\"\n					if oCampo.CurrentValue < 100 Then\n						oMensaje	= \"La magnitud definida del producto requiere completar este campo (Ancho/Lrg)\"\n						MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n						oGridView	= oController.GetControl(oFormProductosGrid)\n						oCampoView	= oGridView.getByIndex(4)\n						oGridView.setFocus()\n						CheckValidMeasure		= False\n					end if\n				case \"UN\"\n			end select\n			if CheckValidMeasure Then\n				oCampo	= oCampoAlto\n				select case oMagnitud\n					case \"M2\",\"MG\",\"PR\",\"AL\"\n						if oCampo.CurrentValue < 100 Then\n							oMensaje	= \"La magnitud definida del producto requiere completar este campo (Alto)\"\n							MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n							oGridView	= oController.GetControl(oFormProductosGrid)\n							oCampoView	= oGridView.getByIndex(4)\n							oGridView.setFocus()\n							CheckValidMeasure		= False\n						end if\n					case \"ML\",\"AN\",\"UN\"\n				end select\n			end if\n	end select\nend function\n</pre></small>\n== Uso ==','utf-8'),(850,'== Descripción ==\nChequea los campos de dimensiones dentro del [[FORM:Presupuesto]]\n== Biblioteca ==\n[[LIBR:SpanexB]]\n== Composición ==\n== Código ==\n<small><pre>\nfunction CheckValidMeasure (Optional oEvent as Object)\n\n	\'Test(oEvent)\n	CheckValidMeasure		= True\n	oController				= ThisComponent.CurrentController\n	if IsMissing(oEvent) Then\n		oFormCabecera		= ThisComponent.DrawPage.Forms(0)\n		oFormProductos		= oFormCabecera.getByName(\"Productos\")\n		oFormProductosGrid	= oFormProductos.getByName(\"ProductosGrid\")\n		oCampoAncho			= oFormProductosGrid.getByName(\"fmtVidQuoteAncho\")\n		oCampoAlto			= oFormProductosGrid.getByName(\"fmtVidQuoteAlto\")\n		oCampoName			= \"CheckValidMeasure\"\n		oMagnitud			= oFormProductosGrid.getByName(\"txtVidQuoteMagnitud\").CurrentValue\n	else\n		oEvento				= oEvent\n		oCampo				= oEvento.Source.Model\n		oCampoName			= oEvento.Source.Model.Name\n		oFormProductosGrid	= oEvento.Source.Model.Parent\n		oMagnitud			= oFormProductosGrid.getByName(\"txtVidQuoteMagnitud\").CurrentValue	\n	end if\n\n	\'MsgBox \"Test\"\n	select case oCampoName\n		case \"fmtVidQuoteAncho\"\n			select case oMagnitud\n				case \"M2\",\"MG\",\"PR\",\"AN\",\"ML\"\n					if oCampo.CurrentValue < 25 Then\n						oMensaje	= \"La magnitud definida del producto requiere completar este campo con valores válidos\"\n						MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n						oGridView	= oController.GetControl(oFormProductosGrid)\n						oCampoView	= oGridView.getByIndex(3)\n						oGridView.setFocus()\n						oGridView.setCurrentColumnPosition(3)\n						CheckValidMeasure		= False\n						\'Test(oGridView)\n					end if\n				case \"UN\"\n			end select\n		case \"fmtVidQuoteAlto\"\n			select case oMagnitud\n				case \"M2\",\"MG\",\"PR\",\"AL\"\n					if oCampo.CurrentValue < 25 Then\n						oMensaje	= \"La magnitud definida del producto requiere completar este campo con valores válidos\"\n						MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n						oGridView	= oController.GetControl(oFormProductosGrid)\n						oCampoView	= oGridView.getByIndex(4)\n						oGridView.setFocus()\n						oGridView.setCurrentColumnPosition(4)\n						CheckValidMeasure		= False\n						\'Test(oGridView)\n					end if\n				case \"ML\",\"AN\",\"UN\"\n			end select\n		case \"CheckValidMeasure\"\n			oCampo	= oCampoAncho\n			select case oMagnitud\n				case \"M2\",\"MG\",\"PR\",\"AN\",\"ML\"\n					if oCampo.CurrentValue < 25 Then\n						oMensaje	= \"La magnitud definida del producto requiere completar este campo (Ancho/Lrg) con valores válidos\"\n						MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n						oGridView	= oController.GetControl(oFormProductosGrid)\n						oCampoView	= oGridView.getByIndex(4)\n						oGridView.setFocus()\n						CheckValidMeasure		= False\n					end if\n				case \"UN\"\n			end select\n			if CheckValidMeasure Then\n				oCampo	= oCampoAlto\n				select case oMagnitud\n					case \"M2\",\"MG\",\"PR\",\"AL\"\n						if oCampo.CurrentValue < 25 Then\n							oMensaje	= \"La magnitud definida del producto requiere completar este campo (Alto) con valores válidos\"\n							MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n							oGridView	= oController.GetControl(oFormProductosGrid)\n							oCampoView	= oGridView.getByIndex(4)\n							oGridView.setFocus()\n							CheckValidMeasure		= False\n						end if\n					case \"ML\",\"AN\",\"UN\"\n				end select\n			end if\n	end select\nend function\n</pre></small>\n\n== Bitácora ==\n*20121203\n**Cambio de Valores tope: de 100 a 25 (10cm a 25cm)\n*20121115\n**Alta:\n<small><pre>\nfunction CheckValidMeasure (Optional oEvent as Object)\n\n	\'Test(oEvent)\n	CheckValidMeasure		= True\n	oController				= ThisComponent.CurrentController\n	if IsMissing(oEvent) Then\n		oFormCabecera		= ThisComponent.DrawPage.Forms(0)\n		oFormProductos		= oFormCabecera.getByName(\"Productos\")\n		oFormProductosGrid	= oFormProductos.getByName(\"ProductosGrid\")\n		oCampoAncho			= oFormProductosGrid.getByName(\"fmtVidQuoteAncho\")\n		oCampoAlto			= oFormProductosGrid.getByName(\"fmtVidQuoteAlto\")\n		oCampoName			= \"CheckValidMeasure\"\n		oMagnitud			= oFormProductosGrid.getByName(\"txtVidQuoteMagnitud\").CurrentValue\n	else\n		oEvento				= oEvent\n		oCampo				= oEvento.Source.Model\n		oCampoName			= oEvento.Source.Model.Name\n		oFormProductosGrid	= oEvento.Source.Model.Parent\n		oMagnitud			= oFormProductosGrid.getByName(\"txtVidQuoteMagnitud\").CurrentValue	\n	end if\n\n	\'MsgBox \"Test\"\n	select case oCampoName\n		case \"fmtVidQuoteAncho\"\n			select case oMagnitud\n				case \"M2\",\"MG\",\"PR\",\"AN\",\"ML\"\n					if oCampo.CurrentValue < 100 Then\n						oMensaje	= \"La magnitud definida del producto requiere completar este campo\"\n						MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n						oGridView	= oController.GetControl(oFormProductosGrid)\n						oCampoView	= oGridView.getByIndex(3)\n						oGridView.setFocus()\n						oGridView.setCurrentColumnPosition(3)\n						CheckValidMeasure		= False\n						\'Test(oGridView)\n					end if\n				case \"UN\"\n			end select\n		case \"fmtVidQuoteAlto\"\n			select case oMagnitud\n				case \"M2\",\"MG\",\"PR\",\"AL\"\n					if oCampo.CurrentValue < 100 Then\n						oMensaje	= \"La magnitud definida del producto requiere completar este campo\"\n						MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n						oGridView	= oController.GetControl(oFormProductosGrid)\n						oCampoView	= oGridView.getByIndex(4)\n						oGridView.setFocus()\n						oGridView.setCurrentColumnPosition(4)\n						CheckValidMeasure		= False\n						\'Test(oGridView)\n					end if\n				case \"ML\",\"AN\",\"UN\"\n			end select\n		case \"CheckValidMeasure\"\n			oCampo	= oCampoAncho\n			select case oMagnitud\n				case \"M2\",\"MG\",\"PR\",\"AN\",\"ML\"\n					if oCampo.CurrentValue < 100 Then\n						oMensaje	= \"La magnitud definida del producto requiere completar este campo (Ancho/Lrg)\"\n						MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n						oGridView	= oController.GetControl(oFormProductosGrid)\n						oCampoView	= oGridView.getByIndex(4)\n						oGridView.setFocus()\n						CheckValidMeasure		= False\n					end if\n				case \"UN\"\n			end select\n			if CheckValidMeasure Then\n				oCampo	= oCampoAlto\n				select case oMagnitud\n					case \"M2\",\"MG\",\"PR\",\"AL\"\n						if oCampo.CurrentValue < 100 Then\n							oMensaje	= \"La magnitud definida del producto requiere completar este campo (Alto)\"\n							MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n							oGridView	= oController.GetControl(oFormProductosGrid)\n							oCampoView	= oGridView.getByIndex(4)\n							oGridView.setFocus()\n							CheckValidMeasure		= False\n						end if\n					case \"ML\",\"AN\",\"UN\"\n				end select\n			end if\n	end select\nend function\n</pre></small>\n\n== Uso ==','utf-8'),(851,'== Descripción ==\nChequea los campos de dimensiones dentro del [[FORM:Presupuesto]]\n== Biblioteca ==\n[[LIBR:SpanexB]]\n== Composición ==\n== Código ==\n<small><pre>\nfunction CheckValidMeasure (Optional oEvent as Object)\n\n	\'Test(oEvent)\n	CheckValidMeasure		= True\n	oController				= ThisComponent.CurrentController\n	if IsMissing(oEvent) Then\n		oFormCabecera		= ThisComponent.DrawPage.Forms(0)\n		oFormProductos		= oFormCabecera.getByName(\"Productos\")\n		oFormProductosGrid	= oFormProductos.getByName(\"ProductosGrid\")\n		oCampoAncho			= oFormProductosGrid.getByName(\"fmtVidQuoteAncho\")\n		oCampoAlto			= oFormProductosGrid.getByName(\"fmtVidQuoteAlto\")\n		oCampoName			= \"CheckValidMeasure\"\n		oMagnitud			= oFormProductosGrid.getByName(\"txtVidQuoteMagnitud\").CurrentValue\n	else\n		oEvento				= oEvent\n		oCampo				= oEvento.Source.Model\n		oCampoName			= oEvento.Source.Model.Name\n		oFormProductosGrid	= oEvento.Source.Model.Parent\n		oMagnitud			= oFormProductosGrid.getByName(\"txtVidQuoteMagnitud\").CurrentValue	\n	end if\n\n	\'MsgBox \"Test\"\n	select case oCampoName\n		case \"fmtVidQuoteAncho\"\n			select case oMagnitud\n				case \"M2\",\"MG\",\"PR\",\"AN\",\"ML\"\n					if oCampo.CurrentValue < 25 Then\n						oMensaje	= \"La magnitud definida del producto requiere completar este campo con valores válidos\"\n						MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n						oGridView	= oController.GetControl(oFormProductosGrid)\n						oCampoView	= oGridView.getByIndex(3)\n						oGridView.setFocus()\n						oGridView.setCurrentColumnPosition(3)\n						CheckValidMeasure		= False\n						\'Test(oGridView)\n					end if\n				case \"UN\"\n			end select\n		case \"fmtVidQuoteAlto\"\n			select case oMagnitud\n				case \"M2\",\"MG\",\"PR\",\"AL\"\n					if oCampo.CurrentValue < 25 Then\n						oMensaje	= \"La magnitud definida del producto requiere completar este campo con valores válidos\"\n						MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n						oGridView	= oController.GetControl(oFormProductosGrid)\n						oCampoView	= oGridView.getByIndex(4)\n						oGridView.setFocus()\n						oGridView.setCurrentColumnPosition(4)\n						CheckValidMeasure		= False\n						\'Test(oGridView)\n					end if\n				case \"ML\",\"AN\",\"UN\"\n			end select\n		case \"CheckValidMeasure\"\n			oCampo	= oCampoAncho\n			select case oMagnitud\n				case \"M2\",\"MG\",\"PR\",\"AN\",\"ML\"\n					if oCampo.CurrentValue < 25 Then\n						oMensaje	= \"La magnitud definida del producto requiere completar este campo (Ancho/Lrg) con valores válidos\"\n						MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n						oGridView	= oController.GetControl(oFormProductosGrid)\n						oCampoView	= oGridView.getByIndex(4)\n						oGridView.setFocus()\n						CheckValidMeasure		= False\n					end if\n				case \"UN\"\n			end select\n			if CheckValidMeasure Then\n				oCampo	= oCampoAlto\n				select case oMagnitud\n					case \"M2\",\"MG\",\"PR\",\"AL\"\n						if oCampo.CurrentValue < 25 Then\n							oMensaje	= \"La magnitud definida del producto requiere completar este campo (Alto) con valores válidos\"\n							MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n							oGridView	= oController.GetControl(oFormProductosGrid)\n							oCampoView	= oGridView.getByIndex(4)\n							oGridView.setFocus()\n							CheckValidMeasure		= False\n						end if\n					case \"ML\",\"AN\",\"UN\"\n				end select\n			end if\n	end select\nend function\n</pre></small>\n\n== Bitácora ==\n*20121203\n**Cambio de Valores tope: de 100 a 25 (10cm a 25cm)\n<small><pre>\noCampo.CurrentValue < 100\n</pre></small>\n*20121115\n**Alta:\n<small><pre>\nfunction CheckValidMeasure (Optional oEvent as Object)\n\n	\'Test(oEvent)\n	CheckValidMeasure		= True\n	oController				= ThisComponent.CurrentController\n	if IsMissing(oEvent) Then\n		oFormCabecera		= ThisComponent.DrawPage.Forms(0)\n		oFormProductos		= oFormCabecera.getByName(\"Productos\")\n		oFormProductosGrid	= oFormProductos.getByName(\"ProductosGrid\")\n		oCampoAncho			= oFormProductosGrid.getByName(\"fmtVidQuoteAncho\")\n		oCampoAlto			= oFormProductosGrid.getByName(\"fmtVidQuoteAlto\")\n		oCampoName			= \"CheckValidMeasure\"\n		oMagnitud			= oFormProductosGrid.getByName(\"txtVidQuoteMagnitud\").CurrentValue\n	else\n		oEvento				= oEvent\n		oCampo				= oEvento.Source.Model\n		oCampoName			= oEvento.Source.Model.Name\n		oFormProductosGrid	= oEvento.Source.Model.Parent\n		oMagnitud			= oFormProductosGrid.getByName(\"txtVidQuoteMagnitud\").CurrentValue	\n	end if\n\n	\'MsgBox \"Test\"\n	select case oCampoName\n		case \"fmtVidQuoteAncho\"\n			select case oMagnitud\n				case \"M2\",\"MG\",\"PR\",\"AN\",\"ML\"\n					if oCampo.CurrentValue < 100 Then\n						oMensaje	= \"La magnitud definida del producto requiere completar este campo\"\n						MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n						oGridView	= oController.GetControl(oFormProductosGrid)\n						oCampoView	= oGridView.getByIndex(3)\n						oGridView.setFocus()\n						oGridView.setCurrentColumnPosition(3)\n						CheckValidMeasure		= False\n						\'Test(oGridView)\n					end if\n				case \"UN\"\n			end select\n		case \"fmtVidQuoteAlto\"\n			select case oMagnitud\n				case \"M2\",\"MG\",\"PR\",\"AL\"\n					if oCampo.CurrentValue < 100 Then\n						oMensaje	= \"La magnitud definida del producto requiere completar este campo\"\n						MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n						oGridView	= oController.GetControl(oFormProductosGrid)\n						oCampoView	= oGridView.getByIndex(4)\n						oGridView.setFocus()\n						oGridView.setCurrentColumnPosition(4)\n						CheckValidMeasure		= False\n						\'Test(oGridView)\n					end if\n				case \"ML\",\"AN\",\"UN\"\n			end select\n		case \"CheckValidMeasure\"\n			oCampo	= oCampoAncho\n			select case oMagnitud\n				case \"M2\",\"MG\",\"PR\",\"AN\",\"ML\"\n					if oCampo.CurrentValue < 100 Then\n						oMensaje	= \"La magnitud definida del producto requiere completar este campo (Ancho/Lrg)\"\n						MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n						oGridView	= oController.GetControl(oFormProductosGrid)\n						oCampoView	= oGridView.getByIndex(4)\n						oGridView.setFocus()\n						CheckValidMeasure		= False\n					end if\n				case \"UN\"\n			end select\n			if CheckValidMeasure Then\n				oCampo	= oCampoAlto\n				select case oMagnitud\n					case \"M2\",\"MG\",\"PR\",\"AL\"\n						if oCampo.CurrentValue < 100 Then\n							oMensaje	= \"La magnitud definida del producto requiere completar este campo (Alto)\"\n							MsgBox(SplitMsg(oMensaje,40),MB_OK+MB_ICONEXCLAMATION,\"¡Error!\")\n							oGridView	= oController.GetControl(oFormProductosGrid)\n							oCampoView	= oGridView.getByIndex(4)\n							oGridView.setFocus()\n							CheckValidMeasure		= False\n						end if\n					case \"ML\",\"AN\",\"UN\"\n				end select\n			end if\n	end select\nend function\n</pre></small>\n\n== Uso ==','utf-8'),(852,'=== Estructuras de Datos ===\n==== Estructuras Tipo ====\n[[Estructuras SQL]]\n\n==== Tablas ====\n* [[TABLA:accreceiv]]\n* [[TABLA:accpayab]]\n* [[TABLA:bocetoscab]]\n* [[TABLA:bocetosdet]]\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'),(853,'== Descripción ==\nDetalle de SubConjuntos de \"lineas de control\" tendidas para el chequeo de las dimensiones de vano para módulos\n== Composición ==\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `modulossbs` (\n  `ModuloID` 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 (`ModuloID`,`ComposicID`,`ProductoID`,`SubSetTP`,`SubSetNO`)\n) ENGINE=InnoDB DEFAULT CHARSET=latin1$$\n</pre>\n== Bitácora ==\n*20121205\n**Alta\n== Uso ==\n== URL ==','utf-8'),(854,'== Descripción ==\nDetalle de SubConjuntos de \"lineas de control\" tendidas para el chequeo de las dimensiones de vano para módulos. Se utiliza en forma conjunta con su tabla padre [[TABLA:modulosdet]]\n\n== Composición ==\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `modulossbs` (\n  `ModuloID` 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 (`ModuloID`,`ComposicID`,`ProductoID`,`SubSetTP`,`SubSetNO`)\n) ENGINE=InnoDB DEFAULT CHARSET=latin1$$\n</pre>\n== Bitácora ==\n*20121205\n**Alta\n== Uso ==\n== URL ==','utf-8'),(855,'== 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'),(856,'===20121201===\n====Alta de esquema Módulos====\n*Alta de [[TABLA:moduloscab]]\n*Alta de [[TABLA:modulosdet]]\n*Alta de [[TABLA:modulossbs]]\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'),(857,'===Esquema de Actualizaciones===\n*[[Actualizacion DB]]\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=====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'),(858,'== Developing ==\n*[[Developing]]\n*[[Pendientes]]\n*[[SpanexDraw]]\n\n== Gestión Retail Aberturas ==\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=== 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[[WikiSpanexSupport]]','utf-8'),(859,'\'\'\'Listado de tickets\'\'\'\n\n*FZG.000001\n**//Sofia//Se corrompe el archivo manifiest.rdf luego de cerrar la aplicación y abrirla nuevamente.\n***Se consulta sobre la acción en el resto de los equipos. Se verifican que funcionan correctamente.\n***Se investiga.\n***Se resuelve revisar el equipamiento in-situ.','utf-8'),(860,'[[Categoria:TABLAS]]\n== Descripción ==\nTransacciones de Cobranzas\n== Composición ==\nTabla Plana + Triggers\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `accreceiv` (\n  `TTransaccion` char(2) NOT NULL DEFAULT \'AR\',\n  `NTransaccion` int(11) NOT NULL AUTO_INCREMENT,\n  `FechaAutAR` date DEFAULT NULL,\n  `FechaAR` date DEFAULT NULL,\n  `FormaAR` char(3) DEFAULT NULL,\n  `ImporteAR` decimal(10,2) DEFAULT NULL,\n  `ClienteAR` char(8) DEFAULT NULL,\n  `TDocumentoOrg` char(2) DEFAULT NULL,\n  `NDocumentoOrg` int(11) DEFAULT NULL,\n  PRIMARY KEY (`TTransaccion`,`NTransaccion`)\n) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin1$$\n\nCREATE TRIGGER `fzggestion`.`Alta_Cobranza`\nBEFORE INSERT ON `fzggestion`.`accreceiv`\nFOR EACH ROW\nBEGIN\n	SET NEW.FechaAutAR = CURDATE();\nEND\n$$\n</pre>\n== Bitácora ==\n== Uso ==\n== URL ==\n</pre>','utf-8'),(861,'[[Category:TABLAS]]\n== Descripción ==\nTransacciones de Cobranzas\n== Composición ==\nTabla Plana + Triggers\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `accreceiv` (\n  `TTransaccion` char(2) NOT NULL DEFAULT \'AR\',\n  `NTransaccion` int(11) NOT NULL AUTO_INCREMENT,\n  `FechaAutAR` date DEFAULT NULL,\n  `FechaAR` date DEFAULT NULL,\n  `FormaAR` char(3) DEFAULT NULL,\n  `ImporteAR` decimal(10,2) DEFAULT NULL,\n  `ClienteAR` char(8) DEFAULT NULL,\n  `TDocumentoOrg` char(2) DEFAULT NULL,\n  `NDocumentoOrg` int(11) DEFAULT NULL,\n  PRIMARY KEY (`TTransaccion`,`NTransaccion`)\n) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin1$$\n\nCREATE TRIGGER `fzggestion`.`Alta_Cobranza`\nBEFORE INSERT ON `fzggestion`.`accreceiv`\nFOR EACH ROW\nBEGIN\n	SET NEW.FechaAutAR = CURDATE();\nEND\n$$\n</pre>\n== Bitácora ==\n== Uso ==\n== URL ==\n</pre>','utf-8'),(862,'[[Category:TABLAS]]\n== Relaciones ==\n[[VISTA:visproadic]]\n== Reglas ==\n*Cada acción de alta de [[TABLA:productos]] genera un registro en [[TABLA:composicion]] para poder copiar y tener el concepto del \"Producto Propiamente Dicho\".\n*El registro copiado de la acción anterior tiene tanto el producto como el elemento iguales y marca al atributo ElementoPM (Elemento Primordial) en 1 indicando que ese es un elemento básico.\n*Los registros de elementos de productos puede no tener el \"Producto Propiamente Dicho\".\n*Para que pueda ofrecer el cálculo de un elemento compuesto, la definición del producto \"elemento compuesto\" no debería tener la redundancia de origen, o sea, tanto el producto como el elemento iguales.\n*La asignación de valores de Coeficientes (Generales y de Ancho/Alto) y Offset para \"elementos compuestos\" no será tomado en cuenta. Solo se tomará como válido provisoriamente los Coeficientes y Offset de la elemento resultante.\n*Pueden repetirse el conjunto Producto-Elemento ya que por cada repetición se agrega un identificativo no visible.\n\n== Atributos ==\n<pre>\nProductoID	char(8) PK \nElementoID	char(8) PK \nComposicID	int(11) PK AI\nValorElemento	decimal(16,8) \nElementoPM	int(1) \nOffsetVanoAncho	int(11) \nOffsetVanoAlto	int(11) \nCoefVanoAncho	decimal(16,8) \nCoefVanoAlto	decimal(16,8) \n</pre>\n\n== Bitácora ==\n*20120904\n**Agrega atributo ComposicID AutoIncremental que hace diferenciar aquellos productos que tienen la dupla PK Producto/Elemento iguales.','utf-8'),(863,'===Esquema de Actualizaciones===\n*[[Actualizacion DB]]\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*[[TCKT:000001]]. Se corrompe el archivo manifiest.rdf propio de la instalación del equipamiento laptop.\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'),(864,'===Esquema de Actualizaciones===\n*[[Actualizacion DB]]\n[[Category:TABLAS]]\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*[[TCKT:000001]]. Se corrompe el archivo manifiest.rdf propio de la instalación del equipamiento laptop.\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'),(865,'===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*[[TCKT:000001]]. Se corrompe el archivo manifiest.rdf propio de la instalación del equipamiento laptop.\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'),(866,'== Developing ==\n*[[Developing]]\n*[[Pendientes]]\n*[[SpanexDraw]]\n*[[:Categoría:Tablas]]\n\n== Gestión Retail Aberturas ==\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=== 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[[WikiSpanexSupport]]','utf-8'),(867,'== Developing ==\n*[[Developing]]\n*[[Pendientes]]\n*[[SpanexDraw]]\n*[[:Categoría:TABLAS]]\n\n== Gestión Retail Aberturas ==\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=== 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[[WikiSpanexSupport]]','utf-8'),(868,'= Indice de Tablas =','utf-8'),(869,'== Developing ==\n*[[Developing]]\n*[[Pendientes]]\n*[[SpanexDraw]]\n*[[:Categoría:TABLAS|Tablas]]\n\n== Gestión Retail Aberturas ==\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=== 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[[WikiSpanexSupport]]','utf-8'),(870,'Glosario de Tablas de la Aplicación','utf-8'),(871,'[[Category:TABLAS]]\n== Descripción ==\nDetalle de SubConjuntos de \"lineas de control\" tendidas para el chequeo de las dimensiones de vano para módulos. Se utiliza en forma conjunta con su tabla padre [[TABLA:modulosdet]]\n== Composición ==\n== SQL ==\n<pre>\ndelimiter $$\n\nCREATE TABLE `modulossbs` (\n  `ModuloID` 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 (`ModuloID`,`ComposicID`,`ProductoID`,`SubSetTP`,`SubSetNO`)\n) ENGINE=InnoDB DEFAULT CHARSET=latin1$$\n</pre>\n== Bitácora ==\n*20121205\n**Alta\n== Uso ==\n== URL ==','utf-8'),(872,'[[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=InnoDB DEFAULT CHARSET=latin1$$\n</pre>\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'),(873,'== 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\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[[WikiSpanexSupport]]','utf-8'),(874,'==Tablas, Vistas==\n<pre>\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==Formularios==\n<pre>\n== Descripción ==\n== Composición ==\n== Estructura ==\n== Código Relacionado ==\n== Bitácora ==\n== Uso ==\n</pre>\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==== xxxxxx ====\nAutor:\nFecha:\nSoporte:\n=====Incidente=====\n=====WorkAround=====\n=====Resolucion=====\n</pre>','utf-8'),(875,'\'\'\'Listado de tickets\'\'\'\n\n==== FZG.000001 ====\nAutor: Sofia\nFecha: 20121205\nSoporte: SAS\n=====Incidente=====\nSe corrompe el archivo manifiest.rdf luego de cerrar la aplicación y abrirla nuevamente\n=====WorkAround=====\n***Se consulta sobre la acción en el resto de los equipos. Se verifican que funcionan correctamente.\n***Se investiga.\n***Se resuelve revisar el equipamiento in-situ.\n=====Resolucion=====','utf-8'),(876,'\'\'\'Listado de tickets\'\'\'\n\n==== FZG.000001 ====\nAutor: Sofia\n\nFecha: 20121205\n\nSoporte: SAS\n=====Incidente=====\nSe corrompe el archivo manifiest.rdf luego de cerrar la aplicación y abrirla nuevamente\n=====WorkAround=====\n*Se consulta sobre la acción en el resto de los equipos. Se verifican que funcionan correctamente.\n*Se investiga.\n*Se resuelve revisar el equipamiento in-situ.\n=====Resolucion=====','utf-8'),(877,'\'\'\'Listado de tickets\'\'\'\n\n==== FZG.000001 ====\n\'\'\'Autor\'\'\': Sofia\n\n\'\'\'Fecha\'\'\': 20121205\n\n\'\'\'Soporte\'\'\': SAS\n=====Incidente=====\nSe corrompe el archivo manifiest.rdf luego de cerrar la aplicación y abrirla nuevamente\n=====WorkAround=====\n*Se consulta sobre la acción en el resto de los equipos. Se verifican que funcionan correctamente.\n*Se investiga.\n*Se resuelve revisar el equipamiento in-situ.\n=====Resolucion=====','utf-8'),(878,'\'\'\'Listado de tickets\'\'\'\n[[TKT:FZG.000001]]\n==== FZG.000001 ====\n\'\'\'Autor\'\'\': Sofia\n\n\'\'\'Fecha\'\'\': 20121205\n\n\'\'\'Soporte\'\'\': SAS\n=====Incidente=====\nSe corrompe el archivo manifiest.rdf luego de cerrar la aplicación y abrirla nuevamente\n=====WorkAround=====\n*Se consulta sobre la acción en el resto de los equipos. Se verifican que funcionan correctamente.\n*Se investiga.\n*Se resuelve revisar el equipamiento in-situ.\n=====Resolucion=====','utf-8'),(879,'====Data TKT====\n\'\'\'Autor:\'\'\' Sofia\n\n\'\'\'Fecha:\'\'\' 20121205\n\n\'\'\'Soporte:\'\'\' SAS\n=====Incidente=====\nSe corrompe el archivo manifiest.rdf luego de cerrar la aplicación y abrirla nuevamente\n=====WorkAround=====\n*Se consulta sobre la acción en el resto de los equipos. Se verifican que funcionan correctamente.\n*Se investiga.\n*Se resuelve revisar el equipamiento in-situ.\n=====Resolucion=====','utf-8'),(880,'====Data TKT====\n\'\'\'Usuario:\'\'\' Sofia\n\n\'\'\'Fecha:\'\'\' 20121205\n\n\'\'\'Soporte:\'\'\' SAS\n=====Incidente=====\nSe corrompe el archivo manifiest.rdf luego de cerrar la aplicación y abrirla nuevamente\n=====WorkAround=====\n*Se consulta sobre la acción en el resto de los equipos. Se verifican que funcionan correctamente.\n*Se investiga.\n*Se resuelve revisar el equipamiento in-situ.\n=====Resolucion=====','utf-8'),(881,'==Tablas, Vistas==\n<pre>\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==Formularios==\n<pre>\n== Descripción ==\n== Composición ==\n== Estructura ==\n== Código Relacionado ==\n== Bitácora ==\n== Uso ==\n</pre>\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====Data TKT====\n\'\'\'Usuario:\'\'\' \n\n\'\'\'Fecha:\'\'\' \n\n\'\'\'Soporte:\'\'\' \n=====Incidente=====\n\n=====WorkAround=====\n\n=====Resolución=====\n\n</pre>','utf-8'),(882,'====Data TKT====\n\'\'\'Usuario:\'\'\' Sofia\n\n\'\'\'Fecha:\'\'\' 20121205\n\n\'\'\'Soporte:\'\'\' SAS\n=====Incidente=====\nSe corrompe el archivo manifiest.rdf luego de cerrar la aplicación y abrirla nuevamente\n=====WorkAround=====\n*Se consulta sobre la acción en el resto de los equipos. Se verifican que funcionan correctamente.\n*Se investiga.\n*Se resuelve revisar el equipamiento in-situ.\n=====Resolución=====','utf-8'),(883,'[[Category:TKT]]\n====Data TKT====\n\'\'\'Usuario:\'\'\' Sofia\n\n\'\'\'Fecha:\'\'\' 20121205\n\n\'\'\'Soporte:\'\'\' SAS\n=====Incidente=====\nSe corrompe el archivo manifiest.rdf luego de cerrar la aplicación y abrirla nuevamente\n=====WorkAround=====\n*Se consulta sobre la acción en el resto de los equipos. Se verifican que funcionan correctamente.\n*Se investiga.\n*Se resuelve revisar el equipamiento in-situ.\n=====Resolución=====','utf-8'),(884,'','utf-8'),(885,'[[Category:TKT]]\n====Data TKT====\n\'\'\'Usuario:\'\'\' Sofia\n\n\'\'\'Fecha:\'\'\' 20121205\n\n\'\'\'Soporte:\'\'\' SAS\n=====Incidente=====\nSe corrompe el archivo manifiest.rdf luego de cerrar la aplicación y abrirla nuevamente\n=====WorkAround=====\n*Se consulta sobre la acción en el resto de los equipos. Se verifican que funcionan correctamente.\n*Se investiga.\n*Se resuelve revisar el equipamiento in-situ.\n=====Resolución=====\n\n=====Observaciones=====','utf-8'),(886,'==Tablas, Vistas==\n<pre>\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==Formularios==\n<pre>\n== Descripción ==\n== Composición ==\n== Estructura ==\n== Código Relacionado ==\n== Bitácora ==\n== Uso ==\n</pre>\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====Data TKT====\n\'\'\'Usuario:\'\'\' \n\n\'\'\'Fecha:\'\'\' \n\n\'\'\'Soporte:\'\'\' \n=====Incidente=====\n\n=====WorkAround=====\n\n=====Resolución=====\n\n=====Observaciones=====\n\n</pre>','utf-8'),(887,'[[Category:TKT]]\n====Data TKT====\n*\'\'\'Usuario:\'\'\' Sofia\n*\'\'\'Fecha:\'\'\' 20121205\n*\'\'\'Soporte:\'\'\' SAS\n=====Incidente=====\nSe corrompe el archivo manifiest.rdf luego de cerrar la aplicación y abrirla nuevamente\n=====WorkAround=====\n*Se consulta sobre la acción en el resto de los equipos. Se verifican que funcionan correctamente.\n*Se investiga.\n*Se resuelve revisar el equipamiento in-situ.\n=====Resolución=====\n\n=====Observaciones=====','utf-8'),(888,'==Tablas, Vistas==\n<pre>\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==Formularios==\n<pre>\n== Descripción ==\n== Composición ==\n== Estructura ==\n== Código Relacionado ==\n== Bitácora ==\n== Uso ==\n</pre>\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====Data TKT====\n*\'\'\'Usuario:\'\'\' \n*\'\'\'Fecha:\'\'\' \n*\'\'\'Soporte:\'\'\' \n=====Incidente=====\n=====WorkAround=====\n=====Resolución=====\n=====Observaciones=====\n</pre>','utf-8'),(889,'==Tablas, Vistas==\n<pre>\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==Formularios==\n<pre>\n== Descripción ==\n== Composición ==\n== Estructura ==\n== Código Relacionado ==\n== Bitácora ==\n== Uso ==\n</pre>\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=====Observaciones=====\n</pre>','utf-8'),(890,'==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== Descripción ==\n== Composición ==\n== Estructura ==\n== Código Relacionado ==\n== Bitácora ==\n== Uso ==\n</pre>\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=====Observaciones=====\n</pre>','utf-8'),(891,'== 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\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]]','utf-8'),(892,'Lista de Tickets de Soporte','utf-8'),(893,'== 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]]','utf-8'),(894,'[[:Category:TABLAS|Tablas]]\n[[:Category:VISTAS|Vistas]]\n[[:Category:MACROS|Macros]]\n[[:Category:RPRT|Informes]]','utf-8'),(895,'===Estructuras de Trabajo===\n*[[:Category:TABLAS|Tablas]]\n*[[:Category:VISTAS|Vistas]]\n*[[:Category:MACROS|Macros]]\n*[[:Category:RPRT|Informes]]','utf-8'),(896,'[[Category:VISTAS]]\n== Descripción ==\n\n<span style=\"background:#EE6622\"> En proceso de evaluación. Queda desafectada temporariamente de la base a efectos del procedimiento de Resguardo. </span>\n\nLista los valores calculados de los subconjuntos de dimensiones definidos dentro de un módulo para corroborar el correcto dimensionamiento de un módulo.\n\nToma las registraciones de la [[TABLA:modulosdet]] que tengan valores significativos dentro de los atributos SubSet\'\'xxxxx\'\' y los agrupa sumarizando los valores indicados dentro de \'\'xxxxx\'\'Predef, que representan los valores originales de dimensionamiento interno.\n\n== Composición ==\n*[[TABLA:modulosdet]]\n*[[TABLA:moduloscab]]\n\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\nCREATE VIEW vischeckmod AS\nSELECT \n    modulosdet.ModuloID,\n    \'W\' AS Dimension,\n    modulosdet.SubSetAncho AS SubSet,\n    Sum(modulosdet.AnchoPredef) AS DimCalculo,\n    moduloscab.ModuloVW as DimPredef\nFROM\n    fzggestion.modulosdet AS modulosdet,\n    fzggestion.moduloscab AS moduloscab\nWHERE\n    modulosdet.ModuloID = moduloscab.ModuloID AND\n    modulosdet.SubSetAncho IS NOT NULL\nGROUP BY\n    modulosdet.SubSetAncho\nUNION\nSELECT \n    modulosdet.ModuloID,\n    \'H\' AS Dimension,\n    modulosdet.SubSetAlto AS SubSet,\n    Sum(modulosdet.AltoPredef) AS DimCalculo,\n    moduloscab.ModuloVH as DimPredef\nFROM\n    fzggestion.modulosdet AS modulosdet,\n    fzggestion.moduloscab AS moduloscab\nWHERE\n    modulosdet.ModuloID = moduloscab.ModuloID AND\n    modulosdet.SubSetAlto IS NOT NULL\nGROUP BY\n    modulosdet.SubSetAlto\n</pre>\n== Bitácora ==\n*20121127\n**Alta Vista.\n== Uso ==\n== URL ==','utf-8'),(897,'[[Category:VISTAS]]\n== Descripción ==\n\n<span style=\"background:#EE6622\"> \'\'\'En proceso de evaluación. Queda desafectada temporariamente de la base a efectos del procedimiento de Resguardo.\'\'\' </span>\n\nLista los valores calculados de los subconjuntos de dimensiones definidos dentro de un módulo para corroborar el correcto dimensionamiento de un módulo.\n\nToma las registraciones de la [[TABLA:modulosdet]] que tengan valores significativos dentro de los atributos SubSet\'\'xxxxx\'\' y los agrupa sumarizando los valores indicados dentro de \'\'xxxxx\'\'Predef, que representan los valores originales de dimensionamiento interno.\n\n== Composición ==\n*[[TABLA:modulosdet]]\n*[[TABLA:moduloscab]]\n\n== Estructura ==\n<pre>\n</pre>\n== SQL ==\n<pre>\nCREATE VIEW vischeckmod AS\nSELECT \n    modulosdet.ModuloID,\n    \'W\' AS Dimension,\n    modulosdet.SubSetAncho AS SubSet,\n    Sum(modulosdet.AnchoPredef) AS DimCalculo,\n    moduloscab.ModuloVW as DimPredef\nFROM\n    fzggestion.modulosdet AS modulosdet,\n    fzggestion.moduloscab AS moduloscab\nWHERE\n    modulosdet.ModuloID = moduloscab.ModuloID AND\n    modulosdet.SubSetAncho IS NOT NULL\nGROUP BY\n    modulosdet.SubSetAncho\nUNION\nSELECT \n    modulosdet.ModuloID,\n    \'H\' AS Dimension,\n    modulosdet.SubSetAlto AS SubSet,\n    Sum(modulosdet.AltoPredef) AS DimCalculo,\n    moduloscab.ModuloVH as DimPredef\nFROM\n    fzggestion.modulosdet AS modulosdet,\n    fzggestion.moduloscab AS moduloscab\nWHERE\n    modulosdet.ModuloID = moduloscab.ModuloID AND\n    modulosdet.SubSetAlto IS NOT NULL\nGROUP BY\n    modulosdet.SubSetAlto\n</pre>\n== Bitácora ==\n*20121127\n**Alta Vista.\n== Uso ==\n== URL ==','utf-8'),(898,'Listado de Vistas','utf-8'),(899,'[[Category:TKT]]\n====Data TKT====\n*\'\'\'Usuario:\'\'\' Sofia\n*\'\'\'Fecha:\'\'\' 20121205\n*\'\'\'Soporte:\'\'\' SAS\n=====Incidente=====\nSe corrompe el archivo manifiest.rdf luego de cerrar la aplicación y abrirla nuevamente\n=====WorkAround=====\n*Se consulta sobre la acción en el resto de los equipos. Se verifican que funcionan correctamente.\n*Se investiga.\n*Se resuelve revisar el equipamiento in-situ.\n=====Resolución=====\n*Se verificó el problema.\n*Dado que el equipo nunca se apagaba y tenía colocado el OpenOffice Quick Loader, mantenía el error de conexión que se produce cuando pierde la conexión con el motor de DBMS.\n*Se procedió a quitar el OpenOffice QuickLoader de los programas de inicio. Se reinició y funcionó.\n\n=====Observaciones=====','utf-8'),(900,'[[Category:TKT]]\n====Data TKT====\n*\'\'\'Usuario:\'\'\' Sofia\n*\'\'\'Fecha:\'\'\' 20121205\n*\'\'\'Soporte:\'\'\' SAS\n=====Incidente=====\nSe corrompe el archivo manifiest.rdf luego de cerrar la aplicación y abrirla nuevamente\n=====WorkAround=====\n*Se consulta sobre la acción en el resto de los equipos. Se verifican que funcionan correctamente.\n*Se investiga.\n*Se resuelve revisar el equipamiento in-situ.\n=====Resolución=====\n*Se verificó el problema.\n*Dado que el equipo nunca se apagaba y tenía colocado el OpenOffice Quick Loader, mantenía el error de conexión que se produce cuando pierde la conexión con el motor de DBMS.\n*Se procedió a quitar el OpenOffice QuickLoader de los programas de inicio. Se reinició y funcionó.\n*Ticket Cerrado\n\n=====Observaciones=====','utf-8'),(901,'[[Category:TKT]]\n====Data TKT====\n*\'\'\'Usuario:\'\'\' Sofia\n*\'\'\'Fecha:\'\'\' 20121205\n*\'\'\'Soporte:\'\'\' SAS\n=====Incidente=====\nSe corrompe el archivo manifiest.rdf luego de cerrar la aplicación y abrirla nuevamente\n=====WorkAround=====\n*Se consulta sobre la acción en el resto de los equipos. Se verifican que funcionan correctamente.\n*Se investiga.\n*Se resuelve revisar el equipamiento in-situ.\n=====Resolución=====\n*Se verificó el problema.\n*Dado que el equipo nunca se apagaba y tenía colocado el OpenOffice Quick Loader, mantenía el error de conexión que se produce cuando pierde la conexión con el motor de DBMS.\n*Se procedió a quitar el OpenOffice QuickLoader de los programas de inicio. Se reinició y funcionó.\n=====Resolución=====\n*Cerrado\n\n=====Observaciones=====','utf-8'),(902,'==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== Descripción ==\n== Composición ==\n== Estructura ==\n== Código Relacionado ==\n== Bitácora ==\n== Uso ==\n</pre>\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'),(903,'[[Category:TKT]]\n====Data TKT====\n*\'\'\'Usuario:\'\'\' \n*\'\'\'Fecha:\'\'\' \n*\'\'\'Soporte:\'\'\' \n=====Incidente=====\n=====WorkAround=====\n=====Resolución=====\n=====Estado=====\n=====Observaciones=====','utf-8'),(904,'[[Category:TKT]]\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=====Estado=====\n*Pendiente\n=====Observaciones=====','utf-8'),(905,'[[Category:TKT]]\n====Data TKT====\n*\'\'\'Usuario:\'\'\' Lucas\n*\'\'\'Fecha:\'\'\' 20121206.1800\n*\'\'\'Soporte:\'\'\' SAS\n=====Incidente=====.\n*Generar el siguiente procedimiento:\n**Sobre todos los productos que tengan como componente los productos con descripción \"Biselado\", generar 4 registros adicionales colocando como valores dentro de los coeficientes de ancho y alto los valores .5/0 1/0 0/.5 0/1\n**Idem para Pulido\n**Para los productos que tengan como componente \"Travesaño\" agregar otro de las mismas características pero que sea otro producto identificativo con \"Parante\"\n=====WorkAround=====\n=====Resolución=====\n=====Estado=====\n*Pendiente\n=====Observaciones=====\nSolo hacer el procedure y presentarlo.','utf-8'),(906,'[[Category:TKT]]\n====Data TKT====\n*\'\'\'Usuario:\'\'\' Lucas\n*\'\'\'Fecha:\'\'\' 20121206.1800\n*\'\'\'Soporte:\'\'\' SAS\n=====Incidente=====\n*Generar el siguiente procedimiento:\n**Sobre todos los productos que tengan como componente los productos con descripción \"Biselado\", generar 4 registros adicionales colocando como valores dentro de los coeficientes de ancho y alto los valores .5/0 1/0 0/.5 0/1\n**Idem para Pulido\n**Para los productos que tengan como componente \"Travesaño\" agregar otro de las mismas características pero que sea otro producto identificativo con \"Parante\"\n=====WorkAround=====\n=====Resolución=====\n=====Estado=====\n*Pendiente\n=====Observaciones=====\nSolo hacer el procedure y presentarlo.','utf-8'),(907,'[[Category:TKTOut]]\n====Data TKT====\n*\'\'\'Usuario:\'\'\' Sofia\n*\'\'\'Fecha:\'\'\' 20121205\n*\'\'\'Soporte:\'\'\' SAS\n=====Incidente=====\nSe corrompe el archivo manifiest.rdf luego de cerrar la aplicación y abrirla nuevamente\n=====WorkAround=====\n*Se consulta sobre la acción en el resto de los equipos. Se verifican que funcionan correctamente.\n*Se investiga.\n*Se resuelve revisar el equipamiento in-situ.\n=====Resolución=====\n*Se verificó el problema.\n*Dado que el equipo nunca se apagaba y tenía colocado el OpenOffice Quick Loader, mantenía el error de conexión que se produce cuando pierde la conexión con el motor de DBMS.\n*Se procedió a quitar el OpenOffice QuickLoader de los programas de inicio. Se reinició y funcionó.\n=====Resolución=====\n*Cerrado\n=====Observaciones=====','utf-8'),(908,'Tickets de soporte cerrados.','utf-8'),(909,'[[Category:TKT]]\n====Data TKT====\n*\'\'\'Usuario:\'\'\' Lucas\n*\'\'\'Fecha:\'\'\' 20121206.1600\n*\'\'\'Soporte:\'\'\' SAS\n=====Incidente=====\nCuando carga un producto con la facilidad del filtro, pasa directamente al campo de Altura y en apariencia quiere pasar al otro campo generando el error correspondiente por no ingresarle el dato de dimensionamiento\n=====WorkAround=====\n=====Resolución=====\n=====Estado=====\nPendiente\n=====Observaciones=====','utf-8'),(910,'[[Category:TKT]]\n====Data TKT====\n*\'\'\'Usuario:\'\'\' Lucas\n*\'\'\'Fecha:\'\'\' 20121206.1630\n*\'\'\'Soporte:\'\'\' SAS\n=====Incidente=====\n*El \"ascensor\" de ComponenteSimpleGrid desaparece aleatoriamente\n=====WorkAround=====\n=====Resolución=====\n=====Estado=====\nPendiente\n=====Observaciones=====','utf-8'),(911,'== 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'),(912,'== 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'),(913,'[[Category:TKTOut]]\n====Data TKT====\n*\'\'\'Usuario:\'\'\' Sofia\n*\'\'\'Fecha:\'\'\' 201212070930\n*\'\'\'Soporte:\'\'\' SAS\n=====Incidente=====\nMensaje de error solicitando información de feedback para Oracle OpenOffice.\n=====WorkAround=====\n=====Resolución=====\nContinuación y cancelación del pedido de información de Oracle\n=====Estado=====\nFinalizado\n=====Observaciones=====','utf-8'),(914,'[[Category:TKTOut]]\n====Data TKT====\n*\'\'\'Usuario:\'\'\' Sofia\n*\'\'\'Fecha:\'\'\' 201212070930\n*\'\'\'Soporte:\'\'\' SAS\n=====Incidente=====\nMensaje de error solicitando información de feedback para Oracle OpenOffice.\nthunderlink://messageid=SNT002-W398146B91F00276402D8EBD440@phx.gbl\n\n=====WorkAround=====\n=====Resolución=====\nContinuación y cancelación del pedido de información de Oracle\n=====Estado=====\nFinalizado\n=====Observaciones=====','utf-8'),(915,'[[Category:TKTOut]]\n====Data TKT====\n*\'\'\'Usuario:\'\'\' Sofia\n*\'\'\'Fecha:\'\'\' 201212070930\n*\'\'\'Soporte:\'\'\' SAS\n=====Incidente=====\nMensaje de error solicitando información de feedback para Oracle OpenOffice.\n[[thunderlink://messageid=SNT002-W398146B91F00276402D8EBD440@phx.gbl]]\n\n=====WorkAround=====\n=====Resolución=====\nContinuación y cancelación del pedido de información de Oracle\n=====Estado=====\nFinalizado\n=====Observaciones=====','utf-8'),(916,'[[Category:TKTOut]]\n====Data TKT====\n*\'\'\'Usuario:\'\'\' Sofia\n*\'\'\'Fecha:\'\'\' 201212070930\n*\'\'\'Soporte:\'\'\' SAS\n=====Incidente=====\n*Mensaje de error solicitando información de feedback para Oracle OpenOffice.\n*[[thunderlink://messageid=SNT002-W398146B91F00276402D8EBD440@phx.gbl]]\n\n=====WorkAround=====\n=====Resolución=====\nContinuación y cancelación del pedido de información de Oracle\n=====Estado=====\nFinalizado\n=====Observaciones=====','utf-8'),(917,'[[Category:TKTOut]]\n====Data TKT====\n*\'\'\'Usuario:\'\'\' Sofia\n*\'\'\'Fecha:\'\'\' 201212070930\n*\'\'\'Soporte:\'\'\' SAS\n=====Incidente=====\n*Mensaje de error solicitando información de feedback para Oracle OpenOffice.\n*[[thunderlink://messageid=SNT002-W398146B91F00276402D8EBD440@phx.gbl|Mensaje]]\n\n=====WorkAround=====\n=====Resolución=====\nContinuación y cancelación del pedido de información de Oracle\n=====Estado=====\nFinalizado\n=====Observaciones=====','utf-8'),(918,'[[Category:TKTOut]]\n====Data TKT====\n*\'\'\'Usuario:\'\'\' Sofia\n*\'\'\'Fecha:\'\'\' 201212070930\n*\'\'\'Soporte:\'\'\' SAS\n=====Incidente=====\n*Mensaje de error solicitando información de feedback para Oracle OpenOffice.\n*[[thunderlink://messageid=SNT002-W398146B91F00276402D8EBD440@phx.gbl]]\n\n=====WorkAround=====\n=====Resolución=====\nContinuación y cancelación del pedido de información de Oracle\n=====Estado=====\nFinalizado\n=====Observaciones=====','utf-8'),(919,'[[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\n=====Observaciones=====\n*20121208.0014\n**Falta impactar las modificaciones en la base operativa.','utf-8'),