Ir para conteúdo
  • Cadastre-se

moisesaugusto

Membros
  • Total de ítens

    116
  • Registro em

  • Última visita

Tudo que moisesaugusto postou

  1. Olá, Peterson, bom dia. Muito obrigado pelas informações. Vou configurar corretamente o componente e fazer as devidas alterações no aplicativo, uma vez que eu atualmente gero o Xml com o ACBr e utilizo o programa free da Unimake (UniNfe) para enviar/receber as Nf-es . Mas pela facilidade da configuração do ACBRNfe acho que vale a pena experimentar o envio e recebimento (retornos) somente por ele. De qualquer forma, se o problema ficar resolvido, eu postarei aqui e então poderemos colocar [resolvido] no tópico. Abraços !
  2. Amigos, estou utilizando o ACBR, há alguns meses, com excelentes resultados. O auxilio que estou necessitando é o seguinte: Quando o arquivo da Nf-e é gerado, ele é salvo num diretorio em cujo interior ficam subdiretorios referentes ao mes/dia/ano do arquivo .XML Desculpem, antes de postar aqui eu ja revirei a net e não encontro alguma dica de como copiar essas pastas e subpastas para um diretorio unico, onde ficassem todos os XML do mes. Pode ser em DOS, em Delphi ou mesmo algum programa já elaborado que permita esse tipo de backup ( tenho utilizado o Cobian 10 para fazer os backups dos terminais emitentes para o servidor da empresa, porém ele copia tambem a estrutura das pastas ), não servindo para o meu intento (eu gero um relatorio apos consultar na SEFAZ todas as notas emitidas , dessa forma o relatorio sai com dados sem possibilidades de erros ) Obrigado por qualquer resposta.
  3. Alvar, desculpe, esquece minha resposta. Eu não tive o cuidado de ver o resto dos posts, antes de faze-la. Deve ser mesmo por causa dos estados envolvidos.
  4. Olá, Alvaro, como vai ? Olha, a titulo de curiosidade, eu tentei fazer a consulta do Cpf que vc passou. Também obtive o mesmo erro que voce. Apos, tentei consultar o CNPJ da empresa para a qual desenvolvi um aplicativo emissor de Nfe. Tambem retornou erro. Talvez seja um erro la nos servidores, pois o aplicativo que estou utilizando está plenamente funcional no momento. Abraços. Por oportuno, faz uma porção de dias que nao consigo mais fazer consultas no Portal da Nota Eletronica (da Receita Federal ) . Sempre retorna que nao foi possivel acessar a pagina. Sabe se está com algum problema por lá ? link : https://www.nfe.fazenda.gov.br/portal/e ... encontrada. retorno : A seguinte falha ocorreu: Página não encontrada. Já estou pensando em formatar minha maquina.
  5. Ola a todos, boas tardes. Somente para que possa servir a alguem mais que possa ter tido o mesmo problema que eu tive , vou postar aqui o codigo que funciona , sendo que é praticamente o que postei anteriormente com apenas uma pequena correção. Agora, posso consultar qualquer quantidade de notas, que elas ficam atualizadas (no XML ).. Se alguem conseguir colocar uma progressbar por favor, editem o codigo e postem de novo, pois a rotina ficou um pouco lenta e somente no final dela é que o usuário sabe que terminou. No mesmo diretorio do projeto deverão ser colocadas as notas a serem consultadas . (desculpem a observação mas sempre suponho que algum newbie - assim como eu sou -- vai ler meu tópico ( rs rs ). Não esquecer de editar o numero do certificado digital (válido).. Testei com duzentas Nf-e e o tempo de espera foi de aproximadamente dois minutos. Codigos : procedure TForm1.Button1Click(Sender: TObject); var I : Integer; S : string; begin S := ''; ShowMessage (InttoStr (FileListBox1.Items.Count)); For i := 0 to FileListBox1.Items.Count -1 do begin S := S + FileListBox1.Items ; if Copy (S, 45, 8) = '-nfe.xml' then // chave tem 44 digitos begin ACBRNfe1.Configuracoes.Certificados.NumeroSerie := 'NumerodoCertificadoDigital'; ACBrNFe1.NotasFiscais.Clear; ACBrNFe1.NotasFiscais.LoadFromFile(S); ACBrNFe1.Consultar; MemoResp.Lines.Text := UTF8Encode(ACBrNFe1.WebServices.Consulta.RetWS); memoRespWS.Lines.Text := UTF8Encode(ACBrNFe1.WebServices.Consulta.RetornoWS); LoadXML(MemoResp, WBResposta); Label1.Caption := 'Nota Nr. '+ S + ' consultada.' ; end; S := ''; Application.ProcessMessages; end; ShowMessage ('Todas as notas foram consultadas'); end; Se alguem quiser o codigo em arquivo .rar por favor me diz como faço para posta-lo neste forum (nem sei se é possivel ).
  6. Bons dias amigos. Gostaria de que, se alguem já teve esse problema, me desse alguma ideia. Por motivos que não sei explicar, várias notas estão sendo arquivadas sem o devido numero de autorização (apesar de terem sido homologadas pela SEFAZ. (eu faço o backup para o servidor da empresa, tendo como origem a pasta contendo as notas AUTORIZADAS) . Dessa forma, estou tentando fazer uma rotina de consulta de todas as notas já emitidas, a fim de sanar essa falha. Como é sabido, se nos consultarmos determinada nota CARREGANDO o XML (pelo demo do ACBRNFe ) no retorno recebemos o Xml com o numero de autorização e o problema fica resolvido. Mas eu so consigo fazer com cada nota, individualmente. Tentei utilizar a rotina que se segue, ela consulta na SEFAZ, um diretorio completo, porem os XMLs continuam sem o numero de autorizalção. Fico aguardando alguma sugestao, muito obrigado pessoal. No form == 01 buttom e 01 FileListBox (da paleta Win31 ); 01 WebBrowser (paleta internet - WBResposta ) e dois memos (memoResp e MemoRespWS ) . Utilizo Delphi 7. procedure TForm1.Button1Click(Sender: TObject); var I: Integer; S: string; begin S := ''; For i := 0 to FileListBox1.Items.Count - 1 do begin S := S + FileListBox1.Items ; // + #13 + #10 ; // uma lista separada por enter e linha // ShowMessage (S); if Copy (S, 45, 8) = '-nfe.xml' then // a chave tem 44 digitos begin ACBRNfe1.Configuracoes.Certificados.NumeroSerie := 'Numero do Certificado'; // substituir pelo Hexa do certificado obtido no IExplorer ACBrNFe1.NotasFiscais.Clear; ACBrNFe1.NotasFiscais.LoadFromFile(S); ACBrNFe1.Consultar; // ShowMessage(ACBrNFe1.WebServices.Consulta.Protocolo); MemoResp.Lines.Text := UTF8Encode(ACBrNFe1.WebServices.Consulta.RetWS); memoRespWS.Lines.Text := UTF8Encode(ACBrNFe1.WebServices.Consulta.RetornoWS); LoadXML(MemoResp, WBResposta); S := '' end; end; end;
  7. Olá, Felipe. Obrigado pela informação ( " Este problema não é só na Capicom e pode ser em qualquer das 5 dll's necessárias para NFe " ). Inclusive, as minhas foram instaladas conforme o "leia-me" do componente, e felizmente meu aplicativo está funcionando corretamente. Abraços !
  8. Ola, Claudio, boa noite. O que costuma dar esse problema de "classe não registrada" é a dll Capicom. Apesar de ser registrada com "regsvr32.exe " voce tem de executar o programa Capicom.exe, disponivel na net para download (não me pergunte que não sei o porque disso ). Caso necessite, envio-lhe uma copia. Apesar de que, cada caso é um caso... rs rs espero que auxilie. Abraços.
  9. Boa noite, Marcos, tudo bem ? Olha, desculpe a resposta meio elementar, mas por acaso voce já tentou formatar as maquinas onde não esta funcionando a função ? eu já tive esse mesmo problema e era o sistema operacional (nos utilizamos windows XP -- com SP3 -- ) apos a formatação os arquivos passaram a ser gerados sem problema algum. No meu aplicativo uso a opção: .. .. ACBrNFe1.NotasFiscais.LoadFromFile(OpenDialog1.FileName); ACBrNFe1.NotasFiscais.ImprimirPDF; Abraços.
  10. Ola Cleber, agora fiquei numa dúvida : " ele nao retorna Rejeição: NF-e autorizada há mais de 7 dias (168 horas), mais sim....a mgs de Cancelamento da Nf-e, entao ... " Mas só para eu ter certeza -- a nota recebendo o retorno de que o cancelamento foi homologado, apesar de estar sujeita a fiscalização, mas FOI cancelada , certo ? Porque eu ja tive uma situação dessa. E preciso ter a certeza (apesar de ser meio óbvio ne,.. rs rs ).. obrigado.
  11. Ola, Elovegun, boa noite. Apesar de não ser o que você esta pedindo (" e sim como é feito a transmissão e como é feito a leitura do arquivo de retorno" ), vou apenas comentar sobre o assunto -- também estou meio enroscado com arquivos de remessa -- os exemplos que encontrei não serviram para o meu caso especifico -- porque preciso de gerar apenas esporadicamente alguns boletos -- e outros serão feitos pelo programa do banco (Itaú no meu caso) .. Mas vamos ao que interessa -- Não existe ainda (que eu saiba) um sistema que permita que o seu ERP se comunique com o sistema bancário (como é feito com o consumo de WebServices da SEFAZ/Receita Federal .. ) Os arquivos / boletos gerados (em formato texto ) DEVEM obrigatoriamente ser enviados atraves do software fornecido pelo banco. Inclusive utilizam-se até Tokens (tipo uma assinatura digital ) no micro que vai transmitir (no caso do Itau) -- acredito que por motivos de segurança maior assegurada. No meu caso, apos desenvolver a geração do boleto (com qualquer componente disponivel na net -- o que é relativamente simples, pretendo utilizar o proprio programa do banco para os retornos (mas porque no meu caso serão apenas alguns poucos boletos por dia -- os demais serão gerados pelo banco. Desculpe se não lhe esclareci quase nada, porem meu intuito foi somente demonstrar que num forum devemos participar, porque sempre temos algo a aprender com os demais. Fico muito frustrado com a quantidade de perguntas sem ao menos uma consideração de resposta // atenção dos demais - e olha tenho tido muitas experiencias dessas.. Abraços.
  12. Os problemas (graças a Deus) foram todos RESOLVIDOS.
  13. Ola, Levi. boa noite. Eu tenho um pequeno exemplo feito em Delphi 7, de um gerador de chaves. A maior parte esta em codigo, porque utilizo em apenas uma empresa, para a qual desenvolvi um em issor de Nfe. Com a maior parte entenda-se os digitos que compõem a Chave de acesso, tais como Estado, data da emissao, CNPJ, e outros. Se quiser posso enviar-lhe, basta colocar o email aqui no forum ou direto para o meu ([email protected]). É bem simplezinho mas funciona quase 100 porcento (ainda tem um pequeno bug ) , que nao tive tempo ainda de consertar. Quanto as notas em duplicidade, no começo eu tive muito esse tipo de problema, mas resolvi com uma rotirna que, com um dataset verifica se ja existe o numero da nota (numa tabela que utilizo para fazer o relatorio mensal da empresa ). Ela avisa ao usuario que existe a nota . Entao tem duas alternativas -- ou ele esta errando (duplicidade) -- muda o numero e a tabela/relatorio não se altera -- ou a nota foi rejeitada e ele esta tentando corrigir -- nesse caso os dados do arquivo/relatorio sao sobrescritos (com as devidas mudanças). Se quiser passo-lhe a rotina tambem. Abraços.
  14. Ola, Andre. Outra coisa que tambem acabei de verificar é que terminei o meu loop (while not CDS.Eof do begin ) no lugar errado (CDSProdPedido.Next; end; end; ) ---- vou encaixa-lo acima dos totais de calculos da nota / Icms. Quando eu resolver os problemas posto aqui para fechar o topico.
  15. Ola, Andre. Obrigado pelo retorno. Sim, eu sei quanto ao componente nao efetuar calculos. Mas o que eu estou começando a entender agora é o significado de (por exemplo ) : Prod.vProd := Aqui seria o valor do produto (unitario) vezes quantidade vendida ? Prod.vUnCom := e aqui seria o valor unitario do produto ? Sao essas minhas duvidas maiores. Mas eu estou realmente lendo sobre o assunto e vou chegar la ... rs rs Minhas rejeições sao somente nessa parte, o restante ja esta dominado.
  16. procedure TFrmPrincipal.BtnGerarNotaClick(Sender: TObject); var NItem : Integer; // Nr. sequencial p/ itens (produtos) begin AcbrNfe1.Configuracoes.Certificados.NumeroSerie := 'XXXXXXXXXXXXXXXX'; with ACBrNFe1.NotasFiscais.Add.NFe do begin Ide.cNF := 1; // Se for 0 gera número aleatório Ide.natOp := 'VENDA'; If ComboaVista.ItemIndex = 0 then Ide.indPag := ipVista Else if Comboavista.ItemIndex = 1 then Ide.indPag := ipPrazo; Ide.modelo := 55; Ide.serie := 1; Ide.nNF := StrtoInt (EdtNumNota.text) ; Ide.dEmi := StrtoDate (MaskDataemissao.Text); Ide.dSaiEnt := StrtoDate (MaskDataEntrega.Text); Ide.hSaiEnt := Now; If comboSaida.ItemIndex = 0 then Ide.tpNF := tnEntrada Else if comboSaida.ItemIndex = 1 then Ide.tpNF := tnSaida; Ide.tpEmis := teNormal; If Radiogroup1.ItemIndex = 0 then Ide.tpAmb := taProducao Else If Radiogroup1.ItemIndex = 1 then Ide.tpAmb := taHomologacao; Ide.verProc := '1.0.0.0'; //Versão do seu sistema Ide.cUF := 35 ; // NotaUtil.UFtoCUF(edtEmitUF.Text); Ide.cMunFG := 3506003 ; // StrToInt(form1.edtEmitCodCidade.Text); Ide.finNFe := fnNormal; Emit.CNPJCPF := '02553503000110' ; Emit.IE := '209245114114' ; Emit.xNome := 'LUCIA SETSUKO ITOMAN - ME' ; Emit.xFant := 'MASSA DA FEIRA' ; Emit.EnderEmit.fone := '14 32038783' ; Emit.EnderEmit.CEP := 17064852 ; // Emit.EnderEmit.xLgr := 'RUA WALDEMAR PADILHA' ; Emit.EnderEmit.nro := '1-10' ; Emit.EnderEmit.xBairro := 'DISTR. INDUSTRIAL III' ; Emit.EnderEmit.cMun := 3506003 ; Emit.EnderEmit.xMun := 'BAURU' ; Emit.EnderEmit.UF := 'SP' ; Emit.enderEmit.cPais := 1058; Emit.enderEmit.xPais := 'BRASIL'; Emit.IEST := ''; Emit.IM := ''; // Preencher no caso de existir serviços na nota Emit.CNAE := ''; // Verifique na cidade do emissor da NFe se é permitido // a inclusão de serviços na NFe Emit.CRT := crtRegimeNormal; Dest.CNPJCPF := Dados.QryClientecic.AsString; // DBEdtCic.Text; Dest.IE := Dados.QryClienteInscEstadual.AsString; // '687138770110'; Dest.ISUF := ''; Dest.xNome := Dados.QryClienteRazao.AsString; Dest.EnderDest.Fone := Dados.QryClienteTelefone.Value; Dest.EnderDest.CEP := StrtoInt (Dados.QryClienteCep.AsString); Dest.EnderDest.xLgr := Dados.QryClienteEndereco.AsString; Dest.EnderDest.nro := Dados.QryClienteNumero.AsString; Dest.EnderDest.xCpl := ''; Dest.EnderDest.xBairro := Dados.QryClienteBairro.AsString; Dest.EnderDest.cMun := Dados.QryClienteCodIbge.AsVariant; Dest.EnderDest.xMun := Dados.QryClienteCidade.AsString; Dest.EnderDest.UF := Dados.QryClienteUF.AsString; Dest.EnderDest.cPais := 1058; Dest.EnderDest.xPais := 'BRASIL'; //Use os campos abaixo para informar o endereço de retirada quando for diferente do Remetente/Destinatário { Retirada.CNPJCPF := ''; Retirada.xLgr := ''; Retirada.nro := ''; Retirada.xCpl := ''; Retirada.xBairro := ''; Retirada.cMun := 0; Retirada.xMun := ''; Retirada.UF := '';} //Use os campos abaixo para informar o endereço de entrega quando for diferente do Remetente/Destinatário { Entrega.CNPJCPF := ''; Entrega.xLgr := ''; Entrega.nro := ''; Entrega.xCpl := ''; Entrega.xBairro := ''; Entrega.cMun := 0; Entrega.xMun := ''; Entrega.UF := '';} //Adicionando Produtos NItem := 1; CDSProdPedido.First; While not CDSProdPedido.Eof do begin with Det.Add do begin Prod.nItem := NItem ; // Número sequencial, para cada item deve ser incrementado Prod.cProd := CDSProdPedidoCodigo.AsString; //'123456'; Prod.cEAN := '' ; { obrigatorio a partir de julho/2011 caso haja uso cód. de barras .. '1234567890123';} Prod.xProd := CDSProdPedidoProduto.AsString; //'Descrição do Produto'; Prod.NCM := '19022000'; // Tabela NCM disponível na net Prod.EXTIPI := ''; Prod.CFOP := '5101'; Prod.uCom := 'UN'; Prod.qCom := CdsProdPedidoQtdeVendida.AsInteger; Prod.vUnCom := CDSProdPedidoValor.AsFloat; Prod.vProd := CDSProdPedidoValor.AsFloat; Prod.cEANTrib := ''; Prod.uTrib := 'UN'; Prod.qTrib := CDSProdPedidoQtdeVendida.AsInteger ; Prod.vUnTrib := CDSProdPedidoValor.AsFloat ; Prod.vFrete := 0; Prod.vSeg := 0; if EdtDesconto.Text <> '' then Prod.vDesc := StrtoInt (EdtDesconto.Text) Else Prod.vDesc := 0; infAdProd := 'Informação Adicional do Produto'; with Imposto do begin with ICMS do begin CST := cst00; ICMS.orig := oeNacional; ICMS.modBC := dbiValorOperacao; ICMS.vBC := CDSProdPedidoValor.AsFloat; ICMS.pICMS := 18; ICMS.vICMS := CdsProdPedidoIcms.AsFloat; ICMS.modBCST := dbisMargemValorAgregado; ICMS.pMVAST := 0; ICMS.pRedBCST:= 0; ICMS.vBCST := 0; ICMS.pICMSST := 0; ICMS.vICMSST := 0; ICMS.pRedBC := 0; end; with IPI do begin CST := ipi99 ; clEnq := ''; CNPJProd := ''; cSelo := ''; qSelo := 0; cEnq := ''; vBC := 0; qUnid := 0; vUnid := 0; pIPI := 0; vIPI := 0; end; with II do begin vBc := 0; vDespAdu := 0; vII := 0; vIOF := 0; end; with PIS do begin CST := pis99; PIS.vBC := 0; PIS.pPIS := 0; PIS.vPIS := 0; PIS.qBCProd := 0; PIS.vAliqProd := 0; PIS.vPIS := 0; end; with PISST do begin vBc := 0; pPis := 0; qBCProd := 0; vAliqProd := 0; vPIS := 0; end; with COFINS do begin CST := cof99; COFINS.vBC := 0; COFINS.pCOFINS := 0; COFINS.vCOFINS := 0; COFINS.qBCProd := 0; COFINS.vAliqProd := 0; end; with COFINSST do begin vBC := 0; pCOFINS := 0; qBCProd := 0; vAliqProd := 0; vCOFINS := 0; end; end; end ; Total.ICMSTot.vBC := CdsProdPedidoTotalProduto.AsFloat; Total.ICMSTot.vICMS := CdsProdPedidoIcms.AsFloat * CdsProdPedidoQtdeVendida.AsInteger; Total.ICMSTot.vBCST := 0; Total.ICMSTot.vST := 0; Total.ICMSTot.vProd := Valtot; // CdsProdPedidoValor.AsFloat; Total.ICMSTot.vFrete := 0; Total.ICMSTot.vSeg := 0; Total.ICMSTot.vDesc := 0; Total.ICMSTot.vII := 0; Total.ICMSTot.vIPI := 0; Total.ICMSTot.vPIS := 0; Total.ICMSTot.vCOFINS := 0; Total.ICMSTot.vOutro := 0; Total.ICMSTot.vNF := Valtot ; // CdsProdPedidoTotalProduto.AsFloat; //; Substituir pelo valor total NFiscal Total.ISSQNtot.vServ := 0; Total.ISSQNTot.vBC := 0; Total.ISSQNTot.vISS := 0; Total.ISSQNTot.vPIS := 0; Total.ISSQNTot.vCOFINS := 0; Total.retTrib.vRetPIS := 0; Total.retTrib.vRetCOFINS := 0; Total.retTrib.vRetCSLL := 0; Total.retTrib.vBCIRRF := 0; Total.retTrib.vIRRF := 0; Total.retTrib.vBCRetPrev := 0; Total.retTrib.vRetPrev := 0; Transp.modFrete := mfContaEmitente; Transp.Transporta.CNPJCPF := ''; Transp.Transporta.xNome := ''; Transp.Transporta.IE := ''; Transp.Transporta.xEnder := ''; Transp.Transporta.xMun := ''; Transp.Transporta.UF := ''; Transp.retTransp.vServ := 0; Transp.retTransp.vBCRet := 0; Transp.retTransp.pICMSRet := 0; Transp.retTransp.vICMSRet := 0; Transp.retTransp.CFOP := ''; Transp.retTransp.cMunFG := 0; Transp.veicTransp.placa := ''; Transp.veicTransp.UF := ''; Transp.veicTransp.RNTC := ''; //Dados do Reboque { with Transp.Reboque.Add do begin placa := ''; UF := ''; RNTC := ''; end;} with Transp.Vol.Add do begin qVol := 1; esp := 'Especie'; marca := 'Marca'; nVol := 'Numero'; pesoL := 100; pesoB := 110; //Lacres do volume. Pode ser adicionado vários //Lacres.Add.nLacre := ''; end; Cobr.Fat.nFat := 'Numero da Fatura'; Cobr.Fat.vOrig := CdsProdPedidoValor.AsFloat; // 100 ; Cobr.Fat.vDesc := 0 ; Cobr.Fat.vLiq := CdsProdPedidoValor.AsFloat; // 100 ; with Cobr.Dup.Add do begin nDup := '1234'; dVenc := now+10; vDup := CdsProdPedidoValor.AsFloat; // 100; end; InfAdic.infCpl := ''; InfAdic.infAdFisco := ''; with InfAdic.obsCont.Add do begin xCampo := 'ObsCont'; xTexto := 'Texto'; end; with InfAdic.obsFisco.Add do begin xCampo := 'ObsFisco'; xTexto := 'Texto'; end; //Processo referenciado { with InfAdic.procRef.Add do begin nProc := ''; indProc := ipSEFAZ; end; } exporta.UFembarq := '';; exporta.xLocEmbarq := ''; compra.xNEmp := ''; compra.xPed := ''; compra.xCont := ''; NItem := NItem + 1; CDSProdPedido.Next; end; end; // AcbrNfe1.NotasFiscais.Valida; ACBrNFe1.NotasFiscais.Assinar; ACBrNFe1.NotasFiscais.Items[0].SaveToFile; ShowMessage('Arquivo gerado em: '+ACBrNFe1.NotasFiscais.Items[0].NomeArq); MemoDados.Lines.Add('Arquivo gerado em: '+ACBrNFe1.NotasFiscais.Items[0].NomeArq); // MemoResp.Lines.LoadFromFile(ACBrNFe1.NotasFiscais.Items[0].NomeArq); // LoadXML(MemoResp, WBResposta); end; //////// Com o código acima eu consigo emitir uma Nota Fiscal, acessando os dados da tabela de produtos da empresa. Quer dizer, se eu somente colocar como quantidade o valor " 1 " e também preencher a nota com apenas 1 item. Gostaria de ajuda, no sentido de me informar quais as variaveis a serem substituidas, para que os impostos sejam calculados corretamente, independente dos valors . A título de informação, explico que os campos abaixo se referem a : "CDSProdPedidoQtdeVendida" = quantidade (determinado item ) "CDSProdPedidoValor" = Valor do produto (1 item) "CDSProdPedidoTotalProduto" = valor do produto X quantidade vendida "CDSProdPedidoIcms" = o valor do produto dividido por 82 (100-18 porcento) vezes 18 Se alguem puder me dar uma luz eu fico agradecido. Inclusive após o termino, pretendo postar o codigo completo (incluindo o banco de dados vazio em firebird ) para quem desejar aproveitar algumas ideias. Eu nunca imaginei que esses componentes funcionassem com tanta eficácia e rapidez. A título de complementar, eu direciono a geração do XML para o Unimake, o qual assina, valida e transmite para a SEFAZ. Obrigado a todos.
×
×
  • 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.