neto_23 Posted March 18, 2011 Report Share Posted March 18, 2011 Gostaria de saber como eu faço para criar um arquivo xml se eu faço o laço pegando da base minha e lançando no xml.... Depois do pedido pronto o outro passo é gerar a shema xml baseado no pedido...? qual a rotina para gerar a xml fw10.8harbour-xDev.70 Studio-bcc582-Mysql-Pelles programadorcp80@hotmail.com.br ; Quote Link to comment Share on other sites More sharing options...
neto_23 Posted March 18, 2011 Author Report Share Posted March 18, 2011 Gostaria de saber como eu faço para criar um arquivo xml se eu faço o laço pegando da base minha e lançando no xml.... Depois do pedido pronto o outro passo é gerar a shema xml baseado no pedido...? qual a rotina para gerar a xml fw10.8harbour-xDev.70 Studio-bcc582-Mysql-Pelles programadorcp80@hotmail.com.br ; Quote Link to comment Share on other sites More sharing options...
eevaldo Posted March 18, 2011 Report Share Posted March 18, 2011 Ola, se voce tem impressao de nota fiscal use a mesma rotina so que ao inves de imprimir voce gera o XML. Obrigado. Evaldo Wagner FiveWin9.07 xHarbour 1.21,BCC55, Pelles C xDev,xHarbour for Linux(console) evaldowl@hotmail.com Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted March 18, 2011 Report Share Posted March 18, 2011 Olá Desenvolvedores, Boa Tarde! Este seria a primeiro passao ? Ler este manual ? http://www.fazenda.gov.br/confaz/confaz/Atos/Atos_Cotepe/2009/Manual_NFe_V400_2009-09-21.pdf ________________________ Gilberto Herminio - Programador Pleno III - Mogi das Cruzes-SP (Clipper a +- 20 anos) / C#/SQL2008/xxHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 9.03 + xDev v0.65 "Não Desenvolvo Software, crio arte Binaria...." Quote Link to comment Share on other sites More sharing options...
neto_23 Posted March 18, 2011 Author Report Share Posted March 18, 2011 certo mais vcs tem a rotina de gerar o xml? fw10.8harbour-xDev.70 Studio-bcc582-Mysql-Pelles programadorcp80@hotmail.com.br ; Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted March 18, 2011 Report Share Posted March 18, 2011 Eu ainda não! O que eu queria entender é o BE-A-BA da coisa : A minha aplicação ERP, vai gerar um arquivo das informações das NF em qual formato e enviá-lo pra onde ? Esta aplicação que esta disponÃvel no site da receita (http://www.nfe.fazenda.gov.br/PORTAL/emissor.aspx) serve pra que ? Minha aplicação pode pular esta etapa ? Eu só preciso saber é o que gerar e pra quem enviar, inicialmente... Lógico, eu sei que não é só enviar !! mas queria a juda dos amigos nesta questão. Pois se o envio será no formato TXT ou XML, onde enconto o LayOut ? ________________________ Gilberto Herminio - Programador Pleno III - Mogi das Cruzes-SP (Clipper a +- 20 anos) / C#/SQL2008/xxHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 9.03 + xDev v0.65 "Não Desenvolvo Software, crio arte Binaria...." Editado por - sig_gilberto on 18/03/2011 16:18:55 Quote Link to comment Share on other sites More sharing options...
neto_23 Posted March 18, 2011 Author Report Share Posted March 18, 2011 estamos no mesmos barco! vamos chorar juntos ok ate que pareceça um filho de Deus para mostrar os passos! ok fw10.8harbour-xDev.70 Studio-bcc582-Mysql-Pelles programadorcp80@hotmail.com.br ; Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted March 18, 2011 Report Share Posted March 18, 2011 Colegas acho que vcs tem duas opções , uma é usar a classe do Gilmer para gerar o XML e tb fazer todo serviço de transmissão e impressão do danfe, nela ja tem tudo pronto, a outra é usar o acbrnfe neste caso o lugar melhor para poder pegar as informações seria do forum do pctoledo, la inclusive vcs iram achar um link de um forum expecifico do acbr... Obs: eu particulamente uso a classe do gilmer e estou satisfeito... Abraços Luiz Fernando msn: empresoft@globo.com skype:empresoft empresoft@globo.com FWH 8.04,XHARBOUR 1.1,PELES,XDEV,VLIB,ADS 8.1 FWH 9.12,XHARBOUR 1.2,ADS 9.0 / FWH1012 Quote Link to comment Share on other sites More sharing options...
neto_23 Posted March 18, 2011 Author Report Share Posted March 18, 2011 mais gostaria de saber os passos a passo o pedido ta pronto vou transfroma-lo ele como em txt ou xml? fw10.8harbour-xDev.70 Studio-bcc582-Mysql-Pelles programadorcp80@hotmail.com.br ; Quote Link to comment Share on other sites More sharing options...
SAOliveira Posted March 18, 2011 Report Share Posted March 18, 2011 Amigo, tudo depende de como voce vai fazer. - Emissor gratuido = .TXT - Casses de terceiros = segundo o manual deles. "Me interessa o futuro porque é o lugar onde vou passar o resto da minha vida." Quote Link to comment Share on other sites More sharing options...
neto_23 Posted March 19, 2011 Author Report Share Posted March 19, 2011 alguem tem uma rotina que cria arquivo.xml; oou o laytou de arquivo.txt ok fw10.8harbour-xDev.70 Studio-bcc582-Mysql-Pelles programadorcp80@hotmail.com.br ; Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted March 21, 2011 Report Share Posted March 21, 2011 Olá Desenvolvedores, Bom Dia! Me desculpem ser um chatão, mas.... Estou notando tanto neste forum como em outros também que há uma grande número de Desenvolvedores/Programadores que não estão entendendo o algorÃtimo da coisa, eu sou um deles !!! Por favor, me detalhem estes processos. Tendo eu uma aplicação que gerar pedidos, por exemplo, num certo momento, eu posso digitá-los diretamente, um a um, no sistema do SEFAZ, correto ou não ? Casao queira gerar uma mÃdia de envio destes pedidos/NF, em qual formato eu gero e pra onde envio ? Quando vocês dizes "usar uma classe de terceiros", então entre a minha aplicação e o SEFAZ (é SEFAZ mesmo ?) haverá uma classe intermediando e ajustando as informações ? Se eu quizer fazer estes passos manualmente pra que eu possa entender ? Nos ajudem a entender o processo ! Por favor ! A pergunta básica é : Exportar para onde ? Em qual formato ? Cadê o LayOut ? A FINAL DE CONTAS, É XML OU TXT ? ________________________ Gilberto Herminio - Programador Pleno III - Mogi das Cruzes-SP (Clipper a +- 20 anos) / C#/SQL2008/xxHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 9.03 + xDev v0.65 "Não Desenvolvo Software, crio arte Binaria...." Editado por - sig_gilberto on 21/03/2011 08:57:10 Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted March 21, 2011 Report Share Posted March 21, 2011 ...continuando : Caso que queira utilizar um emissor "de grátis", seria este ? http://www.emissornfehom.fazenda.sp.gov.br ? Dai é pra ele que eu vou exportar em TXT/XML ? Este seria um dos LayOut ?http://www.emissornfehom.fazenda.sp.gov.br/v2/docs/[Emissor_NF-e]_Manual_de_layout_TXT-NF-e_v2.0.0.pdf ________________________ Gilberto Herminio - Programador Pleno III - Mogi das Cruzes-SP (Clipper a +- 20 anos) / C#/SQL2008/xxHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 9.03 + xDev v0.65 "Não Desenvolvo Software, crio arte Binaria...." Editado por - sig_gilberto on 21/03/2011 09:10:57 Quote Link to comment Share on other sites More sharing options...
marcioe Posted March 21, 2011 Report Share Posted March 21, 2011 Gente a classe do gilmes é que Resolve todos os nossos problemas Usar o Gratuito do Sefaz não dá certo | Estou falando com propriedade, pois já usei o do sefaz. Combinem com ele a classe, vale a pena cada Real. É meio complicado de implementar a classe. Mas ele dá uma mão, e roda Beleza. Quote Link to comment Share on other sites More sharing options...
lecojales Posted March 21, 2011 Report Share Posted March 21, 2011 Eu fiz assim: Baixei o portal do governo gratuito, digitei uma nfe lá do jeito que precisava, depois cliquei em exportar, lá exporta tanto em xml, como txt. Escolhi fazer txt, por ser mais prático, de posso do txt, me preocupei em estudar o que cada parametro faz, e o que tinha que tem no sistema meu para gerar aqueles campos. Tanto a ferramenta do Gilmes, que comprei e não cheguei a usar. Como o ACBR monitor nfe, le o xml ou o txt, e faz, validação, transmissão. Se escolher o ACBR monitor NFE, tem uma versão que le o certificado A1, a outra le o A3 e o A1, mas não muda o jeito de programar. Qualquer uma das que você escolher será bem atendido. Boa sorte. Leco Jales Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted March 21, 2011 Report Share Posted March 21, 2011 Leco, Bom Dia! OK..me ajuda ai por favor : 1) O que você exatamente baixou no site da receita federal e por que ? 2) Você optou em exportar em TXT (pelo que entendi). Então se você optou por TXT, onde esta este layout ? ________________________ Gilberto Herminio - Programador Pleno III - Mogi das Cruzes-SP (Clipper a +- 20 anos) / C#/SQL2008/xxHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 9.03 + xDev v0.65 "Não Desenvolvo Software, crio arte Binaria...." Editado por - sig_gilberto on 21/03/2011 09:31:02 Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted March 21, 2011 Report Share Posted March 21, 2011 Amigo Gabrieis, Você já conseguiu o tão sonhado layOut ? rsrs citação:alguem tem uma rotina que cria arquivo.xml; oou o laytou de arquivo.txt ok fw10.8harbour-xDev.70 Studio-bcc582-Mysql-Pelles programadorcp80@hotmail.com.br ; id=quote>id=quote>________________________ Gilberto Herminio - Programador Pleno III - Mogi das Cruzes-SP (Clipper a +- 20 anos) / C#/SQL2008/xxHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 9.03 + xDev v0.65 "Não Desenvolvo Software, crio arte Binaria...." Editado por - sig_gilberto on 21/03/2011 10:00:31 Quote Link to comment Share on other sites More sharing options...
SAOliveira Posted March 21, 2011 Report Share Posted March 21, 2011 http://www.emissornfehom.fazenda.sp.gov.br/v2/docs/[Emissor_NF-e]_Manual_de_layout_TXT-NF-e_v2.0.0.pdf "Me interessa o futuro porque é o lugar onde vou passar o resto da minha vida." Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted March 21, 2011 Report Share Posted March 21, 2011 Obrigado S.A.Oliveira... Então eu vou gerar um arquivo em TXT neste layout atraés da minha aplicação e depois acessar a aplicação do emissor de NFe que faço o download aqui neste link :(http://www.nfe.fazenda.gov.br/PORTAL/emissor.aspx) e enviar o arquivos pra Receita, é isso ? Hum...e nesta história, onde fica o XML ? ________________________ Gilberto Herminio - Programador Pleno III - Mogi das Cruzes-SP xHB121+Fw912 / C#/SQL2008 "Não Desenvolvo Software, crio arte Binaria...." Quote Link to comment Share on other sites More sharing options...
SAOliveira Posted March 21, 2011 Report Share Posted March 21, 2011 O emissor do governo, tanto importa .TXT quando .XML Acho que adiantaria legal, se voce instalar o emissor do governo, brincar um pouco, pra ver o que e como ele faz. "Me interessa o futuro porque é o lugar onde vou passar o resto da minha vida." Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted March 21, 2011 Report Share Posted March 21, 2011 Certo..já o baixei...instalei...mexi..legal!! Agora, onde esta o layOut caso eu queira exportar as notas ? É pra usar este mesmo ? http://www.emissornfehom.fazenda.sp.gov.br/v2/docs/[Emissor_NF-e]_Manual_de_layout_TXT-NF-e_v2.0.0.pdf ________________________ Gilberto Herminio - Programador Pleno III - Mogi das Cruzes-SP xHB121+Fw912 / C#/SQL2008 "Não Desenvolvo Software, crio arte Binaria...." Editado por - sig_gilberto on 21/03/2011 12:02:11 Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted March 21, 2011 Report Share Posted March 21, 2011 Este por um acaso seria o modelo do arquivo TXT ? http://www.guj.com.br/java/204773-emissor-nfe-da-sef NOTAFISCAL|1 A|2.00|NFe35101001996104000160550010000000071020944482| B|35|02094448|RET P/ BENEFICIAMENTO|0|55|1|7|2010-10-02|2010-10-02|09:44:44|1|3550308|1|1|2|2|1|3|2.0.2||| C|TOCKPRINT ACABAMENTOS GRAFICOS LTDA. EPP|TOCKPRINT|148036682114||||3| C02|01996104000160| C05|RUA ANDRE DE LEAO|55||MOOCA|3550308|Sao Paulo|SP|03054010|1058|BRASIL|1132076133| E|CORPRINT GRAFICA E EDITORA LTDA|110856530110||eduardo@corprint.com.br| E02|52176922000158| E05|RUA AUGUSTO PIACENTINI|454||JD INDEPENDENCIA|3550308|Sao Paulo|SP|03223190|1058|BRASIL|21485200| H|1|| I|32757||U.V. RESERVA GLITTER FRENTE|37031029||5124|FL|2345.0000|0.1706|400.00||FL|2345.0000|0.1706|||||1||| M| N| N06|0|40||| Q| Q02|01|400.00|3.00|12.00| S| S02|01|400.00|0.65|2.60| H|2|| I|32757||U.V. RESERVA FOSCA FRENTE|37031029||5124|FL|2345.0000|0.1066|250.00||FL|2345.0000|0.1066|||||1||| M| N| N06|0|40||| Q| Q02|01|250.00|3.00|7.50| S| S02|01|250.00|0.65|1.63| H|3|| I|32757||UV. RESERVA CYREL FRENTE|37031029||5124|FL|2345.0000|5.7308|13438.77||FL|2345.0000|5.7308|||||1||| M| N| N06|0|40||| Q| Q02|01|13438.77|3.00|403.16| S| S02|01|13438.77|0.65|87.35| W| W02|0.00|0.00|0.00|0.00|14088.77|0.00|0.00|0.00|0.00|0.00|422.66|91.58|0.00|14088.77| X|0| Y| Y02|000007|14088.77||14088.77| Y07|000007-A|2010-10-30|14088.77| ________________________ Gilberto Herminio - Programador Pleno III - Mogi das Cruzes-SP xHB121+Fw912 / C#/SQL2008 "Não Desenvolvo Software, crio arte Binaria...." Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted March 21, 2011 Report Share Posted March 21, 2011 Pessoal, me dá uma forçai ai, por favor. Se é este o modelo do arquivo de envio, alguém poderia, caso tenham, me enviar este layout com a detalhamento de cada campo ? ________________________ Gilberto Herminio - Programador Pleno III - Mogi das Cruzes-SP xHB121+Fw912 / C#/SQL2008 "Não Desenvolvo Software, crio arte Binaria...." Quote Link to comment Share on other sites More sharing options...
edutraini Posted March 21, 2011 Report Share Posted March 21, 2011 Segue meu Prg que gera o Txt Talvez te ajude * cFile := VP_PATH+"NFE\NF"+strzero(vn_nf,6)+".TXT" mfim_arq:=chr(26) && final de arquivo mfim_lin:=chr(13)+chr(10) && final de linha mini_arq:=chr(239)+chr(187)+chr(191)+"10"+"1,00" && final de linha mini_arq:=chr(239)+chr(187)+chr(191)+"10"+"1,00" && final de linha harq1:=fcreate(cFile) && cria o arquivo *** Set Centu on *---> Campos Numericos Colocar Ltrim(STR * SELE FAT *---> Indicador da NF-e B_cUf := Subs(C05_cMun,1,2) && N ???? B_cNf := "" && N B_natOp := Alltrim(mNfiscal) IF FAT->PRAZOPGTO = "00" B_indPag := "0" && N ??? Forma Pagto ELSE B_indPag := "1" && N ??? Forma Pagto ENDIF B_mod := "55" && C B_serie := "1" && N B_nNf := ltrim(str(fat->nronFiscal,9)) && N B_dEmi := subs(dtoc(fat->dtnFiscal),7,4)+"-"+subs(dtoc(fat->dtnfiscal),4,2)+"-"+subs(dtoc(fat->dtnfiscal),1,2) && D * IF VP_CNPJ = "54.450.473/0001-10" //POLISACOS COMERCIO E INDUSTRIA LTDA B_dSaiEnt := subs(dtoc(fat->dtnFiscal),7,4)+"-"+subs(dtoc(fat->dtnfiscal),4,2)+"-"+subs(dtoc(fat->dtnfiscal),1,2) && D B_hSaiEnt := subs(time(),1,8) ELSE B_dSaiEnt := "" B_hSaiEnt := "" ENDIF IF VAL(SUBS(FAT->CODFISCAL,1,1)) > 4 B_tpNF := "1" && N ELSE B_tpNF := "0" && N ENDIF B_cMunFG := C05_cMun && N B_tpImp := "1" && N B_tpEmis := "1" && N B_cDV := "0" && N Opcional B_finNFe := "1" && N B_procEmi := "0" && N ????? B_verProc := "NF-eletronica.com" && C ???? B_XJUST := "" B_DHCONT := "" B_NFREF := "0" C_CRT := VP_REGTRB * if fat->Viatransp = "Fornecedor" *---> Destinatario E_xNome := alltrim(for->nome) && C E_xNome := STRTRAN(E_xNome,"&","",1,40) E_xNome := STRTRAN(E_xNome,":","",1,40) E_IE := alltrim(for->estadualrg) && C E_ISUF := "" && C opcional if for->cgcfor = spac(14) E_cnpj=.t. E_cnpj_cpf := "" && Verificar se é CNPJ/CPF usar zeros a esquerda Else if len(alltrim(for->cgcfor)) = 14 E_cnpj=.t. E_cnpj_cpf := alltrim(for->cgcfor) && Verificar se é CNPJ/CPF usar zeros a esquerda else E_cnpj=.f. E_cnpj_cpf := alltrim(for->cgcfor) && Verificar se é CNPJ/CPF usar zeros a esquerda endif Endif E05_xLgr := for->endereco && C E05_xLgr := STRTRAN(E05_xLgr,".","",1,40) E05_xLgr := STRTRAN(E05_xLgr,":","",1,40) E05_xLgr := STRTRAN(E05_xLgr,",","",1,40) E05_xLgr := STRTRAN(E05_xLgr,"&","",1,40) E05_xLgr := ALLTRIM(E05_XLGR) IF for->NRO > 0 E05_nro := alltrim(STR(for->nro,6)) && C ELSE E05_nro := "S/N" && C ENDIF E05_xCpl := ALLTRIM(for->COMPLEMENT) && C Opcional E05_xBairro := ALLtrim(for->bairro) && C E05_cMun := ALLTRIM(CID->CODUF)+ALLTRIM(CID->CODIGO) && N E05_xMun := ALLtrim(for->cidade) && C E05_UF := ALLTRIM(for->estado) && C E05_CEP := alltrim(STRTRAN(for->cep,"-","",1,10)) E05_cPais := "" && N opcional E05_xPais := "BRASIL" && C opcional E05_Fone := alltrim(for->telefone1) && N opcional E05_Fone := STRTRAN(E05_Fone," ","",1,40) E05_Fone := STRTRAN(E05_Fone,":","",1,40) E05_Fone := STRTRAN(E05_Fone,"/","",1,40) E05_Fone := STRTRAN(E05_Fone,"(","",1,40) E05_Fone := STRTRAN(E05_Fone,")","",1,40) E05_Fone := STRTRAN(E05_Fone,")","",1,40) E05_Fone := STRTRAN(E05_Fone,"/","",1,40) E05_Fone := STRTRAN(E05_Fone,"-","",1,40) E05_Fone := alltrim(E05_Fone) E05_Fone := VAL(E05_Fone) E05_Fone := strzero(e05_fone,10) E19_EMAIL := ALLTRIM(FOR->EMAILFIS) Else *---> Destinatario E_xNome := alltrim(cli->nome) && C E_xNome := STRTRAN(E_xNome,"&","",1,40) E_xNome := STRTRAN(E_xNome,":","",1,40) E_IE := alltrim(cli->estadualrg) && C E_ISUF := "" && C opcional if cli->cgccli = spac(14) E_cnpj=.t. E_cnpj_cpf := "" && Verificar se é CNPJ/CPF usar zeros a esquerda Else if len(alltrim(cli->cgccli)) = 14 E_cnpj=.t. E_cnpj_cpf := alltrim(cli->cgccli) && Verificar se é CNPJ/CPF usar zeros a esquerda else E_cnpj=.f. E_cnpj_cpf := alltrim(cli->cgccli) && Verificar se é CNPJ/CPF usar zeros a esquerda endif Endif E05_xLgr := cli->endereco && C E05_xLgr := STRTRAN(E05_xLgr,".","",1,40) E05_xLgr := STRTRAN(E05_xLgr,":","",1,40) E05_xLgr := STRTRAN(E05_xLgr,",","",1,40) E05_xLgr := STRTRAN(E05_xLgr,"&","",1,40) E05_xLgr := ALLTRIM(E05_XLGR) IF CLI->NRO > 0 E05_nro := alltrim(STR(cli->nro,6)) && C ELSE E05_nro := "S/N" && C ENDIF E05_xCpl := ALLTRIM(CLI->COMPLEMENT) && C Opcional E05_xBairro := ALLtrim(cli->bairro) && C E05_cMun := ALLTRIM(CID->CODUF)+ALLTRIM(CID->CODIGO) && N E05_xMun := ALLtrim(cli->cidade) && C E05_UF := ALLTRIM(cli->estado) && C E05_CEP := alltrim(STRTRAN(cli->cep,"-","",1,10)) E05_cPais := "" && N opcional E05_xPais := "BRASIL" && C opcional E05_Fone := alltrim(cli->telefone1) && N opcional E05_Fone := STRTRAN(E05_Fone," ","",1,40) E05_Fone := STRTRAN(E05_Fone,":","",1,40) E05_Fone := STRTRAN(E05_Fone,"/","",1,40) E05_Fone := STRTRAN(E05_Fone,"(","",1,40) E05_Fone := STRTRAN(E05_Fone,")","",1,40) E05_Fone := STRTRAN(E05_Fone,")","",1,40) E05_Fone := STRTRAN(E05_Fone,"/","",1,40) E05_Fone := STRTRAN(E05_Fone,"-","",1,40) E05_Fone := alltrim(E05_Fone) E05_Fone := VAL(E05_Fone) E05_Fone := strzero(e05_fone,10) E19_EMAIL := ALLTRIM(CLI->EMAILFIS) Endif mTexto:= "NOTA FISCAL|1|"+mFim_Lin mTexto:= mTexto+"A|2.00|NFe|"+mFim_lin mTexto:= mTexto+"B|"+B_cUF+"|"+B_cNF+"|"+B_NatOp+"|"+B_indPag+"|"+B_Mod+"|"+B_Serie+"|"+B_nNf+"|"+B_dEmi+"|"+B_dSaiEnt+"|"+b_hSaiEnt+"|"+B_TpNf+"|"+B_cMunFg+"|"+B_tpImp+"|"+B_tpEmis+"|"+B_cDv+"|"+B_tpAmb+"|"+B_finNFe+"|"+B_procEmi+"|"+B_verProc+"|"+B_DHCONT+"|"+B_XJUST+"|"+mFim_Lin mTexto:= mTexto+"C|"+C_xNome+"|"+C_xFant+"|"+C_IE+"|"+C_IEST+"|"+C_IM+"|"+C_CNAE+"|"+C_CRT+"|"+mFim_Lin mTexto:= mTexto+"C02|"+C_cnpj_cpf+"|"+mFim_Lin mTexto:= mTexto+"C05|"+C05_xLgr+"|"+C05_nro+"|"+C05_xCpl+"|"+C05_xBairro+"|"+C05_cMun+"|"+C05_xMun+"|"+C05_UF+"|"+C05_Cep+"|"+C05_cPais+"|"+"|"+C05_Fone+"|"+mFim_lin mTexto:= mTexto+"E|"+E_xNome+"|"+E_IE+"|"+E_ISUF+"|"+E19_EMAIL+"|"+mFim_Lin mTexto:= mTexto+iif(E_cnpj,"E02","E03")+"|"+E_cnpj_cpf+"|"+mFim_Lin mTexto:= mTexto+"E05|"+E05_xLgr+"|"+E05_nro+"|"+E05_xCpl+"|"+E05_xBairro+"|"+E05_cMun+"|"+E05_xMun+"|"+E05_UF+"|"+E05_Cep+"|"+E05_cPais+"|"+"|"+E05_Fone+"|"+mFim_lin *---> Local de entrega... Informar apenas qdo for # End. Destinatario. *if alltrim(upper(cli->endereco))#alltrim(upper(cli->localentre)) * G_Cnpj := "00000000000000" && N * G_xLgr := trim(FAT->localentre) && C * G_nro := "001" && C ??? * G_xCpl := "" && C opcional * G_xBairro := "SAUDE" && C ??? * G_xMun := "SAO PAULO" && C ??? * G_cMun := "3550308" && N * G_UF := "SP" && C ??? * mTexto:= mTexto+"G|"+G_Cnpj+"|"+G_xLgr+"|"+G_nro+"|"+G_xCpl+"|"+G_xBairro+"|"+G_cMun+"|"+G_xMun+"|"+G_UF+"|"+G_UF+"|"+mFim_lin *Endif SELE FATI DBSETORDER(1) SEEK FAT->NRONFISCAL vn_item=1 TOT_PIS = 0 TOT_FIN = 0 DO WHILE .NOT. EOF() .AND. fat->nronfiscal=FATI->nronota IF EMPRESA # VP_EMP SKIP LOOP ENDIF IF SERIE = "ACE" SKIP LOOP ENDIF * if quantidade = 0 .and. pesoliqui = 0.00 * skip * loop * endif IF VP_CNPJ = "05.037.937/0001-55" .OR. VP_CNPJ = "58.604.190/0001-36" .OR. VP_CNPJ = "58.604.190/0002-17" .OR. VP_CNPJ = "54.474.036/0001-36" .OR. VP_CNPJ = "56.800.782/0001-06" .OR. VP_CNPJ = "13.214.817/0001-04" IF SUBS(REFERENCIA,1,10) = SPAC(10) I_cProd := alltrim(str(FATI->codprod,8)) ELSE I_cProd := alltrim(FATI->REFERENCIA) ENDIF ELSE I_cProd := alltrim(str(FATI->codprod,8)) ENDIF I_cEAN := "" && C ??? IF VP_CNPJ = "05.037.937/0001-55" .OR. VP_CNPJ = "13.214.817/0001-04" //RAIO RIVEX I_xProd := alltrim(FATI->descricao)+" "+alltrim(FATI->NRORIGINAL) ELSEIF VP_CNPJ = "66.016.965/0001-80" //CENTERLIGAS I_xProd := alltrim(fati->marca)+" "+alltrim(FATI->descricao) ELSE I_xProd := alltrim(FATI->descricao) ENDIF I_XPROD := ALLTRIM(I_XPROD) I_NCM := "" && C Opcional * Sele Fis seek fati->codipi vn_dipi = spac(10) if .not. eof() i_ncm := alltrim(Fis->descricao) Endif * sele fati I_EXTIPI := "" && C Opcional I_Genero := "" && N Opcional IF FATI->CODFISCAL = SPAC(05) I_CFOP := TRIM(STRTRAN(FAT->codfiscal,".","",1,5)) ELSE I_CFOP := TRIM(STRTRAN(FATI->codfiscal,".","",1,5)) ENDIF I_uCom := trim(FATI->unidade) I_vUnCom := alltrim(str(FATI->precounit,12,4)) I_vProd := alltrim(str(FATI->totitem,12,2)) I_cEanTrib := "" && C ??? I_uTrib := trim(FATI->unidade) && C ??? I_qCom := alltrim(str(FATI->quantidade,12,4)) I_qTrib := alltrim(str(FATI->quantidade,12,4)) && ??? I_vUnTrib := alltrim(str(FATI->precounit,12,4)) && ??? I_vFrete := "" && N Opcional I_vSeg := "" && N Opcional I_vDesc := "" && N Opcional I_vOutro := "" I_indtot := "1" I_DI := "" I_XPED := "" I_NITEMPED := "" vn_obsite = ALLTRIM(PEDIDOITE) V01_ADPROD = "" mTexto:= mTexto+"H|"+alltrim(str(vn_item,3))+"|"+vn_obsite+"|"+mFim_lin mTexto:= mTexto+"I|"+I_cProd+"|"+I_cEAN+"|"+I_xProd+"|"+I_NCM+"|"+I_EXTIPI+"|"+I_CFOP+"|"+I_uCOM+"|"+I_qCOM+"|"+I_vUnCom+"|"+I_vProd+"|"+I_ceantrib+"|"+I_utrib+"|"+I_qtrib+"|"+I_vunTrib+"|"+I_vFrete+"|"+I_vSeg+"|"+I_vDesc+"|"+I_vOutro+"|"+I_indtot+"|"+I_DI+"|"+I_XPED+I_NITEMPED+"|"+mFim_Lin * *->fracionar outrasdesp frete desconto vn_perc = fati->totitem / fat->vlrmercad vn_perc = round(vn_perc,6) it_frete = fat->vlrfrete * vn_perc it_despe = fat->outradesp * vn_perc it_desco = fat->vlrdescon * vn_perc * IF VP_REGTRB = "3" .OR. VP_REGTRB = "2" IF SUBS(FATI->TRIBUTO,2,2) = "00" N02_Orig := subs(fati->tributo,1,1) && N ??? N02_CST := subs(fati->tributo,2,2) && N ??? N02_modBC := "3" && N ??? if fati->percicms = 0 N02_vBC := alltrim(str(0.00,15,2)) && N ??? N02_pICMS := alltrim(str(0.00,15,2)) && N ??? N02_vICMS := alltrim(str(0.00,15,2)) && N ??? ELSE it_base = fati->totitem+it_frete+it_despe-it_desco N02_vBC := alltrim(str(it_base,15,2)) && N02_pICMS := alltrim(str(fati->percicms,5,2)) N02_vIcms := alltrim(str(((it_base*fati->percicms)/100),15,2)) && ?????? ENDIF mTexto:= mTexto+"M"+"|"+mFim_lin mTexto:= mTexto+"N"+"|"+mFim_lin mTexto:= mTexto+"N02|"+N02_Orig+"|"+N02_CST+"|"+N02_modBC+"|"+N02_vBC+"|"+N02_pICMS+"|"+N02_vICMS+"|"+mFim_Lin ELSEIF SUBS(FATI->TRIBUTO,2,2) = "10" sele sub seek fati->CODIPI+E05_Uf if .not. eof() miva = iva micmsNor = icms micmsSub = icmssubs else miva = 0 micmsnor = 0 micmssub = 0 Endif * sele fati if miva > 0 vn_bassubs = (totitem+vlripi) + (((totitem+vlripi)*miva)/100) vn_vlrsubs = (vn_bassubs * mIcmsSub)/100 vn_vlrsubs = VN_VLRSUBS - ((totitem * mIcmsNor) / 100) else vn_bassubs = 0.00 vn_vlrsubs = 0.00 endif it_base = fati->totitem+it_frete+it_despe-it_desco * N03_Orig := subs(fati->tributo,1,1) && N ??? N03_CST := subs(fati->tributo,2,2) && N ??? N03_vBC := alltrim(str(it_base,15,2)) && N03_pICMS := alltrim(str(fati->percicms,5,2)) N03_vIcms := alltrim(str(((it_base*fati->percicms)/100),15,2)) && ?????? N03_mBC := "0" && N ??? N03_MBCST := "0" && N ??? N03_MVAST := alltrim(str(miva,5,2)) N03_REDBCST:= alltrim(str(percicms,5,2)) && N ??? N03_VBCST := alltrim(str(vn_bassubs,15,2)) && N03_PICMSST:= alltrim(str(mIcmssub,5,2)) && N03_VICMSST:= alltrim(str(vn_vlrsubs,15,2)) && mTexto:= mTexto+"M"+"|"+mFim_lin mTexto:= mTexto+"N"+"|"+mFim_lin mTexto:= mTexto+"N03|"+N03_Orig+"|"+N03_CST+"|"+N03_mBC+"|"+N03_vBC+"|"+N03_pICMS+"|"+N03_vICMS+"|"+N03_mBCST+"|"+N03_MVAST+"|"+N03_REDBCST+"|"+N03_VBCST+"|"+N03_PICMSST+"|"+N03_VICMSST+"|"+mFim_lin ELSEIF SUBS(FATI->TRIBUTO,2,2) = "20" sele sub seek fati->codipi+E05_Uf if .not. eof() miva = iva micmsNor = icms micmsSub = icmssubs else miva = 0 micmsnor = 0 micmssub = 0 Endif sele fati it_base = fati->totitem+it_frete+it_despe-it_desco vn_bassubs = (it_base - (it_base * miva)) vn_vlrsubs = ((it_base - (it_base * miva)) * fati->percimcs) / 100 N02_Orig := subs(fati->tributo,1,1) && N ??? N02_CST := subs(fati->tributo,2,2) && N ??? N02_modBC := "3" && N ??? N02_rBC := alltrim(str(mIva,5,2)) && N N02_vBC := alltrim(str(vn_bassubs,15,2)) && N02_pICMS := alltrim(str(FATI->percicms,5,2)) N02_vIcms := alltrim(str(vn_vlrsubs,15,2)) && ?????? mTexto:= mTexto+"M"+"|"+mFim_lin mTexto:= mTexto+"N"+"|"+mFim_lin mTexto:= mTexto+"N04|"+N02_Orig+"|"+N02_CST+"|"+N02_modBC+"|"+N02_rBC+"|"+N02_vBC+"|"+N02_pICMS+"|"+N02_vICMS+"|"+mFim_Lin ELSEIF SUBS(FATI->TRIBUTO,2,2) = "30" sele sub seek fati->CODIPI+E05_Uf if .not. eof() miva = iva micmsNor = icms micmsSub = icmssubs else miva = 0 micmsnor = 0 micmssub = 0 Endif sele fati it_base = fati->totitem+it_frete+it_despe-it_desco if miva > 0 vn_bassubs = (totitem+vlripi) + (((totitem+vlripi)*miva)/100) vn_vlrsubs = (vn_bassubs * mIcmsSub)/100 vn_vlrsubs = VN_VLRSUBS - ((totitem * mIcmsNor) / 100) else vn_bassubs = 0.00 vn_vlrsubs = 0.00 endif N03_Orig := subs(fati->tributo,1,1) && N ??? N03_CST := subs(fati->tributo,2,2) && N ??? N03_vBC := alltrim(str(it_base,15,2)) && N03_pICMS := alltrim(str(fati->percicms,5,2)) N03_vIcms := alltrim(str(((it_base*fati->percicms)/100),15,2)) && ?????? N03_mBC := "0" && N ??? N03_MBCST := "0" && N ??? N03_MVAST := alltrim(str(miva,5,2)) N03_REDBCST:= alltrim(str(percicms,5,2)) && N ??? N03_VBCST := alltrim(str(vn_bassubs,15,2)) && N03_PICMSST:= alltrim(str(mIcmssub,5,2)) && N03_VICMSST:= alltrim(str(vn_vlrsubs,15,2)) && mTexto:= mTexto+"M"+"|"+mFim_lin mTexto:= mTexto+"N"+"|"+mFim_lin mTexto:= mTexto+"N05|"+N03_Orig+"|"+N03_CST+"|"+N03_mBC+"|"+N03_MVAST+"|"+N03_REDBCST+"|"+N03_VBCST+"|"+N03_PICMSST+"|"+N03_VICMSST+"|"+mFim_lin ELSEIF SUBS(FATI->TRIBUTO,2,2) = "40" .OR. SUBS(FATI->TRIBUTO,2,2) = "41" it_base = fati->totitem+it_frete+it_despe-it_desco N02_Orig := subs(fati->tributo,1,1) && N ??? N02_CST := subs(fati->tributo,2,2) && N ??? N02_modBC := "3" && N ??? N02_vBC := alltrim(str(it_base,15,2)) && N02_pICMS := alltrim(str(fati->percicms,5,2)) N02_vIcms := alltrim(str(((it_base*fati->percicms)/100),15,2)) && ?????? mTexto:= mTexto+"M"+"|"+mFim_lin mTexto:= mTexto+"N"+"|"+mFim_lin mTexto:= mTexto+"N06|"+N02_Orig+"|"+N02_CST+"|"+n02_vicms+"|"+"|"+mFim_Lin ELSEIF SUBS(FATI->TRIBUTO,2,2) = "50" it_base = fati->totitem+it_frete+it_despe-it_desco N02_Orig := subs(fati->tributo,1,1) && N ??? N02_CST := subs(fati->tributo,2,2) && N ??? N02_modBC := "0" && N ??? N02_vBC := alltrim(str(it_base,15,2)) && N02_pICMS := alltrim(str(fati->percicms,5,2)) N02_vIcms := alltrim(str(((it_base*fati->percicms)/100),15,2)) && ?????? mTexto:= mTexto+"M"+"|"+mFim_lin mTexto:= mTexto+"N"+"|"+mFim_lin mTexto:= mTexto+"N06|"+N02_Orig+"|"+N02_CST+"|"+n02_vicms+"|"+"|"+mFim_Lin ELSEIF SUBS(FATI->TRIBUTO,2,2) = "51" it_base = fati->totitem+it_frete+it_despe-it_desco N07_Orig := subs(fati->tributo,1,1) && N ??? N07_CST := subs(fati->tributo,2,2) && N ??? N07_modBC := "3" && N ??? N07_vBC := alltrim(str(it_base,15,2)) && N07_pICMS := alltrim(str(fati->percicms,5,2)) N07_vIcms := alltrim(str(((it_base*fati->percicms)/100),15,2)) && ?????? N07_pRDBc := alltrim(str(fati->percicms,5,2)) mTexto:= mTexto+"M"+"|"+mFim_lin mTexto:= mTexto+"N"+"|"+mFim_lin mTexto:= mTexto+"N07|"+N07_Orig+"|"+N07_CST+"|"+N07_MODBC+"|"+N07_PRDBC+"|"+n07_vbc+"|"+n07_picms+"|"+n07_vicms+"|"+mFim_Lin ELSEIF SUBS(FATI->TRIBUTO,2,2) = "60" it_base = fati->totitem+it_frete+it_despe-it_desco N08_Orig := subs(fati->tributo,1,1) && N ??? N08_CST := subs(fati->tributo,2,2) && N ??? N08_modBC := "0" && N ??? N08_vBC := alltrim(str(it_base,15,2)) && N08_pICMS := alltrim(str(fati->percicms,5,2)) N08_vIcms := alltrim(str(((it_base*fati->percicms)/100),15,2)) && ?????? mTexto:= mTexto+"M"+"|"+mFim_lin mTexto:= mTexto+"N"+"|"+mFim_lin mTexto:= mTexto+"N08|"+N08_Orig+"|"+N08_CST+"|"+N08_VBC+"|"+N08_PICMS+"|"+mFim_Lin ELSEIF SUBS(FATI->TRIBUTO,2,2) = "70" it_base = fati->totitem+it_frete+it_despe-it_desco N08_Orig := subs(fati->tributo,1,1) && N ??? N08_CST := subs(fati->tributo,2,2) && N ??? N08_modBC := "0" && N ??? N08_vBC := alltrim(str(it_base,15,2)) && N08_pICMS := alltrim(str(fatI->percicms,5,2)) N08_vIcms := alltrim(str(((it_base*FATI->percicms)/100),15,2)) && ?????? mTexto:= mTexto+"M"+"|"+mFim_lin mTexto:= mTexto+"N"+"|"+mFim_lin mTexto:= mTexto+"N09|"+N08_Orig+"|"+N08_CST+"|"+N08_VBC+"|"+N08_PICMS+"|"+mFim_Lin ELSEIF SUBS(FATI->TRIBUTO,2,2) = "90" it_base = fati->totitem+it_frete+it_despe-it_desco N10_Orig := subs(fati->tributo,1,1) && N ??? N10_CST := subs(fati->tributo,2,2) && N ??? N10_modBC := "3" && N ??? N10_vBC := alltrim(str(it_base,15,2)) && N10_pICMS := alltrim(str(FATI->percicms,5,2)) N10_vIcms := alltrim(str(((it_base*fati->percicms)/100),15,2)) && ?????? mTexto:= mTexto+"M"+"|"+mFim_lin mTexto:= mTexto+"N"+"|"+mFim_lin mTexto:= mTexto+"N10|"+N10_Orig+"|"+N10_CST+"|"+N10_MODBC+"|"+N10_PICMS+"|"+mFim_Lin ELSE it_base = fati->totitem+it_frete+it_despe-it_desco N06_Orig := subs(fati->tributo,1,1) && N ??? N06_CST := subs(fati->tributo,2,2) && N ??? mTexto:= mTexto+"M"+"|"+mFim_lin mTexto:= mTexto+"N"+"|"+mFim_lin mTexto:= mTexto+"N06|"+N06_Orig+"|"+N06_CST+"|"+mFim_Lin ENDIF ELSE IF SUBS(FATI->TRIBUTO,2,3) = "101" it_base = fati->totitem+it_frete+it_despe-it_desco N10_Orig := subs(fati->tributo,1,1) && N ??? N10_CST := subs(fati->tributo,2,3) && N ??? N10_pNaci := alltrim(str(VP_PEPP,5,2)) N10_vNaci := alltrim(str(((it_base*VP_PEPP)/100),15,2)) && ?????? mTexto:= mTexto+"M"+"|"+mFim_lin mTexto:= mTexto+"N"+"|"+mFim_lin mTexto:= mTexto+"N10c|"+N10_Orig+"|"+N10_CST+"|"+N10_pNaci+"|"+N10_vNaci+"|"+mFim_Lin ELSEIF SUBS(FATI->TRIBUTO,2,3) = "102" .OR. SUBS(FATI->TRIBUTO,2,3) = "103" .OR. SUBS(FATI->TRIBUTO,2,3) = "300" .OR. SUBS(FATI->TRIBUTO,2,3) = "400" it_base = fati->totitem+it_frete+it_despe-it_desco N10_Orig := subs(fati->tributo,1,1) && N ??? N10_CST := subs(fati->tributo,2,3) && N ??? mTexto:= mTexto+"M"+"|"+mFim_lin mTexto:= mTexto+"N"+"|"+mFim_lin mTexto:= mTexto+"N10d|"+N10_Orig+"|"+N10_CST+"|"+mFim_Lin ELSEIF SUBS(FATI->TRIBUTO,2,3) = "201" it_base = fati->totitem+it_frete+it_despe-it_desco sele sub seek fati->CODIPI+E05_Uf if .not. eof() miva = iva micmsNor = icms micmsSub = icmssubs else miva = 0 micmsnor = 0 micmssub = 0 Endif sele fati if miva > 0 vn_bassubs = (totitem+vlripi) + (((totitem+vlripi)*miva)/100) vn_vlrsubs = (vn_bassubs * mIcmsSub)/100 vn_vlrsubs = VN_VLRSUBS - ((totitem * mIcmsNor) / 100) else vn_bassubs = 0.00 vn_vlrsubs = 0.00 endif N10_Orig := subs(fati->tributo,1,1) && N ??? N10_CST := subs(fati->tributo,2,3) && N ??? N10_vBC := alltrim(str(it_base,15,2)) && N10_pICMS := alltrim(str(fati->percicms,5,2)) N10_vIcms := alltrim(str(((it_base*fati->percicms)/100),15,2)) && ?????? N10_mBC := "0" && N ??? N10_MBCST := "0" && N ??? N10_MVAST := alltrim(str(miva,5,2)) N10_REDBCST:= alltrim(str(percicms,5,2)) && N ??? N10_VBCST := alltrim(str(vn_bassubs,15,2)) && N10_PICMSST:= alltrim(str(mIcmssub,5,2)) && N10_VICMSST:= alltrim(str(vn_vlrsubs,15,2)) && N10_PCREDSN := alltrim(str(VP_PEPP,5,2)) N10_VCREDSN := alltrim(str(((FATI->totitem*VP_PEPP)/100),15,2)) && ?????? mTexto:= mTexto+"M"+"|"+mFim_lin mTexto:= mTexto+"N"+"|"+mFim_lin mTexto:= mTexto+"N10e|"+N10_Orig+"|"+N10_CST+"|"+N10_mBC+"|"+N10_MVAST+"|"+N10_REDBCST+"|"+N10_VBCST+"|"+N10_PICMSST+"|"+N10_VICMSST+"|"+N10_PCREDSN+"|"+N10_VCREDSN+"|"+mFim_lin ELSEIF SUBS(FATI->TRIBUTO,2,3) = "202" .OR. SUBS(FATI->TRIBUTO,2,3) = "203" it_base = fati->totitem+it_frete+it_despe-it_desco sele sub seek fati->CODIPI+E05_Uf if .not. eof() miva = iva micmsNor = icms micmsSub = icmssubs else miva = 0 micmsnor = 0 micmssub = 0 Endif sele fati if miva > 0 vn_bassubs = (totitem+vlripi) + (((totitem+vlripi)*miva)/100) vn_vlrsubs = (vn_bassubs * mIcmsSub)/100 vn_vlrsubs = VN_VLRSUBS - ((totitem * mIcmsNor) / 100) else vn_bassubs = 0.00 vn_vlrsubs = 0.00 endif N10_Orig := subs(fati->tributo,1,1) && N ??? N10_CST := subs(fati->tributo,2,3) && N ??? N10_vBC := alltrim(str(FATI->totitem,15,2)) && N10_pICMS := alltrim(str(FATI->percicms,5,2)) N10_vIcms := alltrim(str(((FATI->totitem*FATI->percicms)/100),15,2)) && ?????? N10_mBC := "0" && N ??? N10_MBCST := "0" && N ??? N10_MVAST := alltrim(str(miva,5,2)) N10_REDBCST:= alltrim(str(percicms,5,2)) && N ??? N10_VBCST := alltrim(str(vn_bassubs,15,2)) && N10_PICMSST:= alltrim(str(mIcmssub,5,2)) && N10_VICMSST:= alltrim(str(vn_vlrsubs,15,2)) && mTexto:= mTexto+"M"+"|"+mFim_lin mTexto:= mTexto+"N"+"|"+mFim_lin mTexto:= mTexto+"N10f|"+N10_Orig+"|"+N10_CST+"|"+N10_mBC+"|"+N10_MVAST+"|"+N10_REDBCST+"|"+N10_VBCST+"|"+N10_PICMSST+"|"+N10_VICMSST+"|"+mFim_lin ELSEIF SUBS(FATI->TRIBUTO,2,3) = "500" it_base = fati->totitem+it_frete+it_despe-it_desco sele sub seek fati->CODIPI+E05_Uf if .not. eof() miva = iva micmsNor = icms micmsSub = icmssubs else miva = 0 micmsnor = 0 micmssub = 0 Endif sele fati N10_Orig := subs(fati->tributo,1,1) && N ??? N10_CST := subs(fati->tributo,2,3) && N ??? N10_BCSTRET:= alltrim(str(0.00,15,2)) && N ??? N10_ICMTRET:= alltrim(str(0.00,15,2)) && N ??? mTexto:= mTexto+"M"+"|"+mFim_lin mTexto:= mTexto+"N"+"|"+mFim_lin mTexto:= mTexto+"N10g|"+N10_Orig+"|"+N10_CST+"|"+N10_mBC+"|"+N10_BCSTRET+"|"+N10_ICMTRET+"|"+mFim_lin ELSEIF SUBS(FATI->TRIBUTO,2,3) = "900" it_base = fati->totitem+it_frete+it_despe-it_desco sele sub seek fati->CODIPI+E05_Uf if .not. eof() miva = iva micmsNor = icms micmsSub = icmssubs else miva = 0 micmsnor = 0 micmssub = 0 Endif sele fati if miva > 0 vn_bassubs = (totitem+vlripi) + (((totitem+vlripi)*miva)/100) vn_vlrsubs = (vn_bassubs * mIcmsSub)/100 vn_vlrsubs = VN_VLRSUBS - ((totitem * mIcmsNor) / 100) else vn_bassubs = 0.00 vn_vlrsubs = 0.00 endif N10_Orig := subs(fati->tributo,1,1) && N ??? N10_CST := subs(fati->tributo,2,3) && N ??? N10_vBC := alltrim(str(FATI->totitem,15,2)) && N10_pICMS := alltrim(str(FATI->percicms,5,2)) N10_vIcms := alltrim(str(((FATI->totitem*FATI->percicms)/100),15,2)) && ?????? N10_mBC := "0" && N ??? N10_MBCST := "0" && N ??? N10_MVAST := alltrim(str(miva,5,2)) N10_REDBCST:= alltrim(str(percicms,5,2)) && N ??? N10_VBCST := alltrim(str(vn_bassubs,15,2)) && N10_PICMSST:= alltrim(str(mIcmssub,5,2)) && N10_VICMSST:= alltrim(str(vn_vlrsubs,15,2)) && N10_PCREDSN := alltrim(str(VP_PEPP,5,2)) N10_VCREDSN := alltrim(str(((FATI->totitem*VP_PEPP)/100),15,2)) && ?????? mTexto:= mTexto+"M"+"|"+mFim_lin mTexto:= mTexto+"N"+"|"+mFim_lin mTexto:= mTexto+"N10h|"+N10_Orig+"|"+N10_CST+"|"+N10_mBC+"|"+N10_MVAST+"|"+N10_REDBCST+"|"+N10_VBCST+"|"+N10_PICMSST+"|"+N10_VICMSST+"|"+N10_PCREDSN+"|"+N10_VCREDSN+"|"+mFim_lin ENDIF ENDIF O_cIEnq := "" && Opcional O_CNPJProd := "" && Opcional O_cSelo := "" && Opcional O_qSelo := "" && opcional O_cEnq := "999" && C ???????? O07_vIpi := alltrim(str(FATI->vlripi,15,2)) O10_vBc := alltrim(str(FATI->totitem,15,2)) && ??????? O10_pIPI := alltrim(str(FATI->percipi,5,2)) O11_vUnid := "" && ??????? O11_qUnid := "" && ??????? IF VAL(SUBS(FATI->CODFISCAL,1,1)) > 4 IF FATI->PERCIPI = 0 IF SUBS(FATI->TRIBUTO,2,2) = "40" O07_CST := "55" && C ???????? ELSEIF SUBS(FATI->TRIBUTO,2,2) = "41" O07_CST := "55" && C ???????? ELSE O07_CST := "51" && C ???????? ENDIF ELSE O07_CST := "50" && C ???????? ENDIF ELSE IF FATI->PERCIPI = 0 IF SUBS(FATI->TRIBUTO,2,2) = "40" O07_CST := "05" && C ???????? ELSEIF SUBS(FATI->TRIBUTO,2,2) = "41" O07_CST := "05" && C ???????? ELSE O07_CST := "01" && C ???????? ENDIF ELSE O07_CST := "00" && C ???????? ENDIF ENDIF IF O07_CST = "00" .OR. O07_CST = "50" mTexto:= mTexto+"O|"+O_cIEnq+"|"+O_cnpjprod+"|"+O_cSelo+"|"+O_qSelo+"|"+O_cEnq+"|"+mFim_Lin mTexto:= mTexto+"O07|"+O07_CST+"|"+O07_vIPI+"|"+mFim_Lin mTexto:= mTexto+"O10|"+O10_vBC+"|"+O10_pIpi+"|"+mFim_Lin ELSE mTexto:= mTexto+"O|"+O_cIEnq+"|"+O_cnpjprod+"|"+O_cSelo+"|"+O_qSelo+"|"+O_cEnq+"|"+mFim_Lin mTexto:= mTexto+"O08|"+O07_CST+"|"+mFim_Lin ENDIF *-->PIS VN_VLRPIS := ((TOTITEM * VN_PERCPIS)/100) TOT_PIS := TOT_PIS + VN_VLRPIS Q02_BASPIS := alltrim(str(FATI->totitem,15,2)) && ??????? Q02_ALIPIS := ALLTRIM(STR(VN_PERCPIS,6,2)) Q02_VLRPIS := ALLTRIM(STR(VN_VLRPIS,15,2)) *-->FINSOCIAL VN_VLRFIN := ((TOTITEM * VN_PERCFIN)/100) TOT_FIN := TOT_FIN + VN_VLRFIN S02_BASFIN := alltrim(str(FATI->totitem,15,2)) && ??????? S02_ALIFIN := ALLTRIM(STR(VN_PERCFIN,6,2)) S02_VLRFIN := ALLTRIM(STR(VN_VLRFIN,15,2)) IF Q02_TRIPIS = "01" mTexto:= mTexto+"Q"+"|"+mFim_lin mTexto:= mTexto+"Q02|"+Q02_TRIPIS+"|"+Q02_BASPIS+"|"+Q02_ALIPIS+"|"+Q02_VLRPIS+"|"+mFim_Lin ELSEIF Q02_TRIPIS = "99" mTexto:= mTexto+"Q"+"|"+mFim_lin mTexto:= mTexto+"Q05|"+Q02_TRIPIS+"|"+Q02_ALIPIS+"|"+mFim_lin mTexto:= mTexto+"Q07|"+Q02_BASPIS+"|"+Q02_ALIPIS+"|"+mFim_lin ELSE mTexto:= mTexto+"Q"+"|"+mFim_lin mTexto:= mTexto+"Q04|"+Q02_TRIPIS+"|"+mFim_Lin ENDIF * IF S02_TRIFIN = "01" mTexto:= mTexto+"S"+"|"+mFim_lin mTexto:= mTexto+"S02|"+S02_TRIFIN+"|"+S02_BASFIN+"|"+S02_ALIFIN+"|"+S02_VLRFIN+"|"+mFim_Lin ELSEIF S02_TRIFIN = "99" mTexto:= mTexto+"S"+"|"+mFim_lin mTexto:= mTexto+"S05|"+S02_TRIFIN+"|"+S02_ALIFIN+"|"+mFim_lin mTexto:= mTexto+"S07|"+S02_BASFIN+"|"+S02_ALIFIN+"|"+mFim_lin ELSE mTexto:= mTexto+"S"+"|"+mFim_lin mTexto:= mTexto+"S04|"+S02_TRIFIN+"|"+mFim_Lin ENDIF vn_item=vn_item+1 Skip ENDDO *---> Totais W02_vBC := alltrim(str(fat->baseicm,15,2)) && N W02_vICMS := alltrim(str(fat->valoricm,15,2)) && N W02_vBCST := alltrim(str(fat->basesubs,15,2)) && N ??? W02_vST := alltrim(str(fat->vlrsubs,15,2)) && N ??? W02_vProd := alltrim(str(fat->vlrmercad,15,2)) && N W02_vFrete := alltrim(str(fat->vlrfrete,15,2)) && N W02_vSEG := alltrim(str(fat->vlrseguro,15,2)) && N W02_vDesc := alltrim(str(fat->vlrdescon,15,2)) && N W02_vII := alltrim(str(0.00,15,2)) && N ??? W02_vIPI := alltrim(str(fat->valoripi,15,2)) && N W02_vPIS := alltrim(str(TOT_PIS,15,2)) && N ??? W02_vCofins := alltrim(str(TOT_FIN,15,2)) && N ??? W02_vOutro := alltrim(str(fat->outradesp,15,2)) && N W02_vNf := alltrim(str(fat->totalnota,15,2)) && N mTexto:= mTexto+"W"+"|"+mFim_lin *Texto:= mTexto+"W02|"+W02_vBC+"|"+W02_vICMS+"|"+W02_vBCST+"|"+W02_vST+"|"+W02_vPROD+"|"+W02_vFrete+"|"+W02_vSEG+"|"+W02_vDesc+"|"+W02_vII+"|"+W02_vIPI+"|"+W02_vIPI+"|"+W02_vPIS+"|"+W02_vCOFINS+"|"+W02_vOutro+"|"+W02_vNF+mFim_lin mTexto:= mTexto+"W02|"+W02_vBC+"|"+W02_vICMS+"|"+W02_vBCST+"|"+W02_vST+"|"+W02_vPROD+"|"+W02_vFrete+"|"+W02_vSEG+"|"+W02_vDesc+"|"+W02_vIPI+"|"+W02_vIPI+"|"+W02_vPIS+"|"+W02_vCOFINS+"|"+W02_vOutro+"|"+W02_vNF+"|"+mFim_lin *---> Transporte if fat->tipofrete = "1" x_modFrete := "0" && N else x_modFrete := "1" && N endif * X05_Fone := alltrim(tra->telefone1) && N opcional X05_Fone := STRTRAN(x05_Fone," ","",1,40) X05_Fone := STRTRAN(x05_Fone,":","",1,40) X05_Fone := STRTRAN(x05_Fone,"/","",1,40) X05_Fone := STRTRAN(x05_Fone,"(","",1,40) X05_Fone := STRTRAN(x05_Fone,")","",1,40) X05_Fone := STRTRAN(x05_Fone,")","",1,40) X05_Fone := STRTRAN(x05_Fone,"/","",1,40) X05_Fone := STRTRAN(x05_Fone,"-","",1,40) X05_Fone := alltrim(x05_Fone) X05_Fone := VAL(x05_Fone) X05_Fone := strzero(x05_fone,10) IF VP_CNPJ = "05.037.937/0001-55" .OR. VP_CNPJ = "13.214.817/0001-04" //RAIO RIVEX X03_xNome := TRIM(tra->nome)+" "+x05_fone && C ELSE X03_xNome := TRIM(tra->nome) && C ENDIF X03_IE := TRIM(tra->estadualrg) && C X03_xEnder := TRIM(tra->endereco) && C X03_UF := TRIM(tra->estado) && C X03_xMun := TRIM(tra->cidade) && C X04_cnpj := TRIM(tra->cgccpf) if len(alltrim(TRA->cgccpf)) = 14 .or. subs(tra->cgccpf,1,14) = spac(14) E_cnpj=.t. E_cnpj_cpf := alltrim(TRA->cgccpf) && Verificar se é CNPJ/CPF usar zeros a esquerda else E_cnpj=.f. E_cnpj_cpf := alltrim(TRA->cgccpf) && Verificar se é CNPJ/CPF usar zeros a esquerda endif mTexto:= mTexto+"X|"+X_modFrete+"|"+mFim_lin mTexto:= mTexto+"X03|"+X03_xNome+"|"+X03_IE+"|"+X03_xEnder+"|"+X03_UF+"|"+x03_xMun+"|"+mFim_lin mTexto:= mTexto+iif(E_cnpj,"X04","X05")+"|"+E_cnpj_cpf+"|"+mFim_Lin IF SUBS(TRA->PLACA,1,3) # SPAC(03) X18_PLACA := TRIM(tra->placa) X18_PLACA := STRTRAN(X18_PLACA,"-","",1,40) X18_PLACA := STRTRAN(X18_PLACA,":","",1,40) X18_PLACA := STRTRAN(X18_PLACA," ","",1,40) X18_UFPLA := TRIM(TRA->PLACAUF) mTexto:= mTexto+"X18|"+X18_PLACA+"|"+X18_UFPLA+"|"+"|"+mFim_lin ENDIF *---> Volumes X26_qVOL := alltrim(str(fat->qtde1,15)) && N X26_Esp := TRIM(fat->especie1) && C X26_Marca := TRIM(fat->marca1) && C X26_nVOL := TRIM(FAT->NUMERO1) && C X26_PesoL := alltrim(str(fat->pesoliq1,15,3)) && N X26_PesoB := alltrim(str(fat->pesobru1,15,3)) && N mTexto:=mTexto+"X26|"+X26_QVOL+"|"+X26_ESP+"|"+X26_MARCA+"|"+X26_NVOL+"|"+X26_PESOL+"|"+X26_PESOB+"|"+mFim_Lin *---> Falta Duplicatas Y02_NFAT := alltrim(STR(fat->nronfiscal,6)) Y02_VORIG := alltrim(str(fat->totalnota,15,2)) && N Y02_vDESC := "" && N Y02_VLIQ := alltrim(str(fat->totalnota,15,2)) && N mTexto:= mTexto+"Y|"+mFim_lin mTexto:=mTexto+"Y02|"+Y02_NFAT+"|"+Y02_VORIG+"|"+Y02_VDESC+"|"+Y02_VLIQ+"|"+mFim_Lin * SELE DUP DBSETORDER(1) SET SOFT ON SEEK STR(FAT->NRONFISCAL,8) SET SOFT OFF DO WHILE FAT->NRONFISCAL = NUMERODUPL .AND. .NOT. EOF() IF EMPRESA # VP_EMP SKIP LOOP ENDIF IF SERIE = "A" Y07_Ndup = ALLTRIM(str(fat->nronfiscal,7))+"A" Y07_dVenc = subs(dtoc(datavencim),7,4)+"-"+subs(dtoc(datavencim),4,2)+"-"+subs(dtoc(datavencim),1,2) && D Y07_Vdup = alltrim(str(VALORDUPLI,15,2)) mTexto:=mTexto+"Y07|"+Y07_Ndup+"|"+Y07_dVenc+"|"+Y07_Vdup+"|"+mFim_Lin ELSEIF SERIE = "B" Y07_Ndup = ALLTRIM(str(fat->nronfiscal,7))+"B" Y07_dVenc = subs(dtoc(datavencim),7,4)+"-"+subs(dtoc(datavencim),4,2)+"-"+subs(dtoc(datavencim),1,2) && D Y07_Vdup = alltrim(str(VALORDUPLI,15,2)) mTexto:=mTexto+"Y07|"+Y07_Ndup+"|"+Y07_dVenc+"|"+Y07_Vdup+"|"+mFim_Lin ELSEIF SERIE = "C" Y07_Ndup = ALLTRIM(str(fat->nronfiscal,7))+"C" Y07_dVenc = subs(dtoc(datavencim),7,4)+"-"+subs(dtoc(datavencim),4,2)+"-"+subs(dtoc(datavencim),1,2) && D Y07_Vdup = alltrim(str(VALORDUPLI,15,2)) mTexto:=mTexto+"Y07|"+Y07_Ndup+"|"+Y07_dVenc+"|"+Y07_Vdup+"|"+mFim_Lin ELSEIF SERIE = "D" Y07_Ndup = ALLTRIM(str(fat->nronfiscal,7))+"D" Y07_dVenc = subs(dtoc(datavencim),7,4)+"-"+subs(dtoc(datavencim),4,2)+"-"+subs(dtoc(datavencim),1,2) && D Y07_Vdup = alltrim(str(VALORDUPLI,15,2)) mTexto:=mTexto+"Y07|"+Y07_Ndup+"|"+Y07_dVenc+"|"+Y07_Vdup+"|"+mFim_Lin ELSEIF SERIE = "E" Y07_Ndup = ALLTRIM(str(fat->nronfiscal,7))+"E" Y07_dVenc = subs(dtoc(datavencim),7,4)+"-"+subs(dtoc(datavencim),4,2)+"-"+subs(dtoc(datavencim),1,2) && D Y07_Vdup = alltrim(str(VALORDUPLI,15,2)) mTexto:=mTexto+"Y07|"+Y07_Ndup+"|"+Y07_dVenc+"|"+Y07_Vdup+"|"+mFim_Lin ELSEIF SERIE = "F" Y07_Ndup = ALLTRIM(str(fat->nronfiscal,7))+"F" Y07_dVenc = subs(dtoc(datavencim),7,4)+"-"+subs(dtoc(datavencim),4,2)+"-"+subs(dtoc(datavencim),1,2) && D Y07_Vdup = alltrim(str(VALORDUPLI,15,2)) mTexto:=mTexto+"Y07|"+Y07_Ndup+"|"+Y07_dVenc+"|"+Y07_Vdup+"|"+mFim_Lin ENDIF SKIP ENDDO mTexto := mTexto + "Z||"+vn_obs1+" "+vn_obs2+" "+VN_OBS3+" "+VN_OBS4+" "+VN_OBS5+" "+VN_OBS6+" "+VN_OBS7+"|"+mFim_lin TIRA_ACENTO(mTexto) fwrite(harq1,mtexto) * SELE CID DBCLOSEAREA() * FERASE(VP_DNFE+"ENVIANFE.RET") FERASE(VP_DNFE+"TXT2XML.LOG") FERASE(VP_DNFE+"VALIDXML.LOG") * * FW24 + CLIP5_2 email :edutraini@uol.com.br Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted March 21, 2011 Report Share Posted March 21, 2011 Edu, lógico que ajuda..!!!! Mas você poderia me enviar o LayOut deste arquivo para que eu possa entender o significado de cada campo, por exemplo : N10, Y07, W02, etc.... Mas mesmo assim, por enquanto, você já esta clareando o meu caminho...! ________________________ Gilberto Herminio - Programador Pleno III - Mogi das Cruzes-SP xHB121+Fw912 / C#/SQL2008 "Não Desenvolvo Software, crio arte Binaria...." Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.