mediaDecimoValorQuantidadeIntegralFixoAtual.plsql 3.44 KB
/*
    **********************************************************************************
    *                                                                                *
    * @package URBEM CNM - Soluções em Gestão Pública                                *
    * @copyright (c) 2013 Confederação Nacional de Municípos                         *
    * @author Confederação Nacional de Municípios                                    *
    *                                                                                *
    * O URBEM CNM é um software livre; você pode redistribuí-lo e/ou modificá-lo sob *
    * os  termos  da Licença Pública Geral GNU conforme  publicada  pela Fundação do *
    * Software Livre (FSF - Free Software Foundation); na versão 2 da Licença.       *
    *                                                                                *
    * Este  programa  é  distribuído  na  expectativa  de  que  seja  útil,   porém, *
    * SEM NENHUMA GARANTIA; nem mesmo a garantia implícita  de  COMERCIABILIDADE  OU *
    * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral do GNU *
    * para mais detalhes.                                                            *
    *                                                                                *
    * Você deve ter recebido uma cópia da Licença Pública Geral do GNU "LICENCA.txt" *
    * com  este  programa; se não, escreva para  a  Free  Software Foundation  Inc., *
    * no endereço 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.       *
    *                                                                                *
    **********************************************************************************
*/
--/**
--    * Função PLSQL
--    * Data de Criação: 00/00/0000
--
--
--    * @author Projetista: Vandré Miguel Ramos
--
--    * @package URBEM
--    * @subpackage
--
--    $Revision: 26851 $
--    $Author: souzadl $
--    $Date: 2007-11-20 15:48:41 -0200 (Ter, 20 Nov 2007) $
--
--    * Casos de uso: uc-04.05.24
--*/


CREATE OR REPLACE FUNCTION mediaDecimoValorQuantidadeIntegralFixoAtual() RETURNS Numeric as $$

DECLARE

inCodEvento                 INTEGER := 0;
stSql                       VARCHAR := '';
crCursor                    REFCURSOR;
nuValor                     NUMERIC := 0;
nuQuantidade                NUMERIC := 0;
stFixado                    VARCHAR := 'V';
nuRetorno                   NUMERIC := 0;
stLido_de                   VARCHAR := 'fixo_atual';
nuPercentualAdiantamento    NUMERIC := 0.00;

BEGIN

  inCodEvento := recuperarBufferInteiro( 'inCodEvento' ); 
  nuPercentualAdiantamento := recuperarBufferNumerico('nuPercentualAdiantamento'); 

  stSql := ' SELECT  valor
                    ,quantidade
                    ,fixado 
              FROM  tmp_registro_evento_13 
             WHERE  cod_evento = '||inCodEvento||'
                  AND lido_de = '''||stLido_de||'''
           ';
  OPEN crCursor FOR EXECUTE stSql;
       FETCH crCursor INTO nuValor, nuQuantidade, stFixado ;
  CLOSE crCursor;

  IF stFixado = 'V' THEN
     nuRetorno := nuValor;
  ELSE
     nuRetorno := nuQuantidade;
  END IF;

  --SE O PERCENTUAL  FOR MAIOR QUE ZERO IMPLICA EM DIZER QUE É ADIANTAMENTO E POSSUI PERCENTUAL
  IF nuPercentualAdiantamento > 0 AND pega0ProporcaoAdiantamentoDecimo() IS TRUE THEN
     nuRetorno := nuRetorno * (nuPercentualAdiantamento/100);
  END IF;


  RETURN nuRetorno; 
END;
$$LANGUAGE 'plpgsql';