funciones_servicios_dart_flutter_mobile 2.0.0
funciones_servicios_dart_flutter_mobile: ^2.0.0 copied to clipboard
Calculation engine for transaction valuation and tax calculations. Handles price calculations, volume conversions, tax calculations (IVA, internal taxes), and fiscal compliance for invoicing systems.
funciones_servicios_dart_flutter_mobile #
A comprehensive calculation engine for transaction valuation and tax calculations in Flutter mobile applications. This package handles critical business functions including price calculations, volume conversions, tax calculations (IVA, internal taxes), and fiscal compliance for invoicing systems.
Features #
- Price Calculations: Calculate unit prices based on volume units from price lists
- Taxable Base Calculations: Compute taxable base amounts for transactions
- Tax Calculations: Handle IVA, internal taxes, and other fiscal requirements
- Volume Conversions: Support for sales, production, and stock volume calculations
- Multi-currency Support: Handle transactions with multiple currencies via exchange rates
- Hash-based Optimization: SHA-256 hashing for change detection to avoid redundant calculations
- Schema-driven Architecture: Dynamic field mapping via
keyDesarrollofor flexible configuration
Installation #
Add this package to your pubspec.yaml:
dependencies:
funciones_servicios_dart_flutter_mobile: ^1.0.0
Then run:
flutter pub get
Usage #
Basic Setup #
import 'package:funciones_servicios_dart_flutter_mobile/funciones_servicios_dart_flutter_mobile.dart';
// Initialize the service (singleton pattern)
final funcionesServicios = FuncionesServicios(apiRest: apiRest);
// Initialize functions with schema
await funcionesServicios.initFunciones(
coleccion: 'transaccion',
funciones: [
Funciones.calcularPrecioUnitarioxUnidadVolumen.name,
Funciones.calcularBaseImponible.name,
Funciones.calcularImpuestos.name,
],
esquema: mySchema,
);
Available Functions #
| Function | Description |
|---|---|
calcularPrecioUnitarioxUnidadVolumen |
Calculates unit price based on volume units from price lists |
calcularBaseImponible |
Calculates taxable base amount |
calcularImpuestos |
Calculates taxes (IVA, internal taxes) with fiscal detail |
calcularVolumenVenta |
Calculates sales volume |
calcularVolumenProduccion |
Calculates production volume |
calcularVolumenStock |
Calculates stock volume using default product unit |
Recommended Execution Order #
For invoicing transactions, execute functions in this order:
calcularPrecioUnitarioxUnidadVolumencalcularBaseImponiblecalcularImpuestos
Executing Functions #
// Update specific item
final result = await funcionesServicios.ejecutaFuncionActualizarItems(
coleccion: 'transaccion',
funciones: funciones,
data: transactionData,
accion: AccionFunServicio.actualizar,
idItemData: itemId,
);
// Recalculate entire transaction
final result = await funcionesServicios.ejecutaFuncionesEnTodoElRegistro(
coleccion: 'transaccion',
funciones: funciones,
data: transactionData,
);
// Recalculate totals only (for save operations)
final result = await funcionesServicios.ejecutaFuncionesGuardar(
coleccion: 'transaccion',
funciones: funciones,
data: transactionData,
);
Hash-based Change Detection #
Before editing, establish a hash to track changes:
await funcionesServicios.estableceHash(
coleccion: 'transaccion',
funciones: funciones,
data: transactionData,
accion: AccionFunServicio.modificar,
idItem: itemId,
);
Schema Configuration #
The package requires proper schema configuration with keyDesarrollo mappings. See the package documentation for detailed schema setup instructions.
Platform Support #
| Platform | Support |
|---|---|
| Android | ✅ |
| iOS | ✅ |
Dependencies #
This package depends on:
api_rest_flutter_mobile- REST API integrationflutter_models_provider- Data models and ObjectBox integrationflutter_utils_providers- Utility functions for schema navigationcrypto- SHA-256 hashing for change detectionuuid- UUID generation
License #
This project is licensed under the MIT License - see the LICENSE file for details.