Validar campo de outro formulário

Bom dia!

Estou desenvolvendo um formulário em que necessito de uma validação:

Caso já tenha sido lançada uma NF para o cliente, o formulário não pode ser enviado.

Exemplo:

Lancei a NF 1 para o cliente 1. Caso eu lance novamente a NF 1 para o cliente 1, o formulário não pode ser enviado.

Para resolver essa situação, resolvi consultar o dataset do próprio formulário e comparar com o valor que está atualmente no formulário. Mas é aí que estou tendo problemas.

O valor da NF é "txt_nfOriginal" e o cliente é "zm_cliente".

Estou fazendo o seguinte no validateFields:

var notaAtual = form.getValue("txt_nfOriginal");
var cliente = form.getValue("zm_cliente");
var validacao = valida(notaAtual, cliente);
if(validacao == true){
    throw("Essa nota já foi lançada para este cliente!");
}

Também fiz uma função para validação que faz esse papel de comparar o valor que está sendo lançado no formulário com o valor que já está no dataset.


function valida(nf, cliente){

    var validacao = false;
    var c1 = DatasetFactory.createConstraint("txt_nfOriginal", nf, nf, ConstraintType.MUST);
    var constraints = new Array(c1);
    var sortingFields = new Array("txt_nfOriginal");
    var returnFields = new Array("zm_cliente", "txt_nfOriginal");
    var dataset = DatasetFactory.getDataset("DT-LOG-001", returnFields, constraints, sortingFields);

    for(var i = 0; i < dataset.values.length; i++) {
        var cli = dataset.values[i]["DT-LOG-001.zm_cliente"];
        var nota = dataset.values[i]["DT-LOG-001.txt_nfOriginal"];

        if(cliente == cli){
            validacao = true;
        }

    }

}

Entretanto, este código não está funcionando. Poderiam me ajudar nesta questão?

EDIT: Estou adicionando dois prints.

Um contém o nome do dataset do formulário (DT-LOG-001). O outro contém uma visualização dos valores, dando ênfase no valor de "zm_cliente".

compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do fluig Forum!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags datasets validacao formulario ou faça a sua própria pergunta.