Sie sind auf Seite 1von 53

Ejemplo de Clases JAVA por capas.

Patron MVC
Capa C(Controller)
package com.praxis.siho.web.controller;
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.context.FacesContext;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.primefaces.component.datatable.DataTable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import com.praxis.siho.core.data.dto.AsignacionesPorRecursoDto;
import com.praxis.siho.core.data.dto.CatalogoGerenteDto;
import com.praxis.siho.core.data.dto.ConsultaAsignacionesDto;
import com.praxis.siho.core.data.dto.CuentaDto;
import com.praxis.siho.core.data.dto.DescripcionCatalogoDto;
import com.praxis.siho.core.data.dto.EstatusRecursoDto;
import com.praxis.siho.core.data.dto.LineaTecnologicaDto;
import com.praxis.siho.core.data.dto.ProyectoDto;
import com.praxis.siho.core.data.dto.PuestoDto;
import com.praxis.siho.core.data.dto.RecursoDto;
import com.praxis.siho.core.data.dto.ResponsablesRecursosDto;
import com.praxis.siho.core.data.dto.StatusAsignacionesDto;
import com.praxis.siho.core.data.dto.TipoDeVentaDto;
import com.praxis.siho.core.data.dto.UnidadDeNegocioDto;
import com.praxis.siho.core.service.AsignacionesService;
import com.praxis.siho.core.service.CuentasService;
import com.praxis.siho.core.service.DescripcionCatalogoService;
import com.praxis.siho.core.service.GerenteService;
import com.praxis.siho.core.service.LineaTecnologicaService;
import com.praxis.siho.core.service.ProyectosService;

