<div class="content-wrapper">
    <section class="content-header">
        <h1>Cargos</h1>
    </section>

    <section class="content">
        <div class="row">
            <div class="col-md-12">

                <?php if(tiene_permiso('cargos_crear')): ?>
                    <button type="button" class="btn btn-success" id="btnNuevoCargo">
                        <i class="fa fa-plus"></i> Nuevo Cargo
                    </button>
                <?php endif; ?>

                <br><br>

                <div class="panel panel-primary">
                    <div class="panel-heading">
                        <strong>Listado de cargos</strong>
                    </div>
                    <div class="panel-body">
                        <div class="table-responsive">
                            <table id="tablaCargos" class="table table-bordered table-hover table-striped" width="100%">
                                <thead>
                                    <tr>
                                        <th>ID</th>
                                        <th>Código</th>
                                        <th>Nombre</th>
                                        <th>Descripción</th>
                                        <th>Estado</th>
                                        <th style="width:160px;">Acciones</th>
                                    </tr>
                                </thead>
                            </table>
                        </div>
                    </div>
                </div>

            </div>
        </div>
    </section>
</div>

<div class="modal fade" id="modalCargo" tabindex="-1" role="dialog">
    <div class="modal-dialog">
        <div class="modal-content">

            <form id="formCargo">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal">&times;</button>
                    <h4 class="modal-title" id="tituloModalCargo">Nuevo Cargo</h4>
                </div>

                <div class="modal-body">
                    <input type="hidden" id="cargo_id" name="cargo_id">

                    <div class="form-group">
                        <label>Código</label>
                        <input type="text" name="codigo" id="codigo" class="form-control" maxlength="20" required>
                    </div>

                    <div class="form-group">
                        <label>Nombre</label>
                        <input type="text" name="nombre" id="nombre" class="form-control" maxlength="100" required>
                    </div>

                    <div class="form-group">
                        <label>Descripción</label>
                        <textarea name="descripcion" id="descripcion" class="form-control" rows="3" maxlength="255"></textarea>
                    </div>
                </div>

                <div class="modal-footer">
                    <button type="submit" class="btn btn-primary" id="btnGuardarCargo">
                        <i class="fa fa-save"></i> Guardar
                    </button>
                    <button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
                </div>
            </form>

        </div>
    </div>
</div>

<script>
window.addEventListener('load', function () {

    var tabla = $('#tablaCargos').DataTable({
        ajax: {
            url: '<?php echo base_url("index.php/mantenimiento/cargos/listar"); ?>',
            type: 'GET',
            dataSrc: 'data'
        },
        language: {
            lengthMenu: "Mostrar _MENU_ registros",
            zeroRecords: "No se encontraron resultados",
            info: "Mostrando registros del _START_ al _END_ de un total de _TOTAL_",
            infoEmpty: "Mostrando registros del 0 al 0",
            infoFiltered: "(filtrado de un total de _MAX_ registros)",
            search: "Buscar:",
            paginate: {
                first: "Primero",
                last: "Último",
                next: "Siguiente",
                previous: "Anterior"
            }
        },
        pageLength: 10,
        order: [[0, "desc"]]
    });

    $('#btnNuevoCargo').on('click', function() {
        $('#formCargo')[0].reset();
        $('#cargo_id').val('');
        $('#tituloModalCargo').text('Nuevo Cargo');
        $('#modalCargo').modal('show');
    });

    $('#formCargo').on('submit', function(e) {
        e.preventDefault();

        var cargo_id = $('#cargo_id').val();
        var url = cargo_id
            ? '<?php echo base_url("index.php/mantenimiento/cargos/actualizar/"); ?>' + cargo_id
            : '<?php echo base_url("index.php/mantenimiento/cargos/guardar"); ?>';

        $.ajax({
            url: url,
            type: 'POST',
            data: $(this).serialize(),
            dataType: 'json',
            success: function(resp) {
                if (resp.status) {
                    $('#modalCargo').modal('hide');
                    tabla.ajax.reload(null, false);

                    Swal.fire({
                        icon: 'success',
                        title: 'Correcto',
                        text: resp.message,
                        timer: 1800,
                        showConfirmButton: false
                    });
                } else {
                    Swal.fire({
                        icon: 'error',
                        title: 'Error',
                        text: resp.message
                    });
                }
            },
            error: function() {
                Swal.fire({
                    icon: 'error',
                    title: 'Error',
                    text: 'Ocurrió un error en la petición AJAX'
                });
            }
        });
    });

    $(document).on('click', '.btn-editar', function() {
        var id = $(this).data('id');

        $.ajax({
            url: '<?php echo base_url("index.php/mantenimiento/cargos/obtener/"); ?>' + id,
            type: 'GET',
            dataType: 'json',
            success: function(resp) {
                if (resp.status) {
                    $('#cargo_id').val(resp.data.id);
                    $('#codigo').val(resp.data.codigo);
                    $('#nombre').val(resp.data.nombre);
                    $('#descripcion').val(resp.data.descripcion);
                    $('#tituloModalCargo').text('Editar Cargo');
                    $('#modalCargo').modal('show');
                } else {
                    Swal.fire({
                        icon: 'error',
                        title: 'Error',
                        text: resp.message
                    });
                }
            }
        });
    });

    $(document).on('click', '.btn-estado', function() {
        var id = $(this).data('id');
        var accion = $(this).data('accion');
        var nombre = $(this).data('nombre');

        Swal.fire({
            title: '¿Estás seguro?',
            text: 'Vas a ' + accion + ' el cargo: ' + nombre,
            icon: 'warning',
            showCancelButton: true,
            confirmButtonText: 'Sí, continuar',
            cancelButtonText: 'Cancelar'
        }).then(function(result) {
            if (result.isConfirmed) {
                $.ajax({
                    url: '<?php echo base_url("index.php/mantenimiento/cargos/estado/"); ?>' + id,
                    type: 'POST',
                    dataType: 'json',
                    success: function(resp) {
                        if (resp.status) {
                            tabla.ajax.reload(null, false);
                            Swal.fire({
                                icon: 'success',
                                title: 'Correcto',
                                text: resp.message,
                                timer: 1800,
                                showConfirmButton: false
                            });
                        } else {
                            Swal.fire({
                                icon: 'error',
                                title: 'Error',
                                text: resp.message
                            });
                        }
                    },
                    error: function() {
                        Swal.fire({
                            icon: 'error',
                            title: 'Error',
                            text: 'Ocurrió un error al cambiar el estado'
                        });
                    }
                });
            }
        });
    });

});
</script>