Botão RUM

Boa Noite

Gostaria de uma sugestão de como fazer uma aplicação para baixar títulos do ctas a receber.
Exemplo
Dou a data de vencimento e o usuário vai selecionar quais títulos quer baixar. a consulta retornara por exemplo 20 títulos desses 20 quero baixar apenas 5 por exemplo. Já tenho essa consulta criei um campo que exclui um por um até ficar os 5 títulos está funcionando perfeitamente. Mas não está prático porque dos 20 tenho que excluir 15 para ficar com o resultado necessário. Coloquei um botão run fico quase perfeito só precisaria que minha aplicação totalizasse apenas os registros selecionados antes de clicar no botão RUn. Para verificação do usuário se o valor que está baixando é o valor correto.
Alguma idéia?

Desde já agradeço
Rodrigo

rapá…comecei a fazer isso ontem… e se eu der conta de terminar esse fim de semana eu posto um video…

Ai vai entrar um efeito chamado ‘ILUSÃO DE ÓTICA’, tem que criar um flag de seleção ‘CAMPO’ no registro da tabela que estão elas, ai assim que ele tiver macada todas, passe para outra consulta que vai mostrar apenas as que estão selecionadas já no BANCO DE DADOS na consulta/grid anterior já com a Soma, ai lá você coloca o botão RUN para finalizar caso ele confirmar, se não ele retorna para consulta anterior e remarca novamente.

Não entendi, pra mim você fez a pergunta e já respondeu ao mesmo tempo, uai com botão run você vai selecionar os 5 títulos que quer e clicar no botão pra processar o que esta marcado e se for o caso pode dar baixa direto, direcionar o resultado da seleção pra outra consulta, mostrar a soma dos títulos na tel…etc…etc…etc

Saulo minha única dificuldade e ter a soma dos títulos antes da Baixa não após. Para conferir as baixas após baixados já tenho várias consultas. O usuário precisa conferir o valor antes de baixar. A idéia do Jailton é boa testarei.
Obrigado

Jailton tua “ILUSÃO DE ÓTICA” funcionou mas se o usuário selecionar 50 títulos de 100 e o valor ficar errado ele retornar e terá que marcar todos os títulos novamente. Alguma ideia para voltar marcados os títulos?

Como a qtde é muito grande, leia sobre o MÉTODO N-N Relations em formulários ai você pode criar um FORMULÁRIO e colocar as
parcela no N-N Relations, ai ele já vai atualizar o valor na própria tela, e você adiciona um botão RUN na barra só pra finalizar a
baixa dos que a FLAG SELECIONADOS estivem com CHECKBOX marcado na tabela do banco, então a FLAG campo que que você
já tinha criado na tabela vai ser aproveitada.

Muito bom tentarei. Obrigado novamente. Postarei a resposta assim que possível

Cara com botão run você consegue processar somar e não dar baixa, você decide o final do script, pode por exemplo gerar um pdf com a saída das parcelas somadas e mostrar pro cara, ou ainda direcionar pra um controle que receba todas as parcelas identificadas e o cara escolhe baixar ou não…

Nós temos uma baixa por lote em nosso módulo de contas a pagar e usamos uma consulta com o botão run para processar os registros selecionados e baixa-los.

Não vejo problema nesse recurso.

Meu superior autorizou colar o código aqui de como usamos esse recurso:

ONSCRIPTINIT:

[_ids]=:"";

ONRECORD DO BOTÃO RUN:

[_ids].={id_contas_pagar}.",";

ONFINISH DO BOTÃO RUN:

[code]sc_confirm (“Deseja realmente baixar os títulos selecionados?”);

$_banco=MySession(“Banco”);
$_cheque=MySession(“Cheque”);

$_ids=str_replace(",","",[_ids].",");
[_ids]="";

sc_lookup(ds, “select ce.id_historico, h.descricao from nm_configuracao_eventos ce, nm_historicos h where ce.id_historico = h.id_historico and id_config_evento = 1”);
If({ds} != False) {
$_id_historico = $ds[0][0];
$_desc_historico = $ds[0][1];
}