import com.praxis.siho.core.service.PuestosService;
import com.praxis.siho.core.service.RecursosService;
import com.praxis.siho.core.service.StatusAsignacionesService;
import com.praxis.siho.core.service.UnidadDeNegocioService;
import com.praxis.siho.core.util.TiempoUtil;
import com.praxis.siho.web.domain.Pagina;
import com.praxis.siho.web.mvc.SimpleViewController;
import com.praxis.siho.web.util.JsfUtil;
import com.praxis.siho.web.util.HttpJSFUti;
/**
*
* Controlador para Consulta de Asignaciones e historico de proyectos
*
* @author GOHG - OOJY
*
*/
@Component
@Scope("view")
public class ConsultaAsignacionesViewController extends
SimpleViewController<ConsultaAsignacionesDto> implements Serializable {
private static final long serialVersionUID = 1L;
private final static Logger logger = LoggerFactory
.getLogger(ConsultaAsignacionesViewController.class);
@Autowired private RecursosService recursosService;
@Autowired private ProyectosService proyectoService;
@Autowired private PuestosService puestosService;
@Autowired private CuentasService cuentasService;
@Autowired private LineaTecnologicaService lineaTecnologicaService;
@Autowired private UnidadDeNegocioService unidadDeNegocioService;
@Autowired private AsignacionesService asignacionesService;
@Autowired private GerenteService gerenteService;
@Autowired private StatusAsignacionesService statusAsignacionesService;
@Autowired private DescripcionCatalogoService descripcionCatalogoService;
private List<RecursoDto> lstRecursos;
private List<ProyectoDto> lstProyectos;
private List<LineaTecnologicaDto> lstLineasTecnologicas;
private List<UnidadDeNegocioDto> lstUnidadesDeNegocio;
private List<PuestoDto> lstPuestos;
private List<CatalogoGerenteDto> lstGerentes;
private List<ResponsablesRecursosDto> lstResponsables;
private List<EstatusRecursoDto> lstEstatusRec;
private List<AsignacionesPorRecursoDto> lstAsignacionesPorRecurso;
private List<StatusAsignacionesDto> lstEstatusAsig;
private List<DescripcionCatalogoDto> lstTipoPago;
private List<DescripcionCatalogoDto> lstDetalleVenta;

private List<CuentaDto> lstClientes;


private List<TipoDeVentaDto> lstTipoDeVenta;
private AsignacionesLazyDataModel model;
private ConsultaAsignacionesDto consultaAsignacionesDto = new ConsultaAsignacionesDto();
private ConsultaAsignacionesDto filtros;
private String title = "";
private String subTitle = "";
private String activeIndex = "";
@PostConstruct
public void initModel() {
fillLists();
filtros = new ConsultaAsignacionesDto();
filtros.setEstatusRecurso("AC");
filtros.setTipoVistaTabla("recurso");
model = new AsignacionesLazyDataModel(asignacionesService, filtros);
setTitle("Consulta de Asignaciones");
setSubTitle("Datos de la Consulta");
setActiveIndex("");
}
private void fillLists() {
fillListRecursosByEstatus("AC");
lstProyectos = proyectoService.getProyectos();
lstTipoDeVenta = proyectoService.getListTipoVenta();
lstEstatusRec = recursosService.getEstatusRecursos();
lstClientes = cuentasService.getCuentasPraxis();
lstLineasTecnologicas = lineaTecnologicaService.getAll();
lstUnidadesDeNegocio = unidadDeNegocioService.getAll();
lstPuestos = puestosService.getPuestosByStatus();
lstGerentes = gerenteService.getGerenteInfoByRecEstado();
lstResponsables = recursosService.getResponsablesProyectos();
lstEstatusAsig = statusAsignacionesService.getAll();
lstTipoPago = descripcionCatalogoService.getCatalogos(47);
}
public void generateReport(){
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
HSSFRow row;

row = sheet.createRow(0);
row.createCell(0).setCellValue("Rec Id");
sheet.setColumnWidth(0, 2000);
row.createCell(1).setCellValue("Ingreso");
sheet.setColumnWidth(1, 4000);
row.createCell(2).setCellValue("Estatus");
sheet.setColumnWidth(2, 2000);
row.createCell(3).setCellValue("Tipo Cobro");
sheet.setColumnWidth(3, 4000);
row.createCell(4).setCellValue("Puesto");
sheet.setColumnWidth(4, 10000);
row.createCell(5).setCellValue("Proyecto");
sheet.setColumnWidth(5, 7000);
row.createCell(6).setCellValue("Cliente");
sheet.setColumnWidth(6, 8000);
row.createCell(7).setCellValue("D.N.");
sheet.setColumnWidth(7, 8000);
row.createCell(8).setCellValue("C.C.");
sheet.setColumnWidth(8, 8000);
row.createCell(9).setCellValue("Tipo Venta");
sheet.setColumnWidth(9, 3000);
row.createCell(10).setCellValue("Det. Venta");
sheet.setColumnWidth(10, 4000);
row.createCell(11).setCellValue("Inicio");
sheet.setColumnWidth(11, 4000);
row.createCell(12).setCellValue("Fin");
sheet.setColumnWidth(12, 4000);
row.createCell(13).setCellValue("L. Tec.");
sheet.setColumnWidth(13, 1000);
row.createCell(14).setCellValue("Observaciones");
sheet.setColumnWidth(14, 4000);
Pagina<AsignacionesPorRecursoDto> pagina =
asignacionesService.getAsignacionesAsEntities(filtros, 0, filtros.getFilasEncontradas());
List<AsignacionesPorRecursoDto> lst = pagina.getContent();
for (int i = 0; i < filtros.getFilasEncontradas(); i ++){
row = sheet.createRow((short)i + 1);
row.createCell(0).setCellValue(lst.get(i).getRecId());
row.createCell(1).setCellValue(TiempoUtil.fechaTextoDiaMesAo(lst.get(i).getFechaDeIngreso()));
row.createCell(2).setCellValue(lst.get(i).getAsigStaId());
row.createCell(3).setCellValue(lst.get(i).getAsigTipoCobro());
row.createCell(4).setCellValue(lst.get(i).getPuesto());
row.createCell(5).setCellValue(lst.get(i).getProyecto());
row.createCell(6).setCellValue(lst.get(i).getCliente());
row.createCell(7).setCellValue(lst.get(i).getDN());
row.createCell(8).setCellValue(lst.get(i).getCcNombre());

row.createCell(9).setCellValue(lst.get(i).getProTipoDeVenta());
row.createCell(10).setCellValue(lst.get(i).getProDetTipoVenta());
row.createCell(11).setCellValue(TiempoUtil.fechaTextoDiaMesAo(lst.get(i).getInicio()));
row.createCell(12).setCellValue(TiempoUtil.fechaTextoDiaMesAo(lst.get(i).getFin()));
row.createCell(13).setCellValue(lst.get(i).getLineaTec());
row.createCell(14).setCellValue(lst.get(i).getObservaciones());
}
HttpServletResponse res = HttpJSFUti.getResponse();
res.setContentType("application/vnd.ms-excel");
res.setHeader("Content-disposition", "attachment; filename=data.xls");
try {
ServletOutputStream out = res.getOutputStream();
wb.write(out);
wb.close();
out.flush();
out.close();
} catch (IOException ex) {
manageException(ex);
}
FacesContext faces = FacesContext.getCurrentInstance();
faces.responseComplete();
}
public void getAsignacionesByTipoDeVenta() {
fillListDetalleTipoVenta();
enableActiveIndex();
}
public void getAsignacionesByEstatusRecursos() {
fillListRecursosByEstatus(model.getFiltros().getEstatusRecurso());
enableActiveIndex();
}
private void fillListRecursosByEstatus(String estatusRecursos) {
if (estatusRecursos.equals("AC")) {
lstRecursos = recursosService.getRecursosActivos();
} else {
lstRecursos = recursosService.getRecursosInactivos();
}
}
private void fillListDetalleTipoVenta() {

String tipoVenta = model.getFiltros().getIdTipoVenta();


if(tipoVenta.equals("-1")) {
model.getFiltros().setIdDetalleVenta(0);
lstDetalleVenta = proyectoService.getDetalleTipoVenta(tipoVenta);
}
lstDetalleVenta = proyectoService.getDetalleTipoVenta(tipoVenta);
}
public void resetPageSize() {
DataTable dataTableActividades = (DataTable)
FacesContext.getCurrentInstance().getViewRoot().findComponent("formConsultaHorarios:datos");
dataTableActividades.setFirst(0);
enableActiveIndex();
}
public void enableActiveIndex() {
setActiveIndex("0");
}
public void insertUpdateAsignacion() {
try {
HashMap<String, List<AsignacionesPorRecursoDto>> mapMensajes = new
HashMap<String, List<AsignacionesPorRecursoDto>>();
if (consultaAsignacionesDto.getFilasSeleccionadasDeTabla().size() <= 0) {
JsfUtil.addWarnMessage("Seleccione un registro.");
} else {
mapMensajes = asignacionesService.insertUpdateAsignacion(
consultaAsignacionesDto.getFilasSeleccionadasDeTabla(),
filtros.getFinAsignacionIni());
List<AsignacionesPorRecursoDto> lstAsignacionesActualizadas =
mapMensajes.get("lstAsignacionesActualizadas");
List<AsignacionesPorRecursoDto> lstAsignacionesNoActualizadas =
mapMensajes.get("lstAsignacionesNoActualizadas");
List<AsignacionesPorRecursoDto> lstErrorInicioMayorFin =
mapMensajes.get("lstErrorInicioMayorFin");
List<AsignacionesPorRecursoDto> lstErrorFinFueraPeriodoLaboral =
mapMensajes.get("lstErrorFinFueraPeriodoLaboral");
List<AsignacionesPorRecursoDto> lstErrorFinFueraVigenciaProyecto =
mapMensajes.get("lstErrorFinFueraVigenciaProyecto");

List<AsignacionesPorRecursoDto> lstErrorExisteAsignacion =
mapMensajes.get("lstErrorExisteAsignacion");
List<AsignacionesPorRecursoDto> lstErrorIncluyeAsignaciones =
mapMensajes.get("lstErrorIncluyeAsignaciones");
List<AsignacionesPorRecursoDto> lstErrorEnActividades =
mapMensajes.get("lstErrorEnActividades");
List<AsignacionesPorRecursoDto> lstErrorTieneActividades =
mapMensajes.get("lstErrorTieneActividades");
if (lstAsignacionesActualizadas.size() > 0) {
String msg = "";
for (AsignacionesPorRecursoDto a : lstAsignacionesActualizadas)
{
msg += " " + a.getRecId().trim() + " - " +
a.getProyecto().trim() + " - "
+
TiempoUtil.fechaTextoDiaMesAo(a.getInicio()) + " . ";
}
JsfUtil.addSuccessMessage("ACTUALIZACIONES: "
+ msg);
consultaAsignacionesDto.getFilasSeleccionadasDeTabla()
.clear();
}
if (lstAsignacionesNoActualizadas.size() > 0) {
if (lstErrorInicioMayorFin.size() > 0) {
String msg = "";
for (AsignacionesPorRecursoDto a :
lstErrorInicioMayorFin) {
msg += a.getRecId() + " - " + a.getProyecto() + " "
+
TiempoUtil.fechaTextoDiaMesAo(a.getInicio()) + " . ";
}
JsfUtil.addErrorMessage("Inicio mayor que fin de
asignacin: " + msg);
}
if (lstErrorFinFueraPeriodoLaboral.size() > 0) {
String msg = "";
for (AsignacionesPorRecursoDto a :
lstErrorFinFueraPeriodoLaboral) {
msg += a.getRecId() + " - " + a.getProyecto() + " "
+
TiempoUtil.fechaTextoDiaMesAo(a.getInicio()) + " . ";

}
JsfUtil.addErrorMessage("Asignacin fuera de periodo
laboral: " + msg);
}
if (lstErrorFinFueraVigenciaProyecto.size() > 0) {
String msg = "";
for (AsignacionesPorRecursoDto a :
lstErrorFinFueraVigenciaProyecto) {
msg += a.getRecId() + " - " + a.getProyecto() + " "
+
TiempoUtil.fechaTextoDiaMesAo(a.getInicio()) + " . ";
}
JsfUtil.addErrorMessage("Fin de asignacin fuera de
Vigencia del Proyecto: " + msg);
}
if (lstErrorExisteAsignacion.size() > 0) {
String msg = "";
for (AsignacionesPorRecursoDto a :
lstErrorExisteAsignacion) {
msg += a.getRecId() + " - " + a.getProyecto() + " "
+
TiempoUtil.fechaTextoDiaMesAo(a.getInicio()) + " . ";
}
JsfUtil.addErrorMessage("Asignacin al mismo proyecto:
" + msg);
}
if (lstErrorIncluyeAsignaciones.size() > 0) {
String msg = "";
for (AsignacionesPorRecursoDto a :
lstErrorIncluyeAsignaciones) {
msg += a.getRecId() + " - " + a.getProyecto() + " "
+
TiempoUtil.fechaTextoDiaMesAo(a.getInicio()) + " . ";
}
JsfUtil.addErrorMessage("Incluye
Asignaciones/Desasignaciones: " + msg);
}
if (lstErrorEnActividades.size() > 0) {
String msg = "";

for (AsignacionesPorRecursoDto a :
lstErrorEnActividades) {
msg += a.getRecId() + " - " + a.getProyecto() + " "
+
TiempoUtil.fechaTextoDiaMesAo(a.getInicio()) + " . ";
}
JsfUtil.addErrorMessage("Asignacion con Actividades: " +
msg);
}
if (lstErrorTieneActividades.size() > 0) {
String msg = "";
for (AsignacionesPorRecursoDto a :
lstErrorTieneActividades) {
msg += a.getRecId() + " - " + a.getProyecto() + " "
+
TiempoUtil.fechaTextoDiaMesAo(a.getInicio()) + " . ";
}
JsfUtil.addErrorMessage("Asignaciones Truncadas con
Actividades: " + msg);
}
}
if (consultaAsignacionesDto.getFilasSeleccionadasDeTabla().size() != 0)
{
consultaAsignacionesDto.getFilasSeleccionadasDeTabla().clear();
}
}
}
catch (Exception e) {
manageException(e);
}
}
public void deleteAsignacion() {
try {
HashMap<String, List<AsignacionesPorRecursoDto>>
mapDetallesDeEliminacion = new HashMap<String, List<AsignacionesPorRecursoDto>>();
if(consultaAsignacionesDto.getFilasSeleccionadasDeTabla().size() <= 0) {
JsfUtil.addWarnMessage("Seleccione un registro.");
}
else {

mapDetallesDeEliminacion =
asignacionesService.deleteAsignacion(consultaAsignacionesDto.getFilasSeleccionadasDeTabla());
List<AsignacionesPorRecursoDto> lstAsignacionesNoEliminadas =
mapDetallesDeEliminacion
.get("lstAsignacionesNoEliminadas");
List<AsignacionesPorRecursoDto> lstAsignacionesEliminadas =
mapDetallesDeEliminacion
.get("lstAsignacionesEliminadas");
if (lstAsignacionesEliminadas.size() > 0) {
String msg = "";
for (AsignacionesPorRecursoDto a : lstAsignacionesEliminadas) {
msg += a.getRecId() + " - " + a.getProyecto() + " - "
+
TiempoUtil.fechaTextoDiaMesAo(a.getInicio()) + ". ";
}
JsfUtil.addSuccessMessage("Las asignaciones siguientes fueron
eliminadas: " + msg);
}
if (lstAsignacionesNoEliminadas.size() > 0) {
String msg = "";
for (AsignacionesPorRecursoDto a :
lstAsignacionesNoEliminadas) {
msg += a.getRecId() + " - "+ a.getProyecto() + " - "
+
TiempoUtil.fechaTextoDiaMesAo(a.getInicio()) + ". ";
}
JsfUtil.addErrorMessage("Las asignaciones siguientes No fueron
eliminadas: " + msg);
}
}
if (consultaAsignacionesDto.getFilasSeleccionadasDeTabla().size() != 0) {
consultaAsignacionesDto.getFilasSeleccionadasDeTabla().clear();
}
}
catch (Exception e) {
manageException(e);
}
}
/**
* Getters y setters
*/
public List<RecursoDto> getListaRecursos() {
return lstRecursos;

}
public void setListaRecursos(
List<RecursoDto> listaRecursos) {
this.lstRecursos = listaRecursos;
}
public List<ProyectoDto> getListaProyectos() {
return lstProyectos;
}
public void setListaProyectos(List<ProyectoDto> listaProyectos) {
this.lstProyectos = listaProyectos;
}
public List<LineaTecnologicaDto> getListaLineasTecnologicas() {
return lstLineasTecnologicas;
}
public void ListaLineasTecnologicas(
ArrayList<LineaTecnologicaDto> listaLineasTecnologicas) {
this.lstLineasTecnologicas = listaLineasTecnologicas;
}
public List<UnidadDeNegocioDto> getListaUnidadesDeNegocio() {
return lstUnidadesDeNegocio;
}
public void setListaUnidadesDeNegocio(
List<UnidadDeNegocioDto> listaUnidadesDeNegocio) {
this.lstUnidadesDeNegocio = listaUnidadesDeNegocio;
}
public List<PuestoDto> getListaPuestos() {
return lstPuestos;
}
public void setListaPuestos(List<PuestoDto> listaPuestos) {
this.lstPuestos = listaPuestos;
}
public List<CatalogoGerenteDto> getListaGerentes() {
return lstGerentes;
}
public void setListaGerentes(List<CatalogoGerenteDto> listaGerentes) {
this.lstGerentes = listaGerentes;
}

public List<ResponsablesRecursosDto> getListaResponsables() {


return lstResponsables;
}
public void setListaResponsables(List<ResponsablesRecursosDto> listaResponsables) {
this.lstResponsables = listaResponsables;
}
public List<EstatusRecursoDto> getListaEstatusRec() {
return lstEstatusRec;
}
public void setListaEstatusRec(List<EstatusRecursoDto> listaEstatusRec) {
this.lstEstatusRec = listaEstatusRec;
}
public List<AsignacionesPorRecursoDto> getListaAsignacionesPorRecurso() {
return lstAsignacionesPorRecurso;
}
public void setListaAsignacionesPorRecurso(
List<AsignacionesPorRecursoDto> listaAsignacionesPorRecurso) {
this.lstAsignacionesPorRecurso = listaAsignacionesPorRecurso;
}
public List<StatusAsignacionesDto> getListaEstatusAsig() {
return lstEstatusAsig;
}
public void setListaEstatusAsig(
List<StatusAsignacionesDto> listaEstatusAsig) {
this.lstEstatusAsig = listaEstatusAsig;
}
public List<DescripcionCatalogoDto> getListaTipoPago() {
return lstTipoPago;
}
public void setListaTipoPago(List<DescripcionCatalogoDto> listaTipoPago) {
this.lstTipoPago = listaTipoPago;
}
public List<DescripcionCatalogoDto> getListaDetalleVenta() {
return lstDetalleVenta;
}
public void setListaDetalleVenta(
List<DescripcionCatalogoDto> listaDetalleVenta) {
this.lstDetalleVenta = listaDetalleVenta;

}
public List<CuentaDto> getListaClientes() {
return lstClientes;
}
public void setListaClientes(List<CuentaDto> listaClientes) {
this.lstClientes = listaClientes;
}
public List<TipoDeVentaDto> getListaTipoDeVenta() {
return lstTipoDeVenta;
}
public void setListaTipoDeVenta(List<TipoDeVentaDto> listaTipoDeVenta) {
this.lstTipoDeVenta = listaTipoDeVenta;
}
public ConsultaAsignacionesDto getConsultaAsignacionesDto() {
return consultaAsignacionesDto;
}
public void setConsultaAsignacionesDto(
ConsultaAsignacionesDto consultaAsignacionesDto) {
this.consultaAsignacionesDto = consultaAsignacionesDto;
}
public AsignacionesLazyDataModel getModelo() {
return model;
}
public void setModelo(AsignacionesLazyDataModel model) {
this.model = model;
}
public ConsultaAsignacionesDto getFiltros() {
return filtros;
}
public void setFiltros(ConsultaAsignacionesDto filtros) {
this.filtros = filtros;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;

}
public String getSubTitle() {
return subTitle;
}
public void setSubTitle(String subTitle) {
this.subTitle = subTitle;
}
public String getActiveIndex() {
return activeIndex;
}
public void setActiveIndex(String activeIndex) {
this.activeIndex = activeIndex;
}
@Override
protected Logger getLogger() {
return logger;
}
@Override
public String search() {
return null;
}
@Override
public String searchDatabyId() {
return null;
}
@Override
public String save() {
return null;
}
@Override
public String delete() {
return null;
}
}

Capa V(xhtml)
<?xml version="1.0" encoding="UTF-8" ?>
<ui:composition template="/templates/default/main.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<ui:define name="content" >
<!-Pantalla Consulta de Asignaciones -->
<h1 class="page-header titulo" >
<h:outputText
value="#{consultaAsignacionesViewController.title}"></h:outputText>
</h1>
<h2 class="page-header subtitulo">
<h:outputText
value="#{consultaAsignacionesViewController.subTitle}">
</h:outputText>
</h2>
<p:messages id="messages" showDetail="true" autoUpdate="true"
showSummary="false"
closable="true" />
<h:form id="formConsultaHorarios" label="" class="form-horizontal">
<p:remoteCommand name="resetPageSise"
actionListener="#{consultaAsignacionesViewController.resetPageSize}"
update="datos"/>
<p:remoteCommand name="activeIndex"
actionListener="#{consultaAsignacionesViewController.enableActiveIndex}"
update="formConsultaHorarios"/>
<p:ajaxStatus onsuccess="PF('statusDialog').hide()" />
<p:dialog widgetVar="statusDialog" modal="true" draggable="false"
closable="false" resizable="false" showHeader="false">
<p:graphicImage value="${resource['images:ajax-loader.gif']}" />
</p:dialog>
<div class="btn-group " role="group" aria-label="First
group">
<p:commandLink id="btonNuevo" ajax="false"
disabled="#{consultaAsignacionesViewController.filtros.idRecurso==null ||
consultaAsignacionesViewController.filtros.idRecurso==''}"
class="ui-button ui-widget ui-state-default uicorner-all ui-button-text-only btn-crud commandLinkStyleButton"
action="nuevaAsignacion.xhtml" value="Nuevo">
<f:param name="recId"
value="#{consultaAsignacionesViewController.filtros.idRecurso}" />
</p:commandLink>
<p:commandButton value="Eliminar"
action="#{consultaAsignacionesViewController.deleteAsignacion}"
update="datos" class="btn-crud" onclick="PF('statusDialog').show();">
<p:confirm message="Confirme que desea eliminar
las asignaciones seleccionadas." icon="ui-icon-alert" />
</p:commandButton>
<p:commandButton value="Actualizar Fecha"

action="#{consultaAsignacionesViewController.insertUpdateAsignacion}"
class="btn-crud" update="datos"
onclick="PF('statusDialog').show();">
<p:confirm message="Confirme que desea
modificar las asignaciones seleccionadas." icon="ui-icon-alert" />
</p:commandButton>
<p:confirmDialog global="true" showEffect="fade"
hideEffect="fade" closable="false" header="Confirmacin">
<p:commandButton value="Si" type="button"
styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
<p:commandButton value="No" type="button"
styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
</p:confirmDialog>
</div>
<p:accordionPanel
activeIndex="#{consultaAsignacionesViewController.activeIndex}"
styleClass="accordion-panel-style">
<p:tab title="Bsqueda" titleStyleClass="accordiontitle-style" titleStyle="font-size: 14px;">
<p:panel id="panelC" styleClass="contentaccordion-panel">
<div class="form-group">
<div class="col-xs-12 col-sm-12
col-md-6 col-lg-4 padingDiv">
<p:outputLabel
for="cboRecursos" styleClass="labels col-xs-12 col-sm-3 col-md-3 col-lg-3 controllabel" value="Recurso:" />
<div class="col-xs-12 col-sm9 col-md-9 col-lg-9">
<p:selectOneMenu
id="cboRecursos" value="#{consultaAsignacionesViewController.filtros.idRecurso}"
panelStyleClass="selects" onchange="PF('statusDialog').show();">
<f:selectItem
itemLabel="--Seleccione un Recurso--" itemValue="#{null}" />
<p:ajax
event="change" update=":formConsultaHorarios"
listener="#{consultaAsignacionesViewController.resetPageSize}"/>
<f:selectItems
value="#{consultaAsignacionesViewController.listaRecursos}"
var="lista"
itemLabel="#{lista.recId} - #{lista.recNombre} #{lista.recPaterno}
#{lista.recMaterno}"
itemValue="#{lista.recId}" />

col-md-6 col-lg-4 padingDiv">


for="cboProyecto"
xs-12 col-sm-3 col-md-3 col-lg-3 control-label"

</p:selectOneMenu>
</div>
</div>
<div class="col-xs-12 col-sm-12
<p:outputLabel
styleClass="labels colvalue="Proyecto:" />
<div class="col-xs-12 col-sm-

9 col-md-9 col-lg-9">

<p:selectOneMenu
id="cboProyecto" onselect="activeIndex()"
value="#{consultaAsignacionesViewController.filtros.idProyecto}"
panelStyleClass="selects"
onchange="PF('statusDialog').show();">

<f:selectItem

itemLabel="--Seleccione un Proyecto--" itemValue="#{-1}"/>

<p:ajax

event="change" update=":formConsultaHorarios"
actionlistener="#{NuevaAsignacionViewController.dataNuevaAsignacion.recId}"/>
<p:ajax
event="change" update=":formConsultaHorarios"
listener="#{consultaAsignacionesViewController.enableActiveIndex}"/>
<f:selectItems
value="#{consultaAsignacionesViewController.listaProyectos}"

var="lista"

itemLabel="#{lista.proNombreCorto}"
itemValue="#{lista.proId}" />

col-md-6 col-lg-4 padingDiv">


for="cboBoxTipoVta"

</p:selectOneMenu>
</div>
</div>
<div class="col-xs-12 col-sm-12
<p:outputLabel

styleClass="labels colxs-12 col-sm-3 col-md-3 col-lg-3 control-label" value="Tipo Venta:" />


<div class="col-xs-12 col-sm9 col-md-9 col-lg-9">
<p:selectOneMenu
id="cboBoxTipoVta"
value="#{consultaAsignacionesViewController.filtros.idTipoVenta}"
panelStyleClass="selects "
onchange="PF('statusDialog').show();">
itemLabel="--Seleccione Tipo de Venta--"

<f:selectItem
itemValue="-

1" />
event="change" update="cboBoxDetalleVta :formConsultaHorarios"

<p:ajax

listener="#{consultaAsignacionesViewController.getAsignacionesByTipoDeVenta}" />
<f:selectItems
value="#{consultaAsignacionesViewController.listaTipoDeVenta}"
var="lista"

itemLabel="#{lista.clave} - #{lista.descripcion}"
itemValue="#{lista.clave}" />
</p:selectOneMenu>
</div>
</div>
<div class="col-xs-12 col-sm-12
col-md-6 col-lg-4 padingDiv">

<p:outputLabel
for="cboEstatusRec" styleClass="labels col-xs-12 col-sm-3 col-md-3 col-lg-3
control-label"
value="Estatus Rec.:"
/>
<div class="col-xs-12 col-sm9 col-md-9 col-lg-9">
<p:selectOneMenu
id="cboEstatusRec"
value="#{consultaAsignacionesViewController.filtros.estatusRecurso}"
panelStyleClass="selects "
maxlength="10"

onchange="PF('statusDialog').show();">

<f:selectItem

itemLabel="--Seleccione un Status--" itemValue="" />


event="change" update="cboRecursos :formConsultaHorarios"

<p:ajax

listener="#{consultaAsignacionesViewController.getAsignacionesByEstatusRecursos}"
/>
<f:selectItems
value="#{consultaAsignacionesViewController.listaEstatusRec}"

var="lista"

itemLabel="#{lista.estatus}"
itemValue="#{lista.claveEstatus}" />

col-md-6 col-lg-4 padingDiv">

</p:selectOneMenu>
</div>
</div>
<div class="col-xs-12 col-sm-12

for="cboBoxCliente"
xs-12 col-sm-3 col-md-3 col-lg-3 control-label"

<p:outputLabel
styleClass="labels colvalue="Cliente:" />
<div class="col-xs-12 col-sm-

9 col-md-9 col-lg-9">

<p:selectOneMenu
id="cboBoxCliente" value="#{consultaAsignacionesViewController.filtros.idCliente}"
panelStyleClass="selects"
onchange="PF('statusDialog').show();">
itemLabel="--Seleccione un Cliente--" itemValue="" />

<f:selectItem

<p:ajax
event="change" update=":formConsultaHorarios"
listener="#{consultaAsignacionesViewController.enableActiveIndex}"/>
<f:selectItems value="#{consultaAsignacionesViewController.listaClientes}"
var="lista"
itemLabel="#{lista.ctaNombreCorto} - #{lista.ctaNombre}"
itemValue="#{lista.ctaNombreCorto}" />
</p:selectOneMenu>
</div>
</div>
<div class="col-xs-12 col-sm-12
col-md-6 col-lg-4 padingDiv">

<p:outputLabel

for="cboBoxDetalleVta"

styleClass="labels col-

xs-12 col-sm-3 col-md-3 col-lg-3 control-label"


/>

value="Detalle Venta:"
<div class="col-xs-12 col-sm-

9 col-md-9 col-lg-9">

<p:selectOneMenu
id="cboBoxDetalleVta"
value="#{consultaAsignacionesViewController.filtros.idDetalleVenta}"
panelStyleClass="selects " onchange="PF('statusDialog').show();">
<f:selectItem
itemLabel="--Seleccione Detalle de Venta--" itemValue="" />
<p:ajax
event="change" update=":formConsultaHorarios"
listener="#{consultaAsignacionesViewController.enableActiveIndex}"/>
<f:selectItems
value="#{consultaAsignacionesViewController.listaDetalleVenta}"
var="lista"
itemLabel="#{lista.dcaDescripcion}"
itemValue="#{lista.dcaIdDescripcion}" />

col-md-6 col-lg-4 padingDiv">

</p:selectOneMenu>
</div>
</div>
<div class="col-xs-12 col-sm-12

<p:outputLabel
for="cboPuesto" styleClass="labels col-xs-12 col-sm-3 col-md-3 col-lg-3 controllabel" value="Puesto:" />
<div class="col-xs-12 col-sm9 col-md-9 col-lg-9">
<p:selectOneMenu
id="cboPuesto"
value="#{consultaAsignacionesViewController.filtros.idPuesto}"
panelStyleClass="selects "
onchange="PF('statusDialog').show();">
itemLabel="--Seleccione un Puesto--" itemValue="#{-1}" />

<f:selectItem

<p:ajax
event="change" update=":formConsultaHorarios"
listener="#{consultaAsignacionesViewController.enableActiveIndex}"/>
<f:selectItems
value="#{consultaAsignacionesViewController.listaPuestos}"

var="lista"

itemLabel="#{lista.pueNombre}"
itemValue="#{lista.pueId}" />

col-md-6 col-lg-4 padingDiv">


for="cboGerente"

</p:selectOneMenu>
</div>
</div>
<div class="col-xs-12 col-sm-12
<p:outputLabel
styleClass="labels col-

xs-12 col-sm-3 col-md-3 col-lg-3 control-label"

value="Gerente:" />
<div class="col-xs-12 col-sm9 col-md-9 col-lg-9">

<p:selectOneMenu

id="cboGerente"
value="#{consultaAsignacionesViewController.filtros.idGerente}"
panelStyleClass="selects "
onchange="PF('statusDialog').show();">

<f:selectItem

itemLabel="--Seleccione un Gerente--" itemValue="#{-1}" />

<p:ajax
event="change" update=":formConsultaHorarios"
listener="#{consultaAsignacionesViewController.enableActiveIndex}"/>
<f:selectItems
value="#{consultaAsignacionesViewController.listaGerentes}"

var="lista"

itemLabel="#{lista.gerRecId} - #{lista.recNombre} #{lista.recPaterno}


#{lista.recMaterno}"
itemValue="#{lista.gerId}" />
</p:selectOneMenu>
</div>
</div>
<div class="col-xs-12 col-sm-12
col-md-6 col-lg-4 padingDiv">
for="cboEstatusAsig"
xs-12 col-sm-3 col-md-3 col-lg-3 control-label"
/>
9 col-md-9 col-lg-9">
id="cboEstatusAsig"

<p:outputLabel
styleClass="labels colvalue="Estatus Asig:"
<div class="col-xs-12 col-sm<p:selectOneMenu

value="#{consultaAsignacionesViewController.filtros.idStatusAsignacion}"
panelStyleClass="selects "
onchange="PF('statusDialog').show();">

<f:selectItem

itemLabel="--Seleccione Edo. de Asignacin--"

itemValue=""

/>

<p:ajax
event="change" update=":formConsultaHorarios"
listener="#{consultaAsignacionesViewController.enableActiveIndex}"/>
<f:selectItems
value="#{consultaAsignacionesViewController.listaEstatusAsig}"

var="lista"

itemLabel="#{lista.staId} - #{lista.staDescripcion}"
itemValue="#{lista.staId}" />

col-md-6 col-lg-4 padingDiv">


for="cboResponsables"
xs-12 col-sm-3 col-md-3 col-lg-3 control-label"

</p:selectOneMenu>
</div>
</div>
<div class="col-xs-12 col-sm-12
<p:outputLabel
styleClass="labels colvalue="Resp./Ap:" />
<div class="col-xs-12 col-sm-

9 col-md-9 col-lg-9">

<p:selectOneMenu

id="cboResponsables"
value="#{consultaAsignacionesViewController.filtros.idResponsableproyecto}"
panelStyleClass="selects "
onchange="PF('statusDialog').show();">

<f:selectItem

itemLabel="--Seleccione un Responsable--"
itemValue="#{-1}" />

<p:ajax
event="change" update=":formConsultaHorarios"
listener="#{consultaAsignacionesViewController.enableActiveIndex}"/>
<f:selectItems
value="#{consultaAsignacionesViewController.listaResponsables}"

var="lista"

itemLabel="#{lista.recusrsos.recId} - #{lista.recusrsos.recNombre}
#{lista.recusrsos.recPaterno} #{lista.recusrsos.recMaterno}"
itemValue="#{lista.responsable.rppId}" />
</p:selectOneMenu>
</div>
</div>

<div class="col-xs-12 col-sm-12


col-md-6 col-lg-4 padingDiv">
for="cboUnidadNegocio"
xs-12 col-sm-3 col-md-3 col-lg-3 control-label"
9 col-md-9 col-lg-9">
id="cboUnidadNegocio"

<p:outputLabel
styleClass="labels colvalue="D.N.:" />
<div class="col-xs-12 col-sm<p:selectOneMenu

value="#{consultaAsignacionesViewController.filtros.idUnidadDeNegocio}"
panelStyleClass="selects "
onchange="PF('statusDialog').show();">
itemLabel="--Seleccione Unidad de Negocio--"

<f:selectItem
itemValue=""

/>

<p:ajax
event="change" update=":formConsultaHorarios"
listener="#{consultaAsignacionesViewController.enableActiveIndex}"/>
<f:selectItems
value="#{consultaAsignacionesViewController.listaUnidadesDeNegocio}"
var="lista"
itemLabel="#{lista.unClave} - #{lista.unNombre}"
itemValue="#{lista.unClave}" />
</p:selectOneMenu>
</div>
</div>
<div class="col-xs-12 col-sm-12
col-md-6 col-lg-4 padingDiv">
for="cboTipoDeCobro"
xs-12 col-sm-3 col-md-3 col-lg-3 control-label"
9 col-md-9 col-lg-9">
id="cboTipoDeCobro"

<p:outputLabel
styleClass="labels colvalue="Tipo Cobro:" />
<div class="col-xs-12 col-sm<p:selectOneMenu

value="#{consultaAsignacionesViewController.filtros.idTipoDePago}"
panelStyleClass="selects "
onchange="PF('statusDialog').show();">
itemLabel="--Seleccione un Tipo de Pago--"

<f:selectItem

itemValue="#{-1}" />
<p:ajax
event="change" update=":formConsultaHorarios"
listener="#{consultaAsignacionesViewController.enableActiveIndex}"/>

<f:selectItems
value="#{consultaAsignacionesViewController.listaTipoPago}"
var="lista"

itemLabel="#{lista.dcaDescripcion}"
itemValue="#{lista.dcaIdDescripcion}" />

</p:selectOneMenu>
</div>
</div>
<div class="col-xs-12 col-sm-12
col-md-6 col-lg-offset-8 col-lg-4 padingDiv" style="margin-bottom:20px;">
<p:outputLabel
for="cboLineasTecnologicas"
styleClass="labels colxs-12 col-sm-3 col-md-3 col-lg-3 control-label"
value="Lnea Tec.:" />
<div class="col-xs-12 col-sm9 col-md-9 col-lg-9">
<p:selectOneMenu
id="cboLineasTecnologicas"
value="#{consultaAsignacionesViewController.filtros.idLineaTecnologica}"
panelStyleClass="selects "
onchange="PF('statusDialog').show();">
itemLabel="--Seleccione Lnea Tecnolgica--"

<f:selectItem
itemValue=""

/>

<p:ajax
event="change" update=":formConsultaHorarios"
listener="#{consultaAsignacionesViewController.enableActiveIndex}"/>
<f:selectItems
value="#{consultaAsignacionesViewController.listaLineasTecnologicas}"
var="lista"
itemLabel="#{lista.tecId} - #{lista.tecDescripcion}"
itemValue="#{lista.tecId}" />

col-md-12 col-lg-6 padingDiv">


for="calendarAsignacion"
xs-12 col-sm-2 col-md-4 col-lg-2 control-label"

</p:selectOneMenu>
</div>
</div>
<div class="col-xs-12 col-sm-12
<p:outputLabel
styleClass="labels colvalue="Asignacin:" />
<div class="col-xs-12 col-sm-

5 col-md-4 col-lg-5">

<p:calendar

id="calendarAsignacion" readonlyInput="true"
value="#{consultaAsignacionesViewController.filtros.asigIni}"

showOn="button"
placeholder="Inicio" locale="es"
pattern="dd/MM/yyyy" navigator="true" >

<p:ajax

event="dateSelect" onstart="PF('statusDialog').show();"
update=":formConsultaHorarios"
listener="#{consultaAsignacionesViewController.enableActiveIndex}"/>
</p:calendar>
<p:commandButton
id="btnLimpiar1" value="Limpiar"
onclick="PF('statusDialog').show();"
listener="#{consultaAsignacionesViewController.enableActiveIndex}"
update="calendarAsignacion :formConsultaHorarios

" >

<f:setPropertyActionListener value="#{null}"
target="#{consultaAsignacionesViewController.modelo.filtros.asigIni}"></f:setPrope
rtyActionListener>
</p:commandButton>
</div>
<div class="col-xs-12 col-sm5 col-md-4 col-lg-5">
<p:calendar
id="calendAsigFin" readonlyInput="true"
value="#{consultaAsignacionesViewController.filtros.asigFin}"
showOn="button"
placeholder="Fin" locale="es"
pattern="dd/MM/yyyy" navigator="true" >
event="dateSelect" onstart="PF('statusDialog').show();"

<p:ajax

update=":formConsultaHorarios"
listener="#{consultaAsignacionesViewController.enableActiveIndex}"/>
</p:calendar>
<p:commandButton
id="btnLimpiar2" value="Limpiar"
onclick="PF('statusDialog').show();"
listener="#{consultaAsignacionesViewController.enableActiveIndex}"
update="calendAsigFin :formConsultaHorarios" >
<f:setPropertyActionListener value="#{null}"
target="#{consultaAsignacionesViewController.modelo.filtros.asigFin}"></f:setPrope
rtyActionListener>
</p:commandButton>
</div>
</div>
<div class="col-xs-12 col-sm-12
col-md-12 col-lg-6 padingDiv">
<p:outputLabel
for="calendarIngreso"
styleClass="labels col-

xs-12 col-sm-2 col-md-4 col-lg-2 control-label"


value="Ingreso:" />
<div class="col-xs-12 col-sm5 col-md-4 col-lg-5">

<p:calendar

id="calendarIngreso" readonlyInput="true"
value="#{consultaAsignacionesViewController.filtros.ingresoIni}"
showOn="button"
placeholder="Inicio" pattern="dd/MM/yyyy"
locale="es"
navigator="true">
<p:ajax
event="dateSelect" onstart="PF('statusDialog').show();"
update=":formConsultaHorarios"
listener="#{consultaAsignacionesViewController.enableActiveIndex}"/>
</p:calendar>
<p:commandButton
id="btnLimpiar3" value="Limpiar"
onclick="PF('statusDialog').show();"
listener="#{consultaAsignacionesViewController.enableActiveIndex}"
update="calendarIngreso :formConsultaHorarios" >
<f:setPropertyActionListener value="#{null}"
target="#{consultaAsignacionesViewController.modelo.filtros.ingresoIni}"></f:setPr
opertyActionListener>
</p:commandButton>
</div>
<div class="col-xs-12
col-sm-5 col-md-4 col-lg-5">
<p:calendar
id="calendarIngresoFin" readonlyInput="true"
value="#{consultaAsignacionesViewController.filtros.ingresoFin}"
showOn="button"
placeholder="Fin" pattern="dd/MM/yyyy"
locale="es"
navigator="true" >
<p:ajax
event="dateSelect" onstart="PF('statusDialog').show();"
update=":formConsultaHorarios"
listener="#{consultaAsignacionesViewController.enableActiveIndex}"/>
</p:calendar>
<p:commandButton
id="btnLimpiar4" value="Limpiar"
onclick="PF('statusDialog').show();"
listener="#{consultaAsignacionesViewController.enableActiveIndex}"
update="calendarIngresoFin :formConsultaHorarios" >
<f:setPropertyActionListener value="#{null}"
target="#{consultaAsignacionesViewController.modelo.filtros.ingresoFin}"></f:setPr
opertyActionListener>

</p:commandButton>
</div>

col-md-12 col-lg-6 padingDiv">

</div>
<div class="col-xs-12

for="calendarAsignacionFinDe"
sm-2 col-md-4 col-lg-2 control-label"

col-sm-12

<p:outputLabel
styleClass="labels colvalue="Fin de Asig.:"

/>
5 col-md-4 col-lg-5">
id="calendarAsignacionFinDe" readonlyInput="true"

<div class="col-xs-12 col-sm<p:calendar

value="#{consultaAsignacionesViewController.filtros.finAsignacionIni}"
showOn="button"
placeholder="Inicio" pattern="dd/MM/yyyy"
locale="es"
navigator="true" >
<p:ajax
event="dateSelect" onstart="PF('statusDialog').show();"
update=":formConsultaHorarios"
listener="#{consultaAsignacionesViewController.enableActiveIndex}"/>
</p:calendar>
<p:commandButton
id="btnLimpiar5" value="Limpiar"
onclick="PF('statusDialog').show();"
listener="#{consultaAsignacionesViewController.enableActiveIndex}"
update="calendarAsignacionFinDe :formConsultaHorarios" >
<f:setPropertyActionListener value="#{null}"
target="#{consultaAsignacionesViewController.modelo.filtros.finAsignacionIni}"></f
:setPropertyActionListener>
</p:commandButton>
</div>
<div class="col-xs-12 col-sm5 col-md-4 col-lg-5">
<p:calendar
id="calendarAsignacionFinA" readonlyInput="true"
value="#{consultaAsignacionesViewController.filtros.finAsignacionFin}"
showOn="button"
placeholder="Fin" pattern="dd/MM/yyyy"
locale="es"
navigator="true" >
<p:ajax
event="dateSelect" onstart="PF('statusDialog').show();"
update=":formConsultaHorarios"
listener="#{consultaAsignacionesViewController.enableActiveIndex}"/>
</p:calendar>
<p:commandButton
id="btnLimpiar6" value="Limpiar"

onclick="PF('statusDialog').show();"
listener="#{consultaAsignacionesViewController.enableActiveIndex}"
update="calendarAsignacionFinA :formConsultaHorarios" >
<f:setPropertyActionListener value="#{null}"
target="#{consultaAsignacionesViewController.modelo.filtros.finAsignacionFin}"></f
:setPropertyActionListener>
</p:commandButton>
</div>
</div>
<div class="col-xs-12 col-sm-12
col-md-12 col-lg-12 padingDiv">
<div class="col-xs-12 col-sm12 col-md-6 col-lg-4 padingDiv">
<p:selectOneButton
styleClass="filas-form-group"
value="#{consultaAsignacionesViewController.filtros.tipoVistaTabla}">
<f:selectItem
itemLabel="Recurso" itemValue="recurso" />
<f:selectItem
itemLabel="Histrico" itemValue="historico" />
<p:ajax
event="change" update=":formConsultaHorarios"
onstart="PF('statusDialog').show();"
listener="#{consultaAsignacionesViewController.enableActiveIndex}"/>
</p:selectOneButton>
<h:commandButton
action="#{consultaAsignacionesViewController.generateReport}"
value="Exportar a
Excel" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-textonly btn-crud commandLinkStyleButton"/>
</div>
</div>
</div>
</p:panel>
</p:tab>
</p:accordionPanel>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 padingDiv"
style="padding-right: 0px; padding-left: 0px;">
<p:dataTable id="datos"
value="#{consultaAsignacionesViewController.modelo}"
rowKey="#{lista.recId} #{lista.asigProId}"
currentPageReportTemplate="Total de registros:
{totalRecords}"
paginatorTemplate="{CurrentPageReport}
{FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} "
selection="#{consultaAsignacionesViewController.consultaAsignacionesDto.filasSelec
cionadasDeTabla}"
styleClass="gridt-m" var="lista" lazy="true"
paginator="true"
emptyMessage="1" rows="50"
resizableColumns="false" scrollable="true">

headerText="Rec Id">

<p:column selectionMode="multiple"
style="width:30px; text-align:center" />
<p:column style="width:60px;text-align:center"

<p:commandLink id="btonEditar" ajax="false"


action="nuevaAsignacion.xhtml" value =
"#{lista.recId}" styleClass="checkedFontColor commandLinkColor">
<f:param name="recId"
value="#{lista.recId}" />
<f:param name="proId"
value="#{lista.asigProId}" />
<f:param name="fechaInicio"
value="#{lista.inicio}" />
<f:param name="fechaFin"
value="#{lista.fin}" />
</p:commandLink>
</p:column>
<p:column style="width:70px;text-align:center"
headerText="Ingreso">
<h:outputText value="#{lista.fechaDeIngreso}">
<f:convertDateTime pattern="dd/MM/yyyy"
/>
</h:outputText>
</p:column>
<p:column style="width:60px;text-align:center"
headerText="Estatus">

Cobro">

/>

/>

<h:outputText value="#{lista.asigStaId}" />


</p:column>
<p:column style="width:100px" headerText="Tipo
<h:outputText value="#{lista.asigTipoCobro}" />
</p:column>
<p:column style="width:170px" headerText="Puesto">
<h:outputText value="#{lista.puesto}" />
</p:column>
<p:column style="width:170px" headerText="Proyecto">
<h:outputText value="#{lista.proyecto}" />
</p:column>
<p:column style="width:170px" headerText="Cliente">
<h:outputText value="#{lista.cliente}" />
</p:column>
<p:column style="width:170px" headerText="D.N.">
<h:outputText value="#{lista.DN}" />
</p:column>
<p:column style="width:170px" headerText="C.C.">
<h:outputText value="#{lista.ccNombre}" />
</p:column>
<p:column style="width:60px" headerText="Tipo Venta">
<h:outputText value="#{lista.proTipoDeVenta}"
</p:column>
<p:column style="width:60px" headerText="Det. Venta">
<h:outputText value="#{lista.proDetTipoVenta}"
</p:column>
<p:column style="width:70px" headerText="Inicio">

<h:outputText value="#{lista.inicio}">
<f:convertDateTime pattern="dd/MM/yyyy"

/>

</h:outputText>
</p:column>
<p:column style="width:70px" headerText="Fin">
<h:outputText value="#{lista.fin}">
<f:convertDateTime pattern="dd/MM/yyyy"

/>

</h:outputText>
</p:column>

headerText="Observaciones">

<p:column style="width:40px" headerText="L. Tec.">


<h:outputText value="#{lista.lineaTec}" />
</p:column>
<p:column style="width:110px"

<h:outputText value="#{lista.observaciones}" />


</p:column>
</p:dataTable>
</div>
</h:form>
<!-Fin Pantalla Consulta de Asignaciones
</ui:define>
</ui:composition>

-->

Capa dfe servicio (Modelo)


package com.praxis.siho.core.service;
import
import
import
import
import

java.math.BigDecimal;
java.util.ArrayList;
java.util.Date;
java.util.HashMap;
java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import

com.praxis.siho.core.data.dto.AsignacionDto;
com.praxis.siho.core.data.dto.AsignacionRecursoDto;
com.praxis.siho.core.data.dto.AsignacionesPorRecursoDto;
com.praxis.siho.core.data.dto.CatalogoActividadesDto;
com.praxis.siho.core.data.dto.ConsultaAsignacionesDto;
com.praxis.siho.core.data.dto.EstatusRecursoDto;
com.praxis.siho.core.data.dto.NuevaAsignacionDto;
com.praxis.siho.core.data.dto.PeriodoDeTrabajoDto;
com.praxis.siho.core.data.dto.ProximosADesasignarseDto;
com.praxis.siho.core.data.dto.ProyectoInfoDto;
com.praxis.siho.core.data.dto.RecursoDto;
com.praxis.siho.core.data.dto.RegistroDesasignacionDto;
com.praxis.siho.core.data.repository.AsignacionesRepository;
com.praxis.siho.core.data.repository.AsignacionesRepositoryWrapper;
com.praxis.siho.core.util.Enumerations;
com.praxis.siho.core.util.TextoUtil;
com.praxis.siho.core.util.TiempoUtil;
com.praxis.siho.security.service.PlataformaSecurityContext;
com.praxis.siho.web.domain.Pagina;

/**
* @author GOHG
*
*/
@Service
@Transactional
public class AsignacionesServiceImpl implements AsignacionesService {
//
@Autowired SoftwareRepository softwareRepository;
//
@Autowired CatalogosGeneralesRepository catalogosGeneralesRepository;
@Autowired AsignacionesRepository asignacionRepository;
@Autowired AsignacionesRepositoryWrapper asignacionesRepositoryWrapper;
@Autowired ProyectosService proyectosService;
@Autowired ActividadesRecursosService actividadesRecursosService;
@Autowired HorarioService horarioService;
@Autowired PeriodosDeTrabajoService periodosDeTrabajoService;
@Autowired private PlataformaSecurityContext context;
//

@Transactional(readOnly = true)

//
//
//
//
//

@Override
public Collection<ConocimientoDto> consultaConocimientoPorId(
String recursoId) {
return softwareRepository.consultaConocimientoPorId(recursoId);
}

/**
* se movio el metodo a puestos verifiar q exista el service
*
*/
/*
*
* (non-Javadoc)
*
* @see com.praxis.siho.core.service.AsignacionesService#getPuestosAsig()
*/
// @Transactional(readOnly = true)
// @Override
// public ArrayList<PuestoDto> getPuestosAsig() {
// ArrayList<?> lista = asignacionRepository.getPuestosAsig();
// ArrayList<PuestoDto> listaPuestosDto = new ArrayList<PuestoDto>();
// for (Object o : lista) {
// PuestoDto puestosDto = new PuestoDto();
// Object[] array = (Object[]) o;
// puestosDto.setPueId(Long.parseLong(array[0].toString().trim()));
// puestosDto.setPueNombre(array[1].toString());
// listaPuestosDto.add(puestosDto);
// }
// return listaPuestosDto;
// }
/**
* se movio el metodo a ResponsablesProyecto verifiar q exista el service
*
*/
/*
* (non-Javadoc)
*
* @see
* com.praxis.siho.core.service.AsignacionesService#getResponsablesProyecto
* ()
*/
// @Transactional(readOnly = true)
// @Override
// public ArrayList<ResponsablesProyectosDto> getResponsablesProyecto() {
// ArrayList<?> lista = asignacionRepository.getResponsablesProyecto();
// ArrayList<ResponsablesProyectosDto> listaResponsables = new
// ArrayList<ResponsablesProyectosDto>();
// for (Object o : lista) {
// Object[] oArray = (Object[]) o;
// ResponsablesProyectosDto responsablesProyectosDto = new
// ResponsablesProyectosDto();
// ResponsableProyectoDto responsableProyectoDto = new
// ResponsableProyectoDto();
// RecursoDto recursoDto = new RecursoDto();
//

responsableProyectoDto.setRppId(Long.parseLong(oArray[0].toString().trim()));
// recursoDto.setRecId(oArray[1].toString().trim());
// recursoDto.setRecNombre(oArray[2].toString().trim());
// recursoDto.setRecMaterno(oArray[3].toString().trim());
// recursoDto.setRecPaterno(oArray[4].toString().trim());
// recursoDto.setRecEstado(oArray[5].toString());
// recursoDto.setRecTipo(oArray[6].toString());
//
responsablesProyectosDto.setResponsableProyectoDto(responsableProyectoDto);
// responsablesProyectosDto.setRecursoDto(recursoDto);
// listaResponsables.add(responsablesProyectosDto);
// }
// return listaResponsables;
// }
/*
* (non-Javadoc)
* @see
com.praxis.siho.core.service.AsignacionesService#getAsignacionesAsEntities(com.pra
xis.siho.core.data.dto.ConsultaAsignacionesDto, int, int)
*/
@Transactional(readOnly = true)
@Override
public Pagina<AsignacionesPorRecursoDto>
getAsignacionesAsEntities(ConsultaAsignacionesDto consultaAsignacionesDto, int
first, int pageSize) {
if(consultaAsignacionesDto.getEstatusRecurso() == null) {
consultaAsignacionesDto.setEstatusRecurso("AC");
}
consultaAsignacionesDto.setHistorico(false);
if(consultaAsignacionesDto.getTipoVistaTabla().equals("historico")) {
consultaAsignacionesDto.setHistorico(true);
}
long size =
asignacionesRepositoryWrapper.countAsignaciones(consultaAsignacionesDto);
List<AsignacionesPorRecursoDto> listaAsignacionesPorRecurso = new
ArrayList<AsignacionesPorRecursoDto>();
List<Object[]> lista =
asignacionesRepositoryWrapper.getAsignacionesAsEntities(consultaAsignacionesDto,
first, pageSize);
for (Object[] o : lista) {
AsignacionesPorRecursoDto asignacionesPorRecursoDto = new
AsignacionesPorRecursoDto();
asignacionesPorRecursoDto.setRecId(o[0] != null ?
o[0].toString().trim() : "");
asignacionesPorRecursoDto.setFechaDeIngreso((Date) o[1]);

asignacionesPorRecursoDto.setAsigStaId(o[2] != null ?
o[2].toString() : "");
asignacionesPorRecursoDto.setEstatus(o[3] != null ?
o[3].toString(): "");
asignacionesPorRecursoDto.setAsigTipoCobro(o[4] != null ?
o[4].toString().trim() : "");
if
(asignacionesPorRecursoDto.getAsigTipoCobro().equals("Cobrado")) {

asignacionesPorRecursoDto.setTipoCobroCategoria(Enumerations.TipoCobro.Cobrado.get
Value());
} else if
(asignacionesPorRecursoDto.getAsigTipoCobro().equals("No Cobrado")) {

asignacionesPorRecursoDto.setTipoCobroCategoria(Enumerations.TipoCobro.NoCobrado.g
etValue());
}
asignacionesPorRecursoDto.setAsigProId(o[5] != null ?
o[5].toString() : "");
asignacionesPorRecursoDto.setProTipoDeVenta(o[6] != null ?
o[6].toString() : "");
asignacionesPorRecursoDto.setProDetTipoVenta(o[7] != null ?
o[7].toString() : "");
asignacionesPorRecursoDto.setPuesto(o[8] != null ?
o[8].toString(): "");
asignacionesPorRecursoDto.setProyecto(o[9] != null ?
o[9].toString() : "");
asignacionesPorRecursoDto.setCliente(o[10] != null ?
o[10].toString() : "");
asignacionesPorRecursoDto.setDN(o[11] != null ? o[11].toString():
"");
asignacionesPorRecursoDto.setCcNombre(o[12] != null ?
o[12].toString() : "");
asignacionesPorRecursoDto.setInicio((Date) o[13]);
asignacionesPorRecursoDto.setFin((Date) o[14]);
asignacionesPorRecursoDto.setTecId(o[15] != null ?
o[15].toString(): "");
asignacionesPorRecursoDto.setLineaTec(o[16] != null ?
o[16].toString() : "");
asignacionesPorRecursoDto.setObservaciones(o[17] != null ?
o[17].toString() : "");
listaAsignacionesPorRecurso.add(asignacionesPorRecursoDto);
}

consultaAsignacionesDto.setFilasEncontradas(Integer.parseInt(String.valueOf(size))
);

return new
Pagina<AsignacionesPorRecursoDto>(listaAsignacionesPorRecurso,size);
}
/*
* (non-Javadoc)
* @see
com.praxis.siho.core.service.AsignacionesService#getAsignaciones(com.praxis.siho.c
ore.data.dto.ConsultaAsignacionesDto, int, int)
*/
@Transactional(readOnly = true)
@Override
public Pagina<AsignacionesPorRecursoDto>
getAsignaciones(ConsultaAsignacionesDto consultaAsignacionesDto, int first,int
pageSize) {
AsignacionesPorRecursoDto asignacionDTO;
List<AsignacionesPorRecursoDto> asignacionesPorRecurso = new
ArrayList<AsignacionesPorRecursoDto>();
List<Object[]> lista =
asignacionesRepositoryWrapper.getAsignaciones(consultaAsignacionesDto, first,
pageSize);
long size =
asignacionesRepositoryWrapper.getCountAsignaciones(consultaAsignacionesDto);
for (Object[] asignacion : lista) {
asignacionDTO = new AsignacionesPorRecursoDto();
asignacionDTO.setRecId((String) asignacion[0]);
asignacionesPorRecurso.add(asignacionDTO);
}
return new
Pagina<AsignacionesPorRecursoDto>(asignacionesPorRecurso,size);
}
/*
* (non-Javadoc)
* @see com.praxis.siho.core.service.AsignacionesService#assignExists(int,
com.praxis.siho.core.data.dto.AsignacionesPorRecursoDto, java.util.Date)
*/
@Transactional(readOnly = true)
@Override
public int assignExists(int update, AsignacionesPorRecursoDto
asignacion,Date fechaInicio) {
try{
return asignacionesRepositoryWrapper.assignExists(update,
asignacion,fechaInicio);

}catch(Exception e){
return 0;
}
}
/*
* (non-Javadoc)
* @see
com.praxis.siho.core.service.AsignacionesService#assignsBetweenAssign(com.praxis.s
iho.core.data.dto.AsignacionesPorRecursoDto)
*/
@Transactional(readOnly = true)
@Override
public ArrayList<AsignacionesPorRecursoDto>
assignsBetweenAssign(AsignacionesPorRecursoDto asignacion) {
ArrayList<AsignacionesPorRecursoDto> listaProyectos = new
ArrayList<AsignacionesPorRecursoDto>();
String recList = asignacion.getRecId().trim();
String estatus = asignacion.getAsigStaId().trim();
Date fechaInicio = asignacion.getInicio();
Date fechaFin = asignacion.getFin();
ArrayList<Object[]> lista =
asignacionesRepositoryWrapper.getAsignacionesBetweenPeriodo(recList, estatus,
fechaInicio,fechaFin);
if (lista.size() != 0) {
for (Object[] oArray : lista) {
AsignacionesPorRecursoDto asignacionesPorRecursoDto = new
AsignacionesPorRecursoDto();
asignacionesPorRecursoDto.setAsigProId(oArray[0] != null ?
oArray[0].toString().trim() : null);
asignacionesPorRecursoDto.setProyecto(oArray[1] != null ?
oArray[1].toString(): null);
asignacionesPorRecursoDto.setRecId(oArray[2] != null ?
oArray[2].toString().trim() : null);
asignacionesPorRecursoDto.setInicio(oArray[3] != null ?
(Date) oArray[3] : null);
asignacionesPorRecursoDto.setFin(oArray[4] != null ? (Date)
oArray[4] : null);
}

listaProyectos.add(asignacionesPorRecursoDto);

}
return listaProyectos;
}
/**

* se movio el metodo asignacionesRecursos verifiar q exista el service


*
*/
// @Transactional(readOnly = true)
// @Override
// public int getAssignsWhitActivities(int proId, String recId, Date
// fechaInicio, Date fechaFin) {
// String inicio = TiempoUtil.fechaTextoDiaMesAo(fechaInicio);
// String fin = TiempoUtil.fechaTextoDiaMesAo(fechaFin);
// return asignacionRepository.getAssignsWhitActivities(proId, recId,
// inicio, fin);
// }
/*
* (non-Javadoc)
* @see
com.praxis.siho.core.service.AsignacionesService#getAssignsEnd(java.lang.String,
java.lang.String, java.util.Date, java.util.Date)
*/
@Transactional(readOnly = true)
@Override
public ArrayList<AsignacionesPorRecursoDto> getAssignsEnd(String
recList,String estatus, Date fechaInicio, Date fechaFin) {
ArrayList<AsignacionesPorRecursoDto> listaAsignaciones = new
ArrayList<AsignacionesPorRecursoDto>();
ArrayList<Object[]> lista =
asignacionesRepositoryWrapper.getAssignsEnd(recList, estatus, fechaInicio,
fechaFin);
if (lista.size() != 0) {
for (Object[] oArray : lista) {
AsignacionesPorRecursoDto asignacionesPorRecursoDto = new
AsignacionesPorRecursoDto();
asignacionesPorRecursoDto.setAsigProId(oArray[0] != null ?
oArray[0].toString() : null);
asignacionesPorRecursoDto.setProyecto(oArray[1] != null ?
oArray[1].toString() : null);
asignacionesPorRecursoDto.setRecId(oArray[2] != null ?
oArray[2].toString() : null);
asignacionesPorRecursoDto.setInicio(oArray[3] != null ?
(Date) oArray[3] : null);
asignacionesPorRecursoDto.setFin(oArray[4] != null ? (Date)
oArray[4] : null);
asignacionesPorRecursoDto.setObservaciones(oArray[5] !=
null ? oArray[5].toString() : null);
asignacionesPorRecursoDto.setAsigTipoCobro(oArray[6] !=
null ? oArray[6].toString() : null);
listaAsignaciones.add(asignacionesPorRecursoDto);
}

return listaAsignaciones;
}
/*
* (non-Javadoc)
* @see
com.praxis.siho.core.service.AsignacionesService#getAssignsBegin(java.lang.String,
java.lang.String, java.util.Date, java.util.Date)
*/
@Transactional(readOnly = true)
@Override
public ArrayList<AsignacionesPorRecursoDto> getAssignsBegin(String
recList,String estatus, Date fechaInicio, Date fechaFin) {
ArrayList<AsignacionesPorRecursoDto> listaAsignaciones = new
ArrayList<AsignacionesPorRecursoDto>();
ArrayList<Object[]> lista =
asignacionesRepositoryWrapper.getAssignsBegin(recList, estatus, fechaInicio,
fechaFin);
if (lista.size() != 0) {
for (Object[] oArray : lista) {
AsignacionesPorRecursoDto asignacionesPorRecursoDto = new
AsignacionesPorRecursoDto();
asignacionesPorRecursoDto.setAsigProId(oArray[0] != null ?
oArray[0].toString(): null);
asignacionesPorRecursoDto.setProyecto(oArray[1] != null ?
oArray[1].toString(): null);
asignacionesPorRecursoDto.setRecId(oArray[2] != null ?
oArray[2].toString(): null);
asignacionesPorRecursoDto.setInicio(oArray[3] != null ?
(Date) oArray[3] : null);
asignacionesPorRecursoDto.setFin(oArray[4] != null ? (Date)
oArray[4] : null);
asignacionesPorRecursoDto.setObservaciones(oArray[5] !=
null ? oArray[5].toString() : null);
asignacionesPorRecursoDto.setAsigTipoCobro(oArray[6] !=
null ? oArray[6].toString() : null);
listaAsignaciones.add(asignacionesPorRecursoDto);
}

return listaAsignaciones;
}
/*
* Inserta y o modifica las asignaciones de un recurso a un proyecto
*/
private boolean insertUpdateAsignacion(List<AsignacionesPorRecursoDto>
assignBegin,AsignacionesPorRecursoDto aNew, AsignacionesPorRecursoDto aOld) {

return
asignacionesRepositoryWrapper.insertUpdateAsignacion(assignBegin, aNew, aOld);
}
/*
* (non-Javadoc)
*
* @see
* com.praxis.siho.core.service.AsignacionesService#actividadesEnNomina(
* java.lang.String, int, java.lang.String)
*/
@Transactional(readOnly = true)
@Override
public int actividadesEnNomina(String recId, int proId, String fechaInicio)
{
return asignacionRepository.actividadesEnNomina(recId,
proId,fechaInicio);
}
/*
* (non-Javadoc)
* @see
com.praxis.siho.core.service.AsignacionesService#deleteAsignaciones(com.praxis.sih
o.core.data.dto.AsignacionesPorRecursoDto)
*/
@Override
public int deleteAsignaciones(AsignacionesPorRecursoDto asignacion) {
String idRec = asignacion.getRecId().trim();
String fechaInicio =
TiempoUtil.fechaTextoDiaMesAo(asignacion.getInicio());
int idPro = Integer.valueOf(asignacion.getAsigProId());
int realizado = asignacionRepository.deleteAsignaciones(idRec, idPro,
fechaInicio);
return realizado;
}
/*
* (non-Javadoc)
* @see
com.praxis.siho.core.service.AsignacionesService#insertUpdateAsignacion(java.util.
List, java.util.Date)
*/
@Override
public HashMap<String, List<AsignacionesPorRecursoDto>>
insertUpdateAsignacion(List<AsignacionesPorRecursoDto>
filasSeleccionadasDeTabla,Date finAsignacionIni) {
boolean eliminar = true;
if(finAsignacionIni == null) {

String fechaFinTexto = "01/01/1000";


finAsignacionIni = TiempoUtil.fechaTextoDiaMesAo(fechaFinTexto);
}
HashMap<String, List<AsignacionesPorRecursoDto>> mapMensajes = new
HashMap<String, List<AsignacionesPorRecursoDto>>();
List<AsignacionesPorRecursoDto>
ArrayList<AsignacionesPorRecursoDto>();
List<AsignacionesPorRecursoDto>
ArrayList<AsignacionesPorRecursoDto>();
List<AsignacionesPorRecursoDto>
ArrayList<AsignacionesPorRecursoDto>();
List<AsignacionesPorRecursoDto>
ArrayList<AsignacionesPorRecursoDto>();
List<AsignacionesPorRecursoDto>
ArrayList<AsignacionesPorRecursoDto>();
List<AsignacionesPorRecursoDto>
ArrayList<AsignacionesPorRecursoDto>();
List<AsignacionesPorRecursoDto>
ArrayList<AsignacionesPorRecursoDto>();
List<AsignacionesPorRecursoDto>
ArrayList<AsignacionesPorRecursoDto>();
List<AsignacionesPorRecursoDto>
ArrayList<AsignacionesPorRecursoDto>();

lstErrorInicioMayorFin = new
lstErrorFinFueraPeriodoLaboral = new
lstErrorFinFueraVigenciaProyecto = new
lstErrorExisteAsignacion = new
lstErrorIncluyeAsignaciones = new
lstErrorEnActividades = new
lstErrorTieneActividades = new
lstAsignacionesNoActualizadas = new
listaAsignacionesActualizadas = new

for (AsignacionesPorRecursoDto asig : filasSeleccionadasDeTabla) {


AsignacionesPorRecursoDto nuevaAsignacion = new
AsignacionesPorRecursoDto(asig);
AsignacionesPorRecursoDto asignacion = new
AsignacionesPorRecursoDto(asig);
nuevaAsignacion.setFin(finAsignacionIni);
if (nuevaAsignacion.getInicio().after(nuevaAsignacion.getFin()))
{
lstErrorInicioMayorFin.add(asignacion);
}
int periodoValido = asignacionEnPeriodoLaboral(nuevaAsignacion);
if (periodoValido > 1) {
eliminar = false;
lstErrorFinFueraPeriodoLaboral.add(asignacion);
}
ProyectoInfoDto proyecto = new ProyectoInfoDto();
proyecto =
proyectosService.getProjectInfo(Integer.valueOf(asignacion.getAsigProId().trim()))
;

if
(nuevaAsignacion.getFin().before(proyecto.getProFechaInicio())||
nuevaAsignacion.getFin().after(proyecto.getProFechaFin())) {
eliminar = false;
lstErrorFinFueraVigenciaProyecto.add(asignacion);
}
1) {

if (assignExists(1, nuevaAsignacion, asignacion.getInicio()) ==


eliminar = false;
lstErrorExisteAsignacion.add(asignacion);
}
if (assignsBetweenAssig(nuevaAsignacion)) {
eliminar = false;
lstErrorIncluyeAsignaciones.add(asignacion);
}
if (nuevaAsignacion.getFin().before(asignacion.getFin())) {
if (overFlowActivities(asignacion, nuevaAsignacion)) {
eliminar = false;
lstErrorEnActividades.add(asignacion);
}

List<AsignacionesPorRecursoDto> lstAsignacionesTruncadas =
getAssignsTruncateBegin(nuevaAsignacion);
{

for (AsignacionesPorRecursoDto assign : lstAsignacionesTruncadas)

if (getActivities(assign,
asignacion.getRecId(),assign.getInicio(), asignacion.getFin())) {
eliminar = false;
lstErrorTieneActividades.add(asignacion);
}
}
if (eliminar == false) {
lstAsignacionesNoActualizadas.add(asignacion);
} else {
listaAsignacionesActualizadas.add(nuevaAsignacion);
insertUpdateAsignacion(lstAsignacionesTruncadas,

nuevaAsignacion,asignacion);
}
}

mapMensajes.put("lstAsignacionesActualizadas",listaAsignacionesActualizadas);
mapMensajes.put("lstAsignacionesNoActualizadas",
lstAsignacionesNoActualizadas);
mapMensajes.put("lstErrorInicioMayorFin", lstErrorInicioMayorFin);
mapMensajes.put("lstErrorFinFueraPeriodoLaboral",
lstErrorFinFueraPeriodoLaboral);
mapMensajes.put("lstErrorFinFueraVigenciaProyecto",lstErrorFinFueraVigenciaProyect
o);
mapMensajes.put("lstErrorExisteAsignacion", lstErrorExisteAsignacion);
mapMensajes.put("lstErrorIncluyeAsignaciones",
lstErrorIncluyeAsignaciones);
mapMensajes.put("lstErrorEnActividades", lstErrorEnActividades);
mapMensajes.put("lstErrorTieneActividades", lstErrorTieneActividades);
return mapMensajes;
}
/*
* Valida que la asignacin esta en el periodo laboral del recurso Las
* asignaciones que ya estaban no se validan
*/
@Transactional(readOnly = true)
private int asignacionEnPeriodoLaboral(AsignacionesPorRecursoDto asignacion)
{
PeriodoDeTrabajoDto periodoDeTrabajo = new PeriodoDeTrabajoDto();
int tempAsignacionEnPeriodoLaboral = 1;
periodoDeTrabajo =
periodosDeTrabajoService.getFechaSalidaRecurso(asignacion.getRecId().trim());
if (periodoDeTrabajo.getPtFechaDeSalida() == null) {
if
(asignacion.getFin().before(periodoDeTrabajo.getPtFechaDeIngreso())) {
return 2;
}
} else {
if
(asignacion.getFin().before(periodoDeTrabajo.getPtFechaDeIngreso())) {
//Ambas fechas de asignacin estan fuera del periodo
laboral

return 2;
} else if
(asignacion.getFin().after(periodoDeTrabajo.getPtFechaDeSalida())) {
//Unicamente la fecha de fin de asignacin esta fuera del

periodo laboral

return 4;
}

return tempAsignacionEnPeriodoLaboral;
}
/*
* Verifica si existen asignaciones/desasignaciones en el periodo de la
* asignacin actual
*/
private boolean assignsBetweenAssig(AsignacionesPorRecursoDto a) {
ArrayList<AsignacionesPorRecursoDto> assignsCollection = new
ArrayList<AsignacionesPorRecursoDto>();
boolean tempassignsBetweenAssign = false;
assignsCollection = assignsBetweenAssign(a);
if (assignsCollection.size() > 0) {
tempassignsBetweenAssign = true;
}
return tempassignsBetweenAssign;
}
private boolean overFlowActivities(AsignacionesPorRecursoDto
aOld,AsignacionesPorRecursoDto aNew) {
if (aOld.getFin().after(aNew.getFin())) {
if
(actividadesRecursosService.getAssignsWhitActivities(Integer.valueOf(aNew.getAsigP
roId().trim()),aNew.getRecId().trim(),
TiempoUtil.sumarRestarDiasFecha(aNew.getFin(), 1),
aOld.getFin()) == 1) {
return true;
}
}
return false;
}
/*

* Obtiene la asignacion que deben ser truncada


*/
private ArrayList<AsignacionesPorRecursoDto>
getAssignsTruncateBegin(AsignacionesPorRecursoDto a) {
ArrayList<AsignacionesPorRecursoDto> tempgetAssignsTruncateBegin = new
ArrayList<AsignacionesPorRecursoDto>();
String recList = a.getRecId().trim();
tempgetAssignsTruncateBegin = getAssignsBegin(recList,
a.getAsigStaId().trim(), a.getInicio(), a.getFin());
return tempgetAssignsTruncateBegin;
}
/*
* Indica si existen actividades registradas en el proyecto asignado al
* recurso
*/
private boolean getActivities(AsignacionesPorRecursoDto a, String recId,Date
fechaInicio, Date fechaFin) {
if
(actividadesRecursosService.getAssignsWhitActivities(Integer.valueOf(a.getAsigProI
d().trim()),recId.trim(), fechaInicio, fechaFin) == 1) {
return true;
} else {
return false;
}
}
/*
* (non-Javadoc)
*
* @see
* com.praxis.siho.core.service.AsignacionesService#deleteAsignacion(java
* .util.ArrayList)
*/
@Override
public HashMap<String, List<AsignacionesPorRecursoDto>>
deleteAsignacion(ArrayList<AsignacionesPorRecursoDto> filasSeleccionadasDeTabla) {
HashMap<String, List<AsignacionesPorRecursoDto>>
mapDetallesDeEliminacion = new HashMap<String, List<AsignacionesPorRecursoDto>>();
List<AsignacionesPorRecursoDto> lstAsignacionesNoEliminadas = new
ArrayList<AsignacionesPorRecursoDto>();
List<AsignacionesPorRecursoDto> lstAsignacionesAEliminar = new
ArrayList<AsignacionesPorRecursoDto>();
List<AsignacionesPorRecursoDto> lstAsignacionesEliminadas = new
ArrayList<AsignacionesPorRecursoDto>();

boolean eliminar = true;


// Obtiene la informacin de las asignacines seleccionadas
for (AsignacionesPorRecursoDto asignacionAEliminar :
filasSeleccionadasDeTabla) {
// Si tiene actividades cargadas en nomina no se elimina
String idRecurso = asignacionAEliminar.getRecId().trim();
if
(actividadesEnNomina(idRecurso,Integer.valueOf(asignacionAEliminar.getAsigProId().
trim()),
TiempoUtil.fechaTextoDiaMesAo(asignacionAEliminar.getInicio())) > 0) {
eliminar = false;
}
// Si tiene actividades capturadas no se elimina
if(actividadesRecursosService.getAssignsWhitActivities(Integer.valueOf(asignacionA
Eliminar.getAsigProId().trim()),
idRecurso, asignacionAEliminar.getInicio(),
asignacionAEliminar.getFin()) > 0) {
eliminar = false;
}
if (eliminar == false) {
lstAsignacionesNoEliminadas.add(asignacionAEliminar);
} else {
lstAsignacionesAEliminar.add(asignacionAEliminar);
}

// Elimina las asignaciones


for (AsignacionesPorRecursoDto asignacion : lstAsignacionesAEliminar) {
if (deleteAsignaciones(asignacion) != 1) {
lstAsignacionesNoEliminadas.add(asignacion);
} else {
lstAsignacionesEliminadas.add(asignacion);
}

mapDetallesDeEliminacion.put("lstAsignacionesEliminadas",lstAsignacionesEliminadas
);
mapDetallesDeEliminacion.put("lstAsignacionesNoEliminadas",
lstAsignacionesNoEliminadas);
return mapDetallesDeEliminacion;
}
/*
* (non-Javadoc)
*
* @see
* com.praxis.siho.core.service.AsignacionesService#getListCatalogActivities
* ()
*/
@Override
public List<CatalogoActividadesDto> getListCatalogActivities() {
List<CatalogoActividadesDto> lstCatActivities = new
ArrayList<CatalogoActividadesDto>();
List<Object[]> listCatActivities =
asignacionRepository.getCatalogActivities();
for (Object[] obj : listCatActivities) {
CatalogoActividadesDto catActivities = new
CatalogoActividadesDto();
catActivities.setCacId(obj[0] != null ?
Long.valueOf(obj[0].toString()) : null);
catActivities.setCacDescripcion((obj[1] ==
null)?"":obj[1].toString());
catActivities.setCacStatus(obj[2] == null?
null:obj[2].toString());
1));

catActivities.setCacBase((Long.valueOf(obj[3].toString()).longValue() ==
lstCatActivities.add(catActivities);
}
return lstCatActivities;
}

/*
* (non-Javadoc)
*
* @see
* com.praxis.siho.core.service.AsignacionesService#getDetallesAsignaciones
* (java.lang.String)
*/
@Override
public Pagina<ProximosADesasignarseDto>
getProximasDesasignacionesPorRecurso(ProximosADesasignarseDto filtros, int first,

int pageSize) {
List<Object[]> lst;
List<ProximosADesasignarseDto> lstDetalleAsignaciones = new
ArrayList<ProximosADesasignarseDto>();
ProximosADesasignarseDto proximosADesasignarseDto;
Date fechaSistema = context.getFechaSistema();
String idRecurso = filtros.getAsigRecId() != null ?
filtros.getAsigRecId().trim() : "";
lst =
asignacionRepository.getProximasDesasignacionesByIdRecurso(idRecurso, first,
pageSize);
long size =
Long.parseLong(asignacionRepository.getCountAsignacionesByIdRecurso(idRecurso).toS
tring().trim());
for (Object[] asignacion : lst) {
proximosADesasignarseDto = new ProximosADesasignarseDto();
proximosADesasignarseDto.setIdProyecto(Long.parseLong(asignacion[0].toString().tri
m()));
proximosADesasignarseDto.setProyectoNombreCorto(asignacion[1].toString());
proximosADesasignarseDto.setFechaInicioAsignacion((Date)
asignacion[2]);
Date fechaFinAsignacion = (Date) asignacion[3];
proximosADesasignarseDto.setFechaFinAsignacion(fechaFinAsignacion);
if (fechaFinAsignacion.after(fechaSistema)) {
proximosADesasignarseDto.setAsignacionFinalizada(false);
} else {
proximosADesasignarseDto.setAsignacionFinalizada(true);
}
}

lstDetalleAsignaciones.add(proximosADesasignarseDto);

return new
Pagina<ProximosADesasignarseDto>(lstDetalleAsignaciones,size);
}
/*
*
*
*
*
*

(non-Javadoc)
@see com.praxis.siho.core.service.AsignacionesService#
getProximasDesasignacionesPorDia
(com.praxis.siho.core.data.dto.ProximosADesasignarseDto, int, int)

*/
@Override
public Pagina<ProximosADesasignarseDto>
getProximasDesasignacionesByDias(ProximosADesasignarseDto filtros, int first, int
pageSize) {
List<Object[]> lst;
List<ProximosADesasignarseDto> lstProximasDesasignaciones = new
ArrayList<ProximosADesasignarseDto>();
ProximosADesasignarseDto proximosADesasignarseDto;
int dias = filtros.getNumeroDias() != null ? filtros.getNumeroDias():
0;

lst = asignacionRepository.getProximasDesasignacionesByDias(dias,first,

pageSize);
long size =
Long.parseLong(asignacionRepository.countPaginador(dias).toString().trim());
for (Object[] asignacion : lst) {
proximosADesasignarseDto = new ProximosADesasignarseDto();
proximosADesasignarseDto.setAsigRecId((String)
asignacion[0].toString().trim());
proximosADesasignarseDto.setIdProyecto(Long.parseLong(asignacion[1].toString().tri
m()));
proximosADesasignarseDto.setProyectoNombreCorto(asignacion[2].toString());
proximosADesasignarseDto.setFechaInicioAsignacion((Date)
asignacion[3]);
proximosADesasignarseDto.setFechaFinAsignacion((Date)
asignacion[4]);
proximosADesasignarseDto.setNumeroDias(Integer.parseInt(asignacion[5].toString().t
rim()));
}

lstProximasDesasignaciones.add(proximosADesasignarseDto);

return new Pagina<ProximosADesasignarseDto>(lstProximasDesasignaciones,


size);
}
/*
* (non-Javadoc)
*
* @see
* com.praxis.siho.core.service.AsignacionesService#getHrsRecursos(java.
* lang.String)
*/
//
@Override
//
public List<AsignacionesProyectosActidadesRecursosDTo> getHrsRecursos(

//
String fecha) {
//
//
List<Object[]> list = asignacionesRepositoryWrapper
//
.getHrsRecursoss(fecha);
//
//
List<AsignacionesProyectosActidadesRecursosDTo> listDto = new
ArrayList<AsignacionesProyectosActidadesRecursosDTo>();
//
for (Object listObj : list) {
//
Object[] arr = (Object[]) listObj;
//
//
AsignacionDto asignaciones = new AsignacionDto();
//
ProyectoDto proyectos = new ProyectoDto();
//
ActidadesRecursosDto actividadesRecurso = new
ActidadesRecursosDto();
//
//
AsignacionesProyectosActidadesRecursosDTo dto = new
AsignacionesProyectosActidadesRecursosDTo();
//
//
asignaciones.setAsigTipId(arr[0].toString().trim());
//
proyectos.setProAp(arr[1].toString().trim());
//
//
dto.setAsignacionDto(asignaciones);
//
dto.setProyectoDto(proyectos);
//
dto.setActidadesRecursosDTo(actividadesRecurso);
//
listDto.add(dto);
//
//
}
//
//
return listDto;
//
}
/*
* (non-Javadoc)
* @see
com.praxis.siho.core.service.AsignacionesService#getFechasAsigRecurso(java.lang.St
ring, long)
*/
@Override
public AsignacionDto getFechasAsigRecurso(String recId, long proId) {
Object value =
asignacionRepository.getFechasAsignacionRec(TextoUtil.completaIdRecursoConEspacios
(recId), proId);
Object[] arrayObj = (Object[]) value;
AsignacionDto dto = new AsignacionDto();
dto.setAsigFechaInicio((Date)arrayObj[0]);
dto.setAsigFechaFin((Date)arrayObj[1]);
dto.setAsigObservaciones((String)arrayObj[2]);
return dto;
}
/*
* (non-Javadoc)

* @see
com.praxis.siho.core.service.AsignacionesService#getDetalleAsigRecurso(java.lang.S
tring)
*/
@Override
public List<RegistroDesasignacionDto> getDetalleAsigRecurso(String recId) {
List<Object[]> lista =
asignacionRepository.getDetalleAsignacionRec(TextoUtil.completaIdRecursoConEspacio
s(recId));
List<RegistroDesasignacionDto> listDto = new
ArrayList<RegistroDesasignacionDto>();
for (Object[] arr : lista) {
RegistroDesasignacionDto fechasAsignacionDto = new
RegistroDesasignacionDto();
fechasAsignacionDto.setProNombreCorto((String)arr[0]);
fechasAsignacionDto.setAsigFechaInicio((Date)arr[1]);
fechasAsignacionDto.setAsigFechaFin((Date)arr[2]);
listDto.add(fechasAsignacionDto);
}
return listDto;
}
/*
* (non-Javadoc)
* @see
com.praxis.siho.core.service.AsignacionesService#getAsignaciones(com.praxis.siho.c
ore.data.dto.ConsultaAsignacionesDto)
*/
@Override
@Transactional(readOnly = true)
public List<ConsultaAsignacionesDto>
getAsignaciones( ConsultaAsignacionesDto filtros) {
List<Object[]> lista =
asignacionesRepositoryWrapper.getAsignaciones(filtros);
List<ConsultaAsignacionesDto> listaAsignaciones = new
ArrayList<ConsultaAsignacionesDto>();
for (Object[] arr : lista) {
ConsultaAsignacionesDto dto = new ConsultaAsignacionesDto();
dto.setIdRecurso(arr[0].toString().trim());
dto.setAsigIni((Date) arr[6]);
dto.setAsigFin((Date) arr[7]);
listaAsignaciones.add(dto);
}

return listaAsignaciones;
}
/*
* (non-Javadoc)
* @see
com.praxis.siho.core.service.AsignacionesService#getAsignacionesProyectoByPeriodo(
long, java.lang.String, java.lang.String)
*/
@Override
public List<AsignacionRecursoDto> getAsignacionesProyectoByPeriodo(long
proId,String fechaInicial, String fechaFinal) {
List<Object[]> lst =
asignacionesRepositoryWrapper.getAsignacionesProyectoByPeriodo(proId,
fechaInicial, fechaFinal);
List<AsignacionRecursoDto> lstAsignaciones = new
ArrayList<AsignacionRecursoDto>();
for(Object[] arr:lst) {
AsignacionRecursoDto asignacionRecursoDto = new
AsignacionRecursoDto();
AsignacionDto asignacionDto = new AsignacionDto();
RecursoDto recursoDto = new RecursoDto();
recursoDto.setRecId(arr[0].toString());
asignacionDto.setAsigFechaInicio((Date)arr[6]);
asignacionDto.setAsigFechaFin((Date)arr[7]);
asignacionRecursoDto.setRecursoDto(recursoDto);
asignacionRecursoDto.setAsignacionDto(asignacionDto);
lstAsignaciones.add(asignacionRecursoDto);
}
return lstAsignaciones;
}
/*
* (non-Javadoc)
* @see
com.praxis.siho.core.service.AsignacionesService#getAsignacionByKey(com.praxis.sih
o.core.data.dto.AsignacionDto)
*/
@Override
public NuevaAsignacionDto getAsignacionByKey(AsignacionDto adto) {
NuevaAsignacionDto dto = new NuevaAsignacionDto();
int tipPago = Enumerations.IdCatalogos.TipoPago.getValue();

if(asignacionRepository.getExisteAsignacion(adto.getAsigRecId().trim(),adto.getAsi
gProId())>0){
List<Object[]> objeto =
asignacionRepository.AsignacionByKey(adto.getAsigRecId(),adto.getAsigProId(),Tiemp
oUtil.fechaTextoDiaMesAo(adto.getAsigFechaInicio()),tipPago);
for(Object[] oArray : objeto) {
dto.setRecId(oArray[0].toString().trim());
dto.setProId(((BigDecimal)oArray[4]).longValue());
dto.setProNombreCorto(oArray[5].toString());
dto.setInicioAsignacion((Date)oArray[6]);
dto.setFinAsignacion((Date)oArray[7]);
dto.setRecPuesto(oArray[8]==null?"":oArray[8].toString());
dto.setEstatusAsignacionId(oArray[9]==null?"":oArray[9].toString());
dto.setEstatusAsignacion(oArray[10]==null?"":oArray[10].toString());
dto.setTipCobroId(oArray[11]==null?null:
(BigDecimal)oArray[11]);
dto.setTipCobroDescripcion(oArray[12]==null?"":oArray[12].toString());
dto.setComentarios(oArray[13]==null?"":oArray[13].toString());
}
}
return dto;
}
/*
* (non-Javadoc)
* @see
com.praxis.siho.core.service.AsignacionesService#insertUpdateAsignacion(java.util.
ArrayList, java.util.ArrayList,
com.praxis.siho.core.data.dto.AsignacionesPorRecursoDto,
com.praxis.siho.core.data.dto.AsignacionesPorRecursoDto)
*/
@Override
public boolean insertUpdateAsignacion(ArrayList<AsignacionesPorRecursoDto>
assignBegin,ArrayList<AsignacionesPorRecursoDto> assignEnd,
AsignacionesPorRecursoDto aNew, AsignacionesPorRecursoDto aOld) {
try{

asignacionesRepositoryWrapper.insertUpdateAsignacion(assignBegin,assignEnd ,aNew,
aOld);
return true;
}catch(Exception e){

return false;
}
}
/*
* (non-Javadoc)
* @see
com.praxis.siho.core.service.AsignacionesService#getEstatusRecursos()
*/
@Override
public ArrayList<EstatusRecursoDto> getEstatusRecursos() {
// TODO Auto-generated method stub
return null;
}
@Override
public NuevaAsignacionDto getAsignacionFechas(AsignacionDto adto) {
NuevaAsignacionDto dto = new NuevaAsignacionDto();
int tipPago = Enumerations.IdCatalogos.TipoPago.getValue();

if(asignacionRepository.getExisteAsignacion(adto.getAsigRecId().trim(),adto.getAsi
gProId())>0){
List<Object[]> objeto =
asignacionRepository.getAsignacionFechas(adto.getAsigRecId(),adto.getAsigProId(),t
ipPago);
for(Object[] oArray : objeto) {
dto.setRecId(oArray[0].toString().trim());
dto.setProId(((BigDecimal)oArray[4]).longValue());
dto.setProNombreCorto(oArray[5].toString());
dto.setInicioAsignacion((Date)oArray[6]);
dto.setFinAsignacion((Date)oArray[7]);
dto.setRecPuesto(oArray[8]==null?"":oArray[8].toString());
dto.setEstatusAsignacionId(oArray[9]==null?"":oArray[9].toString());
dto.setEstatusAsignacion(oArray[10]==null?"":oArray[10].toString());
dto.setTipCobroId(oArray[11]==null?null:
(BigDecimal)oArray[11]);
dto.setTipCobroDescripcion(oArray[12]==null?"":oArray[12].toString());
dto.setComentarios(oArray[13]==null?"":oArray[13].toString());
}
}
return dto;

}
}

Das könnte Ihnen auch gefallen