Ir para conteúdo
  • Cadastre-se

Painel de líderes

Conteúdo popular

Showing content with the highest reputation on 10-07-2015 em todas as áreas

  1. Visto que não tem sido mais possível reproduzir o problema, estou analisando o problema utilizando alguns sites de testes. Dois deles dão respostas em erro http de acordo com o que queremos: https://jigsaw.w3.org/HTTP/300/Overview.html http://httpstat.us/ Fiz alguns testes utilizando o ACBrConsultaCNPJ nestes sites e percebi que pelo menos o tratamento para redirecionamentos no ACBrHTTP poderia estar incorreto. Ele não tratava o caso de caminhos absolutos. Fiz uma correção no código com respeito a isto. Não me parece que vai resolver todos os casos. Mas visto que isso não está mais ocorrendo, acho que está "de bom tamanho". Adicionei uma unit de teste para a função que eu criei na unit ACBrSocket. Estou enviando ao SVN. EDIT: Os testes unitários só foram adicionados no trunk2.
    2 pontos
  2. Bom dia a todos, Eu e o Félix conseguimos gerar um exemplo de consulta com o Web Service do SPC de Santa Catarina. Utilizamos o Componente idHttp do Indy 10, visto que não conseguimos usando o ACBrSPC que está anexado nesse tópico. Espero que isso possa ajudar os interessados. Obs: Não temos autorização para disponibilizar o Usuário e Senha que nos foi repassado. Saudações, Luiz Paulo TesteSPC-SC.zip
    2 pontos
  3. Acabei de enviar o demo do ACBrNFe já compatibilizado para o Trunk2, basta atualizar.
    2 pontos
  4. Estamos usando Lazarus profissionalmente a mais de 2 anos... e não me arrependo... -> http://www.djpdv.com.br/ Para acesso a BD uso atualmente a ZeosBD, mas os componentes nativos do Lazarus estão muito bons atualmente... Veja também esses projetos: https://github.com/mdbs99/Greyhound https://github.com/leledumbo/ghORM Esqueça o Fast Report no Lazarus... tentei contato com eles algumas vezes e nunca responderam... Use o LazReport ou o Fortes4Lazarus Os problemas do ACBr no Linux são principalmente pela falta de usuários e testes... Por favor abra um tópico novo para cada um dos problemas enfrentados... Quanto a diferença de layout, isso é comum, já que no Linux o Lazarus usa a GTK2 e no windows WinAPI... os componentes são diferentes.. Vc precisa trabalhar com ancoras para que o seu layout se ajuste dependendo do WidgetSet.. Ou então adotar um WidgetSet multiplataforma, como a QT (a GTK2 tb pode ser executada no windows) http://wiki.lazarus.freepascal.org/Multiplatform_Programming_Guide
    2 pontos
  5. Interpretando o Bloco retornado: 13:46:35:281 RX <- (Bloco) = [STX]v00!0000AC[128][144][146][128][128][ETX][226] [STX] v - SEQ 00 - TAREFA ! - TIPO 0000 - MENSAGEM (0000 - Sem Erro) A - ESTADO OPERACIONAL (ATIVO) C - Docto Emissao (CUPOM FISCAL) [128][144][146][128][128] - Sinalizadores [ETX] [226] - Checksum Notei que o VerificaFimLeitura encerrou com esse Bloco.. e não deveria... Apliquei uma possível correção no SVN, Trunk e Trunk2
    2 pontos
  6. Boa tarde Juliomar, Esse problema que esta ocorrendo com o DistribuicaoDFe deve ter haver com o que estou conversando com o Daniel, existe uma procedure que define o a URL do serviço como sendo igual a do SoapAction e no caso do DistribuicaoDFe elas são diferentes.
    1 ponto
  7. Existe o ControleDePorta no MonitorPLUS... Você pode imprimir qualquer relatório na impressora ligada ao MonitorPLUS, usando o objeto "ESCPOS" Ex: ESCPOS.Imprimir("</zera></logo></ce>TITULO</lf></fn>LINHA2</corte_total>") // Para conhecer todas as Tags use o comando abaixo ESCPOS.ImprimirTags
    1 ponto
  8. Boa tarde Italo, encontrei o arquivo de damdfe que o acbr utiliza para a impressão. Corri os caracteres e resolveu. Estava tentando abrir as unit's mas tinha que abrir o unit antecessora antes. Segue as unit's para quem precisar Muito Obrigado pela ajuda! ACBrMDFeDAMDFeRLRetrato.pas ACBrMDFeDAMDFeRLRetrato.dfm
    1 ponto
  9. Ajudou Sim Ítalo; O problema agora é que a empresa não quer aceitar o CTe feito usando a NFe de anulação; No mais agradeço Robinho
    1 ponto
  10. Boa tarde a todos, Posso até enviado alguma coisa para SVN, só vendo os logs não me recordo no momento.
    1 ponto
  11. COMPATIBILIDADE ENTRE A ER/COTEPE VERSÃO 02.03 E A ER/MG VERSÃO MG.001 Compatibilidade_ER0203_e_ERMG001.pdf
    1 ponto
  12. Boa tarde Mauricio, com certeza todos aqui do Sac são pessoas muito boas e dedicadas no que fazem. Ja baixei tudo que achei do site de SP, ja consegui funcionar o emulador, até ja consegui fazer um venda e emitir o cupom fiscal pelo aplicativo da sefaz. Agora estou tentando usar o Monitor, até consegui montar o arquivo de venda e enviar ao emulador, o emulador processou o arquivo e retornou o xml assinado certinho e até consegui imprimi-lo pelo Monitor, mas não consegui finalizar todo processo pelo monitor, fiz da seguinte maneira: 1º passo: SAT.Inicializar - blz deu certinho 2º passo: SAT.AssociarAssinatura - esta parte não precisou por que o emulado ja esta configurado esta parte. 3º passo: SAT.CriarEnviarCFe("' +vNomeArquivoINI+ '") - nesta parte o monitor gerou o xml e enviou ao SAT, nesta parte p monitor fica como se estivesse esperando o retorno do SAT do arquivo xml aprovada a venda, mas o monitor não me retorna o arquivo de SAI.TXT com a resposta e fica travado. respostas do SAT emulador: aqui é criado o xml na pasta do SAT C:\SAT\CFes [2015-07-10 13:47:20.584]:INICIO EMISSAO [2015-07-10 13:47:20.620]:Carregando CFe. [2015-07-10 13:47:20.641]:Validando Campos do CFe. [2015-07-10 13:47:20.645]:Processando as informacoes CFe. [2015-07-10 13:47:21.715]:Continuando a Validacao do CFe. [2015-07-10 13:47:21.721]:Assinando CFe. [2015-07-10 13:47:22.087]:EMITIDO COM SUCESSO log do SAT: - 13:47:19:467 - ACBrSAT.Inicializado - 13:47:20:529 - -- 13:47:20:528 - numeroSessao: 322186 - Comando: EnviarDadosVenda( <?xml version="1.0" encoding="UTF-8"?><CFe><infCFe versaoDadosEnt="0.05"><ide><CNPJ>03754648000141</CNPJ><signAC>C75D1D5211CE69D75CADC5D547C818B568C91D89B30BF081E8D92A9B63A7EBC737C6FDFF2F2B12CE17CA505D85A491B13BFC3AB46E447AA8FBD0D0CB05811F1E696F23F24C25532DBA036474C7392A650FC3465FBD2F80738B2A64D40F04A92146B0BF8F465026630C26FFA810B0953A287D0E876CF900AA202A83BD3327BFEFC75D1D5211CE69D75CADC5D547C818B568C91D89B30BF081E8D92A9B63A7EBC737C6FDFF2F2B12CE17CA5052</signAC><numeroCaixa>011</numeroCaixa></ide><emit><CNPJ>11111111111111</CNPJ><IE>111111111111</IE><indRatISSQN>S</indRatISSQN></emit><dest><xNome>CONSUMIDOR FINAL</xNome></dest><det nItem="1"><prod><cProd>0001</cProd><xProd>PRODUTO 1 U</xProd><NCM>84433239</NCM><CFOP>5102</CFOP><uCom>UN</uCom><qCom>1.0000</qCom><vUnCom>2.00</vUnCom><indRegra>A</indRegra></prod><imposto><vItem12741>0.49</vItem12741><ICMS><ICMS00><Orig>4</Orig><CST>00</CST><pICMS>0.00</pICMS></ICMS00></ICMS><PIS><PISSN><CST>49</CST></PISSN></PIS><COFINS><COFINSSN><CST>49</CST></COFINSSN></COFINS></imposto><infAdProd>PRODUTO 1 U</infAdProd></det><total><vCFeLei12741>0.49</vCFeLei12741></total><pgto><MP><cMP>01</cMP><vMP>2.00</vMP></MP></pgto><infAdic><infCpl>Teste emiss?o CFe/SAT</infCpl></infAdic></infCFe></CFe> ) neste ponto o monitor fica travado e não me retorno o arq. de SAT.TXT para ver a resposta. tenho que configurar algum caminho indicando onde o monitor vai receber o xnl de retorno do SAT?
    1 ponto
  13. Boa tarde Juliomar Marchetti, Acabei de criar um exe através do qual coloquei um código no btn pra alterar esses dados do registro... priorizando nele a parte que citei acima do 'GlobalUserOffLine' e o registro foi corretamente alterado (HKEY_CURRENT_USER) tanto no Win 7 Ultimate e também numa outra máquina com Win 8.1 64bits. O exe que criei coloquei um edit onde poderia colocar o valor que desejasse atribuir ao 'GlobalUserOffLine' e todo evento acima coloquei dentro do evento click do botão... Att. Rômulo Mayworm procedure TForm1.btn1Click.txt
    1 ponto
  14. Bom dia a todos, Não estou realizando nenhuma reestruturação no que diz respeito ao DANFSE, sendo assim todas os pedidos de correções no DANFSE ou pacotes de instalação do mesmo, podem ficar a vontade em enviar para o SVN.
    1 ponto
  15. Bom dia a todos, Acredito que agora é arredondar as arestas que por ventura sobraram e partir para a NFS-e e GNRE. Quanto ao NFS-e a minha ideia é termos um INI chamado Cidades (já esta disponível) com a relação das cidades informando qual é o provedor que a atende. Para cada provedor teríamos também um INI cujo nome é o nome do provedor, por exemplo: Ginfes (já esta disponível), este arquivo contem as particularidades do mesmo. Os provedores que seguem o padrão ABRASF, se utilizam da versão 1 ou 2, infelizmente existem aqueles que tem algo a mais ou invertido, por exemplo as TAGs de desconto condicional e incondicional. Para tentar remover dos fontes os valores: proXXXXX que indica um determinado provedor do tipo if FProvedor = proGinfes then ..... a ideia é passar a usar a versão do XML que a principio é 1 ou 2, poderíamos criar uma sub-versão para identificar esses algo mais ou inversão de TAGs, entre outros. Se conseguirmos chegar a esse ponto, com o surgimento de um novo provedor, bastaria criar um INI para ele e acrescentar as cidades que são atendidas por esse provedor no INI Cidades. Só teríamos que alterar os fontes do componente caso surgisse uma nova sub-versão. Já os provedores que não seguem o padrão ABRASF é um caso a parte que devemos estudar qual será o procedimento. Ou tentar encontrar uma formula que possamos no futuro acrescentar um novo provedor independente se segue ou não o padrão sem precisar realizar alterações nos fontes do componente. Isso seria o Ideal, mas como o Ideal nem sempre conseguimos atingir vamos focar no Real. Não estou me referindo ao nome da moeda brasileira.
    1 ponto
  16. Show, eu já estou postando aplicações mobile com Delphi XE8 UPD1 e atualmente estamos desenvolvendo um sistema de comanda eletrônica mais outras funções totalmente FREE tanto para os Cliente seus como para Vocês programadores, pois desenvolvi um SDK de integração de qualquer linguagem com nosso servidor, a primeiro momento fiz um componente Delphi para integrar sua aplicação ao Nosso SDK super simples de usar e será traduzido para outras linguagens... Adorei programar Mobile para nossa empresa, muda algumas coisas, no Android mesmo tem alguns macetes para evitar travamentos de interface e etc, mais depois que você cria sua lib vai indo bem, venho olhando e construindo coisas desde o XE6 para testar mais somente com o XE8 que estou realmente postando na Loja, o XE6 e XE7 tem muitos mais muitos BUG's mesmo o XE8 tá bem mais parrudo, em breve venho divulgar nossa APP para todos...VLW pela iniciativa mobile... PS.: Vi o simbolo do Lazarus na imagem mais pelo que já estudei do mesmo, ainda estava muito CRU para móbile, houve algum avanço significativo para usar-lo ???
    1 ponto
  17. Daniel, bom dia, Após 5 dias em pleno uso da correção no supermercado não tivemos mais problema de cancelamento, utilizando a correção disponibilizada. Portanto, estamos setando como problema resolvido. Agradeço mais uma vez a sua ajuda e assistência.
    1 ponto
  18. Sim já estamos fazendo as atualizações dos layouts para a versão 2.1 quem quiser ajudar e ir vendo como funciona o assinar, validar da nfe para implementar no esocial será o novo passo que iremos fazer na componente...
    1 ponto
  19. os outros componentes do trunk2 ja tenho instalado, estava somente recompilando e add o cte fortes
    1 ponto
  20. ppTexto irá ignorar todas as tags de formatação, e removerá os acentos... Use ppEscPosEpson... Use o PosPrinterTeste e tente entre as diversas páginas de código existentes... veja qual se sai melhor... Creio que demorará algumas semanas até NFSe estar pronta no trunk2
    1 ponto
  21. Provavelmente eles estão falando apenas dos registros 60M, 60A e correlatos que são referentes ao ECF.
    1 ponto
  22. 1 ponto
  23. Pessoal, peguem os fontes das branches, baixem os fontes que eu postei, para deixar o projeto copilável e vão montando suas rotinas de alimentação do componente. O ECF é muito grande e no meu caso, estou tendo que criar algumas rotinas novas no meu sistema que não precisavam para o ECD e FCONT (blocos M, N, X e Y). E o cliente vai levar mais algum tempo só para associar as contas da empresa com as novas contas referencias do ECF. Se fizermos isso quando liberarem o componente em sua versão final, só iremos testar e entregar. Att.
    1 ponto
  24. 1 ponto
  25. Acabei de subir para o SVN, (trunk e trunk2) correções para o numero de colunas... e intui que a Página de Código usada pela Daruma é cp850 Por favor verifique se os caracteres acentuados aparecem corretamente em Relatórios Gerenciais
    1 ponto
  26. Bom dia Lopes, Quem me dera ser gentil, sou muito chato. Todos os dias de manhã e a tarde, visito os Portais Nacionais da NF-e, CT-e e MDF-e em busca de novos Schemas, Manuais e Notas Técnicas. Se tem algo novo que precisa ser implementado ou alterado, procuro fazer o quanto antes possível. Alem de procurar manter os componentes atualizados e disponibilizar essas alterações o mais rápido possível, procuro também, diariamente manter os fontes da minha maquina atualizados. Essas são as dicas: manter os fontes atualizados e visitar os portais diariamente.
    1 ponto
  27. OLha como ta meu codigo fonte: So Lembrando que a primeira venda vai normal, ja na segunda em diante não vai mais, da erro na funcao: Resp := xSAT_EnviarDadosVenda( numeroSessao, PAnsiChar(codigoDeAtivacao),PAnsiChar(dadosVenda) ) ; versão da dll dimep: 1.0.2.0 procedure GerarSAT(CodigoVenda:Integer) ; var TotalItem: Double; sXMLGerado:String; iItem:integer; DirEnv, DirResp : String; numSessao,CodigoNota: Integer; TempMemo:TMemo; ok:Boolean; begin try ModACBr.ACBrSAT.CFe.Clear; ModACBr.ACBrSAT.InicializaCFe ; TempMemo := TMemo.Create(Application); TempMemo.Visible:=False; TempMemo.Parent := frm_Principal; with ModACBr.ACBrSAT.CFe do begin CarregaDadosEmitente; SQLString(Tabela.Consulta,'Select n.*,e.* from nnfe n,nnfestatus e '+ ' where n.no_codigo = e.no_codigo'+ ' and n.codvenda='+inttostr(CodigoVenda)+ ' and n.modelo=59'); CodigoNota:= MostCampoQ(Tabela.Consulta,'no_codigo','I'); iRegEmp := MostCampoQ(Tabela.Consulta,'crt','I'); SQLString(Tabela.Consulta,'Select * from nnfecli where no_codigo='+inttostr(CodigoNota)); if Tabela.Consulta.IsEmpty=False then begin if MostCampoQ(Tabela.Consulta,'cli_codigo','I')>0 then begin if ValidaDocs(ModACBr.ACBrValidador,'CPF',MostCampoQ(Tabela.Consulta,'CNPJ','S')) then Dest.CNPJCPF := TiraCaracEspecial(MostCampoQ(Tabela.Consulta,'CNPJ','S')); if MostCampoQ(Tabela.Consulta,'cli_nome','S')<>'' then begin Dest.xNome := MostCampoQ(Tabela.Consulta,'cli_nome','S'); Entrega.xLgr := MostCampoQ(Tabela.Consulta,'cli_endereco','S'); Entrega.nro := MostCampoQ(Tabela.Consulta,'cli_numero','S') ; Entrega.xCpl := MostCampoQ(Tabela.Consulta,'cli_endcompl','S'); Entrega.xBairro:= MostCampoQ(Tabela.Consulta,'cli_bairro','S') ; Entrega.xMun := MostCampoQ(Tabela.Consulta,'cli_cidade','S'); Entrega.UF := MostCampoQ(Tabela.Consulta,'cli_estado','S') ; end; end; end; if SQLString(Tabela.Consulta,'Select p.*,i.* from nnfeprod p,nnfeprodimp i '+ ' where p.no_codigo=i.no_codigo and p.item=i.item and '+ ' p.no_codigo='+inttostr(CodigoNota)) then begin while not(Tabela.Consulta.Eof) do begin with Det.Add do begin nItem := MostCampoQ(Tabela.Consulta,'ITEM','I'); Prod.cProd := MostCampoQ(Tabela.Consulta,'CODIGO','S'); if EAN13Valido(MostCampoQ(Tabela.Consulta,'CODBARRA','S')) then Prod.cEAN := MostCampoQ(Tabela.Consulta,'CODBARRA','S'); Prod.xProd := MostCampoQ(Tabela.Consulta,'DESCRICAO','S'); prod.NCM := MostCampoQ(Tabela.Consulta,'NCM','S'); Prod.CFOP := MostCampoQ(Tabela.Consulta,'CFOP','S'); Prod.uCom := MostCampoQ(Tabela.Consulta,'UN','S'); Prod.qCom := MostCampoQ(Tabela.Consulta,'QTDE','F'); Prod.vUnCom := MostCampoQ(Tabela.Consulta,'PRECO','F'); Prod.indRegra := irArredondamento; Prod.vDesc := 0; Prod.vRatDesc := MostCampoQ(Tabela.Consulta,'DESCONTO','F'); Prod.vRatAcr := MostCampoQ(Tabela.Consulta,'OUTRAS','F'); Imposto.vItem12741 := MostCampoQ(Tabela.Consulta,'vTotTrib','F'); infAdProd := MostCampoQ(Tabela.Consulta,'INFADIC','S'); // with Prod.obsFiscoDet.Add do // begin // xCampoDet := 'campo'; // xTextoDet := 'texto'; // end; Imposto.ICMS.orig := StrToOrig(ok,MostCampoQ(Tabela.Consulta,'ORIG','S')); if (iRegEmp <= 1) then // simples nacional begin Imposto.ICMS.CSOSN := StrToCSOSNIcms(ok,MostCampoQ(Tabela.Consulta,'IC_STI','S')); end else begin Imposto.ICMS.CST := StrToCSTICMS(ok,MostCampoQ(Tabela.Consulta,'IC_STI','S')); end; Imposto.ICMS.pICMS := MostCampoQ(Tabela.Consulta,'IC_PICMS','F'); Imposto.PIS.CST := StrToCSTPIS(OK,MostCampoQ(Tabela.Consulta,'PIS_CST','S')); Imposto.PIS.vBC := MostCampoQ(Tabela.Consulta,'PIS_VBC','F'); Imposto.PIS.pPIS := MostCampoQ(Tabela.Consulta,'PIS_PPIS','F'); Imposto.COFINS.CST := StrToCSTCOFINS(OK,MostCampoQ(Tabela.Consulta,'CO_CST','S')); Imposto.COFINS.vBC := MostCampoQ(Tabela.Consulta,'CO_VBC','F'); Imposto.COFINS.pCOFINS := MostCampoQ(Tabela.Consulta,'CO_PCOFINS','F'); end; Tabela.Consulta.Next; end; end; SQLString(Tabela.Consulta,'Select vlBaseIcms,vlIcms,vlBaseICmsSt,vlIcmsSt,'+ 'vltotNota,vlFrete,vlSeguro,vlDesconto,'+ 'vlOutras,vltotNota,vltotProd,vTotTrib, '+ 'vlpis, vlcofins '+ ' from nnfe '+ ' where no_codigo='+inttostr(CodigoNota)); Total.DescAcrEntr.vDescSubtot := MostCampoQ(Tabela.Consulta,'vlDesconto','F'); Total.DescAcrEntr.vAcresSubtot:= MostCampoQ(Tabela.Consulta,'vloutras','F'); Total.vCFe := MostCampoQ(Tabela.Consulta,'vltotNota','F'); Total.vCFeLei12741 := MostCampoQ(Tabela.Consulta,'vTotTrib','F'); if SQLString(Tabela.Consulta,'select * from formapgto where codvenda='+ inttostr(CodigoVenda)) then begin while not(Tabela.Consulta.Eof) do begin with Pagto.Add do begin if ((Tabela.Consulta.FieldByName('FORMA').AsString='Dinheiro') or (Tabela.Consulta.FieldByName('FORMA').AsString='Troca') or (Tabela.Consulta.FieldByName('FORMA').AsString='Boleto') or (Tabela.Consulta.FieldByName('FORMA').AsString='Vale/Tichets')) then begin cMP := mpDinheiro; vMP := Tabela.Consulta.FieldByName('VALOR').AsFloat; end else if ((Tabela.Consulta.FieldByName('FORMA').AsString='Cheque') or (Tabela.Consulta.FieldByName('FORMA').AsString='Cheque-pre')) then begin cMP := mpCheque; vMP := Tabela.Consulta.FieldByName('VALOR').AsFloat; end else if ((Tabela.Consulta.FieldByName('FORMA').AsString='Cartao') or (Tabela.Consulta.FieldByName('FORMA').AsString='Cartão')) then begin cMP := mpCartaodeCredito; vMP := Tabela.Consulta.FieldByName('VALOR').AsFloat; end else if ((Tabela.Consulta.FieldByName('FORMA').AsString='Crediario')) then begin cMP := mpCreditoLoja; vMP := Tabela.Consulta.FieldByName('VALOR').AsFloat; end else begin cMP := mpOutros; vMP := Tabela.Consulta.FieldByName('VALOR').AsFloat; end; end; Tabela.Consulta.Next; end; end; // | Informações Adicionais if SQLString(Tabela.Consulta,' Select inffisco,infcompl,infcomplusu '+ ' from nnfe where no_codigo='+inttostr(CodigoNota)) then begin InfAdic.infCpl :=MostCampoQ(Tabela.Consulta,'INFCOMPL','S')+ MostCampoQ(Tabela.Consulta,'INFCOMPLUSU','S'); end; end; sXMLGerado := ModACBr.ACBrSAT.CFe.GetXMLString( True ); DirEnv := ExtractFilePath(Application.ExeName)+'\Env\'; DirResp := ExtractFilePath(Application.ExeName)+'\Res\'; try ModACBr.ACBrSAT.EnviarDadosVenda(); except end; numSessao := ModACBr.ACBrSAT.numeroSessao; ForceDirectories( DirEnv ); ForceDirectories( DirResp ); TempMemo.Lines.Text:= sXMLGerado; TempMemo.Lines.SaveToFile(DirEnv + 'CFe-'+IntToStrZero(numSessao,6)+'.xml'); if ModACBr.ACBrSAT.Resposta.codigoDeRetorno = 6000 then begin TempMemo.Lines.Text:=ModACBr.ACBrSAT.CFe.AsXMLString; TempMemo.Lines.SaveToFile(DirResp + 'CFe-'+ModACBr.ACBrSAT.CFe.infCFe.ID+'-rec.xml'); if ImpPerguntaSAT then begin if varSATImpresaoDetalhada then ModACBr.ACBrSAT.ImprimirExtrato else ModACBr.ACBrSAT.ImprimirExtratoResumido; end; end else begin showmessage(ModACBr.ACBrSAT.Resposta.RetornoLst.Text); end; finally FreeAndNil(TempMemo); if Assigned(Frm_MensagemLoadNF) then FreeAndNil(Frm_MensagemLoadNF); end; end;
    1 ponto
×
×
  • 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.