IF EXISTS (SELECT * FROM SYSOBJECTS O, SYSUSERS U
           WHERE O.NAME = 'BUSCA_LOCAL' AND
                 TYPE = 'FN' 		      AND
	              U.UID = O.UID           AND
	              U.NAME = USER)
DROP FUNCTION BUSCA_LOCAL
GO

CREATE FUNCTION BUSCA_LOCAL( @P_CDFILIAL  VARCHAR(04),
                             @P_CDLOJA    VARCHAR(06),
                             @P_CDPRODUTO VARCHAR(10))RETURNS VARCHAR
AS
BEGIN
   DECLARE @V_CDLOCALESTOQ VARCHAR(6);
   DECLARE @V_CDLOCALPROD  VARCHAR(6);
   DECLARE @V_CDALMOXARIFE VARCHAR(6);
   DECLARE @V_IDUTILLCESTQ VARCHAR(1);
   DECLARE @V_IDCTRLESTQ VARCHAR(1);
   DECLARE @V_RESULT VARCHAR(6);
   SET @V_RESULT = '';

   SELECT
      @V_IDUTILLCESTQ = MAX(IDUTILLCESTQ),
      @V_IDCTRLESTQ   = MAX(IDCTRLESTQ),
      @V_CDLOCALESTOQ = MAX(CDLOCALESTOQ)
   FROM
      PARAMFILIAL
   WHERE
      (CDFILIAL = @P_CDFILIAL);

   IF(@V_IDCTRLESTQ <> 'N')AND(@V_IDUTILLCESTQ = 'S')BEGIN
      SELECT @V_CDALMOXARIFE = MAX(CDALMOXPRCLI), @V_CDLOCALPROD = MAX(CDLOCALPRCLI)
      FROM PRODFILI PF, PRODUTO P
      WHERE PF.CDFILIAL  = @P_CDFILIAL  AND
            P.CDPRODUTO  = @P_CDPRODUTO AND
            PF.CDPRODUTO = P.CDPRODESTO;

      IF(@V_CDLOCALPROD IS NOT NULL)AND(@V_CDALMOXARIFE IS NOT NULL)BEGIN
         SET @V_RESULT = @V_CDLOCALPROD;
      END
      ELSE BEGIN
         SELECT @V_CDLOCALPROD = MAX(CDLOCALESTOQ)
           FROM LOJA
          WHERE CDFILIAL = @P_CDFILIAL
            AND CDLOJA = @P_CDLOJA;

         IF (@V_CDLOCALPROD IS NOT NULL) BEGIN
            SET @V_RESULT = @V_CDLOCALPROD;
         END
         ELSE BEGIN
            IF (@V_CDLOCALESTOQ IS NOT NULL)BEGIN
               SET @V_RESULT = @V_CDLOCALESTOQ;
            END
            ELSE BEGIN
               SET @V_RESULT = ' ';
            END;
         END;
      END;
   END
   ELSE BEGIN
      SET @V_RESULT = ' ';
   END;
   RETURN(@V_RESULT);
END
GO

-- VERSAO --
EXEC ATUVEROBJ 'BUSCA_LOCAL','5.05.007';
GO

