[firebase-br] FB tá fazendo cálculo matemático com conteúdo de varchar

Maycon Ferraça maycon em nucleosistemas.com.br
Seg Jul 16 16:55:06 -03 2007


Substitua a linha onde é atribuído o número da fatura por esta:

wnrfatura = '''' || :wnrnf || '/01''' ;

Maycon Ferraça

Andrei Luís wrote:
> 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
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> 





Mais detalhes sobre a lista de discussão lista