Blog navigation

Últimas entradas del blog

Simulación del IVA antes de la Generación de Facturas en Sage X3

 

Simulación del IVA antes de la Generación de Facturas en Sage X3

En Sage X3, el IVA se calcula y se activa en el momento en que se genera la factura, lo que puede representar un desafío en situaciones donde son necesarias previsiones financieras antes de la emisión de dicha factura. Uno de mis clientes se enfrentó a esta problemática, necesitando conocer el valor exacto del IVA para integrarlo en los cálculos financieros antes de finalizar la generación de la factura. La complejidad del cálculo del IVA y su integración con las comisiones requería una solución adaptada.

En este artículo, presento una solución que permite simular el IVA respetando el estándar de Sage X3, antes incluso de la creación de la factura. El enfoque utilizado emula el comportamiento de una factura estándar, copiando la información del IVA en un momento determinado y luego anulando la generación de la factura posicionando variables específicas.

La ventaja de esta técnica es que garantiza el respeto total de los estándares de Sage X3, al tiempo que tiene en cuenta las especificidades verticales o módulos instalados en el sistema del cliente. De hecho, la importación simula una entrada estándar, lo que asegura que el cálculo se realice según las reglas establecidas.

Escenario clásico

Tomemos un ejemplo típico: un cliente desea realizar previsiones financieras antes de la creación de una factura. Sin embargo, en Sage X3, el IVA solo se calcula en el momento de la generación final de la factura. El siguiente código presenta una solución que permite superar esta limitación, manteniendo la integridad del sistema.

Ejemplo de código para la simulación del IVA en Sage X3


$ACTION

  Case ACTION
    When "IMP_OUVRE"            : Gosub IMP_OUVRE
    When "IMP_VERIF_CRE"        : Gosub IMP_VERIF_CRE
    When "IMP_FERME"            : Gosub IMP_FERME
    When "IMP_SETBOUT"          : Gosub IMP_SETBOUT
  Endcase
Return

$IMP_SETBOUT
  [L]YBILIMP=val(timestamp$)
  [L]YINVNB+=1
Return

$IMP_FERME
  [L]YBILIMP=val(timestamp$)-[L]YBILIMP
  Call ECR_TRACE(mess(406,107,1)-num$(([L]YBILIMP/1000)/[L]YINVNB)-mess(25,154,1)-"/"-mess(87,121,1),0) From GESECRAN
Return

$IMP_OUVRE

  If !clalev([F:ZTXSV])      : Local File ZTRANSACTMP   [F:ZTXSV]       : Endif
  Local Integer YI
  Local Integer YINVNB
  Local Decimal YBILIMP
Return

$IMP_VERIF_CRE 
  # En este punto, la clase [F:SID] está completa y las comisiones se han creado
  # También estamos seguros de que todos los estándares han sido activados
  # Esta es la última oportunidad para bloquear la creación poniendo OK=0
  
  Trbegin [F:ZTXSV]
  For YI=0 To nolign-1
    Read [F:ZTXSV]ZTRX0=[M:SIH4]ZTRXCHR(YI)
    If !fstat
      [F:ZTXSV]VAT(0)=[M:SIH4]VAT1(YI)
      [F:ZTXSV]VAT(1)=[M:SIH4]VAT2(YI)
      [F:ZTXSV]VAT(2)=[M:SIH4]VAT3(YI)
      [F:ZTXSV]AMTTAXLIN(0)=[M:SIH4]AMTTAXLIN1(YI)
      [F:ZTXSV]AMTTAXLIN(1)=[M:SIH4]AMTTAXLIN2(YI)
      [F:ZTXSV]AMTTAXLIN(2)=[M:SIH4]AMTTAXLIN3(YI)
      [F:ZTXSV]YSIHVAT=3
      Rewrite [F:ZTXSV]
    Endif

  Next YI
  If !fstat
    Commit
  Else
    Rollback
  Endif
  OK=0
Return

Explicación de la solución

El código anterior muestra cómo realizar una simulación del IVA utilizando un tratamiento específico conectado a un modelo de importación. Este modelo permite determinar la información del IVA antes de la creación final de la factura, y luego anular esta creación una vez realizada la simulación. Cada comisión también se calcula y se asocia a la factura simulada.

Conclusión

Este método de simulación del IVA antes de la generación de la factura permite a los usuarios obtener información precisa sobre los montos a facturar, incluidas las comisiones y los impuestos aplicables, antes de la creación oficial de la factura. Además de respetar los estándares de Sage X3, este enfoque se integra perfectamente en entornos personalizados y responde a las necesidades específicas de los clientes en cuanto a previsiones financieras.

 
Publicado en: Sage X3, 4GL