CREATE OR ALTER PROCEDURE SPC_PEDIDO_ITEM (
    DATA1 DATE,
    DATA2 DATE)
RETURNS (
    PEDIDO INTEGER,
    PEDIDO_ITEM_ID INTEGER,
    PRODUTO_ID INTEGER,
    SITUACAO INTEGER,
    TAMANHO INTEGER,
    QUANTIDADE_PEDIDO NUMERIC(18,4),
    VALOR_DESCONTO_TOTAL NUMERIC(18,4),
    VALOR_PEDIDO NUMERIC(18,4),
    VALOR_ACRESCIMO_TOTAL NUMERIC(18,4),
    QUANTIDADE_SALDO_PEDIDO NUMERIC(18,4),
    VALOR_DESCONTO_SALDO NUMERIC(18,4),
    VALOR_ACRESCIMO_SALDO NUMERIC(18,4),
    VALOR_SALDO_PEDIDO NUMERIC(18,4),
    VALOR_IPI_TOTAL NUMERIC(18,4),
    VALOR_IPI_SALDO NUMERIC(18,4),
    VALOR_ST_TOTAL NUMERIC(18,4),
    VALOR_ST_SALDO NUMERIC(18,4))
AS
DECLARE VARIABLE VTAMANHO        INTEGER;
DECLARE VARIABLE VQUANTIDADE     NUMERIC(15,4);
DECLARE VARIABLE VT01            NUMERIC(15,4);
DECLARE VARIABLE VT02            NUMERIC(15,4);
DECLARE VARIABLE VT03            NUMERIC(15,4);
DECLARE VARIABLE VT04            NUMERIC(15,4);
DECLARE VARIABLE VT05            NUMERIC(15,4);
DECLARE VARIABLE VT06            NUMERIC(15,4);
DECLARE VARIABLE VT07            NUMERIC(15,4);
DECLARE VARIABLE VT08            NUMERIC(15,4);
DECLARE VARIABLE VT09            NUMERIC(15,4);
DECLARE VARIABLE VT10            NUMERIC(15,4);
DECLARE VARIABLE VT11            NUMERIC(15,4);
DECLARE VARIABLE VT12            NUMERIC(15,4);
DECLARE VARIABLE VT13            NUMERIC(15,4);
DECLARE VARIABLE VT14            NUMERIC(15,4);
DECLARE VARIABLE VT15            NUMERIC(15,4);
DECLARE VARIABLE VT16            NUMERIC(15,4);
DECLARE VARIABLE VT17            NUMERIC(15,4);
DECLARE VARIABLE VT18            NUMERIC(15,4);
DECLARE VARIABLE VT19            NUMERIC(15,4);
DECLARE VARIABLE VT20            NUMERIC(15,4);
DECLARE VARIABLE SQUANTIDADE     NUMERIC(15,4);
DECLARE VARIABLE ST01            NUMERIC(15,4);
DECLARE VARIABLE ST02            NUMERIC(15,4);
DECLARE VARIABLE ST03            NUMERIC(15,4);
DECLARE VARIABLE ST04            NUMERIC(15,4);
DECLARE VARIABLE ST05            NUMERIC(15,4);
DECLARE VARIABLE ST06            NUMERIC(15,4);
DECLARE VARIABLE ST07            NUMERIC(15,4);
DECLARE VARIABLE ST08            NUMERIC(15,4);
DECLARE VARIABLE ST09            NUMERIC(15,4);
DECLARE VARIABLE ST10            NUMERIC(15,4);
DECLARE VARIABLE ST11            NUMERIC(15,4);
DECLARE VARIABLE ST12            NUMERIC(15,4);
DECLARE VARIABLE ST13            NUMERIC(15,4);
DECLARE VARIABLE ST14            NUMERIC(15,4);
DECLARE VARIABLE ST15            NUMERIC(15,4);
DECLARE VARIABLE ST16            NUMERIC(15,4);
DECLARE VARIABLE ST17            NUMERIC(15,4);
DECLARE VARIABLE ST18            NUMERIC(15,4);
DECLARE VARIABLE ST19            NUMERIC(15,4);
DECLARE VARIABLE ST20            NUMERIC(15,4);
DECLARE VARIABLE VALOR           NUMERIC(15,4);
DECLARE VARIABLE VALOR_DESCONTO  NUMERIC(15,4);
DECLARE VARIABLE VALOR_ACRESCIMO NUMERIC(15,4);
DECLARE VARIABLE PERCENTUAL_IPI  NUMERIC(15,4);
DECLARE VARIABLE PERCENTUAL_ST   NUMERIC(15,4);
BEGIN

    FOR SELECT
     B.PEDIDO, B.CONTROLE,
     B.PRODUTO_CODIGO,
     B.TAMANHO,
     B.QUANTIDADE,
     B.T01, B.T02, B.T03, B.T04, B.T05, B.T06, B.T07, B.T08, B.T09, B.T10,
     B.T11, B.T12, B.T13, B.T14, B.T15, B.T16, B.T17, B.T18, B.T19, B.T20,
     S.QUANTIDADE,
     S.T01, S.T02, S.T03, S.T04, S.T05, S.T06, S.T07, S.T08, S.T09, S.T10,
     S.T11, S.T12, S.T13, S.T14, S.T15, S.T16, S.T17, S.T18, S.T19, S.T20,
     B.SITUACAO,
     B.VALOR,
     B.VALOR_DESCONTO,
     B.VALOR_ACRESCIMO,
     B.PERCENTUAL_IPI, 
     COALESCE(
              (SELECT FIRST 1 F.ALIQUOTA_ST
                 FROM TBFAMILIA_FICHA F
                WHERE F.FAMILIA_CODIGO = PP.FAMILIA_ALTERNATIVA
                  AND F.ESTABELECIMENTO_CODIGO = P.ESTABELECIMENTO_CODIGO)
             ,0.00) AS PERCENTUAL_ST

    FROM TBPEDIDO P, TBPEDIDO_ITEM B, TBPEDIDO_ITEM_SALDO S, TBPRODUTO PP
    WHERE P.PEDIDO = B.PEDIDO
      AND B.PEDIDO = S.PEDIDO
      AND PP.CODIGO = B.PRODUTO_CODIGO
      AND B.CONTROLE = S.PEDIDO_ITEM_CONTROLE
      AND P.DATA BETWEEN :DATA1 AND :DATA2
      INTO :PEDIDO,:PEDIDO_ITEM_ID,:PRODUTO_ID,
           :vTAMANHO,
           :vQUANTIDADE,
           :vT01,:vT02,:vT03,:vT04,:vT05,:vT06,:vT07,:vT08,:vT09,:vT10,
           :vT11,:vT12,:vT13,:vT14,:vT15,:vT16,:vT17,:vT18,:vT19,:vT20,
           :sQUANTIDADE,
           :sT01,:sT02,:sT03,:sT04,:sT05,:sT06,:sT07,:sT08,:sT09,:sT10,
           :sT11,:sT12,:sT13,:sT14,:sT15,:sT16,:sT17,:sT18,:sT19,:sT20,
           :SITUACAO, :VALOR,
           :VALOR_DESCONTO, :VALOR_ACRESCIMO, :PERCENTUAL_IPI, :PERCENTUAL_ST 
        DO BEGIN
           if (vTamanho > 0) then
               Begin
                TAMANHO = :vTamanho;
                if (SITUACAO = 3) Then --Encerrado
                    Begin
                    QUANTIDADE_PEDIDO = :vQUANTIDADE - :sQUANTIDADE;
                    VALOR_PEDIDO = (((:vQUANTIDADE - :sQUANTIDADE)*:VALOR)-((:VALOR_DESCONTO/:vQUANTIDADE)*(:vQUANTIDADE - :sQUANTIDADE)));
                    QUANTIDADE_SALDO_PEDIDO = 0;
                    VALOR_SALDO_PEDIDO = 0;
                    end else
                    Begin   -- Em aberto ou Faturado
                    QUANTIDADE_PEDIDO = :vQUANTIDADE;
                    VALOR_PEDIDO = ((:vQUANTIDADE*:VALOR)-:VALOR_DESCONTO);
                    QUANTIDADE_SALDO_PEDIDO = :sQUANTIDADE;
                    VALOR_SALDO_PEDIDO = ((:sQUANTIDADE * :VALOR) - ((:VALOR_DESCONTO/:vQUANTIDADE)*:sQUANTIDADE));
                    End

               end else
               begin
               if (vT01 > 0) then
                   Begin
                    TAMANHO = 01;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT01 - :sT01;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT01 - :sT01)*:VALOR)-((:VALOR_DESCONTO/:vT01)*(:vT01 - :sT01)));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT01;
                        QUANTIDADE_SALDO_PEDIDO = :sT01;
                        VALOR_PEDIDO = ((:vT01*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT01 * :VALOR) - ((:VALOR_DESCONTO/:vT01)*:sT01));
                        End

                   End
               if (vT02 > 0) then
                   Begin
                    TAMANHO = 02;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT02 - :sT02;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT02 - :sT02)*:VALOR)-((:VALOR_DESCONTO/:vT02)*(:vT02 - :sT02)));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT02;
                        QUANTIDADE_SALDO_PEDIDO = :sT02;
                        VALOR_PEDIDO = ((:vT02*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT02 * :VALOR) - ((:VALOR_DESCONTO/:vT02)*:sT02));
                        End

                  End
               if (vT03 > 0) then
                   Begin
                    TAMANHO = 03;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT03 - :sT03;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT03 - :sT03)*:VALOR)-((:VALOR_DESCONTO/:vT03)*(:vT03 - :sT03)));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT03;
                        QUANTIDADE_SALDO_PEDIDO = :sT03;
                        VALOR_PEDIDO = ((:vT03*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT03 * :VALOR) - ((:VALOR_DESCONTO/:vT03)*:sT03));
                        End

                   End
               if (vT04 > 0) then
                   Begin
                    TAMANHO = 04;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT04 - :sT04;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT04 - :sT04)*:VALOR)-((:VALOR_DESCONTO/:vT04)*(:vT04 - :sT04)));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT04;
                        QUANTIDADE_SALDO_PEDIDO = :sT04;
                        VALOR_PEDIDO = ((:vT04*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT04 * :VALOR) - ((:VALOR_DESCONTO/:vT04)*:sT04));
                        End

                   End
               if (vT05 > 0) then
                   Begin
                    TAMANHO = 05;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT05 - :sT05;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT05 - :sT05)*:VALOR)-((:VALOR_DESCONTO/:vT05)*(:vT05 - :sT05)));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT05;
                        QUANTIDADE_SALDO_PEDIDO = :sT05;
                        VALOR_PEDIDO = ((:vT05*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT05 * :VALOR) - ((:VALOR_DESCONTO/:vT05)*:sT05));
                        End

                   End
               if (vT06 > 0) then
                   Begin
                    TAMANHO = 06;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT06 - :sT06;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT06 - :sT06)*:VALOR)-((:VALOR_DESCONTO/:vT06)*(:vT06 - :sT06)));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT06;
                        QUANTIDADE_SALDO_PEDIDO = :sT06;
                        VALOR_PEDIDO = ((:vT06*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT06 * :VALOR) - ((:VALOR_DESCONTO/:vT06)*:sT06));
                        End

                   End
               if (vT07 > 0) then
                   Begin
                    TAMANHO = 07;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT07 - :sT07;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT07 - :sT07)*:VALOR)-((:VALOR_DESCONTO/:vT07)*(:vT07 - :sT07)));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT07;
                        QUANTIDADE_SALDO_PEDIDO = :sT07;
                        VALOR_PEDIDO = ((:vT07*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT07 * :VALOR) - ((:VALOR_DESCONTO/:vT07)*:sT07));
                        End

                   End
               if (vT08 > 0) then
                   Begin
                    TAMANHO = 08;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT08 - :sT08;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT08 - :sT08)*:VALOR)-((:VALOR_DESCONTO/:vT08)*(:vT08 - :sT08)));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT08;
                        QUANTIDADE_SALDO_PEDIDO = :sT08;
                        VALOR_PEDIDO = ((:vT08*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT08 * :VALOR) - ((:VALOR_DESCONTO/:vT08)*:sT08));
                        End

                   End
               if (vT09 > 0) then
                   Begin
                    TAMANHO = 09;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT09 - :sT09;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT09 - :sT09)*:VALOR)-((:VALOR_DESCONTO/:vT09)*(:vT09 - :sT09)));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT09;
                        QUANTIDADE_SALDO_PEDIDO = :sT09;
                        VALOR_PEDIDO = ((:vT09*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT09 * :VALOR) - ((:VALOR_DESCONTO/:vT09)*:sT09));
                        End

                   End
               if (vT10 > 0) then
                   Begin
                    TAMANHO = 10;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT10 - :sT10;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT10 - :sT10)*:VALOR)-((:VALOR_DESCONTO/:vT10)*(:vT10 - :sT10)));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT10;
                        QUANTIDADE_SALDO_PEDIDO = :sT10;
                        VALOR_PEDIDO = ((:vT10*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT10 * :VALOR) - ((:VALOR_DESCONTO/:vT10)*:sT10));
                        End

                   End
               if (vT11 > 0) then
                   Begin
                    TAMANHO = 11;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT11 - :sT11;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT11 - :sT11)*:VALOR)-((:VALOR_DESCONTO/:vT11)*(:vT11 - :sT11)));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT11;
                        QUANTIDADE_SALDO_PEDIDO = :sT11;
                        VALOR_PEDIDO = ((:vT11*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT11 * :VALOR) - ((:VALOR_DESCONTO/:vT11)*:sT11));
                        End

                   End
               if (vT12 > 0) then
                   Begin
                    TAMANHO = 12;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT12 - :sT12;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT12 - :sT12)*:VALOR)-((:VALOR_DESCONTO/:vT12)*(:vT12 - :sT12)));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT12;
                        QUANTIDADE_SALDO_PEDIDO = :sT12;
                        VALOR_PEDIDO = ((:vT12*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT12 * :VALOR) - ((:VALOR_DESCONTO/:vT12)*:sT12));
                        End

                   End
               if (vT13 > 0) then
                   Begin
                    TAMANHO = 13;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT13 - :sT13;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT13 - :sT13)*:VALOR)-((:VALOR_DESCONTO/:vT13)*(:vT13 - :sT13)));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT13;
                        QUANTIDADE_SALDO_PEDIDO = :sT13;
                        VALOR_PEDIDO = ((:vT13*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT13 * :VALOR) - ((:VALOR_DESCONTO/:vT13)*:sT13));
                        End

                   End
               if (vT14 > 0) then
                   Begin
                    TAMANHO = 14;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT14 - :sT14;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT14 - :sT14)*:VALOR)-((:VALOR_DESCONTO/:vT14)*(:vT14 - :sT14)));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT14;
                        QUANTIDADE_SALDO_PEDIDO = :sT14;
                        VALOR_PEDIDO = ((:vT14*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT14 * :VALOR) - ((:VALOR_DESCONTO/:vT14)*:sT14));
                        End

                   End
               if (vT15 > 0) then
                   Begin
                    TAMANHO = 15;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT15 - :sT15;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT15 - :sT15)*:VALOR)-((:VALOR_DESCONTO/:vT15)*(:vT15 - :sT15)));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT15;
                        QUANTIDADE_SALDO_PEDIDO = :sT15;
                        VALOR_PEDIDO = ((:vT15*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT15 * :VALOR) - ((:VALOR_DESCONTO/:vT15)*:sT15));
                        End

                   End
               if (vT16 > 0) then
                   Begin
                    TAMANHO = 16;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT16 - :sT16;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT16 - :sT16)*:VALOR)-((:VALOR_DESCONTO/:vT16)*(:vT16 - :sT16)));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT16;
                        QUANTIDADE_SALDO_PEDIDO = :sT16;
                        VALOR_PEDIDO = ((:vT16*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT16 * :VALOR) - ((:VALOR_DESCONTO/:vT16)*:sT16));
                        End

                   End
               if (vT17 > 0) then
                   Begin
                    TAMANHO = 17;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT17 - :sT17;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT17 - :sT17)*:VALOR)-((:VALOR_DESCONTO/:vT17)*(:vT17 - :sT17)));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT17;
                        QUANTIDADE_SALDO_PEDIDO = :sT17;
                        VALOR_PEDIDO = ((:vT17*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT17 * :VALOR) - ((:VALOR_DESCONTO/:vT17)*:sT17));
                        End

                   End
               if (vT18 > 0) then
                   Begin
                    TAMANHO = 18;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT18 - :sT18;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT18 - :sT18)*:VALOR)-((:VALOR_DESCONTO/:vT18)*(:vT18 - :sT18)));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT18;
                        QUANTIDADE_SALDO_PEDIDO = :sT18;
                        VALOR_PEDIDO = ((:vT18*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT18 * :VALOR) - ((:VALOR_DESCONTO/:vT18)*:sT18));
                        End

                   End
               if (vT19 > 0) then
                   Begin
                    TAMANHO = 19;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT19 - :sT19;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT19 - :sT19)*:VALOR)-((:VALOR_DESCONTO/:vT19)*(:vT19 - :sT19)));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT19;
                        QUANTIDADE_SALDO_PEDIDO = :sT19;
                        VALOR_PEDIDO = ((:vT19*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT19 * :VALOR) - ((:VALOR_DESCONTO/:vT19)*:sT19));
                        End

                   End
               if (vT20 > 0) then
                   Begin
                    TAMANHO = 20;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT20 - :sT20;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT20 - :sT20)*:VALOR)-((:VALOR_DESCONTO/:vT20)*(:vT20 - :sT20)));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT20;
                        QUANTIDADE_SALDO_PEDIDO = :sT20;
                        VALOR_PEDIDO = ((:vT20*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT20 * :VALOR) - ((:VALOR_DESCONTO/:vT20)*:sT20));
                        End

                   End

               end 

            VALOR_DESCONTO = VALOR_DESCONTO / vQUANTIDADE;
            VALOR_ACRESCIMO = VALOR_ACRESCIMO / vQUANTIDADE;

            VALOR_DESCONTO_TOTAL = QUANTIDADE_PEDIDO * :VALOR_DESCONTO;
            VALOR_ACRESCIMO_TOTAL = QUANTIDADE_PEDIDO * :VALOR_ACRESCIMO;
            VALOR_IPI_TOTAL = VALOR_PEDIDO * (PERCENTUAL_IPI / 100.00);
            VALOR_ST_TOTAL  = VALOR_PEDIDO * (PERCENTUAL_ST / 100.00);
            VALOR_ACRESCIMO_TOTAL = VALOR_ACRESCIMO_TOTAL + VALOR_IPI_TOTAL + VALOR_ST_TOTAL;

            VALOR_DESCONTO_SALDO = QUANTIDADE_SALDO_PEDIDO * :VALOR_DESCONTO;
            VALOR_ACRESCIMO_SALDO = QUANTIDADE_SALDO_PEDIDO * :VALOR_ACRESCIMO;
            VALOR_IPI_SALDO = VALOR_SALDO_PEDIDO * (PERCENTUAL_IPI / 100.00);
            VALOR_ST_SALDO  = VALOR_SALDO_PEDIDO * (PERCENTUAL_ST / 100.00);
            VALOR_ACRESCIMO_SALDO = VALOR_ACRESCIMO_SALDO + VALOR_IPI_SALDO + VALOR_ST_SALDO;
            SUSPEND;

           END

