Skip to content

Commit

Permalink
Papelera para certificados
Browse files Browse the repository at this point in the history
  • Loading branch information
Shinseiki86 committed Feb 15, 2017
1 parent 01d4e21 commit 5a26d06
Show file tree
Hide file tree
Showing 6 changed files with 243 additions and 104 deletions.
65 changes: 56 additions & 9 deletions app/Http/Controllers/CertificadoController.php
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ public function index()
$arrRegionales = Regional::getRegionales();

//Se carga la vista y se pasan los registros
return view('certificados/index', compact('certificados', 'arrAgencias', 'arrRegionales'));
return view('certificados/index', compact('certificados', 'arrAgencias', 'arrRegionales'))
->with('papelera', $papelera = false);
}

/**
Expand All @@ -74,7 +75,8 @@ public function indexOnlyTrashed()
$arrRegionales = Regional::getRegionales();

//Se carga la vista y se pasan los registros
return view('certificados/index', compact('certificados', 'arrAgencias', 'arrRegionales'));
return view('certificados/index', compact('certificados', 'arrAgencias', 'arrRegionales'))
->with('papelera', $papelera = true);
}

/**
Expand Down Expand Up @@ -197,17 +199,62 @@ public function update($CERT_id)
*/
public function destroy($CERT_id, $showMsg=True)
{
$certificado = Certificado::findOrFail($CERT_id);

// delete
$certificado->CERT_eliminadopor = auth()->user()->username;
$certificado->save();
$certificado->delete();
$certificado = Certificado::withTrashed()->findOrFail($CERT_id);

$modoBorrado = Input::get('_modoBorrado');

if($modoBorrado === 'softDelete'){
$certificado->CERT_eliminadopor = auth()->user()->username;
$certificado->save();
$certificado->delete();
}
elseif($modoBorrado === 'forceDelete'){
$certificado->forceDelete();
}

// redirecciona al index de controlador
if($showMsg){
Session::flash('message', 'Certificado '.$certificado->CERT_codigo.' eliminado exitosamente!');
return redirect()->to('certificados');
return redirect()->back();
}
}

/**
* Elimina todos los registros borrados de la base de datos.
*
* @param int $CERT_id
* @return Response
*/
public function vaciarPapelera($showMsg=True)
{
$certificados = Certificado::onlyTrashed();
$count = $certificados->get()->count();
$certificados->forceDelete();

// redirecciona al index de controlador
if($showMsg){
Session::flash('message', '¡'.$count.' certificado(s) eliminados exitosamente!');
return redirect()->back();
}
}


/**
* Restaura un registro eliminado de la base de datos.
*
* @param int $CERT_id
* @return Response
*/
public function restore($CERT_id, $showMsg=True)
{
$certificado = Certificado::onlyTrashed()->findOrFail($CERT_id);
$certificado->restore();
//$certificado->history()->restore();

// redirecciona al index de controlador
if($showMsg){
Session::flash('message', 'Certificado '.$certificado->CERT_codigo.' restaurado exitosamente!');
return redirect()->back();
}
}

Expand Down
51 changes: 29 additions & 22 deletions app/Http/Controllers/ExportarInfoController.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
use App\Http\Requests;
use App\Product;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Input;
use Maatwebsite\Excel\Facades\Excel;


