Versão atual:

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".

Versões (2):

Ver a versão formatada

Validar campo de outro formulário

Comentário

new question