innovaweb / chileanrut
A Chilean Rut script to handle ruts
Requires
- illuminate/support: ~5|~6|~7|~8|~9
Requires (Dev)
- orchestra/testbench: ~5|~6
- phpunit/phpunit: ~9.0
README
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.