LibreDTE

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.

round()

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.


        
On this page

Search results