funciones_servicios_dart_flutter_web

pub package License: MIT

Paquete Flutter para cálculo de funciones de valorización de transacciones e impuestos en sistemas de gestión. Solo compatible con plataforma Web.

Funciones Disponibles

Función Descripción
calcularImpuestos Calcula los impuestos a percibir estableciendo el detalle fiscal
calcularVolumenVenta Calcula el volumen de un item usando unidad de volumen de VENTA
calcularVolumenProduccion Calcula el volumen de un item usando unidad de volumen de PRODUCCION
calcularVolumenStock Calcula el volumen usando la unidad predeterminada del producto
calcularPrecioUnitarioxUnidadVolumen Valoriza un item según la lista de precios
calcularBaseImponible Calcula la base imponible del item

Instalación

Agrega el paquete a tu pubspec.yaml:

dependencies:
  funciones_servicios_dart_flutter_web: ^0.0.1

Luego ejecuta:

flutter pub get

Uso Básico

import 'package:funciones_servicios_dart_flutter_web/funciones_servicios.dart';

// Inicializar el servicio
final funcionesServicios = FuncionesServicios(apiRest: apiRest);

// Inicializar las funciones con el esquema
await funcionesServicios.initFunciones(
  coleccion: 'transaccion',
  funciones: [
    'calcularPrecioUnitarioxUnidadVolumen',
    'calcularBaseImponible',
    'calcularImpuestos',
  ],
  esquema: esquemaTransaccion,
);

// Ejecutar las funciones sobre los datos
final result = await funcionesServicios.ejecutaFunciones(
  coleccion: 'transaccion',
  funciones: ['calcularPrecioUnitarioxUnidadVolumen', 'calcularBaseImponible', 'calcularImpuestos'],
  data: dataTransaccion,
  idItemData: itemId,
);

Orden de Ejecución Recomendado

Para transacciones que requieren valorización y cálculo de impuestos (ej: facturas):

  1. calcularPrecioUnitarioxUnidadVolumen
  2. calcularBaseImponible
  3. calcularImpuestos

Configuración de Esquemas

Para que las funciones operen correctamente, es necesario configurar las claves de desarrollo (keyDesarrollo) en los esquemas correspondientes.

Esquema de Transacción Principal

"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

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"}

Dependencias

  • api_rest_flutter_web: Comunicación con API REST
  • flutter_models_provider: Modelos de datos
  • flutter_utils_providers: Utilidades
  • crypto: Funciones de hash
  • uuid: Generación de identificadores únicos

Licencia

Este proyecto está licenciado bajo la Licencia MIT - ver el archivo LICENSE para más detalles.