Laravel PreviScraper
🇨🇱
Indicadores previsionales Chile
Indicadores previsionales desde Previred y tramos de impuesto desde SII
Los datos se obtienen utilizando web scraping (Previred - Sii)
Instalación
Corre el siguiente comando en la terminal:
composer require gfarias/laravel-previ-scraper
Cómo se usa
Puedes utilizar el provider e inyectarlo directo en los métodos ejecutados por el framework:
public function handle(PreviScraper $previScraper): void {
$sii = $previScraper->sii();
print_r($sii->all());
}
o instanciar directamente PreviScraper :
$previScraper = new Gfarias\PreviScraper\PreviScraper();
$previred = $previScraper->previred();
$sii = $previScraper->sii();
print_r($previred->all());
print_r($sii->all());
Sii - Impuesto segunda categoría
Soporta desde el año 2013+
método | retorno |
---|---|
getTramosMensuales() |
array |
getTramosQuincenales() |
array |
getTramosSemanales() |
array |
getTramosDiarios() |
array |
all() |
array |
Cada método entrega un arreglo con el conjunto de tramos disponibles en SII, a su vez, cada tramo contiene los siguientes datos:
nombre | tipo de dato | descripción |
---|---|---|
periodo | string | [mensual ,quincenal , semanal , diario ] |
desde | float | renta mínima del tramo |
hasta | float | renta tope del tramo |
factor | float | factor de cálculo |
descuento | float | Cantidad a rebajar |
impuesto | float | Tasa de Impuesto Efectiva, máxima por cada tramo de Renta |
En resumen, es una fiel representación de la web de SII
Ejemplos de uso
Obtener indicadores mensuales del periodo Enero 2021
$previScraper = new PreviScraper();
$indicadoresMensuales = $previScraper->sii(5, 2021)->getIndicadoresMensuales();
print_r($indicadoresMensuales);
El output de estos indicadores sería:
Array
(
[0] => Array
(
[periodo] => mensual
[desde] => 0
[hasta] => 680022
[factor] => 0
[descuento] => 0
[impuesto] => 0
)
[1] => Array
(
[periodo] => mensual
[desde] => 680022.01
[hasta] => 1511160
[factor] => 0.04
[descuento] => 27200.88
[impuesto] => 2.2
)
[2] => Array
(
[periodo] => mensual
[desde] => 1511160.01
[hasta] => 2518600
[factor] => 0.08
[descuento] => 87647.28
[impuesto] => 4.52
)
[3] => Array
(
[periodo] => mensual
[desde] => 2518600.01
[hasta] => 3526040
[factor] => 0.135
[descuento] => 226170.28
[impuesto] => 7.09
)
[4] => Array
(
[periodo] => mensual
[desde] => 3526040.01
[hasta] => 4533480
[factor] => 0.23
[descuento] => 561144.08
[impuesto] => 10.62
)
[5] => Array
(
[periodo] => mensual
[desde] => 4533480.01
[hasta] => 6044640
[factor] => 0.304
[descuento] => 896621.6
[impuesto] => 15.57
)
[6] => Array
(
[periodo] => mensual
[desde] => 6044640.01
[hasta] => 15615320
[factor] => 0.35
[descuento] => 1174675.04
[impuesto] => 27.48
)
[7] => Array
(
[periodo] => mensual
[desde] => 15615320.01
[hasta] => 0
[factor] => 0.4
[descuento] => 1955441.04
[impuesto] => 27.48
)
)
Previred
Por ahora solo soporta el periodo actual en el sitio de previred, una buena implementación sería un lector PDF para obtener datos de períodos anteriores
método | retorno |
---|---|
getUF() |
float |
getUTM() |
float |
getRentaTopeImponibleAfp() |
float |
getRentaTopeImponibleIps() |
float |
getRentaTopeImponibleCesantia() |
float |
getRentaMinimaImponibleDependiente() |
float |
getRentaMinimaImponibleMenores() |
float |
getRentaMinimaImponibleParticulares() |
float |
getSeguroCesantia() |
\Gfarias\PreviScraper\CesantiaSupport |
getTopeApvMensual() |
float |
getTopeAPVAnual() |
float |
getAfpCapital() |
\Gfarias\PreviScraper\AfpSupport |
getAfpCuprum() |
\Gfarias\PreviScraper\AfpSupport |
getAfpHabitat() |
\Gfarias\PreviScraper\AfpSupport |
getAfpPlanVital() |
\Gfarias\PreviScraper\AfpSupport |
getAfpProVida() |
\Gfarias\PreviScraper\AfpSupport |
getAfpModelo() |
\Gfarias\PreviScraper\AfpSupport |
getAfpUno() |
\Gfarias\PreviScraper\AfpSupport |
getAsignacionTramoAMonto() |
float |
getAsignacionTramoBMonto() |
float |
getAsignacionTramoCMonto() |
float |
getAsignacionTramoA() |
float |
getAsignacionTramoB() |
float |
getAsignacionTramoC() |
float |
getAsignacionTramoD() |
float |
all() |
array |
CesantiaSupport
Datos específicos del seguro de cesantía
método | retorno |
---|---|
getIndefinidoEmpleador() |
float |
getIndefinidoTrabajador() |
float |
getPlazoFijoEmpleador() |
float |
getIndefinidoSobre11Empleador() |
float |
getCasaParticularEmpleador() |
float |
toArray() |
array |
AfpSupport
Datos específicos de cada AFP
método | retorno |
---|---|
getNombre() |
string |
getCodigo() |
string |
getPorcentajeDependiente() |
float |
getPorcentajeSis() |
float |
getPorcentajeIndependiente() |
float |
toArray() |
array |
Ejemplo de uso
$previScraper = new PreviScraper();
$previred = $previScraper->previred();
$rentaTopeImponible = $previred->getRentaTopeImponibleCesantia();
$porcentajeSisAfpHabitat = $previred->getAfpHabitat()->getPorcentajeSis();
$aporteCesantiaEmpleadorPlazoFijo = $previred->getSeguroCesantia()->getPlazoFijoEmpleador();