Marcos Gerene
Membros-
Total de ítens
532 -
Registro em
-
Última visita
-
Days Won
1
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Marcos Gerene postou
-
Boa tarde, Estou fazendo a migração do Trunk para o Trunk2, a instalação do componente aconteceu sem erros, porém ao tentar compilar um projeto que usa MDFe estou com um erro na unit ACBrMDFeUtil mais precisamente com as sua use pmdfeConversao. Notei que na pasta ACBr\Fontes\ACBrDFe\ACBrMDFe\PCNMDFe\ não existe o pmdfeConversao, mas sim o pmdfeConversaoMDFe, então fiz a mudança na unit porém a mesma não reconhece "TpcteMask". Notei que o ACBrMDFeUtil fica em uma pasta chamada "verificar necessidade" e não entendi muito bem... o ACBRMDfeUtil deve ser "ignorado"? aonde eu uso ele devo usar o que no lugar?
-
Sim, na verdade como já tinha trabalhado com fast report ia usar ele, mas vi que era pago e resolvi usar o FortesReport... uso muitos componentes e tenho vários fontes separados... está sendo um pouco traumático a migração, mas acho que vai dar certo... tem que dar rs... obrigado pela força
-
Boa tarde Juliomar, tudo bem? Como estou fazendo a migração nesse momento, até então usava o quickreport com o ACBr (Delphi 7) e notei que o trunk2 não utiliza o QR. A partir de qual versão do Fast Report é suportada, sabe me dizer?
-
Boa tarde a todos, A um mês tentei migrar para o Trunk2 mas esbarrei na NFS-e, então voltei para o Trunk, mas venho acompanhando o Trunk2 deste então. Bem, notei que recentemente foi "liberado" o .ini do SimplISS que o servidor que uso (alem do Ginfes que foi o primeiro a ser liberado), então tentei novamente migrar para o trunk2, mas esbarrei no GNRe. Voltei novamente ao trunk porém notei que as novas tags da NF-e para a NT2015/003 e segundo o contador do meu cliente,esta nova NT vai obrigar meu cliente a emitir o GNRe (que ainda não está liberado no trunk2). A minha pergunta não é necessariamente para os desenvolvedores do ACBr mas sim para quem está implementando a NT em seus sistemas, gostaria de saber qual a solução que vocês estão encontrando para essa situação. Att, Marcos
-
Mudança de Provedor em Jaú/SP (GINFEs para CONAM)
Marcos Gerene replied to ivantgm's tópico in ACBrNFSe
Bom dia ivantgm, Ainda estou analisando com o cliente a necessidade e viabilidade do projeto, pelo pouco que li e entendi, ao consumirmos o webservice, a única parte que realmente vai ter que ser feita na unha é a montagem do XML, certo?! Se for assim, caso eu realmente faça, monto uma unit separada todo o esquema do XML para consumir esse webservice e disponibilizo aqui, caso contrário, se já tiver algo encaminhado e puder disponibilizar, agradeço. Att, Marcos -
Mudança de Provedor em Jaú/SP (GINFEs para CONAM)
Marcos Gerene replied to ivantgm's tópico in ACBrNFSe
Boa tarde ivantgm , Entrei em contato via e-mail com o [email protected]. Pergunta: gostaria de saber qual o servidor e aonde posso encontrar o material para integração com o novo web-service da NFS-e para a cidade de Jaú. Resposta: Para fazer o teste de webservice, deve-se efetuar o cadastro do CPF para ter acesso ao layout no link: https://nfehomologacao.etransparencia.com.br/sp.jau Após o teste utilizar o link de produção https://nfe.etransparencia.com.br/sp.jahu. No link do cadastro da para fazer o cadastro mesmo sendo pessoa física, coisa de 2 minutos, acredito que com isso você já consiga ter o login e senha. PS: o que você está fazendo é nos padrões ABCr ou "por fora"? -
Bom dia a todos, Estou com um problema para adicionar conhecimentos ao MDF-e. FrmMDFe.QryCidades.First; while not FrmMDFe.QryCidades.Eof do begin with infDoc.infMunDescarga.Add do begin cMunDescarga := FrmMDFe.QryCidades.FieldByName('CID_IBGE').AsInteger; xMunDescarga := FrmMDFe.QryCidades.FieldByName('CIDADE').AsString; Query.Close; Query.ParamByName('CID_IBGE').AsString := FrmMDFe.QryCidades.FieldByName('CID_IBGE').AsString; Query.Open; Query.FetchAll; Query.First; while not Query.Eof do begin if ( Copy(Query.FieldByName('PROTOCOLO').AsString,21,2) = '57' ) then begin with infCTe.Add do begin chCTe := Query.FieldByName('PROTOCOLO').AsString; SegCodBarra := ''; end; end else with infNFe.Add do begin chNFe := Query.FieldByName('PROTOCOLO').AsString; SegCodBarra := ''; end; Query.Next; end; end; FrmMDFe.QryCidades.Next; end; O meu código adiciona tanto CT-e quanto NF-e, se eu dou um showmessage em infCTe.Count vem a quantidade de CT-e adicionadas, porém no MDF-e vem assim: <infMunDescarga><cMunDescarga>3106200</cMunDescarga><xMunDescarga>BELO HORIZONTE</xMunDescarga></infMunDescarga> Fiz uma breve pesquisa e aqui no forum li algo relacionado a não poder "mesclar" tipos diferentes de documentos, então eu barrei o "with infNfe.Add do" para adicionar somente os conhecimentos e ver se era esse mesmo o problema, porém não obtive sucesso. PS: Atualmente uso o Trunk (1) e não posso migrar ainda para o trunk2, pois na ultima tentativa de migrar tive problemas com o NFS-e que ainda não estava "pronto" =/ Bom dia novamente, já encontrei a solução, está relacionada ao Ide.tpEmit, quando for "teTranspCargaPropria" só serão adicionados CT-es, quando for "teTransportadora" somente os CT-es.
-
Fiz o teste em uma máquina "virgem" e tive o mesmo resultado. O Acbr chega alterar as propriedades Porta, Path, etc do bemafi32.ini, mas quando vai fazer o "Bematech_FI_AbrePortaSerial" retorna isso: Erro em Bematech_FI_AbrePortaSerial Cod.: -4 - Arquivo BemaFI32.INI não encontrado. Verifique!
-
Boa tarde, Existe uma propriedade PathDlls que eu não setava, era por isso que o meu bemafi32.ini não modificava e criava um novo no c:\windows\. Porém na minha máquina agora ele acha o .ini, modifica ele, mas na hora de abrir a porta serial da impressora ele diz que o bemafi32.ini não foi encontrado (erro -4). Vou fazer um teste em uma máquina "virgem" para garantir que não tem nada interferindo nisso e posto o resultado. [ ]'s
-
No comando PafMF_MFD_Cotepe1704() os parâmetros são Data inicial, Data final e diretório, não controlo o nome do arquivo gerado... procedure TFrmPDV.GravarCat52(data:TDate); var dir, arquivo, arq_log_MFD:string; logMFD:TStringList; begin if (MessageBox(Handle,'Este processo pode ser muito lento se a movimentação do dia for grande. Deseja continuar?', 'Gerar CAT-52', Mb_yesno+mb_iconquestion+MB_DEFBUTTON2) = ID_NO) then Exit; try dir := ExtractFilePath(Application.ExeName)+'Cat52\'; arq_log_MFD := dir+'logCAT_52.txt'; logMFD := TStringList.Create; if (FileExists(arq_log_MFD)) then logMFD.LoadFromFile(arq_log_MFD); try if not DirectoryExists(dir) then ForceDirectories(dir); dir := dir+IntToStr(YearOf(data))+'\'; if not DirectoryExists(dir) then ForceDirectories(dir); dir := dir + PegaMes(data) + '\'; if not DirectoryExists(dir) then ForceDirectories(dir); case ECF.Modelo of ecfFiscNET : arquivo := dir + 'Memoria.tdm'; ecfEpson : arquivo := dir + 'ACBr_CTP.txt'; ecfBematech : arquivo := dir + 'Download.MFD'; ecfDaruma, ecfEscECF : arquivo := dir+'ver_nomes.txt'; //To do. end; if (FileExists(arquivo)) then DeleteFile(arquivo); try Aguardar(True); ECF.PafMF_MFD_Cotepe1704(data, data, dir); if (FileExists(arquivo)) then RenameFile(arquivo, dir+FormatDateTime('ddmmyyyy',data)+'.txt'); logMFD.Add('Arquivo CAT-52 de '+FormatDateTime('dd/mm/yyyy',data)+' gerado com sucesso.'); finally Aguardar(False); end; except on e:exception do begin logMFD.Add('Erro ao gerar arquivo CAT-52 de '+FormatDateTime('dd/mm/yyyy',data)); logMFD.Add(' '+e.Message); end; end; finally try logMFD.SaveToFile(arq_log_MFD); finally logMFD.Free; end; end; Existe uma função da ECF PafMF_GerarCAT52() pensei em usar ela, mas vi em alguns posts você dizendo que essa função era pra impressoras antigas matriciais... Vou ver se acho algo para separar esses arquivos no cat-52 que eu preciso... e quanto ao Bemafi32.ini, alguma dica de porque ele não alterar o que está na pasta ao ínvés de criar um novo? PS: Cheguei a apagar o .ini ai no meu log apareceu o erro que não existe o .ini mesmo criando no c:\windows...
-
Bom dia Daniel, Fiz o que disse e testei hoje com a Elgin e com a Bematech, ambas deram certo, mas existem algumas "ressalvas". 1-) O que eu queria era o arquivo do cat-52 mesmo, já formatado bonitinho, isso é possível? a função que citei acima na bematech gerou o "download.mfd" e na Elgin o "Memoria.tdm", ambos são o arquivo de leitura antes de separar... Com a bematech Epson foi gerado o "ACBr_CTP.txt", este exatamente do jeito que eu queria.... existe como separar esses arquivos pelo componente (gerar o arquivo final do cat-52)? Ou devo usar outra função que faça isso? 2-) No caso da Bematech eu coloquei o bemafi32.ini na pasta do meu exe e ao invés de mudar o Path do meu bemafi32.ini quando mudo o diretório, quando eu chamava a função era criado um novo bemafi32.ini no "C:\Windows\" Muito obrigado pela ajuda, Marcos
-
Bom dia Daniel Então nesse caso eu teria que testar "em produção"? Hoje uso Bematech, Epson, Daruma e Elgin, para todas a função seria essa que usei mesmo (PafMF_MFD_Cotepe1704())? Obrigado
-
Bom dia, Estou tentando fazer o meu PDV (frente de caixa) gerar automaticamente todo dia o arquivo do CAT-52. Vi que o ACBr tem várias forma de gerar o CAT-52, porém nenhuma deu muito certo nos meus testes (estou usando o emulador da Bematech mp-4200th). Código: dir := ExtractFilePath(Application.ExeName)+'Cat52\'; if not DirectoryExists(dir) then ForceDirectories(dir); dir := dir+IntToStr(YearOf(data))+'\'; if not DirectoryExists(dir) then ForceDirectories(dir); dir := dir + PegaMes(data) + '\'; if not DirectoryExists(dir) then ForceDirectories(dir); ecf.PafMF_MFD_Cotepe1704(Date(),Date(),dir); function PegaMes(Data:TDate):String; begin case MonthOf(Data) of 1: Result := 'Janeiro'; 2: Result := 'Fevereiro'; 3: Result := 'Marco'; 4: Result := 'Abril'; 5: Result := 'Maio'; 6: Result := 'Junho'; 7: Result := 'Julho'; 8: Result := 'Agosto'; 9: Result := 'Setembro'; 10: Result := 'Outubro'; 11: Result := 'Novembro'; 12: Result := 'Dezembro'; end; end; O diretório da variável dir existe e o log do ACBr não tem nada (limpei ele, executei de novo a função e continuou em branco). Alguma sugestão? Existe algum esquema de "cada função pra determinada impressora"? Obrigado, Marcos Acabei de tentar de mudar o emulado para o da Epson e o erro agora foi: Erro ao carregar a função: EPSON_Obter_Dados_MF_MFD de: InterfaceEpson.dll PS: O log continua em branco
-
Boa tarde, Estou fazendo uma consulta via lote do RPS, com o retorno eu faço um laço correndo todas as notas para pegar o Número, Código de verificação e o Status. Bem em um lote específico cancelei uma NFS-e. Ao consultar a nota de forma avulsa, o retorno que tenho é de que ela está cancelada, porém se eu consultar o lote ao qual a nota pertence, a mesma NFS-e sempre retorna "normal". Abri o XML de retorno das NFS-es e não achei nada relacionado ao status... Para pegar esse status vou ter que consultar "nota a nota" do meu lote? Tem alguma opção mais "leve"? Código: NFSe.ConsultarLoteRps(LOTE_CODIGO.Text, LOTE_PROTOCOLO.Text); for i:=0 to NFSe.NotasFiscais.Count-1 do begin sNumero := NFSe.NotasFiscais.Items[i].NFSe.Numero; sVerificacao := NFSe.NotasFiscais.Items[i].NFSe.CodigoVerificacao; if (NFSe.NotasFiscais.Items[i].NFSe.Status = srCancelado) then //Sempre retorna normal ShowMessage('Cancelado'); end; PS: Estou usando o servidor do Ginfes para Ribeirão Preto - SP em homologação. Obrigado, Marcos
-
Erro ao compilar o ACBrNFSeDANFeRLRetrato
Marcos Gerene replied to Marcos Gerene's tópico in ACBrNFSe
Boa tarde Ítalo, Obrigado -
Boa tarde, Estou começando a migrar para o Trunk2, ao tentar instalar o DANFSe do FortesReport aparece o seguinte erro: [Error] ACBrNFSeDANFSeRLRetrato.pas(343): There is no overloaded version of 'FormatDateTime' that can be called with these arguments Isso acontece em todos os lugares que chamam FormatDateTime ou FormatFloat como esta linha: rllEmissao.Caption := FormatDateTime(DateTimeToStr(FNFSe.DataEmissao)); //Astrogildo em 13/12/12 Acredito que essa função tenha sido modificada para outro nome no ABCrUtils, porque quando tento ver de onde vem a referencia aponta para o SysUtils e a forma de escrever no FormatDateTime são diferentes (argumentos usados). Vi que no ACBrUtils existe a FormatFloatBr e FormatDateTimeBr, é só dar um Find Files e alterar tudo para estas funções?
-
Boa tarde a todos, já faz um tempo a postagem, mas hoje vim no fórum para ver como andam as coisas com o S.F. e vi este post. Eu não consegui achar o problema, então simplesmente "barrei" (comentei) a linha que valida, e deixei somente gerando o lote e enviando no final. Feito isso, funcionou, acredito (não tenho conhecimento para isso, mas em alguns vi em alguns posts do fórum) que algumas funções só funcionam em determinados Provedores, então minha conclusão foi que a função de Validar não funcione com o Ginfes, mas peço para que me corrijam caso eu esteja errado para não ficar a informação errada aqui no fórum. Att, Marcos
-
Ribeirão Preto - Sp (Ginfes) - The Document Does Not Contain Exactly One Root Node
um tópico no fórum postou Marcos Gerene ACBrNFSe
Boa tarde, Estou desenvolvendo o módulo de NFSe para Ribeirão Preto - SP, porém ao validar tenho recebo este erro: Falha na validação dos Dados da nota 12 Validate failed because the document does not contain exactly one root node. Antes desse erro, mesmo com o schemas na pasta (renomeado para SchemasNFSe) o sistema não encontrava o arquivo "servico_enviar_lote_rps_envio_v03.xsd", então fiz a seguinte alteração: NFSe.Configuracoes.Geral.PathSchemas := Diretorio + 'SchemasNFse\'+NFSe.Configuracoes.WebServices.xProvedor; Feito isso começou este novo erro (da imagem acima). O código de geração dos RPSs (e inclusão no lote) e o código da configuração do componente estão em anexo, o RPS 12 é o primeiro adicionado (é adicionado o RPS 12 e 13 ao lote). Anexei também os XMLs dos RPSs. Att, Marcos codigo_rps.txt configuração.txt 13.xml 12.xml -
Boa tarde Ítalo, Deu certo, eu já tinha feito isso uma vez, acredito que tenha sido com o Ct-e, mas faz tanto tempo que nem lembrava, achei que era somente alguma propriedade... Muito obrigado
-
Boa tarde, Gostaria de saber como faço para aquela barra azul que aparece ao enviar uma NF-e (exemplo: Enviando dados, recebendo dados...) aparecer no envio do MDF-e. PS: Estou usando um ambiente de homologação, aparece mesmo assim? Obrigado, Marcos
-
Esta busca está dando TimedOut... Eu posso usar a consulta da NFS-e por RPS carregando a -nfse no LoadFromFile ao invés do -rps (que não existe mais neste caso)
-
Encontrei uma resposta no método "ConsultarNFSe()", mas para que serviria a data inicial e final se já passo como parâmetro o número da NFS-e? NFSe.ConsultarNFSe(NFSe.NotasFiscais.Items[0].NFSe.PrestadorServico.IdentificacaoPrestador.Cnpj, NFSe.NotasFiscais.Items[0].NFSe.PrestadorServico.IdentificacaoPrestador.InscricaoMunicipal, incDay(NFSe.NotasFiscais.Items[0].NFSe.DataEmissao,-1), incDay(NFSe.NotasFiscais.Items[0].NFSe.DataEmissao, 1), NFSe.NotasFiscais.Items[0].NFSe.Numero); Uma busca no formato acima retornaria somente a nota em questão?
-
Bom dia a todos, Existe alguma forma de eu consultar a situação de uma NFSe pelo número da mesma? Depois de transmitido a nfse, o xml -rps "some" da pasta dando lugar ao -nfse. No caso da busca por lote, quando vão várias notas no mesmo lote, eu não entendo como faria pra ver se só a nota de número X, por exemplo, está cancelada... Obrigado, Marcos
