Problema com Sintegra

Fórum sobre desenvolvimento de software para atender as exigências da legislação fiscal e tributária (NFe, NFCe, NFSe, SPEED, Projeto ACBr, TEF, ECD, EFD, etc.)

Moderador: Moderadores

raquelreis
Usuário Nível 2
Usuário Nível 2
Mensagens: 87
Registrado em: 18 Jul 2011 15:29
Localização: à procura

Problema com Sintegra

Mensagem por raquelreis »

Boa Tarde à todos,

Pessoal estou com mais uma dúvida. Desde já peço desculpas caso não seja o tópico certo para a minha dúvida.
Estou realizando alguma alterações na rotina para geração do documento de texto Sintegra.
Porém no meu arquivo dbf possuo 7 registros de notas fiscais que devem serem enviadas para o sintegra. Mas na geração do arquivo ele só chama os 4 primeiros registros. Quando mudo a ordem os registros acontece o mesmo, sempre os 4 primeiros. Detalhe isso só está acontecendo na geração do txt relativo ao mês 08 e 06. Os demais estão ok.
Segue código:

Código: Selecionar todos

&& Gera o Registro Tipo 50 &&

WHILE ! EOF()

      SELECT 2  && FABRICANTES      
      SEEK STR(5->LABOL,5)        

      SELECT 50

      IF .NOT. ADIREG(0)
         ALERT("INCLUSAO NAO FOI BEM SUCEDIDA",3)
         LOOP
      ELSE
         SELECT 50

         REPLACE TIPO           WITH 50                              && CAMPO 01 --> Registro 50                
         REPLACE DATAE         WITH CTOD(5->DATA)
         REPLACE MODELO     WITH 5->MODELO,;              && CAMPO 06 --> Registro 50
                       SERIE         WITH 5->SERIE,;                  && CAMPO 07 --> Registro 50
                       NF              WITH VAL(LEFT(5->NF,6)),;  && CAMPO 08 --> Registro 50
                       CFOP          WITH 5->CFOP,;                   && CAMPO 09 --> Registro 50
                       EMITENTE   WITH "P",;                           && CAMPO 10 --> Registro 50
                       VLRNF        WITH 5->TOTVLR,;               && CAMPO 11 --> Registro 50
                       VLRBC        WITH 0.00,;                         && CAMPO 12 --> Registro 50
                       VLRICMS     WITH 0.00,;                         &&  CAMPO 13 --> Registro 50
                       VLRISENTO  WITH 0.00,;                        && CAMPO 14 --> Registro 50
                       VLROUTROS WITH 0.00,;                       && CAMPO 15 --> Registro 50
                       ALIQ            WITH 5->ICMS,;                  && CAMPO 16 --> Registro 50
                       SIT              WITH "N"                            && CAMPO 17 --> Registro 50       
         
         IF 5->TPNOTA = "3" .AND. 5->FORCLI = "C" && tipo for devolução e do cliente
              pLABOL := 5->LABOL
              SELECT 9 &&CLIENTES
              SEEK pLABOL
              IF FOUND()
              SELECT 50  
                  REPLACE CNPJ WITH VAL(9->CPF)            && CAMPO 02 --> Registro 50
                  REPLACE IE WITH "ISENTO        "             && CAMPO 03 --> Registro 50
                  REPLACE UF  WITH 9->ESTADO                && CAMPO 05 --> Registro 50
              ENDIF  
         ELSE
            IF 2->CGC <> SPACE(14)
              REPLACE CNPJ WITH VAL(2->CGC)              && CAMPO 02 --> Registro 50
            ELSE
              REPLACE CNPJ WITH 0                     
            ENDIF
            IF 2->INSCRICAO = SPACE(14)              
                REPLACE IE WITH "ISENTO        "            && CAMPO 03 --> Registro 50
            ELSE
                REPLACE IE WITH LEFT(2->INSCRICAO,14)  
            ENDIF
            REPLACE UF  WITH 2->ESTADO                    && CAMPO 05 --> Registro 50
         ENDIF
 
         DBCOMMIT()
  END
Keel
[]'s

_____________________________________________________________________________________
PROGRAMADOR é aquele que te resolve um problema que você não sabia que tinha, de uma maneira que você não compreende.
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Problema com Sintegra

Mensagem por lugab »

7 registros só ? Pq não os ler sequencialmente, em vez de usar esse código endoidante ai de cima ?

Código: Selecionar todos

sele 2
do while .not. eof()
     sele 50
      * faz os replaces todos, via "sele 2", "sele 5"
      * grava o 50
     dbcommit()
     sele 2
     skip
enddo
lugab
raquelreis
Usuário Nível 2
Usuário Nível 2
Mensagens: 87
Registrado em: 18 Jul 2011 15:29
Localização: à procura

Problema com Sintegra

Mensagem por raquelreis »

Caro Sr. lugab, agradeço a sua ajuda. Sim, concordo que o código está "endoidante" talvez pelo excesso de comentários e estrutura de decisão (if). Porém ele FUNCIONA!
Para esclarecimento, resolvi o problema. Apenas criei index temporário.
Adicionei as seguintes linhas:

Código: Selecionar todos

SELECT 5
USE CADNF
INDEX ON NF TO CADNF3 
SET INDEX TO CADNF3


Agradeço!
Keel
[]'s

_____________________________________________________________________________________
PROGRAMADOR é aquele que te resolve um problema que você não sabia que tinha, de uma maneira que você não compreende.
raquelreis
Usuário Nível 2
Usuário Nível 2
Mensagens: 87
Registrado em: 18 Jul 2011 15:29
Localização: à procura

Problema com Sintegra

Mensagem por raquelreis »

Bom dia a todos,

Alguém tem (ou sabe onde posso encontrar) o Layout para criar o arquivo de texto do sintegra?
Preciso adicionar o NCM, mas não sei em que campo e tamnho do registro 75 devo adicionar.

Agradeço!
Keel
[]'s

_____________________________________________________________________________________
PROGRAMADOR é aquele que te resolve um problema que você não sabia que tinha, de uma maneira que você não compreende.
anacatacombs
Membro Master
Membro Master
Mensagens: 472
Registrado em: 12 Jul 2005 16:53
Localização: Cianorte-Paraná
Contato:

Problema com Sintegra

Mensagem por anacatacombs »

http://www.fazenda.pr.gov.br/arquivos/F ... s-2008.pdf

Esse é o Layout do Paraná, aqui utilizamos o ValidaPr, mas não creio que haja alguma diferença de layout para o validador nacional.
Responder