Cómo modificar el Calculator desde un plugin
Para modificar los cálculos de totales y subtotales de los albaranes, factura, etc ... debemos crear una clase que implemente el CalculatorModInterface:
FacturaScripts\Core\Contract\CalculatorModInterface
Por convención se llamará CalculatorMod y se ubicará en el directorio Mod del plugin.
Podemos editar o recalcular datos al momento de calcular los totales del documento, ya sea para compras y ventas, o solo para uno de ellos.
Recalcular el total del documento
public function calculate(BusinessDocument &$doc, array &$lines): bool
{
$doc->total = 'aquí tu cáclulo';
return true;
}
Recalcular líneas
public function calculateLine(BusinessDocument $doc, BusinessDocumentLine &$line): bool
{
$line->total = 'aquí tu cáclulo';
return true;
}
Inicializar registros
public function clear(BusinessDocument &$doc, array &$lines): bool
{
$doc->total = 0.0;
foreach ($lines as $line) {
$line->total = 0.0;
}
return true;
}
Archivo Init
Todos los archivos añadidos al Mod de los docuementos, ya sean de compra o venta, se deben añadir al archivo init para cargalos en la ejecución.
use FacturaScripts\Core\Lib\Calculator;
public function init(): void
{
Calculator::addMod(new Mod\CalculatorMod());
}