jpa2 - pesquisa por data não retorna resgistro mesmo tendo

Bom Dia!!

Preciso da ajuda de voces, mais uma vez rsrs

Tenho um tela de pesquisa aonde o usuario pode selecionar os parametros que quiser.
Os parametros nomeArquivo, cpf e safra estao ok, meu problema esta na busca pela data (dataEnvioInicial).

O erro acontece no método pesquisarMenuArquivo, quando a query vai ser executada acusa erro na passagem do parametro data.

Abaixo segue meu codigo e a mensagem de erro. Vou continuar tentando, mais se alguem puder ajudar agradeço.

mensagem de erro: O EJB emitiu uma exceção (não-declarada) inesperada durante a chamada do método “pesquisarMenuArquivo” no bean “BeanId(servicoscartaocreditoEAR#servicoscartaocreditoEJB.jar#ControleEPSDAOImpl, null)”. Dados da exceção:<openjpa-1.2.3-SNAPSHOT-r422266:1035770 nonfatal user error> org.apache.openjpa.persistence.ArgumentException: O parâmetro “dataEnvioInicial” é do tipo “java.lang.String”, mas a declaração na consulta é do tipo “java.util.Date”.

obs: banco é informix e o select o formato da data é yyyy-MM-dd

[code]@Entity
@Table(name = “xxxxxx”)
public class TelemarketingEntity implements java.io.Serializable {

private static final long serialVersionUID = -3872221887032117843L;

private Long arqtipcod;
private Long arqsitcod;
private Date arqdat;
private Date data; 
private Long qtdeRecebida;
private Long safra;
private Long qtdeErro;
private Long qtdeEnviadaOk;

//Transient
private String codEmpresa;
private Date dtRecebimento; 
private Date dtEnvio; 

private TelemarketingPK telemarketingPK;

public TelemarketingEntity(Date data, Long qtdeRecebida, Long safra,
		Long qtdeErro, Long qtdeEnviadaOk, TelemarketingPK telemarketingPK) {
	super();
	this.data = data;
	this.qtdeRecebida = qtdeRecebida;
	this.safra = safra;
	this.qtdeErro = qtdeErro;
	this.qtdeEnviadaOk = qtdeEnviadaOk;	
	this.telemarketingPK = telemarketingPK;
}

public TelemarketingEntity(Date data, Long qtdeRecebida, Long safra,
		Long qtdeErro, Long qtdeEnviadaOk, String codEmpresa,
		TelemarketingPK telemarketingPK) {
	super();
	this.data = data;
	this.qtdeRecebida = qtdeRecebida;
	this.safra = safra;
	this.qtdeErro = qtdeErro;
	this.qtdeEnviadaOk = qtdeEnviadaOk;
	this.codEmpresa = codEmpresa;
	this.telemarketingPK = telemarketingPK;
}

public TelemarketingEntity() {
	
}

@EmbeddedId
public TelemarketingPK getTelemarketingPK() {
	return telemarketingPK;
}
public void setTelemarketingPK(TelemarketingPK telemarketingPK) {
	this.telemarketingPK = telemarketingPK;
}
	
@Column(name = "arqtipcod")
public Long getArqtipcod() {
	return arqtipcod;
}
public void setArqtipcod(Long arqtipcod) {
	this.arqtipcod = arqtipcod;
}

@Column(name = "arqsitcod")
public Long getArqsitcod() {
	return arqsitcod;
}
public void setArqsitcod(Long arqsitcod) {
	this.arqsitcod = arqsitcod;
}

@Column(name = "arqdat")
public Date getArqdat() {
	return arqdat;
}
public void setArqdat(Date arqdat) {
	this.arqdat = arqdat;
}	

@Column(name = "arqgerdat")
public Date getData() {
	return data;
}
public void setData(Date data) {
	this.data = data;
}

@Column(name = "arqregqtd")
public Long getQtdeRecebida() {
	return qtdeRecebida;
}
public void setQtdeRecebida(Long qtdeRecebida) {
	this.qtdeRecebida = qtdeRecebida;
}

@Column(name = "arqlteqtd")
public Long getSafra() {
	return safra;
}
public void setSafra(Long safra) {
	this.safra = safra;
}

@Column(name = "rcsregqtd")
public Long getQtdeErro() {
	return qtdeErro;
}
public void setQtdeErro(Long qtdeErro) {
	this.qtdeErro = qtdeErro;
}

@Column(name = "actregqtd")
public Long getQtdeEnviadaOk() {
	return qtdeEnviadaOk;
}
public void setQtdeEnviadaOk(Long qtdeEnviadaOk) {
	this.qtdeEnviadaOk = qtdeEnviadaOk;
}

public void setCodEmpresa(String codEmpresa) {
	this.codEmpresa = codEmpresa;
}

@Transient
public String getCodEmpresa() {
	return codEmpresa;
}

@Transient
public Date getDtRecebimento() {
	return dtRecebimento;
}

public void setDtRecebimento(Date dtRecebimento) {
	this.dtRecebimento = dtRecebimento;
}

@Transient
public Date getDtEnvio() {
	return dtEnvio;
}

public void setDtEnvio(Date dtEnvio) {
	this.dtEnvio = dtEnvio;
}

}[/code]

[code]@Embeddable
public class TelemarketingPK implements ICompositePrimaryKey {

private static final long serialVersionUID = 6859445788577818752L;

private Long arqcntnum;
private String arqnom;

public TelemarketingPK() {
	super();
}	
	
public TelemarketingPK(Long arqcntnum, String arqnom) {
	super();
	this.arqcntnum = arqcntnum;
	this.arqnom = arqnom;
}

@Column(name="arqcntnum")
public Long getArqcntnum() {
	return arqcntnum;
}
public void setArqcntnum(Long arqcntnum) {
	this.arqcntnum = arqcntnum;
}
@Column(name="arqnom")
public String getArqnom() {
	return arqnom;
}
public void setArqnom(String arqnom) {
	this.arqnom = arqnom;
}


@Override
public int hashCode() {
	final int prime = 31;
	int result = 1;
	result = prime * result
			+ ((arqcntnum == null) ? 0 : arqcntnum.hashCode());
	result = prime * result + ((arqnom == null) ? 0 : arqnom.hashCode());
	return result;
}

@Override
public boolean equals(Object obj) {
	if (this == obj)
		return true;
	if (obj == null)
		return false;
	if (getClass() != obj.getClass())
		return false;
	TelemarketingPK other = (TelemarketingPK) obj;
	if (arqcntnum == null) {
		if (other.arqcntnum != null)
			return false;
	} else if (!arqcntnum.equals(other.arqcntnum))
		return false;
	if (arqnom == null) {
		if (other.arqnom != null)
			return false;
	} else if (!arqnom.equals(other.arqnom))
		return false;
	return true;
}

}[/code]

[code]public List enviar() {

System.out.println("** iniciando metodo enviar **");

DateFormat strDf = new SimpleDateFormat("yyyy-MM-dd");		 
					
int posicao;

this.list = controleEPS.pesquisarMenuArquivo(
			this.nomeArquivo.toString().trim(),this.cpf,this.safra,this.dataEnvioInicial,27l,29l,30l,2l);
		
if (this.list.size() > 0){
	System.out.println("qtde retorno: " + this.list.size());		
} else {
	System.out.println("** enviar - não achou!.");
}
				
return this.list;		

}[/code][code]@Override
public List pesquisarMenuArquivo(String nomeArquivo, Long cpf, Long safra, Date dataEnvioInicial, Long codTpArquivo27, Long codTpArquivo29,
Long codTpArquivo30, Long codStArquivo2 ){

	DateFormat strDf = new SimpleDateFormat("yyyy-MM-dd");
	
	List<Long> listArqtipcod = new ArrayList<Long>();   
	listArqtipcod.add(27l);   
	listArqtipcod.add(30l);   
	    	
	String emp = null;
	if (empresa != null)
		emp = Long.toString(empresa);    	
	
	String jpql = " select distinct new TelemarketingEntity(a.data, a.qtdeRecebida, a.safra, a.qtdeErro, a.qtdeEnviadaOk, a.telemarketingPK) " +
		" from TelemarketingEntity a, ArquivoEntity b " +
  		" where a.telemarketingPK.arqnom = b.arquivoPK.arqnom ";

	if(!nomeArquivo.equals("") && nomeArquivo != null ){
		jpql += " and a.telemarketingPK.arqnom = :nomeArquivo ";
	}
	if(cpf != null){
		jpql += " and b.arquivoPK.cgccpfnumdig = :cpf ";    		
	}
	if(safra != null){
		jpql += " and a.safra = :safra ";  		  
	}					
	if(dataEnvioInicial != null){			
		jpql += " and arqtipcod = :codTpArquivo29 and arqsitcod = :codStArquivo2 and a.data = :dataEnvioInicial ";
	}		
	
	final Query query = this.entityManager.createQuery(jpql);
	
	if(!nomeArquivo.equals("") && nomeArquivo != null ){
		query.setParameter("nomeArquivo", nomeArquivo);
	}    	
	if(cpf != null){
		query.setParameter("cpf", cpf);
	}
	if(safra != null){
		query.setParameter("safra", safra);
	}	
	if(dataEnvioInicial != null){
		query.setParameter("codTpArquivo29", codTpArquivo29);  	
		query.setParameter("codStArquivo2", codStArquivo2);  	
		query.setParameter("dataEnvioInicial", strDf.format(dataEnvioInicial));
	} 
	
	List<TelemarketingEntity> retorno = new ArrayList<TelemarketingEntity>();
	retorno.addAll(query.getResultList());
	
	return retorno;

} [/code]

O método format, da classe SimpleDateFormat retorna uma String, logo, é esta linha aqui

query.setParameter("dataEnvioInicial", strDf.format(dataEnvioInicial));  

que está ocasionando o erro.
Se o teu POJO possui um atributo declarado como java.util.Date, passe um objeto java.util.Date como argumento.

[quote=drsmachado]O método format, da classe SimpleDateFormat retorna uma String, logo, é esta linha aqui

query.setParameter("dataEnvioInicial", strDf.format(dataEnvioInicial));  

que está ocasionando o erro.
Se o teu POJO possui um atributo declarado como java.util.Date, passe um objeto java.util.Date como argumento.[/quote]

Olá drsmachado!

Quando fiz:

DateFormat strDf = new SimpleDateFormat(“yyyy-MM-dd”);
e no parametro passei: query.setParameter(“dataEnvioInicial”, strDf.format(dataEnvioInicial));
Achei que já era convertido.

Você pode me dizer o que mais tenho que fazer??

Obrigada!

Tire a formatação. Isso não é necessário

query.setParameter("dataEnvioInicial", strDf.format(dataEnvioInicial)); 

Só isso resolve o problema

query.setParameter('dataEnvioInicial", dataEnvioInicial);

Leia a documentação.
Pesquise.
Use a tag[code] quando for postar trechos de códigos.

[quote=drsmachado]Tire a formatação. Isso não é necessário

query.setParameter("dataEnvioInicial", strDf.format(dataEnvioInicial)); 

Só isso resolve o problema

query.setParameter('dataEnvioInicial", dataEnvioInicial);

Leia a documentação.
Pesquise.
Use a tag[code] quando for postar trechos de códigos.[/quote]

Obrigada drsmachado!

olá drsmachado!

Desculpe incomodar de novo, mais realmente não estou conseguindo.

Não esta mais dando erro com a data, porém não traz registros do banco.

É a primira vez em jpa 2, estou estudando porém já estou a bastante tempo tentando resolver meu problema e o tempo ta se esgotando rs

Tenho uma tela de pesquisa com alguns parametros, o usuario escolhe qual ou quais parametros são interessantes para a pesquisa.
Todos os filtros funcionam exceto a data , já pesquisei muito e ainda não consegui resolver,

Não acontece erro, apenas não traz registros, o que acontece é que se faço o select direto no banco traz resultados e pelo “java” não.

select que roda no informix e retorna registros:
Select unique a.arqnom , arqlteqtd ,date(arqgerdat), arqregqtd, rcsregqtd, actregqtd
from fscmarq a, fscrprparq b
Where a.arqnom = b.arqnom
and (arqtipcod = 27 or arqtipcod = 30)
and date(arqgerdat) = ‘2013-04-29’

CREATE TABLE dados.fscmarq (
arqcntnum SMALLINT NOT NULL,
arqnom VARCHAR(50) NOT NULL,
arqtipcod SMALLINT NOT NULL,
arqsitcod SMALLINT NOT NULL,
arqdat DATE,
arqgerdat DATETIME YEAR to SECOND,
arqregqtd INTEGER,
arqlteqtd INTEGER,
rcsregqtd INTEGER,
actregqtd INTEGER,
PRIMARY KEY(arqcntnum,arqnom)
)

Obs.: obrigatoriamete a data tem que ser no formato yyyy-MM-dd se não dá erro no banco.

classe entidade:

[code]@Entity
@Table(name = “fscmarq”)
public class TelemarketingEntity implements java.io.Serializable {

private static final long serialVersionUID = -3872221887032117843L;

private Long arqtipcod;
private Long arqsitcod;
private Date arqdat;
private Date data; 
private Long qtdeRecebida;
private Long safra;
private Long qtdeErro;
private Long qtdeEnviadaOk;

//Transient
private String codEmpresa;
private Date dtRecebimento; 
private Date dtEnvio; 

private TelemarketingPK telemarketingPK;

public TelemarketingEntity(Date data, Long qtdeRecebida, Long safra,
		Long qtdeErro, Long qtdeEnviadaOk, TelemarketingPK telemarketingPK) {
	super();
	this.data = data;
	this.qtdeRecebida = qtdeRecebida;
	this.safra = safra;
	this.qtdeErro = qtdeErro;
	this.qtdeEnviadaOk = qtdeEnviadaOk;	
	this.telemarketingPK = telemarketingPK;
}

public TelemarketingEntity(Date data, Long qtdeRecebida, Long safra,
		Long qtdeErro, Long qtdeEnviadaOk, String codEmpresa,
		TelemarketingPK telemarketingPK) {
	super();
	this.data = data;
	this.qtdeRecebida = qtdeRecebida;
	this.safra = safra;
	this.qtdeErro = qtdeErro;
	this.qtdeEnviadaOk = qtdeEnviadaOk;
	this.codEmpresa = codEmpresa;
	this.telemarketingPK = telemarketingPK;
}

public TelemarketingEntity() {
	
}

@EmbeddedId
public TelemarketingPK getTelemarketingPK() {
	return telemarketingPK;
}
public void setTelemarketingPK(TelemarketingPK telemarketingPK) {
	this.telemarketingPK = telemarketingPK;
}
	
@Column(name = "arqtipcod")
public Long getArqtipcod() {
	return arqtipcod;
}
public void setArqtipcod(Long arqtipcod) {
	this.arqtipcod = arqtipcod;
}

@Column(name = "arqsitcod")
public Long getArqsitcod() {
	return arqsitcod;
}
public void setArqsitcod(Long arqsitcod) {
	this.arqsitcod = arqsitcod;
}

@Column(name = "arqdat")
public Date getArqdat() {
	return arqdat;
}
public void setArqdat(Date arqdat) {
	this.arqdat = arqdat;
}	

@Column(name = "arqgerdat")
public Date getData() {
	return data;
}
public void setData(Date data) {
	this.data = data;
}

@Column(name = "arqregqtd")
public Long getQtdeRecebida() {
	return qtdeRecebida;
}
public void setQtdeRecebida(Long qtdeRecebida) {
	this.qtdeRecebida = qtdeRecebida;
}

@Column(name = "arqlteqtd")
public Long getSafra() {
	return safra;
}
public void setSafra(Long safra) {
	this.safra = safra;
}

@Column(name = "rcsregqtd")
public Long getQtdeErro() {
	return qtdeErro;
}
public void setQtdeErro(Long qtdeErro) {
	this.qtdeErro = qtdeErro;
}

@Column(name = "actregqtd")
public Long getQtdeEnviadaOk() {
	return qtdeEnviadaOk;
}
public void setQtdeEnviadaOk(Long qtdeEnviadaOk) {
	this.qtdeEnviadaOk = qtdeEnviadaOk;
}

public void setCodEmpresa(String codEmpresa) {
	this.codEmpresa = codEmpresa;
}

@Transient
public String getCodEmpresa() {
	return codEmpresa;
}

@Transient
public Date getDtRecebimento() {
	return dtRecebimento;
}

public void setDtRecebimento(Date dtRecebimento) {
	this.dtRecebimento = dtRecebimento;
}

@Transient
public Date getDtEnvio() {
	return dtEnvio;
}

public void setDtEnvio(Date dtEnvio) {
	this.dtEnvio = dtEnvio;
}

}[/code]

[code]@Embeddable
public class TelemarketingPK implements ICompositePrimaryKey {

private static final long serialVersionUID = 6859445788577818752L;

private Long arqcntnum;
private String arqnom;

public TelemarketingPK() {
	super();
}	
	
public TelemarketingPK(Long arqcntnum, String arqnom) {
	super();
	this.arqcntnum = arqcntnum;
	this.arqnom = arqnom;
}

@Column(name="arqcntnum")
public Long getArqcntnum() {
	return arqcntnum;
}
public void setArqcntnum(Long arqcntnum) {
	this.arqcntnum = arqcntnum;
}
@Column(name="arqnom")
public String getArqnom() {
	return arqnom;
}
public void setArqnom(String arqnom) {
	this.arqnom = arqnom;
}	

}[/code]Na pagina xhtml tenho um componente do richfaces calendar conforme abaixo:

<h:outputText value="Data de Envio:" style="color:#363636;font-weight:bold;font-size:12px"/> </h:column> <h:column> <rich:calendar cellWidth="24px" cellHeight="22px" style="width:120px;border:0" datePattern="dd/MM/yyyy" value="#{controleEPSBean.dataEnvioInicial}" /> </h:column> <h:column>

No bean a data retorna assim: Fri Apr 19 00:00:00 BRT 2013

metodo que chama no clique do botao pesquisar:

[code] public List enviar() {

	System.out.println("** iniciando metodo enviar **");
							
	int posicao;
	
	this.list = controleEPS.pesquisarMenuArquivo(
				this.nomeArquivo.toString().trim(),this.cpf,this.safra,	this.dataEnvioInicial,27l,29l,30l,2l);
			
	if (this.list.size() > 0){
		System.out.println("qtde retorno: " + this.list.size());			
	} else {
		System.out.println("** enviar - não achou!.");
	}
					
	return this.list;		
}[/code]

metodo que realiza o select:

[code]@Override
public List pesquisarMenuArquivo(String nomeArquivo, Long cpf, Long safra, Date dataEnvioInicial, Long codTpArquivo27, Long codTpArquivo29,
Long codTpArquivo30, Long codStArquivo2 ){

	String jpql = " select distinct new TelemarketingEntity(a.data, a.qtdeRecebida, a.safra, a.qtdeErro, a.qtdeEnviadaOk, a.telemarketingPK) " +
		" from TelemarketingEntity a, ArquivoEntity b " +
  		" where a.telemarketingPK.arqnom = b.arquivoPK.arqnom ";

	if(!nomeArquivo.equals("") && nomeArquivo != null ){
		jpql += " and a.telemarketingPK.arqnom = :nomeArquivo ";
	}
	if(cpf != null){
		jpql += " and b.arquivoPK.cgccpfnumdig = :cpf ";    		
	}
	if(safra != null){
		jpql += " and a.safra = :safra ";  		  
	}					
	if(dataEnvioInicial != null){			
		jpql += " and (a.arqtipcod = :codTpArquivo29 or a.arqsitcod = :codStArquivo2) and a.data = :dataEnvioInicial ";
	}		
	
	final Query query = this.entityManager.createQuery(jpql);
	
	if(!nomeArquivo.equals("") && nomeArquivo != null ){
		query.setParameter("nomeArquivo", nomeArquivo);
	}    	
	if(cpf != null){
		query.setParameter("cpf", cpf);
	}
	if(safra != null){
		query.setParameter("safra", safra);
	}	
	if(dataEnvioInicial != null){
		query.setParameter("codTpArquivo29", codTpArquivo29);  	
		query.setParameter("codStArquivo2", codStArquivo2);  	
		query.setParameter("dataEnvioInicial", dataEnvioInicial);
	} 
	
	List<TelemarketingEntity> retorno = new ArrayList<TelemarketingEntity>();
	retorno.addAll(query.getResultList());
	
	return retorno;

}[/code]

Agradeço desde já!

Isso não existe, você está usando JPA 2 e não JDBC então, esqueça essa regra.
Vamos supor que você tenha um bean chamado Cliente:

@Entity
@Table(name = "tb_clientes")
public class Cliente implements Serializable{
	@Id
	@GeneratadValue
	private Long id;
	private String nome;
	@Temporal(TemporalType.DATE)
	@Column(name = "data_nasc")
	private Date dataNasc;
	//Getters e setters
}

Note a presença da annotation @Temporal(TemporalType.DATE)
É ela que diz ao Hibernate que o campo é um tipo de data.
Sem essa anotação, você não vai ter êxito na tentativa de buscar algo no banco, utilizando uma data como referência.
Detalhes:
1 - Existem três tipos de TemporalType:
DATE: se refere a uma data no formato yyyy-MM-dd
TIME: se refere a um horário no formado HH:mm:ss:SSSSSS
TIMESTAMP: se refere à data e hora yyyy-MM-dd HH:mm:ss:SSSSSS

2 - Só podem ser anotadas como @Temporal objetos das classes java.util.Date e java.util.Calendar (GregorianCalendar eu não me recordo)

Com essa anotação presente em teu código, o hibernate saberá que deve converter do formato da data recebida para o formato java.sql.Date que é yyy-MM-dd e, então, permitirá que você faça a consulta corretamente.

Muito Obrigada!

[quote=drsmachado][quote=izaura]
Obs.: obrigatoriamete a data tem que ser no formato yyyy-MM-dd se não dá erro no banco.
[/quote]
Isso não existe, você está usando JPA 2 e não JDBC então, esqueça essa regra.
Vamos supor que você tenha um bean chamado Cliente:

@Entity
@Table(name = "tb_clientes")
public class Cliente implements Serializable{
	@Id
	@GeneratadValue
	private Long id;
	private String nome;
	@Temporal(TemporalType.DATE)
	@Column(name = "data_nasc")
	private Date dataNasc;
	//Getters e setters
}

Note a presença da annotation @Temporal(TemporalType.DATE)
É ela que diz ao Hibernate que o campo é um tipo de data.
Sem essa anotação, você não vai ter êxito na tentativa de buscar algo no banco, utilizando uma data como referência.
Detalhes:
1 - Existem três tipos de TemporalType:
DATE: se refere a uma data no formato yyyy-MM-dd
TIME: se refere a um horário no formado HH:mm:ss:SSSSSS
TIMESTAMP: se refere à data e hora yyyy-MM-dd HH:mm:ss:SSSSSS

2 - Só podem ser anotadas como @Temporal objetos das classes java.util.Date e java.util.Calendar (GregorianCalendar eu não me recordo)

Com essa anotação presente em teu código, o hibernate saberá que deve converter do formato da data recebida para o formato java.sql.Date que é yyy-MM-dd e, então, permitirá que você faça a consulta corretamente.[/quote]

Olá!

Fiz conforme sua explicação e mesmo assim continua não trazendo dados do banco.
Estou a muitas horas tentando … rsrsrs

Será que vc tem outra dica do que pode ser?

Agradeço!

Bom dizer como é que estão sendo guardadas essas datas no banco (se inclui só a data, ou se inclui também a hora.)

Note que 29/04/2013 é diferente de 29/04/2013 03:00:00 - ele pode não estar encontrando por causa disso :frowning:

Diga como é a definição dessa tabela (o comando SQL que foi usado para criar essa coluna).

[quote=entanglement]Bom dizer como é que estão sendo guardadas essas datas no banco (se inclui só a data, ou se inclui também a hora.)

Note que 29/04/2013 é diferente de 29/04/2013 03:00:00 - ele pode não estar encontrando por causa disso :frowning:

Diga como é a definição dessa tabela (o comando SQL que foi usado para criar essa coluna). [/quote]

Boa Noite!!

select que roda no informix e retorna registros:
Select unique a.arqnom , arqlteqtd ,date(arqgerdat), arqregqtd, rcsregqtd, actregqtd
from fscmarq a, fscrprparq b
Where a.arqnom = b.arqnom
and (arqtipcod = 27 or arqtipcod = 30)
and date(arqgerdat) = ‘2013-04-29’

CREATE TABLE dados.fscmarq (
arqcntnum SMALLINT NOT NULL,
arqnom VARCHAR(50) NOT NULL,
arqtipcod SMALLINT NOT NULL,
arqsitcod SMALLINT NOT NULL,
arqdat DATE,
arqgerdat DATETIME YEAR to SECOND,
arqregqtd INTEGER,
arqlteqtd INTEGER,
rcsregqtd INTEGER,
actregqtd INTEGER,
PRIMARY KEY(arqcntnum,arqnom)
)

Agradeço a ajuda.