package gcom.gui.atendimentopublico.ordemservico;
import gcom.atendimentopublico.ordemservico.OrdemServico;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* [UC1199] - Acompanhamento Arquivos Roteiro Informar Situa��o Ordem de Servi�o
*
* @author Th�lio Ara�jo
*
* @date 25/08/2011
*/
public class InformarSituacaoOSAcompanhamentoArquivosRoteiroAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping.findForward("informarSituacaoOS");
HttpSession sessao = httpServletRequest.getSession(false);
Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado");
// Form
AcompanharRoteiroProgramacaoOrdemServicoActionForm
acompanharActionForm = (AcompanharRoteiroProgramacaoOrdemServicoActionForm) actionForm;
// Precisa pegar a unidade do usuario do login que esta na sessao
Integer idUnidadeLotacao = usuario.getUnidadeOrganizacional().getId();
Date dataRoteiro = Util.converteStringParaDate(acompanharActionForm.getDataProgramacao());
acompanharActionForm.setDataRoteiro(Util.formatarData(dataRoteiro));
acompanharActionForm.setUnidadeLotacao(""+idUnidadeLotacao);
this.informaSituacaoOrdemServico(acompanharActionForm,usuario,httpServletRequest);
httpServletRequest.setAttribute("fecharPopup", "true");
return retorno;
}
private void informaSituacaoOrdemServico(
AcompanharRoteiroProgramacaoOrdemServicoActionForm acompanharActionForm,Usuario usuario,HttpServletRequest httpServletRequest){
Fachada fachada = Fachada.getInstancia();
Date dataRoteiro = Util.converteStringParaDate(acompanharActionForm.getDataRoteiro());
Short novaSituacaoOs = new Short(acompanharActionForm.getSituacaoOrdemServico());
Integer idOrdemServico = new Integer(acompanharActionForm.getIdOrdemServico());
OrdemServico ordemServico = fachada.recuperaOSPorId(idOrdemServico);
ordemServico.setSituacao(novaSituacaoOs);
Integer motivoNaoEncerramentoOs = null;
if(acompanharActionForm.getMotivoNaoEncerramento() != null &&
!acompanharActionForm.getMotivoNaoEncerramento().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
motivoNaoEncerramentoOs = new Integer(acompanharActionForm.getMotivoNaoEncerramento());
}
fachada.atualizarOrdemProgramacaoAcompServicoInformarSituacao(Util.converterStringParaInteger(acompanharActionForm.getIdAcompanhamentoArquivosRoteiro()),
dataRoteiro, idOrdemServico, novaSituacaoOs, motivoNaoEncerramentoOs);
boolean naoInformaIndicadorAtivo = false;
fachada.atualizarOrdemServicoProgramacaoSituacaoOs(idOrdemServico,
dataRoteiro,novaSituacaoOs,motivoNaoEncerramentoOs, naoInformaIndicadorAtivo);
fachada.atualizarOrdemServico(ordemServico,usuario);
}
}