Commit 74717651 by Billy Larru

[ADD justificacion, registro de justificacion]

parent 93c49878
......@@ -22,7 +22,6 @@ const ajaxModal = axios.create({
//<editor-fold> MODULO DE POLICIAS
const URI_TIPOROL_POLICIA = "tipoRolPolicias";
const URI_FRECUENCIA_ROL_POLICIA = "frecuenciaRolPolicias";
const URI_SEDES = "sedes";
const URI_ESTADO_ASISTENCIA = "estadoAsistencia";
const URI_POLICIAS = "policias";
const URI_ROL_POLICIA = "rolesPolicias";
......@@ -47,6 +46,8 @@ const URI_ADMINISTRATIVOS_DESCUENTO_MENSUAL = "descuentoMensualAdministrativos";
const URI_ADMINISTRATIVOS_DESCUENTO_MENSUAL_DETALLADO = "descuentoAsistenciaAdministrativaDetallado";
//</editor-fold>
const URI_SEDES = "sedes";
const URI_JUSTIFICACION_TIPO = "tipoJustificacion"
//</editor-fold>
......@@ -445,7 +446,7 @@ const cleanQueryParams = (params = {}) => {
return params;
}
let initDatePicker = (...selectorName) => {
const initDatePicker = (...selectorName) => {
selectorName.forEach(id => {
let options = {
format: "dd/mm/yyyy",
......@@ -462,6 +463,58 @@ let initDatePicker = (...selectorName) => {
}
const initDateRangePicker = (nodeIdentifier) => {
let options = {
"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"
};
$(nodeIdentifier).daterangepicker(options);
}
const pickersNoConflict = () => {
$.fn.datepicker.noConflict = function () {
$.fn.datepicker = old;
return this;
};
}
const initSelect2 = (nodeIdentifier, URI, {title, subtitle} = {}) => {
$(`${nodeIdentifier}`).select2({
containerCssClass: 'select-xs',
......
function listarRolesPolicias(objParams = {}) {
ajaxWebService.get(URI_ROL_POLICIA, objParams).then((response) => {
debugger
let columns = [
{
title: `N°`,
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>`;
}
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);
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 = ``;
initDatePickerMultiDate()("#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);
});
});
});
}
});
});
});
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;
}
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();
}
});
}
});
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);
});
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);
});
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);
});
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();
});
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();
$("#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;
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;
}
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}`
}
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 {
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);
});
}
})
.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();
$("#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}`);
});
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");
cancelar();
$("#servicio13").css("background-color", "lightpink");
}
function mostrarModalNuevoRol() {
ajaxModal.get("policias/mantenimientoRol/crearRol.jspf").then((response) => {
swal({
title: '<strong>Nuevo Rol</strong>',
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 + ')');
});
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"
});
initDateRangePicker("#dpRangoFechas")
// $("#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();
}
});
});
// 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});
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: ","
});
const initDatePickerMultiDate = (nodeIdentifier) => {
$(nodeIdentifier).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);
$.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
function getColumns() {
let columns = [
{
title: "N°",
data: "id",
className: "text-center"
},
{
title: `APELLIDOS Y NOMBRES`,
data: null,
className: `text-center`,
render: (data) => {
let nombresCompletos;
let nombres = data.trabajador_nombres;
let apellidos = data.trabajador_apellidos;
nombresCompletos = `${apellidos} ${nombres}`;
return nombresCompletos;
}
},
{
title: "FECHA INICIO",
data: "fecha_asistencia",
className: "text-center"
},
{
title: `FECHA FIN`,
data: `marcacion_entrada`,
className: 'text-center'
},
{
title: `MOTIVO`,
data: `descuento`,
className: 'text-center',
render: (data) => {
return `<span class="text-danger">${parseFloat(data).toFixed(2)}</span>`;
}
},
{
title: `ESTADO`,
data: `tipo_registro`,
className: 'text-center',
render: (data) => {
let label = "";
let contenido = "";
if (data == 1) {
label = "label label-info"
contenido = "HUELLA"
} else {
label = "label label-warning"
contenido = "MANUAL"
}
return `<span class="${label}">${contenido}</span>`
}
},
{
title: `ACCIONES`,
data: null,
className: 'text-center',
render: (data) => {
let acciones = "";
let registrar = "";
let verdetalle = "";
verdetalle = `<span data-toggle="tooltip" data-placement="left" title="Ver detalle" style="cursor: pointer"> <i class='verdetalle icon-list text-primary-700'></i>&nbsp;&nbsp; </span>`;
acciones = verdetalle;
return acciones;
}
}
];
return columns;
}
const listarJustificaciones = (objParams = {}) => {
ajaxWebService.get(URI_JUSTIFICACION, objParams).then((response) => {
let columns = getColumns();
let wrapsNameDatatable = `divDatatable`;
let classNameForDatatable = `display table table-bordered`;
makeDatatable(
wrapsNameDatatable,
{
data: response.data,
columns,
},
classNameForDatatable,
).then((nodes) => {
nodes.container
.off()
.on("click", "#chkSelectAll", (e) => seleccionarCheckBoxTodo($(e.currentTarget)))
// .on("click", ".verdetalle", function () {
// let data = nodes.datatable.DataTable().row($(this).parents("tr")).data();
// mostrarModalVerDetalleDescuentoAsistencia(data);
// })
});
});
};
$(document).ready(function () {
});
\ No newline at end of file
const listarPersonal = (selectorName) => {
initSelect2(selectorName, baseURLRest + URI_TRABAJADORES, {title: "nombresapellidos", subtitle: "documentoidentidad"});
};
const listarTipoJustificacion = (nodeIdentifier) => {
ajaxWebService.get(URI_JUSTIFICACION_TIPO).then((response) => {
let data = response.data
let html = "<option>[SELECCIONE]</option>"
html += data.map((tipoJustificacion) => `<option value="${tipoJustificacion.id}">${tipoJustificacion.descripcion}</option>`)
$(nodeIdentifier).html(html)
})
}
const formControls = {
init() {
this.initializeRadioButton()
this.initializeChooseFile()
pickersNoConflict()
initDateRangePicker("#dpRangoFechas")
},
initializeRadioButton() {
$(".styled, .multiselect-container input").uniform({
radioClass: 'choice'
});
},
initializeChooseFile() {
$(".file-styled-primary").uniform({
fileButtonClass: 'action btn bg-blue'
});
}
}
$(document).ready(function () {
formControls.init()
listarTipoJustificacion("#cboTipoJustificacion")
listarPersonal("#cboPersonal")
});
\ No newline at end of file
<jsp:include page="/vistas/templates/validar.jsp" />
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<jsp:include page="/vistas/templates/header.jsp" />
<!--template-core-->
<!--css de la pagina-->
<link href="../css/lib/sweetalert2.min.css" rel="stylesheet" type="text/css"/>
<!--css-->
</head>
<body>
<jsp:include page="/vistas/templates/header-body.jsp" />
<!-- content -->
<div class="col-md-4 col-md-offset-4">
<div class="panel panel-primary">
<div class="panel-heading">
<h5 class="panel-title">Busqueda</h5>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-12 form-group">
<label>Personal</label>
<select class="select-search form-control" id="cboPersonalFiltro">
</select>
</div>
</div>
<div class="row">
<div class="col-md-6 form-group">
<label>Fecha Inicio</label>
<div class="input-group">
<span class="input-group-addon"><i class="icon-calendar"></i></span>
<input type="text" class="form-control" id="dpFechaInicioFiltro">
</div>
</div>
<div class="col-md-6 form-group">
<label>Fecha Fin</label>
<div class="input-group">
<span class="input-group-addon"><i class="icon-calendar"></i></span>
<input type="text" class="form-control" id="dpFechaFinFiltro">
</div>
</div>
</div>
</div>
<div class="panel-footer">
<div class="text-center">
<button class="btn btn-info" id="btnAplicarFiltro"><i class="fa fa-search"></i> Aplicar filtro</button>&nbsp;
<button class="btn btn-primary" id="btnMostrarTodo"><i class="icon-eye4"></i> Mostrar Todo</button>&nbsp;
</div>
</div>
</div>
</div>
<div class="col-md-10 col-md-offset-1">
<div class="panel panel-primary card-3" style="margin-top: 30px">
<div class="panel-heading" style="padding: 8px 15px">
<h6 class="panel-title" style="font-size: 15px; font-family: inherit">Listado de justificaciones</h6>
<div class="heading-elements">
<button type="button" class="btn btn-success btn-icon heading-btn"><i class="icon-plus2"></i></button>
</div>
</div>
<div id="divDatatable"></div>
</div>
</div>
<!-- / content -->
<jsp:include page="/vistas/templates/footer-body.jsp" />
<!--js de la pagina-->
<!--<script src="${pageContext.request.contextPath}/plantilla/assets/js/plugins/tables/datatables/datatables.min.js" type="text/javascript"></script>-->
<script src="../plantilla/assets/js/core/libraries/jquery_ui/widgets.min.js" type="text/javascript"></script>
<script src="../plantilla/assets/js/plugins/ui/moment/moment.min.js" type="text/javascript"></script>
<script src="../plantilla/assets/js/plugins/pickers/datepicker.js" type="text/javascript"></script>
<script src="../js/lib/bootstrap-select.min.js" type="text/javascript"></script>
<script src="../plantilla/assets/js/plugins/forms/selects/select2.min.js"></script>
<script src="../js/lib/lodash.js" type="text/javascript"></script>
<script src="../js/pages/mantenimiento_justificacion.js" type="text/javascript"></script>
<!--js-->
</body>
</html>
\ No newline at end of file
<jsp:include page="/vistas/templates/validar.jsp" />
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<jsp:include page="/vistas/templates/header.jsp" />
<!--template-core-->
<!--css de la pagina-->
<link href="../css/lib/sweetalert2.min.css" rel="stylesheet" type="text/css"/>
<!--css-->
</head>
<body>
<jsp:include page="/vistas/templates/header-body.jsp" />
<!-- content -->
<div class="col-md-12">
<div class="panel panel-primary">
<div class="panel-heading">
<h5 class="panel-title">REGISTRO DE JUSTIFICACIÓN</h5>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-4 form-group">
<label>Personal</label>
<select class="select-search form-control" id="cboPersonal">
</select>
</div>
<div class="col-md-4 form-group">
<label>Fecha(s) a justificar</label>
<div class="input-group">
<span class="input-group-addon"><i class="icon-calendar"></i></span>
<input type="text" class="form-control"id="dpRangoFechas">
</div>
</div>
<div class="col-md-4 form-group">
<label>Justificacion por</label>
<select id="cboTipoJustificacion" class="form-control"></select>
</div>
</div>
<div class="row">
<div class="col-md-12 form-group">
<label>Motivo</label>
<input type="text" class="form-control" id="txtMotivo">
</div>
</div>
<div class="row">
<div class="col-md-12 form-group">
<label>Observación/Fundamento</label>
<textarea name="" id="" cols="30" rows="5" class="form-control" id="txtObservacion"></textarea>
</div>
</div>
<div class="row">
<div class="col-md-6 form-group">
<label>Nro documentos adjuntos</label>
<input type="text" class="form-control" id="txtNumeroDocumentosAdjuntos">
</div>
<div class="form-group col-md-6">
<label class="control-label">Adjuntar documentos</label>
<input type="file" class="file-styled-primary form-control">
</div>
</div>
</div>
<div class="panel-footer">
<div class="text-center">
<button class="btn btn-success" id="btnRegistrar"><i class="fa fa-plus"></i> Registrar</button>&nbsp;
<button class="btn btn-warning" id="btnMostrarTodo"><i class="fa fa-eraser"></i> Limpiar</button>&nbsp;
</div>
</div>
</div>
</div>
<!-- / content -->
<jsp:include page="/vistas/templates/footer-body.jsp" />
<!--js de la pagina-->
<!--<script src="${pageContext.request.contextPath}/plantilla/assets/js/plugins/tables/datatables/datatables.min.js" type="text/javascript"></script>-->
<script src="../plantilla/assets/js/core/libraries/jquery_ui/widgets.min.js"></script>
<script src="../plantilla/assets/js/plugins/ui/moment/moment.min.js" type="text/javascript"></script>
<script src="../plantilla/assets/js/plugins/pickers/datepicker.js"></script>
<script src="../plantilla/assets/js/plugins/pickers/daterangepicker.js"></script>
<script src="../js/lib/sweetalert2.min.js" type="text/javascript"></script>
<script src="../js/lib/lodash.js" type="text/javascript"></script>
<script src="../plantilla/assets/js/plugins/forms/selects/select2.min.js"></script>
<script src="../js/lib/bootstrap-select.min.js" type="text/javascript"></script>
<script src="../js/pages/registroJustificacion.js" type="text/javascript"></script>
<!--js-->
</body>
</html>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment