[firebase-br] Duvidas com procedures
Denis Rocha
denisrocha em hotmail.com
Qui Maio 9 13:52:16 -03 2013
Não sei se é isso, mas tenta tirar o acento de /* INSUMOS DE PRODUÇÃO */
coloca /* INSUMOS DE PRODUCAO */
Veja se vai. É que eu já tive problemas com acentuação
"Alexandre" <camilo em apollosistemas.com.br>
escreveu na notícia da
mensagem:003101ce4cbd$756c12f0$604438d0$@apollosistemas.com.br...
> Galera tenho este comando, que executa certinho no firebird 2.1 mas quando
> tento rodar ela no firebird 2.5 ela da erro,
> Se eu tiro a parte dos /* INSUMOS DE PRODUÇÃO */ , ela roda redondinha, so
> que não conseguir enxergar algo que possa ter mudado.
>
> Será que alguém tem alguma ideia??
>
>
> create or alter procedure PROC_ESTOQUEATUAL ( DIA date = current_date)
> returns (
> PROD_CODAUT integer,
> PROD_ID char(25),
> PROD_DESCRI varchar(195),
> PROD_MEDIDA varchar(30),
> PROD_ESTATUAL double precision)
> as
> declare variable SAIDAS double precision;
> declare variable ENTRADAS double precision;
> declare variable ESTINICIAL double precision;
> declare variable SAIDASPRODUCAO double precision;
> declare variable PRODUZIDO double precision;
> declare variable DTESTINICIO date;
> declare variable QTDESTINICIO double precision;
> declare variable INIPERIODO DATE;
> BEGIN
> FOR
> SELECT PROD.PROD_CODAUT, PROD.PROD_ID, PROD_DESCRI, PROD_MEDIDA,
> EST.EST_DATA, EST.EST_QTD FROM TAB_PRODUTOS PROD
> LEFT JOIN TAB_ESTINICIAL EST ON PROD.PROD_CODAUT = EST.PROD_ID WHERE (
> (UPPER(PROD_TIPO) = 'P')) AND (PROD.PROD_STATUS = 1) INTO
> PROD_CODAUT, PROD_ID, PROD_DESCRI, PROD_MEDIDA, DTESTINICIO,
> QTDESTINICIO DO
> BEGIN
> IF (DTESTINICIO >= DIA) then
> BEGIN
> SELECT
> SUM(CASE NF.NF_TIPO WHEN 0 THEN COALESCE(NFI.ITEN_QTD,0)
> ELSE 0 END) SAIDAS,
> SUM(CASE NF.NF_TIPO WHEN 1 THEN COALESCE(NFI.ITEN_QTD,0)
> ELSE 0 END) ENTRADAS
> FROM TAB_PRODUTOS PROD LEFT JOIN
> TAB_ITENSNF NFI LEFT JOIN TAB_NF NF ON NF.NF_ID =
> NFI.ITEN_NFID
> ON NFI.ITEN_PRODID = PROD.PROD_ID
> WHERE (NF.NF_DTEMISSAO < :DTESTINICIO) AND (NF.NF_DTEMISSAO >=
> :DIA) AND (PROD.PROD_CODAUT = :PROD_CODAUT) AND (NF_CANCELADA = 'N')
> AND ((NF_PROPRIA ='N' ) or ((NF_PROPRIA <> 'N') AND
> (((NF_CSTAT IS NULL) AND (NF_TPAMBIENTE = 0)) OR ((NF_CSTAT > 0) AND
> (NF_TPAMBIENTE = 1)))))
> INTO SAIDAS, ENTRADAS;
> PROD_ESTATUAL = QTDESTINICIO - COALESCE(ENTRADAS,0) +
> COALESCE(SAIDAS,0);
>
> /* INSUMOS DE PRODUÇÃO */
> SELECT SUM(DEPOIS) DEPOIS FROM (
> SELECT (PDC.PDC_QTD * INS_QTD) + ((PDC.PDC_QTD * INS_QTD) *
> (INS_PPERDA/100)) DEPOIS
> FROM TAB_INSUMOS INS
> INNER JOIN TAB_PRODUCAO PDC ON INS.PROD_CODAUT =
> PDC.PROD_CODAUT
> INNER JOIN TAB_PRODUTOS PROD INNER JOIN TAB_ESTINICIAL EST
> ON EST.PROD_ID = PROD.PROD_CODAUT ON INS.INS_PRODCODAUT = PROD.PROD_CODAUT
> WHERE (PROD.PROD_CODAUT = :PROD_CODAUT) AND (PDC.PDC_DTOS <
> :DTESTINICIO) AND (PDC.PDC_DTOS >= :DIA) ) TEMP
> INTO SAIDASPRODUCAO;
> PROD_ESTATUAL = PROD_ESTATUAL + COALESCE(SAIDASPRODUCAO,0);
>
> /* PRODUTO PRODUZIDO*/
> SELECT SUM(PDC.PDC_QTD) DEPOIS
> FROM TAB_PRODUCAO PDC INNER JOIN TAB_ESTINICIAL EST ON
> EST.PROD_ID = PDC.PROD_CODAUT
> WHERE (PDC.PROD_CODAUT = :PROD_CODAUT) AND (PDC.PDC_DTOS <
> :DTESTINICIO) AND (PDC.PDC_DTOS >= :DIA) INTO PRODUZIDO;
> PROD_ESTATUAL = PROD_ESTATUAL + COALESCE(PRODUZIDO,0);
> END
> SUSPEND;
> END
> END
>
>
>
>
> Desde já agradeço
>
>
> Alexandre Camilo.
>
>
> ______________________________________________
> 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