Expand All @@ -15,37 +16,43 @@ class ExportarInfoController extends Controller {
*
* @return Response
*/
public function export($ext='xlsx')
public function exportCertificados($ext='xlsx')
{


Excel::create('CertificadosWU', function($excel) {
$papelera = Input::get('_papelera');
$nombreArchivo = 'CertificadosWU' . ($papelera ? '_Eliminados' : '');

Excel::create($nombreArchivo, function($excel) {
$excel->sheet('Certs', function($sheet) {

$columnas = [
//'CERT_id',
'CERT_codigo',
'CERT_equipo',
//'AGEN_id',
'AGEN_codigo',
'AGEN_nombre',
//'AGEN_descripcion',
'AGEN_cuentawu',
'AGEN_activa',
//'REGI_id',
'REGI_codigo',
'REGI_nombre',
'CERT_creadopor',
'CERT_fechacreado',
'CERT_modificadopor',
'CERT_fechamodificado',
//'CERT_id',
'CERT_codigo',
'CERT_equipo',
//'AGEN_id',
'AGEN_codigo',
'AGEN_nombre',
//'AGEN_descripcion',
'AGEN_cuentawu',
'AGEN_activa',
//'REGI_id',
'REGI_codigo',
'REGI_nombre',
'CERT_creadopor',
'CERT_fechacreado',
'CERT_modificadopor',
'CERT_fechamodificado',
];

//Se obtienen todos los registros.
$certificados = \Wupos\Certificado::orderBy('CERT_id')
->join('AGENCIAS', 'AGENCIAS.AGEN_id', '=', 'CERTIFICADOS.AGEN_id')
->join('REGIONALES', 'REGIONALES.REGI_id', '=', 'AGENCIAS.REGI_id')
->get($columnas);
$certificados = (Input::get('_papelera')) ? \Wupos\Certificado::onlyTrashed() : new \Wupos\Certificado;

$certificados = $certificados->orderBy('CERT_id')
->join('AGENCIAS', 'AGENCIAS.AGEN_id', '=', 'CERTIFICADOS.AGEN_id')
->join('REGIONALES', 'REGIONALES.REGI_id', '=', 'AGENCIAS.REGI_id')
->get($columnas);

$sheet->fromArray($certificados->toArray());
$sheet->freezeFirstRow();
$sheet->setAutoFilter();
Expand Down
6 changes: 4 additions & 2 deletions app/Http/routes.php
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,15 @@

//Certificados
Route::resource('certificados', 'CertificadoController');
Route::resource('certificados-borrados', 'CertificadoController@indexOnlyTrashed');
Route::get('certificados/{CERT_id}/restore', 'CertificadoController@restore');
Route::get('certificados-borrados', 'CertificadoController@indexOnlyTrashed');
Route::delete('certificados-borrados/vaciarPapelera', 'CertificadoController@vaciarPapelera');

//Operadores
Route::resource('operadores', 'OperadorController');

//Exportar a Excel
Route::get('certificados/export/{ext}','ExportarInfoController@export');
Route::get('certificados/export/{ext}','ExportarInfoController@exportCertificados');

/*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
@section('head')
@parent
<style>
/* Define el tamaño de los input-group-addon para que sean todos iguales */
.input-group-addon {
min-width:100px;
text-align:left;
}
</style>
@parent
@endsection

<div id="filters" class="collapse">
Expand Down
113 changes: 43 additions & 70 deletions resources/views/certificados/index.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -65,37 +65,53 @@
}]);
</script>
@parent
@endsection

@section('content')

<div class="container_tb_certificados" ng-app="appWupos" ng-controller="CertificadosCtrl">
<h1 class="page-header">Certificados</h1>
<h1 class="page-header">Certificados {{$papelera ? 'Eliminados' : ''}}</h1>

<div class="row well well-sm">

<!-- Filtrar datos en vista -->
<div id="frm-find" class="col-xs-3 col-md-9 col-lg-9">
<div id="frm-find" class="col-xs-12 col-sm-6">
<a class='btn btn-primary' role='button' data-toggle="collapse" data-target="#filters" href="#">
<i class="fa fa-filter" aria-hidden="true"></i>
<span class="hidden-xs">Filtrar resultados</span>
<span class="sr-only">Filtrar</span>
Filtrar <span class="hidden-xs">resultados</span>
</a>
</div>

<!-- Botones -->
<div id="btns-top" class="col-xs-9 col-md-3 col-lg-3 text-right">

<div id="btns-top" class="col-xs-12 col-sm-6 text-right">
<!-- botón de crear nuevo reg -->
@if(in_array(auth()->user()->rol->ROLE_rol , ['admin']))
@if(in_array(auth()->user()->rol->ROLE_rol , ['admin']) && !$papelera)
<a class='btn btn-primary' role='button' href="{{ URL::to('certificados/create') }}">
<i class="fa fa-plus" aria-hidden="true"></i> Nuevo Certificado
<span class="sr-only">Nuevo</span>
<i class="fa fa-plus" aria-hidden="true"></i>
Nuevo <span class="hidden-xs">Certificado</span>
</a>
<a class='btn btn-warning' role='button' href="{{ URL::to('certificados-borrados') }}">
<i class="fa fa-trash-o" aria-hidden="true"></i>
Papelera
</a>
@elseif($papelera)
<!-- botón de vaciar papelera -->
{{ Form::button('<i class="fa fa-trash" aria-hidden="true"></i> Vaciar <span class="hidden-xs">Papelera</span>',[
'class'=>'btn btn-danger',
'data-toggle'=>'modal',
'data-id'=>'{% papelera %}',
'data-descripcion'=>'registros en la papelera',
'data-action'=>'certificados-borrados/vaciarPapelera',
'data-target'=>'#pregModalDelete',
])
}}
@endif


<!-- botón de exportar -->
{{ Form::open( [ 'url'=>'certificados/export/xlsx', 'method'=>'GET', 'class' => 'pull-right' ]) }}
{{ Form::hidden('_papelera', ''.$papelera) }}
{{ Form::button('<i class="fa fa-download" aria-hidden="true"></i> Exportar',[
'class'=>'btn btn-success',
'type'=>'submit',
Expand Down Expand Up @@ -208,55 +224,34 @@
<td class="hidden-xs" ng-bind="certificado.CERT_modificadopor"></td>
<td class="hidden-xs" ng-bind="formatDate(certificado.CERT_fechamodificado)"></td>
<td>
<!-- carga botón de Ver -->
<!-- carga botón de Ver
<a class="btn btn-xs btn-success" href="{% 'certificados/' + certificado.CERT_id %}" role="button">
<span class="glyphicon glyphicon-eye-open"></span> <span class="hidden-xs">Ver</span>
</a>
</a>-->

@if(!$papelera)
<!-- Cargar botón editar -->
<a class="btn btn-xs btn-info" href="{% 'certificados/' + certificado.CERT_id + '/edit' %}">
<i class="fa fa-pencil-square-o" aria-hidden="true"></i> <span class="hidden-xs">Editar</span>
</a>
@else
<!-- Cargar botón editar -->
<a class="btn btn-xs btn-warning" href="{% 'certificados/' + certificado.CERT_id + '/restore' %}">
<i class="fa fa-undo" aria-hidden="true"></i> <span class="hidden-xs">Restaurar</span>
</a>
@endif

<!-- carga botón de borrar -->
{{ Form::button('<i class="fa fa-trash" aria-hidden="true"></i> <span class="hidden-xs">Borrar</span>',[
'class'=>'btn btn-xs btn-danger',
'data-toggle'=>'modal',
'data-target'=>'#pregModal{% certificado.CERT_id %}',
]) }}

<!-- Mensaje Modal. Bloquea la pantalla mientras se procesa la solicitud -->
<div class="modal fade" id="pregModal{% certificado.CERT_id %}" role="dialog" tabindex="-1" >
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">¿Borrar?</h4>
</div>
<div class="modal-body">
<p>
<i class="fa fa-exclamation-triangle"></i> ¿Desea borrar la certificado {% certificado.CERT_codigo %} de {% certificado.AGEN_nombre %}?
</p>
</div>
<div class="modal-footer">
<form method="POST" action="{% 'certificados/' + certificado.CERT_id %}" accept-charset="UTF-8" class="pull-right ng-pristine ng-valid">

<button type="button" class="btn btn-xs btn-success" data-dismiss="modal">NO</button>

{{ Form::token() }}
{{ Form::hidden('_method', 'DELETE') }}
{{ Form::button('<i class="fa fa-trash" aria-hidden="true"></i> SI',[
'class'=>'btn btn-xs btn-danger',
'type'=>'submit',
'data-toggle'=>'modal',
'data-backdrop'=>'static',
'data-target'=>'#msgModal',
]) }}
</form>
</div>
</div>
</div>
</div>
'data-id'=>'{% certificado.CERT_id %}',
'data-descripcion'=>'{% certificado.CERT_codigo %}',
'data-action'=>'{% "certificados/" + certificado.CERT_id %}',
'data-target'=>'#pregModalDelete',
])
}}

</td>
</tr>
</tbody>
Expand All @@ -272,31 +267,9 @@
</td>
</tfoot>
</table>


<!-- Mensaje Modal. Bloquea la pantalla mientras se procesa la solicitud -->
<div class="modal fade" id="msgModal" role="dialog">
<div class="modal-dialog">

<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Borrando...</h4>
</div>
<div class="modal-body">
<p>
<i class="fa fa-cog fa-spin fa-3x fa-fw"></i> Borrando certificado...
</p>
</div>
<div class="modal-footer">
</div>
</div>

</div>
</div>


</div><!-- End ng-controller -->

@include('partials/modalDelete') <!-- incluye el modal del Delete -->
@endsection


Loading

0 comments on commit 5a26d06

Please sign in to comment.