FacturaScripts

CalculatorModSpain
in package
implements CalculatorModInterface

This class implements the CalculatorModInterface for Spain.

Tags
collaborator

Daniel Fernández Giménez [email protected]

Table of Contents

Interfaces

CalculatorModInterface

Methods

apply()  : bool
calculate()  : bool
calculateLine()  : bool
clear()  : bool
getSubtotals()  : bool
applyUsedGoods()  : bool
checkLineConflicts()  : bool
Válida conflictos de exenciones a nivel de línea.
suggestGlobalExemption()  : void
Sugiere el valor global de exención si todas las líneas son fiscalmente coherentes.
validateGlobalExemption()  : bool
Válida coherencia entre operación global y líneas.
validateLineExemptions()  : bool
Válida que cada línea tenga una exención fiscalmente coherente según el global y la propia línea.

Methods

checkLineConflicts()

Válida conflictos de exenciones a nivel de línea.

private checkLineConflicts(array<string|int, mixed> $exenciones, bool $hasIva) : bool

No permite mezclar exenciones incompatibles (ej: E1+IVA, E2+IVA, E1+E2, etc). Lanza advertencia o retorna false si hay conflicto.

Parameters
$exenciones : array<string|int, mixed>
$hasIva : bool
Return values
bool

suggestGlobalExemption()

Sugiere el valor global de exención si todas las líneas son fiscalmente coherentes.

private suggestGlobalExemption(BusinessDocument $doc, array<string|int, mixed> $lines, bool $allLinesSaved, bool $allE3, bool $allE4, bool $allE2, bool $allE5) : void

Devuelve el tipo de operación global sugerido o null si no aplica.

Parameters
$doc : BusinessDocument
$lines : array<string|int, mixed>
$allLinesSaved : bool
$allE3 : bool
$allE4 : bool
$allE2 : bool
$allE5 : bool

validateGlobalExemption()

Válida coherencia entre operación global y líneas.

private validateGlobalExemption(string|null $globalEx, bool $allZeroIva, array<string|int, mixed> $exenciones) : bool

Si hay conflicto, anula el valor global y lanza advertencia.

Parameters
$globalEx : string|null
$allZeroIva : bool
$exenciones : array<string|int, mixed>
Return values
bool

validateLineExemptions()

Válida que cada línea tenga una exención fiscalmente coherente según el global y la propia línea.

private validateLineExemptions(BusinessDocument $doc, BusinessDocumentLine $line, string|null $subjectFiscalID, Contacto $addressShipping, string|null $globalEx) : bool

Retorna false si alguna línea no cumple la lógica fiscal.

Parameters
$doc : BusinessDocument
$line : BusinessDocumentLine
$subjectFiscalID : string|null
$addressShipping : Contacto
$globalEx : string|null
Return values
bool

        
On this page

Search results