<?php $__env->startSection('styles'); ?>
<?php $__env->stopSection(); ?>

<?php $__env->startSection('content'); ?>
    <h1 class="page-title">
        <a href="<?php echo e(url('admin/tramite/usuario')); ?>"><i class="icon-action-undo"></i></a>
        Consulta de Trámites TUPA
    </h1>
    <div class="portlet light bordered">
        <div class="portlet-title">
            <div class="caption">
                <span class="caption-subject bold uppercase"> Lista de Trámites TUPA </span>
                <span class="caption-helper"></span>
            </div>
        </div>
        <div class="portlet-body">
            <table id="dataTable" class="table table-hover nowrap dataTable dtr-inline">
                <thead>
                <tr>
                    <th>Nombre</th>
                    <th>Categoría</th>
                    <th>Calificación</th>
                    <th>Duración del Trámite</th>
                    <th>Opciones</th>
                </tr>
                </thead>
                <tbody>
                </tbody>
            </table>
        </div>
    </div>
<?php $__env->stopSection(); ?>

<?php $__env->startSection('scripts'); ?>
    <script src="<?php echo e(asset('plugins/typeahead/typeahead.bundle.min.js')); ?>" type="text/javascript"></script>
    <script>
        var tramiteCalificacion = JSON.parse('<?php echo json_encode(config('constants.TRAMITE_CALIFICACION')); ?>');

        var typeahead = false;
        var typeaheadData = null;
        var dataTableLanguage = {
            "sProcessing":     "Procesando...",
            "sLengthMenu":     "Mostrar _MENU_ registros",
            "sZeroRecords":    "No se encontraron resultados",
            "sEmptyTable":     "Ningún dato disponible en esta tabla",
            "sInfo":           "Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros",
            "sInfoEmpty":      "Mostrando registros del 0 al 0 de un total de 0 registros",
            "sInfoFiltered":   "(filtrado de un total de _MAX_ registros)",
            "sInfoPostFix":    "",
            "sSearch":         "Buscar:",
            "sUrl":            "",
            "sInfoThousands":  ",",
            "sLoadingRecords": "Cargando...",
            "oPaginate": {
                "sFirst":    "Primero",
                "sLast":     "Último",
                "sNext":     "Siguiente",
                "sPrevious": "Anterior"
            },
            "oAria": {
                "sSortAscending":  ": Activar para ordenar la columna de manera ascendente",
                "sSortDescending": ": Activar para ordenar la columna de manera descendente"
            }
        };
        var dataTable = [
            function (args) {
                $("#dataTable").DataTable({
                    language: dataTableLanguage,
                    processing: true,
                    serverSide: true,
                    destroy: true,
                    responsive: true,
                    ajax: {
                        url: "<?php echo e(route('admin.tramite.index.post')); ?>",
                        method: "POST",
                        data: null,
                        error: function (jqXHR, textStatus, errorThrown) {
                            /*console.log(jqXHR);
                             console.log(textStatus);
                             console.log(errorThrown);*/
                        }
                    },
                    columns: [
                        {
                            data: "nombre",
                            name: "nombre"
                        },
                        {
                            data: "tramite_categoria_nombre",
                            name: "tramite_categoria_nombre",
                            render: function(data, type, row) {
                                var render = "";

                                if (data != "") {
                                    render = "<td>" + data + "</td>";
                                } else {
                                    render = "<td>---</td>";
                                }

                                return render;
                            }
                        },
                        {
                            data: "id_tramite_calificacion",
                            name: "id_tramite_calificacion",
                            render: function(data, type, row) {
                                var render = "";

                                if (data != "") {
                                    render = "<td>" + tramiteCalificacion[data] + "</td>";
                                } else {
                                    render = "<td>---</td>";
                                }

                                return render;
                            }
                        },
                        {
                            data: "plazo_resolucion",
                            name: "plazo_resolucion",
                            render: function(data, type, row) {
                                var render = "";

                                if (data != "") {
                                    render = "<td>" + data + (data != "1" ? " días" : " día") + "</td>";
                                } else {
                                    render = "<td>---</td>";
                                }

                                return render;
                            }
                        },
                        {
                            data: "id",
                            name: "id",
                            render: function(data, type, row) {
                                var render = "";
                                render += "<td class=\"td_center\">";
                                render += " <a onclick=\"Detalle(" + data + ")\" title=\"Detalle\" class=\"btn btn-outline btn-circle btn-sm green\">";
                                render += "     <i class=\"fa fa-eye\"></i> Detalle";
                                render += " </a>";
                                render += " <a onclick=\"Iniciar(" + data + ", " + row.id_area_inicio + ", '" + row.nombre + "')\" title=\"Iniciar\" class=\"btn btn-outline btn-circle dark btn-sm purple\">";
                                render += "     <i class=\"fa fa-file-text\"></i> Iniciar";
                                render += " </a>";
                                render += "</td>";

                                return render;
                            }
                        }
                    ],
                    order: [
                        [0, "asc"]
                    ]
                });
            }
        ];
        var bloodhound = new Bloodhound({
            datumTokenizer: Bloodhound.tokenizers.obj.whitespace("dni", "id", "nombres"),
            queryTokenizer: Bloodhound.tokenizers.whitespace,
            remote: {
                url: "<?php echo e(url('usuario')); ?>" +"/%QUERY",
                wildcard: "%QUERY",
                transform: function(response) {
                    return $.map(response.data, function(data) {
                        return {
                            dni: data.dni,
                            id: data.id,
                            nombres: data.apellido_paterno + " " + data.apellido_materno + ", " + data.nombres
                        };
                    });
                }
            }
        });

        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });

        function CargarDataTables(index, args) {
            index = index || -1;
            args = args || null;

            if (index < 0) {
                var dataTableLength = dataTable.length;
                for (var i = 0; i < dataTableLength; i++) {
                    dataTable[i](args);
                }
            } else {
                dataTable[index](args);
            }
        }

        function Detalle(id) {
            window.location.href = "<?php echo e(url('admin/tramite/usuarioadicionar/detalle/')); ?>" + "/" + id;
        }

        function Iniciar(id_tramite_procedimiento, id_dependencia, nombre) {
            swal({
                cancelButtonColor: "#dd3333",
                cancelButtonText: "Cancelar",
                closeOnConfirm: false,
                confirmButtonColor: "#3085d6",
                confirmButtonText: "Enviar",
                showCancelButton: true,
                showConfirmButton: true,
                text: nombre,
                title: "Ingrese el DNI del solicitante",
                type: "input"
            }, function (inputValue) {
                if (inputValue === false || inputValue === "" || inputValue.trim().length <= 0) {
                    swal.showInputError("El campo de texto no puede estar vacío");
                    return false;
                }

                if (!/^\d+$/.test(inputValue)) {
                    swal.showInputError("El texto solo debe contener caracteres numéricos");
                    return false;
                }

                if (typeaheadData == null || typeaheadData.dni != inputValue) {
                    swal.showInputError("Usuario no encontrado");
                    return false;
                }

                var data = {
                    id_dependencia: id_dependencia,
                    id_tramite_procedimiento: id_tramite_procedimiento,
                    id_usuario: typeaheadData.id
                };

                swal({
                    cancelButtonColor: "#dd3333",
                    cancelButtonText: "No",
                    confirmButtonColor: "#3085d6",
                    confirmButtonText: "Sí",
                    showCancelButton: true,
                    showConfirmButton: true,
                    text: nombre,
                    title: "¿Desea solicitar el trámite?",
                    type: "warning"
                }, function () {
                    $.ajax({
                        data: data,
                        type: "POST",
                        url: "<?php echo e(route('admin.tramite.usuario.agregar.post')); ?>",
                        error: function(error) {
                            //console.log(error);

                            swal({
                                showCancelButton: false,
                                showConfirmButton: true,
                                text: "No se pudo agregar el trámite",
                                title: "Error",
                                type: "error"
                            }, function (isConfirm) {
                                //window.location.href = "{ url('/tramite/') }}";
                            });
                        },
                        success: function(data) {
                            //console.log(data);

                            swal({
                                showCancelButton: false,
                                showConfirmButton: true,
                                text: "El trámite se agregó exitosamente",
                                title: "Éxito",
                                type: "success"
                            }, function (isConfirm) {
                                //window.location.href = "{ url('/tramite/') }}";
                            });
                        }
                    });
                });
            });

            if (!typeahead) {
                $(".sweet-alert input").typeahead({
                    hint: false,
                    highlight: true,
                    minLength: 2,
                    limit: 2
                },
                {
                    name: "nombres",
                    display: "dni",
                    source: bloodhound,
                    templates: {
                        /*empty: function (data) {
                            return "<div>No se encontraron resultados</div>";
                        },*/
                        suggestion: function (data) {
                            return "<div>" + data.nombres + "</div>";
                        }
                    }
                });

                $(".sweet-alert input").on("typeahead:selected", function (evt, data) {
                    typeaheadData = data;
                });

                typeahead = true;
            }
        }

        window.onload = function() {
            CargarDataTables();
        };
    </script>
<?php $__env->stopSection(); ?>

<?php echo $__env->make('template.layout', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>