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)
// }
// })
})
}
}
......
......@@ -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