Frazato.
Código: Selecionar todos
/*
*/
Static cSepa := '|'
Static CRLF := Chr(13)+Chr(10)
//--------------------------------------------------------------------
Function Main()
REQUEST DBFCDX
RDDSETDEFAULT("dbfcdx")
DBSETDRIVER("dbfcdx")
set confirm on
set deleted on
set bell off
set scoreboard off
set date british
set epoch to 1950
Set date format to "DD/MM/YYYY"
set exclusive off
SET WRAP ON
SET DEFAULT TO g:\dba\
dDATAPROC := dDATAPROC := Date()
GeraSpedFiscal()
Return Nil
//--------------------------------------------------------
Function GeraSpedFiscal()
private dDATAINI := BOM( dDATAPROC )
private dDATAFIM := EOM( dDATAPROC )
private cEmpresa := '00422' // PDV_CODIGO_DESTINO
private nTMP := fcreate( "c:\temp\SPED_" + strzero( year( dDATAPROC ), 4, 0 ) + "_" + strzero( month( dDATAPROC ), 2, 0 ) + ".TXT" )
Close All
Cria_C100()
Cria_C170()
Cria_C190()
Cria_E110()
Cria_E210()
Close All
Sele 1
Use Forneced
Set index to Forneced
Sele 2
Use Produto Alias Prod
Set index to Produto
Sele 3
Use ArqNotas Alias Nota
Set index to Arqnotas
Sele 4
Use Agendas Alias Agenda
Set index to Agendas
Sele 5
Use Moviment Alias Mvto
Set index to Moviment
Sele 6
Use c:\temp\C100 alias c100 Exclusive
Index on CodPart+NumDoc+Ser to c:\temp\C100
Set index to c:\temp\C100
Sele 7
Use c:\temp\C170 alias c170 Exclusive
Sele 8
Use c:\temp\C190 alias c190 Exclusive
Index on CFOP+CSTICMS+Str(aliqicms,6,2)+c190->JAFFiltro tag c190_1 to c:\temp\C190
Set index to c:\temp\c190
Sele 9
use c:\temp\E110 Alias E110
Sele 10
use c:\temp\E210 Alias E210
index on JAFFiltro to c:\temp\E210
nLinha_BLOCOC_C100 := 0
nLinha_BLOCOC_C170 := 0
nLinha_BLOCOC_C190 := 0
nLinha_BLOCOH_010 := 0
nLinha_BLOCOE_E200 := 0
nLinha_BLOCOE_E210 := 0
nLinhasBloco0 := 0
wRegistros_150 := {}
wRegistros_200 := {}
wBloco_Soma_9990 := {}
GeraBlocoC() // Gera os Dados Em DBF
Func_bloco0()
Func_BlocoC() // Grava o TXT apos Gerado
Func_BlocoD() // Vazio
Func_BlocoE() // ICMS E IPI
Func_BlocoG() // Vazio
Func_BlocoH() // INVENTARIO
Func_Bloco1001()// Vazio
Aadd(wBloco_Soma_9990,{'C100',nLinha_BLOCOC_C100} )
Aadd(wBloco_Soma_9990,{'C170',nLinha_BLOCOC_C170} )
Aadd(wBloco_Soma_9990,{'C190',nLinha_BLOCOC_C190} )
Func_bloco9() // Encerramento
fclose( nTMP )
Return Nil
//--------------------------------------------------------
Function Func_bloco0()
nLinhasBloco := 0
Sele Forneced
OrdSetFocus('Forneced')
Go top
Seek cEmpresa
If !Found()
Alert('Erro no cadastro da Empresa.. impossivel Montar Arquivo!')
Return nil
Endif
Reg := '0000'
Cod_ver := '004'
Cod_fin := '0' // 0 - Remessa Original 1-Substituto
Dt_Ini := LimpaStr(DTOC(dDATAINI))
dt_fin := LimpaStr(DtoC(dDATAFIM))
Nome := Alltrim(Substr(Forneced->Razao,1,40))
CNPJ := StrZero(val(LimpaStr(Forneced->CGC)),14)
CPF := ''
cUF := Forneced->UF
cIE := Alltrim(Str(Val(LimpaStr(Forneced->IE)),14))
Cod_Mun := Forneced->IBGE_cida
Im := ''
Suframa := ''
IND_Perfil:= 'A'
Ind_ATIV := '1'
cTxt := Reg +cSepa+;
Cod_ver +cSepa+;
Cod_fin +cSepa+;
Dt_Ini +cSepa+;
dt_fin +cSepa+;
Nome +cSepa+;
CNPJ +cSepa+;
CPF +cSepa+;
cUF +cSepa+;
cIE +cSepa+;
Cod_Mun +cSepa+;
Im +cSepa+;
Suframa +cSepa+;
IND_Perfil+cSepa+;
Ind_ATIV +cSepa
Fwrite( nTMP,cSepa+cTxt+CRLF)
Aadd(wBloco_Soma_9990,{'0000',1} )
// Abertura de Bloco 0
cTxt := '0001'+cSepa+'0'+cSepa // 0-Com Movto 1-Sem Mvto
Fwrite( nTMP,cSepa+cTxt+CRLF )
Aadd(wBloco_Soma_9990,{'0001',1} )
// Bloco 0 Registro 0005 - Complemento da Entidade
Reg := '0005'
cFantasia := Alltrim(Iif(Empty(Forneced->Fantasia),Forneced->Razao,Forneced->Fantasia))
cCep := LimpaStr(forneced->Cep)
End := Alltrim(Forneced->Endereco)
num := "123"
Compl := ""
cBairro := Alltrim(Forneced->Bairro)
cFone := Substr(Alltrim(LimpaStr(Forneced->Telefone)),2,10)
cFax := Substr(Alltrim(LimpaStr(Forneced->Fax)),2,10)
ceMail := Alltrim(Forneced->Email)
cTxt := Reg +cSepa+;
cFantasia +cSepa+;
Substr(cCep,1,8)+cSepa+;
End +cSepa+;
num +cSepa+;
Compl +cSepa+;
cBairro +cSepa+;
cFone +cSepa+;
cFax +cSepa+;
ceMail +cSepa
Fwrite( nTMP,cSepa+cTxt+CRLF)
Aadd(wBloco_Soma_9990,{'0005',1} )
// Bloco 0 Registro 0100 - DADOS DO CONTABILISTA
Reg := '0100'
cNome := 'EDSON RUSSIGNOLIA'
cCpf := 'XXXXXXX'
cCRC := StrZero(123456789,11)
cCNPJ := ''
cCEP := ''
cEND := ''
cNUM := ''
cCompl := ''
cBairro := ''
cFone := ''
cFax := ''
cEmail := ''
cCod_num := '3534708'
cTxt := Reg +cSepa+;
cNome +cSepa+;
cCpf +cSepa+;
cCRC +cSepa+;
cCNPJ +cSepa+;
cCEP +cSepa+;
cEND +cSepa+;
cNUM +cSepa+;
cCompl +cSepa+;
cBairro +cSepa+;
cFone +cSepa+;
cFax +cSepa+;
cEmail +cSepa+;
cCod_num +cSepa
Fwrite( nTMP,cSepa+cTxt+CRLF)
Aadd(wBloco_Soma_9990,{'0100',1} )
//---- Bloco 0 - Registro 150 - Tabela de Cadastro do Participante
nB0Reg150 := MontaBloco0_Reg150(wRegistros_150)
//---- Bloco 0 - Registro 190 - INDENTIFICACAO DAS UNIDADES DE MEDIDAS
nB0Reg190 := MontaBloco0_Reg190(wRegistros_200)
//---- Bloco 0 - Registro 200 - Tabela de Identificao do Item(Produto e Servico)
nB0Reg200 := MontaBloco0_Reg200(wRegistros_200)
//-- Fechando bloco 0
nLinhasBloco0 := 1+1+1+1+1+nB0Reg150+nB0Reg190+nB0Reg200
Aadd(wBloco_Soma_9990,{'0150',nB0Reg150} )
Aadd(wBloco_Soma_9990,{'0190',nB0Reg190} )
Aadd(wBloco_Soma_9990,{'0200',nB0Reg200} )
Aadd(wBloco_Soma_9990,{'0990',1} )
cTxt := '0990'+cSepa+Alltrim(Str(nLinhasBloco0))+cSepa
Fwrite( nTMP,cSepa+cTxt+CRLF )
Return Nil
//------------------------------------------------
Static Function LimpaStr(Limpar)
Local x := Len(Limpar)
Local Numeros:= "0123456789"
Local nRet := ''
Local cString:= Limpar
For x:= 1 to Len(cString)
If Substr(cString,x,1)$Numeros
nRet += Substr(cString,x,1)
Endif
Next
Return (nRet)
//--------------------------------------
Static Function MontaBloco0_Reg150(lLista)
/* Monta os registros com Base na lLista
e Retorna a quantidade de Registros
*/
Local x ,nOk := 0
Sele Forneced
OrdSetFocus('Forneced')
For x:= 1 to Len(lLista)
Go top
Seek lLista[x]
If !Found()
Loop
Endif
nOk++
Reg := '0150'
Cod_part := Forneced->Codigo
Nome := Alltrim(Forneced->Razao)
Cod_pais := '1058'
CNPJ := StrZero(val(LimpaStr(Forneced->CGC)),14)
CPF := ''
cIE := Alltrim(Str(Val(LimpaStr(Forneced->IE)),14))
Cod_Num := Alltrim(Forneced->IBGE_cida)
Suframa := ''
End := Alltrim(Forneced->Endereco)
Num := ''
Compl := ''
cBairro := Alltrim(Forneced->Bairro)
cTxt := Reg +cSepa+;
Cod_part +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
Return nOk
//--------------------------------------
Static Function MontaBloco0_Reg190(lLista)
/* Monta os registros com Base na lLista
e Retorna a quantidade de Registros
*/
Local x ,nOk := 0 , wEmbala := {}, i, cPesq
Sele Prod
OrdSetFocus('Prod01')
For x:= 1 to Len(lLista)
Go top
Seek lLista[x]
If !Found()
Loop
Endif
cPesq := Alltrim(Prod->EMBALTITUL)
If Empty(cPesq)
Loop
Endif
nPos := Ascan(wEmbala, {|x|x[1]==cPesq})
If nPos==0
cTitulo := 'Unidades'
If cPesq=="KG"
cTitulo := 'Kilo'
ElseIf cPesq=="CX"
cTitulo := 'Caixa'
Endif
Aadd(wEmbala,{cPesq,cTitulo})
Endif
Next
If Len(wEmbala)==0
Aadd(wEmbala ,{'UN',"Unidades"})
Endif
For i:= 1 to Len(wEmbala)
nOk++
cTxt := '0190'+cSepa+Alltrim(Substr(wEmbala[i,1],1,6))+;
cSepa+Alltrim(Substr(wEmbala[i,2],1,6))+cSepa
Fwrite( nTMP,cSepa+cTxt+CRLF)
Next
Return nOk
//--------------------------------------
Static Function MontaBloco0_Reg200(lLista)
/* Monta os registros com Base na lLista
e Retorna a quantidade de Registros
*/
Local x ,nOk := 0
Sele Prod
OrdSetFocus('Prod01')
For x:= 1 to Len(lLista)
Go top
Seek lLista[x]
If !Found()
Loop
Endif
nOk++
Reg := '0200'
Cod_item := Alltrim(Prod->Codigo)
Descr_item := Alltrim(Prod->Descricao)
Cod_Barra := Alltrim(Prod->Ean)
Cod_ant_item:= ''
Univ_Inv := Iif(Empty(Prod->EMBALTITUL),"UN",Alltrim(Prod->EMBALTITUL))
Tipo_item := '00' // Ver Melhor
Cod_NCM := Alltrim(Prod->MCN)
Ex_IPi := ''
Cod_gen := '10' // Fazer Cadastro
Cod_lst := ''
Aliq_icms := Alltrim(Transf(Prod->icmsv,'@EZ 999.99'))
cTxt := Reg +cSepa+;
Cod_item +cSepa+;
Descr_item +cSepa+;
Cod_Barra +cSepa+;
Cod_ant_item+cSepa+;
Univ_Inv +cSepa+;
Tipo_item +cSepa+;
Cod_NCM +cSepa+;
Ex_IPi +cSepa+;
Cod_gen +cSepa+;
Cod_lst +cSepa+;
Aliq_icms +cSepa
Fwrite( nTMP,cSepa+cTxt+CRLF)
Next
Return nOk
//------------------------------------------------
Function Cria_C100()
Local Estru := {}
estru := { {'Reg' , 'C' , 04,0 },;
{'IndOper' , 'C' , 01,0 },;
{'IndEmit' , 'C' , 01,0 },;
{'CodPart' , 'C' , 05,0 },; // Codigo JAF
{'CodMod' , 'C' , 02,0 },;
{'CodSit' , 'C' , 02,0 },;
{'Ser' , 'C' , 03,0 },;
{'NumDoc' , 'C' , 09,0 },; // Converte o Atual e 10
{'chvnfe' , 'C' , 44,0 },;
{'dtdoc' , 'D' , 01,0 },;
{'Dtes' , 'D' , 01,0 },;
{'vldoc' , 'N' , 13,2 },;
{'indpagto' , 'C' , 01,0 },; // Padrao Avista
{'vldesc' , 'N' , 13,2 },;
{'vlabatnt' , 'N' , 13,2 },;
{'vlmerc' , 'N' , 13,2 },;
{'indfrt' , 'C' , 01,0 },;
{'vlfrt' , 'N' , 13,2 },;
{'vlSeg' , 'N' , 13,2 },;
{'vloutda' , 'N' , 13,2 },;
{'vlbcicms' , 'N' , 13,2 },;
{'vlicms' , 'N' , 13,2 },;
{'vlbcicmsst','N' , 13,2 },;
{'vlicmsst' , 'N' , 13,2 },;
{'vlipi' , 'N' , 13,2 },;
{'vlpis' , 'N' , 13,2 },;
{'vlcofins' , 'N' , 13,2 },;
{'vlpisst' , 'N' , 13,2 },;
{'vlconfisst','N' , 13,2 } }
dbcreate('c:\temp\C100.dbf',Estru)
Return Nil
//------------------------------------------------
Function Cria_C170()
Local Estru := {}
estru := { {'Reg' , 'C' , 04,0 },;
{'numitem' , 'C' , 03,0 },;
{'Coditem' , 'C' , 05,0 },;
{'descricao', 'C' , 60,0 },;
{'qtd' , 'N' , 14,5 },;
{'unid' , 'C' , 06,0 },;
{'vlitem' , 'N' , 13,2 },;
{'vldesc' , 'N' , 13,2 },;
{'indmov' , 'c' , 01,0 },;
{'csticms' , 'c' , 03,0 },;
{'cfop' , 'c' , 04,0 },;
{'codnat' , 'c' , 10,0 },;
{'vlbcicms' , 'N' , 13,2 },;
{'Aliqicms' , 'N' , 06,2 },;
{'vlicms' , 'N' , 13,2 },;
{'vlbcicmsst','N' , 13,2 },;
{'aliqst' , 'N' , 13,2 },;
{'vlicmsst' , 'N' , 13,2 },;
{'indapur' , 'c' , 01,0 },;
{'cstipi' , 'c' , 02,0 },;
{'codenq' , 'c' , 03,0 },;
{'vlbcipi' , 'N' , 13,2 },;
{'aliqipi' , 'N' , 06,2 },;
{'vlipi' , 'N' , 13,2 },;
{'cstpis' , 'N' , 13,2 },;
{'vlbcpis' , 'N' , 13,2 },;
{'aliqpis' , 'N' , 13,2 },;
{'quantbcpis','N' , 13,2 },;
{'aliqpis' , 'N' , 13,4 },;
{'vlpis' , 'N' , 13,2 },;
{'cstcofins', 'C' , 02,0 },;
{'vlbcconfis','N' , 13,2 },;
{'aliqconfis','N' , 06,2 },;
{'qtdbcconfi','N' , 13,3 },;
{'aliqconfis','N' , 13,4 },;
{'vlcofins' ,'N' , 13,2 },;
{'codcta' ,'C' , 50,0 },;
{'JAFFiltro' ,'C' , 16,0 } }
dbcreate('c:\temp\C170.dbf',Estru)
Return Nil
//------------------------------------------------
Function Cria_C190()
Local Estru := {}
estru := { {'Reg' , 'C' , 04,0 },;
{'CSTICMS' , 'C' , 03,0 },;
{'CFOP' , 'C' , 04,0 },;
{'aliqicms' , 'N' , 06,2 },;
{'vlopr' , 'N' , 13,2 },;
{'vlbcicms' , 'N' , 13,2 },;
{'vlicms' ,'N' , 13,2 },;
{'vlbcicmsst','N' , 13,2 },;
{'vlicmsst' , 'N' , 13,2 },;
{'vlredbc' ,'N' , 13,2 },;
{'vlipi' ,'N' , 13,2 },;
{'codobs' ,'C' , 06,0 },;
{"JAFFiltro" ,"C" , 16,0 },;
{"JAFFiltro1","C" , 03,0 } } // UF + Saida/Entrada
dbcreate('c:\temp\C190.dbf',Estru)
Return Nil
//------------------------------------------
Static Function Cria_E110()
Local Estru := {}
Estru := { {"Reg" , 'C',04,0 },;
{"VlTotDeb" , "N",13,2 },;
{"VlAjuDeb" , "N",13,2 },;
{"VlTotAJDb" , "N",13,2 },;
{"VlEstCred" , "N",13,2 },;
{"VlTotCred" , "N",13,2 },;
{"VlAjCred" , "N",13,2 },;
{"VlTotAjcd" , "N",13,2 },;
{"VlEstdedb" , "N",13,2 },;
{"Vlsldcrea" , "N",13,2 },;
{"Vlsldapur" , "N",13,2 },;
{"VlTotredu" , "N",13,2 },;
{"Vlicmsrec" , "N",13,2 },;
{"Vlsdcdtrs" , "N",13,2 },;
{"debesp" , "N",13,2 } }
Dbcreate('c:\temp\E110.dbf',Estru)
Return nil
//------------------------------------------
Static Function Cria_E210()
Local Estru := {}
Estru := { {"Reg" , 'C',04,0 },;
{"Indmovst" , "c",01,0 },;
{"VLSDCRDAST", "N",13,2 },;
{"VLDEVOLST" , "N",13,2 },;
{"VLRESS_ST" , "N",13,2 },;
{"VLOUTCRDST", "N",13,2 },;
{"VLAJCRDST" , "N",13,2 },;
{"VLRETE_ST" , "N",13,2 },;
{"VLOUTDBST" , "N",13,2 },;
{"VLAJTDBST" , "N",13,2 },;
{"VLSLDDAST" , "N",13,2 },;
{"VLDEDUCST" , "N",13,2 },;
{"VLICMRCST" , "N",13,2 },;
{"VSLDCRSTTR", "N",13,2 },;
{"DRBESPST" , "N",13,2 },;
{'JAFFiltro' , 'C',02,0 } } // UF
Dbcreate('c:\temp\E210.dbf',Estru)
Return nil
//------------------------------------------
Function GeraBlocoC()
Local cPesq, _cPesq
Centra('Selecionando Notas......')
Sele Nota
Index on Nota->Numero_Nf + Nota->Serie_Nf + Nota->Cli_Codi to C:\temp\Nota ;
For ( Nota->Lanc_Livro >=dDATAINI ;
.And. ;
Nota->Lanc_Livro <=dDataFim ;
.And. ;
Nota->Status == "A" ;
.and. ;
Nota->movto=="C" ;
.and. ;
Nota->cli_codi=='19573' ; // 18891 00455
.and. ;
Nota->numero_nf=='222679' )
*;
* .and. ;
*Nota->data_nf>= Date()-4 ;
* .and. ;
*Nota->numero_nf=='251715' )
//dbedit(00,00,24,79)
Go top
Do while ! Eof()
// Testar Agendas
Sele C100
Append Blank
Repla C100->Reg With 'C100'
Repla C100->IndOper With '0'
Repla C100->IndEmit With '1' // Ver
Repla C100->CodPart With Nota->cli_codi
Repla C100->CodSit With '00'
Repla C100->CodMod With Nota->Especie_Nf
Repla C100->Ser With Nota->serie_nf
Repla C100->NumDoc With StrZero(val(Nota->numero_nf),9)
Repla C100->chvnfe With Nota->Chave_Nfe
Repla C100->dtdoc With Nota->data_nf
Repla C100->Dtes With Nota->data_nf
Repla C100->vldoc With Nota->valor_nf
Repla C100->indpagto With '0'
Repla C100->vldesc With Nota->vlr_Desco
//Repla C100->vlabatnt With Nota->
Repla C100->vlmerc With Nota->ValorProd
Repla C100->indfrt With '1'
//Repla C100->vlfrt With Nota->
//Repla C100->vlSeg With Nota->
Repla C100->vloutda With Nota->ValorOutro
Repla C100->vlbcicms With Nota->BaseIcms
Repla C100->vlicms With Nota->ValorIcms
Repla C100->vlbcicmsst With Nota->BaseSubstr
Repla C100->vlicmsst With Nota->ValorSubst
Repla C100->vlipi With Nota->ValorIpi
*Repla C100->vlpis With Nota->
*Repla C100->vlcofins With Nota->
*Repla C100->vlpisst With Nota->
*Repla C100->vlconfisst With Nota->
nPos := Ascan(wRegistros_150,Nota->cli_codi)
if nPos==0
Aadd(wRegistros_150,Nota->cli_codi)
Endif
cNota := Nota->numero_nf+Space(4)
cSerie:= Nota->serie_nf
cForne:= Nota->cli_codi
cTpoRegUF := Nota->UF_NOTA+Iif(C100->IndEmit=='0','E',"S")
//--- JAFFILTRO
_cPesq := C100->CodPart+C100->NumDoc+C100->Ser
Sele Mvto
OrdSetFocus("movimen1")
Go Top
Seek (cNota+Substr(cSerie,1,3)+cForne)
If !Found()
//--Nota sem item Nao pode Enviar
Sele C100
Repla C100->reg With 'X100'
Sele Nota
Skip+1
Loop
Endif
Centra('Selecionando Nota......'+cNota+'/'+cForne)
nSeq := 1
Do While( Mvto->nf_num == cNota .And. ;
Mvto->nf_serie == Substr(cSerie,1,3) .And. ;
Mvto->nf_dest == cForne .and. ! Eof() )
nQuant := iif(Empty(Mvto->Qsaida),Mvto->Qentrada,Mvto->Qsaida)
nValor := iif(Empty(Mvto->Qsaida),Mvto->Custo_nf,Mvto->Venda)
cEmbal := "UN"
Sele Prod
OrdSetFocus('Prod01')
Go top
Seek Mvto->Codigo
If Found()
cEmbal := Iif(Empty(Prod->EMBALTITUL),"UN",Alltrim(Prod->EMBALTITUL))
Endif
Sele C170
Append Blank
Repla C170->Reg With 'C170'
Repla C170->numitem With StrZero(nSeq++,3)
Repla C170->Coditem With Mvto->Codigo
Repla C170->descricao With Mvto->Descricao
Repla C170->qtd With nQuant
Repla C170->unid With cEmbal
Repla C170->vlitem With nValor*nQuant
//Repla C170->vldesc With Mvto->
Repla C170->indmov With '0'
Repla C170->csticms With Mvto->cst_nf
Repla C170->cfop With Mvto->nf_cfo
//Repla C170->codnat With Mvto->
Repla C170->vlbcicms With Mvto->BASEICMS
Repla C170->Aliqicms With Mvto->icmsc
Repla C170->vlicms With Mvto->VLRICMS
Repla C170->vlbcicmsst With Mvto->BASEST
//Repla C170->aliqst With Mvto->
Repla C170->vlicmsst With Mvto->VLRST
Repla C170->indapur With '0'
//Repla C170->cstipi With
//Repla C170->codenq With Mvto->
//Repla C170->vlbcipi With Mvto->
//Repla C170->aliqipi With Mvto->
Repla C170->vlipi With Mvto->VLRIPI
//Repla C170->cstpis With Mvto->
//Repla C170->vlbcpis With Mvto->
//Repla C170->aliqpis With Mvto->
//Repla C170->quantbcpis With Mvto->
//Repla C170->aliqpis With Mvto->
Repla C170->vlpis With Mvto->VLRPIS
//Repla C170->cstcofins With Mvto->
//Repla C170->vlbcconfis With Mvto->
//Repla C170->aliqconfis With Mvto->
//Repla C170->qtdbcconfi With Mvto->
//Repla C170->aliqconfis With Mvto->
Repla C170->vlcofins With Mvto->VLRCOFINS
//Repla C170->codcta With Mvto->
Repla C170->JAFFiltro With _cPesq
nPos := Ascan(wRegistros_200,Mvto->codigo)
if nPos==0
Aadd(wRegistros_200,Mvto->codigo)
Endif
cPesq := C170->cfop+C170->csticms+Str(C170->Aliqicms,6,2)+Alltrim(_cPesq)
Sele C190
OrdSetFocus('c190_1')
Go top
Seek cPesq
If !Found()
Append Blank
Repla C190->Reg With 'C190'
Repla C190->CSTICMS With C170->csticms
Repla C190->CFOP With C170->cfop
Repla C190->aliqicms With C170->Aliqicms
Repla C190->JAFFiltro With _cPesq+cTpoRegUF
Repla C190->JAFFiltro1 With cTpoRegUF
Endif
nC190_Campo10 := C170->vlitem - C170->vlbcicms
Repla C190->vlopr With C190->vlopr +(C170->vlitem + C170->vlipi + C170->vlicmsst + Mvto->VLROUTRA )
Repla C190->vlbcicms With C190->vlbcicms +C170->vlbcicms
Repla C190->vlicms With C190->vlicms +C170->vlicms
Repla C190->vlbcicmsst With C190->vlbcicmsst+C170->vlbcicmsst
Repla C190->vlicmsst With C190->vlicmsst +C170->vlicmsst
Repla C190->vlredbc With C190->vlredbc +nC190_Campo10
Repla C190->vlipi With C190->vlipi +C170->vlipi
//Repla C190->codobs With C170->
Sele Mvto
Skip+1
Enddo
Sele Nota
Skip+1
Enddo
Return nil
//------------------------------------------------------------------------
Static Function Func_BlocoC()
cTxt := 'C001'+cSepa+'0'+cSepa // 0-Com Movto 1-Sem Mvto
Fwrite( nTMP,cSepa+cTxt+CRLF )
Aadd(wBloco_Soma_9990,{'C001',1})
Sele C100
Go top
Centra('Gerando BLOCO C (Registro 100/170/190)')
Do while ! Eof()
If C100->Reg=='X100'
Skip+1
Loop
Endif
nLinha_BLOCOC_C100 ++
cTxt := EscreveCamposTxt(cSepa,'',.f.)
Fwrite( nTMP,cSepa+cTxt+CRLF)
cPesq := Alltrim(C100->CodPart+C100->NumDoc+C100->Ser)
Sele C170
Go top
Do While !Eof()
If Alltrim(C170->JAFFiltro)==cPesq
nLinha_BLOCOC_C170 ++
cTxt := EscreveCamposTxt(cSepa,'',.f.)
Fwrite( nTMP,cSepa+cTxt+CRLF)
Endif
Skip+1
Enddo
Sele C190
Go top
Do While !Eof()
If Alltrim(C190->JAFFiltro)==cPesq
nLinha_BLOCOC_C190 ++
cObrigacaoComZeros:='vlipi_vlbcicmsst_vlicms_vlbcicmsst_vlicmsst_vlredbc'
cTxt := EscreveCamposTxt(cSepa,cObrigacaoComZeros,.f.)
Fwrite( nTMP,cSepa+cTxt+CRLF)
Endif
Skip+1
Enddo
Sele C100
Skip+1
Enddo
// Encerrando Bloco C
nLinhas := nLinha_BLOCOC_C100+nLinha_BLOCOC_C170+nLinha_BLOCOC_C190
nLinhas := nLinhas+2
cTxt := 'C990'+cSepa+Alltrim(Str(nLinhas,11))+cSepa // 0-Com Movto 1-Sem Mvto
Aadd(wBloco_Soma_9990,{'C990',1})
Fwrite( nTMP,cSepa+cTxt+CRLF )
Return Nil
//---------------------------------------------------------------------------
Function Func_bloco9()
Local nLIN_TOTAL := nLinhasBloco0 + nLinha_BLOCOC_C100+nLinha_BLOCOC_C170+nLinha_BLOCOC_C190+;
nLinha_BLOCOE_E200 + nLinha_BLOCOE_E210
fwrite( nTMP, "|" + "9001" )
fwrite( nTMP, "|" + "0" )
fwrite( nTMP, "|" + CRLF )
Aadd(wBloco_Soma_9990,{'9001',1})
Aadd(wBloco_Soma_9990,{'9990',1})
Aadd(wBloco_Soma_9990,{'9999',1})
Aadd(wBloco_Soma_9990,{'9900',Len(wBloco_Soma_9990)+1})
For i:= 1 to Len(wBloco_Soma_9990)
fwrite( nTMP, "|" + "9900" )
fwrite( nTMP, "|" + wBloco_Soma_9990[i,1] )
fwrite( nTMP, "|" + alltrim( str( wBloco_Soma_9990[i,2] ) ) ) // Ver
fwrite( nTMP, "|" + CRLF )
Next
fwrite( nTMP, "|" + "9990" )
fwrite( nTMP, "|" + alltrim( str( Len(wBloco_Soma_9990)+3 ) ) ) // Ver
fwrite( nTMP, "|" + CRLF )
fwrite( nTMP, "|" + "9999" )
// H
fwrite( nTMP, "|" + alltrim( str( nLIN_TOTAL+3+len(wBloco_Soma_9990)+4+2+2+2+2+2+1) ) )
fwrite( nTMP, "|" + CRLF )
Return Nil
//------------------------------------------
Function Func_BlocoD()
fwrite( nTMP, "|" + "D001" )
fwrite( nTMP, "|" + "1" )
fwrite( nTMP, "|" + CRLF )
fwrite( nTMP, "|" + "D990" )
fwrite( nTMP, "|" + "2" )
fwrite( nTMP, "|" + CRLF )
Aadd(wBloco_Soma_9990,{'D990',1})
Aadd(wBloco_Soma_9990,{'D001',1})
Return Nil
//------------------------------------------
Function Func_BlocoE()
Local nLinhas, cPesq
fwrite( nTMP, "|" + "E001" )
fwrite( nTMP, "|" + "0" ) // 1-Sem Mvto 0-Com Mvto
fwrite( nTMP, "|" + CRLF )
//--- Montando Registro E100
cMsg := LimpaStr(DTOC(dDATAINI))+cSepa+;
LimpaStr(DTOC(dDATAFIM))
fwrite( nTMP, "|" + "E100" )
fwrite( nTMP, "|" + cMsg )
fwrite( nTMP, "|" + CRLF )
Centra('Processando Bloco E (Registro 110)')
Processa_E110()
Centra('Processando Bloco E (Registro 220)')
Processa_E210()
//--- Gerando E110
Sele E110
//cObrigacaoComZeros:='vlipi_vlbcicmsst_vlicms_vlbcicmsst_vlicmsst_vlredbc'
cObrigacaoComZeros := 'TODOS'
cTxt := EscreveCamposTxt(cSepa,cObrigacaoComZeros,.t.)
Fwrite( nTMP,cSepa+cTxt+CRLF)
//---- Montando Bloco E210 Substituicao
wUFMontar := {}
Sele E210
Go top
Do while ! Eof()
cPesq:= E210->JafFiltro
nPos := Ascan(wUFMontar,cpesq)
If nPos==0
Aadd(wUFMontar,cPesq)
Endif
Skip+1
Enddo
Go top
For i:=1 to Len(wUFMontar)
cMsg := "E200"+cSepa+;
wUFMontar[i]+cSepa+;
LimpaStr(DTOC(dDATAINI))+cSepa+;
LimpaStr(DTOC(dDATAFIM))
fwrite( nTMP, "|" + cMsg+cSepa+CRLF )
nLinha_BLOCOE_E200++
Go top
Do while ! Eof()
If Substr(E210->JAfFiltro,1,2)==wUFMontar[i]
nLinha_BLOCOE_E210++
cObrigacaoComZeros := 'TODOS'
cTxt := EscreveCamposTxt(cSepa,cObrigacaoComZeros,.t.)
Fwrite( nTMP,cSepa+cTxt+CRLF)
Endif
Skip+1
Enddo
Next
nLinhas := 4 + nLinha_BLOCOE_E200 +nLinha_BLOCOE_E210
fwrite( nTMP, "|" + "E990" )
fwrite( nTMP, "|" + Alltrim(Str(nLinhas,11)) )
fwrite( nTMP, "|" + CRLF )
Aadd(wBloco_Soma_9990,{'E001',1})
Aadd(wBloco_Soma_9990,{'E100',1})
Aadd(wBloco_Soma_9990,{'E110',1})
Aadd(wBloco_Soma_9990,{'E200',nLinha_BLOCOE_E200})
Aadd(wBloco_Soma_9990,{'E210',nLinha_BLOCOE_E210})
Aadd(wBloco_Soma_9990,{'E990',1})
Return Nil
//------------------------------------------
Function Func_BlocoG()
fwrite( nTMP, "|" + "G001" )
fwrite( nTMP, "|" + "1" )
fwrite( nTMP, "|" + CRLF )
fwrite( nTMP, "|" + "G990" )
fwrite( nTMP, "|" + "2" )
fwrite( nTMP, "|" + CRLF )
Aadd(wBloco_Soma_9990,{'G990',1})
Aadd(wBloco_Soma_9990,{'G001',1})
Return Nil
//------------------------------------------
Function Func_BlocoH()
fwrite( nTMP, "|" + "H001" )
fwrite( nTMP, "|" + "0" )
fwrite( nTMP, "|" + CRLF )
//Ver Melhor ?
cMsg := "H005"+cSepa+"31122010"+cSepa+'0,00'+cSepa
fwrite( nTMP, "|" + cMsg+ CRLF)
fwrite( nTMP, "|" + "H990" )
fwrite( nTMP, "|" + "3" )
fwrite( nTMP, "|" + CRLF )
Aadd(wBloco_Soma_9990,{'H001',1})
Aadd(wBloco_Soma_9990,{'H005',1})
Aadd(wBloco_Soma_9990,{'H990',1})
Return Nil
//------------------------------------------
Function Func_Bloco1001()
fwrite( nTMP, "|" + "1001" )
fwrite( nTMP, "|" + "1" )
fwrite( nTMP, "|" + CRLF )
fwrite( nTMP, "|" + "1990" )
fwrite( nTMP, "|" + "2" )
fwrite( nTMP, "|" + CRLF )
Aadd(wBloco_Soma_9990,{'1001',1})
Aadd(wBloco_Soma_9990,{'1990',1})
Return Nil
//------------------------------------------------
Static Function Processa_E110()
Local nVlTotDeb := nVlAjuDeb := nVlTotAJDb:= 0
Local nVlEstCred:= nVlTotCred:= nVlAjCred := nVlTotAjcd := 0
Local nVlEstdedb:= nVlsldapur:= nVlTotredu:= nVlicmsrec := 0
Local nVlsdcdtrs:= ndebesp := 0
Local cSaida := .f. // Pega do JAFFILTRO a ultima posicao
Sele C190
Go top
Do While ! Eof()
cSaida := Iif( Substr(C190->JAFFiltro1,3,1)=="S",.t.,.f.)
If cSaida==.f. // Gera Credido de ICMS
nVlTotCred+= C190->vlicms
Else
nVlTotDeb += C190->vlicms
Endif
Skip+1
Enddo
//-- Regras de Validacoes
nVlsldapur := (nVlTotDeb+nVlTotAJDb) - nVlTotCred
If nVlsldapur<0
nVlsldapur := 0 // nVlsldapur*-1
endif
nVlicmsrec := nVlsldapur
nVlsdcdtrs := nVlTotCred // Ver melhor
Sele E110
Append Blank
Repla E110->Reg With "E110"
Repla E110->VlTotDeb With nVlTotDeb
Repla E110->VlAjuDeb With nVlAjuDeb
Repla E110->VlTotAJDb With nVlTotAJDb
Repla E110->VlEstCred With nVlEstCred
Repla E110->VlTotCred With nVlTotCred
Repla E110->VlAjCred With nVlAjCred
Repla E110->VlTotAjcd With nVlTotAjcd
Repla E110->VlEstdedb With nVlEstdedb
Repla E110->Vlsldapur With nVlsldapur
Repla E110->VlTotredu With nVlTotredu
Repla E110->Vlicmsrec With nVlicmsrec
Repla E110->Vlsdcdtrs With nVlsdcdtrs
Repla E110->debesp With ndebesp
Return Nil
//------------------------------------------------
Static Function Processa_E210()
Local cSaida := .f. // Pega do JAFFILTRO a ultima posicao
Local nIndmovst:= nVLSDCRDAST:= nVLDEVOLST:= nVLRESS_ST:= nVLOUTCRDST:= 0
Local nVLAJCRDST:= nVLRETE_ST:= nVLOUTDBST:= nVLAJTDBST:= nVLSLDDAST:= 0
Local nVLDEDUCST:= nVLICMRCST:= nVSLDCRSTTR:= nDRBESPST:= 0
Sele C190
Go top
Do While ! Eof()
If cSaida==.f. // Gera Credido de ICMS
Else
Endif
cPesq := substr(C190->JAFFiltro1,1,2)
nVLICMRCST := C190->vlicmsst
nVLSLDDAST := nVLICMRCST // 11
nVLRETE_ST := C190->vlicmsst
//--- Aplicando Regras
/* 8 */ nVLRETE_ST := C190->vlicmsst
/* 11 */ nVLSLDDAST := (nVLRETE_ST + nVLOUTDBST + nVLAJTDBST) - (nVLSDCRDAST+nVLRESS_ST+nVLOUTCRDST+nVLAJCRDST)
If nVLSLDDAST >= 0
nVSLDCRSTTR := 0
Else
nVSLDCRSTTR := nVLSLDDAST*-1
nVLSLDDAST := 0
Endif
Sele E210
Go top
Seek cPesq // UF
If !Found()
Append Blank
Repla E210->Reg With "E210"
Repla E210->Indmovst With '1'
Repla E210->JAFFILTRO With cPesq
Endif
/* 3 */ Repla E210->VLSDCRDAST With E210->VLSDCRDAST+ nVLSDCRDAST
/* 4 */ Repla E210->VLDEVOLST With E210->VLDEVOLST + nVLDEVOLST
/* 5 */ Repla E210->VLRESS_ST With E210->VLRESS_ST + nVLRESS_ST
/* 6 */ Repla E210->VLOUTCRDST With E210->VLOUTCRDST+ nVLOUTCRDST
/* 7 */ Repla E210->VLAJCRDST With E210->VLAJCRDST + nVLAJCRDST
/* 8 */ Repla E210->VLRETE_ST With E210->VLRETE_ST + nVLRETE_ST
/* 9 */ Repla E210->VLOUTDBST With E210->VLOUTDBST + nVLOUTDBST
/* 10*/ Repla E210->VLAJTDBST With E210->VLAJTDBST + nVLAJTDBST
/* 11*/ Repla E210->VLSLDDAST With E210->VLSLDDAST + nVLSLDDAST
/* 12*/ Repla E210->VLDEDUCST With E210->VLDEDUCST + nVLDEDUCST
/* 13*/ Repla E210->VLICMRCST With E210->VLICMRCST + nVLICMRCST
/* 14*/ Repla E210->VSLDCRSTTR With E210->VSLDCRSTTR+ nVSLDCRSTTR
/* 15*/ Repla E210->DRBESPST With E210->DRBESPST + nDRBESPST
Sele C190
Skip+1
Enddo
Return Nil
//---------------------------------------------------------------------------------
Function Centra(c)
@ 24,0 say c
return Nil
//------------------------------------------------------
Function EscreveCamposTxt(Separador,wCamposComZeros,lTODOS)
Local i
Local cSepa := Separador
Local mString := ''
Local Campos := DbStruct()
For i:= 1 to Len(Campos)
If Substr(Campos[i,1],1,9)==Upper('JAFFiltro')
Loop
Endif
If Campos[i,2]=="C"
mString += Alltrim(&(Campos[i,1]))+cSepa
Elseif Campos[i,2]=="D"
cCampo := Dtoc(&(Campos[i,1]))
cCampo := LimpaStr(cCampo)
mString += cCampo+cSepa
ElseIf Campos[i,2]=="N"
If Campos[i,1]$Upper(wCamposComZeros) .or. lTODOS
cCampo := &(Campos[i,1])
*vlipi
*cMasq := "@EZ "+repli('9',Campos[i,3])+'.'+Repli('9',Campos[i,4])
cMasq := "@E "+repli('9',Campos[i,3])+'.'+Repli('9',Campos[i,4])
cCampo:= Transf(cCampo,cMasq)
cCampo := Alltrim(cCampo)
mString += cCampo+cSepa
Else
cCampo := &(Campos[i,1])
cMasq := "@EZ "+repli('9',Campos[i,3])+'.'+Repli('9',Campos[i,4])
cCampo:= Transf(cCampo,cMasq)
cCampo := Alltrim(cCampo)
mString += cCampo+cSepa
Endif
Endif
Next
Return (mString)
Código: Selecionar todos
|0000|004|0|01022011|28022011|SUPERMERCADO SANTA MARIA DE OURS LTDA.|06206061000196||SP|495139246116|3534708|||A|1|
|0001|0|
|0005|SUPERMERCADO SANTA MARIA DE OURS LTDA.|19901630|RUA EXPEDICIONARIOS 1315|123||JD.MATILDE|1433267534|1433267534||
|0100|EDSON RUSSIGNOLIA|NR CPF|00123456789||||||||||3534708|
|0150|19573|NESTLE BRASIL LTDA (SORVETES)|1058|60409075009109||272069462119|3512407||ROD ANHANGUERA KM 1545 SL 4|||.|
|0190|UN|Unidad|
|0200|26881|SORV NESTLE CONE EXTREME TRUFA 96G|7891000009055||UN|00|21050010||10|||
|0200|26889|SORV NESTLE PICOLE COCO AO LEITE 58G|7891000021743||UN|00|21050010||10|||
|0200|26891|SORV NESTLE PICOLE MEGA TRUFA BRANCO 77G|7891000709306||UN|00|21050010||10|||
|0200|25000|SORV NESTLE POTE GALAK 2L|7891000764305||UN|00|21050010||10|||
|0200|25003|SORV NESTLE POTE CREME 2L|7790430008952||UN|00|21050010||10|||
|0200|26884|SORV NESTLE PICOLE GALAK 47G|7891000706404||UN|00|21050010||10|||
|0200|28795|SORV NESTLE PICOLE LA FRUTA LIMAO 61G|7891000053171||UN|00|21050010||10|||
|0200|25004|SORV NESTLE POTE NAPOLITANO 2L|7613031571819||UN|00|21050010||10|||
|0200|40257|SORV GAROTO CONE SERENATA DE AMOR 92G|7891000055243||UN|00|21050010||10|||
|0200|40296|SORV GAROTO PICOLE BATON CHOC BRANCO 34G|7891000067482||UN|00|21050010||10|||
|0200|40249|SORV NESTLE PICOLE CHOKITO 61G|7891000076125||UN|00|21050010||10|||
|0200|41596|SORV NESTLE LA FRUTA ZERO MORAGO 536G|7891000077597||UN|00|21050010||10|||
|0200|41597|SORV NESTLE MOLICO YOGO FRUTAS VERM 542G|7891000077573||UN|00|21050010||10|||
|0200|41598|SORV NESTLE MOLICO YOGO NATURAL 485G|7891000077733||UN|00|21050010||10|||
|0200|41599|SORV NESTLE MOCA FIESTA COCADA 499G|7891000079348||UN|00|21050010||10|||
|0200|41600|SORV NESTLE POTE CHARGE 663G|7891000079416||UN|00|21050010||10|||
|0200|26877|SORV NESTLE SEM PARAR CHOCOLATE 104G|7891000017685||UN|00|21050010||10|||
|0200|41601|SORV NESTLE SEM PARAR MORANGO/CREME 102G|7613033075056||UN|00|21050010||10|||
|0200|41602|SORV NESTLE CLASSIC DUO POTE 615G|7891000079454||UN|00|21050010||10|||
|0200|41603|SORV NESTLE POTE PRESTIGIO 597G|7891000079478||UN|00|21050010||10|||
|0200|41604|SORV NESTLE MOCA FIESTA PUDIM 496G|7891000079492||UN|00|21050010||10|||
|0990|28|
|C001|0|
|C100|0|1|19573|55|00|1|000222679||24022011|24022011|1113,23|0|||957,42|1||||638,32|114,88|1372,23|132,09|23,72|||||
|C170|001|26881|SORV NESTLE CONE EXTREME TRUFA 96G|16,00000|UN|38,75||0|070|1403||25,83|18,00|4,65|60,00||6,15|0|||||0,12||||||0,64||||||2,95||
|C170|002|26889|SORV NESTLE PICOLE COCO AO LEITE 58G|36,00000|UN|41,83||0|070|1403||27,89|18,00|5,02|64,80||6,64|0|||||0,06||||||0,69||||||3,18||
|C170|003|26891|SORV NESTLE PICOLE MEGA TRUFA BRANCO 77G|18,00000|UN|46,49||0|070|1403||30,99|18,00|5,58|72,00||7,38|0|||||0,13||||||0,77||||||3,53||
|C170|004|25000|SORV NESTLE POTE GALAK 2L|6,00000|UN|67,38||0|070|1403||44,92|18,00|8,09|75,61||5,52|0|||||0,10||||||1,11||||||5,12||
|C170|005|25003|SORV NESTLE POTE CREME 2L|4,00000|UN|44,92||0|170|1403||29,95|18,00|5,39|50,41||3,68|0|||||0,10||||||0,74||||||3,41||
|C170|006|26884|SORV NESTLE PICOLE GALAK 47G|30,00000|UN|53,28||0|070|1403||35,52|18,00|6,39|82,50||8,46|0|||||0,09||||||0,88||||||4,05||
|C170|007|28795|SORV NESTLE PICOLE LA FRUTA LIMAO 61G|36,00000|UN|34,88||0|070|1403||23,25|18,00|4,18|54,00||5,54|0|||||0,05||||||0,58||||||2,65||
|C170|008|25004|SORV NESTLE POTE NAPOLITANO 2L|4,00000|UN|44,92||0|170|1403||29,95|18,00|5,39|50,41||3,68|0|||||0,10||||||0,74||||||3,41||
|C170|009|40257|SORV GAROTO CONE SERENATA DE AMOR 92G|16,00000|UN|38,75||0|070|1403||25,83|18,00|4,65|60,00||6,15|0|||||0,12||||||0,64||||||2,95||
|C170|010|40296|SORV GAROTO PICOLE BATON CHOC BRANCO 34G|50,00000|UN|32,30||0|070|1403||21,53|18,00|3,87|50,00||5,12|0|||||0,03||||||0,53||||||2,45||
|C170|011|40249|SORV NESTLE PICOLE CHOKITO 61G|25,00000|UN|52,45||0|070|1403||34,98|18,00|6,30|81,25||8,33|0|||||0,11||||||0,87||||||3,99||
|C170|012|41596|SORV NESTLE LA FRUTA ZERO MORAGO 536G|6,00000|UN|50,02||0|070|1403||33,35|18,00|6,00|72,00||6,96|0|||||0,05||||||0,83||||||3,80||
|C170|013|41597|SORV NESTLE MOLICO YOGO FRUTAS VERM 542G|6,00000|UN|58,37||0|070|1403||38,92|18,00|7,00|84,01||8,12|0|||||0,05||||||0,96||||||4,44||
|C170|014|41598|SORV NESTLE MOLICO YOGO NATURAL 485G|6,00000|UN|58,37||0|070|1403||38,92|18,00|7,00|84,01||8,12|0|||||0,05||||||0,96||||||4,44||
|C170|015|41599|SORV NESTLE MOCA FIESTA COCADA 499G|4,00000|UN|34,74||0|070|1403||23,16|18,00|4,17|50,00||4,83|0|||||0,05||||||0,57||||||2,64||
|C170|016|41600|SORV NESTLE POTE CHARGE 663G|6,00000|UN|53,77||0|070|1403||35,85|18,00|6,45|77,41||7,48|0|||||0,05||||||0,89||||||4,09||
|C170|017|26877|SORV NESTLE SEM PARAR CHOCOLATE 104G|18,00000|UN|31,97||0|170|1403||21,31|18,00|3,84|49,50||5,07|0|||||0,09||||||0,53||||||2,43||
|C170|018|41601|SORV NESTLE SEM PARAR MORANGO/CREME 102G|18,00000|UN|31,97||0|070|1403||21,31|18,00|3,84|49,50||5,07|0|||||0,09||||||0,53||||||2,43||
|C170|019|41602|SORV NESTLE CLASSIC DUO POTE 615G|6,00000|UN|53,77||0|070|1403||35,85|18,00|6,45|77,41||7,48|0|||||0,05||||||0,89||||||4,09||
|C170|020|41603|SORV NESTLE POTE PRESTIGIO 597G|6,00000|UN|53,77||0|070|1403||35,85|18,00|6,45|77,41||7,48|0|||||0,05||||||0,89||||||4,09||
|C170|021|41604|SORV NESTLE MOCA FIESTA PUDIM 496G|4,00000|UN|34,74||0|070|1403||23,16|18,00|4,17|50,00||4,83|0|||||0,05||||||0,57||||||2,64||
|C190|070|1403|18,00|956,59|557,11|100,26|1221,91|119,66|278,52|1,30||
|C190|170|1403|18,00|134,53|81,21|14,62|150,32|12,43|40,60|0,29||
|C990|26|
|D001|1|
|D990|2|
|E001|0|
|E100|01022011|28022011|
|E110|114,88|0,00|0,00|0,00|0,00|0,00|0,00|0,00|0,00|114,88|0,00|114,88|0,00|0,00|
|E200|SP|01022011|28022011|
|E210|1|0,00|0,00|0,00|0,00|0,00|132,09|0,00|0,00|132,09|0,00|132,09|0,00|0,00|
|E990|6|
|G001|1|
|G990|2|
|H001|0|
|H005|31122010|0,00|
|H990|3|
|1001|1|
|1990|2|
|9001|0|
|9900|0000|1|
|9900|0001|1|
|9900|0005|1|
|9900|0100|1|
|9900|0150|1|
|9900|0190|1|
|9900|0200|21|
|9900|0990|1|
|9900|C001|1|
|9900|C990|1|
|9900|D990|1|
|9900|D001|1|
|9900|E001|1|
|9900|E100|1|
|9900|E110|1|
|9900|E200|1|
|9900|E210|1|
|9900|E990|1|
|9900|G990|1|
|9900|G001|1|
|9900|H001|1|
|9900|H005|1|
|9900|H990|1|
|9900|1001|1|
|9900|1990|1|
|9900|C100|1|
|9900|C170|21|
|9900|C190|2|
|9900|9001|1|
|9900|9990|1|
|9900|9999|1|
|9900|9900|32|
|9990|35|
|9999|104|



