[firebase-br] FB tá fazendo cálculo matemático com conteúdo de varchar
Andrei Luís
compuvale.software em gmail.com
Seg Jul 16 15:47:51 -03 2007
Seguinte, tenho uma SP que disparo quando uma nota fiscal é emitida
para fazer o lançamento no financeiro. Tá tudo perfeito, só um detalhe
tá me deixando de cabelo branco, lanço no financeiro o nr do
documento, que nesse cado é o nr da nota fiscal / nr da parcela, ex:
7800/01
7800/02
7800/03
Só que ao inves de gravar como aí acima, tá gravando o resultado do "calculo".
Não tô entendendo pois tá tudo declarado como Varchar. O campo onde
está sendo inserido, a variável na SP tá declarada como varchar, o
campo de onde busco o nr da fatura tá como varchar...
Já fiz cast (wnrFatura as varchar(10)) mas dá sempre na mesma.
Alguém tem alguma dica? Abaixo trechos da SP:
declare variable nr_fatura1 varchar(10);
declare variable nr_fatura2 varchar(10);
declare variable nr_fatura3 varchar(10);
declare variable wnrfatura char(10);
Select fatura1, fatura2, fatura3,
dataven1, dataven2, dataven3,
nr_fatura1, nr_fatura2, nr_fatura3
from notasFiscais
where registro_id = :wnotafiscal_id
into wfatura1, wfatura2, wfatura3,
wdataven1, wdataven2, wdataven3,
nr_fatura1, nr_fatura2, nr_fatura3;
x = 1;
while (x < 11) do
begin
if (x = 1) then
begin
wDataven = wDataven1;
wfatura = wfatura1;
wnrfatura = :wnrnf || '/01' ;
end
if (x = 2) then
begin
wDataven = wdataven2;
wfatura = wfatura2;
wnrfatura = Cast(:wnrnf || '/02' as varchar(10)) ;
end
if (x = 3) then
begin
wDataven = wdataven3;
wfatura = wfatura3;
wnrfatura = nr_fatura3;
end
wSQL1 ='Insert into Financeiro (Registro_id, tipo, cadastrado, cedente_id,'||
'cedente_nome, historico, documento,
dataemissao, '||
'datavencimento, valorProjetado,
datapagamento, '||
'valorRealizado, quitado, quitado_data, '||
'cancelado, cancelado_data, obs, '||
'notafiscal_id, parcela) '||
'Values(0, ' || '''RF''' || ', ' || '''T''' ||
', '|| :wcliente_id ||
',(Select nome from agenda where
agenda.registro_id = ' || :wcliente_id || ')'
|| ',' ||'''FATURA - PARCELA ' || :x || ' DE ' ||
:wparcelas || ' REF. NF NR ' || :wnrnf ||
''',' || :wnrfatura || ', '|| ' current_date '||
', ''' || Cast(:wdataven as Varchar(10))|| ''',' ||
:wfatura || ', null, 0, ' || '''F''' || ', null, ' || '''F''' ||
', null, null, '||:wnotafiscal_id ||', ' || :x || ')';
if (:wFatura > 0) then
begin
Execute Statement wSQL1;
end
x = x+1;
end
[]s
Andrei
Win XP Pro + D2006 Pro + FB 2.0.1 + IBO 4.7.16
Mais detalhes sobre a lista de discussão lista