Condições exclusivo - utilizar campo pai e filho

Bom dia pessoal,

Tenho um exclusivo no meu diagrama em que a condição é se um determinado checkbox de algum dos filhos de uma tabela pai e filho estiver marcado ele vai para uma determinada atividade e se nenhum dos filhos tiver esse checkbox marcado vai para outro.

Qual seria a melhor forma de fazer essa verificação nas expressões de condições do exclusivo?

Meu HTML está assim:


                                            <table tablename="tabelaForncedores" class="table" noaddbutton=false id="tabelaFornecedores">
                                                <thead>
                                                    <tr>
                                                        <th>
                                                            <div class="row">
                                                                <div class="form-group col-md-2 col-xs-4">
                                                                    Fornecedor
                                                                </div>
                                                                <div class="form-group col-md-2 col-xs-4">
                                                                    CNPJ
                                                                </div>
                                                                <div class="form-group col-md-2 col-xs-4">
                                                                    Produto/Serviço
                                                                </div>
                                                                <div class="form-group col-md-2 col-xs-4">
                                                                    Valor (R$)
                                                                </div>
                                                                <div class="form-group col-md-2 col-xs-4">
                                                                    Valor total (R$)
                                                                </div>
                                                            </div>
                                                        </th>
                                                    </tr>
                                                </thead>
                                                <tbody>
                                                    <tr>
                                                        <td style="vertical-align:middle;">

                                                            <div class="row">
                                                                <div class="form-group col-xs-4 col-sm-4 col-md-2 col-lg-2">
                                                                    <input class="form-control" type="text" name="fornecedor" id="fornecedor" >
                                                                </div>
                                                                <div class="form-group col-xs-4 col-sm-4 col-md-2 col-lg-2">
                                                                    <input class="form-control" type="text" name="cnpj" id="cnpj" mask="00.000.000/0000-00">
                                                                </div>
                                                                <div class="form-group col-xs-4 col-sm-4 col-md-2 col-lg-2">
                                                                    <input class="form-control" type="text" name="produto" id="produto">
                                                                </div>
                                                                <div class="form-group col-xs-4 col-sm-4 col-md-2 col-lg-2">
                                                                    <input class="form-control valor" type="text" name="valor" id="valor"  mask="#00.000.000.000.000,00">
                                                                </div>
                                                                <div class="form-group col-xs-4 col-sm-4 col-md-2 col-lg-2">
                                                                    <input class="form-control valor" type="text" name="valorTotal" id="valorTotal"  mask="#00.000.000.000.000,00">
                                                                </div>
                                                            </div>

                                                            <div class="row">
                                                                <div class="form-group col-xs-8 col-sm-8 col-md-4 col-lg-4">
                                                                    <label>Critérios para escolha:</label><br>
                                                                    <input class="form-field" type="checkbox" name="preco" id="preco" style="width:20px;height:20px;"><label style="vertical-align: middle;">Menor Preço</label><br>
                                                                    <input class="form-field" type="checkbox" name="qualidade" id="qualidade" style="width:20px;height:20px;"><label style="vertical-align: middle;">Melhor qualidade</label><br>
                                                                    <input class="form-field" type="checkbox" name="prazo" id="prazo" style="width:20px;height:20px;"><label style="vertical-align: baseline;">Melhor prazo de entrega</label><br>
                                                                    <input class="form-field" type="checkbox" name="flexibilidade" id="flexibilidade" style="width:20px;height:20px;"><label style="vertical-align: baseline;">Flexibilidade nas negociações</label>
                                                                </div>                                                                
                                                                <div class="form-group col-xs-8 col-sm-8 col-md-4 col-lg-4" style="vertical-align: middle;">
                                                                    <div class="row">
                                                                        <br>
                                                                        <input class="form-field" type="checkbox" name="temContrato" id="temContrato" style="width:20px;height:20px;"><label style="vertical-align: baseline;">Necessita de contrato?</label><br>
                                                                        <button type="button" class="btn btn-primary" name="anexoContrato" id="anexoContrato" onclick="showCamera(this.id);"><span class="fluigicon fluigicon-paperclip fluigicon-xs"></span> Anexar Contrato </button>
                                                                    </div> 
                                                                </div>                                                            
                                                            </div>
                                                        </td>                                                
                                                    </tr>
                                                </tbody>
                                            </table>

O chackbox no final com o id = "temContrato" é o que eu quero verificar. Se tiver algum filho com esse checkbox marcado ele é direcionado para um atividade. Se não tiver nenhum eu direciono ele para outra.

Meu fluxo está da seguinte forma nessa decisão:

Capturar.PNG

Agradeço desde já!

abs,

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.

Caro,

Você criar uma função para percorrer o campo e retornar verdadeiro ou algum valor que você possa inserir nas expressões, por tanto para que possamos te ajudar de uma forma melhor, anexe seu código e o print da tela de como é a sua estrutura de negócio para um apoio mais assertivo.

@italo adicionei o HTML na pergunta!

Pedro, anaisei sua tabela Pai filho como voce pode ter mais de um item para o contrato o ideal é que você tenha esse campo de contrato fora da tabela pai x filho, pois se usar a função para varrer os itens da tabela pai filho vai te retornar vários campos marcados. Por tanto você poderá configurar o script para retornar como Verdadeiro quando alguns dos campos checkbox de contrato tiverem marcado tipo FaturarContrato(“S”) OU FaturarContrato(“N”) nas expressões.

Boa tarde,

Vejo duas possibilidades:

  1. Criar um campo oculto no próprio formulário, fora da tabela pai x filho, e vincular um evento no seu campo checkbox (onchange, onclick) com uma função para varrer sua tabela e verificar se há campos marcados, preenchendo o campo oculto informado anteriormente, com um valor 'true', por exemplo. Esse campo seria usado no seu exclusivo para validação.

    1. Criar um novo evento de processo contendo basicamente a mesma lógica mencionada acima, para varrer a tabela e retornar 'true' caso exista algum campo marcado. Neste caso, o retorna da função seria usado no exclusivo para validação.

    A primeira opção é interessante por estar do lado Client e possibilitar a utilização de jquery ou qualquer biblioteca que facilite a "varredura" da tabela, assim como permitir testar o mesmo de forma mais ágil. Já na segunda, o código está do lado server, garantindo utilização do recurso do servidor. As duas opções são viáveis e teoricamente simples, acredito que fica a seu critério.

A solução foi criar um campo fora da pai e filho para informar se algum dos filhos tem o checkbox marcado. Criei o campo abaixo oculto:


<input type="text" name="temContratoAux" id="temContratoAux">

E no meu JS fiz o seguinte:



window.parent.$("[data-send]").on("click", function(ev){        

    for (var i=0; i <= rowForCount; i++) {
        console.log("entrou na iteração do contrato" + i);
        if ($('#temContrato___' + i).is(":checked")){
            console.log("achou checkbox marcado");
            $("#temContratoAux").val("sim");            
        }
    }
}

E utilizei esse campo "temContratoAux" no meu decide:


hAPI.getCardValue('temContratoAux') == ""
hAPI.getCardValue('temContratoAux') == "sim"

abs,