承接 esolutions/peru 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

esolutions/peru

最新稳定版本:1.0.0

Composer 安装命令:

composer require esolutions/peru

包简介

Peru-specific utilities: RUC/DNI validators and number to letters

README 文档

README

Utilidades específicas para el mercado peruano: validación de documentos de identidad y conversión de números a letras para comprobantes electrónicos.

Instalación

composer require esolutions/peru

Namespace

Esolutions\Peru\

Validators — RucValidator

Valida el RUC peruano usando el algoritmo oficial del dígito verificador de SUNAT.

use Esolutions\Peru\Validators\RucValidator;

$result = RucValidator::validate('20100070970');
// → ['success' => true]

$result = RucValidator::validate('12345678901');
// → ['success' => false, 'message' => 'El RUC es incorrecto']

Validaciones aplicadas:

  1. Longitud exacta de 11 dígitos
  2. Solo caracteres numéricos
  3. Dígito verificador correcto (algoritmo módulo 11 de SUNAT)

Validators — DniValidator

Valida el formato del DNI peruano.

use Esolutions\Peru\Validators\DniValidator;

DniValidator::validate('12345678');        // → ['success' => true]
DniValidator::validate('12345678-1234');   // → ['success' => true]
DniValidator::validate('12345678 1234');   // → ['success' => true]
DniValidator::validate('1234');            // → ['success' => false, 'message' => 'El DNI es incorrecto']

Formatos aceptados:

Formato Ejemplo Descripción
8 dígitos 12345678 DNI estándar
8 + guion + 4 12345678-1234 Con código de verificación
8 + espacio + 4 12345678 1234 Con código de verificación

Support — NumberToLetterHelper

Convierte valores numéricos a su representación en letras en español. Requerido por SUNAT para comprobantes electrónicos (el monto debe expresarse en letras).

use Esolutions\Peru\Support\NumberToLetterHelper;

// Formato estándar (letras)
NumberToLetterHelper::convertToLetter(1234.56, 'SOLES');
// → "Mil doscientos treinta y cuatro con 56/100 SOLES"

// Formato con número (para comprobantes)
NumberToLetterHelper::convertToLetter(1234.56, 'SOLES', format: true);
// → "1.234,56 (Mil doscientos treinta y cuatro con 56/100 SOLES)"

// Sin moneda
NumberToLetterHelper::convertToLetter(100.00);
// → "Cien con 00/100 "

// Dólares
NumberToLetterHelper::convertToLetter(999999999.99, 'DÓLARES');
// → "Novecientos noventa y nueve millones novecientos noventa y nueve mil novecientos noventa y nueve con 99/100 DÓLARES"

Parámetros:

Parámetro Tipo Default Descripción
$number float|int|string Número a convertir
$currency string '' Texto de moneda (SOLES, DÓLARES)
$format bool false true incluye el número formateado al inicio

Formatos de entrada aceptados:

Entrada Interpretación
1234.56 Punto como decimal
"1,234.56" Coma como miles, punto como decimal
"1.234,56" Punto como miles, coma como decimal
"1234,56" Coma como decimal

Rango soportado: 0 a 999,999,999.99

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: proprietary
  • 更新时间: 2026-06-11

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固