Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SET SERVEROUTPUT ON;
- CREATE OR REPLACE PROCEDURE proc_faturas_nao_liquidadas(data_inicio IN OUT fatura.data_emissao%TYPE, data_fim IN OUT fatura.data_emissao%TYPE)
- Is
- data_inicio_valor fatura.data_emissao%TYPE;
- data_fim_valor fatura.data_emissao%TYPE;
- valor_total Integer :=0;
- valor_intermedio Integer;
- cliente_valor cliente%ROWTYPE;
- id_cliente_valor Integer;
- Cursor cliente_cursor is
- Select c.cod_cliente from Cliente c;
- Begin
- If(data_inicio Is Null) Then
- Select Min(data_emissao) into data_inicio_valor from Fatura;
- data_fim_valor:=data_fim;
- End if;
- If(data_fim Is Null) Then
- Select Max(data_emissao) into data_fim_valor from Fatura;
- data_inicio_valor:=data_inicio;
- End if;
- If(data_fim Is Null And data_inicio Is Null) Then
- Select Max(data_emissao) into data_fim_valor from Fatura;
- Select Min(data_emissao) into data_inicio_valor from Fatura;
- End if;
- End if;
- If(data_fim Is Not Null And data_inicio Is Not Null) Then
- data_inicio_valor:=data_inicio;
- data_fim_valor:=data_fim;
- End if;
- Open cliente_cursor;
- Loop
- Fetch cliente_cursor into cliente_valor;
- Select cod_cliente from Fatura f where lower(f.estado) like 'nao liquidada' and f.data_emissao between data_inicio_valor and data_fim_valor;
- valor_intermedio:=0;
- Select SUM(fa.iva*fa.valor_base-fa.desconto) into valor_intermedio from fatura_artigo fa inner Join Fatura f on fa.num_fatura=f.num_fatura WHERE
- lower(estado) LIKE ( 'nao liquidada' )
- AND f.cod_cliente = cliente_valor.cod_cliente
- AND f.data_emissao BETWEEN data_fim_valor AND data_fim_valor
- ORDER BY
- f.data_emissao;
- dbms_output.put_line('Cliente:' || cliente_valor.cod_cliente);
- dbms_output.put_line('Valor:' || valor_intermedio);
- valor_total:=valor_total + valor_intermedio;
- End Loop;
- Close cliente_cursor;
- dbms_output.put_line('Valor total por liquidar :' || valor_total);
- End;
- /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement