Commit 92aa3eed by Luis Gangas

[ADD] lista contrato

parent fa40177f
......@@ -62,7 +62,10 @@ public class ContratoMysqlDAO implements ContratoDAO {
+ "DATE_FORMAT(co.fecha_inicio_contrato,'%d/%m/%Y') fechaInicio, "
+ "ec.descripcion estadoContrato, "
+ "rs.nombre razonSocial,"
+ "tc.descripcion tipoContrato "
+ "tc.descripcion tipoContrato, "
+ "ec.codigo_tipo_estado_contrato, "
+ "tc.tipo_contrato_codigo, "
+ "rs.codigo_razon_social "
+ "from contrato co "
+ "inner join personal pe on pe.codper = co.codigo_personal "
+ "inner join tipo_estado_contrato ec on ec.codigo_tipo_estado_contrato = co.codigo_tipo_estado_contrato "
......@@ -111,14 +114,17 @@ public class ContratoMysqlDAO implements ContratoDAO {
.put("fechaInicio", rs.getString("fechaInicio"))
.put("estadoContrato", rs.getString("estadoContrato"))
.put("razonSocial", rs.getString("razonSocial"))
.put("tipoContrato", rs.getString("tipoContrato"))
.put("codigoPersonal", rs.getString("codper"));
.put("codigoEstadoContrato", rs.getString("codigo_tipo_estado_contrato"))
.put("codigoTipoContrato", rs.getString("tipo_contrato_codigo"))
.put("codigoRazonSocial", rs.getString("codigo_razon_social"))
.put("tipoContrato", rs.getString("tipoContrato"));
data.put(jObj);
}
jResponse.put("status", true);
jResponse.put("data", data);
jResponse.put("length", json.getString("length"));
jResponse.put("draw", json.getString("draw"));
} catch (Exception e) {
jResponse.put("status", false);
......
......@@ -44,7 +44,8 @@ public class DetalleLoteFichaDocenteMysqlDAO implements DetalleLoteFichaDocenteD
+ "ifnull(sueldo_docente.costo_b,'') costoBDocente, "
+ "ifnull(sueldo_docente.costo_c,'') costoCDocente, "
+ "ifnull(sueldo_docente.costo_mensual,'') costoMensualDocente,"
+ "ficha_laboral.tipo_ficha "
+ "ficha_laboral.tipo_ficha, "
+ "sueldo_docente.observacion "
+ "FROM ficha_laboral "
+ "inner join ficha ON ficha.codigo_ficha = ficha_laboral.codigo_ficha "
+ "inner join estado_ficha on estado_ficha.codigo_ficha = ficha.codigo_ficha "
......@@ -72,6 +73,7 @@ public class DetalleLoteFichaDocenteMysqlDAO implements DetalleLoteFichaDocenteD
detalleLoteFichaDocente.setCostob(CurrencyFormat.getCustomCurrency(rs.getDouble("costoBDocente")));
detalleLoteFichaDocente.setCostoc(CurrencyFormat.getCustomCurrency(rs.getDouble("costoCDocente")));
detalleLoteFichaDocente.setCostoMensual(CurrencyFormat.getCustomCurrency(rs.getDouble("costoMensualDocente")));
detalleLoteFichaDocente.setObservacion(rs.getString("observacion"));
JSONObject jsonObjDetalleLoteFichaDocente = new JSONObject(detalleLoteFichaDocente);
jsonObjDetalleLoteFichaDocente.put("codigoPersona", rs.getInt("codigoPersona"));
jsonObjDetalleLoteFichaDocente.put("tipoFicha", rs.getString("tipo_ficha"));
......@@ -216,11 +218,89 @@ public class DetalleLoteFichaDocenteMysqlDAO implements DetalleLoteFichaDocenteD
int totalFilasInsertarEstadoFicha = resultadoInsertarEstadoFicha.length;
if (totalFilasInsertarEstadoFicha != 0) {
sql = "insert into contrato values (?,?)";
sql = ""
+ "INSERT INTO contrato ( "
+ " codigo_personal, "
+ " nombres, "
+ " apellidos, "
+ " tipo_documento_identidad, "
+ " documento_identidad, "
+ " domicilio, "
+ " distrito, "
+ " monto_asignacion_familiar, "
+ " fecha_inicio_contrato, "
+ " fecha_fin_contrato, "
+ " horario_trabajo, "
+ " codigo_area_cargo, "
+ " area_laboral, "
+ " cargo_laboral, "
+ " codigo_sede,"
+ " codigo_tipo_estado_contrato "
+ ") "
+ "SELECT "
+ " p.codper, "
+ " p.nombre, "
+ " p.apellido, "
+ " td.descripcion_corta, "
+ " p.dni, "
+ " p.direccion, "
+ " ub.nombre_distrito, "
+ "IF ( "
+ " ( "
+ " SELECT "
+ " count(1) "
+ " FROM "
+ " carga_familiar cf "
+ " WHERE "
+ " cf.codigo_persona = p.codper "
+ " AND cf.codigo_parentesco = 3 "
+ " ), "
+ " 93, "
+ " NULL "
+ ") asignacionFamiliar, "
+ " fl.fecha_ingreso, "
+ " fl.fecha_fin, "
+ " ?, "
+ " ac.codigo_area_cargo, "
+ " ar.desarea, "
+ " c.descargo, "
+ " se.codlocal, "
+ " 1 "
+ "FROM "
+ " ficha f "
+ "INNER JOIN ficha_laboral fl ON fl.codigo_ficha = f.codigo_ficha "
+ "INNER JOIN personal p ON p.codper = f.codigo_persona "
+ "INNER JOIN area_cargo ac ON ac.codigo_area_cargo = fl.codigo_area_cargo "
+ "INNER JOIN area ar ON ar.codigo_area = ac.codigo_area "
+ "INNER JOIN cargo c ON c.codigo_cargo = ac.codigo_cargo "
+ "INNER JOIN tipo_documento td ON td.codigo_tipo_documento = p.codigo_tipo_documento "
+ "INNER JOIN ubigeo ub ON ub.codigo_ubigeo = p.codigo_ubigeo_residencia "
+ "INNER JOIN sede_area sa ON fl.codigo_sede_area = sa.codigo_sede_area "
+ "INNER JOIN locales se ON se.codigo_sede = sa.codigo_sede "
+ "WHERE "
+ " f.codigo_ficha = ? ";
PreparedStatement ps = cnx.prepareStatement(sql);
for (int i = 0; i < longitudJsonArrayFichas; i++) {
int c = 1;
ps.setString(c++, jsonArrayFichas.getJSONObject(i).getString("horario"));
ps.setInt(c++, jsonArrayFichas.getJSONObject(i).getInt("codigoFicha"));
ps.addBatch();
}
int resultadoInsertarContrato[] = ps.executeBatch();
int totalFilasInsetarContrato = resultadoInsertarContrato.length;
response.setStatus(true);
response.setMessage("Se actualizó correctamente el lote!");
cnx.commit();
if (totalFilasInsetarContrato != 0) {
response.setStatus(true);
response.setMessage("Se actualizó correctamente el lote!");
cnx.commit();
} else {
response.setStatus(false);
response.setMessage("Lo sentimos, no se pudo insertar los contratos");
cnx.rollback();
}
} else {
response.setStatus(false);
response.setMessage("Lo sentimos, no se pudo insertar el estado de la ficha");
......
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package trismegistoplanilla.services;
import org.json.JSONObject;
import trismegistoplanilla.dao.ContratoDAO;
import trismegistoplanilla.dao.DAOFactory;
/**
*
* @author sistem20user
*/
public class ContratoService {
DAOFactory dao = DAOFactory.getDAOFactory(DAOFactory.MYSQL);
ContratoDAO service = dao.getContratoDAO();
public JSONObject listarContrato(JSONObject json) {
return service.listarContrato(json);
}
}
......@@ -5,32 +5,44 @@
*/
package trismegistoplanilla.servlets;
import com.itextpdf.text.DocumentException;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.JSONObject;
import trismegistoplanilla.servicesMysql.ContratoService;
import trismegistoplanilla.utilities.PdfCreator;
/**
*
* @author sistem20user
*/
public class ContratoServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
super.service(request, response); //To change body of generated methods, choose Tools | Templates.
String accion = request.getParameter("accion");
switch (accion) {
case "listarContrato":
listarContrato(request, response);
break;
case "contratoPdf": {
try {
contratoPdf(request, response);
} catch (DocumentException ex) {
Logger.getLogger(ContratoServlet.class.getName()).log(Level.SEVERE, null, ex);
}
break;
}
default:
}
}
private void listarContrato(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("application/json");
PrintWriter pw = response.getWriter();
......@@ -42,9 +54,22 @@ public class ContratoServlet extends HttpServlet {
.put(start, start)
.put(length, length)
.put(draw, draw);
ContratoService service = new ContratoService();
JSONObject jResponse = service.listarContrato(jRequest);
pw.print(jResponse);
}
private void contratoPdf(HttpServletRequest request, HttpServletResponse response) throws IOException, DocumentException {
String fileName = "loteAdministrativo.pdf";
response.setContentType("application/pdf");
response.setHeader("Expires", "0");
response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
response.setHeader("Content-Disposition", "inline; filename=" + fileName);
response.setHeader("Accept-Ranges", "bytes");
JSONObject json = new JSONObject(request.getParameter("json"));
new PdfCreator().escogerMetodo(json, response);
}
}
......@@ -41,18 +41,30 @@ import trismegistoplanilla.servicesMysql.ContratoService;
*/
public class PdfCreator {
// public boolean crearPdfContratoNecesidadMercado(JSONObject json, HttpServletResponse response) throws IOException, DocumentException {
public static boolean crearPdfContratoNecesidadMercado(JSONObject json) throws IOException, DocumentException {
public void escogerMetodo(JSONObject json, HttpServletResponse response) throws IOException, DocumentException {
switch (json.getString("codigoTipoContrato")) {
case "1":
crearPdfContratoNecesidadMercado(json, response);
break;
case "2":
crearPdfContratoTiempoParcial(json, response);
break;
default:
}
}
public boolean crearPdfContratoNecesidadMercado(JSONObject json, HttpServletResponse response) throws IOException, DocumentException {
// public static boolean crearPdfContratoNecesidadMercado(JSONObject json) throws IOException, DocumentException {
boolean respuesta = false;
Document documento = new Document(PageSize.A4.rotate(), 5, 5, 5, 5);
// PdfWriter writer = PdfWriter.getInstance(documento, response.getOutputStream());
PdfWriter.getInstance(documento, new FileOutputStream("D:\\contratoPDF.pdf"));
PdfWriter.getInstance(documento, response.getOutputStream());
// MyFooter event = new MyFooter();
// writer.setPageEvent(event);
documento.open();
int codigoRazonSocial = json.getInt("razonSocial");
int codigoRazonSocial = Integer.parseInt(json.getString("codigoRazonSocial"));
ContratoService service = new ContratoService();
JSONObject jResponse = service.obtenerDataRazonSocialContrato(codigoRazonSocial);
......@@ -81,6 +93,8 @@ public class PdfCreator {
.replace("@dniResponsable", dni)
.replace("@numeroPartida", numeroPartidaInscrita)
.replace("@distritoFirma", distrito)
// .replace("@ruc", ruc)
// .replace("@ruc", ruc)
.replace("@ruc", ruc);
Phrase phrase = new Phrase();
......@@ -103,17 +117,19 @@ public class PdfCreator {
return respuesta;
}
public static boolean crearPdfContratoTiempoParcial(JSONObject json) throws IOException, DocumentException {
// public static boolean crearPdfContratoTiempoParcial(JSONObject json) throws IOException, DocumentException {
public static boolean crearPdfContratoTiempoParcial(JSONObject json, HttpServletResponse response) throws IOException, DocumentException {
boolean respuesta = false;
Document documento = new Document(PageSize.A4.rotate(), 100, 100, 30, 30);
// PdfWriter writer = PdfWriter.getInstance(documento, response.getOutputStream());
PdfWriter.getInstance(documento, new FileOutputStream("D:\\contratoPDF.pdf"));
// PdfWriter.getInstance(documento, new FileOutputStream("D:\\contratoPDF.pdf"));
PdfWriter.getInstance(documento, response.getOutputStream());
// MyFooter event = new MyFooter();
// writer.setPageEvent(event);
documento.open();
int codigoRazonSocial = json.getInt("razonSocial");
int codigoRazonSocial = Integer.parseInt(json.getString("codigoRazonSocial"));
ContratoService service = new ContratoService();
JSONObject jResponse = service.obtenerDataRazonSocialContrato(codigoRazonSocial);
......@@ -146,8 +162,7 @@ public class PdfCreator {
Paragraph paragraph = new Paragraph();
Font underlineFont = new Font(Font.FontFamily.HELVETICA, 15, Font.UNDERLINE);
Font paragraphFont = new Font(Font.FontFamily.TIMES_ROMAN, 8, Font.NORMAL);
Chunk underlineChunk = new Chunk("CONTRATO DE TRABAJO EN REGIMEN DE TIEMPO PARCIAL", underlineFont);
phrase.add(underlineChunk);
......@@ -221,8 +236,8 @@ public class PdfCreator {
}
public static void main(String[] args) throws IOException, DocumentException, URISyntaxException, URISyntaxException, Exception {
JSONObject obj = new JSONObject().put("razonSocial", 2);
crearPdfContratoTiempoParcial(obj);
// JSONObject obj = new JSONObject().put("razonSocial", 2);
// crearPdfContratoTiempoParcial(obj);
}
}
......@@ -21,13 +21,10 @@ Las partes estipulan que la jornada laboral de EL TRABAJADOR será rotativa y no
#¿NOMBRE
a) Haber básico S. 850,00@br
b) Asignación familiar S. 75,00@br
c) Asignación por transporte S. 2,50 beneficio diario que se otorga al amparo del articulo 19, inciso e) del Decreto Supremo N° 001-97-TR, Texto Unico Ordenado de la Ley de Compensanción por Tiempo de Servicio supeditado a la asistencia al centro de trabajo y que razonablemente cubre el traslado. Las partes declaran conocer que el monto se ajusta a un monto razonable, es decir, estrictamente para el traslado del trabajador desde su vivienda al centro de trabajo y viceversa de acuerdo al uso de transporte(privado), y, que su percepcion debe estar condicionada a la asistencia a laborar.@br
d) Asignación por Refrigerio S. 0,00 condicionado a los días de labores realizado, conforme a los artículos 19 inciso j) del Decreto Supremo N° 001-97-TR y 5 del Decreto Supremo No. 004-97-TR, 6 y 7 del Decreto Supremo N° 003-97-TR y 10 del Decreto Supremo N°001-96-TR. @br
Los beneficios pactados en los literales c y d no son remuneración para efecto legal alguno, siendo base de cálculo solo para el impuesto a la renta, no para derecho laboral o tributo social alguno. @br
b) Asignación por transporte S. 2,50 por día efectivamente laborado y supeditado a la asistencia al centro de trabajo, conforme se indica en el inciso e) artículo 19º del Decreto Supremo Nº 001-97-TR, Texto Único Ordenado de la Ley de compensación por tiempo de servicios.@br
c) Asignación por refrigerio0,00 por día efectivamente laborado. @br
a) Haber básico S/. @basicoMensual@br
b) Asignación familiar S. @asignacionFamiliar@br
b) Asignación por transporte S. @asignacionTransporte por día efectivamente laborado y supeditado a la asistencia al centro de trabajo, conforme se indica en el inciso e) artículo 19º del Decreto Supremo Nº 001-97-TR, Texto Único Ordenado de la Ley de compensación por tiempo de servicios.@br
c) Asignación por refrigerio S/. @asignacionRefrigerio por día efectivamente laborado. @br
SETIMO EL TRABAJADOR conviene en consagrar íntegramente su capacidad a la atención de las labores que emanen de su cargo, comprometiéndose a desempeñar las mismas de acuerdo con los reglamentos, prácticas y políticas de EL EMPLEADOR, las cuales declara conocer y se obliga a cumplir fielmente.@br@br
......
......@@ -5,6 +5,7 @@
$(document).ready(() => {
initSelect2();
eventos.init()
defaultConfigDataTable()
contratos.init()
});
......@@ -26,12 +27,57 @@ const contratos = {
$('#tblContrato').DataTable().destroy()
$('#tblContrato').DataTable({
ajax: {
url: '../ServletContrato?accion=listarContrato',
url: '../ContratoServlet?accion=listarContrato',
type: 'POST',
dataType: 'JSON',
data: {
json: JSON.stringify(json)
}
},
processing: true,
serverSide: true,
responsive: true,
iDisplayLength: 20,
columns: [
{data: "nombrePersonal"},
{
data: null,
render: (data) => {
return `${data.tipoDocumentoIdentidad} - ${data.documentoIdentidad}`
}
},
{data: "areaLaboral"},
{data: "cargoLaboral"},
{data: "fechaInicio"},
{
data: "tipoContrato",
render: (data) => data || ''
},
{
data: "razonSocial",
render: (data) => data || ''
},
{
data: "estadoContrato",
className: 'text-center'
},
{
data: 'codigoEstadoContrato',
className: 'text-center',
render: (data) => {
let accion = `<ul class="icons-list">`
if (data != 1) {
accion += `
<li><a class="btnVerPdf"><i class="fa fa-file-pdf-o text-danger"></i></a></li>
`
}
accion += `</ul>`
return accion
}
}
],
initComplete: () => {
eventos.verPdf()
}
})
}
......@@ -54,6 +100,22 @@ const eventos = {
contratos.listarContrato(params)
})
},
verPdf() {
$('.btnVerPdf').off().on('click', (e) => {
let dataRow = $('#tblContrato').DataTable().row($(e.currentTarget).parents('tr')).data()
$('#data').val(JSON.stringify(dataRow));
$('#formPDF').submit();
// $.ajax({
// url: '../ContratoServlet?accion=contratoPdf',
// type: 'POST',
// dataType: 'pdf',
// data: {
// json: JSON.stringify(dataRow)
// }
// })
})
}
}
......
/* global google */
(function (window) {
if (window.name === '') {
window.location = 'index.jsp'
}
if (window.name === '') {
window.location = 'index.jsp'
}
})(window)
$(function () {
inicializarComponentes();
llenarDatosFicha();
inicializarComponentes();
llenarDatosFicha();
validarExistenciaTipoPago();
registrarDatosAdministrativos();
setearMapa();
registrarTipoExpediente();
listarTipoExpediente();
validarObservacion();
validarExistenciaTipoPago();
registrarDatosAdministrativos();
setearMapa();
registrarTipoExpediente();
listarTipoExpediente();
validarObservacion();
listarTipoPago()
listarTipoPago()
});
let codigoFicha;
......@@ -30,273 +30,273 @@ let codigoAreaCargoTipoPago = 0;
let sueldoEscalafon = 0;
function llenarDatosFicha() {
if (window.name === '') {
window.location = "index.jsp";
} else {
json = JSON.parse(window.name);
configuracionDatosPersonales(json);
}
if (window.name === '') {
window.location = "index.jsp";
} else {
json = JSON.parse(window.name);
configuracionDatosPersonales(json);
}
}
function configuracionDatosPersonales(json) {
$('#lblTipoDocumento').text(`${json.tipoDocumentoDescripcionLarga} (${json.tipoDocumentoDescripcionCorta})`);
$('#lblNumeroDocumento').text(json.numeroDocumento);
$('#lblNumeroRUC').text(json.ruc);
$('#lblApellidoPaterno').text(json.apellidoPaterno);
$('#lblApellidoMaterno').text(json.apellidoMaterno);
$('#lblNombre').text(json.nombre);
$('#lblSexo').text(json.sexo);
$('#lblEstadoCivil').text(json.estadoCivil);
$('#lblFechaNacimiento').text(json.fechaNacimiento);
$('#lblNacionalidad').text(json.gentilicio);
$('#lblDepartamentoNacimiento').text(json.nombreDepartamentoNacimiento);
$('#lblProvinciaNacimiento').text(json.nombreProvinciaNacimiento);
$('#lblDistritoNacimiento').text(json.nombreDistritoNacimiento);
$('#lblDireccionDocumento').text(json.direccionDocumento);
$('#lblTelefonoFijo').text(json.telefonoFijo);
$('#lblTelefonoMovil').text(json.telefonoMovil);
$('#lblCorreoElectronico').text(json.correo);
$('#lblDepartamentoResidencia').text(json.nombreDepartamentoResidencia);
$('#lblProvinciaResidencia').text(json.nombreProvinciaResidencia);
$('#lblDistritoResidencia').text(json.nombreDistritoResidencia);
$('#lblDireccionResidencia').text(json.direccionResidencia);
$('#lblFondoPension').text(json.fondoPensionDescripcionCorta);
$('#latitudResidencia').val(json.latitud);
$('#longitudResidencia').val(json.longitud);
configuracionTblFamiliar(json.cargafamiliar);
configuracionTblFormacionAcademica(json.formacionacademica);
configuracionTblExperienciaLaboral(json.experiencialaboral);
configuracionDatosAdministrativos(json.datosAdministrativos)
codigoFicha = json.codigoFicha;
document.querySelector('#lblFoto').setAttribute('src', `http:\\\\${window.location.hostname}/img/${json.foto}`)
$('#lblTipoDocumento').text(`${json.tipoDocumentoDescripcionLarga} (${json.tipoDocumentoDescripcionCorta})`);
$('#lblNumeroDocumento').text(json.numeroDocumento);
$('#lblNumeroRUC').text(json.ruc);
$('#lblApellidoPaterno').text(json.apellidoPaterno);
$('#lblApellidoMaterno').text(json.apellidoMaterno);
$('#lblNombre').text(json.nombre);
$('#lblSexo').text(json.sexo);
$('#lblEstadoCivil').text(json.estadoCivil);
$('#lblFechaNacimiento').text(json.fechaNacimiento);
$('#lblNacionalidad').text(json.gentilicio);
$('#lblDepartamentoNacimiento').text(json.nombreDepartamentoNacimiento);
$('#lblProvinciaNacimiento').text(json.nombreProvinciaNacimiento);
$('#lblDistritoNacimiento').text(json.nombreDistritoNacimiento);
$('#lblDireccionDocumento').text(json.direccionDocumento);
$('#lblTelefonoFijo').text(json.telefonoFijo);
$('#lblTelefonoMovil').text(json.telefonoMovil);
$('#lblCorreoElectronico').text(json.correo);
$('#lblDepartamentoResidencia').text(json.nombreDepartamentoResidencia);
$('#lblProvinciaResidencia').text(json.nombreProvinciaResidencia);
$('#lblDistritoResidencia').text(json.nombreDistritoResidencia);
$('#lblDireccionResidencia').text(json.direccionResidencia);
$('#lblFondoPension').text(json.fondoPensionDescripcionCorta);
$('#latitudResidencia').val(json.latitud);
$('#longitudResidencia').val(json.longitud);
configuracionTblFamiliar(json.cargafamiliar);
configuracionTblFormacionAcademica(json.formacionacademica);
configuracionTblExperienciaLaboral(json.experiencialaboral);
configuracionDatosAdministrativos(json.datosAdministrativos)
codigoFicha = json.codigoFicha;
document.querySelector('#lblFoto').setAttribute('src', `http:\\\\${window.location.hostname}/img/${json.foto}`)
}
function configuracionTblFamiliar(cargafamiliar) {
let tblFamiliar = new SimpleTable({
element: 'tblFamiliar', //id from the table
data: cargafamiliar,
no_data_text: 'No tiene registros',
columns: [
{
data: function (data) {
return `${data.apellidoPaterno} ${data.apellidoMaterno}, ${data.nombre}`;
}
},
{data: 'nombreParentesco'},
{data: 'fechaNacimiento'},
{data: 'nombreTipoDocumentoDescripcionLarga'},
{data: 'numeroDocumento'},
{data: 'telefono'}
]
});
tblFamiliar.createBody();
let tblFamiliar = new SimpleTable({
element: 'tblFamiliar', //id from the table
data: cargafamiliar,
no_data_text: 'No tiene registros',
columns: [
{
data: function (data) {
return `${data.apellidoPaterno} ${data.apellidoMaterno}, ${data.nombre}`;
}
},
{data: 'nombreParentesco'},
{data: 'fechaNacimiento'},
{data: 'nombreTipoDocumentoDescripcionLarga'},
{data: 'numeroDocumento'},
{data: 'telefono'}
]
});
tblFamiliar.createBody();
}
function configuracionTblFormacionAcademica(formacionacademica) {
let tblFormacionAcademica = new SimpleTable({
element: 'tblFormacionAcademica', //id from the table
data: formacionacademica,
no_data_text: 'No tiene registros',
columns: [
{data: 'nivelEstudio'},
{data: 'estadoEstudio'},
{data: 'nombreCentroEstudios'},
{data: 'nombreCarreraProfesional'},
{data: 'fechaInicio'},
{data: data => data.fechaFin === '' ? '-' : data.fechaFin}
]
});
tblFormacionAcademica.createBody();
let tblFormacionAcademica = new SimpleTable({
element: 'tblFormacionAcademica', //id from the table
data: formacionacademica,
no_data_text: 'No tiene registros',
columns: [
{data: 'nivelEstudio'},
{data: 'estadoEstudio'},
{data: 'nombreCentroEstudios'},
{data: 'nombreCarreraProfesional'},
{data: 'fechaInicio'},
{data: data => data.fechaFin === '' ? '-' : data.fechaFin}
]
});
tblFormacionAcademica.createBody();
}
function configuracionTblExperienciaLaboral(experiencialaboral) {
let tblExperienciaLaboral = new SimpleTable({
element: 'tblExperienciaLaboral', //id from the table
data: experiencialaboral,
no_data_text: 'No tiene registros',
columns: [
{data: 'nombreEmpresa'},
{data: 'nombreCargo'},
{data: 'fechaInicio'},
{data: 'fechaFin'},
{data: 'telefono'}
]
});
tblExperienciaLaboral.createBody();
let tblExperienciaLaboral = new SimpleTable({
element: 'tblExperienciaLaboral', //id from the table
data: experiencialaboral,
no_data_text: 'No tiene registros',
columns: [
{data: 'nombreEmpresa'},
{data: 'nombreCargo'},
{data: 'fechaInicio'},
{data: 'fechaFin'},
{data: 'telefono'}
]
});
tblExperienciaLaboral.createBody();
}
function configuracionDatosAdministrativos(obj) {
codigoSedeArea = obj.codigoSedeArea
codigoAreaCargo = obj.codigoAreaCargo
$('#lblSede').text(obj.sede)
$('#lblArea').text(obj.area)
$('#lblCargo').text(obj.cargo)
codigoSedeArea = obj.codigoSedeArea
codigoAreaCargo = obj.codigoAreaCargo
$('#lblSede').text(obj.sede)
$('#lblArea').text(obj.area)
$('#lblCargo').text(obj.cargo)
}
function inicializarComponentes() {
$('.bootstrap-select').selectpicker();
$('.bootstrap-select').selectpicker();
$('#dpFechaIngreso, #dpFechaTermino').attr('readonly', true);
$('#dpFechaIngreso, #dpFechaTermino').attr('readonly', true);
$('#dpFechaIngreso, #dpFechaTermino').datepicker({
onSelect: function (date) {
$('#dpFechaIngreso, #dpFechaTermino').datepicker({
onSelect: function (date) {
// console.log(date);
},
dateFormat: 'dd/mm/yy',
showButtonPanel: false
});
$.datepicker.regional['es'] = {
closeText: 'Cerrar',
prevText: '<Ant',
nextText: 'Sig>',
currentText: 'Hoy',
monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
monthNamesShort: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'],
dayNames: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
dayNamesShort: ['Dom', 'Lun', 'Mar', 'Mié', 'Juv', 'Vie', 'Sáb'],
dayNamesMin: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sá'],
weekHeader: 'Sm',
dateFormat: 'dd/mm/yy',
firstDay: 1,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: ''
};
$.datepicker.setDefaults($.datepicker.regional['es']);
$('.js-example-basic-multiple').select2({
multiple: true,
placeholder: 'Ingrese los expedientes que corresponden al personal'
});
},
dateFormat: 'dd/mm/yy',
showButtonPanel: false
});
$.datepicker.regional['es'] = {
closeText: 'Cerrar',
prevText: '<Ant',
nextText: 'Sig>',
currentText: 'Hoy',
monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
monthNamesShort: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'],
dayNames: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
dayNamesShort: ['Dom', 'Lun', 'Mar', 'Mié', 'Juv', 'Vie', 'Sáb'],
dayNamesMin: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sá'],
weekHeader: 'Sm',
dateFormat: 'dd/mm/yy',
firstDay: 1,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: ''
};
$.datepicker.setDefaults($.datepicker.regional['es']);
$('.js-example-basic-multiple').select2({
multiple: true,
placeholder: 'Ingrese los expedientes que corresponden al personal'
});
}
// listar tipo de pago
// dependiento del cargo seleccionado
function listarTipoPago() {
if (codigoAreaCargo === 5) {
tipoFicha = 'D';
} else {
tipoFicha = 'A';
}
$.ajax({
type: 'POST',
url: '../TipoPagoServlet',
data: {accion: 'listarTipoPago', codigoAreaCargo: codigoAreaCargo},
beforeSend: function () {
load('Listando tipo de pagos');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
let tipoPago = data.data.tipoPagos;
let cboTipoPago = '<option value="0">[SELECCIONAR]</option>';
for (let i in tipoPago) {
cboTipoPago += '<option value="' + tipoPago[i].codigoTipoPago + '">' + tipoPago[i].nombre + '</option>';
}
$('#cboTipoPago').html(cboTipoPago);
$('#cboTipoPago').selectpicker('refresh');
}
}
});
if (codigoAreaCargo === 5) {
tipoFicha = 'D';
} else {
tipoFicha = 'A';
}
$.ajax({
type: 'POST',
url: '../TipoPagoServlet',
data: {accion: 'listarTipoPago', codigoAreaCargo: codigoAreaCargo},
beforeSend: function () {
load('Listando tipo de pagos');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
let tipoPago = data.data.tipoPagos;
let cboTipoPago = '<option value="0">[SELECCIONAR]</option>';
for (let i in tipoPago) {
cboTipoPago += '<option value="' + tipoPago[i].codigoTipoPago + '">' + tipoPago[i].nombre + '</option>';
}
$('#cboTipoPago').html(cboTipoPago);
$('#cboTipoPago').selectpicker('refresh');
}
}
});
}
// validar existencia de cargo seleccionado
function validarExistenciaTipoPago() {
$('#cboTipoPago').on('change', function () {
datosAdministrativosDocente(0);
let codigoTipoPago = parseInt($('#cboTipoPago').val());
if (isNaN(codigoTipoPago)) {
$(location).attr('href', 'templates/close.jsp');
}
$('#sueldoEscalafon').text('S/. 0.00');
$('#txtSueldoMensual').val('0.00');
if (codigoTipoPago === 0) {
$('#sueldoEscalafon').text('S/. 0.00');
$('#txtSueldoMensual').val('0.00');
} else {
$.ajax({
type: 'POST',
url: '../TipoPagoServlet',
data: {accion: 'validarExistenciaTipoPago', codigoAreaCargo: codigoAreaCargo, codigoTipoPago: codigoTipoPago},
beforeSend: function () {
$('#cboTipoPago').on('change', function () {
datosAdministrativosDocente(0);
let codigoTipoPago = parseInt($('#cboTipoPago').val());
if (isNaN(codigoTipoPago)) {
$(location).attr('href', 'templates/close.jsp');
}
$('#sueldoEscalafon').text('S/. 0.00');
$('#txtSueldoMensual').val('0.00');
if (codigoTipoPago === 0) {
$('#sueldoEscalafon').text('S/. 0.00');
$('#txtSueldoMensual').val('0.00');
} else {
$.ajax({
type: 'POST',
url: '../TipoPagoServlet',
data: {accion: 'validarExistenciaTipoPago', codigoAreaCargo: codigoAreaCargo, codigoTipoPago: codigoTipoPago},
beforeSend: function () {
// load('Validando existencia de tipo pago');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
// si el resultado de existencia es 'false', redireccion al login
if (!data.status) {
$(location).attr('href', 'templates/close.jsp');
} else {
obtenerAreaCargoTipoPago(codigoAreaCargo, codigoTipoPago);
}
}
}
});
}
});
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
// si el resultado de existencia es 'false', redireccion al login
if (!data.status) {
$(location).attr('href', 'templates/close.jsp');
} else {
obtenerAreaCargoTipoPago(codigoAreaCargo, codigoTipoPago);
}
}
}
});
}
});
}
// obtener area cargo tipo pago
function obtenerAreaCargoTipoPago(codigoAreaCargo, codigoTipoPago) {
$.ajax({
type: 'POST',
url: '../AreaCargoTipoPagoServlet',
data: {accion: 'obtenerAreaCargoTipoPago', codigoAreaCargo: codigoAreaCargo, codigoTipoPago: codigoTipoPago},
beforeSend: function (xhr) {
load('Obteniendo resultados - areacargo/tipopago');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
if (data.status) {
codigoAreaCargoTipoPago = data.data.getResultedKey;
obtenerEscalafonAreaCargoTipoPago(codigoAreaCargoTipoPago);
datosAdministrativosDocente(codigoAreaCargoTipoPago);
}
}
}
});
$.ajax({
type: 'POST',
url: '../AreaCargoTipoPagoServlet',
data: {accion: 'obtenerAreaCargoTipoPago', codigoAreaCargo: codigoAreaCargo, codigoTipoPago: codigoTipoPago},
beforeSend: function (xhr) {
load('Obteniendo resultados - areacargo/tipopago');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
if (data.status) {
codigoAreaCargoTipoPago = data.data.getResultedKey;
obtenerEscalafonAreaCargoTipoPago(codigoAreaCargoTipoPago);
datosAdministrativosDocente(codigoAreaCargoTipoPago);
}
}
}
});
}
// obtener sueldo escalafon
function obtenerEscalafonAreaCargoTipoPago(codigoAreaCargoTipoPago) {
$.ajax({
type: 'POST',
url: '../EscalafonServlet',
data: {accion: 'obtenerEscalafonAreaCargoTipoPago', codigoAreaCargoTipoPago: codigoAreaCargoTipoPago},
beforeSend: function () {
load('Cargando escalafon');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
if (data.status) {
$('#sueldoEscalafon').text('S/. ' + data.data.sueldo);
$('#txtSueldoMensual').val(data.data.sueldo);
validarObservacion();
sueldoEscalafon = data.data.sueldo;
} else {
$('#sueldoEscalafon').text('S/. -.-');
}
}
}
});
$.ajax({
type: 'POST',
url: '../EscalafonServlet',
data: {accion: 'obtenerEscalafonAreaCargoTipoPago', codigoAreaCargoTipoPago: codigoAreaCargoTipoPago},
beforeSend: function () {
load('Cargando escalafon');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
if (data.status) {
$('#sueldoEscalafon').text('S/. ' + data.data.sueldo);
$('#txtSueldoMensual').val(data.data.sueldo);
validarObservacion();
sueldoEscalafon = data.data.sueldo;
} else {
$('#sueldoEscalafon').text('S/. -.-');
}
}
}
});
}
// construir datos administrativos de docente
// segun area cargo tipo pago seleccionado
function datosAdministrativosDocente(codigoAreaCargoTipoPago) {
if (codigoAreaCargoTipoPago === 5) {
$('#divContenidoDatoAdministrativo').html(`
if (codigoAreaCargoTipoPago === 5) {
$('#divContenidoDatoAdministrativo').html(`
<div class="col-md-6">
<div class="row">
<div class="col-md-4">
......@@ -328,8 +328,8 @@ function datosAdministrativosDocente(codigoAreaCargoTipoPago) {
</div>
</div>
</div>`);
} else if (codigoAreaCargoTipoPago === 6) {
$('#divContenidoDatoAdministrativo').html(`
} else if (codigoAreaCargoTipoPago === 6) {
$('#divContenidoDatoAdministrativo').html(`
<div class="col-md-3">
<div class="form-group">
<label class="display-block text-uppercase text-semibold">Sueldo Mensual<span class="text-danger"> (*)</span></label>
......@@ -339,8 +339,8 @@ function datosAdministrativosDocente(codigoAreaCargoTipoPago) {
</div>
</div>
</div>`);
} else if (codigoAreaCargoTipoPago === 19) {
$('#divContenidoDatoAdministrativo').html(`
} else if (codigoAreaCargoTipoPago === 19) {
$('#divContenidoDatoAdministrativo').html(`
<div class="col-md-6">
<div class="row">
<div class="col-md-2">
......@@ -381,8 +381,8 @@ function datosAdministrativosDocente(codigoAreaCargoTipoPago) {
</div>
</div>
</div>`);
} else {
$('#divContenidoDatoAdministrativo').html(`
} else {
$('#divContenidoDatoAdministrativo').html(`
<div class="col-md-3">
<div class="form-group">
<label class="display-block text-uppercase text-semibold">Escalafón<span class="text-danger"></span></label>
......@@ -398,26 +398,26 @@ function datosAdministrativosDocente(codigoAreaCargoTipoPago) {
</div>
</div>
</div>`);
}
}
}
// listar expedientes request
let listarExpedientesRequest = () => {
return new Promise((resolve, reject) => {
$.ajax({
url: '../ExpedienteServlet',
type: 'POST',
dataType: 'json',
data: {
accion: 'listarTipoExpedientes'
},
success: function (data, textStatus, jqXHR) {
resolve(data);
}, error: function (jqXHR, textStatus, errorThrown) {
reject('Error al listar expedientes');
}
});
});
return new Promise((resolve, reject) => {
$.ajax({
url: '../ExpedienteServlet',
type: 'POST',
dataType: 'json',
data: {
accion: 'listarTipoExpedientes'
},
success: function (data, textStatus, jqXHR) {
resolve(data);
}, error: function (jqXHR, textStatus, errorThrown) {
reject('Error al listar expedientes');
}
});
});
};
// listar expedientes response
let listarExpedientesResponse = () => {
......@@ -425,11 +425,11 @@ let listarExpedientesResponse = () => {
};
// listar options
let createSelectOptions = (obj, valueName, textName) => {
let options = '';
obj.forEach((data) => {
options += `<option value="${data[valueName]}">${data[textName]}</option>`;
});
return options;
let options = '';
obj.forEach((data) => {
options += `<option value="${data[valueName]}">${data[textName]}</option>`;
});
return options;
};
......@@ -437,86 +437,85 @@ let createSelectOptions = (obj, valueName, textName) => {
/* **** VALIDAR FORMULARIO *** */
/* *************************** */
function validarFormularioDatosAdministrativos() {
let formDatosAdministrativos = $('#formDatosAdministrativos');
formDatosAdministrativos.validate({
rules: {
dpFechaIngreso: {
required: true,
dateonly: true
},
dpFechaTermino: {
required: true,
dateonly: true
},
cboTipoPago: {
required: true,
valueNotEquals: "0"
},
txtSueldoMensual: {
required: true,
number: true
},
txtCostoA: {
required: true,
number: true
},
txtCostoB: {
required: true,
number: true
},
txtCostoC: {
required: true,
number: true
},
txtEnlaceAlfresco: {
required: true,
url: true
}
// txtObservacion: {
// required: true
// }
},
messages: {
dpFechaIngreso: {
required: 'El campo es obligatorio',
dateonly: 'Ingrese una fecha válida (dd/mm/yyyy)'
},
dpFechaTermino: {
required: 'El campo es obligatorio',
dateonly: 'Ingrese una fecha válida (dd/mm/yyyy)'
},
cboTipoPago: {
required: 'El campo es obligatorio',
valueNotEquals: 'Debe seleccionar un tipo de pago'
},
txtSueldoMensual: {
required: 'El campo es obligatorio',
number: 'Ingrese un monto válido'
},
txtCostoA: {
required: 'El campo es obligatorio',
number: 'Ingrese un monto válido'
},
txtCostoB: {
required: 'El campo es obligatorio',
number: 'Ingrese un monto válido'
},
txtCostoC: {
required: 'El campo es obligatorio',
number: 'Ingrese un monto válido'
},
txtEnlaceAlfresco: {
required: 'El campo es requerido',
url: 'Ingrese un enlace correcto'
}
// txtObservacion: {
// required: 'El campo es obligatorio'
// }
}
});
return formDatosAdministrativos.valid();
let formDatosAdministrativos = $('#formDatosAdministrativos');
formDatosAdministrativos.validate({
rules: {
dpFechaIngreso: {
required: true,
dateonly: true
},
dpFechaTermino: {
required: true,
dateonly: true
},
cboTipoPago: {
required: true,
valueNotEquals: "0"
},
txtSueldoMensual: {
required: true,
number: true
},
txtCostoA: {
required: true,
number: true
},
txtCostoB: {
required: true,
number: true
},
txtCostoC: {
required: true,
number: true
},
txtEnlaceAlfresco: {
required: true,
url: true
},
txtObservacion: {
required: true
}
},
messages: {
dpFechaIngreso: {
required: 'El campo es obligatorio',
dateonly: 'Ingrese una fecha válida (dd/mm/yyyy)'
},
dpFechaTermino: {
required: 'El campo es obligatorio',
dateonly: 'Ingrese una fecha válida (dd/mm/yyyy)'
},
cboTipoPago: {
required: 'El campo es obligatorio',
valueNotEquals: 'Debe seleccionar un tipo de pago'
},
txtSueldoMensual: {
required: 'El campo es obligatorio',
number: 'Ingrese un monto válido'
},
txtCostoA: {
required: 'El campo es obligatorio',
number: 'Ingrese un monto válido'
},
txtCostoB: {
required: 'El campo es obligatorio',
number: 'Ingrese un monto válido'
},
txtCostoC: {
required: 'El campo es obligatorio',
number: 'Ingrese un monto válido'
},
txtEnlaceAlfresco: {
required: 'El campo es requerido',
url: 'Ingrese un enlace correcto'
},
txtObservacion: {
required: 'El campo es obligatorio'
}
}
});
return formDatosAdministrativos.valid();
}
/* *************************** */
......@@ -529,129 +528,129 @@ function validarFormularioDatosAdministrativos() {
* @argument {JSON Object} json
*/
function registrarDatosAdministrativosRequest(json) {
return new Promise((resolve, reject) => {
// ajax registar datos administrativos
$.ajax({
type: 'POST',
url: '../FichaLaboralServlet',
data: {accion: 'registrarFichaLaboral', json: JSON.stringify(json)},
beforeSend: function () {
load('Registrando datos administrativos, por favor espere');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
console.log(data);
if (data.status) {
resolve(data.message);
} else {
errorMessage(data.message);
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
rejecet('No se pudo procesar la solicitud registrarDatosAdministrativosRequest : ' + errorThrown);
}
});
});
return new Promise((resolve, reject) => {
// ajax registar datos administrativos
$.ajax({
type: 'POST',
url: '../FichaLaboralServlet',
data: {accion: 'registrarFichaLaboral', json: JSON.stringify(json)},
beforeSend: function () {
load('Registrando datos administrativos, por favor espere');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
console.log(data);
if (data.status) {
resolve(data.message);
} else {
errorMessage(data.message);
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
rejecet('No se pudo procesar la solicitud registrarDatosAdministrativosRequest : ' + errorThrown);
}
});
});
}
// Registrar datos administrativa
function registrarDatosAdministrativos() {
$('#btnRegistrarFicha').on('click', function () {
let expediente = $('.js-example-basic-multiple').select2("val");
if (expediente === null) {
warningMessage('Error, debe seleccionar al menos un expediente adjunto del personal');
} else {
let arrExpediente = [];
expediente.map((obj, i, array) => {
arrExpediente.push({id: obj});
});
let enlaceAlfresco = $('#txtEnlaceAlfresco').val();
if (isUrlValid(enlaceAlfresco)) {
if (validarFormularioDatosAdministrativos()) {
let jsonRequest = {
codigoFicha: codigoFicha,
enlaceAlfresco: enlaceAlfresco,
expediente: arrExpediente,
fechaIngreso: $('#dpFechaIngreso').val(),
fechaTermino: $('#dpFechaTermino').val(),
codigoSedeArea: codigoSedeArea,
codigoAreaCargo: codigoAreaCargo,
tipoFicha: tipoFicha,
codigoAreaCargoTipoPago: codigoAreaCargoTipoPago,
observacion: $('#txtObservacion').val() === '' ? '-' : $('#txtObservacion').val()
};
if (tipoFicha === 'A') {
jsonRequest.sueldoEscalafon = sueldoEscalafon;
jsonRequest.sueldoMensual = $('#txtSueldoMensual').val() === '' ? '0.00' : $('#txtSueldoMensual').val();
} else if (tipoFicha === 'D') {
if (codigoAreaCargo === 5) {
if (codigoAreaCargoTipoPago === 5) {
jsonRequest.costoA = $('#txtCostoA').val() === '' ? '0.00' : $('#txtCostoA').val();
jsonRequest.costoB = $('#txtCostoB').val() === '' ? '0.00' : $('#txtCostoB').val();
jsonRequest.costoC = $('#txtCostoC').val() === '' ? '0.00' : $('#txtCostoC').val();
} else if (codigoAreaCargoTipoPago === 6) {
jsonRequest.sueldoMensual = $('#txtSueldoMensual').val() === '' ? '0.00' : $('#txtSueldoMensual').val();
} else if (codigoAreaCargoTipoPago === 19) {
jsonRequest.costoA = $('#txtCostoA').val() === '' ? '0.00' : $('#txtCostoA').val();
jsonRequest.costoB = $('#txtCostoB').val() === '' ? '0.00' : $('#txtCostoB').val();
jsonRequest.costoC = $('#txtCostoC').val() === '' ? '0.00' : $('#txtCostoC').val();
jsonRequest.sueldoMensual = $('#txtSueldoMensual').val() === '' ? '0.00' : $('#txtSueldoMensual').val();
}
}
}
$.confirm({
icon: 'glyphicon glyphicon-question-sign',
theme: 'material',
closeIcon: true,
animation: 'scale',
type: 'dark',
title: 'Confirmar',
content: '<span class="text-semibold">¿Desea registrar los datos administrativos a la ficha del personal ' + json.apellidoPaterno + ' ' + json.apellidoMaterno + ', ' + json.nombre + '?</span>',
buttons: {
Registrar: {
btnClass: 'btn-success',
action: function () {
registrarDatosAdministrativosRequest(jsonRequest).then((data) => {
$.confirm({
icon: 'fa fa-check fa-lg',
title: 'Registro éxitoso!',
content: `<b>${data}</b>`,
type: 'green',
scrollToPreviousElement: false,
scrollToPreviousElementAnimate: false,
buttons: {
Aceptar: {
text: 'Aceptar',
btnClass: 'btn-green',
action: function () {
$(location).attr('href', 'index.jsp');
}
}
}
});
});
}
},
Cancelar: {
btnClass: 'btn-danger'
}
}
});
} else {
warningMessage('Error, al parecer hay datos ingresados incorrectamente, por favor revisar');
}
} else {
warningMessage('Error, debe ingresar un enlace correcto');
}
}
});
$('#btnRegistrarFicha').on('click', function () {
let expediente = $('.js-example-basic-multiple').select2("val");
if (expediente === null) {
warningMessage('Error, debe seleccionar al menos un expediente adjunto del personal');
} else {
let arrExpediente = [];
expediente.map((obj, i, array) => {
arrExpediente.push({id: obj});
});
let enlaceAlfresco = $('#txtEnlaceAlfresco').val();
if (isUrlValid(enlaceAlfresco)) {
if (validarFormularioDatosAdministrativos()) {
let jsonRequest = {
codigoFicha: codigoFicha,
enlaceAlfresco: enlaceAlfresco,
expediente: arrExpediente,
fechaIngreso: $('#dpFechaIngreso').val(),
fechaTermino: $('#dpFechaTermino').val(),
codigoSedeArea: codigoSedeArea,
codigoAreaCargo: codigoAreaCargo,
tipoFicha: tipoFicha,
codigoAreaCargoTipoPago: codigoAreaCargoTipoPago,
observacion: $('#txtObservacion').val() === '' ? '-' : $('#txtObservacion').val()
};
if (tipoFicha === 'A') {
jsonRequest.sueldoEscalafon = sueldoEscalafon;
jsonRequest.sueldoMensual = $('#txtSueldoMensual').val() === '' ? '0.00' : $('#txtSueldoMensual').val();
} else if (tipoFicha === 'D') {
if (codigoAreaCargo === 5) {
if (codigoAreaCargoTipoPago === 5) {
jsonRequest.costoA = $('#txtCostoA').val() === '' ? '0.00' : $('#txtCostoA').val();
jsonRequest.costoB = $('#txtCostoB').val() === '' ? '0.00' : $('#txtCostoB').val();
jsonRequest.costoC = $('#txtCostoC').val() === '' ? '0.00' : $('#txtCostoC').val();
} else if (codigoAreaCargoTipoPago === 6) {
jsonRequest.sueldoMensual = $('#txtSueldoMensual').val() === '' ? '0.00' : $('#txtSueldoMensual').val();
} else if (codigoAreaCargoTipoPago === 19) {
jsonRequest.costoA = $('#txtCostoA').val() === '' ? '0.00' : $('#txtCostoA').val();
jsonRequest.costoB = $('#txtCostoB').val() === '' ? '0.00' : $('#txtCostoB').val();
jsonRequest.costoC = $('#txtCostoC').val() === '' ? '0.00' : $('#txtCostoC').val();
jsonRequest.sueldoMensual = $('#txtSueldoMensual').val() === '' ? '0.00' : $('#txtSueldoMensual').val();
}
}
}
$.confirm({
icon: 'glyphicon glyphicon-question-sign',
theme: 'material',
closeIcon: true,
animation: 'scale',
type: 'dark',
title: 'Confirmar',
content: '<span class="text-semibold">¿Desea registrar los datos administrativos a la ficha del personal ' + json.apellidoPaterno + ' ' + json.apellidoMaterno + ', ' + json.nombre + '?</span>',
buttons: {
Registrar: {
btnClass: 'btn-success',
action: function () {
registrarDatosAdministrativosRequest(jsonRequest).then((data) => {
$.confirm({
icon: 'fa fa-check fa-lg',
title: 'Registro éxitoso!',
content: `<b>${data}</b>`,
type: 'green',
scrollToPreviousElement: false,
scrollToPreviousElementAnimate: false,
buttons: {
Aceptar: {
text: 'Aceptar',
btnClass: 'btn-green',
action: function () {
$(location).attr('href', 'index.jsp');
}
}
}
});
});
}
},
Cancelar: {
btnClass: 'btn-danger'
}
}
});
} else {
warningMessage('Error, al parecer hay datos ingresados incorrectamente, por favor revisar');
}
} else {
warningMessage('Error, debe ingresar un enlace correcto');
}
}
});
}
/**
......@@ -659,7 +658,7 @@ function registrarDatosAdministrativos() {
* @argument {String} url
*/
function isUrlValid(url) {
return /^(https?|s?ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(url);
return /^(https?|s?ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(url);
}
/**
......@@ -669,54 +668,54 @@ function setearMapa() {
// console.log(json.latitud);
// console.log(json.longitud);
//
myLatLng = {
lat: parseFloat(json.latitud),
lng: parseFloat(json.longitud)
};
myLatLng = {
lat: parseFloat(json.latitud),
lng: parseFloat(json.longitud)
};
let map = new google.maps.Map($('#mapResidencia')[0], {
center: myLatLng,
zoom: 18,
disableDefaultUI: false,
draggable: true
});
let map = new google.maps.Map($('#mapResidencia')[0], {
center: myLatLng,
zoom: 18,
disableDefaultUI: false,
draggable: true
});
getMarker(myLatLng, map);
getMarker(myLatLng, map);
}
function getMarker(myLatLng, map) {
let marker = new google.maps.Marker({
position: myLatLng,
map: map,
draggable: false,
animation: google.maps.Animation.DROP,
anchorPoint: new google.maps.Point(0, -29)
});
let infowindow = new google.maps.InfoWindow();
getAddress(myLatLng, infowindow, map, marker);
let marker = new google.maps.Marker({
position: myLatLng,
map: map,
draggable: false,
animation: google.maps.Animation.DROP,
anchorPoint: new google.maps.Point(0, -29)
});
let infowindow = new google.maps.InfoWindow();
getAddress(myLatLng, infowindow, map, marker);
}
function getAddress(latlng, infowindow, map, marker) {
let geocoder = new google.maps.Geocoder;
geocoder.geocode({'location': latlng}, function (result, status) {
if (status === 'OK') {
infowindow.setContent(
'<div>' +
'<b class="text-uppercase">' + result[0].address_components[1].long_name + '</b> <br/>' +
'<span class="text-muted">' + result[0].formatted_address + '</span> <br/>' +
'</div>'
);
infowindow.open(map, marker);
} else {
load("Cargando mapa");
setTimeout(() => unload(), 2000);
}
});
let geocoder = new google.maps.Geocoder;
geocoder.geocode({'location': latlng}, function (result, status) {
if (status === 'OK') {
infowindow.setContent(
'<div>' +
'<b class="text-uppercase">' + result[0].address_components[1].long_name + '</b> <br/>' +
'<span class="text-muted">' + result[0].formatted_address + '</span> <br/>' +
'</div>'
);
infowindow.open(map, marker);
} else {
load("Cargando mapa");
setTimeout(() => unload(), 2000);
}
});
}
......@@ -724,25 +723,25 @@ function getAddress(latlng, infowindow, map, marker) {
* LISTAR TIPOS DE EXPEDIENTES
*/
function listarTipoExpediente() {
$.ajax({
type: 'POST',
url: '../TipoExpedienteServlet',
data: {'accion': 'listarTipoExpediente'},
beforeSend: function (xhr) {
load('Listando tipos de expedientes..');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
let tipoExpediente = data.data.tipoexpedientes;
let cboTipoExpediente = '';
for (let i in tipoExpediente) {
cboTipoExpediente += '<option value="' + tipoExpediente[i].codigoTipoExpediente + '">' + tipoExpediente[i].nombre + '</option>';
}
$('.js-example-basic-multiple').html(cboTipoExpediente);
}
}
});
$.ajax({
type: 'POST',
url: '../TipoExpedienteServlet',
data: {'accion': 'listarTipoExpediente'},
beforeSend: function (xhr) {
load('Listando tipos de expedientes..');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
let tipoExpediente = data.data.tipoexpedientes;
let cboTipoExpediente = '';
for (let i in tipoExpediente) {
cboTipoExpediente += '<option value="' + tipoExpediente[i].codigoTipoExpediente + '">' + tipoExpediente[i].nombre + '</option>';
}
$('.js-example-basic-multiple').html(cboTipoExpediente);
}
}
});
}
......@@ -752,48 +751,48 @@ function listarTipoExpediente() {
* @returns {String}
*/
function registrarTipoExpedienterequest(nombre) {
return new Promise((resolve, rejecet) => {
$.ajax({
type: 'POST',
url: '../TipoExpedienteServlet',
data: {accion: 'registrarTipoExpediente', nombre: nombre},
beforeSend: function (xhr) {
load('Registrando tipo expediente, por favor espere');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
if (data.status) {
resolve(data);
} else {
errorMessage(data.message);
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
rejecet('No se pudo procesarr la solicitud registrarTipoExpedienterequest : ' + errorThrown);
}
});
});
return new Promise((resolve, rejecet) => {
$.ajax({
type: 'POST',
url: '../TipoExpedienteServlet',
data: {accion: 'registrarTipoExpediente', nombre: nombre},
beforeSend: function (xhr) {
load('Registrando tipo expediente, por favor espere');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
if (data.status) {
resolve(data);
} else {
errorMessage(data.message);
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
rejecet('No se pudo procesarr la solicitud registrarTipoExpedienterequest : ' + errorThrown);
}
});
});
}
/**
* AGREGAR NUEVO TIPO DE EXPEDIENTE
*/
function registrarTipoExpediente() {
$('#btnAgregarTipoExpediente').on('click', () => {
$.confirm({
icon: 'fa fa-question',
draggable: false,
animationBounce: 1.5,
closeAnimation: 'opacity',
theme: 'modern',
closeIcon: false,
animation: 'scale',
backgroundDismissAnimation: 'glow',
type: 'blue',
title: 'Ingrese un nuevo tipo de expediente',
content: `
$('#btnAgregarTipoExpediente').on('click', () => {
$.confirm({
icon: 'fa fa-question',
draggable: false,
animationBounce: 1.5,
closeAnimation: 'opacity',
theme: 'modern',
closeIcon: false,
animation: 'scale',
backgroundDismissAnimation: 'glow',
type: 'blue',
title: 'Ingrese un nuevo tipo de expediente',
content: `
<div class="form-group">
<label class="text-semibold">Tipo expediente:</label>
......@@ -801,36 +800,36 @@ function registrarTipoExpediente() {
</div>
`,
buttons: {
'Registrar': {
btnClass: 'btn-success',
action: () => {
let nombre = $('#txtTipoExpediente').val().trim();
if (!nombre) {
warningMessage('Debe ingresar un tipo de expediente');
return false;
}
registrarTipoExpedienterequest(nombre).then((response) => {
// add new option
var data = {
id: response.data.id,
text: response.data.data
};
var newOption = new Option(data.text.toUpperCase(), data.id, false, false);
$('.js-example-basic-multiple').append(newOption).trigger('change');
successMessage(response.message);
});
}
},
'Cancelar': {
btnClass: 'btn-danger'
}
}
});
});
buttons: {
'Registrar': {
btnClass: 'btn-success',
action: () => {
let nombre = $('#txtTipoExpediente').val().trim();
if (!nombre) {
warningMessage('Debe ingresar un tipo de expediente');
return false;
}
registrarTipoExpedienterequest(nombre).then((response) => {
// add new option
var data = {
id: response.data.id,
text: response.data.data
};
var newOption = new Option(data.text.toUpperCase(), data.id, false, false);
$('.js-example-basic-multiple').append(newOption).trigger('change');
successMessage(response.message);
});
}
},
'Cancelar': {
btnClass: 'btn-danger'
}
}
});
});
}
/**
......@@ -839,29 +838,29 @@ function registrarTipoExpediente() {
*/
let validObservacion = false;
function validarObservacion() {
$('#txtSueldoMensual').on('keyup', () => {
let sueldoPropuesto = $('#txtSueldoMensual').val().trim();
console.log(validarFormularioDatosAdministrativos());
if (validarFormularioDatosAdministrativos()) {
console.log('cambio');
console.log(sueldoEscalafon);
console.log(sueldoPropuesto);
if (sueldoPropuesto !== sueldoEscalafon) {
console.log('son diferentes');
$('#txtObservacion').rules('add', {
required: true,
messages: {
required: "Este campo es requerido, por favor ingrese una observación"
}
});
} else {
console.log('son iguales');
$('#txtObservacion').rules('remove', 'required');
}
} else {
$('#txtObservacion').rules('remove', 'required');
}
});
$('#txtSueldoMensual').on('keyup', () => {
let sueldoPropuesto = $('#txtSueldoMensual').val().trim();
console.log(validarFormularioDatosAdministrativos());
if (validarFormularioDatosAdministrativos()) {
console.log('cambio');
console.log(sueldoEscalafon);
console.log(sueldoPropuesto);
if (sueldoPropuesto !== sueldoEscalafon) {
console.log('son diferentes');
$('#txtObservacion').rules('add', {
required: true,
messages: {
required: "Este campo es requerido, por favor ingrese una observación"
}
});
} else {
console.log('son iguales');
$('#txtObservacion').rules('remove', 'required');
}
} else {
$('#txtObservacion').rules('remove', 'required');
}
});
}
\ No newline at end of file
......@@ -336,7 +336,7 @@ const fichasAdministrativo = {
buttons: {left: 'Aceptar'}
}).then(flag => {
if (flag) {
window.location = 'lotesFicha.jsp'
$('#cboCriterioFiltroFicha').change()
}
})
} else {
......@@ -420,7 +420,7 @@ const fichasDocente = {
buttons: {left: 'Aceptar'}
}).then(flag => {
if (flag) {
// window.location = 'lotesFicha.jsp'
$('#cboCriterioFiltroFicha').change()
}
})
} else {
......@@ -494,6 +494,7 @@ const getDataDocenteJSON = () => {
let costob = row.eq(6).text()
let costoc = row.eq(7).text()
let observacion = row.eq(8).find('input').val()
let horario = $('#tblFichas').DataTable().row(i).data().observacion
let json = `
{
"codigoFicha" : ${codigoFicha},
......@@ -502,7 +503,8 @@ const getDataDocenteJSON = () => {
"costoa":"${costoa}",
"costob":"${costob}",
"costoc":"${costoc}",
"observacion":"${observacion}"
"observacion":"${observacion}",
"horario":"${horario}"
}
`
jsonData.push(JSON.parse(json))
......
......@@ -41,6 +41,11 @@
<input type="hidden" name="paramsActividadFicha" id="paramsActividadFicha"/>
</form>
<form action="../ContratoServlet" method="post" id="formPDF" target="_blank">
<input type="hidden" name="accion" value="contratoPdf" />
<input type="hidden" name="json" id="data" value="" />
</form>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div class="panel so-card-2">
......@@ -149,7 +154,24 @@
<h6 class="panel-title">Contratos</h6>
</div>
<div id="divListaContratos">
<table class="table table-bordered table-xxs table-striped" id="tblContrato">
<thead>
<tr>
<th>Personal</th>
<th>Documento de Identidad</th>
<th>Area</th>
<th>Cargo</th>
<th>Fecha Inicio</th>
<th>Tipo Contrato</th>
<th>Razon Social</th>
<th>Estado</th>
<th>Accion</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
......
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