Registro C190 do sped - como gerar ?

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

Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Registro C190 do sped - como gerar ?

Mensagem por rubens »

Gente tô desaprendendo programar !!!

Preciso gerar o registro c190 do sped e num tô conseguindo a lógica de como fazer ...
Tenho uma tabela com o seguintes campos:

numnota = c, 10
cfop = 4, c
cst = 3, c
icms = 2, c
valor = n,12,2

Preciso criar um relatório que gere os totais da combinação de cfop+cst+icms de uma mesma nota. alguem já fez? como ?

por exemplo:
na nota 100 tem os seguinte lancamentos:
cfop=5102 cst=000 icms=07 valor=120,00
cfop=5102 cst=000 icms=07 valor=70,00
cfop=5405 cst=500 icms=07 valor=50,00
cfop=5102 cst=500 icms=12 valor=12,00

daí preciso que saia assim:
|100|5102|000|07|190,00|
|100|5405|500|07|50,00|
|100|5102|500|12|12,00|

Vlw
Obg
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Registro C190 do sped - como gerar ?

Mensagem por rubens »

Resolvi...

Código: Selecionar todos

USE ICOMPRAS
// CRIA UM INDICE TEMPORARIO COM OS CAMPOS QUER QUERO FILTRAR 
// E PARA O DOCUMENTO SELECIONADO
INDEX ON CFOP+CST_ICMS+STRZERO(ALIQ_ICMS,2) TO IC190 FOR DOCUME=cDOCUME
DBGOTOP()

WHILE !EOF()

                // PEGA OS CAMPOS NO PRIMEIRO REGISTRO
		cCFOP	:= CFOP
		cCST_ICMS := CST_ICMS
		cALIQ	:= STRZERO( ALIQ_ICMS,2 )
		cLINHA	:= cCFOP + cCST_ICMS + cALIQ
		
                // ENQUANTO OS CAMPOS DO ARQUIVO FOREM IGUAIS AS VARIAVEIS
		WHILE ICOM->CFOP+CST_ICMS+STRZERO(ALIQ_ICMS,2) = (cLINHA)
             	        nVL_OPR += ( ICOM->QTDE_ * ICOM->VALOR_ )
			DBSKIP()
		ENDDO 

		@ PROW(),PCOL() SAY "|"+DOCUME+"+"|"+cCFOP+"|"+cCST+"|"+cALIQ+"|" 
               @ PROW(),PCOL() SAY STRTRAN( ALLTRIM( STR(nVL_OPR,12,2) ),".","," )+"|"

ENDDO
"Eu e minha casa servimos ao Senhor e você ???"
Responder