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: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
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, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, 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, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, 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
