diff --git a/src/main/webapp/js/general.js b/src/main/webapp/js/general.js index 0e05df2..37ca324 100644 --- a/src/main/webapp/js/general.js +++ b/src/main/webapp/js/general.js @@ -42,6 +42,8 @@ const URI_DOCENTES_TIPO_SEMINARIO = "tipoSeminario"; const URI_DOCENTES_GRUPO_ACADEMICO = "grupoAcademico"; const URI_DOCENTES_ASISTENCIAS = "asistenciaDocentes"; const URI_ADMINISTRATIVOS_PERIODO_CIERRE_ASISTENCIA = "periodoCierreAsistenciaAdministrativa"; +const URI_ADMINISTRATIVOS_DESCUENTO_MENSUAL = "descuentoMensualAdministrativos"; +const URI_ADMINISTRATIVOS_DESCUENTO_MENSUAL_DETALLADO = "descuentoAsistenciaAdministrativaDetallado"; //</editor-fold> diff --git a/src/main/webapp/js/pages/detalle_montos_administrativos.js b/src/main/webapp/js/pages/detalle_montos_administrativos.js new file mode 100644 index 0000000..6932038 --- /dev/null +++ b/src/main/webapp/js/pages/detalle_montos_administrativos.js @@ -0,0 +1,101 @@ +function getColumns() { + let columns = [ + { + title: `N°`, + data: `id`, + className: 'text-center' + }, + { + title: "FECHA", + data: "fecha_asistencia", + className: "text-center" + }, + { + title: `HORA`, + data: `marcacion_entrada`, + className: 'text-center' + }, + { + title: `DESCUENTO<br>(S/.)`, + data: `descuento`, + className: 'text-center', + render: (data) => { + return `<span class="text-danger">${data}.00</span>`; + } + }, + { + title: `DESCRIPICON`, + data: `descripcion`, + className: 'text-center' + }, + { + title: `SEDE<br>MARCACIÓN`, + data: `sede_marcacion`, + className: 'text-center' + }, + { + title: `TIPO REGISTRO`, + 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> </span>`; + acciones = verdetalle; + return acciones; + } + } + ]; + + return columns; +} + +const listarAsistenciaMensual = (objParams = {}) => { + ajaxWebService.get(URI_ADMINISTRATIVOS_DESCUENTO_MENSUAL_DETALLADO, objParams).then((response) => { + let columns = getColumns(); + + let wrapsNameDatatable = `divDatatable`; + let classNameForDatatable = `display table table-bordered`; + + makeDatatable( + wrapsNameDatatable, + { + data: response.data, + columns, + }, + classNameForDatatable, + ).then((nodes) => { + $(".chkFirma, #chkFirmaTodo").uniform(); + nodes.container + .off() +// .on("click", ".verdetalle", function () { +// let data = nodes.datatable.DataTable().row($(this).parents("tr")).data(); +// mostrarModalVerDetalleDescuentoAsistencia(data); +// }) + + }); + }); +}; + + +$(document).ready(function () { + listarAsistenciaMensual() +}) \ No newline at end of file diff --git a/src/main/webapp/js/pages/montos_administrativos.js b/src/main/webapp/js/pages/montos_administrativos.js index f63a993..62dddd1 100644 --- a/src/main/webapp/js/pages/montos_administrativos.js +++ b/src/main/webapp/js/pages/montos_administrativos.js @@ -1,14 +1,72 @@ +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: "SEDE", + data: "sede_descripcion", + className: "text-center" + }, + { + title: `CARGO`, + data: `puestolaboral_nombre`, + className: 'text-center' + }, + { + title: `DESCUENTO<br>(S/.)`, + data: `descuento_total`, + className: 'text-center', + render: (data) => { + return `<span class="text-danger">${data}.00</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> </span>`; + acciones = verdetalle; + return acciones; + } + } + ]; + + return columns; +} + + + const listarPeriodosCierreAsistencia = (nodeIdentifier) => { - ajaxWebService.get(URI_ADMINISTRATIVOS_PERIODO_CIERRE_ASISTENCIA).then((result) => { - let data = result.data; - let html = `<option value="">[SELECCIONE]</option>`; - html += data.map(periodo => `<option value="${periodo.id}">${periodo.descripcion}</option>`); - $(nodeIdentifier).html(html); - $(nodeIdentifier).change((e) => { - let id = $(e.currentTarget).val(); - console.log(id) - }); - }); + ajaxWebService.get(URI_ADMINISTRATIVOS_PERIODO_CIERRE_ASISTENCIA).then((result) => { + let data = result.data; + let html = `<option value="">[SELECCIONE]</option>`; + html += data.map(periodo => `<option value="${periodo.id}">${periodo.descripcion}</option>`); + $(nodeIdentifier).html(html); + $(nodeIdentifier).change((e) => { + let id = $(e.currentTarget).val(); + console.log(id) + }); + }); // initSelect2(nodeIdentifier, "descripcion"); } @@ -76,19 +134,53 @@ const listarPeriodosCierreAsistencia = (nodeIdentifier) => { const listarSedes = (selectorName) => { - ajaxWebService.get(URI_SEDES).then((result) => { - let sedes = result.data; - sedes = _.orderBy(sedes, s => s.descripcion); - let html = `<option value="">[TODOS]</option>`; - sedes.forEach(sede => html += `<option value="${sede.codigo}">${sede.descripcion}</option>`); - $(`${selectorName}`).html(html); - $(selectorName).select2(); - }); + ajaxWebService.get(URI_SEDES).then((result) => { + let sedes = result.data; + sedes = _.orderBy(sedes, s => s.descripcion); + let html = `<option value="">[TODOS]</option>`; + sedes.forEach(sede => html += `<option value="${sede.codigo}">${sede.descripcion}</option>`); + $(`${selectorName}`).html(html); + $(selectorName).select2(); + }); }; +const listarDescuentoMensualAdministrativos = (objParams = {}) => { + ajaxWebService.get(URI_ADMINISTRATIVOS_DESCUENTO_MENSUAL, objParams).then((response) => { + let columns = getColumns(); + + let wrapsNameDatatable = `divDatatable`; + let classNameForDatatable = `display table table-bordered`; + + makeDatatable( + wrapsNameDatatable, + { + data: response.data, + columns, + }, + classNameForDatatable, + ).then((nodes) => { + $(".chkFirma, #chkFirmaTodo").uniform(); + nodes.container + .off() + .on("click", ".verdetalle", function () { + let data = nodes.datatable.DataTable().row($(this).parents("tr")).data(); + mostrarModalVerDetalleDescuentoAsistencia(data); + }) + + }); + }); +}; + + +const aplicarFiltro = () => { + +} + $(document).ready(function () { - initDatePicker("#dpFechaInicioFiltro", "#dpFechaFinFiltro"); - listarSedes("#cboSedesFiltro"); - listarPeriodosCierreAsistencia("#cboPeriodoCierreFiltro"); + initDatePicker("#dpFechaInicioFiltro", "#dpFechaFinFiltro"); + listarSedes("#cboSedesFiltro"); + listarPeriodosCierreAsistencia("#cboPeriodoCierreFiltro"); + $("#btnAplicarFiltro").click(aplicarFiltro); + $("#btnMostrarTodo").click(listarDescuentoMensualAdministrativos); }); \ No newline at end of file diff --git a/src/main/webapp/vistas/detalleMontosAdministrativos.jsp b/src/main/webapp/vistas/detalleMontosAdministrativos.jsp new file mode 100644 index 0000000..26f5506 --- /dev/null +++ b/src/main/webapp/vistas/detalleMontosAdministrativos.jsp @@ -0,0 +1,70 @@ +<%--<%@include file="templates/validar.jsp" %>--%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<!DOCTYPE html> +<html> + <head> + <%@include file="templates/header.jsp" %> + <!--template-core--> + <!--css de la pagina--> + <link href="../css/lib/sweetalert2.min.css" rel="stylesheet" type="text/css"/> + <!--css--> + </head> + <body> + <%@include file="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">Detalle de descuento mensual</h5> + </div> + + <div class="panel-body"> + <div class="row"> + <div class="col-md-6 form-group"> + <label>Personal</label> + <span class="label label-left border-left border-left-primary label-striped form-control">GANGAS VASQUEZ LUIS ALBERTO</span> + </div> + <div class="col-md-6 form-group"> + <label>Cargo</label> + <span class="label label-left border-left border-left-primary label-striped form-control">ANALISTA PROGRAMADOR</span> + </div> + + </div> + <div class="row"> + <div class="col-md-6 form-group"> + <label>Horario</label> + <span class="label label-left border-left border-left-primary label-striped form-control">07:30 - 17:30</span> + </div> + <div class="col-md-6 form-group"> + <label>Costo día</label> + <span class="label label-left border-left border-left-primary label-striped form-control">600.00</span> + </div> + </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">Asistencias</h6> + </div> + <div id="divDatatable"></div> + </div> + </div> + <!-- / content --> + + <%@include file="templates/footer-body.jsp"%> + <!--js de la pagina--> + <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/detalle_montos_administrativos.js" type="text/javascript"></script> + <!--js--> + + </body> +</html> \ No newline at end of file