Clipper On Line • Ver Tópico - Tutorial ACBRMonitorPlus

Tutorial ACBRMonitorPlus

Discussão sobre desenvolvimento de software para atender as exigências da legislação fiscal e tributária (ECF, TEF, SINTEGRA, NF-e, ECD, EFD, etc.)

Moderador: Moderadores

 

Tutorial ACBRMonitorPlus

Mensagempor fladimir » 16 Mai 2016 21:24

Acho que a maioria dos programadores que vendem sistemas não tem direito legal (cnpj), nem recursos, pra adquirir um
certificado para realizar os testes, o que é entristecedor....


Com relação a maioria não ter CNPJ, acredito q possa ser assim, mas hj não esta complicado de tirar CNPJ, da pra tirar em menos de 10 minutos online sem pagar nada como MEI e depois paga uma taxa mensal entre 42,00 e 46,00.

Sabemos q é mais um custo, mas quem quer trabalhar com sistemas para área fiscal vai ter q investir.

Quanto ao certificado o valor é 165,00 a 190,00 o modelo A1, mas não é um valor absurdo e precisá se feito o investimento.

A realidade é essa, vejo q são barreiras a serem transpostas mas não é impossível.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Tutorial ACBRMonitorPlus

Mensagempor ANDRIL » 17 Mai 2016 07:23

fladimir escreveu:Sabemos q é mais um custo, mas quem quer trabalhar com sistemas para área fiscal vai ter q investir.

Lembrando em se tratando de S@T, não ADIANTA ter CNPJ como MEI se quer revender seus programas, precisa abrir uma empresa com CNAEs na classificação 62**.
Fique atento!
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar de usuário

ANDRIL
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1270
Data de registro: 06 Jul 2004 00:44
Curtiu: 12 vezes
Mens.Curtidas: 46 vezes

Tutorial ACBRMonitorPlus

Mensagempor lugab » 17 Mai 2016 12:28

Valeu as dicas, pessoal...

Mas eu me referi aos programadores pessoa física, avulsos, que nem contrato formal possuem na maioria dos casos....
lugab
lugab
Colaborador

Colaborador
 
Mensagens: 843
Data de registro: 19 Mai 2009 15:58
Curtiu: 126 vezes
Mens.Curtidas: 38 vezes

Tutorial ACBRMonitorPlus

Mensagempor JoséQuintas » 17 Mai 2016 16:47

Quando a gente quer fazer, e precisa fazer, a gente faz.

Comecei com NFE em 2008, o primeiro ramo obrigatório.
Não existia nada do que existe hoje, ninguém pra pedir ajuda e nenhum material disponível pra ajuda.
Hoje em dia tá fácil.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Tutorial ACBRMonitorPlus

Mensagempor AutomoSistema » 20 Mai 2016 12:02

Boa tarde Fladimir, tenho uma pergunta, trabalha com a daruma?
AutomoSistema
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 87
Data de registro: 27 Nov 2015 21:09
Cidade/Estado: Jardim-MS
Curtiu: 0 vez
Mens.Curtidas: 4 vezes

Tutorial ACBRMonitorPlus

Mensagempor fladimir » 20 Mai 2016 15:55

Aqui no fórum se não me engano tem um exemplo, teria q procurar...

Mas basicamente é via troca de arquivos, vc no monitor configurar a pasta q vai ser monitorada e vai criando os arquivos TXT com os comandos e vai lendo os
arquivos q o ACBr vai criar apos ler os teus arquivos q no caso são os arquivos de retorno...

Exemplo

Vc cria um arquivo chamado ENT.TXT contendo:

ECF.LeituraX


Ai o ACBr vai ver q tem o arquivo na pasta ler o arquivo ver q é o comando para Leitura X e fazer a emissão da leitura X e devolver um retorno chamado SAI.TXT contendo:

OK: 


Ai vc le o arquivo de retorno e sabera q deu certo... se estiver lá dentro ERRO tera q tratar interpretando...

Basicamente é isso.. pra vender a mesma coisa mas com os devidos comandos dentro do arquivo.. tipo

ECF.AbreCupom
ECF.VendeItem(....)
ECF.VendeItem(....)
ECF.FechaCupom


