IF EXISTS (SELECT * FROM SYSOBJECTS O, SYSUSERS U
           WHERE O.NAME = 'CONSULTA_POSICAO' AND
                 TYPE = 'P' 		            AND
                 U.UID = O.UID               AND
                 U.NAME = USER)
DROP PROCEDURE CONSULTA_POSICAO
GO
CREATE PROCEDURE CONSULTA_POSICAO(
                            @P_FILIAL     VARCHAR(04),
                            @P_PRODUTO    VARCHAR(10),
                            @P_DTPOSICAO  DATETIME,
                            @P_ALMOXARIFE VARCHAR(06),
                            @P_LOCALESTOQ VARCHAR(06),
                            @P_LOTEESTQ   VARCHAR(20),
                            @P_SUBLOTE    VARCHAR(04),
                            @P_POSNZERO   VARCHAR(01),
                            @P_QTDEESTO   NUMERIC(15,5) OUTPUT,
                            @P_VALRESTO   NUMERIC(15,5) OUTPUT,
                            @P_VALRBRUT   NUMERIC(15,5) OUTPUT)
AS
   DECLARE @V_QTDEESTO     NUMERIC(15,5);
   DECLARE @V_VALRESTO     NUMERIC(15,5);
   DECLARE @V_VALRBRUT     NUMERIC(15,5);
   DECLARE @V_QTDEANTE     NUMERIC(15,5);
   DECLARE @V_VALRANTE     NUMERIC(15,5);
   DECLARE @V_VRBRANTE     NUMERIC(15,5);
BEGIN
   SET @V_QTDEESTO = 0;
   SET @V_VALRESTO = 0;
   SET @V_VALRBRUT = 0;
   SET @V_QTDEANTE = 0;
   SET @V_VALRANTE = 0;
   SET @V_VRBRANTE = 0;

   SELECT
      @V_QTDEESTO =  ROUND(ISNULL(MAX(QTESTOQDIA),0),5),
      @V_VALRESTO =  ROUND(ISNULL(MAX(VRESTOQDIA),0),5),
      @V_VALRBRUT =  ROUND(ISNULL(MAX(VRESTOQBRUT),0),5),
      @V_QTDEANTE =  ROUND(ISNULL(MAX(QTESTOQANT),0),5),
      @V_VALRANTE =  ROUND(ISNULL(MAX(VRESTOQANT),0),5),
      @V_VRBRANTE =  ROUND(ISNULL(MAX(VRBRUTOANT),0),5)
   FROM POSESTDIA P
   WHERE (CDFILIAL     = @P_FILIAL)     AND
         (CDALMOXARIFE = @P_ALMOXARIFE) AND
         (CDLOCALESTOQ = @P_LOCALESTOQ) AND
         (NRLOTEESTQ   = @P_LOTEESTQ)   AND
         (NRSUBLOTE    = @P_SUBLOTE)    AND
         (CDPRODUTO    = @P_PRODUTO)    AND
         (DTPOSIESTQ = (SELECT MAX(DTPOSIESTQ)
                        FROM POSESTDIA
                        WHERE (CDFILIAL     = @P_FILIAL)     AND
                              (CDALMOXARIFE = @P_ALMOXARIFE) AND
                              (CDLOCALESTOQ = @P_LOCALESTOQ) AND
                              (NRLOTEESTQ   = @P_LOTEESTQ)   AND
                              (NRSUBLOTE    = @P_SUBLOTE)    AND
                              (CDPRODUTO    = @P_PRODUTO)    AND
                              (DTPOSIESTQ  <= @P_DTPOSICAO)));
   IF (@P_POSNZERO = 'S') AND (@V_QTDEESTO = 0) BEGIN
      SET @P_QTDEESTO = @V_QTDEANTE;
      SET @P_VALRESTO = @V_VALRANTE;
      SET @P_VALRBRUT = @V_VRBRANTE;
   END
   ELSE BEGIN
      SET @P_QTDEESTO = @V_QTDEESTO;
      SET @P_VALRESTO = @V_VALRESTO;
      SET @P_VALRBRUT = @V_VALRBRUT;
   END;
END;
GO

-- VERSAO --
EXEC ATUVEROBJ 'CONSULTA_POSICAO','5.01.007';
GO

