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.
		
		
		
		
			
				
					45 lines
				
				1003 B
			
		
		
			
		
	
	
					45 lines
				
				1003 B
			| 
								 
											5 months ago
										 
									 | 
							
								<?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',
							 | 
						||
| 
								 | 
							
								        ];
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |