IF EXISTS(SELECT name FROM sysobjects
          WHERE name = 'GERA_DADOS_LALUR' AND type = 'P')
DROP PROCEDURE GERA_DADOS_LALUR
GO
                                                                                                            
CREATE PROCEDURE GERA_DADOS_LALUR (
  @P_CDEMPRESA      VARCHAR(02),
  @P_CDTIPODEMO     VARCHAR(02),
  @P_DTINILALUR     DATETIME,
  @P_DTFINLALUR     DATETIME,
  @P_NRACESSCON     VARCHAR(20))
AS
BEGIN
  DECLARE @V_NRACESSCON     VARCHAR(20);
  DECLARE @V_NRSEQCHPRIREG  VARCHAR(20);
  DECLARE @V_VALORCALC      DOUBLE PRECISION;
  DECLARE @V_VRADI          DOUBLE PRECISION;
  DECLARE @V_VREXC          DOUBLE PRECISION;
  DECLARE @V_VRCOMPCRED     DOUBLE PRECISION;
  DECLARE @V_VRCOMPDEBI     DOUBLE PRECISION;
  DECLARE @V_TESTE          VARCHAR(5);
                                                                                                            
  /* VARIAVEIS DO CURSOR C_TIPODEMO */                                                                    
  DECLARE @C_TIPODEMO_CDTIPODEMO       VARCHAR(02);
  DECLARE @C_TIPODEMO_CDITEMSTRU       VARCHAR(04);
  DECLARE @C_TIPODEMO_NMITEMSTRU       VARCHAR(50);
  DECLARE @C_TIPODEMO_IDNATUITEM       VARCHAR(01);
  DECLARE @C_TIPODEMO_IDORIGVALOR      VARCHAR(01);
  DECLARE @C_TIPODEMO_IDTIPOVALOR      VARCHAR(01);
  DECLARE @C_TIPODEMO_IDOPERACAO       VARCHAR(01);
  DECLARE @C_TIPODEMO_VRVALORCALC      DOUBLE PRECISION;
  DECLARE @C_TIPODEMO_CDITEMSTRUPERC   VARCHAR(04);
                                                                                                            
  /* VARIAVEIS DO CURSOR C_REGAJUSA */
  DECLARE @C_REGAJUSA_CDEMPRESA        VARCHAR(02);
  DECLARE @C_REGAJUSA_HISTORICO        VARCHAR(4000);
  DECLARE @C_REGAJUSA_VRADICREGAJPA    DOUBLE PRECISION;  
  DECLARE @C_REGAJUSA_VREXCLREGAJPA    DOUBLE PRECISION;  
                                                                                                            
  /* VARIAVEIS DO CURSOR C_APURACAO */                                                                             
  DECLARE @C_APURACAO_CDTIPODEMO       VARCHAR(02);
  DECLARE @C_APURACAO_CDITEMSTRU       VARCHAR(04);
  DECLARE @C_APURACAO_CDORIGDEMO       VARCHAR(23);
  DECLARE @C_APURACAO_IDTIPOORIG       VARCHAR(01);
  DECLARE @C_APURACAO_CDSEGUAPUR       VARCHAR(03);
                                                                                                            
  /* VARIAVEIS DO CURSOR C_SALDO */
  DECLARE @C_SALDO_CDEMPRESA           VARCHAR(02);
  DECLARE @C_SALDO_CDCONTCTBL          VARCHAR(20);
  DECLARE @C_SALDO_DTSALDEMPR          DATETIME;
  DECLARE @C_SALDO_VRSALDEMPR          DOUBLE PRECISION;

  /* VARIAVEIS DO CURSOR C_CTIPODEMOAPU */
  DECLARE @C_CTIPODEMOAPU_CDTIPODEMO   VARCHAR(02);
  DECLARE @C_CTIPODEMOAPU_VRVALORCALC  DOUBLE PRECISION;

  /* VARIAVEIS DO CURSOR C_REGAJUSB */ 
  DECLARE @C_REGAJUSB_CDEMPRESA        VARCHAR(02);
  DECLARE @C_REGAJUSB_DTREGAJPB        DATETIME;
  DECLARE @C_REGAJUSB_CDCONTCTBL       VARCHAR(20);
  DECLARE @C_REGAJUSB_DSHISTREGAJPB    VARCHAR(4000);
  DECLARE @C_REGAJUSB_DSTOTAREGAJPB    VARCHAR(30);
  DECLARE @C_REGAJUSB_VRCREDREGAJPB    DOUBLE PRECISION;
  DECLARE @C_REGAJUSB_VRDEBIREGAJPB    DOUBLE PRECISION;
                                                                                                            
                                                                                                            
  DECLARE C_TIPODEMO CURSOR FOR
     SELECT ITEMDEMOF.CDTIPODEMO, ITEMDEMOF.CDITEMSTRU, ITEMDEMOF.NMITEMSTRU,
            ITEMDEMOF.IDNATUITEM, ITEMDEMOF.IDORIGVALOR, ITEMDEMOF.IDTIPOVALOR,
            ITEMDEMOF.IDOPERACAO, ITEMDEMOF.VRVALORCALC, ITEMDEMOF.CDITEMSTRUPERC
       FROM ITEMDEMOF, TIPODEMO
      WHERE (@P_CDTIPODEMO = ITEMDEMOF.CDTIPODEMO)
        AND (@P_CDTIPODEMO = TIPODEMO.CDTIPODEMO)
        AND (TIPODEMO.IDTIPODEMO = 'L')
      ORDER BY ITEMDEMOF.CDITEMSTRU;
                                                                                                            
  OPEN C_TIPODEMO;
                                                                                                            
  FETCH NEXT FROM C_TIPODEMO INTO @C_TIPODEMO_CDTIPODEMO,  @C_TIPODEMO_CDITEMSTRU,  @C_TIPODEMO_NMITEMSTRU, @C_TIPODEMO_IDNATUITEM,
                                  @C_TIPODEMO_IDORIGVALOR, @C_TIPODEMO_IDTIPOVALOR, @C_TIPODEMO_IDOPERACAO, @C_TIPODEMO_VRVALORCALC,
                                  @C_TIPODEMO_CDITEMSTRUPERC;
                                                                                                            
  WHILE (@@FETCH_STATUS = 0) BEGIN
                                                                                                                                                           
      EXEC NOVO_CODIGO 'NRSEQCHPRIREG', @P_SEQUENCIAL = @V_NRSEQCHPRIREG OUTPUT, @P_QTDE = 1;
                                                                                                                     
      SET @V_NRSEQCHPRIREG = SUBSTRING(@V_NRSEQCHPRIREG, 16, 5);
                                                                                                            
      IF @C_TIPODEMO_IDORIGVALOR = 'T' BEGIN
         INSERT INTO TMPRELLALUR
           (NRSEQACECONC,  NRSEQCHPRIREG,    CDEMPRESA,    DSNATAJUSTE, VRAJUSTELALUR, VRTOTALLALUR, IDORIGVRLALUR)
         VALUES
           (@P_NRACESSCON, @V_NRSEQCHPRIREG, @P_CDEMPRESA, @C_TIPODEMO_NMITEMSTRU, 0, 0, @C_TIPODEMO_IDORIGVALOR);
      END
      ELSE IF (@C_TIPODEMO_IDORIGVALOR = 'D') BEGIN
             SET @V_VRADI = 0;
                                                                                                            
             INSERT INTO TMPRELLALUR
               (NRSEQACECONC, NRSEQCHPRIREG, CDEMPRESA, DSNATAJUSTE, VRAJUSTELALUR, VRTOTALLALUR, IDORIGVRLALUR)
             VALUES
               (@P_NRACESSCON, @V_NRSEQCHPRIREG, @P_CDEMPRESA, @C_TIPODEMO_NMITEMSTRU, 0, 0,@C_TIPODEMO_IDORIGVALOR);
                                                                                                            
             IF NOT EXISTS (SELECT SUM(VRADICREGAJPA)
                              FROM REGAJUPERBASEPA
                             WHERE CDEMPRESA = @P_CDEMPRESA
                               AND DTREGAJPA BETWEEN @P_DTINILALUR AND @P_DTFINLALUR
                               AND VRADICREGAJPA IS NOT NULL)
             BEGIN
                SET @V_VRADI = 0;
             END
             ELSE BEGIN
                SELECT @V_VRADI = SUM(VRADICREGAJPA)
                  FROM REGAJUPERBASEPA
                 WHERE CDEMPRESA = @P_CDEMPRESA
                   AND DTREGAJPA BETWEEN @P_DTINILALUR AND @P_DTFINLALUR
                   AND VRADICREGAJPA IS NOT NULL;
             END;
                                                                                                                
             UPDATE ITEMDEMOF 
                SET VRVALORCALC = @V_VRADI
              WHERE CDTIPODEMO = @C_TIPODEMO_CDTIPODEMO
                AND CDITEMSTRU = @C_TIPODEMO_CDITEMSTRU;
                                                                                                                
             DECLARE C_REGAJUSA CURSOR FOR
                 SELECT CDEMPRESA, ISNULL(DSTOTAREGAJPA, DSHISTREGAJPA) AS HISTORICO, SUM(VRADICREGAJPA) AS VRADICREGAJPA
                   FROM REGAJUPERBASEPA
                  WHERE CDEMPRESA = @P_CDEMPRESA
                        AND DTREGAJPA BETWEEN @P_DTINILALUR AND @P_DTFINLALUR
                    AND VRADICREGAJPA IS NOT NULL
                  GROUP BY CDEMPRESA, ISNULL(DSTOTAREGAJPA,DSHISTREGAJPA);
                                                                                                                
             OPEN C_REGAJUSA;
                                                                                                                
             FETCH NEXT FROM C_REGAJUSA INTO @C_REGAJUSA_CDEMPRESA, @C_REGAJUSA_HISTORICO, @C_REGAJUSA_VRADICREGAJPA;
                                                                                                                
             WHILE (@@FETCH_STATUS = 0) BEGIN
                                                                                                                
                    EXEC NOVO_CODIGO 'NRSEQCHPRIREG', @P_SEQUENCIAL = @V_NRSEQCHPRIREG OUTPUT, @P_QTDE = 1;
                    SET @V_NRSEQCHPRIREG = SUBSTRING(@V_NRSEQCHPRIREG, 16, 5);
                                                                                                                    
                    INSERT INTO TMPRELLALUR
                       (NRSEQACECONC, NRSEQCHPRIREG, CDEMPRESA, DSNATAJUSTE, VRAJUSTELALUR, VRTOTALLALUR, IDORIGVRLALUR)
                    VALUES
                       (@P_NRACESSCON, @V_NRSEQCHPRIREG, @P_CDEMPRESA, @C_REGAJUSA_HISTORICO, @C_REGAJUSA_VRADICREGAJPA, 0, @C_TIPODEMO_IDORIGVALOR);
                                                                                                                    
             FETCH NEXT FROM C_REGAJUSA INTO @C_REGAJUSA_CDEMPRESA, @C_REGAJUSA_HISTORICO, @C_REGAJUSA_VRADICREGAJPA;
             END;
             CLOSE C_REGAJUSA;
             DEALLOCATE C_REGAJUSA;
                                                                                                            
           END 
           ELSE IF @C_TIPODEMO_IDORIGVALOR = 'E' BEGIN
                                                                                                            
                   SET @V_VREXC = 0;
                                                                                                            
                   INSERT INTO TMPRELLALUR
                      (NRSEQACECONC, NRSEQCHPRIREG, CDEMPRESA, DSNATAJUSTE, VRAJUSTELALUR, VRTOTALLALUR, IDORIGVRLALUR)
                   VALUES
                      (@P_NRACESSCON, @V_NRSEQCHPRIREG, @P_CDEMPRESA, @C_TIPODEMO_NMITEMSTRU, 0, 0, @C_TIPODEMO_IDORIGVALOR);
                                                                                                            
                   IF NOT EXISTS (SELECT SUM(-VREXCLREGAJPA)
                                    FROM REGAJUPERBASEPA
                                   WHERE CDEMPRESA = @P_CDEMPRESA
                                     AND DTREGAJPA BETWEEN @P_DTINILALUR AND @P_DTFINLALUR
                                     AND VREXCLREGAJPA IS NOT NULL)
                   BEGIN
                      SET @V_VREXC = 0;
                   END
                   ELSE BEGIN
                      SELECT @V_VREXC = SUM(-VREXCLREGAJPA)
                        FROM REGAJUPERBASEPA
                       WHERE CDEMPRESA = @P_CDEMPRESA
                         AND DTREGAJPA BETWEEN @P_DTINILALUR AND @P_DTFINLALUR
                         AND VREXCLREGAJPA IS NOT NULL;
                   END;
                                                                                                            
                   UPDATE ITEMDEMOF 
                      SET VRVALORCALC = @V_VREXC
                    WHERE CDTIPODEMO = @C_TIPODEMO_CDTIPODEMO
                      AND CDITEMSTRU = @C_TIPODEMO_CDITEMSTRU;
                                                                                                            
                   DECLARE C_REGAJUSA CURSOR FOR
                       SELECT CDEMPRESA, ISNULL(DSTOTAREGAJPA,DSHISTREGAJPA) AS HISTORICO, SUM(-VREXCLREGAJPA) AS VREXCLREGAJPA
                         FROM REGAJUPERBASEPA
                        WHERE CDEMPRESA = @P_CDEMPRESA
                          AND DTREGAJPA BETWEEN @P_DTINILALUR AND @P_DTFINLALUR
                          AND VREXCLREGAJPA IS NOT NULL
                        GROUP BY CDEMPRESA, ISNULL(DSTOTAREGAJPA,DSHISTREGAJPA);
                                                                                                                
                       OPEN C_REGAJUSA;
                                                                                                                
                       FETCH NEXT FROM C_REGAJUSA INTO @C_REGAJUSA_CDEMPRESA, @C_REGAJUSA_HISTORICO, @C_REGAJUSA_VREXCLREGAJPA;
                                                                                                                
                       WHILE (@@FETCH_STATUS = 0) BEGIN                                                                                                                
                                                                                                                
                          EXEC NOVO_CODIGO 'NRSEQCHPRIREG', @P_SEQUENCIAL = @V_NRSEQCHPRIREG OUTPUT, @P_QTDE = 1;
                          SET @V_NRSEQCHPRIREG = SUBSTRING(@V_NRSEQCHPRIREG, 16, 5);
                                                                                                                
                          INSERT INTO TMPRELLALUR
                            (NRSEQACECONC, NRSEQCHPRIREG, CDEMPRESA, DSNATAJUSTE, VRAJUSTELALUR, VRTOTALLALUR, IDORIGVRLALUR)
                          VALUES
                            (@P_NRACESSCON, @V_NRSEQCHPRIREG, @P_CDEMPRESA, @C_REGAJUSA_HISTORICO, @C_REGAJUSA_VREXCLREGAJPA, 0, @C_TIPODEMO_IDORIGVALOR);
                                                                                                                
                       FETCH NEXT FROM C_REGAJUSA INTO @C_REGAJUSA_CDEMPRESA, @C_REGAJUSA_HISTORICO, @C_REGAJUSA_VREXCLREGAJPA;
                       END;
                       CLOSE C_REGAJUSA;
                       DEALLOCATE C_REGAJUSA;
                                                                                                                
           END;
           ELSE IF @C_TIPODEMO_IDORIGVALOR = 'A' BEGIN
                                                                                                                
               SET @V_VALORCALC = 0;
                                                                                                                
               EXEC NOVO_CODIGO 'NRSEQCHPRIREG', @P_SEQUENCIAL = @V_NRSEQCHPRIREG OUTPUT, @P_QTDE = 1;
               SET @V_NRSEQCHPRIREG = SUBSTRING(@V_NRSEQCHPRIREG, 16, 5);
                                                                                                                
               DECLARE C_APURACAO CURSOR FOR
                   SELECT ITEMAPUCTB.CDTIPODEMO, ITEMAPUCTB.CDITEMSTRU,
                          ITEMAPUCTB.CDORIGDEMO, ITEMAPUCTB.IDTIPOORIG,
                          ITEMAPUCTB.CDSEGUAPUR
                     FROM TIPODEMO, ITEMAPUCTB
                    WHERE (@C_TIPODEMO_CDTIPODEMO = ITEMAPUCTB.CDTIPODEMO)	
                      AND (@C_TIPODEMO_CDITEMSTRU = ITEMAPUCTB.CDITEMSTRU)
                      AND (TIPODEMO.CDTIPODEMO   = @C_TIPODEMO_CDTIPODEMO )
                      AND (TIPODEMO.IDTIPODEMO   = 'L')
                    ORDER BY ITEMAPUCTB.IDTIPOORIG;
                                                                                                                
                OPEN C_APURACAO;
                                                                                                                 
                FETCH NEXT FROM C_APURACAO INTO @C_APURACAO_CDTIPODEMO, @C_APURACAO_CDITEMSTRU, @C_APURACAO_CDORIGDEMO,
                                                @C_APURACAO_IDTIPOORIG, @C_APURACAO_CDSEGUAPUR;
                                                                                                                 
                WHILE (@@FETCH_STATUS = 0) BEGIN                                                                                                                
                                                                                                                
                    IF @C_APURACAO_IDTIPOORIG = 'S' BEGIN
                       DECLARE C_SALDO CURSOR FOR
                          SELECT SALDEMPR.CDEMPRESA,
                                 SALDEMPR.CDCONTCTBL,
                                 SALDEMPR.DTSALDEMPR,
                                 SALDEMPR.VRSALDEMPR
                            FROM SALDEMPR
                           WHERE (SALDEMPR.CDEMPRESA  = @P_CDEMPRESA)  AND
                                 (SALDEMPR.CDCONTCTBL = @C_APURACAO_CDORIGDEMO) AND
                                 (SALDEMPR.DTSALDEMPR = DATEADD(MM, 1, @P_DTINILALUR) - DAY(@P_DTINILALUR));
                                                                                                          
                       OPEN C_SALDO;
                                                                                                                 
                       FETCH NEXT FROM C_SALDO INTO @C_SALDO_CDEMPRESA, @C_SALDO_CDCONTCTBL, @C_SALDO_DTSALDEMPR, @C_SALDO_VRSALDEMPR;
                                                                                                                 
                       WHILE (@@FETCH_STATUS = 0) BEGIN                                                                                                                
                                                                                                                
                          IF @C_TIPODEMO_IDOPERACAO IS NOT NULL BEGIN
                             IF @C_TIPODEMO_IDOPERACAO = 'N' BEGIN
                                SET @V_VALORCALC = @C_SALDO_VRSALDEMPR;
                             END
                             ELSE IF @C_TIPODEMO_IDOPERACAO = 'S' BEGIN
                                SET @V_VALORCALC = (@C_SALDO_VRSALDEMPR) + @V_VALORCALC;
                             END
                             ELSE IF @C_TIPODEMO_IDOPERACAO = 'U' BEGIN
                                SET @V_VALORCALC = (@V_VALORCALC - (@C_SALDO_VRSALDEMPR));
                             END
                             ELSE IF @C_TIPODEMO_IDOPERACAO = 'M' BEGIN
                                SET @V_VALORCALC = (@C_SALDO_VRSALDEMPR) * @V_VALORCALC;
                             END
                             ELSE IF @C_TIPODEMO_IDOPERACAO = 'D' BEGIN
                                SET @V_VALORCALC = (@V_VALORCALC / (@C_SALDO_VRSALDEMPR));
                             END;
                          END 
                          ELSE BEGIN
                            SET @V_VALORCALC = @C_SALDO_VRSALDEMPR;
                          END;
                                                                                                                
                       FETCH NEXT FROM C_SALDO INTO @C_SALDO_CDEMPRESA, @C_SALDO_CDCONTCTBL, @C_SALDO_DTSALDEMPR, @C_SALDO_VRSALDEMPR;
                       END;
                       CLOSE C_SALDO;
                       DEALLOCATE C_SALDO;
                                                                                                                
                    END
                    ELSE IF @C_APURACAO_IDTIPOORIG = 'V' BEGIN
                        DECLARE C_CTIPODEMOAPU CURSOR FOR
                            SELECT ITEMDEMOF.CDTIPODEMO, ITEMDEMOF.VRVALORCALC
                              FROM ITEMDEMOF
                             WHERE ITEMDEMOF.CDTIPODEMO = @C_TIPODEMO_CDTIPODEMO
                               AND ITEMDEMOF.CDITEMSTRU = SUBSTRING(@C_APURACAO_CDORIGDEMO,3,4)
                             ORDER BY ITEMDEMOF.CDITEMSTRU;
                                                                                                               
                        OPEN C_CTIPODEMOAPU;
                                                                                                                
                        FETCH NEXT FROM C_CTIPODEMOAPU INTO @C_CTIPODEMOAPU_CDTIPODEMO, @C_CTIPODEMOAPU_VRVALORCALC;
                                                                                                                
                        WHILE (@@FETCH_STATUS = 0) BEGIN                                                                                                                
                                                                                                               
                           SET @V_VALORCALC = @V_VALORCALC + @C_CTIPODEMOAPU_VRVALORCALC;
                                                                                                                
                        FETCH NEXT FROM C_CTIPODEMOAPU INTO @C_CTIPODEMOAPU_CDTIPODEMO, @C_CTIPODEMOAPU_VRVALORCALC;
                        END;
                        CLOSE C_CTIPODEMOAPU;
                        DEALLOCATE C_CTIPODEMOAPU;
                    END;
                                                                                                                
                    UPDATE ITEMDEMOF SET VRVALORCALC = @V_VALORCALC
                     WHERE CDTIPODEMO = @C_TIPODEMO_CDTIPODEMO
                       AND CDITEMSTRU = @C_TIPODEMO_CDITEMSTRU;
                                                                                                                
                FETCH NEXT FROM C_APURACAO INTO @C_APURACAO_CDTIPODEMO, @C_APURACAO_CDITEMSTRU, @C_APURACAO_CDORIGDEMO,
                                                @C_APURACAO_IDTIPOORIG, @C_APURACAO_CDSEGUAPUR;
                END;
                CLOSE C_APURACAO;
                DEALLOCATE C_APURACAO;
                                                                                                               
                INSERT INTO TMPRELLALUR
                   (NRSEQACECONC, NRSEQCHPRIREG, CDEMPRESA, DSNATAJUSTE, VRAJUSTELALUR, VRTOTALLALUR, IDORIGVRLALUR)
                VALUES
                   (@P_NRACESSCON, @V_NRSEQCHPRIREG, @P_CDEMPRESA, @C_TIPODEMO_NMITEMSTRU, 0, @V_VALORCALC, @C_TIPODEMO_IDORIGVALOR);
           END                                                                                                  
           ELSE IF @C_TIPODEMO_IDORIGVALOR = 'C' BEGIN
                SET @V_VRCOMPCRED = 0;
                SET @V_VRCOMPDEBI = 0;
                                                                                                                
                INSERT INTO TMPRELLALUR
                  (NRSEQACECONC, NRSEQCHPRIREG, CDEMPRESA, DSNATAJUSTE, VRAJUSTELALUR, VRTOTALLALUR,IDORIGVRLALUR)
                VALUES
                  (@P_NRACESSCON, @V_NRSEQCHPRIREG, @P_CDEMPRESA, @C_TIPODEMO_NMITEMSTRU, 0, 0, @C_TIPODEMO_IDORIGVALOR);
                                                                                                                
                IF NOT EXISTS (SELECT SUM(VRCREDREGAJPB),SUM(- VRDEBIREGAJPB)
                                 FROM REGAJUPERBASEPB
                                WHERE CDEMPRESA = @P_CDEMPRESA
                                  AND DTREGAJPB BETWEEN @P_DTINILALUR AND @P_DTFINLALUR)
                BEGIN 
                   SET @V_VRCOMPCRED = 0;
                   SET @V_VRCOMPDEBI = 0;
                END
                ELSE BEGIN
                   SELECT @V_VRCOMPCRED  = SUM(VRCREDREGAJPB),
                           @V_VRCOMPDEBI = SUM(- VRDEBIREGAJPB)
                     FROM REGAJUPERBASEPB
                     WHERE CDEMPRESA = @P_CDEMPRESA
                       AND DTREGAJPB BETWEEN @P_DTINILALUR AND @P_DTFINLALUR;
                END;
                                                                                                                           
                UPDATE ITEMDEMOF 
                   SET VRVALORCALC = @V_VRCOMPCRED + @V_VRCOMPDEBI
                 WHERE CDTIPODEMO  = @C_TIPODEMO_CDTIPODEMO
                   AND CDITEMSTRU  = @C_TIPODEMO_CDITEMSTRU;
                                                                                                                
                DECLARE C_REGAJUSB CURSOR FOR
                    SELECT CDEMPRESA, DTREGAJPB, CDCONTCTBL, DSHISTREGAJPB, DSTOTAREGAJPB,
                           VRCREDREGAJPB , VRDEBIREGAJPB
                      FROM REGAJUPERBASEPB
                     WHERE CDEMPRESA = @P_CDEMPRESA
                       AND DTREGAJPB BETWEEN @P_DTINILALUR AND @P_DTFINLALUR;
                                                                                                                    
                OPEN C_REGAJUSB;
                                                                                                                   
                FETCH NEXT FROM C_REGAJUSB INTO @C_REGAJUSB_CDEMPRESA,     @C_REGAJUSB_DTREGAJPB,     @C_REGAJUSB_CDCONTCTBL, @C_REGAJUSB_DSHISTREGAJPB,
                                                @C_REGAJUSB_DSTOTAREGAJPB, @C_REGAJUSB_VRCREDREGAJPB, @C_REGAJUSB_VRDEBIREGAJPB;
                                                                                                                     
                WHILE (@@FETCH_STATUS = 0) BEGIN                                                                                                         
                                                                                                                    
                     EXEC NOVO_CODIGO 'NRSEQCHPRIREG', @P_SEQUENCIAL = @V_NRSEQCHPRIREG OUTPUT, @P_QTDE = 1;
                     SET @V_NRSEQCHPRIREG = SUBSTRING(@V_NRSEQCHPRIREG, 16, 5);
                                                                                                                     
                     INSERT INTO TMPRELLALUR
                        (NRSEQACECONC, NRSEQCHPRIREG, CDEMPRESA, DSNATAJUSTE, VRAJUSTELALUR, VRTOTALLALUR,IDORIGVRLALUR)
                     VALUES
                        (@P_NRACESSCON, @V_NRSEQCHPRIREG, @P_CDEMPRESA, @C_REGAJUSB_DSHISTREGAJPB, @C_REGAJUSB_VRCREDREGAJPB +(- @C_REGAJUSB_VRDEBIREGAJPB) , 0,@C_TIPODEMO_IDORIGVALOR);
                                                                                                                     
                FETCH NEXT FROM C_REGAJUSB INTO @C_REGAJUSB_CDEMPRESA,     @C_REGAJUSB_DTREGAJPB,     @C_REGAJUSB_CDCONTCTBL, @C_REGAJUSB_DSHISTREGAJPB,
                                                @C_REGAJUSB_DSTOTAREGAJPB, @C_REGAJUSB_VRCREDREGAJPB, @C_REGAJUSB_VRDEBIREGAJPB;
                END;
                CLOSE C_REGAJUSB;
                DEALLOCATE C_REGAJUSB;
           END;
  FETCH NEXT FROM C_TIPODEMO INTO @C_TIPODEMO_CDTIPODEMO,  @C_TIPODEMO_CDITEMSTRU,  @C_TIPODEMO_NMITEMSTRU, @C_TIPODEMO_IDNATUITEM,
                                  @C_TIPODEMO_IDORIGVALOR, @C_TIPODEMO_IDTIPOVALOR, @C_TIPODEMO_IDOPERACAO, @C_TIPODEMO_VRVALORCALC,
                                  @C_TIPODEMO_CDITEMSTRUPERC;
  END;
  CLOSE C_TIPODEMO;
  DEALLOCATE C_TIPODEMO;
                                                                                                                     
END;
GO

