Ajuda para criar condição

(Paulo (ClickInformatica)) #1

Bom dia a todos

Estou precisando da ajuda de vocês no seguinte:

Estou fazendo um lançamento em outra tabela, até aqui tudo bem, a questão e que tenho uma condição SE CHEQUE - lança na tabela de CHEQUES. SE DINHEIRO lança no FLUXO DE CAIXA.

Vejam com esta a instrução que esta no evento ONAFTERINSERT

Estou colocando a função toda, poder ser que sirva para alguém no futuro.

sc_lookup(dadosvenda, "
SELECT
venda_veiculos.venda_id,
venda_veiculos.venda_data,
venda_veiculos.venda_cliente,
clientes.cli_nome
FROM
venda_veiculos INNER JOIN prazo_pagamento ON venda_veiculos.venda_id = prazo_pagamento.pz_venda_veiculos
INNER JOIN clientes ON venda_veiculos.venda_cliente = clientes.cli_id
WHERE
(pz_venda_veiculos = ‘{pz_venda_veiculos}’)
");
/* Erro no lookup /
if (empty({dadosvenda})) { /
EOF */
sc_error_message(“Tem alguma coisa errada,nenhum valor foi retornado pelo banco.
”);
} else {
{venda_id} = {dadosvenda[0][0]};
{venda_data} = {dadosvenda[0][1]};
{vendacliente} = {dadosvenda[0][2]};
{cli_nome} = {dadosvenda[0][3]};
[font=Verdana][b]
if ({tipo_pgto} === ‘C’)
{
sc_error_message(“Gravando registro no Cadastro de Cheques
”);

{dt_vencimento} = sc_date_conv({dt_vencimento},“dd/mm/aaaa”,“aaaa-mm-dd”);
sc_exec_sql(“INSERT INTO cheques (chq_dtcadastro,chq_cliente,chq_banco,chq_agencia,chq_num_conta,chq_numero,chq_valor,chq_vecto, chq_titular,chq_observacao,chq_status)
VALUES (’{venda_data}’,’{vendacliente}’,’{banco}’,’{agencia}’,’{num_conta}’,’{num_cheque}’,’{valor}’,’{dt_vencimento}’,’{cli_nome}’,‘Lancamento Venda Veiculos’,‘N’)”
);
}
else if ({tipo_pgto} === ‘D’)
{
sc_error_message(“Devera gravar no fluxo de caixa do dia
”);
}
[/b][/font]}

A parte que esta em vermelho é a minha questão. Não esta funcionando desse jeito. Na verdade não esta nem gravando mais na tabela de CHEQUES depois que coloquei essas condições.

Agradeço a ajuda de todos.

Forte abraço.

(George Carvalho) #2

Use “==” no lugar de “===’.

if ({tipo_pgto} == ‘C’)

George Carvalho

(Paulo (ClickInformatica)) #3

Oi, fiz a alteração conforme sua dica, mas infelizmente não esta correto ainda.

Quando clico para gravar o registro ele grava no banco, mas não libera a tela para incluir o proximo registro. fico no modo de inclusão, a unica opção disponivel é excluir o registro.

Aguardo a ajuda

(George Carvalho) #4

A dica que dei foi para o IF funcionar, não estou entendo o problema agora.

George Carvalho

(system) #5

Opa,

Não sei se entendi o último problema, mas após um insert no formulário ele permanece no registro atual, sendo necessário clicar no botão incluir / novo para adicionar uma nova entrada, e este botão precisa estar habilitado.

Se não me engano tem uma opção chamada “retornar após inclusão” que controla isso, mas tbm dá pra usar a macro sc_apl_conf no fim do evento onAfterInsert:

[tt]sc_apl_conf(‘nome_do_form’,‘start’,‘new’);[/tt]

Assim, após realizar um insert o form deverá ser aberto no modo de inclusão…

Espero ter ajudado.

Att.
Robson

(rayfcrols) #6

Exatamente Robson, a função existe e se encontra em Formulário -> Barra de Ferramentas -> Opções : ative a opção “retornar após inclusão”

(bitsystems) #7

Brother, sei que já faz tempo que seu post foi criado, mas preciso de sua ajuda.
Me de algumas dicas de como vc montou seu banco de dados, estou criando o mesmo sistema e as mesmas condições.
Aguardo seu contato
Grato,
Tiago Sanches