Commit b2fb3515 by Luis Gangas

[add] contratos template

parent dd3f466b
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="f1229581-2498-4c33-b7b4-f715a5fbe428" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
</list>
<list default="true" id="f1229581-2498-4c33-b7b4-f715a5fbe428" name="Default Changelist" comment="" />
<ignored path="$PROJECT_DIR$/.tmp/" />
<ignored path="$PROJECT_DIR$/temp/" />
<ignored path="$PROJECT_DIR$/tmp/" />
......@@ -17,12 +15,13 @@
<session id="1890756217">
<usages-collector id="statistics.lifecycle.project">
<counts>
<entry key="project.closed" value="6" />
<entry key="project.closed" value="7" />
<entry key="project.open.time.0" value="1" />
<entry key="project.open.time.11" value="1" />
<entry key="project.open.time.12" value="1" />
<entry key="project.open.time.13" value="1" />
<entry key="project.open.time.2" value="2" />
<entry key="project.opened" value="4" />
<entry key="project.opened" value="5" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.extensions.edit">
......@@ -129,16 +128,17 @@
<workItem from="1542131520488" duration="128000" />
<workItem from="1542131715493" duration="780000" />
<workItem from="1542237645666" duration="600000" />
<workItem from="1542310172630" duration="248000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="6497000" />
<option name="totallyTimeSpent" value="6745000" />
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
<layout>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.24973656" />
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.24973656" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" />
......@@ -149,7 +149,7 @@
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="Version Control" order="8" visible="true" weight="0.32929516" />
<window_info active="true" anchor="bottom" id="Version Control" order="8" visible="true" weight="0.32929516" />
<window_info anchor="bottom" id="Terminal" order="9" />
<window_info anchor="bottom" id="Event Log" order="10" side_tool="true" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
......
......@@ -57,6 +57,7 @@
</condition>
<condition property="have.sources">
<or>
<available file="${src.resources.dir}"/>
<available file="${src.dir}"/>
</or>
</condition>
......@@ -235,6 +236,7 @@
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check">
<fail unless="src.resources.dir">Must set src.resources.dir</fail>
<fail unless="src.dir">Must set src.dir</fail>
<fail unless="test.src.dir">Must set test.src.dir</fail>
<fail unless="build.dir">Must set build.dir</fail>
......@@ -280,7 +282,7 @@ or ant -Dj2ee.platform.classpath=&lt;server_classpath&gt; (where no properties f
</target>
<target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors">
<macrodef name="javac" uri="http://www.netbeans.org/ns/web-project/2">
<attribute default="${src.dir}" name="srcdir"/>
<attribute default="${src.resources.dir}:${src.dir}" name="srcdir"/>
<attribute default="${build.classes.dir}" name="destdir"/>
<attribute default="${javac.classpath}:${j2ee.platform.classpath}" name="classpath"/>
<attribute default="${javac.processorpath}" name="processorpath"/>
......@@ -318,7 +320,7 @@ or ant -Dj2ee.platform.classpath=&lt;server_classpath&gt; (where no properties f
</target>
<target depends="-init-ap-cmdline-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal">
<macrodef name="javac" uri="http://www.netbeans.org/ns/web-project/2">
<attribute default="${src.dir}" name="srcdir"/>
<attribute default="${src.resources.dir}:${src.dir}" name="srcdir"/>
<attribute default="${build.classes.dir}" name="destdir"/>
<attribute default="${javac.classpath}:${j2ee.platform.classpath}" name="classpath"/>
<attribute default="${javac.processorpath}" name="processorpath"/>
......@@ -349,7 +351,7 @@ or ant -Dj2ee.platform.classpath=&lt;server_classpath&gt; (where no properties f
</target>
<target depends="-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac">
<macrodef name="depend" uri="http://www.netbeans.org/ns/web-project/2">
<attribute default="${src.dir}" name="srcdir"/>
<attribute default="${src.resources.dir}:${src.dir}" name="srcdir"/>
<attribute default="${build.classes.dir}" name="destdir"/>
<attribute default="${javac.classpath}:${j2ee.platform.classpath}" name="classpath"/>
<sequential>
......@@ -874,6 +876,7 @@ exists or setup the property manually. For example like this:
<target depends="init, deps-jar, -pre-pre-compile, -pre-compile, -copy-manifest, -copy-persistence-xml, -copy-webdir, library-inclusion-in-archive,library-inclusion-in-manifest" if="have.sources" name="-do-compile">
<webproject2:javac destdir="${build.classes.dir}" gensrcdir="${build.generated.sources.dir}"/>
<copy todir="${build.classes.dir}">
<fileset dir="${src.resources.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
<fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
</target>
......@@ -902,6 +905,7 @@ exists or setup the property manually. For example like this:
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
<webproject2:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}"/>
<copy todir="${build.classes.dir}">
<fileset dir="${src.resources.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
<fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
</target>
......@@ -1305,6 +1309,9 @@ exists or setup the property manually. For example like this:
<classpath>
<path path="${javac.classpath}:${j2ee.platform.classpath}"/>
</classpath>
<fileset dir="${src.resources.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
......@@ -1313,6 +1320,9 @@ exists or setup the property manually. For example like this:
</fileset>
</javadoc>
<copy todir="${dist.javadoc.dir}">
<fileset dir="${src.resources.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
......
build.xml.data.CRC32=42eed091
build.xml.data.CRC32=fb4bb63b
build.xml.script.CRC32=bc6fa0f2
build.xml.stylesheet.CRC32=651128d4@1.77.1.1
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
nbproject/build-impl.xml.data.CRC32=42eed091
nbproject/build-impl.xml.script.CRC32=1d158aee
nbproject/build-impl.xml.data.CRC32=fb4bb63b
nbproject/build-impl.xml.script.CRC32=85ee5a9a
nbproject/build-impl.xml.stylesheet.CRC32=99ea4b56@1.77.1.1
nbproject/jaxws-build.xml.stylesheet.CRC32=6608c2cf
......@@ -94,6 +94,7 @@ runmain.jvmargs=
source.encoding=UTF-8
source.root=src
src.dir=${source.root}/java
src.resources.dir=src\\main\\resources
test.src.dir=test
war.content.additional=
war.ear.name=${war.name}
......
......@@ -38,6 +38,7 @@
</web-module-libraries>
<web-module-additional-libraries/>
<source-roots>
<root id="src.resources.dir"/>
<root id="src.dir"/>
</source-roots>
<test-roots>
......
Conste por el presente documento, que se suscribe en duplicado, el Contrato de trabajo sujeto a modalidad por necesidad de mercado, celebran, de una parte, @razonSocial, con Registro Único de Contribuyentes Nº @ruc con domicilio real en @domicilioReal, debidamente representada por @nombreResponsable con D.N.I. Nº @dniResponsable, a quien en adelante se le denominará EL EMPLEADOR; y de la otra parte, don(doña) , @nombrePersonal con @tipoDocumento Nº @numeroDocumento, domiciliado(a) en @domicilioPersonal - @distritoPersonal - , a quien en adelante se le denominará EL TRABAJADOR, en los términos y condiciones siguientes.@br@br
PRIMERO EL EMPLEADOR es una institución educativa, cuyo objeto social es el de brindar servicios educativos y que ha sido debidamente autorizada estando inscrita en la Partida Nº @numeroPartida del Registro de Personas Jurídicas de los Registros Públicos de Lima.@br@br
EL EMPLEADOR requiere cubrir las necesidades del área administrativa con el objeto de atender las distintas actividades producidas en nuestrasoficinas dado el incremento del número de alumnos en los últimos años, requiriéndose por tanto alcanzar un mayor número de colaboradores para la atención y realización de las distintas actividades propias del objeto social, siendo necesario celebrar la presente contratación sujeta a modalidad por necesidad del mercado, conforme al artículo 58° del Decreto Supremo N° 003-97-TR – Texto Único Ordenado del Decreto Legislativo 728 – Ley de Productividad y Competitividad Laboral y demás normas aplicables.@br@br
SEGUNDO Por el presente documento EL EMPLEADOR contrata temporalmente a EL TRABAJADOR, a fin de que se desempeñe como SECRETARIA y para que ejecute las labores propias y complementarias del puesto antes mencionado, en atención a las causas objetivas descritas en la cláusula primera.@br@br
Por el presente contrato, EL TRABAJADOR se obliga a prestar sus servicios al EMPLEADOR, debiendo someterse al cumplimiento estricto de la labor para la cual ha sido contratado , bajo las directivas de sus jefes, y las que se impartan por necesidades del servicio en ejercicio de las facultades de administración y dirección de la entidad, de conformidad con el artículo 9º del Texto Único Ordenado de la Ley de Productividad y Competitividad Laboral, aprobado por Decreto Supremo Nº 003-97-TR.@br@br
TERCERO El plazo de duración del presente contrato será de 3 MESES por lo que el mismo vencerá sin necesidad de previo aviso el día 31 de marzo del YYYY.@br@br
Queda claramente establecido que la suspensión del contrato de trabajo por alguna de las causales previstas en el artículo 12° del Texto Único Ordenado del Decreto Legislativo 728, Ley de Productividad y Competitividad Laboral, aprobado por Decreto Supremo Nº 003-97-TR, (tales como descanso por maternidad, enfermedad, vacaciones), no interrumpirá el plazo de duración del presente contrato, el cual concluirá indefectiblemente en la fecha acordada para su vencimiento en la presente cláusula.@br@br
CUARTO De conformidad con el artículo 10º del Texto Único Ordenado del Decreto Legislativo 728, Ley de Productividad y Competitividad Laboral, aprobado por Decreto Supremo Nº 003-97-TR, las partes acuerdan que la duración del período de prueba de TRABAJADOR será de tres (3) meses. @br@br
QUINTO EL TRABAJADOR prestará sus servicios en el centro de trabajo indicado por EL EMPLEADOR, cumpliendo la jornada vigente en el mismo y el horario laboral establecido.
El tiempo destinado al refrigerio no forma parte de la jornada de trabajo y se tomará de acuerdo a las disposiciones señaladas por EL EMPLEADOR.@br@br
Las partes estipulan que la jornada laboral de EL TRABAJADOR será rotativa y no mayor a cuarenta y ocho (48) horas a la semana, teniendo facultad el empleador de establecer el día de descanso en la semana, de acuerdo a las necesidades de servicio o producción. Así mismo el empleador se reserva el derecho de establecer los turnos de trabajo, también en función de sus necesidades de servicio o producción enmarcados dentro del presente contrato.@br@br
#¿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
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
Se deja expresa constancia que en caso, EL TRABAJADOR no cumpla con los reglamentos, prácticas y políticas, EL EMPLEADOR quedará facultado a imponer las sanciones que corresponda.@br@br
DECIMO En todo lo no previsto expresamente en el presente contrato, regirán las normas legales vigentes en el Perú al momento de producirse el acontecimiento que las regule. En tal virtud, las estipulaciones del presente convenio serán modificadas por las normas legales que se dicten durante la vigencia del presente contrato. @br@br
Firmado por las partes, en señal de conformidad, en @distritoFirma el 04 de enero del YYYY, en dos (2) ejemplares de idéntico tenor, para constancia de las partes, a cuyo conocimiento será sometido.@br@br
/*
* 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.dao;
import org.json.JSONObject;
/**
*
* @author sistem20user
*/
public interface ContratoDAO {
public JSONObject listarContrato(JSONObject json);
public JSONObject obtenerDataRazonSocialContrato(int razonSocial);
}
......@@ -124,5 +124,8 @@ public abstract class DAOFactory {
/* VACANTES */
public abstract VacanteDAO getVacanteDAO();
/* CONTRATOS */
public abstract ContratoDAO getContratoDAO();
}
/*
* 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.mysqldao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.json.JSONArray;
import org.json.JSONObject;
import trismegistoplanilla.dao.ContratoDAO;
/**
*
* @author sistem20user
*/
public class ContratoMysqlDAO implements ContratoDAO {
@Override
public JSONObject listarContrato(JSONObject json) {
JSONObject jResponse = new JSONObject();
JSONArray jArray = new JSONArray();
Connection cn = null;
PreparedStatement pst = null;
ResultSet rs = null;
try {
cn = MysqlDAOFactory.obtenerConexion("nuevo");
String busqueda = "";
if (!json.isNull("numeroDocumento")) {
busqueda += "and pe.dni = ? ";
}
if (!json.isNull("apellido")) {
busqueda += "and pe.apellidos like concat(?,'%') ";
}
if (!json.isNull("estado")) {
busqueda += "and ec.codigo_tipo_estado_contrato = ? ";
}
if (!json.isNull("tipo")) {
busqueda += "and tc.tipo_contrato_codigo = ? ";
}
if (!json.isNull("razonSocial")) {
busqueda += "and rs.codigo_razon_social = ? ";
}
if (!json.isNull("tipoTrabajador")) {
busqueda += "and co.tipo_trabajador = ? ";
}
String sql = ""
+ "select "
+ "co.contrato_codigo, "
+ "pe.codper, "
+ "CONCAT(co.apellidos,', ',co.nombres) nombrePersonal, "
+ "co.documento_identidad, "
+ "co.tipo_documento_identidad, "
+ "co.area_laboral, "
+ "co.cargo_laboral, "
+ "DATE_FORMAT(co.fecha_inicio_contrato,'%d/%m/%Y') fechaInicio, "
+ "ec.descripcion estadoContrato, "
+ "rs.nombre razonSocial,"
+ "tc.descripcion tipoContrato "
+ "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 "
+ "left join razon_social rs on rs.codigo_razon_social = co.codigo_razon_social "
+ "left join tipo_contrato tc on tc.tipo_contrato_codigo = co.codigo_tipo_contrato "
+ "where co.codigo_tipo_estado_contrato != 4 "
+ busqueda
+ "order by nombrePersonal ";
pst = cn.prepareStatement(sql);
int q = 1;
if (!json.isNull("numeroDocumento")) {
pst.setString(q++, json.getString("numeroDocumento"));
}
if (!json.isNull("apellido")) {
pst.setString(q++, json.getString("apellido"));
}
if (!json.isNull("estado")) {
pst.setString(q++, json.getString("estado"));
}
if (!json.isNull("tipo")) {
pst.setString(q++, json.getString("tipo"));
}
if (!json.isNull("razonSocial")) {
pst.setString(q++, json.getString("razonSocial"));
}
if (!json.isNull("tipoTrabajador")) {
pst.setString(q++, json.getString("tipoTrabajador"));
}
rs = pst.executeQuery();
JSONArray data = new JSONArray();
while (rs.next()) {
JSONObject jObj = new JSONObject();
jObj
.put("codigoContrato", rs.getString("contrato_codigo"))
.put("codigoPersonal", rs.getString("codper"))
.put("nombrePersonal", rs.getString("nombrePersonal"))
.put("documentoIdentidad", rs.getString("documento_identidad"))
.put("tipoDocumentoIdentidad", rs.getString("tipo_documento_identidad"))
.put("areaLaboral", rs.getString("area_laboral"))
.put("cargoLaboral", rs.getString("cargo_laboral"))
.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"));
data.put(jObj);
}
jResponse.put("status", true);
jResponse.put("data", data);
} catch (Exception e) {
jResponse.put("status", false);
jResponse.put("message", "Error : " + e.getMessage());
}
return jResponse;
}
public static void main(String[] args) {
System.out.println("" + new ContratoMysqlDAO().listarContrato(new JSONObject()));
}
@Override
public JSONObject obtenerDataRazonSocialContrato(int razonSocial) {
JSONObject jResponse = new JSONObject();
Connection cn = null;
PreparedStatement pst = null;
ResultSet rs = null;
try {
cn = MysqlDAOFactory.obtenerConexion("nuevo");
String sql = ""
+ "select "
+ "rs.nombre razonSocial, "
+ "rs.ruc, "
+ "drs.domicilio_real, "
+ "drs.nombre_representante, "
+ "drs.dni, "
+ "drs.numero_partida_inscrita, "
+ "drs.distrito "
+ "from data_razon_social drs "
+ "inner join razon_social rs on rs.codigo_razon_social = drs.codigo_razon_social "
+ "where rs.codigo_razon_social = ? ";
pst = cn.prepareStatement(sql);
pst.setInt(1, razonSocial);
rs = pst.executeQuery();
JSONObject jObj = null;
if (rs.next()) {
jObj = new JSONObject();
jObj
.put("razonSocial", rs.getString("razonSocial"))
.put("ruc", rs.getString("ruc"))
.put("domicilioReal", rs.getString("domicilio_real"))
.put("nombreRepresentante", rs.getString("nombre_representante"))
.put("dni", rs.getString("dni"))
.put("numeroPartidaInscrita", rs.getString("numero_partida_inscrita"))
.put("distrito", rs.getString("distrito"));
}
if (jObj != null) {
jResponse.put("status", true);
jResponse.put("data", jObj);
} else {
jResponse.put("status", false);
}
} catch (Exception e) {
jResponse.put("status", false);
jResponse.put("message", "Error : " + e.getMessage());
}
return jResponse;
}
}
......@@ -176,60 +176,62 @@ public class DetalleLoteFichaDocenteMysqlDAO implements DetalleLoteFichaDocenteD
int totalFilasInsetarSueldoDocente = resultadoInsertarSueldoDocente.length;
if (totalFilasInsetarSueldoDocente != 0) {
sql
= "update estado_ficha "
+ "set estado_registro = 0 "
+ "where estado_ficha.estado_registro = 1 "
+ "and estado_ficha.codigo_ficha = ?";
psDesactivarEstadoFicha = cnx.prepareStatement(sql);
sql
= "update estado_ficha "
+ "set estado_registro = 0 "
+ "where estado_ficha.estado_registro = 1 "
+ "and estado_ficha.codigo_ficha = ?";
psDesactivarEstadoFicha = cnx.prepareStatement(sql);
for (int i = 0; i < longitudJsonArrayFichas; i++) {
psDesactivarEstadoFicha.setInt(1, jsonArrayFichas.getJSONObject(i).getInt("codigoFicha"));
psDesactivarEstadoFicha.addBatch();
}
int resultadoDesactivarEstadoFicha[] = psDesactivarEstadoFicha.executeBatch();
int totalFilasDesactivarEstadoFicha = resultadoDesactivarEstadoFicha.length;
if (totalFilasDesactivarEstadoFicha != 0) {
sql
= "insert into estado_ficha "
+ "(codigo_ficha, "
+ "codigo_tipo_estado_ficha, "
+ "fecha_registro, "
+ "codigo_usuario, "
+ "estado_registro) "
+ "VALUES (?, ? ,now() ,? ,1)";
psInsertarEstadoFicha = cnx.prepareStatement(sql);
for (int i = 0; i < longitudJsonArrayFichas; i++) {
psInsertarEstadoFicha.setInt(1, jsonArrayFichas.getJSONObject(i).getInt("codigoFicha"));
if (!jsonArrayFichas.getJSONObject(i).getBoolean("estadoFicha")) { // NO cambio el sueldo de la ficha
psInsertarEstadoFicha.setInt(2, 7); // Estado: Sueldo aprobado por presidencia
} else { // Si cambio el sueldo de la ficha
psInsertarEstadoFicha.setInt(2, 8); // Estado: Observado por presidencia: Por evaluar.
}
psInsertarEstadoFicha.setInt(3, data.getInt("usuario"));
psInsertarEstadoFicha.addBatch();
}
int resultadoInsertarEstadoFicha[] = psInsertarEstadoFicha.executeBatch();
int totalFilasInsertarEstadoFicha = resultadoInsertarEstadoFicha.length;
if (totalFilasInsertarEstadoFicha != 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 el estado de la ficha");
cnx.rollback();
}
} else {
response.setStatus(false);
response.setMessage("Lo sentimos, no se pudo desactivar los estados de la ficha");
cnx.rollback();
for (int i = 0; i < longitudJsonArrayFichas; i++) {
psDesactivarEstadoFicha.setInt(1, jsonArrayFichas.getJSONObject(i).getInt("codigoFicha"));
psDesactivarEstadoFicha.addBatch();
}
int resultadoDesactivarEstadoFicha[] = psDesactivarEstadoFicha.executeBatch();
int totalFilasDesactivarEstadoFicha = resultadoDesactivarEstadoFicha.length;
if (totalFilasDesactivarEstadoFicha != 0) {
sql
= "insert into estado_ficha "
+ "(codigo_ficha, "
+ "codigo_tipo_estado_ficha, "
+ "fecha_registro, "
+ "codigo_usuario, "
+ "estado_registro) "
+ "VALUES (?, ? ,now() ,? ,1)";
psInsertarEstadoFicha = cnx.prepareStatement(sql);
for (int i = 0; i < longitudJsonArrayFichas; i++) {
psInsertarEstadoFicha.setInt(1, jsonArrayFichas.getJSONObject(i).getInt("codigoFicha"));
if (!jsonArrayFichas.getJSONObject(i).getBoolean("estadoFicha")) { // NO cambio el sueldo de la ficha
psInsertarEstadoFicha.setInt(2, 7); // Estado: Sueldo aprobado por presidencia
} else { // Si cambio el sueldo de la ficha
psInsertarEstadoFicha.setInt(2, 8); // Estado: Observado por presidencia: Por evaluar.
}
psInsertarEstadoFicha.setInt(3, data.getInt("usuario"));
psInsertarEstadoFicha.addBatch();
}
int resultadoInsertarEstadoFicha[] = psInsertarEstadoFicha.executeBatch();
int totalFilasInsertarEstadoFicha = resultadoInsertarEstadoFicha.length;
if (totalFilasInsertarEstadoFicha != 0) {
sql = "insert into contrato values (?,?)";
response.setStatus(true);
response.setMessage("Se actualizó correctamente el lote!");
cnx.commit();
} else {
response.setStatus(false);
response.setMessage("Lo sentimos, no se pudo insertar el estado de la ficha");
cnx.rollback();
}
} else {
response.setStatus(false);
response.setMessage("Lo sentimos, no se pudo desactivar los estados de la ficha");
cnx.rollback();
}
} else {
response.setStatus(false);
response.setMessage("Lo sentimos, no se pudo insertar los estados de los sueldos");
......@@ -426,103 +428,142 @@ public class DetalleLoteFichaDocenteMysqlDAO implements DetalleLoteFichaDocenteD
int totalFilasInsetarSueldoAdministrativo = resultadoInsertarSueldoAdministrativo.length;
if (totalFilasInsetarSueldoAdministrativo != 0) {
sql
= "update estado_ficha_lote "
= "update estado_ficha "
+ "set estado_registro = 0 "
+ "where codigo_ficha_lote = ? "
+ "and estado_ficha_lote.estado_registro = 1";
+ "where estado_ficha.estado_registro = 1 "
+ "and estado_ficha.codigo_ficha = ?";
ps = cnx.prepareStatement(sql);
ps.setInt(1, data.getInt("codigoLote"));
int resultadoDesactivarEstadoLote = ps.executeUpdate();
if (resultadoDesactivarEstadoLote != 0) {
for (int i = 0; i < longitudJsonArrayFichas; i++) {
ps.setInt(1, jsonArrayFichas.getJSONObject(i).getInt("codigoFicha"));
ps.addBatch();
}
int resultadoDesactivarEstadoFicha[] = ps.executeBatch();
int totalFilasDesactivarEstadoFicha = resultadoDesactivarEstadoFicha.length;
if (totalFilasDesactivarEstadoFicha != 0) {
sql
= "insert into estado_ficha_lote "
+ "(codigo_ficha_lote, "
+ "codigo_tipo_estado_ficha_lote, "
= "insert into estado_ficha "
+ "(codigo_ficha, "
+ "codigo_tipo_estado_ficha, "
+ "fecha_registro, "
+ "codigo_usuario, "
+ "estado_registro) "
+ "VALUES (?,?,now(),?,1)";
+ "VALUES (?, ? ,now() ,? ,1)";
ps = cnx.prepareStatement(sql);
ps.setInt(1, data.getInt("codigoLote"));
if (!data.getBoolean("estadoLote")) { // No cambio los sueldos
ps.setInt(2, 2); // Estado completado!
} else { // Si cambio los sueldos
ps.setInt(2, 3); // Completado con obs
for (int i = 0; i < longitudJsonArrayFichas; i++) {
ps.setInt(1, jsonArrayFichas.getJSONObject(i).getInt("codigoFicha"));
if (!jsonArrayFichas.getJSONObject(i).getBoolean("estadoFicha")) { // NO cambio el sueldo de la ficha
ps.setInt(2, 7); // Estado: Sueldo aprobado por presidencia
} else { // Si cambio el sueldo de la ficha
ps.setInt(2, 8); // Estado: Observado por presidencia: Por evaluar.
}
ps.setInt(3, data.getInt("usuario"));
ps.addBatch();
}
ps.setInt(3, data.getInt("usuario"));
int resultadoInsertarEstadoLote = ps.executeUpdate();
if (resultadoInsertarEstadoLote != 0) {
sql
= "update estado_ficha "
+ "set estado_registro = 0 "
+ "where estado_ficha.estado_registro = 1 "
+ "and estado_ficha.codigo_ficha = ?";
int resultadoInsertarEstadoFicha[] = ps.executeBatch();
int totalFilasInsertarEstadoFicha = resultadoInsertarEstadoFicha.length;
if (totalFilasInsertarEstadoFicha != 0) {
sql = ""
+ "INSERT INTO contrato ( "
+ " codigo_personal, "
+ " nombres, "
+ " apellidos, "
+ " tipo_documento_identidad, "
+ " documento_identidad, "
+ " domicilio, "
+ " distrito, "
+ " monto_asignacion_familiar, "
+ " ingreso_bruto_mensual, "
+ " 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.horario, "
+ " 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 = ? ";
ps = cnx.prepareStatement(sql);
for (int i = 0; i < longitudJsonArrayFichas; i++) {
ps.setInt(1, jsonArrayFichas.getJSONObject(i).getInt("codigoFicha"));
int c = 1;
ps.setString(c++, jsonArrayFichas.getJSONObject(i).getString("sueldoPresidencia"));
ps.setInt(c++, jsonArrayFichas.getJSONObject(i).getInt("codigoFicha"));
ps.addBatch();
}
int resultadoDesactivarEstadoFicha[] = ps.executeBatch();
int totalFilasDesactivarEstadoFicha = resultadoDesactivarEstadoFicha.length;
if (totalFilasDesactivarEstadoFicha != 0) {
sql
= "insert into estado_ficha "
+ "(codigo_ficha, "
+ "codigo_tipo_estado_ficha, "
+ "fecha_registro, "
+ "codigo_usuario, "
+ "estado_registro) "
+ "VALUES (?, ? ,now() ,? ,1)";
ps = cnx.prepareStatement(sql);
for (int i = 0; i < longitudJsonArrayFichas; i++) {
ps.setInt(1, jsonArrayFichas.getJSONObject(i).getInt("codigoFicha"));
if (!jsonArrayFichas.getJSONObject(i).getBoolean("estadoFicha")) { // NO cambio el sueldo de la ficha
ps.setInt(2, 7); // Estado: Sueldo aprobado por presidencia
} else { // Si cambio el sueldo de la ficha
ps.setInt(2, 8); // Estado: Observado por presidencia: Por evaluar.
}
ps.setInt(3, data.getInt("usuario"));
ps.addBatch();
}
int resultadoInsertarEstadoFicha[] = ps.executeBatch();
int totalFilasInsertarEstadoFicha = resultadoInsertarEstadoFicha.length;
if (totalFilasInsertarEstadoFicha != 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 el estado de la ficha");
cnx.rollback();
}
int resultadoInsertarContrato[] = ps.executeBatch();
int totalFilasInsetarContrato = resultadoInsertarContrato.length;
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 desactivar los estados de la ficha");
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 del lote");
response.setMessage("Lo sentimos, no se pudo insertar el estado de la ficha");
cnx.rollback();
}
} else {
response.setStatus(false);
response.setMessage("Lo sentimos, no se pudo desactivar el estado del lote");
response.setMessage("Lo sentimos, no se pudo desactivar los estados de la ficha");
cnx.rollback();
}
} else {
response.setStatus(false);
response.setMessage("Lo sentimos, no se pudo insertar los estados de los sueldos");
......
......@@ -10,6 +10,7 @@ import trismegistoplanilla.dao.CargaFamiliarDAO;
import trismegistoplanilla.dao.CargoDAO;
import trismegistoplanilla.dao.CarreraProfesionalDAO;
import trismegistoplanilla.dao.ConfiguracionFichaDAO;
import trismegistoplanilla.dao.ContratoDAO;
import trismegistoplanilla.dao.DAOFactory;
import trismegistoplanilla.dao.DetalleLoteFichaDocenteDAO;
import trismegistoplanilla.dao.EscalafonDAO;
......@@ -245,4 +246,9 @@ public class MysqlDAOFactory extends DAOFactory {
return new VacanteMysqlDAO();
}
@Override
public ContratoDAO getContratoDAO() {
return new ContratoMysqlDAO();
}
}
/*
* 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.servicesMysql;
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);
}
public JSONObject obtenerDataRazonSocialContrato(int razonSocial){
return service.obtenerDataRazonSocialContrato(razonSocial);
}
}
/*
* 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.servlets;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.JSONObject;
/**
*
* @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;
default:
}
}
private void listarContrato(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("application/json");
PrintWriter pw = response.getWriter();
String filter = request.getParameter("json");
String start = request.getParameter("start");
String length = request.getParameter("length");
String draw = request.getParameter("draw");
JSONObject jRequest = new JSONObject(filter)
.put(start, start)
.put(length, length)
.put(draw, draw);
}
}
......@@ -221,5 +221,9 @@ public class DetalleLoteFichaAdministrativaServlet extends HttpServlet {
document.bottom() - 1, 0);
}
}
public static void main(String[] args) {
}
}
......@@ -10,6 +10,7 @@ import trismegistoplanilla.dao.CargaFamiliarDAO;
import trismegistoplanilla.dao.CargoDAO;
import trismegistoplanilla.dao.CarreraProfesionalDAO;
import trismegistoplanilla.dao.ConfiguracionFichaDAO;
import trismegistoplanilla.dao.ContratoDAO;
import trismegistoplanilla.dao.DAOFactory;
import trismegistoplanilla.dao.DetalleLoteFichaDocenteDAO;
import trismegistoplanilla.dao.EscalafonDAO;
......@@ -245,4 +246,9 @@ public class SqlserverDAOFactory extends DAOFactory {
return new VacanteSqlserverDAO();
}
@Override
public ContratoDAO getContratoDAO() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
/*
* 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.utilities;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.pdf.ColumnText;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfPageEventHelper;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;
import javax.servlet.http.HttpServletResponse;
import jdk.nashorn.internal.objects.NativeDebug;
import org.json.JSONObject;
import trismegistoplanilla.servicesMysql.ContratoService;
/**
*
* @author sistem20user
*/
public class PdfCreator {
// 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"));
// MyFooter event = new MyFooter();
// writer.setPageEvent(event);
documento.open();
int codigoRazonSocial = json.getInt("razonSocial");
ContratoService service = new ContratoService();
JSONObject jResponse = service.obtenerDataRazonSocialContrato(codigoRazonSocial);
if (jResponse.getBoolean("status")) {
JSONObject jDataRS = jResponse.getJSONObject("data");
String razonSocial = jDataRS.getString("razonSocial");
String ruc = jDataRS.getString("ruc");
String domicilioReal = jDataRS.getString("domicilioReal");
String nombreRepresentante = jDataRS.getString("nombreRepresentante");
String dni = jDataRS.getString("dni");
String numeroPartidaInscrita = jDataRS.getString("numeroPartidaInscrita");
String distrito = jDataRS.getString("distrito");
List<String> template = getTemplateContrato(1);
String lineas = "";
for (String linea : template) {
lineas += linea;
}
lineas = lineas
.replace("@br", "\n")
.replace("@razonSocial", razonSocial)
.replace("@domicilioReal", domicilioReal)
.replace("@nombreResponsable", nombreRepresentante)
.replace("@dniResponsable", dni)
.replace("@numeroPartida", numeroPartidaInscrita)
.replace("@distritoFirma", distrito)
.replace("@ruc", ruc);
documento.add(new Paragraph(lineas));
documento.close();
}
return respuesta;
}
public static boolean crearPdfContratoTiempoParcial(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"));
// MyFooter event = new MyFooter();
// writer.setPageEvent(event);
documento.open();
int codigoRazonSocial = json.getInt("razonSocial");
ContratoService service = new ContratoService();
JSONObject jResponse = service.obtenerDataRazonSocialContrato(codigoRazonSocial);
if (jResponse.getBoolean("status")) {
JSONObject jDataRS = jResponse.getJSONObject("data");
String razonSocial = jDataRS.getString("razonSocial");
String ruc = jDataRS.getString("ruc");
String domicilioReal = jDataRS.getString("domicilioReal");
String nombreRepresentante = jDataRS.getString("nombreRepresentante");
String dni = jDataRS.getString("dni");
String numeroPartidaInscrita = jDataRS.getString("numeroPartidaInscrita");
String distrito = jDataRS.getString("distrito");
List<String> template = getTemplateContrato(2);
String lineas = "";
for (String linea : template) {
lineas += linea;
}
lineas = lineas
.replace("@br", "\n")
.replace("@razonSocial", razonSocial)
.replace("@domicilioReal", domicilioReal)
.replace("@nombreResponsable", nombreRepresentante)
.replace("@dniResponsable", dni)
.replace("@numeroPartida", numeroPartidaInscrita)
.replace("@distritoFirma", distrito)
.replace("@ruc", ruc);
documento.add(new Paragraph(lineas));
documento.close();
}
return respuesta;
}
class MyFooter extends PdfPageEventHelper {
Font ffont = new Font(Font.FontFamily.COURIER, 5, Font.BOLD);
@Override
public void onEndPage(PdfWriter writer, Document document) {
// String timeStamp = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(Calendar.getInstance().getTime());
String datetime = DateTimeServer.getDateTimeServer();
PdfContentByte cb = writer.getDirectContent();
Phrase footer = new Phrase(datetime, ffont);
ColumnText.showTextAligned(cb, Element.ALIGN_CENTER,
footer,
(document.right() - document.left()) / 2 + document.leftMargin(),
document.bottom() - 1, 0);
}
}
public static List<String> getTemplateContrato(int codigoTipoContrato) {
String tipoContrato = "";
switch (codigoTipoContrato) {
case 1:
tipoContrato = "necesidad-de-mercado";
break;
case 2:
tipoContrato = "contrato-tiempo-parcial";
break;
case 3:
tipoContrato = "mensual-por-horas";
break;
case 4:
tipoContrato = "recibo-por-honorarios";
break;
case 5:
tipoContrato = "tiempo-parcial-por-horas";
break;
default:
}
URL url = new PdfCreator().getClass().getClassLoader().getResource(tipoContrato + ".txt");
Path path = Paths.get(url.getPath().substring(1));
final List<String> template = new ArrayList<>();
try (Stream<String> stream = Files.lines(path)) {
stream.forEach(s -> {
template.add(s);
});
} catch (IOException e) {
e.printStackTrace();
}
return template;
}
public static void main(String[] args) throws IOException, DocumentException, URISyntaxException, URISyntaxException, Exception {
JSONObject obj = new JSONObject().put("razonSocial", 2);
crearPdfContratoTiempoParcial(obj);
}
}
Conste por el presente documento, el Contrato de Trabajo en Régimen de Tiempo Parcial a Plazo Fijo que celebran, al amparo del Art. 4 de la Ley de Productividad y Competitividad Laboral aprobado por D. S. Nº 003-97-TR y DS.001-96-TR art. 13 que por una parte la empresa @razonSocial con R.U.C N° @ruc con domicilio fiscal en @domicilioReal. Debidamente representada por @nombreResponsable con D.N.I. Nº @dniResponsable, que en adelante se le denominará EL EMPLEADOR y de la otra parte, don(ña) @nombrePersonal con @tipoDocumento Nº @numeroDocumento, con domicilio en @domicilioResponsable, que en adelante se le denominara EL TRABAJADOR, en los términos y condiciones siguientes:@br@br
PRIMERO: EL EMPLEADOR es una institución educativa, cuyo objeto social es el de brindar servicios educativos y que ha sido debidamente autorizada estando inscrita en la Partida Nº @numeroPartida del Registro de Personas Jurídicas de los Registros Públicos de Lima.@br@br
SEGUNDO: EL EMPLEADOR contrata los servicios de EL TRABAJADOR, bajo la modalidad de contrato de trabajo por tiempo parcial previsto en el articulo 4° de la ley de Productividad y Competitividad Laboral y los articulos 11°, 12° y 13° del Reglamento de la Ley de Fomento al Empleo, aprobado por Decreto Supremo N° 001-96-TR,para que se desempeñe como @cargoPersonal.@br@br
TERCERO: Por el presente documento, las partes acuerdan que EL TRABAJADOR prestará servicios en un régimen laboral de tiempo parcial, con una jornada diaria que no excederá en ningún caso las cuatro (4) horas y cuyo horario de trabajo dependerá de las necesidades operativas de EL EMPLEADOR.@br@br
CUARTO: Como contraprestacion por sus servicios, EL EMPLEADOR abonará a EL TRABAJADOR la suma de S/. @brutoMensual (@brutoMensualTexto), por hora pedagógica efectivamente laborada. Asimismo, la Remuneración mensual percibida por EL TRABAJADOR, quedara distribuida de la siguiente manera:@br@br
a) Haber Básico Mensual: S/. @basicoMensual valor hora pedagógica por el número de horas efectivamente laborados.@br
b) Asignacion Familiar: S/. @asignacionFamiliar.@br
c) Asignacion por transporte: S/. @asignacionTransporte por dia efectivamente laborado supeditadoa la asistencia al centro de trabajo, conforme se indica en el inciso e) del artículo 19° del Decreto Supremo N°001-97-TR, Texto Único Ordenado de la ley de compensacion por tiempo de servicios.@br
d) Asignacion por refrigerio: S/. @asignacionRefrigerio por dia efectivamente laborado.@br
Las ausencias injustificadas por parte de EL TRABAJADOR implican la pérdida de la remuneración proporcionalmente a la duración de dicha ausencia, sin perjuicio del ejercicio de las facultades disciplinarias propias de EL EMPLEADOR previstas en la legislación laboral y normas internas de la empresa.@br@br
QUINTA: El plazo de duración del presente contrato será de 1 mes 29 dias iniciandose el miércoles, 3 de enero de 2018 por lo que el mismo vencerá sin necesidad de previo aviso el dia miércoles, 28 de febrero de 2018.@br@br
SEXTO: 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
SÉTIMO: EL TRABAJADOR asume el compromiso expreso de respetar la Política y el Reglamento Interno de Seguridad y Salud en el Trabajo de EL EMPLEADOR, dejando expresa constancia que esta última ha cumplido con informarle sobre las recomendaciones en materia de seguridad y salud en el trabajo, las mismas que se señalan en el ANEXO respectivo, documento que forma parte integrante del presente contrato.@br@br
OCTAVO: Las partes acuerdan que EL EMPLEADOR podrá, en función de sus necesidades de funcionamiento y a las facultades de dirección establecidas en el artículo 9º del Texto Único Ordenado del Decreto Legislativo 728, Ley de Productividad y Competitividad Laboral, aprobado por Decreto Supremo Nº 003-97-TR, disponer la modificación, alteración, reemplazo o supresión de las condiciones de trabajo y de la prestación de servicios tales como el tiempo, la forma, la modalidad, el lugar y las directrices de trabajo. @br@br
NOVENO: EL TRABAJADOR se obliga en forma irrevocable ante LA ASOCIACION a no revelar, divulgar o facilitar bajo cualquier forma a ninguna persona natural o jurídica, sea esta pública o privada, y a no utilizar para su propio beneficio o para beneficio de cualquier otra persona natural o jurídica, pública o privada, toda información relacionada con los datos personales de nuestros clientes (estudiantes, padres de familia, proveedores y colaboradores), es decir, no revelar total o parcialmente la información obtenida como consecuencia directa o indirecta de las conversaciones y/o de la prestación de servicios en el puesto que desempeño a ningún tercero, por tiempo indefinido, bajo responsabilidad laboral, civil y penal que hubiera lugar.@br@br
DECIMO: Queda entendido que EL EMPLEADOR no está obligado a dar aviso alguno adicional referente al término del presente contrato, operando su extinción en la fecha de su vencimiento conforme la cláusula quinta. Asimismo queda entendido que EL EMPLEADOR unilateralmente puede dar por terminado el contrato incluso antes de su vencimiento, lo cual es facultad de EL EMPLEADOR por la naturaleza del mismo contrato.@br@br
Firmado por las partes, en señal de conformidad, en @distritoFirma el día miércoles, 3 de enero de 2018, en dos ejemplares de idéntico tenor, para constancia de las partes y de la Autoridad Administrativa de Trabajo, a cuyo conociemiento será sometido.@br@br
Conste por el presente documento, que se suscribe en duplicado, el Contrato de trabajo sujeto a modalidad por necesidad de mercado, celebran, de una parte, @razonSocial, con Registro Único de Contribuyentes Nº @ruc con domicilio real en @domicilioReal, debidamente representada por @nombreResponsable con D.N.I. Nº @dniResponsable, a quien en adelante se le denominará EL EMPLEADOR; y de la otra parte, don(doña) , @nombrePersonal con @tipoDocumento Nº @numeroDocumento, domiciliado(a) en @domicilioPersonal - @distritoPersonal - , a quien en adelante se le denominará EL TRABAJADOR, en los términos y condiciones siguientes.@br@br
PRIMERO EL EMPLEADOR es una institución educativa, cuyo objeto social es el de brindar servicios educativos y que ha sido debidamente autorizada estando inscrita en la Partida Nº @numeroPartida del Registro de Personas Jurídicas de los Registros Públicos de Lima.@br@br
EL EMPLEADOR requiere cubrir las necesidades del área administrativa con el objeto de atender las distintas actividades producidas en nuestrasoficinas dado el incremento del número de alumnos en los últimos años, requiriéndose por tanto alcanzar un mayor número de colaboradores para la atención y realización de las distintas actividades propias del objeto social, siendo necesario celebrar la presente contratación sujeta a modalidad por necesidad del mercado, conforme al artículo 58° del Decreto Supremo N° 003-97-TR – Texto Único Ordenado del Decreto Legislativo 728 – Ley de Productividad y Competitividad Laboral y demás normas aplicables.@br@br
SEGUNDO Por el presente documento EL EMPLEADOR contrata temporalmente a EL TRABAJADOR, a fin de que se desempeñe como SECRETARIA y para que ejecute las labores propias y complementarias del puesto antes mencionado, en atención a las causas objetivas descritas en la cláusula primera.@br@br
Por el presente contrato, EL TRABAJADOR se obliga a prestar sus servicios al EMPLEADOR, debiendo someterse al cumplimiento estricto de la labor para la cual ha sido contratado , bajo las directivas de sus jefes, y las que se impartan por necesidades del servicio en ejercicio de las facultades de administración y dirección de la entidad, de conformidad con el artículo 9º del Texto Único Ordenado de la Ley de Productividad y Competitividad Laboral, aprobado por Decreto Supremo Nº 003-97-TR.@br@br
TERCERO El plazo de duración del presente contrato será de 3 MESES por lo que el mismo vencerá sin necesidad de previo aviso el día 31 de marzo del YYYY.@br@br
Queda claramente establecido que la suspensión del contrato de trabajo por alguna de las causales previstas en el artículo 12° del Texto Único Ordenado del Decreto Legislativo 728, Ley de Productividad y Competitividad Laboral, aprobado por Decreto Supremo Nº 003-97-TR, (tales como descanso por maternidad, enfermedad, vacaciones), no interrumpirá el plazo de duración del presente contrato, el cual concluirá indefectiblemente en la fecha acordada para su vencimiento en la presente cláusula.@br@br
CUARTO De conformidad con el artículo 10º del Texto Único Ordenado del Decreto Legislativo 728, Ley de Productividad y Competitividad Laboral, aprobado por Decreto Supremo Nº 003-97-TR, las partes acuerdan que la duración del período de prueba de TRABAJADOR será de tres (3) meses. @br@br
QUINTO EL TRABAJADOR prestará sus servicios en el centro de trabajo indicado por EL EMPLEADOR, cumpliendo la jornada vigente en el mismo y el horario laboral establecido.
El tiempo destinado al refrigerio no forma parte de la jornada de trabajo y se tomará de acuerdo a las disposiciones señaladas por EL EMPLEADOR.@br@br
Las partes estipulan que la jornada laboral de EL TRABAJADOR será rotativa y no mayor a cuarenta y ocho (48) horas a la semana, teniendo facultad el empleador de establecer el día de descanso en la semana, de acuerdo a las necesidades de servicio o producción. Así mismo el empleador se reserva el derecho de establecer los turnos de trabajo, también en función de sus necesidades de servicio o producción enmarcados dentro del presente contrato.@br@br
#¿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
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
Se deja expresa constancia que en caso, EL TRABAJADOR no cumpla con los reglamentos, prácticas y políticas, EL EMPLEADOR quedará facultado a imponer las sanciones que corresponda.@br@br
DECIMO En todo lo no previsto expresamente en el presente contrato, regirán las normas legales vigentes en el Perú al momento de producirse el acontecimiento que las regule. En tal virtud, las estipulaciones del presente convenio serán modificadas por las normas legales que se dicten durante la vigencia del presente contrato. @br@br
Firmado por las partes, en señal de conformidad, en @distritoFirma el 04 de enero del YYYY, en dos (2) ejemplares de idéntico tenor, para constancia de las partes, a cuyo conocimiento será sometido.@br@br
......@@ -136,6 +136,10 @@
<servlet-name>VacanteServlet</servlet-name>
<servlet-class>trismegistoplanilla.servlets.VacanteServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>ContratoServlet</servlet-name>
<servlet-class>trismegistoplanilla.servlets.ContratoServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TipoDocumentoServlet</servlet-name>
<url-pattern>/TipoDocumentoServlet</url-pattern>
......@@ -272,6 +276,10 @@
<servlet-name>VacanteServlet</servlet-name>
<url-pattern>/VacanteServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ContratoServlet</servlet-name>
<url-pattern>/ContratoServlet</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
......
const numeroALetras = (function () {
// Código basado en https://gist.github.com/alfchee/e563340276f89b22042a
function Unidades(num) {
switch (num) {
case 1:
return 'UN';
case 2:
return 'DOS';
case 3:
return 'TRES';
case 4:
return 'CUATRO';
case 5:
return 'CINCO';
case 6:
return 'SEIS';
case 7:
return 'SIETE';
case 8:
return 'OCHO';
case 9:
return 'NUEVE';
}
return '';
}//Unidades()
function Decenas(num) {
let decena = Math.floor(num / 10);
let unidad = num - (decena * 10);
switch (decena) {
case 1:
switch (unidad) {
case 0:
return 'DIEZ';
case 1:
return 'ONCE';
case 2:
return 'DOCE';
case 3:
return 'TRECE';
case 4:
return 'CATORCE';
case 5:
return 'QUINCE';
default:
return 'DIECI' + Unidades(unidad);
}
case 2:
switch (unidad) {
case 0:
return 'VEINTE';
default:
return 'VEINTI' + Unidades(unidad);
}
case 3:
return DecenasY('TREINTA', unidad);
case 4:
return DecenasY('CUARENTA', unidad);
case 5:
return DecenasY('CINCUENTA', unidad);
case 6:
return DecenasY('SESENTA', unidad);
case 7:
return DecenasY('SETENTA', unidad);
case 8:
return DecenasY('OCHENTA', unidad);
case 9:
return DecenasY('NOVENTA', unidad);
case 0:
return Unidades(unidad);
}
}//Unidades()
function DecenasY(strSin, numUnidades) {
if (numUnidades > 0)
return strSin + ' Y ' + Unidades(numUnidades)
return strSin;
}//DecenasY()
function Centenas(num) {
let centenas = Math.floor(num / 100);
let decenas = num - (centenas * 100);
switch (centenas) {
case 1:
if (decenas > 0)
return 'CIENTO ' + Decenas(decenas);
return 'CIEN';
case 2:
return 'DOSCIENTOS ' + Decenas(decenas);
case 3:
return 'TRESCIENTOS ' + Decenas(decenas);
case 4:
return 'CUATROCIENTOS ' + Decenas(decenas);
case 5:
return 'QUINIENTOS ' + Decenas(decenas);
case 6:
return 'SEISCIENTOS ' + Decenas(decenas);
case 7:
return 'SETECIENTOS ' + Decenas(decenas);
case 8:
return 'OCHOCIENTOS ' + Decenas(decenas);
case 9:
return 'NOVECIENTOS ' + Decenas(decenas);
}
return Decenas(decenas);
}//Centenas()
function Seccion(num, divisor, strSingular, strPlural) {
let cientos = Math.floor(num / divisor)
let resto = num - (cientos * divisor)
let letras = '';
if (cientos > 0)
if (cientos > 1)
letras = Centenas(cientos) + ' ' + strPlural;
else
letras = strSingular;
if (resto > 0)
letras += '';
return letras;
}//Seccion()
function Miles(num) {
let divisor = 1000;
let cientos = Math.floor(num / divisor)
let resto = num - (cientos * divisor)
let strMiles = Seccion(num, divisor, 'UN MIL', 'MIL');
let strCentenas = Centenas(resto);
if (strMiles == '')
return strCentenas;
return strMiles + ' ' + strCentenas;
}//Miles()
function Millones(num) {
let divisor = 1000000;
let cientos = Math.floor(num / divisor)
let resto = num - (cientos * divisor)
let strMillones = Seccion(num, divisor, 'UN MILLON DE', 'MILLONES DE');
let strMiles = Miles(resto);
if (strMillones == '')
return strMiles;
return strMillones + ' ' + strMiles;
}//Millones()
return function NumeroALetras(num, currency) {
currency = currency || {};
let data = {
numero: num,
enteros: Math.floor(num),
centavos: (((Math.round(num * 100)) - (Math.floor(num) * 100))),
letrasCentavos: '',
letrasMonedaPlural: currency.plural || 'NUEVOS SOLES', //'PESOS', 'Dólares', 'Bolívares', 'etcs'
letrasMonedaSingular: currency.singular || 'NUEVO SOL', //'PESO', 'Dólar', 'Bolivar', 'etc'
letrasMonedaCentavoPlural: currency.centPlural || 'CÉNTIMOS',
letrasMonedaCentavoSingular: currency.centSingular || 'CÉNTIMO'
};
if (data.centavos > 0) {
data.letrasCentavos = 'CON ' + (function () {
if (data.centavos == 1)
return Millones(data.centavos) + ' ' + data.letrasMonedaCentavoSingular;
else
return Millones(data.centavos) + ' ' + data.letrasMonedaCentavoPlural;
})();
}
;
if (data.enteros == 0)
return 'CERO ' + data.letrasMonedaPlural + ' ' + data.letrasCentavos;
if (data.enteros == 1)
return Millones(data.enteros) + ' ' + data.letrasMonedaSingular + ' ' + data.letrasCentavos;
else
return Millones(data.enteros) + ' ' + data.letrasMonedaPlural + ' ' + data.letrasCentavos;
};
})();
module.exports = {
numeroALetras
}
\ No newline at end of file
......@@ -4,27 +4,13 @@
$(document).ready(() => {
initSelect2();
criterioBusqueda();
limpiarFiltro();
validarFormBuscarFichas();
reglasFormBuscarFichas();
listarFichas();
verDetalleEstadoFicha();
verDetalleFichaCompletado();
verDetalleFichaAdministrativaObservadaPorPresidencia();
anularFicha();
verObservacion();
imprimirFicha();
imprimirActividadFicha();
eventos.init()
contratos.init()
});
// INICIALIZACION
//========================================
let JOCriterioBusqueda = {};
let tipoEntrada = '';
let paramCodigoFicha = 0;
/** inicializa el select */
function initSelect2() {
$('.select').select2({
......@@ -32,926 +18,57 @@ function initSelect2() {
});
}
/** inicializa el datepicker */
function initSelectDatepicker() {
$(".datepicker").prop('readonly', true);
$(".datepicker").datepicker({
dateFormat: 'dd/mm/yy',
showButtonPanel: false,
onSelect: function () {
$(this).valid();
}
});
let date = new Date();
$(".datepicker").datepicker("setDate", date);
$.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']);
}
/**
* Listar tipo de documento - peticion
* @returns {JSONObject} JsonObject
* */
function listarTipoDocumentoRequest() {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../TipoDocumentoServlet?accion=listarTipoDocumento',
beforeSend: function () {
load("Listando tipo de documentos");
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
resolve(data);
}
},
error: function () {
reject("No se pudo procesar la solicitud de listar tipo de documento");
}
});
});
}
/**
* Listar tipo estado de fichas - peticion
* @returns {JSONObject}
*/
function listarTipoEstadoFichaRequest() {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../TipoEstadoFichaServlet',
data: {accion: 'listarTipoEstadoFicha'},
beforeSend: function (xhr) {
load('Listando tipo de estados de ficha');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
resolve(data);
const contratos = {
init() {
this.listarContrato()
},
listarContrato(json = {}) {
$('#tblContrato').DataTable().destroy()
$('#tblContrato').DataTable({
ajax: {
url: '../ServletContrato?accion=listarContrato',
type: 'POST',
dataType: 'JSON',
data: {
json: JSON.stringify(json)
}
},
error: function (jqXHR, textStatus, errorThrown) {
reject("No se pudo procesar la solicitud de listar tipos de estados de ficha");
}
});
});
}
/**
* Listar tipo de estados de ficha
* @argument {int} cboID
* */
function listarTipoEstadoFichaResponse(cboID) {
listarTipoEstadoFichaRequest().then((data) => {
$('#' + cboID).html(createSelectOptions(data.data.tiposEstadoFicha, 'codigoTipoEstadoFicha', 'nombre'));
});
}
/**
* Crea los elementos option del array que se pase como parametro
* @method createSelectOptions
* @param {JSONArray} obj array de objetos
* @param {String} valueName la key del json que se usará como value del elemento option
* @param {String} textName la key del json que se usará como text del elemento option
* @returns {Promise} Promise retorna status, msg
*/
let createSelectOptions = (obj, valueName, textName) => {
let options = '<option value="0">[SELECCIONAR]</option>';
obj.forEach((data) => {
options += '<option value="' + data[valueName] + '">' + data[textName] + '</option>';
});
return options;
};
/*
* Lista el tipo de documento
* @argument {int} cboID
* */
function listarTipoDocumentoResponse(cboID) {
listarTipoDocumentoRequest().then((data) => {
$('#' + cboID).html(createSelectOptions(data.data.tipodocumentos, 'codigoTipoDocumento', 'descripcionCorta'));
});
}
/**
* valida la existencia del tipo de documento <br/>
* seleccionado
* @argument {int} codigoTipoDocumento
* @return {boolean} verdadero|falso
* */
function validarExistenciaTipoDocumentoRequest(codigoTipoDocumento) {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../TipoDocumentoServlet',
data: {accion: 'validarExistenciaTipoDocumento', codigoTipoDocumento: codigoTipoDocumento},
beforeSend: function () {
load("Validando datos");
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
if (data.status) {
resolve(data.status);
} else {
$(location).attr('href', 'templates/close.jsp');
}
}
}, error: function (jqXHR, textStatus, errorThrown) {
reject("No se pudo procesar la solicitud de validar existencia tipo de documento");
}
});
});
}
/**
* obtiene la longitud y tipo de entrada <br/>
* segun tipo de documento seleccionado
* @argument {int} codigoTipoDocumento
* @returns {JSONArray}
* */
function obtenerLongitudTipoEntrdadaTipoDocumentoRequest(codigoTipoDocumento) {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../TipoDocumentoServlet',
data: {accion: 'obtenerLongitudTipoEntrdadaTipoDocumento', codigoTipoDocumento: codigoTipoDocumento},
beforeSend: function () {
load("Validando datos");
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
if (data.status) {
resolve(data.data.tipodocumentos);
} else {
$(location).attr('href', 'templates/close.jsp');
}
}
}, error: function (jqXHR, textStatus, errorThrown) {
reject("No se pudo procesar la solicitud de obtener longitud y tipo entrada del tipo de documento");
}
});
});
}
// PANEL CRITERIO DE BUSQUEDA
//========================================
/**
* configuracion de criterio de busqueda <br/>
* FILTROS: <br/>
* 1- Tipo de documento <br/>
* 2- Apellidos <br/>
* 3- Fecha de registro <br/>
* */
function criterioBusqueda() {
$('#cboCriterioBusqueda').change((e) => {
$(e.currentTarget).valid();
let codigoCriterioBusqueda = parseInt($('#cboCriterioBusqueda').val());
if (isNaN(codigoCriterioBusqueda)) {
$(location).attr('href', 'templates/close.jsp');
}
debugger
if (codigoCriterioBusqueda === 0) { // [SELECCIONAR]
$('#divRowFiltro1').html('');
$('#divRowFiltro2').html('');
} else if (codigoCriterioBusqueda === 1) { // TIPO DE DOCUMENTO
HTMLtipoDocumento();
validarTipoDocumento();
reglasFormBuscarFichas();
} else if (codigoCriterioBusqueda === 2) { // APELLIDOS
HTMLapellidos();
reglasFormBuscarFichas();
} else if (codigoCriterioBusqueda === 3) { // TIPO DE CONTRATO
HTMLtipoContrato();
reglasFormBuscarFichas();
} else if (codigoCriterioBusqueda === 4) { // RAZÓN SOCIAL
HTMLtipoEstadoFicha();
reglasFormBuscarFichas();
}
});
}
/** Dibujar el select tipo de documento */
function HTMLtipoDocumento() {
let cboTipoDocumento =
`
<div class="col-md-4">
<div class="form-group">
<label for="cboTipoDocumento" class="text-semibold">Tipo documento <span class="text-danger">(*)</span></label>
<select class="select" id="cboTipoDocumento" name="cboTipoDocumento">
${listarTipoDocumentoResponse('cboTipoDocumento')}
</select>
</div>
</div>
`;
$('#divRowFiltro1').html(cboTipoDocumento);
$('#divRowFiltro2').html('');
$('#cboTipoDocumento').select2({
minimumResultsForSearch: Infinity
});
}
/** Dibujar el input de apellidos */
function HTMLapellidos() {
let txtApellidos =
`
<div class="col-md-4">
<div class="form-group">
<label for="txtApellidos" class="text-semibold">Apellido paterno <span class="text-danger">(*)</span></label>
<input type="text" class="form-control text-uppercase" placeholder="Ingresar apellido paterno" id="txtApellidos" name="txtApellidos" maxlength="30" autocomplete="off">
</div>
</div>
`;
$('#divRowFiltro1').html(txtApellidos);
$('#txtApellidos').validCampo('abcdefghijklmnñopqrstuvwxyzáéíóú ');
$('#divRowFiltro2').html('');
}
/** Dibujar la fecha "desde" y "hasta" */
function HTMLfechaRegistro() {
let dpFechaRegistroDesde =
`
<div class="col-md-4">
<label for="dpFechaRegistroDesde" class="text-semibold">Desde <span class="text-danger">(*)</span></label>
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-calendar fa-lg"></i></span>
<input type="text" class="form-control datepicker" placeholder="Fecha de registro de ficha" id="dpFechaRegistroDesde" name="dpFechaRegistroDesde" autocomplete="off">
</div>
</div>
`;
let dpFechaRegistroHasta =
`
<div class="col-md-4">
<label for="dpFechaRegistroHasta" class="text-semibold">Hasta <span class="text-danger">(*)</span></label>
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-calendar fa-lg"></i></span>
<input type="text" class="form-control datepicker" placeholder="Fecha de registro de ficha" id="dpFechaRegistroHasta" name="dpFechaRegistroHasta" autocomplete="off">
</div>
</div>
`;
$('#divRowFiltro1').html(dpFechaRegistroDesde);
$('#divRowFiltro2').html(dpFechaRegistroHasta);
initSelectDatepicker();
}
/** Dibujar el select de tipo de estados */
function HTMLtipoEstadoFicha() {
let cboTipoEstado =
`
<div class="col-md-4">
<div class="form-group">
<label for="cboTipoEstadoFicha" class="text-semibold">Estado ficha <span class="text-danger">(*)</span></label>
<select class="select" id="cboTipoEstadoFicha" name="cboTipoEstadoFicha">
${listarTipoEstadoFichaResponse('cboTipoEstadoFicha')}
</select>
</div>
</div>
`;
$('#divRowFiltro1').html(cboTipoEstado);
$('#divRowFiltro2').html('');
$('#cboTipoEstadoFicha').select2({
minimumResultsForSearch: Infinity
});
$('#cboTipoEstadoFicha').change((e) => {
$(e.currentTarget).valid();
});
}
function HTMLtipoContrato() {
}
/** Validar tipo de documento <br/>
* - existencia de tipo documento <br/>
* - obtener longitud y tipo entrada */
function validarTipoDocumento() {
$('#cboTipoDocumento').change((e) => {
$(e.currentTarget).valid();
let codigoTipoDocumento = parseInt($('#cboTipoDocumento').val());
if (isNaN(codigoTipoDocumento)) {
$(location).attr('href', 'templates/close.jsp');
}
if (codigoTipoDocumento === 0) {
$('#divRowFiltro2').html('');
} else {
validarExistenciaTipoDocumentoRequest(codigoTipoDocumento).then(() => {
obtenerLongitudTipoEntrdadaTipoDocumentoRequest(codigoTipoDocumento).then((tipoDocumento) => {
HTMLnumeroDocumento(tipoDocumento);
reglasFormBuscarFichas();
});
});
}
});
}
/** Dibujar input numero de documento <br>
* y configurar segun tipo doc seleccionado
* @argument {JSONObject} tipoDocumento
* */
function HTMLnumeroDocumento(tipoDocumento) {
let txtNumeroDocumento =
`
<div class="col-md-4">
<div class="form-group">
<label for="txtNumeroDocumento" class="text-semibold">N° Documento <span class="text-danger">(*)</span></label>
<input type="text" class="form-control text-uppercase" placeholder="Ingresar nro documento" id="txtNumeroDocumento" name="txtNumeroDocumento" minlength="${tipoDocumento[0].longitud}" maxlength="${tipoDocumento[0].longitud}" autocomplete="off">
</div>
</div>
`;
$('#divRowFiltro2').html(txtNumeroDocumento);
tipoEntrada = tipoDocumento[0].tipoEntrada;
if (tipoDocumento[0].tipoEntrada === 'N') {
$('#txtNumeroDocumento').validCampo('0123456789');
} else if (tipoDocumento[0].tipoEntrada === 'A') {
$('#txtNumeroDocumento').validCampo('abcdefghijklmnopqrstuvwxyz0123456789');
}
}
/**
* inicializar reglas del form buscar fichas
* */
function reglasFormBuscarFichas() {
$('#cboCriterioBusqueda').rules('add', {
valueNotEquals: '0'
});
$('#cboTipoDocumento').rules('add', {
valueNotEquals: '0'
});
if (tipoEntrada === 'N') {
$('#txtNumeroDocumento').rules('remove', 'alphanumeric');
$('#txtNumeroDocumento').rules('add', {
required: true,
number: true
});
} else if (tipoEntrada === 'A') {
$('#txtNumeroDocumento').rules('remove', 'number');
$('#txtNumeroDocumento').rules('add', {
required: true,
alphanumeric: true
});
}
$('#txtApellidos').rules('add', {
required: true,
lettersonly: true
});
$('#dpFechaRegistroDesde').rules('add', {
required: true,
dateonly: true
});
$('#dpFechaRegistroHasta').rules('add', {
required: true,
dateonly: true,
greaterThan: "#dpFechaRegistroDesde"
});
$('#cboTipoEstadoFicha').rules('add', {
valueNotEquals: '0'
});
}
/**
* validar el formulario antes de enviar peticion
* */
function validarFormBuscarFichas() {
$('#formBuscarFichas').validate({
submitHandler: function () {
listarFichas();
return false;
}
});
}
/**
* obtener valores criterios de busqueda
* */
function criterioBusquedaParams() {
let codigoCriterioBusqueda = parseInt($('#cboCriterioBusqueda').val());
if (codigoCriterioBusqueda === 1) {
let codigoTipoDocumento = parseInt($('#cboTipoDocumento').val());
let numeroDocumento = $('#txtNumeroDocumento').val();
JOCriterioBusqueda.tipoBusqueda = 'TIPO_DOCUMENTO';
JOCriterioBusqueda.codigoTipoDocumento = codigoTipoDocumento;
JOCriterioBusqueda.numeroDocumento = numeroDocumento;
} else if (codigoCriterioBusqueda === 2) {
let apellido = $('#txtApellidos').val();
JOCriterioBusqueda.tipoBusqueda = 'APELLIDOS';
JOCriterioBusqueda.apellido = apellido;
} else if (codigoCriterioBusqueda === 3) {
let fechaDesde = $('#dpFechaRegistroDesde').val();
let fechaHasta = $('#dpFechaRegistroHasta').val();
JOCriterioBusqueda.tipoBusqueda = 'FECHA_REGISTRO';
JOCriterioBusqueda.fechaDesde = fechaDesde;
JOCriterioBusqueda.fechaHasta = fechaHasta;
} else if (codigoCriterioBusqueda === 4) {
let codigoTipoEstadoFicha = parseInt($('#cboTipoEstadoFicha').val());
JOCriterioBusqueda.tipoBusqueda = 'ESTADO_FICHA';
JOCriterioBusqueda.codigoTipoEstadoFicha = codigoTipoEstadoFicha;
} else {
JOCriterioBusqueda = {};
})
}
return JOCriterioBusqueda;
}
/**
* Limpiar el filtro realizado en el panel de busqueda por criterio
*/
function limpiarFiltro() {
Ladda.bind('#btnLimpiarFiltroFichas', {
callback: function (instance) {
var progress = 0;
var interval = setInterval(function () {
progress = Math.min(progress + Math.random(), 2);
instance.setProgress(progress);
if (progress === 2) {
instance.stop();
clearInterval(interval);
$('#divRowFiltro1').html('');
$('#divRowFiltro2').html('');
$('#cboCriterioBusqueda').val(0).trigger('change');
let formBuscarFichas = $('#formBuscarFichas').validate();
formBuscarFichas.resetForm();
JOCriterioBusqueda = {}
listarFichas();
}
}, 200);
}
});
}
// PANEL BUSQUEDA DE FICHAS
//========================================
/**
* Envia los parametros al servidor <br/>
* dependiendo los criterios enviados <br/>
* se listaran las fichas
* */
function listarFichas() {
let json = {};
json = criterioBusquedaParams();
defaultConfigDataTable();
$('#tblFichas').dataTable().fnDestroy();
$('#tblFichas').DataTable({
ajax: {
type: 'POST',
url: '../FichaServlet',
dataType: 'json',
data: {
accion: 'consultarFichasPorCriterio',
json: JSON.stringify(json)
},
error: function (data) {
errorMessage(data.responseText);
}
},
processing: true,
serverSide: true,
responsive: true,
iDisplayLength: 20,
columns: [
{data: "item", className: 'text-bold text-center'},
{data: "descripcionCortaTipoDocumento"},
{data: "numeroDocumento"},
{data: "personal"},
{data: "correo"},
{data: "fechaRegistro", className: 'text-center'},
{data: "estilo", className: 'text-center'},
{
data: "codigoTipoEstadoFicha",
className: 'text-center',
render: (data) => {
let accion = ``;
let verActividad = `<li class="text-primary">
<a href="#" onclick="return false" class="verActividadFicha" data-toggle="tooltip" data-placement="top" title="VER ACTIVIDAD">${icon.eye}</a>
</li>`
let anular = `<li class="text-danger">
<a href="#" onclick="return false" class="anularFicha" data-toggle="tooltip" title="ANULAR FICHA">${icon["trash-o"]}</a>
</li>`
let verObservacion = `<li class="text-warning">
<a href="#" onclick="return false" class="verObservacion" data-toggle="tooltip" title="VER OBSERVACION"><i style="font-size: 20px" class="fa fa-exclamation-circle fa-lg"></i></a>
</li>`
let imprimir = `<li class="text-slate">
<a href="#" onclick="return false" class="imprimirFicha" data-toggle="tooltip" title="IMPRIMIR FICHA">${icon.printer}</a>
</li>`
let completada = `<li class="text-success">
<a href="#" onclick="return false" class="verDetalleFichaCompletado" data-toggle="tooltip" title="VER DETALLE FICHA">${icon.file}</a>
</li>`
switch (data) {
case 1: // PENDIENTE
accion = verActividad + anular
break;
case 3: // REGISTRADO
accion = verActividad + imprimir
break;
case 4: // COMPLETADO
accion = verActividad + imprimir + completada
break;
case 6: // POR APROBAR
accion = verActividad + imprimir + completada
break;
case 7: // APROBADO POR PRESIDENCIA
accion = verActividad + imprimir + completada
break;
case 8: // OBSERVADO POR PRESIDENCIA
accion = verActividad + imprimir + completada
break;
case 13: // FICHA ANULADA
accion = verActividad + verObservacion
break;
default:
accion = '-';
break;
}
return `<ul class="icons-list">${accion}</ul>`;
}
}
],
initComplete: () => {
$('.verActividadFicha, .anularFicha, .verDetalleFichaAdministrativaObservadaPorPresidencia, .verObservacion, .imprimirFicha, .verDetalleFichaCompletado').tooltip();
}
});
}
/**
* permite ver el detalle de la ficha y asignar datos administrativos
* */
function verDetalleFichaAdministrativaObservadaPorPresidencia() {
$('#tblFichas tbody').on('click', '.verDetalleFichaAdministrativaObservadaPorPresidencia', function () {
let codigoPersona = $('#tblFichas').DataTable().row($(this).parents('tr')).data().codigoPersona;
let codigoFicha = $('#tblFichas').DataTable().row($(this).parents('tr')).data().codigoFicha;
$.ajax({
url: '../FichaServlet',
type: 'POST',
dataType: 'json',
data: {
accion: 'listarDatosAdministrativosFicha',
codigoPersona: codigoPersona,
codigoFicha: codigoFicha
}, success: function (data, textStatus, jqXHR) {
if (data.status) {
window.location = 'fichaObservadaPorPresidencia.jsp';
window.name = JSON.stringify(data.data.persona);
}
}
});
});
}
/**
* Realiza la peticion para <br/>
* listar los detalles de estado <br/>
* por las que está pasando la ficha <br/>
* @param {int} codigoFicha
*/
function listarDetalleEstadoFichaRequest(codigoFicha) {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../FichaServlet',
data: {accion: 'listarDetalleEstadoFicha', codigoFicha: codigoFicha},
beforeSend: function () {
load("Listando los detalles de estados de la ficha");
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
if (data.status) {
resolve(data.data.detallesEstadoFicha);
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
reject("No se pudo procesar la solicitud de listar detalles de estado de ficha");
}
});
});
}
/**
* permite ver el detalle de los estados <br/>
* por el cual esta pasando la ficha
*/
function verDetalleEstadoFicha() {
$('#tblFichas tbody').on('click', '.verActividadFicha', function (e) {
$('#modalListadoDetalleEstadoFicha').modal({
show: true,
backdrop: 'static',
keyboard: false
});
let data = $('#tblFichas').DataTable().row($(this).parents('tr')).data();
let codigoFicha = data.codigoFicha;
paramCodigoFicha = codigoFicha;
listarDetalleEstadoFichaRequest(codigoFicha).then((data) => {
let actividades = '';
let icon = 'icon-checkmark3';
let style = 'border-success text-success';
let iconUser = '';
for (let i in data) {
// if (data[i].nombreEstado === 'PENDIENTE') {
// style = 'border-slate text-slate';
// icon = 'icon-loop3';
// } else if (data[i].nombreEstado === 'REGISTRADO' || data[i].nombreEstado === 'COMPLETADO') {
// style = 'border-success text-success';
// icon = 'icon-checkmark3';
// }
if (parseInt(data[i].codigoUsuario) === 0) {
iconUser = 'icon-user';
} else {
iconUser = 'icon-laptop';
}
actividades +=
`
<li class="media">
<div class="media-left">
<a href="#" onclick="return false;" class="btn ${style} btn-flat btn-rounded btn-icon btn-xs"><i class="${icon}"></i></a>
</div>
<div class="media-body">
<u><span class="text-semibold"><i class="${iconUser}"></i> ${data[i].nombreUsuario}</span></u><br/>
<span>${data[i].descripcionEstado}</span><br/>
<span class="text-uppercase">Estado:</span> <span class="text-semibold text-primary">${data[i].nombreEstado}</span><br/>
<div class="media-annotation"><i class="fa fa-clock-o fa-lg"></i> ${data[i].fechaRegistroEstado}</div>
</div>
</li>
`;
}
$('#listadoActividades').html(actividades);
});
});
}
/**
*
* Permite ver el detalle de la ficha <br/>
* cuando su estado se encuentra en completado
*/
function verDetalleFichaCompletado() {
$('#tblFichas tbody').on('click', '.verDetalleFichaCompletado', (e) => {
let rowData = $('#tblFichas').DataTable().row($(e.currentTarget).parents('tr')).data()
verDetalleFichaCompletadoRequest(rowData)
.then((data) => {
// console.log(data);
window.name = JSON.stringify(data.data.persona)
localStorage.setItem('paginaActual', 'consultaFichas')
window.location = 'fichadetalle.jsp'
const eventos = {
init() {
this.buscarContrato()
},
buscarContrato() {
querySelector('#btnBuscarContrato').addEventListener('click', () => {
let params = cleanQueryParams({
numeroDocumento: querySelector('#txtNumeroDocumentoIdentidad').value,
apellido: querySelector('#txtApellidos').value,
estado: querySelector('#cboEstadoContratoPlanilla').value,
tipo: querySelector('#cboTipoContratoPlanilla').value,
razonSocial: querySelector('#cboRazonSocial').value,
tipoTrabajador: querySelector('#cboTipoTrabajador').value
})
})
}
function verDetalleFichaCompletadoRequest(obj) {
return new Promise((resolve, reject) => {
$.ajax({
url: '../FichaServlet',
dataType: 'json',
type: 'POST',
data: {
accion: 'listarDetalleFichaPresidencia',
codigoPersona: obj.codigoPersona,
codigoFicha: obj.codigoFicha
}, beforeSend: function (xhr) {
}, success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
resolve(data)
}
}, error: function (jqXHR, textStatus, errorThrown) {
reject('Error al obtener detalle ficha completado')
}
contratos.listarContrato(params)
})
})
}
/**
* Accion: anularFicha <br/>
* Realiza la peticion <br/>
* y deveuleve la respuesta <br/>
* @argument {int} codigoFicha
* @argument {String} observacion
* @returns {boolean}
*/
function anularFichaRequest(codigoFicha, observacion) {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../FichaServlet',
data: {accion: 'anularFicha', codigoFicha: codigoFicha, observacion: observacion},
beforeSend: function () {
load('Anulando Ficha, por favor espere');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
if (data.status) {
resolve(data.message);
} else {
errorMessage(data.message);
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
reject("No se pudo procesar la solicitud de anular ficha");
}
});
});
}
}
/**
* Anular ficha
*/
function anularFicha() {
$('#tblFichas tbody').on('click', '.anularFicha', function () {
let codigoFicha = $('#tblFichas').DataTable().row($(this).parents('tr')).data().codigoFicha;
$.confirm({
icon: 'fa fa-question',
draggable: false,
animationBounce: 1.5,
closeAnimation: 'opacity',
theme: 'modern',
closeIcon: false,
animation: 'scale',
backgroundDismissAnimation: 'glow',
type: 'red',
title: '¿Está seguro de anular la ficha?',
content: `
<form action="" class="formName">
<div class="form-group">
<label class="text-semibold">Ingrese el motivo</label>
<textarea id="txtObservacion" class="form-control text-uppercase" rows="5" cols="30" style="resize:none;"></textarea>
</div>
</form>
`,
buttons: {
'Sí, estoy seguro': {
btnClass: 'btn-danger',
action: () => {
let observacion = $('#txtObservacion').val().trim();
if (!observacion) {
warningMessage('Debe ingresar un motivo por el cual esta anulando la ficha');
return false;
}
const querySelector = (node) => document.querySelector(node)
anularFichaRequest(codigoFicha, observacion.toUpperCase()).then((data) => {
successMessage(data);
listarFichas();
});
}
},
'Cancelar': {
btnClass: 'bg-slate'
}
}
});
});
}
const querySelectorAll = (node) => document.querySelectorAll(node)
/**
* ver observacion request <br/>
* realiza una peticion y trae la observacion <br/>
* segun la ficha seleccionada (solo ficha ANULADA)
* @argument {int} codigoFicha
* @returns {String}
*/
function verObservacionRequest(codigoFicha) {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../FichaServlet',
data: {accion: 'verObservacion', codigoFicha: codigoFicha},
beforeSend: function (xhr) {
load('Cargando datos, por favor espere');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
let observaciones = data.data.observaciones;
if (data.status) {
for (var i in observaciones) {
resolve(observaciones[i].observacion);
}
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
reject("No se pudo procesar la solicitud de ver observacion");
const cleanQueryParams = (params = {}) => {
for (var key in params) {
if (params.hasOwnProperty(key)) {
if (!params[key]) {
delete params[key];
}
});
});
}
/**
* funcion ver observacion <br/>
* abre el modal y visualiza <br/>
* la descripcion que se le puso a la ficha
*/
function verObservacion() {
$('#tblFichas tbody').on('click', '.verObservacion', function () {
let codigoFicha = $('#tblFichas').DataTable().row($(this).parents('tr')).data().codigoFicha;
verObservacionRequest(codigoFicha).then((data) => {
let obs = data.split('\n');
$.alert({
title: 'Observación',
icon: 'fa fa-info fa-lg',
type: 'blue',
theme: 'Material',
content:
`<h6>
${obs.map((val) => {
return '<p>' + val + '</p>';
}).join('\n')}
<h6>
`
});
});
});
}
/**
* imprimir fichas
*/
function imprimirFicha() {
$('#tblFichas tbody').on('click', '.imprimirFicha', function () {
let codigoPersona = parseInt($('#tblFichas').DataTable().row($(this).parents('tr')).data().codigoPersona);
let codigoFicha = parseInt($('#tblFichas').DataTable().row($(this).parents('tr')).data().codigoFicha);
let json = {
codigoPersona: codigoPersona,
codigoFicha: codigoFicha
};
$('#params').val(JSON.stringify(json));
$('#formImprimirFicha').submit();
});
}
/**
* Imprimir actividade de ficha - (flujo)
*/
function imprimirActividadFicha() {
$('#btnImprimirActividadFicha').on('click', () => {
listarDetalleEstadoFichaRequest(paramCodigoFicha).then((data) => {
}
}
let jsonData = {
arrayActividadFicha: data,
codigoFicha: paramCodigoFicha
};
$('#paramsActividadFicha').val(JSON.stringify(jsonData));
$('#formImprimirActividadFicha').submit();
});
});
return params;
}
printLeyend({
el: '#leyenda',
data: [
{
icon: 'eye',
color: 'primary',
title: 'Ver actividad',
description: 'Sirve para ver la actividad de la ficha.'
},
{
icon: 'trash-o',
color: 'danger',
title: 'Anular ficha',
description: 'Sirve para anular una ficha solo si tiene el estado pendiente.'
},
{
icon: 'exclamation-circle',
color: 'warning',
title: 'Ver observación',
description: 'Sirve para ver la razón de la ficha observada.'
},
{
icon: 'print',
color: 'slate',
title: 'Imprimir ficha',
description: 'Sirve para mostrar una previsualización de la ficha impresa.'
},
{
icon: 'file-text-o',
color: 'success',
title: 'Ver detalle de la ficha',
description: 'Sirve para mostrar información detalle de la ficha.'
}
]
})
\ No newline at end of file
......@@ -420,7 +420,7 @@ const fichasDocente = {
buttons: {left: 'Aceptar'}
}).then(flag => {
if (flag) {
window.location = 'lotesFicha.jsp'
// window.location = 'lotesFicha.jsp'
}
})
} else {
......
......@@ -42,7 +42,7 @@
</form>
<div class="row">
<div class="col-md-4 col-md-offset-4">
<div class="col-md-6 col-md-offset-3">
<div class="panel so-card-2">
<div class="panel-heading bg-primary">
<h6 class="panel-title text-semibold">
......@@ -52,29 +52,39 @@
</div>
</div>
<div class="panel-body">
<form action="#" method="post" id="formBuscarFichas" name="formBuscarFichas">
<form onsubmit="return false" id="formBuscarFichas" name="formBuscarFichas">
<div class="row">
<div class="col-md-6">
<div class="col-md-4">
<div class="form-group">
<label for="txtNumeroDocumentoIdentidad" class="text-semibold">N° Documento de Identidad <span class="text-danger">(*)</span></label>
<input type="text" class="form-control text-uppercase" placeholder="Ingresar nro documento" id="txtNumeroDocumentoIdentidad" name="txtNumeroDocumentoIdentidad" minlength="8" maxlength="8" autocomplete="off" aria-required="true">
</div>
</div>
<div class="col-md-6">
<div class="col-md-4">
<div class="form-group">
<label for="txtApellidos" class="text-semibold">Apellidos <span class="text-danger">(*)</span></label>
<input type="text" class="form-control text-uppercase" placeholder="Apellidos" id="txtApellidos" name="txtApellidos" minlength="8" maxlength="8" autocomplete="off" aria-required="true">
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="cboEstadoContratoPlanilla" class="text-semibold">Estado de contrato <span class="text-danger">(*)</span></label>
<select class="select" id="cboEstadoContratoPlanilla" name="cboEstadoContratoPlanilla">
<option value="">TODAS</option>
<option value="1">PENDIENTE</option>
<option value="2">EN CURSO</option>
<option value="3">VENCIDO</option>
</select>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="col-md-4">
<div class="form-group">
<label for="cboTipoContratoPlanilla" class="text-semibold">Tipo de contrato <span class="text-danger">(*)</span></label>
<select class="select" id="cboTipoContratoPlanilla" name="cboTipoContratoPlanilla">
<option value="0">[SELECCIONAR]</option>
<option value="">TODAS</option>
<option value="1">POR NECESIDAD DE MERCADO</option>
<option value="2">TIEMPO PARCIAL</option>
<option value="3">MENSUAL POR HORA</option>
......@@ -84,17 +94,27 @@
</div>
</div>
<div class="col-md-6">
<div class="col-md-4">
<div class="form-group">
<label for="cboRazonSocial" class="text-semibold">Razón Social <span class="text-danger">(*)</span></label>
<select class="select" id="cboRazonSocial" name="cboRazonSocial">
<option value="0">[SELECCIONAR]</option>
<option value="">TODAS</option>
<option value="1">ACE SACO OLIVEROS</option>
<option value="2">ACE SISTEMA HELICOIDAL</option>
<option value="5">ACE APEIRON</option>
</select>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="cboTipoTrabajador" class="text-semibold">Filtro por criterio <span class="text-danger">(*)</span></label>
<select class="select" data-width="100%" id="cboTipoTrabajador" name="cboTipoTrabajador">
<option value="">TODAS</option>
<option value="A">ADMINISTRATIVO</option>
<option value="D">DOCENTE SECUNDARIA</option>
</select>
</div>
</div>
</div>
<div class="row">
......@@ -105,7 +125,7 @@
<div class="row">
<div class="col-md-12 text-center">
<button type="submit" class="btn bg-primary text-center" id="btnBuscarFichas"><i class="fa fa-search fa-lg position-left"></i> Buscar </button>
<button type="submit" class="btn bg-primary text-center" id="btnBuscarContrato"><i class="fa fa-search fa-lg position-left"></i> Buscar </button>
<button type="button" class="btn bg-orange btn-ladda btn-ladda-progress" data-style="expand-right" data-spinner-size="20" id="btnLimpiarFiltroFichas">
<span class="ladda-label"><i class="fa fa-refresh fa-lg"></i> Limpiar</span>
<span class="ladda-spinner"></span>
......@@ -122,38 +142,18 @@
************************* PANEL DE BUSQUEDA DE FICHAS *************************
-->
<!--
************************* PANEL DE LISTADO DE FICHAS *************************
-->
<div class="row">
<div class="col-md-12">
<div class="panel so-card-2">
<div class="panel-heading bg-primary">
<h6 class="panel-title text-semibold">
<i class="fa fa-file fa-lg"></i>&nbsp;&nbsp;Listado de contratos
</h6>
</div>
<table class="table table-bordered table-xxs" id="tblFichas">
<thead>
<tr>
<th class="text-center">#</th>
<th class="text-center">TIPO DOC.</th>
<th class="text-center">NRO DOC.</th>
<th class="text-center">PERSONAL</th>
<th class="text-center">CORREO</th>
<th class="text-center">FECHA REGISTRO</th>
<th class="text-center">ESTADO</th>
<th class="text-center">ACCIONES</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
<!--
************************* PANEL DE LISTADO DE FICHAS *************************
-->
<div class="row">
<div class="col-lg-12">
<div class="panel so-card-2">
<div class="panel-heading bg-primary">
<h6 class="panel-title">Contratos</h6>
</div>
<div id="divListaContratos">
</div>
</div>
</div>
</div>
<div class="row">
......@@ -179,30 +179,6 @@
</div>
</div>
</div>
<!--
************************* MDOAL LISTADO DE DETALLE DE ESTADO FICHA *************************
-->
<div id="modalListadoDetalleEstadoFicha" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header bg-primary">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h6 class="modal-title"><i class="fa fa-file fa-lg"></i>&nbsp;&nbsp;Actividades de la ficha</h6>
</div>
<div class="modal-body">
<ul class="media-list media-list-bordered" id="listadoActividades">
</ul>
</div>
<div class="modal-footer">
<button type="button" class="btn bg-danger" data-dismiss="modal"><i class="fa fa-close fa-lg position-left"></i>Cerrar</button>
<button type="button" class="btn bg-slate-600 pull-left" id="btnImprimirActividadFicha"><i class="fa fa-print fa-lg"></i> Imprimir</button>
</div>
</div>
</div>
</div>
<!--
************************* MDOAL LISTADO DE DETALLE DE ESTADO FICHA *************************
-->
<!--javascript plantilla-->
<%@include file="templates/footer-body.jsp" %>
......
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