From b1eb65e2e4361944f374c82264c4a94243e7e1fb Mon Sep 17 00:00:00 2001
From: Billy Larru <blarru.ti@sacooliveros.edu.pe>
Date: Sat, 8 Sep 2018 11:57:25 -0500
Subject: [PATCH] [RENAME crear rol policias]

---
 src/main/webapp/js/pages/crearRolPolicia.js   | 479 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 src/main/webapp/js/pages/crear_rol_policia.js | 479 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/webapp/vistas/crearRolPolicia.jsp    |   2 +-
 3 files changed, 480 insertions(+), 480 deletions(-)
 delete mode 100644 src/main/webapp/js/pages/crearRolPolicia.js
 create mode 100644 src/main/webapp/js/pages/crear_rol_policia.js

diff --git a/src/main/webapp/js/pages/crearRolPolicia.js b/src/main/webapp/js/pages/crearRolPolicia.js
deleted file mode 100644
index b93f461..0000000
--- a/src/main/webapp/js/pages/crearRolPolicia.js
+++ /dev/null
@@ -1,479 +0,0 @@
-function listarRolesPolicias(objParams = {}) {
-
-    ajaxWebService.get(URI_ROL_POLICIA, objParams).then((response) => {
-        debugger
-        let columns = [
-            {
-                title: `N°`,
-//                data: `numeroFila`
-                data: `id`
-            },
-            {
-                title: `APELLIDOS Y NOMBRES`,
-                data: `policia_nombres`
-            },
-            {
-                title: `SEDE`,
-                data: `sede_descripcion`
-            },
-            {
-                title: `FECHA INICIO`,
-                data: `fecha_inicio`
-            },
-            {
-                title: `FECHA FIN`,
-                data: `fecha_fin`
-            },
-            {
-                title: `TIPO`,
-                data: `tiporol_descripcion`
-            },
-            {
-                title: `FRECUENCIA`,
-                data: `frecuencia_descripcion`
-            },
-            {
-                title: `ESTADO`,
-                data: `estado`,
-                render: (data) => {
-                    if (Object.is(data, 1)) {
-                        return `<span class="label label-success">ACTIVO</span>`;
-                    } else {
-                        return `<span class="label label-danger">INACTIVO</span>`;
-                    }
-                }
-            },
-            {
-                title: `ACCIONES`,
-                data: `estado`,
-                className: 'text-center',
-                render: (data) => {
-                    let editar = "";
-                    let eliminar = "";
-                    let acciones = "";
-                    console.log(data);
-                    if (data === 1) {
-                        editar = `<span data-placement="left" title="Ver detalle" data-toggle="tooltip" style="cursor: pointer"> <i class='ver-detalle icon-calendar2 text-primary-700'></i>&nbsp;&nbsp; </span>`;
-                        eliminar = `<span data-placement="left" title="Desactivar Rol" style="cursor: pointer"> <i class="eliminar fa  fa-power-off text-danger-700"></i>&nbsp;&nbsp; </span>`;
-                    } else {
-                        eliminar = `<span data-placement="left" title="Eliminar" style="cursor: pointer"> <i class="eliminar fa  fa-power-off text-success-700"></i>&nbsp;&nbsp; </span>`;
-                    }
-
-                    acciones = editar + eliminar;
-                    return acciones;
-                }
-            }
-        ];
-        let columnDefs = [
-            {orderable: false, width: '1%', targets: 0, className: "text-center"},
-            {orderable: false, width: '8%', targets: 1},
-            {orderable: false, width: '10%', targets: 2, className: "text-center"},
-            {orderable: false, width: '7%', targets: 3, className: "text-center"},
-            {orderable: false, width: '7%', targets: 4, className: "text-center"},
-            {orderable: false, width: '10%', targets: 5, className: "text-center"},
-            {orderable: false, width: '8%', targets: 6, className: "text-center"},
-            {orderable: false, width: '8%', targets: 7, className: "text-center"}
-        ];
-        let wrapsNameDatatable = `divRoles`;
-        let classNameForDatatable = `display table table-bordered`;
-        makeDatatable(wrapsNameDatatable,
-                {
-                    data: response.data,
-                    columns,
-                    columnDefs,
-                },
-                classNameForDatatable).then((nodes) => {
-            nodes.container.off();
-            nodes.container.on("click", ".ver-detalle", function () {
-                let data = nodes.datatable.DataTable().row($(this).parents("tr")).data();
-                console.log(data);
-                ajaxModal.get("policias/mantenimientoRol/detalleRol.jspf").then((response) => {
-                    debugger
-                    swal({
-                        title: '<strong>Detalle de rol</strong>',
-                        html: response.data,
-                        showCloseButton: true,
-                        showCancelButton: true,
-                        focusConfirm: false,
-                        confirmButtonText: '<i class="fa fa-thumbs-up"></i> Great!',
-                        confirmButtonAriaLabel: 'Thumbs up, great!',
-                        cancelButtonText: 'Cancelar',
-                        cancelButtonAriaLabel: 'Thumbs down',
-                        width: '30%',
-                        onOpen: () => {
-                            $("#spanNombres").html(data.policia_nombres);
-                            $("#spanSede").html(data.sede_descripcion);
-                            $("#spanHorario").html(`${data.tiporol_descripcion} ${data.frecuencia_descripcion}`);
-                            $("#spanRangoFechas").html(`${data.fecha_inicio} - ${data.fecha_fin}`);
-                            let htmlList = ``;
-                            initDateRangePicker("#dpDetalleRol");
-                            let fechas = data.detalles_rol.map(dr => dr.fecha_entrada.split(" ")[0]);
-                            $("#dpDetalleRol").datepicker("setDates", fechas);
-//                            data.detalles_rol.forEach(x => htmlList += `<li class="list-group-item" id="${x.id}">${x.fecha_entrada}</li>`);
-//                            $("#listaDias").html(htmlList);
-                        }
-                    });
-                });
-            });
-            nodes.container.on("click", ".eliminar", function () {
-                let data = nodes.datatable.DataTable().row($(this).parents("tr")).data();
-                mostrarModalEliminacion(data);
-            });
-        });
-    });
-}
-
-
-const mostrarModalEliminacion = (data) => {
-    let {id, estado} = data;
-    let titulo = "";
-    let textoConfirmacion = ""
-    let tituloOperacion = "";
-    if (estado) {
-        titulo = 'Está seguro de eliminar el rol?';
-        textoConfirmacion = 'Sí, eliminar!';
-        tituloOperacion = '¡Eliminado exitosamente!';
-        estado = 0;
-    } else {
-        titulo = 'Está seguro de activar?';
-        textoConfirmacion = 'Sí, activar!';
-        tituloOperacion = '¡Activado exitosamente!';
-        estado = 1;
-    }
-
-
-
-    swal({
-        title: titulo,
-        text: "",
-        type: 'warning',
-        showCancelButton: true,
-        confirmButtonColor: '#3085d6',
-        cancelButtonColor: '#d33',
-        confirmButtonText: textoConfirmacion
-    }).then((result) => {
-        if (result.value) {
-            ajaxWebService.patch(`${URI_ROL_POLICIA}/${id}`, {estado}).then((response) => {
-                if (response.status) {
-                    swal({
-                        type: 'success',
-                        title: tituloOperacion,
-                        showConfirmButton: false,
-                        timer: 1500
-                    });
-                    listarRolesPolicias();
-                }
-            });
-        }
-    });
-};
-const listarTipoRoles = () => {
-    ajaxWebService.get(URI_TIPOROL_POLICIA).then((response) => {
-        let tipoRoles = response.data;
-        let html = "<option>[SELECCIONE]</option>";
-        tipoRoles.forEach(tp => html += `<option data-hora-entrada="${tp.hora_entrada}"  data-hora-salida="${tp.hora_salida}" value="${tp.codigo}">${tp.descripcion}</option>`);
-        $("#cboTipoRol").html(html);
-    });
-}
-
-
-function listarFrecuenciaRol() {
-    ajaxWebService.get(URI_FRECUENCIA_ROL_POLICIA).then((result) => {
-        let frecuenciasRol = result.data;
-        let html = "<option>[SELECCIONE]</option>";
-        frecuenciasRol.forEach(f => html += `<option value="${f.codigo}">${f.descripcion}</option>`);
-        $("#cboFrecuenciaRol").html(html);
-    });
-}
-
-function listarSedes(selectorName) {
-    ajaxWebService.get(URI_SEDES).then((result) => {
-        let sedes = result.data;
-        sedes = _.orderBy(sedes, s => s.descripcion);
-        let html = `<option value="">[SELECCIONE]</option>`;
-        sedes.forEach(sede => html += `<option value="${sede.codigo}">${sede.descripcion}</option>`);
-        $(`${selectorName}`).html(html);
-    });
-}
-
-function listarPolicias(selectorName) {
-    ajaxWebService.get(URI_POLICIAS).then((result) => {
-        let policias = result.data;
-        policias = _.orderBy(policias, p => p.nombres);
-        let html = `<option value="">[SELECCIONE]</option>`;
-        policias.forEach(p => html += `<option documento_identidad="${p.dni}" value="${p.id}">${p.nombres}</option>`);
-        $(`${selectorName}`).html(html);
-        $('.select-search').select2();
-    });
-}
-
-
-function modificarServicio() {
-//    debugger
-    $("#detalle_rol").addClass("hidden");
-    $("#editar_rol").removeClass("hidden");
-    $("#modal-title").html('Cambiar servicio');
-    $("#modal-header").removeClass('bg-primary');
-    $("#modal-header").addClass('bg-jade');
-    $("#botones-editar").removeClass('hidden');
-    $("#btnCerrar").addClass("hidden");
-    animar();
-//    e.preventDefault();
-}
-
-function registrarRolPolicia() {
-    let policia_nombres = $("#cboPolicias option:selected").text();
-    let policia_id = $("#cboPolicias").val();
-    let tiporol_id = $("#cboTipoRol").val();
-    let tiporol_descripcion = $("#cboTipoRol option:selected").text();
-    let rango_fechas = $("#dpRangoFechas").val();
-    let split_fechas = rango_fechas.split("-").map(f => f.trim());
-    let fecha_inicio = split_fechas[0];
-    let fecha_fin = split_fechas[1];
-    let frecuencia_id = $("#cboFrecuenciaRol").val();
-    let frecuencia_descripcion = $("#cboFrecuenciaRol option:selected").text();
-    let sede_id = $("#cboSedesModal").val();
-    let sede_descripcion = $("#cboSedesModal option:selected").text();
-    let estado = 1;
-    let policia_dni = $("#cboPolicias option:selected").attr("documento_identidad");
-    let hora_entrada = $("#cboTipoRol option:selected").data('hora-entrada');
-    let hora_salida = $("#cboTipoRol option:selected").data('hora-salida');
-    debugger
-    let fechas = generarFechas(fecha_inicio, fecha_fin);
-    let fechas_rol;
-
-    switch (frecuencia_descripcion) {
-        case "PAR":
-            fechas_rol = fechas
-                    .map(f => {
-                        return {
-                            number: f.split("/")[0],
-                            fecha: f
-                        }
-                    })
-                    .filter(f => f.number % 2 == 0)
-                    .map(f => f.fecha);
-            break;
-        case "IMPAR":
-            fechas_rol = fechas
-                    .map(f => {
-                        return {
-                            number: f.split("/")[0],
-                            fecha: f
-                        }
-                    })
-                    .filter(f => f.number % 2 == 1)
-                    .map(f => f.fecha);
-            break;
-        case "DIARIO":
-            fechas_rol = fechas;
-            break;
-    }
-
-    let detalles_rol = [];
-    let numero = 1;
-    fechas_rol
-            .map((f) => {
-                let obj = {
-                    fecha_entrada: `${f} ${hora_entrada}`,
-                    fecha_salida: `${f} ${hora_salida}`
-                }
-
-                return obj;
-            })
-            .forEach((f) => {
-                debugger
-                let detalle_rol = {
-                    id: numero++,
-                    fecha_entrada: f.fecha_entrada,
-                    fecha_salida: f.fecha_salida,
-                    estado: 1
-                };
-                detalles_rol.push(detalle_rol);
-            });
-    let params = {
-        numeroFila: policia_id,
-        policia_id,
-        policia_dni,
-        policia_nombres,
-        sede_id,
-        sede_descripcion,
-        fecha_inicio,
-        fecha_fin,
-        tiporol_id,
-        tiporol_descripcion,
-        frecuencia_id,
-        frecuencia_descripcion,
-        detalles_rol,
-        estado
-    };
-    ajaxWebService.post(URI_ROL_POLICIA, params)
-            .then((response) => {
-                debugger;
-                if (response.status) {
-                    swal({
-                        type: 'success',
-                        title: '¡Rol registrado exitosamente!',
-                        showConfirmButton: false,
-                        timer: 1500
-                    })
-                    listarRolesPolicias();
-                    console.log(response.data);
-                } else {
-
-                }
-            })
-            .catch(error => {
-                console.log(error);
-            });
-}
-
-
-
-function cancelar() {
-    $("#detalle_rol").removeClass("hidden");
-    $("#editar_rol").addClass("hidden");
-    $("#modal-title").html('Ver detalle rol');
-    $("#modal-header").addClass('bg-primary');
-    $("#modal-header").removeClass('bg-jade');
-    $("#botones-editar").addClass('hidden');
-    $("#btnCerrar").removeClass("hidden");
-    animar();
-}
-
-function animar() {
-    let animation = `fadeIn`;
-    $("#modal_body_tombo2").addClass(`animated ${animation}`).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend", function () {
-        $(this).removeClass(`animated ${animation}`);
-    });
-}
-
-
-function guardarCambios() {
-    cancelar();
-    $("#servicio13").css("background-color", "lightpink");
-}
-
-
-function mostrarModalNuevoRol() {
-    ajaxModal.get("policias/mantenimientoRol/crearRol.jspf").then((response) => {
-        swal({
-            title: '<strong>Nuevo Rol</strong>',
-//            type: 'info',
-            html: response.data,
-            showCloseButton: true,
-            showCancelButton: true,
-            focusConfirm: false,
-            confirmButtonText: '<i class="fa fa-thumbs-up"></i> Registrar rol',
-            confirmButtonAriaLabel: 'Registrar rol',
-            cancelButtonText: 'Cancelar',
-            cancelButtonAriaLabel: 'Thumbs down',
-            width: '30%',
-            customClass: 'swal2-overflow',
-            onOpen: () => {
-                listarTipoRoles();
-                listarFrecuenciaRol();
-                listarSedes("#cboSedesModal");
-                listarPolicias("#cboPolicias");
-                $('.selectpicker').selectpicker({
-                    style: 'btn-info',
-                    size: 4
-                });
-                $('.select-search').select2();
-                $(".btn.dropdown-toggle.bs-placeholder").removeClass("btn-info");
-                $(".btn.dropdown-toggle.bs-placeholder").css({
-                    border: "1px solid #ddd",
-                    backgroundColor: "#fff"
-                });
-                $("#dpRangoFechas").daterangepicker({
-                    "autoApply": true,
-                    "locale": {
-                        "format": "DD/MM/YYYY",
-                        "separator": " - ",
-                        "applyLabel": "Apply",
-                        "cancelLabel": "Cancel",
-                        "fromLabel": "From",
-                        "toLabel": "To",
-                        "customRangeLabel": "Custom",
-                        "weekLabel": "W",
-                        "daysOfWeek": [
-                            "Do",
-                            "Lu",
-                            "Ma",
-                            "Mi",
-                            "Ju",
-                            "Vi",
-                            "Sa"
-                        ],
-                        "monthNames": [
-                            "Enero",
-                            "Febrero",
-                            "Marzo",
-                            "Abril",
-                            "Mayo",
-                            "Junio",
-                            "Julio",
-                            "Agosto",
-                            "Setiembre",
-                            "Octubre",
-                            "Noviembre",
-                            "Diciembre"
-                        ],
-                        "firstDay": 1
-                    },
-                    "startDate": "17/08/2018",
-                    "endDate": "23/08/2018"
-                }, function (start, end, label) {
-//                    console.log('New date range selected: ' + start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD') + ' (predefined range: ' + label + ')');
-                });
-//                $("#dpRangoFechas").datepicker('setDate', 'now');
-                defaultConfigDatePicker();
-            }
-        }).then((result) => {
-            if (result.value) {
-                registrarRolPolicia();
-            }
-        });
-    });
-}
-
-
-function buscarRoles() {
-    let policia_id = $("#cboPoliciasFiltro").val();
-    let sede_id = $("#cboSedesFiltro").val();
-    let fecha_inicio = $("#dpFechaInicio").val();
-    let fecha_fin = $("#dpFechaFin").val();
-    let rangoFechas = generarFechas(fecha_inicio, fecha_fin);
-    let params = cleanQueryParams({
-        policia_id,
-        sede_id,
-        fecha_inicio: rangoFechas
-    });
-    console.log(params);
-    listarRolesPolicias({params});
-}
-
-const initDateRangePicker = (dp) => {
-    $(dp).datepicker({
-        format: "dd/mm/yyyy",
-        language: "es",
-        multidate: true,
-        multidateSeparator: ","
-    });
-}
-
-$().ready(function () {
-    $.fn.datepicker.noConflict = function () {
-        $.fn.datepicker = old;
-        return this;
-    };
-    initDatePicker("#dpFechaInicio", "#dpFechaFin");
-    listarSedes("#cboSedesFiltro");
-    listarPolicias("#cboPoliciasFiltro");
-    $('#servicio13').click(modificarServicio);
-    $("#btnCancelar").click(cancelar);
-    $("#btnGuardarCambios").click(guardarCambios);
-    $("#btnNuevoRol").click(mostrarModalNuevoRol);
-    $("#btnAplicarFiltro").click(buscarRoles);
-    $("#btnMostrarTodo").click(listarRolesPolicias);
-});
\ No newline at end of file
diff --git a/src/main/webapp/js/pages/crear_rol_policia.js b/src/main/webapp/js/pages/crear_rol_policia.js
new file mode 100644
index 0000000..b93f461
--- /dev/null
+++ b/src/main/webapp/js/pages/crear_rol_policia.js
@@ -0,0 +1,479 @@
+function listarRolesPolicias(objParams = {}) {
+
+    ajaxWebService.get(URI_ROL_POLICIA, objParams).then((response) => {
+        debugger
+        let columns = [
+            {
+                title: `N°`,
+//                data: `numeroFila`
+                data: `id`
+            },
+            {
+                title: `APELLIDOS Y NOMBRES`,
+                data: `policia_nombres`
+            },
+            {
+                title: `SEDE`,
+                data: `sede_descripcion`
+            },
+            {
+                title: `FECHA INICIO`,
+                data: `fecha_inicio`
+            },
+            {
+                title: `FECHA FIN`,
+                data: `fecha_fin`
+            },
+            {
+                title: `TIPO`,
+                data: `tiporol_descripcion`
+            },
+            {
+                title: `FRECUENCIA`,
+                data: `frecuencia_descripcion`
+            },
+            {
+                title: `ESTADO`,
+                data: `estado`,
+                render: (data) => {
+                    if (Object.is(data, 1)) {
+                        return `<span class="label label-success">ACTIVO</span>`;
+                    } else {
+                        return `<span class="label label-danger">INACTIVO</span>`;
+                    }
+                }
+            },
+            {
+                title: `ACCIONES`,
+                data: `estado`,
+                className: 'text-center',
+                render: (data) => {
+                    let editar = "";
+                    let eliminar = "";
+                    let acciones = "";
+                    console.log(data);
+                    if (data === 1) {
+                        editar = `<span data-placement="left" title="Ver detalle" data-toggle="tooltip" style="cursor: pointer"> <i class='ver-detalle icon-calendar2 text-primary-700'></i>&nbsp;&nbsp; </span>`;
+                        eliminar = `<span data-placement="left" title="Desactivar Rol" style="cursor: pointer"> <i class="eliminar fa  fa-power-off text-danger-700"></i>&nbsp;&nbsp; </span>`;
+                    } else {
+                        eliminar = `<span data-placement="left" title="Eliminar" style="cursor: pointer"> <i class="eliminar fa  fa-power-off text-success-700"></i>&nbsp;&nbsp; </span>`;
+                    }
+
+                    acciones = editar + eliminar;
+                    return acciones;
+                }
+            }
+        ];
+        let columnDefs = [
+            {orderable: false, width: '1%', targets: 0, className: "text-center"},
+            {orderable: false, width: '8%', targets: 1},
+            {orderable: false, width: '10%', targets: 2, className: "text-center"},
+            {orderable: false, width: '7%', targets: 3, className: "text-center"},
+            {orderable: false, width: '7%', targets: 4, className: "text-center"},
+            {orderable: false, width: '10%', targets: 5, className: "text-center"},
+            {orderable: false, width: '8%', targets: 6, className: "text-center"},
+            {orderable: false, width: '8%', targets: 7, className: "text-center"}
+        ];
+        let wrapsNameDatatable = `divRoles`;
+        let classNameForDatatable = `display table table-bordered`;
+        makeDatatable(wrapsNameDatatable,
+                {
+                    data: response.data,
+                    columns,
+                    columnDefs,
+                },
+                classNameForDatatable).then((nodes) => {
+            nodes.container.off();
+            nodes.container.on("click", ".ver-detalle", function () {
+                let data = nodes.datatable.DataTable().row($(this).parents("tr")).data();
+                console.log(data);
+                ajaxModal.get("policias/mantenimientoRol/detalleRol.jspf").then((response) => {
+                    debugger
+                    swal({
+                        title: '<strong>Detalle de rol</strong>',
+                        html: response.data,
+                        showCloseButton: true,
+                        showCancelButton: true,
+                        focusConfirm: false,
+                        confirmButtonText: '<i class="fa fa-thumbs-up"></i> Great!',
+                        confirmButtonAriaLabel: 'Thumbs up, great!',
+                        cancelButtonText: 'Cancelar',
+                        cancelButtonAriaLabel: 'Thumbs down',
+                        width: '30%',
+                        onOpen: () => {
+                            $("#spanNombres").html(data.policia_nombres);
+                            $("#spanSede").html(data.sede_descripcion);
+                            $("#spanHorario").html(`${data.tiporol_descripcion} ${data.frecuencia_descripcion}`);
+                            $("#spanRangoFechas").html(`${data.fecha_inicio} - ${data.fecha_fin}`);
+                            let htmlList = ``;
+                            initDateRangePicker("#dpDetalleRol");
+                            let fechas = data.detalles_rol.map(dr => dr.fecha_entrada.split(" ")[0]);
+                            $("#dpDetalleRol").datepicker("setDates", fechas);
+//                            data.detalles_rol.forEach(x => htmlList += `<li class="list-group-item" id="${x.id}">${x.fecha_entrada}</li>`);
+//                            $("#listaDias").html(htmlList);
+                        }
+                    });
+                });
+            });
+            nodes.container.on("click", ".eliminar", function () {
+                let data = nodes.datatable.DataTable().row($(this).parents("tr")).data();
+                mostrarModalEliminacion(data);
+            });
+        });
+    });
+}
+
+
+const mostrarModalEliminacion = (data) => {
+    let {id, estado} = data;
+    let titulo = "";
+    let textoConfirmacion = ""
+    let tituloOperacion = "";
+    if (estado) {
+        titulo = 'Está seguro de eliminar el rol?';
+        textoConfirmacion = 'Sí, eliminar!';
+        tituloOperacion = '¡Eliminado exitosamente!';
+        estado = 0;
+    } else {
+        titulo = 'Está seguro de activar?';
+        textoConfirmacion = 'Sí, activar!';
+        tituloOperacion = '¡Activado exitosamente!';
+        estado = 1;
+    }
+
+
+
+    swal({
+        title: titulo,
+        text: "",
+        type: 'warning',
+        showCancelButton: true,
+        confirmButtonColor: '#3085d6',
+        cancelButtonColor: '#d33',
+        confirmButtonText: textoConfirmacion
+    }).then((result) => {
+        if (result.value) {
+            ajaxWebService.patch(`${URI_ROL_POLICIA}/${id}`, {estado}).then((response) => {
+                if (response.status) {
+                    swal({
+                        type: 'success',
+                        title: tituloOperacion,
+                        showConfirmButton: false,
+                        timer: 1500
+                    });
+                    listarRolesPolicias();
+                }
+            });
+        }
+    });
+};
+const listarTipoRoles = () => {
+    ajaxWebService.get(URI_TIPOROL_POLICIA).then((response) => {
+        let tipoRoles = response.data;
+        let html = "<option>[SELECCIONE]</option>";
+        tipoRoles.forEach(tp => html += `<option data-hora-entrada="${tp.hora_entrada}"  data-hora-salida="${tp.hora_salida}" value="${tp.codigo}">${tp.descripcion}</option>`);
+        $("#cboTipoRol").html(html);
+    });
+}
+
+
+function listarFrecuenciaRol() {
+    ajaxWebService.get(URI_FRECUENCIA_ROL_POLICIA).then((result) => {
+        let frecuenciasRol = result.data;
+        let html = "<option>[SELECCIONE]</option>";
+        frecuenciasRol.forEach(f => html += `<option value="${f.codigo}">${f.descripcion}</option>`);
+        $("#cboFrecuenciaRol").html(html);
+    });
+}
+
+function listarSedes(selectorName) {
+    ajaxWebService.get(URI_SEDES).then((result) => {
+        let sedes = result.data;
+        sedes = _.orderBy(sedes, s => s.descripcion);
+        let html = `<option value="">[SELECCIONE]</option>`;
+        sedes.forEach(sede => html += `<option value="${sede.codigo}">${sede.descripcion}</option>`);
+        $(`${selectorName}`).html(html);
+    });
+}
+
+function listarPolicias(selectorName) {
+    ajaxWebService.get(URI_POLICIAS).then((result) => {
+        let policias = result.data;
+        policias = _.orderBy(policias, p => p.nombres);
+        let html = `<option value="">[SELECCIONE]</option>`;
+        policias.forEach(p => html += `<option documento_identidad="${p.dni}" value="${p.id}">${p.nombres}</option>`);
+        $(`${selectorName}`).html(html);
+        $('.select-search').select2();
+    });
+}
+
+
+function modificarServicio() {
+//    debugger
+    $("#detalle_rol").addClass("hidden");
+    $("#editar_rol").removeClass("hidden");
+    $("#modal-title").html('Cambiar servicio');
+    $("#modal-header").removeClass('bg-primary');
+    $("#modal-header").addClass('bg-jade');
+    $("#botones-editar").removeClass('hidden');
+    $("#btnCerrar").addClass("hidden");
+    animar();
+//    e.preventDefault();
+}
+
+function registrarRolPolicia() {
+    let policia_nombres = $("#cboPolicias option:selected").text();
+    let policia_id = $("#cboPolicias").val();
+    let tiporol_id = $("#cboTipoRol").val();
+    let tiporol_descripcion = $("#cboTipoRol option:selected").text();
+    let rango_fechas = $("#dpRangoFechas").val();
+    let split_fechas = rango_fechas.split("-").map(f => f.trim());
+    let fecha_inicio = split_fechas[0];
+    let fecha_fin = split_fechas[1];
+    let frecuencia_id = $("#cboFrecuenciaRol").val();
+    let frecuencia_descripcion = $("#cboFrecuenciaRol option:selected").text();
+    let sede_id = $("#cboSedesModal").val();
+    let sede_descripcion = $("#cboSedesModal option:selected").text();
+    let estado = 1;
+    let policia_dni = $("#cboPolicias option:selected").attr("documento_identidad");
+    let hora_entrada = $("#cboTipoRol option:selected").data('hora-entrada');
+    let hora_salida = $("#cboTipoRol option:selected").data('hora-salida');
+    debugger
+    let fechas = generarFechas(fecha_inicio, fecha_fin);
+    let fechas_rol;
+
+    switch (frecuencia_descripcion) {
+        case "PAR":
+            fechas_rol = fechas
+                    .map(f => {
+                        return {
+                            number: f.split("/")[0],
+                            fecha: f
+                        }
+                    })
+                    .filter(f => f.number % 2 == 0)
+                    .map(f => f.fecha);
+            break;
+        case "IMPAR":
+            fechas_rol = fechas
+                    .map(f => {
+                        return {
+                            number: f.split("/")[0],
+                            fecha: f
+                        }
+                    })
+                    .filter(f => f.number % 2 == 1)
+                    .map(f => f.fecha);
+            break;
+        case "DIARIO":
+            fechas_rol = fechas;
+            break;
+    }
+
+    let detalles_rol = [];
+    let numero = 1;
+    fechas_rol
+            .map((f) => {
+                let obj = {
+                    fecha_entrada: `${f} ${hora_entrada}`,
+                    fecha_salida: `${f} ${hora_salida}`
+                }
+
+                return obj;
+            })
+            .forEach((f) => {
+                debugger
+                let detalle_rol = {
+                    id: numero++,
+                    fecha_entrada: f.fecha_entrada,
+                    fecha_salida: f.fecha_salida,
+                    estado: 1
+                };
+                detalles_rol.push(detalle_rol);
+            });
+    let params = {
+        numeroFila: policia_id,
+        policia_id,
+        policia_dni,
+        policia_nombres,
+        sede_id,
+        sede_descripcion,
+        fecha_inicio,
+        fecha_fin,
+        tiporol_id,
+        tiporol_descripcion,
+        frecuencia_id,
+        frecuencia_descripcion,
+        detalles_rol,
+        estado
+    };
+    ajaxWebService.post(URI_ROL_POLICIA, params)
+            .then((response) => {
+                debugger;
+                if (response.status) {
+                    swal({
+                        type: 'success',
+                        title: '¡Rol registrado exitosamente!',
+                        showConfirmButton: false,
+                        timer: 1500
+                    })
+                    listarRolesPolicias();
+                    console.log(response.data);
+                } else {
+
+                }
+            })
+            .catch(error => {
+                console.log(error);
+            });
+}
+
+
+
+function cancelar() {
+    $("#detalle_rol").removeClass("hidden");
+    $("#editar_rol").addClass("hidden");
+    $("#modal-title").html('Ver detalle rol');
+    $("#modal-header").addClass('bg-primary');
+    $("#modal-header").removeClass('bg-jade');
+    $("#botones-editar").addClass('hidden');
+    $("#btnCerrar").removeClass("hidden");
+    animar();
+}
+
+function animar() {
+    let animation = `fadeIn`;
+    $("#modal_body_tombo2").addClass(`animated ${animation}`).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend", function () {
+        $(this).removeClass(`animated ${animation}`);
+    });
+}
+
+
+function guardarCambios() {
+    cancelar();
+    $("#servicio13").css("background-color", "lightpink");
+}
+
+
+function mostrarModalNuevoRol() {
+    ajaxModal.get("policias/mantenimientoRol/crearRol.jspf").then((response) => {
+        swal({
+            title: '<strong>Nuevo Rol</strong>',
+//            type: 'info',
+            html: response.data,
+            showCloseButton: true,
+            showCancelButton: true,
+            focusConfirm: false,
+            confirmButtonText: '<i class="fa fa-thumbs-up"></i> Registrar rol',
+            confirmButtonAriaLabel: 'Registrar rol',
+            cancelButtonText: 'Cancelar',
+            cancelButtonAriaLabel: 'Thumbs down',
+            width: '30%',
+            customClass: 'swal2-overflow',
+            onOpen: () => {
+                listarTipoRoles();
+                listarFrecuenciaRol();
+                listarSedes("#cboSedesModal");
+                listarPolicias("#cboPolicias");
+                $('.selectpicker').selectpicker({
+                    style: 'btn-info',
+                    size: 4
+                });
+                $('.select-search').select2();
+                $(".btn.dropdown-toggle.bs-placeholder").removeClass("btn-info");
+                $(".btn.dropdown-toggle.bs-placeholder").css({
+                    border: "1px solid #ddd",
+                    backgroundColor: "#fff"
+                });
+                $("#dpRangoFechas").daterangepicker({
+                    "autoApply": true,
+                    "locale": {
+                        "format": "DD/MM/YYYY",
+                        "separator": " - ",
+                        "applyLabel": "Apply",
+                        "cancelLabel": "Cancel",
+                        "fromLabel": "From",
+                        "toLabel": "To",
+                        "customRangeLabel": "Custom",
+                        "weekLabel": "W",
+                        "daysOfWeek": [
+                            "Do",
+                            "Lu",
+                            "Ma",
+                            "Mi",
+                            "Ju",
+                            "Vi",
+                            "Sa"
+                        ],
+                        "monthNames": [
+                            "Enero",
+                            "Febrero",
+                            "Marzo",
+                            "Abril",
+                            "Mayo",
+                            "Junio",
+                            "Julio",
+                            "Agosto",
+                            "Setiembre",
+                            "Octubre",
+                            "Noviembre",
+                            "Diciembre"
+                        ],
+                        "firstDay": 1
+                    },
+                    "startDate": "17/08/2018",
+                    "endDate": "23/08/2018"
+                }, function (start, end, label) {
+//                    console.log('New date range selected: ' + start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD') + ' (predefined range: ' + label + ')');
+                });
+//                $("#dpRangoFechas").datepicker('setDate', 'now');
+                defaultConfigDatePicker();
+            }
+        }).then((result) => {
+            if (result.value) {
+                registrarRolPolicia();
+            }
+        });
+    });
+}
+
+
+function buscarRoles() {
+    let policia_id = $("#cboPoliciasFiltro").val();
+    let sede_id = $("#cboSedesFiltro").val();
+    let fecha_inicio = $("#dpFechaInicio").val();
+    let fecha_fin = $("#dpFechaFin").val();
+    let rangoFechas = generarFechas(fecha_inicio, fecha_fin);
+    let params = cleanQueryParams({
+        policia_id,
+        sede_id,
+        fecha_inicio: rangoFechas
+    });
+    console.log(params);
+    listarRolesPolicias({params});
+}
+
+const initDateRangePicker = (dp) => {
+    $(dp).datepicker({
+        format: "dd/mm/yyyy",
+        language: "es",
+        multidate: true,
+        multidateSeparator: ","
+    });
+}
+
+$().ready(function () {
+    $.fn.datepicker.noConflict = function () {
+        $.fn.datepicker = old;
+        return this;
+    };
+    initDatePicker("#dpFechaInicio", "#dpFechaFin");
+    listarSedes("#cboSedesFiltro");
+    listarPolicias("#cboPoliciasFiltro");
+    $('#servicio13').click(modificarServicio);
+    $("#btnCancelar").click(cancelar);
+    $("#btnGuardarCambios").click(guardarCambios);
+    $("#btnNuevoRol").click(mostrarModalNuevoRol);
+    $("#btnAplicarFiltro").click(buscarRoles);
+    $("#btnMostrarTodo").click(listarRolesPolicias);
+});
\ No newline at end of file
diff --git a/src/main/webapp/vistas/crearRolPolicia.jsp b/src/main/webapp/vistas/crearRolPolicia.jsp
index 7a31696..fc020b0 100644
--- a/src/main/webapp/vistas/crearRolPolicia.jsp
+++ b/src/main/webapp/vistas/crearRolPolicia.jsp
@@ -893,7 +893,7 @@
         <script src="../js/lib/lodash.js" type="text/javascript"></script>
         <script src="../js/lib/sweetalert2.min.js" type="text/javascript"></script>
         <script src="../js/lib/axios.min.js" type="text/javascript"></script>
-        <script src="../js/pages/crearRolPolicia.js"></script>
+        <script src="../js/pages/crear_rol_policia.js"></script>
 
         <!--js-->   
 
--
libgit2 0.26.0