END;

CREATE OR ALTER PROCEDURE SPC_PEDIDO_ITEM_DT_CLIENTE (
    DATA1 DATE,
    DATA2 DATE)
RETURNS (
    PEDIDO INTEGER,
    PEDIDO_ITEM_ID INTEGER,
    PRODUTO_ID INTEGER,
    SITUACAO INTEGER,
    TAMANHO INTEGER,
    QUANTIDADE_PEDIDO NUMERIC(18,4),
    VALOR_DESCONTO_TOTAL NUMERIC(18,4),
    VALOR_PEDIDO NUMERIC(18,4),
    VALOR_ACRESCIMO_TOTAL NUMERIC(18,4),
    QUANTIDADE_SALDO_PEDIDO NUMERIC(18,4),
    VALOR_DESCONTO_SALDO NUMERIC(18,4),
    VALOR_ACRESCIMO_SALDO NUMERIC(18,4),
    VALOR_SALDO_PEDIDO NUMERIC(18,4),
    VALOR_IPI_TOTAL NUMERIC(18,4),
    VALOR_IPI_SALDO NUMERIC(18,4),
    VALOR_ST_TOTAL NUMERIC(18,4),
    VALOR_ST_SALDO NUMERIC(18,4))
AS
DECLARE VARIABLE VTAMANHO        INTEGER;
DECLARE VARIABLE VQUANTIDADE     NUMERIC(15,4);
DECLARE VARIABLE VT01            NUMERIC(15,4);
DECLARE VARIABLE VT02            NUMERIC(15,4);
DECLARE VARIABLE VT03            NUMERIC(15,4);
DECLARE VARIABLE VT04            NUMERIC(15,4);
DECLARE VARIABLE VT05            NUMERIC(15,4);
DECLARE VARIABLE VT06            NUMERIC(15,4);
DECLARE VARIABLE VT07            NUMERIC(15,4);
DECLARE VARIABLE VT08            NUMERIC(15,4);
DECLARE VARIABLE VT09            NUMERIC(15,4);
DECLARE VARIABLE VT10            NUMERIC(15,4);
DECLARE VARIABLE VT11            NUMERIC(15,4);
DECLARE VARIABLE VT12            NUMERIC(15,4);
DECLARE VARIABLE VT13            NUMERIC(15,4);
DECLARE VARIABLE VT14            NUMERIC(15,4);
DECLARE VARIABLE VT15            NUMERIC(15,4);
DECLARE VARIABLE VT16            NUMERIC(15,4);
DECLARE VARIABLE VT17            NUMERIC(15,4);
DECLARE VARIABLE VT18            NUMERIC(15,4);
DECLARE VARIABLE VT19            NUMERIC(15,4);
DECLARE VARIABLE VT20            NUMERIC(15,4);
DECLARE VARIABLE SQUANTIDADE     NUMERIC(15,4);
DECLARE VARIABLE ST01            NUMERIC(15,4);
DECLARE VARIABLE ST02            NUMERIC(15,4);
DECLARE VARIABLE ST03            NUMERIC(15,4);
DECLARE VARIABLE ST04            NUMERIC(15,4);
DECLARE VARIABLE ST05            NUMERIC(15,4);
DECLARE VARIABLE ST06            NUMERIC(15,4);
DECLARE VARIABLE ST07            NUMERIC(15,4);
DECLARE VARIABLE ST08            NUMERIC(15,4);
DECLARE VARIABLE ST09            NUMERIC(15,4);
DECLARE VARIABLE ST10            NUMERIC(15,4);
DECLARE VARIABLE ST11            NUMERIC(15,4);
DECLARE VARIABLE ST12            NUMERIC(15,4);
DECLARE VARIABLE ST13            NUMERIC(15,4);
DECLARE VARIABLE ST14            NUMERIC(15,4);
DECLARE VARIABLE ST15            NUMERIC(15,4);
DECLARE VARIABLE ST16            NUMERIC(15,4);
DECLARE VARIABLE ST17            NUMERIC(15,4);
DECLARE VARIABLE ST18            NUMERIC(15,4);
DECLARE VARIABLE ST19            NUMERIC(15,4);
DECLARE VARIABLE ST20            NUMERIC(15,4);
DECLARE VARIABLE VALOR           NUMERIC(15,4);
DECLARE VARIABLE VALOR_DESCONTO  NUMERIC(15,4);
DECLARE VARIABLE VALOR_ACRESCIMO NUMERIC(15,4);
DECLARE VARIABLE PERCENTUAL_IPI  NUMERIC(15,4);
DECLARE VARIABLE PERCENTUAL_ST   NUMERIC(15,4);
BEGIN

    FOR SELECT
     B.PEDIDO, B.CONTROLE,
     B.PRODUTO_CODIGO,
     B.TAMANHO,
     B.QUANTIDADE,
     B.T01, B.T02, B.T03, B.T04, B.T05, B.T06, B.T07, B.T08, B.T09, B.T10,
     B.T11, B.T12, B.T13, B.T14, B.T15, B.T16, B.T17, B.T18, B.T19, B.T20,
     S.QUANTIDADE,
     S.T01, S.T02, S.T03, S.T04, S.T05, S.T06, S.T07, S.T08, S.T09, S.T10,
     S.T11, S.T12, S.T13, S.T14, S.T15, S.T16, S.T17, S.T18, S.T19, S.T20,
     B.SITUACAO,
     B.VALOR,
     B.VALOR_DESCONTO,
     B.VALOR_ACRESCIMO,
     B.PERCENTUAL_IPI, 
     COALESCE(
              (SELECT FIRST 1 F.ALIQUOTA_ST
                 FROM TBFAMILIA_FICHA F
                WHERE F.FAMILIA_CODIGO = PP.FAMILIA_ALTERNATIVA
                  AND F.ESTABELECIMENTO_CODIGO = P.ESTABELECIMENTO_CODIGO)
             ,0.00) AS PERCENTUAL_ST

    FROM TBPEDIDO P, TBPEDIDO_ITEM B, TBPEDIDO_ITEM_SALDO S, TBPRODUTO PP
    WHERE P.PEDIDO = B.PEDIDO
      AND B.PEDIDO = S.PEDIDO
      AND PP.CODIGO = B.PRODUTO_CODIGO
      AND B.CONTROLE = S.PEDIDO_ITEM_CONTROLE
      AND P.DATA_CLIENTE BETWEEN :DATA1 AND :DATA2
      INTO :PEDIDO,:PEDIDO_ITEM_ID,:PRODUTO_ID,
           :vTAMANHO,
           :vQUANTIDADE,
           :vT01,:vT02,:vT03,:vT04,:vT05,:vT06,:vT07,:vT08,:vT09,:vT10,
           :vT11,:vT12,:vT13,:vT14,:vT15,:vT16,:vT17,:vT18,:vT19,:vT20,
           :sQUANTIDADE,
           :sT01,:sT02,:sT03,:sT04,:sT05,:sT06,:sT07,:sT08,:sT09,:sT10,
           :sT11,:sT12,:sT13,:sT14,:sT15,:sT16,:sT17,:sT18,:sT19,:sT20,
           :SITUACAO, :VALOR,
           :VALOR_DESCONTO, :VALOR_ACRESCIMO, :PERCENTUAL_IPI, :PERCENTUAL_ST 
        DO BEGIN
           if (vTamanho > 0) then
               Begin
                TAMANHO = :vTamanho;
                if (SITUACAO = 3) Then --Encerrado
                    Begin
                    QUANTIDADE_PEDIDO = :vQUANTIDADE - :sQUANTIDADE;
                    VALOR_PEDIDO = (((:vQUANTIDADE - :sQUANTIDADE)*:VALOR)-((:VALOR_DESCONTO/:vQUANTIDADE)*:QUANTIDADE_PEDIDO));
                    QUANTIDADE_SALDO_PEDIDO = 0;
                    VALOR_SALDO_PEDIDO = 0;
                    end else
                    Begin   -- Em aberto ou Faturado
                    QUANTIDADE_PEDIDO = :vQUANTIDADE;
                    VALOR_PEDIDO = ((:vQUANTIDADE*:VALOR)-:VALOR_DESCONTO);
                    QUANTIDADE_SALDO_PEDIDO = :sQUANTIDADE;
                    VALOR_SALDO_PEDIDO = ((:sQUANTIDADE * :VALOR) - ((:VALOR_DESCONTO/:vQUANTIDADE)*:sQUANTIDADE));
                    End

               end else
               begin
               if (vT01 > 0) then
                   Begin
                    TAMANHO = 01;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT01 - :sT01;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT01 - :sT01)*:VALOR)-((:VALOR_DESCONTO/:vT01)*:QUANTIDADE_PEDIDO));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT01;
                        QUANTIDADE_SALDO_PEDIDO = :sT01;
                        VALOR_PEDIDO = ((:vT01*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT01 * :VALOR) - ((:VALOR_DESCONTO/:vT01)*:sT01));
                        End

                   End
               if (vT02 > 0) then
                   Begin
                    TAMANHO = 02;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT02 - :sT02;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT02 - :sT02)*:VALOR)-((:VALOR_DESCONTO/:vT02)*:QUANTIDADE_PEDIDO));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT02;
                        QUANTIDADE_SALDO_PEDIDO = :sT02;
                        VALOR_PEDIDO = ((:vT02*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT02 * :VALOR) - ((:VALOR_DESCONTO/:vT02)*:sT02));
                        End

                   End
               if (vT03 > 0) then
                   Begin
                    TAMANHO = 03;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT03 - :sT03;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT03 - :sT03)*:VALOR)-((:VALOR_DESCONTO/:vT03)*:QUANTIDADE_PEDIDO));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT03;
                        QUANTIDADE_SALDO_PEDIDO = :sT03;
                        VALOR_PEDIDO = ((:vT03*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT03 * :VALOR) - ((:VALOR_DESCONTO/:vT03)*:sT03));
                        End

                   End
               if (vT04 > 0) then
                   Begin
                    TAMANHO = 04;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT04 - :sT04;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT04 - :sT04)*:VALOR)-((:VALOR_DESCONTO/:vT04)*:QUANTIDADE_PEDIDO));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT04;
                        QUANTIDADE_SALDO_PEDIDO = :sT04;
                        VALOR_PEDIDO = ((:vT04*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT04 * :VALOR) - ((:VALOR_DESCONTO/:vT04)*:sT04));
                        End

                   End
               if (vT05 > 0) then
                   Begin
                    TAMANHO = 05;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT05 - :sT05;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT05 - :sT05)*:VALOR)-((:VALOR_DESCONTO/:vT05)*:QUANTIDADE_PEDIDO));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT05;
                        QUANTIDADE_SALDO_PEDIDO = :sT05;
                        VALOR_PEDIDO = ((:vT05*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT05 * :VALOR) - ((:VALOR_DESCONTO/:vT05)*:sT05));
                        End

                   End
               if (vT06 > 0) then
                   Begin
                    TAMANHO = 06;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT06 - :sT06;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT06 - :sT06)*:VALOR)-((:VALOR_DESCONTO/:vT06)*:QUANTIDADE_PEDIDO));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT06;
                        QUANTIDADE_SALDO_PEDIDO = :sT06;
                        VALOR_PEDIDO = ((:vT06*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT06 * :VALOR) - ((:VALOR_DESCONTO/:vT06)*:sT06));
                        End

                   End
               if (vT07 > 0) then
                   Begin
                    TAMANHO = 07;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT07 - :sT07;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT07 - :sT07)*:VALOR)-((:VALOR_DESCONTO/:vT07)*:QUANTIDADE_PEDIDO));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT07;
                        QUANTIDADE_SALDO_PEDIDO = :sT07;
                        VALOR_PEDIDO = ((:vT07*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT07 * :VALOR) - ((:VALOR_DESCONTO/:vT07)*:sT07));
                        End

                   End
               if (vT08 > 0) then
                   Begin
                    TAMANHO = 08;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT08 - :sT08;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT08 - :sT08)*:VALOR)-((:VALOR_DESCONTO/:vT08)*:QUANTIDADE_PEDIDO));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT08;
                        QUANTIDADE_SALDO_PEDIDO = :sT08;
                        VALOR_PEDIDO = ((:vT08*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT08 * :VALOR) - ((:VALOR_DESCONTO/:vT08)*:sT08));
                        End

                   End
               if (vT09 > 0) then
                   Begin
                    TAMANHO = 09;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT09 - :sT09;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT09 - :sT09)*:VALOR)-((:VALOR_DESCONTO/:vT09)*:QUANTIDADE_PEDIDO));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT09;
                        QUANTIDADE_SALDO_PEDIDO = :sT09;
                        VALOR_PEDIDO = ((:vT09*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT09 * :VALOR) - ((:VALOR_DESCONTO/:vT09)*:sT09));
                        End

                   End
               if (vT10 > 0) then
                   Begin
                    TAMANHO = 10;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT10 - :sT10;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT10 - :sT10)*:VALOR)-((:VALOR_DESCONTO/:vT10)*:QUANTIDADE_PEDIDO));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT10;
                        QUANTIDADE_SALDO_PEDIDO = :sT10;
                        VALOR_PEDIDO = ((:vT10*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT10 * :VALOR) - ((:VALOR_DESCONTO/:vT10)*:sT10));
                        End

                   End
               if (vT11 > 0) then
                   Begin
                    TAMANHO = 11;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT11 - :sT11;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT11 - :sT11)*:VALOR)-((:VALOR_DESCONTO/:vT11)*:QUANTIDADE_PEDIDO));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT11;
                        QUANTIDADE_SALDO_PEDIDO = :sT11;
                        VALOR_PEDIDO = ((:vT11*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT11 * :VALOR) - ((:VALOR_DESCONTO/:vT11)*:sT11));
                        End

                   End
               if (vT12 > 0) then
                   Begin
                    TAMANHO = 12;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT12 - :sT12;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT12 - :sT12)*:VALOR)-((:VALOR_DESCONTO/:vT12)*:QUANTIDADE_PEDIDO));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT12;
                        QUANTIDADE_SALDO_PEDIDO = :sT12;
                        VALOR_PEDIDO = ((:vT12*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT12 * :VALOR) - ((:VALOR_DESCONTO/:vT12)*:sT12));
                        End

                   End
               if (vT13 > 0) then
                   Begin
                    TAMANHO = 13;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT13 - :sT13;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT13 - :sT13)*:VALOR)-((:VALOR_DESCONTO/:vT13)*:QUANTIDADE_PEDIDO));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT13;
                        QUANTIDADE_SALDO_PEDIDO = :sT13;
                        VALOR_PEDIDO = ((:vT13*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT13 * :VALOR) - ((:VALOR_DESCONTO/:vT13)*:sT13));
                        End

                   End
               if (vT14 > 0) then
                   Begin
                    TAMANHO = 14;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT14 - :sT14;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT14 - :sT14)*:VALOR)-((:VALOR_DESCONTO/:vT14)*:QUANTIDADE_PEDIDO));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT14;
                        QUANTIDADE_SALDO_PEDIDO = :sT14;
                        VALOR_PEDIDO = ((:vT14*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT14 * :VALOR) - ((:VALOR_DESCONTO/:vT14)*:sT14));
                        End

                   End
               if (vT15 > 0) then
                   Begin
                    TAMANHO = 15;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT15 - :sT15;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT15 - :sT15)*:VALOR)-((:VALOR_DESCONTO/:vT15)*:QUANTIDADE_PEDIDO));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT15;
                        QUANTIDADE_SALDO_PEDIDO = :sT15;
                        VALOR_PEDIDO = ((:vT15*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT15 * :VALOR) - ((:VALOR_DESCONTO/:vT15)*:sT15));
                        End

                   End
               if (vT16 > 0) then
                   Begin
                    TAMANHO = 16;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT16 - :sT16;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT16 - :sT16)*:VALOR)-((:VALOR_DESCONTO/:vT16)*:QUANTIDADE_PEDIDO));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT16;
                        QUANTIDADE_SALDO_PEDIDO = :sT16;
                        VALOR_PEDIDO = ((:vT16*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT16 * :VALOR) - ((:VALOR_DESCONTO/:vT16)*:sT16));
                        End

                   End
               if (vT17 > 0) then
                   Begin
                    TAMANHO = 17;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT17 - :sT17;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT17 - :sT17)*:VALOR)-((:VALOR_DESCONTO/:vT17)*:QUANTIDADE_PEDIDO));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT17;
                        QUANTIDADE_SALDO_PEDIDO = :sT17;
                        VALOR_PEDIDO = ((:vT17*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT17 * :VALOR) - ((:VALOR_DESCONTO/:vT17)*:sT17));
                        End

                   End
               if (vT18 > 0) then
                   Begin
                    TAMANHO = 18;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT18 - :sT18;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT18 - :sT18)*:VALOR)-((:VALOR_DESCONTO/:vT18)*:QUANTIDADE_PEDIDO));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT18;
                        QUANTIDADE_SALDO_PEDIDO = :sT18;
                        VALOR_PEDIDO = ((:vT18*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT18 * :VALOR) - ((:VALOR_DESCONTO/:vT18)*:sT18));
                        End

                   End
               if (vT19 > 0) then
                   Begin
                    TAMANHO = 19;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT19 - :sT19;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT19 - :sT19)*:VALOR)-((:VALOR_DESCONTO/:vT19)*:QUANTIDADE_PEDIDO));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT19;
                        QUANTIDADE_SALDO_PEDIDO = :sT19;
                        VALOR_PEDIDO = ((:vT19*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT19 * :VALOR) - ((:VALOR_DESCONTO/:vT19)*:sT19));
                        End

                   End
               if (vT20 > 0) then
                   Begin
                    TAMANHO = 20;
                    if (SITUACAO = 3) Then --Encerrado
                        Begin
                        QUANTIDADE_PEDIDO = :vT20 - :sT20;
                        QUANTIDADE_SALDO_PEDIDO = 0;
                        VALOR_PEDIDO = (((:vT20 - :sT20)*:VALOR)-((:VALOR_DESCONTO/:vT20)*:QUANTIDADE_PEDIDO));
                        VALOR_SALDO_PEDIDO = 0;
                        end else
                        Begin   -- Em aberto ou Faturado
                        QUANTIDADE_PEDIDO = :vT20;
                        QUANTIDADE_SALDO_PEDIDO = :sT20;
                        VALOR_PEDIDO = ((:vT20*:VALOR)-:VALOR_DESCONTO);
                        VALOR_SALDO_PEDIDO = ((:sT20 * :VALOR) - ((:VALOR_DESCONTO/:vT20)*:sT20));
                        End

                   End

               end 

            VALOR_DESCONTO = VALOR_DESCONTO / vQUANTIDADE;
            VALOR_ACRESCIMO = VALOR_ACRESCIMO / vQUANTIDADE;

            VALOR_DESCONTO_TOTAL = QUANTIDADE_PEDIDO * :VALOR_DESCONTO;
            VALOR_ACRESCIMO_TOTAL = QUANTIDADE_PEDIDO * :VALOR_ACRESCIMO;
            VALOR_IPI_TOTAL = VALOR_PEDIDO * (PERCENTUAL_IPI / 100.00);
            VALOR_ST_TOTAL  = VALOR_PEDIDO * (PERCENTUAL_ST / 100.00);
            VALOR_ACRESCIMO_TOTAL = VALOR_ACRESCIMO_TOTAL + VALOR_IPI_TOTAL + VALOR_ST_TOTAL;

            VALOR_DESCONTO_SALDO = QUANTIDADE_SALDO_PEDIDO * :VALOR_DESCONTO;
            VALOR_ACRESCIMO_SALDO = QUANTIDADE_SALDO_PEDIDO * :VALOR_ACRESCIMO;
            VALOR_IPI_SALDO = VALOR_SALDO_PEDIDO * (PERCENTUAL_IPI / 100.00);
            VALOR_ST_SALDO  = VALOR_SALDO_PEDIDO * (PERCENTUAL_ST / 100.00);
            VALOR_ACRESCIMO_SALDO = VALOR_ACRESCIMO_SALDO + VALOR_IPI_SALDO + VALOR_ST_SALDO;
            SUSPEND;

           END

END;