Painel de líderes
Conteúdo popular
Showing content with the highest reputation on 02-01-2020 em todas as áreas
-
Problema na lib não é pois este metodo foi testado já, vou dar uma olhada na sua classe.3 pontos
-
bom dia não o xml emitido é emitido e não se muda , vai existir um evento atrelado a ele e esse xml é que deve enviar também com a nota para seu contador tem como alterar o xml mas dai ele passa a ser inválido3 pontos
-
@Nlfo segue um pequeno exemplo, só compilar...., nele fica bem fácil de entender... espero ter ajudado titulo.ini acbrboleto.prg acbrlib.ch acbrlib.ini cedente.ini teste.prg3 pontos
-
Pelo erro é uma unit do seu projeto e não do ACBr. O que você precisa modificar nos fontes do ACBr?2 pontos
-
Bom dia, por gentileza implementar ao arquivo "cidades.ini" da pasta NFS-e as cidades de Miranorte e Lagoa da Confusão. [1713304] Nome=Miranorte UF=TO Provedor=MegaSoft NomeURL_H=miranorte NomeURL_P=miranorte [1711902] Nome=Lagoa da Confusão UF=TO Provedor=MegaSoft NomeURL_H=lagoadaconfusao NomeURL_P=lagoadaconfusao Desde já, Obrigado. Analista Railson Silva2 pontos
-
Boa tarde Railson, Muito obrigado pela colaboração, já enviei para o repositório.2 pontos
-
Meus clientes tbém estão com esse erro. Rejeição Erro não catalogado 2999 - Falha não tratada Causa O erro 2999, trata-se de uma falha interna nos Servidores da Sefaz e está inclusa na exceção 999 - Erro não catalogado . Essa situação caracteriza indisponibilidade da Sefaz. Como Resolver Nessa situação, não há nada que o emissor possa fazer para corrigir esse erro, já que trata-se de um problema no Ambiente Autorizador da Sefaz. Pode-se aguardar a normalização ou ativar Contingência para a emissão de NF-e. Você ainda pode tentar contato com a Sefaz para saber o motivo dessa instabilidade.2 pontos
-
Bom dia. Temos relatos de que a SEFAZ-MA está resolvendo alguns problemas neste momento. Att.2 pontos
-
Entrei em contato com o SEFAZ informando o erro e me retornaram o seguinte: Prezados, Atualizamos o portal para receber ambas as versões , favor tentar novamente. Atenciosamente, Equipe GNRE/SEFAZ-PE2 pontos
-
Bom dia! Funcionou perfeitamente! Era o que estava faltando! Obrigado!!2 pontos
-
.Olá pessoal, Gostaria de deixar uma sugestão para deixar a visualização dos enuns mais amigável. Para carregar numa combobox: //No c# com XAML Private void CarregaNFeLayoutDanfe() { CboNFeLayout.ItemsSource = NgListaEnum.ListarEnum(typeof(TipoImpressao)); CboNFeLayout.DisplayMemberPath = "Value"; CboNFeLayout.SelectedValuePath = "Key"; CboNFeLayout.SelectedValue = TipoImpressao.tiRetrato; } //No C# WinForms private void CarregaNFeLayoutDanfe() { CboNFeLayoutDanfe.DataSource = NgListaEnum.ListarEnum(typeof(TrNFeLayoutDanfe)); CboNFeLayoutDanfe.DisplayMember = "Value"; CboNFeLayoutDanfe.ValueMember = "Key"; CboNFeLayoutDanfe.SelectedValue = TrNFeLayoutDanfe.Normal_Retrato; } Dessa forma os enumeradores assumem a descrição escolhida. TipoImpressao.cs NgListaEnum.cs1 ponto
-
Realmente não vai aceitar uma variável desse tipo. Parece a melhor opção.1 ponto
-
A impressão é derivada das configurações de cada banco para geração de boleto e o acbr segue esses padrões, ele não vai entender que não foi informado um banco e gerar um boleto que não é boleto, ou seja, um recibo. Nesse caso, será necessário você desenvolver.1 ponto
-
Eu realizo essas validações no sistema de retaguarda. Se o item esta disponível para ser vendido no PDV e pq o sistema de retaguarda ja validou todas as informações, caso contrario o item não e enviado para os PDVs..1 ponto
-
1 ponto
-
Boa tarde Wesley, Tente da seguinte forma: XMLdoEventoAutorizado := ACBrNFe1.WebServices.EnvEvento.EventoRetorno.XML; Onde XMLdoEventoAutorizado é uma variável string.1 ponto
-
1 ponto
-
1 ponto
-
Pode anexar o log gerado pela lib por favor? Nos testes não identificamos o problema o campo vUnTrib está sendo preenchido.1 ponto
-
Deixa eu tentar adivinhar, você possui mais de uma instalação do Delphi na mesma máquina e em ambas está instalado o Fortes. Se sim, remova o Fortes de todas e faça a instalação do Fortes apenas em uma das versões do Delphi. Rode o instalador do ACBr novamente e depois pode abrir e fechar o delphi quantas vezes quiser que o erro some. Caso continue aparecendo, busque em todo o HD por Bpls do Fortes, alguma pode ter ficado perdida em algum diretório que que está nos Paths.1 ponto
-
Poste os arquivos xml que esta testando, pode ser alterado os dados do emitente e destinatário, e os arquivos de log.1 ponto
-
Geralmente o valor da entrada é quase sempre em dinheiro e o restante pode ser cheque, duplicata, etc... vou postar um pedaço do código que uso... if (FQueryFPagam.RecordCount > 0) and (FUtil.LerConfig('NFe_Config', 'Versao', 0) > 0) then begin FQueryFPagam.First; for nFaturas := 0 to FQueryFPagam.RecordCount-1 do begin with Pag.Add do begin tPag := FormaPagamentoToClass(FQueryFPagam.FieldByName('Natureza').AsInteger); if tPag = fpSemPagamento then vPag := 0 else vPag := FQueryFPagam.FieldByName('Valor').AsCurrency ; tpIntegra := tiNaoInformado ; if tPag in [fpCartaoCredito, fpCartaoDebito] then begin if FQueryFPagam.FieldByName('TipoIntegracao').AsInteger = 1 then tpIntegra := tiPagIntegrado else tpIntegra := tiPagNaoIntegrado ; case FQueryFPagam.FieldByName('Bandeira').AsInteger of 1 : tBand := bcVisa ; 2 : tBand := bcMasterCard ; 3 : tBand := bcAmericanExpress ; 4 : tBand := bcSorocred ; 5 : tBand := bcDinersClub ; 6 : tBand := bcElo ; 7 : tBand := bcHipercard ; 8 : tBand := bcAura ; 9 : tBand := bcCabal ; 99 : tBand := bcOutros ; end ; CNPJ := OnlyNumber(FQueryFPagam.FieldByName('CNPJCredenciadora').AsString) ; cAut := FQueryFPagam.FieldByName('NumeroAutorizacao').AsString ; end; end; FQueryFPagam.Next; end; end; function TEmissaoNFe.FormaPagamentoToClass(FCodPagamento: Integer): TpcnFormaPagamento ; begin case FCodPagamento of 0 : Result := TpcnFormaPagamento.fpDinheiro ; 1 : Result := TpcnFormaPagamento.fpCheque ; 2 : Result := TpcnFormaPagamento.fpCartaoCredito ; 3 : Result := TpcnFormaPagamento.fpCartaoDebito ; 4 : Result := TpcnFormaPagamento.fpValeAlimentacao ; 5 : Result := TpcnFormaPagamento.fpDuplicataMercantil ; 6 : Result := TpcnFormaPagamento.fpSemPagamento ; 7 : Result := TpcnFormaPagamento.fpSemPagamento ; 8 : Result := TpcnFormaPagamento.fpOutro ; 9 : Result := TpcnFormaPagamento.fpBoletoBancario ; 10 : Result := TpcnFormaPagamento.fpSemPagamento ; end; end;1 ponto
-
https://svn.code.sf.net/p/acbr/code/trunk2/Fontes/ACBrDFe/ACBrNFe/ACBrNFeServicos.ini Nesse arquivo já constam as URL de consulta do QrCode.1 ponto
-
1 ponto
-
Bom dia. Obrigada pela contribuição, adicionada para validação. Att.1 ponto
-
1 ponto
-
Não compreendi sua pergunta.. Sugiro estudar os fontes do Demo do ACBrMTER... lá a simulação de uma aplicação de venda1 ponto
-
Isso bem possível, é só fazer um loop e preencher as formas de pagamento. Uso aqui e nunca tive problemas.1 ponto
-
Por favor tente esse comando https://acbr.sourceforge.io/ACBrMonitor/ACBrSetWebService.html1 ponto
-
Muito obrigado pela contribuição. Subi as alterações para o SVN na Revisão 18693. Pelo que vi está tudo certo. Queira por favor atualizar, testar e reportar qualquer problema. Mais uma vez obrigado.1 ponto
-
Seria algo assim: Se configurar no banco 000, ele ocultaria alguns campos, mantinha o layout do boleto, escreveria recibo, isso seria tipo um carnê de pagamento a onde o cliente iria até a loja a onde ele comprou para efetuar o pagamento. Já compreendi que isso não tem, só mostrei o que estava pensando. Muito obrigado pela atenção. Leco Jales1 ponto
-
Sim. Todos os DFe devem se comportar da mesma maneira ou o mais parecido possível dentro de suas limitações impostas seja pela legislação ou natureza. Fique a vontade pra perguntar qualquer falta de semelhança aparente que encontrar.1 ponto
-
O ACBr suporta impressoras USB ? Durante muito tempo, a resposta a essa pergunta foi: NÃO, você precisa usar a Porta COM, Spool do Windows (RAW), Compartilhamento de Rede ou algum outro método... Porém agora isso mudou... Agora componentes que usam o ACBrDevice, como por exemplo o ACBrPosPrinter (para Impressoras Não Fiscais) e o ACBrETQ (para Impressoras de Etiquetas), possuem suporte a portas USB de maneira nativo do Windows... Ou seja, sem a necessidade de DLLs externas... Isso significa que caso o seu equipamento esteja conectado ao PC, por uma Porta USB... Você poderá conectar os componentes do ACBr, simplesmente definindo na Propriedade Porta algo como "USB" Exemplos de uso: ACBrPosPrinter1.Porta := 'USB' - Tenta descobrir qual é a Primeira Impressora de Bobinas plugada na USB e faz uso dela, se encontrar.. ACBrPosPrinter1.Porta := 'USB:Elgin' - Tenta conexão em alguma Impressora USB, listada como sendo do Fabricante 'Elgin' ACBrPosPrinter1.Porta := 'USB:Sweda, SI-300S' - Tenta conexão na Impressora USB, do Fabricante "Sweda" e do Modelo "SI-300S". ACBrETQ1.Porta := 'USB' - Tenta descobrir qual é a Primeira Impressora de Etiquetas plugada na USB e faz uso dela, se encontrar.. ACBrETQ1.Porta := 'USB:Zebra, GC420t' - Tenta conexão com a Impressora USB do Fabricante "Zebra", e modelo "GC420t" Observe que essa nova implementação é totalmente diferente do método de Hook, onde usávamos a DLL do Fabricante, como túnel USB... Nesse novo cenário a comunicação USB é feita diretamente usando a API do Windows, ou seja, sem necessidade de DLLs externas. Para compreender um pouco mais, sobre esse método veja esse artigo O método de Hook ainda está disponível, usando o prefixo de porta, 'DLL:' Como os Equipamentos são identificados ? Todo Equipamento USB, possui um código de identificação do Fabricante, chamado de Vendor ID (VID), e também do Produto chamado de Product ID (PID). Essa numeração é controlada pela USB.ORG, e você pode encontras uma lista de Todos os "Vendors ID", nesse link A classe TACBrUSBIDDataBase, mantêm um Banco de Dados interno, chamado ACBrUSBID.ini, com o mapeamento dos principais Equipamentos do Mercado Brasileiro.. Esse Banco de Dados é um simples Arquivo do tipo INI, que é compilado como resource e adicionado ao componente... Clique aqui para ver o layout do Banco de Dados no Formato INI, observe os comentários no inicio do arquivo, com algumas instruções de como inserir novos equipamentos nele. Se você distribuir o arquivo ACBrUSBID.ini, na mesma pasta do Executável da sua aplicação, a classe TACBrUSBIDDataBase fará uso desse arquivo, ao invéz de usar o resource interno... Isso pode ser muito útil para atualizar a lista de Dispositivos conhecidos, sem necessitar compilar uma nova versão do programa, apenas atualizando o ACBrUSBID.ini Como posso listar os equipamentos identificados pelo ACBr ? Use a Força, leia os fontes... Vamos ver trechos de código, do Demo PosPrinterTeste {$IfDef MSWINDOWS} // Os métodos abaixo, somente estão disponíveis para compilação em Windows // Carrega a lista de Impressoras detectadas em: ACBrPosPrinter1.Device.WinUSB.DeviceList ACBrPosPrinter1.Device.WinUSB.FindUSBPrinters(); // Varre a lista de Impressoras USB detectadas, e adiciona as mesmas, nas opções de Porta for K := 0 to ACBrPosPrinter1.Device.WinUSB.DeviceList.Count-1 do cbxPorta.Items.Add('USB:'+ACBrPosPrinter1.Device.WinUSB.DeviceList.Items[K].DeviceName); {$EndIf} Como o ACBr nomeia os dispositivos ? O "DeviceName" será calculado, de acordo com as informações disponíveis no banco de Dados... Primeiro o ACBr usa a API do Windows para captura informações do VID (Vendor ID ou Fabricante) e o PID (Product ID ou Modelo), dos Equipamentos listados... Se o ACBr falhar nessa tarefa, o equipamento será ignorado (não será listado) Se for capturado com sucesso a descrição em FriendlyName, então ela será usada.. Caso contrário, o ACBr tentará compor o nome, baseado no VID e PID Se o VID do Fabricante for encontrado na sessão [Vendors] de ACBrUSBID.ini, então o VID será substituído pela Descrição do Fabricante... Observe que na sessão [Vendors], temos vários fabricantes que não são conhecidos no mercado Brasileiro, mas são de equipamentos OEM, de Empresas nacionais... Nós procuramos manter o nome Original do Fabricante, de acordo com a tabelas de VID da OSB.ORG Se o VID não tiver equivalência na relação de [Vendors] de ACBrUSBID.ini, então ele será listado com o próprio número VID, que são 4 algarismos em Hexadecimal... Exemplo: "0b1b" Procuramos pelo PID do Equipamento, na sessão específica do Fabricante. Se não houver uma chave com o PID, então o ACBr usará o próprio número PID, para Nomear o Modelo. O PID também é composto do 4 algarismos em Hexadecimal... Exemplo: "0001" Se encontrar uma entrada com o PID, dentro da sessão do Fabricante, então o ACBr usará a Descrição do Modelo, e poderá desprezar a descrição do Fabricante, se a Descrição do modelo possuir uma vírgula, Exemplo: 7008=Elgin, I9;1;1... Nesse caso será desprezada a descrição do Fabricante "20d1-Dascom" e será usada apenas a descrição do Modelo, "Elgin, I9". Detecção automática de Porta e Protocolo Como agora temos um Banco de Dados, que informa além da Descrição do equipamento, qual é o Tipo do mesmo e qual o protocolo que ele usa, então os componentes ACBrPosPrinter e ACBrETQ, podem fazer uso dessas informações... Ou seja, se o equipamento for detectado com sucesso, no momento da Ativação da Porta (durante a chamada ao método "Ativar"), será usado o Protocolo Definido no Banco de Dados. Se for detectado que o equipamento USB é na verdade uma porta COM virtual, então o ACBr irá preferir fazer uso da Porta COM virtual, chaveando para mesma, de forma transparente... Pois dessa forma ele tem um melhor suporte a leitura de informações do equipamento. Se for detectado que a porta USB possui um equipamento incompatível com o componente em questão, isso também será alertado... Exemplo, você tentar conectar em uma porta 'USB:Zebra, GC420t' no componente TACBrPosPrinter, então um erro será emitido, pois esse equipamento não é uma impressora de Bobinas Como a mágica funciona ? Reparem que foi adicionado ao repositório a Unit ACBrWinUSBDevice.pas, essa Unit implementa chamadas a SetupAPI do Windows, para detectar os Dispositivos USB que estão listados em uma determinada Classe de Equipamentos (Class GUID)... O estudo desse artigo, foi fundamental, para a criação dessa Unit. Uma vez capturada o nome da Interface do Equipamento USB (em TACBrUSBWinDevice.DeviceInterface), podemos acessá-lo usando funções de manipulação Arquivos da API do Windows, como: CreateFile, WriteFile, ReadFile. Nem todos os dispositivos USB implementam suporte aos métodos ReadFile ou WriteFile... ou seja, pode não funcionar em alguns dispositivos.. Se você souber qual é o nome da Interface USB do equipamento, poderá informar ela diretamente na propriedade "Porta" dos componentes... Exemplo: ACBrPosPrinter1.Porta := '\\?\usb#vid_1c8a&pid_3002#0000000000022#{28d78fad-5a12-11d1-ae5b-0000f803a8c2}'; Para dúvidas, suporte ou correções, por favor crie um novo tópico, clicando aqui Para testar, baixe uma nova versão do PosPrinterTeste.exe1 ponto
-
No dia 19/12/2019 foi publicado no DOU o Ajuste SINIEF 37/19, que institui o Regime Especial da Nota Fiscal Fácil - NFF, o qual conforme descreve a cláusula primeira do ajuste, visa simplificar o processo de emissão de NFCe, CTe, MDFe e NFe. Sobre a Documentação e Outras Informações Técnicas O Ato COTEPE/ICMS publicará o Manual de Orientação ao Contribuinte para uso do regime especial da Nota Fiscal Fácil, com todos os detalhes técnicos relativos ao Portal Nacional da NFF e as ferramentas emissoras. O Portal Nacional da NFF será mantido pela Sefaz Virtual do Rio Grande do Sul. (SVRS) Sobre a Adesão Conforme o §1º, a adesão poderá ocorrer por opção do contribuinte, por imposição da UF para todos seus contribuintes ou apenas para determinados grupos, ou poderá ainda ser vedada para todos ou somente para grupos de contribuintes da UF. Funcionamento A SVRS cientificará o emitente da geração do arquivo digital do documento fiscal eletrônico adequado e da concessão da correspondente autorização de uso por meio de comunicação automática entre a ferramenta emissora e o Portal Nacional da NFF. § 1º A SVRS solicitará para a aplicação autorizadora da unidade federada onde o contribuinte emissor estiver estabelecido a autorização de uso do documento fiscal eletrônico gerado nos termos da cláusula sexta deste ajuste. § 2º A concessão da autorização de uso é resultado do êxito da aplicação das regras técnicas especificadas no manual de orientação ao contribuinte correspondente ao respectivo documento fiscal eletrônico, com relação unicamente ao formato das informações contidas no arquivo digital respectivo, e às interrelações entre estas informações, não implicando a convalidação destas informações, ou das relações dessas informações com a operação que realmente ocorreu. § 3º Após a concessão da autorização de uso o documento fiscal eletrônico gerado não poderá ser alterado, sendo vedada a emissão de carta de correção, em papel ou de forma eletrônica. § 4º As informações do arquivo digital do documento fiscal eletrônico gerado serão armazenadas no Portal Nacional da NFF. Restrições Não se aplicas as operações com origem ou destino no estado de São Paulo. Prazos Efeitos a partir de 01/07/2020 Fonte: https://www.confaz.fazenda.gov.br/legislacao/ajustes/2019/ajuste-sinief-no-37-191 ponto
-
Fiz uma rotina para salvar o email enviado pelo ACBR em uma pasta no servidor, como a pasta de Itens Enviado ou outra qualquer. Espero que seja util. Seguem tb uma classe completa onde passo todas as configs .. se quiserem da uma olhada.. uses IdIMAP4, ACBrMail, IdMessage; procedure TEmail_Componente.Salvar_Email_Enviado; var mensagem : TIdMessage; strm : TMemoryStream; IdIMAP4 : TIdIMAP4; Arquivo_EML : TIdMessage; begin //============= se a pasta para salvar o email for informada salva uma copia nela mensagem := TIdMessage.Create(nil); Arquivo_EML := TIdMessage.Create(nil); strm := TMemoryStream.Create; ACBrMail.SaveToStream(strm); strm.Position := 0; mensagem.LoadFromStream(strm); strm.Position := 0; Arquivo_EML.LoadFromStream(strm); IdIMAP4 := TIdIMAP4.Create(nil); IdIMAP4.ConnectTimeout := 30000; IdIMAP4.ReadTimeout := 30000; IdIMAP4.Username := 'Usuario'; IdIMAP4.Password := 'Senha'; IdIMAP4.Port := IMAP_Porta; IdIMAP4.Host := 'IMAP_Host'; IdIMAP4.Connect(); //========== se a pasta nao existir ela é criada ============ IdIMAP4.CreateMailBox( 'Nome_pasta_enviado' ); //========== Seleciona a pasta ============ IdIMAP4.SelectMailbox( 'Nome_pasta_enviado'); //========== Salva a msg na pasta ============ IdIMAP4.AppendMsg( 'Nome_pasta_enviado', mensagem); //=======para listar as pastas que existem no servidor e pegar o nome certinho use // IdIMAP4.ListMailBoxes(memo1.Lines); // Para salvar o arquivo no banco de dados // qrGravaEmail.FieldByName('ARQUIVO_EML').Assign(strm); IdIMAP4.Disconnect(); mensagem.Destroy; strm.Destroy; Arquivo_EML.Destroy; IdIMAP4.Destroy; end; Email_Class.pas1 ponto
-
Consegui resolver o problema de não abrir o mapa. Baixei a versão GMLIB_V2 "https://github.com/cadetill/gmlib_v2" e copiei o MAP.html Só que para rodar no tokyo, consegui apenas com essa versão "https://github.com/cadetill/gmlib_v1" (utilizando o map.html do gmlib_v2). Alguém sabe como importar um arquivo shape, tipo JSON no mapa?1 ponto
-
Se o pin pad for usb, você pode colocar isso no clisitef.ini Porta=AUTO_USB Caso não funcione, marca a opção Force com port. (Indo pelo gerenciador de dispositivos)1 ponto