Ir para conteúdo
  • Cadastre-se

lcarakaki

Membros
  • Total de ítens

    20
  • Registro em

  • Última visita

Últimos Visitantes

805 visualizações

lcarakaki's Achievements

Apprentice

Apprentice (3/14)

  • First Post
  • Collaborator Rare
  • Conversation Starter
  • Week One Done
  • One Month Later

Recent Badges

2

Reputação

  1. Bingo! Funcionou!!! Obrigado @Juliomar Marchetti
  2. Boa tarde a todos! Utilizo a LIB para emissão de NFe perfeitamente no Windows 10, mas nos Windows 7 estou tento problemas: Segue erros: Erro Interno: 10091♪ Erro HTTP: 500♪ URL: https://nfe.fazenda.sp.gov.br/ws/nfeconsultaprotocolo4.asmx♪ Network subsystem is unusable Já deixei o Windows 100% atualizado tentei desmarcar as opções de TLS 1.0 e 1.1, deixando apenas a 1.2 tentei desatualizando o firewall Tentei desativando o antivírus Alguém já teve esse tipo de problema utilizando o Windows 7? Segue log Grato desde já ACBrLibNFE-20210226.log
  3. @Rafael Dias, fiz algumas modificações no prg acbrnfe.prg e funcionou! São elas: Método ValidarRegrasdeNegocios não tinha variável para o retorno. Método EnviarEmail estava com variáveis invertidas na chamada do método do prg e do método da dll Destroy() não era um método e sim uma procedure, mudei para método As correções ficaram assim: METHOD ValidarRegrasdeNegocios() CLASS ACBrNFe local hResult, buffer, bufferLen bufferLen := STR_LEN buffer := Space(bufferLen) hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_ValidarRegrasdeNegocios", @buffer, @bufferLen) ::CheckResult(hResult) RETURN ::ProcessResult(buffer, bufferLen) METHOD EnviarEmail(ePara, eChaveNFe, aEnviaPDF, eAssunto, eCc, eAnexos, eMensagem) CLASS ACBrNFe local hResult hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_EnviarEmail", hb_StrToUTF8(ePara), hb_StrToUTF8(eChaveNFe), aEnviaPDF, eAssunto, hb_StrToUTF8(eCc), hb_StrToUTF8(eAnexos), eMensagem) ::CheckResult(hResult) RETURN nil METHOD Destroy CLASS ACBrNFe DllCall(::hHandle, DLL_OSAPI, "NFE_Finalizar") DllUnload(::hHandle) RETURN nil obrigado pela ajuda!
  4. @Rafael Dias, adaptei meu programa para usar o PRG do exemplo do SVN, e estou tendo o retorno "-10, Access violation" no método de validar regras de negócio. o Erro é na chamada do método CheckResult, coloquei em vermelho as linhas que o xHarbour destaca ao fechar o programa. METHOD ValidarRegrasdeNegocios() CLASS ACBrNFe local hResult hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_ValidarRegrasdeNegocios") ::CheckResult(hResult) RETURN nil METHOD CheckResult(hResult) CLASS ACBrNFe local buffer, bufferLen, oErr if hResult >= 0 RETURN nil endif bufferLen := STR_LEN buffer := Space(bufferLen) DllCall(::hHandle, DLL_OSAPI, "NFE_UltimoRetorno", @buffer, @bufferLen) if bufferLen > STR_LEN buffer := Space(bufferLen) DllCall(::hHandle, DLL_OSAPI, "NFE_UltimoRetorno", @buffer, @bufferLen) endif oErr := ErrorNew() oErr:Severity := ES_ERROR oErr:Description := hb_UTF8ToStr(buffer) Throw(oErr) RETURN nil Abaixo está o meu PRG modificado. Log ACBR: ACBrLibNFE-20201223.log FUNCTION ACBR_CRIA_ASSINA_VALIDA_ENVIA(xTxt,xChaveNfe) LOCAL cRet,xLocalXml,xXml,lAssinaValidaEnvia:=.T. LOCAL xPara,xCopias,xAssunto,xMensagem ** Nome do XML e local de onde será salvo xXml:=xChaveNfe+"-nfe.xml" xLocalXml:=pDisco+":\xHB\nfe\"+UPPER(pUnidadeUf)+"\XML\" xPdf:=xChaveNfe+"-nfe.pdf" xLocalPdf:=pDisco+":\xHB\nfe\"+UPPER(pUnidadeUf)+"\PDF\" ** Iniciar arquivo de configurações do ACBR nfe:=ACBrNFe():New(pUnidadeUf+"_NFE.INI","") ** Consulta a chave para saber se já é uma NFe Autorizada para uso cRet:=nfe:Consultar(xChaveNfe,.T.) if at("Consumo Indevido",cRet)>0 alert("Consumo Indevido;;Aguarde alguns minutos e tente novamente") nfe:Destroy() RETURN .F. endif if at("Autorizado o uso da NF-e",cRet)>0 lAssinaValidaEnvia:=.F. ** Pega a data correta em que a Nfe foi emitida q:="select concat(year(b09demi),lpad(month(b09demi),2,'0')) as pasta from nfec where chavenfe='"+xChaveNfe+"'" v:=F_GETCON(q) if len(v)==0 alert("Erro ao localizar a chave no Nfec;"+xChaveNfe) nfe:Destroy() RETURN .F. endif xPastaAno:=v[1,1] xLocalXml:=xLocalXml+xPastaAno+"\" xLocalPdf:=xLocalPdf+xPastaAno+"\" ** Verifica se o arquivo XML existe na pasta if ! FILE(xLocalXml+xXml) ** Para garantir cria a pasta do anomes do XML e PDF FT_MKDIR(xLocalXml) FT_MKDIR(xLocalPdf) alert("NFe autorizada, porem arquivo xml nao localizado na pasta:;"+xLocalXml+xXml+";Faca o download pelo site do SEFAZ e coloque na pasta indicada") nfe:Destroy() RETURN .F. endif else xLocalXml:=xLocalXml+strZero(year(date_sql()),4)+strZero(month(date_sql()),2)+"\" xLocalPdf:=xLocalPdf+strZero(year(date_sql()),4)+strZero(month(date_sql()),2)+"\" endif ** Para garantir cria a pasta do anomes do XML e PDF FT_MKDIR(xLocalXml) FT_MKDIR(xLocalPdf) if lAssinaValidaEnvia ** Carrega o arquivo TXT da NFe nfe:CarregarINI(xTxt) ** Valida regras de negócio da NFe cRet:=nfe:ValidarRegrasdeNegocios() cRet:=strTran(cRet,chr(0),"") //Elimina um quadrado "[]" do retrono cRet:=strTran(cRet,chr(32),"") //Elimina um quadrado "[]" do retrono if ! empty(cRet) alert(cRet) nfe:Destroy() RETURN .F. endif ** Assina NFe que está carregada pelo NFE_CarregarINI nfe:Assinar() ** Validar XML assinado na pasta correta nfe:Validar() ** Grava XML assinado na pasta correta nfe:GravarXml(0,xXml,xLocalXml) ** Enviar XML par ao SEFAZ nfe:Enviar(0,.T.,.T.,.F.) else ** Se o XML já está autorizado apenas o carrga ** Para poder imprimir e enviar por e-mail nfe:CarregarXML(xLocalXml+xXml) endif nfe:ImprimirPDF() FileCopy(pDisco+":\xHB\nfe\"+UPPER(pUnidadeUf)+"\PDF\"+xPdf,xLocalPdf+xPdf) mVar:=ACBR_EMAIL(xChaveNfe) xPara:=mVar[1] xCopias:=mVar[2] xAssunto:=mVar[3] xMensagem:=mVar[4] nfe:EnviarEmail(xPara, xLocalXml+xXml,.T.,xAssunto,xMensagem,xCopias) nfe:Destroy() RETURN .T.
  5. @Rafael Dias, estou tentando adaptar o PRG do demo em meu programa para ver se corrigi o erro. Sabe me dizer onde consigo o .ch #include '..\Comum\acbrlib.ch'
  6. @Rafael Dias, eu sempre consulto a chave antes de emitir a nfe, reparei que no log, a consulta da segunda Nfe emitida retorna SetRetorno(-10, Access violation), os métodos de validar, assinar, enviar que são chamados em seguida retorna 0, mas ao finalizar a lib o programa se fecha. Seria a segunda NFE nesta estrutura que dá o erro: nRetMet:=DLLCALL(pDllNfe,32,"NFE_Inicializar",pUnidadeUf+"_NFE.INI","") //Retorno 0 cRet:=space(1024) nRetMet:=DLLCALL(pDllNfe,32,"NFE_Consultar",xChaveNfe,.T.,cRet) //Retorno 0 //Na segunda NFE retorna -10 Access violation nRetMet:=DLLCALL(pDllNfe,32,"NFE_Finalizar",pUnidadeUf+"_NFE.INI","") //Retorno 0 Log: ACBrLibNFE-20201221.log
  7. Bom dia a todos! Estou migrando minha emissão de NFe do AcbrMonitorPlus para AcbrNfeLib, tudo está funcionando perfeitamente com a LIB, o único problema que tenho atualmente é do programa fechar esporadicamente. As vezes fecha logo na primeira emissão de nfe, as vezes fecha na segunda ou terceira NFe. Meu programa é em xHarbour, e optei em carregar a DLL sempre quando vou utiliza-la e em seguida descarrego, mas já tentei carregar ela na abertura do programa e descarregar no fechamento do programa, assim como os métodos NFE_Inicializar e NFE_Finalizar, também tentei trocar DllLoad() por LoadLibrary(), LibLoad() e DllPrepareCall(), e a DllUnLoad() por LibFree() e FreeLibrary(). Tentei utilizar a dll Cdecl e também a StdCall. Já fiz todas as combinações possíveis. Creio que essa ajuda é para xHarbour e não para a lib, pois no log da lib todos os métodos são executados. Agradeço a todos desde já. FUNCTION ACBR_CRIA_ASSINA_VALIDA_ENVIA(xTxt,xChaveNfe) LOCAL nRetMet,cRet,xLocalXml,xXml,lAssinaValidaEnvia:=.T. LOCAL xPara,xCopias,xAssunto,xMensagem LOCAL pDllNfe:=DllLoad("ACBrNFe32.dll") ** Nome do XML e local de onde será salvo xXml:=xChaveNfe+"-nfe.xml" xLocalXml:=pDisco+":\xHB\nfe\"+UPPER(pUnidadeUf)+"\XML\" xPdf:=xChaveNfe+"-nfe.pdf" xLocalPdf:=pDisco+":\xHB\nfe\"+UPPER(pUnidadeUf)+"\PDF\" nRetMet:=DLLCALL(pDllNfe,32,"NFE_Inicializar",pUnidadeUf+"_NFE.INI","") //Retorno 0 cRet:=space(1024) nRetMet:=DLLCALL(pDllNfe,32,"NFE_Consultar",xChaveNfe,.T.,cRet) //Retorno 0 nRetMet:=DLLCALL(pDllNfe,32,"NFE_Finalizar",pUnidadeUf+"_NFE.INI","") //Retorno 0 nRetMet:=DLLCALL(pDllNfe,32,"NFE_Inicializar",pUnidadeUf+"_NFE.INI","") //Retorno 0 if at("Autorizado o uso da NF-e",cRet)>0 lAssinaValidaEnvia:=.F. ** Pega a data correta em que a Nfe foi emitida q:="select concat(year(b09demi),lpad(month(b09demi),2,'0')) as pasta from nfec where chavenfe='"+xChaveNfe+"'" v:=F_GETCON(q) xPastaAno:=v[1,1] xLocalXml:=xLocalXml+xPastaAno+"\" xLocalPdf:=xLocalPdf+xPastaAno+"\" else xLocalXml:=xLocalXml+strZero(year(date_sql()),4)+strZero(month(date_sql()),2)+"\" xLocalPdf:=xLocalPdf+strZero(year(date_sql()),4)+strZero(month(date_sql()),2)+"\" endif if lAssinaValidaEnvia nRetMet:=DLLCALL(pDllNfe,32,"NFE_CarregarINI",xTxt) //Retorno 0 nRetMet:=DLLCALL(pDllNfe,32,"NFE_Assinar") //Retorno 0 nRetMet:=DLLCALL(pDllNfe,32,"NFE_Validar") //Retorno 0 nRetMet:=DLLCALL(pDllNfe,32,"NFE_GravarXml",0,xXml,xLocalXml) //Retorno 0 cRet:=space(1024) nRetMet:=DLLCALL(pDllNfe,32,"NFE_Enviar",0,.T.,.T.,.F.,cRet) //Retorno 0 else ** Se o XML já está autorizado apenas o carrga ** Para poder imprimir e enviar por e-mail nRetMet:=DLLCALL(pDllNfe,32,"NFE_CarregarXML",xLocalXml+xXml,"") //Retorno 0 endif nRetMet:=DLLCALL(pDllNfe,32,"NFE_ImprimirPDF") //Retorno 0 nRetMet:=DLLCALL(pDllNfe,32,"NFE_EnviarEmail",xPara,xLocalXml+xXml,.T.,xAssunto,xCopias,,xMensagem) //Retorno 0 nRetMet:=DLLCALL(pDllNfe,32,"NFE_Finalizar",pUnidadeUf+"_NFE.INI","") //Retorno 0 DllUnload(pDllNfe) RETURN .T.
  8. @Rafael Dias, consegui resolver esse erro aumentando o cRet, de space(256) para space(1024). Antes de emitir uma NFe eu faço uma consulta com a chave, nRet:=DLLCALL(pDllNfe,32,"NFE_Consultar",xChaveNfe,.T.,cRet) Se achar a expressão "Autorizado o uso da NF-e" eu apenas carrego o xml e utilizo o método de enviar e-mail e imprimir, senão, assina, valida, envia. Com o cRet:=space(256) o retorno era -2 com o cRet:=space(1024) o retorno é 0 e não dá erro no método NFe_Finalizar. Agora estou enfrentando um outro problema, esporadicamente o meu programa fecha sem mensagens de erros, em sem muitas pistas no log, pois ele chega a rodar o método NFE_Finalizar certinho e em seguida fecha o programa. Uso pDllNfe:=DllLoad("ACBrNFe32.dll") para carregar a DLL e DllUnload(pDllNfe) para descarregar a DLL. Estou usando a dll da pasta Cdecl, mas já tentei mudar para a StdCall também. Se acharem melhor eu encerro esse tópico e abro outro com esse novo problema.
  9. Obrigado @Juliomar Marchetti e @Rafael Dias Eu estou usando as dll's ACBrLibNFe-0.4.6.110 Vou postar o código fonte que utilizo. FUNCTION ACBR_CRIA_ASSINA_VALIDA_ENVIA(xTxt,xChaveNfe) LOCAL nRetMet,cRet,xLocalXml,xXml,lAssinaValidaEnvia:=.T. LOCAL xPara,xCopias,xAssunto,xMensagem LOCAL pDllNfe:=DllLoad("ACBrNFe32.dll") ** Nome do XML e local de onde será salvo xXml:=xChaveNfe+"-nfe.xml" xLocalXml:=pDisco+":\xHB\nfe\"+UPPER(pUnidadeUf)+"\XML\" xPdf:=xChaveNfe+"-nfe.pdf" xLocalPdf:=pDisco+":\xHB\nfe\"+UPPER(pUnidadeUf)+"\PDF\" ** Iniciar arquivo de configurações do ACBR nRetMet:=DLLCALL(pDllNfe,32,"NFE_Inicializar",pUnidadeUf+"_NFE.INI","") if nRetMet<0 alert("Erro ao iniciar o arquivo de configuracao;"+pUnidadeUf+"_NFE.INI") nRetMet:=DLLCALL(pDllNfe,32,"NFE_Finalizar",pUnidadeUf+"_NFE.INI","") DllUnload(pDllNfe) RETURN .F. endif ** Consulta a chave para saber se já é uma NFe Autorizada para uso cRet:=space(256) nRetMet:=DLLCALL(pDllNfe,32,"NFE_Consultar",xChaveNfe,.T.,cRet) if at("Consumo Indevido",cRet)>0 alert("Consumo Indevido;;Aguarde alguns minutos e tente novamente") nRetMet:=DLLCALL(pDllNfe,32,"NFE_Finalizar",pUnidadeUf+"_NFE.INI","") DllUnload(pDllNfe) RETURN .F. endif if at("Autorizado o uso da NF-e",cRet)>0 lAssinaValidaEnvia:=.F. ** Pega a data correta em que a Nfe foi emitida q:="select concat(year(b09demi),lpad(month(b09demi),2,'0')) as pasta from nfec where chavenfe='"+xChaveNfe+"'" v:=F_GETCON(q) if len(v)==0 alert("Erro ao localizar a chave no Nfec;"+xChaveNfe) nRetMet:=DLLCALL(pDllNfe,32,"NFE_Finalizar",pUnidadeUf+"_NFE.INI","") DllUnload(pDllNfe) RETURN .F. endif xPastaAno:=v[1,1] xLocalXml:=xLocalXml+xPastaAno+"\" xLocalPdf:=xLocalPdf+xPastaAno+"\" ** Verifica se o arquivo XML existe na pasta if ! FILE(xLocalXml+xXml) ** Para garantir cria a pasta do anomes do XML e PDF FT_MKDIR(xLocalXml) FT_MKDIR(xLocalPdf) alert("NFe autorizada, porem arquivo xml nao localizado na pasta:;"+xLocalXml+xXml+";Faca o download pelo site do SEFAZ e coloque na pasta indicada") nRetMet:=DLLCALL(pDllNfe,32,"NFE_Finalizar",pUnidadeUf+"_NFE.INI","") DllUnload(pDllNfe) RETURN .F. endif else xLocalXml:=xLocalXml+strZero(year(date_sql()),4)+strZero(month(date_sql()),2)+"\" xLocalPdf:=xLocalPdf+strZero(year(date_sql()),4)+strZero(month(date_sql()),2)+"\" endif ** Para garantir cria a pasta do anomes do XML e PDF FT_MKDIR(xLocalXml) FT_MKDIR(xLocalPdf) if lAssinaValidaEnvia ** Carrega o arquivo TXT da NFe nRetMet:=DLLCALL(pDllNfe,32,"NFE_CarregarINI",xTxt) if nRetMet<0 alert("Erro ao carregar o arquivo txt da NFe;"+xTxt) nRetMet:=DLLCALL(pDllNfe,32,"NFE_Finalizar",pUnidadeUf+"_NFE.INI","") DllUnload(pDllNfe) RETURN .F. endif ** Valida regras de negócio da NFe cRet:=space(256) nRetMet:=DLLCALL(pDllNfe,32,"NFE_ValidarRegrasdeNegocios",cRet) cRet:=strTran(cRet,chr(0),"") //Elimina um quadrado "[]" do retrono cRet:=strTran(cRet,chr(32),"") //Elimina um quadrado "[]" do retrono if ! empty(cRet) alert(cRet) nRetMet:=DLLCALL(pDllNfe,32,"NFE_Finalizar",pUnidadeUf+"_NFE.INI","") DllUnload(pDllNfe) RETURN .F. endif ** Assina NFe que está carregada pelo NFE_CarregarINI nRetMet:=DLLCALL(pDllNfe,32,"NFE_Assinar") if nRetMet<0 alert("Erro Assinar a NFe;"+xTxt) nRetMet:=DLLCALL(pDllNfe,32,"NFE_Finalizar",pUnidadeUf+"_NFE.INI","") DllUnload(pDllNfe) RETURN .F. endif ** Validar XML assinado na pasta correta nRetMet:=DLLCALL(pDllNfe,32,"NFE_Validar") if nRetMet<0 alert("Erro Validar a NFe;"+xXml) nRetMet:=DLLCALL(pDllNfe,32,"NFE_Finalizar",pUnidadeUf+"_NFE.INI","") DllUnload(pDllNfe) RETURN .F. endif ** Grava XML assinado na pasta correta nRetMet:=DLLCALL(pDllNfe,32,"NFE_GravarXml",0,xXml,xLocalXml) if nRetMet<0 alert("Erro GravarXml da NFe;"+xTxt) nRetMet:=DLLCALL(pDllNfe,32,"NFE_Finalizar",pUnidadeUf+"_NFE.INI","") DllUnload(pDllNfe) RETURN .F. endif ** Enviar XML par ao SEFAZ cRet:=space(256) nRetMet:=DLLCALL(pDllNfe,32,"NFE_Enviar",0,.T.,.T.,.F.,cRet) if nRetMet<0 alert("Erro Enviar a NFe para o SEFAZ;"+xXml) nRetMet:=DLLCALL(pDllNfe,32,"NFE_Finalizar",pUnidadeUf+"_NFE.INI","") DllUnload(pDllNfe) RETURN .F. endif else ** Se o XML já está autorizado apenas o carrga ** Para poder imprimir e enviar por e-mail nRetMet:=DLLCALL(pDllNfe,32,"NFE_CarregarXML",xLocalXml+xXml,"") endif nRetMet:=DLLCALL(pDllNfe,32,"NFE_ImprimirPDF") if nRetMet<0 alert("Erro Imprimir NFe;"+xXml) nRetMet:=DLLCALL(pDllNfe,32,"NFE_Finalizar",pUnidadeUf+"_NFE.INI","") DllUnload(pDllNfe) else FileCopy(pDisco+":\xHB\nfe\"+UPPER(pUnidadeUf)+"\PDF\"+xPdf,xLocalPdf+xPdf) endif mVar:=ACBR_EMAIL(xChaveNfe) xPara:=mVar[1] xCopias:=mVar[2] xAssunto:=mVar[3] xMensagem:=mVar[4] nRetMet:=DLLCALL(pDllNfe,32,"NFE_EnviarEmail",xPara,xLocalXml+xXml,.T.,xAssunto,xCopias,,xMensagem) if nRetMet<0 alert("Erro Enviar a E-mail para os contatos;"+xPara+";"+xCopias) nRetMet:=DLLCALL(pDllNfe,32,"NFE_Finalizar",pUnidadeUf+"_NFE.INI","") DllUnload(pDllNfe) endif nRetMet:=DLLCALL(pDllNfe,32,"NFE_Finalizar",pUnidadeUf+"_NFE.INI","") if nRetMet<0 alert("Erro ao Finalizar o arquivo de configuracao;"+pUnidadeUf+"_NFE.INI") DllUnload(pDllNfe) RETURN .F. endif DllUnload(pDllNfe) RETURN .T.
  10. Boa noite @Juliomar Marchetti Estou usando a lib com xHarbour. Carrego a dll com o DllLoad -> DllNfe:=DllLoad("ACBrNFe32.dll") Executo os métodos com DLLCALL -> DLLCALL(DllNfe,32,"NFE_Inicializar","SP_NFE.INI","") Descarrego a DLL com DllUnload -> DllUnload(DllNfe)
  11. Bom dia amigos! Estou com um problema para utilizar o método NFE_Finalizar, apenas quando meu programa utiliza o método NFE_EnviarEmail antes do NFE_Finalizar em uma nfe já autorizada. Vou colocar em negrito o por onde o programa passa quando dá o erro. Vou colocar um trecho simplificado do meu programa: Tenho uma função que ACBR_CRIA_ASSINA_VALIDA_ENVIA(xChaveNfe), primeira coisa que faço e consultar a chave, para ver se é uma Nfe já autorizada, se for obtenho o caminho do xml para carrega-lo, caso contrário carrego o .INI e assino, valido etc. NFE_Inicializar if cRet:="Autorizado o uso da NF-e" NFE_CarregarXML else NFE_CarregarINI NFE_ValidarRegrasdeNegocios NFE_Assinar NFE_Validar NFE_GravarXml NFE_Enviar endif NFE_ImprimirPDF NFE_EnviarEmail //Se comentar a chamada deste método, não dá erro no NFE_Finalizar NFE_Finalizar //SetRetorno(-2, Access violation) Nfe Nova : NFe Nova.log sem erros, entra no else Nfe já autorizada: NFe Autorizada.log com erro, entra no if Agradeço desde já a ajuda de todos.
  12. Ola amigos. Estou tentando acrescentar o campo Informações Adicionais do Produto no meu arquivo ENTNFE.TXT arquivo em que o ACbrMonitorNfe lê! Isso para suprir as exigências da ficha de conteúdo de importação (FCI). Peguei um exemplo deste trecho: [Produto001] Codigo=401071 Descricao=CAFE PELE EXTRA FORTE TORRADO VACUO 500G NCM=09012100 CFOP=5411 Unidade=UN Quantidade=500.0000 ValorUnitario=19.8200 ValorTotal=9.910.00 uTrib=UN qTrib=500.0000 vUnTrib=19.8200 vFrete=0.0000 ValorDesconto=0.0000 infAdProd=TESTE DE INFORMAÇÕES ADICIONAIS DO PRODUTO [iCMS001] Fiz essa modificação de colocar o infAdProd antes do [iCMS001], mas com a modificação ele começou a dar erro (Total de BC ICMS diferente da somatória dos itens), quando tiro a linha "infAdProd=TESTE DE INFORMAÇÕES ADICIONAIS DO PRODUTO" ele valida normalmente! Oque pode ser? Att Fernando.
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...