UtilsTrait
Clase con métodos auxiliares para el proceso de normalización de los datos de un documento.
Table of Contents
Methods
- calcularNetoIVA() : array<string|int, mixed>
- Obtiene el monto neto y el IVA de ese neto a partir de un monto total.
- getTipoDocumento() : DocumentoTipo
- Entrega el tipo de documento que este "builder" puede construir.
- round() : int|float
- Redondea valores asociados a un tipo de moneda.
Methods
calcularNetoIVA()
Obtiene el monto neto y el IVA de ese neto a partir de un monto total.
protected
calcularNetoIVA(int $total[, int|false|null $tasa = null ]) : array<string|int, mixed>
NOTE: El IVA obtenido puede no ser el NETO * (TASA / 100). Se calcula el monto neto y luego se obtiene el IVA haciendo la resta entre el total y el neto. Hay casos de borde que generan problemas como:
- BRUTO: 680 => NETO: 571 e IVA: 108 => TOTAL: 679
- BRUTO: 86710 => NETO: 72866 e IVA: 13845 => TOTAL: 86711
Estos casos son "normales", pues por aproximaciones "no da".
Parameters
- $total : int
-
Total que representa el monto neto más el IVA.
- $tasa : int|false|null = null
-
Tasa del IVA.
Return values
array<string|int, mixed> —Arreglo con el neto y el IVA en índices 0 y 1.
getTipoDocumento()
Entrega el tipo de documento que este "builder" puede construir.
protected
abstract getTipoDocumento() : DocumentoTipo
Return values
DocumentoTiporound()
Redondea valores asociados a un tipo de moneda.
protected
round(int|float $amount[, string|null|false $currency = null ][, int $decimals = 4 ]) : int|float
Si los valores son en pesos chilenos se redondea sin decimales. Si los valores están en otro tipo de moneda se mantienen los decimales, por defecto se mantienen 4 decimales.
Parameters
- $amount : int|float
-
Valor que se desea redondear.
- $currency : string|null|false = null
-
La moneda en la que está el valor.
- $decimals : int = 4
-
Cantidad de decimales a mantener cuando la moneda no es peso chileno.
Return values
int|float —Valor redondeado según la moneda y decimales a usar.