innovaweb/chileanrut

A Chilean Rut script to handle ruts

v1.5.0 2022-06-14 22:19 UTC

This package is auto-updated.

Last update: 2024-10-15 03:46:01 UTC


README

Latest Version on Packagist Total Downloads

A Chilean Rut script to handle ruts. Take a look at contributing.md to see a to do list.

Installation

Via Composer

$ composer require innovaweb/chileanrut

Usage

Format Function

Format the rut according to the assigned parameters, if withDotted is true it will always return with a hyphen, return string value

Rut::format('123123123'); // return 12.312.312-3
Rut::format('123123123', false); // return 12312312-3
Rut::format('123123123', false, false); // return 123123123 (it is best to use the unformat function)

Unformat Function

Clean the rut of spaces, dots and hyphens, return string value

Rut::unformat('12.312.312-3'); // return 123123123

Validate Function

Check if the code is valid with the validation algorithm, return boolean value

Rut::validate('12.312.312-3'); // return true

Calculate Dv Function

Calculates the check digit from a sequential rut number, return string value

Rut::calculateDv(12312312); // return 3

Get Number Function

Extract the numerical part of the rut, can return with points according to the parameters, return string value

Rut::getNumber('12312312-3'); // return 12312312
Rut::getNumber('12312312-3', true); // return 12.312.312

Get Dv Function

Extract the check digit part of the rut, return string value

Rut::getDv('12312312-3'); // return 3

Example

namespace App\Http\Controllers;

use Innovaweb\ChileanRut\Rut;

class RutController extends Controller
{
    public function index()
    {
        $format = Rut::format('123123123');
        $unformat = Rut::unformat($format);
        return [
            $format,
            $unformat,
            Rut::validate($unformat),
            Rut::calculateDv(12312312),
            Rut::getNumber($format, false),
            Rut::getDv($format),
        ];
    }
}

Result

[
  "12.312.312-3",
  "123123123",
  true,
  "3",
  "12312312",
  "3"
]

Change log

Please see the changelog for more information on what has changed recently.

Testing

$ composer test

Security

If you discover any security related issues, please email aisla@innovaweb.cl instead of using the issue tracker.

Credits

License

license. Please see the license file for more information.