Duvidas
Olá pessoal, gostaria que encaminhasse este chamado ao meu amigo Wesley.
Conforme solicitado, abri o novo chamado e citei as questões sublinhadas por você.
1) Eu fiz algumas vendas, qdo eu tento exlcuir, não deixa, diz que tem detalhe na master e não pode excluir, o que pode ser?;
2) Como seria a forma correta para gerar os vencimentos, seria utilizando esta procedure e chamando ela pelo Delphi? ou Chamando ela pelo Banco como eu fiz? ou Seria fazer todos os comandos em uma unit no Delphi?
3) No itens da Venda (Grid), conforme eu digito a quantidade e o vr unitario, como eu faço para calcular o total automaticamente e isto ser passado para o banco?;
4) Conforme totaliza o valor do itens, como eu faço para ja ir somando e acumulando valor na Master (Valor Total da Venda)?;
Estive pensando no que vc me falou, gostaria de chamar esta procedure ou criar a mesma dentro do delphi e chama-la em algum evento, tipo no after post, pq ai eu posso perguntar ao usuário se deseja integrar o CReceber ou então, verifico se ja existe lançamentos, se deseja reintegrar, etc, Como eu faria desta forma? Visto que chamando em triggers eu não disponho deste recurso :D
Vou ficar bom neste trein ainda hehehehe (ainda mais com sua ajuda) !!!
Conforme solicitado, abri o novo chamado e citei as questões sublinhadas por você.
1) Eu fiz algumas vendas, qdo eu tento exlcuir, não deixa, diz que tem detalhe na master e não pode excluir, o que pode ser?;
2) Como seria a forma correta para gerar os vencimentos, seria utilizando esta procedure e chamando ela pelo Delphi? ou Chamando ela pelo Banco como eu fiz? ou Seria fazer todos os comandos em uma unit no Delphi?
3) No itens da Venda (Grid), conforme eu digito a quantidade e o vr unitario, como eu faço para calcular o total automaticamente e isto ser passado para o banco?;
4) Conforme totaliza o valor do itens, como eu faço para ja ir somando e acumulando valor na Master (Valor Total da Venda)?;
Estive pensando no que vc me falou, gostaria de chamar esta procedure ou criar a mesma dentro do delphi e chama-la em algum evento, tipo no after post, pq ai eu posso perguntar ao usuário se deseja integrar o CReceber ou então, verifico se ja existe lançamentos, se deseja reintegrar, etc, Como eu faria desta forma? Visto que chamando em triggers eu não disponho deste recurso :D
Vou ficar bom neste trein ainda hehehehe (ainda mais com sua ajuda) !!!
Rogério Nascimento
Curtidas 0
Respostas
Wesley Yamazack
27/07/2009
Olá meu amigo, vamos matar este chamado ! Vamos lá.
1) Eu fiz algumas vendas, qdo eu tento exlcuir, não deixa, diz que tem detalhe na master e não pode excluir, o que pode ser?;
1º Regra de banco de dados, se você tem um filho você não pode excluir o pai. O que seria isso, se você tem uma nota fiscal, e tem itens dela, você não consegue excluir a nota fiscal. Pois tem itens que dependem dela, o que fazer ? Excluir todos os itens primeiro, e depois sim excluir a Nota Fiscal.
2) Como seria a forma correta para gerar os vencimentos, seria utilizando esta procedure e chamando ela pelo Delphi? ou Chamando ela pelo Banco como eu fiz? ou Seria fazer todos os comandos em uma unit no Delphi?
Não tem problema meu amigo, pode deixar da forma como esta, na hora de fechar a nota, você já gera os vencimentos, isso pode ser feito pelo banco mesmo, pois não precisa da intervenção do teu usuário. Ou pode fazer pelo Delphi, também. Criando uma procedure, para executar o scritp de geração dos vencimentos.
3) No itens da Venda (Grid), conforme eu digito a quantidade e o vr unitario, como eu faço para calcular o total automaticamente e isto ser passado para o banco?
Você usa ClientDataSet certo? Então trabalhe com campos agregados e calculados, eles servem para este tipo de situação.
4) Conforme totaliza o valor do itens, como eu faço para ja ir somando e acumulando valor na Master (Valor Total da Venda)?
Aqui da mesma forma, use campos agregados e calculados, irá te ajudar muito. ClientDataSet é uma maravilha meu caro amigo.
Estive pensando no que vc me falou, gostaria de chamar esta procedure ou criar a mesma dentro do delphi e chama-la em algum evento, tipo no after post, pq ai eu posso perguntar ao usuário se deseja integrar o CReceber ou então, verifico se ja existe lançamentos, se deseja reintegrar, etc, Como eu faria desta forma? Visto que chamando em triggers eu não disponho deste recurso
Aqui é so você fazer a mesma coisa que tua trigger faz. Coloque o script direto em uma query dinamica
Da uma olhada como eu faço.
Var
xQry : TSQLQuery;
begin
xQry := TSQLQuery.Create(Nil);
With xQry do
begin
SQLConnection := TConnection.GetInstance.Connection;
SQL.Clear;
SQL.Add('BEGIN' );
SQL.Add(' INSERT INTO DBA_EGK.BAIXA ');
SQL.Add(' (IDDuplicata,IDLote,Desconto,Juro,Liquido, ');
SQL.Add(' DC,PGTOMAIOR, IDBANCOCC, IDOCORRENCIABANCO, ACOMPENSAR) ');
SQL.Add(' VALUES ( :IDDuplicata, :IDLote, :Desconto,:Juros,:Liquido, ');
SQL.Add(' :DC, :PGTOMAIOR, :IDBANCOCC, :IDOCORRENCIABANCO, :ACOMPENSAR); ');
SQL.Add('COMMIT; ');
SQL.Add('END; ');
Params.ParamByName('IDDuplicata').AsInteger := IDDuplicata;
Params.ParamByName('IDLote').AsInteger := IDLote;
Params.ParamByName('Desconto').AsBCD := TotalDesconto;
Params.ParamByName('Juros').AsBCD := TotalJuros;
Params.ParamByName('Liquido').AsBCD := TotalLiquido;
Params.ParamByName('DC').AsString := 'C';
Params.ParamByName('PgtoMaior').AsBCD := PgtoMaior;
Params.ParamByName('IDBANCOCC').AsInteger := IDBancoCC;
Params.ParamByName('IDOCORRENCIABANCO').AsBCD := IDCodOcorrencia;
Params.ParamByName('ACOMPENSAR').AsInteger := NumCompensado;
ExecSQL;
UpdateSaldoDuplicata(IDDuplicata,((TotalLiquido-TotalJuros)+TotalDesconto), IDCodOcorrencia);
end;
Vou ficar bom neste trein ainda hehehehe (ainda mais com sua ajuda) !!!
Duvido que você demore a ficar bom, já ta muito bom hein cara. Continue assim hein! To aqui pra te ajudar, vamos lá.
Abraço,
Wesley Y
1) Eu fiz algumas vendas, qdo eu tento exlcuir, não deixa, diz que tem detalhe na master e não pode excluir, o que pode ser?;
1º Regra de banco de dados, se você tem um filho você não pode excluir o pai. O que seria isso, se você tem uma nota fiscal, e tem itens dela, você não consegue excluir a nota fiscal. Pois tem itens que dependem dela, o que fazer ? Excluir todos os itens primeiro, e depois sim excluir a Nota Fiscal.
2) Como seria a forma correta para gerar os vencimentos, seria utilizando esta procedure e chamando ela pelo Delphi? ou Chamando ela pelo Banco como eu fiz? ou Seria fazer todos os comandos em uma unit no Delphi?
Não tem problema meu amigo, pode deixar da forma como esta, na hora de fechar a nota, você já gera os vencimentos, isso pode ser feito pelo banco mesmo, pois não precisa da intervenção do teu usuário. Ou pode fazer pelo Delphi, também. Criando uma procedure, para executar o scritp de geração dos vencimentos.
3) No itens da Venda (Grid), conforme eu digito a quantidade e o vr unitario, como eu faço para calcular o total automaticamente e isto ser passado para o banco?
Você usa ClientDataSet certo? Então trabalhe com campos agregados e calculados, eles servem para este tipo de situação.
4) Conforme totaliza o valor do itens, como eu faço para ja ir somando e acumulando valor na Master (Valor Total da Venda)?
Aqui da mesma forma, use campos agregados e calculados, irá te ajudar muito. ClientDataSet é uma maravilha meu caro amigo.
Estive pensando no que vc me falou, gostaria de chamar esta procedure ou criar a mesma dentro do delphi e chama-la em algum evento, tipo no after post, pq ai eu posso perguntar ao usuário se deseja integrar o CReceber ou então, verifico se ja existe lançamentos, se deseja reintegrar, etc, Como eu faria desta forma? Visto que chamando em triggers eu não disponho deste recurso
Aqui é so você fazer a mesma coisa que tua trigger faz. Coloque o script direto em uma query dinamica
Da uma olhada como eu faço.
Var
xQry : TSQLQuery;
begin
xQry := TSQLQuery.Create(Nil);
With xQry do
begin
SQLConnection := TConnection.GetInstance.Connection;
SQL.Clear;
SQL.Add('BEGIN' );
SQL.Add(' INSERT INTO DBA_EGK.BAIXA ');
SQL.Add(' (IDDuplicata,IDLote,Desconto,Juro,Liquido, ');
SQL.Add(' DC,PGTOMAIOR, IDBANCOCC, IDOCORRENCIABANCO, ACOMPENSAR) ');
SQL.Add(' VALUES ( :IDDuplicata, :IDLote, :Desconto,:Juros,:Liquido, ');
SQL.Add(' :DC, :PGTOMAIOR, :IDBANCOCC, :IDOCORRENCIABANCO, :ACOMPENSAR); ');
SQL.Add('COMMIT; ');
SQL.Add('END; ');
Params.ParamByName('IDDuplicata').AsInteger := IDDuplicata;
Params.ParamByName('IDLote').AsInteger := IDLote;
Params.ParamByName('Desconto').AsBCD := TotalDesconto;
Params.ParamByName('Juros').AsBCD := TotalJuros;
Params.ParamByName('Liquido').AsBCD := TotalLiquido;
Params.ParamByName('DC').AsString := 'C';
Params.ParamByName('PgtoMaior').AsBCD := PgtoMaior;
Params.ParamByName('IDBANCOCC').AsInteger := IDBancoCC;
Params.ParamByName('IDOCORRENCIABANCO').AsBCD := IDCodOcorrencia;
Params.ParamByName('ACOMPENSAR').AsInteger := NumCompensado;
ExecSQL;
UpdateSaldoDuplicata(IDDuplicata,((TotalLiquido-TotalJuros)+TotalDesconto), IDCodOcorrencia);
end;
Vou ficar bom neste trein ainda hehehehe (ainda mais com sua ajuda) !!!
Duvido que você demore a ficar bom, já ta muito bom hein cara. Continue assim hein! To aqui pra te ajudar, vamos lá.
Abraço,
Wesley Y
GOSTEI 0
Rogério Nascimento
27/07/2009
Valeu Wesley, só tive uma duvida !!!
Em relação ao apagar a master e ele não deixar, se eu precisar apagar uma venda q contenha itens, devo primeiro apagar todos os itens para depois apagar a master? Isto seria por causa do ClientDataSet? Pois no banco de Dados eu utilizo a foreign Key entre master e detalhe, se eu apago a master ele automaticamente apaga a detalhe.
Será q eu deixei ou configurei algo errado no Delphi?
Abraços !!!
GOSTEI 0
Wesley Yamazack
27/07/2009
Bom dia meu amigo.
Bom no ClientDataSet, você não consegue fazer este recurso do banco não, você tem que apagar os filhos,e depois apagar o pai. Blz ? Podemos fechar o chamado então certo ?
Fico no aguardo do proximo.
Forte abraço.
Wesley Y
Bom no ClientDataSet, você não consegue fazer este recurso do banco não, você tem que apagar os filhos,e depois apagar o pai. Blz ? Podemos fechar o chamado então certo ?
Fico no aguardo do proximo.
Forte abraço.
Wesley Y
GOSTEI 0
Rogério Nascimento
27/07/2009
Beleza, valeu mais uma vez !!!!
GOSTEI 0