diff --git a/app/components/campo_autocomplete.php b/app/components/campo_autocomplete.php index fd51fba..b683063 100644 --- a/app/components/campo_autocomplete.php +++ b/app/components/campo_autocomplete.php @@ -1148,7 +1148,13 @@ function atualizar_dependencias_(pn_valor_s $("#ids_").val(''); } - vs_filtro = $("#form_cadastro").serialize(); + let formId = 'form_cadastro'; + + if (!$("#" + formId).length) { + formId = 'form_upload'; + } + + vs_filtro = $("#" + formId).serialize(); vs_url_campo_atualizado = 'functions/montar_campos.php?obj=&campo=&modo=edicao&atualizacao=1&valor_campo_correlato=1&cod='+pn_valor_selecionado+"&"+vs_filtro; diff --git a/app/upload_lote.php b/app/upload_lote.php index 6fac347..93921ff 100644 --- a/app/upload_lote.php +++ b/app/upload_lote.php @@ -396,115 +396,178 @@ function adicionarArquivoImportado(arquivoImportado) { $("#div_atual").val(vn_div_anterior); }); + + $va_parametros_campo) + +$va_all_campos = array_merge($va_campos, $va_campos_upload); + +foreach($va_all_campos as $vs_key_campo => $va_parametros_campo) { if (isset($va_parametros_campo["regra_exibicao"])) { + foreach($va_parametros_campo["regra_exibicao"] as $vs_campo => $va_valores_desejados) + { + if (!is_array($va_valores_desejados)) + $va_valores_desejados = array($va_valores_desejados); + + $vs_valores_desejados = implode("|", $va_valores_desejados); + } ?> function atualizar_exibicao_(ps_valor) { - vb_exibir_campo = false; + atualizar_exibicao_campo('', ps_valor, '', ''); +} $va_valores_desejados) +// Vamos verificar se os subcampos do campo contém regras de exibição +///////////////////////////////////////////////////////////////////// + +if (isset($va_parametros_campo["subcampos"])) +{ +foreach ($va_parametros_campo["subcampos"] as $vs_key_subcampo => $va_subcampo) +{ +if (isset($va_subcampo["regra_exibicao"])) +{ +?> + +function atualizar_exibicao_(ps_sufixo, ps_valor) +{ + $va_valores_desejados) { if (!is_array($va_valores_desejados)) $va_valores_desejados = array($va_valores_desejados); - foreach($va_valores_desejados as $v_valor_desejado) - { - if ($v_valor_desejado == "nao_vazio") - { - $v_valor_desejado_campo = "''"; - $vs_operador = "!="; - } - elseif (substr($v_valor_desejado, 0, 2) == "<>") - { - $v_valor_desejado_campo = str_replace("<>", "", $v_valor_desejado); - $vs_operador = "!="; - } - else - { - $v_valor_desejado_campo = $v_valor_desejado; - $vs_operador = "=="; - } - ?> - if ( (typeof ps_valor) == "string" ) - va_valores = ps_valor.split("|"); - else if ((typeof ps_valor) == "boolean") - { - if (ps_valor) - va_valores = ['1']; - else - va_valores = ['0']; - } + $vs_valores_desejados = implode("|", $va_valores_desejados); + } + ?> - for (v_valor in va_valores) - { - ps_valor = va_valores[v_valor]; + //console.log() + atualizar_exibicao_campo(''+ps_sufixo, ps_valor, '', ''); +} - if (ps_valor ) - vb_exibir_campo = true; - } + +} +?> + +function atualizar_exibicao_campo(ps_campo, ps_valor, ps_valores_desejados, ps_tipo_campo) +{ + vb_exibir_campo = false; + + vs_campo_desabilitar = ps_campo; + if (ps_tipo_campo == "html_multi_itens_input") + vs_campo_desabilitar = "numero_" + ps_campo; + + pa_valores_desejados = ps_valores_desejados.split("|"); + + let i = 0; + while (i < pa_valores_desejados.length) + { + v_valor_desejado = pa_valores_desejados[i]; - if (vb_exibir_campo) + if (v_valor_desejado == "nao_vazio") { - $("#div_").show(); - desabilitar_campo('', false, ''); + v_valor_desejado_campo = "''"; + vs_operador = "!="; + } + else if (v_valor_desejado.substring(0, 2) == "<>") + { + v_valor_desejado_campo = v_valor_desejado.replace("<>", ""); + vs_operador = "!="; } else { - $("#div_").hide(); - desabilitar_campo('', true, ''); + v_valor_desejado_campo = v_valor_desejado; + vs_operador = "=="; } - -} + if ( (typeof ps_valor) == "string" ) + va_valores = ps_valor.split("|"); - function desabilitar_campo(ps_campo, pb_desabilitar, ps_tipo_campo) { - vs_tipo_campo = $("#"+ps_campo).attr("class"); + vs_tipo_campo = $("#" + ps_campo).attr("class"); switch (vs_tipo_campo) { case "lookup": - $("#"+ps_campo+"_codigo").prop("disabled", pb_desabilitar); + $("#" + ps_campo + "_codigo").prop("disabled", pb_desabilitar); break; default: - $("#"+ps_campo).prop("disabled", pb_desabilitar); + $("#" + ps_campo).prop("disabled", pb_desabilitar); break; } if (ps_tipo_campo == 'html_date_input') { - $("#"+ps_campo+"_dia_inicial").prop("disabled", pb_desabilitar); - $("#"+ps_campo+"_mes_inicial").prop("disabled", pb_desabilitar); - $("#"+ps_campo+"_ano_inicial").prop("disabled", pb_desabilitar); - $("#"+ps_campo+"_dia_final").prop("disabled", pb_desabilitar); - $("#"+ps_campo+"_mes_final").prop("disabled", pb_desabilitar); - $("#"+ps_campo+"_ano_final").prop("disabled", pb_desabilitar); - $("#"+ps_campo+"_presumido").prop("disabled", pb_desabilitar); - $("#"+ps_campo+"_sem_data").prop("disabled", pb_desabilitar); + $("#" + ps_campo + "_dia_inicial").prop("disabled", pb_desabilitar); + $("#" + ps_campo + "_mes_inicial").prop("disabled", pb_desabilitar); + $("#" + ps_campo + "_ano_inicial").prop("disabled", pb_desabilitar); + $("#" + ps_campo + "_dia_final").prop("disabled", pb_desabilitar); + $("#" + ps_campo + "_mes_final").prop("disabled", pb_desabilitar); + $("#" + ps_campo + "_ano_final").prop("disabled", pb_desabilitar); + $("#" + ps_campo + "_presumido").prop("disabled", pb_desabilitar); + $("#" + ps_campo + "_sem_data").prop("disabled", pb_desabilitar); + } + else if (ps_tipo_campo == "html_multi_itens_input") + { + $("#" + ps_campo).prop("disabled", false); + + if (pb_desabilitar) + $("#" + ps_campo).val(0); } } diff --git a/src/database/banco.php b/src/database/banco.php index 2647693..4de1553 100755 --- a/src/database/banco.php +++ b/src/database/banco.php @@ -126,8 +126,10 @@ public function inserir($ps_table, $pa_columns, $pa_tipos_valores, $pa_valores, . " VALUES " . "(" . implode(", ", array_fill(0, count($pa_columns), "?")) . ")"; - if ($this->salvar) + if ($this->salvar) { $this->conexao_banco->executar($vs_select, $pa_tipos_valores, $pa_valores); + return $this->conexao_banco->get_last_inserted_id(); + } else var_dump($vs_select, $pa_tipos_valores, $pa_valores); } diff --git a/src/database/conexao_mysqli.php b/src/database/conexao_mysqli.php index a271f8a..d857cd4 100644 --- a/src/database/conexao_mysqli.php +++ b/src/database/conexao_mysqli.php @@ -136,4 +136,9 @@ function desconectar() $this->con->close(); } + function get_last_inserted_id() + { + return $this->con->insert_id; + } + } \ No newline at end of file diff --git a/src/database/conexao_pdo.php b/src/database/conexao_pdo.php index c509701..0df2fee 100644 --- a/src/database/conexao_pdo.php +++ b/src/database/conexao_pdo.php @@ -138,6 +138,11 @@ private function converter_pdo_types($pa_tipos_parametros): array } + function get_last_inserted_id() + { + return $this->con->lastInsertId(); + } + } ?> \ No newline at end of file diff --git a/src/lib/system/log.php b/src/lib/system/log.php index 4f8e41b..b059948 100755 --- a/src/lib/system/log.php +++ b/src/lib/system/log.php @@ -12,6 +12,7 @@ function __construct() $this->relacionamentos = $this->inicializar_relacionamentos(); $this->inicializar_visualizacoes(); + $this->autoincrement_codigo = true; } public function inicializar_tabela_banco() diff --git a/src/lib/system/objeto_base.php b/src/lib/system/objeto_base.php index 907d1dc..189c0b4 100755 --- a/src/lib/system/objeto_base.php +++ b/src/lib/system/objeto_base.php @@ -53,6 +53,8 @@ class objeto_base protected $objetos = array(); protected $numero_registros_por_objeto = array(); + protected $autoincrement_codigo = false; + function __construct($ps_recurso_sistema_id = '') { $this->banco_dados = $this->get_banco(); @@ -4608,20 +4610,22 @@ public function inserir($pa_valores_form, $ps_id_objeto_filho = '') $this->inicializar_variaveis_banco(); - $vn_novo_codigo = $this->ler_proximo_codigo($this->tabela_banco); - - $this->va_campos[] = $this->chave_primaria["coluna_tabela"]; - $this->va_tipos_parametros[] = "i"; - $this->va_parametros[] = $vn_novo_codigo; + if (!$this->autoincrement_codigo) + { + $vn_novo_codigo = $this->ler_proximo_codigo($this->tabela_banco); + $this->va_campos[] = $this->chave_primaria["coluna_tabela"]; + $this->va_tipos_parametros[] = "i"; + $this->va_parametros[] = $vn_novo_codigo; + } $this->montar_campos_salvamento($pa_valores_form, $ps_id_objeto_filho); - $this->banco_dados->inserir($this->tabela_banco, $this->va_campos, $this->va_tipos_parametros, $this->va_parametros); + $vn_autoincrement_codigo = $this->banco_dados->inserir($this->tabela_banco, $this->va_campos, $this->va_tipos_parametros, $this->va_parametros); if ($vb_iniciada_transacao) $this->banco_dados->finalizar_transacao(); - return $vn_novo_codigo; + return empty($vn_novo_codigo) ? $vn_autoincrement_codigo : $vn_novo_codigo; } public function atualizar($pa_valores_form, $ps_id_objeto_filho = '')