Paquete laravel para leer indicadores previsionales desde Previred y tramos de impuesto de 2da categoría desde SII

Overview

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();
You might also like...
Role-based Permissions for Laravel 5

ENTRUST (Laravel 5 Package) Entrust is a succinct and flexible way to add Role-based Permissions to Laravel 5. If you are looking for the Laravel 4 ve

Roles & Permissions for Laravel 8 / 7 / 6 / 5

Defender Defender is an Access Control List (ACL) Solution for Laravel 5 / 6 / 7 (single auth). (Not compatible with multi-auth) With security and usa

Laravel wrapper around OAuth 1 & OAuth 2 libraries.

Introduction Laravel Socialite provides an expressive, fluent interface to OAuth authentication with Facebook, Twitter, Google, LinkedIn, GitHub, GitL

PHP package built for Laravel 5.* to easily handle a user email verification and validate the email

jrean/laravel-user-verification is a PHP package built for Laravel 5.* & 6.* & 7.* & 8.* to easily handle a user verification and validate the e-mail.

LDAP Authentication & Management for Laravel

👋 Hey there! Looking for something even easier to use for LDAP integration in your Laravel applications? 🎉 Introducing LdapRecord 🎉 LdapRecord is t

Limit access to your Laravel applications by using invite codes

Doorman Doorman provides a way to limit access to your Laravel applications by using invite codes. Invite Codes: Can be tied to a specific email addre

Declarative style of authorization and validation in laravel.
Declarative style of authorization and validation in laravel.

Laravel Hey Man Readability Counts. In fact, Readability is the primary value of your code !!! 🎀 Heyman continues where the other role-permission pac

Set up Laravel Auth guards using Eloquent in seconds

Nightguard Set up Auth guards using Eloquent in seconds. Introduction Laravel guards provide a super convenient way of authorizing different areas of

Laravel starter kit with Livewire & Bootstrap 5 auth scaffolding.

Laravel Livewire Auth Laravel starter kit with Livewire & Bootstrap 5 auth scaffolding. Requirements NPM Installation Create a new Laravel app: larave

Comments
  • Problema al instalar la libreria en PHP 7.3

    Problema al instalar la libreria en PHP 7.3

    Hola actualmente tengo php 7.4 y debería poder permitirme instalarlo yq eu dice que acepta desde acepta 7.3 al tratar de hacerlo me muestra el error:

    Problem 1 - illuminate/support[v9.0.0-beta.1, ..., 9.x-dev] require php ^8.0.2 -> your php version (7.4.16) does not satisfy that requirement. - Root composer.json requires gfarias/laravel-previ-scraper 1.1.0 -> satisfiable by gfarias/laravel-previ-scraper[v1.1.0]. - Conclusion: don't install laravel/framework v7.22.3 (conflict analysis result)

    opened by jesusrafaelcovahuerta 3
Releases(v1.1.0)
Owner
Guillermo Farías Pavez
🇨🇱 Alias Willy.
Guillermo Farías Pavez
Cliente OAuth2 para Gov.br

Cliente OAuth2 para Gov.br Este pacote fornece suporte OAuth 2.0 para Gov.br usando a biblioteca cliente do League PHP. Requisitos Versões suportadas

Breno Roosevelt 11 Dec 27, 2022
Un proyecto que crea una API de usuarios para registro, login y luego acceder a su información mediante autenticación con JSON Web Token

JSON WEB TOKEN CON LARAVEL 8 Prueba de autenticación de usuarios con una API creada en Laravel 8 Simple, fast routing engine. License The Laravel fram

Yesser Miranda 2 Oct 10, 2021
Proyecto para aprender a utilizar privilegios (roles y permisos) con CRUDBooster

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Informática DP 3 May 9, 2022
A Laravel 5 package for OAuth Social Login/Register implementation using Laravel socialite and (optionally) AdminLTE Laravel package

laravel-social A Laravel 5 package for OAuth Social Login/Register implementation using Laravel socialite and (optionally) AdminLTE Laravel package. I

Sergi Tur Badenas 42 Nov 29, 2022
:octocat: Socialite is an OAuth2 Authentication tool. It is inspired by laravel/socialite, you can easily use it without Laravel.

Socialite Socialite is an OAuth2 Authentication tool. It is inspired by laravel/socialite, You can easily use it in any PHP project. 中文文档 This tool no

安正超 1.2k Dec 22, 2022
An OAuth 2.0 bridge for Laravel and Lumen [DEPRECATED FOR LARAVEL 5.3+]

OAuth 2.0 Server for Laravel (deprecated for Laravel 5.3+) Note: This package is no longer maintaned for Laravel 5.3+ since Laravel now features the P

Luca Degasperi 2.4k Jan 6, 2023
A Simple method to create laravel authentication for an existing laravel project.

Laravel Simple Auth A Simple method to create laravel authentication for an existing laravel project. Indroduction Why I created this kind of package?

Dasun Tharanga 10 Dec 14, 2021
Laravel Auth is a Complete Build of Laravel 8 with Email Registration Verification, Social Authentication, User Roles and Permissions, User Profiles, and Admin restricted user management system.

Laravel Auth is a Complete Build of Laravel 8 with Email Registration Verification, Social Authentication, User Roles and Permissions, User Profiles, and Admin restricted user management system. Built on Bootstrap 4.

Jeremy Kenedy 2.8k Dec 31, 2022
🔐 JSON Web Token Authentication for Laravel & Lumen

Documentation Documentation for 1.* here For version 0.5.* See the WIKI for documentation. Supported by Auth0 If you want to easily add secure authent

Sean Tymon 10.7k Dec 31, 2022
Handle roles and permissions in your Laravel application

Laratrust (Laravel Package) Version Compatibility Laravel Laratrust 8.x 6.x 7.x 6.x 6.x 6.x 5.6.x - 5.8.x 5.2 5.3.x - 5.5.x 5.1 5.0.x - 5.2.x 4.0. Ins

Santiago García 2k Dec 30, 2022