PHP code example of jamesmosq / moonshine-colombia-puc-ciiu
1. Go to this page and download the library: Download jamesmosq/moonshine-colombia-puc-ciiu library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
jamesmosq / moonshine-colombia-puc-ciiu example snippets
use MoonshineColumbia\PucCiiu\Fields\CuentaPucField;
// Uso básico — solo cuentas contabilizables (nivel ≥ 3, sin hijos)
CuentaPucField::make('Cuenta PUC', 'cuenta_puc')
// Permitir cualquier nivel (grupos, clases, subcuentas)
CuentaPucField::make('Cuenta', 'cuenta')->permitirTodosLosNiveles()
// Solo gastos e ingresos (clases 4 y 5)
CuentaPucField::make('Cuenta', 'cuenta')->filtroPorClase([4, 5])
// Plan ESAL (entidades sin ánimo de lucro)
CuentaPucField::make('Cuenta', 'cuenta')->filtroPorTipo('esal')
use MoonshineColumbia\PucCiiu\Fields\ActividadCiiuField;
// Uso básico — solo clases de 4 dígitos
ActividadCiiuField::make('Actividad económica', 'actividad_ciiu')
// Permitir secciones, divisiones y grupos también
ActividadCiiuField::make('Actividad', 'actividad')->permitirTodosLosNiveles()
// Restringir a una sección (ej: C = Industrias manufactureras)
ActividadCiiuField::make('Actividad', 'actividad')->filtroPorSeccion('C')
use MoonshineColumbia\PucCiiu\Components\PucTreeComponent;
// En un IndexPage o CustomPage de MoonShine
protected function components(): array
{
return [
// Árbol completo PUC comercial
PucTreeComponent::make(),
// Plan ESAL con título personalizado
PucTreeComponent::make(
tipo: 'esal',
titulo: 'Plan de Cuentas ESAL'
),
// Conectado a un campo — el botón "Seleccionar" rellena el campo
PucTreeComponent::make(targetField: 'cuenta_puc'),
];
}
use MoonshineColumbia\PucCiiu\Components\CiiuTreeComponent;
protected function components(): array
{
return [
// Árbol CIIU completo (22 secciones)
CiiuTreeComponent::make(),
// Solo la sección C — Industrias manufactureras
CiiuTreeComponent::make(seccion: 'C'),
// Conectado a un campo
CiiuTreeComponent::make(targetField: 'actividad_ciiu'),
];
}
use MoonshineColumbia\PucCiiu\Filters\ClasePucFilter;
use MoonshineColumbia\PucCiiu\Filters\NaturalezaFilter;
use MoonshineColumbia\PucCiiu\Filters\SeccionCiiuFilter;
// Resource de movimientos contables
class MovimientoResource extends ModelResource
{
protected function filters(): array
{
return [
ClasePucFilter::make('Clase de cuenta'),
NaturalezaFilter::make('Naturaleza'),
];
}
}
// Resource de empresas
class EmpresaResource extends ModelResource
{
protected function filters(): array
{
return [
// Opciones fijas (21 secciones A–U, sin consulta a BD)
SeccionCiiuFilter::make('Sección CIIU'),
// Opciones dinámicas desde la tabla actividades_ciiu
SeccionCiiuFilter::make('Sección CIIU')->fromDb(),
];
}
}