package br.com.centralit.citcorpore.integracao;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import br.com.centralit.citcorpore.bean.AdiantamentoViagemDTO;
import br.com.citframework.dto.IDto;
import br.com.citframework.excecao.PersistenceException;
import br.com.citframework.integracao.Condition;
import br.com.citframework.integracao.CrudDaoDefaultImpl;
import br.com.citframework.integracao.Field;
import br.com.citframework.integracao.Order;
import br.com.citframework.util.Constantes;
@SuppressWarnings({"rawtypes","unchecked"})
public class AdiantamentoViagemDAO extends CrudDaoDefaultImpl {
public AdiantamentoViagemDAO(){
super(Constantes.getValue("DATABASE_ALIAS"), null);
}
@Override
public Collection find(IDto obj) throws PersistenceException {
AdiantamentoViagemDTO adiantamentoViagemDto = (AdiantamentoViagemDTO) obj;
List list = new ArrayList();
list.add(new Order("idAdiantamentoViagem"));
return super.find(adiantamentoViagemDto,list);
}
@Override
public String getTableName() {
return this.getOwner() + "adiantamentoviagem";
}
@Override
public Collection list() throws PersistenceException {
List list = new ArrayList();
list.add(new Order("idAdiantamentoViagem"));
return super.list(list);
}
@Override
public Class getBean() {
return AdiantamentoViagemDTO.class;
}
@Override
public Collection<Field> getFields() {
Collection<Field> listFields = new ArrayList<>();
listFields.add(new Field("idadiantamentoviagem" ,"idAdiantamentoViagem", true, true, false, false));
listFields.add(new Field("idresponsavel" ,"idResponsavel", false, false, false, false));
listFields.add(new Field("idsolicitacaoservico" ,"idSolicitacaoServico", false, false, false, false));
listFields.add(new Field("idempregado" ,"idEmpregado", false, false, false, false));
listFields.add(new Field("datahora" ,"dataHora", false, false, false, false));
listFields.add(new Field("valortotaladiantado" ,"valorTotalAdiantado", false, false, false, false));
listFields.add(new Field("situacao" ,"situacao", false, false, false, false));
listFields.add(new Field("observacoes" ,"observacoes", false, false, false, false));
listFields.add(new Field("integrantefuncionario" ,"integranteFuncionario", false, false, false, false));
// TODO Este campo esta em desuso, pode ser removido na proxima vers�o
listFields.add(new Field("nomenaofuncionario" ,"nomeNaoFuncionario", false, false, false, false));
return listFields;
}
/**
* TODO Este metodo esta em desuso, pode ser removido na proxima vers�o
*/
public List<AdiantamentoViagemDTO> findBySolicitacaoAndEmpregado(AdiantamentoViagemDTO adiantamentoViagemDto) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("idSolicitacaoServico", "=", adiantamentoViagemDto.getIdSolicitacaoServico()));
condicao.add(new Condition(Condition.AND, "idEmpregado", "=", adiantamentoViagemDto.getIdEmpregado()));
return (List<AdiantamentoViagemDTO>) super.findByCondition(condicao, null);
}
/**
* Retorna uma lista de adiantamentos conforme idsolicitacao e idempregado passado
*
* TODO este metodo � a mesma l�gica do public List<AdiantamentoViagemDTO> findBySolicitacaoAndEmpregado(AdiantamentoViagemDTO adiantamentoViagemDto) throws Exception, seria legal apagar um dos dois.
*
* @param solicitacaoServico
* @param idEmpregado
* @return
* @throws Exception
*/
public List<AdiantamentoViagemDTO> consultarPorSolicitacaoEEmpregado(Integer solicitacaoServico, Integer idEmpregado) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("idSolicitacaoServico", "=", solicitacaoServico));
condicao.add(new Condition(Condition.AND, "idEmpregado", "=", idEmpregado));
return (List<AdiantamentoViagemDTO>) super.findByCondition(condicao, null);
}
/**
* TODO Este metodo esta em desuso, pode ser removido na proxima vers�o
*/
public List<AdiantamentoViagemDTO> consultarPorSolicitacao(Integer solicitacaoServico) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("idSolicitacaoServico", "=", solicitacaoServico));
return (List<AdiantamentoViagemDTO>) super.findByCondition(condicao, null);
}
/**
* TODO Este metodo esta em desuso, pode ser removido na proxima vers�o
*/
public List<AdiantamentoViagemDTO> consultarPorSolicitacaoENomeNaoFuncionario(Integer solicitacaoServico, String nomeNaoFunc) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("idSolicitacaoServico", "=", solicitacaoServico));
condicao.add(new Condition(Condition.AND, "nomeNaoFuncionario", "=", nomeNaoFunc));
return (List<AdiantamentoViagemDTO>) super.findByCondition(condicao, null);
}
}