package br.com.centralit.citcorpore.ajaxForms;
import java.sql.Date;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.centralit.citajax.html.AjaxFormAction;
import br.com.centralit.citajax.html.DocumentHTML;
import br.com.centralit.citajax.html.HTMLTable;
import br.com.centralit.citajax.util.JavaScriptUtil;
import br.com.centralit.citcorpore.bean.ConsultaMeuTimeSheetDTO;
import br.com.centralit.citcorpore.bean.TimeSheetDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.negocio.TimeSheetService;
import br.com.centralit.citcorpore.util.WebUtil;
import br.com.citframework.service.ServiceLocator;
import br.com.citframework.util.Constantes;
import br.com.citframework.util.UtilDatas;
import br.com.citframework.util.UtilHTML;
public class ConsultaMeuTimeSheet extends AjaxFormAction {
public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
UsuarioDTO usuario = WebUtil.getUsuario(request);
if (usuario == null){
document.alert("Sess�o expirada! Favor efetuar logon novamente!");
document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'");
return;
}
document.focusInFirstActivateField(null);
}
public void pesquisaTimeSheet(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception{
ConsultaMeuTimeSheetDTO consultaTimeSheet = (ConsultaMeuTimeSheetDTO) document.getBean();
TimeSheetService timeSheetService = (TimeSheetService) ServiceLocator.getInstance().getService(TimeSheetService.class, null);
UsuarioDTO usuario = WebUtil.getUsuario(request);
if (usuario == null){
document.alert("Sess�o expirada! Favor efetuar logon novamente!");
document.executeScript("window.location = '" + request.getContextPath() + "'");
return;
}
Integer idEmpregado = new Integer(usuario.getIdUsuario());
Collection col = timeSheetService.findByPessoaAndPeriodo(idEmpregado, consultaTimeSheet.getDataInicio(), consultaTimeSheet.getDataFim());
HTMLTable tblMeuTimeSheet = (HTMLTable) document.getTableById("tblMeuTimeSheet");
tblMeuTimeSheet.deleteAllRows();
Date d = consultaTimeSheet.getDataInicio();
Collection colAux = new ArrayList();
while(d.compareTo(consultaTimeSheet.getDataFim()) <= 0){
Collection colRet = null;
if (col != null){
colRet = comparaDataNaColecao(d, col);
}
if (colRet != null){
colAux.addAll(colRet);
}
d = new Date(UtilDatas.incrementaDiasEmData(d, 1).getTime());
}
if (colAux != null){
tblMeuTimeSheet.addRowsByCollection(colAux,
new String[] {"dataStrDet", "nomeProjeto", "detalhamentoDemanda", "detalhamento", "qtdeHorasStr2"},
null,
"J� existe registrado esta demanda na tabela",
null,
null,
null);
}
TimeSheetDTO timeSheetBean;
double qtdeHorasTotal = 0;
if (col != null){
Iterator it = col.iterator();
while(it.hasNext()){
timeSheetBean = (TimeSheetDTO)it.next();
qtdeHorasTotal = qtdeHorasTotal + timeSheetBean.getQtdeHoras().doubleValue();
}
}
timeSheetBean = new TimeSheetDTO();
timeSheetBean.setNomeCliente("");
timeSheetBean.setNomeProjeto(" <b>Total--></b>");
timeSheetBean.setData(null);
timeSheetBean.setDetalhamentoDemanda("");
timeSheetBean.setQtdeHoras(new Double(qtdeHorasTotal));
tblMeuTimeSheet.addRow(timeSheetBean,
new String[] {"dataStr", "nomeCliente", "nomeProjeto", "detalhamentoDemanda", "qtdeHorasStr"},
null,
"J� existe registrado esta demanda na tabela",
new String[] {"ExecutaInsercaoTabela"},
null,
null);
}
public Class getBeanClass(){
return ConsultaMeuTimeSheetDTO.class;
}
private Collection comparaDataNaColecao(Date d, Collection col){
Collection colRet = new ArrayList();
for(Iterator it = col.iterator(); it.hasNext();){
TimeSheetDTO timeSheet = (TimeSheetDTO)it.next();
//Por incrivel que pare�a a simples compara��o de datas n�o funciona, por isto foi colocado a compara��o de strings
if (UtilDatas.dateToSTR(timeSheet.getData()).equalsIgnoreCase(UtilDatas.dateToSTR(d))){
colRet.add(timeSheet);
}
}
if (colRet.size()>0){
return colRet;
}
if (UtilDatas.verificaDiaUtil(d)){
TimeSheetDTO timeSheet = new TimeSheetDTO();
timeSheet.setData(d);
timeSheet.setNomeCliente(JavaScriptUtil.escapeJavaScript(UtilHTML.encodeHTML("<font color='red'><b>N�o h� registro de timesheet</b></font>")));
timeSheet.setNomeProjeto(JavaScriptUtil.escapeJavaScript(UtilHTML.encodeHTML("<font color='red'><b>N�o h� registro de timesheet</b></font>")));
timeSheet.setQtdeHoras(new Double(0));
colRet.add(timeSheet);
return colRet;
}
return null;
}
}