# vGestión - % de impuesto.

**URL:** <https://foros.velneo.com/t/vgestion-de-impuesto/2079>\
**Category:** Velneo\
**Created:** [27 Julio, 2010 08:56 UTC](https://foros.velneo.com/t/vgestion-de-impuesto/2079 "2010-07-27T08:56:50Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![ame](https://avatars.discourse-cdn.com/v4/letter/a/3be4f8/32.png) [@ame](https://foros.velneo.com/u/ame)\
**Post date:** [27 Julio, 2010 08:56 UTC](https://foros.velneo.com/t/vgestion-de-impuesto/2079/1 "2010-07-27T08:56:50Z")

</div>

Buenos días,

&nbsp;

Una pregunta, tal como está diseñado el modelo de datos de vGestión, ¿cómo puedo obtener el porcentaje de impuesto de un determinado artículo como contenido inicial de un campo?

Por ejemplo, tengo una tabla LINEAS\_TICKET donde cada registro representa una línea de un ticket. Por cada línea guardo el ticket al que pertenece (maestro), el artículo del que se trata (maestro), las unidades del artículo (numérico) y el precio (indirecto real). Pero este precio es sin IVA, y me gustaría saber cómo crear otro campo que tenga el % de impuesto partiendo de la información de la tabla ART de vGestión.

Lo he intentado con indirecto real también, pero no consigo dar con la resolución. Tampoco sé qué poner en contenido inicial... es que no sé como navegar a través de las tablas para conseguir lo que quiero.

A ver si me podéis echar una manita.

Un saludo.

&nbsp;

José Luis.

---

<div class="post-metadata">

**Author:** ![overall.massoicb](https://avatars.discourse-cdn.com/v4/letter/o/dec6dc/32.png) [@overall.massoicb](https://foros.velneo.com/u/overall.massoicb)\
**Post date:** [27 Julio, 2010 09:03 UTC](https://foros.velneo.com/t/vgestion-de-impuesto/2079/2 "2010-07-27T09:03:31Z")

</div>

Pues deberás utilizar el maestro del artículo para poder recoger el porcentaje:&nbsp;#ART.FIS.GR1\_TP1\_POP

Saludos

* * *

**Overall**

Luis Palomo

[overall@massoicb.com](mailto:overall@massoicb.com)

[www.overall-bcn.com/v7](http://www.overall-bcn.com/v7)

---

<div class="post-metadata">

**Author:** ![ame](https://avatars.discourse-cdn.com/v4/letter/a/3be4f8/32.png) [@ame](https://foros.velneo.com/u/ame)\
**Post date:** [27 Julio, 2010 09:49 UTC](https://foros.velneo.com/t/vgestion-de-impuesto/2079/3 "2010-07-27T09:49:22Z")

</div>

Un segundo, Overall, ¿por qué coges por defecto la fiscalidad del tipo 1? ¿Cómo sabes si no pertenece a la del tipo 2 o 3? Ahí es donde tengo el problema.

&nbsp;

Gracias y un saludo.

---

<div class="post-metadata">

**Author:** ![ame](https://avatars.discourse-cdn.com/v4/letter/a/3be4f8/32.png) [@ame](https://foros.velneo.com/u/ame)\
**Post date:** [27 Julio, 2010 10:06 UTC](https://foros.velneo.com/t/vgestion-de-impuesto/2079/4 "2010-07-27T10:06:17Z")

</div>

Overall, se me está ocurriendo una cosa:

¿Qué te parece si en la tabla ART añado un campo que sea "porcentaje\_impuesto" y como contenido inicial sea una fórmula "choose"?

Sería algo así como:

choose(#VTA\_FIS\_GR1\_TIP = 1, #FIS.GR1\_TP1\_POP, choose(#VTA\_FIS\_GR1\_TIP = 2, #FIS.GR1\_TP2\_POP, choose(.........)))

¿Cómo lo ves?

Además se podría ampliar para que contemplara las fechas de cambio de impuesto (aunque bueno ya en la fecha en la que estamos esto da igual...).

Saludos.

---

<div class="post-metadata">

**Author:** ![ame](https://avatars.discourse-cdn.com/v4/letter/a/3be4f8/32.png) [@ame](https://foros.velneo.com/u/ame)\
**Post date:** [27 Julio, 2010 10:15 UTC](https://foros.velneo.com/t/vgestion-de-impuesto/2079/5 "2010-07-27T10:15:08Z")

</div>

Pues aquí está el chorizo:

&nbsp;

choose(currentDate() \< #FIS.GR1\_FCH, choose(#VTA\_FIS\_GR1\_TIP = 1, #FIS.GR1\_TP1\_POA, choose(#VTA\_FIS\_GR1\_TIP = 2, #FIS.GR1\_TP2\_POA, choose(#VTA\_FIS\_GR1\_TIP = 3, #FIS.GR1\_TP3\_POA, 0))), choose(#VTA\_FIS\_GR1\_TIP = 1, #FIS.GR1\_TP1\_POP, choose(#VTA\_FIS\_GR1\_TIP = 2, #FIS.GR1\_TP2\_POP, choose(#VTA\_FIS\_GR1\_TIP = 3, #FIS.GR1\_TP3\_POP, 0))))

&nbsp;

Por si a alguien le sirve.

&nbsp;

Al final pensaba que se podía hacer mediante indirectos u otro tipo de enlaces, vamos, algo más sencillo y no tan enreversao como el "choose". Pero bueno... ahí queda eso.

&nbsp;

Un saludo.

---

<div class="post-metadata">

**Author:** ![jorge-velasco](https://avatars.discourse-cdn.com/v4/letter/j/3bc359/32.png) [@jorge-velasco](https://foros.velneo.com/u/jorge-velasco)\
**Post date:** [27 Julio, 2010 13:05 UTC](https://foros.velneo.com/t/vgestion-de-impuesto/2079/6 "2010-07-27T13:05:06Z")

</div>

Buenas ame.

Sin haber visto vGestión , tan sólo una recomendación.

A mi, personalmente intento evitar poner en un contenido inicial una fórmula con choose. Menos esa tan grande como la tuya. Date cuenta que Velneo te va a evaluar toda la fórmula aunque cumpla la primera de las opciones.

También podrías crearte una función. En esa función comprobar todo lo que necesites y poner esa fórmula de contenido incial del campo.

Un saludo.

&nbsp;

&nbsp;

**Jorge Velasco Fernández**

**jvelasco@theseedsc.com**

**www.theseedsc.com**

---

<div class="post-metadata">

**Author:** ![ame](https://avatars.discourse-cdn.com/v4/letter/a/3be4f8/32.png) [@ame](https://foros.velneo.com/u/ame)\
**Post date:** [27 Julio, 2010 13:41 UTC](https://foros.velneo.com/t/vgestion-de-impuesto/2079/7 "2010-07-27T13:41:11Z")

</div>

Hola Jorge,

&nbsp;

Te refieres a esto:

[attachment=10863,1042]

Y así es cómo lo tenía, pero creo que es mucho más ineficiente realizar un "cargar lista", seleccionar la ficha, después evaluar las condiciones, retornar el dato, y, luego aparte, en el campo de la tabla poner como contenido inicial una llamada a una función creo que también degrada bastante el rendimiento del sistema que poner simplemente una orden "choose" aunque parezca muy compleja.

De todas formas desconozco las implementaciones internas de Velneo, sé que el lenguaje de programación que lleva de trasfondo es C++, y, siendo así, no entiendo por qué la orden "choose" sigue evaluando las demás expresiones aún cuando la primera es cierta. En C/C++, las estructuras selectivas como IF evalúan sus expresiones en lo que se conoce como "evaluación en cortocircuito", esto es, que en el momento en que se detecta que una expresión es verdadera, se deja de mirar el resto de expresiones.

&nbsp;

Un saludo.

&nbsp;

---

<div class="post-metadata">

**Author:** ![jorge-velasco](https://avatars.discourse-cdn.com/v4/letter/j/3bc359/32.png) [@jorge-velasco](https://foros.velneo.com/u/jorge-velasco)\
**Post date:** [27 Julio, 2010 13:45 UTC](https://foros.velneo.com/t/vgestion-de-impuesto/2079/8 "2010-07-27T13:45:28Z")

</div>

Buenas ame.

Asi me parece bien ;)

Esa función la pones como contenido incial del campo porcentaje y listo.

Un saludo.

&nbsp;

&nbsp;

**Jorge Velasco Fernández**

**jvelasco@theseedsc.com**

**www.theseedsc.com**

---

<div class="post-metadata">

**Author:** ![ame](https://avatars.discourse-cdn.com/v4/letter/a/3be4f8/32.png) [@ame](https://foros.velneo.com/u/ame)\
**Post date:** [27 Julio, 2010 13:53 UTC](https://foros.velneo.com/t/vgestion-de-impuesto/2079/9 "2010-07-27T13:53:08Z")

</div>

Lo siento, edité el anterior post porque se me olvidó comentar algunas cosas.

---

<div class="post-metadata">

**Author:** ![overall.massoicb](https://avatars.discourse-cdn.com/v4/letter/o/dec6dc/32.png) [@overall.massoicb](https://foros.velneo.com/u/overall.massoicb)\
**Post date:** [27 Julio, 2010 13:54 UTC](https://foros.velneo.com/t/vgestion-de-impuesto/2079/10 "2010-07-27T13:54:57Z")

</div>

Hola Jose Luis,

En la tabla Artículos tenemos el campo&nbsp;#VTA\_FIS\_GR1\_TIP, que es el que nos define el tipo de IVA y dar con su porcentaje, éste es el valor que deberemos poner como contenido inicial en la tabla LINEAS\_TICKET. La función que defines te servirá para poder sacar el porcentaje.

El planteamiento de la función lo veo correcto. También podrías coger el porcentaje de la cabecera de las&nbsp;LINEAS\_TICKET, en este caso actuaría sobre el propio documento.

Saludos

* * *

**Overall**

Luis Palomo

[overall@massoicb.com](mailto:overall@massoicb.com)

[www.overall-bcn.com/v7](http://www.overall-bcn.com/v7)

---

<div class="post-metadata">

**Author:** ![ame](https://avatars.discourse-cdn.com/v4/letter/a/3be4f8/32.png) [@ame](https://foros.velneo.com/u/ame)\
**Post date:** [27 Julio, 2010 14:45 UTC](https://foros.velneo.com/t/vgestion-de-impuesto/2079/11 "2010-07-27T14:45:54Z")

</div>

Sí, gracias Overall. Ya lo tengo funcionando todo O.K. Lo he probado usando tanto la función como la orden "choose" y ambas son válidas, aunque bueno, no estaría de más saber cuál era la más óptima desde el punto de vista del rendimiento. Pero es igual.

Lo que no te he entendido muy bien es en lo último que has puesto:

_También podrías coger el porcentaje de la cabecera de las&nbsp;LINEAS\_TICKET, en este caso actuaría sobre el propio documento_.

¿Podrías extenderlo un poco más?

&nbsp;

Saludos.

---

<div class="post-metadata">

**Author:** ![jorge-velasco](https://avatars.discourse-cdn.com/v4/letter/j/3bc359/32.png) [@jorge-velasco](https://foros.velneo.com/u/jorge-velasco)\
**Post date:** [27 Julio, 2010 15:00 UTC](https://foros.velneo.com/t/vgestion-de-impuesto/2079/12 "2010-07-27T15:00:33Z")

</div>

Buenas.

En cuanto a lo de la opción mas óptima debería ser, desde el momento en que el choose evalúa toda la función, la opción de llamar a una función que te devuelva el valor.

Un saludo.

&nbsp;

&nbsp;

**Jorge Velasco Fernández**

**jvelasco@theseedsc.com**

**www.theseedsc.com**

---

<div class="post-metadata">

**Author:** ![comercial](https://avatars.discourse-cdn.com/v4/letter/c/94ad74/32.png) [@comercial](https://foros.velneo.com/u/comercial)\
**Post date:** [27 Julio, 2010 17:56 UTC](https://foros.velneo.com/t/vgestion-de-impuesto/2079/13 "2010-07-27T17:56:09Z")

</div>

Hola. Yo miraría esto, a ver que te parece: http://cagonmimantu.wordpress.com/2010/04/05/programar-es-prever/

---

<div class="post-metadata">

**Author:** ![overall.massoicb](https://avatars.discourse-cdn.com/v4/letter/o/dec6dc/32.png) [@overall.massoicb](https://foros.velneo.com/u/overall.massoicb)\
**Post date:** [28 Julio, 2010 03:10 UTC](https://foros.velneo.com/t/vgestion-de-impuesto/2079/14 "2010-07-28T03:10:51Z")

</div>

Hola Jose Luis,

La tabla LINEAS\_TICKET tendrá una cabecera de TICKETS, de la que podremos sacar los porcentajes (FIS\_GR1\_TP1\_POR,&nbsp;FIS\_GR1\_TP2\_POR, etc...) de esta manera y con la función que has creado apuntando a TICKETS te serviría igual, con la particularidad que podríamos personalizar el porcentaje de los tipos de impuestos de la cabecera.

Es solo una opinión más.

Saludos.

* * *

**Overall**

Luis Palomo

[overall@massoicb.com](mailto:overall@massoicb.com)

[www.overall-bcn.com/v7](http://www.overall-bcn.com/v7)
