LaravelPackages.net
Acme Inc.
Toggle sidebar
gfarias/laravel-previ-scraper

Extractor de indicadores previsionales y tramos de renta (previred/sii)

438
10
v1.1.0
About gfarias/laravel-previ-scraper

gfarias/laravel-previ-scraper is a Laravel package for extractor de indicadores previsionales y tramos de renta (previred/sii). It currently has 10 GitHub stars and 438 downloads on Packagist (latest version v1.1.0). Install it with composer require gfarias/laravel-previ-scraper. Discover more Laravel packages by gfarias or browse all Laravel packages to compare alternatives.

Last updated

Laravel PreviScraper

Indicadores previsionales Chile 🇨🇱

Codacy Badge tests codecov CodeFactor StyleCI Latest Stable Version Total Downloads License

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

image

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();

❤️

Comments