/**
 * Retorna o custo de um prato existente no cardápio de trabalho
 * @param {Number} P_NRCARDAPIOTRAB Número do cardápio de trabalho de origem
 * @param {Varchar2} P_CDFILAUXPRAT Código da filial auxiliar chave do prato
 * @param {Varchar2} P_CDPRATO Código chave do prato
 * revisada
 */
CREATE OR REPLACE FUNCTION CUSTO_PRAT_CARDTRAB
(
   P_NRCARDAPIOTRAB IN NUMBER,
   P_CDFILAUXPRAT IN VARCHAR2,
   P_CDPRATO IN VARCHAR2
) RETURN FLOAT
AS
   V_VRCUSTO FLOAT := 0;
BEGIN
   SELECT SUM(NVL(QTBRUTACARDTRABUNR, 0) * CUSTO_PROD_CARDTRAB(NRCARDAPIOTRAB, CDPRODUTO))
     INTO V_VRCUSTO
     FROM
   (
    SELECT QTBRUTACARDTRABUNR, NRCARDAPIOTRAB, CDPRODUTO     
      FROM RECEPRATCARDTRAB
     WHERE NRCARDAPIOTRAB = P_NRCARDAPIOTRAB
       AND CDFILAUXPRAT = P_CDFILAUXPRAT
       AND CDPRATO = P_CDPRATO
   ) S;
   RETURN ROUND(NVL(V_VRCUSTO, 0), 5);
END;
/

-- VERSAO --
BEGIN ATUVEROBJ('CUSTO_PRAT_CARDTRAB','6.35.009'); END;
/
