Ir para conteúdo
  • Cadastre-se

fabiane_vieira

Membros
  • Total de ítens

    110
  • Registro em

  • Última visita

Tudo que fabiane_vieira postou

  1. Daniel , obrigada pela resposta , Erro na aplicação acho difícil neste caso em questão , até porque a AC é a mesma só recompilei com a atualização da ACBrSwedaSTX "Antes e Depois da atualização que gera o Bug" , ou seja , Este Log corresponde a mesma AC com a Atualização da classe ACBrSwedaSTX que não gerava Erro no Log e agora gera erros no Log . Mas tudo bem , vou debugar por aqui e caso encontre volto a postar . Muito Obrigada .
  2. Boa tarde , Como eu disse anteriormente que ia analizando e se encontrasse algo diferente postaria aqui , pois bem , peguei um Log de um cliente para isso e notei que as vezes aparece um retorno no log = Access violation at address 00443D72 in module 'PDV.exe'. Read of address FFFFFFFF e isso iniciou-se após a atualização que fiz da classe ACBrSwedaSTX , na verdade não consegui simular este erro porque ele aparece em diversos comandos . Este Log representa um periodo de dias em que não houve a atualização e esta sem este retorno de erro e um periodo em que ocorre o erro que foi após a atualização . Obrigada . ACBrECF_Log.rar ACBrECF_Log.rar
  3. Daniel muito obrigada pelas dicas Deus te abençoe . Vou documentar aqui somente para que se outro tenha o mesmo problema . Eu buferizava todos os pagamentos , exemplo de uma compra de 5,00 reais : Pagamentos buferizados individuais . 1,00 dinheiro 2,00 tef 2,00 tef Quando ia pagar o cupom , eu passava pagamento por pagamento e isso gerava o erro acima mencionado . Tive que somar os pagamentos por Finalizadora ficando assim : Pagamentos buferizados somados . 1,00 dinheiro ====> passar para o ECF o total dos pagamentos da finalizadora Dinheiro 4,00 tef ====> passar para o ECF o total dos pagamentos da finalizadora TEF Fim do problema . Muito obrigada mais uma vez .
  4. Não consegui encontrar Propriedades ou função que trata isso , mas existe uma procedure = AgruparRepostasPendentes , debuguei ela e aqui pra mim RepostasPendentes.OrdemPagamento é sempre = 0 , nunca diferente disso , não sei se isso tem haver . Daquele formato que coloquei acima se for mais que um cartão no mesmo COO e Finalizadora eu trato na aplicação a impressão , que no caso vou utilizar somente quando for a venda neste formato multi cartões . Obrigada
  5. Daniel , eu fiz uma modificação do conteúdo acima e gostaria por gentileza que avaliasse por favor , vou explicar ; Em procedure TACBrTEFD.ImprimirTransacoesPendentes; Existe uma variavel interna = Gerencial , pelo que vi esta por sua vez controla se as impressões vão ser via Gerencial . Fiz uma modificação para que a aplicação tenha acesso a esta variavel , ou seja : procedure TACBrTEFD.ImprimirTransacoesPendentes( UtilizaRelatorioGerencial : Boolean = False ); Não vai interferir nos demais que ja utilizam o ACBrTEF . ...Gerencial := UtilizaRelatorioGerencial ; Na AC estou utilizando assim : IF not TemMultiploCartoes Then DM.ACBrTEFD.ImprimirTransacoesPendentes() // Normal que ja é para todos , não interfira em nada . else DM.ACBrTEFD.ImprimirTransacoesPendentes( True ) ; ACBrTEFD.pas Obrigada .
  6. Daniel bom dia , Já deixo esta propriedade Retentar sempre False mas mesmo assim o erro persiste ; Debugando , vi que o valor que chega para abrir o vinculado é do total geral dos cartões e não de cada um deles , não sei se isso afeta . Só pra lembrar , na questão ACBrSwedaSTX , estou utilizando aquela unit que vc fez as mudanças e esta excelente até o momento . Muito Obrigada .
  7. Gente , boa noite , Estou tendo dificuldade em um teste TEF Sitef para múltiplo cartoes , procurei no forum e até vi o Daniel comentando em um tópico que não se abre vinculado com o mesmo Código de Finalizadora para quando múltiplo cartoes , ok até ai , o meu problema é que quando passo múltiplo cartoes a minha AC e da um retorno = "A impressão falhou deseja continuar" Sim ou Não , <==== não consigo tirar essa pergunta ; Quando seleciono "Sim" nesta pergunta a impressora abre um Gerencial e tudo ocorre perfeito na impressão , por favor alguém pode ajudar como tratar isso . Estou utilizando assim : procedure TFrm_Tef.ACBrTEFDComandaECFAbreVinculado(COO, IndiceECF: String; Valor: Double; var RetornoECF: Integer); begin try DM.ACBrECF.AbreCupomVinculado( COO , IndiceECF , Valor ) ; RetornoECF := 1 ; except RetornoECF := 0 ; end; end; ECF Sweda ST120 . Muito obrigada .
  8. Bom dia gente , Cenario 1 1 - Faço uma compra de um fornecedor no valor de 1000,00 reais com boleto para 30 dias que na entrada da NF mando este débito para o Contas a Pagar . 2 - Resolvo devolver 200,00 reais desta Compra e emito uma NF de devolução para questão Fiscal . No geral , como vcs tratam o financeiro desta operação ? Cenario 2 1 - Faço uma compra de um fornecedor no valor de 1000,00 reais e pago a vista em dinheiro . 2 - Resolvo devolver 200,00 reais desta Compra e emito uma NF de devolução para questão Fiscal . No geral , como vcs tratam o financeiro desta operação ? Obrigada pela(s) dica(s)
  9. Pessoal , nesse caso relatado pelo Selmo Almeida percebemos que esta questao não se trata de um problema isolado somente da ACBrSwedaSTX e sim dos demais modelos . Julio eu estou em Hortolândia-SP , e emprestar o ECF não ha problema mas o Daniel esta mais próximo para este tramite se ele se dispor a verificar é claro . Muito obrigada a todos .
  10. Daniel bom dia , Feedback de comportamento do ACBrECF com comparativo com o programa Lacrador da Sweda , vamos lá : Comportamento do Programa da Sweda "Lacrador" : 1 - Emito uma Leitura "X" e logo no inicio da impressão abro a tampa , a AC Lacrador me mostra a mensagem "Tampa Aberta" . 2 - Fecho a Tampa e continua mais um pedaço de impressão e nesta mesma Leitura "X" , acaba o papel , a AC Lacrador me volta outra mensagem "Sem papel" , ou seja , vai alternando o Retorno de Erro até acabar por completo a impressão . Comportamento do ACBr ECFTeste : 1 - Emito uma Leitura "X" e logo no inicio da impressão abro a tampa , a AC ECFTeste me mostra a mensagem "Tampa Aberta" . 2 - Fecho a Tampa e continua mais um pedaço de impressão nesta mesma Leitura "X" , acaba o papel , a AC ECFTeste não mais me retorna nenhuma mensagem deixando a aplicação Congelada . Nesta versão os Eventos ONError... continuam sendo disparados uma unica vez mas diferentemente da primeira versão ACBrSwedaSTX que disparava somente no Executar do comando , agora alem do inicio do Comando também é disparado no meio da impressão enquanto não acaba a impressão ( Mas somente uma única vez ) , me retornando somente o primeiro erro e não mais os outros . Considerações : 1 - Houve uma evolução muito boa , se conseguisse disparar estes eventos a cada erro retornado antes de acabar por completo a impressão seria maravilhoso . 2 - O Evento ONErrorSemPapel não dispara de nenhuma forma . Obrigada .
  11. Daniel bom dia , Oque noto no ACBrECF é que as exceções são tratadas no momento da Execução , ou seja , executo um Comando qualquer e o ECF esta sem nenhum problema para receber este comando "X" ele executa e passa do tratamento de exceção , mas no caso em questão onde o mesmo efetuou o comando mas ainda não terminou de imprimir uma leitura X por exemplo este retorno do papel ou tampa aberta ou outra coisa que implique o retorno isso não retorna para aplicação , a nível de teste ativei uma flag = ControlePorta mas tbm não tive resultado . Considerações : Quando o ECF esta OK para receber comandos do ACBrECF onde este comando inicia mas no meio do retorno ele tem algum Bug do ECF , este por sua vez não é mais retornado ( Tampa Aberta , Sem Papel ... etc etc ) . Exclui o Log e coloquei 2 logs : ACBrlog_Na_Execussao_FechaCupom.txt ....No Executar o comando ACBrlog_Apos_FechaCupom_Que_Ja_Iniciou.txt ....Aguardando o Retorno do Comando que iniciou OK mas ainda não Finalizou o Ciclo por completo ( A aplicação esta travada e o ECF com algum problema genérico = Sem papel , Tampa aberta ... ) Obrigada
  12. Algumas coisas que tive vendo em ACBrECFSwedaSTX : if Trim(Mensagem) = '125' then // ====> O retorno aqui sempre vem com '0125' e não '125' DoOnErrorSemPapel else raise EACBrECFSemResposta.create(ErroMsg) ; ... vou postando aqui oque eu puder ajudar !
  13. Daniel e Elton obrigada pela resposta , Vejam o cenario : - ECF Sweda ST 120 - Corto o papel deixando apenas uma média de 10 cmt de papel . 1 - Inicio o cupom , ok . 2 - Passo 1 item , ok . 3 - Subtotalizo e Pago , ok . 4 - Inicio o FechaCupom e começa imprimir o fechamento mas tem apenas um pedacinho de papel e não é o suficiente para imprimir todo o FechaCupom... 'ok' 5 - Antes que seja totalmente impresso o Comando FechaCupom acaba totalmente o papel do ECF e vi que no log o mesmo começa a retornar ...'OK... Aguardando Bloco' . neste momento o Led vermelho = "Erro Papel" do ECF esta piscando . 6 - Quando coloco papel no ECF a aplicação Termina as ações 100% mas queria mostrar na tela quando acabace o papel uma mensagem e enquanto o status fosse sem papel ele me informasse que o motivo da parada é a falta de papel . Tentei o evento de OnErrorSemPapel mas não retorna nada . Testei o aplicativo da Sweda chamado "Lacrador" e o mesmo quando acaba o papel me retorna um Panel na tela = "Sem papel" e enquanto não coloco o papel ele não some o panel , uma espécie de timer escutando a porta do PC X ECF . Estou colocando o ACBrECFLog para vcs verem por favor . Muito obrigada . acbrlog.txt acbrlog.txt
  14. Bom dia gente , Estou tendo dificuldade em ter o retorno que acabou por completo o papel quando o ECF vai terminar de imprimir a finalização do Cupom , ou seja , Comando "ACBrFechaCupom" , friso que este ECF esta com o sensor de papel desabilitado . - No caso seria este o problema do sensor de papel desabilitado do ECF que o ACBrECF não disparar o evento ONErrorSemPapel ? - Para utilizar TEF em minha AC é inevitável que o ECF tenho que ter o Sensor de Papel habilitado e funcionado corretamente ? Neste ECF Sweda que estou testando mesmo sem papel ou com pouco papel no ECFTeste clicando no menu "Pouco Papel ?" do ECFTeste ele me retorna sempre = NÃO !!!! Muito obrigada
  15. Isaque e Elton , muito obrigada pela resposta , vou montar isso tudo e testar e posto aqui o resultado obtido .
  16. Elton , 1º - É um Código meu inicial de teste viu , com certeza pode ser muito melhorado . 2º - Não quero que o componente faça isso , alias se fizesse seria simplesmente sensacional ! , é justamente a minha questão se alguém utiliza algo parecido . 3º - Veja que o Sql utilizado para preenchimento dos blocos C... etc... da escrituração são o "espelho" de itens utilizados ( Unid Med , Produtos , Participantes , etc etc ) para se preencher os registros do bloco-0 , e eu não queria mais utilizar Sql para se achar estes Registros e sim uma tentativa de se preencher utilizando os registros da própria Tree preenchida do componente mas vi que o peso dessa rotina parece incomodar bastante o hardware . Resumo da sequencia do que quero : 1 - Add o bloco A 2 - Add o bloco C 3 - Add o bloco D 4 - Add o bloco NNNNN 5 - Add o bloco-0 com os detalhes retirados dos blocos acima do próprio Componente ( Uma forma leve de se fazer isso , sendo que esse meu exemplo acima ja faz oque quero , entende ? ) Com certeza existem outras pessoas que já pensaram ou tentaram algo mas não foi a frente com isso . Muito obrigada pela atenção dispensada .
  17. Elton , estou efetuando testes assim e minha experiencia com isso esta sendo assim : Primeiro que não posso escrever no arquivo antes de armazenar toda coleção de registros A , C , D , F , porque a sequencia Bloco-0 será escrita antes do armazenamento completo . Um exemplo do trecho de código abaixo ilustra um laço para o registros 0150 , 0190 e 0200 . for i := 0 to ACBrSpedFiscal1.Bloco_C.RegistroC001.RegistroC100.Count -1 do begin QryClientesFornecedores.Close ; QryClientesFornecedores.SQL.Clear ; QryClientesFornecedores.SQL.Text := 'Select '+ 'CODIGO ,' + 'RAZAO_SOCIAL , ' + 'ENDERECO , ' + 'NUMERO , ' + 'BAIRRO , ' + 'CIDADE , ' + 'UF , ' + 'CNPJ_CPF , ' + 'COMPLEMENTO ' + 'From CADASTRO_PARTICIPANTES ' + 'where CODIGO=' + ACBrSpedFiscal1.Bloco_C.RegistroC001.RegistroC100.Items[i].COD_PART ; // Esta pesquisa é inevitável aqui no laço , ja que o Componente não tem detalhes do item e isto esta um problema na demora no rodar a rotina QryClientesFornecedores.Open ; Add_0150 ( QryClientesFornecedores.fieldbyname('CODIGO').AsString , QryClientesFornecedores.fieldbyname('RAZAO_SOCIAL').AsString , QryClientesFornecedores.fieldbyname('CNPJ_CPF').AsString , QryClientesFornecedores.fieldbyname('CNPJ_CPF').AsString , QryClientesFornecedores.fieldbyname('INSCRICAO_ESTADUAL').AsString , QryClientesFornecedores.fieldbyname('CODIGO_MUNICIPIO').AsString , QryClientesFornecedores.fieldbyname('ENDERECO').AsString , QryClientesFornecedores.fieldbyname('NUMERO').AsString , QryClientesFornecedores.fieldbyname('COMPLEMENTO').AsString , QryClientesFornecedores.fieldbyname('BAIRRO').AsString ) ; for a := 0 to ACBrSpedFiscal1.Bloco_C.RegistroC001.RegistroC100.Items[i].RegistroC170.Count -1 do begin QryUnidadeDeMedidas.Close ; QryUnidadeDeMedidas.SQL.Clear ; QryUnidadeDeMedidas.SQL.Text := 'Select ' + 'CODIGO , ' + 'DESCRICAO , ' + 'CODIGO_BARRAS , ' + 'NCM , ' + 'UNIDADE_CODIGO ,' + 'UNIDADE_DESCRICAO ' + 'From CADASTRO_PRODUTOS ' + 'where CODIGO=' + ACBrSpedFiscal1.Bloco_C.RegistroC001.RegistroC100.Items[i].RegistroC170.Items[a].COD_ITEM + 'Union ' + 'Select ' + 'CODIGO , ' + 'DESCRICAO , ' + 'CODIGO_BARRAS , ' + 'NCM , ' + 'UNIDADE ,' + 'UNIDADE_DESCRICAO ' + 'From CADASTRO_INV_ESTOQUE ' + 'where CODIGO=' + ACBrSpedFiscal1.Bloco_C.RegistroC001.RegistroC100.Items[i].RegistroC170.Items[a].COD_ITEM ; // Esta pesquisa é inevitável aqui no laço , ja que o Componente não tem detalhes do item e isto esta um problema na demora no rodar a rotina , lembrando que isto tbm é necessário para os registros C470 ECF ... será muito pesado nesta linha de raciocínio que estou fazendo. QryUnidadeDeMedidas.Open ; while not QryUnidadeDeMedidas.Eof do begin Add_0190 ( QryUnidadeDeMedidas.fieldbyname('UNIDADE_CODIGO').asstring , QryUnidadeDeMedidas.fieldbyname('UNIDADE_DESCRICAO').asstring ) ; Add_0200 ( QryUnidadeDeMedidas.fieldbyname('CODIGO').AsString , QryUnidadeDeMedidas.fieldbyname('DESCRICAO').asstring , QryUnidadeDeMedidas.fieldbyname('CODIGO_BARRAS').asstring , '' , QryUnidadeDeMedidas.fieldbyname('UNIDADE_CODIGO').asstring , QryUnidadeDeMedidas.fieldbyname('NCM').asstring , '' , '' , '' ) ; QryUnidadeDeMedidas.Next ; end; end; end; /////////////////////////////////////////////////////////////// // Procedures acima dos Add's . procedure Add_0150 ( aCOD_PART : String ; aNOME : String ; aCNPJ : String ; aCPF : String ; aIE : String ; aCOD_MUN : String ; aENDERECO : String ; aNUM : String ; aCOMPL : String ; aBAIRRO : String ) ; begin with ACBrSpedFiscal1.Bloco_0.Registro0001.Registro0150 do begin if not LocalizaRegistro( QryClientesFornecedores.fieldbyname('CODIGO').asstring ) then begin with ACBrSpedFiscal1.Bloco_0 do with Registro0001 do with Registro0150New do begin COD_PART := aCOD_PART ; NOME := aNOME ; COD_PAIS := '1058' ; CNPJ := if_Then( Testa_Documento( 1 , Trim(aCNPJ) , '') , trim(aCNPJ) , '' ) ; CPF := if_Then( Testa_Documento( 0 , Trim(aCPF) , '') , trim(aCPF) , '' ) ; IE := if_Then( pos('ISENTO',UpperCase(aIE)) = 0 , aIE , '' ) ; COD_MUN := DM.Testa_Campo ( 'Registro 0150 - Participantes' , 'CODIGO MUNICIPIO' , aCOD_MUN , 'Participante : ' + aNOME ); SUFRAMA := '' ; ENDERECO := aENDERECO ; NUM := Trim(Format('%-10.10s',[aNUM])) ; COMPL := aCOMPL ; BAIRRO := aBAIRRO ; end ; end; end; end; procedure Add_0190 ( aUNID : String ; aDESCR : String ) ; begin with ACBrSpedFiscal1.Bloco_0.Registro0001.Registro0190 do begin if not LocalizaRegistro( aUNID ) then begin with ACBrSpedFiscal1.Bloco_0 do with Registro0001 do with Registro0190New do begin UNID := aUNID ; DESCR := aDESCR ; end; end; end; end; procedure Add_0200 ( aCOD_ITEM : String ; aDESCR_ITEM : String ; aCOD_BARRA : String ; aCOD_ANT_ITEM : String ; aUNID_INV : String ; aCOD_NCM : String ; aEX_IPI : String ; aCOD_GEN : String ; aCOD_LST : String ) ; begin with ACBrSpedFiscal1.Bloco_0.Registro0001.Registro0200 do begin if not LocalizaRegistro( aCOD_ITEM ) then begin with ACBrSpedFiscal1.Bloco_0 do with Registro0001 do with Registro0200New do begin COD_ITEM := aCOD_ITEM ; DESCR_ITEM := aDESCR_ITEM ; COD_BARRA := aCOD_BARRA ; COD_ANT_ITEM := aCOD_ANT_ITEM ; UNID_INV := aUNID_INV ; TIPO_ITEM := tiMercadoriaRevenda ; COD_NCM := aCOD_NCM ; EX_IPI := aEX_IPI ; COD_GEN := aCOD_GEN ; COD_LST := aCOD_LST ; ALIQ_ICMS := NULL ; end; end; end; end; ...A minha ideia e não mais necessitar pesquisas no banco de dados para se rodar os registro do bloco 0 , entende ? Com isso evita-se muitos erros gerados nestes registros do bloco-0 !
  18. Uma observação Rafa , seu aplicativo não roda em Win32 , somente Win64 , correto ? Porque baixei aqui e deu erro no Win XP 32 .
  19. Boa tarde gente , Hoje consigo gerar o Sped Fiscal e Contribuições normalmente através de Select's ao Banco de Dados com alguns erros são gerados pelos Select's que estão nos demais blocos C , etc . O Bloco-0 em sua maioria de registros representa os detalhes daquilo que vai ser add no Bloco-C etc... , ou seja , por exemplo o Registro 0200 (Produtos) 0190 (Unid Med) , etc etc... eles tem que existir pelo menos um registro nos blocos a frente para poder ser declarado no arquivo . A Pergunta : Gostaria de saber se a uma forma de Add os Registros do Bloco-0 por ultimo de todos , ou seja , ao ir Add os registros do Bloco-C , Bloco... que vão ser os detalhes para o Bloco-0 ir sendo ja buferizados para se gerar o Bloco-0 , fiz um teste aqui em se gerar o bloco-0 por ultimo "sem buferizar ainda , somente com Select ao banco" mas o Componente não escreve o Bloco-0 com os dados que passei . Consegui ser Clara ? Obrigada .
  20. Elton bom dia , Essa Bematech_COM3 é porta USB sim , ainda estou verificando o problema , mas desconfio ser no meu sistema operacional que não instala corretamente o Driver Virtual Serial da Bematech por eu ter outros Hardwares aqui instalados de conversão USB para Serial , estou com outras tarefas aqui mas quando tiver algo mais concreto sobre isso eu posto aqui . Por enquanto muito obrigada .
  21. Elton , O ACBrECF não encontra nem COM3 nem Bematech_COM3 , essas 2 portas mencionadas são criadas na instalação da impressora Bematech MP 2500 TH , a COM3 em Hardware e Bematech_COM3 . Inclusive mudei velocidade de porta etc etc... - COM3 em dispositivos de Hardware do Windows . - Bematech_COM3 na porta da impressora instalada no Windows . Realmente este tema é muito pobre de informações claras , tipo um tópico de um passo a passo de alguém dizendo "Olhe resolvi fazendo isso... !" , enfim, vou tentando e quem sabe eu não seja a primeira em descobrir e postar um passo a passo realmente definitivo . De qualquer maneira muita obrigada a todos e caso alguém tenha isso funcionando "ACBrECF com porta direcionada no Virtual Serial Driver e não com compartilhamento da impressora em rede" , por favor poste aqui por gentileza !
  22. Elton , Tenho colocado o modelo ecfNaoFiscal para todos os tipos de impressão Não Fiscal .
  23. Gente , bom dia e desculpem a pergunta , porque parece simples e as vezes até tem tópicos aqui no fórum que fala sobre isso mas confesso a vcs que não encontrei nada convincente . Sabe aquelas impressoras não fiscal Bematech MP 2500 TH ou outro modelo que seja USB , sei que existem Drivers Serial Virtual e até instalo os mesmos e eles aparecem no status da impressora instalada do windows como Bematech_COM3 , ja la nas propriedades de Hardware do Windows em portas aparece COM3 , pois bem , abro o ACBrECF Demo e coloco em porta = Bematech_COM3 e não funciona , coloco COM3 e não funciona , o unico jeito que da é compartilhando a impressora e enviar os comandos no compartilhamento . A pergunta é como vcs fazem para imprimir nestas impressoras direto na porta criada pelo driver Virtual Serial ? Muito Obrigada .
  24. Daniel , muito obrigada pelas dicas que vem nos auxiliando muito , quando comentei com Marlus sobre o projeto ACBr percebi que ele mostrou bastante respeito . Em relação a " NumeroSessao = Resposta:DLLSAT.dll necessita zlib.dll " , acontece que tinha setado a DLLSAT.dll e zlib.dll em uma pasta ambos juntas e o erro permanecia . Resultado , coloquei a zlib.dll junto do AC.exe e tudo funcionou perfeitamente , frisando que a DLLSAT pode estar em qualquer outro path que não o da aplicação como existe la no Demo para setarmos , já a zlib.dll tem que estar junto ao AC.exe , esta foi a minha solução . Obrigada Daniel e a todos .
  25. fabiane_vieira

    Duvidas D-Sat Da Dimep

    Pessoal , bom dia a todos , Compramos um Sat (D-SAT da Dimep) , estou utilizando a DLL 1.0.3.0 disponibilizada aqui mesmo no fórum em outro link . o ACBrSat.exe de teste fiz funcionar 100% com o emulador da Sefaz , ja o D-Sat quando vou enviar qualquer comando da = NumeroSessao = Resposta:DLLSAT.dll necessita zlib.dll . Ja coloquei junto ao path da dllsat.dll a zlib.dll , ou seja , as duas já estão juntas , mas mesmo assim gera o erro informado . Outra coisa , é normal a luz BLOCK ficar acesa ? Pwr = Acesa OP = Acesa ETH = Apagada SERV = Apagada AC = Apagada CF = Apagada CONF = Acesa BLOCK = Acesa FAIL = Apagada Muito obrigada a vcs .
×
×
  • 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...