Página 1 de 1
duplicidade
Enviado: 18 Set 2011 19:21
por JUDIVAN CONTABIL
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
duplicidade
Enviado: 18 Set 2011 22:17
por Clipper
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
duplicidade
Enviado: 19 Set 2011 11:07
por JUDIVAN CONTABIL
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 nOk
duplicidade
Enviado: 19 Set 2011 14:22
por Clipper
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
duplicidade
Enviado: 19 Set 2011 17:16
por Dr_Spock_Two
- 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.
duplicidade
Enviado: 19 Set 2011 17:46
por JUDIVAN CONTABIL
gostaria se posivel, você colocar um exemplo de como eu fazer. Agradeço qualquer exemplo.
duplicidade
Enviado: 20 Set 2011 00:20
por Clipper
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
duplicidade
Enviado: 20 Set 2011 18:38
por JoséQuintas
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:
Código: Selecionar todos
select cadastro
do while .not. eof()
If encontra(cnpj,"movimento")
// gera sped
endif
skip
enddo
duplicidade
Enviado: 20 Set 2011 19:16
por Clipper
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.
DO WHILE (PERIODO=M->vMes)
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.
Até logo.
Marcelo
duplicidade
Enviado: 21 Set 2011 09:17
por JUDIVAN CONTABIL
Prezado Colega
Marcelo
Desculpe a ignorância, mais peço um exemplo de como eu coloco a cláusula unique.
Antecipadamente agradeço,
Judivan
duplicidade
Enviado: 21 Set 2011 17:24
por Clipper
Prezado Judivan
Veja um exemplo de criação de índice com a cláusula UNIQUE :
Até logo.
Marcelo
duplicidade
Enviado: 22 Set 2011 08:02
por JUDIVAN CONTABIL
Agradeço a colaboração dos colegas. Usei a cláusula UNIQUE e resolveu o problema.