duplicidade
Moderador: Moderadores
-
JUDIVAN CONTABIL
- Usuário Nível 2

- Mensagens: 55
- Registrado em: 20 Mai 2011 07:42
- Localização: IMACULADA-PB
duplicidade
olá, Pessoal
Estou aqui novamente para peder ajuda. Estou desenvolvendo a rotina para o bloco 0150 do sped, só que quando mando criar o arquivo txt, esta gerando o arquivo em duplicidade, como exemplo abaixo:
|0150|77941490019506|GAZIN IND.COM.DE MOVEIS E ELET. LTDA.|1058|77941490019506||161630987|||R JOSE PEDRO FIRMINO|33|||
|0150|77941490019506|GAZIN IND.COM.DE MOVEIS E ELET. LTDA.|1058|77941490019506||161630987|||R JOSE PEDRO FIRMINO|33|||
gostaria de ajuda para quando gerar esse arquivo gerar apenas com um participante.
Agradece
Judivan
Estou aqui novamente para peder ajuda. Estou desenvolvendo a rotina para o bloco 0150 do sped, só que quando mando criar o arquivo txt, esta gerando o arquivo em duplicidade, como exemplo abaixo:
|0150|77941490019506|GAZIN IND.COM.DE MOVEIS E ELET. LTDA.|1058|77941490019506||161630987|||R JOSE PEDRO FIRMINO|33|||
|0150|77941490019506|GAZIN IND.COM.DE MOVEIS E ELET. LTDA.|1058|77941490019506||161630987|||R JOSE PEDRO FIRMINO|33|||
gostaria de ajuda para quando gerar esse arquivo gerar apenas com um participante.
Agradece
Judivan
duplicidade
Prezado Colega
Seria possível você postar a parte do programa onde gera o TXT ? Porque sem isso fica difícil ajudá-lo.
Até logo.
Marcelo
Seria possível você postar a parte do programa onde gera o TXT ? Porque sem isso fica difícil ajudá-lo.
Até logo.
Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
-
JUDIVAN CONTABIL
- Usuário Nível 2

- Mensagens: 55
- Registrado em: 20 Mai 2011 07:42
- Localização: IMACULADA-PB
duplicidade
Código: Selecionar todos
Static Function MontaBloco0_Reg150()
/* Monta os registros com Base na lLista e Retorna a quantidade de Registros*/
Local x ,nOk := 0
SELECT ENTRADA
GO TOP
SEEK M->vMes
DO WHILE (PERIODO=M->vMes)
nOk++
Reg := "0150"
Codpart := STRZERO(Val(LimpaStr(ENTRADA->CNPJ_CPF)),14)
Nome := Alltrim(Substr(ENTRADA->r_social,1,40))
Cod_pais := '1058'
CNPJ := STRZERO(Val(LimpaStr(ENTRADA->CNPJ_CPF)),14)
CPF := ''
cIE := Alltrim(MemoTran(STRTRAN(ENTRADA->insc_est,".","")))
Cod_Num := ''
Suframa := ''
*End := Alltrim(ENTRADA->endereco)
*Num := ENTRADA->numero
*Compl := ''
*cBairro := Alltrim(ENTRADA->bairro)
cTxt := Reg +cSepa+;
Codpart +cSepa+;
Nome +cSepa+;
Cod_pais +cSepa+;
CNPJ +cSepa+;
CPF +cSepa+;
cIE +cSepa+;
Cod_Num +cSepa+;
Suframa +cSepa+;
End +cSepa+;
Num +cSepa+;
Compl +cSepa+;
cBairro +cSepa
Fwrite( nTMP,cSepa+cTxt+CRLF)
*Next
Skip
ENDDO
Return nOkduplicidade
Prezado Colega
Creio que o problema esteja ocorrendo porque o FWRITE() esteja dentro do loop DO WHILE, então a cada novo registro ele está escrevendo uma linha no arquivo.
Não sei nada sobre o SPED e como deve funcionar a geração deste arquivo, mas aparentemente o problema me parece esse.
Coloque o FWRITE() após o ENDDO e faça o teste.
Até logo.
Marcelo
Creio que o problema esteja ocorrendo porque o FWRITE() esteja dentro do loop DO WHILE, então a cada novo registro ele está escrevendo uma linha no arquivo.
Não sei nada sobre o SPED e como deve funcionar a geração deste arquivo, mas aparentemente o problema me parece esse.
Coloque o FWRITE() após o ENDDO e faça o teste.
Até logo.
Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
-
Dr_Spock_Two
- Usuário Nível 1

