You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1003 B
44 lines
1003 B
<?php
|
|
|
|
namespace App\Exports;
|
|
|
|
use App\Models\Puesto;
|
|
use Maatwebsite\Excel\Concerns\FromCollection;
|
|
use Maatwebsite\Excel\Concerns\WithHeadings;
|
|
|
|
class PuestosExport implements FromCollection, WithHeadings
|
|
{
|
|
protected $puestos;
|
|
|
|
// Permite pasar una colección personalizada si lo deseas
|
|
public function __construct($puestos = null)
|
|
{
|
|
$this->puestos = $puestos;
|
|
}
|
|
|
|
public function collection()
|
|
{
|
|
// Obtén los puestos
|
|
$puestos = $this->puestos ?: Puesto::where('eliminado', 0)->get(['nombre']);
|
|
|
|
// Construye la colección con número consecutivo
|
|
$data = [];
|
|
$contador = 1;
|
|
foreach ($puestos as $puesto) {
|
|
$data[] = [
|
|
'ID' => $contador++,
|
|
'Nombre del Puesto' => $puesto->nombre,
|
|
];
|
|
}
|
|
|
|
return collect($data);
|
|
}
|
|
|
|
public function headings(): array
|
|
{
|
|
return [
|
|
'ID',
|
|
'Nombre del Puesto',
|
|
];
|
|
}
|
|
}
|
|
|