Documentación de la Clase de Cálculo de Funciones

Esta clase se utiliza para manejar funciones críticas relacionadas con la valorización de transacciones y el cálculo de impuestos en un sistema de gestión. Las funciones que se pueden ejecutar son:

  • calcularImpuesto
  • calcularVolumenVenta
  • calcularVolumenProduccion
  • calcularVolumenStock
  • calcularPrecioUnitarioxUnidadVolumen
  • calcularBaseImponible

Orden de Ejecución de Funciones

Para transacciones que requieren valorización y cálculo de impuestos, como una factura, el orden recomendado de ejecución es:

  1. calcularPrecioUnitarioxUnidadVolumen
  2. calcularBaseImponible
  3. calcularImpuesto

Configuración Necesaria

Para que la clase funcione correctamente, es necesario configurar ciertas claves de desarrollo en los esquemas correspondientes.

Esquema de Transacción/Colección Principal

En el esquema definido en Bloc DynamicCrudBloc dentro de OnEstablecerColeccionDynamicCrud, deben configurarse las siguientes claves:

"transaccion" {
  "keyDesarrollo": [
    "keyMonedaComprobante",
    "keyMonedaItem",
    "keyCliente",
    "keyComprobante",
    "keyFechaComprobante",
    "keyDetalle",
    "keyProducto",
    "keyIdVolumen",
    "keyVolumen",
    "keyCantidad",
    "keyListaPrecio",
    "keyFechaVigenciaLPrecio",
    "keyPrecioUnitario",
    "keyEstadoProducto",
    "keyDescuento",
    "keyDetalleFiscal",
    "keyImpuestoPercibirInDetalleFiscal",
    "keyTotalBaseImponibleInDetalleFiscal",
    "keyTotalTasaInDetalleFiscal",
    "keyFiscal",
    "keyImporteTotalDescuento",
    "keyImporteBaseImponible",
    "keyImporteImpInterno",
    "keyImporteTasa",
    "keyImporteOtros"
  ],
}

Colecciones Complementarias

Se deben configurar los siguientes esquemas complementarios:

Cliente

"cliente": {
    "coleccion": "cliente",
    "keyDesarrollo": [
        "keyIvaPersona",
        "keyDetalleFiscal",
        "keyImpuestoPercibirInDetalleFiscal"
    ]
}

Producto

"producto": {
    "coleccion": "producto",
    "keyDesarrollo": [
        "keyDescripcionProducto",
        "keyDetalleFiscal",
        "keyImpuestoPercibirInDetalleFiscal",
        "keyIdUnidadVolumenPredeterminado",
        "keyVolumenProduccion",
        "keyIdVolumenInVolumenProduccion",
        "keyVolumenInVolumenProduccion",
        "keyRedondeoInVolumenProduccion",
        "keyVolumenVenta",
        "keyIdVolumenInVolumenVenta",
        "keyVolumenInVolumenVenta",
        "keyRedondeoInVolumenVenta",
        "keyCategoriaProducto",
        "keyFamiliaProducto"
    ]
}

Comprobante

"comprobante": {
    "coleccion": "comprobante",
    "keyDesarrollo": [
        "keyDescripcionComprobante",
        "keyDetalleFiscal",
        "keyImpuestoPercibirInDetalleFiscal",
        "keyidTipoComprobanteFiscal"
    ]
}

Lista de Precio

"listaPrecio": {
    "coleccion": "listaPrecio",
    "keyDesarrollo": [
        "keyDescripcion",
        "keyFechaVigenciaPrecio",
        "keyUnidadVolumen",
        "keyMoneda"
    ]
}

Detalle Lista de Precio

"detalleListaPrecio": {
    "coleccion": "detalleListaPrecio",
    "keyDesarrollo": [
        "keyListaPrecio",
        "keyFechaVigencia",
        "keyFamiliaProducto",
        "keyCategoriaProducto",
        "keyEstadoProducto",
        "keyImporte"
    ]
}

Cotización

"cotizacion": {
    "coleccion": "cotizacion",
    "keyDesarrollo": [
        "keyFechaCotizacion",
        "keyCotizaciones",
        "keyMonedaOrigenInCotizaciones",
        "keyMonedaDestinoInCotizaciones",
        "keyCotizacionInCotizaciones"
    ]
}

Otros Esquemas

"ivaPersona": {"coleccion": "ivaPersona"},
"familiaImpuestoPercibir": {"coleccion": "familiaImpuestoPercibir"},
"impuestoPercibir": {"coleccion": "impuestoPercibir"},
"tipoComprobanteFiscal": {"coleccion": "tipoComprobanteFiscal"}

Conclusión

Configurar correctamente estas claves en los esquemas de desarrollo garantiza que las funciones de cálculo se ejecuten de manera eficiente y precisa, facilitando la gestión de transacciones y cálculos fiscales en el sistema.