- Mensagens: 2
- Registrado em: 18 Ago 2011 11:40
- Localização: Brasilia/DF
duplicidade
- Boa tarde Jurivan
- Esta ocorrendo porque possivelmente você possua duas notas para o mesmo agente.
- Isso ocorrerá também quando você gerar o bloco 0200 (Produtos originários dos Itens da Nota).
- Para contornar este problema você poderá jogar os dados para um vetor e a cada inclusão verificar se o cliente já se encontra neste vetor, ou mesmo verificar diretamente no arquivo que você esta gerando.
- Espero ter ajudado.
- Esta ocorrendo porque possivelmente você possua duas notas para o mesmo agente.
- Isso ocorrerá também quando você gerar o bloco 0200 (Produtos originários dos Itens da Nota).
- Para contornar este problema você poderá jogar os dados para um vetor e a cada inclusão verificar se o cliente já se encontra neste vetor, ou mesmo verificar diretamente no arquivo que você esta gerando.
- Espero ter ajudado.
-
JUDIVAN CONTABIL
- Usuário Nível 2

- Mensagens: 55
- Registrado em: 20 Mai 2011 07:42
- Localização: IMACULADA-PB
duplicidade
gostaria se posivel, você colocar um exemplo de como eu fazer. Agradeço qualquer exemplo.
duplicidade
Prezado Colega
Neste caso então basta criar um índice pelo CNPJ e utilizar a clausula UNIQUE.
Dessa forma na geração só irá aparecer 1 agente por arquivo.
Até logo.
Marcelo
Neste caso então basta criar um índice pelo CNPJ e utilizar a clausula UNIQUE.
Dessa forma na geração só irá aparecer 1 agente por arquivo.
Até logo.
Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
- JoséQuintas
- Administrador

- Mensagens: 20416
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
duplicidade
Não estou mexendo no Sped Fiscal, mas...
Estranhei o DO WHILE não conter .And. .Not. Eof()
Se entendi direito, o 0150 é de cadastros, então poderia trabalhar com o cadastro, ao invés do movimento.
E se quiser enviar somente os cadastros utilizados:
Estranhei o DO WHILE não conter .And. .Not. Eof()
Se entendi direito, o 0150 é de cadastros, então poderia trabalhar com o cadastro, ao invés do movimento.
E se quiser enviar somente os cadastros utilizados:
Código: Selecionar todos
select cadastro
do while .not. eof()
If encontra(cnpj,"movimento")
// gera sped
endif
skip
enddo
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (Linux/Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (Linux/Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
duplicidade
Prezado Colega
No caso o Do While não precisa fazer até o fim do arquivo pois pelo que percebi ele precisa de um determinado período.
Até logo.
Marcelo
No caso o Do While não precisa fazer até o fim do arquivo pois pelo que percebi ele precisa de um determinado período.
Não creio que ele precise enviar o cadastro do fornecedor em si, e sim dos fornecedores com notas de entrada em um determinado período, como pode haver mais de uma nota de entrada para um fornecedor então o problema acontece, por isso sugeri a solução de um índice com o CNPJ utilizando a cláusula UNIQUE.DO WHILE (PERIODO=M->vMes)
Até logo.
Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
-
JUDIVAN CONTABIL
- Usuário Nível 2

- Mensagens: 55
- Registrado em: 20 Mai 2011 07:42
- Localização: IMACULADA-PB
duplicidade
Prezado Colega
Marcelo
Desculpe a ignorância, mais peço um exemplo de como eu coloco a cláusula unique.
Antecipadamente agradeço,
Judivan
Marcelo
Desculpe a ignorância, mais peço um exemplo de como eu coloco a cláusula unique.
Antecipadamente agradeço,
Judivan
duplicidade
Prezado Judivan
Veja um exemplo de criação de índice com a cláusula UNIQUE :
Até logo.
Marcelo
Veja um exemplo de criação de índice com a cláusula UNIQUE :
Código: Selecionar todos
index on CNPJ to indcnpj UNIQUEMarcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
-
JUDIVAN CONTABIL
- Usuário Nível 2

- Mensagens: 55
- Registrado em: 20 Mai 2011 07:42
- Localização: IMACULADA-PB
