[firebase-br] duvidas sobre procedure

Sandro Souza escovadordebits em gmail.com
Qua Set 16 09:29:01 -03 2009


Bom dia/tarde Marcio.

Grande Marcio, faço aqui a minha humilde sugestão.

Muito provavelmente, você já deve ter criado uma variável local para guardar
o valor total do desconto, dentro de sua stored procedure.

Sugiro que acrescente as seguintes variáveis locais:

DECLARE VARIABLE QUANTIDADE_DE_ITENS INTEGER;
DECLARE VARIABLE DESCONTO_RESTANTE
<mesmo-tipo-que-a-variável-do-total-de-desconto>;

Logo no início, você obteria a quantidade total de itens e armazenaria esse
valor na variável "QUANTIDADE_DE_ITENS". Também copiaria para a variável
"DESCONTO_RESTANTE", o valor total do desconto.

A cada item, você poderia executar os seguintes passos:

...
-- Não é o último item?
IF (QUANTIDADE_DE_ITENS > 1) THEN
BEGIN
  ...
  -- Calcula o valor do desconto apropriadamente para o item atual.
  ...
  -- Subtrai o valor calculado do desconto do item atual, do valor restante
do desconto.
  DESCONTO_RESTANTE = DESCONTO_RESTANTE -
<variável-que-contém-o-desconto-calculado-desse-item>;
  ...
END -- IF
ELSE
BEGIN
  ...
  -- Como é o último item, utilizaremos o valor de desconto que restou.
  <variável-que-contém-o-desconto-calculado-desse-item> = DESCONTO_RESTANTE;
  ...
END -- ELSE
-- Atualiza a quantidade de itens que ainda serão processados.
QUANTIDADE_DE_ITENS = QUANTIDADE_DE_ITENS - 1;
...

É só uma mera sugestão.

Espero ter ajudado mais que atrapalhado. :D

2009/9/15 Marcio Da Silva Ereno <marcio em msereno.com.br>

> Ola pessoal,
>
> Eu estou montando uma procedure para gerar o arquivo do sintegra
> nesta procedure eu tenho que ratear o valor total do desconto entre os
> itens
> vendidos
> mais dependo do valor que da, da uma diferença de centavos e gostaria de
> jogar esta diferença
> no ultimo item.. mais não sei como fazer alguem pode me ajudar...
> grato t+
>
> --
> Marcio Ereno
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista