MC
comparar campos com registros ja cadastrados
Ola Pessoal....
Preciso de uma ajuda...
Como procedo para que no ato de gravar os dados eu possa avaliar se os campos digitados já não pertencem a um registro gravado anteriormente ?
Exemplo dos campos:
Empresa_ID *
Data_Cadastro *
Operador_ID *
Sequencia
Caso já exista algo no banco gravado anteriormente o sistema mostra que já possui um registro.....
Caso não tenha sido gravado vem um numero sequencia iniciando do "01"
Estou utilizando Postgres e criei um índice para que talvez pudesse facilitar tal analise....
Como estou iniciando no PHP e Adianti estou tento um pouco de dificuldade....
Caso algum dos amigos tenha uma sugestão, por favor, agradeço..
Att
Marcelo Carvalho
Preciso de uma ajuda...
Como procedo para que no ato de gravar os dados eu possa avaliar se os campos digitados já não pertencem a um registro gravado anteriormente ?
Exemplo dos campos:
Empresa_ID *
Data_Cadastro *
Operador_ID *
Sequencia
Caso já exista algo no banco gravado anteriormente o sistema mostra que já possui um registro.....
Caso não tenha sido gravado vem um numero sequencia iniciando do "01"
Estou utilizando Postgres e criei um índice para que talvez pudesse facilitar tal analise....
Como estou iniciando no PHP e Adianti estou tento um pouco de dificuldade....
Caso algum dos amigos tenha uma sugestão, por favor, agradeço..
Att
Marcelo Carvalho
Use as classes do Adianti para realizar a consulta:
Nataniel obrigado
Aquela forma que eu fiz ate não deu mais o erro....
Porem a variável $result eu não consigo saber oque esta apresentando...
Meu intuito é verificar se os campos digitados na tela, já estão gravados em no Banco de Dados...
Não sei se essa forma é a mais indicada....
Essa sua sugestão, devo colocar na classe de modelo do VinculoCxOpTrm ?
Se for isso como devo chama-la ???
Marcelo, pode substituir o sql manual pelo código que passei, dentro da onSave mesmo. A função load retorna um array de objetos, então pode testá-la diretamente:
Ola Nataniel
Só agora pude testar sua dica...
Exclui todos os registros da tabela, digitei os campos para inclusão, porem no ato da gravação gera a mensagem "Dados Repetidos"...
Ou seja, esta validando, porem não aceita inclusão na base de dados mesmo que não tenha nenhum dado registrado....tabela zerada....
Apenas copiei o seu código e inseri na minha onSave
Tem alguma ideia ?? Sugestão ??
Att
Bom dia Marcelo.
Fiz no model da classe onde precisa verificar dessa forma.
Veja se te ajuda.
public function onAfterStore($object)
{
$this->contas = new Contas($object->id_conta);
if ($this->contas->nome_conta == 'MENS')
{
$criteria = new TCriteria;
$criteria->add(new TFilter('mes_referencia', '=', $object->mes_referencia));
$criteria->add(new TFilter('ano_referencia', '=', $object->ano_referencia));
$criteria->add(new TFilter('id_mensalista', '=', $object->id_mensalista));
$criteria->add(new TFilter('id_conta', '=', $object->id_conta));
$repository = new TRepository('Lancamentos');
$count = $repository->count($criteria);
if ($count > 1)
{
throw new Exception('Já existe mensalidade paga com esse vencimento.');
}
}
}
Atenciosamente,
Ailton Furtado
Marcelo, a verificação está sendo feita após a função store. Ou seja, está verificando após gravar, por isso sempre encontra os dados.