class MovimentacaoProntuarioRN extends BaseBusiness {

	public void aippGeraMvolEvent(Integer pConNumero) throws ApplicationBusinessException {
		List<AacConsultas> listaConsultas = getAmbulatorioFacade().executarCursorConsulta(pConNumero);
		if (!listaConsultas.isEmpty()) {
			AacConsultas consulta = listaConsultas.get(0); //ver se pode retornar uma lista
			AghParametros parametroLimitePront = getParametroFacade().buscarAghParametro(AghuParametrosEnum.P_LIMIT_PRONT_VIRTUAL);
			
			/*	-- função retorna "S" para as consultas da zona 17 ou para pacientes identificados
				-- antes de 01/01/2006. Somente estes terão seus prontuários enviados ao ambu.
				-- Milena abril/2006 */
			if (consulta.getPaciente() != null && consulta.getPaciente().getProntuario() != null && 
					consulta.getPaciente().getProntuario() < parametroLimitePront.getVlrNumerico().longValue()) {
				//	-- para não gerar movimento para prontuários virtuais - Milena set/2005
				List<SolicitanteVO> listaSolicitanteVO = getAmbulatorioFacade().executaCursorSolicitante(
						consulta.getGradeAgendamenConsulta().getAacUnidFuncionalSala().getId().getUnfSeq(), 
						consulta.getGradeAgendamenConsulta().getAacUnidFuncionalSala().getId().getSala(), 
						consulta.getDtConsulta());
				
				Short inicio = 0;
				Short fim = 0;
				
				if (!listaSolicitanteVO.isEmpty()) {
					SolicitanteVO solicitanteVO = listaSolicitanteVO.get(0);
					if (solicitanteVO.getVolumesManuseados().equals(DominioTodosUltimo.T)) {
						if (consulta.getPaciente() != null && consulta.getPaciente().getVolumes() != null) {
							fim = consulta.getPaciente().getVolumes();
						}
					}
					else {
						if (consulta.getPaciente() != null && consulta.getPaciente().getVolumes() != null) {
							inicio = consulta.getPaciente().getVolumes();
							fim = consulta.getPaciente().getVolumes();
						}
					}
					
					for (short x = inicio; x <= fim; x++) { 
						AipMovimentacaoProntuarios movProntuario = new AipMovimentacaoProntuarios();
						movProntuario.setVolumes(x);
						if (DominioTodosUltimo.T.toString().equals(solicitanteVO.getVolumesManuseados().toString())) {
							movProntuario.setTipoEnvio(DominioTipoEnvioProntuario.T);
						} else {
							movProntuario.setTipoEnvio(DominioTipoEnvioProntuario.U);
						}
						movProntuario.setSituacao(DominioSituacaoMovimentoProntuario.Q); //TODO => rever essa function AACC_VER_UNF
						movProntuario.setDataMovimento(consulta.getDtConsulta());
						movProntuario.setDataRetirada(consulta.getDtConsulta());
						movProntuario.setPaciente(consulta.getPaciente());
						movProntuario.setSolicitante(getAipSolicitantesProntuarioDAO().obterPorChavePrimaria(solicitanteVO.getSeq()));
						if(consulta.getGradeAgendamenConsulta()!=null){
							movProntuario.setLocal(solicitanteVO.getZonaSala()+" "+consulta.getGradeAgendamenConsulta().getSeq()+" "+pConNumero);	
						} else {
							movProntuario.setLocal(solicitanteVO.getZonaSala()+" "+pConNumero);
						}
						verificarSePossuiOrigemCadastrada(consulta.getPaciente(), movProntuario);
						this.persistirAipMovimentacaoProntuario(movProntuario, null);
					}
				}
			}
		}
	}

}