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',
							 | 
						|
								        ];
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 |