sc_select(campos,
“SELECT cp.id_contas_pagar,cp.numero_documento,cp.valor,cp.caixa_pgto,cp.banco_pgto,cp.agencia_pgto,cp.cheque_pgto,cp.conta_bancaria_pgto,
f.fn_fantasia,cp.id_conta_caixa,cp.id_centro_custo
FROM nm_contas_pagar cp inner join fornecedores f on cp.id_fornecedor=f.fn_codigo
WHERE cp.id_contas_pagar in ($_ids) and cp.valor_pgto=0”);
if ($campos === false)
{
echo "Erro de acesso. Mensagem = " . {campos_erro};
}
else
{
while (!$campos->EOF){

       $_id_contas_pagar     = $campos->fields[0];
       $_nro_documento       = $campos->fields[1];
       $_valor_pgto          = $campos->fields[2]; 
       $_caixa_pgto          = $campos->fields[3];
       $_banco_pgto          = $campos->fields[4];
       $_agencia_pgto        = $campos->fields[5];
       $_cheque_pgto         = $campos->fields[6];
       $_conta_bancaria_pgto = $campos->fields[7];
       $_fn_fantasia         = $campos->fields[8];
       $_id_conta_caixa      = $campos->fields[9];
       $_id_centro_custo     = $campos->fields[10];


   if ($_banco!='')
   {
       $_Caixa_Pgto=4;
       
       sc_lookup(dset,"SELECT agencia,conta_corrente,banco FROM nm_contas_bancarias where id_conta=$_banco");
       If ( $dset != False && !empty($dset) ) 
       {
          $_agencia=$dset[0][0];
          $_conta_corrente=$dset[0][1];
          $_banco_cod=$dset[0][2];
       }
       
       If (!empty([_cheque]))
         { $_nro_documento.="[CH:".$_cheque."]";}
          
       sc_exec_sql
       
       (
       
         "insert into nm_lancamentos_bancarios (
         id_conta, data_lancamento, tipo, id_historico, favorecido, numero_documento, pre_datado, bom_para, valor, id_conta_caixa, id_centro_custo, id_banco) 
         values 
         ($_banco,current_date,2,$_id_historico,'$_fn_fantasia','$_nro_documento','N',null,$_valor_pgto,'$_id_conta_caixa','$_id_centro_custo',$_banco)"
         
       );
           
   }
   else
   {
       $_Caixa_Pgto=3;
       $_agencia="";
       $_conta_corrente="";
       $_banco_cod="";
       sc_exec_sql(
       "insert into nm_lancamentos_caixa 
              (data_lancamento, id_conta_caixa, id_centro_custo, historico, numero_documento, valor, tipo) 
       values (CURRENT_DATE, '$_id_conta_caixa', '$_id_centro_custo', '$_desc_historico', '$_numero_documento',$_valor_pgto, 2)");
   }

       sc_exec_sql("Update nm_contas_pagar Set 
            Data_pgto=CURRENT_DATE
            ,Valor_Pgto=$_valor_pgto
            ,Caixa_Pgto='$_Caixa_Pgto'
            ,Banco_Pgto='$_banco'
            ,Agencia_Pgto='$_agencia'
            ,Conta_Bancaria_pgto='$_conta_corrente'
            ,Cheque_Pgto='$_cheque'
            where id_contas_pagar=$_id_contas_pagar");

      $campos->MoveNext();
 }
 $campos->Close();

}
$_sql=“Update nm_contas_bancarias set dataultlancamento=now() where id_conta=’$_banco’”;
sc_exec_sql($_sql);[/code]

  • nas versões 6 e 7 não necessita da macro sc_confirm.

No filtro da consulta criamos campos manuais para informar o banco e conta corrente,nro do cheque de pagamento se houver, a empresa e a data da baixa.

Todos os registros serão baixados com os valores desses campos.

Valores de apropriação da conta como plano de contas, centro de custos vem de uma tabela de parâmetros.
O sistema permite apropriar a conta depois de baixada.

Em nosso caso, executamos a baixa após a confirmação do botão RUN (sc_confirm).
Você pode fazer um select para totalizar os ids selecionados e colocar na mensagem de confrmação ou redirecionar passando os ids selecionados para uma app de controle onde você mostra os totais e ao clicar Ok vc efetua a baixa.

Hehehe, mais explicado que isso impossível!