Esta listagem de comandos esta no próprio manual q acompanha qdo vc instala o ACBr.

É ler o manual e saber o comando necessário.... além de teu sistema ficar compatível com várias ECFs de um modo geral.

[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Tutorial ACBRMonitorPlus

Mensagempor porter » 25 Mai 2016 13:56

olá fladimir, por favor, se você puder tirar minha duvida, a aba Monitor do AcbrMonitor Plus está configurada assim:

Entrada: ENTNFE.TXT
Saída: SAINFE.TXT

Log de Comandos habilitado
Arquivo: LOG.TXT

qual deve ser o conteúdo do comando Caminho->PathNFe

Creio que Caminho é um arquivo e PathNFe, é um campo, qual conteúdo deve ter nesse campo ?

obrigado.
porter
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1024
Data de registro: 10 Dez 2009 15:44
Cidade/Estado: OLIMPIA-SP
Curtiu: 3 vezes
Mens.Curtidas: 23 vezes

Tutorial ACBRMonitorPlus

Mensagempor fladimir » 25 Mai 2016 14:29

na aba monitorar esta ENT.TXT então o caminho é a Pasta que o ACBr esta instalado, ou seja, se for a pasta padrão será

C:\ACBrMonitor\


Se vc quiser monitorar outra pasta igual eu faço, eu mudo lá onde esta Monitorar a pasta e esta ENT.TXT eu coloco:

C:\PastadoMeuSistema\ACBr\ENT.TXT 


Ai no sistema o Caminho->PathNFe ficará:

C:\PastadoMeuSistema\ACBr\
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Tutorial ACBRMonitorPlus

Mensagempor Mário Isa » 27 Mai 2016 08:53

Muito bom esse tópico.
Que tal enriquecê-lo ainda mais com o MDF-e ?

Vou deixar aqui o meu caminho das pedras...
o .prg inicial de como tentar fazer um mdfe pelo acbrmonitor plus.

==============================================================
detectando quando é outro estado

   if confirma('NFE foi emitida. Deseja imprimir agora')="S"

    if cliente->estcli # vem(ontem->uf)
     Msginfo('ATENÇÃO ! Notas emitidas para outro estado entregues por você ou transportadora tem que acompanhar a MDF-e.')

     if confirma('Deseja emitir o MDF-e') = "S"
      emitir_mdfe(totnf)
     else
      Tecle(6039) // Se necessário emita-o pelo F8-MDFe
     end

    end

==============================================================

//----------->
     Function emitir_mdfe(totnf)
     acbrinsta := acbrnfeinsta()

     if !fornec->(loc("!empty(tara)"))
      Tecle(6030) // hb_ansitooem('Não existe proprietário e/ou motorista cadastrado.'))
      return nil
     end

     na_janela(maxrow(),1,'Confeccionando Mdf-e....',NIL,8)
     TEcle(6031) // hb_ansitooem('Entre com o código do fornecedor proprietário do veículo.'))
     fornec_tran := ESCOMER('FORNEC','NOME','CODFOR')
     fornec->(dbseek(fornec_tran))
     if empty(fornec->tara) .or. empty(fornec->placa)
      Tecle(6032) //hb_ansitooem('Fornecedor inválido. Ajuste o fornecedor proprietário e
      return nil
     end
     TEcle(6033) //hb_ansitooem('Entre com o código do fornecedor MOTORISTA.'))
     fornec_moto := ESCOMER('FORNEC','NOME','CODFOR')

     peso_tot_car := 0
     valor_tot_nfe := totnf

     vortadado := pededado('Peso Total..: ',peso_tot_car,'@e 99,999.99','.t.','Valor Total.: ',valor_tot_nfe,'@e 99,999.99','.t.')
     peso_tot_car := vortadado[1]
     valor_tot_nfe := vortadado[2]

     if lastkey() = 27
      Tecle(6022) // abortado
      return nil
     end

     if mdfe_nfe()
      tecle('Emitido com sucesso.')

      //apendanot("MDFE")

     else
      tecle(hb_ansitooem('Falha na emissão do MDF-e'))
     end
     fechajanela()
     return nil
==============================================================

Function mdfe_nfe()
local fll := ''
local formar := subs(vem(ontem->codcidad),1,2) + subs(dtoc(hoje),9) + subs(dtoc(hoje),4,2)+sohnumero(vem(ontem->cgc))+'58'+'000'+strzero(paramet->mdrvyct,9)+'1'+strzero(paramet->mdrvyct,8)
local ritorna
local ondestava := select()

/*
22
16
04
73883381000178
58
000
000000001
1
00000001
*/

m_chave_nfe := curdrive()+':'+curdirx()+'nfe\envresp.txt\'+formar + '-mdfe.xml'

fll+='<?xml version="1.0" encoding="UTF-8"?>'
fll+='<MDFe xmlns="http://www.portalfiscal.inf.br/mdfe">'
fll+='<infMDFe Id="MDFe' + formar + validignfe(formar,2,9) + '" versao="1.00">'
fll+='<ide>'
fll+='<cUF>'+subs(vem(ontem->codcidad),1,2)+'</cUF>'
fll+='<tpAmb>' + if(stoq2000ehdos = 0 , '2' , '1') + '</tpAmb>'
fll+='<tpEmit>2</tpEmit>'
fll+='<mod>58</mod>'
fll+='<serie>0</serie>'
fll+='<nMDF>'+ltri(str(paramet->mdrvyct))+'</nMDF>'
fll+='<cMDF>'+strzero(paramet->mdrvyct,8)+'</cMDF>'
fll+='<cDV>'+validignfe(formar,2,9)+'</cDV>'
fll+='<modal>1</modal>'
fll+='<dhEmi>'+ subs(dtoc(hoje),7) + '-' + subs(dtoc(hoje),4,2) + '-' + subs(dtoc(hoje),1,2)  +'T' + time()+'</dhEmi>'
fll+='<tpEmis>1</tpEmis>'
fll+='<procEmi>0</procEmi>'
fll+='<verProc>1.00</verProc>'
fll+='<UFIni>'+vem(ontem->uf)+'</UFIni>'
fll+='<UFFim>'+cliente->estcli+'</UFFim>'
fll+='<infMunCarrega>'
fll+='<cMunCarrega>'+vem(ontem->codcidad)+'</cMunCarrega>'
fll+='<xMunCarrega>'+trim(vem(ontem->cidad))+'</xMunCarrega>'
fll+='</infMunCarrega>'
fll+='</ide>'
fll+='<emit>'
fll+='<CNPJ>'+vem(ontem->cgc)+'</CNPJ>'
fll+='<IE>'+vem(ontem->iest)+'</IE>'
fll+='<xNome>'+trim(vem(ontem->razsoc))+'</xNome>'
fll+='<enderEmit>'
fll+='<xLgr>'+trim(vem(ontem->ender))+'</xLgr>'
fll+='<nro>'+trim(vem(ontem->numero))+'</nro>'
fll+='<xBairro>'+trim(vem(ontem->bairro))+'</xBairro>'
fll+='<cMun>'+vem(ontem->codcidad)+'</cMun>'
fll+='<xMun>'+trim(vem(ontem->cidad))+'</xMun>'
fll+='<UF>'+vem(ontem->uf)+'</UF>'
fll+='<CEP>'+vem(ontem->cep)+'</CEP>'
fll+='<fone>'+trim(vem(ontem->telef))+'</fone>'
fll+='</enderEmit>'
fll+='</emit>'
fll+='<infModal versaoModal="1.00">'
fll+='<rodo>'
fll+='<veicTracao>'

fornec->(dbseek(fornec_tran))

fll+='<cInt>'+substitui('-','',fornec->placa)+'</cInt>'
fll+='<placa>'+substitui('-','',fornec->placa)+'</placa>'
fll+='<tara>'+ltri(str(fornec->tara))+'</tara>'
fll+='<capKG>'+ltri(str(fornec->capkg))+'</capKG>'
fll+='<capM3>'+trim(fornec->capm3)+'</capM3>'
fll+='<prop>'
fll+='<CPF>'+sohnumero(fornec->cgcfor)+'</CPF>'
fll+='<RNTRC>'+trim(fornec->rntrc)+'</RNTRC>'
fll+='<xNome>'+trim(fornec->nome)+'</xNome>'
fll+='<IE>'+trim(fornec->iesfor)+'</IE>'
fll+='<UF>'+trim(fornec->uffor)+'</UF>'
fll+='<tpProp>2</tpProp>'
fll+='</prop>'

fornec->(dbseek(fornec_moto))

fll+='<condutor>'
fll+='<xNome>'+trim(fornec->nome)+'</xNome>'
fll+='<CPF>'+sohnumero(fornec->cgcfor)+'</CPF>'
fll+='</condutor>'
fll+='<tpRod>01</tpRod>'
fll+='<tpCar>02</tpCar>'
fll+='<UF>'+trim(fornec->uffor)+'</UF>'
fll+='</veicTracao>'
fll+='</rodo>'
fll+='</infModal>'
fll+='<infDoc>'
fll+='<infMunDescarga>'
fll+='<cMunDescarga>'+cliente->codcity+'</cMunDescarga>'
fll+='<xMunDescarga>'+semacento(trim(cliente->cidcli))+'</xMunDescarga>'
fll+='<infNFe>'
fll+='<chNFe>'+extraichave(a_chave_nfe,'\',.t.)+'</chNFe>'
fll+='</infNFe>'
fll+='</infMunDescarga>'
fll+='</infDoc>'
fll+='<tot>'
fll+='<qNFe>1</qNFe>'

fll+='<vCarga>'+ltrim(transform(valor_tot_nfe,'99999999999.99'))+'</vCarga>'
fll+='<cUnid>01</cUnid>'
fll+='<qCarga>'+ltrim(transform(peso_tot_car,'99999999999.99'))+'</qCarga>'
fll+='</tot>'
fll+='</infMDFe>'
fll+='</MDFe>'

mymemow(m_chave_nfe,fll)

if assinamdfe() .and. validamdfe() .and. enviamdfe()

dbselectar('hisnot')
adireg(0)

repassa(1,'CODM'     ,   '00001')
repassa(1,'NOMECOM'  ,   'MDF-e')
repassa(1,'QTDE'     ,   1)
repassa(1,'PRECO'    ,   0.01)
repassa(1,'FORNEC'   ,   paramet->nclibalc)
repassa(1,'NFISC'    ,   strzero(paramet->mdrvyct,8))
repassa(1,'VLRCOM'   ,   0.01)
repassa(1,'VENDEDOR' ,   ovendedor)
repassa(1,'DTCOMP'   ,   hoje)
repassa(1,'PUNIT'    ,   0.01)
repassa(1,'QTDENF'   ,   1)
repassa(1,'NFISCNF'  ,   strzero(paramet->mdrvyct,8))
repassa(1,'NOT_TEF'  ,   'A')
repassa(1,'NFCANCEL' ,   'N')
repassa(1,'ENTSAI'   ,   'C')
repassa(1,'TEXTCFOP' ,   'MDF-e')
repassa(1,'CHAVE_NFE',   m_chave_nfe)

Tecle(6035) // mdfe emitido com sucesso

if confirma('Deseja imprimir agora.') = "S"

  oquedamfe := GETADO(3,'123','Como Imprimir-->:' , {'1-Impressora' , '2-Visualizar' , '3-Sair' })

  if oquedamfe == '1'

   minport := ''
   os_ssa := cacaimp()

   if empty(minport)
    Tecle(6022) //'ImpressÆo abortada.')
   end

   ncopy := my_wget({'Quantas','C¢pias','?'},'99','.t.','Entrar n£mero C¢pias',2)

   if imprimemfe(minport,ncopy)
    Tecle(6036) // 'NFE foi impressa.')
   else
    Tecle(154) // "Problemas com a impressora. Utilize opção PDF ao imprimir novamente.")
   end
 
   Tecle(6037) // 'Para reimpressão menu Estoque/ Opção B-Histórico Notas / posicione-se sobre a NFE / pressione F5-Imprimir DANFE.')
  elseif oquedamfe == '2'

   IF !impmfepdf(a_chave_nfe)
    Tecle(6023) //'Problemas ao visualizar o PDF.')
   else

    arqpdf := subs(a_chave_nfe,1,at('-nfe.xml',a_chave_nfe)-1) //+'.pdf'

    if !file('nfe\envresp.txt\'+extraichave(arqpdf,'\')+'.pdf')
     arqpdf := arqpdf+'-nfe.pdf'
    else
     arqpdf := arqpdf+'.pdf'
    end

    arqpdfsub := 'nfe\envresp.txt\'+extraichave(arqpdf,'\')

    m_chave_antes_pdf := m_chave_nfe
    m_chave_nfe := arqpdfsub
    TEcle(184) // Visualizando por PDF vc poderá enviar por e-mail bla blaba
    execdos('start '+m_chave_nfe)
    m_chave_nfe := m_chave_antes_pdf
   end
  END

end

ritorna := .t.
else
ritorna := .f.
end

sele paramet
repassa(1,'mdrvyct',mdrvyct+1)
dbselectar(ondestava)

return ritorna

*--------------->

//------------>
Function validamdfe()

na_janela(maxrow(),1,'Validando o MDF-e.',NIL,8)
aguarda(1)
memowrit("nfe\entnfe.tmp",'MDFE.VALIDARMDFE("'+m_chave_nfe+'")')

if !comandanfe()
fechajanela()
return .f.
end
fechajanela()
return .t.

//------------------------->
Function assinamdfe()

na_janela(maxrow(),1,'Assinando o MDF-e.',NIL,8)
aguarda(1)

memowrit("nfe\entnfe.tmp",'MDFE.ASSINARMDFE("'+m_chave_nfe+'")')

if !comandanfe()
fechajanela()
return .f.
end
fechajanela()
return .t.

//----------->
Function enviamdfe()

na_janela(maxrow(),1,'Tentando enviar o MDF-e ao FISCO.',NIL,8)
aguarda(1)
memowrit("nfe\entnfe.tmp",'MDFE.ENVIARMDFE("'+m_chave_nfe+'",1,0,0)')

if !comandanfe()
fechajanela()
return .f.
end

fechajanela()
return .t.

//------------------------->
Function imprimemfe(minport,ncopy)

if ncopy = 0
Tecle(6038) // 'Abortado. C¢pias = 0.')
return .t.
end

if !file(m_chave_nfe) .and. file('nfe\envresp.txt\'+a_chave_nfe+'-mdfe.xml')
a_chave_nfe := curdrive()+':\'+curdir()+'\nfe\envresp.txt\'+a_chave_nfe+'-mdfe.xml'
end

  arqpdf := subs(m_chave_nfe,1,at('-mdfe.xml',m_chave_nfe)-1) //+'.pdf'

  if !file('nfe\envresp.txt\'+extraichave(arqpdf,'\')+'.pdf')
   arqpdf := arqpdf+'-mdfe.pdf'
  else
   arqpdf := arqpdf+'.pdf'
  end
arqpdfsub := 'nfe\envresp.txt\'+extraichave(arqpdf,'\')

if ! file(m_chave_nfe)   //file(a_chave_nfe)

if file(arqpdfsub)
  Tecle('Arquivo XML nao encontrado.')
  if confirma(6040) = "S" //'Deseja visualizar o PDF para poder imprimir pelo Editor de PDF')="S"
   execdos('start '+arqpdfsub)
   return .t.
  End
end

end

na_janela(maxrow(),1,'Imprimindo o MDF-e.',NIL,8)
aguarda(1)

memowrit("nfe\entnfe.tmp",'MDFE.IMPRIMIRDAMDFE("'+a_chave_nfe+'","'+minport+'",'+ltri(str(ncopy))+')')

if !comandanfe()
fechajanela()
return .f.
end
fechajanela()

if !file('nfe\envresp.txt\'+extraichave(m_chave_nfe,'\',.t.)+'.pdf')
impmfepdf(m_chave_nfe)
end

return .t.

//------------------------->
Function impmfepdf(o_arq_pdf)
local arqpdftest,arqtestpdf

acbrinsta := acbrnfeinsta()

arqpdftest := subs(o_arq_pdf,1,at('-mdfe.xml',o_arq_pdf)-1)+'.pdf'
arqtestpdf := subs(o_arq_pdf,1,at('-mdfe.xml',o_arq_pdf)-1)+'-mdfe.pdf'

if !file(o_arq_pdf)
//Tecle(153) // 'NFE deve ser impressa na estação que tem o certificado.')
//Tecle(hb_ansitooem('Porém faça uma tentativa.'))
end

if !testafile(arqpdftest) .or. !testafile(arqtestpdf)
limpa()
Tecle(6039) //'Arquivo .PDF do MDFE está aberto. Feche-o.')
retu .f.
end

na_janela(maxrow(),1,'Imprimindo o PDF do MDFE.',NIL,8)
aguarda(1)

memowrit("nfe\entnfe.tmp",'NFe.ImprimirDAMDFEPDF("'+o_arq_pdf+'")')

if !comandanfe()
fechajanela()
return .f.
end
fechajanela()
return .t.


Bom.... eu já até consegui fazer bastante coisa. Consegui emitir o mdf-e

Mas na hora de encerrar é que tá o perigo....
Avatar de usuário

Mário Isa
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 902
Data de registro: 07 Jul 2004 13:54
Cidade/Estado: Ilha Solteira-sp
Curtiu: 5 vezes
Mens.Curtidas: 8 vezes

Tutorial ACBRMonitorPlus

Mensagempor Mário Isa » 27 Mai 2016 11:50

Finalmente consegui encerrar... ufa

segue o comando

MDFe.EncerrarMDFe( "35160501227708000142580000000000631000000638", 27/05/2016, "5004403", "01227708000142", "1")
Avatar de usuário

Mário Isa
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 902
Data de registro: 07 Jul 2004 13:54
Cidade/Estado: Ilha Solteira-sp
Curtiu: 5 vezes
Mens.Curtidas: 8 vezes

Tutorial ACBRMonitorPlus

Mensagempor rubens » 27 Mai 2016 16:32

Muito bem vinda sua contribuição Mário !!!

Obrigado
Rubens
:-Y
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes

Tutorial ACBRMonitorPlus

Mensagempor JoséQuintas » 27 Mai 2016 18:39

Deve ajudar muita gente.

Sugestão pra simplificar:
(Facilita o fonte, reduz erros de digitação, e reduz o EXE):

fll += '<prop>' 
fll += '<CPF>' + sohnumero( fornec->cgcfor ) + '</CPF>'
fll += '<RNTRC>' + trim( fornec->rntrc ) + '</RNTRC>'
fll += '<xNome>' + trim( fornec->nome ) + '</xNome>'
fil += '<IE>' + trim( fornec->iesfor ) + '</IE>'
fll += '<UF>' + trim( fornec->uffor ) + '</UF>'
fll += '<tpProp>2</tpProp>'
fil += '</prop>'


   cXml += "prop"
   cXml += XmlTag( "CPF", sonumero( fornec->cgcfor ) )
   cXml += XmlTag( "RNTRC", fornec->rntrc )
   cXml += XmlTag( "xNome", fornec->nome )
   cXml += XmlTag( "IE", fornec->iesfor )
   cXml += XmlTag( "UF", fornec->uffor )
   cXml += XmlTag( "tpProp", "2" )
   cXml += "</prop>"
...
FUNCTION XmlTag( cTag, cConteudo )
   RETURN "<" + cTag + ">" + Trim( cTag ) + "</" + cTag + ">"
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Tutorial ACBRMonitorPlus

Mensagempor Mário Isa » 28 Mai 2016 10:38

Ótima a sua função XMLTag José Quintas....

Agora estou tendo um pequeno probleminha no acbrmonitorplus....

estou tentando encerrar e ele volta com a mensagem

veja o comando de entrada

MDFe.EncerrarMDFe( "35160501227708000142580000000000731000000731", 28/05/2016, "3520442", "01227708000142", "1")


e veja o retorno.txt
ERRO: 
Não foi possível carregar XML
<?xml version="1.0" encoding="UTF-8"?><mdfeProc versao="1.00" xmlns="http://www.portalfiscal.inf.br/mdfe"><MDFe xmlns="http://www.portalfiscal.inf.br/mdfe"><infMDFe versao="1.00" Id="MDFe35160501227708000142580000000000731000000731"><ide><cUF>35</cUF><tpAmb>1</tpAmb><tpEmit>2</tpEmit><mod>58</mod><serie>0</serie><nMDF>73</nMDF><cMDF>00000073</cMDF><cDV>1</cDV><modal>1</modal><dhEmi>2016-05-28T09:30:51</dhEmi><tpEmis>1</tpEmis><procEmi>0</procEmi><verProc>1.00</verProc><UFIni>SP</UFIni><UFFim>MS</UFFim><infMunCarrega><cMunCarrega>3520442</cMunCarrega><xMunCarrega>ILHA SOLTEIRA</xMunCarrega></infMunCarrega></ide><emit><CNPJ>01227708000142</CNPJ><IE>749079200112</IE><xNome>MARIO ANTONIO PEREIRA I.SOLTEIRA ME</xNome><enderEmit><xLgr>PSO SAO LUIZ</xLgr><nro>209</nro><xBairro>ZONA NORTE</xBairro><cMun>3520442</cMun><xMun>ILHA SOLTEIRA</xMun><CEP>15385000</CEP><UF>SP</UF><fone>1837424186</fone></enderEmit></emit><infModal versaoModal="1.00"><rodo><veicTracao><cInt>BMR3562</cInt><placa>BMR3562</placa><tara>3000</tara><capKG>3500</capKG><capM3>2</capM3><prop><CPF>05597601830</CPF><RNTRC>12345678</RNTRC><xNome>MARIO ANTONIO PEREIRA</xNome><IE/><UF>SP</UF><tpProp>2</tpProp></prop><condutor><xNome>SANDRA LUCIA MACIEL PEREIRA</xNome><CPF>08527232880</CPF></condutor><tpRod>01</tpRod><tpCar>02</tpCar><UF>SP</UF></veicTracao></rodo></infModal><infDoc><infMunDescarga><cMunDescarga>5004403</cMunDescarga><xMunDescarga>INOCENCIA</xMunDescarga><infNFe><chNFe>35160501227708000142550010000062641000062642</chNFe></infNFe></infMunDescarga></infDoc><tot><qNFe>1</qNFe><vCarga>0.68</vCarga><cUnid>01</cUnid><qCarga>120.0000</qCarga></tot></infMDFe><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /><Reference URI="#MDFe35160501227708000142580000000000731000000731"><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /><DigestValue></DigestValue></Reference></SignedInfo><SignatureValue></SignatureValue><KeyInfo></KeyInfo></Signature></MDFe>


O xml tá lá ....
e ele é válido pois abro no editor de xml e ele não apresenta nenhum problema de tags erradas...
tb consigo imprimir o .PDF através desse xml (então penso: ele é válido)

:%
Avatar de usuário

Mário Isa
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 902
Data de registro: 07 Jul 2004 13:54
Cidade/Estado: Ilha Solteira-sp
Curtiu: 5 vezes
Mens.Curtidas: 8 vezes

Tutorial ACBRMonitorPlus

Mensagempor Mário Isa » 28 Mai 2016 11:06

Resolvido !

Foi só reiniciar o acbrmonitorplus que voltou a funcionar....

será mais um bug ?

Será q o comando ler.ini é semelhante a reiniciar o acbrmonitor ?

Vamos lá.... ;)
Avatar de usuário

Mário Isa
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 902
Data de registro: 07 Jul 2004 13:54
Cidade/Estado: Ilha Solteira-sp
Curtiu: 5 vezes
Mens.Curtidas: 8 vezes

Tutorial ACBRMonitorPlus

Mensagempor Kiko Fernandes » 28 Mai 2016 20:46

Boa Noite!
José se me permite fazer uma observação apenas.

Penso que o correto é " +Trim(cConteudo) +" ao invés de "+ Trim(cTag) +"

JoséQuintas escreveu:Deve ajudar muita gente.

...
FUNCTION XmlTag( cTag, cConteudo )
RETURN "<" + cTag + ">" + Trim( cTag ) + "</" + cTag + ">"
[/code]
Kiko Fernandes
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 213
Data de registro: 24 Out 2008 21:41
Cidade/Estado: Foz do Iguaçu
Curtiu: 4 vezes
Mens.Curtidas: 9 vezes

Anterior Próximo



Retornar para Legislação Fiscal e Tributária

Quem está online

Usuários vendo este fórum: Bing [Bot] e 11 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro